• Aucun résultat trouvé

Exercice 1 (Isomorphisme de graphes). On suppose G 1 = π(G 0 ). On utilise le protocole suivant.

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1 (Isomorphisme de graphes). On suppose G 1 = π(G 0 ). On utilise le protocole suivant."

Copied!
4
0
0

Texte intégral

(1)

Ecole normale sup´ ´ erieure 2018-2019 D´ epartement d’informatique

Introduction ` a la cryptologie TD n 4 : Correction.

Exercice 1 (Isomorphisme de graphes). On suppose G 1 = π(G 0 ). On utilise le protocole suivant.

1. Le prouveur tire un isomorphisme φ uniform´ ement al´ eatoire de G 0 (un tel isomorphisme revient ` a une permutation des labels des sommets du graphe, il suffit donc de tirer une permutation uniforme), et pose H = φ(G 0 ). Le prouveur envoie H au v´ erifieur.

2. Le v´ erifieur tire b ← {0, 1} uniform´ ement al´ eatoirement, et envoie b au prouveur.

3. Le prouveur r´ epond en envoyant ψ = φ ◦ π −b . 4. Le v´ erifieur accepte ssi H = ψG b .

Il s’agit ci-dessus d’une version condens´ ee du protocole. En r´ ealit´ e cette version condens´ ee est it´ er´ ee λ fois, pour un certain param` etre de s´ ecurit´ e λ. Le v´ erifieur accepte ssi H = ψG b ` a toutes les it´ erations.

Completeness. On v´ erifie ais´ ement que si les deux parties sont honnˆ etes, le v´ erifieur accepte.

Soundness. Comme il s’agit d’une preuve de connaissance (et non simplement d’appartenance ` a un langage), on veut montrer qu’il existe un extracteur. On rappelle que l’extracteur contrˆ ole l’al´ ea du prouveur. Il peut donc le forcer ` a r´ epondre ` a deux challenges b diff´ erents pour le mˆ eme H . Il obtient ψ 0 tel que H = ψ 0 G 0 et ψ 1 tel que H = ψ 1 G. Puisqu’il a un isomorphisme entre H et G 0 , et entre H et G 1 , il d´ eduit un isomorphisme π = ψ −1 1 ◦ ψ 0 entre G 0 et G 1 . (On voit qu’on a mˆ eme la propri´ et´ e de special soundness vue en cours.)

Zero-knowledge. Le transcript (i.e. la s´ equence de toutes les communications ´ echang´ ees entre les parties) d’une ex´ ecution honnˆ ete du protocole peut ˆ etre facilement simul´ ee. En effet, il suffit de choisir b d’abord, puis de prendre H = φG b pour un φ uniform´ ement al´ eatoire, et enfin de fixer ψ = φ. La distribution ainsi obtenue est identique ` a la distribution d’une ex´ ecution honnˆ ete du protocole. En effet, pour φ uniforme, la distribution de φG 0 et φG 1 est identique. (On remarque que l’hypoth` ese d’honnˆ etet´ e est n´ ecessaire : si un v´ erifieur malhonnˆ ete choisit b en fonction de H , la preuve ne tient plus.)

Exercice 2 (Non-isomorphisme de graphes).

1. Le v´ erifieur tire b ← {0, 1} uniform´ ement al´ eatoirement. Il tire ensuite un isomorphisme φ uniform´ ement al´ eatoire de G b , et pose H = φ(G b ). Le v´ erifieur envoie H au prouveur.

2. Le prouveur utilise sa puissance de calcul infinie pour d´ eterminer si H est isomorphe ` a G 0 ou G 1 . Si G 0

et G 1 ne sont pas isomorphes, un seul des deux cas est possible. Soit b 0 tel que G b

0

∼ H. Le prouveur envoie b 0 au v´ erifieur.

3. Le v´ erifieur accepte ssi b 0 = b.

Il s’agit ci-dessus d’une version condens´ ee du protocole. En r´ ealit´ e cette version condens´ ee est it´ er´ ee λ fois, pour un certain param` etre de s´ ecurit´ e λ. Le v´ erifieur accepte ssi b 0 = b ` a toutes les it´ erations.

Completeness. On v´ erifie ais´ ement que si les deux parties sont honnˆ etes, le v´ erifieur accepte.

Soundness. Cette fois il s’agit d’une preuve d’appartenance ` a un langage (le langage des paires de graphes non-isomorphes), non d’un preuve de connaissance. Au lieu de construire un extracteur, on va donc montrer que si le v´ erifieur accepte, alors G 0 et G 1 sont bien non-isomorphes, sauf avec une probabilit´ e 2 −λ . Comme dans l’exercice pr´ ec´ edent, le point crucial est que si G 0 et G 1 sont isomorphes, la distribution de φG 0 et φG 1 pour φ uniforme est identique, donc le prouveur n’apprend rien sur b en obtenant H . La probabilit´ e que b 0 = b est donc 1/2. La probabilit´ e que le prouveur accepte apr` es λ it´ erations ind´ ependantes est donc 2 −λ .

Zero-knowledge. Le transcript d’une interaction honnˆ ete est simulable trivialement puisqu’il suffit d’ex´ ecuter le protocole du v´ erifieur et de fixer b 0 = b. (Si le v´ erifieur est malhonnˆ ete par contre, il peut apprendre si un graphe arbitraire est isomorphe ` a G 0 ou ` a G 1 , ce qui n’est pas a priori un calcul qu’il saurait faire par lui-mˆ eme.)

Exercice 3 (Non-r´ esiduosit´ e quadratique). On utilise le protocole suivant. Soit N = pq la factorisation non- triviale de N .

1. Le v´ erifieur tire b ← {0, 1} uniform´ ement al´ eatoirement. Il tire ensuite un entier al´ eatoire y modulo N et envoie au prouveur z = x b y 2 mod N .

1

(2)

2. Le prouveur utilise sa connaissance de la factorisation de N pour calculer si z est un carr´ e modulo N (en utilisant le symbole de Jacobi). Si c’est le cas il renvoie b 0 = 0, sinon il renvoie b 0 = 1.

3. Le v´ erifieur accepte ssi b 0 = b.

Il s’agit ci-dessus d’une version condens´ ee du protocole. En r´ ealit´ e cette version condens´ ee est it´ er´ ee λ fois, pour un certain param` etre de s´ ecurit´ e λ. Le v´ erifieur accepte ssi b 0 = b ` a toutes les it´ erations.

Par ailleurs, on va supposer que le nombre 0 < y < N tir´ e par le v´ erifieur est toujours premier avec N , sans quoi la v´ erifieur a r´ eussi ` a factoriser N (et peut notamment v´ erifier tout seul si x est un carr´ e ; plus g´ en´ eralement il a autant d’information que le prouveur). On suppose ´ egalement que x est premier avec N .

Completeness. On v´ erifie ais´ ement que si les deux parties sont honnˆ etes, le v´ erifieur accepte. En effet, le groupe multiplicatif des ´ el´ ements de Z N premiers avec N est isomorphe par le th´ eor` eme des restes chinois ` a ( Z p , ×) × ( Z q , ×) ∼ ( Z p−1 , +) × ( Z q−1 , +). On d´ eduit que le produit de x b avec y 2 est un carr´ e ssi x b est un carr´ e ssi b = 0.

Soundness. Si x est un carr´ e, soit r tel que x = r 2 . Comme y est tir´ e uniform´ ement, et que r est inversible (on est dans le groupe multiplicatif de Z N ) ; ry est ´ egalement uniforme, donc y 2 et xy 2 = (ry) 2 ont la mˆ eme distribution, donc la donn´ ee de x b y 2 n’apprend rien au prouveur sur b. Il s’ensuite que si x est un carr´ e, la probabilit´ e que b 0 = b est 1/2. Apr` es λ it´ erations la probabilit´ e que le v´ erifieur accepte est donc 2 −λ (quels que soient par ailleurs les choix du prouveur).

Zero-knowledge. Le transcript d’une interaction honnˆ ete est simulable trivialement puisqu’il suffit d’ex´ ecuter le protocole du v´ erifieur et de fixer b 0 = b. (Si le v´ erifieur est malhonnˆ ete par contre, il peut apprendre si un

´

el´ ement arbitraire de Z N est un carr´ e, ce qui n’est pas a priori un calcul qu’il saurait faire par lui-mˆ eme.)

Exercice 4 (Preuve de connaissance d’un logarithme discret).

Completeness. On v´ erifie ais´ ement que si les deux parties sont honnˆ etes, le v´ erifieur accepte.

Soundness. Il s’agit d’un preuve de connaissance. On veut donc prouver l’existence d’un extracteur. Comme souvent, il suffit ` a l’extracteur d’interagir avec le prouveur (Alice) en fixant son al´ ea (donc en fixant r) et en lui demandant de r´ epondre ` a deux challenges c 6= c 0 . Alice fournit alors s et s 0 tels que r = g s y c = g s

0

y c

0

. On d´ eduit g s−s

0

= y c

0

−c , donc y = g (s−s

0

)(c

0

−c)

−1

. Ici l’inversion est dans Z q−1 (on rappelle que le groupe multiplicatif de Z q est cyclique d’ordre q − 1). On voit au passage qu’on a la propri´ et´ e de special soundness vue en cours.

Zero-knowledge. Pour simuler le transcript d’une interaction honnˆ ete (sans connaˆıtre x), il suffit de choisir c et s d’abord (uniform´ ement al´ eatoirement), puis de fixer r = g s y c . On voit que r est uniform´ ement al´ eatoire, et on d´ eduit que la distribution de (r, c, s) ainsi obtenue est identique ` a celle qui provient d’une interaction honnˆ ete.

Remarque : cette preuve de connaissance peut ˆ etre directement transform´ ee en une signature : on obtient le sch´ ema de signature de Schnorr.

Exercice 5 (Preuve de connaissance d’une repr´ esentation). On peut s’inspirer du protocole de Schnorr vu dans l’exercice 4 comme suit.

1. Le prouveur tire k, ` dans Z q uniform´ ement al´ eatoirement. Il envoie au v´ erifieur r = g k h ` . 2. Le v´ erifieur tire c uniform´ ement al´ eatoirement dans Z q . Il envoie c au prouveur.

3. Le prouveur calcule a = k − sc, b = ` − tc. Il envoie (a, b) au v´ erifieur.

4. Le v´ erifieur accepte ssi r = y c g a h b .

Completeness. On v´ erifie ais´ ement que si les deux parties sont honnˆ etes, le v´ erifieur accepte. En effet, y c g a h b = g sc+a h tc+b = g k h ` = r.

Soundness. On construit un extracteur sembable ` a celui de l’exercice 4. L’extracteur fixe l’al´ ea du prouveur, donc fixe r, et demande la r´ eponse ` a deux challenges c 6= c 0 . Il obtient a, b, a 0 , b 0 tels que r = y c g a h b = y c

0

g a

0

h b

0

. On d´ eduit y = g (a

0

−a)(c−c

0

)

−1

h (b

0

−b)(c−c

0

)

−1

. On a ` a nouveau la propri´ et´ e de special soundness.

Zero-knowledge. Le transcript d’une interaction honnˆ ete peut ˆ etre simul´ e (sans connaˆıtre s, t) en tirant a, b, c uniform´ ement al´ eatoirement. On choisit ensuite r = y c g a h b . Cet ´ el´ ement est distribu´ e uniform´ ement al´ eatoirement, et on voit que la distribution du transcript (r, c, a, b) est la mˆ eme que lors d’une ex´ ecution honnˆ ete du protocole.

Exercice 6 (Un vote ´ electronique simple).

2

(3)

1. Un chiffrement ` a clef publique d´ eterministe est g´ en´ eralement probl´ ematique, parce que la clef de chiffre- ment est publique : dans le cas o` u il y a peu d’entropie dans les messages clairs (ici il n’y a que deux messages possibles !) il suffit ` a un attaquant de chiffrer lui-mˆ eme les messages clair les plus probables et de comparer ce qu’il obtient avec les messages chiffr´ es qui l’int´ eressent. C’est une des raisons pour lesquelles RSA n’est jamais utilis´ e dans sa version na¨ıve ; un chiffrement ` a clef publique est en r´ ealit´ e toujours probabiliste, de mani` ere ` a ce qu’` a un message clair donn´ e correspondent de nombreux messages chiffr´ es.

(Tout cela est d’ailleurs impliqu´ e par les d´ efinitions de s´ ecurit´ e dite IND-CCA et IND-CPA classiques des chiffrements ` a clef publique, qui ´ evitent proprement ce genre de probl` emes, et bien d’autres.) 2. Consid´ erons d’abord comment l’autorit´ e pourrait prouver qu’Alice a vot´ e pour le candidat untel, sans

r´ ev´ eler aucune autre information. La m´ ethode na¨ıve serait de publier la clef secr` ete sk, qui permettrait ` a tout le monde de d´ echiffrer le vote d’Alice, mais cela r´ ev` ele bien plus d’information que n´ ecessaire (cette information permettrait par exemple de d´ echiffrer aussi le message de Bob) : c’est ce qu’on veut ´ eviter.

Au lieu de cela, l’id´ ee clef est la suivante : il suffit de montrer que la propri´ et´ e qu’on souhaite prouver est exprimable par une formule SAT. En effet, vous avez vu en cours que le probl` eme du 3-coloriage admet une preuve ` a divulgation nulle de connaissance, donc tout probl` eme dans NP en admet une, y compris SAT. (Le probl` eme du 3-coloriage est NP-complet, donc il existe une transformation polynomiale d’une instance SAT en une instance de 3-coloriage ´ equivalente.)

Construisons un circuit C 1 (par exemple avec des portes ET, OU, NON) qui prend en entr´ ee l’al´ ea utilis´ e dans la proc´ edure de g´ en´ eration de clef du chiffrement ` a clef publique utilis´ e, et qui donne en sortie les clefs publiques et priv´ ees pk et sk. Soit C 2 le circuit de d´ echiffrement, qui prend en entr´ ee la clef secr` ete et d´ echiffre un message. On peut fixer le message ` a d´ echiffrer dans C 2 pour obtenir un circuit C 2 0 qui d´ echiffre sp´ ecifiquement le message chiffr´ e publi´ e par Alice. Ensuite, on peut combiner les circuits C 1 et C 2 0 de mani` ere ` a ce que la clef secr` ete utilis´ ee par C 2 soit celle qui est sortie par C 1 . On obtient ainsi un circuit C A qui prend en entr´ ee de l’al´ ea (celui utilis´ e par C 1 et ´ eventuellement par C 2 0 ) et qui donne en sortie la clef publique g´ en´ er´ ee avec cet al´ ea par C 1 , et le d´ echiffr´ e du message d’Alice avec la clef secr` ete correspondante. On peut transformer ce circuit en une formule SAT exprimant qu’il existe une assignation de l’entr´ ee du circuit (l’al´ ea de g´ en´ eration de clef) dont la sortie est la clef publique pk, et le message clair exprimant un vote pour le candidat untel. L’autorit´ e ex´ ecute un protocole zero-knowledge (` a divulgation nulle de connaissance) pour cette formule SAT avec tout parti qui souhaite v´ erifier le vote.

Les garanties de soundness impliquent que si les v´ erifieurs acceptent, la formule est vraie (avec forte probabilit´ e), ce qui signifie par construction que le d´ echiffr´ e du message d’Alice est bien ce que pr´ etend l’autorit´ e. La propri´ et´ e de zero-knowledge implique que les v´ erifieurs n’apprennent rien de plus que cette information, par exemple ils n’apprennent rien de plus sur la clef secr` ete que ce qu’ils auraient pu trouver par eux-mˆ emes (puisqu’il peuvent simuler tous seuls l’interaction qu’ils ont avec l’autorit´ e).

Il ne reste plus qu’` a cr´ eer un circuit C B correspondant ` a Bob de la mˆ eme mani` ere, et le combiner avec C A de mani` ere ` a ce que la sortie des deux circuits puissent ˆ etre ´ echang´ ees (donc on ne sait pas qui a vot´ e pour qui). Il suffit de voir que cela peut ˆ etre exprim´ e par une formule SAT. Pour cela, il suffit par exemple de combiner les circuits en ajoutant un circuit qui prend en entr´ ee un bit b et ´ echange les sorties de C A et C B ssi b = 1 ; la formule SAT qu’on en d´ eduit finalement exprime qu’il existe un bit b (et un choix des autres al´ eas) tel que la sortie globale est ce que pr´ etend l’autorit´ e.

D’une mani` ere g´ en´ erale, l’id´ ee de cet exercice est que savoir faire des preuves ` a divulgation nulle de connaissance pour tous les probl` emes dans NP est quelque chose de tr` es puissant ! Notamment on sait toujours prouver des affirmations du type : il existe une assignation des entr´ ees d’un certain circuit telle que la sortie est ceci—pour n’importe quel circuit (puisque c’est ´ equivalent ` a SAT). On sait en particulier toujours prouver qu’une certaine quantit´ e a ´ et´ e calcul´ ee d’une mani` ere sp´ ecifique, sans avoir ` a rien r´ ev´ eler sur les valeurs secr` etes apparaissant dans ce calcul.

Mieux, en r´ ealit´ e on sait r´ ealiser ce type de preuve sans interaction, c’est-` a-dire qu’il suffit ` a l’autorit´ e de publier une unique preuve statique, sans avoir ` a interagir avec chaque personne qui souhaite v´ erifier.

3. Il n’est pas difficile de voir qu’on peut r´ ealiser la mˆ eme fonctionnalit´ e pour n votants. Au lieu de tirer un bit b, on tire une permutation al´ eatoire sur les d´ echiffrements des n votes. On peut se demander comment la taille de la preuve croˆıt avec n, mais c’est une autre question.

Exercice 7 (S´ ecurit´ e du protocole de signature de Groth).

1. On demande les chiffr´ ees des messages m = 0 et m = 1. On obtient r 1 , r 2 , r 0 1 , r 2 0 tels que :

y 1 r

1

y 2 r

2

= y 3 gy r

0 1

1 y r

0 2

2 = y 3

3

(4)

On peut alors forger une signature pour un message quelconque m, en effet on a :

y (m−1)r 1

1

y 2 (m−1)r

2

= y 3 m−1

g m y mr

0 1

1 y mr

0 2

2 = y 3 m donc en combinant :

g m y mr

0

1

−(m−1)r

1

1 y mr

0

2

−(m−1)r

2

2 = y 3 .

La signature (mr 1 0 − (m − 1)r 1 , mr 0 2 − (m − 1)r 2 ) est donc valide pour le message m.

2. L’´ equation (1) de l’´ enonc´ e implique qu’une signature (r 1 , r 2 ) ne peut ˆ etre valide que pour un unique message m (le log discret de y 3 y −r 1

1

y 2 −r

2

en base g).

3. (a) Les variables y 1 , y 2 , y 3 sont ind´ ependantes (chacune est uniform´ ement al´ eatoire), seule y 3 d´ epend de c s donc nous pouvons limiter notre attention ` a y 3 . Il suffit de remarquer que la distribution de y 3

conditionn´ ee ` a c s = c, pour tout c fix´ e, reste uniform´ ement al´ eatoire ` a cause du choix uniforme de b s , en particulier elle ne d´ epend pas de c.

(b) On v´ erifie que la signature (b s − m − a s , c s ) est valide. D’autre part on a vu que c s est uniform´ ement al´ eatoire mˆ eme conditionn´ e ` a la clef publique, et r 1 = b s − m − a s est l’unique exposant donnant une signature correcte pour r 2 = c s . C’est donc la mˆ eme distribution qu’une signature v´ eritable : en effet le mˆ eme relation existe entre r 1 et r 2 dans une signature g´ en´ er´ ee en suivant le protocole (le protocole tel qu’il est ´ ecrit tire r 1 uniform´ ement et d´ eduit r 2 , mais on voit que les rˆ oles de r 1 et r 2 sont compl` etement sym´ etriques et qu’on peut faire l’inverse).

(c) Supposons que A produit une contrefa¸ con sur un message m 6= m. Il produit donc r 1 , r 2 tels que : g m

y r

∗ 1

1 y r

∗ 2

2 = y 3

g m

g a

s

r

1

h r

2

= g b

s

h c

s

g (m

+a

s

r

1

−b

s

)(c

s

−r

2

)

−1

= h.

L’inversion (c s − r 2 ) −1 est valide parce qu’on a suppos´ e r 2 6= r 2 = c s .

4. Comme d´ ej` a remarqu´ e plus haut, les rˆ oles de r 1 et r 2 sont compl` etement sym´ etriques dans ce protocole, donc on peut r´ e´ ecrire le mˆ eme raisonnement en ´ echangeant les rˆ oles de y 1 (et ses exposants) et y 2 (et ses exposants).

5. Soit B l’algorithme qui tire b ← {0, 1} uniform´ ement al´ eatoirement et qui ex´ ecute B b (qui fait lui-mˆ eme appel ` a A). On a vu que la distribution de la clef publique, et de la signature du message demand´ e par A sont identiques ` a celle des clefs publiques et signatures l´ egitimes (en particulier elles sont identiques pour les deux choix de b). L’algorithme A produit donc une signature forg´ ee (r 1 , r 2 ) pour un message m avec probabilit´ e , apr` es avoir ´ eventuellement demand´ e la signature (r 1 , r 2 ) d’un message choisi m. Nous avons vu que (r 1 , r 2 ) 6= (r 1 , r 2 ), donc r 1 6= r 1 ou r 2 6= r 2 , donc avec probabilit´ e au moins 50% l’hypoth` ese de l’algorithme B b est satisfaite. Avec probabilit´ e au moins /2 on retrouve donc le logarithme discret de h en base g.

4

Références

Documents relatifs

Ecrivez en d´ etail l’algorithme de FEP (DFS) qui s’execute une fois sur un graphe G = (V, E) non- orient´ e donn´ e et donne en sortie les points d’articulations ainsi que

Ce qui est exceptionnel sur cette ligne, c’est la profondeur des parois moulées en béton armé qui sont situées largement sous le radier des gares pour assurer leur stabilité

Aussi, un projet de recherche pour la constitu- tion d’un lexique en langue des signes française dédié au Génie Civil prend-il forme à la ren- trée 2015, afin de répondre

en France, l’utilisation du béton armé dans les hangars pour avions devra attendre 1916 avec les premiers travaux des ingénieurs Freyssinet, Lossier et Caquot. en réalité,

Plutôt classique pour des travaux de Génie Civil, ce béton, acheminé sur place depuis la centrale Unibéton Codognan (Gard) et mis en œuvre par pompage, est de classe de résis-

H J.. Zur Theorie der linearen Differenzengleichungen erster Ordnung. 319 mh.~S durch Partialbrfiche und eine besti~ndig convergirende Potenzreihe darzustellen. Se]tdem die

In FELIX KLEIZ~ Ober t~iemann's Theorie der Abel'schen IMegrale finden sieh wichtige Siitze tiber weitcrgehende Beziehungen dicser Art.. l~ber einige Gruudgebilde

Die Coefficienten der bestandig convergirenden P0tenzrcihe, in die F(x) entwickelt werden kann, wOrden sicht leieht ergeben, wGnn diese Frage bejaht werden