(Nota: no soy criptógrafo, podría estar completamente fuera de lugar con esta respuesta.: P)
Tomaría cualquier cosa que Sam Curry dijera con un cubo de sal. Él ha demostrado que no sabe absolutamente nada de criptopgrahy. Aquí está la cita completa.
El tiempo que tarda Dual_EC_DRBG puede verse como una virtud: también ralentiza a un atacante que intenta adivinar la semilla. Muchas otras funciones criptográficas (PBKDF2, bcrypt, scrypt) repetirán un hash 1000 veces específicamente para hacerlo más lento. En ese momento, las curvas elípticas estaban en boga y el RNG basado en hachís estaba bajo escrutinio. La esperanza era que las técnicas de curva elíptica, basadas en la teoría numérica, no sufrieran muchas de las mismas debilidades que otras técnicas (como el generador FIPS 186 SHA-1) que se consideraron negativas, y Dual_EC_DRBG fue aceptada y públicamente estándar escrutado SP800-90 (que define el Dual EC DRBG) requiere nuevas características como la prueba continua de la salida, la reinicialización obligatoria, la resistencia de predicción opcional y la capacidad de configuración para diferentes fortalezas.
prueba continua de salida
Aquí hay una cita de FIPS-140-2 .
Generador continuo de números aleatorios. Si un módulo criptográfico emplea RNG aprobados o no aprobados en un modo de operación aprobado, el módulo realizará los siguientes
prueba de generador de números aleatorios en cada RNG que prueba la falla a un valor constante.
- Si cada llamada a un RNG produce bloques de n bits (donde n > 15), se genera el primer bloque de n bits.
después del encendido, la inicialización o el restablecimiento no se utilizarán, pero se guardarán para compararlos con
El siguiente bloque de n bits que se generará. Cada generación subsiguiente de un bloque de n bits será
En comparación con el bloque generado previamente. La prueba fallará si alguno de los dos n bits comparados
los bloques son iguales.
- Si cada llamada a un RNG produce menos de 16 bits, los primeros n bits se generan después del encendido,
La inicialización o reinicio (para algunos n > 15) no se utilizará, pero se guardará para comparación con
Los siguientes n bits generados. Cada generación subsiguiente de n bits se comparará con la
N bits generados previamente. La prueba falla si alguna de las dos secuencias de n bits comparadas es igual.
No estoy seguro de si se refería a esto, pero es la única aplicación de pruebas continuas con respecto a PRNG que puedo pensar o encontrar.
Como puede ver, esta es una prueba muy simple que puede aprobar cualquier PRNG decente.
resistencia de predicción
Supongo que se refiere a un atacante que no puede predecir los siguientes n bits de salida de un PRNG dados los primeros n bits. Esto es lo único que tiene sentido para mí. No estoy seguro de por qué considera que esto es una ventaja de Dual-EC-DRBG ya que cualquiera CSPRNG debe poseer esta propiedad para que sea útil.
re-seeding
Nuevamente, no estoy seguro de por qué considera esto una propiedad especial de Dual-EC-DRBG. Los otros algoritmos definidos en SP800-90A definen métodos para reiniciar el PRNG.
Como muchas personas han señalado recientemente en Internet, los PRNG se pueden sustituir fácilmente. No perderá nada cambiando de Dual-EC-DRBG.