Recent Progress on Integer Programming and Lattice Problems
Download
Report
Transcript Recent Progress on Integer Programming and Lattice Problems
Short Paths on the Voronoi Graph
and the
Closest Vector Problem with Preprocessing
Daniel Dadush
Centrum Wiskunde en Informatica
Joint work with Nicolas Bonifas (École Polytechnique & IBM)
Lattices
A lattice β β βπ is all integral
combinations of some basis
B = π1 , β¦ , ππ .
β(π΅) denotes lattice
generated by π΅.
Note: a lattice has many
equivalent bases.
π2
π1
π1
π2
π2
β
Closest Vector Problem (CVP)
Given: Lattice basis π΅ π βπ×π , target π‘ π βπ .
Goal: Compute π¦ π β(π΅) minimizing π‘ β π¦
π¦
π‘
β
2.
CVP with Preprocessing (CVPP)
Given: Lattice basis π΅ π βπ×π , Preprocess(π΅),
target π‘ π βπ .
Goal: Compute π¦ π β(π΅) minimizing π‘ β π¦ 2 .
Preprocess can be any function of the lattice basis π΅,
and need not be computationally bounded.
Limit Preprocess by the size of the generated advice
(i.e. polynomial, exponential, etc. in enc-size(B)).
CVP with Preprocessing (CVPP)
Given: Lattice basis π΅ π βπ×π , Preprocess(π΅),
target π‘ π βπ .
Goal: Compute π¦ π β(π΅) minimizing π‘ β π¦ 2 .
Remark: Most solvers for CVP can be decoupled into a
preprocessing phase and a search phase.
Applications
1. Lattice based Cryptography:
Encrypt messages as perturbed lattice points.
2. Error Correcting Codes:
Lattice points are codewords, want to correct against
Gaussian perturbations.
Basic model in wireless communications.
3. Discretizing / Compressing continuous data:
Round continuous source to ``low distortionββ lattice.
Used for speech, image, video data.
Hardness
πΎ β CVP / CVPP: compute πΎ approximate solution.
Lattice dimension is π.
πΎ β CVP:
NP-hard for πΎ = ππ/ log log π [DKRS 03, ABSS 93].
πΎ β CVPP with polynomial advice:
a) NP-hard any constant πΎ [AKKV 05, Reg. 04, FM 04].
log1βπ π
b) Hard for πΎ = 2
π(1
log
π·ππΌππΈ(2
, fixed π > 0, assuming ππ β
π) π
). [KPV 12, AKKV 05].
Algorithms for CVP
Method
Basis
Reduction
Apx
π
π π
π
Time
Space
22π poly π 2π poly(π)
Authors
LLL 83, Sch. 85,
Bab. 86, MV 10
1
ππ/2
poly(π)
LLL 83, Kan. 87,
β¦, HS 08
Randomized
Sieve
1+π
1 2π
π
1 π
π
AKS 01, AKS 02,
BN 07
Voronoi Cell
1
22π
2π
SFS 09, MV 10
Algorithms for CVP
Method
Basis
Reduction
Apx
π
π π
π
Time
Space
22π poly π 2π poly(π)
Authors
LLL 83, Sch. 85,
Bab. 86, MV 10
1
ππ/2
poly(π)
LLL 83, Kan. 87,
β¦, HS 08
Randomized
Sieve
1+π
1 2π
π
1 π
π
AKS 01, AKS 02,
BN 07
Voronoi Cell
1
22π
2π
SFS 09, MV 10
Preprocessing: Short lattice basis π΅.
Search Phase: Compute coefficients of closest
vector with respect to π΅ using search tree.
Algorithms for CVP
Method
Basis
Reduction
Apx
π
π π
π
Time
Space
22π poly π 2π poly(π)
Authors
LLL 83, Sch. 85,
Bab. 86, MV 10
1
ππ/2
poly(π)
LLL 83, Kan. 87,
β¦, HS 08
Randomized
Sieve
1+π
1 2π
π
1 π
π
AKS 01, AKS 02,
BN 07
Voronoi Cell
1
22π
2π
SFS 09, MV 10
Iterivately clusters exponentially many βrandomβ lattice points to
construct closer & closer vectors.
Only gives probabilistic guarantee output (Monte Carlo).
Algorithms for CVP
Method
Basis
Reduction
Apx
π
π π
π
Time
Space
22π poly π 2π poly(π)
Authors
LLL 83, Sch. 85,
Bab. 86, MV 10
1
ππ/2
poly(π)
LLL 83, Kan. 87,
β¦, HS 08
Randomized
Sieve
1+π
1 2π
π
1 π
π
AKS 01, AKS 02,
BN 07
Voronoi Cell
1
22π
2π
SFS 09, MV 10
Preprocessing: Compute facets of Voronoi cell.
Search Phase: Directed search over Voronoi
graph to find closest vector.
Main Result
CVP with 2π Preprocessing [D.-Bonifas 14]:
Using the Voronoi cell as preprocessing, can
compute closest vectors in expected Ξ(2π ) time.
Speeds up the search phase of the
Micciancio-Voulgaris algorithm by a Ξ(2π ) factor.
π±
0
β
Main Result
Theorem [D.-Bonifas 14]:
CVP is polynomial time equivalent to separation
over the Voronoi cell.
Micciancio-Voulgaris algorithm requires Ξ(2π ) calls
to a Voronoi cell separator.
π‘
π±
0
β
Main Result
Theorem [D.-Bonifas 14]:
CVP is polynomial time equivalent to separation
over the Voronoi cell.
Will assume facet separator.
Can be derived from weaker separator*.
π¦
π±
π‘
0
β
Outline
1. Voronoi Cell based Algorithms:
Micciancio-Voulgaris CVPP algorithm.
2. Faster navigation of the Voronoi graph:
Randomized path finding algorithm.
3. Summary and Open Problems.
Voronoi Cell
The Voronoi of a lattice β is
π± β = {π₯ π βπ : π₯ 2 β€ π₯ β π¦
π±
2 , βπ¦
πββ 0 }
0
β
Voronoi Cell
The Voronoi of a lattice β is
π± β = {π₯ π βπ : π₯, π¦ β€ π¦, π¦ 2 , βπ¦ π β β 0 }
π±
0
β
Voronoi Cell
π± tiles spaces with respect to β.
π±
0
β
Voronoi relevant vectors
Define halfspace π»π¦ = {π₯ π βπ : π₯ 2 β€ π₯ β π¦ 2 }.
The Voronoi relevant vectors are the minimal subset
ππ
β β β {0} such that π± β = π¦πππ
π»π¦ .
ππ
β€ 2(2π β 1)
Theorem [Voronoi]:
π£1
π£2
π£3
π£6
0
π£4
π£5
β
Voronoi relevant vectors
For π£ π ππ
, β π = π΅ 0,1 π /{0} such that
π£ = ±(π¦ β π)
where π¦ is a closest vector to π in 2β.
Can compute ππ
by solving 2π CVPs!
π£1
π£2
π£3
π£6
0
π£4
π£5
β
CVP and Voronoi Cells
CVP: Compute center of Voronoi cell containing π‘.
π¦
π‘
β
CVP and Voronoi Cells
π¦ π β closest vector to π‘ β π‘ β π¦ π π±.
π¦
π‘
β
CVP and Voronoi Cells
π‘ β π¦ π π± β π‘ β π¦ 2 β€ π‘ β π¦ β π£ 2 , βπ£ π ππ
.
Can perform check in π(π ππ
) time.
π¦
π‘
β
Voronoi Graph
Graph π’ on β.
π₯~π¦ if and only if π₯ β π¦ π ππ
.
β
Voronoi based CVP algorithms
Idea: Build path along Voronoi graph π’
from 0 to π¦ using π‘.
π¦
π‘
0
β
Voronoi based CVP algorithms
Question: What is the most efficient way to
traverse the Voronoi graph π’?
π¦
π‘
0
β
Sommer, Feder, Shalvi 09: Iterative Slicer
While π‘ β π₯ β π±
Find π£ π ππ
such that π‘ β π₯ β π£
Update π₯ β π₯ + π£.
2
< π‘βπ₯
π‘
π₯
0
β
2.
Sommer, Feder, Shalvi 09: Iterative Slicer
Showed only finite termination.
π₯
π‘
0
β
Voronoi Norm
Norm with respect to π±
π₯
π±
= min{π β₯ 0: π₯ π π π±}
π₯
π π±
π± = {π₯ π
π±
0
π₯
π±
βπ : 2
π₯, π£
β€ 1, βπ£ π ππ
}
π£, π£
π₯, π£
= max 2
π£ π VR
π£, π£
Computable in π(π |ππ
|) time.
Micciancio, Voulgaris 10
While π‘ β π₯ β π±
Find π£ π ππ
such that π‘ β π₯
Update π₯ β π₯ + π£.
π±
= 2 π₯, π£
π£, π£ .
π‘
π₯
0
β
Micciancio, Voulgaris 10
Theorem: If π‘ β π₯ π± β€ 2, then the
MV path from π₯ π β to the closest vector π¦ π β to
π‘ on π’ has length at most 2π .
Why is this enough?
1. Can assure π‘ β π₯ π± β€ n by rounding
coordinates of π‘ w.r.t. a basis of VR vectors.
2. Use MV path iteratively to find closest vector
to π‘ β π₯ in 2π β, for π = log π down to 0.
Total runtime: π(4π ).
Micciancio, Voulgaris 10
MV subgraph on (π‘ + 4π±) β© β.
π‘
4π±
β
Micciancio, Voulgaris 10
CVP: Want to compute π₯0 .
0
π‘ π₯
0
β
Micciancio, Voulgaris 10
0 is a closest
vector in 8β.
0
π‘
8β
8π±
Micciancio, Voulgaris 10
Move to closest
vector in 4β.
0
π‘
π₯2
4π±
4β
8π±
Micciancio, Voulgaris 10
Move to closest
vector in 2β.
0
π₯1
π‘
2π±
π₯2
4π±
2β
Micciancio, Voulgaris 10
Move to closest
vector in β.
0
π₯1
π‘ π₯
0
π±
2π±
π₯2
β
Navigating the Voronoi Graph
Question: Is there a polynomial sized path from
the origin to the target Voronoi cell?
If so, can each step of the path be computed in
π(2π ) time?
Implies π(2π ) time algorithm for CVPP.
Answer: Yes! *
* path length depends polynomially on bit size of
basis π΅ of β and target π‘.
Straight Line Algorithm
How many cells does this cross?
π‘
π₯
0
β
Straight Line Algorithm
Initial analysis in [MV 10].
Gives worse boundsβ¦
π₯
π‘
0
β
Straight Line Algorithm
Initial analysis in [MV 10].
Donβt have any bad examples!
π₯
π‘
0
β
Randomized Straight Line
What if we add randomness to
the process?
π‘
π₯
0
β
Randomized Straight Line
Sample a βrandomβ π.
Path: 0 β π, π β π + π‘, π + π‘ β π‘.
π‘
π₯
π+π‘
0
π
β
Randomized Straight Line
How long is path when going between lattice points?
Letβs restrict to the case π‘ π β.
Path Lengths on the Voronoi Graph
Path from 0 to π¦ π β:
a. 0 β π b. π β π + π¦ c. π + π¦ β π¦
where π ~ Uniform(π±).
Theorem: Expected path length bounded by π π¦
Corollary: For π₯, π¦ π β,
π¦ β π₯ π± 2 β€ ππ’ π₯, π¦ β€ π π¦ β π₯
π± /2.
π± /2.
Proof: Write π¦ β π₯ = ππ=1 π£π , π£π π ππ
, π = ππ’ π₯, π¦ .
π¦ β π₯ π± β€ ππ=1 π£π π± = 2π.
Randomized Straight Line
a. 0 β π b. π β π + π¦ c. π + π¦ β π¦
where π ~ Uniform(π±).
π
π₯ π
0
π
π+π¦
π
π¦
β
Bounding the number of crossings
Phase a+c: 0 crossings
Phase b: ???
π
0
π
π
π+π¦
π₯ π
π¦
β
Bounding the number of crossings
E # crossings from π to π + π¦ =
(πβ1)π¦
ππ¦
E lim
in π + π to π + π ]
2
2
πββ
(πβ1)π¦
ππ¦
2π
lim π=1 Pr[crossing in π + π to π + π ]
2
2
πββ
2π
π=1 I[crossing
π+π¦
π
0
π
π¦
β
=
Bounding the number of crossings
Pr[crossing in π +
(πβ1)π¦
to
π
2
π+
ππ¦
2π
]
depends only on distribution of π +
π πππ β is uniform β π +
(πβ1)π¦
2π
(πβ1)π¦
2π
πππ β .
πππ β is uniform!
π+π¦
π
0
π
π¦
β
Bounding the number of crossings
Pr crossing in π +
Pr crossing in π to
πβ1 π¦
to
π
2
π¦
π+ π
2
π
ππ¦
+ π
2
=
π+π¦
π
0
π
π¦
β
Bounding the number of crossings
Pr crossing in π to π + ππ¦ = Pr π + ππ¦ β π±
π+ππ¦
π
0
π±
Bounding the number of crossings
Pr π + ππ¦ β π± β€ 1 β Pr π β 1 β π π¦
= 1 β 1 β π π¦ π± π β€ ππ π¦ π±
π±
π±
π+ππ¦
π
0
π = (1 β π π¦
π π±
π±
π±)
Bounding the number of crossings
lim
2π
π=1 Pr[crossing in π
lim
2π
π=1 π
πββ
πββ
π¦
π±
+
2π β€ π π¦
(πβ1)π¦
2π
π±
to π +
ππ¦
2π
]β€
.
Can save a factor of 2 with a more careful analysis.
π+π¦
π
0
π
π¦
β
Path for General Targets
a. 0 β π b. π β π + π‘ c. π + π‘ β π¦
where π ~ Uniform(π±).
π+π‘
π
π
π
π‘ π¦
π 0π₯
β
Bounding the number of crossings
Phase a: 0
Phase b: n π‘
π± /2
Phase c: ???
π+π‘
π
π
π
π₯
π‘ π¦
π0
β
Bounding the number of crossings
Donβt know how to bound Phase cβ¦
π+π‘
π
π₯
π‘ π¦
0
β
Truncating the Path
Follow phase c line until we reach
π€ such that π‘ β π€ π± = π.
π₯
π+π‘
π
π€π‘
π¦
0
β
Truncating the Path
π‘βπ₯
π±
β€ π€βπ₯
β€1+π
π±
+ π‘βπ€
π±
π₯
π+π‘
π
π€π‘
π¦
0
β
Truncating the Path
Need to bound number of intersections
from π + π‘ to π€.
π₯
π+π‘
π
π€π‘
π¦
0
β
Bounds for General Targets
Path from 0 to π‘ π βπ :
a. 0 β π b. π β π + π‘ c. π + π‘ β π‘
where π ~ Uniform(π±).
Theorem: Path traverses π₯ β β, π‘ β π₯ π± β€ 1 + π after at
most π π‘ π± /2 + π(π) log 1 π steps on expectation.
Lemma: Assume π‘ β β€π and β β β€π and that π± β π
π΅2π .
If π¦ β β and π‘ β π¦ π± > 1, then
π‘ β π¦ π± β₯ 1 + 1 (2π
2 ).
Gives poly dependence on bit description of β and π‘.
The Last Mile
π~Uniform π±
Density π π₯ = I[x π π±]/vol(π±)
π
π±
0
ββπ‘
The Last Mile
Total number of intersections:
Int = E[ππππ π ππππ π π€ππ‘β β β π‘ + ππ±]
π
0
ββπ‘
The Last Mile
Total number of intersections:
1
Int =
π¦πββπ‘ E[ππππ π ππππ π π€ππ‘β π¦ + ππ±]
2
π
0
ββπ‘
The Last Mile
Total number of intersections:
1
Int =
π¦πββπ‘,π£πππ
Pr π crosses π¦ + πΉπ£
2
ππ± =
π£πππ
πΉπ£
π
0
ββπ‘
The Last Mile
Total number of intersections:
1
Int =
π¦πββπ‘,π£πππ
Pr π π π β₯1 π (π¦ + πΉπ£ ) ]
2
ππ± =
π£πππ
πΉπ£
π
0
ββπ‘
Bounding the Truncated Path
Int π = expected # of intersections with
boundaries at distance β₯ π.
π
ππ±
0
ββπ‘
Bounding the Truncated Path
Only need to control Int π !
π
ππ±
0
ββπ‘
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
1β€π β€π π (π¦
ππ± =
+ πΉπ£ )
π£πππ
πΉπ£
π
0
ββπ‘
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
π¦
0
π¦ + πΉπ£
1β€π β€π π (π¦
+ πΉπ£ )
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
1β€π β€π π (π¦
π¦
0
π β₯1 π (π¦
+ πΉπ£ )
+ πΉπ£ )
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
1β€π β€π π (π¦
+ πΉπ£ )
π(π¦ + πΉπ£ )
π¦
0
1β€π β€π π (π¦
+ πΉπ£ )
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
1β€π β€π π (π¦
+ πΉπ£ )
π(π¦ + πΉπ£ )
π¦
0 π£
Pr ππ
1β€π β€π π (π¦
+ πΉπ£ )
1β€π β€π π (π¦
+ πΉπ£ )
π
=
π£
0
π (π¦+πΉπ£ )
π£
2,π¦
β π£/2 π π₯ dx ds
Bounding the Truncated Path
For π β₯ 1, define
1
Int r =
π¦πββπ‘,π£πππ
Pr ππ
2
1β€π β€π π (π¦
+ πΉπ£ )
π(π¦ + πΉπ£ )
π¦
0 π£
Pr ππ
1β€π β€π π (π¦
+ πΉπ£ )
1β€π β€π π (π¦
+ πΉπ£ )
π
=
π£
0
π (π¦+πΉπ£ )
π£
2 , π₯/π
π π₯ dx ds
Bounding the Truncated Path
Lemma: Int π β€ Int(1 π), 0 < π < 1.
1 π scaling of π-boundaries falls out of π±.
ππ±
0
ββπ‘
Bounding Int(1/π)
Strategy: Show that Int(1 π) grows slowly as
a function of π by bounding its derivative.
Problem: Uniform measure on π± not smooth
enough.
Trick: Replace uniform distribution on π±
by π βπ π₯ π± on βπ .
Equivalent to sampling
scaling π~ π‘ π π βπ‘π and π ~ uniform(π±)
and returning π β ππ.
Bounding Int(1/π)
Trick: Replace uniform distribution on π±
by π βπ π₯ π± on βπ .
Equivalent to sampling
scaling π~ π‘ π π βπ‘π and π ~ uniform(π±)
and returning π β ππ.
π π [1,1 +
1
] with constant probability.
π
Expected number of crossings can only
decrease by a constant factor.
Bounding Int(1/π)
Trick: Replace uniform distribution on π±
by π βπ π₯ π± on βπ .
Equivalent to sampling
scaling π~ π‘ π π βπ‘π and π ~ uniform(π±)
and returning π β ππ.
Smoothness: For Ξ π± β€ 1/π,
π βπ π₯ π± β1 β€ π βπ π₯+Ξ π± β€ π βπ
π₯ π± +1 .
Bounding Int(1/π)
For π₯ β β β π‘ + ππ±,
let π π₯ = π£ π£ 2 denote the outer unit normal.
π£
π₯
0
ββπ‘
Bounding Int(1/π)
π~π π₯ =
ππ
π!vol(π±)
π βπ
π₯ π±.
Int 1 π
=
1 π1
1
2
=
1 π
π
1
π (ββπ‘+ππ±)
π¦πββπ‘,π£πππ
π (π¦+πΉπ£ ) π
π₯ | π π₯ π , π₯ π |dx ds
π₯ | π π₯ π , π₯ π | dx ds
Bounding Int(1/π)
1 π
π π₯ | π π₯ π , π₯ π | dx ds
1
π (ββπ‘+ππ±)
Idea: use smoothness of π(π₯) + tiling property
to relate surface integral to integral over βπ .
0
π (β β π‘)
Bounding Int(1/π)
1 π
π π₯ | π π₯ π , π₯ π | dx ds
1
π (ββπ‘+ππ±)
Idea: use smoothness of π(π₯) + tiling property
to relate surface integral to integral over βπ .
0
π (β β π‘)
Bounding Int(1/π)
1 π
β€ π(π)
1
1
π
βπ
π₯
π±π
π₯ dx ds
Idea: use smoothness of π(π₯) + tiling property
to relate surface integral to integral over βπ .
0
π (β β π‘)
Bounding Int(1/π)
1 π
β€π π
1
1
ds = π π log 1/π
π
Idea: use smoothness of π(π₯) + tiling property
to relate surface integral to integral over βπ .
0
π (β β π‘)
Total Path Length
Phase a: 0
Phase b: n π‘
π
π
π± /2
Phase c: O(π) log 1/π
π₯
π+π‘
π
π€π‘
π¦
π0
β
Conclusions
1.
Ξ(2π ) speedup of Micciancio and Voulgaris CVPP
algorithm.
2. Tight relationship between geometric and path
distance on the Voronoi graph.
Open Problems
1. Can we get speedup for full MV CVP algorithm?
(need to solve 2π CVPs in 2π time!)
2. Are there any bad examples for the straight line
algorithm? Is randomness needed?
3. Can we make the path length strongly polynomial?
4. Can we compress the description of the Voronoi cell?
(know: {0, ±1} combinations of π(π log π) vectors!)
5. Does anything hold for general norms?
THANK YOU!