La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Diseño y análisis de algoritmos Introducción a la Criptografía II."— 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 Sherlock Holmes Jefe de policía el a es mr spock a:01 b:02. z: 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, 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 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 Clave privada 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. Introducción a la Criptografía II Ejemplo de clave pública

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

6 1.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 2.Calcuar fi=(p-1)*(q-1) 3.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 2 y D

7 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: Introducción a la Criptografía II Codificación RSA

8 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 Introducción a la Criptografía II Codificación RSA

9 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 Introducción a la Criptografía II Codificación RSA el a es mr spock

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

11 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. Introducción a la Criptografía II Seguridad

12 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 Introducción a la Criptografía II Algoritmo exponenciación modular

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) sino 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 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. Introducción a la Criptografía II Seguridad


Descargar ppt "Diseño y análisis de algoritmos Introducción a la Criptografía II."

Presentaciones similares


Anuncios Google