HC-256

From Wikipedia, the free encyclopedia

HC-256 is a stream cipher designed to provide bulk encryption in software at high speeds while permitting strong confidence in its security. Designed by Hongjun Wu, it is an eSTREAM cipher candidate and has been selected as a Profile 1, Phase 3 Focus candidate. It is not patented.

[edit] Function

HC-256 has a 256 bit key and an initialization vector of 256 bits.

Internally, it consists of two secret tables (P and Q). Each table contains 1024 32-bit words. For each state update one 32-bit word in each table is updated using a non-linear update function. After 2048 steps all elements of the tables have been update.

It generates one 32-bit word for each update step using a 32-bit to 32-bit mapping function similar to the output function of the Blowfish cipher. Finally a linear bit-masking function is applied to generate an output word. It uses the two message schedule functions in the hash function SHA-256 internally, but with the tables P and Q as S-boxes.

[edit] Performance

The performance of HC-256 is estimated by its author to be about 4 cycles/byte on a Pentium 4 processor. However the initialization phase of the cipher includes expanding the 256-bit key into the tables P, Q and then running the cipher for 4096 steps. The author of HC-256 estimates this process to take around 74,000 cycles.

[edit] External links