Galois Counter Mode (GCM) Block Cipher using AES
Version 1.0.0 (6.04 KB) by
David Hill
Encrypt/Decrypt a plaintext message using AES GCM.
Galois Counter Mode (GCM) Block Cipher using AES-128,192,256 based on the key length. Implimentation is based on NIST Special Publication 800-38D.
Inputs: secretKey - AES secret key, hexidecimal (128,192, or 256 bits), iv - initialization vector (random 96-bit hexidecimal), plainTextInput - plaintext message of input that needs to be encrypted, aad - additional authenticated data (plaintext string).
Outputs: outputCipher - hexidecimal encrypted Cipher, authTag - authentication tag (hexidecimal).
The initialization vection is not generated by the code and must be provided. It is extremely important that the initialization vection be different for each encryption using the same secret key (see NIST publication for explanation).
Example:
key='44a74c1a57da2bf6d6838956cdca13f1b67cc6ad87d459bff544784083868171';
iv='4392367e62ef9aa706e3e801';
plainTextInput='I like to swim!';
aad= 'additional unencrypted instructions';
[C,T]=GCM_AE(key,iv,plainTextInput,aad)
C =
'6deb6e66165c0f8d85369aa4da0c1d'
T =
'1ec4fb95081845d94bca1c4d'
[P,A]=GCM_AD(key,iv,C,aad,T)
P =
'I like to swim!'
A =
logical
1
Cite As
David Hill (2026). Galois Counter Mode (GCM) Block Cipher using AES (https://uk.mathworks.com/matlabcentral/fileexchange/102850-galois-counter-mode-gcm-block-cipher-using-aes), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2021a
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0 |
