Tiger (hash)

From Wikipedia, the free encyclopedia

In cryptography, Tiger is a cryptographic hash function designed by Ross Anderson and Eli Biham in 1995 for efficiency on 64-bit platforms. The size of a Tiger hash value is 192 bits. 128- and 160-bit versions of this algorithm also exist, known as Tiger/128 and Tiger/160 repectively. Both variants return truncated Tiger/192 hash values.

Tiger2 is a variant of Tiger which uses the same message-end padding as MD5 and SHA, rather than the slightly different padding used in MD4. It is otherwise identical. A formal specification of Tiger2 has not yet been released, but test vectors are available.

Contents

[edit] Algorithm

Tiger is designed using the nearly universal Merkle-Damgård paradigm. The compression function uses a combination of operation mixing with XOR and addition/subtraction, rotates, and S-box lookups.[1]

[edit] Usage

Tiger is frequently used in Merkle hash tree form, where it is referred to as TTH (Tiger Tree Hash). TTH is used by many clients on the Direct Connect and Gnutella file sharing networks.

Tiger was considered for inclusion in the OpenPGP standard, but was abandoned in favour of RIPEMD-160.

[edit] Examples

The "testtiger" program at the author's homepage was intended to allow easy testing of the test source code, rather than to define any particular print order. Actually the specification of Tiger do not define the way the output of Tiger is printed, however its testvectors for NESSIE are using the quasi-standard printing method for hashes which is the big endian byte order (this print order is also used by MD5 and SHA1 hash outputs for example, as it allows also humans to read the number from left to right).

Therefore in the example below the 192-bit (24-byte) Tiger hashes are represented as 48-digit hexadecimal numbers in big endian byte order. The following demonstrates a 43-byte ASCII input and the corresponding Tiger hashes:

Tiger("The quick brown fox jumps over the lazy dog") =
6d12a41e72e644f017b6f0e2f7b44c6285f06dd5d2c5b075

Tiger2("The quick brown fox jumps over the lazy dog") =
976abff8062a2e9dcea3a1ace966ed9c19cb85558b4976d8

Even a small change in the message will (with overwhelming probability) result in a completely different hash, e.g. changing d to c:

Tiger("The quick brown fox jumps over the lazy cog") =
a8f04b0f7201a0d728101c9d26525b31764a3493fcd8458f

Tiger2("The quick brown fox jumps over the lazy cog") =
09c11330283a27efb51930aa7dc1ec624ff738a8d9bdd3df

The hash of the zero-length string is:

Tiger("") =
3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3

Tiger2("") =
4441be75f6018773c206c22745374b924aa8313fef919f41

[edit] Cryptanalysis

John Kelsey and Stefan Lucks have found a collision-finding attack on 16-round Tiger with a time complexity equivalent to about 244 compression function invocations and another attack that finds pseudo-near collisions in 20-round Tiger with work less than that of 248 compression function invocations.[2]

[edit] See also

[edit] References

  1. ^ Ross Anderson and Eli Biham, Tiger — A Fast New Hash Function, proceedings of Fast Software Encryption 3, Cambridge, 1996
  2. ^ John Kelsey and Stefan Lucks, Collisions and Near-Collisions for Reduced-Round Tiger, proceedings of Fast Software Encryption 13, Graz, 2006 (PDF)

[edit] External links

Hash algorithms: Gost-Hash | HAS-160 | HAS-V | HAVAL | MDC-2 | MD2 | MD4 | MD5 | N-Hash | RadioGatún | RIPEMD | SHA family | Snefru | Tiger | VEST | WHIRLPOOL | crypt(3) DES
MAC algorithms: DAA | CBC-MAC | HMAC | OMAC/CMAC | PMAC | UMAC | Poly1305-AES | VEST
Authenticated encryption modes: CCM | EAX | GCM | OCB | VEST Attacks: Birthday attack | Collision attack | Preimage attack | Rainbow table | Brute force attack
Standardization: CRYPTREC | NESSIE Misc: Avalanche effect | Hash collision | Hash functions based on block ciphers
Cryptography
v d e
History of cryptography | Cryptanalysis | Cryptography portal | Topics in cryptography
Symmetric-key algorithm | Block cipher | Stream cipher | Public-key cryptography | Cryptographic hash function | Message authentication code | Random numbers
In other languages