22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Algorithm 3 Efficient algorithm SampleD O (R, Ā, H, u, s) for sampling a discrete Gaussian over Λ⊥ u (A).<br />

Input: An oracle O(v) for Gaussian sampling over a desired coset Λ ⊥ v (G) with fixed parameter r √ Σ G ≥<br />

η ɛ (Λ ⊥ (G)), for some Σ G ≥ 2 and ɛ ≤ 1/2.<br />

Offline phase:<br />

• partial parity-check matrix Ā ∈ Zn×<br />

¯m<br />

q ;<br />

• trapdoor matrix R ∈ Z ¯m×w ;<br />

• positive definite Σ ≥ [ R<br />

I<br />

]<br />

(2 + ΣG )[ R t I ], e.g., any Σ = s 2 ≥ (s 1 (R) 2 + 1)(s 1 (Σ G ) + 2).<br />

Online phase:<br />

• invertible tag H ∈ Z n×n<br />

q defining A = [Ā | HG − ĀR] ∈ Zn×m q , for m = ¯m + w<br />

(H may instead be provided in the offline phase, if it is known then);<br />

• syndrome u ∈ Z n q .<br />

Output: A vector x drawn from a distribution within O(ɛ) statistical distance of D Λ ⊥ u (A),r·√Σ .<br />

Offline phase:<br />

1: Choose a fresh perturbation p ← D Z m ,r √ Σ p<br />

, where Σ p = Σ − [ R<br />

I<br />

]<br />

ΣG [ R t I ] ≥ 2 [ R<br />

I<br />

]<br />

[ R t I ].<br />

2: Let p = [ p 1<br />

p 2<br />

] for p 1 ∈ Z ¯m , p 2 ∈ Z w , and compute ¯w = Ā(p 1 − Rp 2 ) ∈ Z n q and w = Gp 2 ∈ Z n q .<br />

Online phase:<br />

3: Let v ← H −1 (u − ¯w) − w = H −1 (u − Ap) ∈ Z n q , and choose z ← D Λ ⊥ v (G),r √ Σ G<br />

by calling O(v).<br />

4: return x ← p + [ R<br />

I<br />

]<br />

z.<br />

Step 3 by the unique ¯z ∈ Λ ⊥ v (G) such that ¯x − ¯p = [ R<br />

I<br />

]¯z. It is easy to check that ρ √ ΣG<br />

(¯z) = ρ √ Σ y<br />

(¯x − ¯p),<br />

where<br />

Σ y = [ R<br />

I<br />

]<br />

ΣG [ R t I ] ≥ 2 [ R<br />

I<br />

]<br />

[ R t I ]<br />

is the covariance matrix with span(Σ y ) = V . Note that Σ p + Σ y = Σ by definition of Σ p , and that<br />

span(Σ p ) = R m because Σ p > 0. Therefore, we have (where C denotes a normalizing constant that may<br />

vary from line to line, but does not depend on ¯x):<br />

p¯x = Pr[SampleD outputs ¯x]<br />

∑<br />

=<br />

D √ Z m ,r Σ p<br />

(¯p) · D √ Λ ⊥ v (G),r Σ y<br />

(¯z)<br />

¯p∈Z m ∩(V +¯x)<br />

(def. of SampleD)<br />

= C ∑¯p<br />

ρ √<br />

r Σp<br />

(¯p) · ρ √<br />

r Σy<br />

(¯p − ¯x)/ρ √ r ΣG<br />

(Λ ⊥ v (G)) (def. of D)<br />

= C · ρ √<br />

r Σ<br />

(¯x) · ∑<br />

ρ √ r Σ3<br />

(¯p − c 3 )/ρ √ r ΣG<br />

(Λ ⊥ v (G)) (Fact 5.6)<br />

¯p<br />

∈ C[1, 1+ɛ<br />

1−ɛ ] · ρ r √ Σ (¯x) · ∑<br />

ρ √ r Σ3<br />

(¯p − c 3 )<br />

¯p<br />

(Lemma 2.5 and r √ Σ G ≥ η ɛ (Λ ⊥ (G)))<br />

= C[1, 1+ɛ<br />

1−ɛ ] · ρ r √ Σ (¯x) · ρ r √ Σ 3<br />

(Z m ∩ (V + ¯x) − c 3 ), (5.1)<br />

where Σ + 3 = P(Σ+ p + Σ + y )P and c 3 ∈ v + V = ¯x + V , because the component of ¯x orthogonal to V is the<br />

unique point v ∈ (V + ¯x) ∩ V ⊥ . Therefore,<br />

Z m ∩ (V + ¯x) − c 3 = (Z m ∩ V ) + (¯x − c 3 ) ⊂ V<br />

28<br />

4. Trapdoors for Lattices

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!