1
Easy-to-use by non- crypto experts Extensible for experts Highly Efficient secure computation backend OBLIVM: A PROGRAMMING FRAMEWORK FOR SECURE COMPUTATION CHANG LIU, XIAO SHAUN WANG, KARTIK NAYAK, YAN HUANG, ELAINE SHI SECURE COMPUTATION CHALLENGES OBLIVM ARCHITECTURE RAM-MODEL SECURE COMPUTATION A naïve approach to convert a random memory access is to perform a linear scan, and thus incurs an overhead linear to the memory capacity. Inefficient! Existing work (e.g. [3]) relies on Oblivious RAM (ORAM) to automate RAM-model secure computation, which reducing the overhead to poly-logarithmic. It also identifies opportunities to avoid ORAM, in a memory trace oblivious program [4], to further reduce the overhead to be constant. Two parties jointly perform computation over their sensitive data No party learns anything about other’s sensitive data other than output More than three decades old problem [1] References: [1] Yao, “Protocols for secure computations (extended abstract)”, FOCS 13; [2] Holzer, “Secure Two-party Computations in ANSI C”, CCS 12; [3]Liu, et al, “Automating Efficient RAM-model Secure Computation”, IEEE S&P 14; [4] Liu, et al, “Memory Trace Oblivious Program Execution”, CSF 13; [5] Wang, et al. “Oblivious Data Structures”, CCS 14; [6] Nikolaenko, “Privacy-preserving matrix factorization”, CCS 13; [7] Nikolaenko, “Privacy-preserving ridge regression on hundreds of millions of records”, IEEE S&P 13; [8] Wang, et al, “Circuit ORAM: On Tightness of the Goldreich-Ostrovsky Lower Bound”, CCS 15 Hard to program: secure computation protocols requires to represent the program in circuits. Low efficiency: automated compiler (e.g. [2]) to convert a normal C-like program into circuits will incur a big overhead for random memory accesses. Not scalable: efficient secure computation protocols usually require experts cryptographers to spend a long time to develop. Read M[i] [[]] ORAM Garbled Circuits Secure Computation ORAM requests turn into multiple DRAM accesses to obfuscate the real address OBLIVM APPROACH HAND-CRAFTING VS AUTOMATED COMPILATION Random Access Memory EVALUATION Dijkstra MST K-Means Heap Map/Set BSearch AMS CountMin Sketch Sketch 10 6 10 5 10 4 10 3 100 10 1 Speedup 9x10 5 x 7x 2500x 51x 9x10 5 x 7x 2500x 51x 5900x 7x 13x 65x 1.6x10 4 x 7x 5.5x 407x 8200x 7x 5.5x 212x 2.6x10 4 x 7x 10x 366x 1.7x10 6 x 7x 2x 1.2x10 5 x 7400x 7x 2x 530x Data size: 768KB 768KB 2MB 8GB 8GB 1GB 10GB 0.31GB Backend PL Circuit ORAM [8] HKFV12 [2] Achieve up to × speedup with respect to the best automated approach As low as . × overhead on top of non secure baseline ADOPTION Privacy-preserving data mining and recommendation system Computational biology, privacy-preserving microbiome analysis Privacy-preserving Software-Defined Networking Cryptographic MIPS processor iDash secure genome analysis competition Won an “HLI Award for Secure Multiparty ComputingMatrix Factorization 2013 ObliVM Today 5 researchers 4 months NIWJTB-CCS’13 [6] 5 researchers 3 weeks NWIJBT-IEEE S&P ’13 [7] 1 graduate student-day 10x-20x better performance Ridge Regression Same Tasks ObliVM-lang source language Non-crypto expert application developer Compiler Develop apps Impl. optimized libraries; Define new native funcs Impl. optimized gadgets; Impl new SC protocols 1 2 3 1 Infrastructure/ library developer 3 2 ObliVM-SC Backend Programming Language Features Programming Abstractions Enable Efficient Implementation Bounded Loop Improve the upper- bound for oblivious Shortest distance and MST algorithms for sparse graphs Functions: - Function Types - Phantom Functions MapReduce MapReduce(inputData, mapper, reducer, initialVal, cmp) Data Analytic Algorithms using MapReduce: - WordCount, PageRank, Histogram, Loop Coalescing Random Number - Affine Type System Oblivious Data Structures - More efficient than generic ORAM simulation [5] - The type system guarantees the implementation is secure by construction Stack, Heap, AVL Tree, bwhile(n) (u<n) { total = total + 1; i=s[u]; bfor (m) (;i<s[u+1];) { // do something i=i+1; } u=u+1; } Compiler Generate state = (u<n) ? 1 : -1; for (__itr=0; __itr<n+m+n; __itr++) { if (state==1) { total=total+1; i=s[u]; state = (i<s[u+1]) ? 2 : 3 } else if (state==2) { // do something i=i+1; state = (i<s[u+1]) ? 2 : 3 } else if (state==3) { u=u+1; state = (u<n) ? 1 : -1 } // else execution is finished } [] HOW FAR FROM PRACTICAL? Slowdown w.r.t. Insecure Baseline Distributed GWAS 130 × Hamming Distance 1.7 × 10 4 × K-Means 9.3 × 10 6 × Binary Search on 1GB Database Today 7.3 secs/query Future 0.3 secs/query New Theoretical Results

OBLIVM: A PROGRAMMING FRAMEWORK FOR SECURE …liuchang.co/poster/csaw15.pdf · • Two parties jointly perform computation over their sensitive data • No party learns anything about

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OBLIVM: A PROGRAMMING FRAMEWORK FOR SECURE …liuchang.co/poster/csaw15.pdf · • Two parties jointly perform computation over their sensitive data • No party learns anything about

• Easy-to-use by non-crypto experts

• Extensible for experts• Highly Efficient secure

computation backend

OBLIVM: A PROGRAMMING FRAMEWORK FOR SECURE COMPUTATIONCHANG LIU, XIAO SHAUN WANG, KARTIK NAYAK, YAN HUANG, ELAINE SHI

SECURE COMPUTATION

CHALLENGES

OBLIVM ARCHITECTURE

RAM-MODEL SECURE COMPUTATION

• A naïve approach to convert a random memory access isto perform a linear scan, and thus incurs an overheadlinear to the memory capacity. Inefficient!

• Existing work (e.g. [3]) relies on Oblivious RAM (ORAM)to automate RAM-model secure computation, whichreducing the overhead to poly-logarithmic. It alsoidentifies opportunities to avoid ORAM, in a memorytrace oblivious program [4], to further reduce theoverhead to be constant.

• Two parties jointly perform computation over theirsensitive data

• No party learns anything about other’s sensitive dataother than output

• More than three decades old problem [1]

References:

[1] Yao, “Protocols for secure computations (extended abstract)”, FOCS 13; [2] Holzer, “Secure Two-party Computations in ANSI C”, CCS 12; [3]Liu, et al, “Automating Efficient RAM-model Secure Computation”, IEEE S&P 14; [4] Liu, et al, “Memory TraceOblivious Program Execution”, CSF 13; [5] Wang, et al. “Oblivious Data Structures”, CCS 14; [6] Nikolaenko, “Privacy-preserving matrix factorization”, CCS 13; [7] Nikolaenko, “Privacy-preserving ridge regression on hundreds of millions of records”, IEEE S&P13; [8] Wang, et al, “Circuit ORAM: On Tightness of the Goldreich-Ostrovsky Lower Bound”, CCS 15

Hard to program: secure computation protocols requires torepresent the program in circuits.

Low efficiency: automated compiler (e.g. [2]) to convert anormal C-like program into circuits will incur a big overhead forrandom memory accesses.

Not scalable: efficient secure computation protocols usuallyrequire experts cryptographers to spend a long time to develop.

ReadM[i]

[𝑀[𝑖]]

ORAM

Garbled Circuits

Secure Computation

ORAM requests turn into multiple DRAM accesses to obfuscate the real address

OBLIVM APPROACH

HAND-CRAFTING VS AUTOMATED COMPILATION

Random Access Memory

EVALUATION

Dijkstra MST K-Means Heap Map/Set BSearch AMS CountMinSketch Sketch

106

105

104

103

100

10

1

Spee

dup

9x105x

7x

2500x

51x

9x105x

7x

2500x

51x

5900x

7x

13x

65x

1.6x104x

7x

5.5x

407x

8200x

7x

5.5x

212x

2.6x104x

7x

10x

366x

1.7x106x

7x2x

1.2x105x

7400x

7x2x

530x

Data size: 768KB 768KB 2MB 8GB 8GB 1GB 10GB 0.31GB

Backend

PL

Circuit ORAM [8]

HKFV12 [2]

Achieve up to 𝟏𝟎𝟔 ×speedup with respect to the best automated approach

As low as 𝟑. 𝟓 × overhead on top of non secure baseline

ADOPTION

Privacy-preserving data mining and recommendation system

Computational biology, privacy-preserving microbiome analysis

Privacy-preserving Software-Defined Networking

Cryptographic MIPS processor

iDash secure genome analysis competitionWon an “HLI Award for Secure Multiparty Computing”

Matrix Factorization

2013 ObliVM Today

5 researchers 4 monthsNIWJTB-CCS’13 [6]

5 researchers 3 weeksNWIJBT-IEEE S&P ’13 [7]

1 graduate student-day

10x-20x better performanceRidge Regression

Same Tasks

ObliVM-langsource language

Non-crypto expert

applicationdeveloper

Compiler

Develop apps Impl. optimized libraries; Define new native funcs

Impl. optimized gadgets; Impl new SC protocols

1 2 3

1

Infrastructure/library developer

32

ObliVM-SCBackend

Programming Language Features

Programming AbstractionsEnable

Efficient Implementation

Boun

ded L

oop Improve the upper-

bound for oblivious Shortest distance and MST algorithms for sparse graphs

Functions:- Function Types- Phantom Functions

MapReduceMapReduce(inputData, mapper, reducer, initialVal, cmp)

Data Analytic Algorithms using MapReduce:- WordCount, PageRank,

Histogram, …

Loop Coalescing

Random Number- Affine Type System

Oblivious Data Structures- More efficient than generic ORAM simulation [5]- The type system guarantees the implementation

is secure by construction

Stack, Heap, AVL Tree, …

bwhile(n) (u<n) {total = total + 1;i=s[u];bfor (m) (;i<s[u+1];) {

// do somethingi=i+1;

}u=u+1; }

Compiler

Generate

state = (u<n) ? 1 : -1;for (__itr=0; __itr<n+m+n; __itr++) {

if (state==1) { total=total+1; i=s[u];state = (i<s[u+1]) ? 2 : 3

} else if (state==2) { // do somethingi=i+1; state = (i<s[u+1]) ? 2 : 3

} else if (state==3) {u=u+1; state = (u<n) ? 1 : -1

} // else execution is finished}

[𝑖]

HOW FAR FROM PRACTICAL?

Slowd

own w

.r.t.

Insec

ure Ba

selin

e Distributed GWAS 130 ×

Hamming Distance 1.7 × 104 ×

K-Means 9.3 × 106 ×

Binary Search on 1GB DatabaseToday 7.3 secs/queryFuture 0.3 secs/query

New Theoretical Results