The Encryption Standards

Slides:



Advertisements
Similar presentations
Cryptography and Network Security Chapter 5 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Advertisements

The Advanced Encryption Standard (AES) Simplified.
Advanced Encryption Standard
Algorithm Scheme. AddRoundKey Each round uses four different words from the expanded key array. Each column in the state matrix is XORed with a different.
This Lecture: AES Key Expansion Equivalent Inverse Cipher Rijndael performance summary.
Encryption CS 465 January 9, 2006 Tim van der Horst.
Advanced Encryption Standard. This Lecture Why AES? NIST Criteria for potential candidates The AES Cipher AES Functions and Inverse Functions AES Key.
Cryptography and Network Security (AES) Dr. Monther Aldwairi New York Institute of Technology- Amman Campus 10/18/2009 INCS 741: Cryptography 10/18/20091Dr.
RIJNDAEL Arta Doci University Of Colorado.
Dr. Lo’ai Tawalbeh 2007 Chapter 5: Advanced Encryption Standard (AES) Dr. Lo’ai Tawalbeh New York Institute of Technology (NYIT) Jordan’s Campus.
ECE454/CS594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2011.
Chapter 5 Advanced Encryption Standard. Origins clear a replacement for DES was needed –have theoretical attacks that can break it –have demonstrated.
Cryptography and Network Security
Cryptography and Network Security
Advance Encryption Standard. Topics  Origin of AES  Basic AES  Inside Algorithm  Final Notes.
AES Background and Mathematics CSCI 5857: Encoding and Encryption.
Information Security Lab. Dept. of Computer Engineering 122/151 PART I Symmetric Ciphers CHAPTER 5 Advanced Encryption Standard 5.1 Evaluation Criteria.
 Cryptography is the science of using mathematics to encrypt and decrypt data.  Cryptography enables you to store sensitive.
AES (Advanced Encryption Standard) By- Sharmistha Roy M.Tech, CSE 1 st semester NIT, Agartala.
Advanced Encryption Standard. Origins NIST issued a new version of DES in 1999 (FIPS PUB 46-3) DES should only be used in legacy systems 3DES will be.
Cryptography Lecture 17: Advanced Encryption Standard (AES) Piotr Faliszewski.
Fifth Edition by William Stallings
Advanced Encryption Standard Dr. Shengli Liu Tel: (O) Cryptography and Information Security Lab. Dept. of Computer.
The Advanced Encryption Standard Part 2: Mathematical Background
Computer Science and Engineering Computer System Security CSE 5339/7339 Lecture 7 September 9, 2004.
Data Security and Encryption (CSE348) 1. Lecture # 9 2.
The Advanced Encryption Standard Part 1: Overview
Le Trong Ngoc Security Fundamentals (2) Encryption mechanisms 4/2011.
Information and Computer Security CPIS 312 Lab 6 & 7 1 TRIGUI Mohamed Salim Symmetric key cryptography.
Lecture 4 Data Encryption Standard (DES) Dr. Nermin Hamza
Cryptography and Network Security Chapter 5
CS480 Cryptography and Information Security
Provides Confidentiality
Triple DES.
Cryptography and Network Security
School of Computer Science and Engineering Pusan National University
Secret Key Systems (block encoding)
6b. Practical Constructions of Symmetric-Key Primitives.
Cryptography and Network Security Chapter 5
Data Encryption Standard
Classical Encryption techniques
CIPHERSET GÖKSEL SARIKAYA.
The Advanced Encryption Standard: Rijndael
Networks and Communication Systems Department
NET 311 Information Security
Data Security and Encryption (CSE348)
Parallel Analysis of the Rijndael Block Cipher
AES Objectives ❏ To review a short history of AES
Advanced Encryption Standard (Symmetric key Algorithm)
Cryptography and Network Security
CS 465 AES Last Updated: Sep 7, 2017.
Some of this slide set is from Section 2,
ICS 454: Principles of Cryptography
Fifth Edition by William Stallings
ADVANCED ENCRYPTION STANDARDADVANCED ENCRYPTION STANDARD
Chapter -2 Block Ciphers and the Data Encryption Standard
Chapter -3 ADVANCED ENCRYPTION STANDARD & BLOCK CIPHER OPERATION
Advanced Encryption Standard
Block Ciphers: DES and AES
SYMMETRIC ENCRYPTION.
Advanced Encryption Standard
Cryptography and Network Security Chapter 5
Origins AES = current federal standard for symmetric crypto (replacing DES) DES Key size is too small The variants are just patches can use Triple-DES.
Cryptography and Network Security Chapter 5
Cryptography and Network Security Chapter 5 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Private Key Algorithms Feistel Networks AES
ICS 555: Block Ciphers & DES Sultan Almuhammadi.
Advanced Encryption Standard (AES)
Cryptography and Network Security Chapter 5
Data Encryption Standard (DES)
Presentation transcript:

The Encryption Standards Appendix F Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition Outline Data Encryption Standard Algorithm Advanced Encryption Standard Background mathematics Version 1.0 Computer Security: Art and Science, 2nd Edition

Data Encryption Standard (DES) Input: 64 bit blocks Key: 64 bits 8 bits are immediately discarded, so it is effectively 56 bits Output: 64 bit blocks Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition Main Algorithm Key permuted, split into 2 28-bit parts Each part rotated left by 1 or 2 bits Then the halves combined, permuted, and 48 bits output (round key) Input permuted, split into 2 32-bit parts Right half, round key fed into function f Result of this xor’ed with left half This left half becomes right half, right half becomes left half, as input to next round (but in the last round, this does not occur) After 16 rounds, halves combined, then permuted and that is output Permutation here is inverse of initial input permutation Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition DES Algorithm: Rounds input L15 = R14 R15 = L14 ⊕ f(R14, k15) IP f ⊕ k16 L0 R0 f ⊕ k1 L16 = L15 ⊕ f(R15, k16) R16 L1 = R0 R1 = L0 ⊕ f(R0, k1) IP-1 16 rounds; only first and last are shown output Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition DES Algorithm: f Ri ki 32 bits E 48 bits 48 bits ⊕ S1 S2 S3 S4 S5 S6 S7 S8 P f(Ri, ki) Version 1.0 Computer Security: Art and Science, 2nd Edition

DES Algorithm: Round Key Generation 16 round keys generated 64 bits PC-1 56 bits C0 D0 LSH(s16) LSH(s16) LSH(s1) LSH(s1) C1 D1 48 bits PC-2 k1 C1 D1 48 bits PC-2 k1 Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition How to Read the Tables The ith element of the table, ti, means that ti is the bit of input that is output Example: first row of IP table is: 58 50 42 34 26 18 10 2 so the first bit out output is bit 58 of the input; the second bit of output is bit 50 of the input; and so forth LSH table: when generating the ith round key, the corresponding table entry si is the number of bits to rotate left (note: rotate, not shift) Example: si = 1 means rotate to the left 1 bit; si = 2 means rotate to the left 2 bits Version 1.0 Computer Security: Art and Science, 2nd Edition

Advanced Encryption Standard All take input of 128 bits and produce outputs of 128 bits AES-128: key length of 128 bits, 10 rounds AES-192: key length of 192 bits, 12 rounds AES-256: key length of 256 bits, 14 rounds In what follows: Nk number of 32 bit words in the key Nb number of 32 bit words in the block size Nr number of rounds wi the ith set of 32 bits (4 bytes) of key schedule Represent bytes as 2 hexadecimal digits or 8 binary digits Version 1.0 Computer Security: Art and Science, 2nd Edition

Background: Polynomials in GF(28) Manipulation of bytes treat them as polynomials in GF(28), each bit being a coefficient Byte b5 (hex) is 10110101 (binary) and x7 + x5 + x4 + x2 + 1 (polynomial) Arithmetic involving coefficients is done modulo 2 Addition: same as exclusive or of two bytes: 5b 01011011 ⊕ a4 as, in binary, ⊕ 10101000 f3 11110011 Version 1.0 Computer Security: Art and Science, 2nd Edition

Background: Polynomials in GF(28) To multiply a and b (a•b), convert them to polynomials, multiply them mod x8 + x4 + x3 + x + 1 Note multiplication of coefficients is done mod 2 Example: multiply bytes 57 (hex; 01010111 binary), 83 (hex; 10000011 binary) (x6 + x4 + x2 + x + 1)(x7 + x + 1) = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 = (x8 + x4 + x3 + x + 1)(x5 + x3) + (x7 + x6 + 1) So the result is 11000001 (binary) or c1 (hex), so 57 • 83 = c1 Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Input, State, Output → → input bytes state array output bytes Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Basic Encryption Transformations Built up from 4 of these: SubBytes ShiftRows MixColumns AddRoundKey Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: SubBytes A substitution table: takes 1 byte of input, produces 1 byte of output First 4 bits give the row, next 4 the column Table constructed as follows: Map byte 00 to itself, other bytes to their multiplicative inverse in GF(28); call the result b, with bits b0b1b2b3b4b5b6b7 Let ci be the ith bit of 01100011 Construct b’, with bits b0’b1’b2’b3’b4’b5’b6’b7’, where for i = 0, …, 7: bi’ = bi + b(i+4) mod 8 + b(i+5) mod 8 + b(i+6) mod 8 + b(i+7) mod 8 + ci Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: ShiftRows Rotate (shift cyclically) to the left by the number of the row s0,0 s0,1 s0,2 s0,3 s1,0 s1,1 s1,2 s1,3 s2,0 s2,1 s2,2 s2,3 s3,0 s3,1 s3,2 s3,3 s0,0 s0,1 s0,2 s0,3 s1,1 s1,2 s1,3 s1,0 s2,2 s2,3 s2,0 s2,1 s3,3 s3,0 s3,1 s3,2 → state array before state array after Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: MixColumns Let c = 0, 1, 2, 3 and s0,c’, s1,c’, s2,c’ and s3,c’ the outputs of this s0,c’ = (02 • s0,c) ⨁ (03 • s1,c) ⨁ s2,c ⨁ s3,c s1,c’ = s0,c ⨁ (02 • s1,c) ⨁ (03 • s2,c) ⨁ s3,c s2,c’ = s0,c ⨁ s1,c ⨁ (02 • s2,c) ⨁ (03 • s3,c) s3,c’ = (03 • s0,c) ⨁ s1,c ⨁ s2,c ⨁ (02 • s3,c) Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: AddRoundKey Let r be the current round Remember wi is ith set of 32 bits of key schedule Let c = 0, 1, 2, 3 and s0,c’, s1,c’, s2,c’ and s3,c’ the outputs of this [s0,c’, s1,c’, s2,c’, s3,c’] = [s0,c, s1,c, s2,c, s3,c] ⨁ [w4r+c] Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Encryption Algorithm encrypt(byte in[4*Nb], byte out[4*NB], word w[Nb*(Nr+1)]) begin byte state[4,Nb]; state := in; AddRoundKey(state, w[0, Nb-1]); for round := 1 to Nr-1 do begin SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]); end AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]); out := state;                             Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Basic Encryption Transformations Built up from 4 of these: SubBytes ShiftRows MixColumns AddRoundKey Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: SubBytes A substitution table: takes 1 byte of input, produces 1 byte of output First 4 bits give the row, next 4 the column Table constructed as follows: Map byte 00 to itself, other bytes to their multiplicative inverse in GF(28); call the result b, with bits b0b1b2b3b4b5b6b7 Let ci be the ith bit of 01100011 Construct b’, with bits b0’b1’b2’b3’b4’b5’b6’b7’, where for i = 0, …, 7: bi’ = bi + b(i+4) mod 8 + b(i+5) mod 8 + b(i+6) mod 8 + b(i+7) mod 8 + ci Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: ShiftRows Rotate (shift cyclically) to the left by the number of the row s0,0 s0,1 s0,2 s0,3 s1,0 s1,1 s1,2 s1,3 s2,0 s2,1 s2,2 s2,3 s3,0 s3,1 s3,2 s3,3 s0,0 s0,1 s0,2 s0,3 s1,1 s1,2 s1,3 s1,0 s2,2 s2,3 s2,0 s2,1 s3,3 s3,0 s3,1 s3,2 → state array before state array after Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: MixColumns Let c = 0, 1, 2, 3 and s0,c’, s1,c’, s2,c’ and s3,c’ the outputs of this s0,c’ = (02 • s0,c) ⨁ (03 • s1,c) ⨁ s2,c ⨁ s3,c s1,c’ = s0,c ⨁ (02 • s1,c) ⨁ (03 • s2,c) ⨁ s3,c s2,c’ = s0,c ⨁ s1,c ⨁ (02 • s2,c) ⨁ (03 • s3,c) s3,c’ = (03 • s0,c) ⨁ s1,c ⨁ s2,c ⨁ (02 • s3,c) Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: AddRoundKey Let r be the current round Remember wi is ith set of 32 bits of key schedule Let c = 0, 1, 2, 3 and s0,c’, s1,c’, s2,c’ and s3,c’ the outputs of this [s0,c’, s1,c’, s2,c’, s3,c’] = [s0,c, s1,c, s2,c, s3,c] ⨁ [w4r+c] Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Encryption Algorithm encrypt(byte in[4*Nb], byte out[4*NB], word w[Nb*(Nr+1)]) begin byte state[4,Nb]; state := in; AddRoundKey(state, w[0, Nb-1]); for round := 1 to Nr-1 do begin SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]); end AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]); out := state;                             Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Basic Decryption Transformations Built up from 4 of these: InvSubBytes is the inverse transformation of SubBytes InvShiftRows is the inverse of ShiftRows (cyclic shift to the right by the number of the row) InvMixColumns AddRoundKey Version 1.0 Computer Security: Art and Science, 2nd Edition

Computer Security: Art and Science, 2nd Edition AES: InvMixColumns Let c = 0, 1, 2, 3 and s0,c’, s1,c’, s2,c’ and s3,c’ the outputs of this s0,c’ = (0e • s0,c) ⨁ (0b • s1,c) ⨁ (0d • s2,c) ⨁ (09 • s3,c) s1,c’ = (09 • s0,c) ⨁ (0e • s1,c) ⨁ (0b • s2,c) ⨁ (0d • s3,c) s2,c’ = (0d • s0,c) ⨁ (09 • s1,c) ⨁ (0e • s2,c) ⨁ (0b • s3,c) s3,c’ = (0b • s0,c) ⨁ (0d • s1,c) ⨁ (09 • s2,c) ⨁ (0e • s3,c) Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Decryption Algorithm decrypt(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin byte state[4,Nb]; state := in; AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]); for round := 1 to Nr-1 do begin InvShiftRows(state); InvSubBytes(state); AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]); InvMixColumns(state); end AddRoundKey(state, w[0, Nb-1]); out := state;                             Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Basic Round Key Generation. Transformations Two transformations: SubWord takes 4 bytes as input, applies SubByte to each byte individually, and outputs the result RotWord takes a 4-byte word as input, rotates it right by 1 byte, and outputs the result And a round constant word array: For i-th round, Rcon[i] = [xi-1,00,00,00] where x = 02 and xi uses multiplication as described before Example: Rcon[1] = 01000000; Rcon[2] = 02000000; Rcon[3] = 04000000; Rcon[4] = 08000000; Rcon[5] = 10000000; . . . Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Round Key Generation Algorithm roundkeys(byte key[4*Nk], word w[Nb*(Nr+1)], Nk) begin word temp; for i:= 0 to Nk-1 do w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]); for i := Nk to (Nr+1)*Nb-1 do begin temp := w[i-1]; if (i mod Nk = 0) temp = SubWord(RotWord(temp)) xor Rcon[i/Nk]; else if (Nk > 6 and i mod Nk = 4) temp = SubWord(temp); w[i] = w[i-Nk] xor temp; end Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Equivalent Inverse Cipher Implementation Add these to the end of the Round Key Generation algorithm: for i = 0 to (Nr+1)*Nb-1 do dw[i] = w[i]; for round = 1 to Nr-1 do InvMixColumns(dw[round*Nb, (round+1)*Nb-1]) Version 1.0 Computer Security: Art and Science, 2nd Edition

AES: Alternate Decryption Algorithm equivdecrypt(byte in[4*Nb], byte out[4*NB], word dw[Nb*(Nr+1)]) begin byte state[4,Nb]; state := in; AddRoundKey(state, dw[Nr*Nb, (Nr+1)*Nb-1]); for round := Nr-1 downto Nr-1 do begin InvSubBytes(state); InvShiftRows(state); InvMixColumns(state); AddRoundKey(state, dw[round*Nb, (round+1)*Nb-1]); end AddRoundKey(state, dw[0b, Nb-1]); out := state;                             Version 1.0 Computer Security: Art and Science, 2nd Edition