CIPHERUNICORN-A

From Wikipedia, the free encyclopedia

CIPHERUNICORN-A
General
Designers NEC
First published 2000
Derived from CIPHERUNICORN-E
Certification CRYPTREC
Cipher detail
Key sizes 128, 192, or 256 bits
Block sizes 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