stringtranslate.com

NISTSP 800-90A

NIST SP 800-90A ("SP" significa " publicación especial ") es una publicación del Instituto Nacional de Estándares y Tecnología con el título Recomendación para la generación de números aleatorios utilizando generadores deterministas de bits aleatorios . La publicación contiene la especificación de tres generadores de números pseudoaleatorios supuestamente criptográficamente seguros para su uso en criptografía : Hash DRBG (basado en funciones hash ), HMAC DRBG (basado en HMAC ) y CTR DRBG (basado en cifrados de bloque en modo contador ). Las versiones anteriores incluían un cuarto generador, Dual_EC_DRBG (basado en criptografía de curva elíptica ). Más tarde se informó que Dual_EC_DRBG probablemente contenía una puerta trasera cleptográfica insertada por la Agencia de Seguridad Nacional de los Estados Unidos (NSA).

Historia

NIST SP 800-90A fue publicado por el Instituto Nacional de Estándares y Tecnología en junio de 2006 como NIST SP 800-90 con el título Recomendación para la generación de números aleatorios utilizando generadores deterministas de bits aleatorios . [1] La publicación contiene la especificación de tres generadores de números pseudoaleatorios supuestamente criptográficamente seguros para su uso en criptografía : Hash DRBG (basado en funciones hash ), HMAC DRBG (basado en HMAC ) y CTR DRBG (basado en cifrados de bloque en modo contador ). .

Desde el 24 de junio de 2015, la versión actual de la publicación es la Revisión 1. Las versiones anteriores incluían un cuarto generador, Dual_EC_DRBG (basado en criptografía de curva elíptica ). Más tarde se informó que Dual_EC_DRBG probablemente contenía una puerta trasera cleptográfica insertada por la Agencia de Seguridad Nacional de los Estados Unidos (NSA), mientras que los otros tres generadores de números aleatorios son aceptados como no controvertidos y seguros por múltiples criptógrafos. [2] [3]

Como obra del gobierno federal de EE. UU. , NIST SP 800-90A es de dominio público y está disponible gratuitamente.

Análisis de seguridad

El NIST afirma que cada uno de los cuatro (revisados ​​a tres) DBRG es "resistente a retrocesos" y "resistente a predicciones". La primera es la noción común de "secreto directo" de los PRNG: en caso de un compromiso estatal, el atacante no puede recuperar estados y resultados históricos. Esto último significa que si el Estado se ve comprometido y posteriormente se le vuelve a sembrar suficiente entropía, se restablece la seguridad. [4]

Doble_EC_DRBG

Un intento de prueba de seguridad para Dual_EC_DRBG afirma que se requieren tres problemas que sean matemáticamente difíciles para que Dual_EC_DRBG sea seguro: el problema decisional de Diffie-Hellman , el problema del logaritmo x y el problema del punto truncado. [5] El problema decisional de Diffie-Hellman es ampliamente aceptado como difícil. [5] El problema del logaritmo x no es ampliamente aceptado como difícil. Se muestra alguna evidencia de que este problema es difícil, pero esa evidencia no es concluyente. [5] Por lo tanto, la prueba de seguridad es cuestionable y se demostraría que no es válida si se demuestra que el problema del logaritmo x se puede resolver de manera eficiente. El problema del punto truncado requiere que se trunquen suficientes bits del punto seleccionado por Dual_EC_DRBG para que no se pueda distinguir de un número verdaderamente aleatorio. [5] Sin embargo, se ha demostrado que el truncamiento de 16 bits, el valor predeterminado especificado por el estándar Dual_EC_DRBG, es insuficiente para hacer que la salida sea indistinguible de un verdadero generador de números aleatorios [6] y, por lo tanto, invalida la prueba de seguridad de Dual_EC_DRBG cuando el valor de truncamiento predeterminado se utiliza.

Puerta trasera en Dual_EC_DRBG

Como parte del programa Bullrun , la NSA ha insertado puertas traseras en los sistemas de criptografía. En 2013 se sugirió que uno de esos objetivos fuera Dual_EC_DRBG. [7] La ​​NSA logró esto trabajando durante el proceso de estandarización para eventualmente convertirse en el único editor de la norma. [8] Al lograr que Dual_EC_DRBG fuera aceptado en NIST SP 800-90A, la NSA citó el uso de Dual_EC_DRBG por parte de la destacada firma de seguridad RSA Security en sus productos. Sin embargo, la NSA había pagado a RSA Security 10 millones de dólares para utilizar Dual_EC_DRBG por defecto, en un acuerdo que Reuters describe como "manejado por líderes empresariales en lugar de tecnólogos puros". Como Reuters describió el contrato de 10 millones de dólares para que RSA Security utilizara Dual_EC_DRBG como secreto, las personas involucradas en el proceso de aceptación de Dual_EC_DRBG en NIST SP 800-90A presumiblemente no fueron informadas de este obvio conflicto de intereses. [9] Esto podría ayudar a explicar cómo un generador de números aleatorios que luego se demostró que era inferior a las alternativas (además de la puerta trasera) llegó al estándar NIST SP 800-90A.

El potencial de una puerta trasera en Dual_EC_DRBG ya había sido documentado por Dan Shumow y Niels Ferguson en 2007, [10] pero continuó siendo utilizado en la práctica por empresas como RSA Security hasta la revelación de 2013. [2] Dadas las fallas conocidas en Dual_EC_DRBG, posteriormente ha habido acusaciones de que RSA Security insertó a sabiendas una puerta trasera de la NSA en sus productos. RSA ha negado haber insertado conscientemente una puerta trasera en sus productos. [11]

Tras la revelación de la puerta trasera de la NSA, el NIST ha reabierto el proceso de investigación pública para el estándar NIST SP 800-90A. [7] [12] En junio de 2015 se publicó una versión revisada de NIST SP 800-90A que elimina Dual_EC_DRBG. [13]

Hash_DRBG y HMAC_DRBG

Hash_DRBG y HMAC_DRBG tienen pruebas de seguridad para que una sola llamada genere números pseudoaleatorios. [14] El documento que demuestra la seguridad de Hash_DRBG y HMAC_DRBG cita el intento de prueba de seguridad para Dual_EC_DRBG utilizado en el párrafo anterior como prueba de seguridad para decir que no se debe usar CTR_DRBG porque es el único DRBG en NIST SP 800-90A que Carece de prueba de seguridad. [14]

HMAC_DRBG también tiene una prueba de seguridad verificada por máquina. [15] La tesis que contiene la prueba de seguridad verificada por máquina también demuestra que un compromiso de una instancia correctamente implementada de HMAC_DRBG no compromete la seguridad de los números generados antes del compromiso. [15]

Woodage y Shumow (2019) analizan con más detalle los esquemas del NIST; En concreto, proporcionan pruebas de seguridad que tienen en cuenta la generación inicial de semillas y la resiembra, que no han sido analizadas en absoluto antes. Bajo el modelo de Oracle aleatorio y suponiendo una fuente de entropía independiente de Oracle: [4]

CTR_DRBG

Se ha demostrado que CTR_DRBG tiene una imperfección teórica cuando se usa con ciertos parámetros porque los criptógrafos no consideraron el tamaño del bloque del cifrado al diseñar este generador de números pseudoaleatorios. [16] CTR_DRBG parece seguro e indistinguible de una fuente aleatoria verdadera cuando se utiliza AES como cifrado de bloque subyacente y se toman 112 bits de este generador de números pseudoaleatorios . [16] Cuando se utiliza AES como cifrado de bloque subyacente y se toman 128 bits de cada instanciación, el nivel de seguridad requerido se entrega con la advertencia de que la salida de un cifrado de 128 bits en modo contador se puede distinguir de un verdadero generador de números aleatorios. [16] Cuando se utiliza AES como cifrado de bloque subyacente y se toman más de 128 bits de este generador de números pseudoaleatorios, el nivel de seguridad resultante está limitado por el tamaño del bloque en lugar del tamaño de la clave y, por lo tanto, el nivel de seguridad real es mucho menor. que el nivel de seguridad implicado por el tamaño de la clave. [16] También se muestra que CTR_DRBG no ofrece el nivel de seguridad esperado siempre que se utiliza Triple DES porque su tamaño de bloque de 64 bits es mucho menor que el tamaño de clave de 112 bits utilizado para Triple DES. [dieciséis]

Actualmente no existe ningún método conocido para aprovechar este problema cuando se utiliza AES.

Borrado de clave

El esquema NIST CTR_DRBG borra la clave después de que se genera la aleatoriedad solicitada produciendo aleatoriedad adicional para reemplazar la clave. Esto es un desperdicio desde una perspectiva de rendimiento, pero no causa inmediatamente problemas con el secreto directo. Sin embargo, al darse cuenta de las implicaciones de rendimiento, el NIST recomienda una "interfaz AES-CTR-DRBG extendida" para sus presentaciones de Proyectos de Criptografía Post-Cuántica . Esta interfaz permite generar múltiples conjuntos de aleatoriedad sin que intervenga el borrado, y solo se borra cuando el usuario señala explícitamente el final de las solicitudes. Como resultado, la clave podría permanecer en la memoria durante un tiempo prolongado si se hace un mal uso de la "interfaz extendida". Una alternativa propuesta por Bernstein es producir aleatoriedad para reemplazar la clave antes de que se genere la aleatoriedad solicitada, como se hace en los RNG de "borrado rápido de claves". [17]

Los límites de seguridad informados por Campagna (2006) no tienen en cuenta ningún procedimiento de reemplazo de claves. [17]

Woodage y Shumow (2019) proporcionan un borrador de análisis de la situación mencionada por Bernstein, es decir, la fuga de estado suponiendo grandes cantidades de aleatoriedad ( next) generada entre la recodificación ( final). [4]

Historial de versiones de NIST SP 800-90A

Ver también

Referencias

  1. ^ Ladrador, Elaine; Kelsey, John (junio de 2006). "Publicación especial del NIST 800-90: Recomendación para la generación de números aleatorios utilizando generadores deterministas de bits aleatorios" (PDF) . Instituto Nacional de Estándares y Tecnología . Consultado el 27 de noviembre de 2016 .
  2. ^ ab Green, Matthew (20 de septiembre de 2013). "RSA advierte a los desarrolladores que no utilicen productos RSA" . Consultado el 23 de agosto de 2014 .
  3. ^ Schneier, Bruce (15 de noviembre de 2007). "La extraña historia de Dual_EC_DRBG" . Consultado el 25 de noviembre de 2016 .
  4. ^ abc Woodage, Joanne; Shumow, Dan (2019). "Un análisis de NIST SP 800-90A" (PDF) . Avances en Criptología – EUROCRYPT 2019 . vol. 11477, págs. 151–180. doi :10.1007/978-3-030-17656-3_6.
  5. ^ abcd Brown, Daniel RL; Gjøsteen, Kristian (15 de febrero de 2007). "Un análisis de seguridad del generador de números aleatorios de curva elíptica NIST SP 800-90" (PDF) . Consultado el 19 de noviembre de 2016 .
  6. ^ Schoenmakers, Berry; Sidorenko, Andrey (29 de mayo de 2006). "Criptoanálisis del generador pseudoaleatorio de curva elíptica dual" (PDF) . Consultado el 20 de noviembre de 2016 .
  7. ^ ab Perlroth, Nicole (10 de septiembre de 2013). "El gobierno anuncia medidas para restablecer la confianza en los estándares de cifrado". New York Times . Consultado el 23 de agosto de 2014 .
  8. ^ Bola, James; Borger, Julián; Greenwald, Glenn (5 de septiembre de 2013). "Revelado: cómo las agencias de espionaje de Estados Unidos y el Reino Unido derrotan la privacidad y la seguridad de Internet". El guardián . Consultado el 23 de agosto de 2014 .
  9. ^ Menn, José (20 de diciembre de 2013). "Exclusivo: contrato secreto vinculado a la NSA y al pionero de la industria de la seguridad". Reuters . Consultado el 23 de agosto de 2014 .
  10. ^ Bruce Schneier (15 de noviembre de 2007). "¿La NSA puso una puerta trasera secreta en el nuevo estándar de cifrado?". Noticias por cable . Archivado desde el original el 23 de noviembre de 2015 . Consultado el 23 de agosto de 2014 .URL alternativa
  11. ^ Goodin, Dan (20 de septiembre de 2013). "No permitimos puertas traseras en nuestros productos criptográficos, informa RSA a los clientes". Ars Técnica . Consultado el 23 de agosto de 2014 .
  12. ^ "NIST invita a comentar sobre el borrador SP 800-90A, revisión 1". Instituto Nacional de Estándares y Tecnología . 2014-04-21. Archivado desde el original el 23 de julio de 2014 . Consultado el 23 de agosto de 2014 .
  13. ^ Ladrador, Elaine; Kelsey, John (junio de 2015). "Publicación especial publicada por el NIST (SP) 800-90A Revisión 1: Recomendación para la generación de números aleatorios utilizando generadores deterministas de bits aleatorios" (PDF) . Instituto Nacional de Estándares y Tecnología . doi : 10.6028/NIST.SP.800-90Ar1 . Consultado el 19 de noviembre de 2016 .
  14. ^ ab Kan, Wilson (4 de septiembre de 2007). "Análisis de los supuestos subyacentes en los DRBG del NIST" (PDF) . Consultado el 19 de noviembre de 2016 .
  15. ^ ab Ye, Katherine Qinru (abril de 2016). "The Notorious PRG: Verificación formal del generador de números pseudoaleatorios HMAC-DRBG" (PDF) . Consultado el 19 de noviembre de 2016 .
  16. ^ abcde Campagna, Matthew J. (1 de noviembre de 2006). "Límites de seguridad para el generador de bits aleatorios determinista basado en el libro de códigos del NIST" (PDF) . Consultado el 19 de noviembre de 2016 .
  17. ^ ab Bernstein, Daniel J. "23.07.2017: Generadores de números aleatorios de borrado rápido de claves: un esfuerzo para limpiar varios desastres simultáneamente. #rng #forwardsecrecy #urandom #cascade #hmac #rekeying #proofs".