Algoritmo RSA - upcAnalisisAlgoritmos

Anuncio
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
Descargar