8 Aes 02 02 2024
8 Aes 02 02 2024
8 Aes 02 02 2024
Reference Books:
1. Kaufman, Perlman and Speciner, “Network Security: Private
Communication in a Public World”, 2nd edition, Pearson Publishers ,
2002.
2. Menezes, van Oorschot, and Vanstone, “The Handbook of Applied
Cryptography”, 20th Edition, WILEY, 2015.
3. H. Silverman, “A Friendly Introduction to Number Theory,” 4th
Edition, Boston: Pearson, 2012.
Module 2: Symmetric Cryptography
(4 Hours)
Block Ciphers
◦ DES
◦ Triple DES
◦ AES
Stream Ciphers
AES
Advanced Encryption Standard (AES) is a
symmetric-key block cipher published by
the National Institute of Standards and
Technology (NIST) in December 2001.
A replacement for DES was needed, US
NIST issued call for ciphers in 1997.
15 candidates accepted in Jun 98, 5 were
shortlisted in Aug 99.
AES Competition Requirements
Private key symmetric block cipher
Final criteria
General security
Ease of software & hardware implementation
Implementation attacks
Flexibility (in encrypt/decrypt, keying, other
factors)
AES Shortlist
After testing and evaluation, shortlist in Aug-99
◦ MARS (IBM) - complex, fast, high security margin
◦ RC6 (USA) - v. simple, v. fast, low security margin
◦ Rijndael (Belgium) - clean, fast, good security
margin
◦ Serpent (Euro) - slow, clean, v. high security margin
◦ Two fish (USA) - complex, v. fast, high security
margin
Rijndael design:
Simplicity
Has 128/192/256 bit keys, 128 bits data J. Daemen
bytes
No of Rounds- 10
bytes)
General design of AES encryption
cipher
AES is a non-Feistel cipher that encrypts and decrypts a data block of 128 bits
Rounds are (almost) identical
◦ First and last round are a little different
w0,w1,w2,w3
w4,w5,w6,w7
Overall Structure
High Level Description
Key • Round keys are derived from the cipher key
Expansion using Rijndael's key schedule
• SubBytes
Final Round • ShiftRows No MixColumns
• AddRoundKey
AES Data Units/Representations
1 byte
Input and Output Array Representation
1 byte
in0 in4 in8 in12
k0 k4 k8 k12
k1 k5 k9 k13
k2 k6 k10 k14
k3 k7 k11 k15
8 bits
8 bits
x’y’16
Sub Bytes Table- Sub Bytes
transformation table
Inv SubBytes TransformationTable
Sample Sub Byte Transformation
RotWord[b0,b1,b2,b3] = [b1,b2,b3,b0]
Very efficient