1 / 15

Diseño y análisis de algoritmos

Diseño y análisis de algoritmos. Introducción a la Criptografía II. 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. Introducción a la Criptografía II

cara-jacobs
Télécharger la présentation

Diseño y análisis de algoritmos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 0512 01 0519 1318 1916150311 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 0713 03 0723 1719 2317170513 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 0512 01 0519 1318 1916150311

  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) sino devolver (a*exmod(a,y-1,z))mod z fin-si 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.

More Related