En criptografía , una ronda o función circular es una transformación básica que se repite ( itera ) varias veces dentro del algoritmo. Dividir una función algorítmica grande en rondas simplifica tanto la implementación como el criptoanálisis . [1]
Por ejemplo, el cifrado que utiliza un cifrado simplificado de tres rondas se puede escribir como , donde C es el texto cifrado y P es el texto sin formato . Normalmente, las rondas se implementan utilizando la misma función, parametrizada por la constante de ronda y, para los cifrados de bloque , la clave de ronda del programa de claves . La parametrización es esencial para reducir la autosimilitud del cifrado, lo que podría dar lugar a ataques de deslizamiento . [1]
Aumentar el número de rondas "casi siempre" [2] protege contra el criptoanálisis diferencial y lineal , ya que para estas herramientas el esfuerzo crece exponencialmente con el número de rondas. Sin embargo, aumentar el número de rondas no siempre convierte los cifrados débiles en fuertes, ya que algunos ataques no dependen del número de rondas. [3]
La idea de un cifrado iterativo que utilice la aplicación repetida de operaciones simples no conmutativas que produzcan difusión y confusión se remonta a 1945, a la versión entonces secreta del trabajo de CE Shannon " Teoría de la comunicación de sistemas secretos "; [4] Shannon se inspiró en las transformaciones de mezcla utilizadas en el campo de la teoría de sistemas dinámicos (cf. mapa de herradura ). La mayoría de los cifrados modernos utilizan un diseño iterativo con un número de rondas elegido habitualmente entre 8 y 32 (con 64 e incluso 80 utilizados en hashes criptográficos ). [5]
En algunas descripciones de cifrados similares a Feistel , en particular la del RC5 , se utiliza el término " media vuelta " para definir la transformación de parte de los datos (una característica distintiva del diseño de Feistel). Esta operación corresponde a una vuelta completa en las descripciones tradicionales de los cifrados de Feistel (como DES ). [6]
Constantes redondas
La inserción de constantes dependientes de las rondas en el proceso de cifrado rompe la simetría entre rondas y, por lo tanto, frustra los ataques de deslizamiento más obvios. [3] La técnica es una característica estándar de la mayoría de los cifrados de bloques modernos. Sin embargo, una mala elección de constantes de ronda o interrelaciones no deseadas entre las constantes y otros componentes del cifrado aún podrían permitir ataques de deslizamiento (por ejemplo, atacar la versión inicial del modo de cifrado que preserva el formato FF3). [7]
Muchos cifrados ligeros utilizan una programación de claves muy simple: las claves circulares se obtienen añadiendo las constantes circulares a la clave de cifrado . Una mala elección de las constantes circulares en este caso puede hacer que el cifrado sea vulnerable a ataques invariantes; entre los cifrados que se rompen de esta manera se incluyen SCREAM y Midori64. [8]
Mejoramiento
Daemen y Rijmen afirman que uno de los objetivos de optimizar el cifrado es reducir la carga de trabajo general, el producto de la complejidad de las rondas y el número de rondas. Existen dos enfoques para abordar este objetivo: [2]
- la optimización local mejora el comportamiento en el peor de los casos de una sola ronda (dos rondas para los cifrados Feistel);
- La optimización global optimiza el comportamiento en el peor de los casos de más de una ronda, lo que permite el uso de componentes menos sofisticados.
Cifras de ronda reducida
Las técnicas de criptoanálisis incluyen el uso de versiones de los cifrados con menos rondas que las especificadas por sus diseñadores. Dado que una sola ronda suele ser criptográficamente débil, muchos ataques que no funcionan contra la versión completa de los cifrados funcionarán con esas variantes de rondas reducidas . El resultado de ese ataque proporciona información valiosa sobre la solidez del algoritmo [9] , una ruptura típica del cifrado completo comienza como un éxito contra uno de rondas reducidas [10] .
Referencias
- ^ desde Aumasson 2017, pág. 56.
- ^ ab Daemen y Rijmen 2013, p. 74.
- ^ por Biryukov y Wagner 1999.
- ^ Shannon, Claude (1 de septiembre de 1945). "Una teoría matemática de la criptografía" (PDF) . pág. 97.
- ^ Biryukov 2005.
- ^ Kaliski y Yin 1995, pág. 173.
- ^ Dunkelman y col. 2020, pág. 252.
- ^ Beierle y otros 2017.
- ^ Robshaw 1995, pág. 23.
- ^ Schneier 2000, pág. 2.
Fuentes
- Aumasson, Jean-Philippe (6 de noviembre de 2017). Criptografía seria: una introducción práctica al cifrado moderno. No Starch Press. pp. 56–57. ISBN 978-1-59327-826-7.OCLC 1012843116 .
- Biryukov, Alex; Wagner, David (1999). "Ataques de diapositivas". Cifrado rápido de software . Apuntes de clase sobre informática. Vol. 1636. Springer Berlin Heidelberg. págs. 245–259. doi :10.1007/3-540-48519-8_18. ISBN . 978-3-540-66226-6. ISSN 0302-9743.
- Dunkelman, Orr; Keller, Nathan; Lasry, Noam; Shamir, Adi (2020). "Nuevos ataques de deslizamiento en cifrados casi autosimilares". Avances en criptología – EUROCRYPT 2020. Apuntes de clase en informática. Vol. 12105. Springer International Publishing. págs. 250–279. doi :10.1007/978-3-030-45721-1_10. eISSN 1611-3349. ISBN 978-3-030-45720-4. ISSN 0302-9743.
- Beierle, Christof; Canteaut, Anne; Leander, Gregor; Rotella, Yann (2017). "Cómo probar la resistencia contra ataques invariantes: cómo elegir las constantes redondas" (PDF) . Avances en criptología – CRYPTO 2017. Apuntes de clase en informática. Vol. 10402. Springer International Publishing. págs. 647–678. doi :10.1007/978-3-319-63715-0_22. eISSN 1611-3349. ISBN 978-3-319-63714-3. ISSN 0302-9743.
- Biryukov, Alex (2005). "Cifrado de producto, supercifrado". Enciclopedia de criptografía y seguridad . Springer US. págs. 480–481. doi :10.1007/0-387-23483-7_320.
- Robshaw, MJB (2 de agosto de 1995). Block Ciphers (PDF) (versión 2.0 ed.). Redwood City, CA: RSA Laboratories .
- Schneier, Bruce (enero de 2000). "Un curso de autoaprendizaje sobre criptoanálisis de cifrado por bloques" (PDF) . Cryptologia . 24 (1): 18–34. doi :10.1080/0161-110091888754. S2CID 53307028.
- Kaliski, Burton S.; Yin, Yiqun Lisa (1995). "Sobre el criptoanálisis diferencial y lineal del algoritmo de cifrado RC5" (PDF) . Avances en criptología – CRYPT0' 95. Springer Berlin Heidelberg. págs. 171–184. doi :10.1007/3-540-44750-4_14. ISSN 0302-9743.
- Daemen, Joan; Rijmen, Vincent (9 de marzo de 2013). El diseño de Rijndael: AES, el estándar de cifrado avanzado (PDF) . Springer Science & Business Media. ISBN 978-3-662-04722-4.OCLC 1259405449 .