Generare numeri davvero casuali non è semplice
I computer non sono bravi a produrre una cosa di cui abbiamo un gran bisogno: meglio una vecchia radio
Nel periodo di maggiore prosperità della democrazia ateniese, intorno al V secolo a.C., il sorteggio fu un principio fondamentale delle istituzioni politiche. Diverse cariche amministrative e di governo erano occupate da cittadini scelti a sorte da una lista più ampia di eletti, in modo da garantire una selezione equa e impedire la formazione di assemblee con poteri permanenti. Lo strumento utilizzato per il sorteggio, una specie di sofisticato schedario in pietra chiamato kleroterion, è considerato uno dei primi sistemi di selezione casuale automatizzata.
Dopo circa 2.500 anni, sebbene la casualità non sia più un principio cardine dei sistemi elettorali, la generazione di numeri casuali è ancora alla base di processi fondamentali che rendono possibile il funzionamento di vari oggetti, applicazioni e attività umane: dalle carte di credito al gioco d’azzardo a Internet. Ma ottenere in modo rapido e automatizzato un numero davvero casuale è un’operazione più complessa di quanto si pensi, che non riesce benissimo con gli strumenti che utilizziamo di più ogni giorno: i computer. E quindi, a parte le urne con dentro le palline numerate, abbiamo escogitato nel tempo diversi modi bizzarri per generare numeri casuali a partire da processi fisici e macchine in grado di elaborarli, come raccontato di recente anche da BBC.
La casualità è un fenomeno sfuggente e difficile da definire, perché non è una proprietà della cosa in sé – un singolo numero, per esempio – ma della relazione reciproca tra più cose. Non è possibile dire di un numero che sia casuale, a meno di considerarlo in relazione a una sequenza di altri numeri. E quindi è impossibile attribuire casualità senza «una base condivisa di normalità o adeguatezza» con cui misurare il grado di casualità, che è una proprietà «relazionale», scrisse su Slate nel 2022 lo scrittore ed esperto di tecnologia e informatica James Bridle.
La ragione per cui i computer non sono molto adatti a generare una perfetta casualità è che funzionano tramite formule matematiche, e la casualità non ha senso matematico. Non è possibile programmare un computer per generare in autonomia numeri casuali, che siano cioè statisticamente indipendenti l’uno dall’altro, perché un’operazione del genere implicherebbe comunque una qualche formula matematica tramite cui sarebbe possibile decodificare e ricreare la casualità. Che allora non sarebbe una vera casualità. Ed è proprio questo il problema di tutti i settori che hanno bisogno di numeri casuali: se qualcuno riesce a prevedere il modo in cui la casualità viene generata all’interno di un sistema, può hackerarlo.
– Leggi anche: Il governo vuole aggravare le pene per i criminali informatici
Quando si parla di crittografia dei messaggi, per esempio, una sequenza di numeri casuali è fondamentale per determinare la chiave di cifratura e decifratura. Dal grado di casualità dipende in definitiva la segretezza dell’informazione trasferita, perché se a un qualsiasi osservatore la chiave di cifratura non apparisse casuale sarebbe teoricamente in grado di decifrare il crittogramma.
Nel 2017, dopo aver filmato insieme ad altre persone l’attività delle slot machine in un casinò a St. Louis, nel Missouri, un trentasettenne russo analizzò e studiò i risultati di ogni singola giocata. E alla fine, prima di venire arrestato, riuscì a vincere milioni di dollari prevedendo correttamente il funzionamento dei generatori di numeri casuali all’interno delle macchine.
Da tempo le persone cercano una fonte esterna e stabile di vera casualità, da poter tradurre in numeri tramite macchine elettroniche, in vari fenomeni caotici e imprevedibili: dalle scariche elettriche atmosferiche alle gocce di pioggia che si formano sulle superfici di vetro, fino ai fenomeni quantistici.
Uno dei più conosciuti e utilizzati generatori di numeri casuali online, il sito random.org, ha una storia piuttosto bizzarra. Nella seconda metà degli anni Novanta i suoi fondatori volevano sviluppare un software di gioco d’azzardo per far funzionare slot machine e altri giochi online. Avevano quindi bisogno di numeri casuali, e si misero in testa di poterli ricavare dal rumore delle radio che gracchiano. Nel 1997 ne cercarono una da quattro soldi in un negozio a Berkeley, in California, scegliendo infine la radiolina più economica e priva di filtri antirumore, che non era nemmeno esposta. Quando la accesero nel retro del negozio insieme al titolare e sentirono uscire dall’altoparlante un “muro” di fruscii e rumori vari cominciarono a saltare di gioia.
«Credo che il titolare del negozio pensò che fossimo completamente pazzi», ha detto a BBC Mads Haahr, uno dei fondatori di random.org. Il rumore emesso dalle radio analogiche, specialmente le più vecchie, è un segnale imprevedibile influenzato dall’attività elettromagnetica nell’atmosfera terrestre. Haahr e i suoi amici avevano programmato un computer in modo da convertire gli alti e i bassi del segnale in uno e zero, cioè in bit, e ottenere in questo modo stringhe di numeri casuali da poter utilizzare per determinare, per esempio, la sequenza di carte distribuite nel gioco di poker online a cui stavano lavorando.
Se i criteri di distribuzione delle carte nei giochi online non fossero casuali, il gioco d’azzardo non sarebbe equo e i giocatori potrebbero anche provare ad approfittarne per battere il sistema individuando schemi ripetitivi e prevedibili nel gioco. Alla fine Haahr e i soci non realizzarono il loro progetto iniziale, perché il business del gioco online era ancora troppo prematuro per essere profittevole. Decisero comunque di rendere pubblico il generatore di numeri casuali, e lo caricarono su un sito, che funziona da allora ed è utilizzato anche da enti e aziende. Non si basa più sul rumore emesso dalla radiolina originale, che andò persa, ma da quello emesso da nove grandi ricevitori installati in diverse posizioni geografiche.
– Leggi anche: Dovremmo prendere più decisioni casualmente?
Il sito random.org è utilizzato, per esempio, dalla città di San Francisco per un programma di assegnazione casuale di abitazioni a prezzi abbordabili, e da altre città per organizzare lotterie locali. Ma lo utilizzano anche enti di ricerca scientifica che hanno bisogno di randomizzare i loro studi. Le sequenze di numeri generati casualmente, come spiegato sul Wall Street Journal dal fisico statunitense Frank Wilczek, sono infatti utili agli statistici per il cosiddetto «campionamento imparziale». Per stimare le proprietà medie di un grande insieme di dati, di solito, si campiona un piccolo sottoinsieme: è un’operazione sensata e legittima, ma a condizione che il campione sia scelto senza pregiudizi e in modo del tutto casuale.
«Nell’epoca dei set di dati giganteschi e dei giochi complessi per computer, i numeri casuali sono più preziosi che mai», scrisse Wilczek, perché molte applicazioni – dalle indagini di mercato ai videogame sparatutto – richiedono più di un milione di cifre casuali fornite in tempi rapidi. Il modo più comune per ottenerle con un computer, a partire da un grande numero iniziale detto “seme”, è sottoporre quel numero a una serie fissa e ripetuta di operazioni matematiche che lo rimescolano più volte, come se mescolassero un mazzo di carte.
Tutto il processo è autonomo, meccanico e privo di scelte, spiegò Wilczek, eccetto che per la scelta del seme e della procedura di mescolamento. È il motivo per cui si dice che questo tipo di procedura «deterministica» non fornisce un risultato casuale ma pseudo-casuale. Anche nella sua pseudo-versione la casualità è fondamentale per diverse applicazioni scientifiche e crittografiche, perché condividendo la chiave e il programma – cioè il seme e la procedura di mescolamento – si può consentire ad altre persone di riprodurre scelte altrimenti imprevedibili.
– Leggi anche: Fare a meno delle password
«Utilizziamo numeri casuali tutti i giorni senza saperlo», ha detto a BBC Alan Woodward, un esperto di sicurezza informatica della University of Surrey. Per esempio succede ogni volta che scegliamo una password al computer, che per salvarla in un archivio aggiunge alla password un’altra porzione di dati: una sequenza casuale di bit detta salt. Ma in generale i numeri casuali servono ogni volta che un computer crittografa dati per ragioni di sicurezza. Semplificando molto, quando visitiamo un sito Internet che inizia con «https://» (un protocollo di comunicazione sicura) chiediamo al nostro computer e al server che memorizza il sito di generare numeri casuali, scambiarseli e usarli per crittografare i dati inviati avanti e indietro mentre il sito si carica e viene consultato.
Cloudflare, uno dei più importanti fornitori di servizi di rete e di sicurezza al mondo, utilizza moltissimi numeri casuali nei suoi data center. E nel corso degli anni ha cercato di generarli a partire da processi fisici imprevedibili piuttosto bizzarri, il più noto dei quali è il movimento all’interno di un’estesa collezione di lampade lava (o lava lamp). «È iniziata quasi per scherzo, ma poi ci siamo detti “aspetta un attimo, potremmo farlo sul serio”», ha raccontato a BBC John Graham-Cumming, CTO di Cloudflare.
Nella sede dell’azienda si trova una telecamera posta sul soffitto che è puntata verso un muro di lampade lava di diversi colori, i cui movimenti all’interno sono imprevedibili. La telecamera scatta foto alle bolle, a intervalli, per poi convertirle in sequenze di numeri sulla base della loro forma e della loro posizione. Non è l’unico modo utilizzato da Cloudflare per generare numeri casuali per proteggere i dati, ma è il più conosciuto e raccontato.
Molti altri processi fisici possono essere o sono stati effettivamente utilizzati per generare numeri casuali. Un ingegnere informatico ebbe l’idea per un generatore di numeri casuali basato sulla disposizione delle gocce d’acqua sulle superfici di vetro, un giorno che notò quanto fosse casuale la disposizione di quelle che cadevano e si fermavano sui suoi occhiali. Per una sua ricerca di dottorato alla University of London un informatico ha sviluppato un generatore di numeri casuali che utilizza come processo fisico di partenza la formazione delle bolle all’interno del suo acquario.
Uno degli altri problemi della generazione di numeri casuali, a parte i limiti dei computer, è che non esiste un modo per essere assolutamente sicuri che un risultato apparentemente casuale sia davvero imprevedibile. «Non puoi dire se qualcosa è casuale, puoi soltanto accorgerti che non lo sia», ha detto a BBC Darren Hurley-Smith, professore di sicurezza informatica alla Royal Holloway, University of London. Ci sono alcuni metodi per individuare i generatori di numeri non casuali: analisi statistiche che, per esempio, cercano di individuare sequenze in cui un numero compaia più volte di quanto ci si aspetterebbe se la sequenza fosse davvero casuale.
Questi metodi possono non essere però sufficienti. Se si cerca il numero 3 e la sequenza da analizzare è «123123123123123», per esempio, il 3 non compare più volte di altre cifre. Eppure c’è uno schema estremamente ovvio nella sequenza, una struttura sottostante che permette di definirla non casuale, ha detto Hurley-Smith. Le analisi statistiche di questo tipo diventano via via più complicate, man mano che l’insieme di numeri diventa più grande. E comunque non c’è modo di dimostrare che qualcosa sia davvero casuale: solo che sia «indistinguibile dal casuale», nella migliore delle ipotesi.
Haahr, il cofondatore di random.org, ha detto che ogni tanto alcune persone scrivono lamentandosi di aver individuato sequenze di numeri prevedibili nel risultato del generatore. E ha detto che la ragione è che gli esseri umani sono pessimi a riconoscere la casualità, dal momento che condividiamo come specie un’attitudine biologica – che può anche diventare patologica – a vedere schemi in ogni cosa.
– Leggi anche: Perché vediamo cose che non ci sono