criptografia - asimetrica - rsa

Post on 26-Jul-2015

730 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SILER AMADOR DONADO

CRIPTOGRAFIA ASIMÉTRICA

ALGORITMO RSA

SILER AMADOR DONADO

LOS CREADORES DEL RSA

LEONARD ADLEMANADI SHAMIRRON RIVEST

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

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

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

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

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)

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)

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

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

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!

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• 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

top related