CIPHERUNICORN-E
General | |
---|---|
Designers | NEC |
First published | 1998 |
Successors | CIPHERUNICORN-A |
Certification | CRYPTREC (Candidate) |
Cipher detail | |
Key sizes | 128 bits |
Block sizes | 64 bits |
Structure | Feistel network |
Rounds | 16 |
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, has been dropped to "candidate" by CRYPTREC revision in 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.
References
- ISO/IEC9979-0019 Register Entry (PDF), registered 6 July 1998 (includes sample implementation source code)
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
<templatestyles src="Asbox/styles.css"></templatestyles>