È una concatenazione di numeri casuali migliore di un singolo numero casuale?

12

Stiamo generando numeri casuali di 16 cifre in lunghezza. Un'opzione che è stata avanzata è stata quella di generare quattro numeri casuali di 4 cifre ciascuno e concatenarli invece di generare un solo numero casuale a 16 cifre. Il motivo che accompagnava il suggerimento era che sarebbe stato più difficile prevedere il numero successivo nel caso in cui ci fosse un problema con il generatore di numeri casuali.

Quindi il numero casuale concatenato è migliore di un singolo numero casuale?

    
posta topher 23.05.2016 - 18:24
fonte

3 risposte

25

So is the concatenated random number better than a single random number?

Se il generatore casuale produce davvero dati casuali, allora non avrà importanza.

... it would be harder to predict the next number in case there was an issue with the random number generator.

Se il problema è che il generatore casuale non è affatto casuale allora potrebbe anche essere meglio per un utente malintenzionato ottenere il maggior numero di uscite possibili, perché in tal caso il comportamento potrebbe essere migliore da prevedere. Ovviamente questa ipotesi dipende molto dalle parti interne del generatore casuale, quindi nessuna risposta generale è possibile.

Ma in generale: se hai bisogno di dati casuali veramente buoni dovresti usare un generatore casuale appropriato. Il tuo metodo non migliorerà la qualità dell'output se il generatore casuale è cattivo, cioè rimane prevedibile. Se in realtà non hai bisogno di dati casuali veri, ma vuoi solo assicurarti di ottenere dati casuali senza un bias, dovresti fare attenzione perché, a seconda di come lo fai, il tuo metodo potrebbe aggiungere un bias all'output.

    
risposta data 23.05.2016 - 18:39
fonte
1

Questa presentazione sul concetto di uno pseudo flusso imprevedibile può aiutare a chiarire le idee: link presentazione in PDF link

Un vapore pseudocasuale è imprevedibile, quando nessun attaccante può indovinare correttamente il successivo contenuto del flusso che conosce il contenuto precedente, con probabilità maggiore della scelta casuale (1/2 ^ (numero di bit)) e tempo ragionevole.

Pertanto, se si utilizza un flusso pseudocasico sicuro, come Chacha20 (il flusso pseudocasuale è il flusso utilizzato in questo codice per XOR i dati), quindi per definizione i byte sono imprevedibili. Altrimenti, sarebbe una violazione significativa della sicurezza in questi codici di flusso.

    
risposta data 23.05.2016 - 20:18
fonte
-1

In genere la combinazione di risultati consecutivi dello stesso generatore di numeri pseudocasuali è inferiore all'utilizzo di un singolo risultato. Pensala in questo modo: il generatore di numeri casuali genera un certo numero di risultati prima di tornare al primo numero fornito. Se si utilizzano quattro risultati alla volta, ci sono solo un quarto di risultati che si possono ottenere - presupponendo che il numero possibile di risultati sia un multiplo di quattro, che è probabile su una macchina binaria - quindi un attacco di forza bruta sarebbe impiega solo un quarto per interrompere i dati.

Inoltre, il comportamento dei dati stessi può essere problematico quando si combinano risultati consecutivi. Ad esempio, molti generatori di numeri casuali forniscono numeri individuali che hanno una buona distribuzione statistica, ma questo non si applica necessariamente alle combinazioni di numeri consecutivi, in cui il generatore di numeri casuali può essere più o meno probabile generare esecuzioni di risultati simili rispetto a fonte casuale. Per esempio, una volta ho usato un generatore di numeri casuali per simulare rotoli di un dado a sei facce, e quando ho riassunto tre risultati consecutivi, il comportamento dei risultati consecutivi è stato tale che non ho mai ottenuto una somma di 18, su molte migliaia di tentativi. p>

Discuto di risultati consecutivi, ma questi argomenti si applicano anche all'utilizzo di risultati non consecutivi quando sono selezionati in modo sistematico. La soluzione migliore è semplicemente selezionare un generatore di numeri casuali migliore e utilizzare i risultati uno alla volta. L'unico momento in cui è necessario combinare più risultati è quando un singolo risultato non ha abbastanza bit per soddisfare i propri bisogni - raro con generatori di numeri pseudocasuali off-the-shelf.

    
risposta data 24.05.2016 - 00:27
fonte

Leggi altre domande sui tag