Sieve, Enumerate, Slice, and Lift:
Hybrid Lattice Algorithms for SVP via CVPP
Emmanouil Doulgerakis, Thijs Laarhoven, and Benne de Weger
Technische Universiteit Eindhoven
Sieve, Enumerate, Slice, and Lift: Hybrid Lattice Algorithms for SVP - - PowerPoint PPT Presentation
Sieve, Enumerate, Slice, and Lift: Hybrid Lattice Algorithms for SVP via CVPP Emmanouil Doulgerakis, Thijs Laarhoven, and Benne de Weger Technische Universiteit Eindhoven July 2020 AfricaCrypt 2020, Cairo, Egypt Outline Introduction 1
Technische Universiteit Eindhoven
1
2
3
4
AfricaCrypt 2020 1
1
2
3
4
AfricaCrypt 2020 1
AfricaCrypt 2020 2
AfricaCrypt 2020 2
AfricaCrypt 2020 3
AfricaCrypt 2020 3
AfricaCrypt 2020 3
AfricaCrypt 2020 4
AfricaCrypt 2020 5
AfricaCrypt 2020 5
AfricaCrypt 2020 6
AfricaCrypt 2020 7
1
2
3
4
AfricaCrypt 2020 8
AfricaCrypt 2020 9
AfricaCrypt 2020 9
AfricaCrypt 2020 9
AfricaCrypt 2020 10
AfricaCrypt 2020 11
1
2
3
4
AfricaCrypt 2020 12
AfricaCrypt 2020 13
t′ O
AfricaCrypt 2020 14
O
AfricaCrypt 2020 15
O
AfricaCrypt 2020 15
O
AfricaCrypt 2020 15
O
t′
AfricaCrypt 2020 15
Computing t′ correctly depends on the list L. Computing “the proper” list L is too costly. We can use approximations instead.
AfricaCrypt 2020 16
Computing t′ correctly depends on the list L. Computing “the proper” list L is too costly. We can use approximations instead. Disadvantage: We might get a wrong t′.
AfricaCrypt 2020 16
Create a list L of lattice vectors (e.g. by running a sieving algorithm).
AfricaCrypt 2020 17
Create a list L of lattice vectors (e.g. by running a sieving algorithm).
AfricaCrypt 2020 17
Create a list L of lattice vectors (e.g. by running a sieving algorithm).
i found as t′.
AfricaCrypt 2020 17
AfricaCrypt 2020 18
AfricaCrypt 2020 19
AfricaCrypt 2020 20
AfricaCrypt 2020 21
1
2
3
4
AfricaCrypt 2020 22
AfricaCrypt 2020 23
AfricaCrypt 2020 23
AfricaCrypt 2020 23
AfricaCrypt 2020 23
AfricaCrypt 2020 23
root n
1
root n
1 n − k
AfricaCrypt 2020 24
AfricaCrypt 2020 25
◮ If stop = 0 then s = SVP(Lbot). ◮ If stop = 0 then s = stop − CVP(Lbot, stop). AfricaCrypt 2020 25
◮ If stop = 0 then s = SVP(Lbot). ◮ If stop = 0 then s = stop − CVP(Lbot, stop).
AfricaCrypt 2020 25
◮ If stop = 0 then s = SVP(Lbot). ◮ If stop = 0 then s = stop − CVP(Lbot, stop).
AfricaCrypt 2020 25
◮ If stop = 0 then s = SVP(Lbot). ◮ If stop = 0 then s = stop − CVP(Lbot, stop).
AfricaCrypt 2020 25
root n
n − k
t1 − w1 t2 − w2 ti − wi ti+1 − wi+1 tN − wN where wi = CVP(Lbot, ti)
AfricaCrypt 2020 26
AfricaCrypt 2020 27
AfricaCrypt 2020 27
1
1
1
sieve · (1 + o(1)),
1
sieve · (1 + o(1)).
AfricaCrypt 2020 27
AfricaCrypt 2020 28
12) = 0.1154 . . . .
2
2
2
sieve · (1 + o(1)),
2
sieve · (1 + o(1)).
AfricaCrypt 2020 28
AfricaCrypt 2020 29
AfricaCrypt 2020 29
◮ Enumerate all nodes t ∈ Ltop. ◮ For each t run the slicer with the list L to find close vectors v ∈ Lmid. ◮ For each pair t, v add the vector t − v to an output list S. AfricaCrypt 2020 29
◮ Enumerate all nodes t ∈ Ltop. ◮ For each t run the slicer with the list L to find close vectors v ∈ Lmid. ◮ For each pair t, v add the vector t − v to an output list S.
AfricaCrypt 2020 29
AfricaCrypt 2020 30
AfricaCrypt 2020 30
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31
AfricaCrypt 2020 31