Botan Cryptographic Library Release 3.0.0

Šifrovací knihovna Botan 3.0.0 je nyní k dispozici pro použití v projektu NeoPG, vidlici GnuPG 2. Knihovna poskytuje velkou sbírku hotových primitiv používaných v protokolu TLS, certifikáty X.509, šifry AEAD, moduly TPM , PKCS#11, hašování hesel a postkvantová kryptografie (podpisy založené na hašování a dohoda o klíčích založená na McEliece). Knihovna je napsána v C++ a je distribuována pod licencí BSD.

Mezi změny v nové verzi:

  • Kódová základna umožňuje použití standardu C++20 (dříve se používal C++11), odpovídajícím způsobem byly zvýšeny požadavky na kompilátory - pro sestavení je nyní potřeba minimálně GCC 11, Clang 14 nebo MSVC 2022. Podpora pro kompilátory HP a Pathscale byly ukončeny, stejně jako projekty Google NaCL a IncludeOS.
  • Byla provedena velká část změn, které porušují zpětnou kompatibilitu. Bylo odstraněno mnoho zastaralých hlavičkových souborů, například soubory specifické pro určité algoritmy (aes.h atd.). Implementace funkcí a algoritmů, které byly dříve prohlášeny za zastaralé, byly odstraněny (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Při generování entropie pro generátor pseudonáhodných čísel jsme přestali používat /proc a /dev/random. Některé třídy (například Data_Store), struktury a výčty byly z API odstraněny. Vracení a používání holých značek bylo přerušeno, kde to bylo možné.
  • Přidána podpora protokolu TLS 1.3. Podpora pro TLS 1.0, TLS 1.1 a DTLS 1.0 byla ukončena. Z implementace TLS byla odstraněna podpora pro šifrovací sady DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK a Camellia CBC, anonymní šifry a hash SHA-1.
  • Přidána podpora pro postkvantový kryptografický algoritmus Kyber, který je odolný vůči hrubé síle na kvantovém počítači.
  • Přidána podpora pro postkvantový kryptografický algoritmus Dilithium pro práci s digitálními podpisy.
  • Přidána podpora pro hašování formátu bodů eliptické křivky pomocí techniky SSWU (draft-irtf-cfrg-hash-to-curve).
  • Přidána podpora pro kryptografickou hashovací funkci BLAKE2b.
  • Bylo navrženo nové programovací rozhraní T::new_object, které vrací unique_ptr místo holého ukazatele "T*".
  • Přidány nové funkce a API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, required_entire_message, SymmetricAlgorithm::has_keying_material. Přidána velká sada nových funkcí pro použití v kódu C (C89).
  • Implementace algoritmu Argon2 využívá instrukce AVX2.
  • Velikost tabulek v implementacích algoritmů Camellia, ARIA, SEED, DES a Whirlpool byla zmenšena.
  • Je navržena nová implementace DES/3DES, chráněná proti většině tříd útoků postranním kanálem, které vyhodnocují stav mezipaměti.
  • Implementace SHACAL2 je optimalizována pro systémy založené na architekturách ARMv8 a POWER.
  • Kód pro výpočet paritních bitů, převod bcrypt/base64 a určení typu řetězce ASN.1 je osvobozen od vyhledávání v tabulce a je nyní nezávislý na zpracovávaných datech (běží v konstantním čase)

Zdroj: opennet.ru

Přidat komentář