HC256From CryptoDox, The Online Encyclopedia on Cryptography and Information SecurityHC256 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. FunctionHC256 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 32bit words. For each state update one 32bit word in each table is updated using a nonlinear update function. After 2048 steps all elements of the tables have been update. It generates one 32bit word for each update step using a 32bit to 32bit mapping function similar to the output function of the Blowfish cipher. Finally a linear bitmasking function is applied to generate an output word. It uses the two message schedule functions in the hash function SHA256 internally, but with the tables P and Q as Sboxes. PerformanceThe performance of HC256 is estimated by its author to be about 4 cycles/byte on a Pentium4 processor. However the initialization phase of the cipher includes expanding the 256bit key into the tables P, Q and then running the cipher for 4096 steps. The author of HC256 estimates this process to take around 74,000 cycles. External links
