distinguishing attacks on the stream cipher py roo

Distinguishing Attacks on the Stream Cipher Py (Roo) Speaker: - PowerPoint PPT Presentation

Distinguishing Attacks on the Stream Cipher Py (Roo) Speaker: Souradyuti Paul (work jointly with B.Preneel and G. Sekar) Computer Security and Industrial Cryptography (COSIC) Department of Electrical Engineering-ESAT Katholieke Universiteit


  1. Distinguishing Attacks on the Stream Cipher Py (Roo) Speaker: Souradyuti Paul (work jointly with B.Preneel and G. Sekar) Computer Security and Industrial Cryptography (COSIC) Department of Electrical Engineering-ESAT Katholieke Universiteit Leuven, Belgium Email: Souradyuti.Paul@esat.kuleuven.be 17th March 2006 FSE 2006 1

  2. Outline � Py and a Short History � Description of Py � Basic Idea of Attack and Assumptions � Observation: Input-Output Correlation � The Bias and the Distinguisher � Complexities of the Attack � Biases in other Pairs of Bits � Conclusions and Remarks 17th March 2006 FSE 2006 2

  3. Py and the evolution of RC4 � RC4 (1987) by Rivest � IA, IB, ISAAC (1996) by Jenkins Jr. � RC4A (2004) by Paul and Preneel � VMPC (2004) by Zoltak � HC-256 (2004) by Wu � GGHN (2005) by Gong et al . � Py, Py6 (2005) by Biham and Seberry � PyPy (2006) by Biham and Seberry 17th March 2006 FSE 2006 3

  4. Stage I : Key/IV set-up of Py s Key Key/IV set-up Algo 32 bits 256 bits (Step 1) IV P 128 bits 256x8 bits P 256x8 bits Y Y 260x32 bits 260x32 bits Initialization 17th March 2006 FSE 2006 4

  5. Stage II : Keystream bytes generation of Py Round 2 Round 3 Round 1 s s’ s’’ mixing mixing mixing P P’ P’’ . . . Y Y’ Y’’ Output 1 Output 2 Output 3 XOR XOR … Plaintext 2 Plaintext 1 Ciphertext 2 … Ciphertext 1 17th March 2006 FSE 2006 5

  6. Single round of Py: ith round 000 000 001 001 002 … 093 … 094 094 095 095 096 … 253 … 254 254 255 255 P 165 233 233 113 001 113 001 … 093 ... 233 093 079 165 079 … 096 ... 096 143 165 143 0 255 -3 -3 -2 -2 -1 -1 … … 094 094 095 095 … … 256 256 Y X’ X Y Y Z M Z M … … N P P F … Q L X’ L O(1,i) O(2,i) 17th March 2006 FSE 2006 6

  7. The basic idea of our attacks and assumptions � Assumption: Key/IV set-up is perfect � Focus: mixing of bits in a round � Identify: a class of internal states introducing bias in the outputs � Observe: rest of the states do not cancel bias (reason: rigorous mixing) � Conclude: output is biased on a randomly chosen internal state 17th March 2006 FSE 2006 7

  8. Main observation: A lucky case in the array P … 26 … 72 … 116 … 208 … 239 … P 1 Round 1 … 26 … 72 … 116 … 208 … 239 … X -18 Y P mod32 Round 2 … 26 … 72 … 116 … 208 … 239 … P Y+1 7 254 X+1 mod32 8 Round 3

  9. Outputs at 1 st and 3 rd rounds Bias in the lsb’s. z=O(1,1)[0] XOR O(2,3)[0] P(z=0)=1 -3 -2 -1 0 1 … … … 254 255 256 Y G H H G Round 1 Round 2 Round 3 O(1,1) = (S XOR G) + H O(2,3) = (S XOR H) + G 17th March 2006 FSE 2006 9

  10. Quantifying the bias � The lucky case L occurs with prob. 2 -41.9 � For the lucky case the P(z=0|L)=1 � For the rest of the cases, we observe that P(z=0|L’) =1/2 (see the paper) � The overall prob. P(z=0) =½·(1+ 2 -41.9 ) 17th March 2006 FSE 2006 10

  11. The distinguisher (I) Biased Output z Key/IV Py n … … � Optimal Distinguisher: If # of 0’s ≥ # of 1’s then Py else Random � The advantage is close to 0% for n=1 � If n=2 84.7 then advantage is more than 50% 17th March 2006 FSE 2006 11

  12. The distinguisher (II) � Requirements: � # of Key/IV’s = 2 84.7 � key stream per Key/IV=24 bytes � time = 2 84.7 · T ini � The distinguisher works � within Py specifications � with less than exhaustive search 17th March 2006 FSE 2006 12

  13. The distinguisher (III) � A variant of the distinguisher works in a single keystream but takes longer outputs than specified 2 64 � To reduce work load, a hybrid distinguisher with many key/IV’s and less than 2 64 output bytes per Key/IV is also possible within the scope of the Py specification 17th March 2006 FSE 2006 13

  14. Bias in other pairs of bits O(1,1) = (S XOR G) + H O(2,3) = (S XOR H) + G Bias in the ith bits. z=O(1,1)[i] XOR O(2,3)[i] P(z=0)=1/2+µ 17th March 2006 FSE 2006 14

  15. Conclusion and remarks � Latest News: Paul Crowley reduced the workload of the distinguisher to 2 72 by combining all the individual biased bits � The modified version PyPy certainly does not contain this weakness � A completely unsubstantiated personal opinion: PyPy may come under distinguishing attack with workload less than exhaustive search 17th March 2006 FSE 2006 15

  16. Thanks. 17th March 2006 FSE 2006 16

Recommend


More recommend


Explore More Topics

Stay informed with curated content and fresh updates.