Rsa

29
RSA Rivest Shamir Adleman

Transcript of Rsa

Page 1: Rsa

RSA

Rivest Shamir Adleman

Page 2: Rsa

Introduccion

RSA es uno de los algoritmos de encriptación mas usados para la transmisión segura de datos a través de canales inseguros.

Esta basado en la siguiente idea, es muy simple multiplicar números, especialmente con computadoras. Pero puede ser mas difícil factorizar números.

Page 3: Rsa

Introduccion

Por ejemplo, si queremos multiplicar dos números como 34537 y 99991, es suficiente con utilizar una calculadora y nos dará el resultado 3453389167. Pero el problema inverso es mucho mas difícil. Supongamos que tenemos el numero 1459160519, la única pista que tenemos es que se obtiene de multiplicar dos números enteros. Podemos saber cuales son?

Page 4: Rsa

Introduccion

Es un problema mucho mas difícil. Una computadora puede factorizar este numero con bastante rapidez, pero lo hace al tratar con todas las combinaciones posible.Sin embargo, no es difícil de comprobar si un número es primo (en otras palabras, para comprobar que no se puede factorizar) . Si no es primo, es difícil factorizar, pero si es primo, no es dificil demostrarlo.

Page 5: Rsa

RSA

La encriptación con RSA trabaja de manera similar. Si tenemos dos números primos p y q que tienen 100 o 200 dígitos cada uno, estos serán nuestra clave privada, los multiplicaremos para obtener un numero N = pq . Este numero N es básicamente nuestra clave publica. Es relativamente fácil para nosotros obtener N, solo necesitamos multiplicar dos números.

Page 6: Rsa

RSA

Pero si conocemos solamente N es casi imposible encontrar p y q . Para obtenerlos necesitamos factorizar N, lo cual es un problema increíblemente difícil.

Pero como es usado N para codificar un mensaje, y como p y q son usados para decodificarlo?

Page 7: Rsa

Ejemplo

Supongamos que la persona A quiere hacer una clave publica y que la persona B quiere usar la clave para enviar a la persona A un mensaje. En este ejemplo supondremos que el mensaje que A envía a B es solamente un numero. Asumimos que A y B han acordado un método para codificar su texto en números.

Page 8: Rsa

Paso 1

La persona A selecciona dos números primos. P = 23q = 41

** Hay que tener en cuenta que en la practica se debería seleccionar un numero m.ucho mas largo

Page 9: Rsa

Paso 2

La persona A multiplica p y q para obtener pq = (23)(41) = 943

943 es la clave publica, la cual proporcionara a la persona B (y al resto del mundo si quisiera)

Page 10: Rsa

Paso 3

La persona A tambien escoge otro numero e el cual debe ser relativamente primo para (p-1)(q-1). En este caso, (p-1)(q-1) = (22)(40) = 880, de manera que e = 7 servirá. e es también parte de la clave publica, por lo tanto la persona B también debe saber el valor de e.

Page 11: Rsa

Paso 4

Ahora la persona B tiene la información necesaria para codificar el mensaje a la persona A. Para este ejemplo el mensaje será

M = 35

Page 12: Rsa

Paso 5

B calcula el valor de C =

Page 13: Rsa

Paso 6

(mod 943) = 545

El numero 545 es el mensaje codificado que B envía a la persona A.

Page 14: Rsa

Paso 7

Ahora A quiere decodificar 545. Para hacerlo, necesita encontrar un numero d tal que ed = 1 ( mod ( p-1 ) ( q-1 ) ) ,o en este caso así como 7d = 1(mod 880)

Una solución es d = 503 , ya que7 * 503 = 3521 = 4 (880) + 1 = 1 (mod 880)

Page 15: Rsa

Paso 8

Para encontrar la decodificación. A debe calcular

Esto parece un calculo complicado, y así es, pero notemos que 503 = 256 + 128 + 64 + 32 + 16 + 4 + 2 + 1( es solo la expansión binaria de 503) lo que significa que

Page 16: Rsa

Paso 8

Pero solamente nos importa el resultado de (mod 943), podemos calcular todos los resultados parciales . Por ejemplo

Y así sucesivamente obtenemos lo siguiente.

Page 17: Rsa

Paso 8

Page 18: Rsa

Paso 8

De manera que el resultado que necesitamos es

Usando este algoritmo , la persona A decodifico el mensaje de B y obtuvo el mensaje original

M = 35

Page 19: Rsa

Cryptool y RSA

Para la demostración de nuestro ejemplo usaremos cryptoolEn el menu

Cifrar/Descifrar >> Asimétrico

>> RSA DemostraciónIngresaremos los 2 números primos de nuestra clave privada y el numero e de nuestra clave publica y el texto a cifrar (en nuestro caso el numero 35)

Page 20: Rsa
Page 21: Rsa

Encryptar usando Cryptool

Para encryptar un mensaje usando el algoritmo RSA primero debemos generar una llave PKI la cual debe poseer tanto el emisor como el receptor. Esto lo hacemos desde el menu “Firma Digital/PKI” de cryptool

Page 22: Rsa

Generando la clave PKI

Para generar la clave se solicitaran nombre y apellido y ademas un “PIN” el cual es importante para la desencriptacion del mensaje. Sin este codigo no sera posible realizar esta tarea. Este codigo tambien debe saberlo el receptor.

Page 23: Rsa
Page 24: Rsa

Encriptar

Nos dirigimos al menu de encriptar / desencriptar de cryptool

Y seleccionamos la clave PKI con la que vamos encryptar nuestro mensaje

Page 25: Rsa
Page 26: Rsa

Y obtenemos nuestro texto cifrado utilizando una llave PKI

Page 27: Rsa

Desencriptar

Para desencriptar el procedimiento es similar, utilizamos la misma llave con la que encriptamos y se nos solicitara el codigo PIN que ingresamos al generar la clave PKI

Page 28: Rsa
Page 29: Rsa

RSA Desencriptar

Y obtenemos nuestro mensaje original

que en nuestro caso era el numero 35.