Lattice-Based Cryptography: Trapdoors, Discrete Gaussians, and - - PowerPoint PPT Presentation

lattice based cryptography trapdoors discrete gaussians
SMART_READER_LITE
LIVE PREVIEW

Lattice-Based Cryptography: Trapdoors, Discrete Gaussians, and - - PowerPoint PPT Presentation

Lattice-Based Cryptography: Trapdoors, Discrete Gaussians, and Applications Chris Peikert Georgia Institute of Technology crypt@b-it 2013 1 / 21 Agenda 1 Strong trapdoors for lattices 2 Discrete Gaussians, sampling, and preimage


slide-1
SLIDE 1

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

Georgia Institute of Technology crypt@b-it 2013

1 / 21

slide-2
SLIDE 2

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

slide-3
SLIDE 3

Digital Signatures

(Images courtesy xkcd.org) 3 / 21

slide-4
SLIDE 4

Digital Signatures

(secret) (public)

(Images courtesy xkcd.org) 3 / 21

slide-5
SLIDE 5

Digital Signatures

(secret) (public) “I love you” ✔

(Images courtesy xkcd.org) 3 / 21

slide-6
SLIDE 6

Digital Signatures

(secret) (public) “It’s over” ✗

(Images courtesy xkcd.org) 3 / 21

slide-7
SLIDE 7

Central Tool: Trapdoor Functions

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

4 / 21

slide-8
SLIDE 8

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP) D D x y f

4 / 21

slide-9
SLIDE 9

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP) D D x y

4 / 21

slide-10
SLIDE 10

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP) D D x y f−1

4 / 21

slide-11
SLIDE 11

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP) D D x y f−1 ◮ ‘Hash and sign:’ pk = f, sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

slide-12
SLIDE 12

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ Trapdoor permutation [DH’76,RSA’77,. . . ] (TDP) D D x y f−1 ◮ ‘Hash and sign:’ pk = f, sk = f−1. Sign(msg) = f−1(H(msg)). ◮ Candidate TDPs: [RSA’78,Rabin’79,Paillier’99] (‘general assumption’) All rely on hardness of factoring:

✗ Complex: 2048-bit exponentiation ✗ Broken by quantum algorithms [Shor’97]

4 / 21

slide-13
SLIDE 13

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ New twist [GPV’08]: preimage sampleable trapdoor function (PSF) D R x y f

4 / 21

slide-14
SLIDE 14

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ New twist [GPV’08]: preimage sampleable trapdoor function (PSF) D R x y f

4 / 21

slide-15
SLIDE 15

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ New twist [GPV’08]: preimage sampleable trapdoor function (PSF) D R x y f−1

4 / 21

slide-16
SLIDE 16

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ New twist [GPV’08]: preimage sampleable trapdoor function (PSF) D R x y f−1 ◮ ‘Hash and sign:’ pk = f, sk = f−1. Sign(msg) = f−1(H(msg)).

4 / 21

slide-17
SLIDE 17

Central Tool: Trapdoor Functions

◮ Public function f generated with secret ‘trapdoor’ f−1 ◮ New twist [GPV’08]: preimage sampleable trapdoor function (PSF) D R x y f−1 ◮ ‘Hash and sign:’ pk = f, sk = f−1. Sign(msg) = f−1(H(msg)). ◮ Still secure! Can generate (x, y) in two equivalent ways: REALITY PROOF R y x

f −1

D x y

f

4 / 21

slide-18
SLIDE 18

Candidate Signature Scheme [GGH’96]

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

s1 s2 b1 b2 5 / 21

slide-19
SLIDE 19

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86]

s1 s2 x 5 / 21

slide-20
SLIDE 20

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ Verify(msg, x) check x ∈ H(msg) = c + L, and x short enough

b1 b2 x 5 / 21

slide-21
SLIDE 21

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ Verify(msg, x) check x ∈ H(msg) = c + L, and x short enough

s1 s2 x 5 / 21

slide-22
SLIDE 22

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ Verify(msg, x) check x ∈ H(msg) = c + L, and x short enough

s1 s2 x 5 / 21

slide-23
SLIDE 23

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ Verify(msg, x) check x ∈ H(msg) = c + L, and x short enough

s1 s2 x 5 / 21

slide-24
SLIDE 24

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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)

5 / 21

slide-25
SLIDE 25

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-26
SLIDE 26

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-27
SLIDE 27

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-28
SLIDE 28

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-29
SLIDE 29

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-30
SLIDE 30

Candidate Signature Scheme [GGH’96]

◮ Key idea: pk = “bad” basis B for L, sk = “short” trapdoor basis S ◮ Sign: H(msg) = c + L; get short x ∈ c + L via round-off [Babai’86] ◮ 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!

⋆ Total break after 100s-1000s of signatures [NguyenRegev’06] 5 / 21

slide-31
SLIDE 31

Key Concept: Blurring a Lattice

[Regev’03,MR’04]

6 / 21

slide-32
SLIDE 32

Key Concept: Blurring a Lattice

[Regev’03,MR’04]

6 / 21

slide-33
SLIDE 33

Key Concept: Blurring a Lattice

[Regev’03,MR’04]

6 / 21

slide-34
SLIDE 34

Key Concept: Blurring a Lattice

[Regev’03,MR’04]

Question: How much blur makes it uniform?

6 / 21

slide-35
SLIDE 35

Gaussians

7 / 21

slide-36
SLIDE 36

Gaußians

7 / 21

slide-37
SLIDE 37

Gaußians

◮ 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).

7 / 21

slide-38
SLIDE 38

Gaußians

◮ 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). ◮ Sum of Gaussians centered at lattice points: fs(c) =

  • z∈Z

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

7 / 21

slide-39
SLIDE 39

Gaußians

◮ 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). ◮ Sum of Gaussians centered at lattice points: fs(c) =

  • z∈Z

ρs(c − z) = ρs(c + Z). ◮ Fact: ρs(c + Z) ∈ [1 ±

ε 1−ε] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

slide-40
SLIDE 40

Gaußians

◮ 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). ◮ Sum of Gaussians centered at lattice points: fs(c) =

  • z∈Z

ρs(c − z) = ρs(c + Z). ◮ Fact: ρs(c + Z) ∈ [1 ±

ε 1−ε] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

slide-41
SLIDE 41

Gaußians

◮ 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). ◮ Sum of Gaussians centered at lattice points: fs(c) =

  • z∈Z

ρs(c − z) = ρs(c + Z). ◮ Fact: ρs(c + Z) ∈ [1 ±

ε 1−ε] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

slide-42
SLIDE 42

Gaußians

◮ 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). ◮ Sum of Gaussians centered at lattice points: fs(c) =

  • z∈Z

ρs(c − z) = ρs(c + Z). ◮ Fact: ρs(c + Z) ∈ [1 ±

ε 1−ε] · s for all c ∈ R, where ε ≤ 2 exp(−πs2).

7 / 21

slide-43
SLIDE 43

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant.

8 / 21

slide-44
SLIDE 44

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • bi. Then

ρs(c + L) ∈ [1 ± ε] · sn for all c ∈ Rn, where ε ≤ 2n · exp(−π(s/M)2).

˜ b1 = b1 b2 ˜ b2 8 / 21

slide-45
SLIDE 45

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • 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

slide-46
SLIDE 46

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • 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

slide-47
SLIDE 47

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • 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

slide-48
SLIDE 48

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • 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

slide-49
SLIDE 49

n-dimensional Gaussians

◮ The n-dim Gaussian: ρ(x) ∆ = exp(−π · x2) = ρ(x1) · · · ρ(xn). Clearly, it is rotationally invariant. ◮ Fact: Suppose L has a basis B with M = max

i ˜

  • 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

slide-50
SLIDE 50

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L.

9 / 21

slide-51
SLIDE 51

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L. ◮ Consider the following experiment:

1 Choose x ∈ Zn from DZn,s.

9 / 21

slide-52
SLIDE 52

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L. ◮ 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)

9 / 21

slide-53
SLIDE 53

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L. ◮ 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:

9 / 21

slide-54
SLIDE 54

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L. ◮ 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.

9 / 21

slide-55
SLIDE 55

Discrete Gaussians

◮ Define the discrete Gaussian distribution over coset c + L as Dc+L,s(x) = ρs(x) ρs(c + L) for all x ∈ c + L. ◮ 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

slide-56
SLIDE 56

Preimage Sampleable TDF: Evaluation

f

◮ ‘Hard’ description of L specifies f. Concretely: SIS matrix A defines fA.

O (0, q) (q, 0) 10 / 21

slide-57
SLIDE 57

Preimage Sampleable TDF: Evaluation

f

◮ ‘Hard’ description of L specifies f. Concretely: SIS matrix A defines fA. ◮ f(x) = x mod L for Gaussian x ← DZm,s. Concretely: fA(x) = Ax = u ∈ Zn

q .

O (0, q) (q, 0) x 10 / 21

slide-58
SLIDE 58

Preimage Sampleable TDF: Evaluation

f

◮ ‘Hard’ description of L specifies f. Concretely: SIS matrix A defines fA. ◮ f(x) = x mod L for Gaussian x ← DZm,s. Concretely: fA(x) = Ax = u ∈ Zn

q .

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

O (0, q) (q, 0) x 10 / 21

slide-59
SLIDE 59

Preimage Sampleable TDF: Evaluation

f

◮ ‘Hard’ description of L specifies f. Concretely: SIS matrix A defines fA. ◮ f(x) = x mod L for Gaussian x ← DZm,s. Concretely: fA(x) = Ax = u ∈ Zn

q .

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

O (0, q) (q, 0) x

◮ Given u, conditional distrib. of x is the discrete Gaussian DL⊥

u (A),s. 10 / 21

slide-60
SLIDE 60

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

11 / 21

slide-61
SLIDE 61

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

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

coset L⊥

u (A) s1 s2 O 11 / 21

slide-62
SLIDE 62

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

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

coset L⊥

u (A) s1 s2 O 11 / 21

slide-63
SLIDE 63

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

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

coset L⊥

u (A) s1 s2 O 11 / 21

slide-64
SLIDE 64

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

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

coset L⊥

u (A) s1 s2 O x 11 / 21

slide-65
SLIDE 65

Preimage Sampling: Method #1

f −1

◮ Sample DL⊥

u (A),s given any short enough basis S: max˜

si ≤ s.

⋆ Unlike [GGH’96], output leaks nothing about S!

(the bound s is public)

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

coset L⊥

u (A) s1 s2 O x

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

11 / 21

slide-66
SLIDE 66

Identity-Based Encryption

◮ Proposed by [Shamir’84]: could this exist? mpk (msk)

12 / 21

slide-67
SLIDE 67

Identity-Based Encryption

◮ Proposed by [Shamir’84]: could this exist? mpk (msk)

skAlice skBobbi s k

Carol

12 / 21

slide-68
SLIDE 68

Identity-Based Encryption

◮ Proposed by [Shamir’84]: could this exist? mpk (msk) Enc(mpk, “Alice”, msg)

skAlice skBobbi s k

Carol

12 / 21

slide-69
SLIDE 69

Identity-Based Encryption

◮ Proposed by [Shamir’84]: could this exist? mpk (msk) ?? ?? Enc(mpk, “Alice”, msg)

skAlice skBobbi s k

Carol

12 / 21

slide-70
SLIDE 70

Fast-Forward 17 Years. . .

1 [BonehFranklin’01,. . . ]: first IBE construction, using “new math”

(elliptic curves w/ bilinear pairings)

13 / 21

slide-71
SLIDE 71

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]

13 / 21

slide-72
SLIDE 72

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

slide-73
SLIDE 73

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss

14 / 21

slide-74
SLIDE 74

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss u = Ax = fA(x)

(public key) 14 / 21

slide-75
SLIDE 75

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss s, e u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’) 14 / 21

slide-76
SLIDE 76

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss s, e u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′ = st u + e′ + bit · q

2

(‘payload’) 14 / 21

slide-77
SLIDE 77

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss s, e u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′ −bt x ≈ bit· q

2

b′ = st u + e′ + bit · q

2

(‘payload’) 14 / 21

slide-78
SLIDE 78

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss s, e u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′ −bt x ≈ bit· q

2

b′ = st u + e′ + bit · q

2

(‘payload’)

? (A, u, b, b′)

14 / 21

slide-79
SLIDE 79

Recall: ‘Dual’ LWE Cryptosystem

A x ← Gauss s, e u = Ax = fA(x)

(public key)

bt = stA + et

(ciphertext ‘preamble’)

b′ −bt x ≈ bit· q

2

b′ = st u + e′ + bit · q

2

(‘payload’)

? (A, u, b, b′)

14 / 21

slide-80
SLIDE 80

ID-Based Encryption

mpk = A s, e u = H(“Alice”)

(‘identity’ public key)

b = stA + et

(ciphertext preamble)

b′ − bt x ≈ bit · q

2

b′ = st u + e′ + bit · q

2

(‘payload’)

x ← f−1

A (u)

15 / 21

slide-81
SLIDE 81
  • Tomorrow. . .

◮ Generating trapdoors (A with short basis or equivalent)

16 / 21

slide-82
SLIDE 82
  • Tomorrow. . .

◮ Generating trapdoors (A with short basis or equivalent) ◮ Removing the random oracle from signatures & IBE

16 / 21

slide-83
SLIDE 83
  • Tomorrow. . .

◮ Generating trapdoors (A with short basis or equivalent) ◮ Removing the random oracle from signatures & IBE ◮ More surprising applications

16 / 21

slide-84
SLIDE 84
  • Tomorrow. . .

◮ Generating trapdoors (A with short basis or equivalent) ◮ Removing the random oracle from signatures & IBE ◮ More surprising applications Selected bibliography for this talk:

MR’04 D. Micciancio and O. Regev, “Worst-Case to Average-Case Reductions Based on Gaussian Measures,” FOCS’04 / SICOMP’07. GPV’08 C. Gentry, C. Peikert, V. Vaikuntanathan, “Trapdoors for Hard Lattices and New Cryptographic Constructions,” STOC’08. P’10 C. Peikert, “An Efficient and Parallel Gaussian Sampler for Lattices,” Crypto’10.

16 / 21

slide-85
SLIDE 85

Bonus Material: A Better Discrete Gaussian Sampling Algorithm

17 / 21

slide-86
SLIDE 86

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes

18 / 21

slide-87
SLIDE 87

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic

18 / 21

slide-88
SLIDE 88

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations

18 / 21

slide-89
SLIDE 89

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations ✗ No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

18 / 21

slide-90
SLIDE 90

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations ✗ No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

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

18 / 21

slide-91
SLIDE 91

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations ✗ No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

◮ Simple & efficient: n2 online adds and mults (mod q) Even better: ˜ O(n) time in the ring setting

18 / 21

slide-92
SLIDE 92

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations ✗ No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

◮ Simple & efficient: n2 online adds and mults (mod q) Even better: ˜ O(n) time in the ring setting ◮ Fully parallel: n2/P operations on any P ≤ n2 processors

18 / 21

slide-93
SLIDE 93

Performance of Nearest-Plane Sampling Algorithm?

Good News, and Bad News. . .

✔ Tight: std dev s ≈ max˜ si = max dist between adjacent planes ✗ Not efficient: runtime = Ω(n3), high-precision arithmetic ✗ Inherently sequential: n adaptive iterations ✗ No efficiency improvement in the ring setting [NTRU’98,M’02,. . . ]

A Different Sampling Algorithm [P’10]

◮ Simple & efficient: n2 online adds and mults (mod q) Even better: ˜ O(n) time in the ring setting ◮ Fully parallel: n2/P operations on any P ≤ n2 processors ◮ High quality: same∗ Gaussian std dev as nearest-plane alg

∗in cryptographic applications 18 / 21

slide-94
SLIDE 94

A First Attempt

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

s1 s2 O

coset L + c

19 / 21

slide-95
SLIDE 95

A First Attempt

◮ [Babai’86] “round-off:” c → S · frac(S−1 · c) . (Fast & parallel!) ◮ Deterministic round-off is insecure [NR’06] . . .

s1 s2 O

coset L + c

19 / 21

slide-96
SLIDE 96

A First Attempt

◮ [Babai’86] “round-off:” c → S · frac(S−1 · c)$. (Fast & parallel!) ◮ Deterministic round-off is insecure [NR’06] . . . . . . but what about randomized rounding?

s1 s2 O

coset L + c

19 / 21

slide-97
SLIDE 97

A First Attempt

◮ [Babai’86] “round-off:” c → S · frac(S−1 · c)$. (Fast & parallel!) ◮ Deterministic round-off is insecure [NR’06] . . . . . . but what about randomized rounding?

s1 s2 O

coset L + c

19 / 21

slide-98
SLIDE 98

A First Attempt

◮ [Babai’86] “round-off:” c → S · frac(S−1 · c)$. (Fast & parallel!) ◮ Deterministic round-off is insecure [NR’06] . . . . . . but what about randomized rounding?

s1 s2 O

coset L + c

◮ Non-spherical discrete Gaussian: has covariance Σ := Ex

  • x · xt

≈ S · St.

19 / 21

slide-99
SLIDE 99

A First Attempt

◮ [Babai’86] “round-off:” c → S · frac(S−1 · c)$. (Fast & parallel!) ◮ Deterministic round-off is insecure [NR’06] . . . . . . but what about randomized rounding?

s1 s2 O

coset L + c

◮ Non-spherical discrete Gaussian: has covariance Σ := Ex

  • x · xt

≈ S · St. Covariance can be measured — and it leaks S! (up to rotation)

19 / 21

slide-100
SLIDE 100

Inspiration: Some Facts About Gaussians

1 Continuous Gaussian ↔ positive definite covariance matrix Σ.

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

20 / 21

slide-101
SLIDE 101

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.

20 / 21

slide-102
SLIDE 102

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

20 / 21

slide-103
SLIDE 103

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,

20 / 21

slide-104
SLIDE 104

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)

20 / 21

slide-105
SLIDE 105

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 = S St, can use any s > s1(S) := max singular val of S.

20 / 21

slide-106
SLIDE 106

‘Convolution’ Sampling Algorithm [P’10]

◮ Given basis S, coset L + c, and std dev s > s1(S), Σ1 = S St

s1 s2 21 / 21

slide-107
SLIDE 107

‘Convolution’ Sampling Algorithm [P’10]

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

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

Σ1 = S St Σ2

s1 s2 p 21 / 21

slide-108
SLIDE 108

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ2

s1 s2 p 21 / 21

slide-109
SLIDE 109

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ2

s1 s2 p

Convolution∗ Theorem

Algorithm generates a spherical discrete Gaussian over L + c.

21 / 21

slide-110
SLIDE 110

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ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

slide-111
SLIDE 111

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ2

s1 s2 p

Optimizations

1 Precompute perturbations offline

21 / 21

slide-112
SLIDE 112

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ2

s1 s2 p

Optimizations

1 Precompute perturbations offline 2 Batch multi-sample using fast matrix multiplication

21 / 21

slide-113
SLIDE 113

‘Convolution’ Sampling Algorithm [P’10]

◮ 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 = S St Σ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