Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre...

29
Tema 6 Teoría de la Complejidad 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 29 diapositivas Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid

Transcript of Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre...

Page 1: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Tema 6Teoría de la Complejidad

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/02Archivo con 29 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Page 2: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 2

© Jorge Ramió Aguirre Madrid (España) 2002

El contenido de este temacorresponde sólo a una breveintroducción a la complejidad de los algoritmos, con el objetode 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.

Nota del autor

Page 3: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 3

© Jorge Ramió Aguirre Madrid (España) 2002

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.

Introducción a la teoría de la complejidad

Page 4: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 4

© Jorge Ramió Aguirre Madrid (España) 2002

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.

Número de operaciones bit (1)

Page 5: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 5

© Jorge Ramió Aguirre Madrid (España) 2002

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)

Ejemplo

Número de operaciones bit (2)

Page 6: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 6

© Jorge Ramió Aguirre Madrid (España) 2002

Si f (n) = 4n2 + 2n + 5 ¿ f = O(n2)?

¿se cumple que cog(n) = con2 f (n)? Sea co = 6

co no cono2 f (n) = 4n2 + 2n + 5 ¿con2 f (n)?

6 1 6 11 No

6 2 24 25 No

6 3 54 38 Sí

6 4 96 77 Sí

Se cumple

siempre

Luego, la complejidad de f (n) es exponencial.

La función O(n)

Page 7: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 7

© Jorge Ramió Aguirre Madrid (España) 2002

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.

Tiempos de ejecución (1)

Page 8: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 8

© Jorge Ramió Aguirre Madrid (España) 2002

• 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.

Tiempos de ejecución (2)

+ Operación binaria: n+m (de k bits cada uno)

Operación binaria: nm (de k y h bits respectivamente)

Page 9: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 9

© Jorge Ramió Aguirre Madrid (España) 2002

• 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).

Si t = 1, el sistema es lineal Suma

Si t = 2, el sistema es cuadrático Producto

Si t = 3, el sistema es cúbico mcd Euclides

Algoritmos de complejidad lineal

Ejemplos

Page 10: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 10

© Jorge Ramió Aguirre Madrid (España) 2002

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.

Ejemplo: El tiempo de ejecución de un algoritmo es O(log3 n). Si doblamos la entrada, ¿en cuánto aumenta este tiempo?

Ejemplo de complejidad lineal

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.

Page 11: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 11

© Jorge Ramió Aguirre Madrid (España) 2002

• 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).

Para t = 2, será exponencial de orden 2

Para t = 3, será exponencial de orden 3

n!

Algoritmos de complejidad exponencial

Ejemplo

Page 12: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 12

© Jorge Ramió Aguirre Madrid (España) 2002

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.

Ejemplo: El tiempo de ejecución de un algoritmo es O(n3). Si doblamos la entrada, ¿en cuánto aumenta este tiempo?

Ejemplo de complejidad exponencial

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.

Page 13: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 13

© Jorge Ramió Aguirre Madrid (España) 2002

• 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

Si suponemos un ordenador capaz de realizar 109 instrucciones por segundo se tiene el cuadro:

Comparativas de complejidad (1)

Page 14: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 14

© Jorge Ramió Aguirre Madrid (España) 2002

Entrada O(n) O(n2) O(n3) O(2n)

n = 10 10-8 seg 10-7 seg 10-6 seg 10-6 seg

n = 102 10-7 seg 10-5 seg 10-3 seg 41013 años

n = 103 10-6 seg 10-3 seg 1 seg Muy grande

Entrada/109: Para n = 100 O(n2) = 1002/109 = 10-5 seg

Tabla comparativa de tiempos

Incrementos de un orden de magnitud

Computacionalmente imposible

Page 15: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 15

© Jorge Ramió Aguirre Madrid (España) 2002

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 ...

Veremos cada

uno de ellos

Problemas de tipo NP

Page 16: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 16

© Jorge Ramió Aguirre Madrid (España) 2002

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?

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.

Page 17: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 17

© Jorge Ramió Aguirre Madrid (España) 2002

S1 = a1+a2+a3 S2 = a1+a2 S3 = a1+a3 S4 = a1

S5 = a2+a3 S6 = a2 S7 = a3 S8 =

S = a1 + a2 + a3 A = {a1, a2, a3}

¿Se incluye a1 en la suma S?

Sí No

¿Se incluye a2 en la suma?

Sí No Sí No

¿Se incluye a3?

Sí No Sí No Sí No Sí No

S1 S2

a1

a3 a3

a2

S3 S4 S7 S8S5 S6

a3a3

a2

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

Repita con {2, 4, 9, 15}

Hemos tenido que evaluar 23 = 8 valores (carácter exponencial)

Ejemplo del problema de la mochila

Page 18: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 18

© Jorge Ramió Aguirre Madrid (España) 2002

¿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.

Esto dará lugar a los criptosistemas de mochila tramposa que veremos en un próximo capítulo.

Interés de las mochilas en criptografía

Page 19: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 19

© Jorge Ramió Aguirre Madrid (España) 2002

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.

El problema de la factorización

Page 20: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 20

© Jorge Ramió Aguirre Madrid (España) 2002

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

Page 21: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 21

© Jorge Ramió Aguirre Madrid (España) 2002

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 1667 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

Page 22: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 22

© Jorge Ramió Aguirre Madrid (España) 2002

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) 113131 c) 1.0131.031 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) 629 b) 17.399 c) 1.052.627 calcule... En el caso a) son primos de 2 dígitos, en c) de 3 y en d) de 4.

Ejemplo problema factorización (1)

No vale usar calculadora..

.

¿A qué conclusiones puede llegar

ahora?

Page 23: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 23

© Jorge Ramió Aguirre Madrid (España) 2002

Cálculo fácil o polinomial a) 1331 b) 113131 c) 10131031A medida que aumenta el tamaño de la entrada, el tiempo de cálculo aumenta proporcionalmente.

Cálculo difícil o no polinomial a) 629 b) 17.399 c) 1.052.627Aquí 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).

Ejemplo problema factorización (2)

Un computador experimentará lo mismo....

Page 24: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 24

© Jorge Ramió Aguirre Madrid (España) 2002

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.

El problema del logaritmo discreto

Page 25: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 25

© Jorge Ramió Aguirre Madrid (España) 2002

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 41 c) 9211 mod 251

Ejemplo problema logaritmo discreto (1)

54 = 625 817 = 2.251.799.813.685.2489211 = 3.996.373.778.857.415.671.808

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.

Page 26: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 26

© Jorge Ramió Aguirre Madrid (España) 2002

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 41 c) log92 217 mod 251

Ejemplo problema logaritmo discreto (2)

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 = 5 52 mod 7 = 4 53 mod 7 = 6

54 mod 7 = 2 55 mod 7 = 3 56 mod 7 = 1

En media deberá recorrer la mitad del espacio...

Page 27: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 27

© Jorge Ramió Aguirre Madrid (España) 2002

log2 1 mod 13 = 0 log2 2 mod 13 = 1 log2 3 mod 13 = 4

log2 4 mod 13 = 2 log2 5 mod 13 = 9 log2 6 mod 13 = 5

log2 7 mod 13 = 11 log2 8 mod 13 = 3 log2 9 mod 13 = 8

log2 10 mod 13 = 10 log2 11 mod 13 = 7 log2 12 mod 13 = 6

Logaritmos discretos en p = 13 (1)

20 mod 13 = 1 21 mod 13 = 2 22 mod 13 = 423 mod 13 = 8 24 mod 13 = 3 25 mod 13 = 626 mod 13 = 12 27 mod 13 = 11 28 mod 13 = 929 mod 13 = 5 210 mod 13 = 10 211 mod 13 = 7Luego, 2 es un generador g en el cuerpo p = 13.

Además se cumple que ap-1 mod p = a0 mod p = 1.

Es decir

Page 28: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 28

© Jorge Ramió Aguirre Madrid (España) 2002

log3 1 mod 13 = 0 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

Logaritmos discretos en p = 13 (2)

30 mod 13 = 1 31 mod 13 = 3 32 mod 13 = 9

33 mod 13 = 1 34 mod 13 = 3 35 mod 13 = 9

36 mod 13 = 1 37 mod 13 = 3 38 mod 13 = 9

39 mod 13 = 1 310 mod 13 = 3 311 mod 13 = 9

En p=13, el 2 es generador, pero no así el número 3...

Luego

NE = no existe

Page 29: Tema 6 Teoría de la Complejidad Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 29

© Jorge Ramió Aguirre Madrid (España) 2002

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.

¿Hay más funciones NP?

Fin del Tema 6