CIPHERUNICORN-A
From Wikipedia, the free encyclopedia
Designer(s): | NEC |
---|---|
First published: | 2000 |
Derived from: | CIPHERUNICORN-E |
Certification: | CRYPTREC |
Key size(s): | 128, 192, or 256 bits |
Block size(s): | 128 bits |
Structure: | nested Feistel network |
Rounds: | 16 |
In cryptography, CIPHERUNICORN-A is a block cipher created by NEC in 2000. It is among the cryptographic techniques recommended for Japanese government use by CRYPTREC.
The algorithm uses a 16-round Feistel network structure similar to its predecessor, CIPHERUNICORN-E, but with significant changes. The block size is 128 bits, with key sizes of 128, 192, or 256 bits. The round function is even more complicated than that of CIPHERUNICORN-E, but the extra mixing function between rounds has been removed. The round function is still split into two nearly parallel computations; both of these are Feistel networks themselves. The first part (the main stream) is a 10-round Feistel network, using 4 8×8-bit S-boxes much like the ones from CIPHERUNICORN-E. The last two rounds of the main stream are influenced by the output of the second part (the temporary key generation function). This second, 6-round Feistel network uses modular multiplication, as well as 2 of the S-boxes. In contrast to CIPHERUNICORN-E, subkeys are added in only at the beginning of each main round.
The key schedule of CIPHERUNICORN-A makes repeated use of a function called MT, using modular multiplication and all of the S-boxes. A flaw was discovered in the key schedule, such that certain keys are equivalent, but it is unknown just how much of a weakness this is.
The great complexity of CIPHERUNICORN-A'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.
[edit] References
- Matt Robshaw (2001-12-14). "A Cryptographic Review of CIPHERUNICORN-A" (PDF). Retrieved on 2007-01-21.