Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Skein hashes #83

Closed
wants to merge 1 commit into from
Closed

Conversation

DonaldTsang
Copy link

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

@whyrusleeping
Copy link
Member

@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 whyrusleeping requested a review from Kubuxu May 22, 2017 19:44
@DonaldTsang
Copy link
Author

@whyrusleeping The hash runs fast, and has good reputation because it is made by Bruce Schneier, who also made Yarrow PRNG and Twofish cipher.

Copy link
Member

@Kubuxu Kubuxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGWM, but I was unable to get go from anyone else.

@DonaldTsang
Copy link
Author

@DonaldTsang
Copy link
Author

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.

@Stebalien
Copy link
Member

Good point. Closed by multiformats/multicodec#56.

@Stebalien Stebalien closed this Dec 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants