Calcolatrici Matematiche
Generatore di Numeri


Generatore di Numeri

Il generatore di numeri casuali fornisce un insieme di numeri casuali secondo opzioni specificate dall'utente, come intervallo, ripetizione e ordinamento.

Opzioni

Numeri Casuali

48, 9, 49, 11, 17, 22, 16, 37, 45, 41, 4, 36, 43, 10, 28, 27, 47, 25, 21, 33

C'è stato un errore con il tuo calcolo.

Indice

  1. L'Uso dei Generatori di Numeri Casuali
  2. La Differenza tra Sequenza Casuale e Non Casuale
  3. I Tipi di Generatori di Numeri Casuali
  4. Generatore di Google
  5. Il Metodo Lineare Congruente
  6. Moderni Generatori di Numeri Casuali Hardware
    1. QRBG121
    2. Lampade di Lava
    3. HotBits
    4. Fluttuazioni Quantistiche del Vuoto
    5. Generatore di Nanotubi di Carbonio
    6. Cubi e l'Electronic Frontier Foundation (EFF)
    7. Un Generatore di Numeri Casuali Quantistici da uno Smartphone Nokia

Generatore di Numeri

Un generatore di numeri casuali è un processo di ottenimento di un numero casuale ogni volta che è necessario, senza la capacità di definire un modello dai numeri precedentemente generati. Questo numero può essere generato sia da un algoritmo che da un dispositivo hardware.

L'Uso dei Generatori di Numeri Casuali

Generare numeri casuali è necessario per vari compiti, dai giochi per computer alle applicazioni comuni. Ad esempio, il sistema utilizza un generatore di numeri casuali per visualizzare un banner casuale o un'unità pubblicitaria casuale su un sito web. In crittografia, i numeri casuali vengono anche utilizzati per creare un cifrario o una chiave unica.

La generazione di numeri casuali è utilizzata per generare numeri o testo per captcha, crittografia, generare sale per memorizzare password, un generatore di password, un ordine di carte in un casinò online, decision-making, campionamento e simulazione.

L'algoritmo del generatore di numeri casuali è spesso utilizzato nei videogiochi. Anche se giochi allo stesso livello in un gioco, non sarà esattamente lo stesso ogni volta che cerchi di completare una missione. Forse le differenze non saranno visibili nella posizione o nella missione. Tuttavia, saranno visibili nel numero di nemici che si avvicinano e nelle aree in cui appaiono, nei cambiamenti climatici e nei vari ostacoli incontrati. Questo rende il gioco più emozionante.

La Differenza tra Sequenza Casuale e Non Casuale

Prendiamo una sequenza di numeri: 1 , 2 , 3 , 4 , 5. È casuale?

Una variabile casuale è una variabile che assume uno dei valori possibili come risultato di un esperimento. E non puoi prevedere con precisione l'occorrenza di un valore particolare prima che compaia.

Diciamo che i numeri dati sono stati ottenuti digitando su una delle file superiori della tastiera. In questo caso, risulta che questa combinazione non è casuale perché, dopo il 5, il numero successivo, 6, può essere previsto con alta probabilità.

La sequenza sarà casuale solo se non c'è dipendenza tra i simboli.

La condizione di base, estremamente importante per il principio corretto e equo del generatore di numeri casuali, è una probabilità assolutamente uguale di qualsiasi numero possibile che potrebbe uscire in questo sistema. Ciò indica una completa indipendenza del fattore di casualità e indipendenza da quali altri numeri siano usciti prima o dopo il numero casuale.

Ad esempio, supponiamo che tu lanci un dado a sei facce per la prima volta. In quel caso, puoi avere assolutamente qualsiasi numero da 1 a 6 che esce con la stessa probabilità. Indipendentemente dal tuo numero, puoi lanciare di nuovo il dado con la stessa possibilità di ottenere lo stesso numero al secondo, centesimo o millesimo lancio.

La sequenza di cifre nel numero Pi appare non ripetitiva e per molti potrebbe sembrare casuale. Supponiamo che il nostro generatore ipotetico si basi sulla rappresentazione binaria di Pi, a partire da un punto non divulgato. Tale generatore potrebbe essere imprevedibile in molti contesti, superando potenzialmente alcuni test per la casualità. Tuttavia, fare affidamento su Pi per scopi crittografici comporta rischi. Se un avversario determina il segmento specifico di Pi utilizzato, possono prevedere sia i segmenti precedenti che quelli successivi, compromettendo la sicurezza del sistema.

L'Istituto Nazionale degli Standard e della Tecnologia degli Stati Uniti ha proposto il "Pacchetto di Test Statistici per Generatori di Numeri Casuali e Pseudo-casuali per Applicazioni Crittografiche". Include 15 test statistici il cui scopo è determinare la misura di casualità dei bit generati da generatori hardware o software.

I Tipi di Generatori di Numeri Casuali

Ci sono due tipi di generatori di numeri casuali (RNG): i veri generatori di numeri casuali (TRNG) e i generatori di numeri pseudo-casuali (PRNG). I TRNG utilizzano fenomeni fisici per generare numeri, mentre i PRNG utilizzano algoritmi matematici.

Un algoritmo di generatore di numeri casuali veri è creato con un dispositivo hardware che utilizza piccoli processi fisici per generare numeri casuali, ovvero l'entropia. L'entropia è caos puro e non filtrato.

I veri generatori di numeri casuali utilizzano fenomeni fisici come:

  • radioattività,
  • rumore termico,
  • rumore elettromagnetico,
  • meccanica quantistica e altri.

Un vero RNG è comunemente usato in sistemi orientati alla sicurezza in tutto il mondo e in alcune forme di crittografia.

I generatori di numeri casuali utilizzano fonti di entropia per accumulare entropia e ottenere il valore iniziale (seme) necessario dai generatori di numeri casuali.

L'algoritmo del generatore di numeri pseudo-casuali è usato in aree senza preoccupazioni di sicurezza. La casualità aiuta ad evitare ripetizioni e rende il processo più attraente per l'utente finale. Implementare la tecnologia dei generatori di numeri pseudo-casuali è più economico e veloce perché non richiede hardware e può essere facilmente incorporato nel codice del programma. Anche se il processo non è del tutto casuale ed è determinato in base a un algoritmo, è più adatto per giochi e programmi.

Il PRNG utilizza un singolo valore iniziale, da cui segue la sua pseudo-casualità. Allo stesso tempo, il vero generatore di numeri casuali genera sempre un numero casuale avendo un valore casuale di alta qualità fornito all'inizio da varie fonti di entropia.

La generazione di numeri pseudo-casuali ha i suoi svantaggi. Funzionano perché sono casuali agli occhi non addestrati. Tuttavia, se conoscessi il valore iniziale per una particolare sequenza di PRNG, potresti prevedere quali numeri sarebbero i prossimi.

Gli appassionati di videogiochi spesso sfruttano questa vulnerabilità: lo chiamano manipolazione del PRNG. Fanno funzionare il gioco in modo prevedibile in modo da poterlo superare il più rapidamente possibile. Fortunatamente, ciò non comporta problemi critici.

Ma ci sono volte in cui prevedere i numeri casuali è molto più critico. Ad esempio, quando si creano chiavi di sicurezza.

Se l'attaccante scopre il valore iniziale utilizzato per creare le chiavi RSA nei certificati TLS, potrebbe potenzialmente decrittografare il traffico di rete. Ciò significa che può ottenere password e altre informazioni personali inviate su Internet.

In queste situazioni, è necessario un modo più sicuro per ottenere numeri casuali, ovvero un vero generatore di numeri casuali.

Generatore di Google

Google ha il proprio strumento per generare numeri casuali basato su JavaScript. Questo strumento può essere utile quando si gioca con amici e familiari. Puoi trovare questo generatore se digiti nella query di ricerca di Google "generatore di numeri casuali".

Il Metodo Lineare Congruente

Uno degli algoritmi più popolari per i generatori di numeri pseudo-casuali è il Metodo Lineare Congruente. Viene utilizzato in casi semplici e non ha forza crittografica. Derrick Henry Lehmer ha proposto il metodo lineare congruente nel 1949.

Per implementare la generazione di numeri con questo metodo, dobbiamo scegliere quattro numeri:

m > 0, modulo

0 ≤ a ≤ m, moltiplicatore

0 ≤ c ≤ m, incremento

0 ≤ X₀ ≤ m, numero iniziale

La sequenza di numeri casuali stessa è generata utilizzando la formula:

Xₙ₊₁ = (aXₙ + c) mod m

È importante notare che questo metodo dipende dalla scelta dei parametri.

Ad esempio, per il seguente set:

X₀ = 3, a = 4, c = 5, m = 6

otteniamo una breve sequenza ripetitiva di

3, 5, 1, 3, 5, 1

che non sembra casuale.

Ma vale la pena cambiare i parametri in qualcos'altro:

X₀ = 2, a = 85, c = 507, m = 1356

E la dispersione dei risultati diventa più imprevedibile. Devi scegliere i numeri per questo algoritmo con particolare attenzione.

2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365...

Sebbene il metodo lineare congruente generi una sequenza di numeri pseudo-casuali statisticamente buona, non è robusto dal punto di vista crittografico. I generatori basati sul metodo lineare congruente sono prevedibili, quindi non puoi usarli in crittografia.

I generatori basati sul metodo lineare congruente sono stati violati per la prima volta da Jim Reeds nel 1977 e poi da Joan Boyar nel 1982. È anche riuscita a violare i generatori quadratici e cubici. Così, hanno dimostrato l'inutilità dei generatori basati su metodi congruenti per la crittografia. Tuttavia, i generatori basati sul metodo lineare congruente mantengono la loro utilità per applicazioni non crittografiche, ad esempio, per simulazioni. Sono efficienti e mostrano buone prestazioni statistiche nella maggior parte dei test empirici.

Moderni Generatori di Numeri Casuali Hardware

QRBG121

L'effetto della casualità nel dispositivo dipende dal processo fisico quantistico di emissione di fotoni nei semiconduttori e dalla successiva rilevazione di singoli fotoni. In questo processo, i fotoni vengono rilevati casualmente, indipendentemente l'uno dall'altro, e le informazioni temporali dei fotoni rilevati vengono utilizzate per generare bit.

Lampade di Lava

L'ufficio di CloudFlare a San Francisco ospita generatori di numeri casuali chiamati "lampade di lava". Una tale lampada è un recipiente di vetro riempito con olio trasparente e paraffina traslucida. La paraffina è leggermente più pesante dell'olio, ma quando viene leggermente riscaldata, diventa più leggera e sale in superficie.

Il movimento dei liquidi è monitorato da diverse telecamere che scattano foto. Gli scatti vengono convertiti in numeri, dai quali vengono poi generati chiavi di crittografia.

Gli altri due uffici di CloudFlare utilizzano modi diversi per ottenere valori casuali. A Londra, una telecamera cattura i movimenti di tre pendoli caotici. A Singapore viene utilizzato un contatore Geiger che misura il decadimento radioattivo di un piccolo pezzo di uranio. In quest'ultimo caso, l'uranio è usato come "fonte di dati" perché la radiazione radioattiva è caratterizzata dalla casualità di ogni atto di decadimento.

HotBits

HotBits è un sito che fornisce numeri casuali veri generati da un contatore Geiger che registra la radiazione ionizzante a chiunque. Si compila un modulo di richiesta sul sito specificando il numero di byte casuali e si sceglie il metodo preferito per ottenere i dati. Una volta che i numeri casuali vengono forniti al cliente, vengono immediatamente rimossi dal sistema.

Fluttuazioni Quantistiche del Vuoto

Contrariamente al suo nome ("vacuus"-vuoto), il vuoto non può essere considerato vuoto. Sotto il principio di indeterminazione di Heisenberg, le particelle virtuali nascono e muoiono incessantemente.

Fisici canadesi hanno progettato un generatore di numeri casuali veloce e strutturalmente semplice basato sulle fluttuazioni del vuoto. Il generatore consiste in un laser a impulsi con una frequenza di radiazione elevata, un mezzo con un indice di rifrazione elevato (diamante) e un rilevatore. Passando attraverso il diamante, ogni impulso sul sensore mostra caratteristiche diverse a seconda delle fluttuazioni del campo del vuoto incontrate sul percorso dei fotoni.

Nello spettro della radiazione diffusa, appaiono linee spettrali. A causa dell'imprevedibilità delle fluttuazioni del vuoto, queste linee differiscono in modi imprevedibili ogni volta.

Generatore di Nanotubi di Carbonio

Questo metodo combina la compattezza con il rumore termico generato.

I ricercatori hanno costruito un generatore di numeri casuali da una cella di memoria ad accesso casuale statico stampata con inchiostri speciali contenenti nanotubi di carbonio semiconduttori. La cella di memoria utilizza le fluttuazioni del rumore termico per generare bit casuali.

Il generatore di nanotubi di carbonio può essere stampato su substrati plastici flessibili, consentendo di integrarlo in dispositivi elettronici minuscoli, flessibili, sensori indossabili, etichette monouso e indumenti intelligenti.

Cubi e l'Electronic Frontier Foundation (EFF)

La società ha proposto un modo semplice per creare password sicure utilizzando un generatore fisico di numeri casuali. Si basa sui dadi.

Ad esempio, lanci cinque dadi alla volta e annoti i numeri risultanti. I dadi vengono disposti da sinistra a destra come segue: 63131. Successivamente, apri una lunga lista di parole sul sito web dell'EFF per trovare la parola corrispondente accanto a 63131. Quella parola è "turbofan".

Puoi ripetere questa procedura diverse volte. Ad esempio, cinque volte. Potresti finire con una frase di cinque parole. Diciamo, "turbofan purge unfitting try pruning." Se sai come usare le regole delle mnemoniche, puoi memorizzare frasi come queste.

Un Generatore di Numeri Casuali Quantistici da uno Smartphone Nokia

Nel 2014, l'Università di Ginevra ha creato un dispositivo QRNG che utilizzava la fotocamera dello smartphone Nokia N9.

La fotocamera dello smartphone contava il numero di fotoni che colpivano ogni pixel. La fonte di luce era un LED standard. Ogni pixel nella fotocamera da 8 MP rilevava circa 400 fotoni in un breve periodo. Il numero totale di fotoni in tutti i pixel veniva quindi convertito in una sequenza di numeri casuali.