Come utilizziamo il computer come generatore di numeri casuali

generatore di numeri casuali I computer generano un numero casuale per qualsiasi cosa, dalla crittografia ai videogiochi e al gioco d'azzardo. Esistono due categorie di numeri casuali: vero numeri casuali e numeri pseudocasuali. E la differenza è importante per la sicurezza dei sistemi di crittografia. In questo articolo parleremo di come utilizziamo il computer come generatore di numeri casuali. Cominciamo!





Questo argomento è diventato più controverso di recente, insieme a molte persone che si chiedono se il chip generatore di numeri casuali hardware integrato di Intel sia affidabile o meno. Per capire perché potrebbe non essere affidabile, dovrai capire. Questo è il modo in cui i numeri casuali vengono generati in primo luogo e per cosa vengono utilizzati.



Per cosa vengono utilizzati i numeri casuali | generatore di numeri casuali

I numeri casuali sono stati usati per molte migliaia di anni. Che si tratti di lanciare una moneta o di tirare un dado, l'obiettivo è lasciare il risultato finale al caso. Il generatore di numeri casuali in un computer è simile. Sono un tentativo di ottenere un risultato casuale e imprevedibile.

I generatori di numeri casuali sono molto utili per molti scopi diversi. A parte le applicazioni ovvie come la generazione di numeri casuali ai fini del gioco d'azzardo o la creazione di risultati imprevedibili in un gioco per computer, la casualità è davvero importante per la crittografia.



La crittografia richiede numeri che gli aggressori non possono indovinare. Non possiamo semplicemente usare gli stessi numeri più e più volte. Vogliamo generare questi numeri in un modo molto imprevedibile in modo che gli aggressori non possano indovinarli. Questi numeri casuali sono importanti per la crittografia sicura. se stai crittografando i tuoi file o semplicemente utilizzando un sito HTTPS su Internet.



Numeri casuali veri | generatore di numeri casuali

Forse ti starai chiedendo come un computer possa effettivamente generare un numero casuale. Da dove viene questo casualità vieni da? Se è solo un pezzo di codice del computer, non è possibile che i numeri generati dal computer siano prevedibili?

Generalmente raggruppiamo i computer del numero casuale generato in due tipi. Dipende da come vengono generati: Vero numeri casuali e numeri pseudocasuali.



nesso radice 5x 7.1.1

Per generare un file vero numero casuale, il computer misura qualche tipo di fenomeno fisico che si verifica al di fuori del computer. Ad esempio, il computer potrebbe misurare il decadimento radioattivo di un atomo. Secondo la teoria quantistica, non c'è modo di sapere con certezza quando si verificherà il decadimento radioattivo. Quindi questo è essenzialmente pura casualità dall'universo. Un aggressore non sarebbe in grado di prevedere quando si verificherà il decadimento radioattivo. Quindi non conoscerebbero il valore casuale.



Per un esempio più quotidiano, il computer potrebbe fare affidamento sul rumore atmosferico o semplicemente utilizzare l'ora esatta in cui si premono i tasti sulla tastiera come fonte di dati imprevedibili o entropia. Ad esempio, il tuo computer potrebbe notare che hai premuto un tasto esattamente a 0,23423523 secondi dopo le 14:00. Prendi abbastanza dei tempi specifici associati a queste pressioni di tasti e avrai una fonte di entropia che puoi usare per generare un vero numero casuale. Non sei una macchina prevedibile. Quindi un attaccante non può indovinare il momento preciso in cui premi questi tasti. Il dispositivo / dev / random su Linux, che genera numeri casuali, blocchi e non restituisce un risultato finché non raccoglie abbastanza entropia per restituire un numero veramente casuale.

Numeri pseudocasuali | generatore di numeri casuali

I numeri pseudocasuali sono un'alternativa a vero numeri casuali. Un computer potrebbe utilizzare un valore iniziale e un algoritmo per generare numeri che sembrano essere casuali, ma in realtà è prevedibile. Il computer non raccoglie dati casuali dall'ambiente.

Questa non è necessariamente una cosa negativa in ogni situazione. Ad esempio, se stai giocando a un videogioco. Non importa se gli eventi che si verificano in quel gioco sono causati da vero numeri casuali o numeri pseudocasuali. D'altro canto. Se si utilizza la crittografia, non si desidera utilizzare numeri pseudocasuali che un utente malintenzionato potrebbe indovinare.

app Hangouts per mac

Ad esempio, supponiamo che un utente malintenzionato conosca l'algoritmo e il valore seed utilizzato da un generatore di numeri pseudocasuali. E diciamo che un algoritmo di crittografia ottiene un numero pseudocasuale da questo algoritmo. E lo utilizza per generare una chiave di crittografia senza aggiungere alcuna casualità aggiuntiva. Se un utente malintenzionato ne sa abbastanza, potrebbe lavorare a ritroso e determinare il numero pseudocasuale. L'algoritmo di crittografia deve aver scelto in quel caso, interrompendo la crittografia.

La NSA e il generatore di numeri casuali hardware di Intel

Per rendere le cose più facili per gli sviluppatori e aiutare a generare numeri casuali sicuri. I chip Intel includono un generatore di numeri casuali basato su hardware noto come RdRand. Questo chip utilizza una sorgente di entropia sul processore e fornisce numeri casuali al software quando il software li richiede.

Il problema qui è che il generatore di numeri casuali è essenzialmente una scatola nera e non sappiamo cosa sta succedendo al suo interno. Se RdRand contenesse una backdoor della NSA, il governo sarebbe in grado di violare le chiavi di crittografia. Questo è stato generato solo con i dati forniti da quel generatore di numeri casuali.

Questa è una seria preoccupazione. Nel dicembre 2013, gli sviluppatori di FreeBSD hanno rimosso il supporto per l'utilizzo diretto di RdRand come fonte di casualità, dicendo che non potevano fidarsi di esso. [Fonte] L'output del dispositivo RdRand verrebbe inserito in un altro algoritmo che aggiunge ulteriore entropia. Ciò garantisce che eventuali backdoor nel generatore di numeri casuali non abbiano importanza. Linux ha già funzionato in questo modo, randomizzando ulteriormente i dati casuali provenienti da RdRand in modo che non sarebbero prevedibili anche se ci fosse una backdoor. [Fonte] In un recente AMA ( Chiedimi qualunque cosa ) su Reddit, il CEO di Intel Brian Krzanich non ha risposto a domande su queste preoccupazioni. [Fonte]

Naturalmente, questo probabilmente non è solo un problema con i chip Intel. Gli sviluppatori di FreeBSD hanno chiamato anche i chip di Via per nome. Questa controversia mostra perché la generazione di numeri casuali veramente casuali e non prevedibili sia così importante.

Generare vero numeri casuali, generatori di numeri casuali si riuniscono entropia, o dati apparentemente casuali dal mondo fisico che li circonda. Per numeri casuali che non lo fanno veramente devono essere casuali, possono semplicemente utilizzare un algoritmo e un valore di inizializzazione.

Conclusione

Va bene, era tutto gente! Spero che questo articolo sul generatore di numeri casuali ti piaccia e ti sia utile. Dacci il tuo feedback in merito. Anche se vuoi chiedere ulteriori domande ad esso relative. Quindi faccelo sapere nella sezione commenti qui sotto. Vi risponderemo al più presto.

Vi auguro una buona giornata!

Vedi anche: NSFW: significato e come funziona effettivamente