You are on page 1of 51

MTODO DE ENCRIPTACIN BASADO EN

EL ALGORITMO R.S.A
Presentado por:
ALFREDO GMEZ CALVACHE
DIEGO FERNANDO RUIZ SOLARTE
UNIVERSIDAD DEL CAUCA
DEPARTAMENTO DE MATEMTICAS
HISTORIA

En 1975, Walter Diffie y Martin Hellman sientan las
bases de la criptografa de clave pblica. Hasta
ahora, en la criptografa de clave secreta el proceso
de cifrado y descifrado es similar y la clave de
cifrado y descifrado es la misma.

Por el contrario, en clave pblica cada usuario i del
sistema posee un par de claves (c
i
, d
i
), la primera de
las cuales es pblica y que es la que emplea
cualquier otro usuario j que desee transmitir un
mensaje M a i;

Mientras que la clave privada d
i
es conocida slo
por i y empleada para recuperar los mensajes
originales a partir de los cifrados que le llegan.

Sin embargo, no es hasta 1978, cuando Ronald
Rivest, Len Adleman y Adi Shamir proponen el
primer sistema criptogrfico (y probablemente el
ms conocido) de clave pblica: RSA.
CRIPTOGRAFA
Es la ciencia de cifrar y descifrar informacin
utilizando tcnicas matemticas que hagan posible
el intercambio de mensajes de manera que slo
puedan ser ledos por las personas a quienes van
dirigidos.
DEFINICIONES Y NOTACIONES
M es el conjunto de todos los textos que se
quieren proteger mediante alguna tcnica
criptogrfica. Dichos textos sern llamados
TEXTOS PLANOS.
C es el conjunto de todos los textos que han
sido transformados mediante alguna tcnica
criptogrfica. Dichos textos sern llamados
CRIPTOGRAMAS.
DEFINICIONES Y NOTACIONES
K es el conjunto de todas las claves a utilizar en
el cifrado y descifrado de textos planos y
criptogramas.
E es el conjunto de todos los mtodos que
transforman un elemento meM en un elemento
de C. Esto es

{ } K k , : / e = C M E E E
k k
DEFINICIONES Y NOTACIONES
D es el conjunto de todos los mtodos que
transforman un elemento de C en un elemento de
M, esto es:

{ } K k , : / e = M C D D D
k k
Con las notaciones anteriores llamaremos
CRIPTOSISTEMA o SISTEMA
CRIPTOGRFICO al vector (M,C,K,E,D)
OBSERVACIN
Es claro que este sistema criptogrfico funciona si
las transformaciones E
k
y D
k
son inversas de la
siguiente forma

( ) K k M m m m E D
k k
e e = ; , ) (
CLAVES DBILES
Son aquellas que comprometen la seguridad del
criptosistema. Estas suelen actuar de la siguiente
manera
( ) ( )
( )
( ) m m E
m m E
n K k
n
k
k
=
=
e - e -

N
En un buen criptosistema el nmero de este tipo de
claves es prcticamente nulo.
CRIPTOANLISIS
El criptoanlisis busca descubrir el texto plano o la
clave con la que est codificado.

Entre los ms conocidos encontramos Activos y
pasivos, y dentro de estos ltimos estn ataques con
criptogramas conocidos, ataque con texto plano
conocido y su respectivo criptograma, ataque con
texto plano elegido, ataque con criptograma elegido
y el ltimo ataque por anlisis de frecuencias.

CRIPTOGRAFA SIMTRICA
Est compuesta de los criptosistemas conocidos
como sistemas de clave privada.

Se basa en que el emisor y receptor comparten
una nica clave secreta k, de forma que los
procesos de encriptacin y de desencriptacin son
inversos entre s.

DESVENTAJA
Una desventaja de este criptosistema radica en
que las claves deben transmitirse por un canal de
comunicacin seguro , lo que en la prctica es casi
imposible.

SISTEMA DE TRANSPOSICIN

Como un ejemplo de este sistema, encontramos el
Sistema de Transposicin, el cual se basa en el
desorden de las letras que lo componen.

Para este sistema, la clave ser k (n, p), donde
n, el tamao del bloque en que se divide el mensaje
p, la permutacin a efectuar

Ejemplo
Se desea encriptar la frase ESTE ES UN
EJEMPLO DE CRIPTOGRAFIA SIMETRICA.
Se puede elegir la clave k (n, p), tomando n=6 y p la
permutacin
|
|
.
|

\
|
=
4 2 6 5 1 3
6 5 4 3 2 1
p

Aplicando la permutacin obtenemos el
criptograma siguiente


ESTE-E S-UN-E JEMPLO -DE-CR
IPTOGR AFIA-S IMETRI CA----
El primer paso ser dividir el texto plano en bloques
de tamao 6, rellenando los espacios con un guin.
Esto es
Este sistema no es difcil de criptoanalizar,
simplemente bastara con tratar de encontrar un
patrn y tener en cuenta las leyes del espaol
TE-ESEUS-E-NMJLOEPE-CRD-TIGRPOIA-
SFAEIRIMT-C--A-

Est compuesta de los criptosistemas conocidos
como sistemas de clave pblica.

A diferencia del sistema de clave privada, cada
usuario i que participa en la comunicacin, posee
dos claves (c
i
,d
i
), donde

CRIPTOGRAFA ASIMTRICA
c
i
es la clave pblica, la cual es utilizada por otro
usuario j para enviarle un texto plano m a i en
forma de criptograma.

d
i
es la clave que slo conoce el usuario i y le
permite desencriptar el mensaje que le ha enviado
el usuario j.
CRIPTOGRAFA ASIMTRICA
Esta criptografa nace con el propsito de solucionar
el inconveniente que tiene la simtrica, el cual
radica en la distribucin de la clave.

Diffie Hellman proponen utilizar funciones de
un sentido y as las claves se podran dar en
canales abiertos.
CRIPTOGRAFA ASIMTRICA
CONDICIONES DE DIFFIE - HELLMAN
Deber ser computacionalmente sencillo
1. La obtencin de claves y el proceso de
encriptacin.
2. El proceso de descencriptacin conociendo la
clave secreta.

Debe ser computacionalmente imposible
1. La obtencin de la clave privada a partir de la
pblica.
2. La obtencin del texto plano conociendo el
criptograma y la clave pblica.

FUNCIONES DE UN SENTIDO
Una funcin f se dice de un sentido si y = f (x) es
de fcil clculo conociendo x, mientras que el
clculo de x = f
-1
(y) es computacionalmente
imposible.
Un ejemplo de una de tales funciones es la conocida
como funcin exponenciacin modular, la cual
se define como sigue
( ) p g y
x
mod
donde y p es un nmero primo lo
suficientemente grande con k dgitos.

La complejidad computacional de esta funcin es
Z e x g,
( ) ( )
2 2
log k x O p x O ~
Mientras, que su funcin inversa
( ) p y x
g
mod log
conocida como funcin logaritmo discreto tiene
complejidad de orden exponencial. El mejor
conocido es de orden
( ) ( )
2 /
2
k
O p O ~
Esto muestra que cuando p es primo con ms de
200 dgitos el clculo de x es prcticamente
imposible.
SISTEMA DE CLAVE PBLICA
R.S.A
Es un sistema criptogrfico que cumple con las
condiciones de Diffie Hellman.
Su seguridad se basa en la factorizacin de
nmeros compuestos como producto de primos.
Adems, permite el intercambio de claves secretas
y firmar matemticamente.
CRIPTOSISTEMA RSA
1. Cada usuario i elige dos nmeros primos p, q lo
suficientemente grandes que mantiene secretos.
2. La determinacin de los nmeros primos puede
hacerse utilizando los tests de primalidad.
3. Se calcula n = p q y |(n) = (p1)(q1) donde
| es la funcin de Euler.

4. A continuacin el usuario elige un entero e
primo relativo con |(n) tal que


En la prctica se elige e primo directamente y
mayor que p y q.



( ) 0 n e | < <
CRIPTOSISTEMA RSA
Otro mtodo para hallar el mcd, es el algoritmo
de Euclides, que evita factorizar ambos nmeros.
Dicho algoritmo corre en tiempo polinomial de
O (log
3
|(n)).

5. Calcular un entero d, tal que y

( ) ) ( mod
1
n e d |

) ( 1 n d | < <
CRIPTOSISTEMA RSA
Luego, con lo anterior las claves sern

Pblica: P (e, n), conocida por todos los
usuarios.

Privada: S (d), conocida slo por quien desea
desencriptar el mensaje

CRIPTOSISTEMA RSA
OBTENCIN DEL CRIPTOGRAMA Y
PROCESO DE DESENCRIPTACIN
Para encriptar un texto plano M, se utiliza la funcin


mientras que para desencriptar se utiliza la funcin


( ) n M C
e
mod =
( ) n C M
d
mod =
Estos dos procesos se basan en la exponenciacin
modular, el cual es un algoritmo que se puede
implementar en tiempo polinomial de la longitud de
la entrada

O(log
3
n)~O(k
3
),

donde n es la entrada y k es su longitud.
Si algn usuario desea descencriptar el criptograma,
necesita conocer la clave privada, porque de no ser
as, debe resolver la congruencia
( ) n d e | mod 1 .
lo cual equivale a conocer |(n) o una factorizacin
de n que es un problema con el mismo grado de
complejidad que el algoritmo discreto.
SEGURIDAD DEL SISTEMA
SEGURIDAD DEL SISTEMA
Adems, tambin es necesario mantener
secretos d, p, q ya que

Si se hace pblico d, cualquiera puede
desencriptar.

Si se hace pblico p o q, entonces se conoce
|(n) y as, de conocemos d.
( ) n d e | mod 1 .
Tiempos de bsqueda sistemtica a un
milln de tentativas por segundo
Largo Clave 4 bytes 6 bytes 8 bytes
Letras minsculas (26) 0.5 s. 5 mn. 2.4 das
Caracteres alfanumricos (62) 15 s. 16 h 6.9 aos
Caracteres ASCII (256) 1.2 h 8.9 aos 580000 aos
IDENTIFICACIN DE MENSAJES

Cada usuario posee un entero n tal que


donde N representa el tamao del alfabeto y
k, l representan el nmero de letras del bloque
de entrada y salida respectivamente.

l k
N n N < <
As, todo mensaje M se puede representar
numricamente de la siguiente forma


De la misma forma C puede considerarse como

k k
k k
m N m N m N m M + + + =


1
2
2
1
1

l l
l l
c N c N c N c C + + + + =


1
2
2
1
1

IDENTIFICACIN DE MENSAJES

Ejemplo
Sea E un alfabeto con N=27 letras, donde se ha
identificado A=00, , Z=26, []=27.


1. Sean p = 29 y q = 31, de ah que n = 899
2. z = (n)=(p-1)(q-1)=840
3. Buscamos 1< e < 840 primo relativo con 840, sea
e = 37.
4. Buscamos d tal que e.d = 1 mod z, esto es
d = 613



5. As, la clave pblica P(899,37)
la clave privada S(613)
6. 27
2
< 899 < 27
3
, de ah que se va a encriptar
bloques de dos letras en bloques de tres letras.

7. Sea m : congreso el texto plano.
Utilizando el alfabeto E se tiene la siguiente
codificacin
C O N G R E S O
02 15 13 06 18 04 19 15
Los bloques a cifrar son



Expresemos cada bloque como un nmero en base
N=27



(02,15) (13,06) (18,04) (19,15)
(02,15) = 227
0
+
15 27
1
= 407
(13,06) =
13 27
0
+
6 27
1
= 175
(18,04) =
18 27
0
+
4 27
1
= 126
(19,15) =
19 27
0
+
15 27
1
= 424
Obtenemos el criptograma C con ayuda de la
igualdad


Esto es
( ) n M C
e
mod =
407
37
mod 899 = 233 =: c
1

175
37
mod 899 = 204 =: c
2
126
37
mod 899 = 221 =: c
3
424
37
mod 899 = 259 =: c
4
Expresemos c
i
en base 27, teniendo en cuenta que se
van a tener tres componentes







Luego el criptograma es QIAHOAFIAPJA

233
=
17 27
0
+
8 27
1
+
0
27
2

(17,08,00)

(QIA)
204
=
15 27
0
+
7 27
1
+
0 27
2

(15,07,00)

(OHA)
221
=
5 27
0
+
8 27
1
+
0 27
2

(05,08,00)

(FIA)
259
=
16 27
0
+
9 27
1
+
0 27
2

(16,09,00)

(PJA)
Para desencriptar el mensaje utilizamos la igualdad


Haciendo el proceso inverso eligiendo bloques de
tres letras se tiene que
( ) n C M
d
mod =
233
613
mod 899 = 407 =: m
1

204
613
mod 899 = 175 =: m
2
221
613
mod 899 = 126 =: m
3
259
613
mod 899 = 424 =: m
4
Obteniendo as el texto plano m: CONGRESO
407 =
2 27
0
+
15 27
1
(02,15) (CO)
175 =
13 27
0
+
6 27
1
(13,06) (NG)
126 =
18 27
0
+
4 27
1
(18,4) (RE)
424 =
19 27
0
+
15 27
1
(19,15) (SO)
REFERENCIAS
1. The discrete log problem. Chris Studholme. Article.
2. Introduction to Cryptography. Victor Shuop.
Lecture.
3. Una introduccin a la criptografa. Mario Merino
Martnez Monografa.
4. Aritmtica modular y criptografa. Artculo.
5. Criptografa Jos ngel de Bustos Prez. Artculo.
6. Computational Number Theory. Chapter 7.


TESTS DE PRIMALIDAD
1. Test de Solovay Strassen

Sea n un nmero impar. n es primo si y slo si n
es pseudoprimo de Euler para todo a con
MCD (a, n) =1.
Este test tiene una complejidad computacional
O (log
3
n)
TESTS DE PRIMALIDAD
2. Test de Miller (probabilstico)

Se dice que un nmero n impar es primo si y
slo si n es pseudoprimo fuerte para todo a con
MCD (a, n) =1.
Este test tiene una complejidad computacional
O (log
3
n)
Hasta el momento, no se conocen algoritmos de
factorizacin de enteros que tienen un tiempo de
complejidad de orden polinomial.

1. Index Calculus Methods: este da un algoritmo
que corre en tiempo
FACTORIZACIN
| | ) l og(l og l og n n O
e
2. Number Sieve Methods: resulta un algoritmo
que corre en tiempo
( ) ( )
(
(

|
|
.
|

\
|
3 / 2
log log
3 / 1
log n n O
e
Algoritmo clsico para descomponer
un nmero en factores primos
Dado un nmero natural n, el costo computacional
que tiene dicho algoritmo para hacer su
descomposicin en factores primos es de

( ) ( )
( ) ( )
2 2 / 2
2
2
. 2 log
queda esto , log es de longitud la Si
log divisin una de costo
k O n n O
n k n
n n O n
k
=
~
=
EXPONENCIACIN MODULAR
El problema radica en calcular m
n
mod z, para n, m
enteros suficientemente grandes. La solucin se
obtiene desarrollando un algoritmo divide y
vencers junto con las siguientes propiedades de
aritmtica modular
z z m z m
n n
mod ) mod ( mod =
z z n z m z mn mod )] mod )( mod [( mod =
EXPONENCIACIN MODULAR
Luego el algoritmo divide y vencers ser

Si n es par, hacemos n =2k
1
, donde k
1
e N. As


Si n es impar, hacemos n =2k+1, donde k e N. As
( )
1
1

2 2
mod mod mod mod
k
k n
m z m z m z z = =
( )
( )( ) | | z z m z m
z m m z m z m
k
k k n
mod mod mod
mod mod mod
2
2 1 2
=
= =
+

You might also like