En criptografía , Camellia es un cifrado de bloque 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 sistema de cifrado ha sido aprobado para su uso por la norma ISO / IEC , la Unión Europea 's NESSIE proyecto y la japonesa CRYPTREC proyecto. El cifrado tiene niveles de seguridad y capacidades de procesamiento comparables al Estándar de cifrado avanzado . [1]
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. Forma parte del protocolo criptográfico de Seguridad de la capa de transporte (TLS) [2] diseñado para proporcionar seguridad de las comunicaciones a través de una red informática como Internet .
El cifrado recibió el nombre de la flor Camellia japonica , conocida por su larga vida y porque el cifrado se desarrolló en Japón.
Diseño [ editar ]
Camellia es un cifrado Feistel con 18 rondas (cuando se usan claves de 128 bits) o 24 rondas (cuando se usan 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 el 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 [ editar ]
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 en las teclas con la tecnología actual. No se conocen ataques exitosos que debiliten el cifrado considerablemente. El sistema de cifrado ha sido aprobado para su uso por la norma ISO / IEC , la Unión Europea 's NESSIE proyecto y la japonesa CRYPTREC proyecto. El cifrado japonés tiene niveles de seguridad y capacidades de procesamiento comparables al cifrado AES / Rijndael . [1]
Camellia es un cifrado de bloques que se puede definir completamente mediante sistemas mínimos de polinomios multivariados : [ vago ] [3]
- Las cajas S Camellia (así como AES ) se pueden describir mediante un sistema de 23 ecuaciones cuadráticas en 80 términos. [4]
- El programa clave se puede describir con 1.120 ecuaciones en 768 variables utilizando 3.328 términos lineales y cuadráticos. [3]
- El cifrado de bloque completo se puede describir mediante 5,104 ecuaciones en 2,816 variables usando 14,592 términos lineales y cuadráticos. [3]
- En total, se requieren 6.224 ecuaciones en 3.584 variables con 17.920 términos lineales y cuadráticos. [3]
- El número de términos gratuitos es 11,696, que es aproximadamente el mismo número que para AES .
Teóricamente, tales propiedades podrían permitir romper Camellia (y AES ) usando un ataque algebraico, como la linealización dispersa extendida , en el futuro, siempre que el ataque sea factible.
Estado de la patente [ editar ]
Aunque Camellia está patentada, está disponible bajo una licencia libre de regalías. [5] Esto ha permitido que el cifrado Camellia forme parte del Proyecto OpenSSL , bajo una licencia de código abierto , desde noviembre de 2006. [6] También le ha permitido formar parte del módulo NSS (Servicios de seguridad de red) de Mozilla . [7]
Adopción [ editar ]
El soporte para Camellia se agregó a la versión final de Mozilla Firefox 3 en 2008 [7] (desactivado de manera predeterminada a partir de Firefox 33 en 2014 [8] en el espíritu de la "Propuesta para cambiar los conjuntos de cifrado TLS predeterminados ofrecidos por los navegadores", [9] ] y se ha eliminado de la versión 37 en 2015 [10] ). Pale Moon , una bifurcación de Mozilla / Firefox, continúa ofreciendo Camellia y ha ampliado su soporte para incluir las suites del modo Galois / Counter (GCM) con el cifrado, [11] pero ha eliminado los modos GCM nuevamente con la versión 27.2.0, citando La aparente falta de interés en ellos. [12]
Más adelante en 2008, el equipo de ingeniería de versiones de FreeBSD anunció que el cifrado también se había incluido en FreeBSD 6.4-RELEASE. Además, el soporte para el cifrado Camellia fue agregado a la clase de almacenamiento de cifrado de disco geli de FreeBSD por Yoshisato Yanagisawa.
VeraCrypt (una bifurcación de TrueCrypt ) incluyó a Camellia como uno de sus algoritmos de cifrado compatibles. [14]
Además, varias bibliotecas de seguridad populares , como Crypto ++ , GnuTLS , mbed TLS y OpenSSL también incluyen soporte para Camellia.
El 26 de marzo de 2013, se anunció que Camellia había sido seleccionada nuevamente para su adopción en la nueva Lista de cifrado recomendada del gobierno electrónico de Japón como el único algoritmo de cifrado de cifrado de bloque 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 la facilidad de adquisición y en las características de seguridad y rendimiento comparables a las del Estándar de cifrado avanzado (AES). Camellia permanece intacta en su implementación completa. [15] Existe un ataque diferencial imposible en Camellia de 12 asaltos sin capas FL / FL −1 . [dieciséis]
Rendimiento [ editar ]
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 Camellia utilizando conjuntos de instrucciones de CPU diseñados para AES, como x86 AES-NI . [17]
Estandarización [ editar ]
Camellia ha sido certificada como un cifrado estándar por varias organizaciones de estandarización: [18]
- CRYPTREC
- NESSIE
- IETF
- Algoritmo
- RFC 3713 : una descripción del algoritmo de cifrado Camellia
- Modo de cifrado de bloque
- RFC 5528 : modo de contador de camelia y contador de camelia con algoritmos de 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 de recursos uniformes (URI) de seguridad XML adicionales
- TLS / SSL
- IPsec
- Kerberos
- RFC 6803 : Cifrado Camellia para Kerberos 5
- OpenPGP
- RFC 5581 : El cifrado de camelia 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)
- PSKC
- RFC 6030 : Contenedor de clave simétrica portátil (PSKC)
- Red inteligente
- RFC 6272 : Protocolos de Internet para la red inteligente
- Algoritmo
- ISO / IEC
- ISO / CEI 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
- Cifrado aprobado en el PKCS # 11
- Foro de TV en cualquier momento
- Cifrado aprobado en la información de protección y gestión de derechos de TV en cualquier momento para aplicaciones de difusión
- Cifrado aprobado en la protección de entrega de metadatos bidireccional
Capstone es un proyecto a largo plazo del gobierno de los Estados Unidos para desarrollar estándares de criptografía para uso público y gubernamental. Capstone fue autorizado por la Ley de Seguridad Informática de 1987 , [1] impulsada por el NIST y la NSA ; El proyecto comenzó en 1993. [2]
La iniciativa involucró cuatro algoritmos estándar: un algoritmo de cifrado de datos llamado Skipjack , junto con el chip Clipper que incluía el algoritmo Skipjack, un algoritmo de firma digital, DSA , una función hash, SHA-1 y un protocolo de intercambio de claves . [3] La primera implementación de Capstone fue en la tarjeta Fortezza PCMCIA . Todos los componentes de Capstone fueron diseñados para proporcionar seguridad de 80 bits. [1]
La iniciativa encontró una resistencia masiva de la comunidad criptográfica, y finalmente el gobierno de los EE. UU. Abandonó el esfuerzo. Las principales razones de esta resistencia fueron las preocupaciones sobre el diseño de Skipjack, que se clasificó , y el uso de la custodia de claves en el chip Clipper.
El catálogo de tarjetas , o "catálogo de características", en criptografía , fue un sistema diseñado por el matemático-criptólogo de la Oficina de cifrado polaco Marian Rejewski , y se completó por primera vez alrededor de 1935 o 1936, para facilitar el descifrado de los cifrados alemanes Enigma . [1]
Historia [ editar ]
El Buró de cifrado polaco utilizó la teoría de las permutaciones para comenzar a romper el cifrado Enigma a fines de 1932. El Buró reconoció que las permutaciones de doble clave (ver Parrilla (criptología) ) de la máquina Enigma formaron ciclos, y esos ciclos podrían usarse para romper el cifrado . Con claves de cifrado alemanas proporcionadas por un espía francés, la Oficina pudo realizar ingeniería inversa del Enigma y comenzar a leer mensajes alemanes. En ese momento, los alemanes usaban solo 6 steckers , y el método de parrilla polaca era factible. El 1 de agosto de 1936, los alemanes comenzaron a usar 8 steckers , y ese cambio hizo que el método de la parrilla fuera menos factible. La Oficina necesitaba un método mejorado para romper la cifra alemana.
Aunque los steckers cambiarían qué letras estaban en un ciclo de doble clave, los steckers no cambiarían el número de ciclos o la duración de esos ciclos. Steckers podría ser ignorado. Haciendo caso omiso de las entregas de teclas intermedias, la máquina Enigma tenía solo 26 3 configuraciones distintas de los tres rotores, y los tres rotores solo podían arreglarse en la máquina 3! = 6 maneras. Eso significaba que solo había 105456 permutaciones de doble clave. La Oficina se propuso determinar y catalogar las características de cada una de esas probables permutaciones. Cada letra de la clave podría ser una de número de partición13 = 101 valores posibles, y las 3 letras de la clave significaban que había 1030301 claves posibles. En promedio, una clave encontraría una configuración de los rotores, pero podría encontrar varias configuraciones posibles.
El criptoanalista polaco podría recopilar suficiente tráfico para determinar todos los ciclos en una clave diaria. Eso usualmente tomó alrededor de 60 mensajes. El resultado podría ser:
Usaría las longitudes de los ciclos (13 2 ; 10 2 -3 2 ; 10 2 -2 2 -1 2 ) para buscar el orden de las ruedas (II I III) y las posiciones iniciales del rotor en el catálogo de tarjetas. Luego usaría un Enigma para calcular los ciclos no encadenados :
Al comparar los ciclos de steck del tráfico alemán y los ciclos de no steck , el criptoanalista puede determinar los steckers . En el ejemplo, la permutación de CF tiene
(e)(z)
y (e)(w)
. Eso requiere que e
sea un stecker ed y un WZ stecker . Los ciclos pueden ser alineados en e
y WZ para determinar otra steckered y ONU steckered letras.(pjxroquctwzsy)(kvgledmanhfib)/(kxtcoigweh)...
(sjxroqtcuzwpy)(kngledamvhifb)/(kxucofgzeh)...
(!_____!_!**!_)(_!__=_!!!_!!_)/(__!__!_*=_)...
Donde
=
se conoce una letra no marcada , *
es una letra marcada conocida , y !
es un ladrón recién descubierto . La repetición produce los steckers AM, FI, NV, PS, TU, WZ.
La preparación del catálogo de tarjetas, utilizando el ciclómetro que Rejewski había inventado alrededor de 1934 o 1935, fue una tarea laboriosa que tomó más de un año. Pero una vez que el catálogo estuvo completo, la obtención de las claves diarias de Enigma fue una cuestión de unos quince minutos. [2] [3]
Cuando los alemanes cambiaron el " reflector " o "tambor de inversión" de la máquina Enigma , el 1 de noviembre de 1937, la Oficina de cifrado se vio obligada a comenzar de nuevo con un nuevo catálogo de tarjetas: "una tarea", escribe Rejewski, que consumió, en cuenta de nuestra mayor experiencia, probablemente algo menos de un año ". [2]
El 15 de septiembre de 1938, los alemanes cambiaron por completo el procedimiento para cifrar las claves de mensaje, haciendo inútil el método del catálogo de tarjetas. Esto estimuló la invención de la bomba criptológica de Rejewski y las " láminas perforadas " de Henryk Zygalski .
No hay comentarios:
Publicar un comentario