Algoritmo AES

En el post sobre JCrypTool, citamos distintos métodos de cifrado que se podrían implementar con la herramienta como son RSA o AES, pero no llegamos a entrar en más detalle con ninguno de los dos.

En el post de hoy queremos hablar sobre AES (Advanced Encryption Standard) en mayor profundidad, haciendo una presentación inicial del algortimo utilizando la presentación de Jeff Moser y posteriormente calculando un ejemplo con JCrypTool.

AES es uno de los algoritmos más seguros y más utilizados por los gobiernos, los bancos y los sistemas de alta seguridad de todo el mundo al ser considerado como el estándar de cifrado más seguro. De hecho, la Agencia de Seguridad Nacional Americana (NSA) lo declaró válido para el cifrado de sus documentos más secretos tras un largo proceso de selección del estándar DES.

AES

La historia de AES se remonta a 1997 cuando el NIST, anunció la búsqueda de un sucesor para el estándar de cifrado DES al descubrirse que este método de cifrado era vulnerable. Trás varias rondas de votaciones, el algoritmo “Rijndael”, desarrollado por los criptólogos belgas Joan Daemen y Vincent Rijmen, fue el más votado al destacar en seguridad, rendimiento y la flexibilidad, siendo oficialmente presentado como el nuevo estándar de cifrado AES en el 2001 y se transformó en estándar efectivo en el 2002.

AES se basa en varias sustituciones, permutaciones y transformaciones lineales, ejecutadas en bloques de datos de 16 bytes que se repite en varias rondas. En cada ronda, un único “roundkey” se calcula de la clave de encriptación, y es incorporado en los cálculos. Basado en esta estructura de bloque de AES, el cambio de un solo bit, ya sea en la clave, o en los bloques de texto simple y claro, resulta en un bloque de texto cifrado completamente diferente, creando una ventaja frente a los métodos tradicionales.

Hemos hemos tenido la oportunidad de conocer la presentación de Jeff Moser a través de la tradución de @PGaraizar. En esta presentación se introduce AES a partir de una serie de viñetas gráficas que hacen que el concepto sea entendible de una manera rápida y entretenida.

 

Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo from Pablo Garaizar

 

Una vez conocido el algoritmo, vamos a hacer la prueba con JCrypTool. En primer lugar, creamos un fichero de texto con el mensaje que queremos cifrar y pulsamos el botón AES que viene señalado en azul en nuestra captura.

JCrypTool1

Una vez aquí, indicamos que queremos encryptar el fichero y en nuestro caso, generamos nuestra propia clave de 128 bits, pero también podríamos crear claves de 192 y 256.

JCrypTool2

Con este cálculo tendríamos el siguiente fichero binario como resultado

JCrypTool3

Con el que podemos ver la matriz que se genera a partir de nuestro fichero que queríamos cifrar.

Si queremos volver al original, tendríamos que descrifrar el fichero a partir de la configuración inicial, siendo en la actualidad imposible resolverlo de otra manera que no sea la legítima.

Esperemos que este post os ayude a entender mejor el funcionamiento del algorimo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *