Está en la página 1de 31

Criptografa

Es un conjunto de tcnicas que permiten el


enmascaramiento de mensajes de tal forma que solo
el destino de una comunicacin podr interpretarlo.

Criptografa Simtrica
Los mtodos criptogrficos tradicionales operan a
partir de una palabra o frase llave, que sirve para
codificar y descodificar informacin, el conocido
password.
Est llave debe ser conocida por los dos extremos de
la comunicacin, por lo que el punto dbil de este
mtodo es justamente el proceso de difusin de la
llave.

Criptografa Simtrica

Criptografa Asimtrica
Por el contrario, la Criptografa de Clave Pblica
asigna a cada extremo de la comunicacin un par de
llaves, una pblica que cualquiera puede solicitar y
conocer, y otra privada, cuya seguridad es
fundamental para el xito de la codificacin.
Las llaves son una secuencia bastante larga de
caracteres y nmeros, generadas por un
procedimiento matemtico.

Criptografa Asimetrica
Para enviar un mensaje seguro a una persona, se
codifica con la clave pblica del destinatario. El
sistema garantiza que el mensaje resultante slo
puede ser descodificado con la clave privada del
destinatario (confidencialidad).
Como se tiene la seguridad de la identidad del
destinatario gracias a su clave pblica, nos
aseguramos que el mensaje va al sitio correcto
(autentificacin).

Criptografa Asimtrica
Clave privada: ser custodiada por su propietario y no se dar
a conocer a ningn otro.
Clave pblica: ser conocida por todos los usuarios.
Esta pareja de claves es complementaria: lo que cifra una
SLO lo puede descifrar la otra y viceversa.

Criptografa Asimtrica

Criptografa Asimtrica

Criptografa Asimtrica

Algoritmos para Criptografa Asimtrica


RSA
DSA
El Gamal
Criptografa de curva elptica
Entre otros.

Lectura
Firma Digital
SSL (Secure Sockets Layer)
Certificado Digital

Criptografa Asimtrica: RSA


RSA (Rivest, Shamir y Adleman)
RSA es un sistema criptogrfico de clave pblica
desarrollado en 1977 en el MIT.

Criptografa Asimtrica: RSA


Los mensajes enviados se representan
numricamente.
El funcionamiento se basa en el producto, conocido,
de dos nmeros primos grandes elegidos
aleatoriamente en secreto.
Estos nmeros primos son del orden de 10 a la 200, y
en aumento.

Criptografa Asimtrica: RSA


En RSA cada usuario posee dos claves de cifrado: una
pblica y otra privada.
El emisor busca la clave pblica del receptor al
momento de enviarle un mensaje, cifra este con esa
clave.
Una vez que el mensaje cifrado llega al receptor, este
se ocupa de descifrarlo usando su clave privada.

Criptografa Asimtrica: RSA


Pasos:
1. Se genera la clave Publica y la Clave Privada.
2. Se cifra el mensaje usando la Clave Publica.
3. Se descifra el mensaje usando la Clave Privada.

Criptografa Asimtrica: RSA


Generacin de la Clave Publica y de la Clave
Privada:
1. Se eligen 2 nmeros primos p y q, de forma
aleatoria, del orden de 10 a 200, su longitud
deber ser similar en bits.

Criptografa Asimtrica: RSA


Generacin de la Clave Publica y de la Clave
Privada:
2. Se calcula = , donde es el modulo
para ambas claves, Publica y Privada.
3. Se calcula = , donde
es la funcin de Euler.

Criptografa Asimtrica: RSA


Generacin de la Clave Publica y de la Clave Privada:
4. Se escoge un entero positivo menor que ,
que sea primo relativo de .
se da a conocer como el exponente de la clave
pblica.
ser nuestra llave publica.

Criptografa Asimtrica: RSA


Generacin de la Clave Publica y de la Clave Privada:
5. Se determina un (mediante aritmtica modular)
que satisfaga la congruencia ( )
Esto suele calcularse mediante el algoritmo de
Euclides extendido.
ser nuestra clave privada.

Criptografa Asimtrica: RSA


Algoritmo de Euclides Extendido:
El algoritmo de Euclides es un mtodo antiguo y
eficaz para calcular el mximo comn divisor (MCD).
El algoritmo de Euclides extendido es una ligera
modificacin que permite adems expresar al
mximo comn divisor como una combinacin lineal.

Criptografa Asimtrica: RSA


Algoritmo de Euclides Extendido:
Dados , nmeros enteros, el MCD de estos
nmeros estar dado por la combinacin lineal:
, = +

Criptografa Asimtrica: RSA


def egcd(a,b):
u, u1 = 1, 0
v, v1 = 0, 1
while b:
q = a // b
u, u1 = u1, u - q * u1
v, v1 = v1, v - q * v1
a, b = b, a - q * b
return u, v, a

def modInverse(e,n):
return egcd(e,n)[0]%n
d = modInverse(e,fi_n)
print 'La Clave privada es: ', d

Implementacin en
Python del Algoritmo de
Euclides Extendido y el
Calculo de la Llave Privada

Criptografa Asimtrica: RSA

Criptografa Asimtrica: RSA


Dada nuestra llave publica y nuestra llave
privada , ya podemos iniciar el proceso de
cifrado, que estar dado por:
= (())
Donde es el mensaje original expresado de
forma numrica.
Y es el mensaje cifrado.
Se cifra con la llave publica.

Criptografa Asimtrica: RSA


El proceso de descifrado, que estar dado por:
= (())
Donde es el mensaje original expresado de
forma numrica.
Y es el mensaje cifrado.
Se descifra con la llave privada.

Criptografa Asimtrica: EJEMPLO RSA


Cifrar el Mensaje UCM usando RSA.
Paso 1: Seleccionar dos nmeros primos grandes.
p = 83
q = 89
Paso 2: Calcular n
n = p*q = 83 * 89 = 7387
Paso 3: Calcular()
= 1 1 = 83 1 89 1
= 7216

Criptografa Asimtrica: EJEMPLO RSA


Paso 4: Seleccionar e como primo relativo de ()
e = 5009
Paso 5: Calculard, podemos usar el cdigo en Python
para automatizar el proceso, recordemos que este
calcula el MCD entre e y inicialmente y luego a
este le aplicamos modulo
d = 2753

Criptografa Asimtrica: EJEMPLO RSA


Paso 6: Ciframos
Convertimos el texto UCM a numrico con su
equivalente en asccii.
UCM 85 67 77
Para Cifrar aplicamos la formula:
= (())
= (()) = 5440
= (()) = 7128
= (()) = 6663

Criptografa Asimtrica: EJEMPLO RSA


Paso 7: desciframos
=5440, =7128, =6663
Para descifraraplicamos la formula:
= (())

Referencias
RSA Laboratories. (2002). PKCS #1 v2.1: RSA Cryptography
Standard. Estados Unidos.
Davis, Tom. (2003). RSA Encryption. Geometer. Estados
Unidos.
Wikipedia Criptografa Asimtrica - http://goo.gl/4fVFp
Wikipedia RSA - http://goo.gl/sAo6c - http://goo.gl/JqAYG
Wikipedia Firma Digital - http://goo.gl/AVVVq
Matematicas.net - http://goo.gl/4V4mU