CIPHERUNICORN-E
# CIPHERUNICORN-E

In crittografia il CIPHERUNICORN-E è un cifrario a blocchi sviluppato da NEC nel 1998. È tra le tecniche crittografiche raccomandate dal CRYPTREC per l'utilizzo da parte del Governo Giapponese. Nel 2000 NEC ha utilizzato la stessa struttura ad alto livello del cifrario per realizzare il suo successore, il CIPHERUNICORN-A.

## Struttura

L'algoritmo è basato su una rete di Feistel modificata con 16 passaggi e su una funzione aggiuntiva di mescolamento dipendente dalla chiave, eseguita ogni 2 passaggi. Il blocco dati è di 64 bit mentre la chiave è lunga 128 bit.

La funzione di Feistel, cuore dell'algoritmo e costituente i singoli passaggi, è abbastanza complicata e divisa in due flussi computazionali paralleli. Il primo, chiamato dagli sviluppatori flusso primario, consiste di operazioni di XOR e sostituzioni tramite S-box (in numero di 4, ognuna con 8 bit in ingresso ed in uscita), con alcuni passaggi influenzati dal secondo flusso. Quest'ultimo, chiamato generazione della chiave temporanea, utilizza più XOR e 2 operazioni che sono equivalenti alla moltiplicazione modulare. Le sotto-chiavi sono aggiunte in vari momenti di entrambi i flussi della funzione.

Il gestore della chiave del CIPHERUNICORN-E utilizza una rete di Feistel nidificata, basata su alcuni dei blocchi costruttivi dello stesso cifrario.

## Sicurezza

La complessità della funzione di ciclo del CIPHERUNICORN-E ha reso il cifrario difficile da analizzare: sono state realizzate solo poche analisi su versioni semplificate del cifrario che hanno mostrato come la sua struttura resiste bene sia alla crittanalisi differenziale che lineare.

