Developer Reference for Intel® Integrated Performance Primitives Cryptography
The Galois/Counter Mode (GCM) is a mode of operation of the AES algorithm. GCM [NIST SP 800-38D] uses a variation of the Counter mode of operation for encryption. GCM assures authenticity of the confidential data (of up to about 64 GB per invocation) using a universal hash function defined over a binary finite field (the Galois field).
GCM can also provide authentication assurance for additional data (of practically unlimited length per invocation) that is not encrypted. If the GCM input contains only data that is not to be encrypted, the resulting specialization of GCM, called GMAC, is simply an authentication mode for the input data.
GCM provides stronger authentication assurance than a (non-cryptographic) checksum or error detecting code. In particular, GCM can detect both accidental modifications of the data and intentional, unauthorized modifications.
The AES-GCM function set includes incremental functions, which enable authenticated encryption/decryption of several messages using one key. The application code for conducting a typical AES-GCM authenticated encryption should follow the sequence of operations as outlined below:
If the size of the initial vector and/or additional authenticated data (IV and AAD parameters of the AES_GCMStart function, respectively) is large or any of these parameters is placed in a disconnected memory buffer, replace step 4 above with the following sequence:
Call AES_GCMReset to prepare the IppsAES_GCMState context for authenticated encryption of the first/new message.
Keep calling AES_GCMProcessIV for successive parts of IV until the entire IV is processed.
Keep calling AES_GCMProcessAAD for successive parts of AAD until the entire AAD is processed.