Buscando la versión C# de alta puntuación del algoritmo IDEA
2. Principios de diseño de conceptos
3. Proceso de cifrado de ideas
4.
Idea (algoritmo de cifrado de datos internacional) es un algoritmo de cifrado propuesto por James Massey, Xuejia Lai y otros en Suiza. Pertenece a una categoría de cifrados de bloque en criptografía.
IDEA utiliza una longitud de clave de 128 bits y un tamaño de bloque de datos de 64 bits. En teoría, IDEA es un algoritmo de cifrado "fuerte" y hasta ahora no existe ningún algoritmo de ataque eficaz contra este algoritmo.
1 Conceptos básicos. Idea
Cuarta
Ya en 1990, Xue Jialai y otros propusieron el estándar de cifrado propuesto (PES) en la reunión anual EuroCrypt'90. En la reunión anual de EuroCrypt'91, Lai Xuejia y otros propusieron una versión revisada de PES (IPES). Actualmente IPES ha sido comercializado y rebautizado como IDEA. IDEA ha sido patentada por la empresa suiza Ascom y debe solicitar una licencia para utilizar el algoritmo IDEA con fines comerciales.
Conceptos básicos del concepto
Five
IDEA es un algoritmo de cifrado de bloques con una longitud de bloque de 64 bits y una longitud de clave de 128 bits (más fuerte que DES). El mismo algoritmo puede cifrar y descifrar.
IDEA puede resistir el análisis diferencial y el análisis de correlación;
IDEA no parece tener claves débiles en el sentido de la “confusión” y “de DES” de IDEA; diseño de difusión” El principio proviene de tres operaciones, que son fáciles de implementar en software y hardware (cifrado rápido)
Conceptos básicos del concepto
Seis
Operaciones XOR ( )
Módulo entero 216 más (+)
Módulo entero 216+1 veces () (idea de caja S)
Consiste en difusión de lo que se llama estructura MA. Se proporcionan los componentes básicos del algoritmo.
Z6
Segundo descendiente
F1
Z5
G1
G2 Esports Electronic Sports Club
Operación conceptual
Siete
Notas de implementación
Usar subpaquete: subpaquete de 16 bits;
Utilice operaciones simples (fáciles de agregar, cambiar, etc.)
Los procesos de cifrado y descifrado son similares;
Estructura de reglas (para implementación VLSI).
Operación del concepto
Ocho
2. Principios de diseño del concepto
1. La fortaleza de la contraseña: se logra principalmente a través de la confusión y la difusión.
Método de implementación de confusión:
(1) XOR bit a bit. Expresado como
(2) Suma de enteros de módulo, expresado como, su entrada y salida son
procesamiento de 16 enteros sin signo.
La multiplicación de módulos enteros se expresa como la entrada y la salida divididas por 16.
Todos los ceros se tratan como 16 enteros sin signo.
Nueve
Por ejemplo
0000000000000000⊙1000000000000000
=1000000000000001
Esto se debe a que el mod 216×215 (216+1)= 215+1.
Principios de diseño conceptual
10
La tabla 3.6 muestra las tablas de operaciones para tres operaciones cuando los operandos tienen 2 bits de longitud. Estas tres operaciones son incompatibles en el siguiente sentido:
① Dos de las tres operaciones cualesquiera no satisfacen la ley de distribución, como a+(b⊙c)≦(a+b)⊙( a+c ).
② ¿Dos cualesquiera de las tres operaciones no satisfacen la ley asociativa, como a + (b? c) ≨ (a + b)? c
+
Principios de diseño conceptual
11
La combinación de tres operaciones puede proporcionar transformaciones complejas para la entrada del algoritmo. Esto hace que el criptoanálisis de IDEA sea más difícil que DES, que sólo utiliza la operación XOR.
La difusión en el algoritmo se implementa a través de una unidad básica llamada estructura de multiplicación/suma (MA) (ver Figura 4.14).
La entrada de esta estructura son dos subsecciones de 16 bits y dos subclaves de 16 bits, y la salida también son dos subsecciones de 16 bits. Esta estructura fue reutilizada 8 veces en el algoritmo, logrando un efecto de difusión muy efectivo.
Principios de diseño conceptual
12
La difusión del algoritmo IDEA se realiza principalmente a través de las unidades básicas de la estructura de suma múltiple.
Estructura Conceptual
13
Plan General de Cifrado de Pensamientos
Segundo Ciclo
Octavo Ciclo
p>
Bucle 1
Conversión de salida
Texto cifrado de 64 bits
Texto sin formato de 64 bits
Z1
Z6
Z7
Z12
Z43
Z48
Z49
Z52
Generador de subclaves
Clave de 128 bits
Z1
Z52
16
p>14
Diagrama del esquema general de cifrado de IDEA
15
Proceso de cifrado de ideas
Ronda 1
Texto plano de 64 bits
X1
X2
X3
X4
Segunda ronda
p>W11
W12
W13
W14
Ronda 8
W71 p>
W72
W73
W74
W21
W22
W23
W24
W81
W82
W83
W84
Conversión de salida
Y1
Y2
Y3
Y4
Texto cifrado
Z1
Z6
…
Z7
Z12
…
Z43
Z48
…
Z49
Z52
Generador de palabras clave
128 bits clave
Z1
Z52
16
El proceso de cifrado (que se muestra en la Figura 4.15) consta de ocho iteraciones consecutivas y consta de una conversión de salida. Este algoritmo divide el texto sin formato de 64 bits en cuatro subsegmentos de 16 bits. Cada iteración toma cuatro subsegmentos de 16 bits como entrada y la salida también son cuatro subsegmentos de 16 bits. La transformación de salida final también produce cuatro subsegmentos de 16 bits, que se concatenan para formar un bloque de texto cifrado de 64 bits. Cada iteración requiere 6 subclaves de 16 bits y la transformación de salida final requiere 4 subclaves de 16 bits, por lo que el número total de subclaves es 52. La mitad derecha de la Figura 4.15 muestra un generador de subclaves que genera 52 subclaves a partir de una clave inicial de 128 bits.
3. Proceso de cifrado de ideas
17
La Figura 4.16 es un diagrama estructural esquemático de la primera ronda de IDEA. Las rondas posteriores también tienen esta estructura, pero. El uso de la entrada de subtecla y rueda es diferente. Como puede verse en el diagrama de estructura, IDEA no es una estructura de cifrado tradicional de Feistel. Al comienzo de cada ronda hay una transición. Las entradas a la transformación son cuatro subsegmentos y cuatro subclaves. Las operaciones en la conversión son dos multiplicaciones y dos sumas. Las cuatro subsecciones de salida se operan mediante XOR para formar dos subsecciones de 16 bits como entradas a la estructura MA. La estructura MA también tiene dos subclaves de entrada y la salida son dos subsegmentos de 16 bits.
La estructura de la rueda de IDEA
18
La estructura de la rueda de IDEA 1
19
Y1 p>
Y2
Y3
Y4
1 Estructura de ruedas
20
Finalmente , Las cuatro subsecciones de salida de la transformación se realizan mediante operación XOR con las dos subsecciones de salida de la estructura MA para generar las cuatro subsecciones de salida de la ronda actual. Tenga en cuenta que W12 y W13 se forman después de que se intercambien la subsección de salida generada por X2 y la subsección de salida generada por X3. El propósito es aumentar aún más el efecto de confusión y hacer que el algoritmo sea más resistente al criptoanálisis diferencial.
Proceso de cifrado de ideas
21
En cada ronda, el orden de ejecución es el siguiente:
1.X1 veces el primero subelemento.
2. Se agregó X2 y segunda subclave.
3. Se agregó X3 y tercera subclave.
4.X4 se multiplica por la cuarta subclave.
5. Distinguir los resultados del paso 1 y del paso 3.
6. Compara los resultados del paso 2 y del paso 4.
IDEA, la secuencia de cifrado de cada ronda.
22
7. Multiplica el resultado del paso 5 por la quinta subclave.
8. Suma los resultados de los pasos 6 y 7.
9. Multiplica el resultado del paso 8 por la sexta subclave.
10. Suma los resultados de los pasos 7 y 9.
11. Distinguir los resultados del paso 1 y del paso 9 o.
12. Compara los resultados del paso 3 y del paso 9.
13. Distinguir entre los resultados del paso 2 y del paso 10.
14. Distinguir los resultados del paso 4 y del paso 10.
IDEA, la secuencia de cifrado de cada ronda.
23
El noveno paso del algoritmo es la conversión de salida, como se muestra en la Figura 4.17. Su estructura es la misma que la estructura de transformación al comienzo de cada ronda, pero la diferencia es que la segunda y tercera entrada de la transformación de salida se cambiaron primero, de modo que el intercambio de las dos subsecciones se cancela en la octava ronda de salida. También cabe señalar que solo se requieren 4 subclaves en el paso 9, mientras que se requieren 6 subclaves en cada una de las primeras 8 rondas.
IDEA, la secuencia de cifrado de cada ronda.
24
Transformación de salida del concepto
25
Durante el proceso de cifrado, se generan 52 16 bits a partir de la clave de cifrado de 128 bits. Las subclaves de bits son las siguientes: las primeras 8 subclaves Z1, Z2,..., Z8 se toman directamente de la clave de cifrado, es decir, Z1 toma los primeros 16 bits (el bit más significativo), y Z2 toma los siguientes 65438+. Luego, la clave de cifrado se desplaza cíclicamente hacia la izquierda 25 bits y se toman las siguientes ocho subclaves Z9, Z10,..., Z16, que son iguales a Z1, Z2,..., Z8. Repita este proceso hasta que se generen las 52 subclaves.
Generación de subclaves IDEA
26
Generación de subclaves IDEA
Método para generar subclaves. El algoritmo utiliza 52 subclaves (6 subclaves en cada una de las 8 rondas, más 4 subclaves para la transformación de salida). Primero, la clave de 128 bits se divide en ocho claves de 16 bits. Estas son las primeras 8 subclaves del algoritmo (6 en la primera ronda y 2 en la segunda ronda). Luego, la clave se desplaza 25 bits hacia el anillo izquierdo, generando otras 8 subclaves, y así sucesivamente hasta el final del algoritmo.
27
28
29
4. El proceso de descifrado de pensamientos
El cifrado y el descifrado son esencialmente Lo mismo, solo que usando claves diferentes;
La clave de descifrado se obtiene de la subclave de cifrado de la siguiente manera:
Las primeras cuatro subclaves del período de descifrado I se obtienen de Derivado de las primeras cuatro subclaves del ciclo de cifrado 10-I; las subclaves 1.ª y 4.ª de la clave de descifrado corresponden a los elementos inversos multiplicativos de las subclaves de cifrado 1.º y 4.º, 3 corresponden a 2, inverso aditivo de 3;
Para los primeros ocho ciclos, las dos últimas subclaves del ciclo I son iguales a las dos últimas subclaves del ciclo de cifrado 9-I;
30
El descifrado y el cifrado Los procesos son básicamente los mismos, excepto que las claves utilizadas son diferentes. La clave de descifrado se genera de la siguiente manera.
(1)I (I = 1, 2,...9) el descifrado redondo se obtiene de las primeras cuatro subclaves del proceso de cifrado redondo (10-i). La primera y cuarta subclaves de descifrado sirven como claves inversas modulares correspondientes a la primera y cuarta subclaves de cifrado. Cuando el número de rondas es I = 2, la segunda y tercera subclaves actúan como la inversa modular de las correspondientes tercera y segunda subclaves de cifrado,..., 8, y cuando i = 1 y 9, como inversa módulo-aditiva de la correspondientes segunda y tercera subclaves de cifrado.
El proceso de descifrado del pensamiento
31
(2) Las dos últimas subclaves del i-ésimo (i=1,..., 8) la ronda de descifrado es igual a (9-i) Las dos últimas subclaves del proceso de cifrado redondo.
El proceso de descifrado de pensamientos
32
El proceso de cifrado
Cambios
X1
X2
X3
X4
Z1..Z4
Zijiami
I11
I12
I13
I14
Z5 Z6
Cambios
W11
W12
W13
W14
Z7..Z10
Zijiami
I21
I22
I23
I24
Z11 Z612
W21
W22
W23
W24
Cambios
W71
W72
W73
W74
Z43..Z46
Zijiami
I81
I82
I83
I84
Z47 Z48
Cambios
W81
W82
W83
W84
Z49..Z52
Y1
Y2
Y3
Y4
Ronda 1
Ronda 2
Ronda 8
…………..
33
Cambios
X1
X2
X3
X4
U49..U52
Zijiami
V81
V82
V83
V84
U47U48
Cambios
J81
J82
J83
J84
U43…U46
Zijiami
V71
V72
V73
V74
U11U12
V21 p> p>
V22
V23
V24
Cambios
J21
J22 p>
J23
J24
U7…U10
Zijiami
V11
V12 p>
V13
V14
U5U6
Cambios
J11
J12
J13
J14
U1…U4
Y1
Y2
Y3
Y4
Ronda 8
Ronda 2
Ronda 1
Traducción
Ronda 9
p>………… ..
Proceso de descifrado
34
La Tabla 3.7 resume las relaciones anteriores.
Entre ellos, el inverso de la multiplicación modular 216+1 de Zj es Z-1j, lo cual satisface (ver Tabla 3.7 en la página 58).
ZJ⊙Z-1j = 1 mod(216+1)
Dado que 216+1 es un número primo, cada entero distinto de cero no mayor que 216 tiene un módulo único Multiplicar y la inversa 216+1. El inverso aditivo de Zj módulo 216 es -Zj, que satisface:
-Zj + Zj=0 mod (216)
El proceso de descifrado del pensamiento
35 p>
El siguiente proceso de verificación y descifrado puede producir resultados correctos. En la Figura 4.18, el proceso de cifrado está a la izquierda, de arriba a abajo, y el proceso de descifrado está a la derecha, de abajo hacia arriba. Cada ronda se divide en dos pasos, el primer paso es la transformación y el paso restante es el segundo paso, llamado subcifrado.
El proceso de descifrado de ideas
36
Diagrama de bloques de cifrado y descifrado de IDEA
37
Ahora desde De abajo hacia arriba Piénsalo. Para la última transformación de salida en el proceso de cifrado, se cumple la siguiente relación:
y 1 = w 81⊙Z49 Y2 = W83+Z50
Y3=W82 + Z51 Y4=W84⊙ Z52
El paso 1 de la ronda 1 en el proceso de descifrado produce la siguiente relación:
j 11 = y 1⊙u 1j 12 = Y2+U2
J13 =Y3 + U3 J14=Y4⊙U4
Proceso de pensamiento de descifrado
38
La subclave de descifrado está representada por la subclave de cifrado, Y1, Y2, Y3 , Y4 Sustituya las siguientes relaciones, incluyendo
j 11 = y 1⊙Z-149 = w 81⊙Z49⊙Z-149 = w 81
j 12 = Y2+-Z50 = W83+Z5 -Z50 = W83
j 13 = Y3+-z 51 = W82+z 51+-z 51 = W82
j 14 = Y4⊙Z-152 = W84⊙ Z52⊙Z -152 = W84
El proceso de descifrado del pensamiento
39
Se puede ver que el resultado del paso 1 en 1 ronda del descifrado El proceso es igual al último paso del proceso de cifrado. El valor intercambiado entre la segunda y tercera subpartes de un paso. De la Figura 4.16 se puede extraer la siguiente relación:
W81=I81? MAR(I81?I83,I82?I84)
W82=I83? MAR(I81?I83,I82?I84)
W83=I82? MAL(I81?I83,I82?I84)
W84=I84? MAL(I81?I83,I82?I84)
Proceso de descifrado del pensamiento
40
Entre ellos, cuando las entradas de la estructura MA son X e Y , MAR (X, Y) es la salida derecha y MAL (X, Y) es la salida izquierda. Regla
v 11 = j 11? MAR(J11?J13,J12?J14)
=W81? MAR(W81?W82,W83?W84)
=I81? MAR(I81?I83,I82?I84) MAR [I81? MAR(I81?I83,I82?I84)? ¿I83?
MAR(I81?I83,I82?I84),I82?
MAL(I81?I83,I82?I84)? I84
? MAL(I81?I83,I82?I84)]
=I81? MAR(I81?I83,I82?I84)
MAR(I81?I83,I82?I84) =I81
El proceso de descifrado del pensamiento
41
De la misma manera, v 12 = i83v 13 = i82v 14 = i84.
Por lo tanto, la salida del segundo paso de 1 ronda del proceso de descifrado es igual al valor intercambiado entre la segunda y tercera subpartes en la penúltima entrada del proceso de cifrado.
De manera similar, se puede demostrar que cada paso en la Figura 4.18 tiene una relación similar a la anterior, y esta relación continúa hasta
v 81 = I 11v 82 = I 13v 83 = I 12v 84 = I 14
Es decir, la transformación de salida del proceso de descifrado es exactamente la misma que la transformación del paso 1 de la ronda 1 del proceso de cifrado, excepto que las posiciones de la segunda y tercera subpartes se intercambian.
El proceso de descifrado de pensamientos
Cuarenta y dos
Por lo tanto, la transformación de salida del proceso de descifrado es exactamente la misma que la transformación del paso 1 de 1. ronda del proceso de cifrado excepto que las posiciones del segundo y tercer segmento se intercambian.
Así que finalmente podemos saber que la salida de todo el proceso de descifrado es igual a la entrada de todo el proceso de cifrado.
El proceso de descifrado de ideas
43
Características del cifrado de bloque IDEA
Longitud de clave variable
Mixto operaciones
Desplazamientos cíclicos de datos relacionados
Desplazamientos circulares dependientes de claves
S-boxes esclavas
Algoritmo de programación de claves de largo aliento
Función f variable y longitud variable de texto sin formato/texto cifrado
Número variable de ciclos
Operación en ambas mitades de los datos en cada ciclo.
Cuarenta y cuatro
Las ideas se pueden implementar fácilmente a través de software y hardware.
①El software adopta un procesamiento de segmentación de 16 bits y las tres operaciones del algoritmo se pueden realizar mediante operaciones fáciles de programar, como suma y desplazamiento.
(2) El cifrado y descifrado por hardware son similares, la única diferencia es la forma en que se utiliza la clave, por lo que se puede implementar con el mismo dispositivo. Además, la estructura del módulo regular en el algoritmo favorece la implementación de VLSI.
Características del cifrado de bloques IDEA
45
¡Se acabó!
Ideas