Technical Blog Post
Abstract
POWER8 Cryptography In-core Instructions
Body
Cryptography features are one of the most essential features a system may have. One of the most famous algorithm that provides a strong cryptography is AES or Advanced Encryption Standard. Its long history of success made of this algorithm one of the most used actually. AES is everywhere on internet and is composed for few steps that execute operations in a block of 16 bytes which is represented by a matrix.
Its secrets are behind mathematical approach using Galois Field that deals with multiplication in finite field using irreducible polynomials. As expected such kind of math requires time of process. Each block to be processed/encrypt or decrypted perform a number of rounds which depends on the key size.
In order to provide a speed up in those process POWER8 comes with five in-core vector instructions that cope with AES steps. Two of them are directed for encryption, vcipher and vcipherlast, two for decryption vncipher and vncipherlast. Finally one for vsbox which execute substitution step using an internal S-BOX. There is no instruction for AES Key Expansion, but it can reach easily using vcipherlast. You can see more in this developerWorks article that cover how to use in-core instructions and how to perform a full key expansion.
Beyond AES in-core instruction POWER8 also comes with SHA-2 and polynomial multiplication instructions. This last can be used for perform GHASH and GCM (Galois Counter Mode).
UID
ibm16170415