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 ist patentiert, wurde aber 2001 von der NTT unter eine Royalty-free License gestellt, die eine Verwendung in Open-Source-Bibliotheken erlaubt.[1] 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. DesignCamellia ist eine Feistelchiffre mit entweder 18 Runden (wenn ein 128-Bit Schlüssel verwendet wird) oder 24 Runden (wenn ein 192- oder 256-Bit Schlüssel benutzt wird).[2] Jede sechs Runden wird ein logischer Transformationslayer angewendet: die sogenannte „FL-Funktion“ oder deren Umkehrfunktion. Camellia verwendet vier 8×8-Bit S-Boxen mit affinen Eingabe und Aufgabe Transformationen und logischen Operationen.[2] Die Chiffre verwendet auch bei Eingabe und Ausgabe die sogenannte „Key Whitening“ Technologie, welche die Sicherheit iterierter Blockchiffren erhöht. Der Diffusionslayer verwendet eine lineare Abbildung, welche auf der Matrix der Zweig-Nummer 5 basiert.[2] SicherheitCamellia wird als eine moderne, sichere Chiffre angesehen. Sogar die kleineren Schlüsselgrößen (128-Bit) werden als sicher gegenüber Brute-Force-Angriffen mit heutiger Technologie angesehen. Es gibt keine Berichte von erfolgreichen Angriffen auf die Chiffre. Camellia wurde für die Verwendung zertifiziert von ISO/IEC, dem NESSIE Projekt der EU und dem japanischen CRYPTREC Projekt. Die japanische Chiffre hat Sicherheitslevels und Verarbeitungsmethoden, welche mit der von AES verglichen werden können.[3] Camellia ist eine Blockchiffre, welche vollständig durch Minimalsystemen von multivariaten Polynomen definiert werden kann:[4]
Theoretisch wäre es möglich Camellia (wie auch AES) durch einen algebraischen Angriff zu knacken. Ein XSL-Angriff (eXtended Spare Linearization) wäre auch denkbar. VerwendungMozilla Firefox 3 implementierte 2008 Camellia.[6] Jedoch wurde die Funktion in Firefox 33 2014 deaktiviert[7] und dann schließlich in der Version 23 2015 entfernt.[8] Im Jahr 2008 kündigte das FreeBSD-Team an, die Chiffre in FreeBSD 6.4 aufzunehmen. Auch für die Festplattenverschlüsselung war Camellia verfügbar. Im September 2009 fügte GNU Privacy Guard in der Version 1.4.10 die Unterstützung für Camellia hinzu.[9] VeraCrypt (Ein Derivat von TrueCrypt) fügte Camellia als einen ihrer Verschlüsselungsalgorithmen hinzu.[10] Viele größere Bibliotheken mit dem Fokus auf Sicherheit wie Crypto++, GNUTLS, mbedTLS und OpenSSL unterstützen Camellia auch. LeistungDie S-Boxen, welche von Camellia verwendet werden, zeigen große Ähnlichkeiten zu denen von AES. Dies führt dazu, dass CPU-Instruktionen von AES auch für Camellia angewendet werden können, dazu gehört auch AES-NI. PatentObschon Camellia patentiert wurde, ist der Algorithmus lizenzfrei erhältlich.[11] Dadurch konnte Camellia ab November 2006[12] Teil des OpenSSL Projekts unter einer Open-Source-Lizenz werden. Das Mozilla NSS (Network Security Services) Modul nahm die Chiffre ebenfalls auf.[13] Weblinks
Einzelnachweise
|