stringtranslate.com

conjunto de instrucciones AES

Un conjunto de instrucciones AES (Estándar de cifrado avanzado) es un conjunto de instrucciones diseñadas específicamente para realizar operaciones de cifrado y descifrado AES de manera eficiente. Estas instrucciones se encuentran normalmente en procesadores modernos y pueden acelerar enormemente las operaciones AES en comparación con las implementaciones de software. Un conjunto de instrucciones AES incluye instrucciones para la expansión , cifrado y descifrado de claves utilizando varios tamaños de clave (128 bits, 192 bits y 256 bits).

El conjunto de instrucciones a menudo se implementa como un conjunto de instrucciones que pueden realizar una única ronda de AES junto con una versión especial para la última ronda que tiene un método ligeramente diferente.

Cuando AES se implementa como un conjunto de instrucciones en lugar de como software, puede mejorar la seguridad, ya que se reduce la superficie de ataque de su canal lateral . [1]

procesadores de arquitectura x86

AES-NI (o Nuevas Instrucciones del Estándar de Cifrado Avanzado Intel ; AES-NI ) fue la primera implementación importante. AES-NI es una extensión de la arquitectura del conjunto de instrucciones x86 para microprocesadores de Intel y AMD propuesta por Intel en marzo de 2008. [2]

En AVX-512 se encuentra una versión más amplia de AES-NI, instrucciones AVX-512 Vector AES (VAES) . [3]

Instrucciones

Intel

Los siguientes procesadores Intel admiten el conjunto de instrucciones AES-NI: [5]

AMD

Varios procesadores AMD admiten instrucciones AES:

Aceleración de hardware en otras arquitecturas

La compatibilidad con AES con instrucciones de procesador sin privilegios también está disponible en los procesadores SPARC más recientes ( T3 , T4 , T5 , M5 y posteriores) y en los procesadores ARM más recientes . El procesador SPARC T4 , presentado en 2011, tiene instrucciones a nivel de usuario que implementan rondas AES. [13] Estas instrucciones se suman a los comandos de cifrado de nivel superior. La arquitectura del procesador ARMv8-A , anunciada en 2011, que incluye ARM Cortex-A53 y A57 (pero no los procesadores v7 anteriores como Cortex A5, 7, 8, 9, 11, 15 [ cita necesaria ] ) también tiene instrucciones a nivel de usuario que implementan rondas AES. [14]

CPU x86 que ofrecen interfaces de aceleración que no son AES-NI

Las CPU VIA x86 y AMD Geode utilizan en su lugar el manejo AES acelerado basado en controladores. (Consulte Crypto API (Linux) ).

Los siguientes chips, aunque admiten la aceleración de hardware AES, no admiten AES-NI:

arquitectura brazo

La información de programación está disponible en el Manual de referencia de arquitectura ARM ARMv8, para el perfil de arquitectura ARMv8-A (Sección A2.3 "La extensión criptográfica Armv8") . [20]

Marvell Kirkwood era el núcleo integrado de una gama de SoC de Marvell Technology ; estas CPU SoC (ARM, mv_cesa en Linux) utilizan manejo AES acelerado basado en controladores. (Consulte Crypto API (Linux) ).

Arquitectura RISC-V

Las extensiones del conjunto de instrucciones criptográficas escalares y vectoriales para la arquitectura RISC-V se ratificaron respectivamente en 2022 y 2023, lo que permitió a los procesadores RISC-V implementar aceleración de hardware para AES, GHASH , SHA-256 , SHA-512 , SM3 y SM4 .

Antes de que las instrucciones específicas de AES estuvieran disponibles en RISC-V, varios chips RISC-V incluían coprocesadores AES integrados. Ejemplos incluyen:

Arquitectura de potencia

Desde Power ISA v.2.07 , las instrucciones vciphere vcipherlastimplementan una ronda de AES directamente. [30]

IBM z/Arquitectura

Los procesadores de mainframe IBM z9 o posteriores admiten AES como instrucciones AES ECB/CBC de código de operación único (KM, KMC) a través del hardware CryptoExpress de IBM. [31] Estas versiones AES de instrucción única son, por lo tanto, más fáciles de usar que las de Intel NI, pero no pueden ampliarse para implementar otros algoritmos basados ​​en funciones redondas AES (como las funciones hash Whirlpool y Grøstl ).

Otras arquitecturas

Actuación

En AES-NI Performance Analyzed , Patrick Schmid y Achim Roos encontraron "resultados impresionantes de un puñado de aplicaciones ya optimizadas para aprovechar la capacidad AES-NI de Intel". [34] Un análisis de rendimiento utilizando la biblioteca de seguridad Crypto++ mostró un aumento en el rendimiento de aproximadamente 28,0 ciclos por byte a 3,5 ciclos por byte con AES / GCM frente a un Pentium 4 sin aceleración. [35] [36] [ verificación fallida ] [ se necesita una mejor fuente ]

Software de soporte

La mayoría de los compiladores modernos pueden emitir instrucciones AES.

Una gran cantidad de software de seguridad y criptografía admite el conjunto de instrucciones AES, incluida la siguiente infraestructura central notable:

Aplicación más allá de AES

Un uso marginal del conjunto de instrucciones AES implica usarlo en cifrados de bloque con una S-box de estructura similar , usando isomorfismo afín para convertir entre los dos. SM4 , Camellia y ARIA se han acelerado utilizando AES-NI. [52] [53] [54] Las nuevas instrucciones de campo Galois (GFNI) AVX-512 permiten implementar estas S-boxes de una manera más directa. [55]

Se han construido nuevos algoritmos criptográficos para utilizar específicamente partes del algoritmo AES, de modo que el conjunto de instrucciones AES pueda utilizarse para acelerar. La familia AEGIS, que ofrece cifrado autenticado , funciona con al menos el doble de velocidad que AES. [56] AEGIS es un "finalista adicional para aplicaciones de alto rendimiento" en el concurso CAESAR . [57]

Ver también

Notas

  1. ^ La instrucción calcula 4 subexpresiones paralelas de expansión de clave AES en 4 palabras de 32 bits en una palabra cuádruple doble (también conocida como registro SSE) en los bits X[127:96] para y X[63:32] solo para. Dos sustituciones paralelas de AES S-box se utilizan en AES-256 y 2 subexpresiones y se utilizan en AES-128, AES-192, AES-256.

Referencias

  1. ^ "Asegurar la empresa con Intel AES-NI" (PDF) . Corporación Intel . Archivado (PDF) desde el original el 31 de marzo de 2013 . Consultado el 26 de julio de 2017 .
  2. ^ "Red de software Intel". Intel. Archivado desde el original el 7 de abril de 2008 . Consultado el 5 de abril de 2008 .
  3. ^ "Referencia de programación de características futuras y extensiones del conjunto de instrucciones de la arquitectura Intel". Intel . Consultado el 16 de octubre de 2017 .
  4. ^ Shay Gueron (2010). "Documento técnico sobre el conjunto de instrucciones Intel Advanced Encryption Standard (AES)" (PDF) . Intel . Consultado el 20 de septiembre de 2012 .
  5. ^ "Búsqueda avanzada de especificaciones de productos Intel". Intel ARCA .
  6. ^ Shimpi, Anand Lal. "Revisión de Sandy Bridge: Intel Core i7-2600K, i5-2500K y Core i3-2100 probados".
  7. ^ "Comparación de especificaciones de productos Intel".
  8. ^ "Soporte AES-NI en TrueCrypt (problema de Sandy Bridge)". 27 de enero de 2022.
  9. ^ "Algunos productos pueden admitir nuevas instrucciones AES con una actualización de la configuración del procesador, en particular, i7-2630QM/i7-2635QM, i7-2670QM/i7-2675QM, i5-2430M/i5-2435M, i5-2410M/i5-2415M. Comuníquese con el OEM para obtener el BIOS que incluye la última actualización de configuración del procesador".
  10. ^ "Especificaciones del producto del procesador Intel Core i3-2115C (caché de 3M, 2,00 GHz)".
  11. ^ "Especificaciones del producto del procesador Intel Core i3-4000M (caché de 3M, 2,40 GHz)".
  12. ^ "Siguiendo instrucciones". AMD. 22 de noviembre de 2010. Archivado desde el original el 26 de noviembre de 2010 . Consultado el 4 de enero de 2011 .
  13. ^ Dan Anderson (2011). "Motor SPARC T4 OpenSSL". Oráculo . Consultado el 20 de septiembre de 2012 .
  14. ^ Richard Grisenthwaite (2011). "Vista previa de la tecnología ARMv8-A" (PDF) . BRAZO. Archivado desde el original (PDF) el 10 de junio de 2018 . Consultado el 20 de septiembre de 2012 .
  15. ^ "Especificaciones técnicas de la familia de procesadores AMD Geode LX". AMD.
  16. ^ "Motor de seguridad de candados VIA". A TRAVÉS DE. Archivado desde el original el 15 de mayo de 2011 . Consultado el 14 de noviembre de 2011 .
  17. ^ ab Aceleradores de hardware criptográfico en OpenWRT.org
  18. ^ "Procesadores VIA Eden-N". A TRAVÉS DE. Archivado desde el original el 11 de noviembre de 2011 . Consultado el 14 de noviembre de 2011 .
  19. ^ "Procesadores VIA C7". A TRAVÉS DE. Archivado desde el original el 19 de abril de 2007 . Consultado el 14 de noviembre de 2011 .
  20. ^ "Manual de referencia de arquitectura Arm Armv8, para perfil de arquitectura Armv8-A". BRAZO. 22 de enero de 2021.
  21. ^ "Estado del controlador del sistema de seguridad/motor criptográfico". sunxi.montjoie.ovh .
  22. ^ "Aceleración criptográfica de Linux en un i.MX6" (PDF) . Fundación Linux. Febrero de 2017. Archivado desde el original (PDF) el 26 de agosto de 2019 . Consultado el 2 de mayo de 2018 .
  23. ^ "El módulo criptográfico del Snapdragon 805 tiene certificación FIPS 140-2". Qualcomm .
  24. ^ "RK3128 - Wiki de Rockchip". Wiki de Rockchip . Archivado desde el original el 28 de enero de 2019 . Consultado el 2 de mayo de 2018 .
  25. ^ "El análisis profundo del Samsung Exynos 7420: dentro de un SoC moderno de 14 nm". AnandTech .
  26. ^ "Hoja de datos de Sipeed M1 v1.1" (PDF) . kamami.pl . 2019-03-06 . Consultado el 3 de mayo de 2021 .
  27. ^ "Hoja de datos de la serie ESP32" (PDF) . www.espressif.com . 2021-03-19 . Consultado el 3 de mayo de 2021 .
  28. ^ "El procesador ESP32-C3 WiFi y BLE RISC-V es compatible pin a pin con ESP8266". Software CNX . Consultado el 22 de noviembre de 2020 .
  29. ^ "BL602-Bouffalo Lab (Nanjing) Co., Ltd". www.bouffalolab.com . Archivado desde el original el 18 de junio de 2021 . Consultado el 3 de mayo de 2021 .
  30. ^ "Power ISA versión 2.07 B" . Consultado el 7 de enero de 2022 .
  31. ^ "Criptografía IBM System z10". IBM . Consultado el 27 de enero de 2014 .
  32. ^ "Uso del acelerador AES integrado XMEGA" (PDF) . Consultado el 3 de diciembre de 2014 .
  33. ^ "Cavium Networks lanza la línea más amplia de la industria de procesadores OCTEON basados ​​en MIPS64 de uno y dos núcleos dirigidos a redes inteligentes de próxima generación". Archivado desde el original el 7 de diciembre de 2017 . Consultado el 17 de septiembre de 2016 .
  34. ^ P. Schmid y A. Roos (2010). "Análisis del rendimiento de AES-NI". Hardware de Tom . Consultado el 10 de agosto de 2010 .
  35. ^ T. Krovetz, W. Dai (2010). "¿Cómo conseguir llamadas AES rápidas?". Grupo de usuarios de Crypto++ . Consultado el 11 de agosto de 2010 .
  36. ^ "Puntos de referencia de Crypto++ 5.6.0 Pentium 4". Sitio web de Crypto++ . 2009. Archivado desde el original el 19 de septiembre de 2010 . Consultado el 10 de agosto de 2010 .
  37. ^ "Manual de referencia de NonStop SSH" . Consultado el 9 de abril de 2020 .
  38. ^ "Manual de referencia de la biblioteca NonStop cF SSL" . Consultado el 9 de abril de 2020 .
  39. ^ "Opción de cifrado de cinta BackBox H4.08" . Consultado el 9 de abril de 2020 .
  40. ^ "Instrucciones del estándar de cifrado avanzado Intel (AES-NI)". Intel. 2 de marzo de 2010. Archivado desde el original el 7 de julio de 2010 . Consultado el 11 de julio de 2010 .
  41. ^ "Mejoras AES-NI para NSS en sistemas Sandy Bridge". 2012-05-02 . Consultado el 25 de noviembre de 2012 .
  42. ^ "Guía de administración del sistema: servicios de seguridad, capítulo 13 Marco criptográfico Solaris (descripción general)". Oráculo. Septiembre de 2010 . Consultado el 27 de noviembre de 2012 .
  43. ^ "Notas de la versión de FreeBSD 8.2". FreeBSD.org. 2011-02-24. Archivado desde el original el 12 de abril de 2011 . Consultado el 18 de diciembre de 2011 .
  44. ^ OpenSSL: interfaz web CVS
  45. ^ "Backend criptográfico (GnuTLS 3.6.14)". gnutls.org . Consultado el 26 de junio de 2020 .
  46. ^ "AES-GCM en libsodio". libsodium.org .
  47. ^ "Aceleración de hardware". www.veracrypt.fr .
  48. ^ "aes: el lenguaje de programación Go". golang.org . Consultado el 26 de junio de 2020 .
  49. ^ Shimpi, Anand Lal. "La revisión de Clarkdale: Core i5 661, i3 540 e i3 530 de Intel". www.anandtech.com . Consultado el 26 de junio de 2020 .
  50. ^ "Firewall de almacenamiento inteligente Bloombase StoreSafe".
  51. ^ "Vormetric Encryption agrega soporte para la tecnología de aceleración Intel AES-NI". 15 de mayo de 2012.
  52. ^ Saarinen, Markku-Juhani O. (17 de abril de 2020). "mjosaarinen/sm4ni: demostración de que las instrucciones AES-NI se pueden utilizar para implementar el estándar de cifrado chino SM4". GitHub .
  53. ^ Kivilinna, Jussi (2013). Cifrados de bloque: implementaciones rápidas en arquitectura x86-64 (PDF) (Maestría). Universidad de Oulu . págs.33, 42 . Consultado el 22 de junio de 2017 .
  54. ^ Yoo, Tae-Hee; Kivilinna, Jussi; Cho, Choong-Hee (2023). "Aceleración basada en AVX del algoritmo de cifrado de bloques ARIA". Acceso IEEE . 11 : 77403–77415. Código Bib : 2023IEEEA..1177403Y. doi : 10.1109/ACCESS.2023.3298026 .
  55. ^ Kivilinna, Jussi (19 de abril de 2023). "camelia-simd-aesni". GitHub . Los procesadores x86-64 más nuevos también admiten las nuevas instrucciones de campo Galois (GFNI), que permiten implementar Camellia s-box de manera más sencilla y producir un rendimiento aún mejor.
  56. ^ Wu, Hongjun; Preneel, Bart. "AEGIS: un algoritmo de cifrado rápidamente autenticado (v1.1)" (PDF) .
  57. ^ Denis, franco. "La familia AEGIS de algoritmos de cifrado autenticados". cfrg.github.io .

enlaces externos