EAX-Modus
Der EAX-Modus ist die Bezeichnung für einen Betriebsmodus für kryptographische Blockchiffren.
Entwicklung
Es handelt sich um einen authentifizierten Verschlüsselungsmodus mit assoziierten Daten (Authenticated Encryption with Associated Data; AEAD), der entwickelt wurde, um sowohl Authentifikation als auch Geheimhaltung von Nachrichten zu ermöglichen (sog. authentifizierte Verschlüsselung). Dies wird mit zwei Durchgängen pro Block erreicht: ein Durchgang für Geheimhaltung und ein Durchgang für Authentifizierung. Der EAX-Modus wurde am 3. Oktober 2003 zur Standardisierung bei der NIST eingereicht, um dort den CCM-Modus als Standard-AEAD-Modus abzulösen, da diesem verschiedene Eigenschaften fehlen und er komplexer ist als EAX.
Verschlüsselung und Authentifizierung
EAX ist ein flexibles, Nonce-benutzendes Schema für AEAD, das in zwei Durchgängen durchgeführt wird, weder Anforderungen an die benutzte Blockchiffre stellt noch an die Blockgröße, und dabei gleichzeitig Nachrichten beliebiger Länge zulässt. Die Größe des erzeugten Authentifizierungs-Anhangs kann bis zur Blockgröße beliebig gewählt werden. Die zugrunde liegende Blockchiffre wird im CTR-Modus für die Verschlüsselung benutzt und danach als OMAC für die Authentifizierung. Beide Schritte werden für jeden Block durchgeführt und mit der im Standard beschriebenen Methode zusammengeführt. Die Art der Zusammenführung kann als Spezialisierung der generelleren "EAX2-Methode" gesehen werden, die für den Beweis der Sicherheit im zugrundeliegenden Papier "The EAX Mode of Operation" beschrieben wird.[1]
Die Referenzimplementierung in der Einreichung zum Standard benutzt AES als Blockchiffre, so dass der EAX-Modus häufig als Modus von AES betrachtet wird, davon aber im Grunde unabhängig ist.
Leistung
Dadurch, dass EAX zwei Durchläufe für jeden Block macht, ist es langsamer als andere AEAD-Methoden, die nur einen Durchlauf benötigen. Trotzdem hat EAX verschiedene nützliche Eigenschaften:
- bewiesene Sicherheit, basierend auf der Sicherheit der zugrundeliegenden Blockchiffre
- keine Vergrößerung der Nachricht, bis auf den Authentifizierungsanhang, der zusätzlich übertragen werden muss
- da die Verschlüsselung ausschließlich den CTR-Modus der Blockchiffre benutzt, kann die Implementierung in bestimmten Fällen einfacher ausfallen, was besonders für Hardware-Implementierungen nützlich ist
- der Modus ist "online", er kann also für Datenströme unbekannter Länge benutzt werden, ohne dabei mehr als konstanten Speicher zu verbrauchen
- zusätzlich zu der verschlüsselten Nachricht können auch zusätzliche Daten authentifiziert werden, was beispielsweise für Sitzungsparameter oder Metadaten benutzt werden kann
Der CCM-Modus, den der EAX ablösen soll, besitzt insbesondere die letzten beiden genannten Punkte nicht.
Patentsituation
Die Erfinder des EAX-Modus, Mihir Bellare, Phillip Rogaway und David Wagner haben ihren Vorschlag der Öffentlichkeit zur Verfügung gestellt und bekannt gegeben, dass ihnen keine Patente bekannt sind, die den Modus abdecken. Darum wird davon ausgegangen, dass der EAX-Modus patentfrei und beliebig benutzbar ist.
Weblinks
- EAX specifications, Test Vectors and Intellectual Property Statement (PDF; 724 kB)
- A Critique of CCM - February 2003
- ANSI C12 22 site
- EAX specifications and Intellectual Property Statement at NIST (PDF; 385 kB)
- The EAX Mode of Operation - January 18, 2004
- EAX: A Conventional Authenticated-Encryption Mode - Apr 13, 2003, last revised Sep 9, 2003
Implementierungen
- C++: Dr. Brian Gladmans kryptographische Bibliothek implementiert den EAX-Modus
- Pascal / Delphi: Wolfgang Ehrhardts kryptographische Bibliothek implementiert den EAX-Modus
- Java: BouncyCastle-Implementierung des EAX-Modus
- LibTomCrypt: Sammlung von diversen kryptographischen Methoden, darunter auch der EAX-Modus.