Skein extension module for Python 3.0

Hagen Fürstenau has written an extension module for Python 3.0 which makes our C implementation of Skein available to Python scripts. The package also provides Threefish encryption and decryption functionality.

http://packages.python.org/pyskein/

He has also provided a pure Python implementation, attached here.

Speed improvement for 32-bit mode: 20.1 cpb for Skein-512

Compiling Randall Farmer's SSE2 code using gcc on 64-bit Ubuntu Linux, on an Intel Core 2 Duo CPU, achieved the following results:
== Skein-256: 21.6 clks/byte
== Skein-512: 20.1 clks/byte
== Skein-1024: 25.5 clks/byte
As noted previously, Randall's code actually runs two independent Skein/Threefish blocks in parallel in the SSE2 registers, so this approach could be be used to run Skein-512 at approximately 10 clks/byte in 32-bit mode when using either tree hashing mode or counter mode.

Speed improvement in 32-bit mode: 23cpb

Randall Farmer (whose email address is twotwotwo on gmail), has modified our Skein code to use Intel's SSE2 instructions in 32-bit mode. This got him a speedup to 23cpb. Note that this is applicable to any 32-bit processor that does something equivalent, as well.

He also noted to us that he was not using part of the CPU and in a parallel application like tree hashing, you'd double that speed to 11 to 12cpb, and that if our code used the 64-bit SSE instructions, we could shave off an additional clock-per-byte.

Updated Skein CD

Available on the downloads page, there is a new Skein CD. This is the revised version we'll be sending to NIST.

NIST Round 1 Candidates

Another Classification of SHA-3 Candidates

Ewan Fleischmann, Christian Forler, and Michael Gorski have done a classification of the candidates. Their article is up on the IACR ePrint Archive, amusingly, it is article #511 for the year.

Another Java Implementation.

There is another Java implementation of Skein-512-512 by the H2 Database folks.

5.99 clocks per byte in C++!

I got this report today. The Intel C++ v11 compiler gives better code than Doug's assembler.

An implementation of Skein in Java

Maarten Bodewes has created an implementation of Skein in Java. It matches our test vectors. You can find his page here.

An Engineering Evaluation of SHA-3 candidates

Niels has started a page of SHA-3 engineering comparisons. You can find it on the top menu bar here, as well as from the page http://www.skein-hash.info/sha3-engineering