Simulatore esauriente di protocolli a conoscenza zero nel modello Oracle casuale


13

In un documento intitolato "Sulla negabilità nella stringa di riferimento comune e nel modello Oracle casuale", Rafael Pass scrive:

Notiamo che quando si dimostra la sicurezza secondo la definizione standard di conoscenza zero nel modello RO [Oracle casuale], il simulatore presenta due vantaggi rispetto a un simulatore di modello semplice, vale a dire,

  1. Il simulatore può vedere su quali valori le parti interrogano l'oracolo.
  2. Il simulatore può rispondere a queste domande in qualunque modo scelga, purché le risposte "sembrino" OK.

La prima tecnica, ovvero la capacità di "monitorare" le query al RO, è molto comune in tutti gli articoli che fanno riferimento al concetto di conoscenza zero nel modello RO.

Consideriamo ora la definizione di conoscenza zero a scatola nera ( PPT sta per macchina di Turing probabilistica, a tempo polinomiale ):

un simulatore PPT S , tale che (possibilmente barare) verificatore PPT V , input comune x L e casualità r , i seguenti sono indistinguibili:SVxLr

  • la vista di mentre interagisce con il prover sull'ingresso e usa la casualità ; Vx rPxr
  • l'uscita del sugli ingressi e , quando viene concesso l'accesso black-box a . x r S V SxrSV

Qui, voglio esibire un verificatore di frode , il cui compito è esaurire qualsiasi simulatore che tenti di monitorare le query RO:V

Sia il simulatore garantito dal quantificatore esistenziale nella definizione di conoscenza zero a scatola nera, e sia un polinomio che limiti il ​​tempo di esecuzione di sull'ingresso . Supponiamo che cerchi di monitorare le query di su RO.q ( | x | ) S x S V Sq(|x|)SxSV

Ora, considera un barare , che prima interroga il RO per volte (su input arbitrari di sua scelta), e poi agisce in modo arbitrario maliziosamente. q ( | x | ) + 1Vq(|x|)+1

Ovviamente, esaurisce il simulatore . Un modo semplice per è rifiutare un simile comportamento malizioso, eppure in questo modo, un distinguitore può facilmente distinguere l'interazione reale da quella simulata. (Dato che nella vera interazione, il prover non può monitorare query di , e quindi non rifiuterà in base al semplice fatto che sta interrogando troppo.) S S P V V VSSPVV

Qual è la soluzione alternativa per il problema sopra riportato?

Modificare:

Una buona fonte per studiare ZK nel modello RO è:

Martin Gagné, A Study of the Random Oracle Model, Ph.D. Tesi, Università della California, Davis , 2008, 109 pagine. Disponibile su ProQuest: http://gradworks.umi.com/33/36/3336254.html

In particolare, fornisce le definizioni della scatola nera ZK nel modello RO nella sezione 3.3 (pagina 20), attribuita a Yung e Zhao:

Moti Yung e Yunlei Zhao. Conoscenza zero interattiva con oracoli casuali limitati. In Theory of Cryptography - TCC 2006 , LNCS 3876, pagg. 21-40, 2006.


Penso che potresti voler dire "esaustivo" anziché "estenuante".
Dave Clarke,

Mi permetto di dissentire. Volevo dire che ho trovato un modo per "esaurire" il simulatore dei protocolli ZK ... Non esiste un simulatore "esaustivo".
MS Dousti,

Colpa mia. Ho letto estenuante come un aggettivo, non un verbo.
Dave Clarke,

Risposte:


10

C'è una domanda sul perché si vorrebbe definire la scatola nera ZK nel modello a oracolo casuale. Ci sono almeno due ragioni per cui le persone hanno suggerito la definizione di conoscenza zero-black box:

1) Per un risultato positivo, quando dici che un simulatore è "conoscenza zero della scatola nera" ti dà automaticamente un bel limite sul suo tempo di esecuzione (cioè, al contrario di p o l y ( t i m e ( V ) ) ) e può anche essere utile sapere che il simulatore non "guarda le viscere di V e non gli importa se V poly(|x|)time(V)poly(time(V))VVè implementato usando RAM, circuito, ecc ... Mentre un simulatore di modello a oracolo casuale può essere efficiente, ovviamente non è una scatola nera, perché dovrebbe in qualche modo guardare l'esecuzione di e capire da esso quando V sta valutando una funzione hash. Per questo motivo, ha senso non avere senso affermare che un simulatore di modelli a oracolo casuale sia "scatola nera".VV

2) Per un risultato negativo, le persone usano il "simulatore black-box" per catturare una grande classe di tecniche di prova. In questo caso è possibile definire il simulatore black-box anche nel modello a oracolo casuale e la definizione che ha senso è ciò che David ha detto. Infatti, per un risultato negativo anche non nel modello oracolo random, è meglio se il risultato vale anche se si consente il simulatore tempo di esecuzione. In effetti, sebbene non sia sempre indicato, i risultati negativi di cui sono a conoscenza hanno tutti questa proprietà, dal momento che il verificatore di frode V poly(time(V))V è in genere un algoritmo polinomiale fisso che esegue alcune funzioni pseudocasuali, mentre il simulatore può avere qualsiasi tempo di esecuzione polinomiale.


1
Lo stesso vale per la "simulazione universale" ZK? Dopotutto, la scatola nera ZK è un tipo di ZK di simulazione universale, il cui tempo di esecuzione è fissato prima che venga determinato . (Tuttavia, ZK non-black-box è un tipo di ZK di simulazione universale, in cui S può guardare le "viscere" di V *)V
MS Dousti,

Si prega di consultare la domanda modificata per alcuni riferimenti.
MS Dousti,

1
Per un simulatore universale (senza scatola nera), si deve consentire il polinomio del tempo di esecuzione nel tempo di esecuzione di poiché altrimenti il ​​simulatore non ha il tempo di invocare V . Ma generalmente il punto che ho sollevato è che "conoscenza zero della scatola nera" non è una definizione canonica ma piuttosto uno strumento, e tale strumento può essere utilizzato in modo diverso nel contesto di risultati positivi o negativi per renderli più significativi. VV
Boaz Barak,

1
Ho ritardato la risposta al tuo commento poiché volevo leggere di più. In particolare, ho letto il documento di Yung e Zhao (citato sopra) e ho notato che hanno usato la scatola nera ZK nel modello RO per un risultato positivo, mentre tu hai detto "non ha senso dire che un modello a oracolo casuale il simulatore è "scatola nera". " Il loro risultato è filosoficamente problematico o dovremmo rilassare la definizione di scatola nera?
MS Dousti,

4

Ecco la mia opinione sul problema. Di recente non ho letto alcun documento che tratta della conoscenza zero della scatola nera nel modello dell'oracolo casuale (RO), quindi sto solo indovinando ciò che significano e non ciò che è scritto lì. La risposta breve (ipotesi) è che BB-ZK nel modello RO dovrebbe consentire al simulatore di funzionare nel polinomio temporale in | x | e il numero di query RO emesse da V *, il cheat verificatore.

Proviamo a giustificare questa ipotesi. Un'osservazione iniziale è che il termine "prove a conoscenza zero nella scatola nera nel modello dell'oracolo casuale" ha bisogno di uno sguardo più attento per definire correttamente. I simulatori di scatole nere sono definiti per funzionare con qualsiasi oracolo (ovvero, il verificatore barare come una scatola nera) e la loro unica interfaccia è attraverso l'ingresso / uscita dell'oracolo. Se aumentiamo semplicemente questo modello per fornire un RO a tutte le parti (forse consentendo ai loro circuiti di avere porte RO), allora otteniamo un modello in cui il simulatore non può programmare il RO - su una query oracle, tutto (comprese le query RO) solo accade "all'interno" dell'oracolo V * e quindi restituisce il messaggio successivo. Se vogliamo consentire la programmazione RO, allora abbiamo bisogno di modificare le interfacce: il simulatore ora ottiene un oracolo di input / output per V * e nessun oracolo casuale. Ad ogni chiamata all'oracolo V *, invece di produrre il messaggio successivo, l'oracolo può invece produrre la query successiva sul RO e il simulatore può fornire la risposta RO chiamando nuovamente l'oracolo. Ora questo consente la programmazione RO e possiamo anche consentire al tempo di esecuzione del simulatore di dipendere dal numero di query per il RO.

Ogni ulteriore esplorazione del significato di queste definizioni è lasciata al lettore. Sto pensando sintatticamente.


1
Grazie per la risposta David. Indipendentemente dalla capacità del simulatore di programmare il RO, dovrebbe essere in grado di "monitorarli". Quindi, ogni query oracolo di V * fa perdere tempo a M almeno per il tempo. La tua grande idea è quella di cambiare il modello per "far funzionare il simulatore nel polinomio temporale in | x | e il numero di query RO emesse da V *." Questo non è il modello standard, ma lo vedo come una soluzione ragionevole. Eppure penso che i "giganti" nella comunità debbano riconoscere prima l'autenticità di tale modello ...
MS Dousti,

1
Puoi citare una fonte che definisce con precisione "il modello standard"? (Quel termine è spesso usato come sinonimo di "nessun oracolo casuale o altre modifiche simili sono presenti nel modello di calcolo", ma non penso che questo sia ciò che intendevi.) La mia aspettativa è che ho abbozzato la definizione di ciò che sarebbe considerato standard e, in caso contrario, possiamo capirlo senza che alcun "gigante" attesti attivamente il nostro ragionamento.
David Cash,

1
Certo, per "modello standard" intendevo la "definizione standard" di ZK sotto il modello RO. Puoi fare riferimento al documento di Rafael Pass (citato nella domanda), o alla sua tesi di laurea specialistica (intitolata "Varianti alternative di prove a conoscenza zero"), o al documento di Wee in AsiaCrypt 2009 ("Conoscenza zero nel modello Oracle casuale, Revisited") . Nessuno di essi ha definito ZK "scatola nera" nel modello RO (tutti hanno menzionato l'ingresso ausiliario ZK), sebbene nessuno si riferisse a "run in time polinomial in | x | e al numero di query RO fatte da V *". Quindi, penso che stai proponendo una nuova definizione (Google it!)
MS Dousti,

Si prega di consultare la domanda modificata per alcuni riferimenti.
MS Dousti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.