De los anteriores algoritmos (Funciones Resumen I) quedan pocos en uso, la industria de la tecnología de información y comunicación (TIC) está realizando una transición acelerada debido a la necesidad de respuesta a nuevas vulnerabilidades y ataques. Las funciones que a continuación relacionamos podemos considerarlas estables aunque, “nada es seguro”. ?
Funciones Resumen – Hash ? Pulsar en el nombre de la columna para clasificar. |
Año | Nombre | Autor | Comentario |
---|---|---|---|
1.994 2.012 |
GOST-R3411-94 311-95 11-2012 |
FAPSI y VNIIstandart |
Es un algoritmo criptográfico ruso, tiene una salida de 256 bits, trata bloques de 256 con 32 rondas. El mensaje de entrada se divide en bloques de 256 bits (ocho enteros little-endian de 32 bits ), el mensaje se rellena agregándole tantos ceros como sean necesarios para llegar a 256 bits. En 2.008 Florian Mendel, Norbert Pramstaller, Christian Rechberge, Marcin Kontak y Janusz Szmidt presentaron un ataque contra el GOST 34.11-94, superando el anterior de Praveen Gauravaram y John Kelsey. El ataque en colisión tenía una complejidad de 2105 evaluaciones de la función de compresión y el mejor ataque de preimagen y segunda preimagen tiene un orden de complejidad de 2192 . |
2.000-4 | Whirlpool |
Paulo Barreto |
Paulo Sérgio Barreto realiza una primera aproximación en el año 2.000, en esa misma fecha es cuando se publica la primera versión Whirlpool-0. La segunda versión, Whirlpool-T, fue seleccionada por NESSIE (Nuevos esquemas europeos para firmas, integridad y encriptación) y al mismo tiempo normalizada por ISO / IEC, ambos reconocen su seguridad y lo mejor de todo, no está patentado.
Whirlpool se origina a partir de AES. Recordamos que Rijmen también participó en el desarrollo de AES.
El algoritmo toma un texto en claro de cualquier longitud, inferior a 2 256 bits, lo procesa en 10 rondas con una clave de 512 bits y devuelve un resumen de 512 bits. Utiliza una función de compresión Miyaguchi-Preneel y un cifrado específico de bloques de 512 bits llamado W.
La S-box que utiliza es una caja de sustitución de 8 × 8 compuesta de 4 “mini-cajas” (E– box exponencial, su inversa y la R– box seudo-aleatoria). La caja se genera al azar mediante una estructura recursiva. Descarga del fuente de Whirlpool en Java. |
2.012 |
Streebog GOST R 34.11-2012 |
Centro de Información Protección y Comunicaciones Especiales de la Seguridad Federal Rusa. |
El Dios del viento es una función hash que opera con bloques de 512 bits de entrada y produce resúmenes de 256 y 512 bits. Está basada en la normativa federal rusa “GOST R 34.11-2012” que, a su vez, está dentro de los algoritmos criptográficos denominados GOST. La principal diferencia de Streebog con su predecesora, GOST R 34.11-94, está en la función de compresión que utiliza, la Miyaguchi – Preneel, con la construcción Merkle – Damgård. El cifrado de bloque que utiliza es una red de permutación-sustitución de tipo AES y Whirlpool, con longitud de clave de 512 bits, 12 rondas completas y una simplificada y una matriz de 8 × 8 de bytes. Las especificaciones dicen que evita ataques de segunda imagen como el de Kelsey – Schneie, de colisión múltiple, diferenciales, de extensión de longitud, de rebote, etc. La transformación L ◦ P ◦ S de Streebog se utiliza para crear un algoritmo ligero “StriBob” para el cifrado autentificado AEAD, a través de la construcción Sponge y relleno BLNK.
Ahora entramos en el campo de las especulaciones: La información sobre su diseño es confusa y en parte está oculta. L. Perrin, A.Udovenko y A. Biryukov nos cuentan algunas afirmaciones hechas por los diseñadores, dicen: eligieron su S-box al azar de un conjunto de S-boxes donde afirmaban que no había ninguna estructura algebraica extremadamente fuerte, pero no es así, sí es fuerte, etc. Por otro lado también dicen que han perdido el algoritmo de generación. ? Esas respuestas no se las creen ni ellos, me parecen extremadamente infantiles, quedaría mejor decir “sin comentarios” o directamente “que te den”, frase muy española. |
2.015 |
Kupyna |
Roman Oliynykov, Ivan Gorbenko, Oleksandr Kazymyrov, Victor Ruzhentsev, Oleksandr Kuznetsov, Yurii Gorbenko, Artem Boiko, Oleksandr Dyrda, Viktor Dolgov, Andrii Pushkaryov |
Es un hash según la norma Ucraniana DSTU 7564: 2014 [Oli+15; Олi+15a] publicado en 2.015 que también se utiliza como MAC de 256, 384 y 512 bits. Es similar a la función hash Streebog Rusa, pero adaptada para equipos de 64 bits, además utiliza las transformaciones del cifrado de bloques de Kalyna, también norma Ucraniana y como función de compresión Davies-Meyer basada en el cifrado Even-Mansour.
La función de compresión consta de dos permutaciones fijas, T ⊕ y T + , que se toman del cifrado de bloque Kalyna y constan de cuatro operaciones. La función de ronda utiliza cuatro cajas S diferentes.
Todos los textos en claro se rellenan independientemente de su longitud. El relleno sigue al mensaje con un bit a ’1’ y luego un número de d bits a cero, donde d = (−N −97) mod l y 96 bits que contienen la longitud N del texto (los bits menos significativos en la representación de longitud del texto tienen índices más pequeños, es decir, en little-endian). Como resultado, la secuencia de bits rellenada tiene la longitud que es un múltiplo del estado interno l, l ∈ {512, 1024}. Después del relleno se divide en bloques m1, m2,. . . , mk de l-bit de longitud, que se define como: Para estados internos de 512 bits el número de rondas es de 10 y la matriz de estados tiene 8 filas. Para el estado de 1.024 bits las rondas son 14 y la matriz de estados tiene 16 filas. La longitud máxima del mensaje está limitada a 296 – 1 bits. |
1.993 2.017 |
SHA |
NSA |
Secure Hash Algorithm. En función de la versión tiene salidas desde 160 a 512 bits y puede llegar a los 1.600-2*bits, en este caso reduciéndose la velocidad. Tiene de 24 a 80 rondas y trata bloques de 160 a 512 bits. La función de relleno agrega primero un byte con el valor hexadecimal de 0x80 y después completa el tamaño del bloque. Está basado en Merkle-Damgård y tienen el mismo diseño básico de una función de compresión. SHA1 está obsoleto desde 2.015, fue sustituido por SHA2 y este es sustituido por SHA3. |