Movatterモバイル変換


[0]ホーム

URL:


Ir al contenido
WikipediaLa enciclopedia libre
Buscar

Advanced Encryption Standard

De Wikipedia, la enciclopedia libre
Advanced Encryption Standard
General
Diseñador(es)Vincent Rijmen y Joan Daemen
1ª publicación1998
AntecesorSquare (cipher)
SucesorAnubis, Grand Cru, Kalyna
CertificaciónAES winner, CRYPTREC, NESSIE,NSA
Detalle de cifrado
Longitud de la clave128, 192 o 256 bits
Longitud de bloque128 bits
EstructuraSPN
Rounds10, 12 o 14 (dependiendo de la longitud de clave)
Mejorcriptoanálisis público
Se han publicado ataques que son computacionalmente más rápidos que uno defuerza bruta, aunque ninguno a partir de 2013 que sea factible. Para AES-128, la clave se puede recuperar con una complejidad computacional de 2126.1 usando el ataque biclique. En el caso de estos ataques en AES-192 y AES-256, se aplican respectivamente las complejidades computacionales de 2189.7 y 2254,4 respectivamente. Los ataques clave relacionados pueden romper AES-192 y AES-256 con complejidades 299.5 y 2176 tanto en tiempo como en datos respectivamente.

Advanced Encryption Standard (AES), también conocido comoRijndael (pronunciación en neerlandés: /ˈrɛindaːl/), es un esquema decifrado por bloques adoptado como un estándar decifrado por elgobierno de los Estados Unidos, creado en Bélgica. El AES fue anunciado por elInstituto Nacional de Estándares y Tecnología (NIST) comoFIPS PUB 197 de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001 después de un proceso deestandarización que duró 5 años. Se transformó en un estándar efectivo el 26 de mayo de 2002. Desde 2006, el AES es uno de los algoritmos más populares usados encriptografía simétrica.

El cifrado fue desarrollado por dos criptólogosbelgas,Joan Daemen yVincent Rijmen, ambos estudiantes de laKatholieke Universiteit Leuven, y fue enviado al proceso de selección AES bajo el nombre "Rijndael", como parte de un concurso.

Historia

[editar]

En 1997, elInstituto Nacional de Normas y Tecnología (NIST) decidió realizar un concurso para escoger un nuevo algoritmo de cifrado capaz de proteger información sensible durante el siglo XXI. Este concurso se denominóAdvanced Encryption Standard (AES).

El 2 de enero de 1997 el NIST anunció su intención de desarrollar AES, con la ayuda de la industria y de la comunidad criptográfica. El 12 de septiembre de ese año se hizo la convocatoria formal. En esta convocatoria se indicaban varias condiciones para los algoritmos que se presentaran:

  • Ser dedominio público, disponible para todo el mundo.
  • Ser un algoritmo de cifrado simétrico y soportar bloques de, como mínimo, 128 bits.
  • Lasclaves de cifrado podrían ser de 128, 192 y 256 bits.
  • Ser implementable tanto en hardware como en software.

El 20 de agosto de 1998 el NIST anunció los 15 algoritmos admitidos en la primera conferencia AES:

  • CAST-256 (Entrust Technologies, Inc.)
  • CRYPTON (Future Systems, Inc.)
  • DEAL (Richard Outerbridge, Lars Knudsen)
  • DFC (CNRS – Centre National pour la Recherche Scientifique –École Normale Supérieure)
  • E2 (NTT – Nippon Telegraph and Telephone Corporation)
  • FROG (TecApro International, S.A.)
  • HPC (Rich Schroeppel)
  • LOKI97 (Lawrie Brown, Josef Pieprzyk, Jennifer Seberry)
  • MAGENTA (Deutsche Telekom AG)
  • MARS (IBM)
  • RC6 (RSA Laboratories)
  • RIJNDAEL (John Daemen, Vincent Rijmen)
  • SAFER+ (Cylink Corporation)
  • SERPENT (Ross Anderson, Eli Biham, Lars Knudsen)
  • TWOFISH (Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson)

La segunda conferencia AES tuvo lugar en marzo de 1999 donde se discutieron los análisis a los que fueron sometidos los candidatos por la comunidad criptográfica internacional. Se admitieron comentarios hasta el 15 de abril. El NIST decidió en agosto de 1999 cuales serían los 5 finalistas:

  • MARS
  • RC6
  • RIJNDAEL
  • SERPENT
  • TWOFISH

Estos algoritmos fueron sometidos a una segunda revisión, más exhaustiva, que duró hasta el 15 de mayo de 2000. Durante este periodo el NIST admitió análisis de los algoritmos finalistas.

Durante los días 13 y 14 de abril de 2000 tuvo lugar la tercera conferencia AES donde se discutieron los últimos análisis de los algoritmos finalistas. En ella estuvieron presentes los desarrolladores de los algoritmos finalistas.

El 15 de mayo de 2000 finalizó el periodo público de análisis. El NIST estudió toda la información disponible para decidir cual sería el algoritmo ganador. El 2 de octubre de 2000 se votó cual sería el algoritmo que finalmente ganaría el concurso. El resultado fue el siguiente:

  • MARS: 13 votos
  • RC6: 23 votos
  • RIJNDAEL: 86 votos
  • SERPENT: 59 votos
  • TWOFISH: 31 votos

El algoritmo Rijndael ganó el concurso y en noviembre de 2001 se publicó FIPS 197 donde se asumía oficialmente.

Desarrollo

[editar]

Rijndael fue un refinamiento de un diseño anterior de Daemen y Rijmen,Square; Square fue a su vez un desarrollo deShark.

Al contrario que su predecesor DES, Rijndael es unared de sustitución-permutación, no unared de Feistel. AES es rápido tanto ensoftware como enhardware, es relativamente fácil de implementar, y requiere pocamemoria. Como nuevo estándar de cifrado, se está utilizando actualmente a gran escala.

Descripción del cifrado

[editar]
En la fase deSubBytes, cada byte en el state es reemplazado con su entrada en una tabla de búsqueda fija de 8 bits,S;bij =S(aij).
En el pasoShiftRows, los bytes en cada fila del state son rotados de manera cíclica hacia la izquierda. El número de lugares que cada byte es rotado difiere para cada fila.
En el pasoMixColumns, cada columna del state es multiplicada por un polinomio constantec(x).
En el pasoAddRoundKey, cada byte del state se combina con un byte de la subclave usando la operaciónXOR (⊕).

Estrictamente hablando, AES no es precisamente Rijndael (aunque en la práctica se los llama de manera indistinta) ya que Rijndael permite un mayor rango detamaño de bloques ylongitud de claves; AES tiene un tamaño de bloque fijo de 128 bits y tamaños de clave de 128, 192 o 256 bits, mientras que Rijndael puede ser especificado por una clave que sea múltiplo de 32 bits, con un mínimo de 128 bits y un máximo de 256 bits.

La mayoría de los cálculos del algoritmo AES se hacen en uncampo finito determinado.

AES opera en una matriz de 4×4bytes, llamadastate (algunas versiones de Rijndael con un tamaño de bloque mayor tienen columnas adicionales en el state).

Pseudocódigo

[editar]
  1. AddRoundKey
  • Rondas:
  1. SubBytes — en este paso se realiza una sustitución no lineal donde cada byte es reemplazado con otro de acuerdo a unatabla de búsqueda.
  2. ShiftRows — en este paso se realiza una transposición donde cada fila del «state» es rotada de manera cíclica un número determinado de veces.
  3. MixColumns — operación de mezclado que opera en las columnas del «state», combinando los cuatro bytes en cada columna usando unatransformación lineal.
  4. AddRoundKey — cada byte del «state» es combinado con la clave «round»; cada clave «round» se deriva de la clave de cifrado usando unaiteración de la clave.
  • Etapa final:
  1. SubBytes
  2. ShiftRows
  3. AddRoundKey

Seguridad

[editar]

Hasta 2005, no se ha encontrado ningún ataque exitoso contra el AES. LaAgencia de Seguridad Nacional de los Estados Unidos (NSA) revisó todos los finalistas candidatos al AES, incluyendo el Rijndael, y declaró que todos ellos eran suficientemente seguros para su empleo en información no clasificada del gobierno de los Estados Unidos. En junio de 2003, el gobierno de los Estados Unidos anunció que el AES podía ser usado para información clasificada:

"The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are sufficient to protect classified information up to the SECRET level. TOP SECRET information will require use of either the 192 or 256 key lengths. The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use.[1]​"

Este hecho marca la primera vez que el público ha tenido acceso a un cifrador aprobado por la NSA para información súper secreta (TOP SECRET). Es interesante notar que muchos productos públicos usan claves de 128 bits por defecto; es posible que la NSA sospeche de una debilidad fundamental en claves de este tamaño,[cita requerida] o simplemente prefieren tener un margen de seguridad para documentos supersecretos (que deberían conservar la seguridad durante décadas en el futuro).

El método más común de ataque hacia un cifrador por bloques consiste en intentar varios ataques sobre versiones del cifrador con un número menor de rondas. El AES tiene 10 rondas para claves de 128 bits, 12 rondas para claves de 192 bits, y 14 rondas para claves de 256 bits. Hasta 2005, los mejores ataques conocidos son sobre versiones reducidas a 7 rondas para claves de 128 bits, 8 rondas para claves de 192 bits, y 9 rondas para claves de 256 bits (Ferguson et al, 2000).

Algunos criptógrafos muestran preocupación sobre la seguridad del AES. Sienten que el margen entre el número de rondas especificado en el cifrador y los mejores ataques conocidos es muy pequeño. El riesgo es que se puede encontrar alguna manera de mejorar los ataques, y de ser así, el cifrado podría romperse (en el contexto criptográfico se considera "roto" un algoritmo si existe algún ataque más rápido que una búsqueda exhaustiva (ataque por fuerza bruta). De modo que un ataque contra el AES de clave de 128 bits que requiera 'solo' 2120 operaciones sería considerado como un ataque que "rompe" el AES, aun tomando en cuenta que por ahora sería un ataque irrealizable. Hasta el momento, tales preocupaciones pueden ser ignoradas. El ataque de fuerza bruta más largamente publicitado y conocido ha sido contra una clave de 64 bitsRC5 pordistributed.net.

Otra preocupación es la estructuramatemática de AES. A diferencia de la mayoría de cifradores de bloques, AES tiene una descripción matemática muy ordenada.[2][3]​ Esto no ha llevado todavía a ningún ataque, pero algunos investigadores están preocupados que futuros ataques quizá encuentren una manera de explotar esta estructura.

En 2002, un ataque teórico, denominado "ataque XSL", fue anunciado porNicolas Courtois yJosef Pieprzyk, mostrando una potencial debilidad en el algoritmo AES. Varios expertos criptográficos han encontrado problemas en las matemáticas que hay por debajo del ataque propuesto, sugiriendo que los autores quizá hayan cometido un error en sus estimaciones. Si esta línea de ataque puede ser tomada contra AES, es una cuestión todavía abierta. Hasta el momento, elataque XSL contra AES parece especulativo; es improbable que nadie pudiera llevar a cabo en la práctica este ataque.

Ataques de canal lateral

[editar]

Losataques de canal lateral no atacan al cifrador en sí, sino a las implementaciones del cifrador en sistemas que revelan datos inadvertidamente.

En abril de 2005,Daniel J. Bernstein anunció un ataque temporizado de caché[4]​ que solía romper un servidor a medida que usaba el cifrado AES paraOpenSSL. Este servidor fue diseñado para dar la mayor cantidad de información acerca de los tiempos de ejecución como fuera posible, y el ataque requería cerca de 200 millones de ficheros de texto en claro. Se dice que el ataque no es práctico en implementaciones del mundo real;[5]Bruce Schneier llamó a esta investigación un"bonito ataque de tiempos".[6]

En octubre de 2005,Adi Shamir y otros dos investigadores presentaron un artículo demostrando varios ataques de tiempos de caché[7]​ contra AES. Uno de los ataques obtuvo una clave de AES entera después de tan solo 800 escrituras, en 65 milisegundos. Este ataque requiere que el atacante pueda ejecutar programas en el mismo sistema que realiza el cifrado de AES.

Implementaciones

[editar]
  • Una calculadora de AES que muestra valores intermedios en Javascript[8]
  • Implementación de AES por Brian Gladman con licencia BSD[9]
  • Implementación de AES de dominio público de Pablo Barreto escrita en C
  • Implementación de AES de dominio público de D.J. Bernstein[10]
  • Código fuente con licencia GPL del algoritmo optimizado de Rijndael en C[11]
  • Biblioteca GPL Nettle que también incluye una implementación de AES[12]
  • Evolsystem: ejemplo de algoritmo de cifrado AES - Rijndael[13]
  • Rijndael Inspector: programa hecho enFlash para cifrar y descifrar utilizando AES-128[14]
  • Cryptomator: programa de código abierto para encriptar archivos y subirlos a la nube[15]

Rendimiento

[editar]

En un procesadorPentium Pro, el cifrado de AES requiere de 18 ciclos por byte (cpb),[16]​ lo cual equivale a 11 MiB/s en un procesador de 200 MHz.

En los CPUIntel Core yAMD Ryzen que implementan elconjunto de instrucciones AES, el rendimiento puede alcanzar varios GiB/s (incluso más de 15 GiB/s en un modelo i7-12700k).[17]​ En un CPU con arquitecturaIntel Westmere, el cifrado AES con este conjunto de instrucciones toma aproximadamente 1.3 cpb para AES-128 y 1.8 cpb para AES-256.[18]

Notas

[editar]
  • Tamaños de bloque de 128, 160, 192, 224 y 256 bits son soportados por el algoritmo Rijndael, pero solo bloques de 128 bits de tamaño son especificados en el AES.

Referencias

[editar]
  1. «Copia archivada». Archivado desdeel original el 27 de septiembre de 2007. Consultado el 10 de junio de 2005. 
  2. «A simple algebraic representation of Rijndael». Archivado desdeel original el 16 de enero de 2016. Consultado el 2009. 
  3. «Sean Murphy». Consultado el 2009. 
  4. «D. J. Bernstein / Papers». Consultado el 2009. 
  5. [1]
  6. «Schneier on Security: AES Timing Attack». Consultado el 2009. 
  7. [2]
  8. «JavaScript AES Example». Archivado desdeel original el 2 de julio de 2008. Consultado el 2009. 
  9. https://web.archive.org/web/20050524003351/http://fp.gladman.plus.com/cryptography_technology/rijndael/
  10. «Poly1305-AES: a state-of-the-art message-authentication code». Consultado el 2009. 
  11. https://web.archive.org/web/20031123111709/http://www.cr0.net:8040/code/crypto/aes/
  12. «Nettle - a low-level crypto library». Consultado el 2009. 
  13. «Evolsystem AES Rijndael (Technology Preview)». Consultado el 2009. 
  14. «Rijndael Inspector». Consultado el 2009. 
  15. «Cryptomator». Consultado el 1 de octubre de 2021. 
  16. Schneier, Bruce; Kelsey, John; Whiting, Doug; Wagner, David; Hall, Chris; Ferguson, Niels (1 de febrero de 1999).«Performance Comparisons of the AES submissions». Archivado desdeel original el 22 de junio de 2011. Consultado el 28 de diciembre de 2010. 
  17. «AMD Ryzen 7 1700X Review». 
  18. «Intel ® Advanced Encryption Standard (AES) New Instructions Set». Mayo de 2010. 
  • Evolsystem AES WebServiceshttp://www.evolsystem.cl/algoritmo/(enlace roto disponible enInternet Archive; véase elhistorial, laprimera versión y laúltima).
  • Nicolas Courtois, Josef Pieprzyk, "Cryptanalysis of Block Ciphers with Overdefined Systems of Equations". pp267–287, ASIACRYPT 2002.
  • Joan Daemen and Vincent Rijmen, "The Design of Rijndael: AES - The Advanced Encryption Standard." Springer-Verlag, 2002.ISBN 3-540-42580-2.
  • Niels Ferguson, John Kelsey, Stefan Lucks, Bruce Schneier, Michael Stay, David Wagner and Doug Whiting: Improved Cryptanalysis of Rijndael. FSE 2000, pp213–230

Enlaces externos

[editar]
Control de autoridades

Obtenido de «https://es.wikipedia.org/w/index.php?title=Advanced_Encryption_Standard&oldid=169747635»
Categoría:
Categorías ocultas:

[8]ページ先頭

©2009-2026 Movatter.jp