Dimostrazione a conoscenza zero: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Sistemo note con collegamenti esterni senza titolo (documentazione) |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
||
(17 versioni intermedie di 13 utenti non mostrate) | |||
Riga 1:
In [[crittografia]] una '''dimostrazione a conoscenza zero''' o ''' protocollo a conoscenza zero''' è un metodo
== Un esempio astratto ==▼
<div class="thumb tright">
{|
|[[
|-
|[[
|-
|[[
|}
</div>
Line 19 ⟶ 18:
In questa storia, Peggy ha scoperto la parola segreta usata per aprire la porta magica in una caverna. La caverna ha la forma di un cerchio, con l'entrata su un lato e la porta magica che blocca l'altro lato. Victor dice che la pagherà per il segreto, ma non prima di essere sicuro che lei lo conosca davvero. Peggy si dice d'accordo a rivelargli il segreto, ma non prima di aver ricevuto i soldi. Pianificano quindi uno schema con il quale Peggy può dare prova a Victor di conoscere la parola senza rivelargliela.
Dapprima, Victor aspetta fuori dalla caverna mentre Peggy entra. Etichettiamo il sentiero sinistro e quello destro, partendo dall'entrata, con A e B. Peggy sceglie a caso uno dei due sentieri. Quindi, Victor entra nella caverna e grida il nome del sentiero che Peggy dovrà utilizzare per ritornare indietro, fra A e B, preso a caso. Se si ipotizza che lei conosca veramente la parola magica, è facile: apre la porta, se necessario, e ritorna attraverso il sentiero desiderato. È da notare che Victor non conosce il sentiero per il quale Peggy è entrata.
Comunque, supponiamo che Peggy non conosca la parola. Allora, sarebbe in grado di tornare attraverso il sentiero chiamato se Victor avesse scelto il nome dello stesso sentiero per cui lei era entrata. Poiché Victor ha scelto A o B a caso, avrebbe il 50% di probabilità di indovinare correttamente. Se i due ripetessero questo espediente molte volte (ad esempio, venti volte una dopo l'altra), la possibilità per Peggy di adempiere in modo corretto, senza conoscere davvero la parola magica, a tutte le richieste di Victor, diventerebbe statisticamente molto piccola (in virtù della [[indipendenza stocastica|probabilità di eventi indipendenti]]).
Line 26 ⟶ 25:
== Definizione ==
Una dimostrazione a conoscenza zero deve soddisfare tre proprietà:
#
#
#
Le prime due sono le proprietà della classe più generale dei sistemi interattivi di dimostrazione; la terza è specifica per le dimostrazioni a conoscenza zero.
In particolare la prima caratteristica risponde alla [[Completezza (logica matematica)|completezza]] come intesa comunemente in logica ("il vero è derivabile", informalmente), mentre la seconda non è direttamente legabile alla [[Correttezza (logica matematica)|correttezza]] (per la quale "il derivabile è vero": difatti la correttezza di una dimostrazione interattiva è definita proprio come sopra ed è diversa dalla nozione solita di ''soundness''); la componente saliente è ovviamente la terza.
La ricerca nell'ambito di prove a conoscenza zero è stata promossa dai sistemi di [[autenticazione]] in cui una parte vuole provare la propria identità ad una seconda parte attraverso una qualche informazione segreta (come ad esempio una [[password]]) ma vuole che la seconda parte non conosca nulla di questo segreto. Questa è chiamata "prova di conoscenza a conoscenza zero".
Le dimostrazioni a conoscenza zero non sono dimostrazioni in senso matematico poiché c'è sempre una piccola probabilità che un dimostratore imbroglione riesca a convincere un verificatore di una affermazione falsa. In altre parole, questi tipi di algoritmi sono probabilistici e non deterministici. Tuttavia, ci sono tecniche per ridurre questa probabilità a valori piccoli a piacere.
Line 49 ⟶ 47:
Ad ogni modo, una password è tipicamente troppo corta od insufficientemente casuale per essere usata, in molti schemi di dimostrazione a conoscenza zero. Una dimostrazione a conoscenza zero di password è un tipo speciale di prova a dimostrazione a conoscenza zero specifica per password di lunghezza limitata.
Uno degli usi più affascinanti delle dimostrazioni a conoscenza zero nei protocolli crittografici è rafforzare il comportamento onesto ed allo stesso tempo mantenere la privacy. Grossomodo, l'idea è di forzare l'utente a provare, usando una dimostrazione a conoscenza zero, la correttezza del suo comportamento rispetto al protocollo. Per via della correttezza, sappiamo che l'utente deve comportarsi in modo veramente onesto per essere abile nel fornire una dimostrazione valida. E per via della conoscenza zero, sappiamo che l'utente non compromette la privacy dei suoi segreti nel processo in cui fornisce la dimostrazione. Quest'applicazione delle dimostrazioni conoscenza zero fu usata per la prima volta nella sconvolgente pubblicazione [[Shafi Goldwasser]], [[Silvio Micali]], e Charles Rackoff, sulla computazione sicura multiparte.
==
Possiamo estendere questi concetti a un'applicazione crittografica più realistica. In questo scenario, Peggy conosce un [[ciclo hamiltoniano]] per un ampio [[grafo]]
▲Possiamo estendere questi concetti a un'applicazione crittografica più realistica. In questo scenario, Peggy conosce un [[ciclo hamiltoniano]] per un ampio [[grafo]] "G". Victor conosce "G" ma non il ciclo (per esempio, Peggy ha generato "G" e glielo ha rivelato.) Peggy proverà di conoscere il ciclo senza rivelarlo. Un ciclo hamiltoniano in un grafo è solo un modo di implementare la dimostrazione a conoscenza zero; infatti ogni problema [[NP-completo]] può essere usato a tal fine, come pure qualche altro tipo di problema difficile, come la fattorizzazione <ref>[http://www.bennetyee.org/ucsd-pages/ZKP.html bsy's Explanation of Zero Knowledge Proofs<!-- Titolo generato automaticamente -->]</ref>.
Ad ogni modo, Peggy non vuole semplicemente rivelare l'hamiltoniano o qualsiasi altra informazione a Victor; vuole mantenere segreto il ciclo (magari Victor è interessato a comprarlo ma vuole una verifica prima, o forse Peggy è l'unica che conosce quest'informazione e sta provando la sua identità a Victor).
Per mostrare di conoscere il ciclo, Peggy gioca assieme a Victor nel seguente modo:
* All'inizio di ogni mano, Peggy crea
* Victor sceglie poi a caso una delle due seguenti domande da porre a Peggy. Può chiederle di mostrare l'isomorfismo tra
* Nel primo caso, Peggy fornisce le traduzioni di vertice che mappano
* Nel secondo caso, Peggy traduce il suo ciclo hamiltoniano di
Ad ogni mano, Peggy non sa quale richiesta le verrà fatta finché non avrà dato a Victor il grafo
Però, la risposta di Peggy come vediamo non rivela tale informazione. Ad ogni mano, Victor verrà a conoscenza solo dell'isomorfismo da
Per via della natura degli isomorfismi tra grafi e dei cicli hamiltoniani, Victor non ha guadagno d'informazione circa il ciclo hamiltoniano in
Se Peggy non conosce l'informazione, può
==Varianti del modello==
Differenti varianti della dimostrazione a conoscenza zero possono essere definite formalizzando il concetto intuitivo di cosa s'intenda per l'output del simulatore "sembra" l'esecuzione del protocollo effettivo di cui si parlava sopra:
* Parliamo di conoscenza zero perfetta se le due [[distribuzione di probabilità|distribuzioni]] associate al simulatore ed al protocollo di dimostrazione sono esattamente le stesse; è il caso del primo esempio.
* Parliamo di conoscenza zero statistica se le distribuzioni non sono necessariamente uguali, ma sono statisticamente vicine, intendendo che la loro differenza statistica è trascurabile (informalmente, possiamo pensare ad una [[distanza (matematica)|metrica]] tra le distribuzioni in esame per valutare tale differenza).
* Parliamo di conoscenza zero algoritmica se non v'è algoritmo efficiente (tipicamente che corre in tempo polinomiale all'input) capace di distinguere le due distribuzioni di probabilità.
==Storia e risultati==
Le dimostrazioni conoscenza zero furono originariamente concepite nel [[1985]] da Shafi Goldwasser, et al., in una bozza di "The knowledge complexity of interactive proof-systems"<ref>Shafi Goldwasser, Silvio Micali, and Charles Rackoff. [
▲Le dimostrazioni conoscenza zero furono originariamente concepite nel [[1985]] da Shafi Goldwasser, et al., in una bozza di "The knowledge complexity of interactive proof-systems"<ref>Shafi Goldwasser, Silvio Micali, and Charles Rackoff. [http://portal.acm.org/citation.cfm?id=63434 The knowledge complexity of interactive proof-systems]. ''Proceedings of 17th Symposium on the Theory of Computation'', Providence, Rhode Island. 1985. Draft. [http://theory.lcs.mit.edu/~cis/pubs/shafi/1985-stoc.pdf Extended abstract]</ref>.
Nonostante tale rilevante pubblicazione non abbia inventato i sistemi di dimostrazione interattivi, ha per la prima volta proposto la gerarchia "IP" nell'ambito di questi (concetto di ''interactive system proof'') e concepito il concetto di "complessità conoscitiva", una misura della quantità di conoscenza circa una dimostrazione trasferita dal dimostratore al verificatore. Gli autori diedero anche la prima dimostrazione conoscenza zero per un problema concreto, decidere i [[residuo quadratico|nonresidui quadratici]] [[aritmetica modulare|mod "m"]]. Citando (considerando dimostrazione come sinonimo di algoritmo):
<blockquote>
Di particolare interesse è il caso dove questa conoscenza addizionale è essenzialmente 0 e mostriamo che è possibile dimostrare interattivamente che un numero è nonresiduo quadratico mod "m" rilasciando conoscenza addizionale 0. Ciò è sorprendente giacché non c'è algoritmo efficiente capace di decidere circa i residui modulo "m" quando la fattorizzazione di "m" non è data. Inoltre, tutte le dimostrazioni "NP" per il problema esibiscono la fattorizzazione prima di "m". Questo indica che aggiungere interazione al processo di dimostrazione può decrementare la quantità d'
</blockquote>
Il problema in oggetto ha sia un algoritmo risolutivo
[[Oded Goldreich]], et al., hanno portato il discorso ad un livello ancora superiore mostrando che, assumendo l'esistenza di una crittatura inattaccabile, si può costruire una prova conoscenza zero per il problema NP-completo della colorazione di un grafo a tre colori. Poiché ogni problema in
La motivazione per l'assunzione è che, come nell'esempio di sopra, i loro protocolli richiedono cifratura. Una situazione sufficiente comunemente citata per l'esistenza di una crittografia invincibile è l'esistenza di funzioni ad una via (ossia facili da calcolare su qualsiasi input ma difficili, in termini computazionali, da invertire datane un'immagine), ma è concepibile che un qualche mezzo fisico possa raggiungerla di per sé.
Inoltre, hanno anche dimostrato che il problema complemento dell'isomorfismo tra grafi ha una dimostrazione conoscenza zero; tale problema è in
Preferendo non fare assunzioni non necessarie, molti studiosi hanno intravisto modi per eliminare la necessità di funzioni ad una via. Tra gli altri, uno è stato tramite "sistemi di dimostrazione interattivi multipli" i quali hanno molti dimostratori indipendenti invece di uno solo, permettendo al verificatore di esaminare in modo incrociato i singoli prover singolarmente per evitare di essere fuorviato. Si può dimostrare che, senza assunzioni d'intrattabilità, tutti i linguaggi in
Salta all'occhio che in uno scenario come quello di [[Internet]], dove più protocolli possono essere eseguiti [[concorrenza (informatica)|concorrentemente]], costruire prove conoscenza zero è più interessante. La linea di ricerca che investiga dimostrazioni conoscenza zero concorrenti fu iniziata dai lavori di Dwork, Naor e Sahai<ref>Cynthia Dwork, Moni Naor, and Amit Sahai. Concurrent Zero Knowledge. ''Journal of the ACM (JACM)'', v.51 n.6, p.851-898, November 2004.</ref>. Un particolare sviluppo lungo questa è stata lo sviluppo di protocolli cosiddetti ''witness-indistinguishable''. La proprietà è legata a quella delle conoscenza zero, ma tali protocolli non soffrono degli stessi problemi di esecuzione concorrente.<ref>Uriel Feige and Adi Shamir. Witness Indistinguishable and Witness Hiding Protocols. "ACM Symposium on Theory of Computing (STOC)", 1990</ref>
Le dimostrazioni a conoscenza zero possono essere in un'altra variante anche non interattive. Blum, Feldman, e Micali
==Note==
Line 107 ⟶ 100:
==Collegamenti esterni==
* {{en}} [http://www.wisdom.weizmann.ac.il/~naor/PUZZLES/waldo.html Applied Kid Cryptography] – Una semplice spiegazione delle dimostrazioni a conoscenza zero
* {{
* {{
* {{
* {{
{{Portale|crittografia}}
|