Top Banner
ADVANCED ENCRYPTION STANDARD (AES) Tran Song Dat Phuc Department of Computer Science and Engineering Seoul National University of Science and Technology 2013-2014
58

ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Jun 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

ADVANCED ENCRYPTION STANDARD

(AES)

Tran Song Dat Phuc

Department of Computer Science and Engineering

Seoul National University of Science and Technology

2013-2014

Page 2: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Outline

AES History

AES Operations

Advanced Encryption Standard (AES)

AES Implementation

Security of AES

Summary

Page 3: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES

History:

- A replacement of DES was needed

-> key size to small

- Triple-DES is a solution, but slow and small block

- AES Competition started in 1997 by NIST:

. Single block cipher

. Available royalty-free worldwide

. Have a public and flexible design

. 128-bits block data

. 128/192/256-bits key (based on round numbers)

Page 4: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES

- Rijndael design was selected as AES Cipher in 2000

. Design by Vincent Rijmen and Joan Daemen

. Issued as FIPS PUB 197 standard in 2001

. Simplicity

. Support 128-bits block, 128/192/256-bits key

. Resistant against known attack

. Speed and code compactness on many CPU’s

Page 5: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Operations

In AES, all operations are performed on 8-bit bytes,

so it operates on the finite field GF(28), which can

be presented as a polynomial b(x) with binary

coefficient b {0,1}:

b7x7 + b6x

6 + b5x5 + b4x

4 + b3x3 + b2x

2 + b1x + b0

Addition of two bytes in AES is defined as the

bitwise XOR operation.

Page 6: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Operations

Multiplication in AES is defined as multiplication

in the finite field GF(28) of with the irreducible

polynomial of degree 8.

AES irreducible polynomial:

m(x) = x8 + x4 + x3 + x + 1

Page 7: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES (Advance Encryption Standard)

AES is a symmetric block cipher.

- The same key is used to encrypt and decrypt

the message (128/192/256-bits key)

- The plaintext and cipher-text are the same size

(128-bits block)

Page 8: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Block AES has a block size of 128-bits(16bytes) called state

Page 9: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Key

Page 10: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Key

Page 11: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Multiple Rounds

First and last round are different

Page 12: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Round Stage

Page 13: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Structure

Page 14: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Encryption With 128-bits (16bytes), AES views data block as

4-by-4 table of bytes.

Page 15: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AddRoundKey Transformation At each round, the state array is combined with a

similarly sized array of subkey material.

Page 16: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AddRoundKey Transformation

Page 17: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Use to create round key for each round.

If the number of round is , the key-expansion creates

Nr +1 128-bit round keys from one single 128-bit

cipher key.

The key expansion creates round keys word by word,

where a word is an array of four bytes (4 x Nr +1)

w0, w1, w2, … , w4(Nr +1) - 1

with 128-bits key (10 rounds, 44 words, ), 192-bits key

(12 rounds, 52 words) and 256-bits key (14 rounds, 60

words).

Page 18: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Round Words

Pre-round w0 w1 w2 w3

1 w4 w5 w6 w7

2 w8 w9 w10 w11

… …

Nr w4Nr w4Nr+1 w4Nr+2 w4Nr+3

Page 19: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Page 20: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Page 21: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Round Constant ( RCon )

1 (01 00 00 00)16

2 (02 00 00 00)16

3 (04 00 00 00)16

4 (08 00 00 00)16

5 (10 00 00 00)16

6 (20 00 00 00)16

7 (40 00 00 00)16

8 (80 00 00 00)16

9 (1B 00 00 00)16

10 (36 00 00 00)16

RCon Constants

Page 22: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Page 23: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Round Value of t First word Second word Third word Fourth word

__ W00 = 2475A2B3 W01 = 34755688 W02 = 31E21200 W03 = 13AA5487

1 AD20177D W04 = 8955B5CE W05 = BD20E346

W06 = 8CC2F146

W07 = 9F68A5C1

2 470678DB W08 = CE53CD15 W09 = 73732E53 W10 = FFB1DF15 W11 = 60D97AD4

… … … … … …

9 0A5E4F61 W36 = E43FE3BF W37 = 0EC1FCF4 W38 = 21A35A12 W39 = F940C780

10 3FC6CD99 W40 = DBF92E26 W041 = D538D2D2 W42 = F49B88C0 W43 = 0DDB4F40

Page 24: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Key Expansion

Page 25: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation Each byte of the array transformed by the S-box, provide

confusion for cipher.

This takes 8-bits input and returns 8-bits output.

Only one S-box(16x16 bytes) is used throughout AES

cipher, contains a permutation of all 256 8-bits values.

Page 26: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

Page 27: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

SubBytes Transformation using the S-Boxes Table :

State AddRoundKey

Page 28: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

SubBytes Transformation using the GF(28) Field :

- AES defines the transformation algebraically using the

GF(28) field with the irreducible polynomials :

(x8 + x4 + x3 + x + 1) as the modulus.

- The multiplicative inverse of byte (as an 8-bit binary

string) is found in GF(28).

- The inverted byte is interpreted as a column matrix

with the least bit at the top and the most bit at the

bottom.

- This column matrix is multiplied by a constant square

matrix, X, and the result is added with a constant

column matrix, Y, to give a new byte.

Page 29: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

SubBytes Process

Page 30: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation Ex: with byte 53 is transformed by SubBytes routine

- 53 in binary is 0101 0011, can be denoted in the finite field

GF(28) as polynomial : x6 + x4 + x + 1

- Multiplicative inverse of a byte in GF(28) with polynomial :

x8 + x4 + x3 + x + 1 as modulus

- Multiplicative inverse algorithm:

remainder[1] := f(x) auxiliary[1] := 0

remainder[2] := a(x) auxiliary[2] := 1

i := 2

while remainder[i] > 1

i := i + 1 remainder[i] := remainder(remainder[i-2] / remainder[i-1])

quotient[i] := quotient(remainder[i-2] / remainder[i-1])

auxiliary[i] := -quotient[i] * auxiliary[i-1] + auxiliary[i-2]

inverse := auxiliary[i]

Page 31: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

- The multiplicative inverse of byte 53 is CA.

x7 + x6 + x3 + x = 1100 1010 (CA in Hex)

i Remainder[i] Quotient[i] Auxiliary[i]

1 x8 + x4 + x3 + x + 1 0

2 x6 + x4 + x + 1 1

3 x2 x2 + 1 x2 + 1

4 x + 1 x4 + x2 x6 + x4 + x4 + x2 + 1

5 1 x + 1 x7 + x6 + x3 + x2 + x2 + x + 1 + 1

6 0 x + 1

Page 32: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

- Multiply the inverted byte with the matrix X.

- An easier way to view the matrix multiplication is as

polynomial multiplication.

Row 1 = 1000 1111 = N0 + N4 + N5 + N6 + N7 0 + 0 + 0 + 1 + 1 = 0

Row 2 = 1100 0111 = N0 + N1 + N5 + N6 + N7 0 + 1 + 0 + 1 + 1 = 1

Row 3 = 1110 0011 = N0 + N1 + N2 + N6 + N7 0 + 1 + 0 + 1 + 1 = 1

Row 4 = 1111 0001 = N0 + N1 + N2 + N3 + N7 0 + 1 + 0 + 1 + 1 = 1

Row 5 = 1111 1000 = N0 + N1 + N2 + N3 + N4 0 + 1 + 0 + 1 + 0 = 0

Row 6 = 0111 1100 = N1 + N2 + N3 + N4 + N5 1 + 0 + 1 + 0 + 0 = 0

Row 7 = 0011 1110 = N2 + N3 + N4 + N5 + N6 0 + 1 + 0 + 0 + 1 = 0

Row 8 = 0001 1111 = N3 + N4 + N5 + N6 + N7 1 + 0 + 0 + 1 + 1 = 1

- The result of multiplication is the vector : 0111 0001.

Page 33: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

SubBytes Transformation

Page 34: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

ShiftRows Transformation

Page 35: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

ShiftRows Transformation

Before After

Page 36: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

ShiftRows and MixColumns provide confusion for cipher.

Each column of the array is mixed together.

Each byte is replaced by a value dependent on all 4 bytes

of column.

Page 37: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 38: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 39: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 40: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 41: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

. {02 . 63} :

02 = 0000 0010 (in Binary), be denoted in GF(28) as the

polynomial : x

63 = 0110 0011 (in Binary), in GF(28) as the polynomial :

x6 + x5 + x + 1

{02 . 63} = x(x6 + x5 + x + 1) = x7 + x6 + x2 + x

. {03 . F2} :

03 = 0000 0011 = x + 1

F2 = 1111 0010 = x7 + x6 + x5 + x4 + x

{03 . F2} = (x + 1)(x7 + x6 + x5 + x4 + x)

= x8 + x7 + x6 + x5 + x2 + x7 + x6 + x5 + x4 + x

= (x8 + x4 + x2 + x) mod (x8 + x4 + x3 + x + 1)

Page 42: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

x8 + x4 + x2 + x x8 + x4 + x3 + x + 1

x8 + x4 + x3 + x + 1 1

x3 + x2 + 1

{03 . F2} = x3 + x2 + 1

. {01 . 7D} = x6 + x5 + x4 + x3 + x2 + 1

. {01 . D4} = x7 + x6 + x4 + x2

. P0 = {02 . 63} + {03 . F2} + {01 . 7D} + {01 . D4}

= x7 + x6 + x2 + x + x3 + x2 + 1

+ x6 + x5 + x4 + x3 + x2 + 1 + x7 + x6 + x4 + x2

= x6 + x5 + x = 0110 0010 = 62 (in Hex)

Page 43: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 44: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 45: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 46: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

MixColumns Transformation

Page 47: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Decryption with AES Decryption do operations similar to encryption process, in

reverse order.

Use InvSubBytes, InvShiftRows, InvMixColumns replace to

SubBytes, ShiftRows and MixColumns.

Page 48: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Decryption with AES S-box S-1[.] of InvSubBytes.

Page 49: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Decryption with AES

InvSubBytes Process

Page 50: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Decryption with AES

Matrix M-1 of InvMixColumns.

M-1 =

0E 0B 0D 0909 0E 0B 0D0D 09 0E 0B0B 0D 09 0E

Page 51: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Implementation

Page 52: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Implementation

Page 53: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Implementation

The Avalanche Effect:

- A change in one bit of either the plaintext or the

key should produce a change in many bits of the

ciphertext.

Page 54: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Implementation

Page 55: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Implementation

Page 56: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Security AES was designed after DES. Most of the known

attacks on DES were already tested on AES.

Brute-Force Attack:

- AES is definitely more secure than DES due to the

larger-size key.

Statistical Attacks:

- Numerous tests have failed to do statistical analysis

of the cipher-text.

Differential and Linear Attacks:

- There are no differential and linear attacks on AES as

yet.

Page 57: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

AES Security

Differential Cryptanalysis:

- Study of how differences in input affect differences in

output.

- Can greatly reduced due to high number of rounds.

Linear Cryptanalysis:

- Study of correlations between input and output.

- S-Box and MixColumns are designed to frustrate

Linear Analysis.

Page 58: ADVANCED ENCRYPTION STANDARD (AES) · The Advanced Encryption Standard (AES) is a symmetric-key block cipher published in 2000. AES was given to improve DES weaknesses as well as

Summary

The Advanced Encryption Standard (AES) is a

symmetric-key block cipher published in 2000.

AES was given to improve DES weaknesses as

well as create stronger block cipher design.

AES uses 128-bits length as input, with 128, 192,

256-bits key size to produce 128-bits output.

AES showed its advantage to secure against most

known attacks (brute-force, statistical, differential

and linear cryptanalysis).