El Estándar de cifrado avanzado (AES), el cifrado de bloques simétrico ratificado como estándar por el Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST), fue elegido mediante un proceso que duró desde 1997 hasta 2000 y que fue notablemente más abierto y transparente que su predecesor, el Estándar de cifrado de datos (DES). Este proceso recibió elogios de la comunidad criptográfica abierta y ayudó a aumentar la confianza en la seguridad del algoritmo ganador por parte de aquellos que desconfiaban de las puertas traseras en el predecesor, DES.
Se necesitaba un nuevo estándar principalmente porque DES tenía una clave relativamente pequeña de 56 bits que se estaba volviendo vulnerable a ataques de fuerza bruta . Además, DES fue diseñado principalmente para hardware y era relativamente lento cuando se implementaba en software. [1] Si bien Triple-DES evita el problema de un tamaño de clave pequeño, es muy lento incluso en hardware, no es adecuado para plataformas con recursos limitados y puede verse afectado por posibles problemas de seguridad relacionados con el tamaño de bloque (hoy comparativamente pequeño) de 64 bits.
El 2 de enero de 1997, el NIST anunció que deseaba elegir un sucesor del DES, que se conocería como AES. Al igual que el DES, se trataría de "un algoritmo de cifrado no clasificado y de divulgación pública capaz de proteger información gubernamental sensible hasta bien entrado el próximo siglo". [2] Sin embargo, en lugar de simplemente publicar un sucesor, el NIST pidió a las partes interesadas que aportaran sus opiniones sobre cómo debería elegirse al sucesor. El interés de la comunidad criptográfica abierta fue intenso de inmediato y el NIST recibió una gran cantidad de propuestas durante el período de comentarios de tres meses.
El resultado de esta retroalimentación fue una convocatoria de nuevos algoritmos el 12 de septiembre de 1997. [3] Todos los algoritmos debían ser cifrados de bloque, que admitieran un tamaño de bloque de 128 bits y tamaños de clave de 128, 192 y 256 bits. Dichos cifrados eran poco comunes en el momento del anuncio; el más conocido probablemente era Square .
En los nueve meses siguientes, se crearon y enviaron quince diseños de varios países. Estos fueron, en orden alfabético: CAST-256 , CRYPTON , DEAL , DFC , E2 , FROG , HPC , LOKI97 , MAGENTA , MARS , RC6 , Rijndael , SAFER+ , Serpent y Twofish .
En el debate que siguió, los criptógrafos investigaron muchas ventajas y desventajas de los candidatos; se evaluaron no solo en términos de seguridad, sino también en términos de rendimiento en una variedad de entornos (PC de varias arquitecturas, tarjetas inteligentes, implementaciones de hardware) y en términos de su viabilidad en entornos limitados (tarjetas inteligentes con memoria muy limitada, implementaciones con bajo número de puertas, FPGA).
Algunos diseños cayeron debido a criptoanálisis que iban desde fallas menores hasta ataques significativos, mientras que otros perdieron popularidad debido a un desempeño pobre en varios entornos o por tener poco que ofrecer sobre otros candidatos. NIST celebró dos conferencias para discutir las propuestas (AES1, agosto de 1998 y AES2, marzo de 1999 [4] [5] [6] ), y en agosto de 1999 anunciaron [7] que estaban reduciendo el campo de quince a cinco: MARS , RC6 , Rijndael , Serpent y Twofish . Los cinco algoritmos, comúnmente conocidos como "finalistas AES", fueron diseñados por criptógrafos considerados bien conocidos y respetados en la comunidad. Las votaciones de la conferencia AES2 fueron las siguientes: [8]
Siguió una nueva ronda de intensos análisis y criptoanálisis que culminó en la conferencia AES3 en abril de 2000, en la que un representante de cada uno de los cinco equipos finalistas hizo una presentación argumentando por qué su diseño debería ser elegido como el AES. Las votaciones de la conferencia AES3 fueron las siguientes: [9]
El 2 de octubre de 2000, el NIST anunció [10] que Rijndael había sido seleccionado como el estándar AES propuesto y comenzó el proceso para convertirlo en el estándar oficial mediante la publicación de un anuncio en el Registro Federal [11] el 28 de febrero de 2001 para que el borrador de FIPS solicitara comentarios. El 26 de noviembre de 2001, el NIST anunció que el AES había sido aprobado como FIPS PUB 197.
El NIST recibió elogios de la comunidad criptográfica por la apertura y el cuidado con el que llevó a cabo el proceso de normalización. Bruce Schneier , uno de los autores del algoritmo Twofish, que perdió la competición, escribió después de que terminara la competición que "no tengo más que cosas buenas que decir sobre el NIST y el proceso AES". [12]