Although cryptography solves a lot of security issues, it can introduce noticeable overhead on an application’s performance. One solution and specific example to improve crypto performance can be to use Advanced Encryption Standard (AES) crypto accelerators. The AES Instruction Set (or the AES-New Instructions (AES-NI)) is an extension to the x86 instruction set architecture for microprocessors from Intel. The instructions were designed to implement some of the complex and performance intensive steps of AES algorithm using hardware and thus accelerating the execution of AES algorithms.
The goal of the experiment is to analyze and compare high performance software implementation of AES with that of AES-NI optimized Intel AES sample library. The AES assembly implementation was created by well-known Cryptography and systems security expert, Dr. Brian Gladman. Note that Dr. Brian Gladman’s AES assembly implementation in the sample library has been quoted in various published performance papers as being some of the most efficient AES assembler code available.
Supported Environment for the Experiment
- MS Visual Studio 2005, 2008, 2010
- GNU C compiler 4.x
- YASM v0.8 (or newer) assembler
- AES NI supported by Intel Core i5, i7, Xeon 5600 series and newer processors
- Key sizes supported for the experiment: 128, 192 and 256 bits
- Modes supported for the experiment: AES CBC and AES CTR