AES instruktionsuppsättning

En Advanced Encryption Standard-instruktionsuppsättning är nu integrerad i många processorer. Syftet med instruktionsuppsättningen är att förbättra hastigheten och säkerheten för applikationer som utför kryptering och dekryptering med Advanced Encryption Standard ( AES).

De implementeras ofta som instruktioner som implementerar en enda omgång av AES tillsammans med en speciell version för den sista omgången som har en något annorlunda metod.

Sidokanalattackytan för AES reduceras när den implementeras i en instruktionsuppsättning, jämfört med när AES endast implementeras i programvara . [ citat behövs ]

x86-arkitekturprocessorer

AES-NI (eller Intel Advanced Encryption Standard New Instructions ; AES-NI ) var den första större implementeringen. AES-NI är en förlängning av x86 -instruktionsuppsättningsarkitekturen för mikroprocessorer från Intel och AMD som föreslogs av Intel i mars 2008.

Instruktioner

Instruktion Beskrivning
AESENC Utför en omgång av ett AES-krypteringsflöde
AESENCLAST Utför den sista omgången av ett AES-krypteringsflöde
AESDEC Utför en omgång av ett AES-dekrypteringsflöde
AESDECLAST Utför den sista omgången av ett AES-dekrypteringsflöde
AESKEYGENASSIST Assistera vid generering av AES runda nyckel
AESIMC Assistera i AES Inverse Mix Columns

Intel

Följande Intel- processorer stöder AES-NI-instruktionsuppsättningen:

  • Westmere- baserade processorer, specifikt:
    • Westmere-EP (alias Gulftown Xeon 5600-seriens DP-servermodell) processorer
    • Clarkdale- processorer (förutom Core i3, Pentium och Celeron)
    • Arrandale- processorer (förutom Celeron, Pentium, Core i3, Core i5-4XXM)
  • Sandy Bridge- processorer:
    • Desktop: alla utom Pentium, Celeron, Core i3
    • Mobil: alla Core i7 och Core i5. Flera leverantörer har levererat BIOS -konfigurationer med tillägget inaktiverat; en BIOS-uppdatering krävs för att aktivera dem.
  • Ivy Bridge- processorer
    • Endast alla i5, i7, Xeon och i3-2115C
  • Haswell -processorer (alla utom i3-4000m, Pentium och Celeron)
  • Broadwell -processorer (alla utom Pentium och Celeron)
  • Silvermont/Airmont- processorer (alla utom Bay Trail-D och Bay Trail-M)
  • Goldmont (och senare) processorer
  • Skylake (och senare) processorer

AMD

Flera AMD- processorer stöder AES-instruktioner:

Hårdvaruacceleration i andra arkitekturer

AES-stöd med oprivilegierade processorinstruktioner är också tillgängligt i de senaste SPARC- processorerna ( T3 , T4 , T5 , M5 och framåt) och i de senaste ARM- processorerna. SPARC T4- processorn, som introducerades 2011, har instruktioner på användarnivå som implementerar AES-rundor. Dessa instruktioner är utöver krypteringskommandon på högre nivå. ARMv8 -A- processorarkitekturen, som tillkännagavs 2011, inklusive ARM Cortex-A53 och A57 (men inte tidigare v7-processorer som Cortex A5, 7, 8, 9, 11, 15 [citat behövs]) har också instruktioner användarnivå som genomför AES-rundor.

Stöder x86-processorer

VIA x86-processorer , AMD Geode och Marvell Kirkwood (ARM, mv_cesa i Linux) använder istället drivrutinsbaserad accelererad AES-hantering. (Se Crypto API (Linux) .)

Följande chips stöder AES-hårdvaruacceleration, men stöder inte AES-NI:

ARM arkitektur

Programmeringsinformation finns tillgänglig i ARM Architecture Reference Manual ARMv8, för ARMv8-A arkitekturprofil (avsnitt A2.3 "The Armv8 Cryptographic Extension") .

  • ARMv8-A arkitektur
    • ARM kryptografiska tillägg som valfritt stöds på ARM Cortex-A30/50/70 kärnor
  • Kryptografiska hårdvaruacceleratorer/motorer

RISC-V-arkitektur

Medan RISC-V-arkitekturen inte inkluderar AES-specifika instruktioner, inkluderar ett antal RISC-V-chips integrerade AES-samprocessorer. Exempel inkluderar:

  • Dual-core RISC-V 64 bitar Sipeed-M1 stöder AES och SHA256.
  • RISC-V-arkitekturbaserad ESP32 -C (liksom Xtensa-baserad ESP32), stöder AES, SHA, RSA, RNG, HMAC, digital signatur och XTS 128 för flash.
  • Bouffalo Labs BL602/604 32-bitars RISC-V stöder olika AES- och SHA-varianter.

POWER arkitektur

Sedan Power ISA v.2.07 implementerar instruktionerna vcipher och vcipyherlast en omgång AES direkt.

IBM z/Arkitektur

IBM z9 eller senare stordatorprocessorer stöder AES som enkel opcode (KM, KMC) AES ECB/CBC-instruktioner via IBMs CryptoExpress-hårdvara. Dessa enkelinstruktions AES-versioner är därför enklare att använda än Intel NI-versioner, men kanske inte utökas för att implementera andra algoritmer baserade på AES-rundfunktioner (som Whirlpool- och Grøstl - hash-funktionerna).

Andra arkitekturer

  • Atmel XMEGA (på-chipaccelerator med parallell exekvering, inte en instruktion)
  • SPARC T3 och senare processorer har hårdvarustöd för flera kryptografiska algoritmer, inklusive AES.
  • Cavium Octeon MIPS Alla Cavium Octeon MIPS-baserade processorer har hårdvarustöd för flera kryptografiska algoritmer, inklusive AES som använder speciella coprocessor 3 instruktioner.

Prestanda

I AES-NI Performance Analyzed fann Patrick Schmid och Achim Roos "imponerande resultat från en handfull applikationer som redan är optimerade för att dra fördel av Intels AES-NI-kapacitet". En prestandaanalys med hjälp av Crypto++- säkerhetsbiblioteket visade en ökning av genomströmningen från cirka 28,0 cykler per byte till 3,5 cykler per byte med AES / GCM jämfört med en Pentium 4 utan acceleration. [ misslyckad verifiering ] [ bättre källa behövs ]

Stödprogramvara

De flesta moderna kompilatorer kan avge AES-instruktioner.

Mycket säkerhets- och kryptografiprogramvara stöder AES-instruktionsuppsättningen, inklusive följande anmärkningsvärda kärninfrastruktur:

En randanvändning av AES-instruktionsuppsättningen innebär att den används på blockchiffer med en liknande strukturerad S-box , med användning av affin isomorfism för att konvertera mellan de två. SM4 och Camellia har accelererats med AES-NI.

Se även

Anteckningar

externa länkar