+ All Categories
Home > Documents > Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice...

Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice...

Date post: 03-Jun-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
106
Lattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and Engineering University of California, San Diego May 2015 Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 1 / 32
Transcript
Page 1: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

Lattice Cryptography: an introduction

Daniele Micciancio

Department of Computer Science and EngineeringUniversity of California, San Diego

May 2015

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 1 / 32

Page 2: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

Point Lattices

The simplest example of lattice is Zn = {(x1, . . . , xn) : xi ∈ Z}

Other lattices are obtained by applying a linear transformation

B : x = (x1, . . . , xn) 7→ Bx = x1 · b1 + · · ·+ xn · bn

B b1

b2

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 2 / 32

Page 3: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

Point Lattices

The simplest example of lattice is Zn = {(x1, . . . , xn) : xi ∈ Z}Other lattices are obtained by applying a linear transformation

B : x = (x1, . . . , xn) 7→ Bx = x1 · b1 + · · ·+ xn · bn

(1, 0)

(0, 1)

B b1

b2

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 2 / 32

Page 4: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

One-way Functions

Definition (One-Way Function (Informal))

An injective function f : X → Y is one-way if

It is easy to compute, i.e., there is an efficient algorithm that on inputx outputs f (x)

It is hard to invert, i.e., there is no efficient algorithm that on inputf (x) outputs x

x f(x)

easy

hard

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 3 / 32

Page 5: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

Outline

Modern Lattice Cryptography:

The Short Integer Solusion (SIS) Function

PropertiesCryptographic Applications

The Learning With Errors (LWE) Function

PropertiesCryptographic Applications

Efficiency Considerations

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 4 / 32

Page 6: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Ajtai’s one-way function (SIS)

Parameters: m, n, q ∈ ZKey: A ∈ Zn×m

q

Input: x ∈ {0, 1}m

Output: fA(x) = Ax mod q

m

xT

×

n A

f

Ax

Theorem (A’96)

For m > n lg q, if lattice problems (SIVP) are hard to approximate in theworst-case, then fA(x) = Ax mod q is a one-way function.

Applications: OWF [A’96], Hashing [GGH’97], Commit [KTX’08], IDschemes [L’08], Signatures [LM’08,GPV’08,. . . ,DDLL’13] . . .

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 5 / 32

Page 7: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Ajtai’s one-way function (SIS)

Parameters: m, n, q ∈ ZKey: A ∈ Zn×m

q

Input: x ∈ {0, 1}m

Output: fA(x) = Ax mod q

m

xT

×

n Af

Ax

Theorem (A’96)

For m > n lg q, if lattice problems (SIVP) are hard to approximate in theworst-case, then fA(x) = Ax mod q is a one-way function.

Applications: OWF [A’96], Hashing [GGH’97], Commit [KTX’08], IDschemes [L’08], Signatures [LM’08,GPV’08,. . . ,DDLL’13] . . .

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 5 / 32

Page 8: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Ajtai’s one-way function (SIS)

Parameters: m, n, q ∈ ZKey: A ∈ Zn×m

q

Input: x ∈ {0, 1}m

Output: fA(x) = Ax mod q

m

xT

×

n Af

Ax

Theorem (A’96)

For m > n lg q, if lattice problems (SIVP) are hard to approximate in theworst-case, then fA(x) = Ax mod q is a one-way function.

Applications: OWF [A’96], Hashing [GGH’97], Commit [KTX’08], IDschemes [L’08], Signatures [LM’08,GPV’08,. . . ,DDLL’13] . . .

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 5 / 32

Page 9: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS: Properties and Applications

Properties:1 Compression2 Regularity3 Homomorphism

Applications:1 Collision Resistant Hashing2 Commitment Schemes3 Digital Signatures

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 6 / 32

Page 10: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 1: Compression

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Main security parameter: n. (Security largely independent of m.)

fA: m bits → n lg q bits.

When (m > n lg q), fA is acompression function.

E.g., m = 2n lg q:fA : {0, 1}m → {0, 1}m/2.

{0, 1}m Znq

fA

m bits n log q bits

Ajtai’s theorem requires (m > n lg q)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 7 / 32

Page 11: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 1: Compression

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Main security parameter: n. (Security largely independent of m.)

fA: m bits → n lg q bits.

When (m > n lg q), fA is acompression function.

E.g., m = 2n lg q:fA : {0, 1}m → {0, 1}m/2.

{0, 1}m Znq

fA

m bits n log q bits

Ajtai’s theorem requires (m > n lg q)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 7 / 32

Page 12: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 1: Compression

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Main security parameter: n. (Security largely independent of m.)

fA: m bits → n lg q bits.

When (m > n lg q), fA is acompression function.

E.g., m = 2n lg q:fA : {0, 1}m → {0, 1}m/2.

{0, 1}m Znq

fA

m bits n log q bits

Ajtai’s theorem requires (m > n lg q)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 7 / 32

Page 13: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 1: Compression

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Main security parameter: n. (Security largely independent of m.)

fA: m bits → n lg q bits.

When (m > n lg q), fA is acompression function.

E.g., m = 2n lg q:fA : {0, 1}m → {0, 1}m/2.

{0, 1}m Znq

fA

m bits n log q bits

Ajtai’s theorem requires (m > n lg q)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 7 / 32

Page 14: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 1: Compression

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Main security parameter: n. (Security largely independent of m.)

fA: m bits → n lg q bits.

When (m > n lg q), fA is acompression function.

E.g., m = 2n lg q:fA : {0, 1}m → {0, 1}m/2.

{0, 1}m Znq

fA

m bits n log q bits

Ajtai’s theorem requires (m > n lg q)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 7 / 32

Page 15: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Collision Resistant Hashing

Keyed function family fA : X → Y with |X | > |Y |(E.g., X = Y 2 and fA : Y 2 → Y .)

Definition (Collision Resistance)

Finding x1 6= x2 ∈ X such that fA(x1) = fA(x2) is hard.

Classic application: Merkle Trees

Leaves are user data

Each internal node is the hash of itschildren

Root r commits to all y1, . . . , yn

Each yi can be shown to beconsistent with r by revealing log(n)values

fA

fA

y1 y2

fA

y3 y4

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 8 / 32

Page 16: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Collision Resistant Hashing

Keyed function family fA : X → Y with |X | > |Y |(E.g., X = Y 2 and fA : Y 2 → Y .)

Definition (Collision Resistance)

Finding x1 6= x2 ∈ X such that fA(x1) = fA(x2) is hard.

Classic application: Merkle Trees

Leaves are user data

Each internal node is the hash of itschildren

Root r commits to all y1, . . . , yn

Each yi can be shown to beconsistent with r by revealing log(n)values

fA

fA

y1 y2

fA

y3 y4

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 8 / 32

Page 17: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Collision Resistant Hashing

Keyed function family fA : X → Y with |X | > |Y |(E.g., X = Y 2 and fA : Y 2 → Y .)

Definition (Collision Resistance)

Finding x1 6= x2 ∈ X such that fA(x1) = fA(x2) is hard.

Classic application: Merkle Trees

Leaves are user data

Each internal node is the hash of itschildren

Root r commits to all y1, . . . , yn

Each yi can be shown to beconsistent with r by revealing log(n)values

fA

fA

y1 y2

fA

y3 y4

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 8 / 32

Page 18: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 19: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 20: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 21: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 22: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 23: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 24: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 1: Collision Resistant Hashing

Definition (Collision Resistance)

fA : X → Y . No adversary, given a random A, can efficiently findx 6= x ′ ∈ X such that fA(x) = fA(x ′)

Theorem

If fA : {0,±1}m → Znq is one-way, then fA : {0, 1}m → Zn

q is collisionresistant.

Assume can find collisions to fA

Goal: Given random A and y, find fA(x) = y

Add y to random column a′i = ai + y.

Find collision (x , x ′) for A′: A′x = A′x′

If x ′i = 1 and xi = 0, then A(x− x′) = y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 9 / 32

Page 25: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 2: Regularity

f : X → Y is regular if all y ∈ Y have same |f −1(y)|.

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Pairwise independence:

Fix x1 6= x2 ∈ {0, 1}m,

Random A

fA(x1) and fA(x2) areindependent.

{0, 1}m Znq

fA

m bits n log q bits

Lemma (Leftover Hash Lemma)

Pairwise Indepencence + Compression =⇒ Regular

fA : (U({0, 1}n)) ≈ U(Znq) maps uniform to uniform.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 10 / 32

Page 26: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 2: Regularity

f : X → Y is regular if all y ∈ Y have same |f −1(y)|.

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Pairwise independence:

Fix x1 6= x2 ∈ {0, 1}m,

Random A

fA(x1) and fA(x2) areindependent.

{0, 1}m Znq

fA

m bits n log q bits

Lemma (Leftover Hash Lemma)

Pairwise Indepencence + Compression =⇒ Regular

fA : (U({0, 1}n)) ≈ U(Znq) maps uniform to uniform.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 10 / 32

Page 27: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 2: Regularity

f : X → Y is regular if all y ∈ Y have same |f −1(y)|.

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Pairwise independence:

Fix x1 6= x2 ∈ {0, 1}m,

Random A

fA(x1) and fA(x2) areindependent.

{0, 1}m Znq

fA

m bits n log q bits

Lemma (Leftover Hash Lemma)

Pairwise Indepencence + Compression =⇒ Regular

fA : (U({0, 1}n)) ≈ U(Znq) maps uniform to uniform.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 10 / 32

Page 28: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 2: Regularity

f : X → Y is regular if all y ∈ Y have same |f −1(y)|.

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Pairwise independence:

Fix x1 6= x2 ∈ {0, 1}m,

Random A

fA(x1) and fA(x2) areindependent.

{0, 1}m Znq

fA

m bits n log q bits

Lemma (Leftover Hash Lemma)

Pairwise Indepencence + Compression =⇒ Regular

fA : (U({0, 1}n)) ≈ U(Znq) maps uniform to uniform.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 10 / 32

Page 29: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 2: Regularity

f : X → Y is regular if all y ∈ Y have same |f −1(y)|.

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

Pairwise independence:

Fix x1 6= x2 ∈ {0, 1}m,

Random A

fA(x1) and fA(x2) areindependent.

{0, 1}m Znq

fA

m bits n log q bits

Lemma (Leftover Hash Lemma)

Pairwise Indepencence + Compression =⇒ Regular

fA : (U({0, 1}n)) ≈ U(Znq) maps uniform to uniform.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 10 / 32

Page 30: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Perfectly Hiding Commitments

Analogy:

Lock message in a boxGive box, keep keyLater: give key to open box

Implementation

Randomized function C (m; r)Commit(m): give c = C (m; r) for random r ← $Open: reveal m, r such that C (m; r) = c .

Security properties:

Hiding: c = C (m; $) is independent of mBinding: hard to find m 6= m′ and r , r ′ such that C (m; r) = C (m′; r ′).

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 11 / 32

Page 31: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Perfectly Hiding Commitments

Analogy:

Lock message in a boxGive box, keep keyLater: give key to open box

Implementation

Randomized function C (m; r)Commit(m): give c = C (m; r) for random r ← $Open: reveal m, r such that C (m; r) = c .

Security properties:

Hiding: c = C (m; $) is independent of mBinding: hard to find m 6= m′ and r , r ′ such that C (m; r) = C (m′; r ′).

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 11 / 32

Page 32: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Perfectly Hiding Commitments

Analogy:

Lock message in a boxGive box, keep keyLater: give key to open box

Implementation

Randomized function C (m; r)Commit(m): give c = C (m; r) for random r ← $Open: reveal m, r such that C (m; r) = c .

Security properties:

Hiding: c = C (m; $) is independent of mBinding: hard to find m 6= m′ and r , r ′ such that C (m; r) = C (m′; r ′).

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 11 / 32

Page 33: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

Perfectly Hiding Commitments

Analogy:

Lock message in a boxGive box, keep keyLater: give key to open box

Implementation

Randomized function C (m; r)Commit(m): give c = C (m; r) for random r ← $Open: reveal m, r such that C (m; r) = c .

Security properties:

Hiding: c = C (m; $) is independent of mBinding: hard to find m 6= m′ and r , r ′ such that C (m; r) = C (m′; r ′).

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 11 / 32

Page 34: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 2: Commitment

Choose A1,A2 at random

message m ∈ {0, 1}m and randomness r ∈ {0, 1}m

Commitment: C (m, r) = f[A1,A2](m, r) = A1m + A2r.

Hiding Property: C (m) hides the message becauseA2r = fA2(r) ≈ U(Zn

q)

Binding Property: Finding (m, r) 6= (m′, r ′) such thatC (m, r) = C (m′, r′) breaks the collision resistance of f[A1,A2]

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 12 / 32

Page 35: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 2: Commitment

Choose A1,A2 at random

message m ∈ {0, 1}m and randomness r ∈ {0, 1}m

Commitment: C (m, r) = f[A1,A2](m, r) = A1m + A2r.

Hiding Property: C (m) hides the message becauseA2r = fA2(r) ≈ U(Zn

q)

Binding Property: Finding (m, r) 6= (m′, r ′) such thatC (m, r) = C (m′, r′) breaks the collision resistance of f[A1,A2]

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 12 / 32

Page 36: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 2: Commitment

Choose A1,A2 at random

message m ∈ {0, 1}m and randomness r ∈ {0, 1}m

Commitment: C (m, r) = f[A1,A2](m, r) = A1m + A2r.

Hiding Property: C (m) hides the message becauseA2r = fA2(r) ≈ U(Zn

q)

Binding Property: Finding (m, r) 6= (m′, r ′) such thatC (m, r) = C (m′, r′) breaks the collision resistance of f[A1,A2]

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 12 / 32

Page 37: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 2: Commitment

Choose A1,A2 at random

message m ∈ {0, 1}m and randomness r ∈ {0, 1}m

Commitment: C (m, r) = f[A1,A2](m, r) = A1m + A2r.

Hiding Property: C (m) hides the message becauseA2r = fA2(r) ≈ U(Zn

q)

Binding Property: Finding (m, r) 6= (m′, r ′) such thatC (m, r) = C (m′, r′) breaks the collision resistance of f[A1,A2]

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 12 / 32

Page 38: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 2: Commitment

Choose A1,A2 at random

message m ∈ {0, 1}m and randomness r ∈ {0, 1}m

Commitment: C (m, r) = f[A1,A2](m, r) = A1m + A2r.

Hiding Property: C (m) hides the message becauseA2r = fA2(r) ≈ U(Zn

q)

Binding Property: Finding (m, r) 6= (m′, r ′) such thatC (m, r) = C (m′, r′) breaks the collision resistance of f[A1,A2]

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 12 / 32

Page 39: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 3: (Approximate) Linear Homomorphism

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

The SIS function is linearly homomorphic:

fA(x1) + fA(x2) = fA(x1 + x2)

Homomorphism is only approximate:

If x1, x2 are small, then also x1 + x2 is smallHowever, x1 + x2 can be slightly larger than x1, x2

Domain of fA is not closed under +

fA is also key-homomorphic:

fA1(x) + fA2(x) = fA1+A2(x)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 13 / 32

Page 40: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 3: (Approximate) Linear Homomorphism

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

The SIS function is linearly homomorphic:

fA(x1) + fA(x2) = fA(x1 + x2)

Homomorphism is only approximate:

If x1, x2 are small, then also x1 + x2 is smallHowever, x1 + x2 can be slightly larger than x1, x2

Domain of fA is not closed under +

fA is also key-homomorphic:

fA1(x) + fA2(x) = fA1+A2(x)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 13 / 32

Page 41: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Property 3: (Approximate) Linear Homomorphism

SIS Function

A ∈ Zn×mq , x ∈ {0, 1}m, fA(x) = Ax mod q ∈ Zn

q

The SIS function is linearly homomorphic:

fA(x1) + fA(x2) = fA(x1 + x2)

Homomorphism is only approximate:

If x1, x2 are small, then also x1 + x2 is smallHowever, x1 + x2 can be slightly larger than x1, x2

Domain of fA is not closed under +

fA is also key-homomorphic:

fA1(x) + fA2(x) = fA1+A2(x)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 13 / 32

Page 42: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 43: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:

1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 44: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen

2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 45: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query

3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 46: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),

4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 47: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).

5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 48: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 49: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

(One-Time) Digital Signatures

Digital Signature Scheme:

Key Generation Algorithm: (pk , sk)← KeyGenSigning Algorithm: Sign(sk ,m) = σVerification Algorithm: Verify(pk ,m, σ)

(One-Time) Security:1 Generate keys (pk , sk)← KeyGen2 Adversary m← Adv(pk) chooses message query3 . . . receives signature σ ← Sign(s,m),4 . . . and outputs forgery (m′, σ′)← Adv(σ).5 Adversary wins if Verify(m′, σ′) and m 6= m′.

General Signatures: Adversary is allowed an arbitrary number ofsignature queries

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 14 / 32

Page 50: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 3: One-Time Signatures

Extend fA to matrices X = [x1, . . . , xl ]:

fA(X) = [fA(x1), . . . , fA(xl)] = AX (mod q)

Key Generation:

Public Parameter: SIS function key ASecret Key: sk = (X, x) two (small) inputs to fAPublic Key: pk = (Y = fA(X), y = fA(x)) image of sk under fA

Message: short vector m ∈ {0, 1}l

Sign(sk ,m) = Xm + x, linear combination of secret key

Verify(pk,m, σ) uses homomoprhic properties to check that

fA(σ) = fA(Xm + x) = fA(X)m + fA(x) = Ym + y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 15 / 32

Page 51: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 3: One-Time Signatures

Extend fA to matrices X = [x1, . . . , xl ]:

fA(X) = [fA(x1), . . . , fA(xl)] = AX (mod q)

Key Generation:

Public Parameter: SIS function key ASecret Key: sk = (X, x) two (small) inputs to fAPublic Key: pk = (Y = fA(X), y = fA(x)) image of sk under fA

Message: short vector m ∈ {0, 1}l

Sign(sk ,m) = Xm + x, linear combination of secret key

Verify(pk,m, σ) uses homomoprhic properties to check that

fA(σ) = fA(Xm + x) = fA(X)m + fA(x) = Ym + y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 15 / 32

Page 52: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 3: One-Time Signatures

Extend fA to matrices X = [x1, . . . , xl ]:

fA(X) = [fA(x1), . . . , fA(xl)] = AX (mod q)

Key Generation:

Public Parameter: SIS function key ASecret Key: sk = (X, x) two (small) inputs to fAPublic Key: pk = (Y = fA(X), y = fA(x)) image of sk under fA

Message: short vector m ∈ {0, 1}l

Sign(sk ,m) = Xm + x, linear combination of secret key

Verify(pk,m, σ) uses homomoprhic properties to check that

fA(σ) = fA(Xm + x) = fA(X)m + fA(x) = Ym + y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 15 / 32

Page 53: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Short Integer Solution (SIS) Problem

SIS Application 3: One-Time Signatures

Extend fA to matrices X = [x1, . . . , xl ]:

fA(X) = [fA(x1), . . . , fA(xl)] = AX (mod q)

Key Generation:

Public Parameter: SIS function key ASecret Key: sk = (X, x) two (small) inputs to fAPublic Key: pk = (Y = fA(X), y = fA(x)) image of sk under fA

Message: short vector m ∈ {0, 1}l

Sign(sk ,m) = Xm + x, linear combination of secret key

Verify(pk,m, σ) uses homomoprhic properties to check that

fA(σ) = fA(Xm + x) = fA(X)m + fA(x) = Ym + y

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 15 / 32

Page 54: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Learning with errors (LWE)

A ∈ Zm×nq , s ∈ Zn

q, e ∈ Em.

gA(s

; e

) = As

+ e

mod q

Learning with Errors: Given Aand gA(s, e), recover s.

Theorem (Regev’05)

The function gA(s, e) is hard toinvert on the average, assumingSIVP is hard to approximate in theworst-case even for quantumcomputers.

n

sT

×

m A

+ e

gb

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 16 / 32

Page 55: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Learning with errors (LWE)

A ∈ Zm×nq , s ∈ Zn

q, e ∈ Em.

gA(s; e) = As + e mod q

Learning with Errors: Given Aand gA(s, e), recover s.

Theorem (Regev’05)

The function gA(s, e) is hard toinvert on the average, assumingSIVP is hard to approximate in theworst-case even for quantumcomputers.

n

sT

×

m A + eg

b

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 16 / 32

Page 56: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Learning with errors (LWE)

A ∈ Zm×nq , s ∈ Zn

q, e ∈ Em.

gA(s; e) = As + e mod q

Learning with Errors: Given Aand gA(s, e), recover s.

Theorem (Regev’05)

The function gA(s, e) is hard toinvert on the average, assumingSIVP is hard to approximate in theworst-case even for quantumcomputers.

n

sT

×

m A + eg

b

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 16 / 32

Page 57: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE: Properties and Applications

Properties1 Injectivity2 Pseudorandomness3 Homomorphism

Applications1 Symmetric Key Encryption2 Public Key Encryption

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 17 / 32

Page 58: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 1: Injectivity

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Main security parameter: n. (Security largely independent of m.)

Znq × Em Zm

q

gA

n lg q + m log |E| bits m log q bits

Regev’s theorem requires error |E| >√n and follow a certain

nonuniform (Gaussian) distribution

gA: n lg q + m lg |E| bits → m lg q bits.

gA expands the input roughly by a factor log q/ log |E|, and isinjective with high probability

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 18 / 32

Page 59: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 1: Injectivity

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Main security parameter: n. (Security largely independent of m.)

Znq × Em Zm

q

gA

n lg q + m log |E| bits m log q bits

Regev’s theorem requires error |E| >√n and follow a certain

nonuniform (Gaussian) distribution

gA: n lg q + m lg |E| bits → m lg q bits.

gA expands the input roughly by a factor log q/ log |E|, and isinjective with high probability

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 18 / 32

Page 60: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 1: Injectivity

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Main security parameter: n. (Security largely independent of m.)

Znq × Em Zm

q

gA

n lg q + m log |E| bits m log q bits

Regev’s theorem requires error |E| >√n and follow a certain

nonuniform (Gaussian) distribution

gA: n lg q + m lg |E| bits → m lg q bits.

gA expands the input roughly by a factor log q/ log |E|, and isinjective with high probability

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 18 / 32

Page 61: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 1: Injectivity

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Main security parameter: n. (Security largely independent of m.)

Znq × Em Zm

q

gA

n lg q + m log |E| bits m log q bits

Regev’s theorem requires error |E| >√n and follow a certain

nonuniform (Gaussian) distribution

gA: n lg q + m lg |E| bits → m lg q bits.

gA expands the input roughly by a factor log q/ log |E|, and isinjective with high probability

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 18 / 32

Page 62: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE: Learning Formulation

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Each row of A and x gives a pair (ai , ais + xi )

Definition (Learning With Errors (search version))

Given samples (ai , ais + xi ) for fixed s, and random ai ∈ Znq, xi ← E , learn

s.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 19 / 32

Page 63: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE: Learning Formulation

LWE Function

A ∈ Zm×nq , s ∈ Zn

q, x← Em, gA(s, x) = As + x mod q ∈ Zmq

Each row of A and x gives a pair (ai , ais + xi )

Definition (Learning With Errors (search version))

Given samples (ai , ais + xi ) for fixed s, and random ai ∈ Znq, xi ← E , learn

s.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 19 / 32

Page 64: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Pseudorandoness

One-wayness is not usually enough for cryptographic security.Typically, one expects f (x) to “look” random.

f : X → Y

g : X → Y × Y

g(x) = (f (x), f (x))

If f is one-way, then g is also one-way

The output of g(x) does not look random at all!

Definition (Pseudorandom Generator (PRG))

A function f : X → Y is a pseudorandom generator if for every efficientalgorithm D, Prx∈X{D(f (x)) = 1} ≈ Pry∈Y {D(y) = 1}.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 20 / 32

Page 65: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Pseudorandoness

One-wayness is not usually enough for cryptographic security.Typically, one expects f (x) to “look” random.

f : X → Y

g : X → Y × Y

g(x) = (f (x), f (x))

If f is one-way, then g is also one-way

The output of g(x) does not look random at all!

Definition (Pseudorandom Generator (PRG))

A function f : X → Y is a pseudorandom generator if for every efficientalgorithm D, Prx∈X{D(f (x)) = 1} ≈ Pry∈Y {D(y) = 1}.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 20 / 32

Page 66: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Pseudorandoness

One-wayness is not usually enough for cryptographic security.Typically, one expects f (x) to “look” random.

f : X → Y

g : X → Y × Y

g(x) = (f (x), f (x))

If f is one-way, then g is also one-way

The output of g(x) does not look random at all!

Definition (Pseudorandom Generator (PRG))

A function f : X → Y is a pseudorandom generator if for every efficientalgorithm D, Prx∈X{D(f (x)) = 1} ≈ Pry∈Y {D(y) = 1}.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 20 / 32

Page 67: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Pseudorandoness

One-wayness is not usually enough for cryptographic security.Typically, one expects f (x) to “look” random.

f : X → Y

g : X → Y × Y

g(x) = (f (x), f (x))

If f is one-way, then g is also one-way

The output of g(x) does not look random at all!

Definition (Pseudorandom Generator (PRG))

A function f : X → Y is a pseudorandom generator if for every efficientalgorithm D, Prx∈X{D(f (x)) = 1} ≈ Pry∈Y {D(y) = 1}.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 20 / 32

Page 68: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Pseudorandoness

One-wayness is not usually enough for cryptographic security.Typically, one expects f (x) to “look” random.

f : X → Y

g : X → Y × Y

g(x) = (f (x), f (x))

If f is one-way, then g is also one-way

The output of g(x) does not look random at all!

Definition (Pseudorandom Generator (PRG))

A function f : X → Y is a pseudorandom generator if for every efficientalgorithm D, Prx∈X{D(f (x)) = 1} ≈ Pry∈Y {D(y) = 1}.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 20 / 32

Page 69: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 70: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 71: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 72: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 73: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 74: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 75: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 2: Pseudorandomness

Theorem (Pseudorandomness of LWE)

If (search) LWE is hard, then gA(s, x) is pseudorandomn.

Easy proof using learning formulation:

Assume small prime q, and very large m. Fix secret s ∈ Znq.

Assume D can distinguish (ai , ais + xi ) from random

Task: given many (ai , bi = ai · s + xi ), find s

Recover s one piece at a time:

1 Pick random r ∈ Znq, and guess v

?= r · s ∈ Zq

2 Call D(ai + r, bi + v) to check if guess v = r · s was correct

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 21 / 32

Page 76: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Symmetric Encryption

Definition

Key Generation: sk ← KeyGen(Randomized) Encryption Algorithm: c ← Enc(sk ,m)Decryption Algorithm: m← Dec(sk ,m)

Security1 Pick secret key sk ← KeyGen2 Adversary makes encryption queries m1,m2, . . .← A3 Adversary cannot distinguish Enc(sk ,mi ) from Enc(sk , 0)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 22 / 32

Page 77: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

Symmetric Encryption

Definition

Key Generation: sk ← KeyGen(Randomized) Encryption Algorithm: c ← Enc(sk ,m)Decryption Algorithm: m← Dec(sk ,m)

Security1 Pick secret key sk ← KeyGen2 Adversary makes encryption queries m1,m2, . . .← A3 Adversary cannot distinguish Enc(sk ,mi ) from Enc(sk , 0)

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 22 / 32

Page 78: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 79: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 80: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 81: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 82: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 83: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 1: Symmetric Encryption

Secret Key: s ∈ Znq. Assume m ∈ {0, 1}.

Encryption: Enc(s,m) = (ai , bi = gai (s, xi ) + E (m)) whereE (m) = q

2m

Decryption: Dec(s, (ai , bi )) computes

bi − ai · s = xi + E (m)

and rounds to 0 or q/2.

Correctness: if |xi | < q/4, decryption is correct

Notice: if gai (s, xi ) were unformly random, bi would also be randomand independent of m

Security: If can distinguish E (sk ,m) from E (sk, 0), then candistinguish gai (s, xi ) from random.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 23 / 32

Page 84: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 3: Homomorphism

The LWE function is linearly homomorphic

gA1(s, x1) + gA2(s, x2) = gA1+A2(s, x1 + x2)

LWE encryption inherits omomorphic property:

Enc(sk,m1) + Enc(sk,m2) ≈ Enc(sk,m1 + m2)

(a1, ga1(s, x1) +q

2m1) + (a2, ga2(s, x2) +

q

2m2)

= (a1 + a2, ga1+a2(s, x1 + x2) +q

2(m1 + m2))

The errors xi add up. Still, if initial xi are small, and few ciphertextsare added, result is decryptable.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 24 / 32

Page 85: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 3: Homomorphism

The LWE function is linearly homomorphic

gA1(s, x1) + gA2(s, x2) = gA1+A2(s, x1 + x2)

LWE encryption inherits omomorphic property:

Enc(sk,m1) + Enc(sk,m2) ≈ Enc(sk,m1 + m2)

(a1, ga1(s, x1) +q

2m1) + (a2, ga2(s, x2) +

q

2m2)

= (a1 + a2, ga1+a2(s, x1 + x2) +q

2(m1 + m2))

The errors xi add up. Still, if initial xi are small, and few ciphertextsare added, result is decryptable.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 24 / 32

Page 86: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Property 3: Homomorphism

The LWE function is linearly homomorphic

gA1(s, x1) + gA2(s, x2) = gA1+A2(s, x1 + x2)

LWE encryption inherits omomorphic property:

Enc(sk,m1) + Enc(sk,m2) ≈ Enc(sk,m1 + m2)

(a1, ga1(s, x1) +q

2m1) + (a2, ga2(s, x2) +

q

2m2)

= (a1 + a2, ga1+a2(s, x1 + x2) +q

2(m1 + m2))

The errors xi add up. Still, if initial xi are small, and few ciphertextsare added, result is decryptable.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 24 / 32

Page 87: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 2: Public Key Encryption

Use homomorphic properties to transform symmetric Enc into publickey encryption scheme

Key Generation:1 Pick secret key sk ← KeyGen for Enc2 Public key pk = (p1, . . . , pn) equals pi = Enc(sk , 0)

Encryption of m: pick small random ri and output∑i

ri · pi + m =∑i

ri · Enc(sk , 0) + m

= Enc(sk,∑i

ri · 0 + m) = Enc(sk ,m)

Decryption: same as before

if pi has error xi , then E (pk,m) has error∑

i rixi

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 25 / 32

Page 88: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 2: Public Key Encryption

Use homomorphic properties to transform symmetric Enc into publickey encryption scheme

Key Generation:1 Pick secret key sk ← KeyGen for Enc2 Public key pk = (p1, . . . , pn) equals pi = Enc(sk , 0)

Encryption of m: pick small random ri and output∑i

ri · pi + m =∑i

ri · Enc(sk , 0) + m

= Enc(sk,∑i

ri · 0 + m) = Enc(sk ,m)

Decryption: same as before

if pi has error xi , then E (pk,m) has error∑

i rixi

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 25 / 32

Page 89: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 2: Public Key Encryption

Use homomorphic properties to transform symmetric Enc into publickey encryption scheme

Key Generation:1 Pick secret key sk ← KeyGen for Enc2 Public key pk = (p1, . . . , pn) equals pi = Enc(sk , 0)

Encryption of m: pick small random ri and output∑i

ri · pi + m =∑i

ri · Enc(sk , 0) + m

= Enc(sk,∑i

ri · 0 + m) = Enc(sk ,m)

Decryption: same as before

if pi has error xi , then E (pk,m) has error∑

i rixi

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 25 / 32

Page 90: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography The Learning With Errors (LWE) Problem

LWE Application 2: Public Key Encryption

Use homomorphic properties to transform symmetric Enc into publickey encryption scheme

Key Generation:1 Pick secret key sk ← KeyGen for Enc2 Public key pk = (p1, . . . , pn) equals pi = Enc(sk , 0)

Encryption of m: pick small random ri and output∑i

ri · pi + m =∑i

ri · Enc(sk , 0) + m

= Enc(sk,∑i

ri · 0 + m) = Enc(sk ,m)

Decryption: same as before

if pi has error xi , then E (pk,m) has error∑

i rixi

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 25 / 32

Page 91: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficiency of Ajtai’s function

q = nO(1), m = O(n log n) > n log2 q

E.g., n = 64, q = 28, m = 1024

fA maps 1024 bits to 512.

Key size:nm log q = O(n2 log2 n) = 219 = 64KB

Runtime: nm = O(n2 log n) = 216

arithmetic operations

Usable, but inefficient

m

n

0/1

1 . . . q

Source of inefficiency: quadratic dependency in n

Problem

Can we do better than O(n2) complexity?

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 26 / 32

Page 92: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficiency of Ajtai’s function

q = nO(1), m = O(n log n) > n log2 q

E.g., n = 64, q = 28, m = 1024

fA maps 1024 bits to 512.

Key size:nm log q = O(n2 log2 n) = 219 = 64KB

Runtime: nm = O(n2 log n) = 216

arithmetic operations

Usable, but inefficient

m

n

0/1

1 . . . q

Source of inefficiency: quadratic dependency in n

Problem

Can we do better than O(n2) complexity?

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 26 / 32

Page 93: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficiency of Ajtai’s function

q = nO(1), m = O(n log n) > n log2 q

E.g., n = 64, q = 28, m = 1024

fA maps 1024 bits to 512.

Key size:nm log q = O(n2 log2 n) = 219 = 64KB

Runtime: nm = O(n2 log n) = 216

arithmetic operations

Usable, but inefficient

m

n

0/1

1 . . . q

Source of inefficiency: quadratic dependency in n

Problem

Can we do better than O(n2) complexity?

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 26 / 32

Page 94: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficient lattice based hashing

Idea

Use structured matrix

A = [A(1) | . . . | A(m/n)]

where A(i) ∈ Zn×nq is circulant

A(i) =

a

(i)1 a

(i)n · · · a

(i)2

a(i)2 a

(i)1 · · · a

(i)3

......

. . ....

a(i)n a

(i)n−1 · · · a

(i)1

Proposed by [M02], where it is proved that fA is one-way underplausible complexity assumptions

Similar idea first used by NTRU public key cryptosystem (1998), butwith no proof of security

Wishful thinking: finding short vectors in Λ⊥q (A) is hard, andtherefore fA is collision resistant

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 27 / 32

Page 95: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficient lattice based hashing

Idea

Use structured matrix

A = [A(1) | . . . | A(m/n)]

where A(i) ∈ Zn×nq is circulant

A(i) =

a

(i)1 a

(i)n · · · a

(i)2

a(i)2 a

(i)1 · · · a

(i)3

......

. . ....

a(i)n a

(i)n−1 · · · a

(i)1

Proposed by [M02], where it is proved that fA is one-way underplausible complexity assumptions

Similar idea first used by NTRU public key cryptosystem (1998), butwith no proof of security

Wishful thinking: finding short vectors in Λ⊥q (A) is hard, andtherefore fA is collision resistant

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 27 / 32

Page 96: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision?

1 4 3 8 6 4 9 0 2 6 4 5 3 2 7 18 1 4 3 0 6 4 9 5 2 6 4 1 3 2 73 8 1 4 9 0 6 4 4 5 2 6 7 1 3 24 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

+ 1×

6666

− 1×

9999

+ 0×

7777

+ 1×

3333

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 28 / 32

Page 97: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision?

1 0 0 -1 -1 1 1 0 0 0 1 1 1 0 -1 0

1 4 3 8 6 4 9 0 2 6 4 5 3 2 7 18 1 4 3 0 6 4 9 5 2 6 4 1 3 2 73 8 1 4 9 0 6 4 4 5 2 6 7 1 3 24 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

5486

+ 1×

6666

− 1×

9999

+ 0×

7777

+ 1×

3333

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 28 / 32

Page 98: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1 4 3 8 6 4 9 0 2 6 4 5 3 2 7 18 1 4 3 0 6 4 9 5 2 6 4 1 3 2 73 8 1 4 9 0 6 4 4 5 2 6 7 1 3 24 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

0000

+ 1×

6666

− 1×

9999

+ 0×

7777

+ 1×

3333

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 28 / 32

Page 99: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision?

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 4 3 8 6 4 9 0 2 6 4 5 3 2 7 18 1 4 3 0 6 4 9 5 2 6 4 1 3 2 73 8 1 4 9 0 6 4 4 5 2 6 7 1 3 24 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

+ 1×

6666

− 1×

9999

+ 0×

7777

+ 1×

3333

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 28 / 32

Page 100: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision?

1 1 1 1 -1 -1 -1 -1 0 0 0 0 1 1 1 1

1 4 3 8 6 4 9 0 2 6 4 5 3 2 7 18 1 4 3 0 6 4 9 5 2 6 4 1 3 2 73 8 1 4 9 0 6 4 4 5 2 6 7 1 3 24 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

0000

+ 1×

6666

− 1×

9999

+ 0×

7777

+ 1×

3333

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 28 / 32

Page 101: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Remarks about proofs of security

This function is essentially the compression function of hash functionLASH, modeled after NTRU

You can still “prove” security based on average case assumption:Breaking the above hash function is as hard as finding short vectors ina random lattice Λ([A(1)| . . . |A(m/n)])

. . . but we know the function is broken: The underlying randomlattice distribution is weak!

Conclusion: Assuming that a problem is hard on average-case is areally tricky business!

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 29 / 32

Page 102: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision now?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1 -4 -3 -8 6 -4 -9 -0 2 -6 -4 -5 3 -2 -7 -1

8 1 -4 -3 0 6 -4 -9 5 2 -6 -4 1 3 -2 -7

3 8 1 -4 9 0 6 -4 4 5 2 -6 7 1 3 -2

4 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

Theorem (trivial)

Finding collisions on the average is at least as hard as finding short vectorsin the corresponding random lattices

Theorem (Lyubashevsky&Micciancio)

Provably collision resistant, assuming the worst case hardness ofapproximating SVP and SIVP over anti-cyclic lattices.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 30 / 32

Page 103: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision now?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1 -4 -3 -8 6 -4 -9 -0 2 -6 -4 -5 3 -2 -7 -1

8 1 -4 -3 0 6 -4 -9 5 2 -6 -4 1 3 -2 -7

3 8 1 -4 9 0 6 -4 4 5 2 -6 7 1 3 -2

4 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

Theorem (trivial)

Finding collisions on the average is at least as hard as finding short vectorsin the corresponding random lattices

Theorem (Lyubashevsky&Micciancio)

Provably collision resistant, assuming the worst case hardness ofapproximating SVP and SIVP over anti-cyclic lattices.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 30 / 32

Page 104: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Can you find a collision now?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1 -4 -3 -8 6 -4 -9 -0 2 -6 -4 -5 3 -2 -7 -1

8 1 -4 -3 0 6 -4 -9 5 2 -6 -4 1 3 -2 -7

3 8 1 -4 9 0 6 -4 4 5 2 -6 7 1 3 -2

4 3 8 1 4 9 0 6 6 4 5 2 2 7 1 3

Theorem (trivial)

Finding collisions on the average is at least as hard as finding short vectorsin the corresponding random lattices

Theorem (Lyubashevsky&Micciancio)

Provably collision resistant, assuming the worst case hardness ofapproximating SVP and SIVP over anti-cyclic lattices.

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 30 / 32

Page 105: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Efficiency of anti-cyclic hashing

Key size: (m/n) · n log q = m · log q = O(n) bits

Anti-cyclic matrix-vector multiplication can be computed inquasi-linear time O(n) using FFT

The resulting hash function can also be computed in O(n) time

For approximate choice of parameters, this can be very practical(SWIFFT [LMPR])

The hash function is linear: A(x + y) = Ax + Ay

This can be a feature rather than a weakness

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 31 / 32

Page 106: Lattice Cryptography: an introduction - UCI Mathematicsasilverb/CryptoDayFiles/uci15a.pdfLattice Cryptography: an introduction Daniele Micciancio Department of Computer Science and

(Lattice) Cryptography Efficiency

Conclusion

Simple SIS/LWE functions

Useful homomorphic properties ⇒ Cryptographic applications

Cyclic/Anticycic matrices (RingSIS/RingLWE):

key to efficiency in practicetechnique pervasively used by all practical instantiations of latticecryptography

Question: Are these functions secure?

We think so, and that’s where lattices come into the picture... but that’s another story

Daniele Micciancio (UCSD) Lattice Cryptography: an introduction May 2015 32 / 32


Recommended