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 b0 ∼ 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. 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 s0y c0. On d´ eduit g s−s0 = y c0−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.
. On d´ eduit g s−s0 = y c0−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.
−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 c0g a0h b0. On d´ eduit y = g (a0−a)(c−c
0)
−1h (b0−b)(c−c
0)
−1. On a ` a nouveau la propri´ et´ e de special soundness.
h b0. On d´ eduit y = g (a0−a)(c−c
0)
−1h (b0−b)(c−c
0)
−1. On a ` a nouveau la propri´ et´ e de special soundness.
−a)(c−c
0)
−1h (b0−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
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 r1y 2 r2 = y 3 gy r
= y 3 gy r
0 1
1 y r
0 2
2 = y 3
3
On peut alors forger une signature pour un message quelconque m, en effet on a :
y (m−1)r 1 1y 2 (m−1)r2 = y 3 m−1
= 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
11 y mr
0
2
−(m−1)r
22 = 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 1y 2 −r2 en base g).
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