Veröffentlichung der kryptografischen Bibliothek Botan 3.0.0

Die Veröffentlichung der kryptografischen Bibliothek Botan 3.0.0, die im NeoPG-Projekt, einem Fork von GnuPG 2, verwendet wird, ist jetzt verfügbar. Diese Bibliothek bietet eine umfangreiche Sammlung von vorgefertigten Primitiven, die in den Protokollen TLS, in X.509-Zertifikaten, AEAD-Verschlüsselungen, TPM-Modulen, PKCS#11, Passwort-Hashing und in der post-quanten Kryptografie (Hash-basierte Signaturen und Schlüsselvereinbarung auf Basis von McEliece) verwendet werden. Die Bibliothek ist in C++ geschrieben und wird unter der BSD-Lizenz bereitgestellt.

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

  • In der Codebasis wird die Verwendung des Standards C++20 erlaubt (zuvor wurde C++11 verwendet), weshalb die Anforderungen an die Compiler erhöht wurden – zum Kompilieren sind nun mindestens GCC 11, Clang 14 oder MSVC 2022 erforderlich. Die Unterstützung für die Compiler HP und Pathscale sowie für die Projekte Google NaCL und IncludeOS wurde eingestellt.
  • Eine umfangreiche Änderung wurde vorgenommen, die die Abwärtskompatibilität beeinträchtigt. Viele veraltete Header-Dateien wurden entfernt, darunter Algorithmen-spezifische Dateien wie aes.h und ähnliche. Implementierungen von Funktionen und Algorithmen, die zuvor als veraltet gekennzeichnet waren (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1), wurden entfernt. Bei der Entropiegenerierung für den Zufallszahlengenerator wird die Verwendung von /proc und /dev/random eingestellt. Einige Klassen (z. B. Data_Store), Strukturen und Aufzählungen wurden aus der API entfernt. Sofern möglich, wird die Rückgabe und Verwendung von raw Pointern eingestellt.
  • Die Unterstützung für das TLS 1.3-Protokoll wurde hinzugefügt. Die Unterstützung für TLS 1.0, TLS 1.1 und DTLS 1.0 wurde eingestellt. Die Implementierung von TLS hat die Unterstützung für die Cipher-Suiten DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK und Camellia CBC sowie anonyme Chiffren und SHA-1-Hashes entfernt.
  • Die Unterstützung für den postquantencomputing-sicheren Kryptographien-Algorithmus Kyber wurde hinzugefügt.
  • Die Unterstützung für den postquantencomputing-sicheren Kryptographien-Algorithmus Dilithium zur Verarbeitung von digitalen Signaturen wurde hinzugefügt.
  • Die Unterstützung für das Hashing im Punktformat auf einer elliptischen Kurve wurde hinzugefügt, das die SSWU-Technik (draft-irtf-cfrg-hash-to-curve) verwendet.
  • Unterstützung für die kryptografische Hash-Funktion BLAKE2b hinzugefügt.
  • Eine neue Programmierschnittstelle T::new_object vorgeschlagen, die unique_ptr<T> anstelle eines rohen Zeigers „T*“ zurückgibt.
  • Neue Funktionen und APIs hinzugefügt: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Eine große Anzahl neuer Funktionen für die Verwendung in C-Code (C89) wurde hinzugefügt.
  • Der Argon2-Algorithmus verwendet AVX2-Befehle.
  • Die Größe der Tabellen in den Implementierungen der Algorithmen Camellia, ARIA, SEED, DES und Whirlpool wurde reduziert.
  • Eine neue Implementierung von DES/3DES vorgeschlagen, die gegen die meisten Klassen von Nebenkanalangriffen abgesichert ist, die den Cache-Zustand bewerten.
  • Die SHACAL2-Implementierung wurde für Systeme mit ARMv8- und POWER-Architekturen optimiert.
  • Der Code zur Berechnung der Paritätsbits, zur Umwandlung von bcrypt/base64 und zur Bestimmung des ASN.1-Stringtyps wurde von der Tabellensuche befreit und hängt nun nicht mehr von den verarbeiteten Daten ab (wird in konstanter Zeit ausgeführt).

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster