Transcript

Fully Homomorphic Encryption

Zvika Brakerski

Weizmann Institute of Science

ASCrypto, October 2013

Outsourcing Computation

Email, web-search, navigation, social networking…

π‘₯ 𝑓

𝑓(π‘₯)

π‘₯

What if π‘₯ is private?

Search query, location, business information, medical information…

The Situation Today

We promise we wont look at your data. Honest!

We want real protection.

Outsourcing Computation – Privately

WANTED

Homomorphic Evaluation function:

πΈπ‘£π‘Žπ‘™: 𝑓, 𝐸𝑛𝑐 π‘₯ β†’ 𝐸𝑛𝑐(𝑓 π‘₯ )

π‘₯ 𝑓

𝑦

𝐸𝑛𝑐(π‘₯)

𝐷𝑒𝑐 𝑦 = 𝑓(π‘₯)

Learns nothing on π‘₯.

Fully Homomorphic Encryption (FHE)

π‘₯ 𝑓

𝑦 = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑓, 𝐸𝑛𝑐 π‘₯ )

𝐸𝑛𝑐(π‘₯)

π·π‘’π‘π‘ π‘˜ 𝑦 = 𝑓(π‘₯)

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

Correctness:

𝐸𝑛𝑐(π‘₯) β‰… 𝐸𝑛𝑐(0) Input privacy:

𝑦

𝐷𝑒𝑐 𝑦 = 𝑓(π‘₯)

β€’ NAND. β€’ (+,Γ—) over β„€2 (= binary 𝑋𝑂𝑅, 𝐴𝑁𝐷 )

πΈπ‘›π‘π‘π‘˜(π‘₯)

Fully Homomorphic = Correctness for any efficient 𝑓

= Correctness for universal set

Trivial FHE?

PKE β‡’ β€œFHE”:

- 𝐾𝑒𝑦𝑔𝑒𝑛 and 𝐸𝑛𝑐: Same as PKE.

- πΈπ‘£π‘Žπ‘™πΉπ»πΈ 𝑓, 𝑐 β‰œ (𝑓, 𝑐)

- π·π‘’π‘π‘ π‘˜πΉπ»πΈ (𝑓, 𝑐) β‰œ 𝑓(π·π‘’π‘π‘ π‘˜(𝑐))

NOT what we were looking for…

All work is relayed to receiver.

Compact FHE: 𝐷𝑒𝑐 time does not depend on ciphertext.

β‡’ ciphertext length is globally bounded.

In this talk (and in literature) FHE β‰œ Compact-FHE

𝐸𝑛𝑐 (π‘₯)

= 𝑓 π·π‘’π‘π‘ π‘˜ 𝐸𝑛𝑐 π‘₯ = 𝑓(π‘₯)

Trivial FHE?

PKE β‡’ β€œFHE”:

- 𝐾𝑒𝑦𝑔𝑒𝑛 and 𝐸𝑛𝑐: Same as PKE.

- πΈπ‘£π‘Žπ‘™πΉπ»πΈ 𝑓, 𝑐 β‰œ (𝑓, 𝑐)

- π·π‘’π‘π‘ π‘˜πΉπ»πΈ (𝑓, 𝑐) β‰œ 𝑓(π·π‘’π‘π‘ π‘˜(𝑐))

This β€œscheme” also completely reveals 𝑓 to the receiver.

Can be a problem.

Circuit Privacy: Receiver learns nothing about 𝑓 (except output).

In this talk: Only care about compactness, no more circuit privacy.

Circuit private FHE is not trivial to achieve – even non-compact.

Compactness β‡’ Circuit Privacy (by complicated reduction) [GHV10]

Applications

In the cloud:

β€’ Private outsourcing of computation.

β€’ Near-optimal private outsourcing of storage (single-server PIR). [G09,BV11b]

β€’ Verifiable outsourcing (delegation). [GGP11,CKV11]

β€’ Private machine learning in the cloud. [GLN12,HW13]

Secure multiparty computation:

β€’ Low-communication multiparty computation. [AJLTVW12,LTV12]

β€’ More efficient MPC. [BDOZ11,DPSZ12,DKLPSS12]

Primitives:

β€’ Succinct argument systems. [GLR11,DFH11,BCCT11,BC12,BCCT12,BCGT13,…]

β€’ General functional encryption. [GKPVZ12]

β€’ Indistinguishability obfuscation for all circuits. [GGHRSW13]

Verifiable Outsourcing (Delegation)

Can send wrong value of 𝑓(π‘₯) .

π‘₯ 𝑓

𝑓(π‘₯)

π‘₯

What if the server is cheating?

Need proof!

, πœ‹

FHE β‡’ Verifiable Outsourcing

FHE β‡’ Verifiability and Privacy.

Pre-FHE solutions: multiple rounds [K92] or random oracles [M94].

1. Verifiability with preprocessing under β€œstandard” assumptions: [GGP10, CKV10].

2. Less standard assumptions but without preprocessing via

SNARGs/SNARKs [DCL08,BCCT11,…] (uses FHE or PIR).

FHE β‡’ Verifiable Outsourcing [CKV10]

π‘₯ 𝑓

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

𝑐π‘₯ = 𝐸𝑛𝑐 π‘₯ , 𝑐0

𝑦π‘₯ , 𝑦0

Check 𝑦0 = 𝑧0?

Yes β‡’ output 𝐷𝑒𝑐(𝑦π‘₯) No β‡’ output βŠ₯

Preprocessing:

𝑐0 = 𝐸𝑛𝑐(0) 𝑧0 = πΈπ‘£π‘Žπ‘™(𝑓, 𝑐0)

Verification:

Idea: β€œCut and choose”

𝑐π‘₯, 𝑐0 look the same β‡’ cheating server will be caught w.p. Β½ (easily amplifiable)

But preprocessing is as hard as computation!

Server executes 𝑦 = πΈπ‘£π‘Žπ‘™(𝑓, 𝑐)

FHE β‡’ Verifiable Outsourcing [CKV10]

π‘₯ 𝑓

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

(π‘’π‘£π‘˜β€²β€², 𝐸𝑛𝑐′′ 𝑐π‘₯ ), (π‘’π‘£π‘˜β€², 𝐸𝑛𝑐′ 𝑐0 )

𝑦′′π‘₯, 𝑦′0

Check 𝐷𝑒𝑐′(𝑦′0) = 𝑧0?

Yes β‡’ output 𝐷𝑒𝑐′′(𝐷𝑒𝑐 𝑦π‘₯ ) No β‡’ output βŠ₯

Preprocessing:

𝑐0 = 𝐸𝑛𝑐(0) 𝑧0 = πΈπ‘£π‘Žπ‘™(𝑓, 𝑐0)

Verification:

Idea: Outer layer keeps server β€œoblivious” of 𝑧0.

β‡’ Can recycle 𝑧0 for future computations.

Server executes 𝑦′ = πΈπ‘£π‘Žπ‘™β€²(πΈπ‘£π‘Žπ‘™ 𝑓,β‹… , 𝑐′) 𝑦′′ = πΈπ‘£π‘Žπ‘™β€²β€²(πΈπ‘£π‘Žπ‘™ 𝑓,β‹… , 𝑐′′)

Server is not allowed to know if we accept/reject!

FHE Timeline

30 years of hardly scratching the surface:

β€’ Only-addition [RSA78, R79, GM82,

G84, P99, R05]. β€’ Addition + 1 multiplication

[BGN05, GHV10]. β€’ Other variants [SYY99, IP07,

MGH10].

… is it even possible?

Basic scheme: Ideal cosets in polynomial rings.

β‡’ Bounded-depth homomorphism.

- Assumption: hardness of (quantum) apx. short vector in ideal lattice.

Bootstrapping: bounded-depth HE β‡’ full HE.

But bootstrapping doesn’t apply to basic scheme...

- Need additional assumption: hardness of sparse subset-sum.

The FHE Challenge

Make it more secure.

Make it simpler.

Make it practical. Optimizations [SV10,SS10,GH10]

Simplified basic scheme [vDGHV10,BV11a] - Under similar assumptions.

?

FHE without Ideals [BV11b]

Linear algebra instead of polynomial rings

Assumption: Apx. short vector in arbitrary lattices (via LWE).

Fundamental algorithmic problem –

extensively studied.

[LLL82,K86,A97,M98,AKS03,MR04,MV10]

Shortest-vector Problem (SVP):

FHE without Ideals [BV11b]

β€’ Simpler: straightforward presentation.

β€’ More secure: based on a standard assumption.

β€’ Efficiency improvements.

Linear algebra instead of polynomial rings

Assumption: Apx. short vector in arbitrary lattices (via LWE).

β€’ Basic scheme: noisy linear equations over β„€π‘ž.

– Ciphertext is a linear function 𝑐(π‘₯) s.t. 𝑐 π‘ π‘˜ β‰ˆ π‘š .

– Add/multiply functions for homomorphism.

– Multiplication raises degree β‡’ use relinearization.

β€’ Bootstrapping: Use dimension-modulus reduction to shrink ciphertexts.

Concurrently [GH11]: Ideal lattice based scheme without squashing.

FHE without Ideals Follow-ups:

β€’ [BGV12]: Improved parameters.

– Even better security.

– Improved efficiency in ring setting using β€œbatching”.

– Batching without ideals in [BGH13].

β€’ [B12]: Improved security.

– Security based on classical lattice assumptions.

– Explained in blog post [BB12].

Various optimizations, applications and implementations:

[LNV11, GHS12a, GHS12b, GHS12c, GHPS12, AJLTVW12, LTV12,

DSPZ12, FV12, GLN12, BGHWW12,HW13 …]

The β€œApproximate Eigenvector” Method [GSW13]

β€’ Basic scheme: Approximate eigenvector over β„€π‘ž.

– Ciphertext is a matrix 𝐢 s.t. 𝐢 β‹… π‘ π‘˜ β‰ˆ π‘š β‹… π‘ π‘˜ .

– Add/multiply matrices for homomorphism*.

β€’ Bootstrapping: Same as previous schemes.

Ciphertexts = Matrix

Same assumption and keys as before – ciphertexts are different

β€’ Simpler: straightforward presentation.

β€’ New and exciting applications β€œfor free”! IB-FHE, AB-FHE.

β€’ Same security as [BGV12, B12].

β€’ Unclear about efficiency: some advantages, some drawbacks.

Sequentialization [BV13] What is the best way to evaluate a product of π‘˜ numbers?

X

X

X

X

vs. X

X

Parallel Sequential

c1 c2 c3 c4

c1

c2

c3 c4

Conventional wisdom Actually better (if done right)

Sequentialization [BV13]

Barrington’s Theorem [B86]: Every depth 𝑑 computation can be transformed into a width-5 depth 4𝑑 branching program.

A sequential model of computation

β€’ Better security – breaks barrier of [BGV12, B12,GSW13].

β€’ Using dimension-modulus reduction (from [BV11b]) β‡’ same hardness assumption as non homomorphic encryption.

β€’ Short ciphertexts.

Efficiency

Standard benchmark: AES128 circuit

Implementations of [BGV12] by [GHS12c,CCKLLTY13] β‰ˆ5 min/input

Limiting factors:

β€’ Circuit representation.

β€’ Bootstrapping.

β€’ Key size.

β‡’ To be practical, we need to improve the theory.

2-years ago it was 3 min/gate [GH10]

New works [GSW13,BV13] address some of these issues, but have other drawbacks

See also HElib

https://github.com/shaih/HElib

Hybrid FHE

β€’ In known FHE encryption is slow and ciphertexts are long.

β€’ In symmetric encryption (e.g. AES) these are better.

π‘₯ 𝑓

𝑦 = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑓, 𝐸𝑛𝑐 π‘₯ )

πΈπ‘›π‘π‘π‘˜(π‘₯)

π·π‘’π‘π‘ π‘˜ 𝑦 = 𝑓(π‘₯)

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

Best of both worlds?

Hybrid FHE

π‘₯ 𝑓

π·π‘’π‘π‘ π‘˜ 𝑦 = 𝑓(π‘₯)

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

π‘ π‘¦π‘š

c=πΈπ‘›π‘π‘ π‘¦π‘š(π‘₯)

πΈπ‘›π‘π‘π‘˜(π‘ π‘¦π‘š)

Easy to encrypt, ciphertext is short… But how to do Eval?

Define: 𝑕 𝑧 = π‘†π‘Œπ‘€_𝐷𝑒𝑐𝑧(𝑐)

Server Computes: 𝑦′ = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑕, πΈπ‘›π‘π‘π‘˜(π‘ π‘¦π‘š))

β‡’ 𝑦′ = 𝐸𝑛𝑐 𝑕 π‘ π‘¦π‘š = 𝐸𝑛𝑐 π‘†π‘Œπ‘€_π·π‘’π‘π‘ π‘¦π‘š 𝑐 = πΈπ‘›π‘π‘π‘˜(π‘₯)

𝑦 = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑓, 𝑦′)

Approximate Eigenvector Method [GSW13]

Observation: Let 𝐢1, 𝐢2 be matrices with the same eigenvector 𝑠 , and let π‘š1,π‘š2 be their respective eigenvalues w.r.t 𝑠 . Then:

1. 𝐢1 + 𝐢2 has eigenvalue (π‘š1+π‘š2) w.r.t 𝑠 . 2. 𝐢1 β‹… 𝐢2 (and also 𝐢2 β‹… 𝐢1) has eigenvalue π‘š1π‘š2 w.r.t 𝑠 .

Idea: 𝑠 = secret key, 𝐢 = ciphertext, and π‘š = message.

Insecure! Eigenvectors are easy to find.

What about approximate eigenvectors?

β‡’ Homomorphism for addition and multiplication.

β‡’ Full homomorphism!

Say over β„€π‘ž

Approximate Eigenvector Method [GSW13]

𝐢 β‹… 𝑠 = π‘šπ‘  + 𝑒 β‰ˆ π‘šπ‘ 

How to decrypt? Must have restriction on 𝑒

Suppose 𝑠 [1] = π‘ž/2 , and π‘š ∈ *0,1+

β‡’ (𝐢 β‹… 𝑠 )[1] =π‘ž

2π‘š + 𝑒 [1] Find π‘š by rounding

Condition for correct decryption: 𝑒 < π‘ž/4 .

Approximate Eigenvector Method [GSW13]

𝐢1 β‹… 𝑠 = π‘š1𝑠 + 𝑒 1

𝑒 1 β‰ͺ π‘ž

𝐢2 β‹… 𝑠 = π‘š2𝑠 + 𝑒 2

𝑒 2 β‰ͺ π‘ž

πΆπ‘Žπ‘‘π‘‘ = 𝐢1 + 𝐢2:

(𝐢1+𝐢2) β‹… 𝑠 = 𝐢1𝑠 + 𝐢2𝑠

= π‘š1𝑠 + 𝑒 1 + π‘š2𝑠 + 𝑒 2

= (π‘š1+π‘š2)𝑠 + (𝑒 1+𝑒 2)

𝑒 π‘Žπ‘‘π‘‘

Goal: 𝐢1, 𝐢2 β‡’ πΆπ‘Žπ‘‘π‘‘ = 𝐸𝑛𝑐(π‘š1 + π‘š2) , πΆπ‘šπ‘’π‘™π‘‘ = 𝐸𝑛𝑐(π‘š1π‘š2).

Noise grows a little

Approximate Eigenvector Method [GSW13]

𝐢1 β‹… 𝑠 = π‘š1𝑠 + 𝑒 1

𝑒 1 β‰ͺ π‘ž

𝐢2 β‹… 𝑠 = π‘š2𝑠 + 𝑒 2

𝑒 2 β‰ͺ π‘ž

πΆπ‘šπ‘’π‘™π‘‘ = 𝐢1 β‹… 𝐢2:

(𝐢1β‹… 𝐢2) β‹… 𝑠 = 𝐢1 π‘š2𝑠 + 𝑒 2

= π‘š2𝐢1𝑠 + 𝐢1𝑒 2

= π‘š2 π‘š1𝑠 + 𝑒 1 + 𝐢1𝑒 2

𝑒 π‘šπ‘’π‘™π‘‘

Noise grows. But by how much?

Can also use 𝐢2 β‹… 𝐢1

= π‘š2π‘š1𝑠 + π‘š2𝑒 1 + 𝐢1𝑒 2

Goal: 𝐢1, 𝐢2 β‡’ πΆπ‘Žπ‘‘π‘‘ = 𝐸𝑛𝑐(π‘š1 + π‘š2) , πΆπ‘šπ‘’π‘™π‘‘ = 𝐸𝑛𝑐(π‘š1π‘š2).

Plan for Technical Part

1. Constructing approximate eigenvector scheme.

2. Sequentialization.

3. Bootstrapping.

4. Open problems and limits on FHE.

Learning with Errors (LWE) [R05] Random noisy linear equations β‰ˆ uniform

𝐴

𝑠

𝑏

=

πœ‚

+

uniform matrix ∈ β„€π‘žπ‘€Γ—π‘›

secret vector ∈ β„€π‘žπ‘›

small noise ∈ β„€π‘žπ‘š

πœ‚π‘– ≀ π›Όπ‘ž

β„€π‘žπ‘€

𝐴

𝑏

stat. far from uniform!

β‰ˆ π‘ˆ LWE

assumption

As hard as 𝑛/𝛼 -apx. short vector in worst case 𝑛-dim. lattices [R05, P09]

Encryption Scheme from LWE [R05,ACPS09]

βˆ’π΄

𝑏

π‘Ÿ

𝑐 𝑔 =

𝐴

𝑠

𝑏

=

πœ‚

+

public key

+ 𝑔

0,1 𝑀 uniform

𝑠 𝑐 𝑔

1

secret key

= π‘Ÿ β‹… πœ‚ + 𝑔 β‹… 𝑠

β€œencryption” of π’ˆ β‹… 𝒔 (without knowing 𝑠 ) [ACPS09]

small β€œnoise”

Looks jointly uniform

Encryption Scheme from LWE [R05,ACPS09]

βˆ’π΄

𝑏

𝑅

𝐢𝐺

=

𝐴

𝑠

𝑏

=

πœ‚

+

+

𝐺

0,1 π‘˜Γ—π‘€ uniform

𝑠 1

= π‘…πœ‚ + 𝐺𝑠 𝐢𝐺

= 𝑒 small β€œnoise”

β„€π‘žπ‘˜Γ—(𝑛+1)

Approx. Eigenvector Encryption Goal: Encrypt message π‘š ∈ *0,1+

Idea: 𝐸𝑛𝑐 π‘š = πΆπ‘šβ‹…πΌ

β‡’ πΆπ‘šβ‹…πΌ β‹… 𝑠 = 𝑒 + π‘šπΌπ‘  = π‘š β‹… 𝑠 + 𝑒 As we saw:

𝐢1 β‹… 𝐢2 β‹… 𝑠 = 𝐢1 β‹… 𝑒 2 + π‘š2𝑠

= 𝐢1 β‹… 𝑒 2 + π‘š2 β‹… 𝐢1 β‹… 𝑠

= 𝐢1 β‹… 𝑒 2 + π‘š2𝑒 1 + π‘š1π‘š2𝑠 desired output

small noise

HUGE noise

Need to reduce the norm of 𝐢1

Solution: binary decomposition

Binary Decomposition

Break each entry in 𝐢 to its binary representation

𝐢 =3 51 4

(π‘šπ‘œπ‘‘ 8) 𝑏𝑖𝑑𝑠 𝐢 =0 1 1 1 0 10 0 1 1 0 0

(π‘šπ‘œπ‘‘ 8) β‡’ Small entries like we wanted!

But product with 𝑠 now meaningless

Consider the β€œreverse” operation:

𝑏𝑖𝑑𝑠 𝐢 β‹…

4 02 01000

0421

= 𝐢

𝐺

β‡’ 𝐢 β‹… 𝑠 = 𝑏𝑖𝑑𝑠(𝐢) β‹… 𝐺 β‹… 𝑠 = 𝑏𝑖𝑑𝑠(𝐢) β‹… 𝑠 βˆ—

𝑠 βˆ— = 𝐺 β‹… 𝑠

β€œpowers of 2” vector

Contains π‘ž/2 as an element

Approx. Eigenvector Encryption

𝐸𝑛𝑐 π‘š = πΆπ‘šβ‹…πΊ ∈ β„€π‘ž( 𝑛+1 log π‘ž)Γ—(𝑛+1)

β‡’ πΆπ‘šβ‹…πΊ β‹… 𝑠 = 𝑒 + π‘š β‹… 𝐺 β‹… 𝑠

𝑏𝑖𝑑𝑠(𝐢1) β‹… 𝐢2 β‹… 𝑠 = 𝑏𝑖𝑑𝑠(𝐢1) β‹… 𝑒 2 + π‘š2𝐺𝑠

= 𝑏𝑖𝑑𝑠 (𝐢1) β‹… 𝑒 2 + π‘š2 β‹… 𝑏𝑖𝑑𝑠(𝐢1) β‹… 𝐺 β‹… 𝑠

= 𝑏𝑖𝑑𝑠 (𝐢1) β‹… 𝑒 2 + π‘š2 β‹… 𝐢1 β‹… 𝑠

= 𝑏𝑖𝑑𝑠 (𝐢1) β‹… 𝑒 2 + π‘š2 β‹… 𝑒 1 + π‘š1 β‹… π‘š2 β‹… 𝐺 β‹… 𝑠 desired output small small-ish

𝑒 π‘šπ‘’π‘™π‘‘ ≀ 𝑁 β‹… 𝑒 2 + π‘š2 β‹… 𝑒 1 ≀ 𝑁 + 1 β‹… max* 𝑒 1 , 𝑒 2 +

𝑁

πΆπ‘šπ‘’π‘™π‘‘ = 𝑏𝑖𝑑𝑠 𝐢1 β‹… 𝐢2

𝑏𝑖𝑑𝑠(𝐢1) β‹… 𝐢2 β‹… 𝑠

πΆπ‘›π‘Žπ‘›π‘‘ = 𝐺 βˆ’ 𝑏𝑖𝑑𝑠 𝐢1 β‹… 𝐢2

𝑒 π‘›π‘Žπ‘›π‘‘ ≀ 𝑁 β‹… 𝑒 2 + π‘š2 β‹… 𝑒 1 ≀ 𝑁 + 1 β‹… max* 𝑒 1 , 𝑒 2 +

. =

Homomorphic Circuit Evaluation

𝑒 π‘œπ‘’π‘‘π‘π‘’π‘‘ ≀ 𝑁 + 1 𝑑 β‹… π‘€π›Όπ‘ž β‰ˆ π‘π‘‘π›Όπ‘ž

𝑒 𝑖𝑛𝑝𝑒𝑑 ≀ π‘€π›Όπ‘ž 𝑒 𝑖𝑛𝑝𝑒𝑑

𝑒 π‘œπ‘’π‘‘π‘π‘’π‘‘

Noise grows during homomorphic evaluation

Depth 𝑑

𝑒 𝑖+1 ≀ (𝑁 + 1) 𝑒 𝑖

…

β‡’ Decryption succeeds if 𝛼 β‰ͺ 1/𝑁𝑑.

Full Homomorphism

𝛼 ≀ π‘βˆ’π‘‘

π‘‘β„Žπ‘œπ‘š β‰ˆ log 1/𝛼

1. If depth upper-bound is known ahead of time.

2. Single scheme for any poly depth.

Set 𝑁 β‰₯ 𝑑2 ; 𝛼 = 2βˆ’ 𝑁 β‡’ log 1/𝛼 = 𝑑

Undesirable:

β€’ Huge parameters. β€’ Low security. β€’ Inflexible.

Leveled FHE: Parameters (π‘’π‘£π‘˜) grow with 𝑑.

Bootstrap!

The Bootstrapping Theorem

Homomorphic β‡’ fully homomorphic

when 𝑑𝑑𝑒𝑐 < π‘‘β„Žπ‘œπ‘š

β€’ 𝑑𝑑𝑒𝑐 = depth of the decryption circuit. β€’ π‘‘β„Žπ‘œπ‘š = maximal homomorphic depth.

In our scheme: 𝑑𝑑𝑒𝑐 = log𝑁 β‡’ FHE if 𝛼 < π‘βˆ’ log 𝑁

Quasi-polynomial approximation for short vector problems (same factor as [BGV12,B12])

Non-homomorphic schemes only need 𝑁𝑂 1 approximation

(Proof to come)

Additional condition, to be discussed.

A Taste of Sequentialization [BV13] 𝑒 π‘šπ‘’π‘™π‘‘ = 𝑏𝑖𝑑𝑠 (𝐢1) β‹… 𝑒 2 + π‘š2 β‹… 𝑒 1

Asymmetric!

Important observations:

1. 𝑒 1 gets multiplied by 0/1 ; 𝑒 2 can get multiplied by 𝑁.

2. π‘š2 = 0 β‡’ 𝑒 1 has no effect!

Conclusion: The order of multiplication matters.

Want to multiply 𝐢𝐴, 𝐢𝐡 s.t. 𝑒 𝐴 ≫ 𝑒 𝐡 .

Which is better: 𝑏𝑖𝑑𝑠 𝐢𝐴 β‹… 𝐢𝐡 or 𝑏𝑖𝑑𝑠 𝐢𝐡 β‹… 𝐢𝐴 ?

A Taste of Sequentialization [BV13] 𝑒 π‘šπ‘’π‘™π‘‘ = 𝑏𝑖𝑑𝑠 (𝐢1) β‹… 𝑒 2 + π‘š2 β‹… 𝑒 1

Task: Multiply 4 ciphertexts 𝐢1, … , 𝐢4

Multiplication Tree

X

X

X

c1 c2 c3 c4

𝑒 = 𝐸0

𝑒 = 𝐸0(𝑁 + 1)

𝑒 = 𝐸0 𝑁 + 1 2

X

X

X

c1

c2

c3 c4

𝑒 = 𝐸0

𝐸0(𝑁 + 1) 𝐸0

𝐸0 𝐸0(2𝑁 + 1)

𝐸0(3𝑁 + 1)

Sequential Multiplier

Winner!

Bootstrapping

Homomorphic β‡’ fully homomorphic when

𝑑𝑑𝑒𝑐 < π‘‘β„Žπ‘œπ‘š

β€’ 𝑑𝑑𝑒𝑐 = depth of the decryption circuit. β€’ π‘‘β„Žπ‘œπ‘š = maximal homomorphic depth.

Bootstrapping

Given scheme with bounded π‘‘β„Žπ‘œπ‘š How to extend its homomorphic capability?

Idea: Do a few operations, then β€œswitch” to a new instance

(π‘π‘˜2, π‘ π‘˜2)

(π‘π‘˜3, π‘ π‘˜3)

(π‘π‘˜1, π‘ π‘˜1)

Switch keys

β€œcost” in homomorphism

How to Switch Keys

We have seen this before!

Hybrid FHE

Hybrid FHE

π‘₯ 𝑓

π·π‘’π‘π‘ π‘˜ 𝑦 = 𝑓(π‘₯)

π‘ π‘˜ , π‘π‘˜ π‘’π‘£π‘˜

π‘ π‘¦π‘š

c=πΈπ‘›π‘π‘ π‘¦π‘š(π‘₯)

πΈπ‘›π‘π‘π‘˜(π‘ π‘¦π‘š)

Define: 𝑕 𝑧 = π‘†π‘Œπ‘€_𝐷𝑒𝑐𝑧(𝑐)

Server Computes: 𝑦′ = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑕, πΈπ‘›π‘π‘π‘˜(π‘ π‘¦π‘š))

β‡’ 𝑦′ = 𝐸𝑛𝑐 𝑕 π‘ π‘¦π‘š = 𝐸𝑛𝑐 π‘†π‘Œπ‘€_π·π‘’π‘π‘ π‘¦π‘š 𝑐 = πΈπ‘›π‘π‘π‘˜(π‘₯)

𝑦 = πΈπ‘£π‘Žπ‘™π‘’π‘£π‘˜(𝑓, 𝑦′)

How to Switch Keys

π·π‘’π‘π‘ π‘˜(β‹…) 𝐷𝑒𝑐 β‹… (𝑐)

𝑐 π‘ π‘˜

π‘š π‘š Decryption circuit: Dual view:

≑ 𝑕𝑐 β‹…

𝑕𝑐 π‘ π‘˜ = π·π‘’π‘π‘ π‘˜ 𝑐 = π‘š

Key switching procedure π‘ π‘˜1, π‘π‘˜1 β†’ π‘ π‘˜2, π‘π‘˜2 :

Input: 𝑐 = πΈπ‘›π‘π‘π‘˜1(π‘š)

Server aux info: π‘Žπ‘’π‘₯ = πΈπ‘›π‘π‘π‘˜2(π‘ π‘˜1) (ahead of time)

Output: πΈπ‘£π‘Žπ‘™π‘π‘˜2(𝑕𝑐 , π‘Žπ‘’π‘₯)

πΈπ‘£π‘Žπ‘™π‘π‘˜2𝑕𝑐 , π‘Žπ‘’π‘₯ = πΈπ‘£π‘Žπ‘™π‘π‘˜2

𝑕𝑐 , πΈπ‘›π‘π‘π‘˜2π‘ π‘˜1

= πΈπ‘›π‘π‘π‘˜2𝑕𝑐 π‘ π‘˜1 = πΈπ‘›π‘π‘π‘˜2

π·π‘’π‘π‘ π‘˜1𝑐

= πΈπ‘›π‘π‘π‘˜2(π‘š)

Eval depth = 𝑑𝑑𝑒𝑐

Bootstrapping

Given scheme with bounded π‘‘β„Žπ‘œπ‘š. How to extend its homomorphic capability?

Idea: Do a few operations, then β€œswitch” to a new instance

(π‘π‘˜2, π‘ π‘˜2)

(π‘π‘˜3, π‘ π‘˜3)

(π‘π‘˜1, π‘ π‘˜1)

Switch keys

β€œcost” of 𝑑𝑑𝑒𝑐 hom. operations

Conclusion: Bootstrapping if π‘‘β„Žπ‘œπ‘š β‰₯ 𝑑𝑑𝑒𝑐 + 1

Need to generate many keys…

Bootstrapping

Given scheme with bounded π‘‘β„Žπ‘œπ‘š. How to extend its homomorphic capability?

Idea: Do a few operations, then β€œswitch” to a new instance

(π‘π‘˜ , π‘ π‘˜ )

(π‘π‘˜ , π‘ π‘˜ )

(π‘π‘˜ , π‘ π‘˜ )

Switch from the key to itself!

Key switching works

Server aux info: π‘Žπ‘’π‘₯ = πΈπ‘›π‘π‘π‘˜ (π‘ π‘˜ )

Circular Security

Intuitively: Yes, encryption hides the message.

Formally: Security does not extend.

What can we do about it?

Option 1: Assume it’s secure – no attack is known.

Option 2: Use a sequence of keys.

β‡’ No. of keys proportional to computation depth (leveled FHE).

Is it secure to publish π‘Žπ‘’π‘₯ = πΈπ‘›π‘π‘π‘˜(π‘ π‘˜)

[BV11a]: Circular secure β€œsomewhat” homomorphic scheme.

Short keys without circular assumption ?

Diversity

β€’ Other (older) schemes with similar properties [AD97, GGH97, R03, R05, …] β‡’ homomorphism

But all are lattice based

β€’ [BL11] FHE from a noisy decoding problem.

[B13]: Homomorphicly β€œclean up” the noise β‡’ break security.

β‡’ β€œToo much” homomorphism is a bad sign.

What We Saw Today

β€’ Definition of FHE.

β€’ Applications.

β€’ Historical perspective and background.

β€’ Constructing HE using the approximate eigenvector

method.

β€’ Sequentialization.

β€’ Bootstrapping.

β€’ Limits on HE.

Open Problems

β€’ Short keys without circular security.

β€’ FHE from different assumptions.

β€’ CCA1 secure FHE.

β€’ Bounded malleability.

β€’ Improved efficiency.

Thank You


Recommended