Bibliothèque cryptographique Botan version 3.0.0

La bibliothèque cryptographique Botan 3.0.0 utilisée par le projet NeoPG, un fork de GnuPG 2, est désormais disponible. La bibliothèque fournit une large collection de primitives prêtes à l'emploi utilisées dans le protocole TLS, les certificats X.509, AEAD chiffrements, modules TPM, PKCS#11, hachage de mot de passe et cryptographie post-quantique (signatures basées sur le hachage et accord de clé basé sur McEliece). La bibliothèque est écrite en C++ et est sous licence BSD.

Parmi les changements de la nouvelle version :

  • La base de code est autorisée à utiliser la norme C++20 (auparavant, C++11 était utilisé), respectivement, les exigences pour les compilateurs ont été augmentées - désormais au moins GCC 11, Clang 14 ou MSVC 2022 sont requis pour l'assemblage. Les compilateurs HP et Pathscale ont été abandonnés, ainsi que les projets Google NaCL et IncludeOS.
  • Une grande partie des modifications violant la compatibilité ascendante ont été apportées. Suppression de nombreux fichiers d'en-tête obsolètes, comme ceux spécifiques à certains algorithmes (aes.h, etc.). Suppression des implémentations de fonctions et d'algorithmes précédemment obsolètes (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Lors de la génération d'entropie pour le générateur de nombres pseudo-aléatoires, l'utilisation de /proc et /dev/random a été interrompue. Certaines classes (par exemple, Data_Store), structures et énumérations ont été supprimées de l'API. Les retours et l'utilisation de pointeurs nus ont été interrompus autant que possible.
  • Ajout de la prise en charge du protocole TLS 1.3. La prise en charge de TLS 1.0, TLS 1.1 et DTLS 1.0 a été abandonnée. La prise en charge des suites de chiffrement DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK et Camellia CBC, des chiffrements anonymes et des hachages SHA-1 a été supprimée de l'implémentation TLS.
  • Ajout de la prise en charge de l'algorithme de cryptographie post-quantique Kyber, qui résiste à la sélection sur un ordinateur quantique.
  • Ajout de la prise en charge de l'algorithme de cryptographie post-quantique Dilithium pour travailler avec les signatures numériques.
  • Ajout de la prise en charge du hachage de courbe point sur elliptique à l'aide de la technique SSWU (draft-irtf-cfrg-hash-to-curve).
  • Ajout de la prise en charge de la fonction de hachage cryptographique BLAKE2b.
  • Nouvelle API proposée T::new_object renvoyant unique_ptr au lieu d'un simple pointeur "T*".
  • Nouvelles fonctions et API ajoutées : X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, require_entire_message, SymmetricAlgorithm::has_keying_material. Un grand nombre de nouvelles fonctions ont été ajoutées pour être utilisées dans le code C (C89).
  • L'implémentation de l'algorithme Argon2 utilise les instructions AVX2.
  • Taille de table réduite dans les implémentations Camellia, ARIA, SEED, DES et Whirlpool.
  • Une nouvelle implémentation de DES/3DES est proposée, protégée contre la plupart des classes d'attaques par canal secondaire qui évaluent l'état du cache.
  • L'implémentation SHACAL2 est optimisée pour les systèmes basés sur les architectures ARMv8 et POWER.
  • Le code pour calculer les bits de parité, convertir bcrypt / base64 et déterminer le type de chaîne ASN.1 est exempt de recherches dans les tables et est désormais indépendant des données en cours de traitement (un temps constant est effectué)

Source: opennet.ru

Ajouter un commentaire