Set de instrucțiuni AES

Setul de instrucțiuni AES (cunoscut și ca Intel Advanced Encryption Standard New Instructions  ; AES-NI ) este o extensie a setului de instrucțiuni de arhitectură x86 pentru microprocesoarele Intel și AMD, oferite de Intel înMartie 2008. Scopul acestui set de instrucțiuni este de a accelera aplicațiile care efectuează operațiuni de criptare și decriptare folosind Advanced Encryption Standard (AES).

Instrucțiuni noi

Instrucțiuni Descriere
AESENC Efectuează un tur de criptare AES
AESENCLAST Efectuați ultima rundă de criptare AES
AESDEC Efectuați un tur de decriptare AES
AESDECLAST Efectuați ultima rundă de decriptare AES
AESKEYGENASSIST Ajutați la generarea de chei turn AES
AESIMC Ajutați la operațiunea Coloane de amestecare inversă
PCLMULQDQ Carry-Less Multiplication ( CLMUL ).

Arhitecturi Intel și AMD x86

Accelerare hardware pe alte arhitecturi

Accelerarea AES este disponibilă prin instrucțiuni neprivilegiate pe procesoarele SPARC recente (T4, T5, M6 și versiuni ulterioare) și ARM. Procesorul SPARC T4, disponibil din 2011, are instrucțiuni de utilizare care efectuează trucuri ale AES. Aceste instrucțiuni sunt în plus față de alte comenzi de criptare de nivel superior. Arhitectura ARMv8-A , anunțată în 2011, care include procesoare ARM Cortex-A53 și A57 (dar nu procesoare v7 mai vechi, cum ar fi Cortex A5,7,8,9,11,15) au, de asemenea, un set de instrucțiuni de utilizare Trucuri AES. ÎnAugust 2012, IBM a anunțat că viitoarea sa arhitectură Power7 + va avea suport hardware AES. Instrucțiunile pentru toate aceste arhitecturi nu sunt direct compatibile cu instrucțiunile AES-NI, dar oferă funcționalități similare.

Mainframe-urile IBM z9 și ulterioare efectuează criptarea AES ECB sau CBC într-o singură instrucțiune (KM, KMC), utilizând coprocesorul IBM Crypto Express. Aceste instrucțiuni sunt de fapt mai ușor de utilizat decât instrucțiunile AES-NI, dar nu pot fi utilizate pentru a accelera alți algoritmi care se bazează pe funcțiile turnului AES (cum ar fi funcția hash Whirlpool ).

Procesoare x86 acceptate

Accelerarea AES pe procesoarele VIA x86 , AMD Geode și Marvell Kirkwood (ARM, mv_cesa sub Linux) necesită utilizarea unui driver dedicat. Următoarele cipuri oferă accelerare hardware pentru AES, dar nu acceptă setul de instrucțiuni AES-NI:

Arhitectura ARM

Arhitectura ARMv8 pe 64 de biți include o extensie criptografică opțională la setul său avansat de instrucțiuni bazat pe SIMD, care acceptă criptarea și decriptarea AES, precum și SHA-1, SHA-224 și SHA-256. Este prezent în mod special în Rockchip RK3399 .

Cortex-A53 adaugă A64, A32 și T32 la baza ARMv8 modulul de criptare.

RISC-V

În ceea ce privește arhitectura RISC-V  :

Alte arhitecturi

Performanţă

În AES-NI Performance Analyzed , Patrick Schmid și Achim Roos au remarcat „rezultate impresionante în aplicații deja optimizate pentru a profita de posibilitățile oferite de AES-NI”. O analiză de performanță a bibliotecii Crypto ++ a măsurat că viteza de criptare pentru AES în modul GCM a crescut de la 28,0 cicluri pe octet pe un Pentium 4 fără accelerare la 3,5 cicluri pe octet.

Suport software

Majoritatea compilatoarelor moderne pot genera instrucțiuni AES.

Multe programe de securitate și criptografice folosesc setul de instrucțiuni AES. Aceasta include următoarele componente software:

Note și referințe

  1. „Intel Software Network” ( Internet Archive version 7 April 2008 ) , Intel
  2. Shay Gueron, „  Cartea albă a setului de instrucțiuni Intel Advanced Encryption Standard (AES)  ” , Intel,2010(accesat la 20 septembrie 2012 )
  3. „  Carry-Less Multiplication  ” , Intel
  4. ARK: Căutare avansată
  5. AnandTech - Revizuirea Sandy Bridge: Testat Intel Core i7-2600K, i5-2500K și Core i3-2100
  6. Comparați produsele Intel®
  7. Suport AES-NI în TrueCrypt (problema Sandy Bridge)
  8. „  Unele produse pot accepta noile instrucțiuni AES cu o actualizare a configurației procesorului, în special, i7-2630QM / i7-2635QM, i7-2670QM / i7-2675QM, i5-2430M / i5-2435M, i5-2410M / i5-2415M. Vă rugăm să contactați OEM pentru BIOS-ul care include cea mai recentă actualizare a configurației procesorului.  » , Pe ark.intel.com
  9. [1]
  10. (în) „  Procesor Intel® Core ™ i3-4000M (3M Cache, 2,40 GHz) Specificații produs  ” pe intel.com (accesat la 23 septembrie 2020 ) .
  11. Căutare avansată privind caracteristicile produsului
  12. „Urmând instrucțiunile” (versiunea din 26 noiembrie 2010 pe Internet Archive ) , AMD,22 noiembrie 2010
  13. Dan Anderson, „  SPARC T4 OpenSSL Engine  ” , Oracle,2011(accesat la 20 septembrie 2012 )
  14. Richard Grisenthwaite, „  ARMv8-A Technology Preview  ” , ARM,2011(accesat la 20 septembrie 2012 )
  15. Timothy Prickett Morgan, „  Tot sosul pe cipul fierbinte al lui Big Blue: Mai multe despre Power7 +  ” , The Register,2012(accesat la 20 septembrie 2012 )
  16. „  Criptografie IBM System z10  ” , IBM (accesat la 27 ianuarie 2014 )
  17. „  Specificații tehnice ale familiei de procesoare AMD Geode ™ LX  ” , AMD
  18. „  VIA Padlock Security Engine  ” , VIA (accesat la 14 noiembrie 2011 )
  19. Acceleratoare hardware criptografice pe OpenWRT.org
  20. „  Procesoare VIA Eden-N  ” , VIA (accesat la 14 noiembrie 2011 )
  21. „  Procesoare VIA C7  ” , VIA (accesat la 14 noiembrie 2011 )
  22. Starea driverului sistemului de securitate
  23. „  ARM® Cortex®-A53 MPCore ProcessorCryptography Extension  “ , la ARM.com
  24. „  Foaie de date RK3399 V1.8  ” , pe Rockchip.fr
  25. (în) „  Sipeed M1 - o platformă de calcul încorporată AI pentru Edge  ” pe electronic-lab.com ,27 noiembrie 2018
  26. (ro) Jean-Luc Aufranc, „  Procesorul ESP32-C3 WiFi & BLE RISC-V este compatibil pin-to-pin cu ESP8266  ” pe CNX-Software ,22 noiembrie 2020
  27. „  Utilizarea acceleratorului AES încorporat XMEGA  ” , la atmel.com (accesat la 3 decembrie 2014 )
  28. P. Schmid și A. Roos, „  AES-NI Performance Analyzed  ” , Tom's Hardware,2010(accesat la 10 august 2010 )
  29. T. Krovetz și W. Dai, „  Cum să obțineți apeluri rapide AES?  " , Grup de utilizatori Crypto ++ ,2010(accesat la 11 august 2010 )
  30. „Crypto ++ 5.6.0 Pentium 4 Benchmarks” (versiune din 19 septembrie 2010 pe Arhiva Internet )
  31. "Instrucțiuni standard de criptare avansată Intel (AES-NI)" (versiunea Internet Archive 7 iulie 2010 ) , Intel,2 martie 2010
  32. „  Îmbunătățiri AES-NI la NSS pe sistemele Sandy Bridge  ” , la bugzilla.mozilla.org ,2 mai 2012(accesat la 25 noiembrie 2012 )
  33. „  Ghid de administrare a sistemului: Servicii de securitate, Capitolul 13 Criptografic Solaris Framework (Prezentare generală)  ” , Oracle,septembrie 2010(accesat la 27 noiembrie 2012 )
  34. „  Note de lansare FreeBSD 8.2  ” , FreeBSD.org,24 februarie 2011(accesat la 18 decembrie 2011 )
  35. OpenSSL: Interfață web CVS

Vezi și tu

Articole similare

linkuri externe