From Wikipedia, the free encyclopedia
First published1998
CertificationCRYPTREC (Candidate)
Cipher detail
Key sizes128 bits
Block sizes64 bits
StructureFeistel network

In cryptography, CIPHERUNICORN-E is a block cipher created by NEC in 1998. It was among the cryptographic techniques recommended for Japanese government use by CRYPTREC in 2003. However, it has been dropped to "candidate" level by the CRYPTREC revision of 2013.

The algorithm has a 16-round modified Feistel network structure, with an additional key-dependent mixing function after every 2 rounds. The block size is 64 bits, and the key size 128 bits. The round function is fairly complicated, split into two nearly parallel computations.

The first part (called the main stream by the designers) consists of XORs and S-box lookups, with a few choices influenced by the second part. This second function (called temporary key generation) uses more XORs and two operations which are equivalent to modular multiplications. Subkeys are added at various stages of both parts of the round function. There are 4 S-boxes in all, each with 8-bit inputs and outputs.

In 2000, NEC used the same high-level structure, with more elaborate components, to design the CIPHERUNICORN-A cipher.

CIPHERUNICORN-E's key schedule uses a nested Feistel network, based on some of the same building blocks as the cipher itself.

The complexity of CIPHERUNICORN-E's round function has made it difficult to analyze. Some limited analysis has been done on simplified variants, showing that they are likely resistant to both differential and linear cryptanalysis.


  • ISO/IEC9979-0019 Register Entry (PDF), registered 6 July 1998 (includes sample implementation source code)
  • Matt Robshaw (14 December 2001). "A Cryptographic Review of CIPHERUNICORN-E" (PDF). Retrieved 21 January 2007.
  • David Wagner (17 December 2001). "An Evaluation of the Security of CIPHERUNICORN-E Against Certain Attacks" (PDF). Retrieved 21 January 2007.