En los tiempos que corren mantener nuestra información segura es vital. Por ello, hasta los propios usuarios están comenzando a darse cuenta de que un sistema de cifrado para sus documentos es la opción mejor, lo cual previene problemas incluso si te han hackeado el PC. En este sentido, hay un sistema de cifrado que podría considerarse como el más usado por empresas y gobiernos y que nos permitirá estar seguros: AES-256 bits.
A diferencia de lo que se podría creer, los mejores cifrados no parten de empresas privadas como Google o cualquiera que se dedique a la criptografía. La mayoría proviene de gobiernos, normalmente del gobierno de los EE.UU., ya que es el principal impulsor de herramientas para proteger sus agencias federales como la NSA y mantener alejado de grupos peligrosos todo lo que tiene que ver con la sacrosanta «seguridad nacional». Que es lo que parece obsesionarles de manera constante pasen los años que pasen. ¿Si no, cómo iban a tener la información más confidencial de todas en secreto y, por tanto, bien cifradas?
Esto no es distinto para el tan conocido AES, por el hecho de que fue adoptado por el gobierno federal y, como pasó con Internet en su momento, actualmente es un estándar de la industria que mantiene seguros a día de hoy nuestros datos y hemos de agregar que lo hace con una enorme eficiencia. Eso sí, nos movemos dentro de entornos de la informática tradicional, cuyos métodos de fuerza bruta, por ejemplo, no son suficientes en ocasiones para descifrar sistemas cono este pero en un futuro, la llegada de la computación cuántica podría cambiar por completo las reglas del juego, ya que los nuevos equipos estarían en disposición de multiplicar tanto la capacidad de proceso de un sistema informático que esa posibilidad de descifrar algo a lo largo de cientos o miles de años se reduciría a… ¿Unos pocos minutos? ¿Unos pocos segundos?
Mientras ese (¿aterrador?) futuro llega, quedémonos con saber cuáles son los secretos que encierra este tipo de codificación de datos y cómo funcionan en el mundo actual, de preordenadores cuánticos, donde este tipo de encriptación sigue siendo fundamental para mantener a salvo información sensible y toda nuestra vida digital a salvo de ojos curiosos. Así que vamos a explicarlo paso a paso…
Tipos de cifrados AES
Actualmente, hay tres tipos de cifrado AES: 128 bits, 192 bits y 256 bits, donde este último por su longitud en el número de bits es el más seguro. Esto se diseñó basándose en la Ley de Moore, ya que las primeras pruebas demostraron que, en un tiempo relativamente corto, la potencia de los procesadores podría romper el cifrado más débil y, por tanto, con menor número de bits en periodos de tiempo cada vez más bajo. Como sabéis, con cada nueva generación se supera la potencia y capacidad de proceso de la los modelos anteriores y eso lleva a que dentro de la industria de la seguridad se lleven a cabo procesos de revisión constantes para comprobar que los estándares actuales funcionan sin errores. Un salto demasiado grande supondría un problema y es por eso que hay que estar preparados.
Por ello, aunque este tipo de encriptación empezó con 56 bits de longitud, rápidamente se cambió a los tres tipos nombrados para hacerlo más seguro. Advanced Encryption Standard o AES tiene una ventaja bastante clara frente a otros competidores: tiene una naturaleza abierta, lo cual significa que se puede usar tanto dentro del ámbito público como en el privado, ya sea para fines comerciales o no. Aunque la naturaleza de estas decisiones debe tomarse siempre en función de la importancia de lo que queremos proteger y de lo dispuestos que estemos a sacrificar la funcionalidad por la seguridad. Imaginad las claves que son necesarias en cada uno de los escenarios por los que nos queremos mover.
Además, se trata de un sistema de clave simétrica, lo cual le otorga una mayor seguridad, ya que la clave usada debe ser conocida para el cifrado como para el descifrado y tanto emisor como receptor necesitan una copia de la llave maestra correspondiente. Esto tiene una importante ventaja en el rendimiento de un sistema de cifrado, puesto que como se obliga a remitente y destinatario a saber la clave, se requiere menos potencia computacional para hacer viajar la información, puesto que siempre va segura. Esto es lo que nos asegura que un archivo solo pueda ser abierto por el mismo sistema que ha codificado los datos en AES-256.
Cómo funciona este sofisticado cifrado
Para entender el funcionamiento del cifrado AES hemos de entender que la información original sufre una transformación, donde los significantes binarios son modificados de tal manera que sin el decodificador pertinente, no se pueden entender. Entiéndase significante como el código binario que codifica lo que son datos e instrucciones que el procesador ha de ejecutar. Así pues, de la misma manera que un conjunto de letras y números ilegibles para nosotros no tiene sentido alguno, para un procesador tampoco, salvo que le digamos qué regla debe aplicar para terminar por entenderlo.
Todo se basa en bloques, concretamente bloques de 128 bits, los cuales se organizan en una matriz de cuatro por cuatro con cada byte en una posición de la misma. Ocho bits por byte nos dan los 128 bits mencionados y por ello al cifrar la información, no se altera el tamaño de la misma gracias a las matrices. AES es un sistema de sustitución y permutación, el cual debe su alta seguridad gracias a que la clave inicial o semilla que le va a servir a través de una fórmula generar claves nuevas que al mismo tiempo se utilizarán para codificar los datos. ¿Un poco de lío? Tranquilos, el proceso seguro que lo cogéis rápido. Es este…
El proceso de cifrado AES
Cada byte de datos se sustituye por otro mediante una tabla predeterminada para a continuación coger cada matriz 4×4 y moverla de la siguiente manera, tal y como os indicamos justo a continuación aquí debajo:
- Los bytes de la segunda fila se mueven un espacio a la izquierda.
- Los bytes en la tercera fila se mueven dos espacios.
- En cuanto a los de la cuarta fila, estos se mueven tres espacios
- Finalmente, se mezclan las columnas y se añade la clave inicial al conjunto y vuelta a empezar.
Esto genera un texto cifrado que nada tiene que ver con el original y que para descifrarlo se requiere hacer los pasos inversos conociendo previamente dicha clave. Algo parecido a lo que podéis ver en la tabla que os dejamos justo aquí debajo y que marca las equivalencias de cada uno de los caracteres que se utilizan en este tipo de codificación. Como podéis ver, no es algo sencillo de ver y que se realiza de una forma automática entre los sistemas protegidos con cifrado AES.
Tipos existentes
Actualmente, existen tres tipos de cifrados AES cuya única diferencia es la longitud de clave. Estos son los tres sistemas actuales:
- AES-128 utiliza una longitud de clave de 128 bits para cifrar y descifrar un bloque de mensajes. Para este cifrado se requieren de 1o rondas.
- AES-192 utiliza una longitud de clave de 192 bits para cifrar y descifrar un bloque de mensajes. Para este cifrado se requieren de 12 rondas.
- AES-256 utiliza una longitud de clave de 256 bits para cifrar y descifrar un bloque de mensajes. Para este cifrado se requieren de 14 rondas.
Debemos decir que cada ronda se basa en varios pasos de procesamiento, los cuales incluyen sustitución, transposición y mezcla del texto sin formato de entrada para transformarlo a la salida en un texto cifrado.
Todos ellos son sistemas de cifrado simétrico, también denominado de clave secreta. Se requiere de la misma clave para el cifrado y descifrado de la información. Implica que tanto el emisor como el receptor deben saber y usar la misma clave secreta para que se puedan realizar todos los procesos necesarios sin problemas.
Modos de operación del AES
Cuando hablamos de AES-256, solemos pensar en él como un sistema homogéneo de cifrado. Pero AES es en realidad un algoritmo que cifra bloques de tamaño fijo (128 bits). Para cifrar archivos, conexiones de red o discos completos, es necesario que se utilice un modo de operación. Esto es precisamente lo que define cómo se encadenan esos bloques entre sí.
Uno de los modos más conocidos es ECB (Electronic Codebook). Es el más simple, pero también el «menos seguro». Cifra cada bloque de manera independiente. Lo que provoca que los bloques con datos idénticos generen un resultado idéntico. Esto puede revelar ciertos patrones en la información original. Lo cual es indeseable en escenarios reales.
Para solucionar ese mismo problema, apareció CBC (Cipher Block Chaining). Un modo que introduce in vector de inicialización (IV) y encadena cada bloque con el anterior antes de cifrarlo. Así se evita que los mismos datos produzcan el mismo resultado. Un avance cualitativo en seguridad frente al análisis estadístico.
Pero más avanzado aún es el GCM (Galois/Counter Mode). Uno de los más utilizados actualmente. Este no solo cifra los datos, sino que añade autenticación, y garantiza que esos mismos datos no se hayan modificado. Precisamente por su extrema seguridad, se emplea en protocolos actuales como HTTPS y TLS. Por lo tanto, en la actualidad, lo que determina la seguridad no es solo usar AES-256, sino elegir el modo de operación adecuado y configurarlo de manera correcta.
¿Se trata de un método de cifrado seguro?
Por último, nos queda preguntarnos si AES-256 bits es tan seguro como lo pintan. La respuesta es que sí, pero tiene sus matices, ya que no solamente tenemos el cifrado en sí mismo, sino la estructura que lo alberga para recibir o enviar la información, por lo que se trata de una tecnología que va a necesitar de muchos recursos para reventarla. Y eso siempre es un beneficio para los que la utilizan, porque tienen la garantía de que los malos van a necesitar mucho tiempo para descubrirla, si es que acaban por conseguirlo
El cifrado de 256 bits hasta donde sabemos sigue inexpugnable y aunque ha habido intentos con AES-128 bits, intentar romper una clave 256 bits requiere, 2128 veces más potencia de cómputo por fuerza bruta, ya que estamos hablando de pasar de 2128 posibles valores a 2256 posibles valores. Y aun teniendo semejante potencia de cálculo y con el hardware actual, el tiempo para descifrar una sola clave sería más del doble de la edad total del universo, así que podemos estar tranquilos sobre la seguridad de nuestros datos cuando estén cifrados bajo AES-256. Otra cosa es, como os hemos comentado más arriba, que irrumpa la computación cuántica y le dé la vuelta como un calcetín a todo este tipo de tecnologías, pero, de momento, no parece que el acceso a ese tipo de equipos pueda llegar a popularizarse tan rápidamente. Otra cosa son los gobiernos, que seguramente serán los primeros clientes en agarantizarse el acceso a una tecnología que, sí, lo va a cambiar todo.
Procesadores tensoriales y decodificadores AES
El problema con semejante afirmación es que está hecha teniendo en cuenta el hecho que los procesadores son mucho más lento operando con matrices que haciéndolo con vectores o números en solitario por el hecho que hasta ahora no tenían unidades matriciales especializadas, pero la llegada de la inteligencia artificial basada en el entrenamiento y la inferencia puede reducir enormemente el tiempo en que se tarda a descifrar una clave AES-256 o incluso generar nuevos tipos de cifrado y descifrado de datos para salvaguardar nuestra información.
En todo caso, e implementado de forma segura, todos los dispositivos de almacenamiento tienen a día de hoy un pequeño procesador que se encarga de estas tareas y que automatiza las codificaciones y descodificaciones AES y cuya clave para acceder está totalmente codificada y es inaccesible incluso por el fabricante del chip. Siendo única por cada uno de los que se implementan en los discos duros y SSD donde se implementan y siendo generada aleatoriamente por el robot que el programa dentro del chip. Así que, sobre el papel, no hay manera de que nadie pueda tener acceso de forma anticipada a las claves que permiten proteger nuestra información en un componente concreto mientras no tenga acceso al propio componente en sí. Y en ese caso, también tendríamos que verlo…
No es algo que pueda hacer cualquiera
En todo caso, la capacidad de cálculo para reventar una clave AES es enorme y más cuando es de 256 bits. No somos tan importantes los usuarios de a pie como para pensar que los datos personales y la vida de cada uno merecen un esfuerzo tan grande, aunque nunca se sabe qué malos entendidos pueden producirse y que nos tomen por quien no somos. En todo caso, esto no significa que tengas que dejar tus archivos privados sin protección alguna. Pero, el coste de descifrarlos todos en AES hace que no merezca la pena ni el tiempo ni el esfuerzo. Otra cosa son grandes empresas y organizaciones gubernamentales donde ahí sí, la integridad de toda la información debe mantenerse lejos de las garras de los hackers.
Para claves realmente complejas se requiere una capacidad de cálculo muy alta, y con ello nos referimos a servidores usando decenas de tarjetas gráficas en paralelo solo para conseguir descubrir la clave de un archivo. No es viable para una persona u organización de a pie dedicarse a usar semejante nivel de recursos para leer unos simples archivos. Otro tema distinto es la investigación fiscal por parte de la hacienda pública de varios países, en especial en temas de delitos, por no hablar de otro tipo de delitos en los que sí se requiere recurrir a este tipo de tecnologías.
