เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆเบ‚เบญเบ‡ VPN WireGuard เป€เบžเบตเปˆเบกเปƒเบชเปˆ FreeBSD codebase

เบ•เบปเป‰เบ™เป„เบกเป‰เปเบซเบผเปˆเบ‡ FreeBSD เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆเบ‚เบญเบ‡ VPN WireGuard, เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เป‚เบกเบ”เบนเบ™ kernel เบฎเปˆเบงเบกเบเบฑเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ FreeBSD เปเบฅเบฐ WireGuard เบซเบผเบฑเบเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบˆเบฒเบ Jason A. Donenfeld, เบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡ VPN WireGuard, เปเบฅเบฐ John H. Baldwin ), เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡เบ‚เบญเบ‡ GDB เปเบฅเบฐ FreeBSD, เบœเบนเป‰เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SMP เปเบฅเบฐ NUMA เปƒเบ™ FreeBSD kernel เปƒเบ™เบ•เบปเป‰เบ™เบŠเบธเบกเบ›เบต 2000. เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบ”เป€เบงเบตเบ–เบทเบเบเบญเบกเบฎเบฑเบšเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ FreeBSD (sys/dev/wg), เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบกเบฑเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ FreeBSD.

เบเปˆเบญเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบˆเบฐเบ–เบทเบเบเบญเบกเบฎเบฑเบš, เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ‚เบญเบ‡ FreeBSD Foundation, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เป„เบ”เป€เบงเบตเบเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡เป€เบกเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ cryptographic primitives เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ kernel. เป„เบ”เป‰เบ–เบทเบเบ›เบฐเป€เบกเบตเบ™.

เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบฅเบฐเบšเบปเบš cryptographic algorithms เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบ„เบปเบ™เบ‚เบฑเบš, API เบ‚เบญเบ‡ FreeBSD kernel crypto-subsystem เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบ, เป€เบŠเบดเปˆเบ‡เบกเบต harness เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰ algorithms เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ FreeBSD เบœเปˆเบฒเบ™ crypto-API เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libsodium. เบ‚เบญเบ‡ algorithm เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป„เบ”เป€เบงเบต, เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ Blake2 hashes เป„เบ”เป‰เบ–เบทเบเบ›เบฐเป„เบงเป‰, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” algorithm เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปƒเบ™ FreeBSD เปเบกเปˆเบ™ tied เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ” hash เบ„เบปเบ‡เบ—เบตเปˆ.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™ CPU เบซเบผเบฒเบเปเบเบ™ (เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบžเบฑเบเป€เบเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เปƒเบซเป‰เบเบฑเบš CPU cores เป„เบ”เป‰เบ–เบทเบเบฎเบฑเบšเบ›เบฐเบเบฑเบ™). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบเบตเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป€เบงเบต Linux. เบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เป„เบ”เป€เบงเบต ossl เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปƒเบ™เบเบฒเบ™เบฅเบงเบก WireGuard เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ FreeBSD, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆเปƒเบŠเป‰ wg utility เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบฐเบšเบฑเบšเบ”เบฑเบ”เปเบเป‰เบ‚เบญเบ‡ ifconfig, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™ Linux เปเบฅเบฐ FreeBSD. เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” wg, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบปเบ™เบ‚เบฑเบš, เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ FreeBSD, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” wg (เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT เปเบฅเบฐ GPL). เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบญเบปเบฒ WireGuard เปƒเบ™ FreeBSD เป„เบ”เป‰เบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เปƒเบ™เบ›เบต 2020, เปเบ•เปˆเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบตเป‰เบ„เป‰เบฒเบ™, เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเปเบฅเป‰เบงเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ•เปˆเปเบฒ, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฑเบš buffers, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ stubs เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเบชเบปเบกเบšเบนเบ™. เบ‚เบญเบ‡เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒเปเบฅเบฐเบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” GPL.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒ VPN WireGuard เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบชเบฐเบซเบ™เบญเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบซเบผเบฒเบ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‡เปˆเบฒเบ, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เปเบฅเบฐเป„เบ”เป‰เบžเบดเบชเบนเบ”เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆ 2015โ€‹, เปเบฅเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบขเบฑเป‰เบ‡โ€‹เบขเบทเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. WireGuard เปƒเบŠเป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบเบฐเปเบˆเบชเปˆเบงเบ™เบ•เบปเบงเปƒเบชเปˆเปเบ•เปˆเบฅเบฐเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบ เปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ.

เบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ–เบทเบเปเบฅเบเบ›เปˆเบฝเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš SSH. เป€เบžเบทเปˆเบญเป€เบˆเบฅเบฐเบˆเบฒเบ‚เปเบเบฐเปเบˆเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰ daemon เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰, เบเบปเบ™เป„เบ Noise_IK เบ‚เบญเบ‡ Noise Protocol Framework เปเบกเปˆเบ™เปƒเบŠเป‰, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ™เบฎเบฑเบเบชเบฒ authorized_keys เปƒเบ™ SSH. เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™ encapsulation เปƒเบ™เบŠเบธเบ” UDP. เบกเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPN (เป‚เบฃเบกเบกเบดเบ‡) เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ„เปˆเบฒเบฅเบนเบเบ„เป‰เบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบฐเบ•เบฃเบตเบก ChaCha20 เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ‚เปเป‰เบ„เบงเบฒเบก Poly1305 (MAC), เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Daniel J. Bernstein, Tanja Lange เปเบฅเบฐ Peter Schwabe. ChaCha20 เปเบฅเบฐ Poly1305 เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™ analogues เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒเปเบฅเบฐเบ›เบญเบ”เป„เบžเบเบงเปˆเบฒเบ‚เบญเบ‡ AES-256-CTR เปเบฅเบฐ HMAC, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบญเบšเปเบงเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบšเบฑเบ™เบฅเบธเป€เบงเบฅเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบžเบดเป€เบชเบ”. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™, เป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบฎเบนเบšเบชเป‰เบงเบ Diffie-Hellman protocol เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Curve25519, เบชเบฐเป€เบซเบ™เบตเป‚เบ”เบ Daniel Bernstein. BLAKE2s algorithm (RFC7693) เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ hashing.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™