Heuristique de Fiat-Shamir
Lâheuristique de Fiat-Shamir (ou transformation de Fiat-Shamir) est, en cryptographie, une technique permettant de transformer gĂ©nĂ©riquement une preuve Ă divulgation nulle de connaissance en preuve non-interactive Ă divulgation nulle de connaissance. Cette preuve peut directement ĂȘtre utilisĂ©e pour construire un schĂ©ma de signature numĂ©rique. Cette mĂ©thode a Ă©tĂ© dĂ©couverte par Amos Fiat et Adi Shamir en 1986[1].
Cette heuristique est dĂ©nommĂ©e ainsi puisque sa premiĂšre version a Ă©tĂ© prĂ©sentĂ©e sans preuve de sĂ©curitĂ©. David Pointcheval et Jacques Stern ont montrĂ© la sĂ©curitĂ© de l'heuristique de Fiat-Shamir contre les attaques sĂ©quentielles Ă texte-clair choisi[2] dans le modĂšle de l'oracle alĂ©atoire. Par la suite Shafi Goldwasser et Yael Tauman ont montrĂ© que sans l'hypothĂšse sur l'oracle alĂ©atoire, l'heuristique de Fiat-Shamir ne pouvait pas ĂȘtre prouvĂ©e sĂ»re sous les hypothĂšses de sĂ©curitĂ© usuelles sur les fonctions de hachage cryptographiques[3].
En 2019, les travaux de Canetti et d'autres[4] complĂ©tĂ©s par ceux de Peikert et Shiehian[5] ont permis de montrer que lâheuristique de Fiat-Shamir pouvait ĂȘtre instanciĂ©e dans le modĂšle standard Ă partir d'une famille de fonctions de hachage qui vĂ©rifient une propriĂ©tĂ© supplĂ©mentaireâŻ: lâimpossibilitĂ© face aux correlations (correlation intractable en anglais). Ces fonctions de hachage peuvent ĂȘtre obtenues Ă partir d'un chiffrement complĂštement homomorphe, et nĂ©cessitent donc, Ă lâheure actuelle, de reposer sur des hypothĂšses de sĂ©curitĂ© sur les rĂ©seaux euclidiens.
Transformation de Fiat-Shamir
Pour des raisons de simplicitĂ©, la transformation de Fiat-Shamir va ĂȘtre prĂ©sentĂ©e pour le cas des protocoles ÎŁ[6]. Il s'agit d'un protocole de preuve interactif en trois Ă©tapes : l'engagement, le dĂ©fi et la rĂ©ponse.
Protocole ÎŁ initial
Un protocole Σ se déroule abstraitement de la maniÚre suivante, pour prouver la connaissance d'un élément dans un langage public . Il sera noté comme étant l'espace d'engagement, l'espace des challenges, et l'espace des réponses.
Version non-interactive
à partir du protocole Σ ci-dessus, une preuve non interactive est construite de la maniÚre suivante : le prouveur simule la présence du vérifieur par une fonction de hachage cryptographique modélisée comme un oracle aléatoire : .
- Le prouveur commence par générer un élément comme dans le protocole interactif. Ensuite au moment du défi, le prouveur hache et calcule une réponse adéquate pour le défi . Enfin le prouveur envoie comme preuve.
- Pour vérifier cette preuve, le vérifieur commence par hacher pour obtenir et vérifier que est bien une réponse correcte pour le couple engagement-défi [9][10].
Intuition
Intuitivement, cette transformation fonctionne puisque l'utilisation d'une fonction de hachage garantit dans un premier temps que le prouveur n'a pas pu tricher en modifiant calculant l'engagement a posteriori puisque modifier l'engagement revient à changer le défi (avec grande probabilités). Et comme la fonction de hachage est modélisée comme un oracle aléatoire, alors le défi est distribué uniformément, comme dans la version interactive[1].
Il existe des variantes de la construction oĂč la preuve consiste en une transcription complĂšte de l'Ă©change du protocole Sigma[11], c'est-Ă -dire , mais cela est un peu redondant, puisque le challenge peut-ĂȘtre retrouvĂ© en hachant le message et l'engagement. De la mĂȘme maniĂšre, Ă©tant donnĂ© le challenge, et si le langage est Ă tĂ©moin unique (autrement dit qu'il existe au plus un tĂ©moin pour chaque mot de )[12]. Si on envoie , comme l'Ă©quation de vĂ©rification d'inconnue possĂšde une unique solution , il ne reste alors plus qu'Ă vĂ©rifier que pour ĂȘtre sĂ»r que tout s'est bien passĂ©. C'est le cas par exemple de la signature de Schnorr[13], pour Ă©viter des problĂšmes de reprĂ©sentation d'Ă©lĂ©ments de groupes, puisque l'engagement est un Ă©lĂ©ment de groupe, lĂ oĂč le challenge et la rĂ©ponse sont des Ă©lĂ©ments de , oĂč est l'ordre du sous-groupe dans lequel on travaille[14].
Exemple
Protocole de Guillou-Quisquater
Un exemple de cette transformation est la signature Fiat-Shamir dérivée du protocole de Guillou-Quisquater[15]. Cette transformation sera décrite dans cette section.
Protocole d'identification interactif
Le protocole de Guillou-Quisquater peut-ĂȘtre vu comme suit. Le prouveur, sous les paramĂštres publics , vu comme une clef publique RSA, c'est-Ă -dire que avec p et q deux grands nombres premiers tirĂ©s indĂ©pendamment et uniformĂ©ment parmi les nombres premiers d'une certaine longueur, et est un entier premier avec . Le prouveur qui possĂšde un certificat public veut prouver la connaissance du secret sous-jacent.
Pour cela, lors de l'engagement, le prouveur tire un entier uniformément dans , et envoie au vérifieur . Le vérifieur génÚre alors un challenge comme un entier tiré uniformément dans . Auquel le prouveur répond en envoyant . Le vérifieur peut alors tester si , et accepter la preuve si et seulement si l'égalité est vérifiée[16].
Signature dérivée par l'heuristique de Fiat-Shamir
L'application de l'heuristique de Fiat-Shamir sur ce protocole donne donc le schéma de signature de Guillou-Quisquater[17]:
- GenClefs(λ): On génÚre comme dans le chiffrement RSA, et un couple certificat/secret tel que . La clef publique est alors et la clef secrÚte .
- Signe(sk, m): Pour signer un message , le signataire commence par tirer uniformément dans . Il génÚre ensuite le challenge et calcule une réponse . La signature est alors .
- Verifie(pk, m, Ï): Pour vĂ©rifier la signature , le vĂ©rifieur va utiliser Y et m pour calculer et accepte si et seulement si .
Notes et références
- Fiat et Shamir 1986.
- Pointcheval et Stern 1996.
- Goldwasser et Tauman 2003.
- Canetti et al. 2019.
- Peikert et Shiehian 2019.
- DamgÄrd 2010.
- DamgÄrd 2010, Sec. 2.
- Kiltz, Masny et Pan 2016, Figure 2.
- Kiltz et Masny Pan, Sec. 2.4.
- Miller 2016, Sec. 7.3.
- Pointcheval et Stern 1996, Sec. 4.1.
- Baldimtsi et Lysyanskaya 2013, Sec 2.1.
- Schnorr 1991.
- Schnorr 1991, Sec. 2. § Protocol for Signature Verification.
- Guillou et Quisquater 1988.
- Kiltz, Masny et Pan 2016, Sec. 5.3.2.
- Kiltz, Masny et Pan 2016, Sec. 5.3.3.
Annexes
Bibliographie
- [Baldimtsi et Lysyanskaya 2013] (en) Foteini Baldimtsi et Anna Lysyanskaya, « On the Security of One-Witness Blind Signature Schemes », Asiacrypt, Springer,â (lire en ligne)
- [Canetti et al. 2019] (en) Ran Canetti, Yilei Chen, Justin Holmgreen, Alex Lombardi, Guy Rothblum, Ron Rothblum et Daniel Wichs, « Fiat Shamir: from practice to theory », STOC,â
- [Fiat et Shamir 1986] (en) Amos Fiat et Adi Shamir, « How To Prove Yourself: Practical Solutions to Identification and Signature Problems », Crypto 1986,â (lire en ligne [PDF])
- [Guillou et Quisquater 1988] (en) Louis C. Guillou et Jean-Jacques Quisquater, « A Practical Zero-Knowledge Protocol Fitted to Security Microprocessor Minimizing Both Transmission and Memory », Eurocrypt,â (DOI 10.1007/3-540-45961-8_11)
- [Goldwasser et Tauman 2003] (en) Shafi Goldwasser et Yael Tauman, « On the (In)security of the Fiat-Shamir Paradigm », Foundations on Computer Science (FOCS),â (lire en ligne)
- [Kitz, Masny et Pan 2016] (en) Eike Kiltz, Daniel Masny et Jiaxin Pan, « Optimal Security Proofs for Signatures from Identification Schemes », Crypto,â (lire en ligne)
- [Peikert et Shiehian 2019] (en) Chris Peikert et Sina Shiehian, « Noninteractive Zero Knowledge for NP from (Plain) Learning With Errors », Crypto,â (lire en ligne, consultĂ© le )
- [Pointcheval et Stern 1996] (en) David Pointcheval et Jacques Stern, « Security Proofs for Signature Schemes », Eurocrypt,â (lire en ligne [PDF])
- [Schnorr 1991] (en) Claus Peter Schnorr, « Efficient signature generation by smart cards », Journal of Cryptology,â (DOI 10.1007/BF00196725)
Articles connexes
Liens externes
- [DamgĂ„rd 2010] (en) Ivan DamgĂ„rd, « On ÎŁ-Protocols », Notes de cours [PDF],â
- [Miller 2016] (en) Andrew Miller, « Zero Knowledge Proofs », Notes de cours [PDF],