Zum Hauptinhalt springen

4.1.2. AES in f8-mode (AES im f8-Modus)

4.1.2. AES in f8-mode (AES im f8-Modus)

Um UMTS (Universal Mobile Telecommunications System, d. h. 3G-Netzwerke) Daten zu verschlüsseln, wurde eine Lösung (siehe [f8-a] [f8-b]) entwickelt, die als f8-Algorithmus bekannt ist. Auf hoher Ebene ist das vorgeschlagene Schema eine Variante des Output Feedback Mode (OFB) [HAC], mit einer ausgefeilteren Initialisierungs- und Rückkopplungsfunktion. Wie bei normalem OFB besteht der Kern aus einer Blockchiffre. Wir definieren hier auch die Verwendung von AES als Blockchiffre zur Verwendung in dem, was wir "f8-Betriebsmodus" RTP-Verschlüsselung nennen werden. Der AES f8-Modus SOLL dieselben Standardgrößen für Sitzungsschlüssel und Salz wie der AES-Zählermodus verwenden.

Abbildung 4 zeigt die Struktur der Blockchiffre E, die im f8-Modus läuft.

                   IV
|
v
+------+
| |
+--->| E |
| +------+
| |
m -> (*) +-----------+-------------+-- ... ------+
| IV' | | | |
| | j=1 -> (*) j=2 -> (*) ... j=L-1 ->(*)
| | | | |
| | +-> (*) +-> (*) ... +-> (*)
| | | | | | | |
| v | v | v | v
| +------+ | +------+ | +------+ | +------+
k_e ---+--->| E | | | E | | | E | | | E |
| | | | | | | | | | |
+------+ | +------+ | +------+ | +------+
| | | | | | |
+------+ +--------+ +-- ... ----+ |
| | | |
v v v v
S(0) S(1) S(2) . . . S(L-1)

Abbildung 4. f8-Betriebsmodus (Sternchen, (*), bezeichnet bitweises XOR). Die Abbildung stellt den KG in Abbildung 3 dar, wenn AES-f8 verwendet wird.

4.1.2.1. f8 Schlüsselstromgenerierung

Der Initialisierungsvektor (Initialization Vector, IV) SOLL wie in Abschnitt 4.1.2.2 (und in Abschnitt 4.1.2.3 für SRTCP) beschrieben bestimmt werden.

Seien IV', S(j) und m n_b-Bit-Blöcke. Der Schlüsselstrom, S(0) ||... || S(L-1), für eine N-Bit-Nachricht SOLL definiert werden, indem IV' = E(k_e XOR m, IV) und S(-1) = 00..0 gesetzt werden. Für j = 0,1,..,L-1, wobei L = N/n_b (auf die nächste Ganzzahl aufgerundet, falls es nicht bereits eine Ganzzahl ist), berechne

S(j) = E(k_e, IV' XOR j XOR S(j-1))

Beachten Sie, dass der IV nicht direkt verwendet wird. Stattdessen wird er unter einem anderen Schlüssel durch E geleitet, um einen internen "maskierten" Wert (bezeichnet als IV') zu erzeugen, um zu verhindern, dass ein Angreifer bekannte Eingabe/Ausgabe-Paare erhält.

Die Rolle des internen Zählers j besteht darin, kurze Schlüsselstromzyklen zu verhindern. Der Wert der Schlüsselmaske m SOLL sein

m = k_s || 0x555..5,

d. h. der Sitzungssalzschlüssel, an den das Binärmuster 0101.. angehängt wird, um die gesamte gewünschte Schlüsselgröße n_e zu füllen.

Der Sender SOLLTE NICHT mehr als 2^32 Blöcke generieren, was ausreicht, um 2^39 Bits Schlüsselstrom zu generieren. Im Gegensatz zum Zählermodus gibt es keinen absoluten Schwellenwert, oberhalb (unterhalb) dessen f8 garantiert unsicher (sicher) ist. Die obige Grenze wurde gewählt, um mit ausreichendem Sicherheitsabstand die Wahrscheinlichkeit degenerativen Verhaltens bei der f8-Schlüsselstromgenerierung zu begrenzen.

4.1.2.2. f8 SRTP IV-Bildung

Der Zweck der folgenden IV-Bildung besteht darin, eine Funktion bereitzustellen, die wir implizite Header-Authentifizierung (implicit header authentication, IHA) nennen, siehe Abschnitt 9.5.

Der SRTP IV für 128-Bit-Block AES-f8 SOLL auf folgende Weise gebildet werden:

IV = 0x00 || M || PT || SEQ || TS || SSRC || ROC

M, PT, SEQ, TS, SSRC SOLLEN aus dem RTP-Header entnommen werden; ROC stammt aus dem kryptographischen Kontext.

Das Vorhandensein des SSRC als Teil des IV ermöglicht die Verwendung von AES-f8, wenn ein Hauptschlüssel zwischen mehreren Strömen innerhalb derselben RTP-Sitzung geteilt wird, siehe Abschnitt 9.1.

4.1.2.3. f8 SRTCP IV-Bildung

Der SRTCP IV für 128-Bit-Block AES-f8 SOLL auf folgende Weise gebildet werden:

IV= 0..0 || E || SRTCP index || V || P || RC || PT || length || SSRC

wobei V, P, RC, PT, length, SSRC aus dem ersten Header im zusammengesetzten RTCP-Paket entnommen werden SOLLEN. E und SRTCP index sind die 1-Bit- und 31-Bit-Felder, die dem Paket hinzugefügt wurden.