Red de Respuestas Legales - Leyes y reglamentos - Buscando la versión C# de alta puntuación del algoritmo IDEA

Buscando la versión C# de alta puntuación del algoritmo IDEA

1. Conceptos básicos de 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

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

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>

V22

V23

V24

Cambios

J21

J22

J23

J24

U7…U10

Zijiami

V11

V12

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

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