3-Party Secure Computation of Oblivious RAM Sky Faber (UC Irvine) Stanislaw Jarecki (UC Irvine) Sotirios Kentros (Salem State U) Boyang Wei (UC Irvine)

Slides:



Advertisements
Similar presentations
Polylogarithmic Private Approximations and Efficient Matching
Advertisements

Constant-Round Private Database Queries Nenad Dedic and Payman Mohassel Boston UniversityUC Davis.
Mix and Match: A Simple Approach to General Secure Multiparty Computation + Markus Jakobsson Bell Laboratories Ari Juels RSA Laboratories.
Private Inference Control David Woodruff MIT Joint work with Jessica Staddon (PARC)
Private Inference Control
Efficient Private Approximation Protocols Piotr Indyk David Woodruff Work in progress.
Secure Evaluation of Multivariate Polynomials
Oblivious Branching Program Evaluation
Counting the bits Analysis of Algorithms Will it run on a larger problem? When will it fail?
Kai-Min Chung (Academia Sinica) joint work with Zhenming Liu (Princeton) and Rafael Pass (Cornell NY Tech)
Theory of Computing Lecture 3 MAS 714 Hartmut Klauck.
Quick Review of Apr 10 material B+-Tree File Organization –similar to B+-tree index –leaf nodes store records, not pointers to records stored in an original.
CS555Topic 241 Cryptography CS 555 Topic 24: Secure Function Evaluation.
Software Certification and Attestation Rajat Moona Director General, C-DAC.
Amortizing Garbled Circuits Yan Huang, Jonathan Katz, Alex Malozemoff (UMD) Vlad Kolesnikov (Bell Labs) Ranjit Kumaresan (Technion) Cut-and-Choose Yao-Based.
Genome-scale disk-based suffix tree indexing Benjarath Phoophakdee Mohammed J. Zaki Compiled by: Amit Mahajan Chaitra Venus.
General Cryptographic Protocols (aka secure multi-party computation) Oded Goldreich Weizmann Institute of Science.
Yan Huang, Jonathan Katz, David Evans University of Maryland, University of Virginia Efficient Secure Two-Party Computation Using Symmetric Cut-and-Choose.
Secure Computation of Constant-Depth Circuits with Applications to Database Search Problems Omer Barkol Yuval Ishai Technion.
BTrees & Bitmap Indexes
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
Black-Box Garbled RAM Sanjam Garg UC Berkeley Based on join works with
CSE 373 Data Structures Lecture 15
Practical Techniques for Searches on Encrypted Data Yongdae Kim Written by Song, Wagner, Perrig.
Time Complexity Dr. Jicheng Fu Department of Computer Science University of Central Oklahoma.
Oblivious Data Structures Xiao Shaun Wang, Kartik Nayak, Chang Liu, T-H. Hubert Chan, Elaine Shi, Emil Stefanov, Yan Huang 1.
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
1 Time Analysis Analyzing an algorithm = estimating the resources it requires. Time How long will it take to execute? Impossible to find exact value Depends.
Insert presenter logo here on slide master. See hidden slide 4 for directions  Session ID: Session Classification: SEUNG GEOL CHOI UNIVERSITY OF MARYLAND.
Page 1 Efficient Two-Party Secure Computation on Committed Inputs Stanislaw Jarecki, UC Irvine Vitaly Shmatikov, UT Austin.
Télécom 2A – Algo Complexity (1) Time Complexity and the divide and conquer strategy Or : how to measure algorithm run-time And : design efficient algorithms.
Making Secure Computation Practical IBM: Craig Gentry, Shai Halevi, Charanjit Jutla, Hugo Krawczyk, Tal Rabin, NYU: Victor Shoup SRI: Mariana Raykova Stanford:
On the Communication Complexity of SFE with Long Output Daniel Wichs (Northeastern) joint work with Pavel Hubáček.
1 Secure Multi-party Computation Minimizing Online Rounds Seung Geol Choi Columbia University Joint work with Ariel Elbaz(Columbia University) Tal Malkin(Columbia.
CS 361 – Chapters 8-9 Sorting algorithms –Selection, insertion, bubble, “swap” –Merge, quick, stooge –Counting, bucket, radix How to select the n-th largest/smallest.
CS 61B Data Structures and Programming Methodology July 21, 2008 David Sun.
On the Cryptographic Complexity of the Worst Functions Amos Beimel (BGU) Yuval Ishai (Technion) Ranjit Kumaresan (Technion) Eyal Kushilevitz (Technion)
Sets of Digital Data CSCI 2720 Fall 2005 Kraemer.
Secure Computation Lecture Arpita Patra. Recap >> Improving the complexity of GMW > Step I: Offline: O(n 2 c AND ) OTs; Online: i.t., no crypto.
UC/Garbled Searchable Symmetric Encryption Kaoru Kurosawa Ibaraki University, Japan.
Asymptotic Behavior Algorithm : Design & Analysis [2]
Evidence from Content INST 734 Module 2 Doug Oard.
Vladimir Kolesnikov (Bell Labs) Steven M. Bellovin, Seung Geol Choi, Ben Fisch, Wesley George, Angelos Keromytis, Fernando Krell, Abishek Kumarasubramanian,
Cryptography Against Physical Attacks Dana Dachman-Soled University of Maryland
Onion ORAM: A Constant Bandwidth Blowup ORAM
Searching and Sorting Searching: Sequential, Binary Sorting: Selection, Insertion, Shell.
Efficient Private Matching and Set Intersection Mike Freedman, NYU Kobbi Nissim, MSR Benny Pinkas, HP Labs EUROCRYPT 2004.
Searching Topics Sequential Search Binary Search.
Private Information Retrieval Based on the talk by Yuval Ishai, Eyal Kushilevitz, Tal Malkin.
Aggelos Kiayias, Nikos Leonardos, Helger Lipmaa, Kateryna Pavlyk, and Qiang Tang FIT 2016, February 6, 2016.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Improved OT Extension for Transferring Short Secrets Vladimir Kolesnikov (Bell Labs) Ranjit Kumaresan (Technion)
Secret Sharing Schemes: A Short Survey Secret Sharing 2.
Secure Computation Basics Yan Huang Indiana University May 9, 2016.
Multi-Party Computation r n parties: P 1,…,P n  P i has input s i  Parties want to compute f(s 1,…,s n ) together  P i doesn’t want any information.
Oblivious Parallel RAM: Improved Efficiency and Generic Constructions
Fast Actively Secure OT Extension For Short Secrets
Foundations of Secure Computation
Committed MPC Multiparty Computation from Homomorphic Commitments
Laconic Oblivious Transfer and its Applications
Using low-degree Homomorphism for Private Conjunction Queries
Cryptography after DES
Verifiable Oblivious Storage
Secure Computation of Constant-Depth Circuits with Applications to Database Search Problems Omer Barkol Yuval Ishai Technion.
Multi-Party Computation: Second year
Efficient State Update for Key Management
MPC Scenario 1. “Privacy-protected contingency tables”
Path Oram An Extremely Simple Oblivious RAM Protocol
CRYP-F02 Actively Secure 1-out-of-N OT Extension with Application to Private Set Intersection Peter Scholl (University of Bristol) Michele Orrù (ENS Paris)
Time Complexity and the divide and conquer strategy
Presentation transcript:

3-Party Secure Computation of Oblivious RAM Sky Faber (UC Irvine) Stanislaw Jarecki (UC Irvine) Sotirios Kentros (Salem State U) Boyang Wei (UC Irvine) June 23, 2015 ESSA, Bertinoro

Presentation Plan 1. Intro: Why Secure Computation of ORAM (SC-ORAM)? 2. Background:Secure Computation for Tree-ORAM [Shi+’11] 3. Our Protocol:3-Party setting simplifies secure computation:  3-Party Shared Conditional OT  Data-movement Logic via GC’s  Data-movement itself by (inexpensive) OT’s 4. Looking Forward:Extensions, Directions, Questions 3-Party Secure Computation of (O)RAM

Input: secret-sharing of array D secret-sharing of index x (and value v) Output:secret-sharing of D[x] (or s-sharing of modified D) F ORAM D ss s 1 s s n ⟷ D[x] P 1 P P n (x 1 x x n ) ⟷ x Secure Computation of (O)RAM Access (SC-ORAM)

P 1 P P n F ORAM D (x 1 x x n ) ⟷ x s 1 s s n ⟷ D[x] ss Compare to Oblivious RAM [GO’96,...] : ORAM: Client & Server, D,x hidden to S, but known to Client SC-ORAM: n Players, D,x hidden to any t out of n players SC-ORAM = Sec.Comp of F ORAM : sharing of D,x ⟶ sharing of D[x]

Secure Computation of (O)RAM Access (SC-ORAM) F ORAM D (x 1 x x n ) ⟵ x s 1 s s n ⟶ s = D[x] ss Compare to Multi-Server ORAM [OS’97, LO’14] : n-Server ORAM: Single Client, no privacy against Client n-Server Private DB: Many Clients, one query ⇒ one entry of D 1 st Application: n-Server Private Database (  n-Server SPIR)* Client SC-ORAM = Sec.Comp of F ORAM : sharing of D,x ⟶ sharing of D[x] P 1 P P n

Secure Computation of (O)RAM Access (SC-ORAM) P 1 P P n F ORAM F RAM-PROGRAM D2D2 var stack x,y,z,... Instr 1,2,... Each Instruction Computed by Standard MPC (Yao, BGW,...) read(x) or write(x,v) v=D(x),v 2 nd Application: Sec. Comp. of RAM Program [OS’97,DMN’11,GKKKMRV’12] Sec. Comp. of RAM programs: Inputs can be entered at polylog overhead MPC of P(D) costs O(|instr P |) + (#r/w)*polylog(|D|)) SC-ORAM = Sec.Comp of F ORAM : sharing of D,x ⟶ sharing of D[x] ⇒ MPC on “big data” secret- shared values

Generic SC-ORAM Construction [OS’97,GKKKMRV’12] Client 1. Take (Client-Server) ORAM: ORAM Scheme + Secure Comp. of Client’s Code ⟶ SC-ORAM Server MK, xEnc MK (D; r) D[x] Recall: ORAM: 1 Server, D private, x and D[x] (and D) open to Client SC-ORAM: >1 Server, D,x hidden to any t out of n players Enc MK (D; r’)

Client 2 ORAM Scheme + Secure Comp. of Client’s Code Server MK 2, x 2 Enc MK (D; r) v2v2 2. Compute Client’s Code using 2PC (/MPC) Client 1 MK 1, x 1 v1v1 [2PC] MK, x D[x] = v 1 ⨁ v 2 P1P1 P2P2 Recall: ORAM: 1 Server, D private, x and D[x] (and D) open to Client nC-ORAM: >1 Server, D,x hidden to any t out of n players Generic SC-ORAM Construction [OS’97,GKKKMRV’12]

ORAM Scheme + Secure Comp. of Client’s Code 3. ORAM + SC give us SC-ORAM: sharing of D & x  sharing of D[x] Client 2 Server MK 2, x 2 Enc MK (D; r)v2v2 Client 1 MK 1, x 1 v1v1 [2PC] P1P1 P2P2 D[x] = v 1 ⨁ v 2 MK, x For efficient MPC of RAM programs we need ORAM whose Client is “Secure-Computation Friendly” Generic SC-ORAM Construction [OS’97,GKKKMRV’12] [GKKKMRV’12a]: GO’96 ORAM + Yao + PK-based SS-OPRF gadget [GKKKMRV’12b]: Tree-ORAM [Shi+’11] + Yao [WHCSS’14]: Tree-ORAM with modifications + 2PC ⇒ circuits smaller but still large, e.g. 4.6M gates for |D|=2 20

Our Question: Would SC-ORAM be faster given 3 players with honest majority? Why hope so? 3 Parties ⇒ 2 Parties with correlated randomness Example: Oblivious Transfer with Precomputation [Bea’95] P3P3 z 0, z 1 z 0, z 1 : random strings c : random bit z c, c m 0 ⨁ z π, m 1 ⨁ z  π π = b ⨁ c m 0, m 1 P1P1 P2P2 bit b 2 Parties: OT needs PK crypto [IR’89] 3 Parties: OT needs 4 xor ops b=0 ⇒ c= π ⇒ z c = z π ⇒ P 2 can read m 0 b=1 ⇒ c= π ⇒ z c = z  π ⇒ P 2 can read m 1

Our Question: Would SC-ORAM be faster given 3 players with honest majority? Is trading off security for efficiency a good deal? Which system is better for some privacy-protecting application: System #1: needs 2 servers security protected if only 1 out of 2 are corrupted each query takes 10 seconds System #2: needs 3 servers security protected if only 1 out of 3 are corrupted each query takes 100 milliseconds Who knows? Let’s first see what efficiency we can achieve for (t,n) = (1,3)!

Our Question: Would SC-ORAM be faster given 3 players with honest majority? Our result: 3PC for SC-ORAM with (k · log 3 |D|) cost per access* k = security parameter *(assuming O(1) record length: better for larger records) [WHCSS’14] achieve same asymptotic bounds for 2PC-ORAM But in practice the difference might be 2 orders of magnitude: [WHCSS’14] uses GCs with 4.6M – 13M gates for |D| = 2 20 to the smallest-circuit variant uses heuristic estimates for some parameter choices - 2PC GCs need O(k) public key ops for OT’s Our prototype runs on 3 amazon servers connected by LAN, and 70% of its CPU cost is GC’s with 69K – 233K gates for above |D|’s + for conservative parameters + not counting several “easy” optimizations

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] Basic structure of Tree-ORAM: Recursive Tree+Array Lookup Split address space of m bits into h chunks of τ=m/h bits each N = [N 1 | N 2 |... |N h ] e.g. m=30, h=6, τ=|N i |=5 N1N1 L1L1 Server Client retrieve & decrypt T1T1 T0T0 2τ2τ L1L1 d i ·w... N1N1 L2L2 N2N2 T2T2 L2L2 N 1 |N 2 L3L3 N3N3 and so on T h

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] Basic structure of Tree-ORAM: Recursive Tree+Array Lookup N1N1 L1L1 Server Client T1T1 T0T0 2τ2τ L1L1 d i ·w... N1N1 L2L2 N2N2 T2T2 L2L2 N 1 |N 2 L3L3 N3N3 and so on T h Split address space of m bits into h chunks of τ=m/h bits each N = [N 1 | N 2 |... |N h ] e.g. m=30, h=6, τ=|N i |=5 Client’s code is a sequence of array look-ups... 3PC idea: ⦁ secret-share all data (T i ’s and N) between P 1 & P 2 send matching entry to P 3 via Shared Conditional OT

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] 3PC Tool: Conditional OT on Shared Inputs P1P1 P2P2 P3P3 N * = N * 1 ⨁ N * 2 N i = N i 1 ⨁ N i 2 for all i L i = L i 1 ⨁ L i 2 for all i Ni1Ni1 Li1Li1... Ni2Ni2 Li2Li2 N 1 *, N *, N 2 *, L i for (N i,L i ) s.t. N i =N * Client’s code is a sequence of array look-ups... 3PC idea: ⦁ secret-share all data (T i ’s and N) between P 1 & P 2 send matching entry to P 3 via Shared Conditional OT NiNi LiLi... N1N1 L1L1 NnNn LnLn

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] 3PC Tool: Conditional OT on Shared Inputs Client’s code is a sequence of array look-ups... 3PC idea: ⦁ secret-share all data (T i ’s and N) between P 1 & P 2 send matching entry to P 3 via Shared Conditional OT P3P3 P1P1 P2P2 Ni1Ni1 Li1Li1... Ni2Ni2 Li2Li2 N * = N * 1 ⨁ N * 2 N i = N i 1 ⨁ N i 2 for all i L i = L i 1 ⨁ L i 2 for all i Note that N* = N i iff N * 1 ⨁ N i 1 = N * 2 ⨁ N i 2 a i b i L i for (N i,L i ) s.t. N i =N * L i 1 ⨁ L i 2 for i s.t. a i = b i N 1 *, N 2 *,

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] 3PC Tool: Conditional OT on Shared Inputs P3P3 P1P1 P2P2 Ni1Ni1 Li1Li1... Ni2Ni2 Li2Li2 N * = N * 1 ⨁ N * 2 N i = N i 1 ⨁ N i 2 for all i L i = L i 1 ⨁ L i 2 for all i Note that N* = N i iff N * 1 ⨁ N i 1 = N * 2 ⨁ N i 2 a i b i N 1 *, N 2 *, L i 1 ⨁ L i 2 for i s.t. a i = b i aiai bibi This is a String Equality Problem: 2PC, Yao’s GC: O(k·n) SHAs 2PC, DH-KE: O(n) Exps 3PC, correlated $: 4n AESs ( cost of secure transmission of retrieved ORAM path)

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] 3PC Tool: Conditional OT on Shared Inputs P1P1 P2P2 P 1 & P 2 know same PRF key k L i 1 ⨁ L i 2 for i s.t. a i = b i Li1Li1... aiai Li2Li2 bibi a i =b i ⇒ v i =w i ⇒ C i =D i ⇒ P 3 recovers L i 1 ⨁ L i 2 i-th PRF inputs masked by OTP i P3P3 Problem: P 3 learns position i where the a i = b i match occurs! (In the Tree-ORAM this means learning the searched address) 3PC Solution: P 1 & P 2 shift their lists by (correlated) random offset j ⇒ ( i,j) is a secret-sharing of the located array entry

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] The other half: Eviction N1N1 L1L1 Server Client T1T1 T0T0 2τ2τ L1L1 w... N1N1 L2L2 N2N2 T2T2 L2L2 N 1 |N 2 L3L3 N3N3 and so on T h Eviction: In retrieved path, move any array as far down towards the leaf in its “target label” L. SC-ORAM: To reduce circuit size, use constrained eviction strategy, e.g choose only O(1) arrays to move in each bucket move arrays only one hop down more complex strategies for Tree-ORAM with stash we use these

Our 3P-SC-ORAM : 3PC for Tree-ORAM [Shi+’11] The other half: Eviction N1N1 L1L1 Server Client T1T1 T0T0 2τ2τ L1L1 w... N1N1 L2L2 N2N2 T2T2 L2L2 N 1 |N 2 L3L3 N3N3 and so on T h Eviction: Move O(1) arrays one hop down towards their “target leaf” L. 2PC: Oblivious shift on all path data: GC on O(w·2 τ ·log 2 |D|) bits 3PC: (I) P 3 learns movement logic (src/dst indexes) on secret-shared path with randomly permuted buckets: GC on 2w·log|D| bits (II) P 3 assists P 1,P 2 data movement, using 3-Party OT ( sec.trans.)

 3P Sec.Comp.-ORAM, seemingly faster than 2P SC-ORAM’s asymptotic close to 2PC SC-ORAM [WHCSS’14] constants much smaller e.g. GC with 69K vs. 4M (*) gates costs “close” (w/o GC’s) to underlying Client-Server ORAM # rounds (+3), bandwidth and computation ( 7x)  Implementation tested on Amazon Web Servers 80ms/query for |D|=2 20, 105ms for |D|=2 28 on 3 lowest-tier (free!) servers servers located in 3 different “availability zones” (probably same LAN) off-line precomputation  8x (little attention paid to off-line...) will make it open source  Simple improvements TBD: “linear scan” on address prefix, pack D records (if small) with address postfix all GC’s use 2x2 gates: Eval can be done with single SHA op. ⇒ 2x faster  Other directions (examples): parallel access, batched access: more complex eviction circuit... use stash [SDSFRYD’13] for O(1) buckets: more complex eviction circuit... general (t,n) ? The “P 1 /P 2 permute & P 3 gets the outputs” idea doesn’t scale... secure-computation friendly multi-server ORAM, comp. to O(log n) of [LO’14] extend ORAM’s functionality (Array) to other datastructures for RAM programs Conclusions, Extensions, Directions