0Pricing
Cryptology Academy · Leçon

Protocoles Sigma et identification de Schnorr

Implémentez un protocole Sigma et suivez le fonctionnement de la preuve de Schnorr.

Protocoles Sigma et identification de Schnorr est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.

Structure d'un protocole Sigma

Un protocole Sigma comporte 3 messages : (1) Engagement : le prouveur envoie un engagement envers une valeur aléatoire. (2) Défi : le vérificateur envoie un défi aléatoire. (3) Réponse : le prouveur envoie une réponse calculée à partir du défi et du secret. Le vérificateur accepte ou rejette.

Identification de Schnorr

Le prouveur connaît le secret x (la clé privée) ; la clé publique = g^x mod p (ou le point X = x*G sur une courbe elliptique). Objectif : prouver la connaissance de x sans le révéler. Il s'agit d'une preuve de connaissance du logarithme discret.

Étapes du protocole de Schnorr

(1) Le prouveur choisit un r aléatoire et envoie l'engagement R = r*G. (2) Le vérificateur envoie le défi c (un entier aléatoire). (3) Le prouveur envoie la réponse s = r + c*x. (4) Le vérificateur vérifie s*G == R + c*X. Si c'est le cas, il accepte. Le prouveur connaît x ; la réponse s ne peut être calculée qu'avec x.

Analyse de sécurité

Complétude : un prouveur honnête respecte toujours s*G = r*G + c*x*G = R + c*X. Solidité : deux transcriptions ayant le même R mais des défis différents c et c' donnent s et s', à partir desquels x = (s-s')/(c-c') peut être retrouvé — un tricheur ne peut donc pas produire deux réponses valides pour le même R.

Zéro connaissance de Schnorr

Simulateur (sans connaître x) : choisir s et c aléatoires, puis définir R = s*G - c*X. Le triplet (R, c, s) suit une distribution de transcriptions valides. Le vérificateur ne peut pas distinguer les transcriptions réelles des transcriptions simulées — Schnorr est à divulgation nulle de connaissance pour un vérificateur honnête.

Transformation de Fiat-Shamir

Rendre Schnorr non interactif : remplacer le défi du vérificateur par c = Hash(R || message). Le prouveur calcule lui-même c et envoie la réponse. Résultat : une preuve composée de deux éléments (R, s), que n'importe qui peut vérifier. Il s'agit du schéma de signature de Schnorr.

Signatures de Schnorr

Sign(x, m) : r ← aléatoire ; R = r*G ; c = Hash(R||m) ; s = r + c*x. Signature = (R, s). Vérification : s*G == R + Hash(R||m)*X. Compacte (64 octets pour P-256), vérifiable par lots et prouvée sûre dans ROM. Adoptée dans Taproot de Bitcoin (BIP-340).

Engagements de Pedersen

C = r*G + v*H, où H est un second générateur indépendant. Cet engagement associe la valeur v au hasard r. Liaison : impossible de l'ouvrir pour une autre valeur v (logarithme discret). Dissimulation : C suit une distribution uniforme. Utilisé dans les preuves d'appartenance à un intervalle fondées sur Schnorr et dans les Bulletproofs.

Composition : preuves AND

Prouver simultanément la connaissance de x1 AND x2 : exécuter deux protocoles de Schnorr avec le même défi (partager le défi via Fiat-Shamir). Le vérificateur n'accepte que si les deux sous-preuves sont valides. Cela permet de prouver plusieurs affirmations lors d'une seule interaction.

Composition : preuves OR

Prouver la connaissance de x1 OR x2 sans révéler lequel : utiliser le simulateur pour une branche afin de calculer une transcription factice, puis répartir le défi entre les deux branches. Le vérificateur voit deux transcriptions qui semblent valides et dont la somme correspond au défi réel. On appelle cela des « signatures en anneau ».

Applications

Identifications Schnorr : passeports électroniques (protocole PACE). Signatures Schnorr : Taproot de Bitcoin, Monero (RingCT utilise des preuves OR de Schnorr), protocole Signal (accord de clés X3DH). Engagements de Pedersen : transactions confidentielles, Bulletproofs, chiffrement des notes de Zcash Sapling.

Vérification rapide

Dans le protocole d'identification de Schnorr, que vérifie le vérificateur lors de l'étape finale ?

Récapitulatif

Protocoles Sigma : engagement-défi-réponse. Schnorr prouve la connaissance d'un logarithme discret. Fiat-Shamir le rend non interactif (signature de Schnorr). Ensuite : les zk-SNARK pour les preuves non interactives concises.

Questions Fréquemment Posées

La leçon « Protocoles Sigma et identification de Schnorr » est-elle gratuite ?

Oui — le texte complet de « Protocoles Sigma et identification de Schnorr » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Protocoles Sigma et identification de Schnorr » ?

Implémentez un protocole Sigma et suivez le fonctionnement de la preuve de Schnorr. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cryptology Academy ?

Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Protocoles Sigma et identification de Schnorr » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?

Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Intuition des ZKP : la grotte d’Ali Baba
  2. Protocoles Sigma et identification de Schnorr
  3. zk-SNARKs : arguments succincts non interactifs
  4. Applications des ZKP : ZK Rollups et cryptomonnaies confidentielles
← Retour à Cryptology Academy