Protocole d'authentification de Schnorr
En cryptographie, le protocole d'authentification de Schnorr (en) (souvent abrĂ©gĂ© protocole de Schnorr) est une preuve Ă divulgation nulle de connaissance dĂ©crite en 1989 par Schnorr[1] dont la sĂ©curitĂ© repose sur la difficultĂ© du problĂšme du logarithme discret et servant Ă prouver la connaissance dâun logarithme discret, câest-Ă -dire Ă©tant donnĂ© , prouver que l'on connaĂźt l'exposant dans un groupe engendrĂ© par .
Ce protocole peut ĂȘtre dĂ©rivĂ© en une signature numĂ©rique en rendant la preuve non interactive par l'heuristique de Fiat-Shamir[2][3]. Ce schĂ©ma de signature numĂ©rique a Ă©tĂ© brevetĂ© aux Ătats-Unis sous le Brevet US 4995082 qui expirait en .
Description du protocole de Schnorr
Comme d'autres preuves à connaissances nulles, le protocole de Schnorr est un protocole Σ[4]: un protocole entre deux algorithmes interactifs P et V (pour Prouveur et Vérifieur) en trois phases: l'engagement, le défi et la réponse.
ParamĂštres publics
- Un nombre premier. On note qu'il définit un groupe d'ordre engendré par , noté multiplicativement dans la suite.
- Un élément de groupe , d'ordre C'est ici un générateur d'un sous-groupe d'ordre de
- sont publics.
Données connues uniquement du prouveur
- Un entier pris au hasard dans .
- Le prouveur calcule , et est rendu public, certifié par une autorité de confiance, tandis que est gardé secret.
Déroulé du protocole
Dans un premier temps, P lance une Ă©tape d'engagement:
- P tire au hasard un entier dans .
- P calcule et envoie Ă V
Ensuite commence la phase du défi:
- V tire un entier dans et l'envoie Ă P
Finalement, la phase de réponse:
- P calcule et l'envoie Ă V.
V accepte si et seulement si à l'issue du protocole, la relation est vérifiée.
Preuves de sécurité
Pour prouver la sĂ©curitĂ© d'un protocole ÎŁ[4], il suffit de prouver la complĂ©tude, la robustesse spĂ©ciale, et la propriĂ©tĂ© de non-divulgation de connaissances sous un vĂ©rifieur honnĂȘte.
Complétude
La complĂ©tude (ou correction) requiert que pour un dĂ©roulement honnĂȘte du protocole, le vĂ©rifieur est toujours convaincu.
Cela se vĂ©rifie par la condition d'acceptation de V qui donne que , ce qui est toujours vĂ©rifiĂ© si le protocole s'est dĂ©roulĂ© honnĂȘtement.
Robustesse spéciale
La robustesse spĂ©ciale dit qu'il existe un extracteur de connaissance qui fonctionne en temps polynomial tel qu'Ă©tant donnĂ© deux transcriptions acceptantes et sous les mĂȘmes paramĂštres publics, alors l'extracteur renvoie le secret .
Cet extracteur se construit comme suit dans le cas du protocole de Schnorr : il va calculer et retourner , car cette valeur correspond au logarithme discret de par . En effet, les transcriptions et étant acceptantes, les relations et sont vérifiées, donnant ainsi puisque .
Non-divulgation de connaissance sous un vĂ©rifieur honnĂȘte
Cette propriĂ©tĂ© se caractĂ©rise par l'existence d'un simulateur probabiliste qui fonctionne en temps polynomial qui, Ă©tant donnĂ© oĂč est distribuĂ© comme un dĂ©fis correct, alors le simulateur renvoie une transcription distribuĂ©e comme une vraie transcription pour . On remarque que le simulateur n'a pas besoin du secret.
Ici, le simulateur va donc générer la réponse avant l'engagement: il va tirer uniformément dans et va générer pour qu'il vérifie la condition d'acceptation, c'est-à -dire , et va renvoyer . On peut remarquer que est distribué uniformément puisque son logarithme discret selon la base l'est. Et par construction est distribué comme une réponse acceptante vis-à -vis de .
Taille des paramĂštres
La spĂ©cification du brevet indique que le groupe doit ĂȘtre choisi comme un sous-groupe d'au moins 140 bits d'un groupe oĂč est un nombre premier de 512 bits pour 72 bits de sĂ©curitĂ©.
Schéma de signature
L'heuristique de Fiat-Shamir peut ĂȘtre utilisĂ©e pour transformer le schĂ©ma d'identification en signature numĂ©rique.
Pour cela une (famille de) fonction de hachage cryptographique est introduite dans les paramĂštres publics, et au moment du dĂ©fi, le tirage alĂ©atoire de est remplacĂ© par l'Ă©valuation oĂč correspond au message Ă signer. La signature correspond au couple ; au moment de la vĂ©rification, est recalculĂ© comme , le vĂ©rifieur teste si et accepte si cette vĂ©rification passe. La description complĂšte est donnĂ©e ci-dessous.
Description
Une signature numérique est donnée par un triplet d'algorithmes (GenClefs, Signer, Vérifier).
Génération de clefs:
- Les paramĂštres publiques ( et ) sont gĂ©nĂ©rĂ©es de la mĂȘme maniĂšre que pour le protocole ÎŁ.
- Une fonction de hachage est ensuite générée et rajoutée aux paramÚtres publiques.
- Pour générer une paire de clefs (vk, sk) (v pour vérification, et s pour signature), le signataire commence par tirer uniformément un nombre , et va le définir comme sa clef secrÚte.
- Le signataire va ensuite calculer , et va le publier comme sa clef publique.
Signature(sk, m):
- Pour signer un message, le signataire va commencer par tirer un nombre au hasard, et définir .
- Le « dĂ©fi » va ensuite ĂȘtre gĂ©nĂ©rĂ© comme , et la rĂ©ponse calculĂ©e comme .
- Finalement la signature est renvoyée: .
VĂ©rification(vk, m, Ï):
- Pour vérifier la signature , un utilisateur commence par recalculer en utilisant la clef publique : .
- L'utilisateur va ensuite accepter si et seulement si .
Efficacité
Cela donne une signature de taille suivant les recommandations minimales du brevet pour 72 bits de sécurité.
Sécurité prouvée
Pointcheval et Stern ont montré en 1996 que l'heuristique de Fiat-Shamir[3] est sûre dans le modÚle de l'oracle aléatoire[5] si le schéma d'identification sous-jacent est sûr.
Notes et références
Annexes
Bibliographie
- [Feige Fiat et Shamir 1988] (en) Uriel Feige, Amos Fiat et Adi Shamir, « Zero-knowledge proofs of identity », Journal of Cryptology,â (DOI 10.1007/BF02351717)
- [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])
- [Schnorr 1989] (en) Claus-Peter Schnorr, « Efficient Identification and Signature for Smart Cards », Theory and Application of Cryptology, Springer,â (lire en ligne)
- [Pointcheval et Stern 1996] (en) David Pointcheval et Jacques Stern, « Security Proofs for Signature Schemes », Eurocrypt,â (lire en ligne [PDF])