Come i computer generano numeri casuali

Nov 4, 2025
Privacy e sicurezza

I computer generano numeri casuali per qualsiasi cosa, dalla crittografia ai videogiochi e al gioco d'azzardo. Esistono due categorie di numeri casuali - numeri casuali "veri" 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 i movimenti del mouse o il rumore della ventola, che non è prevedibile, e creando dati da esso. Questo è noto come entropia. Altre volte, generano numeri "pseudocasuali" utilizzando 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 chip generatore di numeri casuali hardware integrato di Intel sia affidabile. Per capire perché potrebbe non essere affidabile, dovrai prima capire come vengono generati numeri casuali e per cosa vengono utilizzati.

Per cosa vengono utilizzati i 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 casuale. I generatori di numeri casuali in un computer sono simili: sono un tentativo di ottenere un risultato casuale e imprevedibile.

RELAZIONATO: 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.

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 essenziali per la crittografia sicura, sia che tu stia crittografando i tuoi file o semplicemente utilizzando un file HTTPS sito Web su Internet.

Veri numeri casuali

Forse ti starai chiedendo come un computer possa effettivamente generare 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 raggruppiamo i numeri casuali generati dai computer in due tipi, a seconda di come vengono generati: numeri casuali "veri" e numeri pseudocasuali.

Per generare un numero casuale "vero", il computer misura un 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 questa è essenzialmente "pura casualità" dell'universo. Un aggressore 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'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. Afferra un numero sufficiente di tempi specifici associati a queste pressioni di tasti e avrai una fonte di entropia che puoi utilizzare per generare un "vero" casuale numero. Non sei una macchina prevedibile, quindi un aggressore non può indovinare il momento preciso in cui premi questi tasti. Il / dev / dispositivo 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 ai numeri casuali "veri". Un computer potrebbe utilizzare un valore iniziale e un algoritmo per generare numeri che sembrano essere casuali, ma che in realtà sono prevedibili. 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 numeri "veri" casuali o numeri pseudocasuali. D'altra parte, se utilizzi la crittografia, non vuoi utilizzare numeri pseudocasuali che un utente malintenzionato potrebbe indovinare.

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 all'indietro e determinare il numero pseudocasuale che 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 stia succedendo al suo interno. Se RdRand contenesse una backdoor della NSA, il governo sarebbe in grado di violare 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 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, assicurando che qualsiasi backdoor nel generatore di numeri casuali non abbia 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 ("Ask Me Anything") su Reddit, il CEO di Intel Brian Krzanich non ha risposto a domande su queste preoccupazioni. [ fonte ]

Ovviamente, 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 numeri casuali "veri", i generatori di numeri casuali raccolgono "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 seed.

Credito immagine: rekre89 su Flickr , Lisa Brewster su Flickr , Ryan Somma on Flickr , Huangjiahuion Flickr

How Do Computers Generate Random Numbers?

Why Computers Can't Generate Random Numbers

Can Computers Generate True Random Numbers | CodeinVeins

How Do Computers Generate Random Numbers? #shorts

How Machines Generate Random Numbers With Time

Can Computers Generate Random Numbers?! | Tech Shorts

How Computers Generate Random Numbers | Quantum, ITER, COVID Mutations

How Random Numbers Are Generated

Random Numbers - Numberphile

Almost All Random Numbers Are Actually Fake

Random Numbers (How Software Works)

How To Generate Pseudorandom Numbers | Infinite Series

Lecture 16 - Generation Of Random Numbers

What Is Random?

Pseudo Random Numbers And Stream Ciphers (CSS322, L9, Y14)

Is Anything Truly Random?

How Random Is A Computer Generator Actually?


Privacy e sicurezza - Articoli più popolari

Come ottenere la verifica su Facebook

Privacy e sicurezza May 1, 2025

La verifica, quel sacro segno di spunta blu, è un grosso problema su Twitter , ma è anche una cosa su Facebook. Diamo un'occhiata a come puoi (provare a) essere ver..


Come assicurarsi che un file sia sicuro prima di scaricarlo

Privacy e sicurezza Sep 16, 2025

CONTENUTO UNCACHED Se temi che un file possa essere dannoso, non è necessario scaricarlo e affidarti al tuo antivirus. Puoi eseguire la scansione del file alla ricerca di malware..


Come segnalare un post su Instagram

Privacy e sicurezza May 3, 2025

CONTENUTO UNCACHED Instagram è abbastanza chiaro Termini di servizio : nessuna molestia, nudità, violenza, violazione del copyright, incitamento all'odio e così ..


Come impedire al tuo iPhone di registrare le tue posizioni frequenti

Privacy e sicurezza Oct 27, 2025

CONTENUTO UNCACHED Può essere un po 'snervante quando il tuo iPhone sembra conoscere la tua routine, come se avesse ESP. Questo viene spesso mostrato come notifiche, ad esempio q..


Che cos'è l'autenticazione a due fattori e perché ne ho bisogno?

Privacy e sicurezza Aug 22, 2025

CONTENUTO UNCACHED Sempre più banche, società di carte di credito e persino social media e siti di giochi stanno iniziando a utilizzare l'autenticazione a due fattori. Se non se..


AirDrop 101: invia facilmente contenuti tra iPhone, iPad e Mac nelle vicinanze

Privacy e sicurezza Jan 31, 2026

AirDrop ti consente di inviare rapidamente e facilmente link, foto, file e altri contenuti tra iPhone, iPad e Mac nelle vicinanze. Basta aprire il pannello Condividi e toccare un di..


Come impedire a Yum di aggiornare il kernel

Privacy e sicurezza Sep 2, 2025

CONTENUTO UNCACHED Quando esegui server di produzione, l'unica cosa che non vuoi fare è aggiornare il kernel ogni volta che esce un nuovo aggiornamento. Perché? Perché questa è l'un..


Backup o ripristino delle credenziali utente di rete salvate in Windows Vista

Privacy e sicurezza Jun 27, 2025

CONTENUTO UNCACHED Ogni volta che si immettono le credenziali utente in Internet Explorer, si mappa un'unità a un server remoto o si connette a un dominio Windows, viene offerta la possibi..


Categorie