¿Encuestas sobre diseño de generador de números pseudoaleatorios?

15

Estoy interesado en la generación de números pseudoaleatorios para la criptografía. Además del Capítulo 5 de Menezes / Oorschot / Vanstone ; Capítulo 8 de Stinson ; y el Capítulo 3 de Goldreich , ¿dónde más podría encontrar más? Me interesan los principios generales para diseñar PRNG (propiedades deseables, pruebas, etc.).

Arrendajo
fuente
3
No está en el diseño per se, pero puede estar interesado en el libro más nuevo de Goldreich: books.google.com/books?id=9k6Lw2U2XCkC
S Huntsman
@S Huntsman: ¡muchas gracias por eso! No sabía que Goldreich tenía un libro sobre PRNG.
Jay

Respuestas:

8

Es posible que desee ver

Dai Le
fuente
1
La mayor parte de esto no es muy relevante para implementaciones prácticas de PRNG para criptografía. Este no es un buen conjunto de recursos para dar a un implementador.
DW
4

Si está pensando en implementar sus ideas, hay una batería estándar de pruebas que se dan implementaciones PRNG. Estas pruebas (DIEHARD y sucesora DIEHARDER) se pueden descargar de su página web archivada y http://www.phy.duke.edu/~rgb/General/dieharder.php respectivamente.

Peter Boothe
fuente
44
Nota de precaución importante: pasar DIEHARD no significa que su PRNG sea bueno. Este no es un recurso que le daría a un implementador que necesita implementar un PRNG seguro.
DW
1

¿Estás interesado en implementar un PRNG? Si es así, su mejor opción no es diseñar uno usted mismo, sino simplemente usar uno estándar. / dev / urandom es la respuesta correcta en la mayoría de las plataformas. Si / dev / urandom no existe, generar una clave AES aleatoria con / dev / random y luego ejecutar el modo AES-CTR para generar muchos números pseudoaleatorios es otro enfoque razonable.

Le recomiendo que lea Ingeniería de criptografía, de Ferguson, Schneier y Kohno. Es un libro excelente. Le enseñará mucho sobre cómo diseñar y construir sistemas criptográficos reales.

Si realmente tiene que construir un sistema que se implementará en la práctica, le recomiendo que no tome su orientación de la comunidad teórica de CS, sino de la comunidad de profesionales e investigadores orientados a la práctica. Gran parte del trabajo teórico de CS no será muy relevante, o potencialmente incluso engañoso, para la implementación práctica de un PRNG seguro. También le recomiendo que mire el intercambio de la pila de seguridad de TI para ese tipo de preguntas.

DW
fuente
44
La pregunta dice explícitamente que está interesado en los principios generales, y la pregunta se hizo en el intercambio teórico de pila CS ...
David Cash