ΠΠ΅ΡΠ΅ Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° 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 Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK ΠΈ Camellia CBC ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΠΈΡΡΠΈ, SHA-1 Ρ Π΅ΡΠΎΠ²Π΅ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° TLS.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΏΠΎΡΡ-ΠΊΠ²Π°Π½ΡΠΎΠ²Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Kyber, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΡΠΎΠΉΡΠΈΠ² Π½Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΡ Π½Π° ΠΊΠ²Π°Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΏΠΎΡΡΠΊΠ²Π°Π½ΡΠΎΠ²Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Dilithium Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π»ΠΈΠΏΡΠΈΡΠ½Π° ΠΊΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° SSWU (draft-irtf-cfrg-hash-to-curve).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ° Ρ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ BLAKE2b.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ² API 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. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π³ΠΎΠ»ΡΠΌ Π½Π°Π±ΠΎΡ ΠΎΡ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² C ΠΊΠΎΠ΄ (C89).
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Argon2 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2.
- ΠΠ°ΠΌΠ°Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Camellia, ARIA, SEED, DES ΠΈ Whirlpool.
- ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° DES/3DES, ΠΊΠΎΡΡΠΎ Π΅ Π·Π°ΡΠΈΡΠ΅Π½Π° ΡΡΠ΅ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»Π½ΠΈ Π°ΡΠ°ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ΅Π½ΡΠ²Π°Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠ°.
- ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° SHACAL2 Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ ARMv8 ΠΈ POWER.
- ΠΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΡΠΎΠ²Π΅ Π·Π° ΠΏΠ°ΡΠΈΡΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° bcrypt / base64 ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠΈΠΏΠ° Π½Π° ASN.1 Π½ΠΈΠ· Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ Π²Π΅ΡΠ΅ Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ (ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅)
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru