Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cryptography CS 555 Topic 15: Stream Ciphers.

Similar presentations


Presentation on theme: "Cryptography CS 555 Topic 15: Stream Ciphers."— Presentation transcript:

1 Cryptography CS 555 Topic 15: Stream Ciphers

2 An Existential Crisis? We have used primitives like PRGs, PRFs to build secure MACs, CCA- Secure Encryption etc… Do such primitives exist? In practice? How do we build them?

3 Recap Hash Functions/PRGs/PRFs, CCA-Secure Encryption, MACs
Goals for This Week: Practical Constructions of Symmetric Key Primitives Today’s Goals: Stream Ciphers Linear Feedback Shift Registers (and attacks) RC4 (and attacks) Trivium

4 PRG Security as a Game ∀ Pr 𝐺𝑢𝑒𝑠𝑠𝑒𝑠 𝑏 ′ =𝑏 ≤ 1 2 +𝜇(𝑛) Random bit b
If b=1 r← 0,1 𝑛 R = G(r) Else 𝑅← 0,1 ℓ 𝑛 b’ ∀ Pr 𝐺𝑢𝑒𝑠𝑠𝑒𝑠 𝑏 ′ =𝑏 ≤ 1 2 +𝜇(𝑛) 𝑝𝑝𝑡 𝑎𝑡𝑡𝑎𝑐𝑘𝑒𝑟 𝑛𝑒𝑔𝑙𝑖𝑔𝑖𝑏𝑙𝑒 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 Suppose we have m,m’,c’ s.t. Pr[EncK(m)= c’] > Pr[EncK(m’)=c’] then adversary can select m0= m, m1=m’. If the ciphertext challenge c=c’ then the adversary outputs guess b’ = 1. Otherwise, the adversary outputs random guess b’.

5 Stream Cipher vs PRG PRG pseudorandom bits output all at once
Pseudorandom bits can be output as a stream RC4, RC5 (Ron’s Code) st0 := Init(s) For i=1 to ℓ: (yi,sti):=GetBits(sti-1) Output: y1,…,yℓ

6 Linear Feedback Shift Register

7 Linear Feedback Shift Register
State at time t: 𝑠 𝑛−1 𝑡 ,…, 𝑠 1 𝑡 , 𝑠 0 𝑡 (n registers) Feedback Coefficients: 𝐒⊆ 0,…,𝑛

8 Linear Feedback Shift Register
State at time t: 𝑠 𝑛−1 𝑡 ,…, 𝑠 1 𝑡 , 𝑠 0 𝑡 (n registers) Feedback Coefficients: 𝐒⊆ 0,…,𝑛−1 State at time t+1: ⨁ 𝑖∈𝑆 𝑠 𝑖 𝑡 , 𝑠 𝑛−1 𝑡 ,…, 𝑠 1 𝑡 , 𝑠 𝑛−1 𝑡+1 = ⨁ 𝑖∈𝑆 𝑠 𝑖 𝑡 , and 𝑠 𝑖 𝑡+1 = 𝑠 𝑖+1 𝑡 for i<n−1 Output at time t+1: 𝒚 𝒕+𝟏 =𝒔 𝟎 𝒕

9 Linear Feedback Shift Register
Observation 1: First n bits of output reveal initial state 𝑦 1 ,…, 𝑦 𝑛 =𝑠 0 0 , 𝑠 1 0 ,…, 𝑠 𝑛−1 0 Observation 2: Next n bits allow us to solve for n unknowns 𝑥 𝑖 = if 𝑖∈𝑆 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑦 𝑛+1 = 𝑦 𝑛 𝑥 𝑛−1 +…+ 𝑦 1 𝑥 0

10 Linear Feedback Shift Register
Observation 1: First n bits of output reveal initial state 𝑦 1 ,…, 𝑦 𝑛 =𝑠 0 0 , 𝑠 1 0 ,…, 𝑠 𝑛−1 0 Observation 2: Next n bits allow us to solve for n unknowns 𝑥 𝑖 = if 𝑖∈𝑆 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑦 𝑛+1 = 𝑦 𝑛 𝑥 𝑛−1 +…+ 𝑦 1 𝑥 0 mod 2

11 Linear Feedback Shift Register
Observation 2: Next n bits allow us to solve for n unknowns 𝑥 𝑖 = if 𝑖∈𝑆 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑦 𝑛+1 = 𝑦 𝑛 𝑥 𝑛−1 +…+ 𝑦 1 𝑥 0 mod 2 𝑦 2𝑛 = 𝑦 2𝑛−1 𝑥 𝑛−1 +…+ 𝑦 𝑛 𝑥 0 mod 2 N unknowns & N linear independent constraints

12 Removing Linearity Attacks exploited linear relationship between state and output bits Nonlinear Feedback: 𝑠 𝑛−1 𝑡+1 = ⨁ 𝑖∈𝑆 𝑠 𝑖 𝑡 , 𝑠 𝑛−1 𝑡+1 =𝑔 𝑠 0 𝑡 , 𝑠 1 𝑡 ,…, 𝑠 𝑛−1 𝑡 Non linear function

13 Removing Linearity Attacks exploited linear relationship between state and output bits Nonlinear Combination: 𝒚 𝒕+𝟏 =𝒔 𝟎 𝒕 𝑦 𝑡+1 =𝑓 𝑠 0 𝑡 , 𝑠 1 𝑡 ,…, 𝑠 𝑛−1 𝑡 Important: f must be balanced! Pr 𝑓 𝑥 =1 ≈ 1 2 Non linear function

14 Trivium (2008) Won the eSTREAM competition
Currently, no known attacks are better than brute force Couples Output from three nonlinear Feedback Shift Registers First 4*288 “output bits” are discared

15 Trivium (2008)

16 Trivium (2008) AND (Non-linear)

17 Trivium (2008) (Non-linear) Feedback

18 Combination Generator
Attacks exploited linear relationship between state and output bits Nonlinear Combination: 𝒚 𝒕+𝟏 =𝒔 𝟎 𝒕 𝑦 𝑡+1 =𝑓 𝑠 0 𝑡 , 𝑠 1 𝑡 ,…, 𝑠 𝑛−1 𝑡 Important: f must be balanced! Pr 𝑓 𝑥 =1 ≈ 1 2 Non linear function

19 Feedback Shift Registers
Good performance in hardware Performance is less ideal for software

20 The RC4 Stream Cipher A proprietary cipher owned by RSA, designed by Ron Rivest in Became public in 1994. Simple and effective design. Variable key size (typical 40 to 256 bits), Output unbounded number of bytes. Widely used (web SSL/TLS, wireless WEP). Extensively studied, not a completely secure PRNG, when used correctly, no known attacks exist Newer Versions: RC5 and RC6 Rijndael selected by NIST as AES in 2000 CS555

21 The RC4 Cipher The cipher internal state consists of
a 256-byte array S, which contains a permutation of 0 to 255 total number of possible states is 256!  21700 two indexes: i, j i = j = 0 Loop i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) output S[S[i] + S[j] (mod 256)] End Loop CS555

22 Distinguishing Attack
Let 𝑆 0 denote initial state Suppose that 𝑆 0 [2]=0 and 𝑆 0 [1]=X≠0 i = j = 0 Loop i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) output S[S[i] + S[j] (mod 256)] End Loop 1 2 3 X 255 𝑆 0 𝑆 0 [1]≠0 𝑆 0 [3] 𝑆 0 [X] 𝑆 0 [255] CS555

23 Distinguishing Attack
Let 𝑆 0 denote initial state Suppose that 𝑆 0 [2]=0 and 𝑆 0 [1]=X≠0 i = j = 0 Loop i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) output S[S[i] + S[j] (mod 256)] End Loop 1 2 3 X 255 𝑆 0 𝑿≠𝟎 𝑆 0 [3] 𝑺 𝟎 [X] 𝑆 0 [255] i=1, j =X CS555

24 Distinguishing Attack
1 2 3 X 255 𝑆 0 𝑿≠𝟎 𝑆 0 [3] 𝑺 𝟎 [X] 𝑆 0 [255] 𝑆 1 Let 𝑆 0 denote initial state Suppose that 𝑆 0 [2]=0 and 𝑆 0 [1]=X≠0 i = j = 0 Loop i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) output S[S[i] + S[j] (mod 256)] End Loop i=1, j =X Output y1= 𝑆 1 [S[i]+S[j]] i=2, j =X CS555

25 Distinguishing Attack
1 2 3 X 255 𝑆 0 𝑿≠𝟎 𝑆 0 [3] 𝑺 𝟎 [X] 𝑆 0 [255] 𝑆 1 𝑆 0 [X] 𝑆 2 Let 𝑆 0 denote initial state Suppose that 𝑆 0 [2]=0 and 𝑆 0 [1]=X≠0 i = j = 0 Loop i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) output S[S[i] + S[j] (mod 256)] End Loop i=2, j =X Output: y2= S2[S2[2]+S2[X]] = S2[0+X] =0 CS555

26 Distinguishing Attack
Let p=Pr 𝑆 0 [2]=0 and 𝑆 0 [1] ≠2 𝑝= − 1 255 Probability second output byte is 0 Pr 𝑦2=0 | 𝑆 0 [2]=0 and 𝑆 0 [1] ≠2 𝑝+Pr 𝑦2=0 | 𝑆 0 [2]≠0 or 𝑆 0 [1]≠2 (1−𝑝) =𝑝+ 1−𝑝 = − − ≈ 2 256 CS555

27 Other Attacks Wired Equivalent Privacy (WEP) encryption used RC4 with an initialization vector Description of RC4 doesn’t involve initialization vector… But WEP imposes an initialization vector K=IV || K’ Since IV is transmitted attacker may have first few bytes of K! Giving the attacker partial knowledge of K often allows recovery of the entire key K’ over time! CS555

28 Next Class Read Katz and Lindell Block Ciphers


Download ppt "Cryptography CS 555 Topic 15: Stream Ciphers."

Similar presentations


Ads by Google