Biblioteca criptográfica Botan versión 3.0.0

Xa está dispoñible a biblioteca criptográfica Botan 3.0.0 utilizada polo proxecto NeoPG, unha bifurcación de GnuPG 2. A biblioteca ofrece unha gran colección de primitivos listos para usar no protocolo TLS, certificados X.509, AEAD cifrados, módulos TPM, PKCS#11, hash de contrasinais e criptografía post-cuántica (sinaturas baseadas en hash e acordo de clave baseado en McEliece). A biblioteca está escrita en C++ e ten licenza baixo a licenza BSD.

Entre os cambios na nova versión:

  • A base de código pode usar o estándar C++ 20 (anteriormente se usaba C++ 11), respectivamente, os requisitos para os compiladores aumentaron - agora son necesarios polo menos GCC 11, Clang 14 ou MSVC 2022 para a montaxe. Os compiladores HP e Pathscale foron descontinuados, así como os proxectos Google NaCL e IncludeOS.
  • Realizáronse unha gran parte dos cambios que infrinxen a compatibilidade con versións anteriores. Elimináronse moitos ficheiros de cabeceira obsoletos, como os específicos de determinados algoritmos (aes.h, etc.). Elimináronse as implementacións de funcións e algoritmos obsoletos anteriormente (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Ao xerar entropía para o xerador de números pseudoaleatorios, descontinuouse o uso de /proc e /dev/random. Algunhas clases (por exemplo, Data_Store), estruturas e enumeracións elimináronse da API. As devolucións e o uso de punteiros simples descontinuáronse sempre que foi posible.
  • Engadido soporte para o protocolo TLS 1.3. O soporte para TLS 1.0, TLS 1.1 e DTLS 1.0 foi eliminado. Eliminouse da implementación de TLS a compatibilidade con DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK e Camellia CBC suites de cifrado, cifrados anónimos e hash SHA-1.
  • Engadiuse soporte para o algoritmo de criptografía poscuántica Kyber, que é resistente á selección nun ordenador cuántico.
  • Engadiuse compatibilidade co algoritmo de criptografía poscuántica Dilithium para traballar con sinaturas dixitais.
  • Engadiuse compatibilidade para o hash de curva punto sobre elíptica mediante a técnica SSWU (draft-irtf-cfrg-hash-to-curve).
  • Engadido soporte para a función hash criptográfica BLAKE2b.
  • Nova API proposta T::new_object que devolve unique_ptr en lugar dun punteiro "T*" simple.
  • Engadíronse novas funcións e API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Engadiuse un gran conxunto de novas funcións para usar en código C (C89).
  • A implementación do algoritmo Argon2 utiliza instrucións AVX2.
  • Tamaño reducido da táboa en implementacións Camellia, ARIA, SEED, DES e Whirlpool.
  • Proponse unha nova implementación de DES/3DES que está protexida contra a maioría das clases de ataques de canle lateral que avalían o estado da caché.
  • A implementación SHACAL2 está optimizada para sistemas baseados nas arquitecturas ARMv8 e POWER.
  • O código para calcular os bits de paridade, converter bcrypt/base64 e determinar o tipo de cadea ASN.1 está libre de buscas de táboas e agora é independente dos datos que se están procesando (se realiza un tempo constante)

Fonte: opennet.ru

Engadir un comentario