Este documento describe los principios básicos de la criptografía simétrica y asimétrica. Explica que la criptografía simétrica usa una sola clave compartida por los dos extremos de la comunicación, mientras que la criptografía asimétrica asigna a cada extremo un par de claves pública y privada. Luego, se enfoca en RSA como un algoritmo de criptografía asimétrica clave, describiendo los pasos de generación de claves, cifrado y descifrado de mensajes.
Clasificaciones, modalidades y tendencias de investigación educativa.
Criptografía Asimétrica: Introducción a RSA
1.
2. Criptografía
• Es un conjunto de técnicas que permiten
el enmascaramiento de mensajes de tal
forma que solo el destino de una
comunicación podrá interpretarlo.
2
3. Criptografía Simétrica
• Los métodos criptográficos tradicionales
operan a partir de una palabra o frase
llave, que sirve para codificar y
descodificar información, el conocido
password.
• Está llave debe ser conocida por los dos
extremos de la comunicación, por lo que
el punto débil de este método es
justamente el proceso de difusión de la
llave.
3
5. Criptografía Asimétrica
• Por el contrario, la Criptografía de Clave
Pública asigna a cada extremo de la
comunicación un par de llaves, una
pública que cualquiera puede solicitar y
conocer, y otra privada, cuya seguridad es
fundamental para el éxito de la
codificación.
• Las llaves son una secuencia bastante
larga de caracteres y números, generadas
por un procedimiento matemático.
5
6. Criptografía Asimetrica
• Para enviar un mensaje seguro a una
persona, se codifica con la clave pública del
destinatario. El sistema garantiza que el
mensaje resultante sólo puede ser
descodificado con la clave privada del
destinatario (confidencialidad).
• Como se tiene la seguridad de la identidad
del destinatario gracias a su clave pública, nos
aseguramos que el mensaje va al sitio
correcto (autentificación).
6
7. Criptografía Asimétrica
• Clave privada: será custodiada por su
propietario y no se dará a conocer a ningún
otro.
• Clave pública: será conocida por todos los
usuarios.
• Esta pareja de claves es complementaria: lo que
cifra una SÓLO lo puede descifrar la otra y
viceversa.
7
12. Criptografía Asimétrica: RSA
• RSA (Rivest, Shamir y Adleman)
• RSA es un sistema criptográfico de clave
pública desarrollado en 1977 en el MIT.
12
13. Criptografía Asimétrica: RSA
• Los mensajes enviados se representan
numéricamente.
• El funcionamiento se basa en el producto,
conocido, de dos números primos
grandes elegidos aleatoriamente en
secreto.
• Estos números primos son del orden de
10 a la 200, y en aumento.
13
14. Criptografía Asimétrica: RSA
• En RSA cada usuario posee dos claves de
cifrado: una pública y otra privada.
• El emisor busca la clave pública 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.
14
15. Criptografía Asimétrica: 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.
15
16. Criptografía Asimétrica: RSA
• Generación de la Clave Publica y de
la Clave Privada:
1. Se eligen 2 números primos p y q,
de forma aleatoria, del orden de 10
a 200, su longitud deberá ser
similar en bits.
16
20. Criptografía Asimétrica: RSA
• Algoritmo de Euclides Extendido:
• El algoritmo de Euclides es un método
antiguo y eficaz para calcular el máximo
común divisor (MCD).
• El algoritmo de Euclides extendido es una
ligera modificación que permite además
expresar al máximo común divisor como
una combinación lineal.
20
22. Criptografía Asimétrica: 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
22
Implementación en
Python del Algoritmo de
Euclides Extendido y el
Calculo de la Llave Privada