Zum Hauptinhalt springen

10. Message Encoding (Nachrichtenkodierung)

10. Message Encoding (Nachrichtenkodierung)

Dieses Dokument spezifiziert keine Wire-Format-Kodierung für HPKE-Nachrichten. Anwendungen, die HPKE übernehmen, müssen daher einen eindeutigen Kodierungsmechanismus spezifizieren, der mindestens Folgendes umfasst: den gekapselten Wert (encapsulated value) enc, den oder die Chiffretextwerte (und die Reihenfolge, falls es mehrere gibt) sowie alle info-Werte, die nicht implizit sind. Ein Beispiel für einen nicht-impliziten Wert ist der öffentliche Schlüssel des Empfängers, der für die Kapselung verwendet wird und möglicherweise benötigt wird, wenn ein Empfänger mehr als einen öffentlichen Schlüssel hat.

Die in diesem Dokument verwendete AEAD-Schnittstelle basiert auf [RFC5116], die einen einzelnen Chiffretextwert erzeugt und verarbeitet. Wie in [RFC5116] beschrieben, enthält dieser Chiffretextwert den verschlüsselten Klartext sowie alle Authentifizierungsdaten, die auf eine Weise kodiert sind, die durch das individuelle AEAD-Schema beschrieben wird. Einige Implementierungen sind nicht auf diese Weise strukturiert und liefern stattdessen einen separaten Chiffretext und eine Authentifizierungs-Tag. Wenn solche AEAD-Implementierungen in HPKE-Implementierungen verwendet werden, muss die HPKE-Implementierung diese Eingaben innerhalb von Seal() zu einem einzelnen Chiffretextwert kombinieren und sie innerhalb von Open() analysieren, wobei die Analysedetails durch das AEAD-Schema definiert werden. Zum Beispiel wird bei den in diesem Dokument spezifizierten AES-GCM-Schemas das GCM-Authentifizierungs-Tag in den letzten Nt Bytes der Chiffretextausgabe platziert.