AES 명령 세트

AES instruction set

Advanced Encryption Standard 명령 세트가 많은 프로세서에 통합되었습니다.명령 세트의 목적은 Advanced Encryption Standard(AES)를 사용하여 암호화 및 복호화를 수행하는 애플리케이션의 속도와 보안을 향상시키는 것입니다.

이들은 종종 AES의 단일 라운드를 구현하기 위한 지침으로 구현되며, 마지막 라운드의 특수 버전은 약간 다른 방식을 사용합니다.

AES의 사이드 채널 공격면은 AES가 소프트웨어에서만 [citation needed]구현되는 경우와 비교하여 명령 세트에 구현되는 경우 감소합니다.

x86 아키텍처 프로세서

AES-NI(인텔 Advanced Encryption Standard New Instructions; AES-NI)는 최초의 주요 구현입니다.AES-NI는 인텔이 2008년 [1]3월에 제안한 인텔 및 AMD 마이크로프로세서용 x86 명령 세트 아키텍처의 확장입니다.

지침들

설명 설명[2]
AESENC AES 암호화 흐름의 1라운드 실행
AESENCLAST AES 암호화 흐름의 마지막 라운드를 수행합니다.
AESDEC AES 복호화 흐름의 1라운드 실행
AESDECLAST AES 복호화 흐름의 마지막 라운드를 수행합니다.
AESKEYGENASSIST AES 라운드 키 생성[note 1] 지원
AESIMC AES Inverse Mix 컬럼 지원

인텔(R)

다음의 인텔 프로세서는, AES-NI 명령 [3]세트를 서포트하고 있습니다.

  • Westmere 기반 프로세서, 구체적으로는 다음과 같습니다.
    • Westmere-EP(일명 Westmere-EP)Gulftown Xeon 5600 시리즈 DP 서버 모델) 프로세서
    • Clarkdale 프로세서 (Core i3, Pentium 및 Celeron 제외)
    • Arrandale 프로세서 (Celeron, Pentium, Core i3, Core i5-4XM 제외)
  • Sandy Bridge 프로세서:
    • 데스크톱: Pentium, Celeron, Core i3를[4][5] 제외한 모든 것
    • 모바일: 모든 Core i7 및 Core i5.일부 벤더는 확장을 무효로 [6]한 BIOS 구성을 출하하고 있습니다.[7]이러한 구성을 유효하게 하려면 BIOS 업데이트가 필요합니다.
  • Ivy Bridge 프로세서
    • 모든 i5, i7, Xeon 및 i3-2115C만[8] 해당
  • Haswell 프로세서 (i3-4000m,[9] Pentium 및 Celeron 제외)
  • Broadwell 프로세서 (Pentium 및 Celeron 제외)
  • Silvermont/Airmont 프로세서(Bay Trail-D 및 Bay Trail-M 제외)
  • Goldmont (및 그 이후)프로세서
  • Skylake(및 그 이후) 프로세서

AMD

가지 AMD 프로세서가 AES 명령을 지원합니다.

다른 아키텍처에서의 하드웨어 액셀러레이션

권한 없는 프로세서 명령을 사용한 AES 지원은 최신 SPARC 프로세서(T3, T4, T5, M5 및 Forward) 및 최신 ARM 프로세서에서도 사용할 수 있습니다.2011년에 도입된 SPARC T4 프로세서에는 AES [11]라운드를 구현하는 사용자 수준의 명령이 포함되어 있습니다.이러한 순서는, 보다 고도의 암호화 커맨드에 가세하고 있습니다.ARM Cortex-A53 및 A57을 포함한 ARMv8-A 프로세서 아키텍처(단, Cortex A5, 7, 8, 9, 11, 15[citation needed] 등의 이전 v7 프로세서에는 AES [12]라운드를 구현하는 사용자 수준의 명령도 포함되어 있습니다.

x86 CPU 지원

VIA x86 CPU, AMD GeodeMarvell Kirkwood(Linux의 경우 ARM, mv_cesa)는 대신 드라이버 기반 가속 AES 처리를 사용합니다.(Crypto API(Linux) 참조).

다음 칩은 AES 하드웨어 액셀러레이션을 지원하지만 AES-NI를 지원하지 않습니다.

ARM 아키텍처

프로그래밍 정보는 ARMv8-A 아키텍처 프로파일에 대한 ARM 아키텍처 레퍼런스 매뉴얼 ARMv8에서 확인할 수 있습니다(섹션 A2.3 "Armv8 암호화 확장").[18]

  • ARMv8-A 아키텍처
    • ARM 암호화 확장 기능은 옵션으로 ARM Cortex-A30/50/70 코어에서 지원
  • 암호화 하드웨어 액셀러레이터/엔진

RISC-V 아키텍처

RISC-V 아키텍처에는 AES 고유의 명령어가 포함되어 있지 않지만, 많은 RISC-V 칩에는 내장 AES 공동 프로세서가 포함되어 있습니다.예를 들어 다음과 같습니다.

  • 듀얼코어 RISC-V 64비트 Siped-M1은 AES 및 SHA256을 [24]지원합니다.
  • RISC-V 아키텍처 기반 ES32-C 및 Xtensa 기반[25] ESP32는 [26]AES, SHA, RSA, RNG, HMAC, 디지털 서명 및 플래시용 XTS 128을 지원합니다.
  • Bouffalo Labs BL602/604 32비트 RISC-V는 다양한 AES [27]및 SHA 모델을 지원합니다.

POWER 아키텍처

파워 이후_ISA_v.2.07, 순서vcipher그리고.vcipyherlast1라운드의 AES를 직접 [28]실장합니다.

IBM z/아키텍처

IBM z9 이상의 메인프레임 프로세서는 IBM의 CryptoExpress [29]하드웨어를 통해 AES를 단일 운영 코드(KMC) AES ECB/CBC 명령으로 지원합니다.따라서 이러한 단일 명령 AES 버전은 인텔 NI 버전보다 사용하기 쉽지만 AES 라운드 함수(월풀Gröstl 해시 함수 등)에 기반한 다른 알고리즘을 구현하도록 확장되지 않을 수 있습니다.

기타 아키텍처

  • Atmel XMEGA[30](명령어가 아닌 병렬 실행 온칩액셀러레이터)
  • SPARC T3 이후의 프로세서에서는, AES 를 포함한 몇개의 암호화 알고리즘이 하드웨어로 서포트되고 있습니다.
  • Cavium Octeon[31] MIPS 모든 Cavium Octeon MIPS 기반 프로세서는 특별한 코프로세서3 명령을 사용하는 AES를 포함한 여러 암호화 알고리즘을 하드웨어로 지원합니다.

성능

AES-NI Performance Analysis에서 Patrick Schmid와 Achim Roos는 "인텔의 AES-NI 기능을 [32]활용하도록 이미 최적화된 소수의 애플리케이션에서 인상적인 결과를 얻었습니다."Crypto++ 보안 라이브러리를 사용한 퍼포먼스 분석 결과,[33][34][failed verification][better source needed] AES/GCM을 사용하는 경우 약 28.0 사이클에서 3.5 사이클로 throughput이 증가하여 가속 기능이 없는 Pentium 4에 비해 증가했습니다.

지원 소프트웨어

대부분의 최신 컴파일러는 AES 명령을 내보낼 수 있습니다.

많은 보안 및 암호화 소프트웨어는 다음과 같은 주요 핵심 인프라스트럭처를 포함하여 AES 명령 세트를 지원합니다.

AES 명령어 세트의 프린지 사용에는, 같은 구조의 S박스를 가지는 블록 암호에 AES 명령어를 사용하고, 아핀 동형성을 사용해 양자간에 변환하는 것이 포함됩니다.SM4Camelia[48][49]AES-NI를 사용하여 가속되었습니다.

「 」를 참조해 주세요.

메모들

  1. ^ 이 명령은 32비트 워드 4개에 대한 AES 키 확장의 병렬 하위 표현식 4개를 비트 X[127:96](i { i}의경우) 및 X[63:32](i { i 에만)의 이중 쿼드워드(SSE 레지스터라고도 함)로 계산합니다.2개의 병렬 AES S박스 ( ) { } = 2 ( ){ 2} = AES {3} 에서 사용됩니다.} 및 Y 3 Ro d ( u r ( X ) r r c r c n ( \ _ {3} =(( } ) \ 、 AES-192 )\ 、 d d d d d d d d d d d d d d d d d d d d d d d d d d d Rconn

레퍼런스

  1. ^ "Intel Software Network". Intel. Archived from the original on 7 April 2008. Retrieved 2008-04-05.
  2. ^ Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Retrieved 2012-09-20.
  3. ^ "Intel Product Specification Advanced Search". Intel ARK.
  4. ^ Shimpi, Anand Lal. "The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested".
  5. ^ "Intel Product Specification Comparison".
  6. ^ "AES-NI support in TrueCrypt (Sandy Bridge problem)".
  7. ^ "Some products can support AES New Instructions with a Processor Configuration update, in particular, i7-2630QM/i7-2635QM, i7-2670QM/i7-2675QM, i5-2430M/i5-2435M, i5-2410M/i5-2415M. Please contact OEM for the BIOS that includes the latest Processor configuration update".
  8. ^ "Intel Core i3-2115C Processor (3M Cache, 2.00 GHz) Product Specifications".
  9. ^ "Intel Core i3-4000M Processor (3M Cache, 2.40 GHz) Product Specifications".
  10. ^ "Following Instructions". AMD. November 22, 2010. Archived from the original on November 26, 2010. Retrieved 2011-01-04.
  11. ^ Dan Anderson (2011). "SPARC T4 OpenSSL Engine". Oracle. Retrieved 2012-09-20.
  12. ^ Richard Grisenthwaite (2011). "ARMv8-A Technology Preview" (PDF). ARM. Archived from the original (PDF) on 2018-06-10. Retrieved 2012-09-20.
  13. ^ "AMD Geode LX Processor Family Technical Specifications". AMD.
  14. ^ "VIA Padlock Security Engine". VIA. Retrieved 2011-11-14.
  15. ^ a b OpenWRT.org 암호화 하드웨어 액셀러레이터
  16. ^ "VIA Eden-N Processors". VIA. Archived from the original on 2011-11-11. Retrieved 2011-11-14.
  17. ^ "VIA C7 Processors". VIA. Retrieved 2011-11-14.
  18. ^ "Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile". ARM. 22 January 2021.
  19. ^ "Security System/Crypto Engine driver status". sunxi.montjoie.ovh.
  20. ^ "Linux Cryptographic Acceleration on an i.MX6" (PDF). Linux Foundation. February 2017. Archived from the original (PDF) on 2019-08-26. Retrieved 2018-05-02.
  21. ^ "Cryptographic module in Snapdragon 805 is FIPS 140-2 certified". Qualcomm.
  22. ^ "RK3128 - Rockchip Wiki". Rockchip wiki. Archived from the original on 2019-01-28. Retrieved 2018-05-02.
  23. ^ "The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC". AnandTech.
  24. ^ "Sipeed M1 Datasheet v1.1" (PDF). kamami.pl. 2019-03-06. Retrieved 2021-05-03.
  25. ^ "ESP32 Series Datasheet" (PDF). www.espressif.com. 2021-03-19. Retrieved 2021-05-03.
  26. ^ "ESP32-C3 WiFi & BLE RISC-V processor is pin-to-pin compatible with ESP8266". CNX-Software. Retrieved 2020-11-22.
  27. ^ "BL602-Bouffalo Lab (Nanjing) Co., Ltd". www.bouffalolab.com. Retrieved 2021-05-03.
  28. ^ "Power ISA™ Version 2.07 B". Retrieved 2022-01-07.
  29. ^ "IBM System z10 cryptography". IBM. Retrieved 2014-01-27.
  30. ^ "Using the XMEGA built-in AES accelerator" (PDF). Retrieved 2014-12-03.
  31. ^ "Cavium Networks Launches Industry's Broadest Line of Single and Dual Core MIPS64-based OCTEON Processors Targeting Intelligent Next Generation Networks". Archived from the original on 2017-12-07. Retrieved 2016-09-17.
  32. ^ P. Schmid and A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Retrieved 2010-08-10.
  33. ^ T. Krovetz, W. Dai (2010). "How to get fast AES calls?". Crypto++ user group. Retrieved 2010-08-11.
  34. ^ "Crypto++ 5.6.0 Pentium 4 Benchmarks". Crypto++ Website. 2009. Archived from the original on 19 September 2010. Retrieved 2010-08-10.
  35. ^ "NonStop SSH Reference Manual". Retrieved 2020-04-09.
  36. ^ "NonStop cF SSL Library Reference Manual". Retrieved 2020-04-09.
  37. ^ "BackBox H4.08Tape Encryption Option". Retrieved 2020-04-09.
  38. ^ "Intel Advanced Encryption Standard Instructions (AES-NI)". Intel. March 2, 2010. Archived from the original on 7 July 2010. Retrieved 2010-07-11.
  39. ^ "AES-NI enhancements to NSS on Sandy Bridge systems". 2012-05-02. Retrieved 2012-11-25.
  40. ^ "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27.
  41. ^ "FreeBSD 8.2 Release Notes". FreeBSD.org. 2011-02-24. Archived from the original on 2011-04-12. Retrieved 2011-12-18.
  42. ^ OpenSSL: CVS 웹 인터페이스
  43. ^ "Cryptographic Backend (GnuTLS 3.6.14)". gnutls.org. Retrieved 2020-06-26.
  44. ^ "AES-GCM in libsodium". libsodium.org.
  45. ^ "Hardware Acceleration". www.veracrypt.fr.
  46. ^ "aes - The Go Programming Language". golang.org. Retrieved 2020-06-26.
  47. ^ Shimpi, Anand Lal. "The Clarkdale Review: Intel's Core i5 661, i3 540 & i3 530". www.anandtech.com. Retrieved 2020-06-26.
  48. ^ Saarinen, Markku-Juhani O. (17 April 2020). "mjosaarinen/sm4ni: Demonstration that AES-NI instructions can be used to implement the Chinese Encryption Standard SM4". GitHub.
  49. ^ Kivilinna, Jussi (2013). Block Ciphers: Fast Implementations on x86-64 Architecture (PDF) (M.Sc.). University of Oulu. pp. 33, 42. Retrieved 2017-06-22.

외부 링크