#22 Support for Skein

None
open
nobody
None
5
2015-04-24
2014-06-21
Aaron Toponce
No

Add support for the Skein family of hash functions.

Skein uses the Davies-Meyer construction, which increases the overall variety of hash functions supported by rhash. MD4, MD5, SHA1, and SHA2 all use the Merkle–Damgård construction, whirlpool uses the Miyaguchi-Preneel construction, and SHA3 uses the sponge construction.

Skein supports internal state sizes of 256, 512 and 1024 bits, and arbitrary output sizes. It's one of the fastest modern cryptographic hashes, claiming 6.1 cycles per byte for any output size on an Intel Core 2 Duo in 64-bit mode, was a candidate for the SHA3 NIST competition, and is believed currently to be secure.

See https://en.wikipedia.org/wiki/Skein_(hash_function) for more info.

Discussion

  • Aleksey
    Aleksey
    2014-06-22

    RHash supports another SHA3 candidate algorithm - EDON-R 256/EDON-R 512, whith the speed 2.6 and 4.9 cycles/byte respectively on Core i7 x64 [1].

    Since Skein is not a standart and is slower than EDON-R, I don't see for now a good reason to add it to RHash.

    [1] http://bench.cr.yp.to/results-hash.html

     
  • Aaron Toponce
    Aaron Toponce
    2014-06-23

    EDON-R is also not standardized, and uses the same Merkle–Damgård construction that many of the others use. Because there have been successful breaks on MD4 and MD5, and theoretical attacks on SHA1 and SHA2, there could be a fundamental problem with Merkle–Damgård. If Merkle–Damgård is broken, all cryptographic hashes using it will break.

    Current algorithms that use Merkle–Damgård supported by RHash:

    - md4
    - md5
    - sha1
    - sha224
    - sha256
    - sha384
    - sha512
    - btih
    - tiger
    - aich
    - e2dk
    - edonr256
    - edonr512
    - snefru256
    - snefru512
    

    The 4 SHA3 functions use the sponge construction, and WHIRLPOOL uses Miyaguchi-Preneel, as previously mentioned. I am not familiar with how GOST is constructed.

    IMO, that's too many eggs in one basket. Having cryptographic hashes that support different constructions strengthens the utility.

    Anyway, thanks for your reply.

     
  • Aleksey
    Aleksey
    2014-07-01

    Since our project is open source, I'm open for patches (written under RHash license [1])
    =)

    [1] http://rhash.anz.ru/license.php

     
  • pww 71
    pww 71
    2015-04-24

    sourceforge.net/projects/pwwhashmap/files/