Botan Cryptographic Library Version 3.0.0

Die Kryptografiebibliothek Botan 3.0.0 ist jetzt für die Verwendung im NeoPG-Projekt, einem Zweig von GnuPG 2, verfügbar. Die Bibliothek bietet eine große Sammlung vorgefertigter Grundelemente, die im TLS-Protokoll, X.509-Zertifikaten, AEAD-Chiffren und TPM-Modulen verwendet werden , PKCS#11, Passwort-Hashing und Post-Quantum-Kryptographie (Hash-basierte Signaturen und McEliece-basierte Schlüsselvereinbarung). Die Bibliothek ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.

Zu den Änderungen in der neuen Version gehören:

  • Die Codebasis ermöglicht die Verwendung des C++20-Standards (zuvor wurde C++11 verwendet); entsprechend wurden die Anforderungen an Compiler erhöht – für die Assemblierung sind nun mindestens GCC 11, Clang 14 oder MSVC 2022 erforderlich. Unterstützung für HP- und Pathscale-Compiler sowie Google NaCL- und IncludeOS-Projekte wurden eingestellt.
  • Es wurden viele Änderungen vorgenommen, die die Abwärtskompatibilität verletzen. Viele veraltete Header-Dateien wurden entfernt, beispielsweise diejenigen, die für bestimmte Algorithmen spezifisch sind (aes.h usw.). Implementierungen von Funktionen und Algorithmen, die zuvor als veraltet erklärt wurden, wurden entfernt (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Bei der Generierung der Entropie für den Pseudozufallszahlengenerator haben wir auf die Verwendung von /proc und /dev/random verzichtet. Einige Klassen (z. B. Data_Store), Strukturen und Aufzählungen wurden aus der API entfernt. Die Rückgabe und Verwendung bloßer Schilder wurde nach Möglichkeit eingestellt.
  • Unterstützung für das TLS 1.3-Protokoll hinzugefügt. Die Unterstützung für TLS 1.0, TLS 1.1 und DTLS 1.0 wurde eingestellt. Die Unterstützung für DSA-, SRP-, SEED-, AES-128 OCB-, CECPQ1-, DHE_PSK- und Camellia CBC-Verschlüsselungssammlungen, anonyme Verschlüsselungen und SHA-1-Hashes wurde aus der TLS-Implementierung entfernt.
  • Unterstützung für den Kyber-Post-Quanten-Kryptographie-Algorithmus hinzugefügt, der auf einem Quantencomputer resistent gegen Brute-Force ist.
  • Unterstützung für den Dilithium-Post-Quanten-Kryptographie-Algorithmus für die Arbeit mit digitalen Signaturen hinzugefügt.
  • Unterstützung für das Hashing im Elliptic-Curve-Point-Format mithilfe der SSWU-Technik (Draft-IRTF-CFRG-Hash-to-Curve) hinzugefügt.
  • Unterstützung für die kryptografische Hash-Funktion BLAKE2b hinzugefügt.
  • Es wurde eine neue Programmierschnittstelle T::new_object vorgeschlagen, die einen unique_ptr zurückgibt anstelle eines bloßen „T*“-Zeigers.
  • Neue Funktionen und API hinzugefügt: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, require_entire_message, SymmetricAlgorithm::has_keying_material. Zahlreiche neue Funktionen zur Verwendung im C-Code (C89) hinzugefügt.
  • Die Implementierung des Argon2-Algorithmus verwendet AVX2-Anweisungen.
  • Die Größe von Tabellen in Implementierungen der Algorithmen Camellia, ARIA, SEED, DES und Whirlpool wurde reduziert.
  • Es wird eine neue Implementierung von DES/3DES vorgeschlagen, die vor den meisten Klassen von Seitenkanalangriffen geschützt ist, die den Zustand des Caches auswerten.
  • Die SHACAL2-Implementierung ist für Systeme optimiert, die auf ARMv8- und POWER-Architekturen basieren.
  • Der Code zur Berechnung der Paritätsbits, zur bcrypt/base64-Konvertierung und zur Bestimmung des ASN.1-String-Typs wird von Tabellensuchen befreit und ist nun unabhängig von den verarbeiteten Daten (läuft in konstanter Zeit)

Source: opennet.ru

Kommentar hinzufügen