Zum Hauptinhalt springen

Appendix B. Unterstützende Techniken (Supporting Techniques)

Dieser Anhang enthält die Spezifikationen der in diesem Dokument verwendeten unterstützenden Techniken, einschließlich Hash-Funktionen und Maskengenerierungsfunktionen.

B.1. Hash Functions (Hash-Funktionen)

Hash-Funktionen werden verwendet, um Nachrichten beliebiger Länge auf Ausgaben fester Länge abzubilden. Die in den Schemata dieses Dokuments verwendeten Hash-Funktionen sollten die folgenden Eigenschaften erfüllen:

  1. Urbildresistenz (Preimage Resistance): Gegeben einen Hash-Wert h, ist es rechnerisch nicht durchführbar, eine Nachricht m zu finden, so dass Hash(m) = h
  2. Zweite Urbildresistenz (Second Preimage Resistance): Gegeben eine Nachricht m1, ist es rechnerisch nicht durchführbar, eine andere Nachricht m2 zu finden, so dass Hash(m1) = Hash(m2)
  3. Kollisionsresistenz (Collision Resistance): Es ist rechnerisch nicht durchführbar, zwei beliebige verschiedene Nachrichten m1 und m2 zu finden, so dass Hash(m1) = Hash(m2)

Empfohlene Hash-Funktionen

Dieses Dokument empfiehlt die Verwendung der folgenden Hash-Funktionen:

Hash-FunktionAusgabelänge(Bits)Ausgabelänge(Bytes)Status
SHA-116020⚠️ Veraltet(nur Abwärtskompatibilität)
SHA-25625632✅ Empfohlen
SHA-38438448✅ Empfohlen
SHA-51251264✅ Empfohlen
SHA-512/22422428✅ Verfügbar
SHA-512/25625632✅ Verfügbar

ASN.1-Identifikation der Hash-Funktionen

Algorithmus-Identifikator für SHA-256:

id-sha256 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1
}

Algorithmus-Identifikator für SHA-384:

id-sha384 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 2
}

Algorithmus-Identifikator für SHA-512:

id-sha512 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 3
}

B.2. Mask Generation Functions (Maskengenerierungsfunktionen)

Eine Maskengenerierungsfunktion (Mask Generation Function, MGF) nimmt eine Oktettkette variabler Länge und eine erforderliche Ausgabelänge als Eingabe und erzeugt eine Ausgabe-Oktettkette der angegebenen Länge. Maskengenerierungsfunktionen können auf Hash-Funktionen oder anderen Funktionen basieren.

Die Hauptverwendung von Maskengenerierungsfunktionen besteht darin, zufällig aussehende Daten in Padding-Schemata zu generieren.

B.2.1. MGF1

MGF1 ist eine Maskengenerierungsfunktion, die auf einer Hash-Funktion basiert. MGF1 (mgfSeed, maskLen) nimmt einen Seed variabler Länge und eine erforderliche Maskenlänge als Eingabe und gibt eine Maske der angegebenen Länge aus.

MGF1 (mgfSeed, maskLen)

Eingabe (Input)

mgfSeed     Maskengenerierungs-Seed, Oktettkette beliebiger Länge
maskLen Erwartete Länge der Maske(in Oktetten)

Ausgabe (Output)

mask        Maske der Länge maskLen, Oktettkette

Fehler (Error)

"mask too long" (Maske zu lang)

Schritte (Steps)

  1. Wenn maskLen > 2^32 * hLen, geben Sie "mask too long" aus und stoppen Sie.

  2. Sei T eine leere Oktettkette.

  3. Für Zähler C von 0 bis ⌈maskLen / hLen⌉ - 1:

    • Konvertieren Sie Zähler C in eine Oktettkette C der Länge 4: C = I2OSP(C, 4)
    • Konkatenieren Sie den Hash von mgfSeed und C zu T: T = T || Hash(mgfSeed || C)
  4. Geben Sie die ersten maskLen Oktette von T als Maske aus.

MGF1-Optionen (MGF1 Options)

Die Standard-Hash-Funktion von MGF1 ist SHA-1. Für neue Anwendungen wird die Verwendung von SHA-256 oder einer höheren Hash-Funktion empfohlen.

ASN.1-Identifikation von MGF1 mit SHA-256:

id-mgf1 OBJECT IDENTIFIER ::= { pkcs-1 8 }

-- Der Parameter von MGF1 ist die verwendete Hash-Funktion
AlgorithmIdentifier { ALGORITHM:IOSet } ::= SEQUENCE {
algorithm ALGORITHM.&id({IOSet}),
parameters ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL
}

Sicherheitsüberlegungen für MGF

Im Random-Oracle-Modell, wenn die zugrunde liegende Hash-Funktion gut funktioniert, ist die Ausgabe von MGF1 rechnerisch von einer wirklich zufälligen Zeichenkette nicht zu unterscheiden. Dies macht MGF1 für die Verwendung in Schemata wie OAEP und PSS geeignet.