La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 11 Cifrado con Mochilas de Clave Pública Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge.

Presentaciones similares


Presentación del tema: "Tema 11 Cifrado con Mochilas de Clave Pública Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge."— Transcripción de la presentación:

1 Tema 11 Cifrado con Mochilas de Clave Pública Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza su uso, reproducción en computador e impresión en papel sólo para fines docentes, respetando siempre los derechos del autor. Ultima actualización: 10/02/02 Archivo con 24 diapositivas Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid

2 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.2 El problema matemático de la mochila referido ahora a números y no elementos que entran en ella puede plantearse como sigue: El problema de la mochila (1) Dada la siguiente secuencia de m números enteros positivos S = {S 1, S 2, S 3,..., S m-2, S m-1, S m } y un valor u objetivo T, se pide encontrar un subconjunto de S S S = {S a, S b,..., S j } que cumpla con el objetivo: T = S S = S a + S b S j

3 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.3 Si los elementos de la mochila son números grandes, no están ordenados y no siguen una distribución supercreciente -en este tipo de distribución el elemento iésimo S i de la mochila es mayor que la suma de todos sus antecesores-, la resolución de este problema es de tipo no polinomial. El problema de la mochila (2) Se trata de encontrar los vectores V i de 0s y 1s de forma que: S i V i = T i Si se cumple esta relación, la mochila tiene solución.

4 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.4 Tenemos la mochila S = {20, 5, 7, 36, 13, 2} con m = 6 y el valor T = 35. Se pide encontrar una solución, si es que ésta existe, en una única vuelta. SOLUCIÓN: Sin hacer ningún cálculo mental, podemos recorrer todos los valores (se puede descartar el elemento S 4 pues es mayor que el objetivo T) de la mochila S, bien de izquierda a derecha o al revés (da igual el sentido elegido) y restaremos el elemento iésimo si es menor que el objetivo T en esa etapa del algoritmo, como se indica: Un ejemplo del problema de la mochila (1)

5 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.5 S = {S 1, S 2, S 3, S 4, S 5, S 6 } = {20, 5, 7, 36, 13, 2} T = 35 S 1 = 20 ¿Es menor que objetivo T = 35? Sí T = = 15 S 2 = 5 ¿Es menor que objetivo T = 15? Sí T = 15-5 = 10 S 3 = 7 ¿Es menor que objetivo T = 10? Sí T = 10-7 = 3 S 4 = 36 ¿Es menor que objetivo T = 3? No T = 3 S 5 = 13 ¿Es menor que objetivo T = 3? No T = 3 S 6 = 2 ¿Es menor que objetivo T = 3? Sí T = 3-2 = 1 Se ha recorrido toda la mochila y NO se ha encontrado solución. V i = [1,0,0,0,1,1] Un ejemplo del problema de la mochila (2) En cambio sí existe una solución: S S = {S 1 +S 5 +S 6 } = = 35

6 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.6 Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos ahora el valor T = 27, encontramos tres soluciones válidas: S S1 = {S 1 +S 3 } = 20+7 S S2 = {S 1 +S 2 +S 6 } = S S3 = {S 2 +S 3 +S 5 +S 6 } = Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación de descifrado debe ser única ya que proviene de un único mensaje. La solución será el uso de las denominadas mochilas simples en que la solución al problema de la mochila, si existe, ES ÚNICA. ¿Puede haber soluciones múltiples?

7 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.7 Una mochila es simple o supercreciente si el elemento S k es mayor que la suma de los elementos que le anteceden: k-1 S k S j j = 1 k-1 S k S j j = 1 Por ejemplo, la mochila S = {2, 3, 7, 13, 28, 55, 110, 221} con m = 8 elementos es supercreciente y la solución para un objetivo T = 148 es única: V i = [S 2 +S 3 +S 5 +S 7 ]. Para resolver cualquier valor T válido para esta mochila, ésta se recorre de derecha a izquierda una sola vez con el algoritmo ya visto. Compruébelo para T = 289, 196 y 353. Mochilas simples

8 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.8 Se representa la información en binario y se pasan los bits por la mochila. Los bits 1s incluyen en la suma el elemento al que apuntan y los bits 0s no. Con la mochila S = {2, 4, 10, 19, 40} de m = 5 elementos cifraremos el mensaje M = ADIOS. SOLUCIÓN: Usando código ASCII/ANSI: A = ; D = ; I = ; O = ; S = M = C = (4), (10+40), (19), (10), (2+19), ( ), (2+4+19), ( ) C = 4, 50, 19, 10, 21, 61, 25, 61 Operación de cifra con mochila simple

9 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.9 La operación de descifrado es elemental: pasamos por la mochila los valores de C, encontramos el vector V i y por último agrupamos el resultado en grupos de 8 bits. En este caso 4 = 4 V i = 01000, 50 = V i = 00101, etc. PROBLEMA: Es muy fácil cifrar, descifrar y también criptoanalizar el sistema de cifra porque se usa la mochila simple. Mochilas de Merkle y Hellman Una solución Descifrado con mochila simple C = 4, 50, 19, 10, 21, 61, 25, 61 S = {2, 4, 10, 19, 40}

10 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.10 En 1978 Ralph Merkle y Martin Hellman proponen un sistema de cifra de clave pública denominado Mochila con Trampa de Merkle y Hellman. El algoritmo se basa en crear una mochila difícil a partir de una mochila simple de forma que el cifrado se haga con la mochila difícil y el descifrado con la mochila simple o fácil. Se puede pasar fácilmente de la mochila simple a la difícil o viceversa usando una trampa. La trampa será nuestra clave secreta. La mochila difícil será nuestra clave pública. Mochila de Merkle y Hellman MH Hay otros sistemas de cifra basados en la mochila.

11 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.11 1.Se selecciona una mochila supercreciente de m elementos S = {S 1, S 2,..., S m }. 2.Se elige un entero (módulo de trabajo) mayor que la suma de los elementos de la mochila. 3.Se elige un entero primo relativo con. m S i i = 1 más fácil: 2 S m mcd(, ) = 1 Se asegura el inverso 4.Se multiplica S por mod. S i = S i mod Se recomienda que no tenga factores con los elementos de S Diseño mochila de Merkle y Hellman (1)

12 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.12 5.Se calcula el inverso de en el cuerpo. Clave privada:, = inv(, ) Clave pública: mochila S CIFRADO: C = S M como S = S mod C = S M mod DESCIFRADO: M = -1 C mod Entonces obtenemos: S M Esto se interpreta como encontrar los vectores que cumplan con un valor de T. Diseño mochila de Merkle y Hellman (2)

13 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.13 Vamos a cifrar el mensaje M = Sol usando la mochila simple y supercreciente S = {3, 5, 12, 21}. 1. Elección de : 2 S = Elección de :mcd(, ) = 1 = 32 ( -1 = 38) 3. Mochila S:S = S mod S 1 = 32 3 mod 45 = 96 mod 45 = 6 S 2 = 32 5 mod 45 = 160 mod 45 = 25 S 3 = mod 45 = 384 mod 45 = 24 S 4 = mod 45 = 672 mod 45 = 42 Clave pública: S = {6,25,24,42} Clave privada: =45, -1 =38 Cifrado mochila de Merkle y Hellman (1)

14 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.14 Cifrado: M = Sol = C = (25+42), (24+42), (25+24), ( ), (25+24), (6+25) C = 67, 66, 49, 97, 49, 31 Como m = 4, cifraremos bloques de 4 bits, convirtiendo el mensaje a su equivalente en binario del código ASCII. Cifrado mochila de Merkle y Hellman (2) Clave pública: S = {6,25,24,42} Clave privada: = 45, -1 = 38

15 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.15 Cifrado: M = Sol = C = (25+42), (24+42), (25+24), ( ), (25+24), (6+25) C = 67, 66, 49, 97, 49, 31 Descifrado: mod 45=2546 mod 45 = mod 45=3686 mod 45 = mod 45=2508 mod 45 = mod 45=1862 mod 45 = mod 45=1862 mod 45 = mod 45=1178 mod 45 = 8 Como S = {3,5,12,21} M = = Sol Descifrado mochila de Merkle y Hellman Clave pública: S = {6,25,24,42} Clave privada: = 45, -1 = 38

16 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.16 Merkle y Hellman proponen los siguientes parámetros: a)Tamaño de la mochila m 100 b)Módulo uniforme en el siguiente intervalo: Intervalo : [2 2m+1 +1, 2 2m m+2 bits Si m = 100: todos los elementos de S son de 202 bits. c) Valores de S i elegidos uniformemente en el intervalo: Intervalo S i : [(2 i-1 -1) 2 m +1, 2 i-1 2 m Si m = 100: 1 S S S d)Elegir un valor x en el intervalo [2, -2. El factor se calcula como: = mcd (, x) Valores de diseño de mochilas M-H (1)

17 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.17 a) Mochila con m = 6 b) Intervalo : [2 2m+1 +1, 2 2m+2 -1 = [ , = [ , = [8.193, = c) Elección de los valores S i : i=1 : [( ) , (2 1-1 ) S 1 64 i=2 : [( ) , (2 2-1 ) S i=3 : [( ) , (2 3-1 ) S i=4 : [( ) , (2 4-1 ) S i=5 : [( ) , (2 5-1 ) S i=6 : [( ) , (2 6-1 ) S UNA ELECCIÓN S 1 = 39 S 2 = 72 S 3 = 216 S 4 = 463 S 5 = S 6 = Todos los elementos serán de (2m+2) = 14 bits Mochila con parámetros proporcionales (1)

18 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.18 d) Cálculo del factor. Buscamos un valor x en el intervalo [2, -2 = [2, 13513, por ejemplo x = Como el máximo común divisor entre = y x = es 265, luego = 9.805/265 = 37. Vamos a elegir: = 37 de forma que -1 = inv (37,13.515) = Luego, la mochila simple y la clave privada serán: S = {39, 72, 216, 463, 1.001, 1.996} Módulo: = = Mochila con parámetros proporcionales (2)

19 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.19 Mochila simple: S = {39, 72, 216, 463, 1.001, 1.996} Módulo: = Factor multiplicador: = 37; -1 = 4018 Clave privada S 1 = mod = S 2 = mod = S 3 = mod = S 4 = mod = S 5 = mod = S 6 = mod = Mochila con parámetros proporcionales (3) Mochila difícil: S = {1.443, 2.664, 7.882, 3.616, , 6.277} Clave pública

20 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.20 En el año 1982 Adi Shamir y Richard Zippel encuentran debilidades a las mochilas de Merkle-Hellman: Si se conoce el módulo (o puede deducirse)... Y si los dos primeros elementos (S 1 y S 2 ) de la mochila difícil se corresponden con los dos primeros elementos (S 1 y S 2 ) de la mochila simple y son primos con... Entonces podemos generar la mochila simple a partir de la difícil ya que encontraremos la clave secreta Esta debilidad, aunque tenga fuertes restricciones, no hace recomendable el uso de las mochilas M-H para el cifrado de la información... Fortaleza de las mochilas M-H

21 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.21 El ataque para m = 100 supone: a) Que los dos primeros elementos de S de 100 y 101 bits son mucho más pequeños que el módulo de 202 bits. b) Que podemos identificar los elementos S 1 y S 2 en la mochila difícil y hacerlos corresponder con S 1 y S 2. c) Que conocemos el módulo o podemos deducirlo. Con estos datos se trata de encontrar los valores de S 1 y S 2 además del factor de multiplicación. Con estos valores podemos generar la mochila fácil. Criptoanálisis de Shamir y Zippel

22 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública Se calcula q = (S 1 /S 2 ) mod Como S i = S i mod entonces: q = (S 1 /S 2 ) mod = [S 1 inv(S 2, )] mod Esto implica una condición: mcd (S 2, ) = 1 2. Se calculan todos los múltiplos modulares del valor q con multiplicadores en el rango [1, 2 m+1 ] = [1, ] CM = {1 q mod, 2 q mod,..., 2 m+1 q mod } 3. El candidato para S 1 será el valor más pequeño de CM. Pasos del ataque de Shamir y Zippel (1)

23 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública Encontrado el candidato para S 1 se calcula: = (S 1 /S 1) mod = [S 1 inv(S 1, )] mod Esto implica una nueva condición: mcd (S 1, ) = 1 5. Conocido encontramos -1 = inv(, ) y así calculamos todos los elementos de la mochila S i = S i -1 mod que debería ser del tipo supercreciente. 6. Si no se genera una mochila supercreciente, se elige el siguiente valor más pequeño del conjunto CM y así hasta recorrer todos sus valores. Si con este conjunto CM no se obtiene una mochila simple, se repite el punto 2 tomando ahora valores en el rango 2 m+i con i = 2, 3,... Pasos del ataque de Shamir y Zippel (2)

24 © Jorge Ramió Aguirre Madrid (España) 2002 Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública.24 Existen varios algoritmos propuestos como sistemas de cifra usando el problema de la mochila: el de Graham-Shamir, Chor-Rivest, etc. No obstante todos han sucumbido a los criptoanálisis y en la actualidad en el único entorno que se usan es en la protección de diversos programas de aplicación, en forma de hardware que se conecta en la salida paralela del computador para descifrar el código ejecutable de esa aplicación dejando, sin embargo, activa la salida a impresora. De esta manera sólo en aquel sistema con la mochila instalada se puede ejecutar el programa. Usos de protección con mochilas Fin del Tema 11


Descargar ppt "Tema 11 Cifrado con Mochilas de Clave Pública Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge."

Presentaciones similares


Anuncios Google