login LOGIN
CHIUDI chiudi
Il mio profilo

mostra
Hai dimenticato la password?
Inserisci l'indirizzo email di registrazione per reimpostare la password.
Segui le istruzioni che ti abbiamo inviato per posta elettronica.

Come generare numeri casuali con il PC

Utili per creare chiavi crittografiche o scegliere voci casuali all'interno di grandi dataset, i generatori di numeri casuali possono seguire diversi modelli

Tirare i dadi

La casualità non è del mondo informatico. Per quanto possa apparire strano, riprodurre comportamenti casuali come il lancio dei dadi o il testa o croce con un software è un'impresa tutt'altro che semplice. I computer, almeno per come sono oggi concepiti, sono progettati e costruiti per eseguire ciecamente le operazioni che gli vengono date in pasto per mezzo di algoritmi e programmi realizzati dagli sviluppatori. Un computer che non dovesse seguire le istruzioni e dovesse "prendere l'iniziativa" potrebbe essere considerato, a ragione, rotto o malfunzionante.

E dire che i numeri casuali possono essere molto utili anche e soprattutto nell'ambito dell'informatica moderna. Grazie a questi valori, ad esempio, è possibile costruire una chiave crittografica inattaccabile, oppure selezionare delle voci a caso all'interno di grandi dataset (i Big data, ad esempio) per portare avanti analisi statistiche e scientifiche. Per questo motivo, nel corso degli anni e dei decenni, un numero crescente di sviluppatori e scienziati informatici si è concentrato sullo sviluppo di algoritmi che potessero quanto meno simulare la selezione di numeri casuali. Un'impresa tutt'altro che semplice e che oggi segue due distinte "filosofie di pensiero": PRNG (acronimo di Pseudo-Random Number Generator, generatore di numeri pseudo casuali in italiano) e TRNG (acronimo di True Random Number Generator, generatore di numeri realmente casuali in italiano).

Cosa sono i numeri casuali

Prima di procedere e scoprire come generare numeri casuali con PC, vale la pena soffermarsi per alcuni secondi su una definizione di cosa sono i numeri casuali. Nel caso si parli di singole cifre, un numero è casuale quando è scelto all'interno di un insieme dato (tutti i numeri naturali, ad esempio, o solo quelli da 1 a 100) senza seguire una regola precisa. Se, invece, si parla di sequenze di numeri casuali, le cifre scelte non devono avere nessuna correlazione statistica che le leghi l'una all'altra.

 

Tiro dei dadi

 

Come funzionano i modelli PRNG

Come il suffisso "Pseudo" suggerisce, i software che utilizzano questa tecnica generano una sequenza di numeri che sembrano casuali ma non lo sono affatto. Un buon esempio di generatori PRNG è dato dai generatori lineari congruenziali, che permettono di generare stringhe di numeri sufficientemente vicine alla casualità. Insomma, non sarà come tirare i dadi ma ci si avvicina parecchio. Un risultato che si ottiene grazie ad algoritmi che seguono una formula matematica ben precisa oppure seguendo la serie di numeri presenti in una tabella calcolata e compilata in precedenza.

I modelli PRNG sono efficienti e deterministici. Questo vuol dire che generano grandi sequenze di numeri casuali in un lasso di tempo tutto sommato ristretto e, dato lo stesso valore di partenza, permettono di riprodurre esattamente la stessa stringa di numeri pseudo-casuali. Caratteristiche che rendono questi modelli adatti a operazioni che richiedono velocità e riproducibilità come, ad esempio, la simulazione di modelli statistici. Se, invece, si ha bisogno di generare numeri realmente casuali – come richiesto nel caso del gioco d'azzardo online o per la crittografia – è meglio guardare verso altri modelli.

Va notato, infatti, che per quanto siano perfetti e perfezionati, i modelli PRNG possono portare a delle incongruenze tutt'altro che secondarie. Così, se si genera un modello PRNG con PHP e lo si utilizza su sistemi Linux si avranno ben pochi problemi; mentre se si utilizza un sistema Windows si potrebbero registrare non pochi problemi.

 

Tiro della moneta, testaocroce

I Tech-Quiz di Mister Plus

0/ 0
Risposte corrette
0' 0"
Tempo impiegato
Vai alla classifica

 

Come funzionano i modelli TRNG

I True Random Number Generator, invece, legano il proprio funzionamento a fenomeni fisici per generare – così come dice il nome – dei veri numeri casuali. Insomma, sarà come portare il tiro dei dadi all'interno del computer. Gli eventi che possono causare la generazione possono essere i più vari: dal movimento del mouse alla digitazione dei tasti, a fenomeni più strettamente fisici. Molti software e portali di generazione di numeri casuali, ad esempio, sfruttano il decadimento di elementi radioattivi, mentre altri il rumore atmosferico registrato con dei normali microfoni. Le fonti, insomma, possono essere le più varie: l'importante è evitare rumori o eventi che si ripetono nel tempo, così da generare sequenze di numeri realmente casuali.

Vista la sua natura, il modello TRNG ha caratteristiche diametralmente opposte rispetto a quelle viste nel modello PRNG. Il True Random Number Generator, infatti, non è efficiente né deterministico: la generazione di numeri casuali è legata a fattori fisici e non è così veloce e immediata come visto in precedenza; allo stesso modo la sequenza di numeri non può essere riprodotta essendo legata ad avvenimenti totalmente slegati l'uno dall'altro. Il modello TRNG, dunque, è ideale per applicazioni come la crittografia o il gioco d'azzardo online, per le quali è fondamentale l'assoluta casualità delle cifre.

A cura di Cultur-e
Addestramento IA non consentito: É assolutamente vietato l’utilizzo del contenuto di questa pubblicazione, in qualsiasi forma o modalità, per addestrare sistemi e piattaforme di intelligenza artificiale generativa. I contenuti sono coperti da copyright.
Whatsapp
Segui le ultime notizie sul nostro canale Whatsapp
Immagine principale del blocco
Segui le ultime notizie sul nostro canale Whatsapp
Fda gratis svg
Iscriviti al canale gratuito

Iscriviti
all'area personale

Per ricevere Newsletter, scaricare eBook, creare playlist vocali e accedere ai corsi della Fastweb Digital Academy a te dedicati.