130 likes | 413 Views
CRIPTOGRAFIA ASIMÉTRICA. ALGORITMO RSA. LOS CREADORES DEL RSA. Qué es RSA?.
E N D
CRIPTOGRAFIA ASIMÉTRICA ALGORITMO RSA SILER AMADOR DONADO
LOS CREADORES DEL RSA SILER AMADOR DONADO
Qué es RSA? El RSA es un sistema de clave pública implementado por Rivest, Shamir y Adleman basado en la exponenciación modular desarrollada por Diffie-Hellman, donde la clave pública son pares de números (e,n) formados por un exponente e y un módulo n que es el producto de dos grandísimos números primos p y q tales que mcd(e,fi(n))=1 (donde fi(n) es el número de enteros menores que n y primos con él) SILER AMADOR DONADO
El algoritmo RSA? Pasos a seguir para cada usuario A y B : El usuario A elige 2 números primos pay qa Calculamos el GrupoZ*na , entonces na= pa*qa Calculamos el Orden del Grupo(na) = (pa-1)*(qa-1) Seleccionamos un entero positivo ea, 1<= ea< (na), | sea primo con el Orden del Grupo, es decir mcd(ea, (na))=1 Basado en el algoritmo de Euclides extendido calculamos dA que es el inverso modular de ea en Z(na); ea* da ≡ 1 (mod((na)) con 1<= da < (na) La llave publica del usuario A es (ea,na) y la llave privada es (da) SILER AMADOR DONADO
Cómo cifrar y descifrar con el algoritmo RSA? Si un usuario A desea enviar cifrado un mensaje m ЄZnal usuario B, A utiliza la llave pública de B,(eb,nb), para calcular el valor de meb(modnb) = c, que luego envía a B. Para recuperar el mensaje original m, B debe usar la llave privada (db) para calcular cdb = (meb)db = mebdb ≡ m (modnb). Entonces m= cdb(modnb) SILER AMADOR DONADO
Cómo firmar un mensaje con el algoritmo RSA? A cuenta con la llave pública (ea,na) y su llave privada (da). Si un usuario A desea enviar la firma digital de un mensaje m ЄZnal usuario B: Calcula el valor de su rúbrica r ≡ mda(modna). Determina la firma cifrando con la llave pública de B la rúbrica. s ≡ reb(modnb). El mensaje firmado que A envía a B es la pareja formada por (c,s), donde c es el mensaje m cifrado. Para que B pueda verificar la firma de A,debe comprobar que: sdb(modnb) ≡ (reb(modnb))db (modnb) ≡ rebdb(modnb) = r rea(modna) ≡ mdaea(modna) = m SILER AMADOR DONADO
Ejemplo del algoritmo RSA (½)Cifrando y Descifrando Alfabeto español: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 m≡ CUY, entonces C(272)+U(271)+Y(270) ≡ 1458+567+25 = 2050 < 2231 y2050 < 2929 El usuario B elige pb=23, qb=97, nb=2231 El orden del Grupo es (nb)=2112 B elige el número eb = 17 mcd(17,2112) = 1 OK Calculamos el inverso modular: eb*db ≡ 1 (mod (nb)) con 1<= db< (nb) , luego 17 * db ≡ 1 (mod 2112)con 1<= db<2112 Luego la llave privada de B es db= 497 Entonces la llave pública de B (17, 2231) Usuario A elige pa=101,qa=29,(na)=2800,ea=17 na= 2929, ya realizó sus cálculos obteniendo: la llave privada de A es da = 1153 Entonces la llave pública de A (17, 2929) Ciframos m con la llave pública de B: C = meb(modnb) entonces C = 205017 (mod2231) = 177, entonces C = 6(271) + 15(270) ≡ GO Para descifrar usamos la llave privada de B(db) m=cdb(modnb)=177497(mod2231), luego El mensaje m descifrado es: 2050≡ CUY SILER AMADOR DONADO
Ejemplo del algoritmo RSA (2/2)Firmando y Verificando El usuario B elige pb=23, qb=97, nb=2231 El orden del Grupo es (nb)=2112 B elige el número eb = 17 mcd(17,2112) = 1 OK Calculamos el inverso modular: eb*db ≡ 1 (mod (nb)) con 1<= db< (nb) , luego 17 * db ≡ 1 (mod 2112)con 1<= db<2112 Luego la llave privada de B es db= 497 Entonces la llave pública de B (17, 2231) Usuario A elige pa=101,qa=29,(na)=2800,ea=17 na= 2929, ya realizó sus cálculos obteniendo: la llave privada de A es da = 1153 Entonces la llave pública de A (17, 2929) El usuario A calcula su rúbrica para el mensaje. r = mda(modna) = 20501153(mod2929) = 1851 s = reb(modnb) = 185117(mod2231) = 1463 s = 2(272) + 0(271) + 5(270) ≡ CAF, entonces B recibe la pareja: (c,s) ≡ (GO, CAF), luego que B ha descifrado c, verifica s = 1463, entonces: r = sdb(modnb) = 1463497(mod2231) = 1851 y recupera de nuevo el mensaje así: m=rea(modna)= 185117(mod2929) = 2050, luego el mensaje m es: 2050≡ CUY Firma OK! Alfabeto español: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 m≡ CUY, entonces C(272)+U(271)+Y(270) ≡ 1458+567+25 = 2050 < 2231 y2050 < 2929 SILER AMADOR DONADO
CRIPTOANALISIS ALGORITMO RSA SILER AMADOR DONADO
ANTECEDENTES DEL RSA • 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. • 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. • 2002 – RSA recomiendan claves de 1024 bits. SILER AMADOR DONADO
CRIPTOANALISIS DEL RSA • Factorizarn, que es público, y así obtienes p y q • Calcular (n) = (p-1)(q-1) • Calcular d tal que d(e)mod(n) = 1 (e espúblico) • La clave privada es = d Ejemplo: Conocemos nb=2231, entonces hallamos sus factores primos pb=23, qb=97, luego se calcula (nb)=(22)(96)=2112, luego se calcula db así: db(eb)mod(nb)=1, entonces el inverso modular es: db(17)mod(2112)=1 ≡ 497 es la llave privada de B SILER AMADOR DONADO