Esta nota de aplicación describe la implementación del cifrado AES-128 utilizando Z8 Encore de Zilog. Serie de microcontroladores de 8 bits. Describe brevemente el Estándar de cifrado avanzado (AES) y describe la implementación del estándar para un rendimiento rápido mientras se realiza el proceso de cifrado/descifrado.
discusión
El Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) lanzó el Estándar de cifrado avanzado (AES) en noviembre de 2001. Es el sucesor del Estándar de cifrado de datos (DES) y tiene una longitud de clave corta de 56, que no cumple con los requisitos de seguridad actuales. poco. NIST estaba organizando un concurso de propuestas de varios algoritmos para reemplazar DES. Lo mejor sería el nuevo estándar AES. En la ronda final de la competencia, el algoritmo Rijndael, que lleva el nombre de los inventores belgas Joan Daemen y Vincent Rijmen, ganó por su seguridad, facilidad de implementación y requisitos de memoria de tamaño reducido.
AES tiene actualmente tres versiones diferentes. Todos ellos tienen una longitud de bloque de 128 bits, pero la longitud de la clave puede ser de 128, 192 o 256 bits. Esta nota de aplicación solo cubre una longitud de clave de 128 bits.
El algoritmo AES consta de 10 rondas de cifrado, como se muestra en la Figura 1. La clave de 128 bits se expande primero en 11 claves redondas, cada una de 128 bits de tamaño. Cada ronda incluye una transformación que asegura el cifrado utilizando la clave criptográfica correspondiente.
Después de la primera ronda de cifrado, la clave de la primera ronda se aplica XOR en texto sin formato (operación AddRoundkey). Siguen nueve rondas estructuradas de manera similar. Cada ronda consta de las siguientes acciones:
- bytes alternativos
- cambio de fila
- columna mixta
- añadir clave redonda
Tanto la clave como los datos de entrada (también llamados estados) son estructuras de matrices de bytes 4×4. La figura 2 muestra cómo se distribuyen una clave de 128 bits y los datos de entrada en una matriz de bytes.

cifrado
El proceso de cifrado utiliza claves de seguridad para transformar datos simples en datos cifrados. El cifrado se puede realizar de diversas formas, pero la mayoría de los cifrados que se utilizan actualmente se basan en el estándar NIST FIPS 197, que incluye adición de clave redonda, permutación de bytes (subbytes), combinación de filas y columnas.
Descifrado
El descifrado es el inverso de la operación de cifrado y sigue el mismo proceso que la operación de sustitución de bytes, excepto que utiliza el método S-box inverso en lugar del método S-box.
Implementación de hardware
Esta aplicación AES-128 se implementó y probó utilizando el modelo de memoria pequeña. Básicamente, se puede usar cualquier microcontrolador Zilog para implementarlo. Esta aplicación utiliza la MCU Z8F082A para resaltar la pequeña huella de memoria del firmware. Usando un kit de desarrollo Z8F082A conectado a una PC de escritorio a través de un programa de emulación de hiperterminal. El usuario puede ingresar una cadena de 16 caracteres. HyperTerminal se utiliza para mostrar texto sin formato, texto cifrado y texto descifrado.
Implementación de software
El algoritmo AES-128 se implementó en C utilizando la versión 5.0.0 de ZDS II de Z8 Encore!.