El AES (Advanced Encryption Standard), también llamado algoritmo Rijindae, fue diseñado en el 2000 por los expertos en criptografía Joan Daemen (STMicroelectronics) y Vicent Rijmen (Universidad Católica de Leuven, KUL, Bélgica) y fue seleccionado en una competencia convocada por el Instituto Nacional de Estándares y Tecnología (NIST) de EE.UU. El AES es técnicamente, un cifrado por bloques, y actualmente lo utilizan más de 1.700 productos validados por el NIST, además a sido aprobada por la Agencia Nacional de Seguridad Estadounidense (NSA) para proteger datos e información secreta del país "hoy día".
El AES es un cifrado en bloque de criptografía simétrica, es decir, trabaja cifrando y descifrando bloque a bloque, utilizando la misma clave privada para ambos procesos. Según (NIS01), en el estándar, el algoritmo Rijndael divide los datos de entrada en bloques de 4 palabras de 32 bits, es decir, 4 × 32 = 128 bits. Es necesario decir que el algoritmo Rijndael puede trabajar también con bloques mayores de 192 y 256 bits, pero no vienen contemplados en el estándar. Al bloque de datos se le conoce como Estado. En cuanto a la longitud de clave, el estándar trabaja con longitudes de Nk palabras de 32 bits, donde Nk = 4, 6 ´o 8. Es decir, que el algoritmo trabaja con longitudes de clave de 128 (4 × 32), 192 (6 × 32) ´o 256 (8 × 32) bits.
CIFRADO. . .
Para definir el proceso de cifrado del AES, vamos a asumir que la longitud de clave escogida es de 128 bits, ya que la longitud de clave no afecta a las diversas operaciones que realiza el cifrado. Con el objetivo de facilitar el entendimiento de las operaciones realizadas por el cifrador. Básicamente, el cifrador aplica al Estado cuatro operaciones durante un número determinado de rondas. Dicho número de rondas (Nr) viene definido por la longitud de clave utilizada, siendo Nr = 10 para una longitud de clave de 128 bits, Nr = 12 para 192 bits y Nr = 14 para 256 bits.
Las cuatro operaciones realizadas en el cifrado son denominadas:
- SubBytes.
- ShiftRows.
- MixColumns.
- AddRoundKey.
En primer lugar se realiza una ronda inicial en la que únicamente se aplica una operación AddRoundKey. Posteriormente, se realizan las nueve rondas principales, en las que se aplican las cuatro operaciones del cifrado en este orden: SubBytes, ShitfRows, Mix-Columns y AddRoundKey. Por último, se realiza la ronda final, en la que se aplican las operaciones SubBytes, ShiftRows y AddRoundKey, obteniendo así nuestro texto cifrado. Cabe destacar que en cada ronda se utilizan diferentes subclaves, derivadas de la clave original. De modo que en la ronda inicial se utiliza la clave original (si la clave es de 128 bits) y en la ronda final se utiliza la subclave número 10.
En otro artículo explicaremos como funciona cada una de las cuatro operaciones, destacando sus funciones matemáticas.
DESCIFRADO. . .
Para definir el proceso de descifrado, vamos a suponer que la longitud de clave escogida es de 128 bits, lo cual implica 10 rondas. Hay que recordar que AES es un cifrador de clave simétrica, lo que quiere decir que la misma clave que se ha usado para cifrar los datos es la que se usará para descifrarlos. Básicamente, el proceso de descifrado consiste en aplicar, en orden inverso al del cifrado, las operaciones inversas a las descritas en el encriptador. De nuevo, tenemos cuatro operaciones diferentes:
- InvSubBytes.
- InvShiftRows.
- InvMixColumns.
- AddRoundKey.
La operación AddRoundKey es la misma que en la encriptación, es decir, una operación XOR entre el Estado y la subclave correspondiente. El proceso empieza en la última ronda, es decir, que la primera operación que aparece, AddRoundKey, utilizará la subclave número 10. Se puede deducir que si las longitudes de clave son 192 o 256 bits, la primera ronda que se usará en el descifrado será la 12 o la 14 respectivamente. Posteriormente se realiza la ronda 9, en la que se aplican al Estado las operaciones InvShiftRows, InvSubBytes y AddRoundKey. Por último, se realizan, hasta la ronda final (ronda 0), las diversas operaciones de descifrado en este orden: InvMixColumns, InvShiftRows, InvSubBytes y AddRoundKey. De nuevo, la subclave de ronda 0 es la clave original (si la longitud de clave es de 128 bits).
La criptografía AES comprende ser la más seguro a nivel Simétrico, obteniendo solo un reportaje de ataque efectivo, en el cual rompieron totalmente la seguridad obteniendo acceso a los datos. Se presento en el 2011 donde Andrey Bogdanov (investigador de la universidad de Leuven) trabajando temporalmente en el instituto de Microsoft, junto con Dmitry Khovratovich y Christian Rechberger fueron quienes lograron desarrollar una nueva estrategia de ataque al famoso algoritmo de encriptación con el que se puede obtener una clave secreta cuatro veces más fácilmente de lo que se estimaban los expertos. Desde su desarrollo, muchos especialistas han puesto a prueba la seguridad del algoritmo Rijndae sin éxito. Sólo en 2009 se identificaron algunas debilidades de este sistema de encriptación, pero eran más bien de interés matemático, sin que afectasen a la protección de datos. Pero la vulnerabilidad hallada tiene más importancia, aunque no tenga gran misterio en la seguridad ya que para romper el AES, incluso con la nueva estrategia de ataque desarrollada por Bogdanov y sus colegas, el número de intentos que hay que hacer para sacar una clave es un número casi ilegible: un ocho seguido de 37 ceros.
Los investigadores emplearon un ataque Meet-in-the-Middle, una aproximación que ha sido principalmente empleada con algoritmos de hashing, combinándolo con un ataque "Biclique". Este método ha permitido a los investigadores calcular la clave de un par texto plano/texto cifrado más rápidamente que empleando un ataque de fuerza bruta en el espacio total de la llave. O sea, se ha reducido el número de claves que deben ser probadas. La fuerza bruta total con clave de 128 bits serían 2^128 posibilidades. Con este ataque serían necesarias "solo" 2^126.
En otras palabras se puede decir que el algoritmo está "roto" puesto que se ha reducido (aunque sea en 2 bits) el espacio de claves necesario para calcular la clave por fuerza bruta. Sin embargo, al decir que es ta roto no significa que no pueda ser usado con seguridad. Puesto que para un ataque contra una llave de 128 bits requiere diez millones de años empleando un parque de un billón de equipos probando cada uno de ellos un billón de claves. Al reducir en dos bits dicha clave, el tiempo se reduciría a 3 millones de años.
No hay comentarios:
Publicar un comentario