Advanced Encryption Standard
- See also, AES-GCM
Advanced Encryption Standard (AES)
Overview
- Advanced Encryption Standard
- Type: Block Cipher
- Block Size: Fixed-size blocks of 128 bits (16 bytes)
- Key Sizes: Can be 128, 192, or 256 bits
- Structure: substitution-permutation network
Key Features
- The first block is XORed with the IV
- IV must be random and unique
- Each plaintext block is XORed (⊕) with the previous ciphertext block before encryption
- identical plaintext blocks encrypt to different ciphertext blocks
See 2025-05-31
Description
The Advanced Encryption Standard (AES) is a National Institute of Standards and Technology (NIST) specification for the encryption of electronic data. It also helps to encrypt digital information such as telecommunications, financial, and government data. US government agencies have been using it to secure sensitive but unclassified material.
AES consists of a symmetric-key algorithm: both encryption and decryption are performed using the same key. It is an iterated block cipher that works by repeating the defined steps multiple times. It has a 128-bit block size, with key sizes of **128, 192, and 256 bits for AES-128, AES-192, and AES-256, respectively.** The design of AES makes its use efficient in both software and hardware. It works simultaneously at multiple network layers.
Comparison with DES
Compared to DES, AES uses 128-bit (AES-128), 192-bit (AES-192), or 256-bit (AES-256) keys to encrypt and decrypt data. In addition, AES is faster than DES because it has a more efficient algorithm structure. This is because it can be applied to multiple data blocks at once, making it faster. This means that AES encryption and decryption can be performed faster than DES, which is especially important when large amounts of data need to be encrypted.
AES Pseudocode
Initially, the system copies the cipher input into the internal state and then adds an initial round key. The system transforms the state by iterating a round function in a number of cycles. The number of cycles may vary with the block size and key length. After completing rounding, the system copies the final state into the cipher output.
Cipher (byte in [4*Nb], byte out [4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4, Nb]
state = in
AddRoundKey (state, w)
for round = 1 step 1 to Nr-1
SubBytes(state)
ShiftRows(state)
MixColumns(state)
AddRoundKey(state, w+round*Nb)
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w+Nr*Nb)
out = state
end
Usage
Drawback
Some of the other drawbacks of AES algorithm are as follows: