Py SPP attack Improving on the attack
Improved Cryptanalysis of Py Paul Crowley LShift Ltd State of the - - PowerPoint PPT Presentation
Improved Cryptanalysis of Py Paul Crowley LShift Ltd State of the - - PowerPoint PPT Presentation
Py SPP attack Improving on the attack Improved Cryptanalysis of Py Paul Crowley LShift Ltd State of the Art in Stream Ciphers 2006 Py SPP attack Improving on the attack Py eSTREAM entrant by Eli Biham and Jennifer Seberry Fast in
Py SPP attack Improving on the attack
Py
✎ eSTREAM entrant by Eli Biham and Jennifer Seberry ✎ Fast in software (2.6 cycles/byte on some platforms) ✎ SPP attack: 288 bytes of output ✎ Our attack: 272 bytes
Py SPP attack Improving on the attack
Output
P O1 O2
Py SPP attack Improving on the attack
Update
P P
Py SPP attack Improving on the attack
SPP attack
✎ Gautham Sekar, Souradyuti Paul, Bart Preneel ✎ Defines event L with Pr❬L❪ ✙ 241✿91 ✎ When L occurs, two output bits are the same
Py SPP attack Improving on the attack
Event L (1)
S S P
Py SPP attack Improving on the attack
Event L (2)
S A A A B B B O1❀1 O2❀3
Py SPP attack Improving on the attack
Result of event L
S A B O1❀1 O2❀3
Py SPP attack Improving on the attack
Improving on the attack
✎ Use all bits of O1❀1❀ O2❀3 ✎ Group output by column bitwise ✎ Find exact probability Pr❬O1❀1❀ O2❀3 ❂ o1❀1❀ o2❀3❥L❪ ✎ Apply optimal distinguisher
Py SPP attack Improving on the attack
Addition
❬c❪0 ❬c❪1 ❬c❪2 ❬c❪3 ❬X❪0 ❬Y❪0 ❬X ✰ Y❪0 ❬X❪1 ❬Y❪1 ❬X ✰ Y❪1 ❬X❪2 ❬Y❪2 ❬X ✰ Y❪2 ❬X❪3 ❬Y❪3 ❬X ✰ Y❪3
Py SPP attack Improving on the attack
Carry propagation
❬S❪i ❬A❪i ❬B❪i ❬O1❀1❪i ❬O2❀3❪i ❬c1❪i ❬c3❪i ❬c1❪i✰1 ❬c3❪i✰1
Py SPP attack Improving on the attack
Carry propagation
❬S❪i ❬A❪i ❬B❪i ❬O1❀1❪i ❬O2❀3❪i ❬c1❪i ❬c3❪i ❬c1❪i✰1 ❬c3❪i✰1
Py SPP attack Improving on the attack
Hidden Markov model
0❀ 0 0❀ 0 1❀ 0 1❀ 0 1 1 1
1 2 1 8 1 8
Py SPP attack Improving on the attack
Hidden Markov model
0❀ 0 0❀ 0 1❀ 0 1❀ 0 1 1 1
1 2 1 8 1 8
Py SPP attack Improving on the attack
The forward algorithm
Pr ✔ 1 1 1 ✕ ❂ 11✂4M1❀0M0❀0M1❀1✙0 where 11✂4 ❂
- 1
1 1 1 ✁ and ✙0 ❂ ✵ ❇ ❇ ❅ 1 ✶ ❈ ❈ ❆
Py SPP attack Improving on the attack
Optimal distinguisher
✎ Thomas Baignères, Pascal Junod, Serge Vaudenay ✎ Optimal distinguisher chooses the distribution which has
the highest probability of producing the observed output
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1 ❥❩❥3
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1 ❥❩❥3 Pr❬s0❥L❪ Pr❬s1❥L❪ Pr❬s2❥L❪
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1 ❥❩❥3 Pr❬s0❥L❪ Pr❬s1❥L❪ Pr❬s2❥L❪ ❥❩❥1 ❥❩❥1 ❥❩❥1
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1 ❥❩❥3 Pr❬s0❥L❪ Pr❬s1❥L❪ Pr❬s2❥L❪ ❥❩❥1 ❥❩❥1 ❥❩❥1 Pr❬s0❪ Pr❬s1❪ Pr❬s2❪
Py SPP attack Improving on the attack
Optimal distinguisher
s0 s1 s2 ❥❩❥1 ❥❩❥1 ❥❩❥1 ❥❩❥3 Pr❬s0❥L❪ Pr❬s1❥L❪ Pr❬s2❥L❪ ❥❩❥1 ❥❩❥1 ❥❩❥1 Pr❬s0❪ Pr❬s1❪ Pr❬s2❪ Pr❬s0 ❫ s1 ❫ s2❪
Py SPP attack Improving on the attack
Efficacy of optimal distinguisher
✎ Where distribution is “close” to uniform random, efficacy
☞ ❂ ❥❩❥ P
z✷❩
✏ Pr❬z❪
1 ❥❩❥
✑2
✎
☞
✎
☞ ❂ ❬ ❪
- ❥❩❥
P
✷❩
❬ ❥ ❪ ✁
- ✁
✎
☞ ❂ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of optimal distinguisher
✎ Where distribution is “close” to uniform random, efficacy
☞ ❂ ❥❩❥ P
z✷❩
✏ Pr❬z❪
1 ❥❩❥
✑2
✎ Need around 2
☞ samples
✎
☞ ❂ ❬ ❪
- ❥❩❥
P
✷❩
❬ ❥ ❪ ✁
- ✁
✎
☞ ❂ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of optimal distinguisher
✎ Where distribution is “close” to uniform random, efficacy
☞ ❂ ❥❩❥ P
z✷❩
✏ Pr❬z❪
1 ❥❩❥
✑2
✎ Need around 2
☞ samples
✎ Both distinguishers: ☞ ❂ Pr❬L❪2
❥❩❥ P
z✷❩ Pr❬z❥L❪2✁
1 ✁
✎
☞ ❂ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of optimal distinguisher
✎ Where distribution is “close” to uniform random, efficacy
☞ ❂ ❥❩❥ P
z✷❩
✏ Pr❬z❪
1 ❥❩❥
✑2
✎ Need around 2
☞ samples
✎ Both distinguishers: ☞ ❂ Pr❬L❪2
❥❩❥ P
z✷❩ Pr❬z❥L❪2✁
1 ✁
✎ SPP attack: ☞ ❂ Pr❬L❪2 so around 285 samples
Py SPP attack Improving on the attack
Efficacy of our distinguisher
❳
z✷❩
Pr❬z❥L❪2 ❂ ❳ ✭
✂
✿ ✿ ✿ ✙ ✮ ❂ ❳ ✭
✂
✿ ✿ ✿ ✙ ✮ ✭
✂
✿ ✿ ✿ ✙ ✮ ❂ ❳ ✏
✂
✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿
✂
✑ ❂
✂
❳ ✏ ✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿ ✑
✂
✷ ❢
❀ ❀ ❀ ❀ ❀ ❀ ❀ ❣
Py SPP attack Improving on the attack
Efficacy of our distinguisher
❳
z✷❩
Pr❬z❥L❪2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮2 ❂ ❳ ✭
✂
✿ ✿ ✿ ✙ ✮ ✭
✂
✿ ✿ ✿ ✙ ✮ ❂ ❳ ✏
✂
✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿
✂
✑ ❂
✂
❳ ✏ ✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿ ✑
✂
Mi ✷ ❢M0❀0❀ M0❀1❀ M1❀0❀ M1❀1❣
Py SPP attack Improving on the attack
Efficacy of our distinguisher
❳
z✷❩
Pr❬z❥L❪2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮T ❂ ❳ ✏
✂
✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿
✂
✑ ❂
✂
❳ ✏ ✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿ ✑
✂
Mi ✷ ❢M0❀0❀ M0❀1❀ M1❀0❀ M1❀1❣
Py SPP attack Improving on the attack
Efficacy of our distinguisher
❳
z✷❩
Pr❬z❥L❪2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮T ❂ ❳ ✏ 11✂4M31M30 ✿ ✿ ✿ M0✙0✙T
0 MT 0 ✿ ✿ ✿ MT 30MT 311T 1✂4
✑ ❂
✂
❳ ✏ ✿ ✿ ✿ ✙ ✙ ✿ ✿ ✿ ✑
✂
Mi ✷ ❢M0❀0❀ M0❀1❀ M1❀0❀ M1❀1❣
Py SPP attack Improving on the attack
Efficacy of our distinguisher
❳
z✷❩
Pr❬z❥L❪2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮2 ❂ ❳ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮ ✭11✂4M31M30 ✿ ✿ ✿ M0✙0✮T ❂ ❳ ✏ 11✂4M31M30 ✿ ✿ ✿ M0✙0✙T
0 MT 0 ✿ ✿ ✿ MT 30MT 311T 1✂4
✑ ❂ 11✂4 ❳ ✏ M31M30 ✿ ✿ ✿ M0✙0✙T
0 MT 0 ✿ ✿ ✿ MT 30MT 31
✑ 1T
1✂4
Mi ✷ ❢M0❀0❀ M0❀1❀ M1❀0❀ M1❀1❣
Py SPP attack Improving on the attack
Efficacy of our distinguisher
Hi ❂ ❳ Mi1Mi2 ✿ ✿ ✿ M1M0✙0✙T
0 MT 0 MT 1 ✿ ✿ ✿ MT i2MT i1
❂ ✙ ✙
✰
❂ ❳
✷❢
❀ ❀ ❀ ❀ ❀ ❀ ❀ ❣
☞ ❂ ❬ ❪ ✏ ✏
✂ ✂
✑
- ✑
✙ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of our distinguisher
Hi ❂ ❳ Mi1Mi2 ✿ ✿ ✿ M1M0✙0✙T
0 MT 0 MT 1 ✿ ✿ ✿ MT i2MT i1
H0 ❂ ✙0✙T
✰
❂ ❳
✷❢
❀ ❀ ❀ ❀ ❀ ❀ ❀ ❣
☞ ❂ ❬ ❪ ✏ ✏
✂ ✂
✑
- ✑
✙ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of our distinguisher
Hi ❂ ❳ Mi1Mi2 ✿ ✿ ✿ M1M0✙0✙T
0 MT 0 MT 1 ✿ ✿ ✿ MT i2MT i1
H0 ❂ ✙0✙T Hi✰1 ❂ ❳
M✷❢M0❀0❀M0❀1❀M1❀0❀M1❀1❣
MHiMT ☞ ❂ ❬ ❪ ✏ ✏
✂ ✂
✑
- ✑
✙ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of our distinguisher
Hi ❂ ❳ Mi1Mi2 ✿ ✿ ✿ M1M0✙0✙T
0 MT 0 MT 1 ✿ ✿ ✿ MT i2MT i1
H0 ❂ ✙0✙T Hi✰1 ❂ ❳
M✷❢M0❀0❀M0❀1❀M1❀0❀M1❀1❣
MHiMT ☞ ❂ Pr❬L❪2 ✏ 264 ✏ 11✂4H321T
1✂4
✑ 1 ✑ ✙ ❬ ❪
Py SPP attack Improving on the attack
Efficacy of our distinguisher
Hi ❂ ❳ Mi1Mi2 ✿ ✿ ✿ M1M0✙0✙T
0 MT 0 MT 1 ✿ ✿ ✿ MT i2MT i1
H0 ❂ ✙0✙T Hi✰1 ❂ ❳
M✷❢M0❀0❀M0❀1❀M1❀0❀M1❀1❣
MHiMT ☞ ❂ Pr❬L❪2 ✏ 264 ✏ 11✂4H321T
1✂4
✑ 1 ✑ ✙ 60552 Pr❬L❪2
Py SPP attack Improving on the attack