Zum Hauptinhalt springen

4. Requirements on AEAD Algorithm Specifications (Anforderungen an AEAD-Algorithmusspezifikationen)

4. Requirements on AEAD Algorithm Specifications (Anforderungen an AEAD-Algorithmusspezifikationen)

Jeder AEAD-Algorithmus MUSS ausschließlich Schlüssel mit einer festen Schlüssellänge K_LEN akzeptieren und DARF KEIN bestimmtes Datenformat für die als Eingabe übergebenen Schlüssel verlangen. Ein Algorithmus, der eine solche Struktur benötigt (z. B. mit Unter-Schlüsseln in einem bestimmten Parity-Check-Format), muss sie intern bereitstellen.

Jeder AEAD-Algorithmus MUSS jeden Klartext mit einer Länge zwischen null und P_MAX Oktetten einschließlich akzeptieren, wobei der Wert P_MAX algorithmusspezifisch ist. Der Wert von P_MAX MUSS größer als null sein und SOLLTE mindestens 65.536 (2^16) Oktette betragen. Diese Größe ist eine typische Obergrenze für Netzwerkdatenpakete. Andere Anwendungen können noch größere Werte von P_MAX verwenden; daher ist es wünschenswert, dass allgemein einsetzbare Algorithmen höhere Werte unterstützen.

Jeder AEAD-Algorithmus MUSS zugehörige Daten mit einer Länge zwischen null und A_MAX Oktetten einschließlich akzeptieren, wobei der Wert A_MAX algorithmusspezifisch ist. Der Wert von A_MAX MUSS größer als null sein und SOLLTE mindestens 65.536 (2^16) Oktette betragen. Andere Anwendungen können noch größere Werte von A_MAX verwenden; daher ist es wünschenswert, dass allgemein einsetzbare Algorithmen höhere Werte unterstützen.

Jeder AEAD-Algorithmus MUSS jede Nonce mit einer Länge zwischen N_MIN und N_MAX Oktetten einschließlich akzeptieren, wobei die Werte N_MIN und N_MAX algorithmusspezifisch sind. Die Werte N_MAX und N_MIN KÖNNEN gleich sein. Jeder Algorithmus SOLLTE eine Nonce mit einer Länge von zwölf (12) Oktetten akzeptieren. Randomisierte oder zustandsbehaftete Algorithmen, die unten beschrieben sind, KÖNNEN einen N_MAX-Wert von null haben.

Ein AEAD-Algorithmus KANN seinen Geheimtextausgang beliebig strukturieren; beispielsweise kann der Geheimtext einen Authentifizierungstag enthalten. Jeder Algorithmus SOLLTE eine Struktur wählen, die eine effiziente Verarbeitung ermöglicht.

Eine Operation der authentifizierten Verschlüsselung KANN eine Zufallsquelle einbeziehen oder nutzen, z. B. zur Erzeugung eines internen Initialisierungsvektors (initialization vector), der in die Geheimtextausgabe einfließt. Ein AEAD-Algorithmus dieser Art heißt randomisiert (randomized); zu beachten ist, dass nur die Verschlüsselung zufällig ist und die Entschlüsselung stets deterministisch ist. Ein randomisierter Algorithmus KANN einen N_MAX-Wert von null haben.

Eine Operation der authentifizierten Verschlüsselung KANN internen Zustand einbeziehen, der zwischen Aufrufen der Verschlüsselungsoperation erhalten bleibt, z. B. um die Konstruktion unterschiedlicher Werte zu ermöglichen, die im Algorithmus als interne Nonces verwendet werden. Ein AEAD-Algorithmus dieser Art heißt zustandsbehaftet (stateful). Diese Methode könnte von einem Algorithmus genutzt werden, um gute Sicherheit zu bieten, selbst wenn die Anwendung Nonces der Länge null übergibt. Ein zustandsbehafteter Algorithmus KANN einen N_MAX-Wert von null haben.

Die Spezifikation eines AEAD-Algorithmus MUSS die oben definierten Werte K_LEN, P_MAX, A_MAX, N_MIN und N_MAX enthalten. Zusätzlich MUSS sie die Anzahl der Oktette im größtmöglichen Geheimtext angeben, den wir C_MAX nennen.

Jeder AEAD-Algorithmus MUSS eine Beschreibung liefern, die die Länge des Klartexts zur Länge des Geheimtexts in Beziehung setzt. Diese Beziehung DARF NICHT von externen Parametern abhängen, etwa von einem Parameter für die Authentifizierungsstärke (z. B. Authentifizierungstag-Länge). Eine solche Abhängigkeit würde die Verwendung des Algorithmus verkomplizieren, weil die Informationen aus dem AEAD-Verzeichnis dann nicht ausreichen würden, um Interoperabilität sicherzustellen.

JEDE AEAD-Algorithmusspezifikation SOLLTE beschreiben, welche Sicherheitsverschlechterung aus einer unbeabsichtigten Wiederverwendung eines Nonce-Werts resultieren würde.

Jede AEAD-Algorithmusspezifikation SOLLTE einen Verweis auf eine ausführliche Sicherheitsanalyse enthalten. Dieses Dokument legt kein bestimmtes Sicherheitsmodell fest, da in der Literatur mehrere verschiedene Modelle verwendet wurden. Die Sicherheitsanalyse SOLLTE ein Sicherheitsmodell definieren oder darauf verweisen.

Ein Algorithmus, der randomisiert oder zustandsbehaftet ist, wie oben definiert, SOLLTE sich mit diesen Begriffen selbst beschreiben.