CYG Chapter 5 Fast Block Ciphers

Questions about the lecture 'Cryptography' of the RWTH Aachen Chapter 5 Fast Block Ciphers

Questions about the lecture 'Cryptography' of the RWTH Aachen Chapter 5 Fast Block Ciphers


Fichier Détails

Cartes-fiches 53
Langue English
Catégorie Informatique
Niveau Université
Crée / Actualisé 21.03.2017 / 20.08.2017
Lien de web
https://card2brain.ch/box/20170321_cyg_chapter_5_fast_block_ciphers
Intégrer
<iframe src="https://card2brain.ch/box/20170321_cyg_chapter_5_fast_block_ciphers/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

What happened 15.5.1973?

[history.fastblockciphers]

NBS solicited proposals for a cs, choosing DES based on LUCIFER by IBM (Adler et al.)

What happened 1975?

[history.fastblockciphers]

Rumors say that IBM or the NSA installed trapdoor in DES

What happened 17.3.1975?

[history.fastblockciphers]

DES being published and starting a public discussion

What happened 1.1977?

[history.fastblockciphers]

DES adopted as a standard for unclassified applications

What happened 1999?

[history.fastblockciphers]

Last review of DES in a 5 years loop // Was dedicated for 10-15 years and proved to be more durable

What is the definition?

[keygeneration.DES.fastblockciphers]

K0=(k1, …,k7,b1,k9, …,k63,b8) // 56 bits, extended by 8 (odd) parity bits for each 7 bits for error detection

What are the steps?

[roundkeys.keygeneration.DES.fastblockciphers, 3]

1. Devide 56 key bits into 28 bits each C0 and D0

2. Generate Cn,Dn via cyclic leftshift by sn from Cn-1,Dn-1 with n = 1,…,16 and sn := {If n \in {1,2,9,16} then 1; else 2}

3. Of each (Cn,Dn) select 48 bit

What are the steps?

[encryption.DES.fastblockciphers, 4]

1. Get IP of input bits and divide plaintext into blocks of 64 bits

2. Split into two blocks of 32 bits

3. 16 rounds of SBB

4. Obtain inverse IP-1

What are the steps?

[SBB.encryption.DES.fastblockciphers, 3]

1. Expansion map E doubles 16 of 32 input bits and permutes resulting 48 bits

2. Proceed bitwise xor with round key Ki

3. Obtain P via transformation S

What is the definition?

[S.SBB.encryption.DES.fastblockciphers, 4]

1. {0,1}48 → {0,1}32

2. Divide 48 bits into 8 blocks of 6 bits

3. r = 2*bi1 + bi6

4. s = Sumj=25 25-j*bij

What holds?

[encryption.DES.fastblockciphers, 2]

1. Li = Ri-1, Ri = Li-1 xor f(Ri-1,Ki)

2. Ri-1 = Li, Li-1 = Ri xor f(Li,Ki)

What is the definition?

[decryption.DES.fastblockciphers]

Use encryption algorithm with keys in reverse

What are the characteristics?

[exhaustive.security.DES.fastblockciphers, 2]

1. Look for 256 possible keys

2. Realized in 1999 with 100.000 workstations in 22h

What are the characteristics?

[differential.security.DES.fastblockciphers, 3]

1. Lower complexity of attack with differential cryptanalysis

2. Realized in 1992 at CRYPTO by Biham and Shamir

3. Attack is still complex due to S-Boxes // Did IBM knew about this?

What holds for nowadays?

[security.DES.fastblockciphers]

DES can be broken with todays hardware in relatively short time

What is the definition?

[triple.DES.fastblockciphers, 3]

1. Perform DES three times with different keys

2. c = DESK3(DESK2-1(DESK1(m))) or DESK1(DESK2-1(DESK1(m)))

3. Ensure compatibility with DES via second step and K1=K2=K3

What are the options?

[keygeneration.AES.fastblockciphers, 3]

K0 has a length of 128, 192 or 256 bits

What defines the number?

[roundkey.keygeneration.AES.fastblockciphers]

r := {10 for 128 bits; 12 for 192 bits; 14 for 256 bits}

How are they organized?

[roundkey.keygeneration.AES.fastblockciphers]

Organize each roundkey into a 4x4 matrix of bytes

What is the definition?

[keyexpansion.roundkey.keygeneration.AES.fastblockciphers]

Generates r+1 round keys of 128 bits // Similar for other sizes

What are the steps?

[keyexpansion.roundkey.keygeneration.AES.fastblockciphers, 3]

 

1. View K as a 4-tuple of 32 bit words W0,…,W3

2. Generate 4*(r+1) 32 bit words W0,…,W4r+3

3. Every 4 words form a roundkey

What is the definition?

[Wi.keyexpansion.roundkey.keygeneration.AES.fastblockciphers, 2]

1. Start with i=4

2. If i%4==0 then Wi=Wi-4 xor (SubBytes(RotByte(Wi-1)) xor Rcon(i/4)) else Wi=Wi-4 xor Wi-1

What is the definition?

[rotbyte.keyexpansion.roundkey.keygeneration.AES.fastblockciphers]

Shift cyclically left by one byte

What is the definition?

[rcon.keyexpansion.roundkey.keygeneration.AES.fastblockciphers]

Rcon(i) = (RC(i),0x00,0x00,0x00)

What is the definition?

[rc.keyexpansion.roundkey.keygeneration.AES.fastblockciphers]

RC(i) represents xi-1 as element of F2^8

Where are most computations done?

[encryption.AES.fastblockciphers]

In the field F2^8=F2[X]/(x8+x4+x³+x+1)F2[X]

What are the steps?

[encryption.AES.fastblockciphers, 5]

1. Divide plaintext into blocks of 128 bits

2. Organize each block into a 4x4 matrix of bytes, so-called state

 

3. Bytewise xor of each state with roundkey K0 // AddRoundKey

4. r-1 rounds // SubBytes, ShiftRows, MixColumns and AddRoundKey

5. Perform last round without MixColumns

What is the definition?

[subbytes.encryption.AES.fastblockciphers, 1+3]

1. B → B

 

2. Each byte is viewed as b=b7x7+…+b0 of F2^8

3. Write out the coefficients as y=y7,…,y0 // Multiplicative inverse of b

4. Compute r by affine map A*y +b // Use 256-entry lookup table

What is the definition?

[A.subbytes.encryption.AES.fastblockciphers]

A has 5*1 in a row, starting with (1,0,0,0,1,1,1,1)

What is the definition?

[b.subbytes.encryption.AES.fastblockciphers]

B:=(1;1;0;0;0;1;1;0)

What is the definition?

[shiftrows.encryption.AES.fastblockciphers, 1+3]

1. B → C

 

2. Shift second row cyclically left by one byte

3. Shift third row cyclically left by two byte

4. Shift fourth row cyclically left by three byte

What is the definition?

[mixcolumns.encryption.AES.fastblockciphers, 1+3]

1. C → D

 

2. Each byte is viewed as c=c7x7+…+c0 of F2^8

3. Compute D by multiplication A*C

 

4. Alternative, compute columns of D as four term polynomial

What is the definition?

[A*C.mixcolumns.encryption.AES.fastblockciphers, 2]

1. A has 6*0 +ab starting with (10, 11, 01, 01)

2. Can be computed efficiently with shift and xor

What is the definition?

[4tpoly.mixcolumns.encryption.AES.fastblockciphers, 3+2]

1. f=c3u3+…+c0

2. Multiply by fix polynomial a(u)=(x+1)u³+u²+u+x

3. Reduce modulo u⁴+1 afterwards

 

4. Can be rewritten as T*c

5. T has rows starting with (x, x+1, 1, 1)

What is the definition?

[addroundkey.encryption.AES.fastblockciphers]

Perform bitwise xor with roundkey Ki in ith round

What is the definition?

[decryption.AES.fastblockciphers]

Use encryption algorithm with inverted transformations in reverse

What are the characteristics?

[security.AES.fastblockciphers, 2]

1. Design criteria of AES are fully documented and discussed

2. Open discussion foreclosed suspicion of built-in trapdoors

List them!

[designcriteria.security.AES.fastblockciphers, 6]

1. If 1 byte is modified then 16 bytes are modified after 2 rounds

2. S-Boxes are non-linear to resist differential cryptanalysis

3. Simple algebraic design allows efficient implementations

4. ShiftRows avoids ‘truncated differential-’ and ‘square attack’

5. MixColumns causes diffusion among bytes

6. KeySchedula avoids advantages from knowing parts of the key

What are the characteristics?

[attacks.security.AES.fastblockciphers, 3]

 

1. AES128, AES192 and AES256 are attacked by exhaustive key search

2. Faster attacks can be applied when reducing number of rounds

3. Attacks with complexity 2119 and 299.5 are known since 2009

What happened 9.1997?

[history.fastblockciphers]

NIST solicited 21 proposals for a replacement for DES till 6.1998