Aller au contenu principal

7.2.1. Input Length Restrictions (Restrictions de longueur d'entrée)

7.2.1. Input Length Restrictions (Restrictions de longueur d'entrée)

Ce document définit LabeledExtract() et LabeledExpand() en se basant sur les KDF listés ci-dessus. Ces fonctions ajoutent des préfixes à leurs entrées respectives ikm et info avant d'appeler les fonctions Extract() et Expand() du KDF. Cela conduit à une réduction de la longueur d'entrée maximale disponible pour les entrées psk, psk_id, info, exporter_context, ikm, c'est-à-dire les paramètres de longueur variable fournis par les applications HPKE. Le tableau suivant liste les longueurs maximales autorisées de ces champs pour les KDF définis dans ce document, en tant que limites inclusives en octets:

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

Tableau 4: Limites d'entrée d'application

Cela montre que les limites ne sont que marginalement plus petites que la longueur d'entrée maximale de la fonction de hachage sous-jacente; ces limites sont grandes et peu susceptibles d'être atteintes dans les applications pratiques. Les spécifications futures qui définissent de nouveaux KDF DOIVENT spécifier des limites pour ces paramètres de longueur variable.

La limite RECOMMANDÉE pour ces valeurs est de 64 octets. Cela permettrait l'interopérabilité avec les implémentations qui allouent statiquement de la mémoire pour ces entrées afin d'éviter les allocations de mémoire.

Les valeurs pour psk, psk_id, info et ikm, qui sont des entrées de LabeledExtract(), ont été calculées avec l'expression suivante:

max_size_hash_input - Nb - size_version_label -
size_suite_id - size_input_label

La valeur pour exporter_context, qui est une entrée de LabeledExpand(), a été calculée avec l'expression suivante:

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

Dans ces équations, max_size_hash_input est la longueur d'entrée maximale de la fonction de hachage sous-jacente en octets, Nb est la taille de bloc de la fonction de hachage sous-jacente en octets, size_version_label est la taille de "HPKE-v1" en octets et égale 7, size_suite_id est la taille du suite_id en octets et égale 5 pour DHKEM (pertinent pour ikm) et 10 pour le reste de HPKE (pertinent pour psk, psk_id, info et exporter_context), et size_input_label est la taille en octets de l'étiquette utilisée comme paramètre de LabeledExtract() ou LabeledExpand(), dont le maximum est 13 parmi toutes les étiquettes de ce document.