Mit der Pseudozufallsfunktion (PRF) können Sie stabile pseudozufällige Ausgaben für eine bestimmte Eingabe mit beliebiger Länge erzeugen.
Da Tink auf Schlüsselsätzen arbeitet, stellt dieses Primitiv einen entsprechenden Satz von PRFs anstelle eines einzelnen PRF zur Verfügung. Die PRFs werden durch eine 32-Bit-Schlüssel-ID indexiert. Damit kann der Schlüssel rotiert werden, der zum Entfernen einer Information verwendet wird, ohne dass die vorherige Verknüpfung verloren geht.
PRF hat die folgenden Eigenschaften:
- Deterministisch: Die Berechnung eines PRF-Werts für eine bestimmte Eingabe liefert immer die gleiche Ausgabe.
- Zufälligkeit: Die Ausgabe einer PRF-Datei ist nicht von zufälligen Byte zu unterscheiden.
Schlüsseltyp auswählen
Wir empfehlen die Verwendung von HMAC_SHA256_PRF
für die meisten Anwendungsfälle, es gibt jedoch auch andere Optionen.
Im Allgemeinen gilt Folgendes:
HMAC_SHA512_PRF
kann je nach Eingabegröße und Besonderheiten der verwendeten Hardware schneller sein.HMAC_SHA512_PRF
ist der konservativste Modus, der für eine praktisch unbegrenzte Anzahl von Nachrichten verwendet werden kann.AES_CMAC_PRF
ist bei Systemen, die die AES-NI-Hardwarebeschleunigung unterstützen, am schnellsten.
Minimale Sicherheitsgarantien
- Ohne Kenntnis des Schlüssels ist PRF nicht von einer Zufallsfunktion zu unterscheiden.
- Mindestens 128-Bit-Sicherheit, auch in Szenarien mit mehreren Nutzern (wenn ein Angreifer nicht einen bestimmten Schlüssel angreift, sondern einen Schlüssel aus einem Satz von bis zu 232 Schlüsseln)
- Mindestens 16 Byte Ausgabe verfügbar
Beispielanwendungsfälle
Anwendungsfälle für PRF sind unter anderem das deterministische Entfernen personenidentifizierbarer Informationen, verschlüsselte Hash-Funktionen und das Erstellen von Sub-IDs, die eine Verknüpfung mit dem ursprünglichen Dataset nicht zulassen, ohne den Schlüssel zu kennen.
Während PRFs verwendet werden können, um die Authentizität einer Nachricht nachzuweisen, wird für diesen Anwendungsfall die Verwendung der einfachen MAC empfohlen, da diese die Verifizierung unterstützt. Dadurch werden die Sicherheitsprobleme vermieden, die häufig bei der Verifizierung auftreten, und die Schlüsselrotation wird automatisch unterstützt. Sie ermöglicht auch nicht-deterministische Algorithmen.