Red de conocimiento informático - Consumibles informáticos - Buscando puntuaciones altas para la versión C# del algoritmo IDEA

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

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

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

I22

I23

I24

Z11 Z612

W21

W22

W23

W24

Transformación

W71

W72

W73

W74

Z43..Z46

Sub-cifrado

I81

I82

I83

I84

Z47 Z48

Transformación

W81

W82

W83

W84

Z49..Z52

Y1

Y2

Y3

Y4

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

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

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