Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Curso de Seguridad Informática
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Ultima actualización: 10/02/02 Archivo con 29 diapositivas NOTAS SOBRE EL TEMA: Material Docente de Libre Distribución Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid 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. Curso de Seguridad Informática © Jorge Ramió Aguirre © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
2
Nota del autor El contenido de este tema corresponde sólo a una breve
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Nota del autor El contenido de este tema corresponde sólo a una breve introducción a la complejidad de los algoritmos, con el objeto de que el lector pueda hacerse una idea de la importancia de este factor en el análisis y diseño de los algoritmos de cifra y firma digital que se verán en este curso. La fortaleza de éstos y de los protocolos que los incluyen dependerá precisamente de la complejidad asociada al criptoanálisis o ataque de los mismos. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
3
Introducción a la teoría de la complejidad
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Introducción a la teoría de la complejidad La teoría de la complejidad de los algoritmos nos permitirá conocer si un algoritmo tiene fortaleza y tener así una idea de su vulnerabilidad computacional. Complejidad Computacional Los algoritmos se clasifican según el tiempo de ejecución y en función del tamaño de la entrada. Complejidad Polinomial Complejidad Exponencial Esto dará lugar a tipos de “problemas” que nos interesarán. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
4
Número de operaciones bit (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Número de operaciones bit (1) OPERACIONES BIT SUMA: Si deseamos sumar dos números binarios n y m, ambos de k bits (el método es conocido por todos) deberemos realizar k operaciones bit puesto que cada operación básica con los dígitos de una columna es una operación bit. MULTIPLICACIÓN: Para la multiplicación de un número n de k bits por un número m de h bits, el número de operaciones bit será igual a 2kh. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
5
Número de operaciones bit (2)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Número de operaciones bit (2) Las operaciones dependerán del tamaño de la entrada por lo que esta complejidad se expresará en términos del tiempo T necesario para el cálculo del algoritmo y del espacio S que utiliza en memoria, y se expresará mediante una función f (n), donde n es el tamaño de la entrada. Esta función será una aproximación pues el resultado exacto dependerá de la velocidad del procesador. f (n) = O(g(n)) f = O(n) ssi co,no / f(n) cog(n) NOTAS SOBRE EL TEMA: Ejemplo Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
6
La función O(n) Si f (n) = 4n2 + 2n + 5 ¿ f = O(n2)?
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución La función O(n) Si f (n) = 4n2 + 2n ¿ f = O(n2)? ¿se cumple que cog(n) = con2 f (n)? Sea co = 6 co no cono2 f (n) = 4n2 + 2n ¿con2 f (n)? No No Sí Sí NOTAS SOBRE EL TEMA: Se cumple siempre Luego, la complejidad de f (n) es exponencial. Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
7
Tiempos de ejecución (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Tiempos de ejecución (1) En la expresión O(n) aparecerá el término que domina al crecer el valor de n. El tiempo de ejecución de un algoritmo T1 que realiza 2n+1 operaciones es de tipo O(n); uno T2 que realiza 3n2+n+3 operaciones será de tipo O(n2), etc. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
8
Tiempos de ejecución (2)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Tiempos de ejecución (2) Para realizar la suma de la diapositiva anterior necesitaremos O(n) = O(log n) operaciones bit y para el caso de la multiplicación, éstas serán O(nm) = O(log n log m) operaciones bit. NOTAS SOBRE EL TEMA: + Operación binaria: n+m (de k bits cada uno) Operación binaria: nm (de k y h bits respectivamente) Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
9
Algoritmos de complejidad lineal
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Algoritmos de complejidad lineal Un algoritmo se dice que tiene tiempo de ejecución polinomial si éste depende polinómicamente del tamaño de la entrada. Si la entrada es de tamaño n y t es un entero, el número de operaciones bit será O(logt n). Ejemplos Si t = 1, el sistema es lineal Suma NOTAS SOBRE EL TEMA: Si t = 2, el sistema es cuadrático Producto Si t = 3, el sistema es cúbico mcd Euclides Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
10
Ejemplo de complejidad lineal
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo de complejidad lineal Ejemplo: El tiempo de ejecución de un algoritmo es O(log3 n). Si doblamos la entrada, ¿en cuánto aumenta este tiempo? Solución: En el primer caso el tiempo es O(log3 n) y en el segundo O(log3 2n). Luego para este sistema lineal el tiempo se incrementará en log3 2 operaciones bit. NOTAS SOBRE EL TEMA: Estos son los denominados problemas fáciles y son los que involucrarán un proceso de cifra y descifrado (o firma) por parte del o de los usuarios autorizados. Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
11
Algoritmos de complejidad exponencial
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Algoritmos de complejidad exponencial Un algoritmo se dice que tiene tiempo de ejecución exponencial si éste depende exponencialmente del tamaño de la entrada. Si la entrada es de tamaño n y t es un entero, el número de operaciones bit será O(nt). Ejemplo NOTAS SOBRE EL TEMA: Para t = 2, será exponencial de orden 2 n! Para t = 3, será exponencial de orden 3 Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
12
Ejemplo de complejidad exponencial
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo de complejidad exponencial Ejemplo: El tiempo de ejecución de un algoritmo es O(n3). Si doblamos la entrada, ¿en cuánto aumenta este tiempo? Solución: En el primer caso el tiempo es O(n3) y en el segundo O(2n3) = O(8n3). Para este sistema exponencial el tiempo se incrementará en 8 operaciones bit. NOTAS SOBRE EL TEMA: Estos son los denominados problemas difíciles y son a los que deberá enfrentarse un criptoanalista o atacante que desea romper una cifra o la clave de un usuario. Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
13
Comparativas de complejidad (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Comparativas de complejidad (1) Los algoritmos polinómicos y exponenciales se comparan por su complejidad O(nt). Polinómico constante O(1) Polinómico lineal O(n) Polinómico cuadrático O(n2) Polinómico cúbico O(n3) etc. Exponencial O(dh(n)) donde d es una constante y h(n) un polinomio NOTAS SOBRE EL TEMA: Si suponemos un ordenador capaz de realizar 109 instrucciones por segundo se tiene el cuadro: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
14
Tabla comparativa de tiempos
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Tabla comparativa de tiempos Entrada O(n) O(n2) O(n3) O(2n) n = seg seg seg seg n = seg seg seg 1013 años n = seg seg seg Muy grande NOTAS SOBRE EL TEMA: Incrementos de un orden de magnitud Computacionalmente imposible Entrada/109: Para n = 100 O(n2) = 1002/109 = 10-5 seg Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
15
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución
Problemas de tipo NP En criptografía nos interesan las funciones f(x) de un solo sentido, es decir: Fácil calcular f(x) pero muy difícil calcular f-1(x) salvo que conozcamos un secreto o trampa Porque dan lugar a problemas tipo NP, polinomiales no deterministas, computacionalmente difíciles de tratar. Problema de la mochila Problema de la factorización Problema del logaritmo discreto Otros ... NOTAS SOBRE EL TEMA: Veremos cada uno de ellos Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
16
El problema de la mochila
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución El problema de la mochila Es un problema de tipo NP en el que el algoritmo debe realizar en cada paso una selección iterativa entre diferentes opciones. Enunciado: Dada una mochila de determinadas dimensiones de alto, ancho y fondo, y un conjunto de elementos de distintos tamaños menores que ella y de cualquier dimensión, ... ¿es posible llenar la mochila (completa) con distintos elementos de ese conjunto sin repetir ninguno de ellos? NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
17
Ejemplo del problema de la mochila
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo del problema de la mochila S1 = a1+a2+a3 S2 = a1+a2 S3 = a1+a3 S4 = a1 S5 = a2+a S6 = a S7 = a S8 = Sea una mochila con 4 elementos {2, 4, 9, 10} ¿Cuántas sumas posibles hay? Solución: 24 = 16 , 2, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 19, 21, 23, 25. Los resultados son todos distintos: una casualidad NOTAS SOBRE EL TEMA: Repita con {2, 4, 9, 15} Hemos tenido que evaluar 23 = 8 valores (carácter exponencial) Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
18
Interés de las mochilas en criptografía
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Interés de las mochilas en criptografía ¿Por qué tiene interés este problema en criptografía? a) Es de tipo NP completo: su resolución por lo general implica una complejidad exponencial. Luego, será difícil de atacar o criptoanalizar. b) Existe un caso en el que la resolución es lineal y, si la solución existe, es única. Se da si A = {a1, a2, a3, .., an} está ordenado de menor a mayor y en donde cada ai es mayor que la suma de los aj que le preceden. NOTAS SOBRE EL TEMA: Esto dará lugar a los criptosistemas de mochila tramposa que veremos en un próximo capítulo. Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
19
El problema de la factorización
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución El problema de la factorización Dado un número n que es el resultado del producto de dos primos n = pq, se pide encontrar estos factores. Cuando el valor n es muy grande, el Problema de la Factorización de Números Grandes PFNG se vuelve computacionalmente intratable. No obstante, el caso inverso, dado dos números p y q, encontrar el resultado pq = n, se trata de un problema de tipo polinomial. Este problema se usará en la generación del par de claves del sistema de cifra con clave pública RSA. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
20
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución
Tabla de primos del 1 al 1000 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 711 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
21
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución
Tabla de primos del 1001 al 2000 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1699 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
22
Ejemplo problema factorización (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo problema factorización (1) Cálculo fácil o polinomial (función directa) Calcule “a mano” los siguientes productos de dos primos y tome el tiempo aproximado que tarda en la operación: a) 1331 b) 113 c) 1.013 calcule... Cálculo difícil o no polinomial (función inversa) Usando la criba de Eratóstenes, factorice en dos primos los siguientes números y vuelva a tomar el tiempo empleado: a) b) c) calcule... En el caso a) son primos de 2 dígitos, en c) de 3 y en d) de 4. No vale usar calculadora... ¿A qué conclusiones puede llegar ahora? NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
23
Ejemplo problema factorización (2)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo problema factorización (2) Cálculo fácil o polinomial a) 1331 b) 113 c) 10131031 A medida que aumenta el tamaño de la entrada, el tiempo de cálculo aumenta proporcionalmente. Cálculo difícil o no polinomial a) b) c) Aquí resulta evidente que el tiempo de cálculo (da igual que el algoritmo sea éste u otro más depurado y eficaz) aumenta mucho al incrementar en un dígito los números en cuestión. Solución: a), b) y c) son el producto de los números primos inmediatamente superiores a los de arriba (véase la tabla). Un computador experimentará lo mismo.... NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
24
El problema del logaritmo discreto
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución El problema del logaritmo discreto Dado un par de enteros y que pertenecen al Campo de Galois GF(p), se pide encontrar un entero x de forma que x = log mod p. Si el valor p es muy grande, el Problema del Logaritmo Discreto PLD es computacionalmente intratable. No obstante, el caso inverso, dado dos números y x, encontrar = x mod p es un problema polinomial. Este problema se usará en la creación de las claves del sistema de cifra con clave pública ElGamal. NOTAS SOBRE EL TEMA: Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
25
Ejemplo problema logaritmo discreto (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo problema logaritmo discreto (1) Cálculo fácil o polinomial (función directa) Calcule “a mano” las siguientes exponenciaciones mod p y tome el tiempo aproximado que tarda en la operación: a) 54 mod 7 b) 817 mod c) 9211 mod 251 54 = 625 817 = 9211 = NOTAS SOBRE EL TEMA: Nota: Haciendo uso de la propiedad de reducibilidad del capítulo 5, podrá reducir significativamente el tiempo de cálculo. No obstante, este tiempo será de tipo polinomial según el tamaño de la entrada. Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
26
Ejemplo problema logaritmo discreto (2)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Ejemplo problema logaritmo discreto (2) Cálculo difícil o no polinomial (función inversa) Aunque existen varios algoritmos para este tipo de cálculos (al igual que para la factorización) use la fuerza bruta que se explica a continuación para encontrar los siguientes valores y vuelva a tomar el tiempo empleado: a) log5 2 mod 7 b) log8 39 mod c) log mod 251 Aplicando fuerza bruta en el 1er caso (la base elevada a todos los restos de p) al final se obtiene que log5 2 mod 7 = 4. 51 mod 7 = mod 7 = mod 7 = 6 54 mod 7 = mod 7 = mod 7 = 1 NOTAS SOBRE EL TEMA: En media deberá recorrer la mitad del espacio... Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
27
Logaritmos discretos en p = 13 (1)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Logaritmos discretos en p = 13 (1) log2 1 mod 13 = log2 2 mod 13 = log2 3 mod 13 = 4 log2 4 mod 13 = log2 5 mod 13 = log2 6 mod 13 = 5 log2 7 mod 13 = log2 8 mod 13 = log2 9 mod 13 = 8 log2 10 mod 13 = log2 11 mod 13 = log2 12 mod 13 = 6 20 mod 13 = mod 13 = mod 13 = 4 23 mod 13 = mod 13 = mod 13 = 6 26 mod 13 = mod 13 = mod 13 = 9 29 mod 13 = mod 13 = mod 13 = 7 Luego, 2 es un generador g en el cuerpo p = 13. Además se cumple que ap-1 mod p = a0 mod p = 1. NOTAS SOBRE EL TEMA: Es decir Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
28
Logaritmos discretos en p = 13 (2)
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución Logaritmos discretos en p = 13 (2) En p=13, el 2 es generador, pero no así el número 3... Luego 30 mod 13 = mod 13 = mod 13 = 9 33 mod 13 = mod 13 = mod 13 = 9 36 mod 13 = mod 13 = mod 13 = 9 39 mod 13 = mod 13 = mod 13 = 9 log3 1 mod 13 = log3 2 mod 13 = NE log3 3 mod 13 = 1 log3 4 mod 13 = NE log3 5 mod 13 = NE log3 6 mod 13 = NE log3 7 mod 13 = NE log3 8 mod 13 = NE log3 9 mod 13 = 2 log3 10 mod 13 = NE log3 11 mod 13 = NE log3 12 mod 13 = NE NOTAS SOBRE EL TEMA: NE = no existe Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
29
Curso de Seguridad Informática en Diapositivas Material Docente de Libre Distribución
¿Hay más funciones NP? Existen otros problemas matemáticos que dan lugar a problemas del tipo NP basados en estas funciones unidireccionales (one way functions) pero las dos últimas funciones vistas –factorización de números grandes y logaritmo discreto- son las que más uso tienen, de momento, en la criptografía. Algunos de ellos se presentarán en el Tema dedicado a los Protocolos Criptográficos. NOTAS SOBRE EL TEMA: Fin del Tema 6 Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. © Jorge Ramió Aguirre Tema 6: Teoría de la Complejidad.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.