Passa al contenuto principale

7.2.1. Input Length Restrictions (Restrizioni sulla lunghezza dell'input)

7.2.1. Input Length Restrictions (Restrizioni sulla lunghezza dell'input)

Questo documento definisce LabeledExtract() e LabeledExpand() basandosi sui KDF elencati sopra. Queste funzioni aggiungono prefissi ai rispettivi input ikm e info prima di chiamare le funzioni Extract() ed Expand() del KDF. Ciò porta a una riduzione della lunghezza massima di input disponibile per gli input psk, psk_id, info, exporter_context, ikm, cioè i parametri di lunghezza variabile forniti dalle applicazioni HPKE. La tabella seguente elenca le lunghezze massime consentite di questi campi per i KDF definiti in questo documento, come limiti inclusivi in byte:

InputHKDF-SHA256HKDF-SHA384HKDF-SHA512
psk2^61 - 882^125 - 1522^125 - 152
psk_id2^61 - 932^125 - 1572^125 - 157
info2^61 - 912^125 - 1552^125 - 155
exporter_context2^61 - 1202^125 - 2002^125 - 216
ikm (DeriveKeyPair)2^61 - 842^125 - 1482^125 - 148

Tabella 4: Limiti di input dell'applicazione

Ciò mostra che i limiti sono solo marginalmente più piccoli della lunghezza massima di input della funzione hash sottostante; questi limiti sono grandi e improbabilmente raggiungibili nelle applicazioni pratiche. Le specifiche future che definiscono nuovi KDF DEVONO specificare limiti per questi parametri di lunghezza variabile.

Il limite RACCOMANDATO per questi valori è 64 byte. Ciò consentirebbe l'interoperabilità con implementazioni che allocano staticamente memoria per questi input per evitare allocazioni di memoria.

I valori per psk, psk_id, info e ikm, che sono input a LabeledExtract(), sono stati calcolati con la seguente espressione:

max_size_hash_input - Nb - size_version_label -
size_suite_id - size_input_label

Il valore per exporter_context, che è un input a LabeledExpand(), è stato calcolato con la seguente espressione:

max_size_hash_input - Nb - Nh - size_version_label -
size_suite_id - size_input_label - 2 - 1

In queste equazioni, max_size_hash_input è la lunghezza massima di input della funzione hash sottostante in byte, Nb è la dimensione del blocco della funzione hash sottostante in byte, size_version_label è la dimensione di "HPKE-v1" in byte ed è uguale a 7, size_suite_id è la dimensione di suite_id in byte ed è uguale a 5 per DHKEM (rilevante per ikm) e 10 per il resto di HPKE (rilevante per psk, psk_id, info ed exporter_context), e size_input_label è la dimensione in byte dell'etichetta utilizzata come parametro a LabeledExtract() o LabeledExpand(), il cui massimo è 13 tra tutte le etichette in questo documento.