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
Outsourcing Computations on Sensitive Data (I) f(x) x privacy? correctness? 7 Philips Research
Outsourcing Computations on Sensitive Data (I) secure multiparty computation Can we achieve correctness even if all workers are corrupted? π(π¦) " π(π¦) # π(π¦) $ Jakobsen, Nielsen, Orlandi (CCSW β14): π¦ " π¦ # π¦ $ privacy and correctness with π β 1 actively corrupted workers 8 Philips Research
Outsourcing & Correctness (But No Privacy) 9 Philips Research
Privacy + Correctness: A Generic Construction π§, Proof(π§ = π π¦ ) " π§ = π(π¦) " π§ = π(π¦) # π§, Proof(π§ = π π¦ ) # π§,Proof(π§ = π π¦ ) $ π§ = π(π¦) $ π¦ " π¦ # π¦ $ Question: can we efficiently Privacy: same as MPC construct these proofs with protocol used multi-party computation? Correctness: always! 10 Philips Research
Privacy + Correctness: Previous Work Preprocessing Paillier ZK π¦ , π§ , π¦π§ ElGamal + π 3 , π 4 , π 34 NIZK openings Certificate Validation β¦ Universally Verifiable CDN (de Hoogh/Schoenmakers/V.) (de Hoogh/Schoenmakers/V.) Publicly Auditable SPDZ (Baum/DamgΓ₯rd/Orlandi) Verification effort scales in computation size! Reason: existing work takes MPC as starting point! 11 Philips Research
Privacy + Correctness: Previous Work β’ Instead of π§, Proof(π§ = π π¦ ) " : β 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ββ β’ Because of MPC starting point, no efficient verification! 12 Philips Research
Today: π§, Proof(π§ = π π¦ ) can be efficient! π§, PinocchioVC(π§ = π π¦ ) " π§, PinocchioVC(π§ = π π¦ ) # π§, PinocchioVC(π§ = π π¦ ) $ Theorem. (Schoenmakers/V/de π¦ " π¦ # Vreede, ACNS β16) Privacy-preserving π¦ $ computation of Pinocchio VC: three workers each perform essentially the work of the original prover. Corollary. Verifiable Multi-Party Computation with constant-time verification! 13 Philips Research
Outline β’ Secret sharing MPC β’ Pinocchio VC β’ Secret sharing MPC + Pinocchio VC 14 Philips Research
Secret sharing MPC 15 Philips Research
Animation: Sebastiaan de Hoogh Shamir secret sharing (2-out-of-3) (1, π¨ A ) (1,π§ A + π¨ A ) (1,π§ A π¨ A ) (1,π½π§ D ) (1,π§ A ) ππ¦ + π‘ " = ππ π¦ " + ππ‘ " + ππ‘ $ π¦ + π‘ $ π‘ " π§ = ππ¦ + π‘ $ (2, π¨ @ ) (2,π§ @ + π¨ @ ) (2,π§ @ π¨ @ ) (2,π½π§ E ) s $ s " = 3(π§ D π¨ D ) β 3(π§ E π¨ E ) + (π§ F π¨ F ) (3-out-of-3 sharing!) (2,π§ @ ) (3, π¨ < ) (3,π§ < + π¨ < ) (3,π§ < π¨ < ) (3,π½π§ F ) (3, π§ < ) π§ < π§ @ π‘ $ + π‘ " π§ A π½π‘ $ π‘ $ π‘ " 0 1 2 3 16 Philips Research
MPC based on Shamir secret sharing Goal: compute π§ = π‘ β π’ β (π‘ + π’) π‘ " , π’ " π‘π’ " π‘π’ " π‘ + π’ " π‘π’(π‘ + π’) " π‘π’ " $ π‘π’ " $ π‘π’ $ " π‘ $ , π’ $ π‘π’ # " π‘π’ $ π‘π’ $ # π‘ # , π’ # π‘π’ $ π‘π’ # $ π‘π’ # π‘ + π’ $ π‘ " , π’ " π‘π’(π‘ + π’) " π‘π’ # π‘π’(π‘ + π’) $ π‘ + π’ # π‘π’(π‘ + π’) $ π‘ $ , π’ $ π‘π’(π‘ + π’) # π‘π’ = 3 π‘π’ $ β 3 π‘π’ " + π‘π’ # π‘π’ M = 3 π‘π’ $ M β 3 π‘π’ " M + π‘π’ # M π‘π’(π‘ + π’) # π‘ # , π’ # π¦ : 2-out-of-3 sharing of π¦ π¦ : 3-out-of-3 sharing of π¦ π‘, π’ , π‘π’(π‘ + π’) 17 Philips Research
Pinocchio VC 18 Philips Research
Pinocchio: Quadratic Arithmetic Programs βquadratic arithmetic Prove that committed π¦ β satisfies equations programβ (QAP) π β π¦ β β π β π¦ β = (π β π¦ β) Example: π§ = π‘ β π’ β π‘ + π’ if and only if: βπ¨ βΆ Uπ‘ β π’ = π¨ π§ π¨ β (π‘ + π’) = π‘ π‘ π‘ π’ π’ π’ 1 0 0 0 β 0 1 0 0 = 0 0 1 0 0 β 0 β 1 β π¨ π¨ π¨ 0 0 1 1 1 0 0 0 0 π§ π§ π§ E.g.: π‘ π’ π§ π¨ = 3 2 6 30 is a solution 19 Philips Research
Pinocchio: From QAP to SNARK (I) Prove that committed π¦ β satisfies equations π β π¦ β β π β π¦ β = π β π¦ β . Define π M π ,π M π ,π M π by βcolumnwiseLagrange interpolationβ π‘ π‘ π‘ value π’ π’ π’ at 1 1 0 0 0 β 0 1 0 0 = 0 0 1 0 0 β 0 β 1 β π¨ π¨ π¨ 0 0 1 1 1 0 0 0 0 value π§ π§ π§ at 2 π " 1 = 1, π " 2 = 1 π $ 1 = 1, π $ 2 = 0 β¦ π " π = 1 π $ π = 2 β π Consider polynomial π 3 β π = π $ π π‘+ π " π π’ + β― β π $ π π‘ + β― β π $ π π‘ + β― : In π = 1 : π 3 β 1 = π $ 1 π‘ + π " 1 π’ + β― β π $ 1 π‘ + β― β π $ 1 π‘ + β― = π‘ β π’ β π¨ β’ In π = 2 : π 3 β 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 β π 20 Philips Research
Pinocchio: From QAP to SNARK (II) Example. π‘ π‘ π‘ value π’ π’ π’ 1 0 0 0 β 0 1 0 0 = 0 0 1 0 at 1 0 β 0 β 1 β π¨ π¨ π¨ 0 0 1 1 1 0 0 0 0 value π§ π§ π§ at 2 π $ π = π # π = 2 β π π " π = π ` π = π # π = π ` π = π $ π = π " π = 0 π # π = π $ π = π ` π = π β 1 π " π = 1 Claim: π‘ π’ π¨ π§ is solution iff there exists β π such that Claim: 3 2 6 30 is solution iff there exists β π such that Claim: 3 2 6 30 is solution iff there exists β π such that Claim: 3 2 6 30 is solution iff there exists β π such that π β 2 β π = 9π " β 27π + 18 π β 1 π β 2 β π = 3π β 3π β 1 β 24π β 18 π β 1 π β 1 π β 1 π β 2 β π = π‘π π β 2 β π = 3π $ π + π’π $ π + 2π " π + π¨π " π + 6π # π + π§π # π + 30π ` π ` π β β 3π $ π + 2π π‘π $ π + π’π " π + 6π " π + π¨π # π + 30π # π + π§π ` π ` π β 3π β π‘π $ π + 2π $ π + π’π " π + 6π " π + π¨π # π + 30π # π + π§π ` π ` π 21 Philips Research
Pinocchio: From QAP to SNARK (III) Lemma β 3 2 6 30 is solution iff there exists β π such that π β 2 β π = 9π " β 27π + 18 π β 1 π " β 3π + 2 9π " β 27π + 18 9 9 (π " β 3π + 2) β 0 β π = 9 22 Philips Research
Pinocchio: From QAP to SNARK (IV) Ξ : random, evaluation key: evaluation/verification key: π, π f , π f o ,β¦ π j p (f) ,π m p (f) , π n p (f) unknown Prove: π β 1 β β¦β π β π β β π = π Ξ β 1 β β¦β Ξ β π β β Ξ = π $ π π¦ $ + β― β π $ Ξ π¦ $ + β― β π $ π π¦ $ + β― β π $ Ξ π¦ $ + β― β π $ π π¦ $ + β― β 1 $ Ξ π¦ $ + β― β 1 verification key: prover: prover/verifier: prover/verifier: prover/verifier: π fg$ β β¦β fgh π i f π j k f 3 k lβ― π m k f 3 k lβ― π n k f 3 k lβ― g$ ? verifier: π π fg$ β β¦β fgh ,π i f k f 3 k lβ― β π π n = π π j k f 3 k lβ― ,π m k f 3 k lβ― ,π Magic crypto tool: pairing π t π r π π r ,π s = π(π t , π h ) π π π s π h iff π β π = π β π 23 Philips Research
Pinocchio: From QAP to SNARK (V) - evaluate function: get π¨, π§ compute π j x f y , π m x f y , π n x f y - evaluation key: compute β π = j z m z gn z - π, π f , π f o ,β¦ zg$ β β¦β (zgh) x f ,π m x f , π n compute π i f π j x f - π§, π i f , π j π‘, π’ x f y ,π m x f y , π n x f y verify: π π fg$ β β¦β fgh , π i f verification key: π fg$ β β¦β fgh } f 4 β π j = π(π j k f {lj o f |lj x f y , k f ,π m k f ,π n π j k f } f 4 β π m π m k f {lm o f |lm x f y ) β o f ,π m o f ,π n π j o f g$ } f 4 β π n π π n k f {ln o f |ln x f y ,π } f , π m } f , π n π j } f 24 Philips Research
Secret sharing MPC + Pinocchio VC 25 Philips Research
Recommend
More recommend