Números utilizados por los criptógrafos para demostrar que trabajan de buena fe
En criptografía , los números que no se esconden en la manga son todos aquellos números que, por su construcción, están por encima 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. El criptógrafo puede desear elegir estos valores de una manera que demuestre que las constantes no fueron seleccionadas con un propósito nefasto, por ejemplo, para crear una puerta trasera al algoritmo. [1] Estos temores se pueden disipar utilizando números creados de una manera que deje poco margen para el ajuste. Un ejemplo sería el uso de dígitos iniciales del número π como constantes. [2] El uso de 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 que parecen naturales, existe suficiente entropía en las posibles elecciones como para cuestionar la utilidad de estos números.
"No tengo nada bajo la manga" es una frase asociada a los magos , quienes a veces preceden un truco de magia abriendo sus mangas para mostrar que no tienen objetos escondidos dentro.
Ejemplos
Ron Rivest utilizó la función seno trigonométrica para generar constantes para el hash MD5 ampliamente utilizado . [4]
La Agencia de Seguridad Nacional de los EE. UU. utilizó las raíces cuadradas de los primeros ocho números enteros primos para producir las constantes hash en sus funciones de "Algoritmo Hash Seguro", SHA-1 y SHA-2 . [5] SHA-1 también utiliza 0123456789ABCDEFFEDCBA9876543210F0E1D2C3 como su valor hash inicial.
El algoritmo de cifrado Blowfish utiliza la representación binaria de π − 3 para inicializar su programación de claves . [2]
El candidato AES DFC deriva todas sus constantes arbitrarias, incluidas todas las entradas de la caja S, de la expansión binaria de e . [7]
La programación de claves ARIA utiliza la expansión binaria de 1/ π . [8]
El esquema de claves 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 en el concurso SHA-3 , utiliza una tabla de 16 palabras constantes que son los 512 o 1024 bits iniciales de la parte fraccionaria de π .
La programación de claves del cifrado KASUMI utiliza 0x123456789ABCDEFFEDCBA9876543210 para derivar la clave modificada.
Bcrypt utiliza la cadena "OrpheanBeholderScryDoubt" como cadena de inicialización [10] [11]
Contraejemplos
Se afirmaba que la función hash Streebog S-box 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 que fueron proporcionadas por la NSA. Resultó que no eran para nada aleatorias, sino que hicieron que el algoritmo fuera resistente al criptoanálisis diferencial , un método que no era conocido públicamente en ese momento. [3]
Dual_EC_DRBG , un generador de bits pseudoaleatorios criptográficos recomendado por el NIST , fue objeto de críticas en 2007 porque las constantes recomendadas para su uso en el algoritmo podrían haber sido seleccionadas de una manera que permitiera 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 ex contratista 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 expusiera la puerta trasera en Dual_EC_DRBG, aspectos sospechosos de las constantes de la curva P del NIST [14] llevaron a 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 usar Curve25519 como una alternativa a la curva P-256 del NIST.
Limitaciones
Bernstein y sus coautores demuestran que el uso de números que no se encuentran en 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 , gamma de Euler , √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 la 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 opciones de diseño y de constantes aparentemente simples pueda ser lo suficientemente grande 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 al pie
^ de Bruce Schneier (15 de noviembre de 2007). "¿La NSA puso una puerta trasera secreta en el nuevo estándar de cifrado?". Wired News .
^ ab "Blowfish Paper". Archivado desde el original el 6 de septiembre de 2011. Consultado el 9 de junio de 2010 .
^ de Bruce Schneier . Criptografía aplicada , segunda edición, John Wiley and Sons, 1996, pág. 247.
^ RFC 1321 Sección 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; M. Girault; P. Hoogvorst; F. Noilhan; T. Pornin; G. Poupard; J. Stern; S. Vaudenay (19 de mayo de 1998). «Decorrelated Fast Cipher: an AES candidate» (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 ) (informe). Versión 1.2—Informe final. Katholieke Universiteit Leuven . 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 - diff - 1.3". cvsweb.openbsd.org . Archivado desde el original el 2022-07-05 . Consultado el 2022-07-05 .
^ "hash - ¿Por qué el texto de BCrypt es "OrpheanBeholderScryDoubt"?". Stack Exchange de seguridad de la información . Archivado desde el original el 2023-07-10 . Consultado el 2022-07-05 .
^ 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). «Gobierno anuncia medidas para restablecer la confianza en los estándares de cifrado». The 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] ¿El NIST aprobó la criptografía en Tor?». Archivado desde el original el 2014-10-02 . Consultado el 2015-05-20 .
^ "SafeCurves: Rigidez". safecurves.cr.yp.to . Archivado desde el original el 2015-05-22 . Consultado el 2015-05-20 .
^ "La NSA está rompiendo la mayoría de los sistemas de cifrado en Internet - Schneier on Security" (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 los 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 and Sons, 1996.
Eli Biham , Adi Shamir , (1990). Criptoanálisis diferencial de criptosistemas tipo DES. Avances en criptología – CRYPTO '90. Springer-Verlag. 2–21.