Conjunt d'instruccions AES
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 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:
- Processadors Jaguar i més nous
- Processadors Puma i més nous
- Processadors "Equip Pesat".
- Processadors de bulldozer
- Processadors Piledriver
- Processadors Steamroller
- Processadors d'excavadores i més nous
- Processadors basats en Zen (i posteriors).
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
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]- ↑ «Intel Software Network» (en anglès). Intel. Arxivat de l'original el 7 abril 2008. [Consulta: 5 abril 2008].
- ↑ «Intel® Architecture Instruction Set Extensions and Future Features Programming Reference» (en anglès). Intel. [Consulta: 16 octubre 2017].
- ↑ Shay Gueron. «Intel Advanced Encryption Standard (AES) Instruction Set White Paper» (en anglès). Intel. [Consulta: 20 setembre 2012].
- ↑ «Intel Product Specification Advanced Search» (en anglès). Intel ARK.
- ↑ Dan Anderson. «SPARC T4 OpenSSL Engine» (en anglès). Oracle. [Consulta: 20 setembre 2012].
- ↑ Richard Grisenthwaite. «ARMv8-A Technology Preview» (en anglès). ARM. Arxivat de l'original el 2018-06-10. [Consulta: 20 setembre 2012].
- ↑ «Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile» (en anglès). ARM, 22-01-2021.