Выпуск криптографической библиотеки Botan 2.9.0
Доступен выпуск криптографической библиотеки Botan 2.9.0, применяемой в проекте NeoPG, форке GnuPG 2. Библиотека предоставляет большую коллекцию готовых примитивов, используемых в протоколе TLS, сертификатах X.509, шифрах AEAD, модулях TPM, PKCS11, хэшировании паролей и постквантовой криптографии. Библиотека написана на языке C++11 и поставляется под лицензией BSD.
Среди изменений в новом выпуске:
- Оптимизированы операции с эллиптическими кривыми (ECC), в некоторых ситуациях отмечено увеличение производительности до 30%;
- Проведена работа по усилению защиты от атак по сторонним каналам в коде вычислений с целыми числами, RSA и ECC;
- Предложены новые реализации алгоритма ChaCha, использующие для ускорения инструкции NEON и AltiVec. Проведена оптимизация реализаций ChaCha, использующих инструкции SSE2 и AVX2;
- Добавлена поддержка восстановления публичного ключа ECDSA из связок сообщение/цифровая подпись (Message-Signature Pair);
- Добавлена поддержка кодирования и декодирования методом base58;
- Для упрощения отладки в обработчик исключений добавлены функции error_type и error_code;
- Прекращена поддержка компилятора Visual C++ 2013;
- Устранена неопасная уязвимость CVE-2018-20187, допускающая утечку по сторонним каналам нескольких бит секретного значения, используемого при генерации ключа на базе ECC. На практике уязвимость может применяться для ускорения атак методом перебора.