Buone fonti di numeri casuali imprevedibili pubblicamente disponibili?

2

Non ero sicuro se chiedere questo su crittografia o sicurezza, ma dal momento che coinvolge fiducia e servizi reali, ho pensato che questo fosse il posto migliore.

Considera che io e i miei amici (che ai fini di questa domanda non mi fido) vogliamo bloccare un numero casuale che diventa disponibile solo in una data futura. Ad esempio, potrebbe essere il caso di incontrarsi in un luogo casuale in un paese senza poter configurare e indagare in anticipo sull'area.

È importante che il numero casuale sia:

  1. Non conoscibile prima della data e ora concordate.
  2. Non è possibile influenzare.
  3. Sufficientemente casuale (alta entropia hash).

Come schema di esempio, potremmo scegliere il numero casuale come hash del titolo di un giornale principale dalla nostra data scelta. Salvo misure incredibilmente estreme, questo non è conoscibile, impossibile da influenzare, ma ha un'entropia relativamente bassa.

Uno schema migliore potrebbe essere quello di scegliere i dati meteorologici da una fonte concordata. Ma un vettore di attacco che hackera la stazione meteorologica potrebbe essere più ragionevole che influenzare il titolo di un giornale pubblico. O rintracciare i sensori e fare scherzi con quelli.

Quali sono alcune buone fonti, pubblicamente disponibili, granulari (ad esempio ogni ora è meglio di ogni giorno) di numeri inconoscibili, impossibili da influenzare, sufficientemente casuali?

    
posta orlp 29.01.2017 - 15:32
fonte

2 risposte

1

L'articolo principale sul sito web dei giornali potrebbe essere quello che vuoi come fonte di entropia. Ciò significa che puoi utilizzare l'hash di un articolo:

  • fonte entropy: articolo in cima al sito di un giornale
  • lunghezza del numero casuale (ad esempio SHA256- > 256Bit o AES-OFB come cifra del flusso)
  • Segreto: se temi un attacco da parte di terzi, devi tenere segreto quale giornale usi e scegli il giornale a caso con i tuoi partner

Contro:

  • Uno dei tuoi partner potrebbe scrivere uno script che gli mostra sempre la posizione corrente generata dall'articolo
  • L'articolo in alto potrebbe cambiare prima che i tuoi partner abbiano calcolato il numero casuale

Vecchia risposta

Questo non è esattamente quello che hai chiesto, ma potrebbe corrispondere al tuo caso d'uso.

Condivisione segreta di Shamir

Se ti occorrono le seguenti condizioni:

  • Non ti fidi delle persone
  • Tutte le persone devono essere in una stanza / o comunicare tra loro in quel giorno per ottenere il segreto

Suggerirei di utilizzare lo schema di condivisione segreta di Shamir: link 's_Secret_Sharing

Con SSS puoi dividere un segreto in più pezzi, ad es. 5 pezzi e consegnalo a 4 persone (ne mantieni uno per te). Solo se tutti e 5 i pezzi sono insieme, puoi ricostruire il segreto.

Puoi anche calcolare SSS per rendere possibile che ad es. sono necessari solo 3/5 pezzi per ottenere il segreto.

    
risposta data 29.01.2017 - 19:07
fonte
0

Il mio suggerimento è di usare il gioco della lotteria USA Pick 10 API Esempio: link restituirà il numero casuale 01 05 06 07 11 14 22 30 32 34 35 37 44 45 54 55 60 61 66 68

Basta cambiare la data dell'estrazione in una data futura. Dato che c'è un pareggio giornaliero, puoi essere certo che c'è un pareggio alla data concordata. Assicurati anche di assicurarsi che l'orario della riunione sia successivo al tempo di prelievo.

La stringa casuale risultante può essere sottoposta a hash con una password per garantire che nessuna parte terza possa individuare la posizione dopo la data concordata. Per evitare di ottenere posizioni "impossibili" (pensate a metà del mare), suggerirei di utilizzare una o più cifre selezionate del valore hash, per selezionare da una lista di pochi posti, che sono sufficientemente raggiungibili e concordati in anticipo, MA in una tale quantità è praticamente impossibile da sistemare in anticipo i luoghi.

Potresti ad esempio utilizzare un'API che elenca tutte le fermate degli autobus all'interno di una città specifica, compilarne una lista e quindi inviare l'elenco delle fermate degli autobus (ordinate in un modo specifico), insieme all'indirizzo di numeri. E poi questo è usato per selezionare una fermata dell'autobus all'interno della lista, che può essere selezionata solo nella data concordata.

Se l'elenco dei luoghi non è equamente divisibile con un numero qualsiasi di bit dell'hash, puoi tagliare alcuni punti oppure puoi selezionare un numero di bit che supera il numero di posti, quindi scorrere l'elenco fino a quando non conti quel numero, e quindi fermati in un posto.

    
risposta data 29.01.2017 - 23:39
fonte

Leggi altre domande sui tag