Quali sono i requisiti per un generatore di numeri casuali da utilizzare in sicurezza in crittografia?

2

Quando guardo la maggior parte degli RNG (generatori di numeri casuali), vedo un disclaimer che sembra simile a questo:

Caution: Mersenne Twister is basically for Monte-Carlo simulations - it is not cryptographically secure "as is".

  1. Quali sono i requisiti per un (pseudo-) RNG essere 'crittograficamente sicuro'? Quale test / logica viene utilizzata per decidere che un RNG è sicuro per questo scopo o no?

  2. Quali sono le differenze generali tra gli RNG sicuri e non protetti? Gli RNG sicuri di solito sono molto più complessi / includono semi più grandi e una maggiore manipolazione dei dati? È mai possibile rendere sicuro un RNG non sicuro aggiungendo i risultati di una serie ottenuta o utilizzando un risultato come seme per produrre nuovi risultati "più casuali"?

  3. Qual è il problema con l'utilizzo di RNG non sicuri per la crittografia? Non ho alcun dubbio che la crittografia sarebbe molto più facile da rompere, ma come si fa effettivamente? Il cracker in qualche modo riconosce un pattern nei dati che sono caratteri di un certo RNG e lo usa per aiutare a "rimuovere" la casualità dal testo in chiaro?

NOTA : lascia un commento se ritieni che questa domanda debba essere suddivisa; So che le diverse parti sono correlate, ma se sono abbastanza complesse da meritare un trattamento più specifico, le dividerò volentieri su più post. : D

    
posta Gordon Gustafson 21.04.2012 - 04:28
fonte

1 risposta

2

Ho scritto altrove su come controlliamo la sicurezza di un primitivo crittografico - tutto ciò che ho scritto lì si applica ugualmente alla verifica della sicurezza di un PRNG crittograficamente sicuro.

La differenza tra PRNG sicuri e non sicuri è che quelli sicuri sono, beh, sicuri. Potresti iniziare leggendo la definizione di sicurezza per un PRNG di forza crittografica . Iniziare con un PRNG non sicuro e poi cercare di aggiungere complessità extra non è probabilmente un modo efficace per finire con un PRNG sicuro.

Il problema con l'utilizzo di un PRNG non crittografico per la crittografia è che si finisce con un sistema non sicuro. Vedi, ad esempio, l'esempio di precedenti implementazioni di SSL in Netscape Navigator, che si è rivelato essere irrisolvibile perché hanno utilizzato un PRNG non crittografico in un punto in cui avevano bisogno di un PRNG di forza crittografica .

In futuro, suggerisco di porre queste domande su Crypto.SE e suddividerle in più parti. O, meglio ancora, dai un'occhiata a un buon testo di crittografia - tutto questo dovrebbe essere trattato lì.

    
risposta data 21.04.2012 - 06:48
fonte

Leggi altre domande sui tag