Cheetah

From CryptoLUX
Jump to: navigation, search

Cheetah is the hash function designed for the SHA-3 competition. Its name hints to its fast speed. Cheetah is the fastest among the AES-based hash functions.

Cheetah-run.jpg

Design

Cheetah is based on AES, an elegant and widely used block cipher. However AES as it is can not be used as a compression function due to its small 128-bit block size and due to its relatively weak key-schedule, which was designed primarily for encryption.

Thus in Cheetah the AES round function was adapted in order to get a longer hash digest (256 or 512-bit) and a new message schedule was designed.

The specification of Cheetah (PDF).

Slides for the First SHA-3 conference (PDF).

Implementation

All the software tricks designed for speeding up AES can be used for Cheetah. Cheetah-256 has the speed equivalent to fastest AES-128 implementations, running at 9.3 cycles per byte and 15 cycles per byte on the 64-bit and the 32-bit reference platform respectively. Further optimizations might be possible.

Cheetah-512 runs at 13.6 cycles per byte and 15 cycles per byte on the 64-bit and the 32-bit, respectively.

Reference implementation .

32-bit optimized implementation (ZIP).

64-bit optimized implementation (ZIP).

Reference implementation with corrected bug (gz).

32-bit optimized implementation with corrected bug (gz).

64-bit optimized implementation with corrected bug (gz).

Test vectors of the corrected bug implementation (gz) 224, 256, 384, 512.