Випуск криптографічної бібліотеки Botan 3.0.0

Доступний випуск криптографічної бібліотеки Botan 3.0.0, що застосовується в проекті NeoPG, форці GnuPG 2. Бібліотека надає велику колекцію готових примітивів, що використовуються в протоколі TLS, сертифікатах X.509, шифрах AEAD, модулях TPM, крішш і парографії (Підписи на основі хеша та узгодження ключів на основі 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*".
  • Додані нові функції та 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

Додати коментар або відгук