Sada instrukcí AES - AES instruction set
An Sada instrukcí Advanced Encryption Standard je nyní integrován do mnoha procesorů. Účelem sady instrukcí je zlepšit rychlost (stejně jako odolnost vůči útoky postranními kanály ) aplikací provádějících šifrování a dešifrování pomocí Advanced Encryption Standard (AES). Často jsou implementovány jako pokyny implementující jedno kolo AES spolu se speciální verzí pro poslední kolo, která má mírně odlišnou metodu.
procesory architektury x86
AES-NI (nebo Intel Advanced Encryption Standard Nové pokyny; AES-NI) byla první významnější implementací. AES-NI je rozšíření k x86 architektura sady instrukcí pro mikroprocesory z Intel a AMD společnost Intel navrhla v březnu 2008.[1]
Instrukce
Návod | Popis[2] |
---|---|
AESENC | Proveďte jedno kolo toku šifrování AES |
AESENCLAST | Proveďte poslední kolo toku šifrování AES |
AESDEC | Proveďte jedno kolo dešifrovacího toku AES |
AESDECLAST | Proveďte poslední kolo dešifrovacího toku AES |
AESKEYGENASSIST | Pomáhat při generování kulatých klíčů AES[poznámka 1] |
AESIMC | Pomáhat v AES Sloupce inverzní směsi |
Intel
Následující Intel procesory podporují instrukční sadu AES-NI:[3]
- Westmere založené na procesorech, konkrétně:
- Sandy Bridge procesory:
- most z břečťanu procesory
- Všechny i5, i7, Xeon a i3-2115C[8] pouze
- Haswell procesory (všechny kromě i3-4000m,[9] Pentium a Celeron)
- Broadwell procesory (všechny kromě Pentium a Celeron)
- Silvermont / Airmont procesory (všechny kromě Bay Trail-D a Bay Trail-M)
- Goldmont (a novější) procesory
- Skylake (a novější) procesory
AMD
Několik AMD procesory podporují pokyny AES:
- Jaguár procesory a novější
- Puma procesory a novější
- Procesory „Heavy Equipment“
- Buldozer procesory[10]
- Piledriver procesory
- Parní válec procesory
- Rypadlo procesory a novější
- Zen (a novější) založené procesory
Hardwarová akcelerace v jiných architekturách
Podpora AES s neprivilegovanými instrukcemi procesoru je k dispozici také v nejnovějších verzích SPARC procesory (T3, T4, T5, M5 a vpřed) a nejnovější PAŽE procesory. The SPARC T4 procesor, který byl zaveden v roce 2011, má pokyny na úrovni uživatele implementující kola AES.[11] Tyto pokyny jsou navíc k vyšším šifrovacím příkazům. The ARMv8-A architektura procesorů, ohlášená v roce 2011, včetně ARM Cortex-A53 a A57 (ale ne předchozí procesory v7 jako Cortex A5, 7, 8, 9, 11, 15[Citace je zapotřebí ]) mají také pokyny na úrovni uživatele, které implementují kola AES.[12] V srpnu 2012 IBM oznámil[13] že pak nastávající Power7 + architektura by měla podporu AES. Příkazy v těchto architekturách nejsou přímo ekvivalentní příkazům AES-NI, ale implementují podobné funkce.
Sálové procesory IBM z9 nebo novější podporují AES jako instrukce AES ECB / CBC s jedním operačním kódem (KM, KMC) prostřednictvím hardwaru IBM CryptoExpress.[14] Tyto verze AES s jednou instrukcí se proto používají snadněji než verze Intel NI, ale nemusí být rozšířeny tak, aby implementovaly další algoritmy založené na kulatých funkcích AES (například vířivá vana a Grøstl hash funkce).
Podpora procesorů x86
Procesory VIA x86, AMD Geode, a Marvell Kirkwood (ARM, mv_cesa v Linuxu) místo toho používají akcelerovanou manipulaci s AES založenou na ovladači. (Vidět Crypto API (Linux).)
Následující čipy podporují hardwarovou akceleraci AES, ale nepodporují AES-NI:
ARM architektura
Programovací informace jsou k dispozici v Referenční příručka architektury ARM ARMv8, pro profil architektury ARMv8-A (část A2.3 „Kryptografická přípona Armv8“).[20]
- ARMv8-A architektura
- Kryptografická rozšíření ARM volitelně podporována na jádrech ARM Cortex-A30 / 50/70
- Kryptografické hardwarové akcelerátory / motory
Architektura RISC-V
- Dvoujádrový RISC-V 64 bitů Sipeed-M1 podporuje AES a SHA256.[26]
- Na základě architektury RISC-V ESP32 -C (ne Xtensa jako ESP32), podpora AES, SHA, RSA, RNG, HMAC, digitální podpis a XTS 128 pro blesk.[27]
Jiné architektury
- Atmel XMEGA[28] (on-chip accelerator with parallel execution, not an instruction)
- SPARC T3 a novější procesory mají hardwarovou podporu pro několik kryptografických algoritmů, včetně AES.
- Cavium Octeon MIPS[29] Všechny procesory založené na technologii Cavium Octeon MIPS mají hardwarovou podporu pro několik kryptografických algoritmů, včetně AES pomocí speciálních instrukcí koprocesoru 3.
Výkon
v Analyzován výkon AES-NI, Patrick Schmid a Achim Roos našli „působivé výsledky z několika aplikací již optimalizovaných pro využití výhod Intel AES-NI“.[30] Analýza výkonu pomocí Crypto ++ bezpečnostní knihovna ukázaly zvýšení propustnosti z přibližně 28,0 cyklů na bajt na 3,5 cyklů na bajt s AES /GCM versus a Pentium 4 bez zrychlení.[31][32][ověření se nezdařilo ][je zapotřebí lepší zdroj ]
Podpůrný software
Většina moderních překladačů může vydávat pokyny AES.
Hodně bezpečnostního a kryptografického softwaru podporuje instrukční sadu AES, včetně následující základní infrastruktury:
- Apple FileVault 2 šifrování celého disku v Operační Systém Mac 10.10+
- Nepřetržitě SSH2, NonStop cF SSL Knihovna a BackBox Software VTC v Řada HPE Tandem NonStop OS L.[33][34][35]
- Kryptografické API: Nová generace (CNG) (vyžaduje Windows 7)[36]
- Linuxové krypto API
- Jáva 7 HotSpot
- Služby zabezpečení sítě (NSS) verze 3.13 a vyšší[37] (používá Firefox a Google Chrome )
- Kryptografický rámec Solaris[38] na Solaris 10 dále
- FreeBSD OpenCrypto API (ovladač aesni (4))[39]
- OpenSSL 1.0.1 a vyšší[40]
- GnuTLS[41]
- Libsodium[42]
- FLAM / FLUC 5.1.08 (vydáno 2015-08-24) a vyšší[43]
- VeraCrypt[44]
- GoLang[45]
- BitLocker[46]
Viz také
- Pokročilá vektorová rozšíření (AVX)
- Sada instrukcí CLMUL
- Sada instrukcí FMA (FMA3, FMA4)
RDRAND
Poznámky
- ^ Instrukce počítá 4 paralelní subexprese Klíčové rozšíření AES na 4 32bitová slova ve dvojitém čtyřslově (aka registr SSE) na bitech X [127: 96] pro a X [63:32] pro pouze. Dvě paralelní Střídání AES S-boxu a se používají v AES-256 a 2 dílčích výrazech a jsou používány v AES-128, AES-192, AES-256.
Reference
- ^ „Softwarová síť Intel“. Intel. Archivovány od originál dne 7. dubna 2008. Citováno 2008-04-05.
- ^ Shay Gueron (2010). „Bílá kniha s instrukční sadou Intel Advanced Encryption Standard (AES)“ (PDF). Intel. Citováno 2012-09-20.
- ^ "Specifikace produktu Intel Rozšířené hledání". Intel ARK.
- ^ Shimpi, Anand Lal. „Recenze Sandy Bridge: Testovány Intel Core i7-2600K, i5-2500K a Core i3-2100“.
- ^ „Porovnání specifikace produktu Intel“.
- ^ „Podpora AES-NI v TrueCrypt (problém Sandy Bridge)“.
- ^ „Některé produkty mohou podporovat nové pokyny AES s aktualizací konfigurace procesoru, zejména i7-2630QM / i7-2635QM, i7-2670QM / i7-2675QM, i5-2430M / i5-2435M, i5-2410M / i5-2415M. kontaktujte výrobce OEM ohledně systému BIOS, který obsahuje nejnovější aktualizaci konfigurace procesoru ".
- ^ „Procesor Intel Core i3-2115C (mezipaměť 3M, 2,00 GHz) Specifikace produktu“.
- ^ „Procesor Intel Core i3-4000M (mezipaměť 3M, 2,40 GHz) Specifikace produktu“.
- ^ „Dodržování pokynů“. AMD. 22. listopadu 2010. Archivovány od originál 26. listopadu 2010. Citováno 2011-01-04.
- ^ Dan Anderson (2011). „Motor SPARC T4 OpenSSL“. Věštec. Citováno 2012-09-20.
- ^ Richard Grisenthwaite (2011). „Náhled technologie ARMv8-A“ (PDF). PAŽE. Archivovány od originál (PDF) dne 10.06.2018. Citováno 2012-09-20.
- ^ Timothy Prickett Morgan (2012). „Celá omáčka na horkém čipu Big Blue: Více o Power7 +“. Registrace. Citováno 2012-09-20.
- ^ „Kryptografie systému IBM System z10“. IBM. Citováno 2014-01-27.
- ^ „Technické specifikace řady procesorů AMD Geode LX“. AMD.
- ^ „Bezpečnostní modul VIA Padlock“. PŘES. Citováno 2011-11-14.
- ^ A b Kryptografické hardwarové akcelerátory na OpenWRT.org
- ^ "Procesory VIA Eden-N". PŘES. Archivovány od originál dne 11.11.2011. Citováno 2011-11-14.
- ^ „Procesory VIA C7“. PŘES. Citováno 2011-11-14.
- ^ „ARM Architecture Reference Manual ARMv8, pro profil architektury ARMv8-A“ (PDF). PAŽE. 5. července 2019.
- ^ "Stav bezpečnostního systému / krypto enginu". sunxi.montjoie.ovh.
- ^ „Linux Cryptographic Acceleration on an i.MX6“ (PDF). Linux Foundation. Únor 2017. Archivovány od originál (PDF) dne 26. 8. 2019. Citováno 2018-05-02.
- ^ „Kryptografický modul v Snapdragonu 805 je certifikován FIPS 140-2“. Qualcomm.
- ^ "RK3128 - Rockchip Wiki". Rockchip wiki. Archivovány od originál dne 2019-01-28. Citováno 2018-05-02.
- ^ „Hluboký ponor Samsung Exynos 7420 - v moderním 14nm SoC“. AnandTech.
- ^ „Sipeed M1 - integrovaná platforma AI pro Edge Computing“. elektronika-lab.com. 2018-11-27. Citováno 2020-11-22.
- ^ „Procesor ESP32-C3 WiFi a BLE RISC-V je pin-to-pin kompatibilní s ESP8266“. Software CNX. Citováno 2020-11-22.
- ^ „Používání integrovaného akcelerátoru AES XMEGA“ (PDF). Citováno 2014-12-03.
- ^ „Cavium Networks uvádí na trh nejširší řadu jedno a dvoujádrových procesorů OCTEON ™ založených na MIPS64® zaměřených na inteligentní sítě příští generace“. Archivovány od originál dne 2017-12-07. Citováno 2016-09-17.
- ^ P. Schmid a A. Roos (2010). „Analyzován výkon AES-NI“. Tomův hardware. Citováno 2010-08-10.
- ^ T. Krovetz, W. Dai (2010). „Jak získat rychlé volání AES?“. Skupina uživatelů Crypto ++. Citováno 2010-08-11.
- ^ „Benchmarky Crypto ++ 5.6.0 Pentium 4“. Web Crypto ++. 2009. Archivováno z původního dne 19. září 2010. Citováno 2010-08-10.
- ^ „NonStop SSH Reference Manual“. Citováno 2020-04-09.
- ^ "Referenční příručka knihovny NonStop cF SSL". Citováno 2020-04-09.
- ^ „Možnost šifrování pásky BackBox H4.08Tape“. Citováno 2020-04-09.
- ^ „Intel Advanced Encryption Standard Instructions (AES-NI)“. Intel. 2. března 2010. Archivováno z původního dne 7. července 2010. Citováno 2010-07-11.
- ^ „Vylepšení AES-NI pro NSS v systémech Sandy Bridge“. 2012-05-02. Citováno 2012-11-25.
- ^ „Průvodce správou systému: Bezpečnostní služby, Kapitola 13 Kryptografický rámec Solaris (přehled)“. Věštec. Září 2010. Citováno 2012-11-27.
- ^ „Poznámky k verzi FreeBSD 8.2“. FreeBSD.org. 2011-02-24. Citováno 2011-12-18.
- ^ OpenSSL: webové rozhraní CVS
- ^ „Kryptografický backend (GnuTLS 3.6.14)“. gnutls.org. Citováno 2020-06-26.
- ^ „AES-GCM v libsodiu“. libsodium.org.
- ^ "www.flam.de :: Výrobky". flam.de.
- ^ "Hardwarová akcelerace". www.veracrypt.fr.
- ^ „aes - programovací jazyk Go“. golang.org. Citováno 2020-06-26.
- ^ Shimpi, Anand Lal. „Recenze Clarkdale: Intel Core i5 661, i3 540 a i3 530“. www.anandtech.com. Citováno 2020-06-26.
externí odkazy
- Standardní pokyny pro pokročilé šifrování Intel (AES-NI)
- Dokument s instrukční sadou AES (2,93 MiB, PDF) od společnosti Intel