Download the Intel AESNI Sample Library

Overview

The Intel® AES New Instructions (AES-NI) Sample Library demonstrates how one might implement a high performance Advanced Encryption Standard (AES) block cipher using the new AES-NI instructions available in Intel® Core™ i5, Intel® Core™ i7, Intel® Xeon® 5600 series and newer processors. All code samples can be compiled and run as native 32-bit or 64-bit binaries for both Microsoft Windows* and Linux* operating systems. This package is divided into three parts; The Intel® AES sample library, an AES example implementation using the library, and an application that compares Dr. Brian Gladman’s AES performance with that of the AES-NI optimized library.

For more complete information about compiler optimizations, see our Optimization Notice.

Comments

How does this library compare with Gueron's whitepaper assembly listings? (found at http://software.intel.com/en-us/articles/intel-advanced-encryption-standard-aes-instructions-set/ )


Hi Scott,

Functionally and performance wise, the code is essentially the same. Both libs supports the same AES modes (ECB, CTR, CBC) and yields essentially the same cycle/byte effciency results.

cheers,

Dan



Hi Jeffrey and Dan,
in the latest Intel AES-NI Sample Library V1.2, input plaintext for AES-CTR is assumed to have a bytelength of a multiple of 16. Are you planning to add an option of arbitrary bytelength, as AES-CTR supports any bytelength? (Of course, one could add a few bytes to the plaintext prior to encryption.)


Is there a supported native library for accessing the AES-NI functionality?
If so, where can I obtain it?

So far, I have discovered only the sample library referenced by this article, and the
example code within the white paper located at
http://software.intel.com/en-us/articles/intel-advanced-encryption-standard-aes-instructions-set/#comment-66183

My intuition tells me that Intel never intended for every exploiter to write, debug, and support
his own native library to access the AES-NI functionality.

I am cautiously optimistic that I just haven't located it yet.





Does Intel have any plans to

Does Intel have any plans to support AES-NI on the Mac using xcode and GCC (llvm-gcc)?
Or is this all up to Apple to add support for the new intrinsics?

Right now the only way to write code with AES-NI seems to be by using the Intel C++ compiler, not Apple's.

I'd love a workaround like the Intel RDRAND library does, using intrinsics when possible, and dropping to maco assembly or even machine code for Mac compatibility.



Pages