Revisión de cálculos criptográficos al final del plazo

Los tres bloques principales

1. Cifrado clásico

Cambiar contraseña:

E (x) = (x + K) mod 26
D (x) = (x - K) mod 26

Contraseña de sustitución

Significa establecer primero una tabla de reemplazo, y luego, al cifrar, el texto sin formato que debe cifrarse se verifica secuencialmente en la tabla y se reemplaza con los caracteres correspondientes. Una vez que los caracteres de texto sin formato se reemplazan uno por uno, se genera una cadena sin sentido, es decir, el texto cifrado. La clave para reemplazar la contraseña es Su tabla de reemplazo

Función de Euler:

Supongamos que a ≥ 1, m ≥ 2, si mcd (a, m) = 1, entonces a y m son primos relativos, y el número de todos los elementos primos relativos am en Zm está representado por φ (m) (la función φ se llama función de Euler)
como φ (10) = 4, porque 1, 3, 7, 9 y 10 son primos relativos.
Método de cálculo:
1. Primero, reduzca a la forma de descomposición estándar (simplifique al producto de potencia del número primo más pequeño):
Inserte la descripción de la imagen aquí
Por ejemplo:
Inserte la descripción de la imagen aquí

2. Calcule de acuerdo con las siguientes reglas.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Entre ellas, {1,5,7,11,13,17,19,23,25,29,31,35} son primos relativos con 36, un total de 12

Entonces, si m es un número primo, entonces φ (m) = m-1

El proceso detallado del elemento inverso multiplicativo con solución euclidiana extendida:

例如求15 关于模26的乘法逆元:
15x = 1 mod 26 
这道题转化成15x - 26y = 1 :

		解法如下:
		26 = 1× 15 + 11
		15 = 11×1 + 4
		11 = 4 × 2 + 3
		4 = 1 × 3 + 1
		3 = 1 × 3 
		
		∴ 1 = 4 – 3
    		  = 4 – (11 – 4×2)
    		  = 4×3 – 11
  	    	  = (15-11) ×3 - 11
  	    	  = 15×3 - 11×4
  	    	  = (26-11)×3 - 11 ×4
  	    	  = 26×3 - (26 - 15)×7
  	    	  =26×(-4) + 15×7
		∴ x = 7, y = 4 为此不定方程的一组整数解,15关于模26的乘法逆元为7

Las inversas multiplicativas de todos los elementos del grupo Zm con respecto al módulo 26 son las siguientes:

1: 1
3: 9
05:21
07:15
11:19
17:23
25:25

Contraseña afín:

Suponiendo que la clave K = (7,3), utilice el criptosistema afín para cifrar la palabra caliente y descifrar el texto cifrado obtenido.
cifrado:

Función de cifrado: E (x) = (7x + 3) (mod 26)
Obtenga el
Inserte la descripción de la imagen aquí
descifrado X de acuerdo con la tabla de codificación de letras en inglés anterior :

Función de descifrado:
Encuentre el inverso multiplicativo de a como 15
D (x) = 15 (x-3) (mod 26)
Inserte la descripción de la imagen aquí

Hill contraseña:

Utilice la contraseña de Hill para cifrar la cadena de texto sin formato x = EastChinaNormalUniversity,

Matriz de claves:
Inserte la descripción de la imagen aquí
cifrado:
vector de texto cifrado = vector de texto plano * matriz de claves (mod 26)

  1. Primero convierta la cadena de texto sin formato correspondiente a la tabla de codificación de letras en inglés para la conversión de números 4 0 18 19 2 7 8 13 0 13 14 17 12 0 11 20 13 8 21 4 17 18 8 19 24,
    y luego escriba un par de dos en un forma matricial:
    Inserte la descripción de la imagen aquí
    hacer 0 procesamiento.

  2. A continuación, inicie la encriptación. Después de
    Inserte la descripción de la imagen aquí
    obtener la matriz de texto cifrado, conviértala en letras según el vector correspondiente al grupo:
    IK BX NB DH NN JD YE SR OB KB UJ HL W

El descifrado se multiplica de manera similar por el resultado del cifrado por la matriz inversa de la matriz de claves.

La inversión de la matriz definida en Zm:

Suponga que matrix
Inserte la descripción de la imagen aquí
es una matriz definida en Zm,
Inserte la descripción de la imagen aquí
por ejemplo:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
donde, el inverso multiplicativo de 9 con respecto al módulo 26 es 3.

2. Criptosistema simétrico

Modo de trabajo de cifrado AES

ECB (modo de libro de códigos electrónicos)
utiliza el modo de cifrado en bloque porque el cifrado en bloque solo puede manejar datos de longitud fija, como el procesamiento AES de 128 bits, luego el texto sin formato se divide en varios 128 bits y se cifra por separado. Este modo es el modo ECB, de hecho, tiene evidentes debilidades y ya no se utiliza.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

El modo ECB es el más simple y tiene un problema serio, es decir, el mismo texto plano obtendrá el mismo texto cifrado. Debido a que cada bloque tiene el mismo método y clave de cifrado, si el texto plano del bloque es el mismo, el texto cifrado también es el mismo.

Entonces necesitamos encontrar un modelo que al menos satisfaga:

  1. El mismo bloque de texto plano está encriptado y el texto cifrado es diferente.
  2. Pequeños cambios en el texto sin formato pueden provocar grandes cambios en el texto cifrado.

Modo CBC (modo de encadenamiento de bloques de cifrado) El modo
CBC fue inventado por IBM en 1976. En el modo CBC, cada bloque de texto plano se XOR con el bloque de texto cifrado anterior antes de cifrarse. En este método, cada bloque de texto cifrado depende de todos los bloques de texto cifrado anteriores. Al mismo tiempo, para garantizar la singularidad de cada mensaje, es necesario utilizar un vector de inicialización en el primer bloque.

El proceso de cifrado y descifrado es el siguiente:
Inserte la descripción de la imagen aquí

El vector de inicialización IV se introduce aquí, porque el "texto cifrado anterior" no existe en el primer grupo de textos sin formato. Generalmente, se genera un valor aleatorio como vector de inicialización para cada cifrado.

Modo CFB (modo de retroalimentación de texto cifrado)
CFB también se conoce como modo de retroalimentación de texto cifrado El grupo de texto cifrado anterior se enviará a la entrada del algoritmo criptográfico, y el resultado de salida se XOR con el texto plano. A diferencia de los modos ECB y CBC que solo pueden cifrar datos de bloque, CFB puede convertir texto de cifrado de bloque (Block Cipher) en texto de cifrado de flujo.

El proceso de cifrado y descifrado es el siguiente:
Inserte la descripción de la imagen aquí

Modo OFB (modo de retroalimentación de salida)
OFB también se denomina modo de retroalimentación de salida La salida del conjunto anterior de algoritmos criptográficos se ingresará en la entrada del siguiente conjunto de algoritmos criptográficos. Primero use el cifrado de bloque para generar el flujo de claves, y luego XOR el flujo de claves con el flujo de texto sin formato para obtener el flujo de texto cifrado. El descifrado es generar primero el flujo de claves con el cifrado de bloque y luego XOR el flujo de claves con el flujo de texto cifrado En texto plano, debido a la simetría de la operación XOR, el proceso de cifrado y descifrado es exactamente el mismo.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Criptosistema asimétrico

Extensión de Euclides para resolver ecuaciones de congruencia

1. Resuelve el sistema de ecuaciones de congruencia:
x ≡ 12 (mod 25)
x ≡ 9 (mod 26)
x ≡ 23 (mod 27)

Las ecuaciones anteriores son equivalentes ax = 25a + 12 = 26b + 9 = 27c + 23.
Cambia los términos para obtener:
①: 25a-27c = 23-12 = 11
②: 26b-25a = 12-9 = 3

En primer lugar, use Euclidean para expandir Euclidean:

27 = 25×1 + 2
25 = 2×7 + 11
则: 
11 = 25 - 2×7
	 = 25 - (27-25) ×7
	 = 25×8 - 27×7
所以a=8, c=7 
代入x = 25a + 12  = 27c + 23 得:
x = 212

Obtener la ecuación combinada x = 212 + 25 × 27t, es decir: x ≡ 212 (mod 675)
y luego fusionar con x ≡ 9 (mod 26)

x = 212 + 675t = 26b + 9
26b - 675t = 203
675 = 26×25+25
25 = 25×1
所以:  
203 = (26-25)×203
	= (26 - (675-26*25))×203
	=  26×5278 - 675×203
b=5278 , t=203
代入得x = 137237

Se obtiene la ecuación combinada x = 137237 + 25 × 27 × 26t: x ≡ 137237 (mod 17550), x = 14387
x = 14387 + 17550n (n∈Z)

2. Resuelve las siguientes ecuaciones de congruencia:
13x ≡ 4 (mod 99)
15x ≡ 56 (mod 101)

Este tipo de ecuaciones de congruencia con coeficientes hace que la gente sea desalentadora, pero no evita el uso de euclidianos extendidos.
Primero elimine los coeficientes:
x ≡ 46 (mod 99)
x ≡ 98 (mod 101) Los
pasos para eliminar los coeficientes son los siguientes : Método de ecuación binaria indefinida:
13x ≡ 4 (mod 99) se transforma en 13x-99y = 4
y luego euclidiana extendida:
13 × 46-99 × 6 = 4
x = 46, y = 6
por lo que la ecuación indefinida 13x- Todos los las soluciones de 99y = 4 son
x = 46 + 99t
y = 6 + 13t,
por lo que la solución de la ecuación de congruencia original es: x ≡ 46 (mod 99)

Después de eliminar los coeficientes, se convierte en un conjunto básico de resolución de ecuaciones de congruencia:
x = 99a + 46 = 101a + 98
Elimina x para obtener: 99a-101b = 52
Expande Euclidean para caminar: x = 7471 (mod 9999)
x = 9999 n + 7471 (n ∈ Z)

Solución primitiva

Cuando el orden de un módulo n es φ (n), es decir, si y solo si x es un múltiplo de φ (n), de modo que ax ≡1 (mod n) se cumple, entonces a se llama el elemento primitivo de n .

Si encuentra el elemento primitivo de 11: los
pasos son los siguientes:
1. Utilice la función de Euler para encontrar φ (11) = 11-1 = 10
2. Realice la factorización prima de Euler de 10 10 = 2 * 5
3. Calcule: 2 cuadrado = 4 mod 11! = 1 y 2 elevado a la quinta potencia mod 11! = 1
entonces 2 es un elemento primitivo de 11

. . . Esto es un poco más fácil, solo usa otro número para
encontrar el elemento primitivo de 7:
1.φ (7) = 6
2. 6 = 2 * 3
3. 2 mod cuadrado 7! = 1, pero 2 elevado al tercer mod de potencia 7 = 1, entonces 2 no lo es,
continúa hacia abajo. . El cuadrado de 3 mod7! = 1 y la tercera potencia de 3 mod7! = 1 Entonces 3 es un elemento primitivo de 7.

Entonces la esencia es Inserte la descripción de la imagen aquí
ser permanente ~

Proceso de algoritmo RSA

Uno, generación de claves

  1. Seleccione al azar dos números primos desiguales pyq, (cuanto más grandes sean los dos números primos, más difícil será descifrarlos). Para la conveniencia de los ejemplos, seleccionamos 5 y 11

  2. Calcule el producto de pyq n y la función de Euler φ (n)
    n = 5 × 11 = 55
    φ (n) = (p-1) (q-1) = 40

  3. Elija aleatoriamente un número entero b, la condición es 1 <b <φ (n), y by φ (n) son primos relativos ... Elija 3 para un cálculo sencillo

  4. Calcule el elemento inverso modular de b en φ (n) a
    a ≡ b -1 (mod φ (n)) ≡ 3 -1 mod 40

    Es decir: a × 3 ≡ 1 mod 40
    (Algunos amigos pueden no saber cómo conseguirlo ... a = n × 40 + 3 -1 , ambos lados de la ecuación se multiplican por 3, es decir, 3a = 3n × 40 + 1)

    En este momento, hemos llegado a la conocida solución extendida de Euclides de ecuaciones indefinidas. . Si no está familiarizado, consulte el artículo anterior sobre Algoritmo de Euclides, Euclides extendido y Teorema restante chino para practicar más.

    a × 3 ≡ 1 mod 40 = >> 3a - 40y = 1

    Obtener: a = 27, y = 2 es un conjunto de soluciones de la ecuación indeterminada anterior

  5. Bien, aquí para ordenar los resultados del cálculo de Alice:
    clave pública pk: (n = 55, b = 3)
    clave privada sk: (p = 5, q = 11, a = 27)

    (En aplicaciones reales, los datos de clave pública y clave privada se expresan en formato ASN.1)

En este punto, nuestra fase de generación de pares de claves pública y privada ha terminado y el cifrado comienza a continuación.

2. Cifrado y descifrado
Suponiendo que Bob quiere enviar información cifrada x a Alice, cifrará x con la clave pública de Alice (n, b).
Importante: x debe ser un número entero (la cadena puede tomar valores ascii) y x debe ser menor que n.

Aquí n en nuestro ejemplo es relativamente pequeño, por lo que necesitamos dividir el texto plano para el cifrado múltiple:

Supongamos que ciframos el texto sin formato 987654
uno por uno:
Ek (x) = x b (mod n) = 9 3 mod 55 = 14
Ek (x) = x b (mod n) = 8 3 mod 55 = 17
Ek (x) = x b (módulo n) = 7 3 módulo 55 = 13
Ek (x) = x b (módulo n) = 6 3 módulo 55 = 51
Ek (x) = x b (módulo n) = 5 3 módulo 55 = 15
Ek (x) = x segundo (modelo n) = 4 3 mínimo 55 = 9

El resultado final en texto plano es: 14 17 13 51 15 9

Después de eso, para Alice, autopromoción y densificación:
Dk (y) = y a (mod n) = 14 27 mod 55 = 9
Dk (y) = y a (mod n) = 17 27 mod 55 = 8
Dk ( y) = y a (mod n) = 13 27 mod 55 = 7
Dk (y) = y a (mode n) = 51 27 mod 55 = 6
Dk (y) = y a (mode n) = 15 27 mod 55 = 5
Dk (y) = y a (mod n) = 9 27 mod 55 = 4

Calcular el texto sin formato: 987654

Algoritmo de cifrado ElGamal

1. Generación de claves

  1. Para Bob, primero debemos seleccionar al azar un número primo grande p, y se requiere que p-1 tenga un factor primo grande. Luego elija un elemento primitivo α módulo p. Publica p y α. Para la comodidad del cálculo, tomamos p = 37, luego un elemento primitivo de Z37 α = 2.

  2. Seleccione aleatoriamente un entero d como clave, 2≤d≤p-2. Elegimos d = 5,

  3. Calcular β = α d mod p, β = 2 5 mod 37 = 32

2. Cifrado
Suponga que Alice quiere enviar un mensaje x = 29

  1. Primero seleccione un número aleatorio k, asumiendo k = 7,
    luego: y1 = α k mod p = 2 7 mod 37 = 17
    y2 = x β k mod p = 29 × 32 7 mod 37 = 33
  2. Envía el texto cifrado y = (17,33) a Bob

3. Desencriptar a
Bob recibe el texto cifrado y = (17,33) y restaura el texto sin formato de la siguiente manera:
x = y2 (y1 d ) -1 mod p
= 33 (17 5 ) -1 mod 37
= 33 × 2 mod 37
= 29

Supongo que te gusta

Origin blog.csdn.net/Pioo_/article/details/112556653
Recomendado
Clasificación