# Generatore hardware di numeri casuali

In informatica, un generatore hardware di numeri casuali (in lingua inglese Hardware Random Number Generator (HRNG) oppure True Random Number Generator (TRNG)) è un apparato hardware che genera numeri casuali da un processo fisico anziché attraverso un algoritmo. Tali dispositivi sono basati tipicamente su fenomeni microscopici come il rumore termico o l'effetto fotoelettrico o altri fenomeni quantistici. Si tratta di processi stocastici che sono, in teoria, completamente imprevedibili, anche se il possesso effettivo di questa proprietà deve essere sottoposto a test di verifica. Il generatore hardware di numeri casuali viene utilizzato in alternativa agli algoritmi di generazione dei numeri pseudo-casuali tipicamente implementati nei software per computer.

## Descrizione

Un generatore hardware di numeri casuali consiste solitamente di un trasduttore in grado di convertire alcuni aspetti di un fenomeno fisico stocastico in segnale elettrico, un amplificatore e altri circuiti elettrici necessari ad incrementare l'ampiezza delle fluttuazioni casuali rilevate ad un livello misurabile e qualche tipo di convertitore analogico-digitale per convertire l'output in un segnale digitale, spesso un semplice segnale binario di 0 e 1. Attraverso il campionamento ripetuto delle variazioni casuali del segnale si ottiene una serie casuale di numeri.
I generatori di numeri casuali possono anche essere ottenuti da fenomeni macroscopici, usando strumenti come carte da gioco, dadi, la ruota della roulette e le macchine da lotteria. La impredicibilità è spiegata dalla teoria dei sistemi dinamici instabili e dalla teoria del caos. Anche se i fenomeni macroscopici sono deterministici nell'ambito della meccanica newtoniana, i risultati di uno strumento ben progettato come la ruota della roulette non possono essere in pratica predetti poiché dipendono in modo sensibile dalle condizioni iniziali (praticamente impossibili da misurare in ogni dettaglio) ogni volta che vengono azionati.
I dadi sono da sempre ampiamente utilizzati nel gioco d'azzardo e in generale come strumenti per rendere casuali ("randomizzare") i giochi. Lo scienziato vittoriano Francis Galton descrisse un modo per usare i dadi per generare in modo esplicito dei numeri casuali a scopo scientifico nel 1890.
I generatori hardware di numeri casuali producono un numero limitato di dati al secondo. Allo scopo di rendere più veloce la disponibilità dei dati i generatori hardware sono spesso utilizzati per generare il seme dei più veloci e crittograficamente sicuri generatori di numeri pseudo-casuali che danno luogo a sequenze di numeri pseudo-casuali ad una velocità molto maggiore.

### Applicazione pratica

I generatori casuali hardware possono essere utilizzati in qualsiasi applicazione che richieda casualità. Tuttavia, in molte applicazioni scientifiche i costi aggiuntivi e la complessità di un TRNG (rispetto ai generatori di numeri pseudocasuali) non offrono benefici significativi. I TRNG presentano ulteriori svantaggi per le applicazioni di data science e statistica: l'impossibilità di rieseguire una serie di numeri a meno che non siano memorizzati, la dipendenza da un'entità fisica analogica può oscurare il fallimento della fonte. I TRNG sono quindi principalmente utilizzati nelle applicazioni in cui la loro imprevedibilità e l'impossibilità di rieseguire la sequenza di numeri sono cruciali per il successo dell'implementazione: nella crittografia e nelle macchine da gioco.
La principale applicazione dei generatori hardware di numeri casuali è nella crittografia, dove vengono utilizzati per generare chiavi crittografiche necessarie per trasmettere i dati in modo sicuro. Sono ampiamente utilizzati nei protocolli crittografici di Internet come ad esempio il TLS Transport Layer Security.
I generatori di numeri casuali vengono utilizzati per determinare i vari risultati in molti giochi online e non, come ad esempio il videopoker e le slot machine. Gli algoritmi di questi RNG sono talvolta regolati da commissioni governative di gioco.
Gli RNG vengono utilizzati in fase di creazione di sondaggi d'opinione, con la funzione di collezionare campioni d'utenza casuali.