Camellia (algorithme)
# Camellia (algorithme)

Camellia est un algorithme de chiffrement symétrique par blocs de 128 bits, conçu pour fonctionner avec des clés de 128, 192 et 256 bits. Tous les six tours, une transformation nommée « FL-function » est appliquée.

Il a été développé conjointement par la Nippon Telegraph and Telephone Corporation et Mitsubishi Electric Corporation en 2000 sur la base de l'algorithme E2 ayant participé au concours AES.

Camellia a été sélectionné et recommandé par le projet NESSIE de l'Union européenne, c'est l'un des standards de chiffrement du gouvernement japonais.

Depuis octobre 2006, le code source de Camellia est librement disponible sous plusieurs licences libres (BSD, GPL, MPL, et licence OpenSSL). Il était auparavant disponible sous une autre licence sans royalties.

Avec une implémentation en C, il est globalement deux fois plus lent que AES mais offre des performances similaires à Blowfish.

## Cryptanalyse

La cryptanalyse publiée initialement par les créateurs de l'algorithme a mis en évidence quelques faiblesses, bien qu'elles ne puissent casser l'algorithme dans son intégralité. D'après des estimations très optimistes, 6 tours de Camellia pourraient être attaqués par une analyse différentielle nécessitant $2^{108}$ textes clairs choisis, et par une analyse linéaire nécessitant $2^{110}$ textes clairs connus. Les 5 premiers tours de l'algorithme peuvent être différenciés d'une permutation aléatoire en utilisant $2^{34}$ textes clairs choisis, et $2^{50}$ textes clairs choisis sur 6 tours. L'attaque peut être étendue à 7 tours en utilisant $2^{68}$ textes clairs choisis, mais cette attaque est opérée sur une version simplifiée de l'algorithme, à laquelle il manque la fonction $FL/FL^{−1}$ utilisée tous les 6 tours de l'algorithme ; la fonction $FL/FL^{−1}$ est donc efficace à empêcher l'extension de ces attaques à plus de 6 tours. À ce jour, il n'existe donc aucune attaque permettant de décrypter des données chiffrées plus rapidement que par une recherche exhaustive.

