Números utilizados por los criptógrafos para demostrar que trabajan de buena fe
En criptografía , los números que no están bajo la manga son aquellos números que, por su construcción, están fuera de toda sospecha de propiedades ocultas. Se utilizan para crear funciones criptográficas como hashes y cifrados . Estos algoritmos a menudo necesitan constantes aleatorias para fines de mezcla o inicialización. Es posible que el criptógrafo desee seleccionar estos valores de una manera que demuestre que las constantes no fueron seleccionadas con un propósito nefasto, por ejemplo, crear una puerta trasera al algoritmo. [1] Estos temores pueden disiparse utilizando números creados de una manera que deje poco margen de ajuste. Un ejemplo sería el uso de dígitos iniciales del número π como constantes. [2] Usar dígitos de π millones de lugares después del punto decimal no se consideraría confiable porque el diseñador del algoritmo podría haber seleccionado ese punto de partida porque creaba una debilidad secreta que el diseñador podría explotar más tarde, aunque incluso con selecciones aparentemente naturales, suficiente Existe entropía en las posibles elecciones por lo que se ha cuestionado la utilidad de estos números.
Se cree que los dígitos en las representaciones posicionales de números reales como π , e y raíces irracionales aparecen con la misma frecuencia (ver número normal ). Estos números pueden verse como el extremo opuesto de los números aleatorios de Chaitin-Kolmogorov en el sentido de que parecen aleatorios pero tienen una entropía de información muy baja . Su uso está motivado por la controversia inicial sobre el Estándar de cifrado de datos de 1975 del gobierno de EE. UU. , que fue criticado porque no se proporcionó ninguna explicación para las constantes utilizadas en su S-box (aunque más tarde se descubrió que habían sido cuidadosamente seleccionadas para proteger contra el entonces -técnica clasificada de criptoanálisis diferencial ). [3] Por lo tanto, se sintió la necesidad de una forma más transparente de generar constantes utilizadas en criptografía.
"Nada bajo la manga" es una frase asociada a los magos , quienes a veces inician un truco de magia manteniéndose abiertas las mangas para mostrar que no tienen ningún objeto escondido en su interior.
Ejemplos
Ron Rivest utilizó la función seno trigonométrica para generar constantes para el hash MD5 ampliamente utilizado . [4]
El candidato AES DFC deriva todas sus constantes arbitrarias, incluidas todas las entradas del S-box, de la expansión binaria de e . [7]
El programa clave ARIA utiliza la expansión binaria de 1/ π . [8]
El programa clave del cifrado RC5 utiliza dígitos binarios tanto de e como de la proporción áurea . [9]
Varios cifrados, incluidos TEA y Red Pike, utilizan 2654435769 o 0x9e3779b9, que es ⌊ 2 32 / ϕ ⌋ , donde ϕ es la proporción áurea.
La función hash BLAKE , finalista del concurso SHA-3 , utiliza una tabla de 16 palabras constantes que son los 512 o 1024 bits principales de la parte fraccionaria de π .
La programación de claves del cifrado KASUMI utiliza 0x123456789ABCDEFFEDCBA9876543210 para derivar la clave modificada.
La familia de cifrados Salsa20 utiliza la cadena ASCII "expandir k de 32 bytes" o "expandir k de 16 bytes" como constantes en su proceso de inicialización de bloques.
Bcrypt utiliza la cadena "OrpheanBeholderScryDoubt" como cadena de inicialización [10] [11]
Contraejemplos
Se afirmó que la función hash S-box de Streebog se generaba aleatoriamente, pero se realizó ingeniería inversa y se demostró que se generaba algorítmicamente con algunas debilidades "desconcertantes". [12]
El Estándar de cifrado de datos (DES) tiene constantes proporcionadas por la NSA. Resultó que estaban lejos de ser aleatorios, pero en cambio hicieron que el algoritmo fuera resistente al criptoanálisis diferencial , un método no conocido públicamente en ese momento. [3]
Dual_EC_DRBG , un generador de bits pseudoaleatorios criptográficos recomendado por el NIST , fue criticado en 2007 porque las constantes recomendadas para su uso en el algoritmo podrían haber sido seleccionadas de una manera que permitiría a su autor predecir resultados futuros dada una muestra de valores generados en el pasado. [1] En septiembre de 2013, The New York Times escribió que "los memorandos internos filtrados por un excontratista de la NSA, Edward Snowden , sugieren que la NSA generó uno de los generadores de números aleatorios utilizados en un estándar NIST de 2006—llamado estándar Dual EC DRBG— que contiene una puerta trasera para la NSA." [13]
Aunque no está directamente relacionado, después de que se expuso la puerta trasera en Dual_EC_DRBG, aspectos sospechosos de las constantes de la curva P del NIST [14] generaron preocupaciones [15] de que la NSA había elegido valores que les daban una ventaja para encontrar [16] claves privadas. [17] Desde entonces, muchos protocolos y programas comenzaron a utilizar Curve25519 como alternativa a la curva NIST P-256.
Limitaciones
Bernstein y sus coautores demuestran que el uso de números "nada bajo la manga" como punto de partida en un procedimiento complejo para generar objetos criptográficos, como curvas elípticas, puede no ser suficiente para evitar la inserción de puertas traseras. Por ejemplo, existen muchos candidatos de constantes matemáticas simples aparentemente inofensivas y "poco interesantes", como π , e , Euler gamma , √2 , √3 , √5 , √7, log(2), (1 + √5)/ 2 , ζ(3) , ζ(5), sin(1), sin(2), cos(1), cos(2), tan(1) o tan(2). Para estas constantes, también existen varias representaciones binarias diferentes para elegir. Si se utiliza una constante como semilla aleatoria, también existe una gran cantidad de candidatos a funciones hash para su selección, como SHA-1, SHA-256, SHA-384, SHA-512, SHA-512/256, SHA3-256, o SHA3-384.
Si hay suficientes parámetros ajustables en el procedimiento de selección de objetos, la explosión combinatoria asegura que el universo de posibles elecciones de diseño y de constantes aparentemente simples pueda ser lo suficientemente grande como para que una búsqueda automática de las posibilidades permita la construcción de un objeto con las propiedades de puerta trasera deseadas. [18]
Notas a pie de página
^ ab Bruce Schneier (15 de noviembre de 2007). "¿La NSA puso una puerta trasera secreta en el nuevo estándar de cifrado?". Noticias por cable .
^ ab "Papel de pez globo". Archivado desde el original el 6 de septiembre de 2011 . Consultado el 9 de junio de 2010 .
^ ab Bruce Schneier . Criptografía aplicada , segunda edición, John Wiley and Sons, 1996, p. 247.
^ RFC 1321 sec. 3.4
^ FIPS 180-2: Secure Hash Standard (SHS) Archivado el 12 de marzo de 2012 en Wayback Machine ( PDF , 236 kB) - Versión actual del Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA -384 y SHA-512), 1 de agosto de 2002, modificado el 25 de febrero de 2004
^ "Revisión de NEWDES, Robert Scott, 1996". Archivado desde el original el 8 de noviembre de 2012 . Consultado el 9 de junio de 2010 .
^ Henri Gilbert; el señor Girault; P. Hoogvorst; F. Noilhan; T. Pornin; G. Poupard; J. popa; S. Vaudenay (19 de mayo de 1998). "Cifrado rápido decorrelacionado: un candidato a AES" (PDF/ PostScript ) . Archivado desde el original el 9 de abril de 2008 . Consultado el 9 de junio de 2010 .
^ A. Biryukov ; C. De Cannière; J. Lano; B. Preneel ; SB Örs (7 de enero de 2004). Análisis de seguridad y rendimiento de ARIA ( PostScript ) (Reporte). Versión 1.2—Informe final. Universidad Católica de Lovaina . Archivado desde el original el 16 de julio de 2011 . Consultado el 9 de junio de 2010 .
^ Rivest, RL (1994). "El algoritmo de cifrado RC5" (PDF) . Actas del segundo taller internacional sobre cifrado rápido de software (FSE) 1994e . págs. 86–96.
^ "src/lib/libc/crypt/bcrypt.c - diferencia - 1.3". cvsweb.openbsd.org . Archivado desde el original el 5 de julio de 2022 . Consultado el 5 de julio de 2022 .
^ "hash - ¿Por qué el texto BCrypt es" OrpheanBeholderScryDoubt"". Intercambio de pilas de seguridad de la información . Archivado desde el original el 10 de julio de 2023 . Consultado el 5 de julio de 2022 .
^ Biryukov, Alex; Perrin, Leo; Udovenko, Aleksei (2016). "Ingeniería inversa de la S-box de Streebog, Kuznyechik y STRIBOBr1 (versión completa)". Iacr-Eurocrypt-2016 . doi :10.1007/978-3-662-49890-3_15. Archivado desde el original el 2023-08-02 . Consultado el 26 de marzo de 2019 .
^ Perlroth, Nicole (10 de septiembre de 2013). "El gobierno anuncia medidas para restablecer la confianza en los estándares de cifrado". Los New York Times . Archivado desde el original el 23 de abril de 2015 . Consultado el 11 de septiembre de 2013 .
^ "SafeCurves: Introducción". Archivado desde el original el 5 de septiembre de 2017 . Consultado el 2 de mayo de 2017 .
^ Maxwell, Gregory (8 de septiembre de 2013). "[tor-talk] ¿Criptomonedas aprobadas por el NIST en Tor?". Archivado desde el original el 2 de octubre de 2014 . Consultado el 20 de mayo de 2015 .
^ "SafeCurves: rigidez". safecurves.cr.yp.to . Archivado desde el original el 22 de mayo de 2015 . Consultado el 20 de mayo de 2015 .
^ "La NSA está rompiendo la mayoría de los cifrados en Internet: Schneier sobre seguridad". www.schneier.com . Archivado desde el original el 15 de diciembre de 2017 . Consultado el 20 de mayo de 2015 .
^ Cómo manipular estándares de curvas: un libro blanco para el sombrero negro Archivado el 8 de marzo de 2016 en Wayback Machine Daniel J. Bernstein, Tung Chou, Chitchanok Chuengsatiansup, Andreas Hu ̈lsing, Eran Lambooij, Tanja Lange , Ruben Niederhagen y Christine van Vredendaal, 27 de septiembre de 2015, consultado el 4 de junio de 2016
Referencias
Bruce Schneier . Criptografía Aplicada , segunda edición. John Wiley e hijos, 1996.
Eli Biham , Adi Shamir , (1990). Criptoanálisis diferencial de criptosistemas tipo DES. Avances en criptología - CRYPTO '90. Springer-Verlag. 2–21.