Knowledge Inference for Optimizing Secure Multi-party Computation

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Secure Evaluation of Multivariate Polynomials
Satisfiability Modulo Theories (An introduction)
Foundations of Cryptography Lecture 10 Lecturer: Moni Naor.
Verification of Functional Programs in Scala Philippe Suter (joint work w/ Ali Sinan Köksal and Viktor Kuncak) ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE,
Simplified Gated Assignment Surinder Jain Supervisor : Bernhard Scholz Assignment 3 – INFO5993.
1 1 Regression Verification for Multi-Threaded Programs Sagar Chaki, SEI-Pittsburgh Arie Gurfinkel, SEI-Pittsburgh Ofer Strichman, Technion-Haifa Originally.
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
Wysteria: A Programming Language for Generic, Mixed-Mode Multiparty Computations Aseem Rastogi Matthew Hammer, Michael Hicks (University of Maryland, College.
Timed Automata.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
White Box Testing and Symbolic Execution Written by Michael Beder.
An architecture for Privacy Preserving Mining of Client Information Jaideep Vaidya Purdue University This is joint work with Murat.
1 Regression-Verification Benny Godlin Ofer Strichman Technion.
White Box Testing and Symbolic Execution Written by Michael Beder.
White Box Testing and Symbolic Execution Written by Michael Beder.
Describing Syntax and Semantics
On Everlasting Security in the Hybrid Bounded Storage Model Danny Harnik Moni Naor.
Adaptively Secure Broadcast, Revisited
1 Program Correctness CIS 375 Bruce R. Maxim UM-Dearborn.
CS 363 Comparative Programming Languages Semantics.
Program Correctness. 2 Program Verification An object is a finite state machine: –Its attribute values are its state. –Its methods optionally: Transition.
International Technology Alliance in Network & Information Sciences Knowledge Inference for Securing and Optimizing Secure Computation Piotr (Peter) Mardziel,
Correctness Proofs and Counter-model Generation with Authentication-Protocol Logic Koji Hasebe Mitsuhiro Okada Department of Philosophy, Keio University.
Chapter 5: Sequences, Mathematical Induction, and Recursion 5.5 Application: Correctness of Algorithms 1 [P]rogramming reliability – must be an activity.
Reasoning about programs March CSE 403, Winter 2011, Brun.
Semantics In Text: Chapter 3.
COP4020 Programming Languages Introduction to Axiomatic Semantics Prof. Robert van Engelen.
CSC310 © Tom Briggs Shippensburg University Fundamentals of the Analysis of Algorithm Efficiency Chapter 2.
More on Correctness. Prime Factorization Problem: Write a program that computes all the prime factors of a given number Solution (Idea): Factors are less.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
13 Aug 2013 Program Verification. Proofs about Programs Why make you study logic? Why make you do proofs? Because we want to prove properties of programs.
1 CSE 326: Data Structures: Graphs Lecture 24: Friday, March 7 th, 2003.
KNOWLEDGE-ORIENTED MULTIPARTY COMPUTATION Piotr (Peter) Mardziel, Michael Hicks, Jonathan Katz, Mudhakar Srivatsa (IBM TJ Watson)
Knowledge Repn. & Reasoning Lecture #9: Propositional Logic UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2005.
Computability Examples. Reducibility. NP completeness. Homework: Find other examples of NP complete problems.
1 Recursively Enumerable and Recursive Languages.
P & NP.
Topic 36: Zero-Knowledge Proofs
Chapter 7. Propositional and Predicate Logic
Computer Science cpsc322, Lecture 20
On the Size of Pairing-based Non-interactive Arguments
Protocol Composition Logic II
This statement is false.
Great Theoretical Ideas in Computer Science
Topic 14: Random Oracle Model, Hashing Applications
A Verified DSL for MPC in
Course Business I am traveling April 25-May 3rd
Logics for Data and Knowledge Representation
Lecture 5 Floyd-Hoare Style Verification
Axiomatic semantics Points to discuss: The assignment statement
CSE 311 Foundations of Computing I
Programming Languages and Compilers (CS 421)
How Hard Can It Be?.
Logic for Computer Security Protocols
Semantics In Text: Chapter 3.
NP-completeness The Chinese University of Hong Kong Fall 2008
Algorithms and Problem Solving
CS21 Decidability and Tractability
Proofs of Correctness: An Introduction to Axiomatic Verification
Search techniques.
CSE 589 Applied Algorithms Spring 1999
Program Verification with Hoare Logic
Impossibility of SNARGs
Program correctness Model-checking CTL
Programming Languages and Compilers (CS 421)
COP4020 Programming Languages
Presentation transcript:

Knowledge Inference for Optimizing Secure Multi-party Computation Aseem Rastogi Piotr (Peter) Mardziel Michael Hicks Matthew Hammer

Secure Computation A B Without revealing A to Bob and B to Alice Compute f(A, B) Without revealing A to Bob and B to Alice 12/4/2018

Using a Trusted Third Party B f(A, B) f(A, B) A B Compute f(A, B) Without revealing A to Bob and B to Alice 12/4/2018

Secure Computation Protocols B f(A, B) Cryptographic Protocol A B Compute f(A, B) Without revealing A to Bob and B to Alice 12/4/2018

Example – Joint Median Computation { A1, A2 }, { B1, B2 } Assume: A1 < A2 and B1 < B2 and Distinct(A1, A2, B1, B2) a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; 12/4/2018

Example – Joint Median Computation a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; Secure Computation 12/4/2018

Performance Optimization Cryptographic protocols prohibitively expensive Performance Optimization [F. Kerschbaum, CCS’11] Parties can infer some intermediate values eventually Once they know the output Revealing these early does not compromise security* Offload computation over known data to local hosts * In a semi-honest (honest-but-curious) threat model 12/4/2018

Questions For a Secure Multi-party Computation (SMC) program: Can we infer which variables are known to a party ? Can we infer an evidence for a party’s knowledge of a variable 12/4/2018

Contributions Formalization of knowledge Knowledge inference algorithm Formalize what it means for a party p to know a variable x Knowledge inference algorithm Algorithm to infer if p knows x Proof of soundness and completeness Constructive knowledge inference algorithm Algorithm to construct an evidence of p’s knowledge of x Proof of soundness and completeness 12/4/2018

Median Example – Analysis a = A1 ≤ B1; Alice and bob know a and d b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; 12/4/2018

Median Example – Analysis from Bob’s Perspective a = A1 ≤ B1; d = (output ≠ B1 Ʌ output ≠ B2) Recall: Distinct(A1, A2, B1, B2) b = a ? A2 : A1; a = true b = A2 c = B1 d = true output = A2 d = false output = B1 a = false b = A1 c = B2 output = A1 output = B2 A1 ≤ B1 ∧ A2 ≤ B1 A1 ≤ B1 ∧ A2 > B1 A1 > B1 ∧ A2 ≤ B1 A1 > B1 ∧ A2 > B1 a = (output ≤ B1) Recall: B1 < B2 c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; 12/4/2018

Optimized Joint Median Computation a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1: B2; d = b ≤ c; output = d ? b : c; d d Secure Computation 12/4/2018

Formalization of Knowledge Party p knows x if: x can be uniquely determined by p’s inputs I and outputs O Two program executions that agree on I and O, also agree on x 12/4/2018

Knowledge in Median Example Let states σ map program variables to values a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; Bob knows a, if for all final states σ1 and σ2 s.t. σ1[B1] = σ2[B1], σ1[B2] = σ2[B2], and σ1[output] = σ2[output], we have, σ1[a] = σ2[a] 12/4/2018

Knowledge Inference Algorithm Compute postcondition of the program Sound approximation of final program states 12/4/2018

Example Postcondition for Median a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; ϕ1 = (A1 ≤ B1) ∧(a = true) ∧(b = A2)∧(c = B1)∧(b ≤ c)∧(d = true)∧(output = b) ϕ2 = (A1 ≤ B1) ∧(a = true) ∧(b = A2)∧(c = B1)∧(b > c)∧(d = false)∧(output = c) ϕ3 = …, ϕ4 = … φmedian = ϕ1 V ϕ2 V ϕ3 V ϕ4 12/4/2018

Knowledge Inference Algorithm Recall: we need to prove a property of any two program runs Compute postcondition of the program Use self-composition to simulate two program runs 12/4/2018

Self Composed Median Example a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; φself-composed = φmedian ∧ φ’median a’ = A’1 ≤ B’1; b’ = a’ ? A’2 : A’1; c’ = a’ ? B’1 : B’2; d’ = b’ ≤ c’; output’ = d’ ? b’ : c’; 12/4/2018

Knowledge Inference Algorithm Compute postcondition of the program Use self-composition to simulate two program runs Derive knowledge formula and solve using SMT solver 12/4/2018

Deriving Knowledge Formula a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; Does Bob know a ? φmedian ∧ φ’median a’ = A’1 ≤ B’1; b’ = a’ ? A’2 : A’1; c’ = a’ ? B’1 : B’2; d’ = b’ ≤ c’; output’ = d’ ? b’ : c’; ∧ B1 = B’1 ∧ B2 = B’2 ∧ output = output’ ⇒ a = a’ 12/4/2018

Solving Using SMT Solver φmedian ∧ φ’median∧ A1 = A’1 ∧ A2 = A’2∧ output = output’ ⇒ a = a’ Valid ? Depending on completeness of postconditions SMT Solver Yes No Bob knows a Bob may / does not know a 12/4/2018

Properties of Knowledge Inference Soundness If algorithm returns p knows x, then p and x satisfy the formal definition of knowledge Completeness If p and x satisfy the formal definition of knowledge, then algorithm returns p knows x Loop-free language (SMCs do not admit loops) 12/4/2018

Constructive Knowledge Inference Infer an evidence for p’s knowledge of x Evidence is a formula for x in terms of p’s input and output variables 12/4/2018

Constructive Knowledge Inference Algorithm Formulate knowledge as an invariant of the program Use template based verification to infer the invariant (Srivastava et. al., PLDI’09) 12/4/2018

Setting up Constructive Knowledge Inference Does Bob know a ? (A1 < A2 ∧ B1 < B2 ∧ Distinct(A1, A2, B1, B2)) a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; Variables in τ ϵ { B1, B2, output } output = d ? b : c; assert(a = τ) 12/4/2018

Setting up Constructive Knowledge Inference Does Bob know a ? (A1 < A2 ∧ B1 < B2 ∧ Distinct(A1, A2, B1, B2)) a = A1 ≤ B1; Candidate predicates for τ: b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; { v1 op v2 | v1, v2 ϵ { B1, B2, output }, op ϵ { <, ≤, >, ≥, =, ≠ } } output = d ? b : c; assert(a = τ) 12/4/2018

Constructive Knowledge Inference Algorithm Derived from template-based verification Given (m, n), searches solutions in DNF(m, n) Efficient search: O(|Q|m + |Q|n) queries to SMT solver As opposed to naïve O(|Q|mn) 12/4/2018

Constructive Knowledge Inference for Median a = A1 ≤ B1; b = a ? A2 : A1; c = a ? B1 : B2; d = b ≤ c; output = d ? b : c; φpre = A1 < A2 ∧ B1 < B2 ∧ Distinct(A1, A2, B1, B2) a = output ≥ A1 (for Alice) a = output ≤ B1 (for Bob) d = output = A1 V output = A2 (for Alice) d = output ≠ B1 Ʌ output ≠ B2 (for Bob) 12/4/2018

Properties of Constructive Knowledge Inference Soundness If algorithm infers a formula τ for party p and variable x, then x = τ at the end of the program Moreover, p can compute τ from its inputs and outputs Completeness Similar to the completeness of verification techniques If a solution τ exists in the template structure, our algorithm finds it 12/4/2018

Connection to Information Flow Declassification Policies Knowledge Inference similar to deciding delimited release [Sabelfeld et. al., ISSS’04] Constructive knowledge inference similar to deciding required release [S. Chong, CSF‘10] See our paper for more details ! 12/4/2018

Contributions Formalization of knowledge Knowledge inference algorithm Formalize what it means for a party p to know a variable x Knowledge inference algorithm Algorithm to infer if p knows x Proof of soundness and completeness Constructive knowledge inference algorithm Algorithm to construct an evidence of p’s knowledge of x Proof of soundness and completeness 12/4/2018

Ongoing Work Core calculus for writing M3PC program Formal type-directed translation to target protocol Translation exists for all well-typed programs Source and target semantics preserve knowledge Next step: Given inferred knowledge facts, automatically generate optimal M3PC programs 12/4/2018