Articulo de referencia

Tigre (función hash)

En criptografía , Tiger [ 1 ] es una función hash criptográfica diseñada por Ross Anderson y Eli Biham en 1995 para optimizar la eficiencia en plataformas de 64 bits . El tamaño...

En criptografía , Tiger [ 1 ] es una función hash criptográfica diseñada por Ross Anderson y Eli Biham en 1995 para optimizar la eficiencia en plataformas de 64 bits . El tamaño de un valor hash Tiger es de 192 bits. Se pueden usar versiones truncadas (conocidas como Tiger/128 y Tiger/160) para garantizar la compatibilidad con protocolos que requieren un tamaño de hash específico. A diferencia de la familia SHA-2 , no se definen valores de inicialización distintivos; estos son simplemente prefijos del valor hash Tiger/192 completo.

Tiger2 [ 2 ] es una variante en la que el mensaje se rellena añadiendo primero un byte con el valor hexadecimal 0x80, como en MD4 , MD5 y SHA , en lugar del valor hexadecimal 0x01, como en el caso de Tiger. Por lo demás, ambas variantes son idénticas.

Algoritmo

Tiger se basa en la construcción Merkle-Damgård . La función de compresión unidireccional opera sobre palabras de 64 bits, manteniendo 3 palabras de estado y procesando 8 palabras de datos. Consta de 24 rondas, utilizando una combinación de operaciones de mezcla con XOR y suma/resta, rotaciones y búsquedas en la caja S, junto con un algoritmo de programación de claves bastante complejo para derivar las claves de las 24 rondas a partir de las 8 palabras de entrada.

Aunque Tiger es rápido en software, sus grandes cajas S (cuatro cajas S, cada una con 256 entradas de 64 bits que suman un total de 8 KiB ) dificultan las implementaciones en hardware o microcontroladores .

Uso

Tiger se usa frecuentemente en forma de árbol hash Merkle , donde se le conoce como TTH ( Tiger Tree Hash ). TTH es utilizado por muchos clientes en las redes de intercambio de archivos Direct Connect y Gnutella , y opcionalmente puede incluirse en el metarchivo de BitTorrent [ 3 ] para una mejor disponibilidad del contenido.

Se consideró la inclusión de Tiger en el estándar OpenPGP , pero se descartó en favor de RIPEMD -160. [ 4 ] [ 5 ]

OID

RFC 2440 se refiere a TIGER como sin OID , mientras que los Estándares de Codificación de GNU enumeran TIGER/192 como con OID , una asignación bajo el subárbol de organización de GNU. [ 6 ] 1.3.6.1.4.1.11591.12.2

En el subárbol IPsec , a HMAC-TIGER se le asigna el OID 1.3.6.1.5.5.8.1.3. [ 7 ]

Aún no se ha anunciado ningún OID para TTH.

Orden de bytes

La especificación de Tiger no define cómo debe imprimirse su salida, sino que solo define que el resultado sean tres enteros de 64 bits ordenados. El programa "testtiger" en la página web del autor tenía como objetivo facilitar la comprobación del código fuente de prueba, en lugar de definir un orden de impresión específico. Los protocolos Direct Connect y ADC , así como el programa, tthsumutilizan el orden de bytes little-endian, que también es el preferido por uno de los autores. [ 8 ]

Ejemplos

En el ejemplo siguiente, los hashes Tiger de 192 bits (24 bytes) se representan como 48 dígitos hexadecimales en orden de bytes little-endian . A continuación se muestra una entrada ASCII de 43 bytes y los hashes Tiger correspondientes:

Tigre ("El rápido zorro marrón salta sobre el perro perezoso ") = 6d12a41e72e644f017b6f0e2f7b44c6285f06dd5d2c5b075 Tiger2("El rápido zorro marrón salta sobre el perro perezoso ") = 976abff8062a2e9dcea3a1ace966ed9c19cb85558b4976d8

Incluso un pequeño cambio en el mensaje dará como resultado (con muy alta probabilidad) un hash completamente diferente, por ejemplo, cambiar d por c :

Tigre ("El rápido zorro marrón salta sobre el perezoso c og") = a8f04b0f7201a0d728101c9d26525b31764a3493fcd8458f Tiger2("El rápido zorro marrón salta sobre el perezoso c og") = 09c11330283a27efb51930aa7dc1ec624ff738a8d9bdd3df

El hash de la cadena de longitud cero es:

Tigre("") = 3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3 Tigre2("") = 4441be75f6018773c206c22745374b924aa8313fef919f41

Criptoanálisis

A diferencia de MD5 o SHA-0/1, no se conocen ataques efectivos contra el Tiger de 24 rondas [ 9 ] excepto la colisión pseudo-cercana. [ 10 ] Mientras que MD5 procesa su estado con 64 operaciones simples de 32 bits por bloque de 512 bits y SHA-1 con 80, Tiger actualiza su estado con un total de 144 operaciones de este tipo por bloque de 512 bits, reforzado además por grandes búsquedas de S-box.

John Kelsey y Stefan Lucks han encontrado un ataque de detección de colisiones en Tiger de 16 rondas con una complejidad temporal equivalente a aproximadamente 2 44 invocaciones de la función de compresión y otro ataque que encuentra pseudo-casi colisiones en Tiger de 20 rondas con un trabajo menor que el de 2 48 invocaciones de la función de compresión. [ 9 ] Florian Mendel et al. han mejorado estos ataques al describir un ataque de colisión que abarca 19 rondas de Tiger y un ataque de pseudo-casi colisión de 22 rondas. Estos ataques requieren un esfuerzo de trabajo equivalente a aproximadamente 2 62 y 2 44 evaluaciones de la función de compresión de Tiger, respectivamente. [ 11 ]

Véase también

Referencias

  1. Ross Anderson y Eli Biham (8 de febrero de 1996). "Tiger: una nueva función hash rápida" . Cifrado de software rápido 3. Cambridge . Consultado el 3 de marzo de 2017 .
  2. "Vectores de prueba de Tiger2" . Proyecto NESSIE . 25 de febrero de 2005. Consultado el 3 de marzo de 2017 .
  3. Feit, Harold (2012-02-12). "P2P:Protocol:Specifications:Optional Hashes: TTH Root" . Recuperado el 2017-11-18 .
  4. Callas, Jon (18 de agosto de 2004). "Re: reconsideración de TIGER" . Archivado del original el 14 de julio de 2014.
  5. Pornin, Thomas (25-10-2013). "¿Cómo se utiliza la función hash Tiger con GPG?" .
  6. "Comportamiento del programa para todos los programas: Asignaciones de OID" . GNU . Consultado el 18 de noviembre de 2017 .
  7. "Registro de referencia para OID 1.3.6.1.5.5.8.1.3 – hmacTIGER" . 18 de octubre de 1998. Consultado el 18 de noviembre de 2017 .
  8. "Módulo Digest::Tiger" . CPAN . Consultado el 3 de marzo de 2017 .
  9. 1 2 John Kelsey; Stefan Lucks (2006). "Colisiones y casi colisiones para Tiger de ronda reducida" (PDF) . Cifrado de software rápido 13. Graz . Archivado del original (PDF) el 4 de marzo de 2016.
  10. Mendel, Florian; Vincent, Rijmen. "Criptoanálisis de la función hash Tiger". ASIACRYPT 2007. Springer Berlin/Heidelberg. pp. 536–550 . doi : 10.1007/978-3-540-76900-2_33 . 
  11. Florián Mendel; Bart Preneel; Vicente Rijmen; Hirotaka Yoshida; Dai Watanabe (2006). "Actualización sobre Tiger" (PDF) . Indocripto 7 . Calcuta .
  • La página principal de Tiger