stringtranslate.com

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 lograr eficiencia en plataformas de 64 bits . El tamaño de un valor hash Tiger es de 192 bits. Se pueden utilizar versiones truncadas (conocidas como Tiger/128 y Tiger/160) para lograr compatibilidad con protocolos que supongan un tamaño de hash particular. A diferencia de la familia SHA-2 , no se definen valores de inicialización distintivos; 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 de 0x80 como en MD4 , MD5 y SHA , en lugar de con el valor hexadecimal de 0x01 como en el caso de Tiger. Las dos variantes son idénticas en lo demás.

Algoritmo

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

Aunque son rápidos en software, las grandes S-boxes de Tiger (cuatro S-boxes, cada una con 256 entradas de 64 bits que suman un total de 8 KiB ) dificultan las implementaciones en hardware o microcontroladores . [ cita requerida ]

Uso

Tiger se utiliza con frecuencia en forma de árbol hash de Merkle , donde se lo conoce como TTH ( Tiger Tree Hash ). TTH es utilizado por muchos clientes en las redes de intercambio de archivos Direct Connect y Gnutella , y puede incluirse opcionalmente 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 abandonó en favor de RIPEMD -160. [4] [5]

Identificador único

RFC  2440 se refiere a TIGER como si no tuviera OID , mientras que los estándares de codificación GNU indican que TIGER tiene OID 1.3.6.1.4.1.11591.12.2. [6] En el subárbol IPSEC , a HMAC-TIGER se le asigna 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 la forma en que debe imprimirse su salida, sino que solo define que el resultado sea tres enteros ordenados de 64 bits. El programa "testtiger" en la página de inicio del autor fue pensado para permitir una fácil prueba del código fuente de prueba, en lugar de definir un orden de impresión particular. 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 ") =6d12a41e72e644f017b6f0e2f7b44c6285f06dd5d2c5b075Tiger2("El rápido zorro marrón salta sobre el perro perezoso " ) =976abff8062a2e9dcea3a1ace966ed9c19cb85558b4976d8

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

Tigre ("El rápido zorro marrón salta sobre el perezoso engranaje ") =a8f04b0f7201a0d728101c9d26525b31764a3493fcd8458fTiger2("El rápido zorro marrón salta sobre el perezoso engranaje ") =09c11330283a27efb51930aa7dc1ec624ff738a8d9bdd3df

El hash de la cadena de longitud cero es:

Tigre("") =3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3Tigre2("") =4441be75f6018773c206c22745374b924aa8313fef919f41

Criptoanálisis

A diferencia de MD5 o SHA-0/1, no se conocen ataques efectivos en el Tiger completo de 24 rondas [9] excepto por una pseudocolisión 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, reforzadas adicionalmente por grandes búsquedas de S-box.

John Kelsey y Stefan Lucks han descubierto un ataque de búsqueda de colisiones en un 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 pseudocolisiones cercanas en un 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 pseudocolisión cercana 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". Fast Software Encryption 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 (12 de febrero de 2012). "P2P:Protocolo:Especificaciones:Hashes opcionales: TTH Root" . Consultado el 18 de noviembre de 2017 .
  4. ^ Callas, Jon (18 de agosto de 2004). "Re: reconsideración de TIGER". Archivado desde el original el 14 de julio de 2014.
  5. ^ Pornin, Thomas (25 de octubre de 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. ^ de John Kelsey; Stefan Lucks (2006). "Colisiones y casi colisiones para Tiger de ronda reducida" (PDF) . Fast Software Encryption 13. Graz . Archivado desde el original (PDF) el 4 de marzo de 2016.
  10. ^ Mendel, Florian; Vincent, Rijmen. "Criptoanálisis de la función hash de Tiger". ASIACRYPT 2007. Springer Berlin / Heidelberg. págs. 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 .

Enlaces externos