Versión 3.0.0 de la biblioteca criptográfica Botan

Ya está disponible la biblioteca criptográfica Botan 3.0.0 utilizada por el proyecto NeoPG, una bifurcación de GnuPG 2. La biblioteca proporciona una gran colección de primitivas listas para usar utilizadas en el protocolo TLS, certificados X.509, AEAD cifrados, módulos TPM, PKCS#11, hash de contraseñas y criptografía poscuántica (firmas basadas en hash y acuerdo de claves basado en McEliece). La biblioteca está escrita en C++ y tiene la licencia BSD.

Entre los cambios en la nueva versión:

  • El código base puede utilizar el estándar C++ 20 (anteriormente se usaba C++ 11), respectivamente, se han aumentado los requisitos para los compiladores: ahora se requieren al menos GCC 11, Clang 14 o MSVC 2022 para el ensamblaje. Los compiladores HP y Pathscale han sido descontinuados, así como los proyectos Google NaCL e IncludeOS.
  • Se han realizado una gran parte de los cambios que violan la compatibilidad con versiones anteriores. Se eliminaron muchos archivos de encabezado obsoletos, como los específicos de ciertos algoritmos (aes.h, etc.). Se eliminaron implementaciones de funciones y algoritmos previamente obsoletos (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Al generar entropía para el generador de números pseudoaleatorios, se suspendió el uso de /proc y /dev/random. Algunas clases (por ejemplo, Data_Store), estructuras y enumeraciones se han eliminado de la API. Siempre que sea posible, se han suspendido las devoluciones y el uso de punteros simples.
  • Se agregó soporte para el protocolo TLS 1.3. Se eliminó la compatibilidad con TLS 1.0, TLS 1.1 y DTLS 1.0. Se ha eliminado de la implementación de TLS la compatibilidad con los conjuntos de cifrado DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK y Camellia CBC, cifrados anónimos y hashes SHA-1.
  • Se agregó soporte para el algoritmo de criptografía poscuántica Kyber, que es resistente a la selección en una computadora cuántica.
  • Se agregó soporte para el algoritmo de criptografía poscuántica Dilithium para trabajar con firmas digitales.
  • Se agregó soporte para hash de curva punto sobre elíptica utilizando la técnica SSWU (draft-irtf-cfrg-hash-to-curve).
  • Se agregó soporte para la función hash criptográfica BLAKE2b.
  • Nueva API propuesta T::new_object que devuelve Unique_ptr en lugar de un simple puntero "T*".
  • Se agregaron nuevas funciones y API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, require_entire_message, SymmetricAlgorithm::has_keying_material. Se ha agregado un gran conjunto de funciones nuevas para su uso en código C (C89).
  • La implementación del algoritmo Argon2 utiliza instrucciones AVX2.
  • Tamaño de tabla reducido en implementaciones Camellia, ARIA, SEED, DES y Whirlpool.
  • Se propone una nueva implementación de DES/3DES que está protegida contra la mayoría de las clases de ataques de canal lateral que evalúan el estado de la caché.
  • La implementación SHACAL2 está optimizada para sistemas basados ​​en las arquitecturas ARMv8 y POWER.
  • El código para calcular los bits de paridad, convertir bcrypt/base64 y determinar el tipo de cadena ASN.1 está libre de búsquedas en tablas y ahora es independiente de los datos que se procesan (se realiza un tiempo constante)

Fuente: opennet.ru

Añadir un comentario