Conjunt d'instruccions AES

De la Viquipèdia, l'enciclopèdia lliure

Un conjunt d'instruccions AES (Advanced Encryption Standard) és un conjunt d'instruccions dissenyades específicament per realitzar operacions de xifratge i desxifrat AES de manera eficient. Aquestes instruccions es troben normalment als processadors moderns i poden accelerar molt les operacions AES en comparació amb les implementacions de programari. Un conjunt d'instruccions AES inclou instruccions per a l'expansió, el xifratge i el desxifrat de claus amb diferents mides de clau (128 bits, 192 bits i 256 bits).


El conjunt d'instruccions sovint s'implementa com un conjunt d'instruccions que poden realitzar una única ronda d'AES juntament amb una versió especial per a l'última ronda que té un mètode lleugerament diferent.

Quan AES s'implementa com a conjunt d'instruccions en lloc de programari, pot tenir una seguretat millorada, ja que la seva superfície d'atac del canal lateral es redueix.

Processadors d'arquitectura x86[modifica]

AES-NI (o l'estàndard Intel Advanced Encryption New Instructions; AES-NI) va ser la primera implementació important. AES-NI és una extensió de l'arquitectura del conjunt d'instruccions x86 per a microprocessadors d'Intel i AMD proposada per Intel el març de 2008.[1]

Una versió més àmplia d'AES-NI, AVX-512 Vector AES instructions (VAES) es troba a AVX-512.[2]

Instruccions[modifica]

Instrucció Descripció [3]
AESENC Realitzeu una ronda d'un flux de xifratge AES
AESENCLAST Realitzeu l'última ronda d'un flux de xifratge AES
AESDEC Realitzeu una ronda d'un flux de desxifrat AES
AESDECLAST Realitzeu l'última ronda d'un flux de desxifrat AES
AESKEYGENASSIST Ajuda a la generació de claus rodones AES
AESIMC Ajuda a la generació de claus rodones de desxifrat AES. Aplica columnes de mescla inversa a les tecles rodones.

Intel[modifica]

Els processadors Intel següents admeten el conjunt d'instruccions AES-NI: [4]

  • Processadors basats en Westmere, concretament:
    • Processadors Westmere-EP (també conegut com a model de servidor DP de la sèrie Gulftown Xeon 5600)
    • Processadors Clarkdale (excepte Core i3, Pentium i Celeron)
    • Processadors Arrandale (excepte Celeron, Pentium, Core i3, Core i5-4XXM)
  • Processadors Sandy Bridge :
    • Escriptori: tots excepte Pentium, Celeron, Core i3
    • Mòbil: tots els Core i7 i Core i5. Diversos venedors han enviat configuracions de BIOS amb l'extensió desactivada; Es requereix una actualització de la BIOS per activar-los.
  • Processadors Ivy Bridge
    • Només tots els i5, i7, Xeon i i3-2115C
  • Processadors Haswell (tots excepte i3-4000m, Pentium i Celeron)
  • Processadors Broadwell (tots excepte Pentium i Celeron)
  • Processadors Silvermont/Airmont (tots excepte Bay Trail-D i Bay Trail-M)
  • Processadors Goldmont (i posteriors).
  • Processadors Skylake (i posteriors).

AMD[modifica]

Diversos processadors AMD admeten instruccions AES:

Acceleració de maquinari en altres arquitectures[modifica]

El suport AES amb instruccions de processador sense privilegis també està disponible als processadors SPARC més recents (T3, T4, T5, M5 i posterior) i als processadors ARM més recents. El processador SPARC T4, introduït el 2011, té instruccions a nivell d'usuari que implementen rondes AES.[5] Aquestes instruccions s'afegeixen a les ordres de xifratge de nivell superior. L'arquitectura del processador ARMv8-A, anunciada el 2011, incloent l'ARM Cortex-A53 i A57 (però no els processadors v7 anteriors com el Cortex A5, 7, 8, 9, 11, 15) també tenen instruccions a nivell d'usuari que implementen rondes AES.[6]

Arquitectura ARM[modifica]

La informació de programació està disponible al Manual de referència de l'arquitectura ARM ARMv8, per al perfil d'arquitectura ARMv8-A (Secció A2.3 "L'extensió criptogràfica Armv8").[7]

El Marvell Kirkwood era el nucli incrustat d'una gamma de SoC de Marvell Technology, aquestes CPU SoC (ARM, mv_cesa a Linux) utilitzeu el maneig AES accelerat basat en controladors. (Vegeu Crypto API (Linux).

  • Arquitectura ARMv8-A
    • Les extensions criptogràfiques ARM admeten opcionalment els nuclis ARM Cortex-A30/50/70
  • Acceleradors/motors de maquinari criptogràfic
    • Allwinner
      • A10, A20, A30, A31, A80, A83T, H3 i A64 mitjançant el sistema de seguretat
    • Broadcom
      • BCM5801/BCM5805/BCM5820 utilitzant el processador de seguretat
    • NXP Semiconductors
      • i.MX6 en endavant
    • Qualcomm
      • Snapdragon 805 en endavant
    • Rockchip
      • Sèrie RK30xx en endavant
    • Samsung
      • Sèrie Exynos 3 en endavant

Arquitectura RISC-V[modifica]

Tot i que l'arquitectura RISC-V no inclou instruccions específiques d'AES, una sèrie de xips RISC-V inclouen coprocessadors AES integrats. Alguns exemples inclouen:

  • RISC-V de doble nucli Sipeed-M1 de 64 bits compatible amb AES i SHA256.
  • ESP32 -C basat en l'arquitectura RISC-V (així com ESP32 basat en Xtensa), admet AES, SHA, RSA, RNG, HMAC, signatura digital i XTS 128 per a flash.
  • Bouffalo Labs BL602/604 RISC-V de 32 bits admet diverses variants AES i SHA.

Referències[modifica]

  1. «Intel Software Network» (en anglès). Intel. Arxivat de l'original el 7 abril 2008. [Consulta: 5 abril 2008].
  2. «Intel® Architecture Instruction Set Extensions and Future Features Programming Reference» (en anglès). Intel. [Consulta: 16 octubre 2017].
  3. Shay Gueron. «Intel Advanced Encryption Standard (AES) Instruction Set White Paper» (en anglès). Intel. [Consulta: 20 setembre 2012].
  4. «Intel Product Specification Advanced Search» (en anglès). Intel ARK.
  5. Dan Anderson. «SPARC T4 OpenSSL Engine» (en anglès). Oracle. [Consulta: 20 setembre 2012].
  6. Richard Grisenthwaite. «ARMv8-A Technology Preview» (en anglès). ARM. Arxivat de l'original el 2018-06-10. [Consulta: 20 setembre 2012].
  7. «Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile» (en anglès). ARM, 22-01-2021.