31
Symmetric key cryptography - preliminaries (operational and attacker models) - block ciphers (basics, DES, 3DES, AES) - block ciphers in practice (modes of operation) - a security flaw induced by CBC padding - stream ciphers “The best system is to use a simple, well understood algorithm which relies on the security of a key rather than the algorithm itself. This means if anybody steals a key, you could just roll another and they have to start all over.” -- Andrew Carol 2 © Levente Buttyán E D x plaintext k encryption key k’ decryption key E k (x) ciphertext D k’ (E k (x)) = x attacker Operational model of encryption attacker’s goal: to systematically recover plaintext from ciphertext to deduce the (decryption) key Kerckhoff’s assumption: attacker knows all details of E and D attacker doesn’t know the (decryption) key Ciphers in general

Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

1

Symmetric key cryptography

- preliminaries (operational and attacker models)- block ciphers (basics, DES, 3DES, AES)- block ciphers in practice (modes of operation)- a security flaw induced by CBC padding- stream ciphers

“The best system is to use a simple, well understood algorithm which relies onthe security of a key rather than the algorithm itself. This means if anybodysteals a key, you could just roll another and they have to start all over.”

-- Andrew Carol

2© Levente Buttyán

EE DDxplaintext

kencryption key

k’decryption key

Ek(x)ciphertext

Dk’ (Ek(x)) = x

attacker

Operational model of encryption

attacker’s goal:– to systematically recover plaintext from ciphertext– to deduce the (decryption) key

Kerckhoff’s assumption:– attacker knows all details of E and D– attacker doesn’t know the (decryption) key

Ciph

ers

in g

ener

al

Page 2: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

2

3© Levente Buttyán

Attack models

ciphertext-only– only data transmitted over the ciphertext channel is available to the

attackerknown-plaintext – plaintext-ciphertext pairs are available to the attacker

chosen-plaintext – ciphertexts are available corresponding to plaintexts of the attacker’s

choice– adaptive: choice of plaintexts may depend on previously obtained plaintext-

ciphertext pairschosen-ciphertext– plaintext-ciphertext pairs are available for some number of ciphertexts of

the attacker’s choice– adaptive: choice of ciphertexts may depend on previously obtained

plaintext-ciphertext pairsrelated-key attack– attacker has access to the encryption of plaintexts under both the

unknown key and keys known to have certain relationship with the unknown key

Ciph

ers

in g

ener

al

4© Levente Buttyán

block ciphers

blockcipherblockcipher

plaintext ciphertext

keypadding

Asymmetric- vs. symmetric-key encryption

asymmetric-key encryption– it is hard (computationally infeasible) to compute k’ from k– k can be made public (public-key cryptography)

symmetric-key encryption– it is easy to compute k from k’ (and vice versa)– often k = k’– two main types: stream ciphers and block ciphers

pseudo-randombit stream generator

pseudo-randombit stream generator

+... ...plaintext ciphertext

stream ciphersseed

Ciph

ers

in g

ener

al

Page 3: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

3

Block ciphers:DES, 3DES, and AES

- basics- operation of DES- cryptanalysis of DES- multiple encryption and the 3DES- AES

“Feistel and Coppersmith rule: Sixteen rounds and one hell of an avalanche.”-- Stephan Eisvogel in de.comp.security

6© Levente Buttyán

Block ciphers

an n bit block cipher is a function E: {0, 1}n x {0, 1}k {0, 1}n, such that for each K ∈ {0, 1}k, E(X, K) = EK(X) – is an invertible mapping from {0, 1}n to {0, 1}n

– cannot be efficiently distinguished from a random permutationthe inverse of EK(X) is denoted by DK(Y), where Y = EK(X)

Bloc

k ciph

er b

asics

EE… …

n bit input n bit output

k bit key

permutationdefined by K

poss

ible

cip

hert

exts

poss

ible

pla

inte

xts

permutationdefined by K’

poss

ible

cip

hert

exts

poss

ible

pla

inte

xts

Page 4: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

4

7© Levente Buttyán

Trade-offs in block size

attacks based on small block size– text dictionary attack

• plaintext-ciphertext pairs become known for a fixed key• the “larger” the dictionary the greater the chance of locating a

random ciphertext in it• if n is small, then it is feasible to build “large” dictionaries

– matching ciphertext attacks• if a dictionary of size about 2n/2 have been created, and about 2n/2

ciphertexts are subsequently given, then one expects to locate a ciphertext in the dictionary with high probability (birthday paradox)

larger block size is more secure

disadvantages of large block size– more costly to implement (in terms of gates or low level

instructions)

Bloc

k ciph

er b

asics

8© Levente Buttyán

Exhaustive key search and key size

given a small number of plaintext-ciphertext pairs encrypted under a key K, K can be recovered by exhaustive key search with 2k-1 processing complexity (expected number of operations)– input: (X, Y), (X’, Y’), …– progress through the entire key space

• for each trial key K’, decrypt Y• if the result is not X, then throw away K’• if the result is X, then check the other pairs (X’, Y’), …• if K’ does not work for at least one pair, then throw away K’

– if K’ worked for all pairs (X, Y), (X’, Y’), …, then output K’ as the target key

– on average, the target key is found after searching half of the key space

if the plaintexts are known to contain redundancy, then ciphertext-only exhaustive key search is possible with a relatively small number of ciphertexts

Bloc

k ciph

er b

asics

Page 5: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

5

9© Levente Buttyán

How to build a “strong” block cipher?

complex encryption function can be built by composing several simple operations which offer complementary – but individually insufficient – protectionsimple operations:– elementary arithmetic operations– logical operations (e.g., XOR)– modular multiplication – transpositions– substitutions– etc.

let’s combine two or more transformations in a manner that the resulting cipher is more secure than the individual components

Bloc

k ciph

er b

asics

10© Levente Buttyán

Example: SP networks

an SP (substitution-permutation) network is a product ciphercomposed of stages each involving key controlled substitutions (non-linear look-up tables) and permutations

SS

…SS

…SS

…SS

PP… … … …

SS

…SS

…SS

…SS

PP… … … …

Bloc

k ciph

er b

asics

K1

Kr

X

Y

Page 6: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

6

11© Levente Buttyán

DES – Data Encryption Standard

input size: 64output size: 64key size: 5616 roundsFeistel structure

Initial PermutationInitial Permutation

FF+

FF+

FF+

FF+

…Initial Permutation-1Initial Permutation-1

(64)

(64)

(32)(32)

(48)

(48)

(48)

(48)

Key

Sche

dule

r

(56)

K

K1

K2

K16

K3

X

YBloc

k ciph

ers

/ DES

12© Levente Buttyán

DES round function F

++++++ ++++++ ++++++ ++++++ ++++++ ++++++ ++++++ ++++++

S1S1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S8S8

PP

– Si – substitution box (S-box) – P – permutation box (P-box)

keyinjection

Bloc

k ciph

ers

/ DES

Page 7: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

7

13© Levente Buttyán

DES key scheduler

Permuted Choice 1Permuted Choice 1

Permuted Choice 2Permuted Choice 2

Left shift(s) Left shift(s)

Permuted Choice 2Permuted Choice 2

Left shift(s) Left shift(s)

(28)

(56)K

(28)

(28)(28)

(48)

(48)

K1

K2

each key bit is used in around 14 out of 16 rounds

Bloc

k ciph

ers

/ DES

14© Levente Buttyán

Feistel structure illustrated

FF+

FF+

FF+

L0 R0

L1 R1

L2 R2

Lr-1 Rr-1

Rr Lr

K1

K2

Kr

FF+

FF +

L0 R0

L1R1

L2 R2

Rr-1 Lr-1

Rr Lr

K1

K2

FF+

K3

FF +

Kr

twis

ted

ladd

er

untw

iste

d la

dder

Bloc

k ciph

ers

/ DES

Page 8: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

8

15© Levente Buttyán

Properties of Feistel ciphers

round i maps (Li-1, Ri-1) into (Li, Ri) as follows:Li = Ri-1Ri = Li-1 ⊕ F(Ri-1, Ki)

a Feistel cipher is always invertible even if F is not invertible:Ri-1 = LiLi-1 = Ri ⊕ F(Ri-1, Ki) = Ri ⊕ F(Li, Ki)

decryption can be achieved using the same r-round process with the round keys used in reverse order (Kr through K1)

Bloc

k ciph

ers

/ DES FF+

L RKi

FF+

KiL ⊕ F(R, K)

L R

16© Levente Buttyán

Complementation property of DES

Y = DESK(X) implies Y* = DESK*(X*)– where X* denotes the bitwise complement of X

Bloc

k ciph

ers

/ DES

FF+

Li-1* Ri-1*

Ri*Li*

Ki*

F(Ri-1, Ki)

E

+

S

PF

R*

K*

E(R*) = E(R)*

E(R)* + K* = E(R) + K

S( E(R) + K )

P(S( E(R) + K )) = F(R, K)

Page 9: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

9

17© Levente Buttyán

Consequences of the complementation prop.

assume an attacker can mount a chosen-plaintext attackthe attacker chooses a plaintext X, and obtains Y1 = DESK(X) and Y2 = DESK(X*)by the complementation property, the attacker knows that DESK*(X) = Y2*the attacker then runs an exhaustive key search– for each trial key K’, he computes Y’ = DESK’(X)

• if Y’ = Y1, then K’ is possibly the target key (should be further tested)• if Y’ = Y2*, then K’* is possibly the target key (should be further

tested)• otherwise throw away both K’ and K’*

expected number of keys required before success is reduced from 255 to 254

still impractical as an attack

Bloc

k ciph

ers

/ DES

18© Levente Buttyán

DES weak keys and semi-weak keys

a weak key is a key K such that DESK(DESK(X)) = X– there are 4 DES weak keys:

0101 0101 0101 0101FEFE FEFE FEFE FEFE1F1F 1F1F 0E0E 0E0EE0E0 E0E0 F1F1 F1F1

a semi-weak key pair is a pair (K1, K2) such that DESK1(DESK2(X)) = X– there are 6 pairs of DES semi-weak keys

why are these keys weak?– for each weak key K, there exist 232 fix points of DESK,

i.e., plaintext X such that DESK(X) = X– for 4 out of the 12 semi-weak keys, there exist 232 anti-fix points,

i.e., plaintext X such that DESK(X) = X*

Bloc

k ciph

ers

/ DES

Page 10: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

10

19© Levente Buttyán

Linear and differential cryptanalysis of DES

linear cryptanalysis (LC)– linear cryptanalysis is the most powerful attack against DES to

date– requires an enormous number (~243) known plaintext-ciphertext

pairs infeasible in practical environments– could work in a ciphertext only model if plaintexts are redundant

(e.g., contain parity bits)

differential cryptanalysis (DC)– most general cryptanalytic tool to date against iterated block

ciphers (including DES, FEAL, IDEA)– primarily a chosen-plaintext attack– in case of DES, it requires ~247 chosen plaintext-ciphertext pairs

infeasible in practical environments

DES was optimized against DC when it was designedit can, however, be improved with respect to LC (apparently the designers of DES was not aware of this attack at that time)

Bloc

k ciph

ers

/ Cr

ypta

nalysis

of D

ES

20© Levente Buttyán

if a block cipher is susceptible to exhaustive key search (e.g., DES), then encryption of the same message more than once may increase security

– stage keys may not be independent• e.g., two-key 3DES: K1 = K3

– a stage cipher may be either a block cipher or its corresponding decryption function

• e.g., 3DES-EDE (encryption-decryption-encryption)

Multiple encryption and 3DES

Bloc

k ciph

ers

/ M

ultiple

encr

yption E/DE/D E/DE/DX Y

M

K1 K2

double encryption

E/DE/D E/DE/DX YA

K1 K3

triple encryption

E/DE/D

K2

B

Page 11: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

11

21© Levente Buttyán

Meet-in-the-middle attack on double enc.

a naïve exhaustive key search attack on double encryption tries all 22k keysa known-plaintext meet-in-the-middle attack defeats double encryption using an order of 2k operations and 2k storage– attack time is reduced at the cost of substantial space

meet-in-the-middle attack:– input: known plaintext-ciphertext pairs (X, Y), (X’, Y’), …– compute Mi = Ei(X) for all possible key values K1 = i and store all

(Mi, i) pairs in a table– compute M’j = Dj(Y) for all possible key values K2 = j and check for

hits M’j = Mi against entries in the stored table • M’j need not be stored, it can be checked as it is generated

– each hit identifies a candidate solution key pair (i, j)– using a second plaintext-ciphertext pair (X’, Y’), discard false hits– for an L stage cascade of random ciphers, the expected number of

false key hits when t plaintext-ciphertext pairs are available is 2Lk-tn, where n and k are the block and key sizes, resp.

Bloc

k ciph

ers

/ M

ultiple

encr

yption

22© Levente Buttyán

AES – Advanced Encryption Standard

NIST selected Rijndael (designed by Joan Daemen and Vincent Rijmen) as a successor of DES (3DES) in November 2001Rijndael parameters– key size 128 192 256– input/output size 128 128 128– number of rounds 10 12 14– round key size 128 128 128

not Feistel structuredecryption algorithm is different from encryption algorithm (optimized for encryption)single 8 bit to 8 bit S-boxkey injection (bitwise XOR)

Bloc

k ciph

ers

/ AES

(Ri

jnda

el)

Page 12: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

12

23© Levente Buttyán

General structure of encryption/decryption

add round key

substitute bytes

shift rows

mix columns

add round key

substitute bytes

shift rows

mix columns

add round key

substitute bytes

shift rows

add round key

plaintext

ciphertext

add round key

inverse subs bytes

inverse shift rows

inverse mix columns

add round key

inverse subs bytes

inverse shift rows

inverse mix columns

add round key

inverse subs bytes

inverse shift rows

add round key

plaintext

ciphertext

w[0..3]

w[4..7]

w[36..39]

w[40..43]

expa

nded

key

roun

d 1

roun

d 9

roun

d 10

round 1round 9

round 10

Bloc

k ciph

ers

/ AES

(Ri

jnda

el)

24© Levente Buttyán

Shift row and mix column

s00

s10

s20

s30

s01

s11

s21

s31

s02

s12

s22

s32

s03

s13

s23

s33

s00

s11

s22

s33

s01

s12

s23

s30

s02

s13

s20

s31

s03

s10

s21

s32

LROT1LROT2LROT3

shift row

s00

s10

s20

s30

s01

s11

s21

s31

s02

s12

s22

s32

s03

s13

s23

s33

s’00

s’10

s’20

s’30

s’01

s’11

s’21

s’31

s’02

s’12

s’22

s’32

s’03

s’13

s’23

s’33

mix column

2 3 1 11 2 3 11 1 2 33 1 1 2

x =

multiplications and additionsare performed over GF(28)

Bloc

k ciph

ers

/ AES

(Ri

jnda

el)

Page 13: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

13

25© Levente Buttyán

Key expansion

k0

k1

k2

k3

k4

k5

k6

k7

k8

k9

k10

k11

k12

k13

k14

k15

w0 w1 w2 w3

w4 w5 w6 w7

+ + + +

w8 w9 w10 w11

+ + + +

function g- rotate word- substitute bytes- XOR with round constant

gg

gg

Bloc

k ciph

ers

/ AES

(Ri

jnda

el)

26© Levente Buttyán

Summary

block cipher basics– trade-offs in block size– trade-offs in key size, exhaustive key search– product ciphers, SP networks

DES– operation– properties (Feistel structure, complementation, weak keys)– differential and linear cryptanalysis– multiple encryption and the 3DES– meet-in-the middle attack on 2DES

AES– operation

Page 14: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

14

Using a block cipher in practice:modes of operation

- ECB- CBC- CFB, OFB, CTR

28© Levente Buttyán

Block cipher modes of operation

ECB – Electronic Codebook– used to encipher a single plaintext block (e.g., a DES key)

CBC – Cipher Block Chaining– repeated use of the encryption algorithm to encipher a message

consisting of many blocksCFB – Cipher Feedback– used to encipher a stream of characters, dealing with each

character as it comes OFB – Output Feedback– another method of stream encryption, used on noisy channels

CTR – Counter – simplified OFB with certain advantages

triple-inner-CBC and triple-outer-CBC– possible modes of operation when multiple encryption is used

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 15: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

15

29© Levente Buttyán

encrypt

decrypt

ECB mode

EE

P1

C1

K EE

P2

C2

K EE

PN

CN

K…

DD

C1

P1

K DD

C2

P2

K DD

CN

PN

K…

Bloc

k ciph

ers

/ M

odes

of

oper

ation

30© Levente Buttyán

Properties of ECB mode

identical plaintext blocks result in identical ciphertext blocks (under the same key of course)– messages to be encrypted often have very regular formats– repeating fragments, special headers, string of 0s, etc. are quite

commonblocks are encrypted independently of other blocks– reordering ciphertext blocks result in correspondingly reordered

plaintext blocks– ciphertext blocks can be cut from one message and pasted in

another, possibly without detectionerror propagation: one bit error in a ciphertext block affects only the corresponding plaintext block (results in garbage)

overall: not recommended for messages longer than one block, or if keys are reused for more than one block

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 16: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

16

31© Levente Buttyán

CBC mode

encrypt

decrypt

EE

P1

C1

K

+

EE

P2

C2

K

+

EE

P3

C3

K

+

EE

PN

CN

K

+IV CN-1

DD

C1

P1

K

+IV

DD

C2

P2

K

+

DD

C3

P3

K

+

DD

CN

PN

K

+CN-1

Bloc

k ciph

ers

/ M

odes

of

oper

ation

32© Levente Buttyán

Properties of CBC mode

encrypting the same plaintexts under the same key, but different IVs result in different ciphertextsciphertext block Cj depends on Pj and all preceding plaintext blocks– rearranging ciphertext blocks affects decryption– however, dependency on the preceding plaintext blocks is only via

the previous ciphertext block Cj-1– proper decryption of a correct ciphertext block needs a correct

preceding ciphertext block onlyerror propagation: – one bit error in a ciphertext block Cj has an effect on the j-th and

(j+1)-st plaintext block• Pj’ is complete garbage and Pj+1’ has bit errors where Cj had• an attacker may cause predictable bit changes in the (j+1)-st plaintext

blockerror recovery:– recovers from bit errors (self-synchronizing)– cannot, however, recover from frame errors (“lost” bits)

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 17: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

17

33© Levente Buttyán

Integrity of the IV in CBC mode

the IV need not be secret, but its integrity should be protected– malicious modification of the IV allows an attacker to make

predictable changes to the first plaintext block recoveredone solution is to send the IV in an encrypted form at the beginning of the CBC encrypted message

Bloc

k ciph

ers

/ M

odes

of

oper

ation

34© Levente Buttyán

Padding

the length of the message may not be a multiple of the block size of the cipherone can add some extra bytes to the short end block until it reaches the correct size – this is called paddingusually the last byte indicates the number of padding bytes added – this allows the receiver to remove the padding

note: if the encrypted message must have the same size as the clear message, then no padding can be used– encrypt the last ciphertext block again– select m bits and XOR them to the remaining m bits of the clear

message

05

short end block padding

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 18: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

18

35© Levente Buttyán

CFB mode

– encrypt – decrypt

EE

Pi Ci

K

+

shift register (n)

(n)

select s bitsselect s bits

(n)

(s)(s) (s)

(s)

initialized with IV

EE

Ci Pi

K

+

shift register (n)

(n)

select s bitsselect s bits

(n)

(s)(s) (s)

(s)initialized with IV

Bloc

k ciph

ers

/ M

odes

of

oper

ation

36© Levente Buttyán

Properties of CFB mode

encrypting the same plaintexts under the same key, but different IVs result in different ciphertextsthe IV can be sent in clearciphertext block Cj depends on Pj and all preceding plaintext blocks– rearranging ciphertext blocks affects decryption– proper decryption of a correct ciphertext block needs the

preceding n/s ciphertext blocks to be correcterror propagation:– one bit error in a ciphertext block Cj has an effect on the

decryption of that and the next n/s ciphertext blocks (the error remains in the shift register for n/s steps)

• Pj’ has bit errors where Cj had, all the other erroneous plaintext blocks are garbage

• an attacker may cause predictable bit changes in the j-th plaintext block

error recovery:– self synchronizing, but requires n/s blocks to recover

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 19: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

19

37© Levente Buttyán

OFB mode

– encrypt – decrypt

EE

Pi Ci

K

+

shift register (n)

(n)

select s bitsselect s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

EE

Ci Pi

K

+

shift register (n)

(n)

select s bitsselect s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

Bloc

k ciph

ers

/ M

odes

of

oper

ation

38© Levente Buttyán

Properties of OFB mode

a different IV should be used for every new message, otherwise messages will be encrypted with the same key streamthe IV can be sent in clear– however, if the IV is modified by the attacker, then the cipher will never

recover (unlike CFB)ciphertext block Cj depends on Pj only (does not depend on the preceding plaintext blocks)– however, rearranging ciphertext blocks affects decryption

feedback size should be equal to n– (= n) cycle length is around 2n-1

– (< n) cycle length is around 2n/2

error propagation:– one bit error in a ciphertext block Cj has an effect on the decryption of

only that ciphertext block• Pj’ has bit errors where Cj had• an attacker may cause predictable bit changes in the j-th plaintext block

error recovery:– recovers from bit errors– never recovers if bits are lost or the IV is modified

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 20: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

20

39© Levente Buttyán

– encrypt – decrypt

CTR mode

EE

Pi Ci

K

+

(n)

(n)

(n)

counter + i

(n)

EE

Ci Pi

K

+

(n)

(n)

(n)

counter + i

(n)

Bloc

k ciph

ers

/ M

odes

of

oper

ation

40© Levente Buttyán

Properties of CTR mode

similar to OFBcycle length depends on the size of the counter (typically 2n)the i-th block can be decrypted independently of the others– parallelizable (unlike OFB)– random access

the values to be XORed with the plaintext can be pre-computedat least as secure as the other modes

note1: in CFB, OFB, and CTR mode only the encryption algorithm is used (decryption is not needed)– that is why Rijndael is optimized for encryption– these modes shouldn’t be used with public-key encryption algs.

note2: the OFB and CTR modes essentially make a synchronous stream cipher out of a block cipher, whereas the CFB mode converts a block cipher into a self-synchronizing stream-cipher

Bloc

k ciph

ers

/ M

odes

of

oper

ation

Page 21: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

21

A security flaw induced by CBC padding

42© Levente Buttyán

CBC encryption with padding

TLS padding– last byte is the length n of the padding– all padding bytes have the value n– examples for correct padding: 0, 11, 222, 3333, …

verification of TLS padding:– if the last byte is n, then verify if the last n+1 bytes are all n

EE

P1

C1

K

+

EE

P2

C2

K

+

EE

P3

C3

K

+

EE

PN

CN

K

+IV CN-1

padd

ing

pad.

len.

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

Page 22: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

22

43© Levente Buttyán

Side channel

TLS record message format

send a random message to a TLS serverthe server will drop the message with overwhelming probability– either the padding is incorrect (the server responds with a

DECRYPTION_FAILED alert)– or the MAC is incorrect with very high probability (the server responds

with BAD_RECORD_MAC alert)if the response is BAD_RECORD_MAC, then the padding was correct

we get 1 bit of information !

p.lenpadding

application data

MAC

type version length

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

44© Levente Buttyán

Last byte(s) oracle

assume we have an encrypted block y1y2…y8 = EK(x1x2…x8)we want to compute x8 (the last byte of x)idea:1. choose a random block r1r2…r8; let i = 02. send r1r2…r7(r8⊕i)y1y2…y8 to the server (oracle)3. if there’s a padding error, then increment i and go back to step 24. if there’s no padding error, then r⊕x ends with 0 or 11 or 222 …

• the most likely is that (r8⊕i)⊕x8 = 0, and hence x8 = r8⊕i

DKDK

r1r2…r7(r8⊕i)

garbage

K

+

DKDK

y1y2…y8

K

+IVx1x2…x8

(r1⊕x1)(r2⊕x2)…(r8⊕i⊕x8)

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

Page 23: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

23

45© Levente Buttyán

Last byte(s) oracle

assume we get that x⊕r has a correct padding, but we don’t know if it is 0 or 11 or 222 … idea:

1. let j = 12. change rj and send r1r2…r8y1y2…y8 to the server again3. if the padding is still correct then the j-th byte was not a padding

byte; increment j and go back to step 24. if the padding becomes incorrect then the j-th byte was the first

padding byte; xj ⊕ rj|xj+1 ⊕ rj+1 | … | x8 ⊕ r8 = (8-j) |…| (8-j) and hence xj xj+1 … x8 = rj⊕(8-j) rj+1⊕(8-j) … r8⊕(8-j)

x = DE AD BE EF DE AD BE EFr = 01 23 45 67 DD AE BD ECr⊕x = DF 8E FB 88 03 03 03 03j r r⊕x padding1 00 23 45 67 DD AE BD EC DE 8E FB 88 03 03 03 03 OK2 00 22 45 67 DD AE BD EC DE 8F FB 88 03 03 03 03 OK3 00 22 44 67 DD AE BD EC DE 8F FA 88 03 03 03 03 OK4 00 22 44 66 DD AE BD EC DE 8F FA 89 03 03 03 03 OK5 00 22 44 66 DC AE BD EC DE 8F FA 89 02 03 03 03 ERRORx5 x6 x7 x8 = DD⊕03 AE⊕03 BD⊕03 EC⊕03 = DE AD BE EF

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

46© Levente Buttyán

Block decryption oracle

assume we have an encrypted block y1y2…y8 = EK(x1x2…x8) and we know the value of xjxj+1…x8 (using the last byte(s) oracle)we want to compute xj-1idea:

1. choose a random block r1r2…r8 such that rj = xj⊕(9-j); rj+1 = xj+1⊕(9-j); … r8 = x8⊕(9-j);

2. let i = 03. send r1r2…rj-2(rj-1⊕i)rj…r8y1y2…y8 to the server (oracle)4. if there’s a padding error then increment i and go back to step 35. if there’s no padding error then xj-1⊕rj-1⊕i = 9-j and hence

xj-1 = rj-1⊕i⊕(9-j)

x = DE AD BE EF DE AD BE EFr = 01 23 45 67 DA A9 BA EBr⊕x = DF 8E FB 88 04 04 04 04i r r⊕x padding0 01 23 45 67 DA A9 BA EB DF 8E FB 88 04 04 04 04 ERROR1 01 23 45 66 DA A9 BA EB DF 8E FB 89 04 04 04 04 ERROR… … … …140 01 23 45 EB DA A9 BA EB DF 8E FB 04 04 04 04 04 OK

x4 = 67⊕8C⊕04 = EF

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

Page 24: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

24

47© Levente Buttyán

Decryption oracle

assume we have a CBC encrypted message (C1, C2, …, CN) where – C1 = EK(P1⊕IV)– Ci = EK(Pi⊕Ci-1) (for 1 < i < N)– CN = EK([PN|pad|plen]⊕CN-1)

we want to compute P1, P2, … PN

idea: – decrypt CN using the block decryption oracle and XOR the result

to CN-1; you get PN|pad|plen– decrypt Ci using the block decryption oracle and XOR the result to

Ci-1; you get Pi– decrypt C1 using the block decryption oracle and XOR the result to

IV; you get P1 (if IV is secret you cannot get P1)

complexity of the whole attack:on average we need only ½*256*8*N = 1024*N oracle calls !

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

48© Levente Buttyán

Application

vulnerable protocols: SSL, TLS, WTLS, IPsec, …some notes:– problems (and solutions) with TLS

• alert messages are encrypted BAD_RECORD_MAC and DECRYPTION_FAILED cannot be distinguished

– measure timing between oracle call and oracle response– BAD_RECORD_MAC takes more time than DECRYPTION_FAILED

• BAD_RECORD_MAC and DECRYPTION_FAILED are fatal errors connection is closed after one oracle call

– a password can still be broken if it is sent periodically to a server using TLS (a different session is used each time the password is sent)

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

Page 25: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

25

49© Levente Buttyán

Example: IMAP over TLS

Outlook Express checks for new mail on the server periodically (every 5 minutes)each time the same password is sent for every folderXXXX LOGIN “username” “password”<0D><0A>it is possible to uncover the password using the attack as follows:

client man-in-the-middle server

X X X X L O GI N b u t t ya n k i s k ac s a

DECRYPTION_FAILEDDECRYPTION_FAILED

∆t

r1 r2 r3 r4 r5 r6 r7 r8a n k i s k a

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

50© Levente Buttyán

Fixes

randomize response time after an error occurred (measuring timing of alert messages won’t work)use random padding bytesput the padding before the MAC !

A s

ecur

ity

flaw

ind

uced

by

CBC

padd

ing

Page 26: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

26

Stream ciphers

- general principles- one-time pad- LFSR based stream ciphers- RC4

52© Levente Buttyán

General principles

while block ciphers simultaneously encrypt groups of characters, stream ciphers encrypt individual characters– may be better suited for real time applications

stream ciphers are usually faster than block ciphers in hardware (but not necessarily in software)limited or no error propagation– may be advantageous when transmission errors are probable

note: the distinction between stream ciphers and block ciphers is not definitive– stream ciphers can be built out of block ciphers using CFB, OFB,

or CTR modes– a block cipher in ECB or CBC mode can be viewed as a stream

cipher that operates on large characters

Stre

am c

iphe

rs

Page 27: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

27

53© Levente Buttyán

Synchronous stream ciphers

the key stream is generated independently of the plaintext and of the ciphertextproperties:– needs synchronization between the sender and the receiver

• if a character is inserted into or deleted from the ciphertext stream then synchronization is lost and the plaintext cannot be recovered

• additional techniques must be used to recover from loss of synch.insertion and deletion are easy to detect by the receiver

– no error propagation• a ciphertext character that is modified during transmission affects only the

decryption of that characteran attacker can make changes to selected ciphertext characters and know exactly what effect these changes have on the plaintext (if h = XOR)

Stre

am c

iphe

rs

σiσi gk

gk hh

fkfk

σi+1 zi

pi

ci

54© Levente Buttyán

Self-synchronizing stream ciphers

the key stream is generated as a function of a fixed number of previous ciphertext charactersproperties:– self-synchronizing

• since the size t of the register is fixed, a lost ciphertext character affects only the decryption of the next t ciphertext charactersmore difficult to detect insertion and deletion of ciphertext char’s

– limited error propagation• if a ciphertext character is modified, then decryption of the next t ciphertext

characters may be incorrectmodifications are easier to detect than in case of synch. stream ciphers

– ciphertext characters depend on all previous plaintext characters• better diffusion of plaintext statistics

Stre

am c

iphe

rs

gkgk hh

zi

pi

ci

regi

ster

Page 28: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

28

55© Levente Buttyán

Vernam cipher and the one-time pad

Vernam cipher– ci = pi ⊕ ki for i = 1, 2, …

where pi are the plaintext digits, ki are the key stream digits, ciare the ciphertext digits, and ⊕ is the bitwise XOR operation

one-time pad– a Vernam cipher where the key stream digits are generated

independently and uniformly at random– the one-time pad is unconditionally secure [Shannon, 1949]

• I(P; C) = H(P) - H(P|C) = 0– a necessary condition for a symmetric key cipher to be

unconditionally secure is that H(K) ≥ H(P) [Shannon, 1949]• practically, the key must have as many bits as the compressed

plaintext • impractical because of key management problems

Stre

am c

iphe

rs

56© Levente Buttyán

Linear feedback shift registers (LFSR)

Stre

am c

iphe

rs

stage L-1stage L-1 stage L-2stage L-2 stage 1stage 1 stage 0stage 0

+

output

c1

+

c2

+

cL-1

cL

– where each ci ∈ {0, 1} and each stage can store 1 bit– operation is controlled by a clock– during each time unit

• the content of stage 0 is output• the contents of a fixed subset of stages are XORed• the content of stage i is moved to stage i-1 (i = 1, 2, …, L-1) and the

result of the XOR operation is moved in stage L-1 (feedback)

Page 29: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

29

57© Levente Buttyán

Maximum length LFSR and linear complexity

maximum length LFSR– since the number of possible states of an LFSR is finite, the

output stream it produces is always periodic– an LFSR is maximum length LFSR, if it produces an output

sequence with maximum possible period 2L-1 (m-sequence)– m-sequences have good statistical properties

linear complexity – the linear complexity L(sn) of a finite binary sequence sn is the

length of the shortest LFSR that generates a sequence having sn

as its first n elements– Berlekamp-Massey algorithm:

• let s be a binary sequence of linear complexity L, and let t be a finite subsequence of s of length at least 2L

• the Berlekamp-Massey algorithm with input t determines an LFSR of length L that generates s

an LFSR should not be used as a key stream generator, as the resulting stream cipher would be vulnerable to known-plaintext attacks

Stre

am c

iphe

rs

58© Levente Buttyán

Stream ciphers based on LFSRs

Stre

am c

iphe

rs

LFSR 1LFSR 1

LFSR 2LFSR 2

LFSR nLFSR n

ff key stream

nonlinear combination generators

Page 30: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

30

59© Levente Buttyán

Stream ciphers based on LFSRs

Stre

am c

iphe

rs

stage L-1stage L-1 stage L-2stage L-2 stage 1stage 1 stage 0stage 0

+

c1

+

c2

+

cL-1

cL

f

key stream

nonlinear filter generators

60© Levente Buttyán

Stream ciphers based on LFSRs

clock-controlled generators– alternating step generator

– shrinking generator

Stre

am c

iphe

rs

LFSR 1

LFSR 3

LFSR 2

+ key streamclock

LFSR 2

LFSR 1

clock if ai = 1 output bielse discard bi

ai

bi

key stream

Page 31: Symmetric key cryptography - BME Hálózati Rendszerek és …buttyan/courses/BSc_Coding_Tech/... · 2007-09-26 · 1 Symmetric key cryptography - preliminaries (operational and attacker

31

61© Levente Buttyán

RC4 stream cipher

initialization (input: a seed K of keylen bytes)for i = 0 to 255 do

S[i] = i;T[i] = K[i mod keylen];

initial permutationj = 0;for i = 0 to 255 do

j = (j + S[i] + T[i]) mod 256;swap(S[i], S[j]);

stream generation (output: a stream of pseudo-random bytes)i, j = 0;while true

i = (i + 1) mod 256;j = (j + S[i]) mod 256;swap(S[i], S[j]);output S[(S[i] + S[j]) mod 256];

Stre

am c

iphe

rs