Conoce Atico34 - Solicita presupuesto
CiberseguridadNuevas tecnologias

Qué es la criptografía asimétrica y cómo funciona

Aunque muchos no somos conscientes de ello, la criptografía asimétrica forma parte de nuestro día a día en el mundo digital, puesto que se usa para prácticamente casi todas las comunicaciones que llevamos a cabo a través de la Red. Pero, ¿qué es exactamente la criptografía asimétrica? En esta entrada respondemos a esa pregunta y os explicamos cómo funciona.

¿Qué es la criptografía asimétrica?

La criptografía asimétrica es uno de los tipos de criptografía informática y una de las técnicas de criptografía más potentes diseñadas en base al uso de una fórmula matemática muy compleja para crear un par de claves: la clave privada y la clave pública. A través de estas claves se establece un canal de comunicación seguro entre las partes, en el que tanto el emisor como el receptor deben usar criptografía asimétrica con un mismo algoritmo definido, que les permitirá crear un juego de claves único e irrepetible para cada uno.

En ese proceso de comunicación, el emisor y el receptor comparten entre ellos sus claves públicas; estas claves cifrarán posteriormente los mensajes que intercambien entre ellos. Y las claves privadas descifrarán esos mensajes para poder ver su contenido. Este proceso hace imposible que un tercero puede interferir en la comunicación y ver el contenido de los mensajes.

Este proceso que suena sencillo, pero que esconde años de investigación y potentes algoritmos, se emplea de manera muy habitual en Internet, un ejemplo de encriptación asimétrica lo encontramos en nuestras comunicaciones por WhatsApp o Telegram o en el acceso a nuestros correos electrónicos, así como para demostrar el no repudio en transacciones electrónicas.

Inicios de la criptografía asimétrica

La criptografía asimétrica vio su nacimiento en 1976, cuando Ralph Merkel, Whitfield Diffie y Martin Hellman crearon el primer sistema público de criptografía asimétrica. Aunque no era exactamente asimétrico, el algoritmo  Diffie-Hellman supuso un primer paso importantísimo en el desarrollo de esta técnica, que pronto vio llegar más aportaciones de otros investigadores.

Sería en 1977 cuando Ron Rivest, Adi Shamir y Leonard Adleman crearían el algoritmo RSA, el primero algoritmo de criptografía asimétrica público que se convertiría en un estándar de la industria hasta nuestros días, donde la evolución de la tecnología ha permitido seguir desarrollando esta técnica de cifrado asimétrico, con resultados cada vez más potentes y seguros.

¿Cómo funciona la criptografía asimétrica?

El funcionamiento del cifrado asimétrico sigue una serie de pasos que garantizan que el sistema es completamente seguro y que mantiene el secreto de las comunicaciones que se intercambian a través de él.

Seleccionar el algoritmo y curva de cifrado

El primer paso para que el cifrado asimétrico funcione es escoger el algoritmo que se va a usar, porque cada uno tiene propiedades únicas. Existen en la actualidad decenas de algoritmos, algunos más seguros que otros según su complejidad, pero los más habituales son RSA, ECDSA, EdDSA y ElGamal; cada uno estos algoritmos usa un sistema matemático propio.

Las propiedades de los algoritmos están relacionadas con la curva elíptica que usan para su funcionamiento. Las curvas elípticas consideradas el cifrado asimétrico son numerosas, al menos existen 22 registradas y estudiadas. Por ejemplo, la Curve25519 de Daniel Bernsteins es una de las más utilizadas en algoritmos de cifrado compactos y muy eficientes. Mientras que en redes blockchain de criptomonedas se usa más la secp256k1.

criptografía asimétrica

Generación de claves

Una vez se tienen decidido el algoritmo a usar, el siguiente paso es generar las claves pública y privada.

La primera clave en generarse mediante esta técnica de criptografía es la clave privada. Esta clave solo la poseemos nosotros y surge como el resultado e tomar dato aleatorios y trasladarlos a un problema matemático, del que se obtiene como resultado un número enorme que pasa por un proceso de conversión, para transformarse en una larga cadena de números y letras, que será la clave privada.

Con la clave privada podremos generar la clave pública, a través de un complejo proceso matemático que relaciona la clave privada con una formulación matemática. El resultado vuelve a ser un enorme número que se transformará en una larga cadena de números y letras que será la clave pública.

Así, la clave privada es una semilla de cifrado, a partir de la cual podemos crear tantas claves públicas como necesitemos. La clave privada nos permite, además, descifrar los mensajes que recibamos de las personas a las que les entregamos nuestras claves públicas. Además, la clave privada nos permite firmar digitalmente los mensajes, dejando así plasmada la autenticidad de la comunicación, puesto que nadie puede duplicar la clave privada.

Por su parte, la clave pública tiene como finalidad que las personas a quien se las damos puedan cifrar los mensajes y enviárnoslos. Es importante señalar que la clave pública permite cifrar mensajes, pero el proceso contrario, descifrarlos, es prácticamente imposible. Esto es así porque la clave privada y la clave pública están relacionadas mediante el algoritmo que se usó para crearlas. La clave pública también verifica la autenticidad de las firmas digitales que llevan nuestros mensajes.

Propagación de confianza

La siguiente fase es la propagación segura de las claves, para generar espacios que garanticen la seguridad de los canales de comunicación. Para esto existen diferentes métodos, entre los que encontramos:

  • Infraestructura de clave pública o PKI: Aquí solo existe una o varias entidades emisoras de certificados. Cada entidad se relaciona con un nivel de confianza, que sirve para asegurar la autenticidad de las claves públicas. Este es el esquema que se usa para asegurar la autenticidad de los certificados SSL/TLS de las páginas webs.
  • Establecer una red de confianza: Este sistema establece para cada usuario una serie de contactos con los que comparte su clave pública de forma abierta o privada. Su uso es muy habitual por sistemas como PGP para el envío de correos privados y cifrados.
  • Criptografía basada en identidad: Es un sistema de propagación que utiliza un sistema centralizado para gestionar nuestras claves, que están relacionadas con la identidad real o virtual que proporcionamos al sistema.
  • Criptografía basada en certificado digital: El usuario posee una clave privada y otra pública; la clave pública la envía una Autoridad de certificación. se asegura usando criptografía basada en identidad para generar un certificado que asegura la validez de los datos.
  • Criptografía sin certificados: Parecido al modelo anterior, pero aquí la clave privada generada por la Autoridad es parcial, de manera que la clave privada final depende de la parcial y un número aleatorio calculado por el usuario. Este sistema garantiza un mayor nivel de seguridad.

Configurar el canal de comunicación y Envío/recepción de mensajes

La configuración del canal dependerá del medio y el algoritmo que hayamos escogido para propagar las claves públicas, cómo hemos visto en el epígrafe anterior. Una vez propagadas las claves y configurado el canal de comunicación, ya podremos comenzar a enviar y recibir mensajes de forma segura.

El esquema de envío y recepción de mensajes funciona de la siguiente manera:

  1. El usuario A genera un mensaje que es cifrado usando la clave pública del usuario B y firmado por la clave privada de A. Esto garantiza que solo B puede ver este mensaje y corroborar que proviene de A.
  2. El mensaje va firmado y cifrado por el canal de comunicación. En caso de ser interceptado, sería inútil tratarlo de leerlo, porque no se podrá descifrar.
  3. Cuando el mensaje llega a B, este usuario utilizará su clave privada para descifrarlo, mientras que al mismo tiempo, podrá usar la clave pública de A para validar que el mensaje lo ha enviado realmente A.
  4. El proceso se repite al enviar una respuesta.

Gracia a este proceso, la comunicación es segura en canales abiertos, puesto que corromper o manipular el mensaje enviado usando criptografía asimétrica es muy, muy difícil.

Ventajas y Desventajas de la criptografía asimétrica

Entre las ventajas que tiene usar un sistema de criptografía asimétrica encontramos:

  • Tiene una alta tasa de seguridad, puesto que el esquema de cifrado es muy complejo; esto hace que el criptoanálisis de estos sistemas sea complicado y que los ataques de fuerza bruta para romperlo resulten inútiles.
  • Asegura canales abiertos y públicos de comunicación gracias al empleo de los juegos de claves públicas y privadas.
  • Permite autentificar la información gracias a un sistema de firma digital. Por ejemplo, en los certificados de la FNMT, se usa un sistema sin repudio cifrado de clave (e0).
  • Tienen un alto nivel de confidencialidad e integridad.

Pero la criptografía asimétrica también viene acompañada de algunas desventajas, como por ejemplo:

  • Comparado con un cifrado simétrico es computacionalmente más costoso y más lento.
  • No es ajeno a problemas externos, por ejemplo, un generador de números aleatorio defectuoso comprometería todo el sistema de cifrado.
  • Dada la complejidad de los algoritmos, detectar fallos o bugs es más difícil en este tipo de sistemas.
  • Los esquemas de propagación de confianza centralizados pueden suponer una vulnerabilidad ante la manipulación de certificados, si la estructura resulta comprometida.

Uso de la criptografía asimétrica en la blockchain

La tecnología blockchain ha buscado desde sus inicios ofrecer la mayor seguridad posible a sus usuarios y en esa búsqueda, la criptografía asimétrica ha jugado un papel muy importante, puesto que gracias a las claves privadas y públicas se han podido asegurar las comunicaciones seguras y privadas.

Además, la tecnología blockchain ha sido el campo de pruebas ideal para desarrollar nuevas técnicas criptográficas que no han beneficiado a toda la informática, como por ejemplo esquemas como las Pruebas de Conocimiento Cero (ZKP) o las firmas Schorr.

Criptografía simétrica vs asimétrica

Ahora que ya hemos llegado al final de la entrada, quizás os preguntéis ¿en qué se diferencian el cifrado simétrico y el asimétrico? ¿Y cuál es mejor?

La principal diferencia es fácil de ver, mientras que en la criptografía asimétrica se usan dos claves, en la criptografía simétrica solo se utiliza una clave para cifrar y descifrar el mensaje, que deben conocer tanto en el emisor como el receptor de manera previa y este es el punto débil del sistema, ya que resulta más fácil de interceptar una clave que no se ha transmitido con seguridad. Y, además, este sistema nos obliga a tener una clave diferente para cada usuario con el que nos comuniquemos.

Sin embargo, la criptografía simétrica es más rápida que la asimétrica. Esto nos lleva a nuestra segunda pregunta.

Lo cierto es que para “solventar” los inconvenientes de cada uno de esos sistemas, en algunos casos se opta por criptografía híbrida, que aproveche las ventajas de los dos sistemas: la velocidad del simétrico y la seguridad del asimétrico. En este tipo de sistema híbrido funciona así

  1. Se genera una clave pública y otra privada (en el receptor)
  2. Se cifra el mensaje de forma síncrona
  3. El receptor envía su clave pública.
  4. Se cifra la clave que se ha usado para encriptar el mensaje con la clave pública del receptor.
  5. Se envía el mensaje cifrado (de manera síncrona) y la clave del mensaje cifrada de manera asíncrona y que solo puede ver el receptor.

En definitiva, la criptografía asimétrica es uno de los sistemas de cifrado más seguros actualmente y que se emplea en prácticamente todas nuestras comunicaciones digitales, aunque no seamos consciente de ello, porque todo ese proceso se aplica de manera automática.