cse208: advanced cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. ·...

272
CSE208: Advanced Cryptography Daniele Micciancio Introduction Defining FHE Bootstrapping LWE Linearity Key Switching Multiplication FHE!! Project Info Ring LWE ANT CSE208: Advanced Cryptography Daniele Micciancio UCSD Fall 2020

Upload: others

Post on 22-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

CSE208: Advanced Cryptography

Daniele Micciancio

UCSD

Fall 2020

Page 2: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 1

Introduction

Page 3: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

CSE208: Advanced Cryptography

Graduate Level Advanced CryptographyPrerequisites:

CSE207 or equivalentSolid theoretical background, cryptographic definitions, etc.Some programming

Past topics: Zero Knowledge, Functional Encryption,Secure Computation, etc.Not required: CSE206A (Lattice Algorithms)

Reading:no textbookmostly research paperssee course webpage, canvas, etc.

Page 4: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

CSE208: Advanced Cryptography

Graduate Level Advanced CryptographyPrerequisites:

CSE207 or equivalentSolid theoretical background, cryptographic definitions, etc.Some programming

Past topics: Zero Knowledge, Functional Encryption,Secure Computation, etc.Not required: CSE206A (Lattice Algorithms)

Reading:no textbookmostly research paperssee course webpage, canvas, etc.

Page 5: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

CSE208: Advanced Cryptography

Graduate Level Advanced CryptographyPrerequisites:

CSE207 or equivalentSolid theoretical background, cryptographic definitions, etc.Some programming

Past topics: Zero Knowledge, Functional Encryption,Secure Computation, etc.Not required: CSE206A (Lattice Algorithms)

Reading:no textbookmostly research paperssee course webpage, canvas, etc.

Page 6: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Fall 2020 Topic

Fully Homomorphic Encryption:Encryption schemes that supports the evaluation ofarbitrary programs on encrypted inputs

Applications:secure outsourced computingbuilding block for MPC and more

Page 7: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Brief History of Homomorphic Encryption

1978: Rivest, Adleman & Dertouzos posed the problem2009: Gentry 2009 proposed the first candidate solution2010-2020: Work towards more efficient solutions based onstandard complexity assumptions (Brakerski,Vaikuntanathan, Gentry, Halevi, Smart, . . . )

Page 8: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Software libraries

IBM HElib (Halevi & Shoup)Microsoft SEALNJIT/Duality PALISADE (Rohloff, Cousins & Polyakov)Functional Lattice Cryptography LoL (Crockett & Peikert)Fastest FHE of the West FHEW (Ducas & Micciancio)FHE over the Torus TFHE (Chillotti, Gama, Georgieva &Izabachene)Approximate FHE HEAAN (Cheon, Kim, Kim & Song)

In the News:February 21, 2019: Microsoft SEAL open sourcehomomorphic encryption library gets even better for .NETdevelopers!June 4, 2020: IBM releases FHE toolkit for MacOS andiOS; Linux and Android Coming Soon

Page 9: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Software libraries

IBM HElib (Halevi & Shoup)Microsoft SEALNJIT/Duality PALISADE (Rohloff, Cousins & Polyakov)Functional Lattice Cryptography LoL (Crockett & Peikert)Fastest FHE of the West FHEW (Ducas & Micciancio)FHE over the Torus TFHE (Chillotti, Gama, Georgieva &Izabachene)Approximate FHE HEAAN (Cheon, Kim, Kim & Song)

In the News:February 21, 2019: Microsoft SEAL open sourcehomomorphic encryption library gets even better for .NETdevelopers!June 4, 2020: IBM releases FHE toolkit for MacOS andiOS; Linux and Android Coming Soon

Page 10: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homework and Evaluation

Homework assignments:3 assignments, due within one week from assignment dateCover theoretical/mathematical topics

Small Project:Goal: Try to use one of the many HE librariesNot much coding, but you will have to write and compile afew lines of codeEvaluated primarily based on written report

Page 11: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homework and Evaluation

Homework assignments:3 assignments, due within one week from assignment dateCover theoretical/mathematical topics

Small Project:Goal: Try to use one of the many HE librariesNot much coding, but you will have to write and compile afew lines of codeEvaluated primarily based on written report

Page 12: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Administrivia:

Course webpage: http://cseweb.ucsd.edu/classes/fa20/general course informationpointers to papers and other reading material

Canvas:recording of lectureshomework distribution/collectiongradesdiscussion board

Page 13: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Course Schedule (Tentative)

Week 1: Introduction and Definition

FHE DefinitionGentry’s Boostrapping theoremHomework 1 out

Week 2-4: Fundamental techniques based on general lattices

LWE encryptionLinear Homomorphic computationsKey Switching and Proxy re-encryptionNested encryption and homomorphic multiplicationCiphertext Tensoring and homomorphic multiplicationHomomorphic Decryption and Bootstrapping algorithmsHomework 2 out

Page 14: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Week 5: Algebraic Number Theory

I really hope you like math!Homework 3 out

Week 6-10: Efficient FHE from Ring LWE

Message packing techniquesLinear transformations on structured matricesOther FHE schemes: GHS, BFV,FHEW, AP13, TFHE,CKKS . . .

Page 15: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 2

Defining FHE

Page 16: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Public Key Encryption

PKE(Gen ,Enc ,Dec)Gen: () → (pk,sk)Enc: (pk,m) → cDec: (sk,c) → m

Page 17: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of PKE

For every (sk,pk)← Gen() and m ← [M], r ← [R]:

Dec(sk,Enc(pk,m;r)) = m

Page 18: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Chosen Plaintext Attack (CPA) security

Ciphertext Indistinguishability under Chosen PlaintextAttackExperiment:INDCPAgame(b:{0 ,1})

(sk,pk) ← Gen()A(pk) → (m0,m1)b' ← A(Enc(pk,mb))return b':{0 ,1}

Definition

Adv(A) = |Pr(Game (0)=1) - Pr(Game (1)=1)|

DefinitionAn encryption scheme (Gen,Enc,Dec) is IND-CPA secure if anypolynomial time A has advantage Adv(A)~ 0

Page 19: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Chosen Plaintext Attack (CPA) security

Ciphertext Indistinguishability under Chosen PlaintextAttackExperiment:INDCPAgame(b:{0 ,1})

(sk,pk) ← Gen()A(pk) → (m0,m1)b' ← A(Enc(pk,mb))return b':{0 ,1}

Definition

Adv(A) = |Pr(Game (0)=1) - Pr(Game (1)=1)|

DefinitionAn encryption scheme (Gen,Enc,Dec) is IND-CPA secure if anypolynomial time A has advantage Adv(A)~ 0

Page 20: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Significance of CPA security

Adversary can choose messages m0, m1

No assumption about input distributionAdversary may have partial information about messagesAdversary may influence the choice of messages

Ciphertext c = Enc(pk,mb) is computed honestly

Adversary cannot tamper with ciphertexts

Adversary models a passive attacker

Page 21: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Definition of CCA security

DefinitionAn encryption scheme (Gen,Enc,Dec) is IND-CCA secure if anypolynomial time A has advantage Adv(A)≈0 in the followinggame.

Game(b:{0 ,1})(sk,pk) ← Gen()A[D](pk) → (m0,m1)c ← Enc(pk,mb)b' ← A[D'](c)return b':{0 ,1}

A[D] is an adversary with oracle access toD(x) = Dec(sk,x)

A[D'] uses a modified oracle (next slide)

Page 22: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

IND-CCA1 vs IND-CCA2

There are two variants of CCA security, depending on the typeof oracle given to the adversary after receiving the challengeciphertext:

IND-CCA1 security: No decryption oracle after receivingthe challengeD'(x) = Nil

IND-CCA2 security: decrypt any ciphertext, except thechallenge c

D'(x) =

if (x?= c)

then Nilelse Dec(sk,x)

Page 23: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Significance of CCA security

Goal: model active attacks, where adversary can tamperwith ciphertexts

Standard notion for regular encryption schemes

IND-CCA2 theoretically equivalent to non-malleableencryption

Any attempt to modify a ciphertext should be detected

Seems incompatible with homomorphic encryption

Ability to modify ciphertexts can be a useful featureHomomorphic encryption is perfectly malleable

We will not consider CCA security

Page 24: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Significance of CCA security

Goal: model active attacks, where adversary can tamperwith ciphertexts

Standard notion for regular encryption schemes

IND-CCA2 theoretically equivalent to non-malleableencryption

Any attempt to modify a ciphertext should be detected

Seems incompatible with homomorphic encryption

Ability to modify ciphertexts can be a useful featureHomomorphic encryption is perfectly malleable

We will not consider CCA security

Page 25: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homomorphic Encryption: first attempt

Assume f: M →M

f(Enc(pk,m)) = Enc(pk,f(m))

Eval(pk,f, Enc(pk,m)) = Enc(pk,f(m))

Page 26: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homomorphic Encryption: second attempt

Dec(sk,Eval(pk,f, Enc(pk,m))) = f(m)

Page 27: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Multi-input functions

Many inputs are encrypted independentlyc1 ← Enc(pk,m1)...ck ← Enc(pk,mk )

k-ary function f: (m1,...,mk) →m

Eval(pk, f, c1 ,...,ck ))= Enc(pk,f(m1 ,...,mk )) ???

Dec(sk,Eval(pk, f, c1 ,...ck ))= f(m1 ,...,mk )

Page 28: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Multi-input functions

Many inputs are encrypted independentlyc1 ← Enc(pk,m1)...ck ← Enc(pk,mk )

k-ary function f: (m1,...,mk) →m

Eval(pk, f, c1 ,...,ck ))= Enc(pk,f(m1 ,...,mk )) ???

Dec(sk ,Eval(pk, f, c1 ,...ck ))= f(m1 ,...,mk )

Page 29: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Multi-key Homomorphic encryption

Assume multiple users: P1,P2, ...Each user has a key (pair): Pi : (pki , ski )Data is encrypted and sent to different usersc1 ← Enc(pk1,m1)...ct ← Enc(pkt ,mt )

Users pool data together to perform a joint computation onc1, ..., ct

Final result is an encryption of f (m1, ...,mt) under whatkey?Eval (???,f,c1 ,...,ct ))

~ Enc(???, f(m1 ,...,mt ))

Page 30: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Multi-key Homomorphic encryption

Assume multiple users: P1,P2, ...Each user has a key (pair): Pi : (pki , ski )Data is encrypted and sent to different usersc1 ← Enc(pk1,m1)...ct ← Enc(pkt ,mt )

Users pool data together to perform a joint computation onc1, ..., ct

Final result is an encryption of f (m1, ...,mt) under whatkey?Eval (???,f,c1 ,...,ct ))

~ Enc(???, f(m1 ,...,mt ))

Page 31: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Restricting Homomorphic Encryption

FHE is a useful and challenging problem already in thesingle key setting

In order to appropach the problem we will further restrict itby parametrizing by a set of allowedcomputations/functions Func = {f: ....} where eachf: (M,...,M)→ M may take a different number of arguments

More generally, one many consider functionsf:(M1, ...,Mk) →M taking inputs from different sets (types),e.g., ifThenElse: (Bool,Int,Int)→Int

Page 32: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Restricting Homomorphic Encryption

FHE is a useful and challenging problem already in thesingle key setting

In order to appropach the problem we will further restrict itby parametrizing by a set of allowedcomputations/functions Func = {f: ....} where eachf: (M,...,M)→ M may take a different number of arguments

More generally, one many consider functionsf:(M1, ...,Mk) →M taking inputs from different sets (types),e.g., ifThenElse: (Bool,Int,Int)→Int

Page 33: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Restricting Homomorphic Encryption

FHE is a useful and challenging problem already in thesingle key setting

In order to appropach the problem we will further restrict itby parametrizing by a set of allowedcomputations/functions Func = {f: ....} where eachf: (M,...,M)→ M may take a different number of arguments

More generally, one many consider functionsf:(M1, ...,Mk) →M taking inputs from different sets (types),e.g., ifThenElse: (Bool,Int,Int)→Int

Page 34: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Examples and Function Composition

(M,+, 0): abelian group, e.g., “fixed size” integers(modulo N)Addition: f (x1, ...xt) = x1 + ...+ xtScalar multiplication: ga(x) = a · xLinear combinations: h(x1, ...xt) =

∑i 2i−1xi

1-hop, n-hop, multi-hop: can functions f be composed?

h(x1, ..., xt) = f (g1(x1), ..., g2t−1(xt))

Page 35: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Examples and Function Composition

(M,+, 0): abelian group, e.g., “fixed size” integers(modulo N)Addition: f (x1, ...xt) = x1 + ...+ xtScalar multiplication: ga(x) = a · xLinear combinations: h(x1, ...xt) =

∑i 2i−1xi

1-hop, n-hop, multi-hop: can functions f be composed?

h(x1, ..., xt) = f (g1(x1), ..., g2t−1(xt))

Page 36: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of Function Composition

Let x , y , z ∈ M be messages and f , g : M → M twofunctions such that y = f (x) and z = g(y) = (g ◦ f )(x)Assume (Gen,Enc,Dec,Eval) can evaluate f and g correctly:Dec(sk,Eval(pk,f, Enc(pk,x))) = f(x)Dec(sk,Eval(pk,g, Enc(pk,y))) = g(y)

QuestionDoes it follow that

ctX ← Enc(pk,x)ctY ← Eval(pk,f,ctX)ctZ ← Eval(pk,g,ctY)

Dec(sk,ctZ)?= z

Page 37: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of Function Composition

Let x , y , z ∈ M be messages and f , g : M → M twofunctions such that y = f (x) and z = g(y) = (g ◦ f )(x)Assume (Gen,Enc,Dec,Eval) can evaluate f and g correctly:Dec(sk,Eval(pk,f, Enc(pk,x))) = f(x)Dec(sk,Eval(pk,g, Enc(pk,y))) = g(y)

QuestionDoes it follow that

ctX ← Enc(pk,x)ctY ← Eval(pk,f,ctX)ctZ ← Eval(pk,g,ctY)

Dec(sk ,ctZ)?= z

Page 38: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Formalizing Restricted Composition

Restrict scheme to a set F of strongly typed functions:

f : M1 × . . .Mk → M0

Enc,Dec,Eval are given type information

We can use types to bound computation depth:

Start from f : M → MDefine Mi = M for i = 1, ..., nDefine fi : Mi → Mi+1, where fi (x) = f (x)

F = {f } allows arbitrary composition

F = {f0}: no composition

F = {f0, f1, ..., fn}: bounded depth composition

Page 39: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Formalizing Restricted Composition

Restrict scheme to a set F of strongly typed functions:

f : M1 × . . .Mk → M0

Enc,Dec,Eval are given type information

We can use types to bound computation depth:

Start from f : M → MDefine Mi = M for i = 1, ..., nDefine fi : Mi → Mi+1, where fi (x) = f (x)

F = {f } allows arbitrary composition

F = {f0}: no composition

F = {f0, f1, ..., fn}: bounded depth composition

Page 40: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

(Multi-hop) Correctness Game

State: (initially empty) list L of message-ciphertext pairsCorrectFHEgame () = (sk,pk) ← Gen()

L ← []A[E,F](pk)(m,c) ← last(L)return (Dec(sk,c) 6= m)

E(m) = c ← Enc(pk,m)L ← L;(m,c)return c

F(f,I) = (ms,cs) ← unzip L[I]m ← f(ms)c ← Eval(pk,f,cs)L ← L;(m,c)return c

Page 41: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Terminology

Reading papers, you will find references to

Fully Homomorphic EncryptionSomewhat Homomorphic EncryptionLeveled Fully Homomorphic Encryptionetc.

We will use FHE as a catchall term

Definition is parametrized by a set of functions FFunctions in F can be composed only if their types matchF is closed under compositionCan use “phantom” types to limit composition

We will rarely define F formally, but it is a useful exercise

Page 42: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Terminology

Reading papers, you will find references to

Fully Homomorphic EncryptionSomewhat Homomorphic EncryptionLeveled Fully Homomorphic Encryptionetc.

We will use FHE as a catchall term

Definition is parametrized by a set of functions FFunctions in F can be composed only if their types matchF is closed under compositionCan use “phantom” types to limit composition

We will rarely define F formally, but it is a useful exercise

Page 43: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security of Homomorphic Encryption

INDCPAgame(b:{0 ,1})(sk,pk) ← Gen()A(pk) → (m0,m1)return A(Enc(pk,mb)): {0,1}

RemarkThe IND-CPA security definition depends only on Gen and Enc,but not on Dec (or Eval)

QuestionCan the IND-CPA security definition be applied as it is to FHEschemes (Gen,Enc,Dec,Eval)?

Page 44: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

A trivial FHE scheme

Consider the following FHE scheme:

Let (Gen,Enc,Dec) be IND-CPA secureDefine TrivialFHE = (Gen,Enc',Dec',Eval)

Enc '(pk,m) = (Enc(pk,m) ,[])Dec '(sk ,(ct ,[])) = Dec(sk,ct)Dec '(sk ,(ct ,[f;fs])) = f(Dec '(sk ,(ct,fs)))Eval(pk,f,(ct ,[fs])) = (ct ,[f;fs])

QuestionIs TrivialFHE a correct FHE scheme?Is TrivialFHE a secure FHE scheme?What makes the above scheme “trivial”?

Page 45: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Compactness

The TrivialFHE scheme is both correct and secure

The problem with TrivialFHE is that it is not efficient:

Computation is performed by Dec, not Eval!

DefinitionA FHE scheme is compact if the size of ciphertextct = Eval(pk,f,Enc(pk,m)) is independent of Size(f)

Weaker forms of compactness:

Ciphertext size may grow logarithmic with Size(f)Ciphertext size may depend on Depth(f)

Page 46: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Function Privacy

f0(x,y) = x + yf1(x,y) = y + x

Game[A](b: {0,1})(sk,pk) ← Gen()ctX ← Enc(pk,x)ctY ← Enc(pk,y)ct ← Eval(pk,fb,ctX ,ctY)return A(ct)

QuestionAssume (Gen,Enc,Dec,Eval) is a secure FHE scheme. Can anefficient adversary A recover the bit b = Game[A](b) ?

Page 47: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Passive Attacks to FHE

Game[A](b: {0,1})(sk,pk) ← Gen()State ← []b' ← A[E,D,F](pk)return b'

Adversary has access to three stateful oracles:

Encryption oracle: E(m0,m1)

Function Evaluation oracle: F(f0,f1,I)Decryption oracle: D(i)

Joint State: List of message-message-ciphertext triplets(m0,m1,ct)

Page 48: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Passive Attack (oracles)

E(m0,m1) = ct ← Enc(pk,mb)State ← (State;(m0,m1,ct))return ct

F(f0,f1,I) = (ms0,ms1,cts) ← unzip State[I]ct ← Eval(pk,fb,cts)m0 ← f0(ms0)m1 ← f1(ms1)State ← State;(m0,m1,ct)return ct

D(i): (m0,m1,ct) ← State[i]if (m0 ≡m1)

then return Dec(sk,ct)else return Nil

Page 49: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Passive Attack with/without function privacy

The game we just described guarantees function privacyA similar definition without function privacy can beobtained by requiring f0≡f1 in the function evaluationqueries

F'(f,I): (ms0,ms1,cts) ← unzip State[I]ct ← Eval(pk,f,cts)m0 = f(ms0)m1 = f(ms1)State ← (State;(m0,m1,ct))return ct

Page 50: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Example: Circuit Privacy

Assume messages are single bits m: {0,1}

Let FHE=(Gen,Enc,Dec,Eval) a function private FHEscheme supporting NAND(x,y)= not (x && y)

EvalC(pk,C,...): evaluates boolean circuitC: {0, 1}n →{0,1} one gate at a time usingEval(pk,NAND,...)

Let C0,C1 : NAND circuits with the same number ofinputs and NAND gates(sk,ps)← Gen()

Let xs0, xs1 be input bits such that C0(xs0) = C1(xs1)

QuestionAre the following two distributions indistinguishable?

(pk ,EvalC(pk, C0, Enc(pk,xs0)))(pk ,EvalC(pk, C1, Enc(pk,xs1)))

% CSE208: Advanced Cryptography % Daniele Micciancio %Fall 2020

Page 51: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 3

Bootstrapping

Page 52: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping

For simplicity: fix message space to {0, 1}

HE=(Gen,Enc,Dec,Eval)

Homomorphic functions: Func = { nand }Supports only bounded computations: Depth(C)< D

QuestionCan we use HE to build a FHE scheme supporting arbitrarycircuits/functions?

The process of building FHE from HE is called“bootstrapping”

Page 53: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping

For simplicity: fix message space to {0, 1}

HE=(Gen,Enc,Dec,Eval)

Homomorphic functions: Func = { nand }Supports only bounded computations: Depth(C)< D

QuestionCan we use HE to build a FHE scheme supporting arbitrarycircuits/functions?

The process of building FHE from HE is called“bootstrapping”

Page 54: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decryption as a boolean function

Everything is a sequence of bits

Secret key sk: {0, 1}k

Ciphertext ct: {0, 1}l

Dec(sk,ct): {0,1}

Usually we think of Dec as a function

described by secret key skmapping ciphertext ct to message bit Dec(sk,ct): {0,1}

But we can also think of Dec as a function

described by ciphertext ctmapping secret key sk to message bit Dec(sk,ct): {0,1}

Page 55: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decryption as a boolean function

Everything is a sequence of bits

Secret key sk: {0, 1}k

Ciphertext ct: {0, 1}l

Dec(sk,ct): {0,1}

Usually we think of Dec as a function

described by secret key skmapping ciphertext ct to message bit Dec(sk,ct): {0,1}

But we can also think of Dec as a function

described by ciphertext ctmapping secret key sk to message bit Dec(sk,ct): {0,1}

Page 56: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decryption as a boolean function

Everything is a sequence of bits

Secret key sk: {0, 1}k

Ciphertext ct: {0, 1}l

Dec(sk,ct): {0,1}

Usually we think of Dec as a function

described by secret key skmapping ciphertext ct to message bit Dec(sk,ct): {0,1}

But we can also think of Dec as a function

described by ciphertext ctmapping secret key sk to message bit Dec(sk,ct): {0,1}

Page 57: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homomorphic Decryption

Fix a ciphertext cDefine fc : sk 7→ Dec(sk, c)Assume Size(fc) < S, Depth(fc) < DLet bk[1..k] = Enc(pk,sk[1..k])

QuestionWhat is the result of the following computation?

EvalC(pk,fc ,bk[1..k])

Page 58: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Proxy Re-encryption

Primary key: (pk,sk)

Secondary key: (pk1,sk1)

Re-encryption key: rk = Enc(pk1,sk[1..k])

Input ciphertext c = Enc(pk,m)

Decryption function fc(sk) = Dec(sk,c)

QuestionWhat is the result of the following computation?

EvalC(pk1 ,fc ,rk)

Page 59: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decrypt and compute (unary)

Homomorphic Encryption (Gen,Enc,Dec,Eval)

Assume Func = { fc | c: CipherText } wherefc (sk) = not (Dec(sk,c))

(pk,sk) ← Gen()ek = Enc(pk,sk)c = Enc(pk,m)

QuestionWhat is the result of the following computation?

EvalC(pk,fc ,ek)

Page 60: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decrypt and compute (unary)

Homomorphic Encryption (Gen,Enc,Dec,Eval)

Assume Func = { fc | c: CipherText } wherefc (sk) = not (Dec(sk,c))

(pk,sk) ← Gen()ek = Enc(pk,sk)c = Enc(pk,m)

QuestionWhat is the result of the following computation?

EvalC(pk,fc ,ek)

Page 61: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decrypt and compute (binary)

Homomorphic Encryption (Gen,Enc,Dec,Eval)

Assume Func = { fc,c′ | c,c': CipherText } wherefc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

(pk,sk) ← Gen()ek ← Enc(pk,sk)c ← Enc(pk,m)c' ← Enc(pk,m')

QuestionWhat is the result of the following computation?

EvalC(pk,fc,c′ ,ek)

Page 62: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decrypt and compute (binary)

Homomorphic Encryption (Gen,Enc,Dec,Eval)

Assume Func = { fc,c′ | c,c': CipherText } wherefc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

(pk,sk) ← Gen()ek ← Enc(pk,sk)c ← Enc(pk,m)c' ← Enc(pk,m')

QuestionWhat is the result of the following computation?

EvalC(pk,fc,c′ ,ek)

Page 63: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping

Given (1-hop) (Gen,Enc,Dec,Eval) supporting functionsfc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

Define (multi-hop) FHE scheme with Func = { nand }

Gen '() = (sk,pk) ← Gen()ek ← Enc(pk,sk)return (sk ,(pk,ek))

Enc '((pk,ek),m) = Enc(pk,m)

Eval '((pk,ek),nand ,c,c')= EvalC(pk,fc,c′ ,ek)

Page 64: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping

Given (1-hop) (Gen,Enc,Dec,Eval) supporting functionsfc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

Define (multi-hop) FHE scheme with Func = { nand }

Gen '() = (sk,pk) ← Gen()ek ← Enc(pk,sk)return (sk ,(pk,ek))

Enc '((pk,ek),m) = Enc(pk,m)

Eval '((pk ,ek),nand ,c,c')= EvalC(pk,fc,c′ ,ek)

Page 65: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness

Let (Gen',Enc',Dec,Eval') be the new encryption scheme

TheoremIf Dec(sk,c)= m and Dec(sk,c')= m', then

Dec(sk ,Eval '((pk,ek),nand ,c,c') = m nand m'

Strong correctness property:Dec(sk,Eval '((pk,ek),nand ,c,c')

= Dec(sk,c) nand Dec(sk,c')

for any ciphertexts c,c' !

Page 66: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness

Let (Gen',Enc',Dec,Eval') be the new encryption scheme

TheoremIf Dec(sk,c)= m and Dec(sk,c')= m', then

Dec(sk ,Eval '((pk,ek),nand ,c,c') = m nand m'

Strong correctness property:Dec(sk ,Eval '((pk,ek),nand ,c,c')

= Dec(sk,c) nand Dec(sk,c')

for any ciphertexts c,c' !

Page 67: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security

Assume FHE = (Gen,Enc,Dec,Eval) is IND-CPA secureBuild new scheme FHE':

Gen '() = (sk,pk) ← Gen()ek ← Enc(pk,sk)return (sk ,(pk,ek))

Enc '((pk,ek),m) = Enc(pk,m)

Is FHE' IND-CPA secure?

Page 68: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Leveled Homomorphic Encryption

Goal: build a FHE supporting NAND circuits of depth upto L, for any given LKey generation procedure takes L as input:

Gen '(L) =for (i=0..L)

(sk[i],pk[i]) ← Gen()for (i=1..L)

ek[i] = Enc(pk[i],sk[i-1])sk' = sk[0..L]pk' = pk[0..L],ek[1..L]return (sk ',pk ')

Enc '(pk',m) = Enc(pk[0],m)

Page 69: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Leveled Homomorphic Encryption

Goal: build a FHE supporting NAND circuits of depth upto L, for any given LKey generation procedure takes L as input:

Gen '(L) =for (i=0..L)

(sk[i],pk[i]) ← Gen()for (i=1..L)

ek[i] = Enc(pk[i],sk[i-1])sk' = sk[0..L]pk' = pk[0..L],ek[1..L]return (sk ',pk ')

Enc '(pk',m) = Enc(pk[0],m)

Page 70: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

FHE Today

State of the artWe can build leveled FHE from standard LWE assumption

Built using bootstrappingInefficient, but better than nothing

Open problemBuild (non-leveled) FHE from standard LWE

In practice, one can apply bootstrapping withek = Enc(pk,sk)

Much smaller key than leveled FHENo known attacks to circular securityStill, it is not known how to prove security

Page 71: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 4

LWE

Page 72: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linear equations

q: integer modulusZq: integers modulo qA ∈ Zn×m

q : matrixb ∈ Zn

q

ProblemGiven A, b, find x ∈ Zm such that Ax = b (mod q)

ProblemGiven A, b, find x ∈ {0, 1}m such that Ax = b (mod q)

QuestionWhich problem can be efficiently solved?

Page 73: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Worst-case vs Average-case hardness

ProblemGiven A, b, find x ∈ {0, 1}m such that Ax = b (mod q)

NP-hard: no polynomial time algorithm unless P=NP

Is it hard to solve on the average?

For what probability distribution?

A← Zn×mq

x ← {0, 1}m

b = Ax (mod q)

Is f : (A, x) 7→ (A,Ax mod q) is a One-Way Function?

For what values of n,m, q?

Page 74: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

One-Way Functions

Definitionf : D → R is a one-way function if for any PPT algorithm IPr{InvertGame(I)} ≈0 whereInvertGame:

x ← Dy = f(x)x' ← I(y)

return (f(x')?= y)

D = Zn×mq × {0, 1}m

R = Znq

f (A, x) = Ax mod qAsymptotics: q(m) = 2poly(m), n(m) = poly(m)

Page 75: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

One-Way?

A← Zn×m

x ← {0, 1}mf (A, x) = Ax mod q

QuestionIs f a one-way function when

1 q = 2m, n = m2 q = 2m, n = m/23 q = m, n = m/24 q = m, n =

√m

Page 76: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Short Integer Solution (SIS) problem

Parameters:

modulus qdimensions n < mbound β

ProblemSIS: Given A ∈ Zn×m

q and b ∈ Znq, find x ∈ Zm such that

Ax = b (mod q) and ‖x‖ ≤ β

More generally: x ∈ S ⊂ Zm

Special cases:

S = {x : ‖x‖ ≤ β}S = {0, 1}m

S = {x : ‖x‖∞ ≤ β}

Page 77: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Systematic Form

Assume n < m (e.g., n = m/2)Let A = [I,A′] ∈ Zn×m for some A′ ∈ Zn×(m−n)

LemmaIf SIS is hard, then SIS’ is hard

Page 78: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Learning With Errors

SIS’: A = [I,A′] ∈ Zn×m where n < m (say, n = m/2)Let x = (e, s)Ax = [I,A′](e, s) = A′s + e

ProblemLWE: Given A′ and b, find small e, s such that A′s + e = b

ProblemLWE: Given A′ and b, find small e, s such that A′s ≈ b

Notice:

A′ ∈ Zn×nq

A′s = b is easy to solveA′s ≈ b seems hard

Page 79: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE problem

Notation:

secret s ← Znq, usually chosen at random

modulus q(n) = poly(n)A← Zm×n

qerror e ← χm, usually |ei | ≈

√n

b = As + e ∈ Zmq

ProblemSearch LWE: Given A and b, find s

Each row of A gives an approximate equation 〈a, s〉 ≈ bif m� n, then s is uniquely determinedStill, hard to find s

Page 80: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Uniform vs Small secrets

LemmaIf LWE is hard for s ← χn, then it is hard for s ← Zn

q

Proof: Assume Adv solves LWE with uniform s ← Znq

Adv '(A,b)s ← Zn

qb' = b + Ass' = Adv(A,b')return (s' - s)

Page 81: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Uniform vs Small secrets

LemmaIf LWE is hard for s ← χn, then it is hard for s ← Zn

q

Proof: Assume Adv solves LWE with uniform s ← Znq

Adv '(A,b)s ← Zn

qb' = b + Ass' = Adv(A,b')return (s' - s)

Page 82: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decisional LWE (DLWE)

DefinitionLWE distribution:

LWE[q,n,m] =do A ← Zm×n

qs ← Zn

qe ← χm

b = As+ereturn (A,b)

DefinitionDecisional LWE (DLWE): distinguish LWE[q,n,m] fromUniform(Zm×(n+1)

q )

Page 83: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decision to Search reduction

TheoremIf DLWE is hard, then LWE is hard

Proof:

Assume Adv solves LWEGiven Adv' that solves DLWE

Adv '(A,b):s ← Adv(A,b)if (As ≈ b)

then return "LWE"else return "random"

Page 84: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decision to Search reduction

TheoremIf DLWE is hard, then LWE is hard

Proof:

Assume Adv solves LWEGiven Adv' that solves DLWE

Adv '(A,b):s ← Adv(A,b)if (As ≈ b)

then return "LWE"else return "random"

Page 85: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Search vs Decision

Is (Search) LWE harder than DLWE?

TheoremIf Seach LWE is hard for any m = poly(n), then DLWE is alsohard for any m = poly(n)

TheoremFor any m = poly(n), if Seach LWE is hard, then DLWE is alsohard for any m = poly(n)

Page 86: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE Search to Decision reduction (easy version)

Assume Adv can distinguish LWE from uniformTask: Given A,b, find s such that As ≈b (mod q)

Assumption: s is unique (holds with very high probability)We show how to check if si = γ:

Adv(A,b):a ← Zm

A' = A + [0..0,a ,0..0]b' = b + γ acase Adv(A',b') of

"LWE" : return si = c"random" : return si 6= c

Recover all entries of s, one at a time

Page 87: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

(Decisional) LWE Assumption

In the rest of the course we will just assume that DLWE ishard

There are several variants of the assumption:

Uniform vs. small secret sDifferent (always small) error distributions e ← χFixed vs unbounded number of samples mDifferent values of qConcrete hardness assumptions

By and large all variants are equivalent up to polynomialreductions

Page 88: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

How to Encrypt with LWE

Fix secret s in Znq

LWE samples (ai , bi ) where ai ∈ Znq and bi ∈ Z

Polynomially many samples (ai , bi ) for i = 1, 2, ...DLWE: the bi values are pseudorandomIdea: use bi as a one-time pad to encrypt a messate m

Page 89: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE Symmetric Encryption

Gen():s ← Zn

qreturn s

Enc(s,m):a ← Zn

qe ← χb = 〈a, s〉 + e + m

Dec(s,(a,b)):return (b - 〈a, s〉)

Is this a valid encryption scheme?

Page 90: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Symmetric Encryption

SKE(Gen ,Enc ,Dec)Gen: () → skEnc: (sk,m) → cDec: (sk,c) → m

Correctness: for every sk ← Gen() and m ← [M], r ← [R]:

Dec(sk,Enc(sk,m;r)) = m

QuestionIs this a valid encryption scheme?

Page 91: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correcting from errors

Ciphertext modulus qMessage modulus p (assume p divides q)Message space: m ∈ Zp

Enc(s,m) = (a,b) wherea ← Zn

q, e ←χ

b = 〈a, s〉 + e + (q/p)m

Dec(s,(a,b)) = round(c*p/q)) wherec = b - 〈a, s〉 mod q

LemmaIf |e| < β then Dec(s,Enc(s,m;a,e))= m

QuestionFor what value of β is the lemma correct?

Page 92: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

IND-CPA security for symmetric encryption

INDCPAgameSKE(b:{0 ,1})sk ← Gen()b' ← A[LR]return b':{0 ,1}

LR(m0,m1):ct ← Enc(sk,mb)return ct

Similar LR security definition can be given also for PKE:A[LR](pk) is given pk and oracle access to LR

Previous PKE INDCPAgame allows only one query to LR

QuestionWhy can restrict PKE INDCPAgame to one query?

Page 93: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security of LWE symmetric encryption

Assume |e| < β = q/(2p) for all e ← χIs LWE INDCPAgameSKE secure?

TheoremAssume DLWE holds for a given q(n) and any m = poly(n).Then LWE symmetric encryption is INDCPA secure, i.e., anyadversary Adv has negligible advantage in the INDCPAgameSKEdistinguishing game.

Page 94: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

RR-CPA security

LWE encryption satisfies a stronger security property:ciphertext indistinguishability from random

INDCPAgameSKE(b:{0 ,1})sk ← Gen()b' ← A[RR]return b':{0 ,1}

RR(m):ct0 ← Enc(sk,m)ct1 ←Zn+1

qreturn ctb

“Real or Random” oracle RR

RR-CPA security also provides a form of anonimity

Page 95: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LeftRight vs RealRand security

TheoremIf a (SKE or PKE) scheme is INDCPA-RR secure, then it is alsoINDCPA-LR secure.

RemarkA (SKE or PKE) scheme can be INDCPA-LR secure, but notINDCPA-RR secure.

Page 96: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Compact LWE Encryption

Ciphertext expansion: bitsize(ct)/ bitsize(m)

Compact LWE SKE (Gen,Enc,Dec)

Gen():

S ← Zl×nq

return S

Enc(S,m) = (a,b)a ← Zn

qe ← χl

b = Sa + e + round((p/q)m)

Dec(S,(a,b)):c ← b - St a) mod qreturn round(c*p/q)

TheoremCompact LWE SKE is correct and INDCPA-RR secure

Page 97: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Ciphertext Expansion

Compact LWE encryption:

Key S ∈ Zl×nq

Message m ∈ Zlp

Encryption Enc(S,m)= (a,b) where b = Sa + e + mp/q

Ciphertext (a, b) ∈ Zn+lq

QuestionWhat is the ciphertext/plaintext size ratio?

Example:

Enc(f,x;r)= (f(r),H(r)⊕m) where f : {0, 1}k → {0, 1}k

Enc(f,.):{0, 1}m→{0, 1}m+k

Ciphertext expansion: (m + k)/m = 1 + (k/m)

Page 98: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 5

Linearity

Page 99: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE Symmetric Encryption

Gen():s ← Zn

qreturn s

Enc(s,m):a ← Zn

qe ← χb = 〈a, s〉 + e + (q/p)mreturn (a,b)

Dec(s,(a,b)):d = b - 〈a, s〉 mod qreturn (round(d*p/q))

Page 100: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Compact (Matrix) LWE

Gen():

S ← Zl×nq

return S

Enc(S,M) = (A,B)A ← Zn×w

qE ← χl×w

B = SA + E + round((p/q)M) mod q

Dec(S,(A,B)):D ← B - SA mod qreturn round(D*p/q)

Notation:

[A,B]: horizontal concatenation(A,B): vertical concatenation

Page 101: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linearity of the LWE function

Let LWE(S,X;A,E)= SA + X + E be the raw LWE functionEncryption: Enc(S,M)= LWE(S,(q/p)M; A,E) for random A,E

Linear properties:LWE(S,X;A,E) + LWE(S,X';A',E')

= LWE(S,X+X';A+A',E+E')

LWE(S,X;A,E) - LWE(S,X';A',E')= LWE(S,X-X';A-A',E-E')

c*LWE(S,X;A,E) = LWE(S,c*X; c*A,c*E)

Key Homomorphism:LWE(S,X;A,E) + LWE(S',X';A,E')

= LWE(S+S',X+X'; A, E+E')

Ciphertexts must use the same A!

Page 102: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linearity of the LWE function

Let LWE(S,X;A,E)= SA + X + E be the raw LWE functionEncryption: Enc(S,M)= LWE(S,(q/p)M; A,E) for random A,E

Linear properties:LWE(S,X;A,E) + LWE(S,X';A',E')

= LWE(S,X+X';A+A',E+E')

LWE(S,X;A,E) - LWE(S,X';A',E')= LWE(S,X-X';A-A',E-E')

c*LWE(S,X;A,E) = LWE(S,c*X; c*A,c*E)

Key Homomorphism:LWE(S,X;A,E) + LWE(S',X';A,E')

= LWE(S+S',X+X'; A, E+E')

Ciphertexts must use the same A!

Page 103: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linearity of Ciphertexts

Ciphertexts that “encrypt” X under S with error E.

DefinitionLWE(S,X;E) = { (A,B): B = LWE(S,X;A,E)}

LWE(S,X;β) = { (A,B) : B = LWE(S,X;A,E), |E |∞ < β }

LWE(S,X;E)+ LWE(S,X';E')⊆ LWE(S,X+X';E+E')

LWE(S,X;E)- LWE(S,X';E')⊆ LWE(S,X-X';E-E')

c*LWE(S,X;E)⊆ LWE(S,c*X; c*E)

QuestionLWE(S,X;β) + LWE(S,X';β′) ⊆LWE(S,X+X';β + β′) ?

QuestionLWE(S,X;β) - LWE(S,X';β′) ⊆LWE(S,X+X';β − β′) ?

Page 104: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linearity of Ciphertexts

Ciphertexts that “encrypt” X under S with error E.

DefinitionLWE(S,X;E) = { (A,B): B = LWE(S,X;A,E)}

LWE(S,X;β) = { (A,B) : B = LWE(S,X;A,E), |E |∞ < β }

LWE(S,X;E)+ LWE(S,X';E')⊆ LWE(S,X+X';E+E')

LWE(S,X;E)- LWE(S,X';E')⊆ LWE(S,X-X';E-E')

c*LWE(S,X;E)⊆ LWE(S,c*X; c*E)

QuestionLWE(S,X;β) + LWE(S,X';β′) ⊆LWE(S,X+X';β + β′) ?

QuestionLWE(S,X;β) - LWE(S,X';β′) ⊆LWE(S,X+X';β − β′) ?

Page 105: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linearity of Ciphertexts

Ciphertexts that “encrypt” X under S with error E.

DefinitionLWE(S,X;E) = { (A,B): B = LWE(S,X;A,E)}

LWE(S,X;β) = { (A,B) : B = LWE(S,X;A,E), |E |∞ < β }

LWE(S,X;E)+ LWE(S,X';E')⊆ LWE(S,X+X';E+E')

LWE(S,X;E)- LWE(S,X';E')⊆ LWE(S,X-X';E-E')

c*LWE(S,X;E)⊆ LWE(S,c*X; c*E)

QuestionLWE(S,X;β) + LWE(S,X';β′) ⊆LWE(S,X+X';β + β′) ?

QuestionLWE(S,X;β) - LWE(S,X';β′) ⊆LWE(S,X+X';β − β′) ?

Page 106: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Message and Ciphertext Operations

Addition:

M0 + M1 ∈ Zl×wq

(A0,B0) + (A1,B1) = (A0 + A1,B0 + B1) ∈ Z(n+l)×wq

Subtraction

M0 −M1 ∈ Zl×wq

(A0,B0)− (A1,B1) = (A0 − A1,B0 − B1) ∈ Z(n+l)×wq

Scalar multiplication

c ·M ∈ Zl×wq

c · (A,B) = (c · A, c · B) ∈ Z(n+l)×wq

Arbitrary linear transformations . . .

Page 107: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Additive Homomorphism Encryption

Homomorphic Encryption supporting the addition ofciphertexts

sk ← Gen()c0 ← Enc(sk, m0)c1 ← Enc(sk, m1)c = c0 + c1m = m0 + m1

Dec(sk,c)?= m

QuestionDoes LWE encryption satisfy the addititive homomorphicproperty? For what error bound |χ| < β?

QuestionIs ciphertext c distributed according to Enc(m0+m1)?

Page 108: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Summation

Homomorphic Encryption supporting the addition ofciphertexts

sk ← Gen()c1 ← Enc(sk, m1)c2 ← Enc(sk, m2)...ck ← Enc(sk, mk )c = c1 + c2 + ... + ckm = m1 + m2 + ... + mk

Dec(sk,c)?= m

QuestionFor any given bound |χ| < β, what is the largest value of k forwhich one can add k ciphertexts?

Page 109: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Subtraction and Scalar multiplication

Subtraction m0 −m1 : similar to addition m0 + m1±1-linear combinations: similar to summationScalar multiplication c ·m: error grows by a factor cCiphertexts can be multiplied only by small scalars!

Page 110: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Concatenation

LWE(S,X;A,E)= SA + X + E

S ∈ Zk×nq

A ∈ Zn×wq

X ,E ∈ Zk×wq

The same S can be used with messages X with any numberof columns w

Message Concatenation X | X' = [X,X']

Definition(A,B) | (A',B')= ([A,A'],[B,B'])

TheoremLWE(S,X;A,E)| LWE(S,X';A',E)⊆LWE(S,[X,X'];[A,A'],[E,E'])

Page 111: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linear Transforms

Left multiplication by a constant matrix: M → M T

Ciphertext C = LWE(S,M;E)

Notice: M and C have the same number of columnsWe can apply T to C: C → CT

TheoremLWE(S,X;A,E)*T ⊆LWE(S,XT;AT,ET)LWE(S,X;E)*T ⊆LWE(S,XT;ET)

Special case:

Addition: C + C' = [C|C']T for T=(I,I)Subtraction: C - C' = [C|C']T for T=(I,-I)

Page 112: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Constant Messages

QuestionCan you compute an LWE encryption of a message M withoutknowing the secret key S?

I pick S ← Gen() and keep it secretGoal: find ciphertext C such that Dec(S,C)= M

Let (A,B) = (O,(q/p)M)

Dec(S,(A,B))= (p/q)(B - SA)= M

We write Const(M) for the constant ciphertext (O,(q/p)M)

Remarks:

The ciphertext C is independent of SC = LWE((q/p)M;0) is a “noiseless” encryption of M

Page 113: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Constant Messages

QuestionCan you compute an LWE encryption of a message M withoutknowing the secret key S?

I pick S ← Gen() and keep it secretGoal: find ciphertext C such that Dec(S,C)= M

Let (A,B) = (O,(q/p)M)

Dec(S,(A,B))= (p/q)(B - SA)= M

We write Const(M) for the constant ciphertext (O,(q/p)M)

Remarks:

The ciphertext C is independent of SC = LWE((q/p)M;0) is a “noiseless” encryption of M

Page 114: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Constant Messages as Homomorphic properties

LWE(S,M;E)+ LWE((q/p)M';0)= LWE(S,M+M';E)

Homomorphism for “nullary functions” fM() = M

Given an empty sequence of ciphertexts [], produce anencryption of fM([]) = M

Homomorphism for unary functions fM(M ′) = M + M ′

Given an encryption of M ′, produce an encryption of theshifted message M + M ′

Page 115: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Circular security

A PKE scheme is “circular secure” if one can securlypublish the encryption Enc(pk,sk).A SKE scheme is “circular secure” if one can securlypublish the encryption Enc(sk,sk).

DefinitionA PKE scheme (Gen,Enc,Dec) is circular secure if(Gen',Enc',Dec) is IND-CPA secure where

Gen '():(sk ,pk) ← Gen()ct ← Enc(pk,sk)pk' = (pk,ct)

Enc '((pk ,ct),msg) = Enc(pk,msg)

Page 116: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Application: Public key encryption

Can we transform Secret Key Encryption to Public KeyEncryption?

Not in general: black box separationsImpagliazzo’s worlds: Minicrypt vs Cryptomania

What if we start from an Additively Homomorphic SKEscheme?

Black box separation results break down

What about a weakly (bounded) additive scheme?

What about our LWE SKE scheme?

Page 117: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Application: Public key encryption

Can we transform Secret Key Encryption to Public KeyEncryption?

Not in general: black box separationsImpagliazzo’s worlds: Minicrypt vs Cryptomania

What if we start from an Additively Homomorphic SKEscheme?

Black box separation results break down

What about a weakly (bounded) additive scheme?

What about our LWE SKE scheme?

Page 118: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

PKE: Construction

Start from SKE (Gen,Enc,Dec)

Construct a PKE (Gen',Enc',Dec)

Gen '():sk ← Gen()for i=1..n

pk[i] ← Enc(sk ,0)pk = pk[1..n]return (sk,pk)

Enc '(pk,msg):for i=1..n

r[i] ← {0,1}ct = Const(msg) + sum { pk[i] : r[i] = 1 }return ct

Page 119: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of PKE

Dec(sk, msg+Enc(sk ,0) +...+ Enc(sk ,0))= msg + 0 + ... + 0 = msg

TheoremIf SKE is (1-hop) homomorphic under constant increment andn-summation, then PKE is correct.

TheoremIf SKE is (1-hop) homomorphic under constant increment andhn-summation, then PKE is correct and homomorphic underconstant increment and n-summation.

QuestionAssume SKE is an IND-CPA secure and homomorphic. Is PKEsecure?

Page 120: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of PKE

Dec(sk, msg+Enc(sk ,0) +...+ Enc(sk ,0))= msg + 0 + ... + 0 = msg

TheoremIf SKE is (1-hop) homomorphic under constant increment andn-summation, then PKE is correct.

TheoremIf SKE is (1-hop) homomorphic under constant increment andhn-summation, then PKE is correct and homomorphic underconstant increment and n-summation.

QuestionAssume SKE is an IND-CPA secure and homomorphic. Is PKEsecure?

Page 121: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

For what value of n?

Certainly not secure for n = 1 (or even n = 0!)

What about large n?

How large?

Answer: Secure, for large enough n and any additivelyhomomorphic SKE [Rothblum, TCC 2011]

Page 122: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

The case of LWE SKE

Consider the PKE scheme obtained from our LWE-basedSKEGen '():

S ← Gen()P = Enc(S,0) |..| Enc(S,0) = Enc(S ,[0..0])return (S,P)

Enc '(P,M):R ← {0, 1}∗PR + Const(M)

TheoremLWE PKE is RR-IND secure.

Page 123: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Universal Hashing

DefinitionA function family H = {h : X → Y |h} is 2-universal if for anya, b ∈ X ,

{(h(a), h(b))|h ∈ H} ≡ {(f (a), f (b))|f : X → Y }

Let (X ,+) be an additive groupFor any vector a ∈ Xn, define the subset-sum functionh(a, S) =

∑{ai : i ∈ S}

QuestionWhich of the following function families is 2-universal?

1 {ha : S → h(a,S)|a ∈ Xn}2 {hS : a→ h(a,S)|S ⊆ {1, .., n}}3 Both4 Neither

Page 124: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Universal Hashing (continued)

ha(S) =∑

i∈S ai is not 2-universal

What about ga,b(S) = b + ha(S)?

Yes, this is 2-universalProve it as an exercise

{ha : {0, 1}n → X}a still satisfies a weaker property whichis enough for our purposes

DefinitionFor any a 6= b, Prh{h(a) = h(b)} = 1/|X |

We will refer to this weaker property as 2-universal’

Page 125: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Universal Hashing: proof

LemmaFor any group (X ,+), the function family {ha(S) =

∑i∈S ai}a

is 2-universal’, i.e., for all S 6= T we havePrh{h(S) = h(T )} = 1/|X |

Proof.

Let j ∈ S \ TFix ai for all i 6= jLet T ′ = T \ S and S ′ = S \ (T ∪ {i})c =

∑i∈T ′ ai −

∑i∈S′ ai does not depend on aj

ha(S) = ha(T ) iff aj = cPr{aj = c} = 1/|X |

Page 126: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Leftover Hash Lemma

LemmaFor any 2-universal’ family {h : X → Y |h ∈ H}, the distributions{(h, h(x))|h← H, x ← X}{(h, y)|h← H, y ← Y }

are within statistical distance ∆ ≤√|Y |/|X |.

Proof Steps:

1 If H is 2-universal’, then (H,H(X )) has small collisionprobability

2 If (H,H(X )) has small collision probability, then it isstatistically close to uniform

Page 127: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability and Uniformity

Z ,Z ′ i.i.d., with Pr{Z = z} = p(z)

DefinitionCollision Probability:C(Z ) = Pr{Z = Z ′} =

∑z p(z)2

∑z(p(z)− 1/|Z |)2 = C(Z )− 1/|Z |

Norm inequality: ∀v ∈ Rn.‖v‖1 ≤√n‖v‖2

∆(Z ,U) = 12

∑z |p(z)− 1/|Z ||

∆ ≤ 12√|Z |

√∑z(p(z)− 1/|Z |)2

∆ ≤ 12√|Z |C(Z )− 1

Page 128: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability and Uniformity

Z ,Z ′ i.i.d., with Pr{Z = z} = p(z)

DefinitionCollision Probability:C(Z ) = Pr{Z = Z ′} =

∑z p(z)2

∑z(p(z)− 1/|Z |)2 = C(Z )− 1/|Z |

Norm inequality: ∀v ∈ Rn.‖v‖1 ≤√n‖v‖2

∆(Z ,U) = 12

∑z |p(z)− 1/|Z ||

∆ ≤ 12√|Z |

√∑z(p(z)− 1/|Z |)2

∆ ≤ 12√|Z |C(Z )− 1

Page 129: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability of Universal Hashing

Z = (H,H(X )), 2-universal function family H : X → Y

Collision Probability of Z :

C(Z ) = Pr(h = h′, h(x) = h′(x ′)|h, h′ ← H, x , x ′ ← X )

C = 1|H| Prx ,x ′ [Prh(h(x) = h(x ′))]

Union bound:

Pr(x = x ′) = 1/|X |If x 6= x ′, then Prh(h(x) = h(x ′)) ≤ 1/|Y |

C ≤ 1H ( 1|X | + 1

|Y |)

Using |Z | = |H| · |Y | we get

∆ ≤ 12√|Z |C − 1 = 1

2√|Y |/|X |

Page 130: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability of Universal Hashing

Z = (H,H(X )), 2-universal function family H : X → Y

Collision Probability of Z :

C(Z ) = Pr(h = h′, h(x) = h′(x ′)|h, h′ ← H, x , x ′ ← X )

C = 1|H| Prx ,x ′ [Prh(h(x) = h(x ′))]

Union bound:

Pr(x = x ′) = 1/|X |If x 6= x ′, then Prh(h(x) = h(x ′)) ≤ 1/|Y |

C ≤ 1H ( 1|X | + 1

|Y |)

Using |Z | = |H| · |Y | we get

∆ ≤ 12√|Z |C − 1 = 1

2√|Y |/|X |

Page 131: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability of Universal Hashing

Z = (H,H(X )), 2-universal function family H : X → Y

Collision Probability of Z :

C(Z ) = Pr(h = h′, h(x) = h′(x ′)|h, h′ ← H, x , x ′ ← X )

C = 1|H| Prx ,x ′ [Prh(h(x) = h(x ′))]

Union bound:

Pr(x = x ′) = 1/|X |If x 6= x ′, then Prh(h(x) = h(x ′)) ≤ 1/|Y |

C ≤ 1H ( 1|X | + 1

|Y |)

Using |Z | = |H| · |Y | we get

∆ ≤ 12√|Z |C − 1 = 1

2√|Y |/|X |

Page 132: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision Probability of Universal Hashing

Z = (H,H(X )), 2-universal function family H : X → Y

Collision Probability of Z :

C(Z ) = Pr(h = h′, h(x) = h′(x ′)|h, h′ ← H, x , x ′ ← X )

C = 1|H| Prx ,x ′ [Prh(h(x) = h(x ′))]

Union bound:

Pr(x = x ′) = 1/|X |If x 6= x ′, then Prh(h(x) = h(x ′)) ≤ 1/|Y |

C ≤ 1H ( 1|X | + 1

|Y |)

Using |Z | = |H| · |Y | we get

∆ ≤ 12√|Z |C − 1 = 1

2√|Y |/|X |

Page 133: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security of LWE PKE

Gen(): S,E ← ...P = Enc(S ,[0..0]) = (A,SA+E)return (S,P)

Enc(P,M): R ← {0, 1}∗return PR + Const(M)

TheoremLWE PKE is RR-IND secure.

Proof:

1 Assume Adv breaks PKE2 LWE Assumption: P = (A,SA+E)≈(A,B)3 Adv breaks RR-CPA when P is uniform4 If P is uniform, then (P,PR) is close to uniform

Page 134: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security of LWE PKE

Gen(): S,E ← ...P = Enc(S ,[0..0]) = (A,SA+E)return (S,P)

Enc(P,M): R ← {0, 1}∗return PR + Const(M)

TheoremLWE PKE is RR-IND secure.

Proof:

1 Assume Adv breaks PKE2 LWE Assumption: P = (A,SA+E)≈(A,B)3 Adv breaks RR-CPA when P is uniform4 If P is uniform, then (P,PR) is close to uniform

Page 135: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Details

Claim: (P,PR) is close to uniform

Enough to look at a single column (P,Pr)

Statement for matrix (P,PR) follows by hybrid argument

P: r →Pr is 2-universal

Columns of P belong to a group (Zn+lq ,+)

r selects a subset of the columns of PApply Leftover Hash Lemma

Page 136: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homomorphic PKE

Enc(P,M)= PR + Const(M)

Enc(P,M)+ Enc(P,M')= PR + Const(M)+ PR' + Const(M')=

P(R+R')+ Const(M+M')

Enc(P,M)+ Enc(P,M')≈Enc(P,M+M')

Noise: E+E'

[ Enc(P,M)| Enc(P,M')] = Enc(P,[M|M'])

Noise: [E|E']

Enc(P,M)T ≈Enc(P,MT)

Noise: ETT must be small

Page 137: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Homomorphic PKE

Enc(P,M)= PR + Const(M)

Enc(P,M)+ Enc(P,M')= PR + Const(M)+ PR' + Const(M')=

P(R+R')+ Const(M+M')

Enc(P,M)+ Enc(P,M')≈Enc(P,M+M')

Noise: E+E'

[ Enc(P,M)| Enc(P,M')] = Enc(P,[M|M'])

Noise: [E|E']

Enc(P,M)T ≈Enc(P,MT)

Noise: ETT must be small

Page 138: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Encoding modulo q

Ciphertext modulus q. Assume q = 2k

Plaintest modulus p � q, e.g., p=2. Use scalingConst(msg)= (O,(q/p)msg) to allow error correction andcorrect decryption

What if we want to encrypt msg ∈ Zq?

Idea:

write msg =∑

i mi2i , where mi ∈ {0, 1}Encrypt each bit individually: Enc(m0),...,Enc(mk)

Page 139: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Encoding modulo q

Ciphertext modulus q. Assume q = 2k

Plaintest modulus p � q, e.g., p=2. Use scalingConst(msg)= (O,(q/p)msg) to allow error correction andcorrect decryption

What if we want to encrypt msg ∈ Zq?

Idea:

write msg =∑

i mi2i , where mi ∈ {0, 1}Encrypt each bit individually: Enc(m0),...,Enc(mk)

Page 140: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Encoding modulo q

Ciphertext modulus q. Assume q = 2k

Plaintest modulus p � q, e.g., p=2. Use scalingConst(msg)= (O,(q/p)msg) to allow error correction andcorrect decryption

What if we want to encrypt msg ∈ Zq?

Idea:

write msg =∑

i mi2i , where mi ∈ {0, 1}Encrypt each bit individually: Enc(m0),...,Enc(mk)

Page 141: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Encoding modulo q

Ciphertext modulus q. Assume q = 2k

Plaintest modulus p � q, e.g., p=2. Use scalingConst(msg)= (O,(q/p)msg) to allow error correction andcorrect decryptionEnc(m: {0, 1}k ) = (a,Sa+e+(q/2)m)

bitDecomp(msg: Zq) =for i=0..k-1

m[i] = (msg >> i) mod 2return m[]

Enc '(msg: Zq) =return (Enc(bitDecomp(msg))

Page 142: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linear Encoding

Bit encoding: (msg:Zq)→(m[*]:{0, 1}k)

good: works for any message spacebad: breaks linear homomorphic properties

We need to use a linear encoding function:

(msg:Zq)→(m[*]:Zkq)

msg → msg*(1,2,4,8,...)

Column encoding:

pow2col = (1,2,4,8,...)Enc'(S,msg)= LWE(S,msg*pow2col)= (a,b)

Row encoding:

pow2row = [1,2,4,8,...]Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b)

Page 143: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Linear Encoding

Bit encoding: (msg:Zq)→(m[*]:{0, 1}k)

good: works for any message spacebad: breaks linear homomorphic properties

We need to use a linear encoding function:

(msg:Zq)→(m[*]:Zkq)

msg → msg*(1,2,4,8,...)

Column encoding:

pow2col = (1,2,4,8,...)Enc'(S,msg)= LWE(S,msg*pow2col)= (a,b)

Row encoding:

pow2row = [1,2,4,8,...]Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b)

Page 144: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decoding modulo q

QuestionCan you decryptEnc'(S,msg)= LWE(S,msg*pow2col)= (a,b)?Can you decryptEnc'(s,msg)= LWE(s,msg*pow2row)= (A,b)?For what error bound |e|∞ < β?

Page 145: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decryption algorithm

Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b) whereb = sA+e+msg*pow2row

Dec '(s,(A,b)):msg ← 0for i=0...(k-1)

ct ← (A[k-i-1],b[k-i-1] - msg*2k−i )m[i] ← Dec(s,ct)msg ← msg+m[i]<<(i)

return msg

Theorem(Gen,Enc',Dec') is a valid encryption algorithm for β = q/4

QuestionDoes a similar algorithm work for pow2col?

Page 146: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Decryption algorithm

Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b) whereb = sA+e+msg*pow2row

Dec '(s,(A,b)):msg ← 0for i=0...(k-1)

ct ← (A[k-i-1],b[k-i-1] - msg*2k−i )m[i] ← Dec(s,ct)msg ← msg+m[i]<<(i)

return msg

Theorem(Gen,Enc',Dec') is a valid encryption algorithm for β = q/4

QuestionDoes a similar algorithm work for pow2col?

Page 147: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Arbitrary linear transformations

Starting point: Enc() linearly homomorphic for small t

Enc(P,m)*t ≈Enc(P,mt)problem: error grows by a factor t

What about computations modulo q?

pow2row = [1,2,4,8,...]Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b)

Multiplying by any t ∈ Zq

Compute tBin[] = bitDecomp(t)Compute scalar product with vector tBin[]

Page 148: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Arbitrary linear transformations

Starting point: Enc() linearly homomorphic for small t

Enc(P,m)*t ≈Enc(P,mt)problem: error grows by a factor t

What about computations modulo q?

pow2row = [1,2,4,8,...]Enc'(s,msg)= LWE(s,msg*pow2row)= (A,b)

Multiplying by any t ∈ Zq

Compute tBin[] = bitDecomp(t)Compute scalar product with vector tBin[]

Page 149: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of scalar multiplication

Enc '(s,msg) * tBin[]= LWE(s,msg*pow2row;e) * tBin[]= LWE(s,msg*pow2row*tBin [];e*tBin [])= LWE(s,msg*t;e')

pow2row * tBin[] =∑

i 2i ·tBin[i] = t

if |e| < β, then |e′| = |∑

i ei · tBin[i ]| ≤ k · βError grows only by k = log q

Problem:

result msg*t is a value modulo qEnc(s,msg*t;e') is not properly encodedwe need an encryption of msg*t*pow2row

Page 150: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of scalar multiplication

Enc '(s,msg) * tBin[]= LWE(s,msg*pow2row;e) * tBin[]= LWE(s,msg*pow2row*tBin [];e*tBin [])= LWE(s,msg*t;e')

pow2row * tBin[] =∑

i 2i ·tBin[i] = t

if |e| < β, then |e′| = |∑

i ei · tBin[i ]| ≤ k · βError grows only by k = log q

Problem:

result msg*t is a value modulo qEnc(s,msg*t;e') is not properly encodedwe need an encryption of msg*t*pow2row

Page 151: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness of scalar multiplication

Enc '(s,msg) * tBin[]= LWE(s,msg*pow2row;e) * tBin[]= LWE(s,msg*pow2row*tBin [];e*tBin [])= LWE(s,msg*t;e')

pow2row * tBin[] =∑

i 2i ·tBin[i] = t

if |e| < β, then |e′| = |∑

i ei · tBin[i ]| ≤ k · βError grows only by k = log q

Problem:

result msg*t is a value modulo qEnc(s,msg*t;e') is not properly encodedwe need an encryption of msg*t*pow2row

Page 152: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Constant Multiplication algorithm

Enc'(s,msg)= LWE(s,msg*pow2row)

Enc'(s,msg)* bitDecomp(t)= LWE(s,msg*t;e')

CMul(C,t):T = bitDecomp(t * pow2row)return C * T

Proof:

Page 153: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Extensions and Generalizations

Matrix messagesM ⊗ pow2row = [M,M*2,M*4,M*8 ,...]

Arbitrary message modulus:round(m*(q/p),m*(q/p)/2,m*(q/p)*4 ,...)

Other gadgets, e.g., based on Chinese Remainder Theorem

q =∏

i pi product of small primesencoding vector crtRow = [q/p1,q/p2,...,q/pk]crtRow * crtDecomp(t)= t

Page 154: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Summary

At this point we have an encryption algorithmEnc '(S,M) = LWE(S,M ⊗ pow2row)

with message space Zw×lq , and supporting the homomorphic

evaluation of the following operations:

Const(M): noiseless encryption of M(+): addition of ciphertexts(-): subtraction of ciphertextsCMul(.,T): multiplication by any linear transformationmodulo q

Page 155: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 6

Key Switching

Page 156: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remember Proxy Re-encryption?

Primary key: (pk,sk)

Secondary key: (pk1,sk1)

Re-encryption key: rk = Enc(pk1,sk[1..k])

Input ciphertext c = Enc(pk,m)

Decryption function fc(sk) = Dec(sk,c)

QuestionWhat is the result of the following computation?

Eval(pk1 ,fc ,rk)

QuestionCan you implement proxy re-encryption using LWE?

Page 157: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remember Proxy Re-encryption?

Primary key: (pk,sk)

Secondary key: (pk1,sk1)

Re-encryption key: rk = Enc(pk1,sk[1..k])

Input ciphertext c = Enc(pk,m)

Decryption function fc(sk) = Dec(sk,c)

QuestionWhat is the result of the following computation?

Eval(pk1 ,fc ,rk)

QuestionCan you implement proxy re-encryption using LWE?

Page 158: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE-based Proxy Re-encryption?

sk[1..n] ∈ Znq

sk '[1..n] ∈ Znq

Enc(sk,msg) = LWE(sk,msg*pow2row) = (A[],b[])rk[i] = Enc(sk ',sk[i])

Dec '(sk ,(A,b))[j] = b[j] -∑

i sk[i] * A[i,j]≈ msg*pow2row

Dec(sk ,(A,b)) = decode(Dec '(sk ,(A,b)))

QuestionCan you compute Dec' homomorphically?Does it give you a proxy re-encryption scheme?

Page 159: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE-based Proxy Re-encryption

Enc(sk,msg) = LWE(sk,msg*pow2row)rk[i] = Enc(sk ',sk[i])Dec '(sk ,(A,b)) = b[j] -

∑i sk[i] * A[i,j]

Goal: homomorphically evaluate the functionfA,b(sk) = Dec '(sk ,(A,b))Eval(fA,b,rk) = ?

Solution: Eval(fA,b,rk) = ct

ct[j] = Const(b[j]) -∑

i CMul(rk[i],A[i,j])

Page 160: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE-based Proxy Re-encryption

Enc(sk,msg) = LWE(sk,msg*pow2row)rk[i] = Enc(sk ',sk[i])Dec '(sk ,(A,b)) = b[j] -

∑i sk[i] * A[i,j]

Goal: homomorphically evaluate the functionfA,b(sk) = Dec '(sk ,(A,b))Eval(fA,b,rk) = ?

Solution: Eval(fA,b,rk) = ct

ct[j] = Const(b[j]) -∑

i CMul(rk[i],A[i,j])

Page 161: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Key Switching

Generalize proxy re-encryption:

sk,sk' may have different dimensions and moduliEnc(sk,.), Enc'(sk',.) may use different plaintextmoduli and message encodings

Example

Message space msg: ZpCiphertext modulus qsk[1..n], sk'[1..n] ∈ Zn

qEnc(sk,m)= LWE(sk,(q/p)*msg) mod qEvaluation key: rk[i] = Enc(sk',sk[i])

Do you see any problem?

Page 162: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Key Switching

Source scheme:msg: Zpsk[1..n] ∈ Zn

qEnc(sk,msg) = LWE(sk, q

p msg) = (a[],b) mod q

Target scheme:msg ': Zq

sk '[1..n'] ∈ Zn′q

Enc '(sk',msg ') = LWE(sk',msg '* pow2row)

Evaluation:ek[i] = Enc '(sk',sk[i])KeySwitch(ek ,(a[],b)) =

Const(b) -∑

i CMul(a[i],ek[i])

Page 163: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness

msg: Zp; sk[1..n] ∈ Znq

msg ': Zq; sk '[1..n'] ∈ Zn′q

Enc(sk,msg) = LWE(sk, qp msg) = (a[],b) mod q

Enc '(sk',msg ') = LWE(sk',msg '* pow2row)

ek[i] = Enc '(sk',sk[i])

KeySwitch(ek ,(a[],b))= Const(b) -

∑i CMul(a[i],ek[i])

= Const(b) -∑

i CMul(a[i],Enc '(sk',sk[i]))

= LWE(sk ',b -∑

i a[i]*sk[i])= LWE(sk ', q

p msg + e)

= Enc(sk ',msg)

Page 164: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness

msg: Zp; sk[1..n] ∈ Znq

msg ': Zq; sk '[1..n'] ∈ Zn′q

Enc(sk,msg) = LWE(sk, qp msg) = (a[],b) mod q

Enc '(sk',msg ') = LWE(sk',msg '* pow2row)

ek[i] = Enc '(sk',sk[i])

KeySwitch(ek ,(a[],b))= Const(b) -

∑i CMul(a[i],ek[i])

= Const(b) -∑

i CMul(a[i],Enc '(sk',sk[i]))

= LWE(sk ',b -∑

i a[i]*sk[i])= LWE(sk ', q

p msg + e)

= Enc(sk ',msg)

Page 165: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Correctness

msg: Zp; sk[1..n] ∈ Znq

msg ': Zq; sk '[1..n'] ∈ Zn′q

Enc(sk,msg) = LWE(sk, qp msg) = (a[],b) mod q

Enc '(sk',msg ') = LWE(sk',msg '* pow2row)

ek[i] = Enc '(sk',sk[i])

KeySwitch(ek ,(a[],b))= Const(b) -

∑i CMul(a[i],ek[i])

= Const(b) -∑

i CMul(a[i],Enc '(sk',sk[i]))

= LWE(sk ',b -∑

i a[i]*sk[i])= LWE(sk ', q

p msg + e)

= Enc(sk ',msg)

Page 166: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks

Source and Target schemes may use different moduli

Enc'(sk',msg')= LWE(sk', qqmsg'*pow2row)

Input ciphertext may use compact (matrix) LWE

Enc(SK,msg[])= LWE(SK, qp msg[])

RK' = Enc'(SK',SK)

Key Switching:

Input: Enc(sk,msg: mod p): mod qSwitching Key: Enc'(sk',sk: mod q): mod q'Output: Enc(sk',msg: mod p): mod q'

Input/Output can use arbitrary encoding, e.g.,

Input: Enc(sk,msg)= LWE(sk,msg*pow2row)Output: Enc(sk',msg)= LWE(sk',msg*pow2row)

Page 167: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks

Source and Target schemes may use different moduli

Enc'(sk',msg')= LWE(sk', qqmsg'*pow2row)

Input ciphertext may use compact (matrix) LWE

Enc(SK,msg[])= LWE(SK, qp msg[])

RK' = Enc'(SK',SK)

Key Switching:

Input: Enc(sk,msg: mod p): mod qSwitching Key: Enc'(sk',sk: mod q): mod q'Output: Enc(sk',msg: mod p): mod q'

Input/Output can use arbitrary encoding, e.g.,

Input: Enc(sk,msg)= LWE(sk,msg*pow2row)Output: Enc(sk',msg)= LWE(sk',msg*pow2row)

Page 168: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks

Source and Target schemes may use different moduli

Enc'(sk',msg')= LWE(sk', qqmsg'*pow2row)

Input ciphertext may use compact (matrix) LWE

Enc(SK,msg[])= LWE(SK, qp msg[])

RK' = Enc'(SK',SK)

Key Switching:

Input: Enc(sk,msg: mod p): mod qSwitching Key: Enc'(sk',sk: mod q): mod q'Output: Enc(sk',msg: mod p): mod q'

Input/Output can use arbitrary encoding, e.g.,

Input: Enc(sk,msg)= LWE(sk,msg*pow2row)Output: Enc(sk',msg)= LWE(sk',msg*pow2row)

Page 169: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks

Source and Target schemes may use different moduli

Enc'(sk',msg')= LWE(sk', qqmsg'*pow2row)

Input ciphertext may use compact (matrix) LWE

Enc(SK,msg[])= LWE(SK, qp msg[])

RK' = Enc'(SK',SK)

Key Switching:

Input: Enc(sk,msg: mod p): mod qSwitching Key: Enc'(sk',sk: mod q): mod q'Output: Enc(sk',msg: mod p): mod q'

Input/Output can use arbitrary encoding, e.g.,

Input: Enc(sk,msg)= LWE(sk,msg*pow2row)Output: Enc(sk',msg)= LWE(sk',msg*pow2row)

Page 170: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Sub-key Switching

Application: reduce key size SK → SK'

Always: SK,SK' must have the same number of rowsOften SK is a “sub-matrix” of SK = [SK',SK'']

Switching Key[RK',RK"] = Enc '(SK',SK)

= Enc '(SK ',[SK ' | SK ''])= [Enc '(SK',SK ') | Enc '(SK',SK")]

But RK' is publicly known! (remeber circular security?)Can use a smaller switching key RK" = Enc'(SK',SK")

QuestionDoes it work? What if SK"=[]? Then, RK"=[] and SK = SK'!Is it trivial? Is it useful?

Page 171: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Modulus switching

Subkey switching from SK to SK'=SK can still be useful tochange the ciphertext modulus from q to q'

So far we used the simplifying assumption that p|q

Switching from q to q' requires a switching key with

plainext modulus qciphertexst modulus q'but if q|q', this only allows to increase the modulus

(Sub-)Key Switching works also for p 6 |q

but introduces a “small” rounding errorfor subkey switching the rounding error if proportional to SKswitching to a smaller modulus requires “small” key SK

Page 172: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Subkey and Modulus Switching

Subkey switching

Input: ct = Enc([SK',SK"],m) and RK = Enc'(SK',SK")SubkeySwitch(RK,ct)= ct' such that Dec(SK',ct')= m

QuestionGive explicit description of SubkeySwitch algorithm

Modulus switching

Assume SK has small entriesInput: ct = Enc(SK,m)mod q and nothing elseModSwitch(ct)= ct' mod q' such that Dec(SK,ct')= m

QuestionGive explicit description of ModSwitch algorithm

Page 173: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Subkey and Modulus Switching

Subkey switching

Input: ct = Enc([SK',SK"],m) and RK = Enc'(SK',SK")SubkeySwitch(RK,ct)= ct' such that Dec(SK',ct')= m

QuestionGive explicit description of SubkeySwitch algorithm

Modulus switching

Assume SK has small entriesInput: ct = Enc(SK,m)mod q and nothing elseModSwitch(ct)= ct' mod q' such that Dec(SK,ct')= m

QuestionGive explicit description of ModSwitch algorithm

Page 174: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Subkey and Modulus Switching

Subkey switching

Input: ct = Enc([SK',SK"],m) and RK = Enc'(SK',SK")SubkeySwitch(RK,ct)= ct' such that Dec(SK',ct')= m

QuestionGive explicit description of SubkeySwitch algorithm

Modulus switching

Assume SK has small entriesInput: ct = Enc(SK,m)mod q and nothing elseModSwitch(ct)= ct' mod q' such that Dec(SK,ct')= m

QuestionGive explicit description of ModSwitch algorithm

Page 175: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Subkey and Modulus Switching

Subkey switching

Input: ct = Enc([SK',SK"],m) and RK = Enc'(SK',SK")SubkeySwitch(RK,ct)= ct' such that Dec(SK',ct')= m

QuestionGive explicit description of SubkeySwitch algorithm

Modulus switching

Assume SK has small entriesInput: ct = Enc(SK,m)mod q and nothing elseModSwitch(ct)= ct' mod q' such that Dec(SK,ct')= m

QuestionGive explicit description of ModSwitch algorithm

Page 176: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 7

Multiplication

Page 177: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

What we have done so far

Simple LWE Encryption: private key encryption supporting

small message modulus (p � q)homomorphic additionhomomorphic multiplication by small constantsenough to obtain public key encryptioncircular security (for small keys)

Extended LWE Encryption to support

large message modulus (p = q)homomorphic multiplication by arbitray constantscircular security (for arbitary keys)key switching

Page 178: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Next: Homomorphic Multiplication

ProblemGiven Enc(sk,msg[0]) and Enc(sk,msg[1]), compute aciphertext ct such that Dec(sk,ct)= msg[0]*msg[1]

Can this be done for our LWE encryption scheme?

Can it be done with the help of some additional keymaterial?

Yes, in fact, there are multiple ways to do it

Nested encryptionHomomorphic decryptionTensor product

Page 179: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Method 1: Nested Encryption

msg[0],msg[1] ∈ Zqct[0] = Enc(sk[0],msg[0])

ct[1] = Enc(sk[1],msg[1])

Multiply encryption of msg[0] by ct[1]

ct[0] * ct[1]= Enc(sk[0],msg [0]) * ct[1]= Enc(sk[0],msg [0]*ct[1])

Inner multiplication:msg [0]*ct[1]= msg [0]* Enc(sk[1],msg [1])= Enc(sk[1],msg [0]* msg [1])

Final result: Enc(sk[0],Enc(sk[1],msg[0]*msg[1]))

Page 180: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Details

ct[1] = Enc(sk[1],msg[1]) is a vector!

ct[0] = Enc(sk[0],msg[0]*I)(msg[0]*I)*ct[1] = msg[0]*ct[1]

msg[0]*Enc(sk[1],msg[1];e[1])= Enc(sk[1],msg[0]*msg

[1]; msg[0]*e[1])

Assume msg[0] is small (e.g., ,10,1)May set Enc(sk[1],msg[1])= LWE(sk[1],(q/2)*msg[1])

Using Enc(sk[0],Enc(sk[1],msg))

Keep nesting?Ciphertexts get larger and larger!

Page 181: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Key Nesting

Recall: Enc(S,M)= LWE(S,M)= (A,S*A + E + M)

Claim: Nested encryption Enc(Z,Enc(S,M))= Enc(Z�S,M)

QuestionFor what key Z�S?

S:Z[k,n], Z:Z[n+k,n]Z = (Zn,Zk) where Zn[n,n] and Zk[k,n]

Z�S = [S*Zn + Zk, S] = [S,I]ZEnc(Z,Enc(S,m;e);e')= Enc(Z�S,m; e")e" = e + [S,I]e'Key S needs to be small!

Page 182: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Key Nesting

Recall: Enc(S,M)= LWE(S,M)= (A,S*A + E + M)

Claim: Nested encryption Enc(Z,Enc(S,M))= Enc(Z�S,M)

QuestionFor what key Z�S?

S:Z[k,n], Z:Z[n+k,n]Z = (Zn,Zk) where Zn[n,n] and Zk[k,n]

Z�S = [S*Zn + Zk, S] = [S,I]ZEnc(Z,Enc(S,m;e);e')= Enc(Z�S,m; e")e" = e + [S,I]e'Key S needs to be small!

Page 183: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Nested Encryption + (Sub)Key Switching

Combine nested multiplication with key switching:

Input keys: Z,S

Evaluation key: W = Enc(S,[S,I]Z;F)

Input ciphertexts:CT[0] = Enc(Z,msg[0]*I;E[0])CT[1] = Enc(S,msg[1]*I;E[1])

Output: SubkeySwitch(W,CT[0]*CT[1])= Enc(S,msg*I;E)msg = msg[0]*msg[1]E = msg[0]*E[1] + [S,I]*E[0]*X + F*Y for binarymatrices X,Y

Key S needs to be small!Security Assumption: Standard LWE

Page 184: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Method 1.5: Homomorphic Decryption

Assume both ciphertexts use the same key S

Nested Encryption:1 Homomorphic multiplication: Enc(S,msg[0])*CT[1]2 Key Switching: Homomorphic multiplication by [S,I]

Method 1: Eval([S,I],Enc(S,msg[0])*CT[1])

Combine the two homomorphic multiplications:Bring [S,I] inside the first ciphertextEnc(S,msg[0]*[S,I])* CT[1]

Define a new LWE encryption variant:Enc#(S,msg) = Enc(S,msg*[S,I])

Enc#(S,msg [0]) * Enc(S,msg [1])= Enc(S,msg [0]*[S,I]*Enc(S,msg [1]))= Enc(S,msg [0]* msg [1])

Page 185: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security

Enc#(S,msg) = Enc(S,msg*[S,I])= [Enc(S,msg*S),Enc(S,msg*I)]

Circular security:

Can compute Enc(S,msg*S)= msg*Enc(S,S) withoutknowing SProblem: msg*(-I,0) reveals msg!Solution: Enc(S,0)+ msg*Enc(S,S)

TheoremEnc is secure under the LWE assumption

Page 186: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks

Second encryption scheme can be chosen arbitrarilyEnc#(S,m0)*Enc(S,m1) = Enc(S,m0m1)

Enc#(S,m0)*Enc#(S,m1) = Enc#(S,m0m1)

No need for key switchingProduct Enc(S,m0m1) uses the same key as the inputKey S does not have to be smallNo evaluation key!

Enc is a homomorphic encryption scheme supportingCiphertext additionCiphertext multiplicationwithout any evaluation key!

Too good to be true?

Page 187: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Error growth

Enc#(m0;E0) * Enc#(m1;E1) = Enc#(m0m1;E)Error: E ≈ m0 ∗ E1 + E0 ∗ X

Multiplying many ciphertextsCT[i] = Enc#(mi;Ei)Assume mi ∈ 0, 1Given CT[1],...,CT[k]Goal: compute CT[1]*...*CT[k] = Enc#(

∏i mi)

How? Several options (multiplication is associative):Left to right multiplication chainRight to left multiplication chainBinary tree (minize circuit depth)

QuestionWhat order is best?

Page 188: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Arithmetic and Boolean operations

AdditionCan add polynomially many ciphertextsError grows by polymomial factor (e.g., O(log(n)) bits)

MultiplicationAssume binary message spaceCan multiply polynomially many ciphertexts in a chainError grows by polymomial factor (e.g., O(log(n)) bits)

Bit operations:m0,m1 ∈ {0, 1}m0 ∧m1 = m0 ·m1¬m0 = 1−m0m0 ∨m1 = ¬(¬m0 ∧ ¬m1)

Conditional: (b,m0,m1) 7→ mbmb = (1− b) ·m0 + b ·m1

Arbitrary log-depth boolean circuits

Page 189: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Arithmetic and Boolean operations

AdditionCan add polynomially many ciphertextsError grows by polymomial factor (e.g., O(log(n)) bits)

MultiplicationAssume binary message spaceCan multiply polynomially many ciphertexts in a chainError grows by polymomial factor (e.g., O(log(n)) bits)

Bit operations:m0,m1 ∈ {0, 1}m0 ∧m1 = m0 ·m1¬m0 = 1−m0m0 ∨m1 = ¬(¬m0 ∧ ¬m1)

Conditional: (b,m0,m1) 7→ mbmb = (1− b) ·m0 + b ·m1

Arbitrary log-depth boolean circuits

Page 190: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Method 2: Tensor and Key Switch

Why? Efficiency! Allows SIMD operations using polynomialrings

Ciphertext as a function

fC(S)= Dec'(S,C)= [S,I]CfC is linear in [S,I]

Product ciphertext C = C0*C1

Goal: Dec'(S,C)= Dec'(S,C0)*Dec'(S,C1)fC0,C1(S)= Dec'(S,C0)*Dec'(S,C1) is bilinear in [S,I]

Tensor product: Z = [S,I]⊗[S,I] = [S⊗S,S,S,I]

Any bilinear function of [S,I] is linear in ZC = C0⊗C1 decrypts to m0 ·m1 under Z

Page 191: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Mixed product property

TheoremFor any A,B,X ,Y ,

(A⊗ B) · (X ⊗ Y ) = (A · X )⊗ (B · Y )

([S, I]⊗ [S, I]) · (C0 ⊗ C1) = ([S, I]C0)⊗ ([S, I]C1)= (X0 + E0)⊗ (X1 + E1)

Result: X0 ⊗ X1 + X0 ⊗ E1 + E0 ⊗ X1 + E0 ⊗ E1

Assume scalar messages: x0 ⊗ x1 = x0 · x1Messages must be encoded: xi = q

pmi

Page 192: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Mixed product property

TheoremFor any A,B,X ,Y ,

(A⊗ B) · (X ⊗ Y ) = (A · X )⊗ (B · Y )

([S, I]⊗ [S, I]) · (C0 ⊗ C1) = ([S, I]C0)⊗ ([S, I]C1)= (X0 + E0)⊗ (X1 + E1)

Result: X0 ⊗ X1 + X0 ⊗ E1 + E0 ⊗ X1 + E0 ⊗ E1

Assume scalar messages: x0 ⊗ x1 = x0 · x1Messages must be encoded: xi = q

pmi

Page 193: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Encoding issues

Encode scalar messages: xi = qpmi

Product: (x0 + e0)(x1 + e1) = x0x1 + x0e1 + e0x1 + e0e1Issues:

Error terms x0e1 + e0x1 = qp (m0e1 + e0m1) are too large

Main term x0x1 = (q/p)2m0m1 is not properly encodedSolutions:

Modular arithmetics: assume gcd(q, p) = 1, and multiplyresult by p (mod q)Modulus lifting: Compute the product modulo q2, andthen switch to smaller modulus q

Page 194: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Modular arithmetics

Compute c = p · c0 ⊗ c1 (mod q)Output c decrypts (under sk⊗sk) to

p(x0 + e0)(x1 + e1) = qp (−qm0m1) + pe0e1

Assume q = −1 (mod p)Error growth: β 7→ pβ2

Arbitrary q, pMultiply result by (−q)−1 (mod p)Error growth: β 7→ p2β2

Modulus switching can be used to reduce β to a fixedpolynomial σ = ‖s‖1 = O(n), and substantially slow downthe error growth

Page 195: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Modular arithmetics

Compute c = p · c0 ⊗ c1 (mod q)Output c decrypts (under sk⊗sk) to

p(x0 + e0)(x1 + e1) = qp (−qm0m1) + pe0e1

Assume q = −1 (mod p)Error growth: β 7→ pβ2

Arbitrary q, pMultiply result by (−q)−1 (mod p)Error growth: β 7→ p2β2

Modulus switching can be used to reduce β to a fixedpolynomial σ = ‖s‖1 = O(n), and substantially slow downthe error growth

Page 196: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Modulus Lifting

Compute c = p · c0 ⊗ c1 (mod q2)Assume key ‖s‖1 < σ has small entriesAnalyze the relative error: ci= Enc(mi;(q/p)ei)

TheoremThe product p(c0 mod q)⊗ (c1 mod q) is an encryption ofm0m1 (mod p) under key s ⊗ s (mod q2) with error (q2/p)e

e ≤ 3e0e1 + p2 (σ + 1)(e0 + e1)

Page 197: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Relative error growth

Fixed polynonials β ≈√n, σ = ‖s‖1 ≈ O(n1.5)

Modulus lifting error growth

relative error: input (q/p)ei , output (q2/p)eassume |ei | < εoutput (multiplication) error ≈ pσε

After L levels of multiplications, error ≈ (pσ)Lε < 1

Input ciphertext modulus must be q ≈ (pσ)L

Better than modular arithmetics approach q > (pβ)2L

Similar growth to modular arithmetics + modulus switching

Page 198: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Tensoring + Key Switching

Both methods produce a ciphertext under key[S⊗S,I⊗S,S⊗I]For scalar messages I = [1] and I⊗S = S⊗I = S

Can use subkey switching from [S⊗S,S] to S

Evaluation key: Enc(S,S⊗S)Security:

Does not follow from circular security of LWEUsing standard LWE:

Evaluation key Enc(Z,S⊗S)Use a sequence of keys S0, ...,SL, one for eachmultiplicative level of circuit/computationCan you still use subkey switching?

Page 199: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Arithmetic computations using Tensor products

Message encoding: (q/p)m

Plaintext arithmetic modulo p (both addition andmultiplication)

Error grows with multiplicative depth of the circuit

Use small key ‖s‖1 < σ to use modulus switching and slowdown error growth

Error at depth L: ≈ (pσ)L < q

L = O(log n): q = nO(log n)

L = poly(n): q = 2poly(n)

Impact of modulus:

Efficiency: running time poly(log q)Security: requires hardness of of approximating latticeproblems within γ ≈ q/β

Page 200: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 8

FHE!!

Page 201: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping

Given (1-hop) (Gen,Enc,Dec,Eval) supporting functionsfc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

Define (multi-hop) FHE scheme with Func = { nand }

Gen '() = (sk,pk) ← Gen()ek ← Enc(pk,sk)return (sk ,(pk,ek))

Enc '((pk,ek),m) = Enc(pk,m)

Eval '((pk,ek),nand ,c,c')= EvalC(pk,fc,c′ ,ek)

Page 202: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

LWE Homomorphic Encryption

Goal: homomorphic evaluation offc,c′(sk) = Dec(sk,c) nand Dec(sk,c')

LWE-based cryptosystem

Supports bounded depth addition and multiplicationBit operations: x nand y = 1 - (1-x)\cdot (1-y)

Key Switchingek[i] = Enc '(sk',sk[i])KeySwitch(ek ,(a[],b)) =

Const(b) -∑

i CMul(a[i],ek[i])

Homomorphic evaluation of Dec'(a,b)= b - Sa

Page 203: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Not enough

Key switching only computes the linear part of Dec

We also need to round the result to decode(b - Sa)

Is this really needed?

Yes, b - Sa = (q/p)m + eKey switching gives a noisy encryption of (q/p)+eWithout rounding, noise keeps getting bigger

QuestionsCan we express rounding as a polynomial function (mod q)?What is the degree of the polynomial?

Page 204: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Error growth and bounded computation

We have seen two methods to multiply ciphertexts:

Tensor products

error growth ∼ β → βσcan evaluate arbirary circuits with multiplicative depth Leven for L = log n, requires superpolynomial modulusq > σL ≈ nO(log n)

Nested Encryption / Homomorphic Decryption

asymmetric error growth: (m0, e0)× (m1, e1)→ m0e1 + e0βcan evaluate arbitrary multiplication chains of L freshencryptions of binary messageseven for large L, polynomial modulus q ≈ Lβ2 is enough

Page 205: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Roadmap

For each multiplication method

1 Describe/analyze a bootstrapping algorithm

2 Homomorphically evaluate the algorithm using anappropriate cryptographic data structure (encryptedaccumulator)

3 Implement the cryptographic data structure using LWE

Page 206: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Cryptographic accumulators

Cryptographic Data Structure ACC[v]

Holds a value v ∈ V in encrypted formInput Encryption scheme: Enc'Output Encryption scheme: Enc''

Operations on ACC[v]

Given Enc'(x), update ACC[v] →ACC[f(v,x)]Given ACC[v], output Enc''(f(v))

Bootstrapping:

Bootstrapping key: Enc'(s)Final output: Enc''(m)

Page 207: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Boostrapping problem

Assume p = 2,m ∈ {0, 1}

Decryption Algorithm:

Input: a[1..n] ∈ Znq, b ∈ Zq

Secret key: s[1..n] ∈ Zn

Compute d = b −∑

i a[i ]s[i ] + (q/4) (mod q)Round d to MSB(d) = b2d/qc

Homomorphic Computation:

Given Enc(s[i])Compute Enc(MSB(d))

Simplifying assumption:

s[i ] ∈ {0, 1}without loss of generality using (a, 2a, 4a, ...)

Page 208: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Ripple-carry addition

Standard schoolbook method

using binary digitsadd n numbers at a timecarry in {0, . . . , n}

Input digits are encrypted

Page 209: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Ripple-carry accumulator

Parameters:

Message space V = {v',...,v''}

Input: Enc'(x)= Enc#(x)

Output: Enc''(x)= LWE(x)

ACC[x] = (Enc''("x=v"): v ∈ V)

Init(v)= ACC[v]Function application: f(ACC[v])= ACC[f(v)]Selection:Enc'(b)? ACC[v0] : ACC[v1] = ACC[b?v0:v1]Output: p(ACC[v])= Enc''(p(b))

Page 210: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping algorithm

b+q/4 =∑

j 2j b[j]

a[i] =∑

j 2j a[i,j]

ACC ← ACC[0]for h = 0..k-1

ACC[x] ← f(ACC[x]) where f (x) = (x/2) + b[h]forall i,j

if (a[i,j] = 1)ACC[x + s[i]] ← Enc '(s[i]) ? ACC[x] :

ACC[x+1]return (even(ACC[x])) = Enc ''(even(x))

Page 211: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Carry-save accumulator

Parameters: bit length k

ACC[x] = (x0,x1)

x = x0+x1 (modulo 2k)x0[0,..,k-1] and x1[0,..,k-1]redundant representation

Operations:

add y to ACCcompute MSB(ACC)

Page 212: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Carry-save addition

Add(ACC(x0,x1),y):x0 '[i] = (x0[i] + x1[i] + y[i]) mod 2x1 '[i+1] = (x0[i] + x1[i] + y[i] > 1)return ACC(x0 ',x1 ')

Page 213: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

MSB computation

Standard MSB computation

addition x0+x1 with carry propagationO(log(k)) depth circuit where k=log(q)

Can also add in log(k) depth

Compute both MSB(ACC) and MSB(ACC+1)ACC[k]: k-bit accumulatorRecursive algorithm: splitACC[k] = (HiACC[k/2],LoACC[k/2])

MSBs(ACC=(HiACC ,LoACC)):parallel:

hi[0,1] = MSBs(HiACC)lo[0,1] = MSBs(LoACC)

out[0] = hi[lo[0]]out[1] = hi[lo[1]]return out

Page 214: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Bootstrapping algorithm

ACC[0] = b+q/4for i=1..n

ACC[i] = s[i]*a[i]ACC = Sum(ACC[0],...,ACC[n])return MSB(ACC)

Sum(ACC [0..n])if n=0

then return ACC[0]else h=n/2

ACC0 = Sum(ACC [0..h-1])ACC1 = Sum(ACC[h..n])(x0,x1) = ACC1return (ACC0 + x0) + x1

Page 215: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Summary

Bootstrapping functions can be computed by

1 O(n log q)-long sequence of multiplications, or2 log(n) + log log(q)-depth arithmetic circuits

Error growth:

1 Using LWE �: final error ≈ O(n) · β2 Using LWE ⊗: final error ≈ σlog n+log log q = σO(log n)

Parameters β(n), σ(n): fixed polynomials in n

Modulus:

1 polynomial modulus q(n) ≈ O(n)β = nO(1)

2 quasipolynomial q(n) = nO(log n)

Page 216: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Summary (security)

Hardness of lattice problems within factor γ ≈ q/β

1 LWE �: polynomial γ = nO(1)

2 LWE ⊗: quasipolynomial γ = nO(log n)

Circular security assumption

Needed by tensor product multiplication / keyswitchingNeeded to apply bootstrappingNot needed for leveled homomorphic encryption

QuestionRemove circular security assumption:

Can you build (unbounded) FHE from standard LWE?Can you build (unbounded) linearly homomorphic HE?

Page 217: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Summary (security)

Hardness of lattice problems within factor γ ≈ q/β

1 LWE �: polynomial γ = nO(1)

2 LWE ⊗: quasipolynomial γ = nO(log n)

Circular security assumption

Needed by tensor product multiplication / keyswitchingNeeded to apply bootstrappingNot needed for leveled homomorphic encryption

QuestionRemove circular security assumption:

Can you build (unbounded) FHE from standard LWE?Can you build (unbounded) linearly homomorphic HE?

Page 218: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Efficiency

Main security parameter n > 100 (typically, n ≈ 1000)Modulus q(n) < 2n has bitsize log q < nAssume 1GHz, arithmetic operations modulo qBootstrapping: homomorphically evaluate decryptionalgorithm (once or twice per gate)

QuestionCan you estimate the cost of a single FHE operation?

Page 219: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 9

Project Info

Page 220: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Implementation and Libraries

Libraries:

SEALHElibPALISADELattigo. . .

Interface:

try to hide math as much as possibleoffer encoding, decoding and SIMD operations

Page 221: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Project:

Use one of the librariesOpen ended, do anything you wantGoal: demonstrate you managed to use the libraryExtra points: do something interestingSubmission: pdf report describing your work + supportingcode

Teams:

You can work in pairs if you likeLarger teams only if doing something more substantialIndivudual project required to use for master competency

Page 222: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Project Deadlines:

Deadlines:

Next lecture (Tue, Dec 1): need to know what you aredoing (team, library)End of finals week (Fri, Dec 18): project submission(canvas, pdf+code)

In the meantime:

in class, mathematics underlying Ring LWEused by the librariesuseful to understand/improve the librariesnot required to use the libraries

Page 223: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 10

Ring LWE

Page 224: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

(In)efficiency of LWE

Standard LWE

Ciphertexts: (a, b) ∈ Z(n+1)×log qq store one value (mod p)

Ciphertext size: O(n log q)Addition, Scalar multiplication: T ≈ n log qCiphertext multiplication: T ≈ n2 log2 q

Compact LWE

Ciphertexts: (a, b) ∈ Z(2n)×log qq store n values (mod p)

Amortized ciphertext size: O(log q)Amortized addition, scalar multiplication: T ≈ log qCiphertext multiplication?

Page 225: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Ring LWE

Generalize LWE using a ring R instead of Z

Ring of polynomials Z[X ]

Monic irreducible p(X ) of degree n

e.g., p(X ) = X n − 1

Quotient ring R = Z[X ]/p(X )

isomorphic to (Zn,+)convolution productRq = R/qR

Ring LWE

Key: s(X ) ∈ RCiphertexts (a, b) ∈ R2

qMessages: m ∈ Rp

Page 226: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Ring LWE vs Compact LWE

Both methods:

Encrypt n values (mod p) using O(n) values (mod q)Efficient (linear time) vector addition and scalarmultiplication

Multiplication:

Compact LWE: tensor multiplication, cost O(n2)Ring LWE: polynomial multiplication, cost O(n log n) usingFFT

Applications / Programming model:

Addition, scalar multiplication: SIMDMultiplication: convolution is usually not what you wantEncode data to perform SIMD multiplication

Page 227: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Data encoding

Polynomial representation

p(x1), . . . , p(xn) ∈ Znq

p(x) = a0 + a1x1 + . . . an−1xn−1 ≡ Znq

Polynomial multiplication: SIMD multiplication ofevaluation representations

Quasilinear time transformations:

(y1, . . . , yn)→ (a0, . . . , an−1): polynomial interpolation(a0, . . . , an−1)→ (y1, . . . , yn): polynomial evaluation

Other operations:

SIMD: great to run same program on n data setsNeed also to pack,unpack,shuffle, etc. for generalcomputations

Page 228: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Security

Is Ring LWE secure?For what rings?

Short answer:

Working modulo p(X ) = Xn − 1 is not a good ideaBetter to work with cyclotomic polynomialsSWIFFT ring: p(X ) = Xn + 1 where n = 2k

Useful both for

security, pseudorandomness, search/decision reductionsefficient implementation using Number Theoretic Transform(NTT)

Page 229: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Implementation and Libraries

Libraries:

SEALHElibPALISADELattigo. . .

Interface:

try to hide math as much as possibleoffer encoding, decoding and SIMD operations

Page 230: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Cyclic lattices

A lattice is cyclic if it is closed underrot(v1, ..., vn) = (vn, v1, v2, ..., vn−1)

Equivalently

view vectors as coefficients of a polynomiallattice is closed under rot(v(X )) = X ∗ v(X ) mod (X n − 1)

Commonly used in coding theory (over finite fields)

cyclic codes: linear code, closed under rotationequivalently, set of polynomials in F[X ]/(X n − 1), closedunder multiplication by X

Page 231: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Generators

TheoremAny cyclic code over finite a field F can be written as

C = {g(X ) · f (X ) mod (Xn − 1)|f (X )}

for some g(X )

Proof.

QuestionIs the same true for cyclic lattices?

Page 232: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Generators

TheoremAny cyclic code over finite a field F can be written as

C = {g(X ) · f (X ) mod (Xn − 1)|f (X )}

for some g(X )

Proof.QuestionIs the same true for cyclic lattices?

Page 233: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Cyclic lattices and one-way functions

NTRU (1998): public key encryption, efficient, no proof

First provable construction, (M., FOCS 2002): one-wayfunction

Rq = Z[X ]/(q,X n − 1)key: a1(X ), . . . , am(X ) ∈ Rqinput: v1(X ), . . . , vm(X ) ∈ {0, 1}n ⊂ Rqoutput: w(X ) =

∑i ai (X ) · vi (X ) ∈ Rq

compression function: m = 2n log2(q)

One-way: given a1, . . . , am and w ,

easy to find v1, . . . , vm ∈ Rq such that∑

i aivi = w ∈ Rqhard to find v1, . . . , vm ∈ {0, 1}n

Intuition: Compact knapsack, circulant matrices

Page 234: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Compact knapsack, circulant matrices

Polynomials: a(X ) ∈ Z[X ]/(Xn − 1)

Equivalently: A ∈ Zn×n circulant matrix

a1 + a2 ≡ A1 + A2a1 · a2 ≡ A1 · A2

Compact knapsack

Page 235: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collision resistance?

Regular knapsack:

given random a1, . . . , am ∈ Zqm = 2 log2(q)collisions existcollisions are hard to find

Compact knapsack:

given random a1, . . . , am ∈ Zq[X ]/(X n − 1)m = 2n log2(q)collisions exist

QuestionAre collisions hard to find?

Page 236: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Collisions in compact knapsacks

Multiply each “circulant” matrix ai by the all-one vector

Find collision in Zq

Algebraic decription:

multiply each ai (X ) by u(X ) = (1 + X + X 2 + ....)Notice (X n − 1) = u(X ) · (X − 1)CRT: R ≡ (Z[X ]/(X − 1))× (Z[X ]/u(X ))Multiplication by u(X ) maps R to Z[X ]/(X − 1) ≡ Z

Page 237: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Anti-Cyclic lattices

A lattice is anticyclic if it is closed underrot(x1, ..., xn) = (−xn, x1, x2, ..., xn−1)

Equivalently: work in R = Z[X ]/(Xn + 1)

Questions:

1 Are compact knapsacks over R collision resistant?2 Does (X n + 1) have small degree factors?

TheoremXn + 1 is irreducible if and only if n is a power of 2

Page 238: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Anti-Cyclic lattices

A lattice is anticyclic if it is closed underrot(x1, ..., xn) = (−xn, x1, x2, ..., xn−1)

Equivalently: work in R = Z[X ]/(Xn + 1)

Questions:

1 Are compact knapsacks over R collision resistant?2 Does (X n + 1) have small degree factors?

TheoremXn + 1 is irreducible if and only if n is a power of 2

Page 239: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Roots of Unity

ωm = exp(2πı/m) ∈ C, primitive mth root of unity

Observation: Xm − 1 =∏m−1

k=0 (X − ωkm)

Xm − 1 =∏d |m

∏gcd(k,m)=d

(X − ωkm)

=∏d |m

∏k∈Z∗m/d

(X − ωkm/d )

DefinitionCyclotomic Polynomial: Φm(X ) =

∏k∈Z∗m (X − ωk

m) ∈ C[X ]

Question: does Φm have integer coefficients?

Page 240: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Division Theorem

(R,+, ∗, 0, 1): any ring

R[X ]: polynomials with coefficients in X

TheoremFor any a(X ) ∈ R[X ] and monic b(X ) ∈ R[X ], there existsunique q(X ), r(X ) ∈ R[X ] such that

a(X ) = q(X ) ∗ b(X ) + r(X )deg(r(X )) < deg(b(X ))

Page 241: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Division Algorithm

divRem :: Poly → Poly → PolydivRem a b =

if (deg a < deg b)then (0,a)else let aL = leadingTerm a

bL = leadingTerm bqL = aL / bLa' = a - b*qL(q',r) = divRem a' bq = qL + q'

in divRem (q, r)

Dividing by b(X ) requires divisions by the leadingcoefficient of bIf R is a field, we can divide by any non-zero b(X ):If b(X ) is monic, division is possible in any ring R

Page 242: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Polynomial Division: Example

QuestionDivide a(X ) = 5X 8 + 4X 6 − 5X 3 + 4 by b(X ) = X 3 − X + 7

Solution:

quotient: q(X ) = 5X 5 + 9X 3 − 35X 2 + 9X − 103remainder: r(X ) = 254X 2 − 166X + 725

Page 243: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Polynomial Division: Example

QuestionDivide a(X ) = 5X 8 + 4X 6 − 5X 3 + 4 by b(X ) = X 3 − X + 7

Solution:

quotient: q(X ) = 5X 5 + 9X 3 − 35X 2 + 9X − 103remainder: r(X ) = 254X 2 − 166X + 725

Page 244: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks about Division Algorithm

Division Algorithm:(a(X ), b(X ) ∈ R[X ]) 7→ (q(X ), r(X ) ∈ R[X ])

For any subring S ⊆ R, and a(X ), b(X ) ∈ S[X ]

Result of dividing a(X ) by b(X ) is in S[X ]Division as polynomials in R[X ] or as polynomials in S[X ]produces the same result

Page 245: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Polynomial GCD

F[X ]: polynomials with coefficients in a field F

The Greatest Common Divisor (gcd) of a(X ), b(X ) ∈ F[X ]is a polynomial g(X ) ∈ F[X ] such that

g(X ) divides a(X ) and b(X )any d(X ) ∈ F[X ] that divides both a(X ) and b(X ) alsodivides g(X )

TheoremFor any a(X ), b(X ) ∈ F[X ]

gcd(a(X ), b(X )) = u(X )a(X ) + v(X )b(X )

for some u(X ), v(X ) ∈ F[X ].

Page 246: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Euclid’s Algorithm

Input: a(X ), b(X ) ∈ F[X ]

Output: u(X ), v(X ) ∈ F[X ] such thatu(X )a(X ) + v(X )b(X ) = gcd(a(X ), b(X ))

Invariant: gcd(a(X ), b(X )) = gcd(b(X ), a(X ) mod b(X ))euclid :: (Poly ,Poly) → (Poly ,Poly)euclid (a,b) =

if (deg b ≡ 0)then (1,0)else let (q,r) = divRem b a

(u,v) = euclid (b,r)in (-q*v , u+v)

Base case: 1*a+0*b = a = gcd(a,b)

Indunction: (-qv)a+(u+v)b = ub + v(b-qa)= ub+vr

Page 247: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Remarks about Euclid Algorithm

euclid :: (Poly ,Poly) → (Poly ,Poly)euclid (a,b) =

if (deg b ≡ 0)then (1,0)else let (q,r) = divRem b a

(u,v) = euclid (b,r)in (-q*v , u+v)

Euclid Algorithm works over a field:

Even if b(X ) is monic, r(X ) = b(X ) mod a(X ) may not be

If a(X ), b(X ) ∈ R[X ] have coefficients in a domain R ⊆ F ,then we can compute gcd(a(X ), b(X )) ∈ F[X ]

Page 248: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Cyclotomic Polynomials

Xm − 1 =∏

d |m Φm(X )

Theorem

Φm(X ) ∈ Z[X ]

Proof:

For m = 1, Φ1(X ) = (X − 1)

For m > 1, b(X ) =∏

m>d |m Φd (X ) is in Z[X ] by induction

Compute (q(X ), r(X )) = divRem(Xm − 1, b(X )) in Z[X ]

r(X ) = 0 because b(X ) divides Xm − 1

Φm(X ) = q(X ) is in Z[X ]

Page 249: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Cyclotomic Polynomials

Xm − 1 =∏

d |m Φm(X )

Theorem

Φm(X ) ∈ Z[X ]

Proof:

For m = 1, Φ1(X ) = (X − 1)

For m > 1, b(X ) =∏

m>d |m Φd (X ) is in Z[X ] by induction

Compute (q(X ), r(X )) = divRem(Xm − 1, b(X )) in Z[X ]

r(X ) = 0 because b(X ) divides Xm − 1

Φm(X ) = q(X ) is in Z[X ]

Page 250: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Irreducibility of Cyclotomics

TheoremΦm(X ) ∈ Z[X ] is irreducible

TheoremCm ≡ Z[X ]/Φm(X ) = Z[ωm]

simple proof, helps intuition

Algebraic Number Fields

finite dimentional extensions of Qkey concepts: field extensions, vector spaces

Algebraic Number Rings

finite dimensional extensions of Z, i.e., latticeskey concepts: ring extensions, modules over a ring

Page 251: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Factoring primes in Cyclotomic rings

Φm(X ) ∈ Z[X ]: mth cyclotomic polynomialΦm(X ) is irreducible in Z[X ]Let p be a prime, and assume gcd(m, p) = 1Question: if Φm(X ) irreducible also in Zp[X ]?Answer: no, and this is very useful

QuestionQuestion: What’s the factorization of Φm(X ) modulo p?

Technically, this is the problem of factoring (the ideal generatedby) the prime p in the ring of polynomials modulo Φm(X )

“The obvious mathematical breakthrough would be de-velopment of an easy way to factor large prime numbers”(Bill Gates, The Road Ahead, p. 265)

Page 252: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Factoring primes in Cyclotomic rings

Φm(X ) ∈ Z[X ]: mth cyclotomic polynomialΦm(X ) is irreducible in Z[X ]Let p be a prime, and assume gcd(m, p) = 1Question: if Φm(X ) irreducible also in Zp[X ]?Answer: no, and this is very useful

QuestionQuestion: What’s the factorization of Φm(X ) modulo p?

Technically, this is the problem of factoring (the ideal generatedby) the prime p in the ring of polynomials modulo Φm(X )

“The obvious mathematical breakthrough would be de-velopment of an easy way to factor large prime numbers”(Bill Gates, The Road Ahead, p. 265)

Page 253: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Motivation

R = Z[X ]/Φm(X )

Rp = R/(pR) ≡ Z[X ]/〈Φm(X ), p〉Z[X ]

Equivalently, Rp ≡ Zp[X ]/Φm(X )

The structure of Rp is equivalently described by

the factorization of (pR) in R, orthe factorization of Φm in Zp[X ]

Page 254: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Section 11

ANT

Page 255: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Basic Algebra

Review of basic algebraic structures:

(Commutative) monoids and groupsRings and FieldsModules and Vector spaces

Some common examples:

Q ⊂ R ⊂ C: the fields of rational, real and complexnumbersZ,Zn: the rings of integers, and integers modulo nR[X ]: The ring of polynomials with coefficients in R

Page 256: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Monoids and Groups

A monoid (A, ∗, 1) is a set A with a binary operation(∗) : A× A→ A and unit element 1 ∈ A such that

(x ∗ y) ∗ z = x ∗ (y ∗ z) (associativity)1 ∗ x = x ∗ 1 = x (identity)

A monoid is commutative if

x ∗ y = y ∗ x (commutativity)

An element x is invertible if there is a y such thatx ∗ y = y ∗ x = 1

A group is a monoid such that all elements are invertible

Abelian group: commutative groups, additive notation(A,+, 0), additive inverse −x

Page 257: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Rings and Fields

A (commutative) Ring (R,+, ∗, 1, 0) is a set with twobinary operations such that

(R,+, 0) is an abelian group

(R, ∗, 1) is a (commutative) monoid

x ∗ (y + z) = x ∗ y + x ∗ z and (x + y) ∗ z = x ∗ z + y ∗ z(distributivity)

Subring S ⊆ R, subset of a ring closed under +, ∗, 0, 1

A commutative ring (F ,+, ∗, 1, 0) such that all nonzeroelements are invertible is called a Field

A subring of a field R ⊆ F is called an Integral Domain

Page 258: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Modules and Vector Spaces

Let (R,+, ∗, 0, 1) be a commutative ring

An R-module is an additive group (A,+, 0) with a scalarmultiplication operation (∗) : R × A→ A such that

r ∗ (s ∗ a) = (r ∗ s) ∗ a(r + s) ∗ a = r ∗ a + s ∗ ar ∗ (a + b) = r ∗ a + r ∗ b

If R is a field, then A is called a Vector Space

Linear independenceDimensionBasis

Page 259: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Submodules and Quotients

Let (A,+, 0) be an R-module

An R-submodule of is

a subgroup B ⊆ Aclosed under scalar multiplication: R ∗ B ⊆ B

Quotient group: A/B = {[a]B : a ∈ A}, [a]B = a + B

also an R-module with r ∗ [a]B = [r ∗ a]B

Special case:

R is an R-moduleR-submodules I ⊆ R are called idealsR/I is also a ring with [a] ∗ [b] = [a ∗ b]

Page 260: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Integral and Algebraic Numbers

Domain R ⊆ F : subring of a field F

α ∈ F is algebraic over R if m(α) = 0 for somem(X ) ∈ R[X ]

α ∈ F is integral over R if m(α) = 0 for some monicm(X ) ∈ R[X ]

Examples:

α =√2 is integral over Z because m(α) = 0 for

m(X ) = X 2 − 2α = 1/

√2 is algebraic over Z because m(α) = 0 for

m(X ) = 2X 2 − 1, but is it not integral

Page 261: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Minimal Polynomial

Field Extension F ⊆ E

Let α ∈ E be algebraic over F

Ring homomorphism: hα : F [X ]→ E , wherehα(p(X )) = p(α)

I = ker(hα): set of polynomials p such that p(α) = 0

I ⊆ F [X ] is a non-zero ideal

Minimal polynomial: smallest degree monic polynomialm(X ) ∈ I

I = F [X ] ·m(X ), i.e., p(α) = 0 iff m(X )|p(X )

Page 262: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Irreducibility

Let m(X ) be the minimal polynomial of α

m(X ) is irreducible:

If m(X ) = a(X ) · b(X ), then a(α) · b(α) = m(α) = 0,

either a(α) = 0 or b(α) = 0.

either a(X ) = c ·m(X ) or b(X ) = c ·m(X )

F [α] ≡ F [X ]/m(X ) are isomorphic

isomorphism: hα : F [X ]/m(X )→ F [α]

Page 263: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Algebraic Extensions

Algebraic α ∈ E ⊆ F

Minimal polynomial m(α) = 0 of degree n = deg(m(X ))

F [α] ≡ F n as an F -vector space with basisα0, α1, . . . , αn−1:

α0, α1, . . . , αn−1 are linearly independentα0, α1, . . . , αn−1 generate F [α]

Page 264: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Extension fields

TheoremF [α] = F (α) is a field

Proof:- Let p(α) ∈ F [α] for some p(X ) ∈ F [α], deg(p) < n- gcd(p(X ),m(X )) ∈ {1,m(X )} because m(X ) is

irreducible- If gcd = m(X ), then p(X ) = m(X ) and p(α) = 0- If gcd = 1, then u(X )p(X ) + v(X )m(X ) = 1- u(α) · p(α) = 1

Page 265: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Factoring primes in Cyclotomic rings

Φm(X ) ∈ Z[X ]: mth cyclotomic polynomialΦm(X ) is irreducible in Z[X ]Let p be a prime, and assume gcd(m, p) = 1Question: if Φm(X ) irreducible also in Zp[X ]?Answer: no, and this is very useful

QuestionQuestion: What’s the factorization of Φm(X ) modulo p?

Page 266: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Since gcd(m, p) = 1, we have p ∈ Z∗mLet d = o(p) be the order of p in Z∗mpd = 1 mod m, equivalently, m|(pd − 1)Let GF (pd ) be the finite field with pd elementsThe multiplicative group GF (pd )∗ is cyclic of order pd − 1There is an element ζ ∈ GF (pd ) of order mζd = 1 in GF (pd )o(ζk) = m for all k ∈ Z∗mΦm(X ) =

∏k∈Z∗m (X − ζk) splits in GF (pd )

Page 267: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

TheoremThe minimal polynomials of all ζk over Zp have degree d

Let l(X ) ∈ Zp[X ] be the minimal polynomial of ζ

Zp[ζ] ≡ Zp[X ]/l(X ) is a field

of size pdeg(l)

containing an element ζ of order m

m = o(ζ) divides pdeg(l) − 1 = |Zp[ζ]∗|

pdeg(l) = 1 mod m

by definition of d = o(p) and deg(l) = d

Page 268: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

When gcd(m, p) = 1 Φm(X ) ∈ Zp[X ] factors into a productof ϕ(m)/d distinct degree d = o(p mod m) polynomials

For arbitrary m, factorization of Φm(X ) modulo p isobtained using the following theorem.

TheoremFor any m′ = mpk with gcd(m, p) = 1,

Φm′(X ) = (Φm(X ))ϕ(pk) mod p

Page 269: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Proof

Frobenius map (x 7→ xp) : GF (pk)→ GF (pk) satisfies:

(x + y)p = xp + yp (from binomial expansion)ap = a for a ∈ Zp ⊆ GF (pk) (Lagrange)

Zp[X ] is a domain:

a(X )b(X ) = a(X )c(X ) cancels to b(X ) = c(X )

Page 270: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Using these two properties:

(Xmpk − 1) = (Xm − 1)pk =∏

d|m Φd (X )pk

(Xmpk − 1) =∏

d|m∏

i≤k Φdpi (X )So, by induction on m:∏

i≤kΦmpi (X ) = Φm(X )pk

Canceling equality for k − 1 from equality for k:

Φmpk (X ) = Φm(X )pk−pk−1= Φm(X )ϕ(pk )

Page 271: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Factoring modulo a prime power

Φm(X ) =∏

i Fi (X ) mod p with irredudible Fi (X ) ∈ Zp[X ]Lift each Fi (X ) mod p to a factor Gi (X ) mod pk

Φm(X ) =∏

i Gi (X ) mod pk with Fi (X ) = Gi (X ) mod pGi (X ) is irreducible, because any factorization mod pk

gives also a factorization mod p

Theorem(Lifting) Let a(X )b(X ) = c(X ) mod p withgcd(a(X ), b(X )) = 1. For every k, there are a′(X ) = a(X )mod p and b′(X ) = b(X ) mod p such that a′(X )b′(X ) = c(X )mod pk

Page 272: CSE208: Advanced Cryptographycseweb.ucsd.edu/classes/fa20/cse208-a/slides.pdf · 2020. 12. 10. · CSE208: Advanced Cryptography Daniele Micciancio Introduction DefiningFHE Bootstrapping

CSE208:Advanced

Cryptography

DanieleMicciancio

Introduction

Defining FHE

Bootstrapping

LWE

Linearity

Key Switching

Multiplication

FHE!!

Project Info

Ring LWE

ANT

Let u(X ), v(X ) such that a(X )u(X ) + b(X )v(X ) = 1mod pAssume a(X )b(X ) = c(X ) + pkd(X ) by inductionLet a′(X ) = a(X )− pkv(X )d(X ) andb′(X ) = b(X )− pku(X )d(X )a′(X )b′(X )mod pk+1 = a(X )b(X )−pk(a(X )u(X )+b(X )v(X ))d(X ) =a(X )b(X )− pkd(X ) = c(X )