Los Algoritmos Criptográficos Y La Seguridad
Introducción
La privacidad es un tema al que se da poca relevancia en los medios de comunicación. Compañías como Google o Microsoft han sido sujetas a muchas acusaciones e incluso, llevadas a juicio, por violar ciertos derechos sobre la privacidad. Estos casos, se han normalizado a tal exceso, que ya no nos escandaliza y continuamos utilizando sus servicios igualmente. Muchas de estas empresas, prometen un nivel de privacidad que suele ser uno mucho menor, según estudios hechos por expertos. Por ejemplo, la compañía estadonidense Whattsapp de mensajería online, añadió cifrado de extremo a extremo (E2EE) en 2016 (este tipo de encriptación y muchos más se explicarán a lo largo de este ensayo). Según Micah Lee, lo que no se les “olvidó” mencionar fué que ellos podrían comprobar la identidad del remitente y destinatario de cualquier mensaje sin ningún problema. Algo que según este periodista y experto en ciberseguridad, “estaría a disposición de los gobiernos”. Para este tipo de problemas, la criptografía es algo que limita mucho las posibiliadades, tanto para los atacantes como para estas grandes multinacionales.
Criptografía
La criptografía nos resulta útil cuando queremos esconder el contenido de mensajes o archivos que traspasamos entre dos dispositivos, y queremos que solo el remitente y el destinatario puedan leer dicha información. Si tuviera que pasar por medio de un servidor para llegar al destinatario, la información cifrada será imposible (o muy difícil) de descifrar para dicho servidor. Nos será útil también, si resulta que somos sujeto de un ataque “Man In The Middle” (que consiste en que el dispositivo de un atacante se esconde entre medias de los dos dispositivos que quieren comunicarse y pasa totalmente desapercibido mientras tiene acceso a toda la información que está siendo traspasada por esta vía de comunicación). El hacker que intenta leer la información, no podrá entenderla al estar cifrada.
Existen dos tipos de encriptación:
Código
Este tipo de encriptación se entiende, poniendo un ejemplo: Si quisieramos encriptar una cadena respecto a un libro de códigos dónde cada letra se sustituye con la que está una posición por delante, la cadena “Jaime” sería enviada como “Kbjnf”.
Para encriptar mediante un código, la cadena resultante tendrá el mismo tamaño que la original, y las condiciones o reglas que se han seguido para encriptar dicha cadena, se recogerán en un libro de códigos o diccionario.
Para un atacante, esta encriptación resulta muy fácil de resolver, ya que aún sin conocer el algoritmo que se utiliza para transformar caracteres, son sencillos de preveer.
Algoritmos criptográficos
Los algoritmos criptográficos, funcionan gracias a claves. Mensajes son cifrados, y descifrados mediante el uso de estas claves. Dependiendo del sistema de mensajería, nuevas claves serán generadas para el intercambio de mensajes cada n cada mensajes. Dependiendo de cuantas tengan las dos partes de una comunicación a dos bandas, existen dos tipos de algoritmos criptográficos: criptografía simétrica y criptografía asimétrica. Para ambos tipos, el remitente del mensaje a enviar debe encriptar el mensaje con una clave antes de enviarlo, para que el destinatario lo descifre después de haberlo recibido. Estos algoritmos resultan de una mayor complejidad que la encriptación por código. Las claves se generan de manera pseudo-aleatoria. Más adelante se razonará por qué esto resulta un problema y como la criptografía cuántica plantea una solución infalible.
Criptografía Simétrica
Para que la criptografía simétrica funcione se creará una sola clave que compartirán remitente y destinatario del mensaje. Esta clave será usada tanto, para codificar el mensaje como para descodificarlo. Esta clave es privada, lo que supondrá que solo puede ser conocida por el remitente y el destinatario, al ser privada para ambos. En el caso que otro dispositivo se hiciera con esta clave, esta dejaría de ser privada y la comunicación entre dispositivos dejaría de ser segura. Este tipo de criptografía es muy rápida. La clave privada que crea el algoritmo de manera pseudoaleatoria es muy difícil de quebrar (encontrar su valor), al tener que probar una gran cantidad de posibilidades.
Criptografía Asimétrica
La criptografía asimétrica es algo más compleja y mucho más novedosa que la criptografía simétrica. Remitente y destinatario tendrán que tener una clave pública y otra privada. La clave pública de cada uno podrá ser conocida por el otro y hasta por otro dispositivo que quiera interceptar la comunicación. En cambio, cada clave privada, no puede ser expuesta a ningún dispositivo más que al perteneciente de la clave. Los mensajes pueden ser codificados con la clave pública y descodificados con la clave privada del destinatario del mensaje en cuestión y viceversa. Un mensaje codificado con una clave pública no puede ser descodificado con otra (o esa misma) clave pública de ninguna manera, si no el intercambio de mensajes dejaría de ser seguro.
Por lo tanto, si queremos enviarnos mensajes codificados con otro dispositivo, tendremos cuatro claves en total que tendremos que utilizar: una privada y otra pública para cada dispositivo.
El intercambio de mensajes aún así, podría ser saboteado por cualquier otra persona. Alguien podría enviar mensajes haciéndose pasar por el remitente, al conocer la clave pública del destinatario. Para asegurarnos de no tener este problema y hacer que el destinatario sepa quién es el remitente, debemos hacer una doble codificación: primero codificaremos el mensaje con nuestra clave privada y volveremos a codificarlo con la clave pública del destinatario. De esta manera, cuando el destinatario descodifique el mensaje con su clave privada primero, tendrá que utilizar nuestra clave pública y volver a descodificar, de esta manera, se asegura de que nosotros somos los que le hemos enviado el mensaje.
Intercambio de claves
En el caso de ejemplo del algoritmo criptográfico simétrico, hemos supuesto que existe un canal seguro para que tanto el remitente como destinatario pueden compartir la clave privada que usarán para mandarse mensajes. Pero este canal seguro no existe. Se nos plantea un problema. ¿Cómo podemos hacer saber al otro dispositivo la clave que vamos a utilizar para codificar/descodificar los mensajes? La solución resultó ser la criptografía asimétrica. Whitfield Diffie y Martin Hellman crearon el sistema de intercambio de claves Diffie-Hellman. Consistía en utilizar una variante de la criptografía asimétrica para compartir la clave privada que utilizarían remitente y destinatario para intercambiar mensajes. Para no extender el ensayo demasiado, se adjunta una imagen que explica el sistema Diffie-Hellman mediante la mítica analogía de los colores con Alice y Bob:
Alice y Bob serán los dispositivos que quieran intercambiar mensajes. El color común que ambos conocen, será la clave pública. Y los colores secretos serán la clave privada de cada uno de ellos. Al combinar los colores se crea un color secreto, que solamente podrá ser conocido por Alice y Bob.
A raíz de este intercambio de claves, Alice y Bob podrán utilizar la criptografía simétrica, que hará que la codificación y descodificación de mensajes sea mucho más rápida, que si se utilizara la criptografía asimétrica.
Criptografía cuántica
Tras habernos familiarizado con los conceptos de la criptografía podemos tratar con la criptografía cuántica. Este tipo de criptografía ha sido implementada, y expertos dicen que, en pocos años, podrá llegar a ser comercializada, junto a ordenadores cuánticos. La dificultad que tiene esta criptografía es que no puede ser implementada remotamente, al funcionar vía fibra óptica.
La criptografía cuántica plantea una solución al problema del intercambio de claves para que la clave que usen remitente y destinatario sea imposible de hayarse por un agente que es ageno a estos, a menos que se comparta con él. Se trata de un concepto que aún no está comercializado y sobre el que se están haciendo grandes avances. Este tipo de criptografía será explicada de manera muy básica para no extender el ensayo más de lo que se necesita.
El intercambio de claves, será efectuado por una fibra óptica. El remitente (R) enviará una serie de fotones por esta fibra. Los fotones vendrán definidos por su posicionamiento (el posicionamiento se elige aleatoiramente). Podrán estar orientados de manera vertical, horizontal, 45 grados a la derecha o 45 grados a la izquierda. Los fotones verticales corresponderán a un 0 y los horizontales a un 1. A su vez, los fotones orientados 45 grados a la izquierda corresponderán con un 0 y los que están orientados 45 grados a la derecha con un 1. El objetivo es obtener una clave compuesta por una serie de ceros y unos, a partir de los fotones que se envían por la fibra.
Mientras, el destinatario (D) tendrá que filtrar estos fotones con dos tipos de filtros. Eligirá aleatoriamente cual de los dos filtros utilizar para cada fotón. Uno de los filtros (F1) filtrará correctamente los fotones verticales y horizontales, y por lo tanto, podremos obtener su valor (0 o 1). Por lo tanto, el otro filtro (F2), filtrará los fotones orientados 45 grados a la izquierda y a la derecha con sus respectivos valores.
En el caso en que D filtrara un fotón con el filtro incorrecto, D obtendrá un valor incorrecto. Por ejemplo, en el caso de recibir un fotón orientado 45 grados a la izquierda, si se utilizara el filtro F1, el valor que obtendriamos sería una valor aleatorio (0 o 1) y no el valor que quiere R que obtengamos.
Tras filtrar todos los fotones que envía R, D tendrá una serie de bits. A continuación D comunicará a R los filtros que ha utilizado para cada fotón que le ha enviado, en orden. R y D se coordinarán para descartar los bits que se han obtenido con los filtros incorrectos. Al descartar estos bits, R y D tendrán la misma colección de unos y ceros. Esta será la clave que utilizarán.
Cuando D filtra los fotones, el estado de estos cambia. Por lo tanto, en el caso de que alguien quisiese obtener la clave, poniéndose entre R y D y filtrando los fotones que manda R, la orientación de los fotones cambiará, y será detectado por R y D. En el siguiente diagrama, se podrá visualizar el proceso de una manera más gráfica:
La ventaja que trae un intercambio de claves basado en criptografía cuántica en comparación con el intercambio Diffie-Hellman, es que el sistema de intercambio va a ser capaz de detectar si alguien está intentando interceptar la clave que comparten remitente y destinatario.
Aunque este tipo de criptografía aumente la seguridad de una comunicación basada en criptografía simétrica, que aquellos expuestos previamente, sigue sin evitar un problema: el peligro de que una contraseña privada sea hayada mediante un ataque de fuerza bruta (o “bruteforce”). El atacante puede tratar de averiguar la contraseña que usan R y D, probando todas las posibles combinaciones. El atacante podría interceptar todos los mensajes que R y D intercambien y guardarlos, hasta encontrar la clave que necesita para descifrarlos. Este podría tener mucha suerte y que la primera contraseña que probara fuera la correcta. Pero las probabilidades son muy bajas (1/2¹²⁸ ; mirar abajo).
Ordenadores cuánticos y Criptografía post-cuántica
La mayoría de claves utilizadas por los métodos criptográficos vigentes, contienen 2¹²⁸ posibles combinaciones, al estar compuestas por 128 bits. Se considera que la mayoría de los ordenadores digitales que existen (comercializados), son incapaces de quebrar estas claves. En un artículo de 2012, Mohit Arora calcula el supuesto tiempo que tardaría el ordenador más rápido hasta el momento, en quebrar una clave generada por el AES (Advanced Encryption Standard). El resultado que obtuvo fué que, como máximo, tardaría 1.02 x 10¹⁸ años. Al ser la creación de estas claves aleatoria, se debe tener en cuenta que el atacante tiene las mismas posibilidades enfrentarse a buscar cualquiera de las 2¹²⁸ posibilidades, que supone que como media tardará (1.02 x 10¹⁸) / 2 años, lo que requiere mucha paciencia y unas cuantas vidas a la espalda.
Esto termina de ser un problema para el atacante con la introducción de los ordenadores cuánticos. La capacidad computacional de los ordenadores cuánticos es bastamente mayor a la de un ordenador digital. Según el periodista Linus Chang para betanews, en su artículo de 2017, afirma que “si un ordenador digital tarda en quebrar una contraseña de 56 bits un día entero, un ordenador cuántico tardaría 0.322 milisegundos”. Para esta generación de ordenadores cuánticos, claves de 256 bits se siguen considerando seguras. Pero, ¿Podremos continuar aumentando la longitud de las claves, con el fin de seguirle el ritmo a la potencia de los ordenadores? La respuesta es no. Llegará un momento cuando las contraseñas sean de tal tamaño, que afectarán radicalmente al rendimiento del ordenador que utilizamos. A continuación se adjunta una tabla que cataloga los distintos algoritmos de encriptación que utilizamos diariamente, según como serán afectados por ordenadores cuánticos:
Aunque la comercialización de ordenadores cuáticos parezca una fantasía, no están tan lejos como parecen. El primer ordenador cuántico llevado al mercado ha sido lanzado en enero de este mismo año, por la compañía IBM. Al no conocer los posibles límites del poder computacional en el futuro, entra en debate si es posible encontrar una tecnología criptográfica que evite poder ser quebrada.
Entra en escena la criptografía post-cuántica. Ésta, trata de implementar algoritmos basados en claves públicas (como en la criptografía asimétrica) que sean inquebrantables frente, hasta a un (supuesto) ordenador de una potencia infinita, utilizando conceptos muy complejos de la física cuántica. Es un campo muy novedoso que está en fase de desarrollo. Algunos expertos esperan que esta tecnología esté preparada para el año 2023. Aunque aún se considere algo muy abstracto, empresas tecnológicas están invirtiendo mucho dinero en este sector. Podría ser una revolución para el mundo de la criptografía.
Conclusión
Los distintos tipos de algoritmos criptográficos que utilizamos hoy en día no son tan seguros como podemos llegar a creer. La comercialización de ordenadores cuánticos puede suponer un antes y un después en este campo. Con esto, la potencia computacional de los ordenadores, sería tan grande, que los algoritmos que creemos seguros a día de hoy, quedarían obsoletos y nuestra privacidad podría ser más vulnerable que nunca. Aunque podamos prorrogar ese momento hasta limitar las posibilidades de nuestros ordenadores, tecnologías emergentes como la criptografía post-cuántica nos plantean soluciones mucho más eficientes. Pero, para que estas tecnologías sean aplicables, es necesario que mucha más capital sea invertida y “no dejar para mañana lo que puedas hacer hoy”.