• No results found

CNS-2.ppt

N/A
N/A
Protected

Academic year: 2020

Share "CNS-2.ppt"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

Cryptography and

Cryptography and

Network Security

Network Security

Chapter 5

Chapter 5

Fourth Edition

Fourth Edition

by William Stallings

by William Stallings

(2)

Chapter 5 –

Chapter 5 –

Advanced Encryption

Advanced Encryption

Standard

Standard

"It seems very simple."

"It seems very simple."

"It is very simple. But if you don't know what

"It is very simple. But if you don't know what

the key is it's virtually indecipherable."

the key is it's virtually indecipherable."

(3)

Origins

Origins

 clear a replacement for DES was neededclear a replacement for DES was needed

 have theoretical attacks that can break ithave theoretical attacks that can break it

 have demonstrated exhaustive key search attackshave demonstrated exhaustive key search attacks

 can use Triple-DES – but slow, has small blockscan use Triple-DES – but slow, has small blocks  US NIST issued call for ciphers in 1997US NIST issued call for ciphers in 1997

 15 candidates accepted in Jun 98 15 candidates accepted in Jun 98  5 were shortlisted in Aug-99 5 were shortlisted in Aug-99

(4)

AES Requirements

AES Requirements

private key symmetric block cipher

private key symmetric block cipher

128-bit data, 128/192/256-bit keys

128-bit data, 128/192/256-bit keys

stronger & faster than Triple-DES

stronger & faster than Triple-DES

active life of 20-30 years (+ archival use)

active life of 20-30 years (+ archival use)

provide full specification & design details

provide full specification & design details

both C & Java implementations

both C & Java implementations

NIST have released all submissions &

NIST have released all submissions &

(5)

AES Evaluation Criteria

AES Evaluation Criteria

initial criteria:

initial criteria:

 security – effort for practical cryptanalysissecurity – effort for practical cryptanalysis

 cost – in terms of computational efficiencycost – in terms of computational efficiency

 algorithm & implementation characteristicsalgorithm & implementation characteristics 

final criteria

final criteria

 general securitygeneral security

 ease of software & hardware implementationease of software & hardware implementation

 implementation attacksimplementation attacks

(6)

AES Shortlist

AES Shortlist

 after testing and evaluation, shortlist in Aug-99: after testing and evaluation, shortlist in Aug-99:

 MARS (IBM) - complex, fast, high security margin MARS (IBM) - complex, fast, high security margin  RC6 (USA) - v. simple, v. fast, low security margin RC6 (USA) - v. simple, v. fast, low security margin  Rijndael (Belgium) - clean, fast, good security margin Rijndael (Belgium) - clean, fast, good security margin  Serpent (Euro) - slow, clean, v. high security margin Serpent (Euro) - slow, clean, v. high security margin  Twofish (USA) - complex, v. fast, high security margin Twofish (USA) - complex, v. fast, high security margin

 then subject to further analysis & commentthen subject to further analysis & comment  saw contrast between algorithms with saw contrast between algorithms with

(7)

The AES Cipher - Rijndael

The AES Cipher - Rijndael

 designed by Rijmen-Daemen in Belgium designed by Rijmen-Daemen in Belgium  has 128/192/256 bit keys, 128 bit data has 128/192/256 bit keys, 128 bit data  an an iterativeiterative rather than rather than feistelfeistel cipher cipher

 processes processes data as block of 4 columns of 4 bytesdata as block of 4 columns of 4 bytes  operates on entire data block in every roundoperates on entire data block in every round

 designed to be:designed to be:

 resistant against known attacksresistant against known attacks

(8)

Rijndael

Rijndael

 data block of data block of 4 columns of 4 bytes is state4 columns of 4 bytes is state

 key is expanded to array of wordskey is expanded to array of words

has 9/11/13 rounds in which state undergoes: has 9/11/13 rounds in which state undergoes:

 byte substitution (1 S-box used on every byte) byte substitution (1 S-box used on every byte)

 shift rows (permute bytes between groups/columns) shift rows (permute bytes between groups/columns)  mix columns (subs using matrix multipy of groups) mix columns (subs using matrix multipy of groups)  add round key (XOR state with key material)add round key (XOR state with key material)

 view as alternating XOR key & scramble data bytesview as alternating XOR key & scramble data bytes

 initial XOR key material & incomplete last roundinitial XOR key material & incomplete last round

(9)
(10)

Byte Substitution

Byte Substitution

 a simple substitution of each bytea simple substitution of each byte

 uses one table of 16x16 bytes containing a uses one table of 16x16 bytes containing a

permutation of all 256 8-bit values

permutation of all 256 8-bit values

 each byte of state is replaced by byte indexed each byte of state is replaced by byte indexed

by row (left 4-bits) & column (right 4-bits)

by row (left 4-bits) & column (right 4-bits)

 eg. byte {95} is replaced by byte in row 9 column 5eg. byte {95} is replaced by byte in row 9 column 5  which has value {2A}which has value {2A}

 S-box constructed using defined transformation S-box constructed using defined transformation

of values in GF(2

of values in GF(288))

(11)
(12)

Shift Rows

Shift Rows

 a circular byte shift in each eacha circular byte shift in each each

 11stst row is unchanged row is unchanged

 22ndnd row does 1 byte circular shift to left row does 1 byte circular shift to left  3rd row does 2 byte circular shift to left3rd row does 2 byte circular shift to left  4th row does 3 byte circular shift to left4th row does 3 byte circular shift to left

 decrypt inverts using shifts to rightdecrypt inverts using shifts to right

 since state is processed by columns, this step since state is processed by columns, this step

permutes bytes between the columns

(13)
(14)

Mix Columns

Mix Columns

each column is processed separately

each column is processed separately

each byte is replaced by a value

each byte is replaced by a value

dependent on all 4 bytes in the column

dependent on all 4 bytes in the column

effectively a matrix multiplication in GF(2

effectively a matrix multiplication in GF(2

88

)

)

using prime poly m(x) =x

(15)
(16)

Mix Columns

Mix Columns

 can express each col as 4 equationscan express each col as 4 equations

 to derive each new byte in colto derive each new byte in col

 decryption requires use of inverse matrixdecryption requires use of inverse matrix

 with larger coefficients, hence a little harderwith larger coefficients, hence a little harder

 have an alternate characterisation have an alternate characterisation

 each column a 4-term polynomialeach column a 4-term polynomial  with coefficients in GF(2with coefficients in GF(288) )

(17)

Add Round Key

Add Round Key

XOR state with 128-bits of the round key

XOR state with 128-bits of the round key

again processed by column (though

again processed by column (though

effectively a series of byte operations)

effectively a series of byte operations)

inverse for decryption identical

inverse for decryption identical

 since XOR own inverse, with reversed keyssince XOR own inverse, with reversed keys

designed to be as simple as possible

designed to be as simple as possible

 a form of Vernam cipher on expanded keya form of Vernam cipher on expanded key

(18)
(19)
(20)

AES Key Expansion

AES Key Expansion

takes 128-bit (16-byte) key and expands

takes 128-bit (16-byte) key and expands

into array of 44/52/60 32-bit words

into array of 44/52/60 32-bit words

start by copying key into first 4 words

start by copying key into first 4 words

then loop creating words that depend on

then loop creating words that depend on

values in previous & 4 places back

values in previous & 4 places back

 in 3 of 4 cases just XOR these togetherin 3 of 4 cases just XOR these together

 11stst word in 4 has rotate + S-box + XOR round word in 4 has rotate + S-box + XOR round

constant on previous, before XOR 4

(21)
(22)

Key Expansion Rationale

Key Expansion Rationale

designed to resist known attacks

designed to resist known attacks

design criteria included

design criteria included

 knowing part key insufficient to find many moreknowing part key insufficient to find many more

 invertible transformationinvertible transformation

 fast on wide range of CPU’sfast on wide range of CPU’s

 use round constants to break symmetryuse round constants to break symmetry

 diffuse key bits into round keysdiffuse key bits into round keys

 enough non-linearity to hinder analysisenough non-linearity to hinder analysis

(23)

AES Decryption

AES Decryption

AES decryption is not identical to

AES decryption is not identical to

encryption since steps done in reverse

encryption since steps done in reverse

but can define an equivalent inverse

but can define an equivalent inverse

cipher with steps as for encryption

cipher with steps as for encryption

 but using inverses of each stepbut using inverses of each step

 with a different key schedulewith a different key schedule

works since result is unchanged when

works since result is unchanged when

 swap byte substitution & shift rowsswap byte substitution & shift rows
(24)
(25)

Implementation Aspects

Implementation Aspects

can efficiently implement on 8-bit CPU

can efficiently implement on 8-bit CPU

 byte substitution works on bytes using a table byte substitution works on bytes using a table

of 256 entries

of 256 entries

 shift rows is simple byte shiftshift rows is simple byte shift

 add round key works on byte XOR’sadd round key works on byte XOR’s

 mix columns requires matrix multiply in mix columns requires matrix multiply in GF(2GF(288) )

which works on byte values, can be simplified

which works on byte values, can be simplified

to use table lookups & byte XOR’s

(26)

Implementation Aspects

Implementation Aspects

can efficiently implement on 32-bit CPU

can efficiently implement on 32-bit CPU

 redefine steps to use 32-bit wordsredefine steps to use 32-bit words

 can precompute 4 tables of 256-wordscan precompute 4 tables of 256-words

 then each column in each round can be then each column in each round can be

computed using 4 table lookups + 4 XORs

computed using 4 table lookups + 4 XORs

 at a cost of 4Kb to store tablesat a cost of 4Kb to store tables

designers believe this very efficient

designers believe this very efficient

implementation was a key factor in its

implementation was a key factor in its

(27)

Summary

Summary

have considered:

have considered:

 the AES selection processthe AES selection process

 the details of Rijndael – the AES cipherthe details of Rijndael – the AES cipher

 looked at the steps in each roundlooked at the steps in each round

 the key expansionthe key expansion

References

Related documents

Our method attempts to permute the rows and columns of the input matrix using a recursive hypergraph-based sparse matrix partitioning scheme so that the resulting matrix

The data of each column (32 bits) in the state matrix was used to be an operand of encryption, when the operation of Shift Rows and Sub Bytes were incorporated.. And each round of

iii Decryption: Decryption involves reversing all the steps taken in encryption using inverse functions like a) Inverse shift rows, b) Inverse substitute bytes, c) Add

Mix Column operation is a diffusion step of AES algorithm performed with cipher using shift row data generated.. Mix columns table is generated into four values with below

Raw data transform it into a raw time dependent data matrix by taking along the rows the age group and along the columns psychological problems using the raw data matrix we make

The scanning of matrix goes as follows, first set the rows data on the 7 rows by transmitting 5 bytes of data corresponding to the character to be displayed using microcontroller

Square Matrix – Matrix where number of rows equals number of columns Diagonal Matrix – Square matrix where all elements off main diagonal are 0 Identity Matrix – Diagonal matrix

marker.pos: A matrix with p rows and 2 columns containing the chromosome number and SNP position for all the genes in the gene expression matrix.. The rows of exp.pos should match