About the Skein Hash Function Family

Skein is a hash function designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker

Submitted to NIST for their cryptographic hash algorithm competition.

Skein for Microchip's MCU PIC18F45K20

Romeo Costanza writes:

From: Romeo Costanzo
Subject: R: Skein code release
Date: July 21, 2011 7:08:31 AM PDT
To: Jon Callas

Hi Jon,

in the attached file you'll find the following:
1. mlskntst.asm is the test driver
2. mlsknalg.asm contains the implementation of skein-512-512 and skein-mac
3. mlskndef.inc contains few definitions and macros
Please put it in your site; the code is free for non-commercial and commercial

The target is the Microchip's MCU PIC18F45K20; target IDE: "MPLAB IDE v 8.73".

SPARKSkein 2011 Contains Updates

The SPARKSkein 2011 release has been updated to meet version 1.3 of the Skein specification. All analyses and proofs have also been regenerated using the recently-released GPL 2011 edition of the SPARK toolset.

The updated release is available here.

Håkon Hitland's ARM implementation of Skein

We would also like to see other implementations, as well.

Date: Tue, 28 Jun 2011 09:22:32 -0500
From: Håkon Hitland
Subject: Skein implementation for ARM


I recently tried to find information on the performance of Skein on ARM platforms, but I could not find any implementation of Skein that were optimised for the ARM architecture.

I have therefore created an implementation of the Skein block function that uses the 128-bit SIMD operations that are available on high-performance ARM processors, like the ones used in smart phones.

On a Cortex-A8 processor I get 15.5 cycles per byte for Skein-512, and around 20.3 cpb for Skein-256 and Skein-1024.

The code is available at https://github.com/unbounded/skein-arm

I would like to know if the Skein team are aware of any comparable implementations.

Best regards,
Håkon Hitland

Werner Dittmann adds Skein One-Pass MAC to SRTP

One of the major features of Skein is that it has a hashing mode that is a one-pass MAC. Normally, HMACs are used with hash functions, but generating an HMAC requires two hashes. In protocols that send a lot of short messages (like VOIP and other media services), a one-pass MAC effectively halves the amount of computes needed. Werner writes of his work:

Date: Wed, 29 Dec 2010 10:56:17 -0600
To: Bruce Schneier
From: Werner Dittmann
Subject: Skein and Threefish - yet another contribution

Dear Bruce, dear Skein team,

Updated version of fhreefish (Atmel AVR) available

Jörg Walter has updated his fhreefish implementation of Skein to the 1.3 spec.

The URL is the same, http://www.syntax-k.de/projekte/fhreefish/.

SHA3 Finalists: BLAKE, Grøstl, JH, Keccak, and Skein

From: "Burr, William E."
Date: December 9, 2010 2:24:30 PM PST
To: Multiple recipients of list
Subject: The SHA-3 Finalists
Reply-To: hash-forum@nist.gov

NIST has selected five SHA-3 candidate algorithms to advance to the third (and final) round:
· Grøstl
· JH
· Keccak
· Skein

New Parallel Skein Implementation

K. Atighehchi and A. Enache and T. Muntean and G. Risterucci

SPARKSkein released

Altran Praxis and AdaCore have released SPARKSkein - a new reference implementation of Skein-512 written and verified using the SPARK language and toolset. In particular, this release includes a complete proof of type-safety for the implementation, test cases for structural coverage, performance, and the reference test vectors from the Skein specification.

Download is available from the downloads page or here directly.

Pyskein updated

Hagen Fürstenau has updated his pyskein implementation of Skein in Python. The new implementation includes the one-pass MAC generation, nonce and personalization inputs, and the Skein-PRNG. All the extra features are done for all three state sizes, Skein-256, Skein-512, and Skein-1024.

The package is available at http://packages.python.org/pyskein/.