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?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend