AEAD(AES-GCM, ChaCha20-Poly1305)는 따로 다룰 예정
_mm_aeskeygenassist_si128()
를 사용한다.0x0c
)가 padding byte의 값으로 설정된다.Instructions | Instruction Description |
---|---|
AESENC | Perform one round of an AES encryption flow |
AESENCLAST | Perform the last round of an AES encryption flow |
AESDEC | Perform one round of an AES decryption flow |
AESDECLAST | Perform the last round of an AES decryption flow |
AESKEYGENASSIST | Assist in AES round key generation |
AESIMC | Assist in AES decryption round key generation. |
wmmintrin.h
를 포함하고, 컴파일 시 -maes
플래그를 줘야 한다.Function Prototype | Description |
---|---|
__m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey) | AES 라운드의 한 단계를 역순으로 수행 |
__m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey) | 마지막 AES 라운드를 역순으로 수행 |
__m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey) | AES 라운드의 한 단계를 수행 |
__m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey) | 마지막 AES 라운드를 수행 |
__m128i _mm_aesimc_si128 (__m128i a) | AES Inverse Mix Columns 연산을 수행 |
__m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8) | AES 키 생성을 보조하는 데 사용 |