Documentos de Académico
Documentos de Profesional
Documentos de Cultura
v 4.1
Material Docente de
Libre Distribucin
Este archivo forma parte de un curso completo sobre Seguridad Informtica y Criptografa. Se autoriza el
uso, reproduccin en computador y su impresin en papel, slo con fines docentes y/o personales,
respetando los crditos del autor. Queda prohibida su comercializacin, excepto la edicin en venta en el
Departamento de Publicaciones de la Escuela Universitaria de Informtica de la Universidad Politcnica de
Madrid, Espaa.
Curso de Seguridad Informtica y Criptografa JRA
Pgina 2
Pgina 3
1
1
1
1
1
(bits de acarreo)
0 1
1 1
0 0
Pgina 4
0
0
0
0
0
1 0 x 1 0 1
1 0
0
(procedemos ahora a sumar)
1 0
Como cada operacin bsica entre dos bits es una operacin bit,
hemos realizado hk = 34 multiplicaciones y luego kh = 43
sumas, es decir en total 2kh = 24 operaciones bit.
Jorge Rami Aguirre
Pgina 5
La funcin O(n)
Las operaciones dependern del tamao de la entrada por lo
que esta complejidad se expresar en trminos del tiempo T
necesario para el clculo del algoritmo y del espacio S que
utiliza en memoria, y se expresar mediante una funcin
f (n), donde n es el tamao de la entrada.
Esta funcin ser una aproximacin pues el resultado exacto
depender de la velocidad del procesador.
f (n) = O(g(n))
Y se define as:
Ejemplo
http://www.mm.informatik.tu-darmstadt.de/courses/2002ws/ics/lectures/v14.pdf
Jorge Rami Aguirre
Pgina 6
f (n) = 4n2 + 2n + 5
f = O(n2)?
Sea co = 6
co
no
11
No
24
25
No
54
38
96
77
Se cumple
siempre
Pgina 7
Tiempos de ejecucin
En la expresin O(n) aparecer el trmino que domina al
crecer el valor de n.
El tiempo de ejecucin 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.
Para realizar la suma de la diapositiva anterior necesitamos
O(n) = O(log n) operaciones bit y para el caso de la
multiplicacin, stas sern O(nm) = O(log n log m)
operaciones bit.
Pgina 8
Suma
Si t = 2, el sistema es cuadrtico
Producto
Si t = 3, el sistema es cbico
Mximo Comn
Divisor (Euclides)
Pgina 9
Pgina 10
n!
Pgina 11
Comparativas de complejidad
Los algoritmos polinmicos y exponenciales se
comparan por su complejidad O(nt).
Polinmico constante
O(1)
Polinmico lineal
O(n)
Polinmico cuadrtico O(n2)
Polinmico cbico
O(n3) ... etc.
Exponencial
O(dh(n))
donde d es una constante y h(n) un polinomio
Pgina 12
Pgina 13
O(n)
O(n2)
O(n3)
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 aos
n = 103
10-6 seg
10-3 seg
1 seg
Muy grande
Incrementos de un
orden de magnitud
O(2n)
Computacionalmente
imposible
Pgina 14
Problemas de tipo NP
En criptografa nos interesan las funciones f(x) de un solo
sentido, es decir:
Fcil calcular f(x) pero muy difcil calcular f -1(x)
salvo que conozcamos un secreto o trampa.
Porque dan lugar a problemas de tipo NP, polinomiales no
deterministas, computacionalmente difciles de tratar:
Problema de la mochila
Definicin del
Problema de la factorizacin
problema y
ejemplos
Problema del logaritmo discreto
Problema logaritmo discreto en curvas elpticas
Otros
Jorge Rami Aguirre
Pgina 15
El problema de la mochila
Es un problema de tipo NP en el
que el algoritmo debe realizar en
cada paso una seleccin iterativa
entre diferentes opciones.
Enunciado:
Dada una mochila de determinadas dimensiones de alto,
ancho y fondo, y un conjunto de elementos de distintos
tamaos menores que ella y de cualquier dimensin, ... es
posible llenar la mochila (completa) con distintos elementos
de ese conjunto sin repetir ninguno de ellos?
http://en.wikipedia.org/wiki/Knapsack_problem
Jorge Rami Aguirre
Pgina 16
Se incluye a1 en la suma S?
a1
No
Se incluye a2 en la suma?
S
a2
No
a2
No
Se incluye a3?
a3
S
S1
a3
No
S2
a3
No
S3
S4
a3
No
S5
S6
No
S7
S1 = a1+a2+a3
S2 = a1+a2
S3 = a1+a3
S4 = a 1
S5 = a2+a3
S 6 = a2
S7 = a3
S8 =
S8
Pgina 17
Pgina 18
Pgina 19
Pgina 20
Qu puede concluir
de estos clculos?
Pgina 21
Paciencia, un
computador va a
sufrir lo mismo ...
Pgina 22
Pgina 23
Solucin:
54 mod 7 = 2
817 mod 41 = 39
9211 mod 251 = 217
Pgina 24
Pgina 25
Es
decir
log2 2 mod 13 = 1
log2 5 mod 13 = 9
log2 8 mod 13 = 3
log2 11 mod 13 = 7
21 mod 13 = 2
24 mod 13 = 3
27 mod 13 = 11
210 mod 13 = 10
22 mod 13 = 4
25 mod 13 = 6
28 mod 13 = 9
211 mod 13 = 7
log2 3 mod 13 = 4
log2 6 mod 13 = 5
log2 9 mod 13 = 8
log2 12 mod 13 = 6
23 mod 13 = 8
26 mod 13 = 12
29 mod 13 = 5
212 mod 13 = 1
Pgina 26
30 mod 13 = 1
33 mod 13 = 1
36 mod 13 = 1
39 mod 13 = 1
31 mod 13 = 3
34 mod 13 = 3
37 mod 13 = 3
310 mod 13 = 3
32 mod 13 = 9
35 mod 13 = 9
38 mod 13 = 9
311 mod 13 = 9
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
Pgina 27
Pgina 28
Cuestiones y ejercicios (1 de 2)
1.
2.
3.
4.
5.
6.
Pgina 29
Cuestiones y ejercicios (2 de 2)
7.
8.
9.
Pgina 30
5.
http://www.criptored.upm.es/software/sw_m001e.htm
Pgina 31
7.
8.
9.