1 2 Parcial 03 Historia 11/11/10 III Parcial Analisis de . Algoritmos NetC .Time s • Tito Agudelo • Pedro Fula • Yesid Gutierrez • Oscar M unevar El algoritmo fue descrito en 1977 por Ron Rivest, Adi Shamir y Len Adleman en el MIT; las letras RSA son las iniciales de sus apellidos. Fue inventado en Schenectady (estado de Nueva York). Clifford Cocks, un matemático británico trabajando para la agencia de inteligencia británica GCHQ describió un sistema equivalente en un documento interno en 1973. Debido a la lentitud de la implementación en las computadoras de la época, se lo consideró una curiosidad. Su descubrimiento sin embargo no fue revelado hasta 1997 ya que era confidencial. El algoritmo fue patentado por el MIT en 1983 en Estados Unidos con el número 4.405.829. Esta patente expiró el 21 de septiembre de 2000. Como el algoritmo fue publicado antes de patentar la aplicación, esto impidió que se pudiera patentar en otros lugares del mundo. Como Cocks trabajó en un organismo gubernamental, una patente en Estados Unidos no habría sido posible tampoco. Docente: Diana Mabel Diaz H. Ing e nie ría d e S iste ma s U nive rsid a d Pilo to d e mb ia C o lo Tito Arturo Agudelo Flórez Pedro Antonio Fula Perilla Oscar Fernando Munevar Yesid Fernando Gutierrez Análisis de Algortimos ANTECEDENTES 1976 – Propuesta por Diffie y Hellman. Se basa en la dificultad de calcular logaritmos discretos (resolver ax = b mod n para x). 1977 – Algoritmo RSA desarrollado por Rivest, Shamir y Adleman. Se basa en la dificultad de factorizar números grandes.RSA129 (129 dígitos) publicado como desafío. 1994 – RSA129 roto con 1600 ordenadores en red. Parcial Número 03 Noviembre 11 de 2010. 1999 – RSA140 roto con 185 ordenadores en red en 8,9 años- CPU. 1999 – RSA155 (clave de 512 bits) roto con 300 equipos en red. Parcial III Análisis de Algortimos El problema RSA se refiere a la dificultad de efectuar una operación de clave privada mediante el sistema criptográfico RSA conociendo tan solo la clave pública. El algoritmo RSA eleva un mensaje numérico a un exponente público, módulo un número compuesto N que es producto de dos primos desconocidos. Para recuperar este mensaje es necesario elevar de nuevo el resultado a un exponente privado, elegido de tal forma que si no se conoce, hallarlo equivale a factorizar el número N (esto es, hallar los dos números primos cuyo producto es N). Para números suficientemente grandes (mayores de 1024 bits) no se conoce un método eficiente de factorización. De llegar a desarrollarse, supondría una amenaza para los sistemas de Parcial Número 03 Noviembre 11 de 2010. seguridad basados en RSA, tanto de cifrado como de firma digital Parcial III Análisis de Algortimos Parcial Número 03 Noviembre 11 de 2010. Parcial III Análisis de Algortimos ALGORITMO RSA • Se seleccionan dos n° primos largos p y q de forma aleatoria y se calcula el producto de n=p*q. A este n se le denomina módulo. • Se elige un número d, menor que el valor n calculado anteriormente y que sea relativamente primo al producto de (p-l)(q-l).ALGORITMO RSA • Calculamos un número entero e que esté dentro del rango • l≤ e ≤(p-l)(q-l) con la siguiente operación: e d=1 mod[(p-l)(q-l)] •A d y e se les conoce como los exponentes privado y público respectivamente. • La clave pública la formarán la pareja (n,e). Parcial Número 03 Noviembre 11 de 2010. • La clave privada viene dada por (n,d). • Con la clave pública procederíamos a encriptar el mensaje deseado y con la llave privada se desencriptaría Parcial III Análisis de Algortimos Generación de claves 1. Cada usuario elige dos números primos distintos p y q. § Por motivos de seguridad, estos números deben escogerse de forma aleatoria y deben tener una longitud en bits parecida. Se pueden hallar primos fácilmente mediante test de primalidad. 2. Se calcula n = pq. § n se usa como el módulo para ambas claves, pública y privada. 3. Se calcula , donde Parcial Número 03 Noviembre 11 de 2010. 4. Se escoge un entero positivo e menor que es la función φ de Euler. , que sea coprimo con . § e se da a conocer como el exponente de la clave pública. § Si se escoge un e con una suma encadenada corta, el cifrado será más efectivo. Un exponente e muy pequeño (p. ej. e = 3) podría suponer un riesgo para la seguridad.1 5. Se determina un d (mediante aritmética modular) que satisfaga 6. la congruencia . § Expresado de otra manera, de − 1 divide a § Esto suele calcularse mediante el algoritmo de Euclides extendido. § d se guarda como el exponente de la clave privada. La clave pública es (n,e), esto es, el módulo . y el exponente de cifrado. La clave privada es (n,d), esto es, el módulo y el exponente de descifrado, que debe mantenerse en secreto. Nota: § PKCS#1 v2.0 y PKCS#1 v2.1 se especifican mediante la función de Carmichael λ(n) = mcm(p − 1,q − 1) en vez de la función φ de Euler, donde mcm es el mínimo común múltiplo. Parcial III Análisis de Algortimos § Para una mayor eficiencia los siguientes valores se calculan de antemano y se almacenan como parte de la clave privada: § p y q: los primos para la generación de las claves, y § , . § Cifrado Alicia comunica su clave pública (n,e) a Bob y guarda la clave privada en secreto. Ahora Bob desea enviar un mensaje M a Alicia. Primero, Bob convierte M en un número entero m menor que n mediante un protocolo reversible acordado de antemano. Luego calcula el texto cifrado c mediante la operación . Esto puede hacerse rápido mediante el método de exponenciación binaria. Ahora Bob Parcial Número 03 Noviembre 11 de 2010. transmite c a Alicia. Descifrado Alicia puede recuperar m a partir de c usando su exponente d de la clave privada mediante el siguiente cálculo: . Ahora que tiene m en su poder, puede recuperar el mensaje original M invirtiendo el padding scheme. El procedimiento anterior funciona porque . Esto que es así porque, como hemos elegido d y e de forma , se cumple Parcial III Análisis de Algortimos . La última congruencia se sigue directamente del teorema de Euler cuando m es coprimo con n. Puede demostrarse que las ecuaciones se cumplen para todo m usando congruencias y el teorema chino del resto. Esto muestra que se obtiene el mensaje original: . Parcial Número 03 Noviembre 11 de 2010. Tomado de Wiwipeia. Parcial III Análisis de Algortimos .REFERENCIAS BIBLIOGRÁFICAS. 1. M. J. Lucena Lopez; Criptografıa y seguridad en computadores. 4ta. edicion; 2009. wwwdi. ujaen.es/~mlucena/lcripto.html. 2. A. S. Tanenbaum. Redes de computadoras. 4ta edici ́on. Pearson Prentice Hall; 2003. 3. R. Johnsonbaugh. Matem ́aticas discretas. 6ta edicion. Mexico: Pearson Educacion; 2005. 4. T. W. Judson. Abstract Algebra: theory and applications. PWS Publishing Company;1993. Parcial Número 03 Noviembre 11 de 2010. 5. http://es.wikipedia.org/wiki/RSA Parcial III