Documentos de Académico
Documentos de Profesional
Documentos de Cultura
08CompAlgoritmosPDFc PDF
08CompAlgoritmosPDFc PDF
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.
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)) Ejemplo
Y se define as: f = O(n) ssi co,no / f(n) cog(n)
http://www.mm.informatik.tu-darmstadt.de/courses/2002ws/ics/lectures/v14.pdf
6 4 96 77 S
Luego, la complejidad de f (n) es exponencial.
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.
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
Si suponemos un ordenador capaz de realizar 109
instrucciones por segundo obtenemos este cuadro:
Incrementos de un Computacionalmente
orden de magnitud imposible
Entrada/109: Para n = 100 O(n2) = 1002/109 = 10-5 seg
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
Problema del logaritmo discreto ejemplos
Problema logaritmo discreto en curvas elpticas
Otros
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
http://home.netcom.com/~jrhowell/math/factor.htm
http://en.wikipedia.org/wiki/Discrete_logarithm
http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html
Cuestiones y ejercicios (1 de 2)
1. Deseamos sumar de forma binaria el nmero 15 (1111) y el nmero
10 (1010), ambos de k = 4 bits. Haga la suma binaria y verifique
que el nmero de operaciones bit desarrolladas es k = 4.
2. Si multiplicamos en binario 101011, donde k = 4 bits y h = 2 bits,
compruebe que el nmero de operaciones bit realizadas es 2kh.
3. Por qu son interesantes los problemas de tipo NP en criptografa?
4. Defina el problema de la mochila y su posible utilizacin en un
sistema de cifra.
5. Es siempre nica la solucin de una mochila? Piense sobre el
particular y su trascendencia si las utilizamos sin ningn control en
sistemas de cifra.
6. Factorice mentalmente el valor n = 143. Intente hacer lo mismo
para n = 1.243. Qu opina ahora del problema de la factorizacin?
Cuestiones y ejercicios (2 de 2)
7. Se le ocurre alguna forma de utilizar este problema de un solo
sentido para cifrar informacin?
8. A partir de la ecuacin = x mod p, defina el problema del
logaritmo discreto.
9. Calcule 713 mod 31 = C usando la propiedad de reducibilidad.
Compruebe con Fortaleza que el exponente 13 = log7 C mod 31.
10. Qu utilidad le encuentra a este problema en criptografa?
11. Qu relacin existe entre generadores de un cuerpo, el conjunto
completo de restos y el clculo del logaritmo discreto?
12. Qu sucede si deseamos encontrar un logaritmo discreto que no
existe, por ejemplo log5 19 mod 31?
Nota: si usa el software Fortaleza, deber detener la operacin al no
contemplarse en su cdigo este hecho .