Qual è la differenza tra un generatore di numeri casuali non sicuro e un generatore di numeri casuali sicuro?

StackOverflow https://stackoverflow.com/questions/101337

  •  01-07-2019
  •  | 
  •  

Domanda

Come dice il titolo:Qual è la differenza tra un generatore di numeri casuali non sicuro e un generatore di numeri casuali sicuro?

È stato utile?

Soluzione

Nessun algoritmo computazionalmente fattibile dovrebbe:

  • recuperare il seme, o
  • prevedere il "prossimo bit"

per un generatore di numeri casuali sicuro.

Esempio:un registro a scorrimento con feedback lineare produce molti numeri casuali, ma con un output sufficiente è possibile scoprire il seme e prevedere tutti i numeri successivi.

Altri suggerimenti

Un numero casuale sicuro non dovrebbe essere prevedibile anche considerando l'elenco dei numeri casuali precedentemente generati.In genere lo utilizzeresti come chiave per una routine di crittografia, quindi non vorresti che fosse indovinabile o prevedibile.Naturalmente, l'ipotesi dipende dal contesto, ma dovresti presumere che l'aggressore conosca tutte le cose che conosci e che potresti utilizzare per produrre il tuo numero casuale.

Esistono vari siti Web che generano numeri casuali sicuri, uno è affidabile hotbits.Se stai eseguendo la generazione di numeri casuali solo come attività una tantum, perché non utilizzare il risultato di un'estrazione della lotteria, poiché è dimostrabile che è casuale.Naturalmente, non dire a nessuno quale lotteria e quale estrazione, e trasforma quei numeri in un mangano adatto per ottenere l'intervallo desiderato.

Con semplicemente "numero casuale" si intende solitamente un numero pseudo casuale.Poiché è un numero pseudo casuale, può essere (facilmente) previsto da un utente malintenzionato.

Un numero casuale sicuro è un numero casuale proveniente da una fonte di dati veramente casuale, ad es.coinvolgendo un qualche tipo di pool di entropia.

Concordo con Purfiedeas.C'è anche un bell'articolo a riguardo, intitolato Trucchi nel poker online

Un numero casuale significherebbe probabilmente un numero pseudo casuale restituito da un algoritmo utilizzando un "seme".

Un numero casuale sicuro sarebbe un vero numero casuale restituito da un dispositivo come un generatore di numeri casuali basato sul cesio (che utilizza il tasso di decadimento del cesio per restituire i numeri).Questo è un fenomeno naturale e non può essere previsto.

Probabilmente dipende dal contesto, ma quando li confronti in questo modo, direi che "numero casuale" è a pseudo numero casuale e un "numero casuale sicuro" è veramente casuale.Il primo fornisce un numero basato su un seme e un algoritmo, l'altro su una funzione intrinsecamente casuale.

È come la differenza tra AES e ROT13.

Per essere meno superficiali, generalmente c'è un compromesso quando si generano numeri casuali tra quanto sia difficile e quanto sia prevedibile quello successivo nella sequenza una volta che ne hai visti alcuni.Un numero casuale restituito dal rand() integrato nella tua lingua sarà solitamente del tipo economico e prevedibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top