Skein (hash function)

From Wikipedia, the free encyclopedia
  (Redirected from Skein Hash Function)
Jump to: navigation, search
Skein
Skein permutation
General
Designers Bruce Schneier, Niels Ferguson
Derived from Threefish
Certification SHA-3 finalist
Detail
Digest sizes arbitrary
Rounds 72 (256 & 512 block size), 80 (1024 block size)
Speed 6.1 cpb on Core 2.[1]

Skein is a cryptographic hash function and one out of five finalists in the NIST hash function competition to design what will become the SHA-3 standard, the intended successor of SHA-1 and SHA-2. According to Stefan Lucks, the name Skein refers to how the Skein function intertwines the input, similar to a coil of yarn, which is called a skein.

Skein was created by Bruce Schneier, Stefan Lucks, Niels Ferguson, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas and Jesse Walker. Skein is based on the Threefish tweakable block cipher. Skein supports internal state sizes of 256, 512 and 1024 bits, and arbitrary output sizes.[2] The authors claim 6.1 cycles per byte for any output size on an Intel Core 2 Duo in 64-bit mode.[3]

Skein's nonlinearity comes entirely from the combination of addition operations and exclusive-ORs; it does not use S-boxes. The function is optimized for 64-bit processors, and the Skein paper defines optional features such as randomized hashing, parallelizable tree hashing, a stream cipher, personalization, and a key derivation function.

Contents

[edit] Cryptanalysis

In October 2010, an attack that combines rotational cryptanalysis with the rebound attack was published. The attack finds rotational collisions for 53 of 72 rounds in Skein-256, and 57 of 72 rounds in Skein-512. It also affects the Threefish cipher.[4] This is a follow-up to the earlier attack published in February, which breaks 39 and 42 rounds respectively.[5]

The Skein team tweaked the key schedule constant for round 3 of the NIST hash function competition, to make this attack less effective, even though they believe the hash would be secure even without these tweaks.[1]

[edit] References

[edit] External links

[edit] Implementations

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages