Camellia (Algorithmus)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
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 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.

Design[Bearbeiten | Quelltext bearbeiten]

Camellia 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 8x8-Bit S-Boxen mit affinen Eingabe und Aufgabe Transformationen und logischen Operationen.[3] 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.[4]

Sicherheit[Bearbeiten | Quelltext bearbeiten]

Camellia 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.[5]

Camellia ist eine Blockchiffre, welche vollständig durch Minimalsystemen von multivariaten Polynomen definiert werden kann:[6]

  • Die Camellia (gleich bei AES) S-Boxen können durch ein System von 23 quadratischen Gleichungen mit 80 Termen definiert werden.[7]
  • Die Key-Schedule kann durch 1120 Gleichungen mit 768 Variablen beschrieben werden, welche 3329 lineare und quadratische Terme verwenden.[6]
  • Die ganze Blockchiffre kann durch 5104 Gleichungen mit 2816 Variablen beschrieben werden, welche 14592 lineare und quadratische Terme verwenden.
  • Total sind 6224 Gleichungen mit 3584 Variablen nötig, welche 17920 lineare und quadratische Terme verwenden.
  • Die Nummer von freien Termen ist 11696, welche ungefähr dieselbe Anzahl wie bei AES ist.

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.

Verwendung[Bearbeiten | Quelltext bearbeiten]

Mozilla Firefox 3 implementierte 2008 Camellia.[8] Jedoch wurde die Funktion in Firefox 33 2014 deaktiviert[9] und dann schließlich in der Version 23 2015 entfernt.[10]

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.[11]

VeraCrypt (Ein Derivat von TrueCrypt) fügte Camellia als einen ihrer Verschlüsselungsalgorithmen hinzu.[12]

Viele größere Bibliotheken mit dem Fokus auf Sicherheit wie Crypto++, GNUTLS, mbedTLS und OpenSSL unterstützen Camellia auch.

Leistung[Bearbeiten | Quelltext bearbeiten]

Die 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 kann, dazu gehört auch AES-NI.

Patent[Bearbeiten | Quelltext bearbeiten]

Obschon Camellia patentiert wurde, ist der Algorithmus lizenzfrei erhältlich.[13] Dadurch konnte Camellia ab November 2006[14] Teil des OpenSSL Projekts unter einer Open-Source-Lizenz werden. Das Mozilla NSS (Network Security Services) Modul nahm die Chiffre ebenfalls auf.[15]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. NTT News vom 17. April 2001: Announcement of Royalty-free Licenses for Essential Patents of NTT Encryption and Digital Signature Algorithms
  2. M. Matsui, S. Moriai, J. Nakajima: A Description of the Camellia Encryption Algorithm. Abgerufen am 25. Mai 2020 (englisch).
  3. M. Matsui, S. Moriai, J. Nakajima: A Description of the Camellia Encryption Algorithm. Abgerufen am 25. Mai 2020 (englisch).
  4. M. Matsui, S. Moriai, J. Nakajima: A Description of the Camellia Encryption Algorithm. Abgerufen am 25. Mai 2020 (englisch).
  5. News Release 050710. Abgerufen am 25. Mai 2020.
  6. a b Alex Biryukov: Block ciphers and systems of quadratic equations. Hrsg.: FSE 2003. Springer-Verlag, S. 274–289.
  7. Nicolas T. Courtois: Cryptanalysis of Block Ciphers with Overdefined Systems of Equations. 2002, abgerufen am 13. August 2010 (englisch).
  8. Camellia cipher added to Firefox | Mozilla in Asia. 21. Dezember 2012, abgerufen am 25. Mai 2020.
  9. Camellia cipher added to Firefox | Mozilla in Asia. 21. Dezember 2012, abgerufen am 25. Mai 2020.
  10. 1037098 - Remove preferences for cipher suites disabled in bug 1036765 (Camellia and some 3DES & DSS cipher suites). Abgerufen am 25. Mai 2020 (englisch).
  11. [Announce] GnuPG 1.4.10 released. Abgerufen am 25. Mai 2020.
  12. VeraCrypt - Free Open source disk encryption with strong security for the Paranoid. Abgerufen am 25. Mai 2020.
  13. News Release 010417.html. Abgerufen am 25. Mai 2020.
  14. News Release 061108a. Abgerufen am 25. Mai 2020.
  15. Camellia cipher added to Firefox | Mozilla in Asia. 21. Dezember 2012, abgerufen am 25. Mai 2020.