Protocoles à Divulgation Nulle
Première approche La caverne d’Ali Baba Prouveur / vérifieur Questions / réponses Convainc le vérifieur que le prouveur est bien en possession d’un secret L’interaction n’apprend rien du secret du prouveur au vérifieur
Systèmes de preuves interactives Interactive Turing Machine P: tout puissant V: polynomial
Systèmes de preuves interactives Interactive Turing Machine P: tout puissant V: polynomial Complétude: V accepte souvent si P connaît le secret xL, Pr(P,V(x)=1) 2/3 Validité: V accepte rarement si P est un imposteur xL, Pr(B,V(x)=1) 1/3 IP ={langages ayant des systèmes de preuves interactives} BPP NP IP
Graphes non isomorphes Complétude: G1 et G2 non isomorphes V accepte toujours Validité: G1 et G2 isomorphes V accepte avec une probabilité ½
Preuve à divulgation nulle Simulateur (M*): Ne connaît pas le secret du prouveur Exécution en temps polynomial Peut échouer () Zero-knowledge parfait : Les échecs du simulateur sont limités (Pr(M*(x)= ) ½) P,V*(x) et m*(x) sont identiquement distribuées Zero-knowledge calculatoire: {P,V*(x)}xL et {M*(x)}xL sont calculatoirement indistingables Complexité: BPP PZK CZK IP NP CZK ?
Graphes trois-colorables Complétude: G trois-colorable V accepte toujours Validité: G non trois-colorable V accepte avec une probabilité 1/|E|
Graphes trois-colorables
Feige-Fiat-Shamir Protocole à clef publique (p,q,s) secrets (n=p.q, v=s2) publiques Complétude: P connaît s V accepte toujours Validité: P ne connaît pas s V accepte avec une probabilité 1/2
Feige-Fiat-Shamir
Avantages pratiques Famille de protocoles Taille message Nb itérations Calculs Mémoire Zero-knowledge Large Plusieurs Lourd Grosse Clef publique Une Très lourd Symétrique Petit Léger Petite
Attaques possibles Force brute Post-mortem Replay Principe: se libérer de la limite polynomiale de V* Parade: limiter le temps de réponse Post-mortem Parade: changer le secret régulièrement, tous les protocoles sont sensibles à cette attaque et plus particulièrement les protocoles zero-knowledge Replay Principe: rejouer une instance d’identification Parade: zero-knowledge non sensible à cette attaque Man-in-the-middle / Connivence Principe: jouer les intermédiaire entre 2 machines et tromper les 2
Conclusion