Fully Homomorphic Encryption without Modulus Switching from - - PowerPoint PPT Presentation

β–Ά
fully homomorphic encryption without modulus switching
SMART_READER_LITE
LIVE PREVIEW

Fully Homomorphic Encryption without Modulus Switching from - - PowerPoint PPT Presentation

Fully Homomorphic Encryption without Modulus Switching from Classical GapSVP Zvika Brakerski Stanford University CRYPTO 2012 Outsourcing Computation () Email, web- search, navigation, social networking Search query,


slide-1
SLIDE 1

Fully Homomorphic Encryption without Modulus Switching from Classical GapSVP

Zvika Brakerski

Stanford University

CRYPTO 2012

slide-2
SLIDE 2

Outsourcing Computation

Email, web-search, navigation, social networking…

𝑦 𝑔 𝑔(𝑦) 𝑦

What if 𝑦 is private?

Search query, location, business information, medical information…

slide-3
SLIDE 3

Outsourcing Computation – Privately

Homomorphic Encryption 𝑔, πΉπ‘œπ‘‘ 𝑦1 , … , πΉπ‘œπ‘‘ π‘¦π‘œ β†’ πΉπ‘œπ‘‘(𝑔 𝑦1, … , π‘¦π‘œ )

We assume w.l.o.g 𝑔 ∈ *+,Γ—+ (over β„€2). 𝑦 𝑔 𝑧 πΉπ‘œπ‘‘(𝑦) 𝐸𝑓𝑑 𝑧 = 𝑔(𝑦)

Learns nothing on 𝑦.

slide-4
SLIDE 4

The Old Days of FHE

  • Gentry’s breakthrough [G09,G10] – first

candidate.

  • [vDGHV10, BV11a]: Similar outline, different

assumptions.

  • [GH11]: Chimeric-FHE.
  • Efficiency attempts [SV10,SS10,GH10,LNV11].

2009-2011

slide-5
SLIDE 5

2nd Generation FHE

  • [BV11b]: LWE-based FHE (= apx. short vector in lattice).

– Better assumption. – Clean presentation: no ideals, no β€œsquashing”. – Efficiency improvement.

  • [BGV12]: Improved performance via Modulus Switching.

– Quantitatively better assumption. – β€œLeveled” homomorphism without bootstrapping. – Efficiency improvements using ideals (β€œbatching”).

[GHS11,GHS12a, GHS12b]: Efficiency improvements

and optimizations using ideals.

slide-6
SLIDE 6

This work:

Modulus switching is a red herring

β€œScale-independent encryption”

β‡’ better performance with less headache

slide-7
SLIDE 7

FHE 101 [BV11b]

Secret key: 𝑑 ∈ β„€π‘Ÿ

π‘œ

Ciphertext: 𝑑 ∈ β„€π‘Ÿ

π‘œ

Encryption algorithm: Doesn’t matter. Decryption algorithm: 𝑑

β‹… 𝑑 𝑛𝑝𝑒 π‘Ÿ (𝑛𝑝𝑒 2). Security based on π‘€π‘‹πΉπ‘œ,π‘Ÿ,𝛽

The Scheme: 𝑑 β‹… 𝑑 = 𝑛 + 2𝑓 + π‘Ÿπ½

small (initial) noise 𝑓 < 𝐢 = π›½π‘Ÿ

  • dec. if 𝑓 /π‘Ÿ <

1 4

slide-8
SLIDE 8

FHE 101 [BV11b]

Secret key: 𝑑 ∈ β„€π‘Ÿ

π‘œ

Ciphertext: 𝑑 ∈ β„€π‘Ÿ

π‘œ

The Scheme: 𝑑 β‹… 𝑑 = 𝑛 + 2𝑓 + π‘Ÿπ½

small (initial) noise 𝑓 < 𝐢 = π›½π‘Ÿ

  • dec. if 𝑓 /π‘Ÿ <

1 4

Additive Homomorphism:

That again? Just add’em, dude… 𝑑 1, 𝑑 2 β‡’ 𝑑 1 + 𝑑 2 𝑛𝑝𝑒 π‘Ÿ

slide-9
SLIDE 9

FHE 101 [BV11b]

Multiplicative Homomorphism:

𝑑 1, 𝑑 2 β‡’ 𝑑 1 βŠ— 𝑑 2 𝑛𝑝𝑒 π‘Ÿ ∈ β„€π‘Ÿ

π‘œ2 vector of all cross terms 𝑑 1 𝑗 β‹… 𝑑 2 π‘˜ 𝑗,π‘˜

𝑑 1 βŠ— 𝑑 2 β‹… 𝑑 βŠ— 𝑑 = 𝑑 1 β‹… 𝑑 β‹… 𝑑 2 β‹… 𝑑 = 𝑛1 + 2𝑓1 β‹… 𝑛2 + 2𝑓2 (𝑛𝑝𝑒 π‘Ÿ) = 𝑛1𝑛2 + 2 β‹… 𝑃 𝑓1𝑓2 (𝑛𝑝𝑒 π‘Ÿ) 𝑑𝑙 changed… but we can bring it back

(we have the technology)

~𝐢2

noise blows up! π‘ͺ β†’ π‘ͺπŸ‘ β†’ β‹― β†’ π‘ͺπŸ‘π’†

  • dec. if 𝐢2𝑒/π‘Ÿ <

1 4

Secret key: 𝑑 ∈ β„€π‘Ÿ

π‘œ

Ciphertext: 𝑑 ∈ β„€π‘Ÿ

π‘œ

The Scheme: 𝑑 β‹… 𝑑 = 𝑛 + 2𝑓 + π‘Ÿπ½

small (initial) noise 𝑓 < 𝐢 = π›½π‘Ÿ

  • dec. if 𝑓 /π‘Ÿ <

1 4

slide-10
SLIDE 10

Modulus Switching [BGV12]

Idea: Bring noise back down by dividing the entire ciphertext by 𝐢.

𝑑 ∈ β„€π‘Ÿ

π‘œ

with noise |𝑓| < 𝐢2

/𝐢

𝑑 /𝐢 ∈ β„€π‘Ÿ/𝐢

π‘œ

with noise |𝑓| < 𝐢

(make sure not to harm the message bit 𝑛)

(π‘ͺ, 𝒓) β†’ (π‘ͺ, 𝒓/π‘ͺ) β†’ β‹― β†’ (π‘ͺ, 𝒓/π‘ͺ𝒆)

Noise/modulus evolution:

  • dec. if 𝐢𝑒+1 < π‘Ÿ/4
slide-11
SLIDE 11

My Problems with Modulus Switching

  • 1. Modulus switching is scale-dependent.
  • Scaling 𝐢, π‘Ÿ changes performance:

Smaller 𝐢, π‘Ÿ οƒž smaller 𝐢𝑒+1/π‘Ÿ οƒž better homomorphism.

  • 2. What does modulus switching really do?
  • Same as a scaling factor in the tensoring process

( 𝑑 1, 𝑑 2 β‡’ 𝜐 β‹… 𝑑 1 βŠ— 𝑑 2 𝑛𝑝𝑒 π‘Ÿ ).

  • In a β€œcorrect” scale, this factor should be 1.

nothing…

slide-12
SLIDE 12

Our Solution: Scale-Independent FHE

Compare with previous:

real numbers 𝑛𝑝𝑒 2 ≑ (βˆ’1,1]

Hardness assumption is the same π‘€π‘‹πΉπ‘œ,π‘Ÿ,𝛽.

Secret key: 𝑑 ∈ β„€π‘œ Ciphertext: 𝑑 ∈ ℝ2

π‘œ

𝑑 β‹… 𝑑 = 𝑛 + πœ— + 2𝐽

small (initial) noise πœ— < 2𝛽

  • dec. if πœ— <

1 2

slide-13
SLIDE 13

Scale-Independent Multiplication

Multiplicative Homomorphism:

𝑑 1, 𝑑 2 β‡’ 𝑑 1 βŠ— 𝑑 2 𝑛𝑝𝑒 2 ∈ ℝ2

π‘œ2

𝑑 1 βŠ— 𝑑 2 β‹… 𝑑 βŠ— 𝑑 = 𝑑 1 β‹… 𝑑 β‹… 𝑑 2 β‹… 𝑑 = 𝑛1 + πœ—1 + 2𝐽1 β‹… 𝑛2 + πœ—2 + 2𝐽2 (𝑛𝑝𝑒 2) = 𝑛1𝑛2 + πœ—1 β‹… 𝑛2 + 2𝐽2 + πœ—2 β‹… 𝑛1 + 2𝐽1 + πœ—1πœ—2 (𝑛𝑝𝑒 2) Careful!

1/2 𝑛𝑝𝑒 2 β‹… 2 𝑛𝑝𝑒 2 β‰  1 (𝑛𝑝𝑒 2)

~𝛽2= tiny! ~𝛽 β‹… |𝑛 + 2𝐽|

𝑛 + 2𝐽 β‰ˆ 𝑑 β‹… 𝑑 ≀ 𝑑 1

≲ 𝛽 β‹… 𝑑 1

real numbers 𝑛𝑝𝑒 2 ≑ (βˆ’1,1]

Secret key: 𝑑 ∈ β„€π‘œ Ciphertext: 𝑑 ∈ ℝ2

π‘œ

𝑑 β‹… 𝑑 = 𝑛 + πœ— + 2𝐽

small (initial) noise πœ— < 2𝛽

  • dec. if πœ— <

1 2

Noise blowup: 𝜷 β†’ 𝜷 β‹… 𝒕 𝟐

slide-14
SLIDE 14

Scale-Independent Multiplication

Multiplicative Homomorphism:

𝑑 1, 𝑑 2 β‡’ 𝑑 1 βŠ— 𝑑 2 𝑛𝑝𝑒 2 ∈ ℝ2

π‘œ2

Noise blowup: 𝜷 β†’ 𝜷 β‹… 𝒕 𝟐

Not good enough: 𝑑 1 β‰ˆ π‘œπ‘Ÿ

Solution: Decompose the elements of 𝑑 into π‘œ log π‘Ÿ bits.

real numbers 𝑛𝑝𝑒 2 ≑ (βˆ’1,1]

Secret key: 𝑑 ∈ β„€π‘œ Ciphertext: 𝑑 ∈ ℝ2

π‘œ

𝑑 β‹… 𝑑 = 𝑛 + πœ— + 2𝐽

small (initial) noise πœ— < 2𝛽

  • dec. if πœ— <

1 2

slide-15
SLIDE 15

𝑑 = 𝑑 1 , 𝑑 2 , … 𝑑 = 𝑑 1 , 𝑑 2 , … 𝑑 β‹… 𝑑 = 𝑑 1 β‹… 𝑑 1 + 𝑑 2 β‹… 𝑑 2 + β‹― 𝑑 = 𝑑 1 0, … , 𝑑 1 log π‘Ÿ, 𝑑 2 0, … , 𝑑 2 log π‘Ÿ, … 𝑑 = 𝑑 1 , 2𝑑 1 , … , 2log π‘Ÿπ‘‘ 1 , 𝑑 2 , 2𝑑 2 , … , 2log π‘Ÿπ‘‘ 2 , … 𝑑 β‹… 𝑑 = 𝑑 1 𝑗 β‹… 2𝑗𝑑 1

𝑗

+ 𝑑 2 𝑗 β‹… 2𝑗𝑑 2

𝑗

+ β‹― = 𝑑 1 β‹… 𝑑 1 + 𝑑 2 β‹… 𝑑 2 + β‹―

Binary Decomposition

slide-16
SLIDE 16

Scale-Independent Multiplication

𝑑 1, 𝑑 2 β‡’ 𝑑 1 βŠ— 𝑑 2 𝑛𝑝𝑒 2 ∈ ℝ2

π‘œ2

Noise blowup: 𝜷 β†’ 𝜷 β‹… 𝒕 𝟐 𝑑 1 ≀ π‘œ log π‘Ÿ Noise blowup: 𝜷 β†’ 𝜷 β‹… 𝒐 log 𝒓 ≀ 𝜷 β‹… π’πŸ‘ For depth 𝑒 circuit: 𝛽 β†’ 𝛽 β‹… π‘œπ‘ƒ(𝑒) regardless of scale!

real numbers 𝑛𝑝𝑒 2 ≑ (βˆ’1,1]

Secret key: 𝑑 ∈ *0,1+π‘œ log π‘Ÿ Ciphertext: 𝑑 ∈ ℝ2

π‘œ log π‘Ÿ

𝑑 β‹… 𝑑 = 𝑛 + πœ— + 2𝐽

small (initial) noise πœ— < 2𝛽

  • dec. if πœ— <

1 2

Multiplicative Homomorphism:

slide-17
SLIDE 17

Full Homomorphism via Bootstrapping

Evaluating depth 𝑒 circuit: 𝜷 β†’ 𝜷 β‹… 𝒐𝑷(𝒆)

For β€œbootstrapping”: 𝑒 = 𝑃(log π‘œ) β‡’ 𝜷 β†’ 𝜷 β‹… 𝒐𝑷(𝐦𝐩𝐑 𝒐) β‡’ dec. if 𝜷 β‰ˆ π’βˆ’π‘·(𝐦𝐩𝐑 𝒐) regardless of π‘Ÿ!

(in *BGV12+ only for β€œsmall” odd π‘Ÿ)

Using π‘Ÿ β‰ˆ 2π‘œ β‡’ Hardness based on classical GapSVP.

slide-18
SLIDE 18

Conclusion

  • Scale-independence οƒž FHE without modulus switching.
  • Homomorphic properties independent of π‘Ÿ.

– But π‘Ÿ still matters for security.

  • Properties of [BGV12] extend.
  • Bonuses:

– Our π‘Ÿ can be even (e.g. power of 2). – Security based on classical GapSVP (as opposed to quantum).

  • Simpler!
slide-19
SLIDE 19

tiny.cc/fheblog1 ; tiny.cc/fheblog2

also see blog post with Boaz Barak:

slide-20
SLIDE 20

Farewell CRYPTO ’12…

slide-21
SLIDE 21

tiny.cc/fheblog1 ; tiny.cc/fheblog2

also see blog post with Boaz Barak: