Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Am I running AES-NI?

James_Wei
Beginner
774 Views

Can someonehelp meto confirmthat the following y8 codes exerciseall seven AES-NI, namely AESENC, AESENCLAST, AESDEC, AESDECLAST, AESKEYGENASSIST, AESIMC, and PCLMULQDQ?

0000000000404520 :

00000000004047ac :

0000000000404a38 :

0000000000404b50 :

0000000000404c78 :

0000000000404c90 :

0000000000405ac8 :

0000000000405cf0 :

0000000000405d70 :

0000000000406030 :

0000000000406e9c :

00000000004070d0 :

000000000040715c :

000000000040746c :

0000000000407a8c :

00000000004080ac :

0000000000415290 :

00000000004158c0 :

00000000004160a0 :

0000000000416670 :

00000000004166fc :

00000000004167d0 :

0000000000416930 :

0000000000416bd0 :

0000000000416d20 :

0000000000416ed0 :

0 Kudos
2 Replies
Chao_Y_Intel
Moderator
774 Views

Hi,

Y8 code are possibly for SSE4.1, SSE4.2 and AEI-NI(Westmere processors).

You can try the following function with ippCPUID_AVX flag to check the if AVX is enabled in the processors.

ippGetCpuFeatures(Ipp64u* pFeaturesMask, Ipp32u pCpuidInfoRegs[4]);

Thanks,
Chao

0 Kudos
PaulF_IntelCorp
Employee
774 Views
Hello James,

Engineering has provided the following answer.


Whole set ofRijndael processingfunctions uses AES-NI.

In IPP implementations are not use AESKEYGENASSIST, AESIMC instructions, because IPP focused on performance processing basically.

So all other AES-NI, namely AESENC, AESENCLAST, AESDEC, AESDECLAST and PCLMULQDQ are used in implementation of the following AES modes: ECB, CBC, OFB, CFB, CTR, CCM and CGM

Implementation of Rijndael192andRijndael256kernels (i.e basic encryption and decryption algorithms)is based on AES-NI too.

The following public entry points are descending to AES-NI based code

- ippsRijndael128{Encrypt|Decrypt}{ECB|CBC|CFB|OFB|CTR|}

- ippsRijndael128CCM{Encrypt|Decrypt},ippsRijndael128CCM{Encrypt|Decrypt}Message

- ippsRijndael128GCMProcess{IV|AAD}, ippsRijndael128GCM{Encrypt|Decrypt},ippsRijndael128GCM{Encrypt|Decrypt}Message (PCLMULQDQ is here)

- ippsRijndael{192|256}{Encrypt|Decrypt}{ECB|CBC|CFB|OFB|CTR|}

One may take a look at map file and find functions with _AES_NI suffixes. It's internal functions holding AES-NI.

Regards,

Paul

0 Kudos
Reply