Einführung in XAES-256-GCM
- XAES-256-GCM ist ein Algorithmus für authentifizierte Verschlüsselung (AEAD), der einen 256-Bit-Schlüssel und einen 192-Bit-Nonce verwendet.
- Hauptziele:
- sichere Unterstützung für zufällig erzeugte Nonces
- FIPS-140-Konformität
- einfache Implementierung in gängigen Kryptografie-Bibliotheken
Designziele von XAES-256-GCM
- Verwendung großer Nonces, damit sie für unbegrenzt viele Nachrichten sicher zufällig erzeugt werden können
- Einsetzbarkeit in unterschiedlichen Umgebungen durch FIPS-140-Konformität
- geringer Aufwand für Nutzer durch eine einfache Implementierung
Funktionsweise von XAES-256-GCM
- verwendet eine erweiterte Nonce-Struktur auf Basis von AES-256-GCM
- berechnet einen abgeleiteten Schlüssel aus Eingabeschlüssel und Nonce
- verarbeitet Nachrichten mit drei AES-256-Aufrufen
Implementierung und Optimierung
- Die Go-Referenzimplementierung umfasst weniger als 100 Zeilen Code.
- Verwendet nur
crypto/cipher und crypto/aes aus der Standardbibliothek.
- Lässt sich mit NIST SP 800-108r1 KDF und NIST AES-256-GCM AEAD beschreiben.
Implementierungen von Drittanbietern und Kompatibilität
- Es gibt Implementierungen von Drittanbietern für .NET 8+, pyca/cryptography und die Web Cryptography API.
- Für FIPS-140-Konformität darf die Anzahl der Runden nicht verändert werden.
Alternativen und Testvektoren
- Es gibt verschiedene Alternativen wie AES-GCM-SIV.
- Enthält Testvektoren für wichtige Codepfade.
Zusammenfassung
- XAES-256-GCM ist als sicheres, konformes und interoperables AEAD konzipiert.
- Es ergänzt XChaCha20Poly1305 und AES-GCM-SIV.
- Es besteht die Hoffnung, dass es in die Go-Standardbibliothek aufgenommen wird.
Meinung von GN⁺
- Bemerkenswert an XAES-256-GCM ist die höhere Sicherheit durch die Verwendung großer Nonces.
- Durch FIPS-140-Konformität ist es in unterschiedlichen Umgebungen einsetzbar.
- Die einfache Implementierung in Sprachen wie Go macht es für Entwickler nützlich.
- Auch Alternativen wie AES-GCM-SIV sind eine Überlegung wert.
- Bei der Einführung neuer Technologien sollten Leistung und Kompatibilität sorgfältig geprüft werden.
1 Kommentare
Hacker-News-Kommentare
Das Design ist sehr clever: CMAC-basiert, sodass sich der Schlüssel mit AES-CBC ableiten lässt, wenn Low-Level-Primitiven nicht verfügbar sind
Filippos Arbeit ist hervorragend: Sie löst das Problem, dass bei der Verwendung zufälliger Nonces der Schlüssel etwa alle 2^32 Nachrichten rotiert werden muss
Ich wünschte, das hätte es schon vor ein paar Jahren gegeben, als ich ein verschlüsseltes Dateisystem geschrieben habe
Ich hoffe, dass dies in einer FIPS-konformen Variante von age[1] für die Verschlüsselung von Archivdateien verwendet wird
Frage eines Nicht-Kryptografen: Ich frage mich, warum ein 192-Bit-Nonce verwendet wird und nicht 256 Bit
(Kollisionsrisiko von 2⁻³² bei 2⁸⁰ Nachrichten)