Pulsars
0 %
Log inSign up

From traditional numbering to block numbering

Block cipher and AES

Rather than processing letters one by one, modern ciphers divide the message into fixed-size blocks and process each block in its entirety.

AES in figures

AES (Advanced Encryption Standard) has been the standard since 2001. It operates on blocks of 128 bits, or 16 bytes, using a key of 128, 192 or 256 bits.

The block is arranged in a 4 × 4-byte square, known as the state:

b0  b4  b8  b12
b1  b5  b9  b13
b2  b6  b10 b14
b3  b7  b11 b15

The four operations of a round

On this state, AES repeats a round consisting of four steps:

SubBytes     (each byte is replaced by another, using a table)
ShiftRows    (the lines shift to the left)
MixColumns   (the columns are all jumbled up)
AddRoundKey  (it is combined with the round key using XOR)

The number of rounds depends on the key: 10 rounds for 128 bits, 12 for 192, and 14 for 256.

Each of these steps is reversible, and their sequence produces exactly the desired effect: SubBytes breaks linearity, whilst ShiftRows and MixColumns propagate each input bit to all output bytes. After two or three rounds, changing a single bit in the plaintext has already disrupted the entire block.

Why trust it?

AES was selected following a five-year public competition, during which fifteen candidates were publicly attacked by the community. Twenty years on, no practical attack threatens it: the best-known attacks gain only a negligible advantage over exhaustive search.

A common misconception to avoid: ‘AES-256 is twice as secure as AES-128’. No — it has 2^128 times as many keys. And 2^128 is already beyond the reach of any conceivable machine.