SlideShare a Scribd company logo
1 of 50
Advanced Encryption Standard (AES)
Information and Network Security
Dr. Hadi AL Saadi
Origins of AES
 replacement for DES was needed
 have theoretical attacks that can break it
 have demonstrated exhaustive key search attacks
 can use Triple-DES – but slow, has small blocks
 US NIST issued call for ciphers in 1997
 15 candidates accepted in Jun 98
 5 were shortlisted in Aug-99
 Rijndael was selected as the AES in Oct-2000
 issued as FIPS PUB 197 standard in Nov-2001
AES Requirements
• private key symmetric block cipher
• 128-bit data, 128/192/256-bit keys
• stronger & faster than Triple-DES
– DES 168 bit key (56*3)
– Slow in software 16* 3 rounds + key expansion!
– Designed for 70’s hardware
• provide full specification & design details
• both C & Java implementations
• NIST have released all submissions &
unclassified analyses
AES Evaluation Criteria
• initial criteria:
– security – effort for practical cryptanalysis
– cost – in terms of computational efficiency
– algorithm & implementation characteristics
• final criteria
– general security
– ease of software & hardware implementation
– implementation attacks
– flexibility (in en/decrypt, keying, other factors)
AES Shortlist
• After testing and evaluation, shortlist in August 1999:
1. MARS (IBM) - complex, fast, high security margin
2. RC6 (USA) - very simple, very fast, low security
margin
3. Rijndael (Belgium) - clean, fast, good security margin
4. Serpent (Euro) - slow, clean, very high security
margin
5. Twofish (USA) - complex, very fast, high security
margin
• Then subject to further analysis and comment.
• Saw contrast between algorithms with
 few complex rounds verses many simple rounds
 which refined existing ciphers verses new proposals
AES Shortlist
AES Shortlist
• The finalists and their scores were as follows:
1. Rijndael (from Joan Daemen and Vincent Rijmen, 86
votes).
2. Serpent (from Ross Anderson, Eli Biham, and Lars
Knudsen, 59 votes).
3. Twofish (from a team headed by Bruce Schneier, 31 votes).
4. RC6 (from RSA Laboratories, 23 votes).
5. MARS (from IBM, 13 votes).
The AES Cipher - Rijndael
 designed by Rijmen-Daemen in Belgium
 has 128/192/256 bit keys, 128 bit data
 an iterative rather than feistel cipher
 processes data as block of 4 columns of 4 bytes
 operates on entire data block in every round
 designed to be:
 resistant against known attacks
 speed and code compactness on many CPUs
 design simplicity
AES is a non-Feistel cipher that encrypts and decrypts a
data block of 128 bits. It uses 10, 12, or 14 rounds. The
key size, which can be 128, 192, or 256 bits, depends on
the number of rounds.
AES has defined three versions, with 10, 12, and 14 rounds.
Each version uses a different cipher key size (128, 192, or
256), but the round keys are always 128 bits.
Rounds
General design of AES encryption cipher
The AES Cipher - Rijndael
• Processes data as 4 groups of 4 bytes (state)
• Has 9/11/13 rounds in which state undergoes:
 Byte substitution (1 S-box used on every byte)
 Shift rows (permute bytes between groups/columns)
 Mix columns (subs using matrix multiply of groups)
 Add round key (XOR state with key material)
• Initial XOR key material and incomplete last round.
• All operations can be combined into XOR and table
lookups - hence very fast and efficient.
AES
Encryption
Process
AES Parameters
Data units used in AES
Block-to-state and state-to-block transformation
Changing plaintext to state
Plain text: AESUSESAMATRIX
A E S U S E S A M A T R I X Z Z
41 45 53 55 53 45 53 41 4D 41 54 52 49 58 5A 5A
PLAIN TEXT (CHARACTER )
PLAIN TEXT (HEXADECIMAL )












A
A
D
5
52
41
55
5
54
53
53
58
41
45
45
49
4
53
41
STATE
Structure of each round at the encryption site
Transformation
To provide security, AES uses four types of
transformations: substitution, permutation, mixing, and
key-adding.
Substitution
AES, like DES, uses substitution. AES uses two
invertible transformations.
1. SubBytes
The first transformation, SubBytes, is used at the
encryption site. To substitute a byte, we interpret the byte
as two hexadecimal digits.
The SubBytes operation involves 16 independent
byte-to-byte transformations.
Byte Substitution
• A simple substitution of each byte.
• Uses one table of 16x16 bytes containing a permutation
of all 256 8-bit values.
• Each byte of state is replaced by byte in row (left 4-bits)
and column (right 4-bits).
 e.g., byte {95} is replaced by row 9 col 5 byte, which
is the value {2A}.
• S-box is constructed using a defined transformation of
the values in GF(28).
• Designed to be resistant to all known attacks.
Byte Substitution
• Substitute byte transformation
 Forward substitute byte transformation (SubBytes)
 Inverse substitute byte transformation (InvSubBytes)
Byte Substitution
AES S-Boxes
(a) S-box
AES S-Boxes
(b) Inverse S-box
Example
Fig. shows how a state is transformed using the SubBytes
transformation. The figure also shows that the InvSubBytes
transformation creates the original one. Note that if the two bytes
have the same values, their transformation is also the same.
SubBytes transformation for Example
Permutation
Another transformation found in a round is shifting, which
permutes the bytes.
2. ShiftRows
In the encryption, the transformation is called ShiftRows.
ShiftRows transformation
87 F2 4D 97
EC 6E 4C 90
4A C3 46 E7
8C D8 95 A6
87 F2 4D 97
6E 4C 90 EC
46 E7 4A C3
A6 8C D8 95
Shift Rows
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
1 5 9 13
6 10 14 2
11 15 3 7
16 4 8 12
1 6 11 16 5 10 15 4 9 14 3 8 13 2 7 12
Shift left 0 (No shift)
Shift left 1
Shift left 2
Shift left 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Assume we have 16 byte block from 1 to 16
Convert the 16-byte block to a two-dimensional 4x4 matrix by filling column by column
Convert the two-dimensional 4x4 matrix to a 16-byte block by reading column by column
1 6 11 16 5 10 15 4 9 14 3 8 13 2 7 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Example
43 51 4D 50 55 54 45 52 20 53 43 49 45 4E 43 45
Plaintext
(Hexadecimal)
C O M P U T E R S C I E N C E
Plaintext
(Character)
1A D1 E3 53 FC 20 6E 00 B7 ED 1A 3B 6E 2F 1A 6E
After Substitution
(Hexadecimal)
1A 20 1A 6E FC ED 1A 53 B7 2F E3 00 6E D1 6E 3B
After Shifting
(Hexadecimal)
3.Mix Columns
• Each column is processed separately.
• Each byte is replaced by a value dependent on all 4
bytes in the column.
• Effectively a matrix multiplication in GF(28) using prime
poly m(x) = x8 + x4 + x3 + x + 1.
Mix Columns
M00 = [ {02}·{S00}  {03}·{S10}  {01}·{S20}  {01}·{S30} ] mod GF(28)
M01 = [ {02}·{S01}  {03}·{S11}  {01}·{S21}  {01}·{S31} ] mod GF(28)
M02 = [ {02}·{S02}  {03}·{S12}  {01}·{S22}  {01}·{S32} ] mod GF(28)
M03 = [ {02}·{S03}  {03}·{S13}  {01}·{S23}  {01}·{S33} ] mod GF(28)
M10 = [ {01}·{S00}  {02}·{S10}  {03}·{S20}  {01}·{S30} ] mod GF(28)
M11 = [ {01}·{S01}  {02}·{S11}  {03}·{S21}  {01}·{S31} ] mod GF(28)
M12 = [ {01}·{S02}  {02}·{S12}  {03}·{S22}  {01}·{S32} ] mod GF(28)
M13 = [ {01}·{S03}  {02}·{S13}  {03}·{S23}  {01}·{S33} ] mod GF(28)
Mix Columns
M20 = [ {01}·{S00}  {01}·{S10}  {02}·{S20}  {03}·{S30} ] mod GF(28)
M21 = [ {01}·{S01}  {01}·{S11}  {02}·{S21}  {03}·{S31} ] mod GF(28)
M22 = [ {01}·{S02}  {01}·{S12}  {02}·{S22}  {03}·{S32} ] mod GF(28)
M23 = [ {01}·{S03}  {01}·{S13}  {02}·{S23}  {03}·{S33} ] mod GF(28)
M30 = [ {03}·{S00}  {01}·{S10}  {01}·{S20}  {02}·{S30} ] mod GF(28)
M31 = [ {03}·{S01}  {01}·{S11}  {01}·{S21}  {02}·{S31} ] mod GF(28)
M32 = [ {03}·{S02}  {01}·{S12}  {01}·{S22}  {02}·{S32} ] mod GF(28)
M33 = [ {03}·{S03}  {01}·{S13}  {01}·{S23}  {02}·{S33} ] mod GF(28)
Mixing
We need an interbyte transformation that changes the
bits inside a byte, based on the bits inside the
neighboring bytes. We need to mix bytes to provide
diffusion at the bit level.
Mixing bytes using matrix multiplication
Constant matrices used by MixColumns and InvMixColumns
Mix Columns
MixColumns
The MixColumns transformation operates at the column
level; it transforms each column of the state to a new
column.
MixColumns transformation
Figure shows how a state is transformed using the MixColumns
transformation. The figure also shows that the InvMixColumns
transformation creates the original one.
The MixColumns transformation in Example 7.5
1st column of the result is obtained by:
{02){87}+{03}{6E}+{46}+{A6} = {47}
{87}+{02}{6E}+{03}{46}+{A6} = {37}
{87}+{6E}+{02}{46}+{03}{A6} = {94}
{03}{87}+{6E}+{46}+{02}{A6} = {ED}
For the 1st equation, we have {02}{87}=(0000 0010)(1000 0111)=
1
)
1
mod(
)
(
)
1
( 2
4
3
4
8
2
3
8
2
7













 x
x
x
x
x
x
x
x
x
x
x
x
x
x
= (0001 0101)={15}
Example of MixColumns
87 F2 4D 97
6E 4C 90 EC
46 E7 4A C3
A6 8C D8 95
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
47 40 A3 4C
37 D4 70 9F
94 E4 3A 42
ED A5 A6 BC
=

MixColumns
Constant matrices
State Result
{03}{6E}=(0000 0011)(0110 1110)=
x
x
x
x
x
x
x
x
x
x 







 4
5
7
2
3
5
6
)
)(
1
(
=
(1011 0010) = {B2}
{02){87}+{03}{6E}+{46}+{A6}={15}+{B2}+{46}+{A6}=
(0001 0101)+
(1011 0010)+
(0100 0110)+
(1010 0110)=
(0100 0111)={47}
NOTE :
MULTIPLICATION A VALUE X BY {02} CAN BE
IMPLEMENTED AS 1-BIT LEFT SHIFT FOLLOWED BY
A CONDITIONAL BITWISE XOR WITH (0001 1011) (1B )
IF THE LEFT MOST BIT OF THE ORIGINAL VALUE (
PRIORE TO SHIFT IS 1)
4. AddRoundKey Transformation
The 128 bit of the state are bitwise XORed with the 128 bit
of round key. As sown in Fig. below , the operation is
viewed as columnwise operation between the 4 bytes of the
state column and one word of the round key.
47 40 A3 4C
37 D4 70 9F
94 E4 3A 42
ED A5 A6 BC
AC 19 28 57
77 FA D1 5C
66 DC 29 00
F3 21 41 6A
EB 59 8B 1B
40 2E A1 C3
F2 38 13 42
1E 84 E7 D6
State Key State ♁Key
47= 0100 0111
AC= 1010 1100
-----------------------
EB = 1110 1011
♁
37= 0011 0111
40 = 0111 0111
-----------------------
40= 0100 0000
♁ ♁ 94= 1001 0100
66= 0110 0110
-----------------------
F2= 1111 0010
AES Round
AES Key Expansion
• Takes 128-bit (16-byte) key and expands into array of 44/52/60
32-bit words.
• Start by copying key into first 4 words.
• Then loop creating words that depend on values in previous
and 4 places back.
 In 3 of 4 cases just XOR these together.
 Every 4th has S-box + rotate + XOR constant of previous
before XOR together.
• Designed to resist known attacks.
AES Key Expansion
Steps for computing g function
1. RotWord perform one-byte circular left shift on word , this means that an
input word [B0,B1,B2,B3] is transformed into [ B1,B2,B3,B0]
2. Subword perform a Byte substitution on each byte of its input word , using
the S-Box
3. The result in step (2) is XORed with a round constant. Rcon[j], the round
constant is a word in which the three rightmost bytes are always (0) , and is
defined as Rcon[j]=(RC[j],0,0,0), and the values of RC[j] in hexadecimal are
Rcon[1]=1
Rcon[j]=2.Recon[j-1]
Table below shows how the keys for each round are calculated
assuming that the 128-bit cipher key agreed upon by Alice and
Bob is (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54 87)16.
Example:
AES example of key
expansion
AES Example
Encryption
AES Decryption
 AES decryption is not identical to encryption
since steps done in reverse
 but can define an equivalent inverse cipher
with steps as for encryption
 but using inverses of each step
 with a different key schedule
 works since result is unchanged when
 swap byte substitution & shift rows
 swap mix columns & add (tweaked) round key
Ciphers and inverse ciphers of the AES
Useful Website
http://www.cs.utsa.edu/~wagner/laws/AESEncryptJava.html
http://www.example-code.com/java/crypt2_aes.asp
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
http://www.movable-type.co.uk/scripts/aes.html
http://islab.oregonstate.edu/koc/ece575/02Project/Sha/
http://www.angelfire.com/biz7/atleast/mix_columns.pdf
http://en.wikipedia.org/wiki/Rijndael_Galois_field#Rijndael.27s_finite_field
http://www.samiam.org/key-schedule.html
http://cegt201.bradley.edu/projects/proj2005/aes128/Expo_Document2.pdf

More Related Content

Similar to AES (2).ppt

FPGA Implementation of Mix and Inverse Mix Column for AES Algorithm
FPGA Implementation of Mix and Inverse Mix Column for AES AlgorithmFPGA Implementation of Mix and Inverse Mix Column for AES Algorithm
FPGA Implementation of Mix and Inverse Mix Column for AES Algorithmijsrd.com
 
FPGA Implementation of an Area Optimized Architecture for 128 bit AES Algorithm
FPGA Implementation of an Area Optimized Architecture for 128 bit AES AlgorithmFPGA Implementation of an Area Optimized Architecture for 128 bit AES Algorithm
FPGA Implementation of an Area Optimized Architecture for 128 bit AES AlgorithmIJERA Editor
 
modified aes algorithm using multiple s-boxes
modified aes algorithm using multiple s-boxesmodified aes algorithm using multiple s-boxes
modified aes algorithm using multiple s-boxeschutinhha
 
Modified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxesModified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxeschuxuantinh
 
Ijmsr 2016-05
Ijmsr 2016-05Ijmsr 2016-05
Ijmsr 2016-05ijmsr
 
Advanced encryption standard ug reseacrh
Advanced encryption standard ug reseacrhAdvanced encryption standard ug reseacrh
Advanced encryption standard ug reseacrhAkashRanjandas1
 
“Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” “Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” Nirav Desai
 
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
Paper on Optimized AES Algorithm Core Using  FeedBack Architecture Paper on Optimized AES Algorithm Core Using  FeedBack Architecture
Paper on Optimized AES Algorithm Core Using FeedBack Architecture Dhaval Kaneria
 
advance encryption standard chapter 5.ppt
advance encryption standard chapter 5.pptadvance encryption standard chapter 5.ppt
advance encryption standard chapter 5.pptroueida mohammed
 
AES by example
AES by exampleAES by example
AES by exampleShiraz316
 
javaPrimitiveTypes.pptx
javaPrimitiveTypes.pptxjavaPrimitiveTypes.pptx
javaPrimitiveTypes.pptxMattMarino13
 

Similar to AES (2).ppt (20)

Aes
AesAes
Aes
 
E04612529
E04612529E04612529
E04612529
 
694 lecture1aes
694 lecture1aes694 lecture1aes
694 lecture1aes
 
Network security cs5
Network security cs5Network security cs5
Network security cs5
 
FPGA Implementation of Mix and Inverse Mix Column for AES Algorithm
FPGA Implementation of Mix and Inverse Mix Column for AES AlgorithmFPGA Implementation of Mix and Inverse Mix Column for AES Algorithm
FPGA Implementation of Mix and Inverse Mix Column for AES Algorithm
 
FPGA Implementation of an Area Optimized Architecture for 128 bit AES Algorithm
FPGA Implementation of an Area Optimized Architecture for 128 bit AES AlgorithmFPGA Implementation of an Area Optimized Architecture for 128 bit AES Algorithm
FPGA Implementation of an Area Optimized Architecture for 128 bit AES Algorithm
 
AES.ppt
AES.pptAES.ppt
AES.ppt
 
modified aes algorithm using multiple s-boxes
modified aes algorithm using multiple s-boxesmodified aes algorithm using multiple s-boxes
modified aes algorithm using multiple s-boxes
 
Modified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxesModified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxes
 
Ijmsr 2016-05
Ijmsr 2016-05Ijmsr 2016-05
Ijmsr 2016-05
 
Advanced encryption standard ug reseacrh
Advanced encryption standard ug reseacrhAdvanced encryption standard ug reseacrh
Advanced encryption standard ug reseacrh
 
“Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” “Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture”
 
Ch05
Ch05Ch05
Ch05
 
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
Paper on Optimized AES Algorithm Core Using  FeedBack Architecture Paper on Optimized AES Algorithm Core Using  FeedBack Architecture
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
 
Network Security Lec4
Network Security Lec4Network Security Lec4
Network Security Lec4
 
advance encryption standard chapter 5.ppt
advance encryption standard chapter 5.pptadvance encryption standard chapter 5.ppt
advance encryption standard chapter 5.ppt
 
A HIGH THROUGHPUT AES DESIGN
A HIGH THROUGHPUT AES DESIGNA HIGH THROUGHPUT AES DESIGN
A HIGH THROUGHPUT AES DESIGN
 
AES by example
AES by exampleAES by example
AES by example
 
Fault Detection AES
Fault Detection AESFault Detection AES
Fault Detection AES
 
javaPrimitiveTypes.pptx
javaPrimitiveTypes.pptxjavaPrimitiveTypes.pptx
javaPrimitiveTypes.pptx
 

More from RobinRohit2

devops-complete-notes-2.pdf
devops-complete-notes-2.pdfdevops-complete-notes-2.pdf
devops-complete-notes-2.pdfRobinRohit2
 
ch13_extsort.ppt
ch13_extsort.pptch13_extsort.ppt
ch13_extsort.pptRobinRohit2
 
Different Components of Computer
Different Components of ComputerDifferent Components of Computer
Different Components of ComputerRobinRohit2
 
Data Structures Notes
Data Structures NotesData Structures Notes
Data Structures NotesRobinRohit2
 
08_Subnetting_IP_Networks.pdf
08_Subnetting_IP_Networks.pdf08_Subnetting_IP_Networks.pdf
08_Subnetting_IP_Networks.pdfRobinRohit2
 
Floating Roof Operation.pptx
Floating Roof Operation.pptxFloating Roof Operation.pptx
Floating Roof Operation.pptxRobinRohit2
 
031VCRS19-les-01_oJ80LT2.pptx
031VCRS19-les-01_oJ80LT2.pptx031VCRS19-les-01_oJ80LT2.pptx
031VCRS19-les-01_oJ80LT2.pptxRobinRohit2
 
Intro Ch 01B.ppt
Intro Ch 01B.pptIntro Ch 01B.ppt
Intro Ch 01B.pptRobinRohit2
 
Computer Hardware.ppt
Computer Hardware.pptComputer Hardware.ppt
Computer Hardware.pptRobinRohit2
 
SRWE_Module_14.pptx
SRWE_Module_14.pptxSRWE_Module_14.pptx
SRWE_Module_14.pptxRobinRohit2
 
SRWE_Module_16.pptx
SRWE_Module_16.pptxSRWE_Module_16.pptx
SRWE_Module_16.pptxRobinRohit2
 
SRWE_Module_16.pptx
SRWE_Module_16.pptxSRWE_Module_16.pptx
SRWE_Module_16.pptxRobinRohit2
 

More from RobinRohit2 (15)

devops-complete-notes-2.pdf
devops-complete-notes-2.pdfdevops-complete-notes-2.pdf
devops-complete-notes-2.pdf
 
ch13_extsort.ppt
ch13_extsort.pptch13_extsort.ppt
ch13_extsort.ppt
 
08-Sorting.ppt
08-Sorting.ppt08-Sorting.ppt
08-Sorting.ppt
 
Different Components of Computer
Different Components of ComputerDifferent Components of Computer
Different Components of Computer
 
Data Structures Notes
Data Structures NotesData Structures Notes
Data Structures Notes
 
DATA STRUCTURE
DATA STRUCTUREDATA STRUCTURE
DATA STRUCTURE
 
Ch06.ppt
Ch06.pptCh06.ppt
Ch06.ppt
 
08_Subnetting_IP_Networks.pdf
08_Subnetting_IP_Networks.pdf08_Subnetting_IP_Networks.pdf
08_Subnetting_IP_Networks.pdf
 
Floating Roof Operation.pptx
Floating Roof Operation.pptxFloating Roof Operation.pptx
Floating Roof Operation.pptx
 
031VCRS19-les-01_oJ80LT2.pptx
031VCRS19-les-01_oJ80LT2.pptx031VCRS19-les-01_oJ80LT2.pptx
031VCRS19-les-01_oJ80LT2.pptx
 
Intro Ch 01B.ppt
Intro Ch 01B.pptIntro Ch 01B.ppt
Intro Ch 01B.ppt
 
Computer Hardware.ppt
Computer Hardware.pptComputer Hardware.ppt
Computer Hardware.ppt
 
SRWE_Module_14.pptx
SRWE_Module_14.pptxSRWE_Module_14.pptx
SRWE_Module_14.pptx
 
SRWE_Module_16.pptx
SRWE_Module_16.pptxSRWE_Module_16.pptx
SRWE_Module_16.pptx
 
SRWE_Module_16.pptx
SRWE_Module_16.pptxSRWE_Module_16.pptx
SRWE_Module_16.pptx
 

Recently uploaded

fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxNANDHAKUMARA10
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxSCMS School of Architecture
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...vershagrag
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...jabtakhaidam7
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptxrouholahahmadi9876
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 

Recently uploaded (20)

fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptx
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
 
Signal Processing and Linear System Analysis
Signal Processing and Linear System AnalysisSignal Processing and Linear System Analysis
Signal Processing and Linear System Analysis
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 

AES (2).ppt

  • 1. Advanced Encryption Standard (AES) Information and Network Security Dr. Hadi AL Saadi
  • 2. Origins of AES  replacement for DES was needed  have theoretical attacks that can break it  have demonstrated exhaustive key search attacks  can use Triple-DES – but slow, has small blocks  US NIST issued call for ciphers in 1997  15 candidates accepted in Jun 98  5 were shortlisted in Aug-99  Rijndael was selected as the AES in Oct-2000  issued as FIPS PUB 197 standard in Nov-2001
  • 3. AES Requirements • private key symmetric block cipher • 128-bit data, 128/192/256-bit keys • stronger & faster than Triple-DES – DES 168 bit key (56*3) – Slow in software 16* 3 rounds + key expansion! – Designed for 70’s hardware • provide full specification & design details • both C & Java implementations • NIST have released all submissions & unclassified analyses
  • 4. AES Evaluation Criteria • initial criteria: – security – effort for practical cryptanalysis – cost – in terms of computational efficiency – algorithm & implementation characteristics • final criteria – general security – ease of software & hardware implementation – implementation attacks – flexibility (in en/decrypt, keying, other factors)
  • 5. AES Shortlist • After testing and evaluation, shortlist in August 1999: 1. MARS (IBM) - complex, fast, high security margin 2. RC6 (USA) - very simple, very fast, low security margin 3. Rijndael (Belgium) - clean, fast, good security margin 4. Serpent (Euro) - slow, clean, very high security margin 5. Twofish (USA) - complex, very fast, high security margin
  • 6. • Then subject to further analysis and comment. • Saw contrast between algorithms with  few complex rounds verses many simple rounds  which refined existing ciphers verses new proposals AES Shortlist
  • 7. AES Shortlist • The finalists and their scores were as follows: 1. Rijndael (from Joan Daemen and Vincent Rijmen, 86 votes). 2. Serpent (from Ross Anderson, Eli Biham, and Lars Knudsen, 59 votes). 3. Twofish (from a team headed by Bruce Schneier, 31 votes). 4. RC6 (from RSA Laboratories, 23 votes). 5. MARS (from IBM, 13 votes).
  • 8. The AES Cipher - Rijndael  designed by Rijmen-Daemen in Belgium  has 128/192/256 bit keys, 128 bit data  an iterative rather than feistel cipher  processes data as block of 4 columns of 4 bytes  operates on entire data block in every round  designed to be:  resistant against known attacks  speed and code compactness on many CPUs  design simplicity
  • 9. AES is a non-Feistel cipher that encrypts and decrypts a data block of 128 bits. It uses 10, 12, or 14 rounds. The key size, which can be 128, 192, or 256 bits, depends on the number of rounds. AES has defined three versions, with 10, 12, and 14 rounds. Each version uses a different cipher key size (128, 192, or 256), but the round keys are always 128 bits. Rounds
  • 10. General design of AES encryption cipher
  • 11. The AES Cipher - Rijndael • Processes data as 4 groups of 4 bytes (state) • Has 9/11/13 rounds in which state undergoes:  Byte substitution (1 S-box used on every byte)  Shift rows (permute bytes between groups/columns)  Mix columns (subs using matrix multiply of groups)  Add round key (XOR state with key material) • Initial XOR key material and incomplete last round. • All operations can be combined into XOR and table lookups - hence very fast and efficient.
  • 14. Data units used in AES
  • 16. Changing plaintext to state Plain text: AESUSESAMATRIX A E S U S E S A M A T R I X Z Z 41 45 53 55 53 45 53 41 4D 41 54 52 49 58 5A 5A PLAIN TEXT (CHARACTER ) PLAIN TEXT (HEXADECIMAL )             A A D 5 52 41 55 5 54 53 53 58 41 45 45 49 4 53 41 STATE
  • 17. Structure of each round at the encryption site
  • 18. Transformation To provide security, AES uses four types of transformations: substitution, permutation, mixing, and key-adding.
  • 19. Substitution AES, like DES, uses substitution. AES uses two invertible transformations. 1. SubBytes The first transformation, SubBytes, is used at the encryption site. To substitute a byte, we interpret the byte as two hexadecimal digits. The SubBytes operation involves 16 independent byte-to-byte transformations.
  • 20. Byte Substitution • A simple substitution of each byte. • Uses one table of 16x16 bytes containing a permutation of all 256 8-bit values. • Each byte of state is replaced by byte in row (left 4-bits) and column (right 4-bits).  e.g., byte {95} is replaced by row 9 col 5 byte, which is the value {2A}. • S-box is constructed using a defined transformation of the values in GF(28). • Designed to be resistant to all known attacks.
  • 21. Byte Substitution • Substitute byte transformation  Forward substitute byte transformation (SubBytes)  Inverse substitute byte transformation (InvSubBytes)
  • 25. Example Fig. shows how a state is transformed using the SubBytes transformation. The figure also shows that the InvSubBytes transformation creates the original one. Note that if the two bytes have the same values, their transformation is also the same. SubBytes transformation for Example
  • 26. Permutation Another transformation found in a round is shifting, which permutes the bytes. 2. ShiftRows In the encryption, the transformation is called ShiftRows. ShiftRows transformation
  • 27. 87 F2 4D 97 EC 6E 4C 90 4A C3 46 E7 8C D8 95 A6 87 F2 4D 97 6E 4C 90 EC 46 E7 4A C3 A6 8C D8 95
  • 28. Shift Rows 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 1 5 9 13 6 10 14 2 11 15 3 7 16 4 8 12 1 6 11 16 5 10 15 4 9 14 3 8 13 2 7 12 Shift left 0 (No shift) Shift left 1 Shift left 2 Shift left 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Assume we have 16 byte block from 1 to 16 Convert the 16-byte block to a two-dimensional 4x4 matrix by filling column by column Convert the two-dimensional 4x4 matrix to a 16-byte block by reading column by column
  • 29. 1 6 11 16 5 10 15 4 9 14 3 8 13 2 7 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Example 43 51 4D 50 55 54 45 52 20 53 43 49 45 4E 43 45 Plaintext (Hexadecimal) C O M P U T E R S C I E N C E Plaintext (Character) 1A D1 E3 53 FC 20 6E 00 B7 ED 1A 3B 6E 2F 1A 6E After Substitution (Hexadecimal) 1A 20 1A 6E FC ED 1A 53 B7 2F E3 00 6E D1 6E 3B After Shifting (Hexadecimal)
  • 30. 3.Mix Columns • Each column is processed separately. • Each byte is replaced by a value dependent on all 4 bytes in the column. • Effectively a matrix multiplication in GF(28) using prime poly m(x) = x8 + x4 + x3 + x + 1.
  • 31. Mix Columns M00 = [ {02}·{S00}  {03}·{S10}  {01}·{S20}  {01}·{S30} ] mod GF(28) M01 = [ {02}·{S01}  {03}·{S11}  {01}·{S21}  {01}·{S31} ] mod GF(28) M02 = [ {02}·{S02}  {03}·{S12}  {01}·{S22}  {01}·{S32} ] mod GF(28) M03 = [ {02}·{S03}  {03}·{S13}  {01}·{S23}  {01}·{S33} ] mod GF(28) M10 = [ {01}·{S00}  {02}·{S10}  {03}·{S20}  {01}·{S30} ] mod GF(28) M11 = [ {01}·{S01}  {02}·{S11}  {03}·{S21}  {01}·{S31} ] mod GF(28) M12 = [ {01}·{S02}  {02}·{S12}  {03}·{S22}  {01}·{S32} ] mod GF(28) M13 = [ {01}·{S03}  {02}·{S13}  {03}·{S23}  {01}·{S33} ] mod GF(28)
  • 32. Mix Columns M20 = [ {01}·{S00}  {01}·{S10}  {02}·{S20}  {03}·{S30} ] mod GF(28) M21 = [ {01}·{S01}  {01}·{S11}  {02}·{S21}  {03}·{S31} ] mod GF(28) M22 = [ {01}·{S02}  {01}·{S12}  {02}·{S22}  {03}·{S32} ] mod GF(28) M23 = [ {01}·{S03}  {01}·{S13}  {02}·{S23}  {03}·{S33} ] mod GF(28) M30 = [ {03}·{S00}  {01}·{S10}  {01}·{S20}  {02}·{S30} ] mod GF(28) M31 = [ {03}·{S01}  {01}·{S11}  {01}·{S21}  {02}·{S31} ] mod GF(28) M32 = [ {03}·{S02}  {01}·{S12}  {01}·{S22}  {02}·{S32} ] mod GF(28) M33 = [ {03}·{S03}  {01}·{S13}  {01}·{S23}  {02}·{S33} ] mod GF(28)
  • 33. Mixing We need an interbyte transformation that changes the bits inside a byte, based on the bits inside the neighboring bytes. We need to mix bytes to provide diffusion at the bit level. Mixing bytes using matrix multiplication
  • 34. Constant matrices used by MixColumns and InvMixColumns Mix Columns
  • 35. MixColumns The MixColumns transformation operates at the column level; it transforms each column of the state to a new column. MixColumns transformation
  • 36. Figure shows how a state is transformed using the MixColumns transformation. The figure also shows that the InvMixColumns transformation creates the original one. The MixColumns transformation in Example 7.5
  • 37. 1st column of the result is obtained by: {02){87}+{03}{6E}+{46}+{A6} = {47} {87}+{02}{6E}+{03}{46}+{A6} = {37} {87}+{6E}+{02}{46}+{03}{A6} = {94} {03}{87}+{6E}+{46}+{02}{A6} = {ED} For the 1st equation, we have {02}{87}=(0000 0010)(1000 0111)= 1 ) 1 mod( ) ( ) 1 ( 2 4 3 4 8 2 3 8 2 7               x x x x x x x x x x x x x x = (0001 0101)={15} Example of MixColumns 87 F2 4D 97 6E 4C 90 EC 46 E7 4A C3 A6 8C D8 95 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 47 40 A3 4C 37 D4 70 9F 94 E4 3A 42 ED A5 A6 BC =  MixColumns Constant matrices State Result
  • 38. {03}{6E}=(0000 0011)(0110 1110)= x x x x x x x x x x          4 5 7 2 3 5 6 ) )( 1 ( = (1011 0010) = {B2} {02){87}+{03}{6E}+{46}+{A6}={15}+{B2}+{46}+{A6}= (0001 0101)+ (1011 0010)+ (0100 0110)+ (1010 0110)= (0100 0111)={47} NOTE : MULTIPLICATION A VALUE X BY {02} CAN BE IMPLEMENTED AS 1-BIT LEFT SHIFT FOLLOWED BY A CONDITIONAL BITWISE XOR WITH (0001 1011) (1B ) IF THE LEFT MOST BIT OF THE ORIGINAL VALUE ( PRIORE TO SHIFT IS 1)
  • 39.
  • 40. 4. AddRoundKey Transformation The 128 bit of the state are bitwise XORed with the 128 bit of round key. As sown in Fig. below , the operation is viewed as columnwise operation between the 4 bytes of the state column and one word of the round key. 47 40 A3 4C 37 D4 70 9F 94 E4 3A 42 ED A5 A6 BC AC 19 28 57 77 FA D1 5C 66 DC 29 00 F3 21 41 6A EB 59 8B 1B 40 2E A1 C3 F2 38 13 42 1E 84 E7 D6 State Key State ♁Key 47= 0100 0111 AC= 1010 1100 ----------------------- EB = 1110 1011 ♁ 37= 0011 0111 40 = 0111 0111 ----------------------- 40= 0100 0000 ♁ ♁ 94= 1001 0100 66= 0110 0110 ----------------------- F2= 1111 0010
  • 42. AES Key Expansion • Takes 128-bit (16-byte) key and expands into array of 44/52/60 32-bit words. • Start by copying key into first 4 words. • Then loop creating words that depend on values in previous and 4 places back.  In 3 of 4 cases just XOR these together.  Every 4th has S-box + rotate + XOR constant of previous before XOR together. • Designed to resist known attacks.
  • 44. Steps for computing g function 1. RotWord perform one-byte circular left shift on word , this means that an input word [B0,B1,B2,B3] is transformed into [ B1,B2,B3,B0] 2. Subword perform a Byte substitution on each byte of its input word , using the S-Box 3. The result in step (2) is XORed with a round constant. Rcon[j], the round constant is a word in which the three rightmost bytes are always (0) , and is defined as Rcon[j]=(RC[j],0,0,0), and the values of RC[j] in hexadecimal are Rcon[1]=1 Rcon[j]=2.Recon[j-1]
  • 45. Table below shows how the keys for each round are calculated assuming that the 128-bit cipher key agreed upon by Alice and Bob is (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54 87)16. Example:
  • 46. AES example of key expansion
  • 48. AES Decryption  AES decryption is not identical to encryption since steps done in reverse  but can define an equivalent inverse cipher with steps as for encryption  but using inverses of each step  with a different key schedule  works since result is unchanged when  swap byte substitution & shift rows  swap mix columns & add (tweaked) round key
  • 49. Ciphers and inverse ciphers of the AES

Editor's Notes

  1. The Advanced Encryption Standard (AES) was published by NIST (National Institute of Standards and Technology) in 2001. AES is a symmetric block cipher that is intended to replace DES as the approved standard for a wide range of applications. The AES cipher (& other candidates) form the latest generation of block ciphers, and now we see a significant increase in the block size - from the old standard of 64-bits up to 128-bits; and keys from 128 to 256-bits. In part this has been driven by the public demonstrations of exhaustive key searches of DES. Whilst triple-DES is regarded as secure and well understood, it is slow, especially in s/w. In a first round of evaluation, 15 proposed algorithms were accepted. A second round narrowed the field to 5 algorithms. NIST completed its evaluation process and published a final standard (FIPS PUB 197) in November of 2001. NIST selected Rijndael as the proposed AES algorithm. The two researchers who developed and submitted Rijndael for the AES are both cryptographers from Belgium: Dr. Joan Daemen and Dr.Vincent Rijmen.
  2. In fact, two set of criteria evolved. When NIST issued its original request for candidate algorithm nominations in 1997, the request stated that candidate algorithms would be compared based on the factors shown in Stallings Table5.1, which were used to evaluate field of 15 candidates to select shortlist of 5. These had categories of security, cost, and algorithm & implementation characteristics. The final criteria evolved during the evaluation process, and were used to select Rijndael from that short-list, and more details are given in Stallings Table 5.2, with categories of: general security, ease of software & hardware implementation, implementation attacks, & flexibility (in en/decrypt, keying, other factors).
  3. The shortlist is as shown. Note mix of commercial (MARS, RC6, Twofish) verses academic (Rijndael, Serpent) proposals, sourced from various countries. All were thought to be good – came down to best balance of attributes to meet criteria.
  4. The AES shortlist of 5 ciphers was as shown. Note mix of commercial (MARS, RC6, Twofish) verses academic (Rijndael, Serpent) proposals, sourced from various countries. All were thought to be good – it came down to the best balance of attributes to meet criteria, in particular the balance between speed, security & flexibility.
  5. The Rijndael proposal for AES defined a cipher in which the block length and the key length can be independently specified to be 128,192,or 256 bits. The AES specification uses the same three key size alternatives but limits the block length to 128 bits. Rijndael is an academic submission, based on the earlier Square cipher, from Belgium academics Dr Joan Daemen and Dr Vincent Rijmen. It is an iterative cipher (operates on entire data block in every round) rather than feistel (operate on halves at a time), and was designed to have characteristics of: Resistance against all known attacks, Speed and code compactness on a wide range of platforms, & Design simplicity.
  6. There is a single 8-bit wide S-box used on every byte. This S-box is a permutation of all 256 8-bit values, constructed using a transformation which treats the values as polynomials in GF(28) – however it is fixed, so really only need to know the table when implementing. Decryption requires the inverse of the table.
  7. This step is also a substitution, but one involving ALL values in a column. Designed as a matrix multiplication where each byte is treated as a polynomial in GF(28). The inverse used for decryption involves a different set of constants. The constants used are based on a linear code with maximal distance between code words – this gives good mixing of the bytes within each column. Combined with the “shift rows” step provides good avalanche, so that within a few rounds, all output bits depend on all input bits.