+ All Categories
Home > Documents > Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf ·...

Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf ·...

Date post: 17-Mar-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
84
Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert Georgia Institute of Technology crypt@b-it 2013 1 / 18
Transcript
Page 1: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based Cryptography:Constructing Trapdoors and More Applications

Chris PeikertGeorgia Institute of Technology

crypt@b-it 2013

1 / 18

Page 2: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

2 / 18

Page 3: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

2 / 18

Page 4: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

2 / 18

Page 5: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

I Lattice interpretation: Λ⊥

u

(A) = x ∈ Zm : fA(x) = Ax = 0 mod q

O

(0, q)

(q, 0)

2 / 18

Page 6: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

I Lattice interpretation: Λ⊥u (A) = x ∈ Zm : fA(x) = Ax = u mod q

O

(0, q)

(q, 0)

x

2 / 18

Page 7: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Lattice-Based One-Way Functions

I Public key[· · · A · · ·

]∈ Zn×m

q for q = poly(n), m = Ω(n log q).

fA(x) = Ax mod q ∈ Znq

(“short” x, surjective)

CRHF if SIS hard [Ajtai’96,. . . ]

gA(s, e) = stA + et mod q ∈ Zmq

(“short” e, injective)

OWF if LWE hard [Regev’05,P’09]

I fA, gA in forward direction yield CRHFs, CPA security (w/FHE!). . . but not much else.

2 / 18

Page 8: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Inversion

I Many cryptographic applications need to invert fA and/or gA.

Invert u = fA(x′) = Ax′:

sample random x← f−1A (u)

with prob ∝ exp(−‖x‖2/s2).

Invert gA(s, e) = stA + et:

find the unique preimage s

(equivalently, e)

I How? Use a “strong trapdoor” for A: a short basis of Λ⊥(A)[Babai’86,GGH’97,Klein’01,GPV’08,P’10]

O

3 / 18

Page 9: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Inversion

I Many cryptographic applications need to invert fA and/or gA.

Invert u = fA(x′) = Ax′:

sample random x← f−1A (u)

with prob ∝ exp(−‖x‖2/s2).

Invert gA(s, e) = stA + et:

find the unique preimage s

(equivalently, e)

I How? Use a “strong trapdoor” for A: a short basis of Λ⊥(A)[Babai’86,GGH’97,Klein’01,GPV’08,P’10]

O

3 / 18

Page 10: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Inversion

I Many cryptographic applications need to invert fA and/or gA.

Invert u = fA(x′) = Ax′:

sample random x← f−1A (u)

with prob ∝ exp(−‖x‖2/s2).

Invert gA(s, e) = stA + et:

find the unique preimage s

(equivalently, e)

I How? Use a “strong trapdoor” for A: a short basis of Λ⊥(A)[Babai’86,GGH’97,Klein’01,GPV’08,P’10]

O

3 / 18

Page 11: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Inversion

I Many cryptographic applications need to invert fA and/or gA.

Invert u = fA(x′) = Ax′:

sample random x← f−1A (u)

with prob ∝ exp(−‖x‖2/s2).

Invert gA(s, e) = stA + et:

find the unique preimage s

(equivalently, e)

I How? Use a “strong trapdoor” for A: a short basis of Λ⊥(A)[Babai’86,GGH’97,Klein’01,GPV’08,P’10]

O

3 / 18

Page 12: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

4 / 18

Page 13: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

4 / 18

Page 14: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

4 / 18

Page 15: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

4 / 18

Page 16: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

Other “Black-Box” Applications of f−1, g−1

I Standard Model (no RO) signatures [CHKP’10,R’10,B’10]

I SM CCA-secure encryption [PW’08,P’09]

I SM (Hierarchical) IBE [GPV’08,CHKP’10,ABB’10a,ABB’10b]

I Many more: OT, NISZK, homom enc/sigs, deniable enc, func enc, . . .[PVW’08,PV’08,GHV’10,GKV’10,BF’10a,BF’10b,OPW’11,AFV’11,ABVVW’11,. . . ]

4 / 18

Page 17: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

Some Drawbacks. . .

7 Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09]

7 Known inversion algorithms trade quality for efficiency

tight, iterative, fp looser, parallel, offline

g−1A [Babai’86] [Babai’86]

f−1A [Klein’01,GPV’08] [P’10]

4 / 18

Page 18: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

Some Drawbacks. . .

7 Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09]

7 Known inversion algorithms trade quality for efficiency

tight, iterative, fp looser, parallel, offline

g−1A [Babai’86] [Babai’86]

f−1A [Klein’01,GPV’08] [P’10]

4 / 18

Page 19: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

I pk = A, sk = short basis for A, random oracle H : 0, 1∗ → Znq .

I Sign(msg): let u = H(msg) and output Gaussian x← f−1A (u).

I Verify(msg,x): check fA(x) = Ax = H(msg) and x short enough.

I Security: finding short enough preimages in fA must be hard.

Some Drawbacks. . .

7 Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09]

7 Known inversion algorithms trade quality for efficiency

tight, iterative, fp looser, parallel, offline

g−1A [Babai’86] [Babai’86]

f−1A [Klein’01,GPV’08] [P’10]

4 / 18

Page 20: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Today

“Strong” trapdoor generation and inversion algorithms:

4 Very simple & fast

F Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09])

F Inversion of fA, gA: practical, parallel, & mostly offline

F No more efficiency-vs-quality tradeoff

4 Tighter parameters m and s

F Asymptotically optimal with small constant factors

4 New kind of trapdoor — not a basis! (But just as powerful.)

4 More efficient applications: CCA, (H)IBE in standard model

5 / 18

Page 21: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Today

“Strong” trapdoor generation and inversion algorithms:

4 Very simple & fast

F Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09])

F Inversion of fA, gA: practical, parallel, & mostly offline

F No more efficiency-vs-quality tradeoff

4 Tighter parameters m and s

F Asymptotically optimal with small constant factors

4 New kind of trapdoor — not a basis! (But just as powerful.)

4 More efficient applications: CCA, (H)IBE in standard model

5 / 18

Page 22: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Today

“Strong” trapdoor generation and inversion algorithms:

4 Very simple & fast

F Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09])

F Inversion of fA, gA: practical, parallel, & mostly offline

F No more efficiency-vs-quality tradeoff

4 Tighter parameters m and s

F Asymptotically optimal with small constant factors

4 New kind of trapdoor — not a basis! (But just as powerful.)

4 More efficient applications: CCA, (H)IBE in standard model

5 / 18

Page 23: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Today

“Strong” trapdoor generation and inversion algorithms:

4 Very simple & fast

F Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09])

F Inversion of fA, gA: practical, parallel, & mostly offline

F No more efficiency-vs-quality tradeoff

4 Tighter parameters m and s

F Asymptotically optimal with small constant factors

4 New kind of trapdoor — not a basis! (But just as powerful.)

4 More efficient applications: CCA, (H)IBE in standard model

5 / 18

Page 24: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Today

“Strong” trapdoor generation and inversion algorithms:

4 Very simple & fast

F Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09])

F Inversion of fA, gA: practical, parallel, & mostly offline

F No more efficiency-vs-quality tradeoff

4 Tighter parameters m and s

F Asymptotically optimal with small constant factors

4 New kind of trapdoor — not a basis! (But just as powerful.)

4 More efficient applications: CCA, (H)IBE in standard model

5 / 18

Page 25: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” matrix G.

Design fast, parallel, offline algorithms for f−1G , g−1

G .

2 Randomize G↔ A via a “nice” unimodular transformation.

(The transformation is the trapdoor!)

3 Reduce f−1A , g−1

A to f−1G , g−1

G plus pre-/post-processing.

6 / 18

Page 26: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” matrix G.

Design fast, parallel, offline algorithms for f−1G , g−1

G .

2 Randomize G↔ A via a “nice” unimodular transformation.

(The transformation is the trapdoor!)

3 Reduce f−1A , g−1

A to f−1G , g−1

G plus pre-/post-processing.

6 / 18

Page 27: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” matrix G.

Design fast, parallel, offline algorithms for f−1G , g−1

G .

2 Randomize G↔ A via a “nice” unimodular transformation.

(The transformation is the trapdoor!)

3 Reduce f−1A , g−1

A to f−1G , g−1

G plus pre-/post-processing.

6 / 18

Page 28: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:

F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 29: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:

F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 30: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:

F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 31: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:

F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 32: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:

F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 33: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 34: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Let q = 2k. Define 1-by-k “parity check” vector

g :=[1 2 4 · · · 2k−1

]∈ Z1×k

q .

I To invert LWE function gg : Zq × Zk → Zkq :

s · g + e =[s+ e0 2s+ e1 · · · 2k−1s+ ek−1

]mod q.

F Get lsb(s) from 2k−1s+ ek−1. Then get next bit of s, etc.

Works exactly when every ei ∈ [− q4 ,

q4 ).

F OR round entries and look up in table.

I To sample Gaussian preimage for u = fg(x) := 〈g,x〉:F For i← 0, . . . , k − 1: choose xi ← (2Z + u), let u← (u− xi)/2 ∈ Z.

F OR presample many x← Zk and store in q ‘buckets’ fg(x) for later.

7 / 18

Page 35: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Another view: for g =[1 2 · · · 2k−1

]the lattice Λ⊥(g) has basis

S =

2−1 2

−1. . .

2−1 2

∈ Zk×k, with S = 2 · Ik.

The iterative inversion algorithms for fg, gg are special cases of the(randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

I Define G = In ⊗ g =

· · ·g · · ·

· · ·g · · ·. . .

· · ·g · · ·

∈ Zn×nkq .

Now f−1G , g−1

G reduce to n parallel (and offline) calls to f−1g , g−1

g .

Also applies to H ·G for any invertible H ∈ Zn×nq .

8 / 18

Page 36: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Another view: for g =[1 2 · · · 2k−1

]the lattice Λ⊥(g) has basis

S =

2−1 2

−1. . .

2−1 2

∈ Zk×k, with S = 2 · Ik.

The iterative inversion algorithms for fg, gg are special cases of the(randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

I Define G = In ⊗ g =

· · ·g · · ·

· · ·g · · ·. . .

· · ·g · · ·

∈ Zn×nkq .

Now f−1G , g−1

G reduce to n parallel (and offline) calls to f−1g , g−1

g .

Also applies to H ·G for any invertible H ∈ Zn×nq .

8 / 18

Page 37: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Another view: for g =[1 2 · · · 2k−1

]the lattice Λ⊥(g) has basis

S =

2−1 2

−1. . .

2−1 2

∈ Zk×k, with S = 2 · Ik.

The iterative inversion algorithms for fg, gg are special cases of the(randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

I Define G = In ⊗ g =

· · ·g · · ·

· · ·g · · ·. . .

· · ·g · · ·

∈ Zn×nkq .

Now f−1G , g−1

G reduce to n parallel (and offline) calls to f−1g , g−1

g .

Also applies to H ·G for any invertible H ∈ Zn×nq .

8 / 18

Page 38: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Another view: for g =[1 2 · · · 2k−1

]the lattice Λ⊥(g) has basis

S =

2−1 2

−1. . .

2−1 2

∈ Zk×k, with S = 2 · Ik.

The iterative inversion algorithms for fg, gg are special cases of the(randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

I Define G = In ⊗ g =

· · ·g · · ·

· · ·g · · ·. . .

· · ·g · · ·

∈ Zn×nkq .

Now f−1G , g−1

G reduce to n parallel (and offline) calls to f−1g , g−1

g .

Also applies to H ·G for any invertible H ∈ Zn×nq .

8 / 18

Page 39: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 1: Gadget G and Inversion Algorithms

I Another view: for g =[1 2 · · · 2k−1

]the lattice Λ⊥(g) has basis

S =

2−1 2

−1. . .

2−1 2

∈ Zk×k, with S = 2 · Ik.

The iterative inversion algorithms for fg, gg are special cases of the(randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

I Define G = In ⊗ g =

· · ·g · · ·

· · ·g · · ·. . .

· · ·g · · ·

∈ Zn×nkq .

Now f−1G , g−1

G reduce to n parallel (and offline) calls to f−1g , g−1

g .

Also applies to H ·G for any invertible H ∈ Zn×nq .

8 / 18

Page 40: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 2: Randomize G↔ A

1 Define semi-random [A | G] for uniform A ∈ Zn×mq .

Note: f−1[A|G]

, g−1[A|G]

easily reduce to f−1G , g−1

G [CHKP’10].

2 Choose “short” (Gaussian) R← Zm×n log q and let

A := [A | G]

[I −R

I

]︸ ︷︷ ︸unimodular

= [A | G− AR].

F A is uniform if [A | AR] is: leftover hash lemma for m ≈ n log q.

(With G = 0, we get the “key trick” constructing A with a “weak”trapdoor of ≥ 1 short vector, but not a full basis.)

F [I | A | −(AR1 + R2)] is pseudorandom (under LWE) for m = n.

9 / 18

Page 41: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 2: Randomize G↔ A

1 Define semi-random [A | G] for uniform A ∈ Zn×mq .

Note: f−1[A|G]

, g−1[A|G]

easily reduce to f−1G , g−1

G [CHKP’10].

2 Choose “short” (Gaussian) R← Zm×n log q and let

A := [A | G]

[I −R

I

]︸ ︷︷ ︸unimodular

= [A | G− AR].

F A is uniform if [A | AR] is: leftover hash lemma for m ≈ n log q.

(With G = 0, we get the “key trick” constructing A with a “weak”trapdoor of ≥ 1 short vector, but not a full basis.)

F [I | A | −(AR1 + R2)] is pseudorandom (under LWE) for m = n.

9 / 18

Page 42: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 2: Randomize G↔ A

1 Define semi-random [A | G] for uniform A ∈ Zn×mq .

Note: f−1[A|G]

, g−1[A|G]

easily reduce to f−1G , g−1

G [CHKP’10].

2 Choose “short” (Gaussian) R← Zm×n log q and let

A := [A | G]

[I −R

I

]︸ ︷︷ ︸unimodular

= [A | G− AR].

F A is uniform if [A | AR] is: leftover hash lemma for m ≈ n log q.

(With G = 0, we get the “key trick” constructing A with a “weak”trapdoor of ≥ 1 short vector, but not a full basis.)

F [I | A | −(AR1 + R2)] is pseudorandom (under LWE) for m = n.

9 / 18

Page 43: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 2: Randomize G↔ A

1 Define semi-random [A | G] for uniform A ∈ Zn×mq .

Note: f−1[A|G]

, g−1[A|G]

easily reduce to f−1G , g−1

G [CHKP’10].

2 Choose “short” (Gaussian) R← Zm×n log q and let

A := [A | G]

[I −R

I

]︸ ︷︷ ︸unimodular

= [A | G− AR].

F A is uniform if [A | AR] is: leftover hash lemma for m ≈ n log q.

(With G = 0, we get the “key trick” constructing A with a “weak”trapdoor of ≥ 1 short vector, but not a full basis.)

F [I | A | −(AR1 + R2)] is pseudorandom (under LWE) for m = n.

9 / 18

Page 44: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 2: Randomize G↔ A

1 Define semi-random [A | G] for uniform A ∈ Zn×mq .

Note: f−1[A|G]

, g−1[A|G]

easily reduce to f−1G , g−1

G [CHKP’10].

2 Choose “short” (Gaussian) R← Zm×n log q and let

A := [A | G]

[I −R

I

]︸ ︷︷ ︸unimodular

= [A | G− AR].

F A is uniform if [A | AR] is: leftover hash lemma for m ≈ n log q.

(With G = 0, we get the “key trick” constructing A with a “weak”trapdoor of ≥ 1 short vector, but not a full basis.)

F [I | A | −(AR1 + R2)] is pseudorandom (under LWE) for m = n.

9 / 18

Page 45: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 46: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 47: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 48: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 49: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 50: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.

(But we’ll never need to.)

10 / 18

Page 51: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A New Trapdoor Notion

I We constructed A = [A | G− AR].

Definition

I R is a trapdoor for A with tag H ∈ Zn×nq (H invertible) if

A ·[RI

]= H ·G.

I The quality of R is s1(R) := max‖u‖=1

‖Ru‖. (smaller is better.)

I Fact: s1(R) ≈ (√

rows +√

cols) · r for Gaussian entries w/ std dev r.

I Note: R is a trapdoor for A− [0 | H′ ·G] w/tag (H−H′) [ABB’10].

Relating New and Old Trapdoors

Given a basis S for Λ⊥(G) and a trapdoor R for A,

we can efficiently construct a basis SA for Λ⊥(A)

where ‖SA‖ ≤ (s1(R) + 1) · ‖S‖.(But we’ll never need to.)

10 / 18

Page 52: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 3: Reduce f−1A , g−1

A to f−1G , g−1

G

I Suppose R is a trapdoor for A (w/tag H = I): A[RI

]= G.

Inverting LWE Function

Given bt = stA + et, recover s from

bt[RI

]= stG + et

[RI

].

Works if each entry of et[RI

]in [− q

4 ,q4) ⇐ ‖e‖ < q/(4s1(

[RI

])).

Sampling Gaussian Preimages

Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I We have Ax = Gz = u as desired.

I Problem:[RI

]z is non-spherical Gaussian, leaks R !

I Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/std dev ≈ s1(R): output x = p +

[RI

]z.

11 / 18

Page 53: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 3: Reduce f−1A , g−1

A to f−1G , g−1

G

I Suppose R is a trapdoor for A (w/tag H = I): A[RI

]= G.

Inverting LWE Function

Given bt = stA + et, recover s from

bt[RI

]= stG + et

[RI

].

Works if each entry of et[RI

]in [− q

4 ,q4) ⇐ ‖e‖ < q/(4s1(

[RI

])).

Sampling Gaussian Preimages

Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I We have Ax = Gz = u as desired.

I Problem:[RI

]z is non-spherical Gaussian, leaks R !

I Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/std dev ≈ s1(R): output x = p +

[RI

]z.

11 / 18

Page 54: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 3: Reduce f−1A , g−1

A to f−1G , g−1

G

I Suppose R is a trapdoor for A (w/tag H = I): A[RI

]= G.

Inverting LWE Function

Given bt = stA + et, recover s from

bt[RI

]= stG + et

[RI

].

Works if each entry of et[RI

]in [− q

4 ,q4) ⇐ ‖e‖ < q/(4s1(

[RI

])).

Sampling Gaussian Preimages

Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I We have Ax = Gz = u as desired.

I Problem:[RI

]z is non-spherical Gaussian, leaks R !

I Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/std dev ≈ s1(R): output x = p +

[RI

]z.

11 / 18

Page 55: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 3: Reduce f−1A , g−1

A to f−1G , g−1

G

I Suppose R is a trapdoor for A (w/tag H = I): A[RI

]= G.

Inverting LWE Function

Given bt = stA + et, recover s from

bt[RI

]= stG + et

[RI

].

Works if each entry of et[RI

]in [− q

4 ,q4) ⇐ ‖e‖ < q/(4s1(

[RI

])).

Sampling Gaussian Preimages

Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I We have Ax = Gz = u as desired.

I Problem:[RI

]z is non-spherical Gaussian, leaks R !

I Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/std dev ≈ s1(R): output x = p +

[RI

]z.

11 / 18

Page 56: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Step 3: Reduce f−1A , g−1

A to f−1G , g−1

G

I Suppose R is a trapdoor for A (w/tag H = I): A[RI

]= G.

Inverting LWE Function

Given bt = stA + et, recover s from

bt[RI

]= stG + et

[RI

].

Works if each entry of et[RI

]in [− q

4 ,q4) ⇐ ‖e‖ < q/(4s1(

[RI

])).

Sampling Gaussian Preimages

Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I We have Ax = Gz = u as desired.

I Problem:[RI

]z is non-spherical Gaussian, leaks R !

I Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/std dev ≈ s1(R): output x = p +

[RI

]z.

11 / 18

Page 57: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A First Attempt

I Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I x1 = Rz has a non-spherical Gaussian distribution of covariance

Σ := Ex

[x · xt

]= Ez

[R · zzt ·Rt

]≈ s2 ·RRt.

Covariance can be measured — and it leaks R! (up to rotation)

12 / 18

Page 58: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A First Attempt

I Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I x1 = Rz has a non-spherical Gaussian distribution of covariance

Σ := Ex

[x · xt

]= Ez

[R · zzt ·Rt

]≈ s2 ·RRt.

Covariance can be measured — and it leaks R! (up to rotation)

12 / 18

Page 59: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

A First Attempt

I Given u, sample z← f−1G (u) and output x =

[RI

]z ∈ f−1

A (u) ?

I x1 = Rz has a non-spherical Gaussian distribution of covariance

Σ := Ex

[x · xt

]= Ez

[R · zzt ·Rt

]≈ s2 ·RRt.

Covariance can be measured — and it leaks R! (up to rotation)

12 / 18

Page 60: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 61: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 62: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 63: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 64: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 65: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

(pos def means: ut Σu > 0 for all unit u.)

Spherical Gaussian ↔ covariance s2 I.

2 Convolution of Gaussians:

+ =

Σ1 + Σ2 = Σ = s2 I

3 Given Σ1, how small can s be? For Σ2 := s2 I− Σ1,

ut Σ2 u = s2 − ut Σ1 u > 0 ⇐⇒ s2 > maxλi(Σ1)

For Σ1 = RRt, can use any s > s1(R) := max singular val of R.

13 / 18

Page 66: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given trapdoor R of A, syndrome u, and std dev s > s1(R),

1 Generate perturbation p with covariance Σ2 := s2 I−RRt > 0.

2 Sample spherical z s.t. Gz = u−Ap.

3 Output x = p +[RI

]z. (Note: Ax = Ap + Gz = u.)

+ =

RRt + (s2I−RRt) = s2 I

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L⊥u (A).

(∗technically not a convolution, since step 2 depends on step 1.)

14 / 18

Page 67: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given trapdoor R of A, syndrome u, and std dev s > s1(R),

1 Generate perturbation p with covariance Σ2 := s2 I−RRt > 0.

2 Sample spherical z s.t. Gz = u−Ap.

3 Output x = p +[RI

]z. (Note: Ax = Ap + Gz = u.)

+ =

RRt +

(s2I−RRt)

= s2 I

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L⊥u (A).

(∗technically not a convolution, since step 2 depends on step 1.)

14 / 18

Page 68: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given trapdoor R of A, syndrome u, and std dev s > s1(R),

1 Generate perturbation p with covariance Σ2 := s2 I−RRt > 0.

2 Sample spherical z s.t. Gz = u−Ap.

3 Output x = p +[RI

]z. (Note: Ax = Ap + Gz = u.)

+ =

RRt + (s2I−RRt)

= s2 I

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L⊥u (A).

(∗technically not a convolution, since step 2 depends on step 1.)

14 / 18

Page 69: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given trapdoor R of A, syndrome u, and std dev s > s1(R),

1 Generate perturbation p with covariance Σ2 := s2 I−RRt > 0.

2 Sample spherical z s.t. Gz = u−Ap.

3 Output x = p +[RI

]z. (Note: Ax = Ap + Gz = u.)

+ =

RRt + (s2I−RRt) = s2 I

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L⊥u (A).

(∗technically not a convolution, since step 2 depends on step 1.)

14 / 18

Page 70: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given trapdoor R of A, syndrome u, and std dev s > s1(R),

1 Generate perturbation p with covariance Σ2 := s2 I−RRt > 0.

2 Sample spherical z s.t. Gz = u−Ap.

3 Output x = p +[RI

]z. (Note: Ax = Ap + Gz = u.)

+ =

RRt + (s2I−RRt) = s2 I

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L⊥u (A).

(∗technically not a convolution, since step 2 depends on step 1.)

14 / 18

Page 71: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Application: Efficient IBE a la [ABB’10]

I Setup: choose A = [A | −AR]. Let mpk = (A,u), msk = R.

(A has trapdoor R with tag 0.)

I Extract(R, id): map id 7→ invertible Hid ∈ Zn×nq . [DF’94,. . . ,ABB’10]

Using R, choose skid = x← f−1Aid

(u), where

Aid = A + [0 | Hid ·G] = [A | Hid ·G− AR].

I Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08].

I Security (“puncturing”): Given target id∗ (selective security), set up

A = [A | −Hid∗ ·G− AR] =⇒ Aid = [A | (Hid −Hid∗)G− AR].

F Hid −Hid∗ is invertible for all id 6= id∗, so can extract skid using R.

F Aid∗ = [A | −AR], so can embed an LWE challenge at id∗.

15 / 18

Page 72: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Application: Efficient IBE a la [ABB’10]

I Setup: choose A = [A | −AR]. Let mpk = (A,u), msk = R.

(A has trapdoor R with tag 0.)

I Extract(R, id): map id 7→ invertible Hid ∈ Zn×nq . [DF’94,. . . ,ABB’10]

Using R, choose skid = x← f−1Aid

(u), where

Aid = A + [0 | Hid ·G] = [A | Hid ·G− AR].

I Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08].

I Security (“puncturing”): Given target id∗ (selective security), set up

A = [A | −Hid∗ ·G− AR] =⇒ Aid = [A | (Hid −Hid∗)G− AR].

F Hid −Hid∗ is invertible for all id 6= id∗, so can extract skid using R.

F Aid∗ = [A | −AR], so can embed an LWE challenge at id∗.

15 / 18

Page 73: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Application: Efficient IBE a la [ABB’10]

I Setup: choose A = [A | −AR]. Let mpk = (A,u), msk = R.

(A has trapdoor R with tag 0.)

I Extract(R, id): map id 7→ invertible Hid ∈ Zn×nq . [DF’94,. . . ,ABB’10]

Using R, choose skid = x← f−1Aid

(u), where

Aid = A + [0 | Hid ·G] = [A | Hid ·G− AR].

I Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08].

I Security (“puncturing”): Given target id∗ (selective security), set up

A = [A | −Hid∗ ·G− AR] =⇒ Aid = [A | (Hid −Hid∗)G− AR].

F Hid −Hid∗ is invertible for all id 6= id∗, so can extract skid using R.

F Aid∗ = [A | −AR], so can embed an LWE challenge at id∗.

15 / 18

Page 74: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Application: Efficient IBE a la [ABB’10]

I Setup: choose A = [A | −AR]. Let mpk = (A,u), msk = R.

(A has trapdoor R with tag 0.)

I Extract(R, id): map id 7→ invertible Hid ∈ Zn×nq . [DF’94,. . . ,ABB’10]

Using R, choose skid = x← f−1Aid

(u), where

Aid = A + [0 | Hid ·G] = [A | Hid ·G− AR].

I Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08].

I Security (“puncturing”): Given target id∗ (selective security), set up

A = [A | −Hid∗ ·G− AR] =⇒ Aid = [A | (Hid −Hid∗)G− AR].

F Hid −Hid∗ is invertible for all id 6= id∗, so can extract skid using R.

F Aid∗ = [A | −AR], so can embed an LWE challenge at id∗.

15 / 18

Page 75: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Delegation [CHKP’10]

I Suppose R is a trapdoor for A, i.e. A[RI

]= H ·G.

I To delegate a trapdoor for an extension [A | A′] with tag H′, justsample Gaussian R′ s.t.

[A | A′][R′I

]= H′ ·G ⇐⇒ AR′ = H′ ·G−A′.

I One-way: R′ reveals nothing about R.

Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12].

I Note: R′ is only width(A)× width(G) = m× n log q.

So size of R′ grows only as O(m), not Ω(m2) like a basis does.

Also computationally efficient: n log q samples, no HNF or ToBasis.

16 / 18

Page 76: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Delegation [CHKP’10]

I Suppose R is a trapdoor for A, i.e. A[RI

]= H ·G.

I To delegate a trapdoor for an extension [A | A′] with tag H′, justsample Gaussian R′ s.t.

[A | A′][R′I

]= H′ ·G ⇐⇒ AR′ = H′ ·G−A′.

I One-way: R′ reveals nothing about R.

Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12].

I Note: R′ is only width(A)× width(G) = m× n log q.

So size of R′ grows only as O(m), not Ω(m2) like a basis does.

Also computationally efficient: n log q samples, no HNF or ToBasis.

16 / 18

Page 77: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Delegation [CHKP’10]

I Suppose R is a trapdoor for A, i.e. A[RI

]= H ·G.

I To delegate a trapdoor for an extension [A | A′] with tag H′, justsample Gaussian R′ s.t.

[A | A′][R′I

]= H′ ·G ⇐⇒ AR′ = H′ ·G−A′.

I One-way: R′ reveals nothing about R.

Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12].

I Note: R′ is only width(A)× width(G) = m× n log q.

So size of R′ grows only as O(m), not Ω(m2) like a basis does.

Also computationally efficient: n log q samples, no HNF or ToBasis.

16 / 18

Page 78: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Trapdoor Delegation [CHKP’10]

I Suppose R is a trapdoor for A, i.e. A[RI

]= H ·G.

I To delegate a trapdoor for an extension [A | A′] with tag H′, justsample Gaussian R′ s.t.

[A | A′][R′I

]= H′ ·G ⇐⇒ AR′ = H′ ·G−A′.

I One-way: R′ reveals nothing about R.

Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12].

I Note: R′ is only width(A)× width(G) = m× n log q.

So size of R′ grows only as O(m), not Ω(m2) like a basis does.

Also computationally efficient: n log q samples, no HNF or ToBasis.

16 / 18

Page 79: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Hierarchical IBE [CHKP’10,ABB’10]

I Setup(d): choose A0, . . . ,Ad where Aε = [A0 | A1]

has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = Ai.

I Extract(id): map id = (id1, . . . , idt) 7→ (Hid1 , . . .Hidt) (invertible).

LetAid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Delegate skid = trapdoor Rid for Aid with tag 0.

Using skid, can delegate any skid′ for any nontrivial extension id′.

I Encrypt to Aid, decrypt using Rid as in [GPV’08].

I Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

17 / 18

Page 80: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Hierarchical IBE [CHKP’10,ABB’10]

I Setup(d): choose A0, . . . ,Ad where Aε = [A0 | A1]

has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = Ai.

I Extract(id): map id = (id1, . . . , idt) 7→ (Hid1 , . . .Hidt) (invertible).

LetAid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Delegate skid = trapdoor Rid for Aid with tag 0.

Using skid, can delegate any skid′ for any nontrivial extension id′.

I Encrypt to Aid, decrypt using Rid as in [GPV’08].

I Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

17 / 18

Page 81: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Hierarchical IBE [CHKP’10,ABB’10]

I Setup(d): choose A0, . . . ,Ad where Aε = [A0 | A1]

has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = Ai.

I Extract(id): map id = (id1, . . . , idt) 7→ (Hid1 , . . .Hidt) (invertible).

LetAid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Delegate skid = trapdoor Rid for Aid with tag 0.

Using skid, can delegate any skid′ for any nontrivial extension id′.

I Encrypt to Aid, decrypt using Rid as in [GPV’08].

I Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

17 / 18

Page 82: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Hierarchical IBE [CHKP’10,ABB’10]

I Setup(d): choose A0, . . . ,Ad where Aε = [A0 | A1]

has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = Ai.

I Extract(id): map id = (id1, . . . , idt) 7→ (Hid1 , . . .Hidt) (invertible).

LetAid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Delegate skid = trapdoor Rid for Aid with tag 0.

Using skid, can delegate any skid′ for any nontrivial extension id′.

I Encrypt to Aid, decrypt using Rid as in [GPV’08].

I Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

17 / 18

Page 83: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Hierarchical IBE [CHKP’10,ABB’10]

I Setup(d): choose A0, . . . ,Ad where Aε = [A0 | A1]

has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = Ai.

I Extract(id): map id = (id1, . . . , idt) 7→ (Hid1 , . . .Hidt) (invertible).

LetAid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Delegate skid = trapdoor Rid for Aid with tag 0.

Using skid, can delegate any skid′ for any nontrivial extension id′.

I Encrypt to Aid, decrypt using Rid as in [GPV’08].

I Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

17 / 18

Page 84: Lattice-Based Cryptography: Constructing Trapdoors and ...cpeikert/pubs/slides-abit4.pdf · Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert

Conclusions

I A simple trapdoor that’s easy to generate, use, and understand.

I Key sizes and algorithms for “strong” trapdoors are now realistic,with ring techniques (tomorrow)

Selected bibliography for this talk:

CHKP’10 D. Cash, D. Hofheinz, E. Kiltz, C. Peikert, “Bonsai Trees, or How toDelegate a Lattice Basis,” Eurocrypt’10 / J. Crypt’11.

ABB’10 S. Agrawal, D. Boneh, X. Boyen, “Efficient Lattice (H)IBE in theStandard Model,” Eurocrypt’10.

MP’12 D. Micciancio, C. Peikert, “Trapdoors for Lattices: Simpler, Tighter,Faster, Smaller,” Eurocrypt’12.

18 / 18


Recommended