¿Cómo funciona el cifrado AES?
AES es un cifrado de cifrado de clave simétrica, y generalmente se considera como el "estándar de oro" para cifrar datos.
AES tiene certificación NIST y el gobierno de EE. UU. Lo utiliza para proteger datos "seguros", lo que ha llevado a una adopción más general de AES como el cifrado de clave simétrica estándar elegido por casi todos. Es un estándar abierto de uso gratuito para cualquier uso público, privado, comercial o no comercial..
Contents
Una introducción al cifrado AES
AES es un cifrado de cifrado de clave simétrica. Esto significa que la misma clave utilizada para cifrar los datos se utiliza para descifrarlos. Esto crea un problema: ¿cómo se envía la clave de forma segura??
Los sistemas de cifrado asimétrico resuelven este problema asegurando los datos utilizando una clave pública que está disponible para todos. Solo puede ser descifrado por un destinatario que tenga la clave privada correcta.
Esto hace que el cifrado asimétrico sea mucho mejor para proteger los datos en tránsito, ya que el remitente no necesita conocer la clave privada del destinatario. Un buen ejemplo es el cifrado RSA, que se utiliza para proteger los intercambios de claves TLS requeridos cuando se conecta a un sitio web HTTPS seguro.
Los cifrados simétricos como AES, por lo tanto, son mucho mejores para proteger los datos mientras están en reposo, como cuando se almacenan en su disco duro. Para este propósito, son superiores a los cifrados asimétricos porque:
- Requieren mucho menos poder computacional. Esto hace que el cifrado y el descifrado de datos con cifrado simétrico sean mucho más rápidos que con el cifrado asimétrico. En perspectiva, los cifrados simétricos generalmente se citan como "1000 veces más rápidos" que los asimétricos..
- Y debido a que son más rápidos, los cifrados simétricos son mucho más útiles para el cifrado masivo de grandes cantidades de datos. Los cifrados asimétricos como RSA solo se usan realmente para cifrar pequeñas cantidades de datos, como las claves utilizadas para asegurar el cifrado de clave simétrica.
Por supuesto, en el mundo conectado de hoy, los datos que se encuentran en su disco duro son de uso limitado. Afortunadamente, se puede transferir de forma segura a través de Internet junto con el cifrado asimétrico, que solía manejar los intercambios de claves remotos necesarios para conectarse de forma segura a un servidor remoto.
OpenVPN, por ejemplo, asegura los datos en bruto con un cifrado asimétrico, generalmente AES en estos días. Para transferir los datos cifrados de forma segura entre su PC y el servidor VPN, utiliza un intercambio asimétrico de claves TLS para negociar una conexión segura al servidor.
¿Es el cifrado AES el mejor tipo de cifrado??
AES es ampliamente considerado como el cifrado de cifrado de clave simétrica más seguro que se haya inventado. También existen otros cifrados de clave simétrica que se consideran altamente seguros, como Twofish, que fue inventado por el reconocido criptógrafo Bruce Schneier.
Sin embargo, tales cifrados no han sido probados en la batalla como lo hizo AES. Y oye, si el gobierno de EE. UU. Cree que AES es el mejor cifrado para proteger sus datos "seguros", ¿quién está discutiendo? Sin embargo, hay algunos que ven esto como un problema. Consulte la sección sobre NIST a continuación..
La adopción generalizada ha beneficiado a AES de otras maneras. La mayoría de los fabricantes de CPU ahora han integrado el conjunto de instrucciones AES en sus procesadores. El aumento de hardware mejora el rendimiento de AES en muchos dispositivos, así como también mejora su resistencia a los ataques de canal lateral.
¿Se puede romper el cifrado AES de 128 bits??
AES en sí mismo es irrompible cuando se implementa correctamente.
En 2011, la supercomputadora más rápida del mundo fue la Fujitsu K. Esta fue capaz de alcanzar una velocidad máxima Rmax de 10.51 petaflops. Según esta cifra, le tomaría a Fujitsu K 1.02 x 10 ^ 18, alrededor de mil millones de billones (un quintillón), años descifrar por la fuerza una clave AES de 128 bits. Esto es más antiguo que la edad del universo (13.75 mil millones de años).
La supercomputadora más poderosa del mundo en 2017 fue la Sunway TaihuLight en China. Esta bestia es capaz de alcanzar una velocidad máxima de 93.02 petaflops. Esto significa que la computadora más poderosa del mundo aún tardaría unos 885 billones de años en forzar la fuerza bruta de una clave AES de 128 bits.
El número de operaciones requeridas para la fuerza bruta de un cifrado de 256 bits es 3.31 x 10 ^ 56. Esto es aproximadamente igual al número de átomos en el universo.!
En 2011, los investigadores de criptografía identificaron una debilidad en AES que les permitió descifrar el algoritmo cuatro veces más rápido de lo que era posible anteriormente. Pero como uno de los investigadores señaló en ese momento:
"Para poner esto en perspectiva: en un billón de máquinas, cada una de las cuales podría probar mil millones de claves por segundo, tomaría más de dos mil millones de años recuperar una clave AES-128".
En respuesta a este ataque, se agregaron cuatro rondas adicionales (ver más adelante) al proceso de encriptación AES-128 para aumentar su margen de seguridad.
Ataques de canal lateral
Por lo tanto, para todos los efectos, AES en sí es indescifrable cuando se implementa correctamente. Pero no siempre se implementa correctamente.
Los ataques de canal lateral buscan pistas del sistema informático que implementa el cifrado AES para obtener información adicional. Esto puede ser útil para reducir el número de combinaciones posibles requeridas para la fuerza bruta AES.
Estos ataques usan información de tiempo (cuánto tiempo le toma a la computadora realizar cálculos), fugas electromagnéticas, pistas de audio e incluso pistas ópticas recogidas usando una cámara de alta resolución para descubrir información adicional sobre cómo el sistema procesa el cifrado AES.
Un conocido ataque de canal lateral contra AES dedujo con éxito las claves de cifrado AES-128 al monitorear cuidadosamente el uso compartido de cifrado de las tablas de caché de los procesadores.
El AES implementado adecuadamente mitiga los ataques de canal lateral al evitar posibles fugas de datos (que es donde ayuda el uso del conjunto de instrucciones AES basado en hardware) y al usar técnicas de aleatorización para eliminar la relación entre los datos protegidos por el cifrado y cualquier dato filtrado que podría recolectarse usando un ataque de canal lateral.
Contraseñas inseguras
El cifrado AES es tan seguro como su clave. Estas claves son invariablemente aseguradas con contraseñas, y todos sabemos lo terribles que somos los humanos al usar contraseñas seguras. Los keyloggers introducidos por virus, ataques de ingeniería social y similares, también pueden ser formas efectivas de comprometer las contraseñas que protegen las claves AES.
El uso de administradores de contraseñas mitiga en gran medida este problema, al igual que el uso de firewalls bidireccionales, un buen software antivirus y una mayor educación sobre problemas de seguridad..
Una breve historia del cifrado AES
Cuando eras niño, ¿jugaste al juego en el que creaste un "mensaje secreto" al sustituir una letra del mensaje por otra? La sustitución se realizó de acuerdo con una fórmula elegida por usted.
Podría, por ejemplo, haber sustituido cada letra del mensaje original con una tres letras detrás del alfabeto. Si alguien más supiera cuál es esta fórmula, o si pudiera resolverla, entonces podrían leer su "mensaje secreto".
En la jerga de la criptografía, lo que estaba haciendo era "cifrar" el mensaje (datos) de acuerdo con un algoritmo matemático muy simple.
El cifrado se ha utilizado para ocultar datos confidenciales desde la antigüedad, pero realmente se hizo realidad durante el siglo XX. Durante la Segunda Guerra Mundial, los alemanes aseguraron sus comunicaciones con la máquina Enigma, cuyo código fue igualmente descifrado por Alan Turing en Bletchley Park.
¿Qué es el cifrado DES?
El Estándar de cifrado de datos (DES) se creó a mediados de la década de 1970 para proteger las comunicaciones del gobierno de EE. UU. Se convirtió en el primer algoritmo de cifrado moderno, público y de libre acceso, y como tal creó casi por sí solo la disciplina moderna de la criptografía..
Aunque desarrollado por IBM, DES fue una creación de la Oficina Nacional de Estándares (NBS, que más tarde se convirtió en NIST).
A pesar de las preocupaciones sobre la intromisión de la NSA, el gobierno de los EE. UU. Adoptó DES en 1976 para "sensible pero no clasificado" tráfico. Esto incluía información personal, financiera y logística..
Como no había nada más parecido en ese momento, rápidamente fue ampliamente adoptado por las compañías comerciales que requerían cifrado para proteger sus datos. Como tal, DES (que utilizaba claves de 56 bits) se convirtió en el estándar de cifrado de caballo de batalla predeterminado durante casi dos décadas.
Esta adopción casi omnipresente fue de gran ayuda cuando se le otorgó a DES el estado de las Normas federales de procesamiento de información (FIPS). Se requiere que todas las agencias gubernamentales no militares de EE. UU. Y los contratistas del gobierno civil usen únicamente los estándares FIPS.
A mediados de la década de 1990, sin embargo, DES comenzó a mostrar su edad. En este momento, se creía ampliamente que la NSA podría romper el DES por fuerza bruta, un punto demostrado en 1998 cuando una máquina de $ 220,000 construida por la Electronic Frontier Foundation (EFF) logró el DES por fuerza bruta en solo dos días. Era claramente el momento para un nuevo estándar.
Cómo surgió AES
En 1997, el Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST) anunció que estaba buscando un reemplazo para DES. En noviembre de 2001 anunció que el ganador: AES, anteriormente conocido como Rijndael después de uno de sus co-creadores..
Por recomendación del NIST, el nuevo cifrado fue adoptado formalmente por el gobierno federal de los EE. UU. Y entró en vigencia en mayo de 2002. Al igual que DES antes, AES recibió el estatus FIPS. El gobierno de los Estados Unidos considera que todos los tamaños de clave AES son suficientes para la información clasificada hasta "Secreto" a ras de "Ultra secreto" información que requiere AES-192 o AES-256.
AES ha reemplazado por completo a DES en todo el mundo como el estándar de cifrado simétrico de caballo de batalla predeterminado.
¿Cómo funciona el cifrado AES??
El algoritmo de cifrado AES cifra y descifra los datos en bloques de 128 bits. Puede hacer esto usando claves de 128 bits, 192 bits o 256 bits. AES que usa claves de 128 bits a menudo se denomina AES-128, y así sucesivamente.
El siguiente diagrama proporciona una visión general simplificada del proceso AES ...
Texto sin formato
Estos son los datos confidenciales que desea cifrar..
Llave secreta
Esta es una variable de 128 bits, 192 bits o 256 bits creada por un algoritmo.
Cifrar
El cifrado AES real realiza una serie de transformaciones matemáticas utilizando el texto sin formato y la clave secreta como punto de partida. En orden, estos son:
- Expansión clave. Utiliza la clave secreta original para derivar una serie de nuevas "claves redondas" utilizando el algoritmo de programación de claves de Rijndael.
- Mezcla Cada tecla redonda se combina con el texto sin formato utilizando el algoritmo XOR aditivo.
-
Sustitución de los datos resultantes utilizando una tabla de sustitución. Este paso es muy similar en principio (si es mucho más complejo en la práctica) a los cifrados de sustitución que creó cuando era niño..
-
Desplazar filas. En el que cada byte en la columna 4 x 4 de dieciséis bytes que forma un bloque de 128 bits se desplaza hacia la derecha.
5. Mezcle columnas. Se aplica un algoritmo adicional a cada columna..
Levántate y repite. El proceso se repite varias veces, y cada repetición se conoce como una ronda. Cada ronda se vuelve a cifrar utilizando una de las claves redondas generadas durante la expansión de la clave (paso 1).
El número de rondas realizadas depende de la longitud de la clave utilizada. AES-128 usa diez rondas, AES-192 usa doce rondas y AES-256 usa catorce rondas.
Cada ronda adicional reduce la posibilidad de un ataque de atajo del tipo que se usó para atacar AES-128 en 2011. Como ya se señaló como consecuencia de este ataque, se agregaron cuatro rondas adicionales a AES-128 para mejorar sus márgenes de seguridad..
Texto cifrado
Esta es la salida cifrada del cifrado después de que haya pasado por el número especificado de rondas.
Cómo descifrar el cifrado AES
Descifrar AES es simple: simplemente invierta todos los pasos anteriores, comenzando con la tecla de inversión inversa. Por supuesto, debe tener la clave secreta original para revertir el proceso utilizando cada clave redonda inversa.
¿Cifrar un archivo lo hace más grande??
Si. Generalmente. AES utiliza un tamaño de bloque fijo de 16 bytes. Si un archivo no es un múltiplo de un tamaño de bloque, entonces AES usa relleno para completar el bloque.
En teoría, esto no significa necesariamente un aumento en el tamaño de los datos cifrados (ver robo de texto cifrado), pero simplemente agregar datos para rellenar el bloque suele ser mucho más fácil. Lo que aumenta la cantidad de datos cifrados..
La evidencia anecdótica sugiere que los archivos de más de 1 MB cifrados con AES tienden a ser aproximadamente un 35% más grandes que antes del cifrado.
¿Qué importancia tienen los tamaños de clave en el cifrado AES??
La forma más cruda de medir la fuerza de un cifrado es por el tamaño de su clave. Cuanto más grande es la tecla, más combinaciones posibles hay.
AES se puede utilizar con tamaños de clave de 126 bits, 192 bits o 256 bits. El cifrado original de Rijndael fue diseñado para aceptar longitudes de clave adicionales, pero no se adoptaron en AES.
Ataques de fuerza bruta
Cuanto más complejo sea el algoritmo, más difícil será descifrarlo utilizando un ataque de fuerza bruta. Este ataque de forma muy primitiva también se conoce como una búsqueda exhaustiva de claves. Básicamente implica probar todas las combinaciones de números posibles hasta encontrar la clave correcta.
Como sabemos, las computadoras realizan todos los cálculos utilizando números binarios: ceros y unos. Y como hemos visto, la complejidad de un cifrado depende de su tamaño de clave en bits: el número bruto de unos y ceros necesarios para expresar su algoritmo, donde cada cero o uno está representado por un solo bit.
Esto se conoce como la longitud de la clave, y también representa la factibilidad práctica de realizar con éxito un ataque de fuerza bruta en cualquier cifra dada.
El número de combinaciones posibles (y, por lo tanto, la dificultad de la fuerza bruta) aumenta exponencialmente con el tamaño de la clave. Para AES:
Como ya hemos discutido, tomaría la supercomputadora más rápida del mundo más tiempo que la edad del universo para descifrar incluso una clave AES-128 por la fuerza!
Rondas de cifrado
Como también hemos discutido, cuanto más larga sea la clave utilizada por AES, más se completará el cifrado. Esto es principalmente para prevenir ataques de acceso directo que pueden reducir la complejidad computacional de los cifrados y, por lo tanto, hacen que sea más fácil forzar el cifrado por fuerza bruta.
Como el criptógrafo renunciado Bruce Schneier dijo sobre el ataque directo de 2011 en AES-128,
“La criptografía se trata de márgenes de seguridad. Si puede romper una ronda de un cifrado, lo diseña con 2n o 3n rondas ".
Él recomendó introducir más rondas para cada tamaño de clave a AES, pero NIST considera que los niveles actuales son suficientes.
Entonces, ¿por qué usar más que AES-128??
Todo lo cual plantea la pregunta: si tomaría más tiempo que la edad del universo descifrar incluso AES-128, ¿por qué molestarse en usar AES-192 o AES-256? Como señaló Schneier:
“Sugiero que las personas no usen AES-256. AES-128 proporciona un margen de seguridad más que suficiente para el futuro previsible. Pero si ya está utilizando AES-256, no hay razón para cambiar ".
De hecho, Schneier ha argumentado en el pasado que AE-128 es, de hecho, más seguro que AES, porque tiene un programa clave más fuerte que AES-256.
Entonces, ¿por qué se considera AES-256 como el estándar de oro del cifrado de clave simétrica??
Márgenes de seguridad
El ataque directo de 2011 demuestra que no importa cuán seguros los expertos piensen que es un algoritmo criptográfico, las personas ingeniosas siempre encontrarán formas en las que nadie pensó en debilitarlos..
Al igual que con la cantidad de rondas utilizadas, un tamaño de clave más grande proporciona un mayor margen de seguridad contra grietas.
Costoso
No se debe ignorar el efecto del marketing al considerar la ubicuidad del cifrado AES-256. El simple hecho de que AES-256 es ampliamente considerado como el cifrado de cifrado simétrico más seguro del mundo lo convierte en la opción número uno para muchos.
Quiero decir, si AES-128 es bueno, entonces es lógico pensar que AES-256 debe ser mejor, ¿verdad??
El hecho de que el gobierno de los EE. UU. Use AES-256 para proteger sus datos más confidenciales solo aumenta su valor de "bling" y permite a las compañías de VPN y similares afirmar que usan cifrado de "grado militar".
Dado que esta "percepción de bling" es (en gran medida) precisa, hay poco daño en la popularidad de AES-256 (aunque vea las notas en NIST a continuación).
AES y OpenVPN
Los usuarios de VPN, en particular, sin embargo, deben tener cuidado. La mayoría de los servicios VPN utilizan AES-256 para proteger los datos transmitidos por el protocolo OpenVPN, pero este es uno de los diversos mecanismos utilizados por OpenVPN para mantener la seguridad de los datos..
Una conexión TLS asegura la transferencia de las claves de cifrado utilizadas por AES para proteger los datos cuando se utiliza OpenVPN. Entonces, si la configuración de OpenVPN TLS (canal de control) es débil, entonces los datos pueden verse comprometidos a pesar de estar encriptados usando AES-256. Consulte nuestra Guía definitiva para el cifrado de VPN para obtener más detalles..
AES-CBC vs AES-GCM
Hasta hace poco, el único cifrado AES que probablemente encontraría en el mundo VPN era AES-CBC (Cipher Block Chaining). Esto se refiere al modo de cifrado de bloque, un tema complejo que realmente no vale la pena abordar aquí.
Aunque CBC teóricamente puede tener algunas vulnerabilidades, el consenso es que CBC es seguro. CBC es, de hecho, recomendado en el manual de OpenVPN.
OpenVPN ahora también es compatible con AES-GCM (modo Galios / Counter). GCM proporciona autenticación, eliminando la necesidad de una función de hash HMAC SHA. También es un poco más rápido que CBC porque utiliza la aceleración de hardware (al enhebrar a múltiples núcleos de procesador).
AES-CBC sigue siendo el modo más común en uso general, pero AES-GCM está aumentando en popularidad. Dadas las ventajas de GCM, es probable que esta tendencia continúe. Sin embargo, desde una perspectiva criptográfica, tanto AES-CBC como AES-GCM son altamente seguros.
NIST
AES es un estándar certificado por el NIST. Este es un organismo que, según admite, trabaja en estrecha colaboración con la NSA en el desarrollo de sus cifras..
Dado lo que ahora sabemos de los esfuerzos sistemáticos de la NSA para debilitar o construir puertas traseras en los estándares de cifrado internacionales, hay muchas razones para cuestionar la integridad de los algoritmos NIST. NIST, por supuesto, refuta firmemente tales acusaciones:
"El NIST no debilitaría deliberadamente un estándar criptográfico".
También ha invitado a la participación pública en una serie de futuros estándares de cifrado propuestos, en un movimiento diseñado para reforzar la confianza del público..
El New York Times, sin embargo, acusó a la NSA de eludir los estándares de cifrado aprobados por el NIST al introducir puertas traseras indetectables o subvertir el proceso de desarrollo público para debilitar los algoritmos.
Esta desconfianza se vio reforzada aún más cuando RSA Security (una división de EMC) le dijo a los clientes en privado que dejaran de usar un algoritmo de cifrado que supuestamente contiene una falla diseñada por la NSA. Este algoritmo también había sido respaldado por NIST.
Además, Dual_EC_DRBG (Generador de bits aleatorio determinista de curva elíptica dual) es un estándar de cifrado diseñado por NIST. Se sabe que es inseguro durante años.
En 2006, la Universidad Tecnológica de Eindhoven en los Países Bajos señaló que un ataque contra él era bastante fácil de lanzar en "una PC ordinaria". Los ingenieros de Microsoft también señalaron una sospecha de puerta trasera en el algoritmo.
A pesar de estas preocupaciones, donde NIST lidera, la industria sigue. Esto se debe en gran parte al hecho de que el cumplimiento de las normas NIST es un requisito previo para obtener contratos del gobierno de EE. UU. (FIPS).
Los estándares criptográficos certificados por el NIST, como AES, son bastante ubicuos en todo el mundo, en todas las áreas de la industria y los negocios que dependen de la privacidad. Esto hace que toda la situación sea bastante escalofriante.
Quizás precisamente porque tanto se basa en estos estándares, los expertos en criptografía no han estado dispuestos a enfrentar el problema.
Crédito de imagen: xkcd.com/538.