1 / 16

Speaker: Souradyuti Paul (work jointly with B.Preneel and G. Sekar )

Distinguishing Attacks on the Stream Cipher Py (Roo). Speaker: Souradyuti Paul (work jointly with B.Preneel and G. Sekar ) Co mputer S ecurity and I ndustrial C ryptography ( COSIC ) Department of Electrical Engineering-ESAT Katholieke Universiteit Leuven, Belgium

astin
Download Presentation

Speaker: Souradyuti Paul (work jointly with B.Preneel and G. Sekar )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 FSE 2006

  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 FSE 2006

  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 FSE 2006

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

  5. Stage II : Keystream bytes generation of Py Round 2 Round 3 Round 1 mixing mixing mixing . . . Output 1Output 2Output 3 XOR XOR … Plaintext 2 Plaintext 1 Ciphertext 2 … Ciphertext 1 FSE 2006

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

  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 FSE 2006

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

  9. Outputs at 1st and 3rd 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 FSE 2006

  10. Quantifying the bias • The lucky caseL 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) FSE 2006

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

  12. The distinguisher (II) • Requirements: • # of Key/IV’s = 284.7 • key stream per Key/IV=24bytes • time = 284.7 · Tini • The distinguisher works • within Py specifications • with less than exhaustive search FSE 2006

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

  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+µ FSE 2006

  15. Conclusion and remarks • Latest News: Paul Crowley reduced the workload of the distinguisher to 272 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 FSE 2006

  16. Thanks. FSE 2006

More Related