CLEFÍA

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 20 de marzo de 2020; las comprobaciones requieren 5 ediciones .
CLEFÍA
Creador Taizo Shirai, Kyouji Shibutani, Tohru Akishita, Shiho Moriai, Tetsu Iwata
Creado 2007 _
publicado 22 de marzo de 2007
Tamaño de clave 128, 192, 256 bits
Tamaño de bloque 128 bits
Número de rondas 18/22/26 (depende del tamaño de la clave)
Tipo de Red Feistel

CLEFIA (del francés  clef "clave") es un cifrado de bloque con un tamaño de bloque de 128 bits, una longitud de clave de 128, 192 o 256 bits y un número de rondas de 18, 22, 26, respectivamente. Este criptoalgoritmo pertenece a los algoritmos "ligeros" y utiliza la red de Feistel como unidad estructural principal. CLEFIA fue desarrollado por Sony Corporation y presentado en 2007. Los autores son Taizo Shirai, Kyoji Shibutani, Toru Akishita, Shiho Moriai y el profesor adjunto de la Universidad de Nagoya, Tetsu Iwata.

El objetivo principal de este cifrado es utilizarlo como una alternativa segura a AES en el campo de la protección de derechos de autor y sistemas DRM , así como su uso en etiquetas RFID y tarjetas inteligentes .

Es uno de los algoritmos criptográficos más eficientes cuando se implementa en hardware: la implementación hardware de CLEFIA puede alcanzar una eficiencia de 400,96 Kbps por celda lógica equivalente del codificador, que es la más alta entre los algoritmos incluidos en los estándares ISO para 2008 [1] .

El algoritmo fue uno de los primeros cifrados en utilizar la tecnología DSM ( Diffusion Switching Mechanism )  para aumentar la protección contra el criptoanálisis lineal y diferencial [2] [3] .

Esquema de cifrado de datos

Notación
Prefijo para cadena binaria en forma hexadecimal
muestra la longitud en bits
Concatenación
Actualizar valor por valor
XOR bit a bit
Multiplicación en

El algoritmo consta de dos componentes: una parte de procesamiento de claves y una parte de procesamiento de datos. El número de rondas de CLEFIA depende de la longitud de la clave y es de 18, 22 o 26 rondas, respectivamente, utilizando 36, 44 y 52 subclaves.

La etapa básica del cifrado de datos en CLEFIA es el uso de una red Feistel generalizada con 4 u 8 ramas, que se utiliza tanto en términos de procesamiento de datos como de procesamiento de claves (Figura 1). En el caso general, si una red Feistel generalizada tiene ramas d y rondas r, se denota como ( esp. red Feistel generalizada ). A continuación, se considera el algoritmo de operación de la red de Feistel en el caso de utilizar 4 ramas y un bloque de datos de 128 bits.  

Además de las 4 entradas de 32 bits ( ) y las 4 salidas de 32 bits ( ), también se utilizan teclas redondas . Su número se debe al hecho de que cada ronda requiere la mitad de llaves que ramas. se generan en la parte de procesamiento de claves [4] .

Cada celda de Feistel también implica dos funciones diferentes: . -funciones pertenecen al tipo de funciones SP y uso:

Funciones F

Las dos funciones y utilizadas incluyen las cajas S no lineales de 8 bits y , discutidas a continuación, y las matrices y de tamaño . Cada función usa estas cajas S en un orden diferente y usa una matriz de distribución diferente para la multiplicación de Galois. Las figuras muestran el contenido de las funciones [4] . -Las funciones se definen de la siguiente manera:


Función Paso 1. Paso 2. Paso 3.


Función Paso 1. Paso 2. Paso 3.

Bloques S

CLEFIA utiliza dos tipos diferentes de S-boxes, cada uno de 8 bits de tamaño. Se generan de forma que se minimice el área que ocupan cuando se implementan en hardware. El primero ( ) consta de cajas S aleatorias de 4 bits. El segundo ( ) utiliza la función inversa en el campo . Las siguientes tablas muestran los valores de salida en hexadecimal para S-boxes. Los 4 bits superiores para una entrada S-box de 8 bits indican una fila y los 4 bits inferiores indican una columna. Por ejemplo, si se ingresa el valor , entonces el bloque genera [3] .

Primer bloque S

creado usando cuatro S-boxes de 4 bits de la siguiente manera:

Algoritmo para obtener datos de salida cuando se usa el bloque Paso 1. Paso 2. Paso 3.

La multiplicación en se realiza en sobre polinomios , que está definido por un polinomio irreducible . En la tabla puede encontrar el S-box recibido correspondiente .

Mesa Mesa
Segundo bloque S

El bloque se define como:

En este caso, la función inversa está en el campo , que viene dada por un polinomio irreducible .  son transformaciones afines sobre , definidas de la siguiente manera:

Aquí se usa that y . Así se obtiene un bloque .

Mesa

Matrices de propagación

Las matrices de propagación se definen de la siguiente manera:

Las multiplicaciones de matrices y vectores se realizan en un campo definido por un polinomio irreducible .

Estructura general de cifrado

Por lo tanto, según la red Feistel generalizada (4 entradas para bloque de datos; 2r entradas para claves redondas; 4 salidas para texto cifrado):

Algoritmo de cifrado y descifrado de datos:

Cifrado ( ) Paso 1. Paso 2. Paso 2.1. Paso 2.2. Paso 3 Descifrado ( ) Paso 1. Paso 2. Paso 2.1. Paso 2.2. Paso 3

El número de rondas es de 18, 22 y 26 para claves de 128 bits, 192 bits y 256 bits, respectivamente. El total depende de la longitud de la clave, por lo que la parte de procesamiento de datos requiere 36, 44 y 52 claves redondas para claves de 128 bits, 192 bits y 256 bits, respectivamente.

resultado de también sujeto a blanqueamiento clave

Uso de blanqueamiento clave

La parte de procesamiento de datos de CLEFIA, que consiste en cifrado y descifrado, incluye procedimientos XOR entre el texto y claves de blanqueamiento al principio y al final del algoritmo.

Por lo tanto,  sean el texto sin formato y el texto cifrado, y sean  las partes de texto sin formato y texto cifrado, donde y , y sean las  claves de blanqueamiento y  sean las claves redondas proporcionadas por la parte de procesamiento de claves. Entonces, el algoritmo de cifrado que utiliza el blanqueamiento de claves es:

Función de cifrado Paso 1. Paso 2. Paso 3. Función de descifrado Paso 1. Paso 2. Paso 3.

Algoritmo de procesamiento de claves

La parte de procesamiento de claves del cifrado CLEFIA admite claves de 128, 192 y 256 bits y da como resultado claves blanqueadoras y claves redondas para la parte de procesamiento de datos. Sea la clave y  la clave intermedia (obtenida utilizando la parte de procesamiento de datos reducida), entonces la parte de procesamiento de la clave consta de tres etapas:

  1. Generación de .
  2. Generación de .
  3. Generación de y .

Para generar desde , la parte de procesamiento de claves para una clave de 128 bits utiliza 128 bits (4 entradas de 32 bits), mientras que para claves de 192/256 bits, se utilizan 256 bits (8 entradas de 32 bits). La siguiente es una descripción del algoritmo en el caso de una clave de 128 bits.

Función de intercambio de bits

Este algoritmo utiliza la función de intercambio de bits DoubleSwap (símbolo: ):

Además , denota un corte de cadena de bits desde el -ésimo bit hasta el -ésimo bit desde .

Generación constante

El esquema requiere una cantidad de (si ) claves redondas como entrada , y cuando este esquema se aplica en la parte de procesamiento de claves, el cifrado CLEFIA utiliza constantes generadas previamente como claves redondas. Además, se necesitan constantes adicionales en la segunda etapa, al generar y , y su número es igual (pero en este caso, las constantes y de la parte de procesamiento de datos).

Estas constantes de 32 bits se denotan como , donde  es el número de la constante,  es el número de bits utilizados para la clave (puede ser 128, 196, 256). Entonces el número de constantes será 60, 84, 92 para claves de 128, 192, 256 bits respectivamente.

Sea y . Luego el algoritmo para la generación (en la tabla, el número de iteraciones y valores iniciales ):

Paso 1. Paso 2. Paso 2.1. Paso 2.2. Paso 2.3.

Donde  - negación lógica,  - desplazamiento cíclico a la izquierda por -bit; y la multiplicación ocurre en un campo y un polinomio definitivamente irreducible .

Procesamiento de claves en el caso de una clave de 128 bits

128-разрядный промежуточный ключ генерируется путём применения , который принимает на вход двадцать четыре 32-разрядные константы в качестве раундовых ключей и в качестве данных для шифрования. Затем и используются для генерации и в следующих шагах:

Generación de : Paso 1. Generación de : Paso 2 Generación desde y : Paso 3. Paso 3.1. Paso 3.2. Paso 3.3. Paso 3.4.

Características del cifrado

CLEFIA se puede implementar de manera efectiva tanto en hardware como en software. La tabla muestra las principales ventajas de las tecnologías utilizadas en este cifrado [3] .

Consideraciones de diseño para una implementación efectiva
  • - funciones de pequeño tamaño (entrada/salida de 32 bits)
  • No hay necesidad de invertibilidad de funciones
Funciones de tipo SP
  • Posibilidad de implementación tabular rápida en software
DSM
  • Reducir el número de rondas
S-bloques
  • Huella muy pequeña en hardware
matrices
  • Uso de elementos con solo bajo peso Hamming
Parte clave de procesamiento
  • Compartir una estructura con una parte de procesamiento de datos
  • Requiere solo un registro de 128 bits para una clave de 128 bits
  • Pequeña área de la función DoubleSwap

Las ventajas y características del algoritmo CLEFIA son:

  • red Feistel generalizada ;
  • DSM ( Mecanismo de conmutación de difusión )  ;
  • Dos cajas S.

Características de implementación de GFN

CLEFIA utiliza una estructura Feistel generalizada de 4 ramas, que se considera una extensión de la estructura tradicional de Feistel de 2 ramas. Hay muchos tipos de estructuras de Feistel generalizadas. La estructura del segundo tipo tiene dos funciones F en una ronda para cuatro líneas de datos.

Una estructura tipo 2 tiene las siguientes características:

  • -características menos que la estructura tradicional de Feistel;
  • múltiples funciones se pueden procesar simultáneamente;
  • generalmente requiere más rondas que la estructura tradicional de Feistel.

La primera característica es una gran ventaja para las implementaciones de software y hardware; y la segunda característica es adecuada para una implementación eficiente, especialmente en hardware. Pero al mismo tiempo, el número de rondas aumenta notablemente debido a la tercera característica. Sin embargo, las ventajas del segundo tipo de estructura superan las desventajas de este diseño de cifrado de bloques, ya que se utiliza una nueva técnica de programación que utiliza DSM y dos tipos de S-boxes, lo que reduce efectivamente el número de rondas.

Uso del mecanismo de conmutación de difusión

CLEFIA utiliza dos matrices de propagación diferentes para mejorar la resistencia a ataques diferenciales y ataques lineales utilizando el mecanismo DSM (Esquema 2). Esta técnica de diseño se desarrolló originalmente para las redes Feistel tradicionales [3] . Esta técnica ha sido portada a , que es una de las propiedades únicas de este cifrado. Además, gracias a DSM, puedes aumentar el número garantizado de S-boxes activos con el mismo número de rondas.

La siguiente tabla muestra el número garantizado de S-boxes activos en el cifrado CLEFIA. Los datos se obtuvieron mediante simulación por computadora utilizando un algoritmo de búsqueda exhaustiva [3] . Las columnas "D" y "L" de la tabla muestran el número garantizado de cajas S activas en criptoanálisis diferencial y lineal, respectivamente. En esta tabla se puede ver que el efecto de DSM ya aparece en , y el número garantizado de S-boxes aumenta entre un 20 % y un 40 %, en contraste con la estructura sin DSM. Por lo tanto, se puede reducir el número de rondas, lo que significa que se mejora el rendimiento.

Número garantizado de cajas S activas
Número de rondas 1 - 13
rondas Dif. y Lin. (sin DSM) Dif. (con DSM) Lin. (con DSM)
una 0 0 0
2 una una una
3 2 2 5
cuatro 6 6 6
5 ocho ocho diez
6 12 12 quince
7 12 catorce dieciséis
ocho 13 Dieciocho Dieciocho
9 catorce veinte veinte
diez Dieciocho 22 23
once veinte 24 26
12 24 28 treinta
13 24 treinta 32
Número de rondas 14 - 26
rondas Dif. y Lin. (sin DSM) Dif. (con DSM) Lin. (con DSM)
catorce 25 34 34
quince 26 36 36
dieciséis treinta 38 39
17 32 40 42
Dieciocho 36 44 46
19 36 44 46
veinte 37 cincuenta cincuenta
21 38 52 52
22 42 55 55
23 44 56 58
24 48 59 62
25 48 62 64
26 49 sesenta y cinco 66

En la tabla, una fila está resaltada en rojo, lo que indica el número mínimo requerido de rondas para que el cifrado sea resistente al criptoanálisis de fuerza bruta ( ver también ). Las filas están resaltadas en azul, cuyo número de rondas se utiliza en el algoritmo CLEFIA con claves de 128/192/256 bits, respectivamente.

CLEFIA utiliza dos tipos diferentes de cajas S de 8 bits: una se basa en cuatro cajas S aleatorias de 4 bits; y el otro se basa en la función inversa en , que tiene la máxima complejidad de ataque posible para el criptoanálisis diferencial y el criptoanálisis lineal . Ambos S-boxes se eligen para una implementación eficiente, especialmente en hardware.

Para la configuración de seguridad es , y es . Porque y ambos son iguales [6] .

Seguridad

Criptoanálisis diferencial

De acuerdo con la tabla del número de cajas S activas con DSM (en el párrafo Uso del mecanismo de conmutación de difusión ), la cantidad mínima de rondas es 12. Por lo tanto, usar 28 cajas S activas para un CLEFIA de 12 rondas y ( ver también ) , determinamos que la probabilidad de la característica es . Esto significa que la complejidad del ataque es mayor y no hay una característica diferencial útil de 12 rondas para el atacante. Además, dado que tiene un valor más bajo , se espera que el límite superior real sea más bajo que la estimación anterior [3] . Como resultado, consideramos que una ronda completa de CLEFIA está protegida del criptoanálisis diferencial (se utilizan 18 rondas en CLEFIA).

Criptoanálisis lineal

Para estimar la complejidad del criptoanálisis lineal , se utiliza un enfoque basado en el recuento de cajas S activas para un número determinado de rondas. Porque usando 30 S-boxes activos para un CLEFIA de 12 rondas, . Esto lleva a la conclusión de que es difícil para un atacante encontrar suficientes pares de texto-texto cifrado que puedan usarse para atacar CLEFIA con éxito. Como resultado, un CLEFIA con todas las funciones es lo suficientemente seguro contra el criptoanálisis lineal [6] .

Criptoanálisis diferencial imposible

ataque diferencial imposible considera uno los ataques más poderosos contra CLEFIA. Se han encontrado los siguientes dos caminos diferenciales imposibles [7] :

donde  es cualquier valor distinto de cero. Por lo tanto, utilizando la función descrita anteriormente, es posible simular un ataque (para cada longitud de clave) que recuperará la clave actual. La siguiente tabla resume las complejidades requeridas para ataques diferenciales imposibles. Según esta tabla, se espera que CLEFIA de ciclo completo tenga suficiente margen de seguridad frente a este ataque.

La complejidad del imposible criptoanálisis diferencial
Número de rondas Longitud de clave Blanqueamiento de llaves Número de textos abiertos Complejidad del tiempo
diez 128,192,256 +
once 192.256 +
12 256 -

Comparación con otros cifrados

CLEFIA proporciona una implementación compacta y rápida al mismo tiempo sin sacrificar la seguridad. En comparación con AES, el cifrado de bloque de 128 bits más utilizado, CLEFIA tiene una ventaja en la implementación de hardware. CLEFIA puede alcanzar 1,6 Gb/s con menos de 6000 celdas lógicas equivalentes rendimiento por puerta de enlace es el más alto del mundo en 2008 (en caso de implementación de hardware) 1] .

La siguiente tabla muestra las características comparativas del cifrado CLEFIA en relación con otros cifrados conocidos [1] :

Implementación optimizada por área
Algoritmo Tamaño de bloque (bits) Tamaño de clave (bits) Número de rondas Ancho de banda ( Mbps ) Área (Kgates) Eficiencia (Kpbs/puertas)
CLEFÍA 128 128 Dieciocho 1.605,94 5.98 268.63
36 715.69 4.95 144.59
AES 128 128 diez 3.422,46 27.77 123.26
Camelia 128 128 23 1,488.03 11.44 130.11
SEMILLA 128 128 dieciséis 913.24 16.75 54.52
52 517.13 9.57 54.01
CAST-128 64 128 17 386.12 20.11 19.20
MISTY1 64 128 9 915.20 14.07 65.04
treinta 570.41 7.92 72.06
TDEA 64 56, 112, 168 48 355.56 3.76 94.50
Implementación optimizada de velocidad
Algoritmo Tamaño de bloque (bits) Tamaño de clave (bits) Número de rondas Ancho de banda ( Mbps ) Área (Kgates) Eficiencia (Kpbs/puertas)
CLEFÍA 128 128 Dieciocho 3,003.00 12.01 250.06
36 1,385.10 9.38 147.71
AES 128 128 diez 7,314.29 45,90 159.37
Camelia 128 128 23 2,728.05 19.95 136.75
SEMILLA 128 128 dieciséis 1,556.42 25.14 61.90
52 898.37 12.33 72.88
CAST-128 64 128 17 909.35 33.11 27.46
MISTY1 64 128 9 1.487,68 17.22 86.37
treinta 772.95 10.12 76.41
TDEA 64 56, 112, 168 48 766.28 5.28 145.10

Aplicación

En 2019, las organizaciones ISO e IEC incluyeron los algoritmos PRESENT y CLEFIA en el estándar internacional para cifrado ligero ISO/IEC 29192-2:2019 [8] .

Existe una biblioteca CLEFIA_H en el lenguaje de programación C que implementa el cifrado CLEFIA [9] .

Notas

  1. 1 2 3 Takeshi Sugawara, Naofumi Homma, Takafumi Aoki, Akashi Satoh. Implementaciones ASIC de alto rendimiento del cifrado de bloque de 128 bits CLEFIA //  Simposio internacional IEEE 2008 sobre circuitos y sistemas. - Seattle, WA, EE. UU.: IEEE, 2008. - 13 de junio. ISBN 978-1-4244-1683-7 . ISSN 0271-4302 . -doi : 10.1109 / ISCAS.2008.4542070 .  
  2. Shirai T., Shibutani K. Sobre estructuras Feistel usando un mecanismo de conmutación de difusión  . - Berlín, Heidelberg: Springer, 2006. - ISBN 978-3-540-36597-6 . -doi : 10.1007/ 11799313_4 . Archivado desde el original el 17 de junio de 2018.
  3. 1 2 3 4 5 6 Taizo Shirai, Kyoji Shibutani, Toru Akishita, Shiho Moriai, Tetsu Iwata. El Blockcipher de 128 bits CLEFIA (Resumen extendido  ) . - 2007. Archivado el 1 de marzo de 2022.
  4. La especificación del algoritmo CLEFIA Blockcipher de 128 bits .  
  5. Y. Zheng, T. Matsumoto, H. Imai. En la construcción de cifrados en bloque demostrablemente seguros y que no se basan en hipótesis no probadas  . - Springer-Verlag: Crypto'89, LNCS 435, 1989. - P. 461-480. Archivado el 9 de junio de 2018 en Wayback Machine .
  6. 1 2 Corporación Sony. El Blockcipher CLEFIA de 128 bits  Evaluaciones de rendimiento y seguridad . - 2007. Archivado el 20 de enero de 2022.
  7. Wei Wang, Xiaoyun Wang.  
  8. ISO. ISO/CEI 29192-2:2012 . Consultado el 1 de noviembre de 2019. Archivado desde el original el 21 de octubre de 2020.
  9. Referencia de cifrado . Consultado el 5 de diciembre de 2019. Archivado desde el original el 3 de noviembre de 2019.

Enlaces