• Aucun résultat trouvé

3.3 Complétude de la primitive 1cc

3.3.1 Le protocole de mise en gage

Le protocole de mise en gage faisant l’objet de cette section est décrit dans la figure 3.2. Dans ce protocole, Alice est celle qui se met en gage et Bob est le receveur de la mise en gage. Le protocole est

Participants : L’envoyeuse Alice et le receveur Bob.

Entrées : Alice reçoit b ∈ {0, 1} et Bob ne reçoit aucune entrée. mise-en-gage1ccN,q,τ,r(b) :

1. Alice choisit une base aléatoire θ ∈ {0, 1}N selon la distribution uniforme et envoie N qubits

dans l’état H⊗θ|0Ni à Bob où H est la transformée de Hadamard.

2. Pour i = 1 . . . N , Alice et Bob font un appel à F1cc : Alice entre le bit θi, Bob entre le bit 1

avec probabilité q et le bit 0 avec probabilité 1 − q.

Soit t ⊂ [N ] l’ensemble des positions pour lesquelles l’entrée de Bob est 1, soit ¯t = [N ] \ t, et soit n = N − |t|. Alice interrompt le protocole si Bob a vérifié plus de 2qN positions.

3. Pour tout i ∈ t, Bob mesure le iequbit du registre qu’il a reçu d’Alice dans la base θ

iet vérifie

que le résultat est Hθi|0i. Si ce n’est pas le cas, il interrompt le protocole.

4. Bob choisit une matrice génératrice G d’un [n, k, d]-code correcteur linéaire avec taux k/n ≥ r et d/n ≥ τ , et il envoie G à Alice, qui vérifie que k/n ≥ r.

5. Alice choisit aléatoirement une fonction g ∈RGn parmi une famille Gn de fonctions de hachage

deux-universelles. Elle calcule le syndrome s de θ¯t pour le code correcteur. Finalement, elle

envoie g, s et w = g(θ¯t) ⊕ b à Bob. À la réception de ces informations, Bob produit la sortie

mise-en-gage.

ouverture1cc : 1. Alice envoie θ¯tet b à Bob.

2. Bob mesure le iequbit dans la base θ

i pour chaque i ∈ ¯t et vérifie que le résultat correspond

à Hθi|0i. Il s’assure aussi que θ¯

t a syndrome s pour le code correcteur généré par G, et que

g(θt¯)⊕w = b. Si un des tests ci-dessus échoue, il avorte le protocole. Sinon, il produit la sortie b.

Figure 3.2 – Protocole de mise en gage ΠF1cc

bc utilisant la primitive transfert sélectif à un bit. Pour se

mettre en gage à b ∈ {0, 1}, Alice et Bob exécutent le sous-protocole mise-en-gage1cc

N,q,τ,r(b) avec les

paramétré par N ∈ N, qui sert de paramètre de sécurité, et par les valeurs réelles q, τ et r où q, τ > 0 sont près de 0 et r < 1 près de 1.

Notre protocole utilise essentiellement des outils standards ; l’utilisation d’un code correcteur pour que le protocole soit contraignant et de l’amplification de l’incertitude pour qu’il soit camouflant. Là où notre protocole diffère des constructions habituelles est par l’utilisation de l’encodage B92 [Ben92] (composé des deux états {|0i, |+i}), plutôt que l’encodage BB84 [BB84] à quatre états qui est plus commun — et qui serait le choix naturel et plus efficace pour ce type de protocole. Cette particularité est due au fait que nous utilisons la primitive 1cc, une primitive à un bit, et ainsi la description de l’état transmis doit tenir dans un bit. Avec un encodage BB84, il aurait fallu une primitive avec deux bits d’entrée du côté d’Alice : un pour la base et un autre pour le résultat de mesure. Notons que c’est l’approche prise dans [FKS+13] : ils échantillonnent des états BB84 en utilisant la fonctionnalité 2cc.

Intuitivement, notre protocole de mise en gage utilise la primitive 1cc pour s’assurer que l’état qu’Alice envoie à Bob pendant la phase de mise en gage est près de l’état qu’elle doit envoyer. La primitive 1cc permet en effet à Bob de vérifier — ou d’échantillonner — les qubits envoyés par Alice : celle-ci entre dans le 1cc la description de l’état envoyé à Bob et celui-ci mesure l’état reçu en fonction de cette description. Si aucune erreur n’est observée, c’est-à-dire si chaque résultat de mesure est en accord avec la description fournie par Alice, on peut s’attendre à ce que l’état des qubits non observés ne soit pas trop loin de l’état honnête. Les primitives du type transfert sélectif se prêtent en effet bien à ce genre d’exercice ; Alice entre une certaine information dans la boîte Fmcc (dans notre cas, la description de l’état) et Bob entre un bit qui indique s’il souhaite échantillonner ou non cette position. La primitive fait en sorte que l’information qu’Alice entre dans la boîte i est indépendante du choix de Bob d’échantillonner la position i et qu’à la fin de l’échantillonnage Alice connaît les positions qui ont été vues par Bob.

La preuve de sécurité du protocole de mise en gage ΠF1cc

bc utilise la procédure d’échantillonnage quan-

tique de Bouman et Fehr [BF10] afin d’analyser la procédure de vérification décrite plus haut, qui corres- pond à l’étape 2 de la phase de mise en gage. Plus précisément, nous utilisons la version adaptative de leur procédure d’échantillonnage [FKS+13], ce qui permet de gérer le cas où Alice peut décider de la base à annoncer en fonction des positions que Bob a demandées de voir jusqu’à présent, autrement dit, θi peut

dépendre de θ1, . . . , θi−1 et de t1, . . . , ti−1. De l’autre côté, pour contrôler les attaques possibles du côté

de Bob, on ne lui permet de choisir que des échantillons de petite taille (une fraction q constante, mais petite, du nombre de positions N ). Cette restriction fait en sorte que s’il tente de choisir les positions de θ qu’il veut voir en fonction de ce qu’il a vu jusqu’à présent ou encore en fonction d’une mesure sur sa partie de l’état conjoint, la petite taille de l’échantillon suffira à limiter sa probabilité de deviner le bit mis en gage. Pour cette raison, Alice avorte le protocole si Bob demande de voir trop de positions, soit plus de 2qN position ; une éventualité qui n’arrive qu’avec probabilité négligeable si Bob est honnête (par

le théorème de Hoeffding).