CRIPTOGRAFÍA RSA
Rivest-Shamir-Adleman
¿En qué se basa y por qué es
eficiente?
PROBLEMA DE
FACTORIZACIÓN DE UN
NÚMERO NATURAL COMO
PRODUCTO DE NÚMEROS
PRIMOS
EJEMPLO: factorizar
555378849502345689345678
PARTES DEL MÉTODO
Paso 1: CREAR UNA CLAVE PÚBLICA
Paso 2: CIFRADO
Paso 3: DESCIFRADO
precifrado
RSA=27-28-10
PASO 1: CREAR UNA CLAVE
PÚBLICA
SE ESCOGEN DOS NÚMEROS PRIMOS p y q (SON NÚMEROS GRANDES,
MÍNIMO DE 200 CIFRAS),
EJEMPLOS 𝒑 = 𝟐𝟗 y 𝐪 = 𝟒𝟏
𝒑 = 𝟒𝟕 y 𝐪 = 𝟏𝟎𝟕
𝒑 = 𝟓𝟗𝟗𝟗𝟗 y 𝐪 = 𝟒𝟒𝟗
Paso 1:CREAR CLAVE PÚBLICA
LA CLAVE DE CIFRADO, QUE LA DENOTAREMOS POR 𝒏, es
𝒏=𝒑∙𝒒
Ejemplos:
𝒑 = 𝟐𝟗 ; 𝐪 = 𝟒𝟏 … … … … 𝒏 = 𝟏𝟏𝟖𝟗
𝒑 = 𝟒𝟕 ; 𝐪 = 𝟏𝟎𝟕 … … … … 𝒏 = 𝟓𝟎𝟐𝟗
𝒑 = 𝟓𝟗𝟗𝟗𝟗 ; 𝐪 = 𝟒𝟒𝟗 … 𝒏 = 𝟐𝟔𝟗𝟑𝟗𝟓𝟓𝟏
Paso 2: CIFRADO
SE TOMA UN NÚMERO NATURAL 𝝀, tal que
MCD(𝝀, (𝒑 − 𝟏)(𝒒 − 𝟏)) = 𝟏
El cifrado se hará calculando la clase modular de
𝑏 𝜆 (𝑚𝑜𝑑 𝑛)
Es decir, si 𝑏 𝜆 ≡ 𝑎 (𝑚𝑜𝑑 𝑛),entonces 𝑎 será el
cifrado para el bloque 𝑏.
LA CLAVE PÚBLICA SERÁ 𝑛, 𝜆
Paso 3: DESCIFRADO
SE CREA UNA CLAVE PRIVADA, LA CUÁL ESTARÁ DADA POR UN PAR DE
NÚMEROS 𝑛, 𝑑 . EL NÚMERO NATURAL 𝑑 cumple con
𝑑∙𝜆 ≡1 𝑚𝑜𝑑(𝑝 − 1)(𝑞 − 1)
ES DECIR, 𝒅 EL INVERSO MULTIPLICATIVO DE 𝝀 EN LA CLASE
MODULAR
𝑍(𝑝−1)(𝑞−1)
Paso3: DESCIFRADO
EL DESCIFRADO SE HARÁ CALCULANDO LA
CLASE MODULAR DE
𝑎𝑑 (𝑚𝑜𝑑 𝑛)
ES DECIR, SI 𝑎𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑛), ENTONCES 𝑏
SERÁ EL DESCIFRADO PARA 𝑎
Ejemplo: Codificar el mensaje
”RSA’’
1. Pre-ciframos la palabra RSA con base en la tabla de pre-cifrado
RSA=272810
2. Escogemos dos números primos y creamos 𝑛
𝑝=5
𝑞=7
Así 𝑛 = 𝑝 ∙ 𝑞 = 35
3. Dividimos nuestro mensaje codificado en bloques
27-28-10
Cada bloque tienen que ser menor a 𝑛 (en este caso menor a 35)
4. Tomamos 𝝀 = 𝟕. Recuerde que 𝜆 tiene que ser elegido de forma que
MCD(𝝀, (𝒑 − 𝟏)(𝒒 − 𝟏)) = 𝟏,
en nuestro caso
MCD(𝝀, (𝟓 − 𝟏)(𝟕 − 𝟏)) = 𝟏 MCD(𝝀, (𝟒)(𝟔)) = 𝟏 , es decir, un número
coprimo con 24 . Es decir, nuestra llave publica es (35,7)
5. Encriptamos cada bloque del mensaje usando calculando 𝒃𝝀 (𝒎𝒐𝒅 𝒏)
𝟐𝟕𝟕 ≡ 𝟏𝟑(𝒎𝒐𝒅 𝟑𝟓)
𝟐𝟖𝟕 ≡ 𝟕(𝒎𝒐𝒅 𝟑𝟓)
𝟏𝟎𝟕 ≡ 𝟏𝟎(𝒎𝒐𝒅 𝟑𝟓)
El mensaje que enviamos será 13-7-10
Fase de descifrado
6. Creamos UNA CLAVE PRIVADA, LA CUÁL ESTARÁ DADA POR UN PAR
DE NÚMEROS 𝑛, 𝑑 . EL NÚMERO NATURAL 𝑑 verifica
𝑑∙𝜆 ≡1 𝑚𝑜𝑑(𝑝 − 1)(𝑞 − 1)
𝑑 ∙ 7 ≡ 1(𝑚𝑜𝑑 24)
ES DECIR, 𝑑 es el INVERSO MULTIPLICATIVO DE 7 EN LA CLASE MODULAR
, 𝑍(𝑝−1)(𝑞−1) = 𝑍24 , es decir,
𝑑=7
Nuestra clave privada es (35, 7)
7. Deciframos el mensaje 13-7-10
𝟏𝟑𝟕 ≡ 𝟐𝟕(𝒎𝒐𝒅 𝟐𝟒)
𝟕𝟕 ≡ 𝟐𝟖(𝒎𝒐𝒅 𝟐𝟒)
𝟏𝟎𝟕 ≡ 𝟏𝟎(𝒎𝒐𝒅 𝟐𝟒)
Y mirando nuevamente en la tabla de códigos de letra, obtenemos
que el mensaje que recibimos es
R-S-A