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 de bits aleatorios deterministas . La publicación contiene la especificación de tres generadores de números pseudoaleatorios 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 indiscutibles y seguros por múltiples criptógrafos. [1] [2]
Como trabajo del gobierno federal de los EE. UU. , NIST SP 800-90A es de dominio público y está disponible gratuitamente.
Puerta trasera en Dual_EC_DRBG
Como parte del programa Bullrun , la NSA ha estado insertando puertas traseras en los sistemas de criptografía. En 2013 se sugirió que uno de esos objetivos fuera Dual_EC_DRBG. [3] La NSA logró esto trabajando durante el proceso de estandarización para eventualmente convertirse en el único editor del estándar. [4] Al lograr que Dual_EC_DRBG fuera aceptado en NIST SP 800-90A, la NSA citó el uso de Dual_EC_DRBG de la destacada firma de seguridad RSA Security en sus productos. Sin embargo, la NSA le había pagado a RSA Security $ 10 millones para usar 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ó como secreto el contrato de $ 10 millones para que RSA Security usara Dual_EC_DRBG, las personas involucradas en el proceso de aceptación de Dual_EC_DRBG en NIST SP 800-90A probablemente no fueron conscientes de este evidente conflicto de intereses. [5] Esto podría ayudar a explicar cómo un generador de números aleatorios que más tarde demostró ser inferior a las alternativas (además de la puerta trasera) se convirtió en el 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, [6] pero continuó siendo utilizado en la práctica por empresas como RSA Security hasta la revelación de 2013. [1] 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 a sabiendas una puerta trasera en sus productos. [7]
Tras la revelación de la puerta trasera de la NSA, NIST ha reabierto el proceso de investigación pública para el estándar NIST SP 800-90A. [3] [8] En junio de 2015 se publicó una versión revisada de NIST SP 800-90A que elimina Dual_EC_DRBG. [9]
Análisis de seguridad
Un intento de prueba de seguridad para Dual_EC_DRBG establece que se requieren tres problemas matemáticamente difíciles para que Dual_EC_DRBG sea seguro: el problema decisional Diffie-Hellman, el problema del logaritmo x y el problema del punto truncado. [10] El problema decisional Diffie-Hellman es ampliamente aceptado como difícil. [10] El problema del logaritmo x no se acepta ampliamente como difícil, pero se muestra alguna evidencia de que este problema es difícil, pero no prueba que el problema sea difícil. [10] 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 en lugar de difícil. El problema del punto truncado requiere que se trunquen suficientes bits desde el punto seleccionado por Dual_EC_DRBG para que sea indistinguible de un número verdaderamente aleatorio. [10] Sin embargo, el truncamiento de 16 bits, el valor predeterminado especificado por el estándar Dual_EC_DRBG, ha demostrado ser insuficiente para que la salida no se pueda distinguir de un generador de números aleatorios verdadero [11] y, por lo tanto, invalida la prueba de seguridad de Dual_EC_DRBG cuando el valor de truncamiento predeterminado se utiliza.
Hash_DRBG y HMAC_DRBG tienen pruebas de seguridad para que una sola llamada genere números pseudoaleatorios. [12] El documento que prueba 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 una prueba de seguridad. [12]
HMAC_DRBG también tiene una prueba de seguridad verificada por máquina. [13] La tesis que contiene la prueba de seguridad verificada por máquina también demuestra que un compromiso de una instancia de HMAC_DRBG implementada correctamente no compromete la seguridad de los números generados antes del compromiso. [13]
CTR_DRBG
Se ha demostrado que CTR_DRBG tiene problemas de seguridad cuando se usa con ciertos parámetros porque los criptógrafos no consideraron el tamaño de bloque del cifrado al diseñar este generador de números pseudoaleatorios. [14] CTR_DRBG parece seguro e indistinguible de una fuente aleatoria verdadera cuando se usa AES como el cifrado de bloque subyacente y se toman 112 bits de este generador de números pseudoaleatorios. [14] Cuando se usa AES como cifrado de bloque subyacente y se toman 128 bits de cada instanciación, el nivel de seguridad requerido se entrega con la salvedad de que la salida de un cifrado de 128 bits en modo contador se puede distinguir de un verdadero generador de números aleatorios. [14] 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 que implica el tamaño de la clave. [14] 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. [14]
Historial de versiones de NIST SP 800-90A
- Barker, Elaine; Kelsey, John (junio de 2006). "Publicación especial NIST 800-90: Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . Consultado el 27 de noviembre de 2016 . Retirado en marzo de 2007.
- Barker, Elaine; Kelsey, John (marzo de 2007). "Publicación especial NIST 800-90: Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas (revisada)" (PDF) . Instituto Nacional de Estándares y Tecnología . Consultado el 27 de noviembre de 2016 . Retirado en enero de 2012.
- Barker, Elaine; Kelsey, John (enero de 2012). "Publicación especial NIST 800-90A: Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . Consultado el 19 de noviembre de 2016 . Retirado en junio de 2015.
- Barker, 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 de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . doi : 10.6028 / NIST.SP.800-90Ar1 . Consultado el 19 de noviembre de 2016 . Cite journal requiere
|journal=
( ayuda )
Ver también
- NIST SP 800-90B
Referencias
- ^ a b Green, Matthew (20 de septiembre de 2013). "RSA advierte a los desarrolladores que no utilicen productos RSA" . Consultado el 23 de agosto de 2014 .
- ^ Schneier, Bruce (15 de noviembre de 2007). "La extraña historia de Dual_EC_DRBG" . Consultado el 25 de noviembre de 2016 .
- ^ a b Perlroth, Nicole (10 de septiembre de 2013). "Gobierno anuncia pasos para restaurar la confianza en los estándares de cifrado" . New York Times . Consultado el 23 de agosto de 2014 .
- ^ Ball, James; Borger, Julian; 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" . The Guardian . Consultado el 23 de agosto de 2014 .
- ^ Menn, Joseph (20 de diciembre de 2013). "Exclusivo: contrato secreto vinculado a la NSA y pionero de la industria de la seguridad" . Reuters . Consultado el 23 de agosto de 2014 .
- ^ Bruce Schneier (15 de noviembre de 2007). "¿La NSA puso una puerta trasera secreta en un 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
- ^ Goodin, Dan (20 de septiembre de 2013). "No habilitamos puertas traseras en nuestros productos criptográficos, RSA les dice a los clientes" . Ars Technica . Consultado el 23 de agosto de 2014 .
- ^ "NIST invita a comentarios sobre el borrador de 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 .
- ^ Barker, 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 de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . doi : 10.6028 / NIST.SP.800-90Ar1 . Consultado el 19 de noviembre de 2016 . Cite journal requiere
|journal=
( ayuda ) - ^ a b c d 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 .
- ^ 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 .
- ^ a b Kan, Wilson (4 de septiembre de 2007). "Análisis de supuestos subyacentes en NIST DRBG" (PDF) . Consultado el 19 de noviembre de 2016 .
- ^ a b Ye, Katherine Qinru (abril de 2016). "El notorio PRG: verificación formal del generador de números pseudoaleatorios HMAC-DRBG" (PDF) . Consultado el 19 de noviembre de 2016 .
- ^ a b c d e 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 NIST" (PDF) . Consultado el 19 de noviembre de 2016 .
enlaces externos
- Elaine Barker; John Kelsey. "SP 800-90A Rev. 1 - Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas" . NIST.