Una lotteria in cui puoi essere convinto che sia giusto


27

(Scusate se questo è ben noto.) Vorrei dare un oggetto a uno dei agenti, così l'agente otterrà l'oggetto con probabilità . Esiste uno strumento crittografico (o altro) in modo tale che ogni agente (e persino ogni osservatore) sarà in grado di essere convinto che il disegno casuale sia davvero giusto?j p ikjpi


1
Gli agenti sono autorizzati a conoscere .. ? p kp0pk
Mike Samuel,

Risposte:


19

Se capisco correttamente il problema, sembrerebbe equivalente al lancio di una moneta da parte di pubblica . Sembra che ci siano molti modi per farlo se si assume un po 'di impegno. Un esempio potrebbe essere che ciascuna parte generi un numero intero casuale compreso tra 0 e , usando l'impegno dei bit per impegnarsi pubblicamente in quella stringa di bit. Quindi, una volta che ciascun agente si è impegnato, tutti rivelano pubblicamente il loro numero intero segreto. L'agente vincente è quindi quello indicizzato dalla somma degli interi modulo . Se anche un solo agente è onesto, il lancio deve essere casuale.k - 1 kkk1k

Naturalmente un problema con questo è che richiede un po 'di impegno. Gli schemi teorici dell'informazione per l'impegno dei bit sono impossibili sia per il calcolo classico che per quello quantistico (sebbene Adrian Kent abbia recentemente proposto uno schema che sfrutti la relatività). Tuttavia, l'impegno bit sicuro può essere raggiunto con ipotesi computazionali.


2
Il mio problema con questo approccio è che se vuoi convincere molti osservatori esterni dalla correttezza, ognuno di loro deve impegnarsi un po 'e devi essere sicuro che ognuno di loro rivelerà la prova del suo impegno. Non puoi semplicemente ignorare la parte di un osservatore che non rivela la loro prova perché l'ultimo osservatore che potrebbe rivelare potrebbe manipolare il risultato della lotteria decidendo se rivelare o meno la sua prova.
Zsbán Ambrus,

1
@ user8067: non credo sia possibile senza interazione o fiducia nel fatto che almeno una parte sia onesta. La ragione per cui dico questo è che se la casualità iniziale è effettivamente predeterminata attraverso una cospirazione di tutti coloro che partecipano a quel punto, l'intero processo è deterministico e non casuale. Tuttavia, il problema richiede che il processo sia casuale, quindi questo sembra essere il meglio che puoi fare.
Joe Fitzsimons,

2
Non sono convinto che sia possibile.
Joe Fitzsimons,

2
@RickyDemer: non ci sono abbastanza informazioni nella domanda per dire quale modello di avversario è applicabile qui. Se Gil ci dicesse esattamente a cosa serve, allora sarebbe più facile provare se uno schema specifico soddisfa o meno i suoi requisiti. Detto questo, non ho dubbi che Gil sia più che in grado di verificare se le nostre risposte soddisfano o meno i suoi bisogni.
Joe Fitzsimons,

2
@RickyDemer: Non mi è affatto chiaro quale sia il modello ovvio per questo caso. Dipende fortemente dalla configurazione e non è ovvio quali dovrebbero essere i presupposti di default. È un po 'troppo da sottovalutare e iniziare a comportarmi come se la mia risposta e quella di Lev fossero sbagliate. Non includono esplicitamente l'avvertimento indicato nella risposta di Adam. Nota che non sto modificando la mia risposta, perché senza ulteriori informazioni da Gil non vedo che abbia senso indovinare il modello avversario e quindi lo sto lasciando il più generale possibile (senza specificare se il l'impegno di bit deve essere non tollerabile).
Joe Fitzsimons,

15

Come altri utenti hanno accennato, questo è un problema ben studiato in crittografia. Si chiama "gettoniera" ed è un caso speciale di calcolo multiparty.

Quale protocollo fa effettivamente il lavoro dipende molto dal contesto.

  • Nell'impostazione "standalone", il protocollo verrà eseguito in modo isolato, senza che i giocatori siano coinvolti in altri protocolli (o, in effetti, nessuna interazione con il mondo esterno) allo stesso tempo. C'è un trattamento meravigliosamente approfondito di questo nel libro di testo di Oded Goldreich "Foundations of Cryptography" (Volume 2, credo).

Solo per dare un'idea di quanto sia sottile, il protocollo "tutti si impegnano a valori casuali" suggerito da un altro soccorritore è insicuro se lo schema di impegno che si utilizza è malleabile. Gli schemi di impegno non modificabili offrono un protocollo sicuro, ma sono un po 'complicati da progettare.

  • Nelle impostazioni in cui i partecipanti sono coinvolti in altri protocolli simultanei, si desidera un protocollo componibile . Esistono varie nozioni di compostabilità, ma la più forte, chiamata componibilità universale , richiede alcune ipotesi di impostazione aggiuntive (ad esempio, una PKI o una stringa casuale comune visibile a tutte le parti ma controllabile da nessuna di esse). Purtroppo non conosco un trattamento accessibile di questo argomento. Ma guardare un recente articolo sulla componibilità universale o sull'impegno non modesto sarebbe un buon punto di partenza.

1
"Una stringa casuale comune visibile a tutte le parti ma controllabile da nessuna di esse" è esattamente ciò che vogliamo generare.
Zsbán Ambrus,

1
e dopo aver risolto in qualche modo quel problema una volta, si può universalmente comporre risolverlo di nuovo (arbitrariamente molte volte).

Penso che l'impegno UC sia noto per l'installazione della chiave pubblica registrata (che è un presupposto più forte della PKI) e per l'installazione a più stringhe (che è un presupposto più debole della comune stringa casuale).

2
Benvenuto nel sito, Adam!
Gil Kalai,

11

Nota: si prega di leggere i commenti qui sotto. Questo protocollo sembra avere problemi.


pj

{0,1}bb

Qualsiasi agente può essere sicuro che il numero casuale scelto sia venuto in modo uniforme a caso, scegliendo il proprio vettore in modo uniforme a caso. Perché ogni osservatore sia convinto, devono fidarsi che almeno un agente abbia seguito il protocollo, ma se nessuno lo ha fatto, immagino che nessuno volesse davvero una buona lotteria per cominciare.


Scusa Lev, ho appena notato la tua risposta. Quando ho iniziato a scrivere una risposta non c'era nulla qui, ma sembra che entrambi abbiamo trovato risposte molto simili.
Joe Fitzsimons,

Nessun problema! Sembra che siamo sulla buona strada, quindi.
Lev Reyzin

Sì, in realtà penso che ci siano molti articoli su questo nel contesto del lancio delle monete, ma non conosco davvero quella letteratura abbastanza bene da dare una risposta adeguata basata su di essa.
Joe Fitzsimons,

7
Il primo riferimento che conosco è: M. Blum. Lanciare monete per telefono. CRYPTO 1981: 11-15. Può essere scaricato all'indirizzo dm.ing.unibs.it/giuzzi/corsi/Support/papers-cryptography/…
Ryan Williams,

4
C'è un attacco standard, se usi schemi di impegno bit standard (ad es. Hash). Consideriamo il caso con due parti, Alice e Bob, in cui Alice inizia per prima. Dopo che Alice ha trasmesso il suo impegno, Bob può copiarlo. Dopo che Alice ha aperto il suo impegno, Bob può aprire il suo adesso. Ora i loro vettori casuali sono uguali, quindi xor a zero - Bob è stato in grado di forzare il valore finale a zero, una contraddizione del requisito di equità.
DW,

-3

Gli osservatori passivi non possono verificare che il disegno non sia stato messo in scena. Gli input nel processo pseudocasuale possono essere scelti per dare il risultato desiderato.

Tuttavia, se l'osservatore può fornire un numero casuale che sa essere casuale E assicurarsi che altri agenti non modificheranno successivamente i loro input (perché potrebbero compensare il suo effetto con i loro input), allora può essere sicuro che il risultato sia stato davvero casuale .

Ciò richiede uno schema di impegno di cui non conosciamo nessuno che sia matematicamente dimostrato sicuro ma che in pratica può essere realizzato usando l'hash sicuro (come SHA3).

Considera questo esempio:

inserisci qui la descrizione dell'immagine

Ho fatto un'implementazione di esempio. Puoi vederlo dal vivo qui: https://mrogalski.eu/cl/ o controllare le fonti su GitHub .


1
Questo è già noto nella risposta di Joe.
Kaveh,

1
L'illustrazione grafica è molto bella!
Gil Kalai,

3
La grafica è molto carina ma la tua risposta non contiene nulla che non sia nelle risposte esistenti.
David Richerby,
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.