AES Advanced Encryption Standard Prepared by: Divan Sir
Mar 26, 2015
AESAdvanced Encryption Standard
Prepared by:Divan Sir
Requirements for AES
• AES had to be a private key algorithm. It had to use a shared secret key.
• It had to support the following key sizes: – 128 bits – 192 bits – 256 bits
• DES uses only 56-bit keys.• If you were able to search half the DES key space in 1 second,
then on average, it would take 149 trillion years to crack a 128-bit AES key.
Operation
• 1) Expand 128 bits key or 16-byte ( 4 X 4 Arrays) key into 11 (4 X 4 Arrays) and each arrays containing 16 bytes. (16 bytes – 176 bytes) (4 words – 44 words)(w0 to w43).
• 2)16 – bytes plain text block is copied into 4x4 array is called state
• 3)XOR state with key block.
Key expansion
Key expansion
• After filling first array the remaining 10 arrays (w4 to w43) are filled one by one.
• If the word in W array is a multiple of four, some complex logic is used like w4,w8,w12…. But for others simple XOR is used.
• Like for w5, we would XOR w4 and w1 and store output as w5.
Key expansion
• But if word is multiple of four w4,w8,w12… then three functions are used.
• Rotate, Substitute and constant• Rotate :• Suppose original 4 word key is:
Byte
0 1 2 3 4 5 6 7 8 9 10
11
12
13
14
15
hex 00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
Key expansion
• For find w4: • First Rotation will produce Rotate W3 ( 0C 0D
0E 0F) which is equals to ( 0D 0E 0F 0C ).
•
Key expansion• 2) second substitute,we need to take one byte
at a time and look up in S- box. For example first byte 0D is replace with 00,similarly, 0E is replace with 00..so on…
Key expansion
• 3) Finally at last stage substituted word XOR with constant ( with the help of constant table) as per round number.
• Like D7 AB 76 FE XOR 01 00 00 00 = D6 AB 76 FE
• Finally this XOR with w [i-4] means w0. where I = word number
Round 1 2 3 4 5 6 7 8 9 10
constant 01 02 04 08 10 20 40 80 1B 36
Plain text
• First Plain text of 16 bytes arrange into 4 x 4 array.
• Apply s-box to each array of plain text bytes.
Plain text
• Second step rotate Row of plain text k bytes.
Plain text• Last perform Mix columns: Matrix
multiplication….
One round
• Finally plaintext (substituted, rotate and mix columns ) XOR with KEY ( Expand, rotate, substitute, and xor with constant).