Buscando puntuaciones altas para la versión C# del algoritmo IDEA
1. Conceptos básicos de IDEA
2. Principios de diseño de IDEA
3. Proceso de descifrado de IDEA
4. /p>
p>
3
IDEA (Algoritmo internacional de cifrado de datos) es un algoritmo de cifrado propuesto por James Massey, Xuejia Lai y otros en Suiza. Pertenece a la categoría de cifrado de bloques en Suiza. 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 todavía no ha aparecido ningún algoritmo de ataque eficaz contra este algoritmo.
1. Conceptos básicos de IDEA
4
Ya en 1990, Xuejia Lai y otros propusieron la propuesta de cifrado en bloque PES (Estándar de cifrado propuesto). En la reunión anual de EuroCrypt'91, Xuejia Lai y otros propusieron una versión modificada de PES, IPES (PES mejorado). Actualmente IPES ha sido comercializado y rebautizado como IDEA. IDEA ha sido patentada por Ascom, una empresa suiza, y debe solicitar una licencia de la empresa para utilizar el algoritmo IDEA con fines comerciales.
Conceptos básicos de IDEA
5
IDEA es un algoritmo de cifrado de bloques con una longitud de bloque de 64 bits y una longitud de clave de 128 bits (la capacidad de resistir ataques de fuerza bruta es mejor que DES es fuerte), se puede utilizar el mismo algoritmo tanto para el cifrado como para el descifrado.
IDEA se resiste al análisis diferencial y al análisis de correlación;
IDEA no parece tener una clave débil en el sentido de la “confusión” de DES; y “difusión” Los principios de diseño provienen de tres operaciones, que son fáciles de implementar en software y hardware (velocidad de cifrado rápida)
Conceptos básicos de IDEA
6
Operación XOR ( )
p>
Módulo entero 216 más ( )
Módulo entero 216 1 multiplicación ( ) (cuadro S de IDEA)
La difusión la proporcionan los componentes básicos del algoritmo llamado estructura MA.
Z6
F2
F1
Z5
G1
G2 p>
G2
p>
Operación IDEA
7
Consideraciones de implementación
Uso de subgrupos: subgrupos de 16 bits;
Uso Operación simple (fácil de implementar operaciones de suma, desplazamiento y otras operaciones)
El proceso de cifrado y descifrado es similar
Estructura de reglas (fácil de implementar VLSI; ).
Funcionamiento de IDEA
8
2. Principio de diseño de IDEA
1 Seguridad de la contraseña: se logra principalmente mediante confusión y difusión.
Métodos de implementación de confusión:
(1) XOR bit a bit. Denotado como
(2) suma de enteros de módulo, denotado como , su entrada y salida se tratan como
enteros sin signo de 16 bits.
Multiplicación de enteros en módulo, expresada como , excepto 16.
Todos los ceros en su entrada y salida se procesan como enteros sin signo de 16 bits.
9
Por ejemplo
0000000000000000⊙1000000000000000
=1000000000000001
Esto se debe a que el mod 216×215 (2161)=2151.
Principio de diseño de IDEA
10
La tabla 3.6 muestra la tabla de operaciones de tres operaciones cuando el operando tiene 2 bits de longitud. En el siguiente sentido, las tres operaciones son incompatibles:
① Dos cualesquiera de las tres operaciones no satisfacen la ley distributiva, por ejemplo, a (b ⊙ c) ≠ (a b ) ⊙ (a c )
② Dos de las tres operaciones cualesquiera no satisfacen la ley asociativa, por ejemplo, a (b ? c) ≠ (a b )
IDEA principio de diseño
11
La combinación de las tres operaciones puede proporcionar transformaciones complejas para la entrada del algoritmo, lo que hace que el criptoanálisis de IDEA sea más difícil que DES, que solo utiliza la operación XOR. .
La difusión en el algoritmo se implementa mediante 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 se reutilizó 8 veces en el algoritmo y logró un efecto de difusión muy efectivo.
Principio de diseño de IDEA
12
La difusión del algoritmo IDEA se realiza principalmente a través de la unidad básica de la estructura de multiplicación-acumulación.
Estructura MA de IDEA
13
Esquema general de cifrado de IDEA
Bucle 2
Bucle 8
p>Bucle 1
Transformació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
14
Diagrama del esquema general del cifrado IDEA
15
Proceso de cifrado IDEA
Ronda 1
p>
Texto plano de 64 bits
X1
X2
X3
X4
Redondo 2
W11
W12
W13
W14
Ronda 8
W71
W72
W73
W74
W21
W22
W23 p>
W74
W21
W22
W23
W72 p>
W24
W81
W82
W83
W84
Transformación de salida
Y1
Y2
Y3
Y4
Criptotexto
…
Z1
Z6
…
Z7
Z12
…
Z43
Z48
…
Z49
Z52
Generador de claves de palabras
Clave de 128 bits
Z1
Z52
16
El proceso de cifrado (que se muestra en la Figura 4.15) consta de 8 rondas de iteraciones continuas y una transformación de salida, el algoritmo divide el Agrupación de texto sin formato de 64 bits en cuatro subsecciones de 16 bits. Cada iteración toma cuatro subsecciones de 16 bits como entrada y la salida también son cuatro subsecciones 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 también requiere el uso de seis subclaves de 16 bits, y la transformación de salida final requiere el uso de cuatro 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 IDEA
17
La Figura 4.16 es el diagrama estructural de la primera ronda de IDEA. Las rondas posteriores también tendrán esta estructura, pero la. La subclave y la entrada redonda son diferentes. Como puede verse en el diagrama de estructura, IDEA no es una estructura de cifrado tradicional de Feistel. Hay una transformación al comienzo de cada ronda. Las entradas de esta transformación son 4 subsegmentos y 4 subclaves. Las operaciones en la transformación son dos multiplicaciones y dos sumas. Los 4 subsegmentos de salida se realizan mediante XOR. 16 bits Los subsegmentos de se utilizan como entradas a la estructura MA. La estructura MA también tiene dos subclaves de entrada y la salida son dos subcampos de 16 bits.
La estructura de ruedas de IDEA
18
La estructura de ruedas de IDEA ronda 1
19
Y1
Y2
Y3
Y4
Estructura de 1 rueda
20
Finalmente , Las cuatro subsecciones de salida de la transformación y las dos subsecciones de salida de la estructura MA se someten a una operación XOR para generar las cuatro subsecciones de salida de esta ronda. Tenga en cuenta que el subsegmento de salida generado por X2 y el subsegmento de salida generado por X3 se intercambian para formar W12 y W13. 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 IDEA
21
En cada ronda, el orden de ejecución es el siguiente:
1 X1 y el primero. Las subclaves se multiplican.
2. Añade X2 a la segunda subclave.
3. Añade X3 y la tercera subclave.
4. Multiplica X4 y la cuarta subclave.
5. XOR los resultados de los pasos 1 y 3.
6. XOR los resultados de los pasos 2 y 4.
Secuencia de cifrado de cada ronda de IDEA
22
7. Multiplica el resultado del paso 5 con la quinta subclave.
8. Suma los resultados de los pasos 6 y 7.
9. Multiplica el resultado del paso 8 con la sexta subclave.
10. Suma los resultados de los pasos 7 y 9.
11. XOR los resultados de los pasos 1 y 9.
12. XOR los resultados de los pasos 3 y 9.
13. XOR los resultados del paso 2 y del paso 10.
14. XOR los resultados de los pasos 4 y 10.
La secuencia de cifrado de cada ronda de IDEA
23
El noveno paso del algoritmo es una transformació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. La diferencia es que la segunda y tercera entrada de la transformación de salida primero intercambian posiciones para deshacer el intercambio de las dos subsecciones en la salida de la octava ronda. También tenga en cuenta que el paso 9 solo requiere 4 subclaves, mientras que cada una de las 8 rondas anteriores requirió 6 subclaves.
La secuencia de cifrado de cada ronda de IDEA
24
Transformación de salida de IDEA
25
Proceso de cifrado Las 52 subclaves de 16 bits se generan a partir de la clave de cifrado de 128 bits de la siguiente manera: Las primeras 8 subclaves Z1, Z2,..., Z8 se toman directamente de la clave de cifrado, es decir, Z1 toma los primeros 16 bits (La bit más significativo), Z2 toma los siguientes 16 bits, y así sucesivamente. Luego, la clave de cifrado se desplaza cíclicamente hacia la izquierda 25 bits y se toman las siguientes ocho subclaves Z9, Z10,..., Z16. El método de obtención es el mismo que el de Z1, Z2,..., Z8. . Este proceso se repite hasta que se generan las 52 subclaves.
Generación de subclave IDEA
26
Generación de subclave IDEA
Método de generación de subclave. Este algoritmo utiliza 52 subclaves (6 para cada una de las 8 rondas y las otras 4 para la transformación de salida). Primero, la clave de 128 bits se divide en ocho subclaves de 16 bits. Estas son las primeras 8 subclaves del algoritmo (6 en la primera ronda y las 2 primeras en la segunda ronda). Luego, la clave se desplaza 25 bits hacia el anillo izquierdo para generar otras 8 subclaves, y así sucesivamente hasta el final del algoritmo.
27
28
29
4. El proceso de descifrado de IDEA
El cifrado y el descifrado son esencialmente lo mismo. , pero use claves diferentes;
La clave de descifrado se deriva de las subclaves de cifrado de la siguiente manera:
Las primeras 4 subclaves del ciclo de descifrado I se derivan del ciclo de cifrado 10-I Derivado. de las primeras cuatro subclaves; la 1.ª y 4.ª subclave de la clave de descifrado corresponden a las inversas multiplicativas de las subclaves de cifrado 1 y 4 y 3 corresponden a las inversas aditivas de 2 y 3; primeros 8 ciclos, las dos últimas subclaves del ciclo I son iguales a las dos últimas subclaves del ciclo de cifrado 9-I
30
Los procesos de descifrado y cifrado son básicamente idénticos, pero; Usando una clave diferente, la clave de descifrado se genera de la siguiente manera.
(1) Las primeras 4 subclaves de la ronda i (i=1, 2,...,9) de descifrado se derivan de las primeras 4 subclaves de la ronda (10-i) de la proceso de cifrado. La primera y cuarta subclaves de descifrado se toman como las correspondientes primera y cuarta subclaves de cifrado módulo del elemento inverso multiplicativo. La segunda y tercera subclaves se obtienen de la siguiente manera: cuando el número de rondas es i=2, .., 8, se obtienen como el inverso aditivo modular de la tercera y segunda subclaves de cifrado correspondientes. Cuando i=1 y 9, se toman. el módulo aditivo inverso de las correspondientes segunda y tercera subclaves de cifrado.
Proceso de descifrado de IDEA
31
(2) Las dos últimas subclaves de la ronda i (i=1,...,8) de descifrado son igual al cifrado Las dos últimas subclaves de la ronda (9-i) del proceso.
Proceso de descifrado de IDEA
32
Proceso de cifrado
Transformación
X1
X2
X3
X4
Z1..Z4
Subcifrado
I11
I12
I13
I14
Z5 Z6
Transformación
W11
W12
W13
W14
Z7..Z10
Subcifrado
I21 p >
I22
I23
I24
Z11 Z612
W21
W22
W23
W24
Transformación
W71
W72
W73
W74
Z43..Z46
Sub-cifrado
I81
I82
I83 p>
I84
Z47 Z48
Transformación
W81
W82
W83
W84
Z49..Z52
Y1
Y2
Y3
Y4 p>
Ronda 1
Ronda 2
Ronda 8
…………..
33
Transformación
X1
X2
X3
X4
U49..U52
p>
Subcifrado
V81
V82
V83
V84
U47U48
Transformación
J81
J82
J83
J84
U43 …U46
Subcifrado
V71
V72
V73
V74
U11U12
V21
V22
V23
V24
Transformación
J21
J22
J23
J24
U7…U10
Subcifrado
V11
V12
V13
V14
U5U6
Transformación
J11
J12
J13
J14
U1…U4
Y1
Y2
Y3
Y4
Ronda 8
Ronda 2
Ronda 1
Descifrado
Ronda 9
…………..
Proceso de descifrado
34
La Tabla 3.7 es el resumen de la relación anterior
. Entre ellos, el inverso multiplicativo de Zj módulo 216 1 es Z-1j, que satisface (consulte la Tabla 3.7 en la página 58)
Zj⊙Z-1j=1mod(216 1)
Debido a que 216 1 es un número primo, cada número entero distinto de cero no mayor que 216 tiene un módulo inverso multiplicativo único 216 1. El elemento inverso aditivo de módulo 216 de Zj es -Zj, que satisface:
-Zj Zj=0 mod (216)
proceso de descifrado de IDEA
35
35
p>
A continuación se verifica que el proceso de descifrado puede producir resultados correctos. En la Figura 4.18, el lado izquierdo muestra el proceso de cifrado, de arriba a abajo, y el lado derecho muestra el proceso de descifrado, de abajo hacia arriba. Cada ronda se divide en dos pasos, el paso 1 es la transformación y la parte restante es el paso 2, que se llama subcifrado.
Proceso de descifrado de IDEA
36
Diagrama de bloques de cifrado y descifrado de IDEA
37
Ahora de abajo hacia arriba Considere lo anterior. Para la última transformación de salida del proceso de cifrado, se cumple la siguiente relación:
Y1=W81⊙ 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:
J11=Y1⊙U1 J12=Y2 U2
J13=Y3 U3 J14=Y4⊙U4
p>Proceso de descifrado de IDEA
38
Exprese la subclave de descifrado por la subclave de cifrado y sustituya Y1, Y2, Y3, Y4 en la siguiente relación, tenemos
J11=Y1⊙Z-149= W81⊙Z49⊙Z-149= W81
J12=Y2 -Z50=W83 Z50 -Z50=W83
J13=Y3 -Z51=W82 Z51 -Z51=W82
J14=Y4⊙Z-152= W84⊙Z52⊙Z-152= W84
Proceso de descifrado de IDEA p >
39
Se puede ver que la salida del paso 1 de la primera ronda del proceso de cifrado es igual al valor intercambiado de las subsecciones segunda y tercera en la entrada del último paso. del proceso de cifrado. De la Figura 4.16, se puede obtener 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 de IDEA
40
Donde MAR(X, Y) es la salida correcta de la estructura MA cuando las entradas son X e Y, y MAL(X, Y) es la salida izquierda.
Entonces
V11=J11?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
Proceso de descifrado de IDEA
41
De manera similar, puede haber V12=I83 V13=I82 V14=I84
Por lo tanto, la salida del paso 2 de la primera ronda del proceso de descifrado es igual a la segunda subsección y al tercer paso de la entrada. del segundo paso del proceso de cifrado. El valor del subsegmento después del intercambio.
De manera similar, se puede demostrar que cada paso en la Figura 4.18 tiene la relación similar mencionada anteriormente, y esta relación continúa hasta
V81=I11 V82=I13 V83=I12 V84= I14
Es decir, excepto que la segunda subsección y la tercera subsección intercambian posiciones, la transformación de salida del proceso de descifrado es exactamente la misma que la transformación del paso 1 de la primera ronda del proceso de cifrado.
Proceso de descifrado de IDEA
42
Entonces, excepto por el intercambio de posiciones entre la segunda subsección y la tercera subsección, la transformación de salida del proceso de descifrado es Lo mismo que el proceso de cifrado. La transformación en el paso 1 de la ronda 1 es exactamente la misma.
Entonces, al final, se puede saber que la salida de todo el proceso de descifrado es igual a la entrada de todo el proceso de cifrado.
Proceso de descifrado de IDEA
43
Características del cifrado de bloque IDEA
Longitud de clave variable
Operación mixta
Depende del desplazamiento circular de datos
Depende del desplazamiento circular de clave
Depende de S box
Algoritmo de programación de claves de contraseña larga p>
Función F variable y longitud variable de texto sin formato/texto cifrado
Número de ciclos variable
Siempre correcto en cada ciclo Operando en ambas mitades de los datos
44
IDEA se puede implementar fácilmente a través de software y hardware.
① La implementación del software utiliza procesamiento de subsegmentos de 16 bits y puede realizar las tres operaciones del algoritmo mediante operaciones de suma, desplazamiento y otras operaciones fáciles de programar.
② Dado que el cifrado y descifrado por hardware son similares, la única diferencia es la forma de utilizar la clave, por lo que se puede implementar con el mismo dispositivo. Además, la estructura del módulo regular en el algoritmo puede facilitar la implementación de VLSI.
Características del cifrado de bloques IDEA
45
¡EL FINAL!
IDEA