Professional Documents
Culture Documents
Criptografía asimétrica
1 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Criptografía asimétrica:
Se caracteriza por usar una clave para cifrar y otra para
descifrar.
Una clave no se derivará de la otra.
2 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Criptografía asimétrica:
Debilidades: Muy lento, ineficiente para grandes
cantidades de datos
Emplean longitudes de clave mucho mayores que los simétricos.
La complejidad de cálculo que usan los hace más lentos que los
algoritmos de cifrado simétricos.
3 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Criptografía asimétrica:
Se crea para evitar el problema del intercambio de claves
del cifrado simétrico.
Resuelve la incapacidad de escalabilidad del cifrado
simétrico:
Se necesitan solo n pares de claves para cada n personas.
En el cifrado simétrico n(n – 1)/2 claves para comunicar n
personas.
5 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Características Criptografía asimétrica:
Si el propietario de la clave privada cifra con ella un
mensaje, cualquiera puede descifrarlo con la
correspondiente clave pública (Proporciona integridad,
autenticación y no repudio).
6 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Características Criptografía asimétrica:
Usa funciones unidireccionales:
Su cálculo directo es viable, pero el cálculo de la función inversa
tiene tal complejidad que resulta imposible.
7 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Aplicaciones:
Cifrado de la información:
Sin tener que transmitir la clave de decodificación, lo cual permite su
uso en canales inseguros.
La clave que se hace pública es aquella que permite codificar los
mensajes, mientras que la clave privada es aquella que permite
descifrarlos.
8 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Aplicaciones:
Autenticación de mensajes:
Nos permiten obtener una firma digital a partir de un mensaje.
La firma es mucho más pequeña que el mensaje original, y es muy difícil
encontrar otro mensaje de lugar a la misma.
La clave de descifrado se hará pública previamente, y la clave que se
emplea para cifrar es la clave privada.
9 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo RSA:
Debe su nombre a: Ronald Rivest, Adi Shamir y Leonard Adleman.
Las primeras versiones de PGP lo incorporaban como método de
cifrado y firma digital.
Se le tiene como uno de los algoritmos asimétricos más seguros.
RSA se basa en la dificultad para factorizar grandes números.
El atacante se enfrentará a un problema de factorización.
10 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo de Diffie-Hellman:
Se emplea fundamentalmente para acordar una clave común
entre dos interlocutores, a través de un canal de comunicación
inseguro.
Algoritmo:
A escoge un número aleatorio x, y envía a B el valor αx(mod p)
y = px (mod n)
La clave pública es (p, y, n), mientras que la clave privada es x.
12 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo de ElGamal (Firmas Digitales):
Algoritmo:
Escoger un número k aleatorio, tal que mcd(k,n-1) =1, y calcular:
a = pk(mod n)
b = (m-xa)k-1 (mod (n-1))
La firma la constituye el par (a, b). En cuanto al valor k, debe mantenerse en
secreto y ser diferente cada vez.
yaab = pm (mod n)
13 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo de ElGamal (Cifrado):
Algoritmo:
Para cifrar el mensaje m se escoge primero un número aleatorio k primo
relativo con (n-1), que también será mantenido en secreto. Calculamos:
a = pk(mod n)
b = ykm (mod n)
El par (a, b) es el texto cifrado, de doble longitud que el texto original.
m = b * a-x (mod n)
14 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo de Rabin:
Se basa en el problema de calcular raíces cuadradas al modulo de
un número compuesto. Este problema se ha demostrado que es
equivalente al de la factorización de dicho número.
Algoritmo:
Escogemos dos números primos, p y q, ambos congruentes con 3 módulo 4.
c = m2 (mod n)
15 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Algoritmos asimétricos:
Algoritmo de DSA (Digital Signature Algorithm):
Es una parte el estándar de firma digital DSS (Digital Signature
Standard).
Este algoritmo, propuesto por el NIST, data de 1991, es una
variante del método asimétrico de ElGamal.
Algoritmo:
Por un lado se generará la clave pública compuesta por (p, q, α, y). Y por otro
la clave privada a.
16 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Ejercicio
17 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Vamos a usar la utilería openssl para general las llaves
privadas y públicas para el ejercicio:
Generar la llave privada.
Generar la llave pública.
Cifrar el archivo original.
Descifrar el archivo generado.
18 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Generar la llave privada:
19 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Generar la llave privada:
20 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Generar la llave pública:
21 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Generar la llave pública:
22 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Cifrar el archivo original:
23 aulas.aprendiendoaprogramar.com apdaza@gmail.com
Criptografía
Cifrado de llave privada y publica:
Descifrar el archivo generado:
24 aulas.aprendiendoaprogramar.com apdaza@gmail.com