ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΠΈΠ·Ρ ΠΎΠ΄ΡΡ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Botan 3.0.0, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° NeoPG, ΡΠΎΡΠΊ Π½Π° GnuPG 2. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ Π³ΠΎΡΠΎΠ²ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TLS, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅ X.509, ΡΠΈΡΡΠΈΡΠ΅ AEAD, ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ TPM, PKCS#11, Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΈ ΠΏΠΎΡΡΠΊΠ²Π°Π½ΡΠΎΠ²Π°ΡΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ (ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Ρ Π΅Ρ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π° McEliece). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ ΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ BSD.
Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½ΠΎΠ²ΠΈΡ ΡΠ΅Π»ΠΈΠΉΠ·:
- Π ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++20 (ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ C++11), ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ - Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΡΠ΅Π³Π° ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ GCC 11, Clang 14 ΠΈΠ»ΠΈ MSVC 2022. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈΡΠ΅ HP ΠΈ Pathscale, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Google NaCL ΠΈ IncludeOS, Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½Π°ΡΡΡΠ°Π²Π°ΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ (aes.h ΠΈ Ρ.Π½.). ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π±ΡΡ Π° ΠΎΠ±ΡΠ²Π΅Π½ΠΈ Π·Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). ΠΡΠΈ ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π½ΡΡΠΎΠΏΠΈΡ Π·Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° /proc ΠΈ /dev/random. ΠΡΠΊΠΎΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Data_Store), ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½ΠΈΡ ΡΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΠΎΡ API. ΠΡΠ΄Π΅ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ Π²ΡΡΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΠΎΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TLS 1.3. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° TLS 1.0, TLS 1.1 ΠΈ DTLS 1.0 Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°. ΠΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° TLS Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΡΠΈΡΡΠΈ DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK ΠΈ Camellia CBC, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΠΈΡΡΠΈ, Ρ Π΅ΡΠΎΠ²Π΅ SHA-1.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΏΠΎΡΡΠΊΠ²Π°Π½ΡΠΎΠ²Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Kyber, ΡΡΡΠΎΠΉΡΠΈΠ² Π½Π° Π°ΡΠ°ΠΊΠΈ Ρ ΠΊΠ²Π°Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΏΠΎΡΡΠΊΠ²Π°Π½ΡΠΎΠ²Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Dilithium Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π² ΡΠΎΡΠΊΠΎΠ² ΡΠΎΡΠΌΠ°Ρ Π½Π° Π΅Π»ΠΈΠΏΡΠΈΡΠ½Π° ΠΊΡΠΈΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° SSWU (draft-irtf-cfrg-hash-to-curve).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ°ΡΠ° Ρ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ BLAKE2b.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ T::new_object, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° unique_ptr Π²ΠΌΠ΅ΡΡΠΎ Π³ΠΎΠ»ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π» "T*".
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π³ΠΎΠ»ΡΠΌ Π½Π°Π±ΠΎΡ ΠΎΡ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Π‘ΠΈ (C89).
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Argon2 ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2.
- ΠΠ°ΠΌΠ°Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ Camellia, ARIA, SEED, DES ΠΈ Whirlpool.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° DES/3DES, Π·Π°ΡΠΈΡΠ΅Π½Π° ΡΡΠ΅ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π°ΡΠ°ΠΊΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ, ΠΎΡΠ΅Π½ΡΠ²Π°ΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° SHACAL2 Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ ARMv8 ΠΈ POWER.
- ΠΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ½ΠΎΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ bcrypt/base64 ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠΈΠΏΠ° Π½Π° Π½ΠΈΠ· ASN.1 Π΅ ΠΈΠ·Π±Π°Π²Π΅Π½ ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΠΈ Π²Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ (ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ΅ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
