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 de Tiger es de 192 bits. Se pueden utilizar versiones truncadas (conocidas como Tiger/128 y Tiger/160) para lograr compatibilidad con protocolos que asumen 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 completo de Tiger/192.

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. Por lo demás, las dos variantes son idénticas.

Algoritmo

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

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

Uso

Tiger se utiliza con frecuencia en forma de árbol de hash Merkle , donde se le conoce como TTH ( Tiger Tree Hash ). Muchos clientes utilizan TTH en las redes de intercambio de archivos Direct Connect y Gnutella y, opcionalmente, se puede incluir en el metarchivo 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]

OID

RFC  2440 se refiere a TIGER como si no tuviera OID , mientras que los estándares de codificación GNU enumeran a TIGER como si tuviera 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 se debe imprimir su salida, solo define el resultado como tres enteros ordenados de 64 bits. El programa "testtiger" en la página de inicio del autor tenía como objetivo permitir una prueba sencilla del código fuente de prueba, en lugar de definir un orden de impresión en 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 siguiente ejemplo, 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 veloz zorro marrón salta sobre el perro perezoso " ) =6d12a41e72e644f017b6f0e2f7b44c6285f06dd5d2c5b075Tiger2("El veloz 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, cambiando 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 del MD5 o SHA-0/1, no se conocen ataques efectivos contra el Tiger de 24 balas [9], excepto por una pseudo-casi colisión. [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 adicionalmente por grandes S- búsquedas de cajas.

John Kelsey y Stefan Lucks han encontrado un ataque de búsqueda de colisiones en Tiger de 16 rondas con una complejidad temporal equivalente a aproximadamente 244 invocaciones de 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 funciones de compresión. [9] Florián Mendel et al. han mejorado estos ataques describiendo 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 Tiger, respectivamente. [11]

Ver 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 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: raíz TTH" . 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". 1998-10-18 . Consultado el 18 de noviembre de 2017 .
  8. ^ "Resumen :: Módulo Tiger". CPAN . Consultado el 3 de marzo de 2017 .
  9. ^ ab John Kelsey; Stefan suerte (2006). "Colisiones y cuasicolisiones para tigres de ronda reducida" (PDF) . Cifrado de software rápido 13 . Graz . Archivado desde el original (PDF) el 4 de marzo de 2016.
  10. ^ Mendel, Florián; Vicente, Rijmen. "Criptoanálisis de la función Tiger Hash". ASIACRIPT 2007 . Springer Berlín/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