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 modifica

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.[1]

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[senza fonte] generatori di numeri pseudo-casuali che danno luogo a sequenze di numeri pseudo-casuali ad una velocità molto maggiore.

Applicazione pratica modifica

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.[2] 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.[3][4]

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.[5][6] 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.[7] 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.[8]

Note modifica

  1. ^ Francis Galton, Dice for statistical experiments (PDF), in Nature, vol. 42, n. 1070, 1890, pp. 13–14, Bibcode:1890Natur..42...13G, DOI:10.1038/042013a0. URL consultato il 14 maggio 2014.
  2. ^ (EN) True Random vs. Pseudorandom Number Generation – wolfSSL, su wolfssl.com, 13 luglio 2021. URL consultato il 27 marzo 2024.
  3. ^ (EN) Matthias Templ, Simulation for Data Science with R, Packt Publishing Ltd, 30 giugno 2016, ISBN 978-1-78588-587-7. URL consultato il 27 marzo 2024.
  4. ^ (EN) La differenza tra generatori di numeri casuali veri e generatori di numeri pseudocasuali., su techgate.
  5. ^ armellini, Generatori di numeri casuali per la crittografia[collegamento interrotto], 26 aprile 2011. URL consultato il 1º novembre 2019.
  6. ^ (EN) Werner Schindler, Random Number Generators for Cryptographic Applications, Springer US, 2009, pp. 5–23, DOI:10.1007/978-0-387-71817-0_2, ISBN 978-0-387-71817-0. URL consultato il 27 marzo 2024.
  7. ^ casinoguru-it.com, Guida alle slot machine online | Casino Guru, su casinoguru-it.com. URL consultato il 1º novembre 2019.
  8. ^ (EN) Sampling methods review, su Khan Academy. URL consultato il 1º novembre 2019.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica