E 'possibile evitare la semina interna di un RNG e seminare il generatore manualmente usando RAND_bytes () di OpenSSL?

4

Sto provando a scrivere un generatore di numeri casuali con la libreria OpenSSL. La funzione RAND_bytes () fornita è self-seeding con / dev / urandom. Ecco perché sono in grado di eseguire il reseeding solo con la funzione RAND_seed (). Quindi se sto seminando il generatore, sarà sempre una combinazione della semina interna e mia.

C'è la possibilità di evitare la semina iniziale, quindi posso seminare manualmente l'RNG senza che avvenga una semina interna?

Voglio evitare la semina interna e seminare manualmente il RNG, perché cerco di scrivere un generatore di numeri casuali crittograficamente debole, a scopo di test.

    
posta Maximilian 18.04.2015 - 14:21
fonte

1 risposta

1

Pensaci, potresti implementare un motore con un RNG debole e inserirlo in OpenSSL usando:

ENGINE_set_default(e, ENGINE_METHOD_RAND);

Questo dovrebbe assicurare che venga utilizzato il generatore di numeri casuali. Ovviamente può essere una buona idea ignorare qualsiasi informazione seme fornita al RNG casuale da parte di OpenSSL.

Questo ha l'ovvio svantaggio che potrebbe essere difficile scoprire quando viene usato il generatore di numeri casuali per quale funzione. Ma non vedo come questo non potrebbe funzionare diversamente.

    
risposta data 20.04.2015 - 11:39
fonte

Leggi altre domande sui tag