Algoritmo Asimetrico Modernos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 31

Seguridad Informática

Cifrado Moderno – Algoritmos Asimétricos


Algoritmos de cifrado Asimétricos

 La criptografía de clave asimétrica también es conocida como clave pública, emplea


dos llaves diferentes en cada uno de los extremos de la comunicación para cifrarla y
descifrarla.
 Cada usuario de la comunicación tendrá una clave pública y otra privada.
 La clave privada tendrá que ser protegida y guardada por el propio usuario, será secreta
y no la deberá conocer absolutamente nadie ni tampoco debe ser enviada a nadie.
 La clave pública será accesible por todos los usuarios del sistema que quieran
comunicarse.
Función Trampa

La fortaleza del sistema por el cual es seguro este tipo de algoritmo


asimétrico, es que estas claves están mutuamente relacionadas por
una FUNCIÓN TRAMPA que son funciones matemáticas las cuales son
fáciles de resolver en un sentido, pero que su resolución en sentido
contrario es extremadamente complicada, a menos que se conozca
la clave.
Criptografía Asimétrica

 Si ciframos con una, debemos descifrar


con la otra.
 Su seguridad está asociada a la
resolución de un problema matemático
de difícil solución en un tiempo
razonable.
 Dada su complejidad, son mucho más
lentos que los simétricos, por lo que usan
para cifrar datos pequeños.
 Se utilizan para el intercambio de claves
y la firma digital.
¿Cómo se generan esas claves?

 Las claves públicas y privadas se generan simultáneamente y están


ligadas la una a la otra.
 La relación entre ambas debe ser muy compleja, para que resulte
muy difícil que obtengamos una clave a partir de la otra, en este
caso, que obtengamos la clave privada puesto que la pública la
conoce toda persona conectada al sistema.
Función de las claves

Las parejas de claves tienen varias y muy importantes funciones, entre las que destacamos:
 Cifrar la información.
 Asegurar la integridad de los datos transmitidos.
 Garantizar la autenticidad del emisor.
Cifrado Asimétrico

Si una persona con una pareja de claves cifra un mensaje con la llave pública del receptor,
ese mensaje sólo podrá ser descifrado con la llave privada asociada. Si encriptamos un
mensaje con la clave privada, no podremos desencriptarlo con la propia clave privada,
deberemos usar la pública (en este caso no se considera cifrado, sino que se comprueba la
autenticidad del emisor, con ello comprobaremos que el emisor es quien realmente dice
ser).
La estructura matemática del funcionamiento del cifrado asimétrico es esta:
 Mensaje + clave pública = Mensaje cifrado
 Mensaje encriptado + clave privada = Mensaje descifrado
 Mensaje + clave privada = Mensaje firmado
 Mensaje firmado + clave pública = Autenticación
Cifrado Asimétrico

El cifrado simétrico aporta confidencialidad (sólo podrá leer el mensaje el destinatario). La


criptografía asimétrica proporciona otras propiedades: autenticidad, integridad y no
repudio. Para que un algoritmo sea considerado seguro debe cumplir lo siguiente:
 Si se conoce el texto cifrado, debe resultar muy difícil o prácticamente imposible extraer
el texto en claro y la clave privada por cualquier método.
 Si se conoce el texto en claro y el cifrado, debe resultar más costoso obtener la clave
privada que el texto en claro.
 Si los datos han sido cifrados con la clave pública, sólo debe existir una clave privada
capaz de descifrarlo, y viceversa.
Ventajas y desventajas

Ventajas Desventajas
 La ventaja del cifrado asimétrico sobre el  El principal inconveniente que tiene este
simétrico, radica en que la clave pública tipo de cifrado es la lentitud, el empleo
puede ser conocida por todos los de este tipo de claves ralentiza el
usuarios del sistema, sin embargo, no proceso de cifrado de la comunicación.
ocurre esto con la clave privada, y por La solución a esto es usar tanto el cifrado
parte del cifrado simétrico deben asimétrico como el simétrico
conocer la misma clave los dos usuarios
(y la clave debe hacerse llegar a cada
uno de los distintos usuarios por el canal
de comunicación establecido).
Ejemplo

 El ejemplo claro de donde se usa este tipo de método combinado son las VPN, como
OpenVPN o IPsec, en ellas, la clave de sesión que es conocida por los usuarios, se
regenera cada cierto tiempo para incrementar aún más la seguridad en la
comunicación, sin que ello conlleve un retardo significativo en la transferencia de los
datos.
 El HTTPS para las conexiones web seguras, o en las conexiones SFTP/FTPES
 Esta combinación de cifrados sucede de la siguiente manera. Creamos la clave del
algoritmo simétrico, la ciframos con la clave pública del receptor, enviamos los datos
cifrados por el canal de comunicación inseguro, y a continuación, el receptor descifrará
los datos mediante su llave privada. Con la clave del algoritmo simétrico en los dos
puntos, es cuando puede empezar la comunicación mediante el cifrado simétrico, lo
que hace que la comunicación sea mucho más rápida que si usáramos solo criptografía
asimétrica en toda la comunicación.
Desafío-Respuesta

 Para aumentar la seguridad, este método comprueba que el emisor es realmente quien
dice ser, para ello se envía un texto al emisor y éste lo cifrará con su clave privada (lo que
está haciendo realmente es firmarlo), el emisor nos enviará el texto cifrado (firmado) y
nosotros descifraremos la clave (comprobaremos la firma) aprovechando que tenemos la
clave pública del emisor, y por último, compararemos que el mensaje obtenido sea el
mismo que enviamos anteriormente.
 Si algún usuario se hace pasar por el emisor real, no tendría la clave privada por lo que el
«desafío» no hubiera resultado satisfactorio y no se establecería la comunicación de los
datos.
Algoritmos de cifrado de clave asimétrica

 Diffie-Hellman: Se trata de un algoritmo que permite crear una clave secreta entre dos
equipos informáticos que nunca han tenido contacto previo, a través de un canal
inseguro, y mediante el envío de solo dos mensajes.
 RSA (Rivest, Shamir y Adleman): es un sistema criptográfico de clave pública desarrollado
en 1979, que utiliza factorización de números enteros. Es el primer y más utilizado
algoritmo de este tipo y es válido tanto para cifrar como para firmar digitalmente.
 DSA (Digital Signature Algorithm): Este algoritmo como su nombre lo indica, sirve para
firmar (autenticar), pero no para cifrar información. Una desventaja de este algoritmo es
que requiere mucho más tiempo de cómputo que RSA.
Diffie-Hellman

 No es un algoritmo asimétrico propiamente dicho, es un protocolo de establecimiento de


claves, se usa para generar una clave privada a ambos extremos de un canal de
comunicación inseguro.
 Se emplea para obtener la clave privada con la que posteriormente se cifrará la información
junto con un algoritmo de cifrado simétrico. El punto fuerte del Diffie-Hellman es que, su
seguridad radica en la dificultad de calcular el logaritmo discreto de números grandes (Diffie-
Hellmann también permite el uso de curvas elípticas).
 El problema de este algoritmo es que no proporciona autenticación, no puede validar la
identidad de los usuarios, por tanto, si un tercer usuario se pone en medio de la comunicación,
también se le facilitaría las claves y, por tanto, podría establecer comunicaciones con el
emisor y el receptor suplantando las identidades. Para evitar esto existen varias soluciones que
mitigan y solucionan el problema, como hacer uso de certificados digitales.
Implementación
 Los valores de “p” y “g” son públicos y cualquier atacante puede conocerlos, pero esto
no supone una vulnerabilidad. Aunque un atacante conociese dichos valores y
capturara los dos mensajes enviados entre las máquinas A y B, no sería capaz de
averiguar la clave secreta. A continuación se muestra la información capturada por un
atacante en el escenario de la Figura 46:
(ga mod p) = 8 → (5a mod 23) = 8
(gb mod p) = 19 → (5b mod 23) = 19
 A partir de las ecuaciones anteriores, intentar calcular los valores de “a” y “b” es lo que
se conoce como el problema del algoritmo discreto, un problema que se cree
computacionalmente intratable y cuya notación es la siguiente:
a = log discg (ga mod p) = log disc 5 (8)
b = log discg (gb mod p) = log disc 5 (19)
 Con los valores del ejemplo sí que es posible encontrar la solución, ya que se ha
escogido un número primo “p” muy pequeño (p = 23), y se sabe que “a” y “b” son
menores que “p”. Por lo tanto, para obtener los valores secretos en este ejemplo, un
atacante tendría que probar sólo 22 posibles valores.
 Por suerte, las implementaciones actuales del protocolo Diffie-Hellman utilizan números
primos muy grandes, lo que impide a un atacante calcular los valores de “a” y “b”. El
valor “g” no necesita ser grande, y en la práctica su valor es 2 ó 5. En el RFC 3526
aparecen publicados los números primos que deben utilizarse. A modo de ejemplo, se
facilita aquí el número primo de 1024 bytes propuesto. El valor “g” utilizado es 2:
 p = 28192 – 28128 – 1 + 264 x ((28062 pi) + 4743158)
RSA (Rivest, Shamir y Adleman)
 El algoritmo asimétrico por excelencia, este algoritmo se basa en la pareja de claves, la
pública y la privada de las que ya hemos hablado con anterioridad. La seguridad de este
algoritmo radica en el problema de la factorización de números enteros muy grandes, y en el
problema RSA, porque descifrar por completo un texto cifrado con RSA no es posible
actualmente, aunque sí un descifrado parcial. Algunas características muy importantes de RSA
es la longitud de clave, actualmente como mínimo se debe utilizar una longitud de 2048 bits,
aunque es recomendable que sea de 4096 bits o superior para tener una mayor seguridad.
 Ventajas:
 Se resuelve el problema de la distribución de las llaves simétricas (cifrado simétrico).
 Se puede emplear para ser utilizado en firmas digitales.

 Desventajas:
 La seguridad depende de la eficiencia de los equipos.
 Es más lento que los algoritmos de clave simétrica.
 La clave privada debe ser cifrada por algún algoritmo simétrico.
Generando las claves RSA
Generando las claves RSA

 Antes de que podamos enviarle un mensaje a alguien más, ese destinatario habrá
generado las claves. Veamos, matemáticamente, cómo hace este proceso.
 Si lo igualamos a nuestro ejemplo del uso de la caja fuerte, sería equivalente a que el
destinatario creara las llaves, una para poder cerrar la caja (llave pública) y otra para
poder abrirla (llave privada). Este esquema sirve para lograr el denominado servicio de
confidencialidad, pero puede usarse también para lograr autenticidad
Generando las claves RSA
Cifrado y Descifrado
Cifrando un mensaje
Cifrando un mensaje
Descifrando el mensaje
Descifrando el mensaje
Conclusiones

 Exactamente lo mismo que acabamos de ver, con una pequeña diferencia: los números
primos tomados son muy grandes, puesto que este es un algoritmo que basa su
seguridad en la complejidad computacional.
 Debe aclararse que, más allá de los ejemplos simples que se mostraron, RSA es un
algoritmo perfectamente seguro en la actualidad, es decir, no existe una computadora
ni cluster de alto rendimiento que pueda romper el algoritmo en un tiempo aceptable.
 No obstante, no es un algoritmo que pueda resistir al criptoanálisis cuántico, es decir, a un
ataque realizado implementando un algoritmo cuántico como el de Shor en una
computadora cuántica con cientos o miles de qubits, que además disponga de
corrección de errores y un control aceptable del ruido.
DSA

Este algoritmo es también puramente asimétrico, una desventaja de DSA es que quiere mucho
más tiempo de cómputo que RSA a igualdad de hardware. DSA se utiliza ampliamente como un
algoritmo de firma digital, es actualmente un estándar, pero DSA no se utiliza para cifrar datos,
solamente como firma digital. Este algoritmo se utiliza ampliamente en las conexiones SSH para
comprobar la firma digital de los clientes, además, existe una variante de DSA basada en curvas
elípticas (ECDSA), y está disponible en todas las librerías criptográficas actuales como OpenSSL,
GnuTLS o LibreSSL. Otra característica de DSA es la longitud de clave, la mínima longitud de clave
es de 512 bits, aunque lo más habitual es usar 1024 bits.
El algoritmo DSA es el utilizado de forma predeterminada por OpenSSH, el popular software del
servidor/cliente SSH que usamos ampliamente en cualquier servidor NAS, router o switch
compatible con este protocolo, además, tenemos también una compatibilidad perfecta con los
diferentes sistemas operativos, independientemente del software utilizado. DSA suele ser más
utilizado en SSH que el popular RSA.
Algoritmo de firma digital DSA
Algoritmo de firma digital DSA
Algoritmo de firma digital DSA
DSA

Ahora conoces los dos tipos de criptografía y las propiedades de cada una, con ello
sabrás dónde merece la pena usar un tipo y dónde el otro. Con el tiempo estos métodos
variarán o se actualizarán a unos más seguros, ya que con el crecimiento del rendimiento de
las computadoras se consigue potenciar los ataque a este tipo de método de seguridad,
pero ahora mismo, los que están vigentes y siguen usándose por no haber sido desbancados
aún, son los que acabamos de explicar.
Diferencias cifrado simétrico y asimétrico

 Después de explicar cómo funcionan los diferentes tipos de cifrados, vamos a hablar de
las diferencias que hay entre el simétrico y asimétrico. Ambos permiten cifrar archivos y usar servicios
como el correo electrónico con mayores garantías, pero cuentan con ciertas peculiaridades en
cada caso.
 La diferencia principal es que el cifrado simétrico utiliza una única clave. Por ejemplo, para enviar un
correo electrónico a otra persona ciframos ese mensaje con una llave. Cuando llega al destinatario,
éste tiene que usar esa misma clave para descifrarlo y poder leerlo. Por tanto, podemos decir que en
este caso el emisor y receptor van a utilizar la misma clave para ese mensaje. Previamente, antes de
enviar ese mensaje ambas partes deben comunicarse para conocer cuál es esa llave que van a
tener que utilizar.
 En cambio, el cifrado asimétrico utiliza dos claves. Una de ellas va a ser privada, mientras que la otra
es pública. La clave pública va a encargarse de cifrar el mensaje de ese correo. La privada la va a
utilizar el destinatario para descifrar el mensaje. Esto hace que sea más sencillo distribuir las claves y
también es más seguro, ya que la clave privada no la va a conocer nadie más.
Diferencias cifrado simétrico y asimétrico

 En este sentido, el cuidado que debemos tener es mayor en el caso del cifrado simétrico, ya
que al compartir las claves pueden terminar en malas manos. El cifrado asimétrico no va a
poner en riesgo la clave privada, por lo que no debemos de tener tanto cuidado en ese
sentido para poder estar protegidos.
 Otra diferencia es la longitud de las claves. En el caso de la simétrica, puede ser más corta
que la asimétrica, que necesitan tener una mayor longitud. La asimétrica va a necesitar un
mensaje que ocupa más espacio y necesita más tiempo para procesarlo, además de que
requiere de mayor potencia de los equipos.
 El tipo de algoritmos que se utiliza varía según el tipo de cifrado. En el caso del simétrico, utiliza
algoritmos como AES, DES, 3DES o RC4. Respecto al asimétrico, usa algoritmos como DSA o
RSA.
 En definitiva, como has podido ver existen diferencias entre el cifrado simétrico y asimétrico. El
más reciente, el que además se utiliza más hoy en día, es el asimétrico. Es más seguro y ofrece
diferentes ventajas respecto al anterior, como hemos explicado. No obstante, tiene también
algunos puntos negativos, como es el hecho de necesitar una mayor longitud de clave y
tardar más en el proceso.

También podría gustarte