После двух с половиной лет разработки проект 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.
|