Passa al contenuto principale

10. Message Encoding (Codifica dei messaggi)

10. Message Encoding (Codifica dei messaggi)

Questo documento non specifica una codifica in formato wire per i messaggi HPKE. Le applicazioni che adottano HPKE devono quindi specificare un meccanismo di codifica non ambiguo che includa, come minimo: il valore incapsulato enc, i valori di testo cifrato (e l'ordine se ce ne sono più di uno), e tutti i valori info che non sono impliciti. Un esempio di valore non implicito è la chiave pubblica del destinatario utilizzata per l'incapsulamento, che potrebbe essere necessaria se un destinatario ha più di una chiave pubblica.

L'interfaccia AEAD utilizzata in questo documento si basa su [RFC5116], che produce e consuma un singolo valore di testo cifrato. Come discusso in [RFC5116], questo valore di testo cifrato contiene il testo in chiaro crittografato così come tutti i dati di autenticazione, codificati in un modo descritto dal singolo schema AEAD. Alcune implementazioni non sono strutturate in questo modo, fornendo invece un testo cifrato e un tag di autenticazione separati. Quando tali implementazioni AEAD vengono utilizzate nelle implementazioni HPKE, l'implementazione HPKE deve combinare questi input in un singolo valore di testo cifrato all'interno di Seal() e analizzarli all'interno di Open(), dove i dettagli di analisi sono definiti dallo schema AEAD. Ad esempio, con gli schemi AES-GCM specificati in questo documento, il tag di autenticazione GCM viene posizionato negli ultimi Nt byte dell'output del testo cifrato.