Zum Hauptinhalt springen

5.1.1 Encryption to a Public Key (Verschlüsselung an einen öffentlichen Schlüssel)

5.1.1 Encryption to a Public Key (Verschlüsselung an einen öffentlichen Schlüssel)

Die grundlegendste Funktion eines HPKE-Schemas besteht darin, die Verschlüsselung an den Inhaber eines gegebenen privaten KEM-Schlüssels zu ermöglichen. Die Prozeduren SetupBaseS() und SetupBaseR() etablieren Kontexte, die für einen gegebenen privaten Schlüssel jeweils zum Verschlüsseln und Entschlüsseln verwendet werden können.

Das gemeinsame KEM-Geheimnis wird über den KDF mit Informationen kombiniert, die den Schlüsselaustausch beschreiben, sowie mit dem expliziten info-Parameter, der vom Aufrufer bereitgestellt wird.

Der Parameter pkR ist ein öffentlicher Schlüssel, und enc ist ein gekapseltes gemeinsames KEM-Geheimnis.

def SetupBaseS(pkR, info):
shared_secret, enc = Encap(pkR)
return enc, KeyScheduleS(mode_base, shared_secret, info,
default_psk, default_psk_id)

def SetupBaseR(enc, skR, info):
shared_secret = Decap(enc, skR)
return KeyScheduleR(mode_base, shared_secret, info,
default_psk, default_psk_id)