Выпуск криптографической библиотеки Libgcrypt 1.9.0

После трёх лет разработки проект GNU представил выпуск библиотеки Libgcrypt 1.9.0, с реализацией компонентов, лежащих в основе механизмов шифрования, применяемых в GnuPG. Библиотека предоставляет функции для использования в сторонних приложениях различных криптоалгоритмов, включая симметричные шифры (AES, Arcfour, Blowfish, Camellia, CAST5, ChaCha20, DES, GOST28147, Salsa20, SEED, Serpent, Twofish), алгоритмы хэширования (MD5, RIPE-MD160, SHA-*, SHAKE256, TIGER-192, Whirlpool),
алгоритмы аутентифицированного шифрования (HMAC-*, CMAC-*, GMAC-*, Poly1305-*), шифрование с использованием публичных ключей (RSA, Elgamal, DSA, ECDSA, EdDSA, ECDH). Новая ветка полностью совместима на уровне API и ABI с веткой 1.8.x (для использования новой версии не требуется пересборка программ).

Ключевые улучшения:

  • Добавлена поддержка новых эллиптических кривых Ed448, X448 и SM2.
  • Добавлен режим работы блочных шифров EAX (encrypt-then-authenticate-then-translate).
  • Добавлен блочный шифр SM4 (китайский стандарт GB/T 32907-2016).
  • Добавлена хэш функция SM3 (китайский стандарт GB/T 32905-2016).
  • Добавлены новые варианты алгоритмов хэширования SHA512/224 и SHA512/256.
  • Добавлен новый MAC-алгоритм для Blake-2, новых вариантов SHA512, SM3, SM4 и GOST.
  • Предложены новые функции gcry_mpi_get_ui, gcry_ecc_mul_point и gcry_ecc_get_algo_keylen.
  • Добавлен флаг GCRYCTL_AUTO_EXPAND_SECMEM, разрешающий увеличение размера защищённых областей памяти.
  • Внесены оптимизации производительности для процессоров на базе архитектуры Aarch64.
  • Ускорены реализации Poly1305 и ChaCha.
  • Для процессоров PowerPC ускорены реализации AES и SHA-256.
  • Расширено применений инструкций AES-NI для ускорения AES-XTS (в тестах скорость увеличилась в 6 раз) и OCB.
  • Примерно в 2.5 раза увеличена производительность AES-XTS на системах ARMv8/CE.
  • Добавлена новая реализация алгоритма Blake-2, использующая инструкции AVX и AVX2 (работает в 1.3 и в 1.4 раза быстрее).
  • Для SHA-1 и SHA-256 задействованы расширения Intel SHA, позволившие добиться ускорения в 4.0 и 3.7 раза.
  • Добавлена новая реализация GCM, использующая инструкции ARMv7/NEON и работающая в три раза быстрее.
  • В 4.5 раза ускорена работа SHA-512 на системах AMD Ryzen 7, благодаря применению инструкций SSSE3.
  • В 7 раз ускорено вычисление CRC на 64-разрядных ARMv8/CE, благодаря применению инструкции PMULL.
  • На 40-70% ускорена реализация CAST5 и на 60-80% реализация Blowfish.
Release. Ссылка here.