Part II: Pseudorandom Correlation Generators
- What are they?
- How can we build them?
Part II: Pseudorandom Correlation Generators What are they? How - - PowerPoint PPT Presentation
Part II: Pseudorandom Correlation Generators What are they? How can we build them? Re Recall: : Succinct Secure Computation from HSS x Exchange additive Eval C Share output shares y 0 w 0 = C(x,x) w + w 1 y 1 Eval C x
y0 y1
EvalC EvalC
w0 w1
Share
Securely compute Share(x,x’)
Exchange additive
+
y0 y1
EvalC EvalC
w0 w1
Share
Securely compute Share(x,x’)
Exchange additive
+
Final exchange not needed!
Preprocessing
𝑧 𝑦
Online phase 𝑔(𝑦, 𝑧) Interactive protocol Correlated randomness
[Beaver ’91]
45
Dominates overall cost
Setup functionality
𝑧 𝑦
Online phase 𝑔(𝑦, 𝑧) “Small” setup protocol Correlated, short seeds
[BCGI 18, BCGIKS 19]
46
Correlated pseudorandomness Silent expansion
y0 y1
EvalC EvalC
w0 w1
Share
Securely compute Share(x,x’)
s
Long Pseudorandomness
Short random seed ∀ PPT distinguisher: PRG(s) ≈ Random
s0 Long Pseudorandom X0
Short seeds
s1 Long Pseudorandom X1
Expand to long correlated outputs ≈ 𝑌*, 𝑌+ ← 𝐸 Challenge: 𝑡/ should give no information on 𝑌+0/ beyond 𝑌/
[BCGI 18] [GI 99], [CDI 05] [BCGIKS 19] [BCGIKRS 19] Multi-party linear correlations (PRG) vector-OLE (LPN) OT (LPN) constant-degree poly (LPN) low-degree via HSS (LWE, pairings, MQ) truth tables (PRG) Multi-party bilinear (LPN, LWE) Also: [BCGIO 17], [S 18] (less practical)
Distribution R K1 K0
Additive shares Beaver Triples
(a b ab) …
Authenticated Beaver Triples
𝜏 (a b ab) 𝜏(a b ab) …
Truth Table Correlations
f(x –r1, y–r2) …
xi hides x
|xi| ~ |x|
EvalP(x0) + EvalP(x1) = P(x)
y0 y1
+ EvalP EvalP
x0 x1
Share For program class P
Consider program P:
EvalP EvalP s0 s1
Share
[BCGIO17]
Distribution R K0 K1
s
Long Pseudorandomness PRG expansion Sampling from R
Question: Concretely efficient HSS for PRG?
“High-level” LWE+ Circuits [DHRW16, BGI15, BGILT18] “Mid-level” DDH Branching Programs [BGI16, BCGIO17, DKK18] Paillier Branching Programs [FGJS17] LWE Branching Programs [BKS19] “Low-level” OWF Point Functions, [GI14, BGI15, BGI16b] Conjunctions, Intervals, Decision Trees “Algorithmica” None Linear Functions [Ben86]
Builds on top
Faster…
Fast!
~200 million Evals per second [GKWY19] Growing number of applications…
Lightweight HSS for simple computations
OLE 𝔾 a, b x ax + b VOLE 𝔾 x
b a ax + b
b a ax + b s0
Short seeds
s1
(LWE with low-Hamming noise)
secret Public M Sparse noise
Uniform
(Even given M) Note: Parameterized by M & by noise distribution Random 𝔾 elements
In this regime:
attack (guessing noise-free coordinates)
secret Sparse noise
secret Public M Sparse noise
Uniform
(Even given M) Idea: Leverage linearity to reduce problem to sparse case
c d cx + d x
c Public M d cx + d
Public M Public M
VOLE correctness ✔ VOLE security: ❌
C, D distinguishable from random!
c Public M
d cx + d
Public M Public M
VOLE correctness ✔ VOLE security: ✔
Sparse noise
b’
a’x + b’
c Public M
d cx + d Public M Public M
Sparse noise b’
a’x + b’
Secret shares
(note: a’ can be represented succinctly)
Wanted:
K0 b’ a’x+b’ K1
Secret shares
(note: a’ can be represented succinctly)
K0 b’ a’x+b’ K1
Secret shares
What if it had been ONE nonzero value?
Wanted:
Long Pseudorandom string String that differs in 1 position (location of a’)
Idea: Use “Punctured PRFs”
[Goldreich-Goldwasser-Micali 84]
s
Pseudorandomness
PRG
s
Very Long Pseudorandomness PRG PRG PRG
[Boneh-Waters’13, Kiayias-Papadopoulos-Triandopoulos-Zacharias’13, Boyle-Goldwasser-Ivan’13]
Secret shares of Size = 𝜇 x tree depth
x*-Punctured PRF key s*: Can evaluate PRF
except x
s s*
Give evaluations of all Sibling nodes!
c Public M d cx + d
S* S Small VOLE Sparse a’ Punctured PRFs: Multi-point fn a’x c Public M d PRF-Eval(S*) cx+d Public M PRF-Eval(S)
secret Public G
Uniform
Kernel of G (Parity- check H) = random noisy codeword Kernel of G (Parity- check H) Sparse noise
secret Public G Sparse noise
Uniform
Kernel of G (Parity- check H) = random noisy codeword
Sparse noise Uniform
Kernel of G (Parity- check H)
Sparse noise Uniform
Kernel of G (Parity-check H)
LPN hard for G ⇒ compressing noise vector by kernel H is pseudorandom
S* S Sparse a’ & x Punctured PRF: at points (a’x) Public H PRF-Eval(S*) PRF-Eval(S) Public H Public H
𝑡
+
“Primal” construction “Dual” construction
(𝑡, 𝑓) 𝑓
𝑓 𝑓
Arbitrary poly stretch (increase 𝑛, fix 𝐼𝑋(𝑓)) ⇒ best awack: exp(𝐼𝑋 𝑓 )
𝑛 𝑜 (𝑛 − 𝑜) 𝑛
Limited to quadratic stretch
𝑌*, 𝑌+ b ∈ {0,1} 𝑌/
Preprocessing OT Correlayon OT Correlation
𝑌*, 𝑌+ … 𝑐, 𝑌/ …
Preprocessing OT Correlayon OT Correlayon
𝑌*, 𝑌+ … 𝑐, 𝑌/ …
Prior work: Large (linear) communication “Silent OT” [BCGIKS19]
268 13728 128854 2441 2726 2756 1 10 100 1000 10000 100000
LAN (10 Gbps) WAN (100 MBps) WAN (10 MBps)
IKNP OT Extension vs Silent OT Extension
9x 5x 47x
Total comm: 160 MB vs 127 kB
f(x)
y1 y2
Evalf Evalf
x1 x2
x
Share
𝑧 ⋅ sk LinDec Round 𝑦 ⋅ sk 𝑦 ⋅ 𝑧 ⋅ sk 𝑧 ⋅ sk Lift 𝑦 ⋅ 𝑧 ⋅ sk
s0 Long Pseudorandom X0
PCG0
s1 Long Pseudorandom X1
PCG1