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] .
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:
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:
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 Screado 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 .
|
|
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 .
.0 | .una | .2 | .3 | .cuatro | .5 | .6 | .7 | .ocho | .9 | .a | .b | .C | .d | .mi | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | 6c | da | c3 | e9 | 4e | 9d | 0a | 3d | b8 | 36 | b4 | 38 | 13 | 34 | 0c | d9 |
una. | novio | 74 | 94 | 8f | b7 | 9c | e5 | corriente continua | 9e | 07 | 49 | 4f | 98 | 2c | b0 | 93 |
2. | 12 | eb | discos compactos | b3 | 92 | e7 | 41 | 60 | e3 | 21 | 27 | 3b | e6 | 19 | d2 | 0e |
3. | 91 | once | c7 | 3f | 2a | 8e | a1 | antes de Cristo | 2b | c8 | c5 | 0f | 5b | f3 | 87 | 8b |
cuatro | pensión completa | f5 | Delaware | veinte | c6 | a7 | 84 | ce | d8 | sesenta y cinco | 51 | c9 | a4 | ef | 43 | 53 |
5. | 25 | 5d | 9b | 31 | e8 | 3e | 0d | d7 | 80 | f | 69 | 8a | licenciado en Letras | 0b | 73 | 5c |
6. | 6e | 54 | quince | 62 | f6 | 35 | treinta | 52 | a3 | dieciséis | d3 | 28 | 32 | fa | Automóvil club británico | 5e |
7. | cf | cada uno | educar | 78 | 33 | 58 | 09 | 7b | 63 | c0 | c1 | 46 | 1e | d.f. | a9 | 99 |
ocho. | 55 | 04 | c4 | 86 | 39 | 77 | 82 | CE | 40 | Dieciocho | 90 | 97 | 59 | dd | 83 | 1f |
9. | 9a | 37 | 06 | 24 | 64 | 7c | a5 | 56 | 48 | 08 | 85 | d0 | 61 | 26 | California | 6f |
una. | 7e | 6a | b6 | 71 | a0 | 70 | 05 | d1 | 45 | 8c | 23 | 1c | f0 | ee | 89 | anuncio |
b. | 7a | 4b | c2 | 2f | base de datos | 5a | 4d | 76 | 67 | 17 | 2d | f4 | cb | b1 | 4a | a8 |
C. | b5 | 22 | 47 | 3a | d5 | diez | 4c | 72 | CC | 00 | f9 | e0 | f.d. | e2 | fe | ae |
d. | f8 | 5f | abdominales | f1 | 1b | 42 | 81 | d6 | ser | 44 | 29 | a6 | 57 | b9 | si | f2 |
mi. | d4 | 75 | 66 | cama y desayuno | 68 | 9f | cincuenta | 02 | 01 | 3c | 7f | 8d | 1a | 88 | bd | C.A |
F. | f7 | e4 | 79 | 96 | a2 | f.c. | 6d | b2 | 6b | 03 | e1 | 2e | 7d | catorce | 95 | 1d |
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 .
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 3El 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
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.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:
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.
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 .
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 .
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.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] .
| |
Funciones de tipo SP |
|
DSM |
|
S-bloques |
|
matrices |
|
Parte clave de procesamiento |
|
Las ventajas y características del algoritmo CLEFIA son:
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:
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.
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 |
---|
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] .
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).
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] .
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.
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 | - |
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] :
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 |
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 |
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] .
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |