• Aucun résultat trouvé

L’amplification de confidentialité avec une famille de fonctions de hachage univer- selle est inconditionnellement sûre, en vertu du théorème [60] :

H(K|h, BE) ≥ k − 2−s

ln(2), (14.11)

où H(K|h, BE) est l’entropie de la clé sachant la fonction de hachage choisie par Alice et Bob et la chaîne obtenue par Ève à l’issue de la réconciliation, et s = ∆I − k est la différence entre le nombre de bits secrets ∆I9 contenus dans nos données réconciliées et la taille k de la clé finale. 9En toute généralité, ce théorème n’est pas valable pour l’entropie de Shannon, mais pour l’entropie de Rényi

d’ordre 2 définie par H2(X) = − log2

P

x∈Xp

2(X = x). Cependant, on montre que ces deux entropies sont

14.6 Universalité et paramètre de sécurité 177

Famille Temps Universalité

Multiplication dans GF (2l) avec l’algorithme "Shift and Add" 14 000 s ' 4 h 1

Multiplication dans GF (2l) avec la NTT 13,7 s 1

Fonctions de hachage utilisant directement la NTT 0,08 s 1, 00033 Composition des deux familles précédentes 0,27 s 1 + 10−2690 Tab. 14.3: Comparaison des vitesses des différentes fonctions de hachage présentées dans ce chapitre. Nous amplifions 400 000 bits en 11 000 bits secrets en utilisant un ordinateur de type Pentium IV, cadencé à 2,66 GHz. Les deux premières entrées concernent la famille H2, avec la multiplication qua-

dratique usuelle dans GF (2l), et avec la multiplication via la NTT. Bien entendu, ces deux procédures fournissent la même clé à l’issue de l’amplification de confidentialité. La troisième entrée mesure la vi- tesse des fonctions de hachage de la famille H3 introduite section 14.5. Cette famille permet de gagner

plusieurs ordres de grandeur sur le temps d’exécution, au prix de la perte de l’universalité de la famille de fonctions. Il est à noter que dans cette dernière mesure, les temps d’initialisation et de conversion de bits en valeurs entières est prépondérant devant le temps d’exécution de la NTT. La composition des familles H2 et H3 permet de se rapprocher suffisamment de l’universalité, pour une faible perte

en termes de vitesse. Pour les trois premiers cas, la vitesse d’amplification ne dépend que de la taille d’entrée. Pour le dernier cas, le temps de calcul est une fonction bilinéaire des tailles d’entrée et de sortie.

s est appelé «paramètre de sécurité». Ce théorème affirme que la fraction de la clé finale connue par l’espion est arbitrairement petite. Les s bits sacrifiés quantifient l’information accessible à l’espion, fixée par l’utilisateur final de la clé.

Ce théorème s’étend aux familles de fonctions de hachage non-universelles [7] :

H(K|h, BE) ≥ k − log2() −

2−s−log2()

ln(2) . (14.12)

Considérons le cas où la famille est proche de l’universalité (i.e.  − 1  1). L’équation précé- dente devient

H(K|h, BE) ≥ k −

2−s+  − 1

ln(2) . (14.13)

On remarque que la non-universalité d’une famille de fonctions de hachage vient contrer l’effet du paramètre de sécurité. Quantitativement, la non-universalité limite les valeurs possibles du paramètre de sécurité à s < − log2( − 1). Pour la famille non-universelle introduite dans la section précédente, on calcule s < 11, alors que les paramètres de sécurité couramment choisis atteignent 128 ou 256.

Il est possible d’améliorer l’universalité d’une famille en composant plusieurs fonc- tions de hachage, sans pour autant dégrader significativement la vitesse d’amplification. La composition de deux fonctions de hachage consiste à amplifier une première fois les b bits issus du décodage en i bits intermédiaires avec une première famille Ha a - universelle, puis à amplifier ces i bits en k bits avec une famille Hb b - universelle. On montre simplement [79] que l’universalité de la famille de fonctions de hachage composée est  = a2k−i+ b. En choisissant une famille Hb universelle (b = 1) et a ' 1, tout paramètre de sécurité s peut être atteint en choisissant i > k + s.

178 Chapitre 14 : Amplification de confidentialité

Illustrons cette propriété en composant les familles de fonctions de hachage rencontrées dans ce chapitre. Partant de 400 000 bits initiaux, nous appliquons notre fonction de hachage H3 non-universelle mais rapide pour obtenir 19 937 bits. Ensuite nous appliquons sur ces bits la fonction de hachage universelle mais lente H2 pour obtenir 11 000 bits secrets. La taille d’entrée de cette fonction (19 937 bits) est choisie d’après les polynômes irréductibles connus. Finalement, l’universalité de la fonction composée (notée H4) est  = 1 + 2−8937, ce qui autorise tous les paramètres de sécurité raisonnables (jusqu’à 8937). Notre généralisation des familles H2 à toutes tailles d’entrée et de sortie nous a permis d’implémenter la famille H4.

Le tableau 14.3 compare les vitesses respectives des différentes familles de fonctions de hachage que nous avons rencontrées.

Chapitre 15

Distillation d’une clé à travers un

réseau classique

Maintenant que nous connaissons de façon formelle les algorithmes nécessaires à l’obtention d’une clé secrète, nous devons tenir compte des contraintes liées à leur implémentation. La difficulté principale est de pouvoir faire communiquer, de façon concertée, deux programmes distants – l’un chez Alice, l’autre chez Bob. La structure générale de cette réconciliation distri- buée a été initiée par Gilles Van Assche et Cécile Neu. Nous l’avons étendue, achevée, et adaptée aux nouvelles méthodes de réconciliation ainsi qu’au canal classique fourni par les développeurs réseau du projet SECOQC.

15.1

Contraintes liées à l’utilisation d’un réseau

Lorsqu’Alice et Bob passent d’une réconciliation locale (c’est-à-dire dans laquelle le même programme s’occupe de l’encodage et du décodage), à une réconciliation distribuée entre deux programmes, voire deux machines, distincts, ils doivent établir un canal de communication, le canal classique. Ce changement introduit plusieurs contraintes de débit, de latence et de synchronisation.

Le nombre d’utilisations du canal classique, qui fixe le débit, doit être maîtrisé.

Alors qu’en local Alice et Bob peuvent accéder aux ressources du partenaire autant de fois et quand ils le désirent, le programme de réconciliation distribuée doit s’assurer qu’une ressource a été transférée avant d’être utilisée, et doit la sauvegarder s’il doit en faire usage ultérieurement. Les principales sources de consommation du canal classique sont regroupées table 15.1.

La latence du réseau restreint le nombre d’échanges réalisables. Dans un protocole dans lequel Alice et Bob s’échangent une grande quantité de petits messages, la latence du réseau, c’est-à-dire le temps mort associé à une communication élémentaire, devient cruciale. C’est le cas du protocole de réconciliation cascade. Le caractère nécessairement unidirectionnel de la réconciliation inverse lève cette barrière : les échanges de parité doivent s’opérer de Bob vers Alice, sans que Bob ne puisse utiliser de l’information envoyée par Alice dans son calcul. Ainsi Bob peut envoyer toutes ses parités d’une seule traite, rendant ainsi la contrainte de latence négligeable devant celle du débit. Notons tout de même que le protocole de réconciliation nécessite également l’envoi de plusieurs petits messages préalables, détaillés section 15.3. Une

180 Chapitre 15 : Distillation d’une clé à travers un réseau classique

Nature Usage Direction

Révélation des bases 1 Bob → Alice Échantillons révélés 16α Indifférent

Parités ≤ 4 Bob → Alice

Tab. 15.1: Usages du canal classique, en bits par symbole réconcilié, ainsi que le sens de communication dans le cas de la réconciliation inverse. α est la fraction d’échantillons révélés et chaque échantillon est transmis sur 16 bits. Nous omettons certains usages peu consommateurs en débit, comme les en-tête de messages, ou les usages non extensifs, comme la synchronisation et la transmission de paramètres.

trop grande latence du réseau pourrait ralentir l’échange de ces messages et donc nuire à la transmission. Dans ce cas, il est reste possible de compenser la latence par des blocs de taille plus grande, car le nombre de ces petits messages ne croît pas avec la taille d’un bloc de données.

Quand deux programmes communiquent entre eux, un protocole doit être défini pour décider de l’enchaînement des opérations. Un programme unique se déroule de façon séquentielle, l’ordonnancement des instructions découle directement de l’ordre des lignes de code du programme. Cet ordre de fait n’existe plus pour deux programmes concomitants ; ils doivent se mettre d’accord sur qui fait quelle action et quand. C’est le problème de la synchronisation. Dans la vie courante, des règles tacites permettent de réguler les échanges verbaux entre personnes. Deux ordinateurs dialoguant à travers un canal classique doivent obéir à des règles strictes et bien définies. En cas d’erreur, il n’existe pas de voie de rattrapage. . .