lattice-based cryptography: trapdoors, discrete gaussians...

113
Lattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert Georgia Institute of Technology crypt@b-it 2013 1 / 21

Upload: others

Post on 10-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Lattice-Based Cryptography:Trapdoors, Discrete Gaussians, and Applications

Chris PeikertGeorgia Institute of Technology

crypt@b-it 2013

1 / 21

Page 2: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Agenda

1 “Strong trapdoors” for lattices

2 Discrete Gaussians, sampling, and “preimage sampleable” functions

3 Applications: signatures, ID-based encryption (in RO model)

2 / 21

Page 3: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Digital Signatures

(Images courtesy xkcd.org)3 / 21

Page 4: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Digital Signatures

(secret)

(public)

(Images courtesy xkcd.org)3 / 21

Page 5: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Digital Signatures

(secret)

(public)

“I love you” 4

(Images courtesy xkcd.org)3 / 21

Page 6: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Digital Signatures

(secret)

(public)

“It’s over” 7

(Images courtesy xkcd.org)3 / 21

Page 7: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 8: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP)

D D

xy

f

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 9: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP)

D D

xy

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 10: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP)

D D

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 11: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP)

D D

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 12: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP)

D D

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

I Candidate TDPs: [RSA’78,Rabin’79,Paillier’99] (‘general assumption’)

All rely on hardness of factoring:

7 Complex: 2048-bit exponentiation

7 Broken by quantum algorithms [Shor’97]

4 / 21

Page 13: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

D R

xy

f

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 14: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

D R

xy

f

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 15: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

D R

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 16: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

D R

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

Page 17: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Central Tool: Trapdoor Functions

I Public function f generated with secret ‘trapdoor’ f−1

I New twist [GPV’08]: preimage sampleable trapdoor function (PSF)

D R

xy

f−1

I ‘Hash and sign:’ pk = f , sk = f−1. Sign(msg) = f−1(H(msg)).

I Still secure! Can generate (x, y) in two equivalent ways:

REALITY PROOF

Ryx

f−1

D x y

f

4 / 21

Page 18: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

s1

s2

b1

b2

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 19: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

s1

s2

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 20: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

b1

b2x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 21: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

s1

s2

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 22: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

s1

s2

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 23: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

s1

s2

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 24: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 25: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 26: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 27: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 28: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 29: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 30: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Candidate Signature Scheme [GGH’96]

I Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S

I Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

I Verify(msg,x) check x ∈ H(msg) = c + L, and x short enough

x

Technical Issues

1 Generating “hard” lattice together with short basis (tomorrow)

2 Signing algorithm leaks secret basis!F Total break after 100s-1000s of signatures [NguyenRegev’06]

5 / 21

Page 31: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Key Concept: Blurring a Lattice [Regev’03,MR’04]

Question: How much blur makes it uniform?

6 / 21

Page 32: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Key Concept: Blurring a Lattice [Regev’03,MR’04]

Question: How much blur makes it uniform?

6 / 21

Page 33: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Key Concept: Blurring a Lattice [Regev’03,MR’04]

Question: How much blur makes it uniform?

6 / 21

Page 34: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Key Concept: Blurring a Lattice [Regev’03,MR’04]

Question: How much blur makes it uniform?

6 / 21

Page 35: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaussians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 36: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 37: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 38: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 39: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 40: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 41: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 42: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Gaußians

I The 1-dim Gaussian function: (pdf of normal dist w/ std dev 1/√

2π)

ρ(x)∆= exp(−π · x2).

Also define ρs(x)∆= ρ(x/s) = exp(−π · (x/s)2).

I Sum of Gaussians centered at lattice points:

fs(c) =∑z∈Z

ρs(c− z) = ρs(c+ Z).

I Fact: ρs(c+ Z) ∈ [1± ε1−ε ] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

Page 43: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

8 / 21

Page 44: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

b1 = b1

b2

b2

8 / 21

Page 45: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

b1 = b1

b2

b2

8 / 21

Page 46: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

8 / 21

Page 47: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

8 / 21

Page 48: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

8 / 21

Page 49: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

n-dimensional Gaussians

I The n-dim Gaussian: ρ(x)∆= exp(−π · ‖x‖2) = ρ(x1) · · · ρ(xn).

Clearly, it is rotationally invariant.

I Fact: Suppose L has a basis B with M = maxi‖bi‖. Then

ρs(c + L) ∈ [1± ε] · sn

for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

So s ≈M√

log n suffices for near-uniformity.

8 / 21

Page 50: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 51: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 52: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 53: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:

1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 54: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 55: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Discrete Gaussians

I Define the discrete Gaussian distribution over coset c + L as

Dc+L,s(x) =ρs(x)

ρs(c + L)for all x ∈ c + L.

I Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

2 Reveal coset x + L. (e.g., as x = x mod B for some basis B)

Immediate facts:1 Every coset c + L is equally∗ likely: we get uniform dist over Zn/L.

2 Given that x ∈ c + L, it has conditional distribution Dc+L,s.

9 / 21

Page 56: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampleable TDF: Evaluationf

I ‘Hard’ description of L specifies f .

Concretely: SIS matrix A defines fA.

I f(x) = x mod L for Gaussian x← DZm,s.

Concretely: fA(x) = Ax = u ∈ Znq .

I Inverting fA ⇔ decoding unif syndrome u⇔ solving SIS.

O

(0, q)

(q, 0)

I Given u, conditional distrib. of x is the discrete Gaussian DL⊥u (A),s.

10 / 21

Page 57: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampleable TDF: Evaluationf

I ‘Hard’ description of L specifies f .

Concretely: SIS matrix A defines fA.

I f(x) = x mod L for Gaussian x← DZm,s.

Concretely: fA(x) = Ax = u ∈ Znq .

I Inverting fA ⇔ decoding unif syndrome u⇔ solving SIS.

O

(0, q)

(q, 0)

x

I Given u, conditional distrib. of x is the discrete Gaussian DL⊥u (A),s.

10 / 21

Page 58: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampleable TDF: Evaluationf

I ‘Hard’ description of L specifies f .

Concretely: SIS matrix A defines fA.

I f(x) = x mod L for Gaussian x← DZm,s.

Concretely: fA(x) = Ax = u ∈ Znq .

I Inverting fA ⇔ decoding unif syndrome u⇔ solving SIS.

O

(0, q)

(q, 0)

x

I Given u, conditional distrib. of x is the discrete Gaussian DL⊥u (A),s.

10 / 21

Page 59: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampleable TDF: Evaluationf

I ‘Hard’ description of L specifies f .

Concretely: SIS matrix A defines fA.

I f(x) = x mod L for Gaussian x← DZm,s.

Concretely: fA(x) = Ax = u ∈ Znq .

I Inverting fA ⇔ decoding unif syndrome u⇔ solving SIS.

O

(0, q)

(q, 0)

x

I Given u, conditional distrib. of x is the discrete Gaussian DL⊥u (A),s.

10 / 21

Page 60: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 61: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 62: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 63: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 64: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

x

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 65: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Preimage Sampling: Method #1f−1

I Sample DL⊥u (A),s given any short enough basis S: max‖si‖ ≤ s.

F Unlike [GGH’96], output leaks nothing about S! (the bound s is public)

I “Nearest-plane” algorithm with randomized rounding [Klein’00,GPV’08]

coset L⊥u (A)s1

s2

O

x

I Proof idea: ρs((c + L) ∩ plane) depends only on dist(0, plane);essentially no dependence on shift within plane

11 / 21

Page 66: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Identity-Based Encryption

I Proposed by [Shamir’84]: could this exist?

mpk (msk)

Enc(mpk, “Alice”, msg)

skAlice skBobbi

skCarol

12 / 21

Page 67: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Identity-Based Encryption

I Proposed by [Shamir’84]: could this exist?

mpk (msk)

Enc(mpk, “Alice”, msg)

skAlice skBobbi

skCarol

12 / 21

Page 68: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Identity-Based Encryption

I Proposed by [Shamir’84]: could this exist?

mpk (msk)

Enc(mpk, “Alice”, msg)

skAlice skBobbi

skCarol

12 / 21

Page 69: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Identity-Based Encryption

I Proposed by [Shamir’84]: could this exist?

mpk (msk)

?? ??

Enc(mpk, “Alice”, msg)

skAlice skBobbi

skCarol

12 / 21

Page 70: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Fast-Forward 17 Years. . .

1 [BonehFranklin’01,. . . ]: first IBE construction, using “new math”(elliptic curves w/ bilinear pairings)

2 [Cocks’01,BGH’07]: quadratic residuosity mod N = pq [GM’82]

3 [GPV’08]: lattices!

13 / 21

Page 71: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Fast-Forward 17 Years. . .

1 [BonehFranklin’01,. . . ]: first IBE construction, using “new math”(elliptic curves w/ bilinear pairings)

2 [Cocks’01,BGH’07]: quadratic residuosity mod N = pq [GM’82]

3 [GPV’08]: lattices!

13 / 21

Page 72: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Fast-Forward 17 Years. . .

1 [BonehFranklin’01,. . . ]: first IBE construction, using “new math”(elliptic curves w/ bilinear pairings)

2 [Cocks’01,BGH’07]: quadratic residuosity mod N = pq [GM’82]

3 [GPV’08]: lattices!

13 / 21

Page 73: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss

s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 74: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss

s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 75: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 76: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2

b′ = st u + e′ + bit · q2(‘payload’)

? (A,u,b, b′)

14 / 21

Page 77: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 78: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 79: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Recall: ‘Dual’ LWE Cryptosystem

A

x← Gauss s, e

u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′−bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

? (A,u,b, b′)

14 / 21

Page 80: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

ID-Based Encryption

mpk = A

s, e

u = H(“Alice”)

(‘identity’ public key)

b = stA + et

(ciphertext preamble)

b′ − bt x ≈ bit · q2b′ = st u + e′ + bit · q2

(‘payload’)

x← f−1A (u)

15 / 21

Page 81: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Tomorrow. . .

I Generating trapdoors (A with short basis or equivalent)

I Removing the random oracle from signatures & IBE

I More surprising applications

Selected bibliography for this talk:

MR’04 D. Micciancio and O. Regev, “Worst-Case to Average-Case ReductionsBased on Gaussian Measures,” FOCS’04 / SICOMP’07.

GPV’08 C. Gentry, C. Peikert, V. Vaikuntanathan, “Trapdoors for Hard Latticesand New Cryptographic Constructions,” STOC’08.

P’10 C. Peikert, “An Efficient and Parallel Gaussian Sampler for Lattices,”Crypto’10.

16 / 21

Page 82: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Tomorrow. . .

I Generating trapdoors (A with short basis or equivalent)

I Removing the random oracle from signatures & IBE

I More surprising applications

Selected bibliography for this talk:

MR’04 D. Micciancio and O. Regev, “Worst-Case to Average-Case ReductionsBased on Gaussian Measures,” FOCS’04 / SICOMP’07.

GPV’08 C. Gentry, C. Peikert, V. Vaikuntanathan, “Trapdoors for Hard Latticesand New Cryptographic Constructions,” STOC’08.

P’10 C. Peikert, “An Efficient and Parallel Gaussian Sampler for Lattices,”Crypto’10.

16 / 21

Page 83: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Tomorrow. . .

I Generating trapdoors (A with short basis or equivalent)

I Removing the random oracle from signatures & IBE

I More surprising applications

Selected bibliography for this talk:

MR’04 D. Micciancio and O. Regev, “Worst-Case to Average-Case ReductionsBased on Gaussian Measures,” FOCS’04 / SICOMP’07.

GPV’08 C. Gentry, C. Peikert, V. Vaikuntanathan, “Trapdoors for Hard Latticesand New Cryptographic Constructions,” STOC’08.

P’10 C. Peikert, “An Efficient and Parallel Gaussian Sampler for Lattices,”Crypto’10.

16 / 21

Page 84: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Tomorrow. . .

I Generating trapdoors (A with short basis or equivalent)

I Removing the random oracle from signatures & IBE

I More surprising applications

Selected bibliography for this talk:

MR’04 D. Micciancio and O. Regev, “Worst-Case to Average-Case ReductionsBased on Gaussian Measures,” FOCS’04 / SICOMP’07.

GPV’08 C. Gentry, C. Peikert, V. Vaikuntanathan, “Trapdoors for Hard Latticesand New Cryptographic Constructions,” STOC’08.

P’10 C. Peikert, “An Efficient and Parallel Gaussian Sampler for Lattices,”Crypto’10.

16 / 21

Page 85: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Bonus Material:

A Better

Discrete Gaussian SamplingAlgorithm

17 / 21

Page 86: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 87: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 88: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 89: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 90: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 91: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 92: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 93: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

4 Tight: std dev s ≈ max‖si‖ = max dist between adjacent planes

7 Not efficient: runtime = Ω(n3), high-precision arithmetic

7 Inherently sequential: n adaptive iterations

7 No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

I Simple & efficient: n2 online adds and mults (mod q)

Even better: O(n) time in the ring setting

I Fully parallel: n2/P operations on any P ≤ n2 processors

I High quality: same∗ Gaussian std dev as nearest-plane alg∗in cryptographic applications

18 / 21

Page 94: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)

$

. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 95: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)

$

. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 96: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)$. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 97: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)$. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 98: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)$. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 99: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

A First Attempt

I [Babai’86] “round-off:” c 7→ S · frac(S−1 · c)$. (Fast & parallel!)

I Deterministic round-off is insecure [NR’06] . . .

. . . but what about randomized rounding?

s1

s2

O coset L + c

I Non-spherical discrete Gaussian: has covariance

Σ := Ex

[x · xt

]≈ S · St.

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

19 / 21

Page 100: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 101: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 102: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 103: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 104: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 105: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and 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 = SSt, can use any s > s1(S) := max singular val of S.

20 / 21

Page 106: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt

Σ2

s1

s2

21 / 21

Page 107: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

21 / 21

Page 108: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

21 / 21

Page 109: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L+ c.

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

21 / 21

Page 110: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L+ c.

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

21 / 21

Page 111: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

Optimizations

1 Precompute perturbations offline

2 Batch multi-sample using fast matrix multiplication

3 More tricks & simplifications for SIS lattices (tomorrow)

21 / 21

Page 112: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

Optimizations

1 Precompute perturbations offline

2 Batch multi-sample using fast matrix multiplication

3 More tricks & simplifications for SIS lattices (tomorrow)

21 / 21

Page 113: Lattice-Based Cryptography: Trapdoors, Discrete Gaussians ...cpeikert/pubs/slides-abit3.pdfLattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert

‘Convolution’ Sampling Algorithm [P’10]

I Given basis S, coset L+ c, and std dev s > s1(S),

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

2 Randomly round-off p to L+ c: return S · frac(S−1 · (c + p))$

Σ1 = SSt Σ2

s1

s2

p

Optimizations

1 Precompute perturbations offline

2 Batch multi-sample using fast matrix multiplication

3 More tricks & simplifications for SIS lattices (tomorrow)

21 / 21