time space tradeoffs for attacks against one way
play

Time space tradeoffs for attacks against one-way functions and PRGs - PowerPoint PPT Presentation

Time space tradeoffs for attacks against one-way functions and PRGs Anindya De University of California, Berkeley Joint work with Luca Trevisan - UC Berkeley and Stanford University Madhur Tulsiani - Princeton University 0 / 26 What is this


  1. Time space tradeoffs for attacks against one-way functions and PRGs Anindya De University of California, Berkeley Joint work with Luca Trevisan - UC Berkeley and Stanford University Madhur Tulsiani - Princeton University 0 / 26

  2. What is this talk about? • Can “brute-force” attacks on cryptographic primitives be improved upon? 1 / 26

  3. What is this talk about? • Can “brute-force” attacks on cryptographic primitives be improved upon? • Recover a key of length k in time less than 2 k . 1 / 26

  4. What is this talk about? • Can “brute-force” attacks on cryptographic primitives be improved upon? • Recover a key of length k in time less than 2 k . • In time t , recover key with probability better than t / 2 k . 1 / 26

  5. What is this talk about? • Can “brute-force” attacks on cryptographic primitives be improved upon? • Recover a key of length k in time less than 2 k . • In time t , recover key with probability better than t / 2 k . • Brute force : optimal when restricted to uniform algorithms 1 / 26

  6. What is this talk about? • Can “brute-force” attacks on cryptographic primitives be improved upon? • Recover a key of length k in time less than 2 k . • In time t , recover key with probability better than t / 2 k . • Brute force : optimal when restricted to uniform algorithms • Are better (non-uniform) attacks possible against: • one-way functions? • pseudo-random generators? 1 / 26

  7. Definitions of primitives • N = 2 n , [ N ] ∼ = { 0 , 1 } n . 2 / 26

  8. Definitions of primitives • N = 2 n , [ N ] ∼ = { 0 , 1 } n . • One-way function: f : [ N ] → [ N ] is ( t , ǫ ) -one way if for every algorithm A of complexity ≤ t � A f ( f ( x )) = x ′ | f ( x ′ ) = f ( x ) � Pr ≤ ǫ x ∼{ 0 , 1 } n 2 / 26

  9. Definitions of primitives • N = 2 n , [ N ] ∼ = { 0 , 1 } n . • One-way function: f : [ N ] → [ N ] is ( t , ǫ ) -one way if for every algorithm A of complexity ≤ t � A f ( f ( x )) = x ′ | f ( x ′ ) = f ( x ) � Pr ≤ ǫ x ∼{ 0 , 1 } n • PRG: G : [ N ] → [ 2 N ] is a ( t , ǫ ) -secure PRG if for every algorithm A of complexity ≤ t � � x ∼ [ N ] [ A G ( G ( x )) = 1 ] − y ∼ [ 2 N ] [ A G ( y ) = 1 ] � � � Pr Pr � ≤ ǫ � � 2 / 26

  10. Measure of Complexity • complexity � = time, as A may compute f − 1 in O ( log N ) time by storing all inverses. 3 / 26

  11. Measure of Complexity • complexity � = time, as A may compute f − 1 in O ( log N ) time by storing all inverses. • complexity = pre-computed advice + running time. 3 / 26

  12. Measure of Complexity • complexity � = time, as A may compute f − 1 in O ( log N ) time by storing all inverses. • complexity = pre-computed advice + running time. • Can be implemented on a RAM machine with time and space t . • Similar to circuit complexity. 3 / 26

  13. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) 4 / 26

  14. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) 4 / 26

  15. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) ˜ O ( N 3 / 4 ) [Fiat-Naor 99] Any f , all inputs 4 / 26

  16. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) ˜ O ( N 3 / 4 ) [Fiat-Naor 99] Any f , all inputs √ ˜ ǫ ≤ N − 1 / 3 O ( ǫ N ) [DTT 10] Any f , ǫ -fraction of inputs ˜ O ( ǫ 5 / 4 N 3 / 4 ) ǫ ≥ N − 1 / 3 4 / 26

  17. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) ˜ O ( N 3 / 4 ) [Fiat-Naor 99] Any f , all inputs √ ˜ ǫ ≤ N − 1 / 3 O ( ǫ N ) [DTT 10] Any f , ǫ -fraction of inputs ˜ O ( ǫ 5 / 4 N 3 / 4 ) ǫ ≥ N − 1 / 3 ˜ def O ( ǫ 2 N ) [ACR 97] PRG G ( x ) = ( f ( x ) , P ( x )) 4 / 26

  18. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) ˜ O ( N 3 / 4 ) [Fiat-Naor 99] Any f , all inputs √ ˜ ǫ ≤ N − 1 / 3 O ( ǫ N ) [DTT 10] Any f , ǫ -fraction of inputs ˜ O ( ǫ 5 / 4 N 3 / 4 ) ǫ ≥ N − 1 / 3 ˜ def O ( ǫ 2 N ) [ACR 97] PRG G ( x ) = ( f ( x ) , P ( x )) ˜ O ( ǫ 2 N ) [DTT 10] Any PRG 4 / 26

  19. Upper bounds Primitive Complexity √ ˜ [Hellman 80] Permutation f O ( N ) ˜ O ( N 2 / 3 ) [Hellman 80] Random function f (heuristic) ˜ O ( N 3 / 4 ) [Fiat-Naor 99] Any f , all inputs √ ˜ ǫ ≤ N − 1 / 3 O ( ǫ N ) [DTT 10] Any f , ǫ -fraction of inputs ˜ O ( ǫ 5 / 4 N 3 / 4 ) ǫ ≥ N − 1 / 3 ˜ def O ( ǫ 2 N ) [ACR 97] PRG G ( x ) = ( f ( x ) , P ( x )) ˜ O ( ǫ 2 N ) [DTT 10] Any PRG All above results are actually stated as time-space tradeoffs. Complexity is optimized when T = S . 4 / 26

  20. Lower bounds Better stated in terms of a tradeoff between T and S . 5 / 26

  21. Lower bounds Better stated in terms of a tradeoff between T and S . Primitive Tradeoff [Yao 90] T · S = ˜ Permutation f , ǫ -fraction Ω( ǫ N ) √ [Gennaro-Trevisan 00] of inputs for T = O ( ǫ N ) [Wee 05] 5 / 26

  22. Lower bounds Better stated in terms of a tradeoff between T and S . Primitive Tradeoff [Yao 90] T · S = ˜ Permutation f , ǫ -fraction Ω( ǫ N ) √ [Gennaro-Trevisan 00] of inputs for T = O ( ǫ N ) [Wee 05] T · S = ˜ Permutation f , ǫ -fraction Ω( ǫ N ) [DTT 10] of inputs for any T 5 / 26

  23. Lower bounds Better stated in terms of a tradeoff between T and S . Primitive Tradeoff [Yao 90] T · S = ˜ Permutation f , ǫ -fraction Ω( ǫ N ) √ [Gennaro-Trevisan 00] of inputs for T = O ( ǫ N ) [Wee 05] T · S = ˜ Permutation f , ǫ -fraction Ω( ǫ N ) [DTT 10] of inputs for any T def T · S = Ω( ǫ 2 N ) [DTT 10] PRG G = ( f ( x ) , P ( x )) 5 / 26

  24. Hellman’s approach for permutations f ( x )

  25. Hellman’s approach for permutations f ( x ) f ( f ( x ))

  26. Hellman’s approach for permutations f ( x ) f ( f ( x )) f ( f ( f ( x )))

  27. Hellman’s approach for permutations f ( x ) f ( f ( x )) x f ( f ( f ( x )))

  28. Hellman’s approach for permutations f ( x ) f ( f ( x )) x f ( f ( f ( x ))) √ In small cycles of size less than N , compute f ( x ) , f ( f ( x )) , . . . 6 / 26

  29. Hellman’s approach for permutations f ( x ) f ( f ( x )) x f ( f ( f ( x ))) √ In small cycles of size less than N , compute f ( x ) , f ( f ( x )) , . . . At some point, you hit x . f − 1 ( x ) is the penultimate point in the sequence. 6 / 26

  30. Hellman’s approach for permutations f ( x ) f ( f ( x )) x f ( f ( f ( x ))) √ In small cycles of size less than N , compute f ( x ) , f ( f ( x )) , . . . At some point, you hit x . f − 1 ( x ) is the penultimate point in the sequence. √ Time complexity of computation is ˜ O ( N ) . 6 / 26

  31. What happens to large cycles? a x √ N c b d √ In large cycles, store back-links at a distance of N 7 / 26

  32. What happens to large cycles? a x √ N c b d √ In large cycles, store back-links at a distance of N For e.g., store ( a , b ) , ( b , c ) , ( c , d ) and ( d , a ) in a data-structure 7 / 26

  33. What happens to large cycles? a x √ N c b d Compute f ( x ) , f ( f ( x )) , . . . till you hit a point in the data structure, say a 8 / 26

  34. What happens to large cycles? a x √ N c b d Compute f ( x ) , f ( f ( x )) , . . . till you hit a point in the data structure, say a When you hit a , use back-link to go back to b 8 / 26

  35. What happens to large cycles? a x √ N c b d Now, compute f ( a ) , f ( f ( a )) , . . . until you hit x 9 / 26

  36. What happens to large cycles? a x √ N c b d Now, compute f ( a ) , f ( f ( a )) , . . . until you hit x The penultimate point in the sequence is f − 1 ( x ) 9 / 26

  37. What happens to large cycles? a x √ N c b d √ Note that all the cycles can be covered by O ( N ) back-links (each back-link √ covering a distance of N ) 10 / 26

  38. What happens to large cycles? a x √ N c b d √ Note that all the cycles can be covered by O ( N ) back-links (each back-link √ covering a distance of N ) √ Also, the total time complexity is N as you hit a “back-link” in that time 10 / 26

  39. Time and space complexity for inverting permutations √ √ • Total time T = ˜ N ) and space S = ˜ O ( O ( N ) . 11 / 26

  40. Time and space complexity for inverting permutations √ √ • Total time T = ˜ N ) and space S = ˜ O ( O ( N ) . • Can be used to invert ǫ fraction of the elements in time √ √ T = ˜ ǫ N ) and space S = ˜ O ( O ( ǫ N ) • In fact, we can achieve any time ( T ) space ( S ) tradeoff such that T · S = ǫ N . 11 / 26

  41. Abstracting the approach for permutations • Cover the graph ( x → f ( x ) ) of f by m disjoint paths of length ℓ . 12 / 26

  42. Abstracting the approach for permutations • Cover the graph ( x → f ( x ) ) of f by m disjoint paths of length ℓ . • Gives algo with T = ˜ O ( ℓ ) and S = ˜ O ( m ) (one back-link per path). 12 / 26

Recommend


More recommend