Documentos de Académico
Documentos de Profesional
Documentos de Cultura
08 Comp Algoritmos PDFC
08 Comp Algoritmos PDFC
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 313
Pgina 314
1 1
1
0
1 0
1
1
1
1
1
(bits de acarreo)
0 1
1 1
0 0
Pgina 315
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 316
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.
Ejemplo
f (n) = O(g(n))
Y se define as:
http://www.mm.informatik.tu-darmstadt.de/courses/2002ws/ics/lectures/v14.pdf
Jorge Rami Aguirre
Pgina 317
Si
f = O(n2)?
Sea co = 6
co
no
cono2
11
No
24
25
No
54
38
96
77
Se cumple
siempre
Pgina 318
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.
+ Operacin binaria: n+m (de k bits cada uno)
Operacin binaria: nm (de k y h bits respectivamente)
Jorge Rami Aguirre
Pgina 319
Suma
Si t = 2, el sistema es cuadrtico
Producto
Si t = 3, el sistema es cbico
Mximo Comn
Divisor (Euclides)
Pgina 320
Pgina 321
n!
Pgina 322
Comparativas de complejidad
Los algoritmos polinmicos y exponenciales se
comparan por su complejidad O(nt).
Pgina 323
Pgina 324
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 aos
n = 103
10-6 seg
10-3 seg
1 seg
Muy grande
Incrementos de un
orden de magnitud
Computacionalmente
imposible
Pgina 325
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 326
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 327
Se incluye a1 en la suma S?
a1
No
Se incluye a2 en la suma?
a2
a2
No
No
Se incluye a3?
a3
S1
a3
No
S2
S1 = a1+a2+a3
S5 = a2+a3
a3
No
S3
S4
S2 = a1+a2
S6 = a2
a3
No
S5
S6
S3 = a1+a3
S7 = a3
No
S7
S4 = a1
S8 =
S8
Pgina 328
Pgina 329
Pgina 330
Pgina 331
Qu puede concluir
de estos clculos?
Pgina 332
Pgina 333
Pgina 334
Solucin:
54 mod 7 = 2
817 mod 41 = 39
9211 mod 251 = 217
Pgina 335
Pgina 336
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 337
30 mod 13 = 1
33 mod 13 = 1
36 mod 13 = 1
39 mod 13 = 1
log3 1 mod 13 = 0
log3 4 mod 13 = NE
log3 7 mod 13 = NE
log3 10 mod 13 = NE
31 mod 13 = 3 32 mod 13 = 9
34 mod 13 = 3 35 mod 13 = 9
37 mod 13 = 3 38 mod 13 = 9
310 mod 13 = 3 311 mod 13 = 9
log3 2 mod 13 = NE
log3 5 mod 13 = NE
log3 8 mod 13 = NE
log3 11 mod 13 = NE
log3 3 mod 13 = 1
log3 6 mod 13 = NE
log3 9 mod 13 = 2
log3 12 mod 13 = NE
Pgina 338
Pgina 339
Cuestiones y ejercicios (1 de 2)
1.
2.
3.
4.
5.
6.
Pgina 340
Cuestiones y ejercicios (2 de 2)
7.
Pgina 341
5.
http://www.criptored.upm.es/software/sw_m001e.htm
Pgina 342
7.
8.
9.