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

2016-04-16

После двух с половиной лет разработки проект GNU представил выпуск библиотеки Libgcrypt 1.7.0, с реализацией компонентов, лежащих в основе механизмов шифрования, применяемых в GnuPG. Библиотека предоставляет функции для использования в сторонних приложениях различных криптоалгоритмов, включая симметричные шифры (AES, DES, Blowfish, CAST5, Twofish, SEED, Camellia, Arcfour), алгоритмы хэширования (MD4, MD5, RIPE-MD160, SHA-1, SHA_224, SHA-256, SHA-384, SHA-512, TIGER-192, Whirlpool), шифрование с использованием публичных ключей (RSA, Elgamal, DSA, ECDSA). Новая ветка полностью совместима на уровне API и ABI с веткой 1.6.x (для использования новой версии не требуется пересборка программ).

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

  • Поддержка новых алгоритмов и режимов:
    • Алгоритмы хэширования SHA3-224, SHA3-256, SHA3-384, SHA3-512 и MD2;
    • Алгоритмы хэширования SHAKE128 и SHAKE256;
    • Потоковый шифр ChaCha20;
    • Алгоритм аутентификации сообщений Poly1305;
    • Алгоритм аутентифицированного шифрования ChaCha20-Poly1305;
    • Режим OCB;
    • Поддержка HMAC-MD2 для устаревших приложений;
  • Поддержка эллиптических кривых Curve25519, sec256k1, GOST R 34.10-2001 и GOST R 34.10-2012;
  • Увеличение производительности функций KDF;
  • Ассемблерные оптимизации для Blowfish и Serpent для CPU ARM, 3DES для x86;
  • Задействование инструкций AVX/BMI для SHA-1 и SHA-256 SHA-1, и SSSE3 для AES. Новая AVX-реализация SHA-1 быстрее на 20% по сравнению с версией на базе SSSE3 и на 100% по сравнению с реализацией в libc;
  • На 40% ускорена реализация SHA-512 и на 72% реализация SHA-1 для ARM Cortex-A8;
  • На 60-90% ускорена реализация Whirlpool для x86;
  • На 300% ускорена реализация RIPE MD-160;
  • Вычисление CRC на системах x86 ускорено в 11 раз;
  • Улучшена совместимость с ECDSA и FIPS 186-4.