La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño y análisis de algoritmos

Presentaciones similares


Presentación del tema: "Diseño y análisis de algoritmos"— Transcripción de la presentación:

1 Diseño y análisis de algoritmos
Introducción a la Criptografía II

2 Temario Introducción a la Criptografía II Ejemplo de clave simétrica
Ejemplo de clave pública Algoritmo RSA Codificación RSA Seguridad Algoritmo exponenciación modular

3 Introducción a la Criptografía II
Ejemplo de clave simétrica el a es mr spock Sherlock Holmes Jefe de policía Encriptación con llave privada En este caso ShHolmes y el Jefe poseen ambos una llave para “encriptar”; ej: Nros pares próximo impar, impares próximos nro primo, a:01 b:02 . z:24 gm c gw qs wqwem Este método podría servir con una buena función matemática, el problema es que ambos necesitan de la misma ”regla” o llave para codificar y decodificar el mensaje.

4 Introducción a la Criptografía II
Ejemplo de clave pública Los protocolos de clave pública sólo fueron posibles a través del estudio sitemático, presentándose en 1978 una solución. Propuesta por Rivest,Shamir,Adelman (RSA) 1978 Clave pública <E,n> Clave privada <D,n> E,D,n, enteros positivos Cada mensaje se representa como un entero entre 1 y n-1. Los mensajes largos se descomponen en mensajes cortos. Cada uno se representa por un entero. Por ejemplo, un mensaje podría ser el código de un carácter.

5 Introducción a la Criptografía II
Algoritmo RSA Se definen las funciones E() y D() como: E(m)= D(C)= Se debe cumplir que: D(E(m))=m E y D deben calcularse de manera relativamente fácil. Si se publica E, debe ser muy difícil calcular D E(D(m))=m

6 Introducción a la Criptografía II
Algoritmo RSA Obtener p y q primos, lo más grandes que se pueda, pues así la encriptación será más segura . Usar test de primalidad de Miller Rabin para asegurar p y q Usar algoritmo especial de multiplicación de números grandes calcular n= p*q Calcuar fi=(p-1)*(q-1) Elegir E < fi tal que mcd(E,fi)=1, es decir E no debe tener factores comunes con fi.(primos relativos). Se puede tomar rl primer primo <fi usando test de primalidad. Se calcula D tal que D*E mod fi=1, se debe probar satisfacer esta ecuación desde D>2 y D <fi

7 Introducción a la Criptografía II
Codificación RSA Dado un texto se separa en grupos de caracteres de tamaño fijo y se transforman en números enteros. Si n se transforma a binario, se dirá que la llave se son de x bits, ejemplo n=256, corresponde a un byte, llave de 8 bits. Ejemplo:

8 Introducción a la Criptografía II
Codificación RSA Codificar : Decodificar: Ejemplo: Sean p =3 y q =11 (py q primos) Sea n=33 Fi=(p-1)*(q-1)=20 E < fi y deben ser primos relativos, Se elije E=3, pues MCD(3,20)=20 Cálculo de D: D*E mod ((p-1)*(q-1)) =1

9 Introducción a la Criptografía II
Codificación RSA Es decir, D*E mod 20 =1, D*E=20*k+1 Existe k? D*3=20*k+1. D=(20*k+1)/3. Si k=1,D=21/3=7 Comprobando 21 mod 20 =1 Por lo que n = 33 nos permite encriptar letra a letra por lo que el mensaje de Holmes original: Debe ser codificado con la llave pública E=3 el a es mr spock

10 Introducción a la Criptografía II
Codificación RSA Decodificación Mensaje codificado

11 Introducción a la Criptografía II
Seguridad La seguridad depende del número de bits correspondiente a n: para el ekemplo, n=33 implica 5 bits aprox. (2 exp 5=32) Netscape y Explorer usan RSA estándar con 48 bits Mejor seguridad se obtiene con 128 bits o más, pero la obtención de llaves y los procesos de codificación y decodificación se hacen lentos. Es 100% seguro RSA. como se vio en la clase pasada teoricamente no Puesto que n es compuesto de dos primos, lo que se debiara es encontrar py q para quebrar el sistema factorizando n, pero esto es muy costoso. En 1977, se planteo el desafio de quebrar un string de 129 dígitos (430 bits) Se pensaba que era invioable, pues el algoritmo de factorización para este número tardaría 40 cuatrillones de años.

12 Introducción a la Criptografía II
Algoritmo exponenciación modular Para codificar y decodificar , se supone que se debe exponenciar y obtener el módulo de enteros grandes (por las llaves) Problema: dados enteros grandes m, n y z calcular La solución se obtiene desarrollando un algoritmo dividir y conquistar más las siguientes propiedades de aritmética mdular: Entonces el algoritmo DyC queda: Si y es par , luego So y es impar, luego

13 Introducción a la Criptografía II
Algoritmo exponenciación modular Implementación recursiva funcion expmod(x,y,z:entero):entero variables a,aux:entero inicio a:= x mod z si y=1 entonces devolver a sino si y es par entonces aux:= a*a mod z devolver expmod(aux, y div 2,z) devolver (a*exmod(a,y-1,z))mod z fin-si fin

14 Introducción a la Criptografía II
Algoritmo exponenciación modular Implementación iterativa funcion expmod(x,y,z:entero):entero variables i,aux,r:entero inicio i:=y; aux:=x; r:=1 mientras i >0 hacer si i es impar entonces r:=r*x mod z fin-si x:=x*x mod z i:=i div 2 fin-mientras devolver r fin

15 Introducción a la Criptografía II
Seguridad En abril de 1994 Atkins, Graff, Lenstra y Leyland LOGRARON resolver el problema para 129 cifras El mensaje encriptado era: THE MAGIC WORDS ARE SQEAMISH OSSIFRAGE Se utilizó un método de factorización que requería 5000MIPS-año. Se dividió el problema en pequeñas partes, que se distribuyeron por correo electrónico a 600 computadores, que ejecutaron el algoritmo en paralelo durante 8 meses. En la práctica se requere menos potencia computacional ya que las claves no siempre se eligen de manera óptima.


Descargar ppt "Diseño y análisis de algoritmos"

Presentaciones similares


Anuncios Google