Выпуск криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Botan 3.0.0

ДоступСн выпуск криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ 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. Из API ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… классы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Data_Store), структуры ΠΈ пСрСчислСния. По возмоТности ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ возвращСния ΠΈ использованиС Π³ΠΎΠ»Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° 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> вмСсто Π³ΠΎΠ»ΠΎΠ³ΠΎ указатСля «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