Frage:
HKDF und Key Stretching
James
2013-07-02 16:22:21 UTC
view on stackexchange narkive permalink

Ich dachte, dass alle Schlüsselableitungsfunktionen eine Schlüsseldehnungsphase durchführen würden, indem sie eine Art Prozess iterieren. Aber ich kann diesen Prozess in HKDF nicht sehen. HKDF führt keine Schlüsselverstärkung durch?

Wenn ich eine Passphrase als Eingabe habe und beispielsweise 1024 Bytes benötige, die von dieser Passphrase abgeleitet sind (einige Bytes für die Verschlüsselung, einige Bytes für einen MAC). Was würden Sie empfehlen? Direkt für PBKDF2? Oder HKDF auf irgendeine Weise verwenden?

Einer antworten:
Thomas Pornin
2013-07-02 16:35:51 UTC
view on stackexchange narkive permalink

HKDF ist eine Schlüsselableitungsfunktion: Sie wandelt einen symmetrischen Schlüssel (eine Reihe von Bytes) in einen anderen symmetrischen Schlüssel um, der länger sein kann (das ist der Punkt des Übung).

Das Durchführen mehrerer innerer Iterationen, um die Funktion langsam zu machen, ist ein Abwehrmechanismus, der sinnvoll ist, wenn die Eingabetaste von Natur aus eine niedrige Entropie aufweist - z Wenn es sich um ein Passwort handelt (das ist eine unvermeidbare biologische Tatsache: Als Speichermedium für zufällig aussehende Daten saugt das menschliche Gehirn). Das Ableiten eines Schlüssels von einem Kennwort ist eine komplexere Aufgabe als das einfache Ableiten eines Schlüssels von einem anderen Schlüssel. HKDF gibt nicht vor, das "Passwort" -Bit zu verarbeiten. Dazu benötigen Sie PBKDF2, das passwortbasiert ist (das ist der "PB" -Teil) und auch HMAC verwendet, diesmal mit einer konfigurierbaren (und möglicherweise großen) Anzahl von Iterationen.

HKDF ist ein Baustein für einige kryptografische Protokolle, der nicht direkt verwendet werden kann.

Schön gesagt! Ehrlich gesagt denke ich, dass Sie auch einige der Wikipedia-Artikel auffrischen sollten. Es würde vielen Studenten (und Nicht-Studenten) dienen, wenn sie versuchen, sich über Dinge zu informieren.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...