I need to make a Skein hash's, specifically, Skein-1024; however, I only have access currently to Skein-512. Is there any way to utilize a Skein-512 function to get the result of a Skein-1024 hash?

What's the difference between the two?


1 Answer 1


Internally, Skein-1024 uses the Threefish-1024 compression function and is extended to 1024 bits of internal state whereas Skein-512 uses the Threefish-512 compression function. There are a few additional changes but they are very similar (just like SHA-256 and SHA-512 are, for instance).

The tweak handling is, however, the same since all Threefish variants have the same 128-bit tweak size, so if you do have access to the Skein-512 source code, you should be able to modify it so that it calls Threefish-1024, make the necessary length adjustements, and it should work without too much pain.

Other than that, no, there is no parallel between the two functions that will let you compute a Skein-1024 hash from a Skein-512 one. The two Threefish functions have different constants & number of rounds.

Why do you need Skein-1024, by the way? Unless you really need the 1024-bit internal state, which is unlikely and overkill, you can just use the "arbitrary output length" feature of all Skein variants, which allows you to produce a digest of arbitrary length. It is described in the Skein paper and is hopefully available within your Skein implementation. If it isn't, the implementation is incomplete.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.