0Pricing
Cryptology Academy · Lezione

Protocolli Sigma e identificazione Schnorr

Implementi un protocollo Sigma e segua il funzionamento della dimostrazione Schnorr.

Protocolli Sigma e identificazione Schnorr è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Struttura di un protocollo Sigma

Un protocollo Sigma ha 3 messaggi: (1) Commit: il prover invia un commitment a un valore casuale. (2) Challenge: il verifier invia una challenge casuale. (3) Response: il prover invia una risposta calcolata a partire dalla challenge e dal segreto. Il verifier accetta o rifiuta.

Identificazione Schnorr

Il prover conosce il segreto x (chiave privata); la chiave pubblica = g^x mod p (oppure il punto X = x*G su una curva ellittica). Obiettivo: dimostrare di conoscere x senza rivelarlo. Questa è una prova di conoscenza del logaritmo discreto.

Passaggi del protocollo Schnorr

(1) Il prover sceglie un r casuale e invia il commitment R = r*G. (2) Il verifier invia la challenge c (un intero casuale). (3) Il prover invia la risposta s = r + c*x. (4) Il verifier verifica s*G == R + c*X. Se la verifica ha esito positivo, accetta. Il prover conosce x; la risposta s è calcolabile solo conoscendo x.

Analisi della sicurezza

Completezza: un prover onesto soddisfa sempre s*G = r*G + c*x*G = R + c*X. Solidità: due trascrizioni con lo stesso R ma challenge diverse c, c' producono s, s', da cui è possibile ricavare x = (s-s')/(c-c') — quindi un imbroglione non può produrre due risposte valide per lo stesso R.

Zero-knowledge di Schnorr

Simulatore (senza conoscere x): sceglie s e c casuali e imposta R = s*G - c*X. La tripla (R, c, s) ha la distribuzione di una trascrizione valida. Il verifier non può distinguere le trascrizioni reali da quelle simulate — Schnorr è zero-knowledge per un verifier onesto.

Trasformazione Fiat-Shamir

Rendere Schnorr non interattivo: sostituire la challenge del verifier con c = Hash(R || message). Il prover calcola autonomamente c e invia la risposta. Risultato: una prova composta da 2 elementi (R, s), che chiunque può verificare. Questo è lo schema di firma Schnorr.

Firme Schnorr

Sign(x, m): r ← random; R = r*G; c = Hash(R||m); s = r + c*x. Signature = (R, s). Verify: s*G == R + Hash(R||m)*X. Compatta (64 byte per P-256), verificabile in batch e dimostrabilmente sicura nel ROM. Adottata in Bitcoin Taproot (BIP-340).

Commitment di Pedersen

C = r*G + v*H, dove H è un secondo generatore indipendente. Crea un commitment al valore v usando la casualità r. Binding: non è possibile aprirlo a un valore v diverso (logaritmo discreto). Hiding: C è distribuito uniformemente. Utilizzato nelle range proof basate su Schnorr e nelle Bulletproofs.

Composizione: prove AND

Dimostrare la conoscenza di x1 AND x2 simultaneamente: eseguire due protocolli Schnorr con la stessa challenge (condividendo la challenge tramite Fiat-Shamir). Il verifier accetta solo se entrambe le sotto-prove sono valide. Consente di dimostrare più asserzioni con un'unica interazione.

Composizione: prove OR

Dimostrare la conoscenza di x1 OR x2 senza rivelare quale dei due: usare il simulatore per un ramo per calcolare una trascrizione falsa, quindi suddividere la challenge tra entrambi i rami. Il verifier vede due trascrizioni apparentemente valide la cui somma corrisponde alla challenge reale. Sono chiamate «ring signatures».

Applicazioni

Schnorr ID: passaporti elettronici (protocollo PACE). Firme Schnorr: Bitcoin Taproot, Monero (RingCT usa prove OR Schnorr), Signal Protocol (accordo di chiavi X3DH). Commitment di Pedersen: Confidential Transactions, Bulletproofs, cifratura delle note Zcash Sapling.

Verifica rapida

Nel protocollo di identificazione Schnorr, che cosa verifica il verifier nel passaggio finale?

Riepilogo

Protocolli Sigma: commit-challenge-respond. Schnorr dimostra la conoscenza di un logaritmo discreto. Fiat-Shamir lo rende non interattivo (firma Schnorr). Prossimo argomento: gli zk-SNARK per prove non interattive succinte.

Domande Frequenti

La lezione «Protocolli Sigma e identificazione Schnorr» è gratuita?

Sì — il testo completo di «Protocolli Sigma e identificazione Schnorr» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Protocolli Sigma e identificazione Schnorr»?

Implementi un protocollo Sigma e segua il funzionamento della dimostrazione Schnorr. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Protocolli Sigma e identificazione Schnorr»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Intuizione degli ZKP: la grotta di Ali Baba
  2. Protocolli Sigma e identificazione Schnorr
  3. zk-SNARK: argomenti succinti non interattivi
  4. Applicazioni degli ZKP: ZK Rollup e monete orientate alla privacy
← Torna a Cryptology Academy