Camellia (cifrario)
# Camellia (cifrario)

Il Camellia è un cifrario a blocchi che ha ricevuto favorevoli consensi da diverse organizzazioni internazionali, compreso il progetto NESSIE dell'Unione europea, che lo ha incluso nel portafoglio di algoritmi crittografici selezionati, ed il progetto giapponese CRYPTREC, che lo ha segnalato come primitiva crittografica raccomandata.

L'algoritmo è stato sviluppato congiuntamente da Mitsubishi Electric e da NTT nel 2000 riprendendo alcuni principi strutturali di precedenti cifrari a blocchi quali l'E2 ed il MISTY1, sempre sviluppati da queste società.

## Struttura

Il Camellia lavora con blocchi dati lunghi 128 bit e può utilizzare chiavi lunghe 128, 192 o 256 bit (la stessa interfaccia dell'AES). Strutturalmente è un cifrario di Feistel con 18 passaggi se la chiave è lunga 128 bit oppure 24 passaggi se la chiave è lunga 192 o 256 bit. Ogni 6 passaggi viene applicata una funzione di trasformazione logica (o il suo inverso) denominata "funzione FL".

Camellia utilizza delle S-box di 8×8 bit con un trasformazioni affini ed operazioni logiche sia in ingresso che in uscita. Il cifrario usa anche il mascheramento della chiave in ingresso ed in uscita.

La diffusione crittografica è ottenuta mediante una trasformazione lineare basata su una matrice MDS.

## Analisi matematica e sicurezza

Il Camellia è uno dei cifrari che possono essere definiti completamente con sistemi di polinomi multivariati: può essere infatti descritto (così come le S-box dell'AES) con un sistema di 23 equazioni quadratiche con 80 termini.

Il gestore della chiave può essere descritto con 1120 equazioni con 768 variabili utilizzando 3328 termini lineari e quadratici.

In totale sono necessarie 6224 equazioni con 3584 variabili e 17920 termini quadratici e lineari.

Il numero dei termini liberi è di 11696, che è approssimativamente lo stesso numero di quelli dell'AES. Teoricamente queste proprietà potrebbero consentire di violare il Camellia (e l'AES) utilizzando un attacco algebrico, come l'attacco XLS (Extended Sparse Linearisation), ammesso che in un futuro prossimo tale tipologia di attacco divenga attuabile.

## Implementazioni

Il 18 giugno 2008 è stato introdotto nel nuovo Mozilla Firefox 3 il supporto al cifrario Camellia. Tuttavia il supporto a Camellia è stato rimosso da Firefox nel 2015 a partire dalla versione 37 del browser.

Yoshisato Yanagisawa ha aggiunto il supporto all'algoritmo nel software per la cifratura dei dischi rigidi GELI del sistema operativo FreeBSD 7.0.

## Situazione brevettuale

Nonostante il cifrario sia brevettato è disponibile con una licenza libera da royalty: questo ha permesso al Camellia di entrare a far parte del progetto OpenSSL con una licenza di tipo open source l'8 novembre 2006.

