1

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?

Paŭlo Ebermann
  • 22,946
  • 7
  • 82
  • 119
Freesnöw
  • 111
  • 2

1 Answers1

3

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.

Thomas
  • 7,568
  • 1
  • 32
  • 45