Prouver sans révéler
Le paradoxe : convaincre sans montrer
Imaginez devoir prouver à un ami que vous connaissez le mot de passe d'un coffre, sans jamais le prononcer et sans ouvrir le coffre devant lui. Absurde ? C'est pourtant exactement ce que réalise une preuve à divulgation nulle de connaissance.
Le paradoxe
Une preuve à divulgation nulle de connaissance (en anglais zero-knowledge proof) est un protocole entre deux parties :
- le prouveur (souvent appelé Peggy), qui affirme connaître un secret ;
- le vérifieur (souvent appelé Victor), qui veut être convaincu.
À la fin de l'échange, Victor est certain que Peggy connaît le secret… mais il n'a rien appris du secret lui-même. Il ne pourrait pas le répéter, ni le prouver à quelqu'un d'autre.
C'est contre-intuitif : on prouve qu'on sait, sans montrer ce qu'on sait.
Les trois propriétés fondamentales
Un protocole mérite le nom de preuve à divulgation nulle seulement s'il respecte trois conditions.
| Propriété | Nom anglais | Ce qu'elle garantit |
|---|---|---|
| Complétude | completeness | Si l'affirmation est vraie, un prouveur honnête finit toujours par convaincre le vérifieur. |
| Consistance | soundness | Si l'affirmation est fausse, un tricheur ne convainc qu'avec une probabilité négligeable. |
| Divulgation nulle | zero-knowledge | Le vérifieur n'apprend rien d'autre que la validité de l'affirmation. |
Complétude
C'est le sens « normal » : la preuve doit fonctionner quand tout le monde est honnête et que le secret est réellement connu. Sans cette propriété, le protocole serait inutile.
Consistance (solidité)
C'est la protection contre la triche. Un imposteur qui ne connaît pas le secret ne doit pas pouvoir berner le vérifieur — sauf par un coup de chance dont la probabilité tend vers zéro quand on répète le protocole.
Divulgation nulle
C'est la propriété la plus subtile, et celle qui donne son nom au concept. Même un vérifieur curieux ou malhonnête ne peut rien extraire du secret. Formellement, on dit que tout ce que le vérifieur observe pendant l'échange, il aurait pu le simuler tout seul, sans jamais parler au prouveur.
AFFIRMATION : "Je connais le secret S"
Peggy (prouveur) <----- echange -----> Victor (verifieur)
connait S ne connait pas S
Apres le protocole :
Victor est CONVAINCU ... mais n'a rien appris de S
Pourquoi c'est utile
Dans un monde numérique, on doit sans cesse prouver des choses : « je suis bien le titulaire de ce compte », « j'ai plus de 18 ans », « je dispose des fonds ». Habituellement, prouver revient à montrer : on donne son mot de passe, sa date de naissance, son relevé bancaire. On divulgue donc plus que nécessaire.
Les preuves à divulgation nulle inversent cette logique : on convainc sans exposer. C'est un outil majeur pour la protection de la vie privée.
En résumé
- Une preuve à divulgation nulle permet de prouver qu'on connaît un secret sans le révéler.
- Elle repose sur trois propriétés : complétude (l'honnête convainc), consistance/solidité (le tricheur échoue presque toujours), divulgation nulle (le vérifieur n'apprend rien d'autre que la validité).
- L'intérêt : convaincre sans exposer, un pilier de la confidentialité numérique.

