Conversation
|
@DonaldTsang I'll get @Kubuxu to review this as hes most familiar with the multihash tables. However, i'd like to note that hash collisions in the 256 bit keyspace are not a concern, I'm more concerned about the sun spontaneously going supernova and wiping out all of humanity. I usually point people to this stack overflow answer when they bring up hash collisions: https://stackoverflow.com/a/4014407/1175869 Now, if sha256 is found to be broken (which nobody even suspects it might be at the moment) then thats a different story, and we can easily migrate hash functions via multihash. |
|
@whyrusleeping The hash runs fast, and has good reputation because it is made by Bruce Schneier, who also made Yarrow PRNG and Twofish cipher. |
Kubuxu
left a comment
There was a problem hiding this comment.
SGWM, but I was unable to get go from anyone else.
|
It is a worse formatted version of multiformats/multicodec#56 |
|
Since skein is included in multicodec, maybe it is time to close this and only leave go-multihash and js-multihash open for the future. |
|
Good point. Closed by multiformats/multicodec#56. |
As addressed in #82
Skein is created by Bruce Schneier, one of the leader in cryptography.
It is as fast as BLAKE, faster than all other SHA3 finalists and SHA2.
Skein hashes can have arbitrary lengths up to 1024 bits.
A longer hash means files are less likely to have hash collisions.
They can also produce shorter hashes for higher speed.
Using b3xx code for 256-XXX, 512-XXX and 1024-XXX skein hashes would be good.
There are only 224 hashes in total (assuming we exclude hashes not multiple of 8).
References:
http://www.skein-hash.info/sites/default/files/skein1.3.pdf
www.skein-hash.info/sites/default/files/NIST_CD_102610.zip
Python implementation: https://pythonhosted.org/pyskein
Java, C and Go: https://github.com/wernerd/Skein3Fish