Cifrado de bloques basado en la red Feistel
En criptografía , Camellia es un cifrado de bloques de clave simétrica con un tamaño de bloque de 128 bits y tamaños de clave de 128, 192 y 256 bits. Fue desarrollado conjuntamente por Mitsubishi Electric y NTT de Japón . El cifrado ha sido aprobado para su uso por la ISO/IEC , el proyecto NESSIE de la Unión Europea y el proyecto japonés CRYPTREC . El cifrado tiene niveles de seguridad y capacidades de procesamiento comparables al Estándar de cifrado avanzado . [3]
El cifrado fue diseñado para ser adecuado tanto para implementaciones de software como de hardware, desde tarjetas inteligentes de bajo costo hasta sistemas de red de alta velocidad. Es parte del protocolo criptográfico Transport Layer Security (TLS) [4] diseñado para brindar seguridad en las comunicaciones a través de una red informática como Internet .
El nombre del código proviene de la flor Camellia japonica , conocida por su larga vida, y también porque el código fue desarrollado en Japón.
Diseño
Camellia es un cifrado de Feistel con 18 rondas (cuando se utilizan claves de 128 bits) o 24 rondas (cuando se utilizan claves de 192 o 256 bits). Cada seis rondas, se aplica una capa de transformación lógica: la llamada "función FL" o su inversa. Camellia utiliza cuatro cajas S de 8×8 bits con transformaciones afines de entrada y salida y operaciones lógicas. El cifrado también utiliza blanqueamiento de claves de entrada y salida . La capa de difusión utiliza una transformación lineal basada en una matriz con un número de ramificación de 5. [ cita requerida ]
Análisis de seguridad
Camellia se considera un cifrado moderno y seguro. Incluso utilizando la opción de tamaño de clave más pequeño (128 bits), se considera inviable romperlo mediante un ataque de fuerza bruta a las claves con la tecnología actual. No se conocen ataques exitosos que debiliten considerablemente el cifrado. El cifrado ha sido aprobado para su uso por la ISO/IEC , el proyecto NESSIE de la Unión Europea y el proyecto japonés CRYPTREC . El cifrado japonés tiene niveles de seguridad y capacidades de procesamiento comparables al cifrado AES/Rijndael . [3]
Camellia es un cifrado de bloques que puede definirse completamente mediante sistemas mínimos de polinomios multivariados : [ vago ] [5]
- Las cajas S de Camellia (así como de AES ) se pueden describir mediante un sistema de 23 ecuaciones cuadráticas en 80 términos. [6]
- El programa clave se puede describir mediante 1.120 ecuaciones en 768 variables utilizando 3.328 términos lineales y cuadráticos. [5]
- El cifrado de bloque completo se puede describir mediante 5.104 ecuaciones en 2.816 variables utilizando 14.592 términos lineales y cuadráticos. [5]
- En total, se requieren 6.224 ecuaciones en 3.584 variables utilizando 17.920 términos lineales y cuadráticos. [5]
- El número de términos gratuitos es 11.696, que es aproximadamente el mismo número que para AES .
En teoría, tales propiedades podrían hacer posible romper Camellia (y AES ) usando un ataque algebraico, como la linealización dispersa extendida , en el futuro, siempre que el ataque se vuelva factible.
Estado de la patente
Aunque Camellia está patentado, está disponible bajo una licencia libre de regalías. [7] Esto ha permitido que el cifrado Camellia se convierta en parte del Proyecto OpenSSL , bajo una licencia de código abierto , desde noviembre de 2006. [8] También le ha permitido convertirse en parte del módulo NSS (Network Security Services) de Mozilla. [9]
Adopción
El soporte para Camellia se agregó a la versión final de Mozilla Firefox 3 en 2008 [9] (deshabilitado de forma predeterminada a partir de Firefox 33 en 2014 [10] en el espíritu de la "Propuesta para cambiar los conjuntos de cifrados TLS predeterminados ofrecidos por los navegadores", [11] y se eliminó de la versión 37 en 2015 [12] ). Pale Moon , una bifurcación de Mozilla/Firefox, continúa ofreciendo Camellia y ha extendido su soporte para incluir conjuntos de modos Galois/Counter (GCM) con el cifrado, [13] pero ha eliminado los modos GCM nuevamente con la versión 27.2.0, citando la aparente falta de interés en ellos.
Más tarde, en 2008, el equipo de ingeniería de versiones de FreeBSD anunció que el cifrado también se había incluido en la versión 6.4 de FreeBSD . Además, Yoshisato Yanagisawa agregó compatibilidad con el cifrado Camellia a la clase de almacenamiento de cifrado de disco geli de FreeBSD. [14]
En septiembre de 2009, GNU Privacy Guard agregó soporte para Camellia en la versión 1.4.10. [15]
VeraCrypt (una bifurcación de TrueCrypt ) incluyó a Camellia como uno de sus algoritmos de cifrado compatibles. [16]
Además, varias bibliotecas de seguridad populares , como Crypto++ , GnuTLS , mbed TLS y OpenSSL también incluyen soporte para Camellia.
Thales y Bloombase admiten el cifrado Camellia con sus ofertas de criptografía de datos. [17]
El 26 de marzo de 2013, se anunció que Camellia había sido seleccionado nuevamente para su adopción en la nueva Lista de Cifrados Recomendados para el Gobierno Electrónico de Japón como el único algoritmo de cifrado de bloques de 128 bits desarrollado en Japón. Esto coincide con la actualización de la lista CRYPTREC por primera vez en 10 años. La selección se basó en la alta reputación de Camellia por su facilidad de adquisición y sus características de seguridad y rendimiento comparables a las del Estándar de Cifrado Avanzado (AES). Camellia sigue intacta en su implementación completa. [18] Existe un ataque diferencial imposible en Camellia de 12 rondas sin capas FL/FL −1 . [19]
Actuación
Las cajas S utilizadas por Camellia comparten una estructura similar a la caja S de AES. Como resultado, es posible acelerar las implementaciones de software de Camellia utilizando conjuntos de instrucciones de CPU diseñados para AES, como x86 AES-NI o x86 GFNI , mediante isomorfismo afín . [20] [21]
Normalización
Camellia ha sido certificada como cifrado estándar por varias organizaciones de estandarización: [22]
- CRIPTREC
- Nessie
- Federación Internacional de Fútbol Americano (IETF)
- Algoritmo
- RFC 3713: Una descripción del algoritmo de cifrado Camellia
- Modo de cifrado por bloques
- RFC 5528: algoritmos de modo de contador Camellia y contador Camellia con modo CBC-MAC
- S/MIME
- RFC 3657: Uso del algoritmo de cifrado Camellia en la sintaxis de mensajes criptográficos (CMS)
- Cifrado XML
- RFC 4051: Identificadores uniformes de recursos (URI) de seguridad XML adicionales
- Certificación TLS/SSL
- RFC 4132: Incorporación de conjuntos de cifrado Camellia a la seguridad de la capa de transporte (TLS)
- RFC 5932: Conjuntos de cifrado Camellia para TLS
- RFC 6367: Incorporación de los conjuntos de cifrado Camellia a la seguridad de la capa de transporte (TLS)
- IPsec
- RFC 4312: El algoritmo de cifrado Camellia y su uso con IPsec
- RFC 5529: Modos de funcionamiento de Camellia para su uso con IPsec
- Kerberos
- RFC 6803: Cifrado Camellia para Kerberos 5
- OpenPGP
- RFC 5581: El cifrado Camellia en OpenPGP
- RSA-KEM en CMS
- RFC 5990: Uso del algoritmo de transporte de claves RSA-KEM en la sintaxis de mensajes criptográficos (CMS)
- Código de conducta PSK
- RFC 6030: Contenedor de claves simétricas portátil (PSKC)
- Red inteligente
- RFC 6272: Protocolos de Internet para la red inteligente
- Normas ISO/IEC
- ISO/IEC 18033-3:2010 Tecnología de la información—Técnicas de seguridad—Algoritmos de cifrado—Parte 3: Cifrados de bloque
- UIT-T
- Mecanismos y procedimientos de seguridad para NGN (Y.2704)
- Laboratorios RSA
- Foro de TV-Anytime
- Cifrado aprobado en la información de protección y gestión de derechos de TV-Anytime para aplicaciones de transmisión
- Cifrado aprobado en la protección de entrega de metadatos bidireccional
Referencias
- ^ Lee, Seonhee; Hong, Seokhie; Lee, Sangjin; Lim, Jongin; Yoon, Seonhee (2001). "Criptoanálisis diferencial truncado de Camellia". En Kim, Kwangjo (ed.). Seguridad de la información y criptología – ICISC 2001, 4.ª conferencia internacional Seúl, Corea, 6 y 7 de diciembre de 2001, Actas . Notas de clase en informática. Vol. 2288. Springer. págs. 32–38. doi :10.1007/3-540-45861-1_3.
- ^ Céline Blondeau; Seokhie Hong; Sangjin Lee; Jongin Lim; Seonhee Yoon (2015). "Ataque diferencial imposible en Camellia-192 de 13 rondas". Cartas de procesamiento de información . 115 (9): 660–666. doi :10.1016/j.ipl.2015.03.008 . Consultado el 22 de octubre de 2022 .
- ^ ab "Comunicado de prensa 050710: "Camellia", el primer algoritmo de cifrado en bloque de 128 bits de Japón, aprobado como nuevo algoritmo de cifrado estándar en Internet". NTT. 20 de julio de 2005.
- ^ RFC 4132 Incorporación de conjuntos de cifrado Camellia a la seguridad de la capa de transporte (TLS)
- ^ abcd Alex Biryukov; Christophe De Canniere (2003), "Cifrados en bloque y sistemas de ecuaciones cuadráticas", Fast Software Encryption , Lecture Notes in Computer Science, vol. 2887, Springer-Verlag , págs. 274–289, CiteSeerX 10.1.1.95.349 , doi :10.1007/978-3-540-39887-5_21, ISBN 978-3-540-20449-7
- ^ Nicolas T. Courtois; Josef Pieprzyk (2002), Criptoanálisis de cifrados en bloque con sistemas de ecuaciones sobredefinidos (PDF) , Springer-Verlag, pp. 267–287 , consultado el 13 de agosto de 2010
- ^ "Anuncio de licencias libres de regalías para patentes esenciales de algoritmos de cifrado y firma digital de NTT" (Comunicado de prensa). NTT. 17 de abril de 2001.
- ^ "El proyecto OpenSSL de la comunidad de código abierto adopta el cifrado estándar internacional de próxima generación "Camellia" desarrollado en Japón" (Comunicado de prensa). NTT. 2006-11-08.
- ^ ab Kanai, Gen (30 de julio de 2007). "Se agregó el cifrado Camellia a Firefox". Mozilla . Archivado desde el original el 21 de diciembre de 2012.
- ^ "Error 1036765: Deshabilitar conjuntos de cifrado que no están en la propuesta "Conjunto de cifrado del navegador" y que aún están habilitados". Mozilla . Consultado el 9 de enero de 2015 .
- ^ Smith, Brian (8 de agosto de 2013). "Propuesta para cambiar los conjuntos de cifrado TLS predeterminados que ofrecen los navegadores". Briansmith.org . Consultado el 9 de enero de 2015 .
- ^ "Error 1037098: eliminación de preferencias para conjuntos de cifrado deshabilitados en el error 1036765 (Camellia y algunos conjuntos de cifrado 3DES y DSS)". Mozilla . Consultado el 26 de febrero de 2015 .
- ^ Moonchild (26 de enero de 2016). «Notas de la versión Pale Moon 26.0». PaleMoon.org .
- ^ "Manual del administrador del sistema FreeBSD: GELI(8)". FreeBSD.org . 9 de marzo de 2011.
- ^ "Lanzamiento de GnuPG 1.4.10". GnuPG.org . 2 de septiembre de 2009.
- ^ "Camelia". Documentación de VeraCrypt . IDRIX . Consultado el 3 de febrero de 2018 .
- ^ "Información del producto (en el extranjero)".
- ^ "El algoritmo de cifrado Camellia ha sido seleccionado para la nueva lista de cifrados recomendados para el gobierno electrónico". MitsubishiElectric.com . 26 de marzo de 2013.
- ^ Wu, Wen-Ling; Zhang, Wen-Tao; Feng, Deng-Guo (3 de mayo de 2007). "Criptoanálisis diferencial imposible de ARIA y Camellia de ronda reducida". Revista de Ciencias Informáticas y Tecnología . 22 (3): 449–456. doi :10.1007/s11390-007-9056-0. S2CID 855434.
- ^ Kivilinna, Jussi (2013). Cifrados de bloque: Implementaciones rápidas en arquitectura x86-64 (PDF) (M.Sc.). Universidad de Oulu . pp. 33, 42. Consultado el 22 de junio de 2017 .
- ^ Kivilinna, Jussi (1 de mayo de 2022). "Camellia: agrega implementación de GFNI/AVX512 para AMD64". git.gnupg.org Gitweb . Consultado el 6 de julio de 2022 .
- ^ "Información relacionada con la estandarización de las camelias" . Consultado el 30 de noviembre de 2013 .
- General
- Xin-jie Zhao; Tao Wang; Yuan-yuan Zheng (2009). "Ataques de sincronización de caché en el cifrado de bloque Camellia" (PDF) . IACR . págs. 1–18 . Consultado el 14 de enero de 2013 .
- Xin-jie Zhao; Tao Wang (2009). "Un ataque de falla diferencial mejorado en Camellia" (PDF) . IACR. págs. 1–18 . Consultado el 14 de enero de 2013 .
- Xin-jie Zhao; Tao Wang (2010). "Ataques de falla diferencial mejorados en Camellia explorando el ancho y la profundidad de la falla" (PDF) . IACR. págs. 1–16 . Consultado el 14 de enero de 2013 .
Enlaces externos
- Página de inicio de Camellia en inglés de NTT
- Cifrados de 256 bits: implementación de referencia de CAMELLIA y código derivado
- RFC 3657 Uso del algoritmo de cifrado Camellia en la sintaxis de mensajes criptográficos (CMS)
- RFC 3713 Una descripción del algoritmo de cifrado Camellia
- RFC 4051 Identificadores uniformes de recursos (URI) de seguridad XML adicionales
- RFC 4132 Incorporación de conjuntos de cifrado Camellia a la seguridad de la capa de transporte (TLS)
- RFC 4312 El algoritmo de cifrado Camellia y su uso con IPsec
- RFC 5528 Algoritmos de modo Camellia Counter y Camellia Counter con modo CBC-MAC
- RFC 5529 Modos de funcionamiento de Camellia para su uso con IPsec
- RFC 5581 Certificación de Camellia Cipher como estándar IETF para OpenPGP
- Conjuntos de cifrado Camellia RFC 5932 para TLS
- RFC 5990 Uso del algoritmo de transporte de claves RSA-KEM en la sintaxis de mensajes criptográficos (CMS)
- RFC 6030 Contenedor de claves simétricas portátil (PSKC)
- RFC 6272 Protocolos de Internet para la red inteligente
- RFC 6367 Incorporación de los conjuntos de cifrado Camellia a la seguridad de la capa de transporte (TLS)
- ISO/IEC 18033-3:2010 Tecnología de la información—Técnicas de seguridad—Algoritmos de cifrado—Parte 3: Cifrados de bloque