Projekt GNU wprowadził wersję biblioteki Libgcrypt 1.11.0, zawierającą implementację komponentów stanowiących podstawę mechanizmów szyfrowania stosowanych w GnuPG. Biblioteka zapewnia funkcje do użycia w zewnętrznych aplikacjach różnych algorytmów kryptograficznych, w tym szyfrów symetrycznych (AES, Arcfour, Blowfish, Camellia, CAST5, ChaCha20, DES, GOST28147, Salsa20, SEED, Serpent, Twofish), algorytmów haszujących (MD5, RIPE-MD160, SHA-*, SHAKE256, TIGER-192, Whirlpool),
algorytmów szyfrowania z uwierzytelnianiem (HMAC-*, CMAC-*, GMAC-*, Poly1305-*), szyfrowania przy użyciu kluczy publicznych (RSA, Elgamal, DSA, ECDSA, EdDSA, ECDH). Nowa gałąź jest całkowicie zgodna na poziomie API i ABI z gałęzią 1.10.x (nie wymaga rekompilacji programów do użycia nowej wersji).
Kluczowe ulepszenia:
- Dodano API do korzystania z mechanizmów enkapsulacji kluczy (KEM, Mechanizm Enkapsulacji Kluczy), stosowanych do ochrony kluczy do szyfrowania symetrycznego poprzez wykorzystanie algorytmów opartych na kluczach publicznych (szyfrowanie asymetryczne) do ich przekazywania.
- Dodano algorytm enkapsulacji kluczy sntrup761 (Streamlined NTRU Prime), odporny na ataki z użyciem komputerów kwantowych.
- Dodano algorytm Kyber odporny na ataki z użyciem komputerów kwantowych, wykorzystujący metody kryptografii oparte na rozwiązaniach z teorii krat, gdzie czas rozwiązania nie różni się na komputerach klasycznych i kwantowych.
- Dodano algorytm enkapsulacji kluczy Classic McEliece, odporny na ataki z użyciem komputerów kwantowych.
- Dodano algorytmy generowania klucza: One-Step KDF z haszowaniem i kodem uwierzytelniającym (MAC, Kod Uwierzytelniający Wiadomości), HKDF (RFC-5869) oraz X963KDF.
- Dodano algorytmy szyfrowania z uwierzytelnianiem GMAC-SM4 i Poly1305-SM4.
- Dodano algorytm szyfrowania blokowego ARIA.
- Dodano algorytm haszujący cSHAKE.
- Wdrożono wsparcie dla wewnętrznej generacji wektora inicjalizacji (IV) dla trybu szyfrowania z uwierzytelnianiem AEAD.
- Dodano szybkie realizacje algorytmów SM3 i SM4 w asemblerze dla architektury AArch64, a także wersje SM4 w asemblerze dla ARMv9, PowerPC i x86 (wykorzystano instrukcje AVX2 GFNI oraz instrukcje AVX512 GFI).
- Realizacje algorytmów ChaCha20 i Poly1305 zoptymalizowane dla architektury PPC z wykorzystaniem instrukcji P10. Przyspieszono realizację AES dla PPC.
- Dodano realizację algorytmu Camellia, wykorzystującą instrukcję AVX2 GFNI.
- Dodano realizacje GHASH (GCM) i POLYVAL (GCM-SIV) przyspieszone przy pomocy rozszerzeń AVX2 i AVX512.
- Dodano implementacje algorytmów SHA512, Serpent, SHA3, Blake2, Poly1305 i ChaCha20, przyspieszone dzięki rozszerzeniu AVX512.
- Dodano implementację AES dla systemów i386, przyspieszoną za pomocą instrukcji AVX2 VAES.
- Dodano implementacje algorytmów SHA512 i Camellia, przyspieszone dzięki rozszerzeniom kryptograficznym dla architektury AArch64.
- Przeprowadzono prace mające na celu zapewnienie stałego czasu wykonywania operacji dla różnych algorytmów kryptograficznych.
Źródło: opennet.ru
