it.phhsnews.com


it.phhsnews.com / Come i computer generano numeri casuali

Come i computer generano numeri casuali


I computer generano numeri casuali per qualsiasi cosa, dalla crittografia ai videogiochi e al gioco d'azzardo. Esistono due categorie di numeri casuali - "veri" numeri casuali e numeri pseudocasuali - e la differenza è importante per la sicurezza dei sistemi di crittografia.

I computer possono generare numeri veramente casuali osservando alcuni dati esterni, come movimenti del mouse o rumore della ventola , che non è prevedibile e crea dati da esso. Questo è noto come entropia. Altre volte, generano numeri "pseudocasuali" usando un algoritmo in modo che i risultati appaiano casuali, anche se non lo sono.

Questo argomento è diventato più controverso di recente, con molte persone che si chiedono se il generatore di numeri casuali dell'hardware integrato di Intel il chip è affidabile. Per capire perché potrebbe non essere affidabile, dovrai capire come vengono generati i numeri casuali in primo luogo e per cosa sono utilizzati.

Quali numeri casuali vengono utilizzati per

Sono stati utilizzati numeri casuali per molte migliaia di anni. Che si tratti di lanciare una moneta o lanciare un dado, l'obiettivo è di lasciare il risultato finale al caso. I generatori di numeri casuali in un computer sono simili: sono un tentativo di ottenere risultati casuali imprevedibili.

CORRELATI: Che cos'è la crittografia e come funziona?

I generatori di numeri casuali sono 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à è importante per la crittografia.

La crittografia richiede numeri che gli attaccanti 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 attaccanti non possano indovinarli. Questi numeri casuali sono essenziali per la crittografia sicura, sia che tu stia crittografando i tuoi file o semplicemente utilizzando un sito Web HTTPS su Internet.

Numeri casuali reali

Ci si potrebbe chiedere come può un computer in realtà genera un numero casuale. Da dove viene questa "casualità". Se è solo un pezzo di codice del computer, non è possibile che i numeri generati dal computer siano prevedibili?

Generalmente i numeri casuali generano i computer in due tipi, a seconda di come vengono generati: "Vero" casuale numeri e numeri pseudo-casuali.

Per generare un numero casuale "vero", il computer misura un tipo di fenomeno fisico che avviene 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 questa è essenzialmente "pura casualità" dall'universo. Un utente malintenzionato non sarebbe in grado di prevedere quando si verificherà il decadimento radioattivo, quindi non conoscerebbe il valore casuale.

Per un esempio più quotidiano, il computer potrebbe fare affidamento sul rumore atmosferico o semplicemente utilizzare l'esatto tempo di premere 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 questi tasti e avrai una fonte di entropia che puoi usare per generare un "vero" casuale numero. 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

I numeri pseudocasuali sono un'alternativa a Numeri casuali "veri". Un computer potrebbe utilizzare un valore di inizializzazione e un algoritmo per generare numeri che sembrano casuali, ma che in realtà sono prevedibili. Il computer non raccoglie dati casuali dall'ambiente.

Questo non è necessariamente un aspetto negativo in ogni situazione. Ad esempio, se stai giocando a un videogioco, non importa se gli eventi che si verificano in quel gioco sono costituiti da numeri casuali "veri" o numeri pseudocasuali. D'altra parte, se si utilizza la crittografia, non si desidera utilizzare numeri pseudocasuali che un utente malintenzionato potrebbe indovinare.

Ad esempio, supponiamo che un utente malintenzionato conosca l'algoritmo e il valore di inizializzazione utilizzati da un generatore di numeri pseudocasuali. Supponiamo che un algoritmo di crittografia ottenga un numero pseudocasuale da questo algoritmo e lo utilizzi per generare una chiave di crittografia senza aggiungere alcuna casualità aggiuntiva. Se un utente malintenzionato ne sa abbastanza, potrebbe lavorare all'indietro e determinare il numero pseudocasuale che l'algoritmo di crittografia deve aver scelto in quel caso, interrompendo la crittografia.

L'NSA e il generatore di numeri casuali hardware di Intel

Per semplificare gli sviluppatori e aiuta a generare numeri casuali sicuri, i chip Intel includono un generatore di numeri casuali basato su hardware noto come RdRand. Questo chip utilizza una fonte 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 conteneva una backdoor NSA, il governo sarebbe in grado di interrompere le chiavi di crittografia generate con solo 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 di RdRand direttamente come fonte di casualità, dicendo che non potevano fidarsi di esso. [Fonte] L'output del dispositivo RdRand verrà inserito in un altro algoritmo che aggiunge ulteriore entropia, assicurando che qualsiasi backdoor nel generatore di numeri casuali non sia rilevante. Linux funzionava già in questo modo, randomizzando ulteriormente i dati casuali provenienti da RdRand in modo che non fosse prevedibile anche se esistesse una backdoor. [Fonte] In un recente AMA ("Ask Me Anything") 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 è così importante.


Per generare "veri" numeri casuali, i generatori di numeri casuali raccolgono "entropia" o dati apparentemente casuali dal mondo fisico che li circonda. Per i numeri casuali che in realtà devono essere casuali, possono usare solo un algoritmo e un valore di seme.

Image Credit: rekre89 su Flickr, Lisa Brewster su Flickr, Ryan Somma su Flickr, huangjiahui su Flickr


Perché ancora non dovresti comprare Star Wars: Battlefront II

Perché ancora non dovresti comprare Star Wars: Battlefront II

Se hai seguito le notizie sui videogiochi per le ultime due settimane, probabilmente hai sentito che EA Star Wars: Battlefront II sta avendo alcuni problemi iniziali. EA ha fatto marcia indietro per evitare ulteriori polemiche, ma siamo qui per dire: non ci crediate. Il problema originale con Battlefront II CORRELATO: Le microtransazioni nei giochi AAA sono qui per Stay (Ma They're Still Terrible) È tecnicamente fuori oggi nella maggior parte dei mercati, una breve beta aperta e un periodo di pre-gioco per gli abbonati EA Access hanno esposto parti estremamente preoccupanti della struttura centrale del gioco.

(how-top)

NVIDIA SHIELD è il set top box più potente che puoi acquistare

NVIDIA SHIELD è il set top box più potente che puoi acquistare

Ci sono un sacco di set-top box in streaming: Apple TV, Roku, Amazon Fire TV ... e certo, ognuno ha i suoi vantaggi. Ma se vuoi che il set-top box sia il più assoluto, in grado di gestire qualsiasi cosa tu passi e lasciare spazio per il tweaking, è lo schermo NVIDIA con Android TV. Lasciami dire perché.

(how-top)