Privacy-Preserving Outsourcing by Distributed Verifiable Computation
Meilof Veeningen
Philips Research MPC 2016, Aarhus, May 30 2016
Privacy-Preserving Outsourcing by Distributed Verifiable - - PowerPoint PPT Presentation
Privacy-Preserving Outsourcing by Distributed Verifiable Computation Meilof Veeningen Philips Research MPC 2016, Aarhus, May 30 2016 2 Philips Research 3 Philips Research 4 Philips Research 5 Philips Research 6 Philips Research
Meilof Veeningen
Philips Research MPC 2016, Aarhus, May 30 2016
Philips Research
2
Philips Research
3
Philips Research
4
Philips Research
5
Philips Research
6
Philips Research
7
x f(x) privacy? correctness?
Philips Research
8
π¦ " π¦ # π¦ $
secure multiparty computation
π(π¦) $ π(π¦) # π(π¦) "
Jakobsen, Nielsen, Orlandi (CCSW β14): privacy and correctness with π β 1 actively corrupted workers
Philips Research
9
Philips Research
10
π¦ " π¦ # π¦ $ π§ = π(π¦) $ π§ = π(π¦) # π§ = π(π¦) " π§,Proof(π§ = π π¦ ) $ π§, Proof(π§ = π π¦ ) # π§, Proof(π§ = π π¦ ) "
Question: can we efficiently construct these proofs with multi-party computation? Privacy: same as MPC protocol used Correctness: always!
Philips Research
11
Publicly Auditable SPDZ (Baum/DamgΓ₯rd/Orlandi) Preprocessing π¦ , π§ , π¦π§ +π3, π4, π34 Universally Verifiable CDN (de Hoogh/Schoenmakers/V.) ZK NIZK Certificate Validation β¦ (de Hoogh/Schoenmakers/V.) Paillier ElGamal Verification effort scales in computation size! Reason: existing work takes MPC as starting point!
Philips Research
12
β Baum/DamgΓ₯rd/Orlandi: SPDZ + Pedersen commitments = SPDZβ β de Hoogh/Schoenmakers/Veeningen: CDN + non-interactive proofs = CDNβ β de Hoogh/Schoenmakers/Veeningen: CDNβ + ElGamal encryption = CDNββ
Philips Research
13
π¦ " π¦ # π¦ $ π§, PinocchioVC(π§ = π π¦ ) $ π§, PinocchioVC(π§ = π π¦ ) # π§, PinocchioVC(π§ = π π¦ ) "
Vreede, ACNS β16) Privacy-preserving computation of Pinocchio VC: three workers each perform essentially the work of the original prover.
Computation with constant-time verification!
Philips Research
14
Philips Research
15
Philips Research
16
(3,π§< + π¨<) (2,π§@ + π¨@) (1,π§A + π¨A) π‘$ + π‘" π‘$ π§A π§@ π§< 1 2 3 π‘" (1,π§A) (2,π§@) (3, π§<) (1, π¨A) (2, π¨@) (3, π¨<) (1,π§Aπ¨A) (2,π§@π¨@) (3,π§<π¨<) π½π‘$ (1,π½π§D) (2,π½π§E) (3,π½π§F) π§ = ππ¦ + π‘$ ππ¦ + π‘" = ππ π¦" + ππ‘" + ππ‘$ π¦ + π‘$π‘" s$s" = 3(π§Dπ¨D) β 3(π§Eπ¨E) + (π§Fπ¨F) (3-out-of-3 sharing!) Animation: Sebastiaan de Hoogh
, π‘π’(π‘ + π’) π‘π’(π‘ + π’) $ π‘π’(π‘ + π’) " π‘π’(π‘ + π’) # π‘π’(π‘ + π’) $ π‘π’(π‘ + π’) " π‘π’(π‘ + π’) # π‘ + π’ $ π‘ + π’ " π‘ + π’ # π‘π’ $ π‘π’ " π‘π’ # π‘π’ # " π‘π’ # $ π‘π’ " $ π‘π’ " $ π‘π’ $ " π‘π’ $ # π‘π’ $ π‘π’ " π‘π’ # π‘ $, π’ $ π‘ ", π’ " π‘ #, π’ # π‘ $, π’ $ π‘ ", π’ " π‘ #, π’ # Goal: compute π§ = π‘ β π’ β (π‘ + π’) π¦ : 2-out-of-3 sharing of π¦ π¦ : 3-out-of-3 sharing of π¦ π‘, π’
Philips Research
17
π‘π’ = 3 π‘π’ $ β 3 π‘π’ " + π‘π’ # π‘π’ M = 3 π‘π’ $ M β 3 π‘π’ " M + π‘π’ # M
Philips Research
18
Prove that committed π¦ β satisfies equations π β π¦ β β π β π¦ β = (π β π¦ β) Example: π§ = π‘ β π’ β π‘ + π’ if and only if: βπ¨ βΆ Uπ‘ β π’ = π¨ π¨ β (π‘ + π’) = π§ 1 1 0 β π‘ π’ π¨ π§ β 0 1 1 1 0 β π‘ π’ π¨ π§ = 0 1 1 β π‘ π’ π¨ π§ E.g.: π‘ π’ π§ π¨ = 3 2 6 30 is a solution
Philips Research
19
βquadratic arithmetic programβ (QAP)
Philips Research
20
Prove that committed π¦ β satisfies equations π β π¦ β β π β π¦ β = π β π¦ β . Define πM π ,π
M π ,π M π by βcolumnwiseLagrange interpolationβ
1 1 0 β π‘ π’ π¨ π§ β 0 1 1 1 0 β π‘ π’ π¨ π§ = 0 1 1 β π‘ π’ π¨ π§ π$ 1 = 1, π$ 2 = 0 π$ π = 2 β π π
" 1 = 1, π " 2 = 1
π
" π = 1
β¦
value at 1 value at 2 Consider polynomial π3
β π = π$ π π‘+ π" π π’ + β― β π $ π π‘ + β― β π $ π π‘ + β― :
β 1 = π$ 1 π‘ + π" 1 π’ + β― β π $ 1 π‘ + β― β π $ 1 π‘ + β―
= π‘ β π’ β π¨
β 2 = π$ 1 π‘ + π" 1 π’ + β― β π $ 1 π‘ + β― β π $ 1 π‘ + β―
= π¨ β π‘ + π’ β π§ So π β π¦ β β π β π¦ β = π β π¦ β if and only if π3
β 1 = π3 β 2 = 0
if and only if π β 1 β π β 2 | π π if and only if there exists β π : π β 1 β π β 2 β β π = π3
β π
Philips Research
21
Example. 1 1 0 β π‘ π’ π¨ π§ β 0 1 1 1 0 β π‘ π’ π¨ π§ = 0 1 1 β π‘ π’ π¨ π§ π
$ π = π # π = 2 β π
π
" π = π ` π = π # π = π ` π = π $ π = π " π = 0
π
# π = π $ π = π ` π = π β 1
π
" π = 1
value at 1 value at 2 Claim: π‘ π’ π¨ π§ is solution iff there exists β π such that π β 1 π β 2 β π = π‘π
$ π + π’π " π + π¨π # π + π§π ` π
β π‘π
$ π + π’π " π + π¨π # π + π§π ` π
β π‘π
$ π + π’π " π + π¨π # π + π§π ` π
Claim: 3 2 6 30 is solution iff there exists β π such that π β 1 π β 2 β π = 3π
$ π + 2π " π + 6π # π + 30π ` π
β 3π
$ π + 2π " π + 6π # π + 30π ` π
β 3π
$ π + 2π " π + 6π # π + 30π ` π
Claim: 3 2 6 30 is solution iff there exists β π such that π β 1 π β 2 β π = 3π β 3π β 1 β 24π β 18 Claim: 3 2 6 30 is solution iff there exists β π such that π β 1 π β 2 β π = 9π" β 27π + 18
Lemma β 3 2 6 30 is solution iff there exists β π such that π β 1 π β 2 β π = 9π" β 27π + 18
Philips Research
22
9π" β 27π + 18 π" β 3π + 2 9 (π" β 3π + 2) 9 β β π = 9
Philips Research
23
verification key: π fg$ β β¦β fgh prover: πi f prover/verifier: πj
k f 3klβ―
prover/verifier: πm
k f 3klβ―
prover/verifier: πn
k f 3klβ―
evaluation key: π, πf, πfo,β¦ evaluation/verification key: πjp(f),πmp(f), πn
p(f)
π πr πs π πr,πs = π(πt, πh) iff π β π = π β π π πt πh Magic crypto tool: pairing verifier: π π fg$ β β¦β fgh ,πi f = π πj
k f 3klβ―,πm k f 3klβ― β π πn k f 3klβ―,π
g$ ?
Ξ β 1 β β¦β Ξ β π β β Ξ = π
$ Ξ π¦$ + β―
β π
$ Ξ π¦$ + β― β π $ Ξ π¦$ + β―
β 1 π β 1 β β¦β π β π β β π = π
$ π π¦$ + β― β π $ π π¦$ + β― β π $ π π¦$ + β― β 1
Ξ: random, unknown Prove:
Philips Research
24
π‘, π’
x f y, πm x f y, πn x f y
zg$ β β¦β (zgh)
verify: π π fg$ β β¦β fgh , πi f = π(πj
k f {lj
} f 4 β πj x f y,
πm
k f {lm
} f 4 β πm x f y) β
π πn
k f {ln
} f 4 β πn x f y,π
g$
π§, πi f , πj
x f y,πm x f y, πn x f y
evaluation key: π, πf, πfo,β¦ πj
x f ,πm x f , πn x f
verification key: π fg$ β β¦β fgh πj
k f ,πm k f ,πn k f
πj
πj
} f , πm } f , πn } f
Philips Research
25
Philips Research
26
x f y, πm x f y, πn x f y
zg$ β β¦β (zgh)
π‘, π’ π§, πi f , πj
x f y,πm x f y, πn x f y
π‘ , π’ π§ , πi f , πj
x f y , πm x f y , πn x f y
Philips Research
27
prove π,πf, πfo,β¦,πj
x f ,πm x f , πn x f ,π‘, π’ :
π¨, π§ = π(π‘, π’) πj
x f y = exp
(πj
x f ,π¨)
πm
x f y = exp
(πm
x f ,π¨)
πn
x f y = exp(πn x f ,π¨)
π π = π
$ π π‘ + π " π π’ + π # π π¨ + π ` π π§ β π $ π π‘ + β―
β π
$ π π‘ + β―
β π =
β z zg$ β β¦β zgh
πi f = exp π, βΖ β exp πf,β$ β β¦β exp (πfββ¦k,βhg$) return π§, πi f , πj
x f y,πm x f y, πn x f y
Philips Research
28
return π§ , πi f , πj
x f y , πm x f y , πn x f y
return π§, πi f , πj
x f y,πm x f y, πn x f y
πi f = exp π, βΖ β exp πf, β$ β β¦β exp (πfββ¦k, βhg$ ) πi f = exp π, βΖ β exp πf,β$ β β¦β exp (πfββ¦k,βhg$) β π =
β z zg$ β β¦β zgh
β π =
β z zg$ β β¦β zgh
Products of 2-out-of-3 shares give 3-out-of-3 shares π π = π
$ π
π‘ + π
" π
π’ + π
# π
π¨ + π
` π
π§ β π
$ π
π‘ + β― β π
$ π
π‘ + β― π π = π
$ π π‘ + π " π π’ + π # π π¨ + π ` π π§ β π $ π π‘ + β― β π $ π π‘ + β―
πn
x f y = exp(πn x f , π¨ )
πm
x f y = exp
(πm
x f , π¨ )
πj
x f y = exp
(πj
x f , π¨ )
πn
x f y = exp(πn x f ,π¨)
πm
x f y = exp
(πm
x f ,π¨)
πj
x f y = exp
(πj
x f ,π¨)
MPC computation of π gives internal wire values βfor freeβ π¨ , π§ = π( π‘ , π’ ) π¨, π§ = π(π‘, π’) prove π,πf, πfo,β¦,πj
x f ,πm x f , πn x f , π‘ , π’ :
prove π, πf, πfo, β¦,πj
x f ,πm x f , πn x f ,π‘, π’ :
Division by public polynomial is linear! Shamir reconstruction βin the exponentβ Only step in which the workers communicate!
Philips Research
29
π§ , π π¦ β π¦ β π¦ β π‘ , π’
computation of Pinocchio VC: three workers each perform essentially the work of the original prover. 275 s 275 s 275 s 6427 s 6427 s 6427 s 0.05 s
Philips Research
30
π β π = 1
π = πΆ
$ + 2πΆ" +
β¦ + 2ΕπΆΕ 1 = πΆ
$ β 1 β πΆ $
β¦ 1 = πΆΕ β 1 β πΆΕ
QAP MPC nonzero test positivity test π ββ’ β± π = ππππ( ππ ) π = πg$ π πΆ$ , β¦, πΆ$ = πΆππ’πΈππ( π ) β¦
β Zero testing β Comparison β β¦
verifiable computation