Wydanie biblioteki kryptograficznej Botan 3.0.0

Wydano wydanie biblioteki kryptograficznej Botan 3.0.0, stosowanej w projekcie NeoPG, forku GnuPG 2. Biblioteka oferuje dużą kolekcję gotowych prymitywów używanych w protokole TLS, certyfikatach X.509, szyfrach AEAD, modułach TPM, PKCS#11, haszowaniu haseł oraz postkwantowej kryptografii (podpisy oparte na haszach i ustalanie kluczy oparte na McEliece). Biblioteka napisana jest w języku C++ i udostępniana na licencji BSD.

Wśród zmian w nowej wersji:

  • W kodzie bazowym dopuszczono zastosowanie standardu C++20 (wcześniej używano C++11), w związku z tym zwiększono wymagania dotyczące kompilatorów — do kompilacji wymagane są teraz co najmniej GCC 11, Clang 14 lub MSVC 2022. Zakończono wsparcie dla kompilatorów HP i Pathscale, a także projektów Google NaCL i IncludeOS.
  • Wprowadzono dużą ilość zmian naruszających zgodność wsteczną. Usunięto wiele przestarzałych plików nagłówkowych, na przykład specyficznych dla określonych algorytmów (aes.h itp.). Usunięto implementacje funkcji i algorytmów, które wcześniej zostały oznaczone jako przestarzałe (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). W tworzeniu entropii dla generatora liczb pseudolosowych zaprzestano używania /proc i /dev/random. Usunięto niektóre klasy (np. Data_Store), struktury i wyliczenia z API. W miarę możliwości zaprzestano zwracania i używania surowych wskaźników.
  • Dodano wsparcie dla protokołu TLS 1.3. Zaprzestano wsparcia dla TLS 1.0, TLS 1.1 i DTLS 1.0. Z implementacji TLS usunięto wsparcie dla zestawów szyfrów DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK oraz Camellia CBC, szyfrów anonimowych oraz haszy SHA-1.
  • Dodano wsparcie dla algorytmu postkwantowej kryptografii Kyber, odpornego na ataki przy użyciu komputerów kwantowych.
  • Dodano wsparcie dla algorytmu postkwantowej kryptografii Dilithium do pracy z podpisami cyfrowymi.
  • Dodano wsparcie dla haszowania w formacie punktu na krzywej eliptycznej, korzystającego z techniki SSWU (draft-irtf-cfrg-hash-to-curve).
  • Dodano wsparcie dla kryptograficznej funkcji haszującej BLAKE2b.
  • Zaprezentowano nowy interfejs programowania T::new_object, zwracający unique_ptr zamiast surowego wskaźnika „T*”.
  • Dodano nowe funkcje i API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Dodano dużą liczbę nowych funkcji do użycia w kodzie w języku C (C89).
  • W implementacji algorytmu Argon2 wykorzystano instrukcje AVX2.
  • Zmniejszono rozmiar tabel w implementacjach algorytmów Camellia, ARIA, SEED, DES i Whirlpool.
  • Zaprezentowano nową implementację DES/3DES, zabezpieczoną przed większością klas ataków przez kanały boczne, oceniających stan pamięci podręcznej.
  • Implementacja SHACAL2 została zoptymalizowana dla systemów opartych na architekturach ARMv8 i POWER.
  • Kod obliczania bitów parzystości, konwersji bcrypt/base64 oraz identyfikacji typu ciągu ASN.1 został pozbawiony wyszukiwania w tabelach i teraz nie zależy od przetwarzanych danych (wykonywane w stałym czasie).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster