Homomorphic Secret Sharing II Homomorphic Secret Sharing for - - PowerPoint PPT Presentation

▶
homomorphic secret sharing ii homomorphic secret sharing
SMART_READER_LITE
LIVE PREVIEW

Homomorphic Secret Sharing II Homomorphic Secret Sharing for - - PowerPoint PPT Presentation

Homomorphic Secret Sharing II Homomorphic Secret Sharing for Branching Programs Under DDH Ele:e Boyle Niv Gilboa Yuval Ishai IDC BGU Technion & UCLA Secure ComputaGon Approaches Classical


slide-1
SLIDE 1

Homomorphic Secret Sharing II Homomorphic Secret Sharing for Branching Programs Under DDH

Ele:e Boyle Niv Gilboa Yuval Ishai

IDC BGU Technion & UCLA

slide-2
SLIDE 2

Secure ComputaGon Approaches

“Classical” Approaches Yao’s garbled circuits [Yao86] GMW [GMW87] BGW [BGW88] FHE-Based ConstrucGons [Gen09] Homomorphic Secret Sharing [BGI16,17]

+ Heavily opGmized

  • O(|C|) communicaGon bits

+ Low asymptoGc communicaGon

  • High concrete costs
  • Based on narrow range
  • f (la_ce) assumpGons

Coming up

slide-3
SLIDE 3

Homomorphic Secret Sharing (HSS)

  • Security: xi hides x
  • Correctness:

EvalP(x0) + EvalP(x1) = P(x) = P(x)

y0 y1 +

EvalP EvalP

x0 x1

x

Share

slide-4
SLIDE 4

𝜀-HSS

  • HSS
  • Security: xi hides x
  • 𝜀-Correctness: Except with prob 𝜀 (over Share),
  • Correctness: Except with prob 𝜀 (over Share),

(over Share),

EvalP(x0) + EvalP(x1) = P(x) = P(x)

y0 y1 +

EvalP EvalP

x0 x1

x

Share

slide-5
SLIDE 5

This Talk

  • 𝜀-HSS for Branching Programs from DDH [BGI16a]
  • DDH-Based Secure ComputaGon [BGI17]

– Rounds – CommunicaGon – ComputaGon

slide-6
SLIDE 6

Main Theorem

  • 2-party Homomorphic Secret Sharing

for branching programs under DDH

– δ failure probability – Share: runGme (& share size) n⋅poly(λ) – Eval: runGme poly(λ,|P|,1/δ)

slide-7
SLIDE 7

Living in a log-space world

Multiplication of n n-bit numbers Many numerical / statistical calculations FHE Decryption … Min L2-distance from list of length-n vectors Undirected graph connectivity Streaming algorithms Finite automata

slide-8
SLIDE 8

The HSS ConstrucGon

slide-9
SLIDE 9

RMS Programs

Restricted-MulGplicaGon Straight-line programs:

  • vi ß xj Load an input into memory.
  • vi ß vj+vk Add values in memory.
  • vi ß vj*xk MulGply value in memory by an input.
  • Output vi (mod m)

We will support homomorphic evaluaGon of RMS programs

  • ver Z s.t. all intermediate values are “small” (e.g., {0,1})

Captures branching programs and log-space computaGons (More generally: ReachFewL)

slide-10
SLIDE 10

RMS Captures Branching Programs

Program Input: x1 x2 x3 x4 … xn 1

Program Output:

xi

To evaluate as RMS: Memory variable for each node (whether it’s on red path)

vl = (1-x1) vi + (x3) vj + (1-x1) vk

x3=1

vi vj Computable via RMS vk

slide-11
SLIDE 11

3 Ways to Share a Number

  • Let G be a DDH group of size q with generator g

– (ga,gb,gab) indisGnguishable from (ga,gb,gc)

  • 3 levels of encoding Zq elements

– [u] : (gu, gu) ∈ G x G “encrypGon” – <v> : (v1,v2) ∈ Zq x Zq s.t. v1=v2+v addiGve – {w} : (w1,w2) ∈ G x G s.t. w1=w2⋅gw mulGplicaGve

  • Each level is addiGvely homomorphic

– <v>,<v’>è<v+v’> {w},{w’}è{w+w’}

  • Natural pairing: pair([u],<v>) è {uv}

– ((gu)^v1,(gu)^v2)=(guv2⋅guv,guv2)

slide-12
SLIDE 12

Toy Version

EmulaGng an RMS program – first a:empt:

  • Share: for each input xi

– Encrypt as [xi] – AddiGvely secret-share as <xi>

  • Eval: // maintain the invariant: Vi = <vi>
  • vi ß xj : Vi ß <xj>
  • vi ß vj+vk : Vi ß Vj+Vk

// Vi= <vj+vk>

  • Output vi (mod m): Output Vi +(r,r) (mod m)
  • vi ß xk*vj : Wi ß pair([xk],Vj)

// Wi= {w} for w=xk⋅vj [u]=(gu,gu) <v>=(v2+v,v2) {w}=(w2⋅gw,w2)

Let’s pretend gx is a secure encrypGon of x

Need Convert : {w} è <w> Solved by discrete log Stuck?

slide-13
SLIDE 13

Share Conversion

Group G Group G g0 g1 gz1 gz2 g0 g1 w

Goal: Convert multiplicative sharing of w to additive sharing of w

slide-14
SLIDE 14

Share Conversion

gz2 w

S is a 𝜀-sparse “random” set on G eg S={h∈G | φ(h)=0} for suitable PRF φ

  • •
  • •
  • Convert (gzb):
  • Return distance distb

from gzb to S.

  • Return distb=0 if

distance>δ⋅log(1/δ)

Goal: Convert multiplicative sharing of w to additive sharing of w

gz1 𝜀 log​(1/𝜀) 𝜀 log​(1/𝜀)

slide-15
SLIDE 15

Good Zone Bad Zone

Conversion Error

gz0 gz1

  • •
  • •
  • w

∉

  • ∈
  • Bad cases:

∃ • ∈ Bad Zone error ~ w𝜀 ∃ • ∉ Good Zone error ~ 𝜀

Error: depends on “conversion payload” z

Las Vegas version

slide-16
SLIDE 16

Toy Version

EmulaGng an RMS program:

  • Share: for each input xi

– Encrypt as [xi] – AddiGvely secret-share as <xi>

  • Eval: // maintain the invariant: Vi = <vi>
  • vi ß xj : Vi ß <xj>
  • vi ß vj+vk : Vi ß Vj+Vk

// Vi= <vj+vk>

  • vi ß xk*vj : Wi ß pair([xk],Vj); Vi ßConvert(Wi)
  • Output vi (mod m): Output Vi mod m

[u]=(gu,gu) <v>=(v2+v,v2) {w}=(w2⋅gw,w2)

Let’s pretend gx is a secure encrypGon of x

slide-17
SLIDE 17

From Toy Version to Real Version

  • Pick secret key c∈Zq for ElGamal encrypGon
  • Encrypt each input xi

as [r], [cr+xi] (secret-key ElGamal)

  • Invariant: Each memory value vj shared as <vj>, <cvj>
  • To mulGply xivj: pair, subtract and get {xivj}

– Use conversion to get <xivj> – Problem: Need also <c⋅xivj> to maintain invariant – SoluGon? Share c⋅xi in addiGon to xi – Problem: Can’t convert {c⋅xivj} (c⋅xivj too big) – SoluGon: Break c into binary representaGon, encrypt xick – Problem: circular security for ElGamal? – SoluGons: (1) assume it! (2) leveled version (3) use [BHHO08]

slide-18
SLIDE 18

[xi] [xi]

Public-Key Variant

Dec

P(x) [xi]

Enc

xi

Eval

[P(x)]1 P

Eval

[P(x)]2 P

⊕

pk ek1 ek2

pk = ElGamal public key + encrypGons of bits ck of secret key ek = load 1 to memory

slide-19
SLIDE 19

DDH-Based ApplicaGons

  • Succinct 2PC for branching programs / logspace / NC1

– CommunicaGon |inputs| + |outputs| + poly(λ) bits

  • Sublinear 2PC for “nice” circuits

– CommunicaGon O(|C|/log|C|) + … bits – O(|C|)+… bits for general circuits

  • 2-server PIR for branching program queries
  • 2-party FuncGon Secret Sharing for branching programs
  • 2-round MPC in PKI model
slide-20
SLIDE 20

Succinct 2PC for Branching Programs

Generic MPC for KeyGen Hom evaluate P on share of a,b Hom evaluate P on share of a,b pk ek2 ek1 b HSS(pk, a) HSS(pk, b) Goal: Evaluate program P yA yB yA+yB = C(a,b), Except with prob. 1/3 Repeat 𝜇 Gmes Generic MPC to output majority yA

1 yA 2

yA

3 yA 4

yB

1 yB 2

yB

3 yB 4

a

Communica9on:

poly(λ) + poly(λ)* (|a|+|b|) + poly(λ) * (|output|)

Hybrid encrypGon tricks Coming up

slide-21
SLIDE 21

Sublinear 2PC for “Nice” Circuits

x1 y1

…

¬x1 ¬y1 xn yn ¬xn ¬yn

Gate Gate

…

Gate Gate Gate

IntuiGon:

Gate Gate Gate Gate Gate Gate Gate

slide-22
SLIDE 22

Sublinear 2PC for “Nice” Circuits

x1 y1

…

¬x1 ¬y1 xn yn ¬xn ¬yn

Gate Gate

…

Gate Gate Gate

IntuiGon:

Gate Gate Gate Gate Gate Gate Gate BP “Gate” BP “Gate” BP “Gate”

Only pay ~ (inputs + outputs) of BP gates

slide-23
SLIDE 23

Achieving Fault Tolerance

x1 y1

…

¬x1 ¬y1 xn yn ¬xn ¬yn

Gate Gate

…

Gate Gate Gate Gate Gate Gate Gate Gate Gate Gate BP “Gate” BP “Gate” BP “Gate” ECC Decode ECC Encode ECC Decode ECC Encode ECC Decode ECC Encode

slide-24
SLIDE 24

OpGmizing Rounds

slide-25
SLIDE 25

Two-Round MPC

  • PKI setup: each party publishes public key and keeps the

secret key.

– Input-independent, short

  • Ideas

– Start with a 2-server protocol, then emulate a server using 2 servers via the same protocol

  • Each virtualizaGon step increases complexity by poly(λ)

– Threshold generaGon of (pk, ek0,ek1)

  • Side benefit: black-box use of group

– Reduce general circuits to shallow ones via garbled circuits – Negligible error via virtual 2-round honest-majority MPC

slide-26
SLIDE 26

OpGmizing CommunicaGon for 2PC

slide-27
SLIDE 27

“Punctured OT”

  • One-sided Las Vegas HSS + linear erasure code
  • Goal: P0 learns P1 values at non-⊥ posiGons

P1 does not learn ids of ⊥ posiGons

  • Idea: Cheap almost-all OT via punctured PRF

P1 sends share, using PRFk(i) as mask for posiGon i

⊥ ⊥

P0 P1

MPC PRF key k ⊥-Punctured PRF key k⊥

slide-28
SLIDE 28

OpGmizing ComputaGon

slide-29
SLIDE 29

Baseline: Cost per Hom MulGplicaGon

  • Phase 1: ExponenGaGon
  • Phase 2: Share Conversion

Repeated (Θ(1/𝜀) expected):

  • MulGply h by generator g
  • Test if new h is disGnguished (evaluate PRF)

(gr)-<cv> (grc+x)<v> = g<vx>

Group G g0 g1 h

  • Note: fixed base
slide-30
SLIDE 30

ComputaGonal OpGmizaGons

  • “Conversion-friendly” groups:

g = 2 is generator & |G| = 2i - (small 𝛿) hg = (shi} 1) + small 𝛿

  • DisGnguished points:

– Provable: Min-wise hash [Ind01]

saves log​(1/𝜀) worst-case parallel runGme

– HeurisGc: Fixed window of 0s Perform blocks of repeGGons

h shi} 32 + * 𝛿 hg32

slide-31
SLIDE 31

Further OpGmizaGons

  • Assume circular-secure ElGamal
  • EllipGc-curve ElGamal for short ciphertexts
  • “Small exponent” ElGamal for shorter secret key
  • Preprocess for fixed-basis exponenGaGons
  • Replace binary sk decomposiGon by base D
  • Bo:om line:

– Ciphertexts shorter than FHE ciphertexts – “Shallow” computaGons may be faster

slide-32
SLIDE 32

Conclusions

  • Homomorphic secret sharing from DDH

– Supports branching program computaGon – Yields succinct secure computaGon and other applicaGons of FHE – Some applicaGons not implied by standard FHE – Good concrete efficiency for “shallow” computaGons

  • Not post-quantum

– I have bigger concerns at this parGcular moment – Quantum-friendly cryptography?

slide-33
SLIDE 33

Open QuesGons

  • Beyond branching programs

– FHE-style bootstrapping?

  • More than 2 parGes
  • Similar approach under different assumpGons
  • Improving Gme/error tradeoff of conversion?
  • Fault tolerance at branching program level?
  • OpGmizing concrete efficiency