Camellia (Algorithmus)
Camellia ist eine symmetrische Blockchiffre, die im Jahr 2000 in Zusammenarbeit von Mitsubishi und NTT entwickelt wurde. Camellia wurde vom europäischen NESSIE-Projekt und dem japanischen CRYPTREC-Projekt als einer ihrer empfohlenen Algorithmen ausgewählt. Camellia hat Ähnlichkeiten mit den Algorithmen MISTY1 und E2, welche früher von diesen Unternehmen entwickelt wurden.
Camellia | |
---|---|
Entwickler | Mitsubishi, NTT |
Veröffentlicht | 2000 |
Abgeleitet von | MISTY1, E2 |
Zertifizierung | NESSIE, CRYPTREC |
Schlüssellänge | 128, 192 oder 256 Bit |
Blockgröße | 128 Bit |
Struktur | Feistelchiffre |
Runden | 18, 24 |
Camellia ist patentiert, wurde aber 2001 von der NTT unter eine Royalty-free License gestellt, die eine Verwendung in Open-Source-Bibliotheken erlaubt.
Camellia verwendet die gleichen Parameter wie der Advanced Encryption Standard: eine Blockgröße von 128 Bit und Schlüssellängen von 128, 192 oder 256 Bit. Es ist eine Feistelchiffre mit SPN-Rundenfunktion. Die Anzahl der Runden ist abhängig von der Schlüssellänge – 18 Runden bei 128 Bit oder 24 Runden bei längeren Schlüsseln. Als nichtlineare Substitutionsschicht dienen vier 8×8-Bit große S-Boxen mit affinen Transformationen und logischem XOR, wobei durch Rotationen um ein Bit aus hervorgehen. Die Permutationsschicht verwendet lediglich lineare Transformationen und ähnelt der P-Funktion von E2. Um bitweise Kryptanalyse zu erschweren, wird zusätzlich alle sechs Runden eine an MISTY angelehnte lineare FL-Funktion auf den linken Halbblock und ihr Inverses FL−1 auf den rechten Halbblock angewandt.