Zum Hauptinhalt springen

2.13. Erzeugung von Schlüsselmaterial

2.13. Erzeugung von Schlüsselmaterial​

Im Kontext der IKE-SA werden vier kryptographische Algorithmen ausgehandelt: ein Verschlüsselungsalgorithmus, ein Integritätsschutzalgorithmus, eine Diffie-Hellman-Gruppe und eine Pseudozufallsfunktion (PRF). Die PRF wird zum Aufbau des Schlüsselmaterials für alle in der IKE-SA und den Child-SAs verwendeten kryptographischen Algorithmen genutzt.

Wir nehmen an, dass jeder Verschlüsselungs- und Integritätsschutzalgorithmus einen Schlüssel fester Größe verwendet und dass jeder zufällig gewählte Wert dieser festen Größe als geeigneter Schlüssel dienen kann. Für Algorithmen, die einen variablen Schlüssel akzeptieren, MUSS eine feste Schlüsselgröße als Teil der ausgehandelten kryptographischen Transformation angegeben werden (siehe Abschnitt 3.3.5 für die Definition des Schlüssellängen-Transformationsattributs). Für Algorithmen, bei denen nicht alle Werte gültige Schlüssel sind (wie DES oder 3DES mit Schlüsselparität), MUSS das Verfahren, mit dem Schlüssel aus beliebigen Werten abgeleitet werden, durch die kryptographische Transformation festgelegt sein.

Für auf Hash-based Message Authentication Code (HMAC) basierende Integritätsschutzfunktionen ist die feste Schlüsselgröße die Größe der Ausgabe der zugrunde liegenden Hashfunktion.

Es wird angenommen, dass PRFs Schlüssel beliebiger Länge akzeptieren, aber eine bevorzugte Schlüsselgröße haben. Die bevorzugte Schlüsselgröße MUSS als Länge von SK_d, SK_pi und SK_pr verwendet werden (siehe Abschnitt 2.14). Für auf HMAC-Konstruktion basierende PRFs ist die bevorzugte Schlüsselgröße gleich der Länge der Ausgabe der zugrunde liegenden Hashfunktion. Andere PRF-Typen MÜSSEN ihre bevorzugte Schlüsselgröße angeben.

Schlüsselmaterial wird stets als Ausgabe des ausgehandelten PRF-Algorithmus abgeleitet. Da die benötigte Menge an Schlüsselmaterial größer als die Ausgabegröße der PRF sein kann, wird die PRF iterativ verwendet. Der Begriff „prf+" beschreibt eine Funktion, die basierend auf den Eingaben einer Pseudozufallsfunktion namens „prf" einen pseudozufälligen Strom ausgibt.

Im Folgenden bezeichnet | die Verkettung. prf+ ist definiert als:

prf+ (K,S) = T1 | T2 | T3 | T4 | ...

wobei: T1 = prf (K, S | 0x01) T2 = prf (K, T1 | S | 0x02) T3 = prf (K, T2 | S | 0x03) T4 = prf (K, T3 | S | 0x04) ...

Dies wird fortgesetzt, bis das gesamte für die Berechnung aller benötigten Schlüssel erforderliche Material von prf+ ausgegeben wurde. Die Schlüssel werden aus der Ausgabezeichenfolge ohne Berücksichtigung von Grenzen entnommen (z. B. wenn die benötigten Schlüssel ein 256-Bit-Advanced Encryption Standard (AES)-Schlüssel und ein 160-Bit-HMAC-Schlüssel sind und die prf-Funktion 160 Bit erzeugt, wird der AES-Schlüssel aus T1 und dem Anfang von T2 stammen, während der HMAC-Schlüssel aus dem Rest von T2 und dem Anfang von T3 stammt).

Die an das Ende jeder prf-Funktion angehängte Konstante ist ein einzelnes Oktett. Die prf+-Funktion ist nicht über das 255-fache der Ausgabegröße der prf-Funktion hinaus definiert.