Il cervello umano può generare numeri casuali crittograficamente sicuri?

11

Un mio amico attento alla sicurezza stava tentando di generare entropia usando lanci di dadi casuali per generare una password casuale, e mi sono incuriosito circa la sicurezza dei generatori di numeri casuali e se potesse fare lo stesso semplicemente pensando a dadi casuali rotoli. Comprometterebbe la sicurezza della generazione di password / chiavi di utilizzare numeri casuali generati dall'uomo invece di numeri casuali da un dado o da un generatore di numeri casuali sicuro?

Riesco a vedere come i generatori di numeri casuali standard inclusi in molti linguaggi di programmazione potrebbero non essere crittograficamente sicuri in modi noti e sfruttabili, ma che dire dei numeri casuali generati dal cervello? Quando le ho chiesto, ha affermato che gli umani erano terribili nel generare entropia, ma non sono sicuro che sia così. In che modo gli umani si classificano nella generazione di entropia chiave e sarebbe possibile per una mente umana prendere il posto del generatore di numeri casuali per la generazione di chiavi / password senza essere sfruttabili?

    
posta MxSagan 26.08.2014 - 00:32
fonte

2 risposte

4

È plausibile che l'entropia possa in qualche modo essere generata dai processi cerebrali, ma farlo direttamente (ad esempio, "pensa a un numero casuale") è, a mio avviso, abbastanza facile da scartare.

In una sequenza casuale di bit, il valore di ogni dato bit è indipendente da tutti gli altri bit nella sequenza. Tuttavia, se chiedi a una persona di generare una sequenza casuale di bit, non c'è modo di isolare la generazione di un bit dalla conoscenza di quali bit lo hanno preceduto.

    
risposta data 26.08.2014 - 00:59
fonte
6

Esploriamo alcune possibilità:

Forme di output cognitive

1. I numeri

Gli umani sono cattivi nel selezionare numeri. C'è un evidente pregiudizio verso i numeri dispari poiché sono più esotici . Ci sono sondaggi come questo: Is 17 il numero "più casuale" ?

Per mitigare un po 'il bias, puoi far dire alla persona un lungo flusso di cifre (0-9), ma il bias continuerà a esistere.

2. Le lettere

Gli umani hanno straordinarie abilità linguistiche [Citazione necessaria] . Ciò significa che non c'è modo che non li useremo nemmeno accidentalmente. È molto probabile che dopo aver detto T un H seguirà per una persona con inglese come lingua principale. Non permettermi di iniziare con la frequenza delle lettere altamente polarizzata.

3. Booleano

Non ho trovato nulla che supporti o smentisca i miei sospetti, ma penso che anche un flusso di 0 e 1 sarà distorto. Dal momento che il riconoscimento dei pattern ci ha permesso di sopravvivere, cerchiamo l'ordine nel caos. Ciò significa che è probabile che una persona ripeterà 0101 molte volte, ma devono esserci tutti i tipi di modelli non solo uno o due presenti.

Tecniche di mitigazione

1. Cerca attivamente di stare lontano dai modelli

Questo è davvero difficile dal momento che gli umani sono cattivi alle probabilità. Un indicatore per questo è il problema di compleanno , sebbene non sia realmente applicabile a questa domanda.

2. Hash it

Il modo migliore è cancellare l'output dall'alto con una funzione hash crittograficamente protetta come SHA-512. Wikipedia dice dice che il testo inglese ha tra 0.6 e 1.3 bit di entropia per ogni carattere del messaggio . Dato che la persona sta provando a dire cose casuali, ma non ci sta davvero riuscendo, supponiamo che si adattino 2 bit per lettera. Ciò significa che una persona deve dire almeno 256 lettere per avere abbastanza entropia per una chiave a 512 bit.

Altre tecniche

Lascia che la casualità provenga da movimenti muscolari. Questo è già stato fatto in alcune soluzioni software per generare casualità di alta qualità, se il sistema RNG non può essere considerato attendibile. Mi viene in mente la fine di Truecrypt.

    
risposta data 26.08.2014 - 12:31
fonte

Leggi altre domande sui tag