Выпуск криптографической библиотеки 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 избавлен от поиска в таблицах и теперь не зависит от обрабатываемых данных (выполняется постоянное время)



Источник: http://www.opennet.ru/opennews/art.shtml? num=58953

© OpenNet