lattice based cryptography i
play

Lattice-based cryptography (I) Thijs Laarhoven ts - PowerPoint PPT Presentation

Lattice-based cryptography (I) Thijs Laarhoven ts ttts PQCrypto Summer School 2017 (June 20, 2017) Part 1: Lattices, cryptography, and lattice basis


  1. Lattice-based cryptography (I) Thijs Laarhoven ♠❛✐❧❅t❤✐❥s✳❝♦♠ ❤tt♣✿✴✴✇✇✇✳t❤✐❥s✳❝♦♠✴ PQCrypto Summer School 2017 (June 20, 2017)

  2. Part 1: Lattices, cryptography, and lattice basis reduction Thijs Laarhoven ♠❛✐❧❅t❤✐❥s✳❝♦♠ ❤tt♣✿✴✴✇✇✇✳t❤✐❥s✳❝♦♠✴ PQCrypto Summer School 2017 (June 20, 2017)

  3. Lattices What is a lattice? O

  4. Lattices What is a lattice? b 2 b 1 O

  5. Lattices What is a lattice? b 2 b 1 O

  6. Lattices Shortest Vector Problem (SVP) b 2 b 1 s O

  7. Lattices Shortest Vector Problem (SVP) b 2 b 1 s O - s

  8. Lattices Closest Vector Problem (CVP) t b 2 b 1 O

  9. Lattices Closest Vector Problem (CVP) t b 2 v b 1 O

  10. Lattices Lattice basis reduction b 2 b 1 r 2 r 1 O

  11. Outline Motivation: GGH encryption Lattice basis reduction Gauss reduction LLL reduction BKZ reduction

  12. Outline Motivation: GGH encryption Lattice basis reduction Gauss reduction LLL reduction BKZ reduction

  13. GGH cryptosystem Overview � � r 1 Private key: R = r 2 � � b 1 Public key: B = b 2 Encrypt m : v = m B c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  14. GGH cryptosystem Private key � � r 1 Private key: R = r 2 � � b 1 Public key: B = b 2 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  15. GGH cryptosystem Private key � � r 1 Private key: R = r 2 � � b 1 Public key: B = r 2 b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  16. GGH cryptosystem Public key � � r 1 Private key: R = r 2 � � b 1 Public key: B = r 2 b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  17. GGH cryptosystem Public key � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  18. GGH cryptosystem Encryption � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  19. GGH cryptosystem Encryption � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 b 2 r 1 Encrypt m : v v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  20. GGH cryptosystem Encryption � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  21. GGH cryptosystem Decryption with good basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  22. GGH cryptosystem Decryption with good basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  23. GGH cryptosystem Decryption with good basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  24. GGH cryptosystem Decryption with good basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v' v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  25. GGH cryptosystem Decryption with bad basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  26. GGH cryptosystem Decryption with bad basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  27. GGH cryptosystem Decryption with bad basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  28. GGH cryptosystem Decryption with bad basis � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v = m B O v' c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  29. GGH cryptosystem Overview � � r 1 b 2 Private key: R = r 2 b 1 � � b 1 Public key: B = r 2 c b 2 r 1 Encrypt m : v v = m B O c = v + e Decrypt c : v ′ = ⌊ c R − 1 ⌉ R m ′ = v ′ B − 1

  30. Outline Motivation: GGH encryption Lattice basis reduction Gauss reduction LLL reduction BKZ reduction

  31. Gauss reduction b 2 b 1 O

  32. Gauss reduction b 2 b 1 O

  33. Gauss reduction b 1 b 2 O

  34. Gauss reduction b 1 b 2 O

  35. Gauss reduction b 1 b 2 O

  36. Gauss reduction b 1 b 2 O

  37. Gauss reduction b 1 b 2 O

  38. Gauss reduction Given B = { b 1 , b 2 } , repeat two steps: • Swap : If � b 1 � > � b 2 � , then swap b 1 and b 2 . • Reduce : While � b 2 ± b 1 � < � b 2 � , replace b 2 ← b 2 ± b 1 .

  39. Gauss reduction Given B = { b 1 , b 2 } , repeat two steps: • Swap : If � b 1 � > � b 2 � , then swap b 1 and b 2 . • Reduce : While � b 2 ± b 1 � < � b 2 � , replace b 2 ← b 2 ± b 1 . At the end, b 1 is a shortest (non-zero) lattice vector and b 2 a “second shortest” (non-zero) lattice vector.

  40. Gauss reduction

  41. Gauss reduction

  42. LLL algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1

  43. LLL algorithm

  44. LLL algorithm

  45. LLL algorithm

  46. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1

  47. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1 • Basis quality deteriorates with the dimension n ◮ Theoretically: � b 1 � ≤ 1.075 n · det ( � ) ◮ Experimentally: � b 1 � ≈ 1.022 n · det ( � )

  48. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1 • Basis quality deteriorates with the dimension n ◮ Theoretically: � b 1 � ≤ 1.075 n · det ( � ) ◮ Experimentally: � b 1 � ≈ 1.022 n · det ( � ) Blockwise Korkine-Zolotarev (BKZ) reduction [ Sch87, SE94 ] • Blockwise generalization of Korkine-Zolotarev reduction • Do reductions / swaps on ( b i ,..., b i + k − 1 ) for i = 1,..., n − k + 1 • Blocksize k offers time-quality tradeoff

  49. LLL algorithm

  50. BKZ algorithm

  51. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1 • Basis quality deteriorates with the dimension n ◮ Theoretically: � b 1 � ≤ 1.075 n · det ( � ) ◮ Experimentally: � b 1 � ≈ 1.022 n · det ( � ) Blockwise Korkine-Zolotarev (BKZ) reduction [ Sch87, SE94 ] • Blockwise generalization of Korkine-Zolotarev reduction • Do reductions / swaps on ( b i ,..., b i + k − 1 ) for i = 1,..., n − k + 1 • Blocksize k offers time-quality tradeoff

  52. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1 • Basis quality deteriorates with the dimension n ◮ Theoretically: � b 1 � ≤ 1.075 n · det ( � ) ◮ Experimentally: � b 1 � ≈ 1.022 n · det ( � ) Blockwise Korkine-Zolotarev (BKZ) reduction [ Sch87, SE94 ] • Blockwise generalization of Korkine-Zolotarev reduction • Do reductions / swaps on ( b i ,..., b i + k − 1 ) for i = 1,..., n − k + 1 • Blocksize k offers time-quality tradeoff BKZ uses exact SVP algorithm in dimension k as subroutine

  53. BKZ algorithm Lenstra-Lenstra-Lovasz (LLL) algorithm [ LLL82 ] • Blockwise generalization of Gauss reduction • Do reductions / swaps on ( b i , b i + 1 ) for i = 1,..., n − 1 • Basis quality deteriorates with the dimension n ◮ Theoretically: � b 1 � ≤ 1.075 n · det ( � ) ◮ Experimentally: � b 1 � ≈ 1.022 n · det ( � ) Blockwise Korkine-Zolotarev (BKZ) reduction [ Sch87, SE94 ] • Blockwise generalization of Korkine-Zolotarev reduction • Do reductions / swaps on ( b i ,..., b i + k − 1 ) for i = 1,..., n − k + 1 • Blocksize k offers time-quality tradeoff BKZ uses exact SVP algorithm in dimension k as subroutine Next hour: How to solve exact SVP in high dimensions?

Recommend


More recommend