Criptografía asimétrica o criptografía de clave pública.

Entiende cómo funciona la criptografía asimétrica.

Featured image

Actualmente la mayor parte del tráfico de internet encriptado, utiliza este sistema de criptografía basado en clave pública y clave privada. Es más, ahora mismo estás haciendo uso de este sistema al acceder a mi blog.

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

La criptografía asimétrica o criptografía de clave pública es un método que se basa en la creación de dos llaves, una llave pública y una llave privada para encriptar datos. Estas claves se generan a la par a través de un algoritmo matemático bastante complejo, pero de esto ya hablaremos después.

Llave pública y llave privada.

Hemos dicho que este método se basa en la creación de estas dos llaves, bien, pues estas llaves tienen como función encriptar y descencriptar datos. Aunque una de ellas tiene una función más.

Concretamente:

¿Qué es eso de firmar los datos? Uno de los puntos fuertes del sistema asimétrico es que nos permite verificar que la información proviene de la persona que nosotros esperamos. Esto sucede porque cuando encriptamos los datos, a la vez estamos firmándolos con nuestra clave privada. Entonces el receptor del mensaje puede coger nuestra clave pública y verificar la identidad del emisor.

¿Cómo funciona?

Vamos a ver de manera superficial el funcionamiento de este sistema:

  1. Se generan dos claves, una pública y una privada. Estas mantienen una relación matemática.
  2. A través de la clave pública del destinatario se encripta una información y a través de la privada se firma.
  3. Se envia la información previamente encriptada y firmada al destinatario a través de internet.
  4. El destinatario desencripta la información con su clave privada.

En esta imagen podemos ver de manera gráfica el proceso de encriptación y desencriptación.

Básicamente si nosotros queremos enviarle un mensaje privado a Carlos, necesitamos tener la clave pública de Carlos. Como es de esperar, tener la clave pública no supone ningún riesgo, por algo se llama “pública”. Una vez que Carlos nos da su clave pública, nosotros podemos usarla para encriptar una información. Una vez encriptada, podremos pasarle el output (la info. encriptada) por un medio no seguro, ya que aunque sea interceptada, para ojos de quien no tenga la clave privada de Carlos, será una cadena con caracteres aleatorios y sin sentido.

Otro ejemplo más. Imagina que queremos enviarle la contraseña del netflix a nuestro primo Ernesto, pero no queremos que nadie más la tenga, entonces para ello vamos pedirle a Ernesto que genere sus claves y nos pase la pública. Cuando tengamos la pública, a través de unos cálculos que realizará nuestro ordenador, encriptará la contraseña de manera que de verse así miContraseña1234Netflis pasará a verse algo así '��<;giHtvQ SHm a�LAezqn�-[�} J'fH=

Una vez esté encriptada podremos pasarle ese “texto” a Ernesto, y Ernesto con mi clave pública comprobará que yo soy efectivamente su primo. Entonces con su clave privada desencriptará la cadena esa obteniendo miContraseña1234Netflis.

Esquema gráfico sobre el ejemplo

Es posible que pienses que es un proceso relativamente sencillo, sin embargo por detrás hay unas operaciones matemáticas bastante complejas que son las encargadas de generar las claves y garantizar la seguridad e integridad de nuestra información encriptada. A estas operaciones se les llama algoritmos.

Algoritmos.

Los algoritmos más conocidos y usados son los siguientes:

Aquí es donde está la “magia” matemática que nos permite cifrar de manera segura información. A día de hoy es totalmente imposible romper la seguridad de uno de estos cifrados debido a la complejidad matemática por la que están formados. Claro está, a menos que no se tenga acceso a la clave privada, en dicho caso estás jodido.

Ventajas y desventajas de la encriptación asimétrica.

Todo parecía muy bonito, no? Bueno, pues como todo, no es perfecto.

Ventajas.

Desventajas.

¿Y si combinamos la criptografía asimétrica y la simétrica aprovechando las ventajas de cada uno?

Pues así es, esto es posible y de hecho se usa bastante. Este método recibe el nombre de sistema híbrido.

Los sistemas de cifrado híbridos se basan en la combinación de criptografía asimétrica junto con la simétrica para proporcionar seguridad y eficiencia en la encriptación y transmisión de la información. En un sistema de estos, la criptografía asimétrica se usa para intercambiar una clave simétrica de manera segura, y la criptografía simétrica se utiliza para cifrar y descifrar la información de manera eficiente.

La combinación de estos dos tipos de cifrado aprovecha la seguridad de los sistemas asimétricos y la eficiencia de los sistemas simétricos.

Usos de la criptografía asimétrica.

Como he dicho al principio de este artículo, este sistema es el más usado a la hora de encriptar información por internet. Uno de los casos más comunes en los que se usa este sistema es en el envío de correos electrónicos. Este envío de información usa el método S/MIME.

Otro de los usos que se le da es en las firmas digitales y algunos protocolos criptográficos como HTTPS, SSL/TLS,SSH…

También podemos verlo cuando usamos aplicaciones de mensajería instantánea como Telegram, Signal, WhatsApp… aunque de esta última no estoy muy seguro.

Conclusión y despedida.

En conclusión, a día de hoy transmitir información de manera privada y segura se ha vuelto bastante difícil, pero gracias a estos sistemas de encriptación podemos añadirle esa capa extra de seguridad a la información. En un próximo artículo estaré hablando del algoritmo RSA que se usa para generar claves públicas y privadas y de la complejidad que este tiene hasta tal punto que a día de hoy es imposible de romper.