overview of monomi

49
Processing Analytical Queries over Encrypted Data Stephen Tu, M. Frank Kaashoek, Samuel Madden, and Nickolai Zeldovich 39th International Conference on Very Large Data Bases Riva del Garda, Trento, Italy, August 2013 SWIM Seminar May 19th, 2015 Mateus Cruz

Upload: mateus-s-h-cruz

Post on 27-Jan-2017

74 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Overview of MONOMI

Processing Analytical Queriesover Encrypted Data

Stephen Tu, M. Frank Kaashoek,Samuel Madden, and Nickolai Zeldovich

39th International Conference on Very Large Data BasesRiva del Garda, Trento, Italy, August 2013

SWIM SeminarMay 19th, 2015Mateus Cruz

Page 2: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

2 / 31

Page 3: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

3 / 31

Page 4: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OVERVIEW

System called MONOMII Extension of CryptDB

Analytical queries over encrypted dataI Data protected against server compromises

Modest overheadI Slowdown of 1.03 to 2.33×

4 / 31

Page 5: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

MAIN IDEAS

Split client/server executionOptimization techniques

I Per-row precomputationI Space-efficient encryptionI Grouped homomorphic additionI Pre-filtering

DesignerI Physical data layout

PlannerI Efficient execution plan for queries

5 / 31

Page 6: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

USED ENCRYPTION SCHEMES

6 / 31

Page 7: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

ARCHITECTURE

7 / 31

Page 8: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

8 / 31

Page 9: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

INTUITION

The server cannot execute all queriesI Limitations of cryptosystems

Cannot transfer all data to the clientI Large amount of data

Divide executionI Execute as much as possible on serverI Transfer data to the client when it is not

possible to execute on the server

9 / 31

Page 10: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

LIMITATIONS OF SERVER EXECUTION

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty) * 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

10 / 31

Page 11: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

LIMITATIONS OF SERVER EXECUTION

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM

Addition and comparison in-volve incompatible encryptionschemes

(ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty) * 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

10 / 31

Page 12: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

LIMITATIONS OF SERVER EXECUTION

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

No efficient encryptionscheme allows multiplica-tion of two encrypted values

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

10 / 31

Page 13: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 14: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET

Precomputedmultiplication

)FROM ... WHERE

n name DET = 0xabcdefGROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 15: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1

Reference tothe columnsof the childoperator

]LocalProjection

exprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 16: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

Deterministicencryption of thevalue :1

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 17: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP

Concatenation of all valuesfrom each GROUP BY group

(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 18: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 19: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

Outmost SELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 20: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

Innermost SELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 21: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecrypt

Decrypts the dataat the client

pos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 22: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs:

Multiplicationby constant

[sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 23: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter:

Filter referring tothe HAVING clause

sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 24: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSortkey:[$1]

LocalProjection

Selection of ps partkey andof the summation of the pre-computed expression

exprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 25: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPLIT QUERY PLAN

Example (TPC-H Q11)SELECT ps partkey,

SUM (ps supplycost * ps availqty)AS VALUE

FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)

* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )

ORDER BY value DESC;

LocalSort

Sorting referring to theORDER BY clause

key:[$1]

LocalProjectionexprs: [$0, sum($1)]

LocalGroupFilterfilter: sum($1) > subquery0()

LocalDecryptpos: [$0, $1]

LocalProjectionexprs: [sum($0) * 0.0001]

RemoteSQLSELECT

ps parkey DET,GROUP(precomp DET)

FROM ... WHEREn name DET = 0xabcdef

GROUP BY ps partkey DET

LocalDecryptpos: [$0]

RemoteSQLSELECT

GROUP(precomp DET)FROM ... WHERE

n name DET = 0xabcdef

11 / 31

Page 26: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

12 / 31

Page 27: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

PER-ROW PRECOMPUTATION

Prior computation of certain expressionsMaterialized using additional columnsDecision made by the designer module

ExampleSUM (ps supplycost * ps availqty)

13 / 31

Page 28: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPACE-EFFICIENT ENCRYPTION

Minimize ciphertext expansionI FFX mode of operation: n bits to n bits

Pack multiple columns in a rowPack multiple rows into a single PaillierPacked ciphertexts are kept in separate fileson the local file system

14 / 31

Page 29: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

GROUPED HOMOMORPHIC ADDITION

Packed aggregates computed with a singlemodular multiplication

(a1||...||an) + (b1||...||bn) = (a1 + b1)||...||(an + bn)

E(a1||...||an)×E(b1||...||bn) = E((a1+b1)||...||(an+bn))

15 / 31

Page 30: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

PRE-FILTERING

Minimize data sent to the clientApply filtering to encrypted data

ExampleSELECT l orderkey FROM lineitemGROUP BY l orderkeyHAVING SUM(l quantity) > :1

16 / 31

Page 31: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

PRE-FILTERING

Minimize data sent to the clientApply filtering to encrypted data

ExampleSELECT l orderkey FROM lineitemGROUP BY l orderkeyHAVING SUM(l quantity) > :1

Incompatible schemes for SUMand comparison (>)

16 / 31

Page 32: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

PRE-FILTERING

Minimize data sent to the clientApply filtering to encrypted data

ExampleSELECT l orderkey det,

PAILLIER SUM(l quantity paillier)FROM lineitemGROUP BY l orderkey detHAVING MAX(l quantity ope) > encrypt ope(m)

OR COUNT(*) > (:1 / m)

16 / 31

Page 33: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

PRE-FILTERING

Minimize data sent to the clientApply filtering to encrypted data

ExampleSELECT l orderkey det,

PAILLIER SUM(l quantity paillier)FROM lineitemGROUP BY l orderkey detHAVING MAX(l quantity ope) > encrypt ope(m

Maximum valueof the columnl quantity

)OR COUNT(*) > (:1 / m)

16 / 31

Page 34: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

17 / 31

Page 35: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

INTUITION

Optimizations are not always betterDesigner

I Best physical design– Encryption schemes– Precomputed expressions

PlannerI Best query plan at runtime

18 / 31

Page 36: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

DESIGNER: INPUT AND OUTPUT

InputI Representative query workload

– Q0,Q1, ...,Qn– Chosen by the administrator

I Sample dataI Space constraint factor (optional)

OutputI Physical design of the server

– Set of encrypted columns to materialize

19 / 31

Page 37: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

DESIGNER: ALGORITHM

1 Consider all operations in query QiI Check what expression would allow execution

on the serverI EncSeti

– Set of 〈value, scheme〉 pairs for Qi

ExampleWHERE x = :1 generates a 〈x,DET〉 pair,referring to the x columnORDER BY x + y generates a 〈x + y,OPE〉pair, referring to a precomputed x + y value

20 / 31

Page 38: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

DESIGNER: ALGORITHM

2 The designer invokes the planner todetermine the best way to execute Qi

I The planner computes PowSeti– Contains the subsets of EncSeti

I The planner constructs an execution plan for Qifor each element of the power set

3 The planner uses a cost model to estimatethe fastest execution plan

20 / 31

Page 39: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

COST MODEL

Sum of three componentsI Execution time on the serverI Data transfer timeI Post-processing on client (decryption)

Constraints are considered using an IntegerLinear Programming (ILP) formulation

21 / 31

Page 40: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

22 / 31

Page 41: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

IMPLEMENTATION

8.000 lines of Scala for designer/planner4.000 lines of C++ for client libraryOpenSSL for cryptographyEach table is mapped to an encrypted table

I Copies of columns (different cryptosystems)Do not support

I ViewsI Pattern matching with two or more patterns

ExampleLIKE ’%foo%bar%’

23 / 31

Page 42: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

ENVIRONMENT

ClientI Four 4-core 2.2GHz Intel Xeon E5520I 24GB RAM

ServerI Four 4-core 2.4GHz Intel Xeon E5530I 24GB RAM

Multiple cores used for decryptionPostgres 8.4

I Memory limit: 8GB

TPC-H scale 10 dataset

24 / 31

Page 43: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OVERALL EFFICIENCY

Median overhead of 1.24×

25 / 31

Page 44: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

TECHNIQUE PERFORMANCE

Cumulative use of optimization techniques

26 / 31

Page 45: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SPACE OVERHEAD

27 / 31

Page 46: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SENSITIVITY TO DESIGNER INPUT

Choosing representative queriesI Aggregation over expressionsI Expressions requiring precomputationI Very selective WHERE on large relations

28 / 31

Page 47: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

SECURITY

Plaintext is never revealedOPE is used infrequently

I Leaks order

29 / 31

Page 48: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

OUTLINE

1 Introduction

2 Split Execution

3 Optimization Techniques

4 Designer and Planner

5 Experiments

6 Conclusion

30 / 31

Page 49: Overview of MONOMI

Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion

CONCLUSION

Novel system: MONOMIAnalytic queries over confidential dataNew optimization techniquesUse of designer and plannerModest overheads

I Execution: 1.24×I Space: 1.72×

31 / 31