¿Cuáles son las características de Dual EC DRBG que se pierden cuando se usa un cifrado diferente?

3

Debido a un posible backdoor NSA, el NIST ahora recomienda que el implementador ya no utilice DRBG de doble EC PRNG basado en ECC.

( Como se describe en Wired.com ) este PRNG tiene ciertas características tales como:

  • prueba continua de salida
  • resistencia a la predicción
  • re-siembra
  • ... posiblemente otros

Pregunta

  1. Ahora que se usarán otros PRNG, no todos ofrecerán el mismo conjunto de características. ¿Cuáles son las características que nos faltarán o seremos "más débiles" en cualquier sentido de la palabra?

  2. ¿Qué significan estas características? ¿Por qué son útiles? (pruebas continuas por ejemplo)

Puede suponer para mi modelo de pregunta / amenaza que la NSA no es mi adversario, sin embargo, quiero evitar que otros atacantes capaces comprometan la integridad o la eficacia de mi cifrado.

    
pregunta random65537 23.09.2013 - 23:55
fuente

4 respuestas

3

Un PRNG que carece de resiembra, resistencia a la predicción, o lo que sea que estas personas entiendan por "prueba continua", no es un PRNG. No en términos criptográficos.

Por el contrario, un buen PRNG, como HMAC_DRBG, será tan bueno como Dual_EC_DRBG, en realidad mejor ya que Dual_EC_DRBG presenta sesgos medibles, y es terriblemente lento. El único punto positivo de Dual_EC_DRBG es el potencial para una prueba de seguridad que demuestre que la salida es tan aleatoria como un problema dado de la teoría de números es difícil; pero aún no se conoce tal prueba ...

Aquí, por Dual_EC_DRBG, me refiero a un corregido Dual_EC_DRBG, con los dos puntos "aleatorios" reemplazados por dos puntos realmente generados al azar, no con la probable puerta trasera de los dos puntos estándar. Pero incluso "arreglado", aún sería lento y parcial.

El artículo al que se vincula cita al director técnico de RSA Security, quien enumera algunas ventajas de Dual_EC_DRBG sobre "otros algoritmos". Sin indicar con qué algoritmos se compara Dual_EC_DRBG, estas declaraciones son vacías. Los propios NIST se sentirían bastante ofendidos ante la sugerencia de que Hash_DRBG y HMAC_DRBG no tienen las mismas características.

    
respondido por el Thomas Pornin 24.09.2013 - 03:18
fuente
2

(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.

     
  1. 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.
  2.   
  3. 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.
  4.   

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.

    
respondido por el Ayrx 24.09.2013 - 03:20
fuente
1

Lo que se pierde al cambiar de Dual_EC_DBRG por un generador de bits aleatorio determinista son

  • sesgo. La salida real está sesgada, por lo que hay una capa adicional agregada a debias. (El sesgo es algo malo)
  • Ineficiencia. Dual_EC_DBRG es lento en comparación con las alternativas. Hay algunos casos muy específicos en los que quieres que algo sea lento, pero un DBRG no es uno de ellos. (La analogía dada a PBKDF2 como justificación de la lentitud es ridícula).
  • Complejidad de implementación. Implementar Dual_EC_DBRG es más complicado que implementar cualquiera de las alternativas que se ofrecieron al mismo tiempo. (Lo has adivinado. Esto también es algo malo)

Entonces esos son tres grandes ataques contra Dual_EC_DBRG en relación a las alternativas en ese momento. Estos eran conocidos.

Solo hay una razón por la que alguien debería haber preferido Dual_EC_DRBG a las alternativas con las que se publicó: las curvas elípticas son geniales. En realidad estoy de acuerdo con esa razón, y lo consideraría legítimo si otras cosas hubieran sido iguales , pero dado que Dual_EC_DBRG era visiblemente inferior a otras DBRG disponibles en ese momento, no hay ninguna razón para que nadie las elija. it.

Como recordatorio, la posibilidad de una puerta trasera se probó en 2007. Por lo tanto, cualquier decisión posterior a la presentación de 2007 tuvo que agregar esa posibilidad de una puerta trasera a las razones en contra.

Sam Curry, cuya peculiar "explicación" para la elección es probablemente lo que está detrás de esta pregunta, no es estúpido. Pero si se le impidió decir la verdad, entonces proporcionar una respuesta que diga "lo elegimos porque los unicornios son un bonito y bonito tono azul" es informativo. Si se le obliga a justificar lo injustificable, es de esperar un alboroto.

    
respondido por el Jeffrey Goldberg 24.09.2013 - 06:54
fuente
1
  

Ahora que se usarán otros PRNG ...

Vale la pena señalar que con la excepción de algunos productos de nicho , Dual EC DRBG no fue utilizado previamente por nadie. En su inicio, investigadores independientes señalaron que se trataba de un algoritmo horriblemente ineficiente que producía una salida que podría ser envenenada por un actor malicioso. Pero debido a una fuerte insistencia de la NSA durante el proceso de elaboración de normas, este algoritmo simplemente habría pasado a la historia como una mala idea de un diseñador equivocado.

Entonces, ahora que se usarán otros PRNG ... nada cambiará, porque otros PRNG han siempre estar en uso.

Además, con la tecnología moderna, si aún estás usando un PRNG matemático simple, lo estás haciendo mal. Los algoritmos que pueden administrar grupos de una entropía verdadera de origen externo, en combinación con fuentes efectivas simples de aleatoriedad real son resistentes a todos los ataques conocidos.

    
respondido por el tylerl 24.09.2013 - 07:39
fuente

Lea otras preguntas en las etiquetas