criptografia - asimetrica - rsa

14
CRIPTOGRAFIA ASIMÉTRICA ALGORITMO RSA SILER AMADOR DONADO

Upload: g-hoyos-a

Post on 26-Jul-2015

729 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

CRIPTOGRAFIA ASIMÉTRICA

ALGORITMO RSA

Page 2: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

LOS CREADORES DEL RSA

LEONARD ADLEMANADI SHAMIRRON RIVEST

Page 3: Criptografia - Asimetrica - 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)

Page 4: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

Sea f una función unidireccional definida así:f : M C

f(m) = c

Donde M es el conjunto de todos los mensajes en texto claro, para todo m Є M. Donde C es el conjunto de todos los mensajes cifrados, para todo c Є C. Luego f(m) = c

Definición del criptosistema RSA?

m1m2m3m4

.

.

.

M

c1c2c3c4...

C

Page 5: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

Sea f-1 una función unidireccional inversa definida así: f-1 :C M

f-1(c) = m

Donde M es el conjunto de todos los mensajes en texto claro, para todo m Є M. Donde C es el conjunto de todos los mensajes cifrados, para todo c Є C. Luego f-1 (c) = m

Definición del criptosistema RSA?

c1c2c3c4...

C

m1m2m3m4

.

.

.

M

Page 6: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

El algoritmo RSASi un usuario A desea enviar un mensaje m=cuy al usuario B.

Usuario A Usuario B

Pública(ea, na)

Privada(da)

Pública(eb, nb)

Pública(eb, nb)

Privada(db)

Pública(ea, na)

fb(m) = c f-1b(c) = f-1

b(fb(m)) = m

A en

vía

go a

B

fb(cuy) = go f-1b(go) = f-1

b(fb(cuy)) = cuy

Page 7: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

El algoritmo RSAPasos a seguir para cada usuario A y B, a continuación solo se calcula para el usuario A, lo mismo se debe realizar para el usuario B:

1. El usuario A elige 2 números primos pa y qa

2. Calculamos el Grupo Z*na

, entonces na = pa * qa

3. Calculamos el Orden del Grupo (na) = (pa -1)*(qa -1)

4. Seleccionamos un entero positivo ea, 1<= ea < (na), | sea primo con el Orden del Grupo, es decir mcd(ea, (na))=1

5. 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)

6. La llave publica del usuario A es (ea, na) y la llave privada es (da)

Page 8: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

Cómo cifrar y descifrar con el algoritmo RSA?

Si un usuario A desea enviar cifrado un mensaje m Є Zn

al usuario B, A utiliza la llave pública de B, (eb,

nb), para calcular el valor de meb

(mod nb) = c, que luego envía a B.

Para descifrar el mensaje original m, B debe usar la llave privada (db) para calcular c

db = (m

eb )

db = m

ebdb ≡

m (mod nb). Entonces m= cdb

(mod nb)

Page 9: Criptografia - Asimetrica - RSA

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 Є Zn al usuario B:

1. Calcula el valor de su rúbrica r ≡ mda

(mod na).

2. Determina la firma cifrando con la llave pública de B la rúbrica. s ≡ r

eb (mod nb).

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:

3. sdb(mod nb) ≡ (r

eb (mod nb))

db (mod nb) ≡ rebdb(mod nb) = r

4. rea

(mod na) ≡ mdaea(mod na) = m

Page 10: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

Ejemplo del algoritmo RSA (½)Cifrando y Descifrando

El usuario B elige pb=23, qb=97, nb=2231El orden del Grupo es (nb)=2112B elige el número eb = 17

mcd(17,2112) = 1 OKCalculamos el inverso modular:eb* db ≡ 1 (mod (nb)) con 1<= db < (nb) , luego17 * db ≡ 1 (mod 2112) con 1<= db<2112Luego la llave privada de B es db = 497Entonces 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 = 1153Entonces la llave pública de A (17, 2929)Ciframos m con la llave pública de B:C = m

eb (mod nb) entonces

C = 205017 (mod 2231) = 177, entoncesC = 6(271) + 15(270) ≡ GOPara descifrar usamos la llave privada de B(db)

m=cdb(mod nb)=177497(mod 2231), luego

El mensaje m descifrado es: 2050 ≡ CUY

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 Z00 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 y 2050 < 2929

Page 11: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

Ejemplo del algoritmo RSA (2/2)Firmando y Verificando

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 Z00 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 y 2050 < 2929

El usuario B elige pb=23, qb=97, nb=2231El orden del Grupo es (nb)=2112B elige el número eb = 17

mcd(17,2112) = 1 OKCalculamos el inverso modular:eb* db ≡ 1 (mod (nb)) con 1<= db < (nb) , luego17 * db ≡ 1 (mod 2112) con 1<= db<2112Luego la llave privada de B es db = 497Entonces 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 = 1153Entonces la llave pública de A (17, 2929)El usuario A calcula su rúbrica para el mensaje.r = m

da (mod na) = 20501153(mod 2929) = 1851

s = reb

(mod nb) = 185117(mod 2231) = 1463s = 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 = s

db(mod nb) = 1463497(mod 2231) = 1851 y recupera de nuevo el mensaje así:m=r

ea(mod na)= 185117(mod 2929) = 2050, luego el mensaje m es: 2050 ≡ CUY Firma OK!

Page 12: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

CRIPTOANALISIS

ALGORITMO RSA

Page 13: Criptografia - Asimetrica - 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.

Page 14: Criptografia - Asimetrica - RSA

SILER AMADOR DONADO

CRIPTOANALISIS DEL RSA• Factorizar n, 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 es público)• La clave privada es = dEjemplo: 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