Camellia (Algorithmus)

Camellia
EntwicklerMitsubishi, NTT
Veröffentlicht2000
Abgeleitet vonMISTY1, E2
ZertifizierungNESSIE, CRYPTREC
Schlüssellänge128, 192 oder 256 Bit
Blockgröße128 Bit
StrukturFeistelchiffre
Runden18, 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

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 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]

Sicherheit

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

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

  • Die Camellia (gleich bei AES) S-Boxen können durch ein System von 23 quadratischen Gleichungen mit 80 Termen definiert werden.[5]
  • Die Key-Schedule kann durch 1120 Gleichungen mit 768 Variablen beschrieben werden, welche 3329 lineare und quadratische Terme verwenden.[4]
  • 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

Mozilla 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.

Leistung

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

Patent

Obschon 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]

  • Homepage von Camellia (englisch)
  • M. Matsui, J. Nakajima, S. Moriai: RFC3713 – A Description of the Camellia Encryption Algorithm. April 2004 (englisch).
  • S. Moriai, A. Kato: RFC3657 – Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS). Januar 2004 (englisch).
  • A. Kato, S. Moriai, M. Kanda: RFC4312 – The Camellia Cipher Algorithm and Its Use With IPsec. Dezember 2005 (englisch).

Einzelnachweise

  1. Announcement of Royalty-free Licenses for Essential Patents of NTT Encryption and Digital Signature Algorithms (Memento desOriginals vom 8. November 2006 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.ntt.co.jp NTT News, 17. April 2001.
  2. a b c M. Matsui, S. Moriai, J. Nakajima: RFC3713 – A Description of the Camellia Encryption Algorithm. (englisch).
  3. News Release 050710. Archiviert vom Original am 19. Juli 2019; abgerufen am 19. März 2024.
  4. a b Alex Biryukov: Block ciphers and systems of quadratic equations. Hrsg.: FSE 2003. Springer-Verlag, S. 274–289.
  5. Nicolas T. Courtois: Cryptanalysis of Block Ciphers with Overdefined Systems of Equations. (PDF) 2002, abgerufen am 13. August 2010 (englisch).
  6. Camellia cipher added to Firefox. Mozilla in Asia, 21. Dezember 2012, archiviert vom Original (nicht mehr online verfügbar) am 21. Dezember 2012; abgerufen am 25. Mai 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blog.mozilla.org
  7. Camellia cipher added to Firefox | Mozilla in Asia. 21. Dezember 2012, archiviert vom Original (nicht mehr online verfügbar) am 21. Dezember 2012; abgerufen am 25. Mai 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blog.mozilla.org
  8. 1037098 - Remove preferences for cipher suites disabled in bug 1036765 (Camellia and some 3DES & DSS cipher suites). Abgerufen am 25. Mai 2020 (englisch).
  9. [Announce] GnuPG 1.4.10 released. Abgerufen am 25. Mai 2020.
  10. VeraCrypt - Free Open source disk encryption with strong security for the Paranoid. Abgerufen am 25. Mai 2020.
  11. News Release 010417.html. Archiviert vom Original am 28. Mai 2020; abgerufen am 19. März 2024.
  12. News Release 061108a. Archiviert vom Original (nicht mehr online verfügbar) am 8. März 2008; abgerufen am 25. Mai 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.ntt.co.jp
  13. Camellia cipher added to Firefox | Mozilla in Asia. 21. Dezember 2012, archiviert vom Original (nicht mehr online verfügbar) am 21. Dezember 2012; abgerufen am 25. Mai 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blog.mozilla.org