SlideShare a Scribd company logo
1 of 49
Download to read offline
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
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
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OVERVIEW
System called MONOMI
Extension of CryptDB
Analytical queries over encrypted data
Data protected against server compromises
Modest overhead
Slowdown of 1.03 to 2.33×
4 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
MAIN IDEAS
Split client/server execution
Optimization techniques
Per-row precomputation
Space-efficient encryption
Grouped homomorphic addition
Pre-filtering
Designer
Physical data layout
Planner
Efficient execution plan for queries
5 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
USED ENCRYPTION SCHEMES
6 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
ARCHITECTURE
7 / 31
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
INTUITION
The server cannot execute all queries
Limitations of cryptosystems
Cannot transfer all data to the client
Large amount of data
Divide execution
Execute as much as possible on server
Transfer data to the client when it is not
possible to execute on the server
9 / 31
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 value
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty) * 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
10 / 31
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 value
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM
Addition and comparison in-
volve incompatible encryption
schemes
(ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty) * 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
10 / 31
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 value
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
No efficient encryption
scheme allows multiplica-
tion of two encrypted values
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
10 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET
Precomputed
multiplication
)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1
Reference to
the columns
of the child
operator
]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
Deterministic
encryption of the
value :1
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP
Concatenation of all values
from each GROUP BY group
(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
Outmost SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
Innermost SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
Decrypts the data
at the client
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs:
Multiplication
by constant
[sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter:
Filter referring to
the HAVING clause
sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
key:[$1]
LocalProjection
Selection of ps partkey and
of the summation of the pre-
computed expression
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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 nation
WHERE n name = :1
GROUP BY ps partkey
HAVING SUM (ps supplycost * ps availqty) > (
SELECT SUM (ps supplycost * ps availqty)
* 0.0001
FROM partsupp JOIN supplier JOIN nation
WHERE n name = :1 )
ORDER BY value DESC;
LocalSort
Sorting referring to the
ORDER BY clause
key:[$1]
LocalProjection
exprs: [$0, sum($1)]
LocalGroupFilter
filter: sum($1) > subquery0()
LocalDecrypt
pos: [$0, $1]
LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQL
SELECT
ps parkey DET,
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
pos: [$0]
RemoteSQL
SELECT
GROUP(precomp DET)
FROM ... WHERE
n name DET = 0xabcdef
11 / 31
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PER-ROW PRECOMPUTATION
Prior computation of certain expressions
Materialized using additional columns
Decision made by the designer module
Example
SUM (ps supplycost * ps availqty)
13 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPACE-EFFICIENT ENCRYPTION
Minimize ciphertext expansion
FFX mode of operation: n bits to n bits
Pack multiple columns in a row
Pack multiple rows into a single Paillier
Packed ciphertexts are kept in separate files
on the local file system
14 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
GROUPED HOMOMORPHIC ADDITION
Packed aggregates computed with a single
modular multiplication
(a1||...||an) + (b1||...||bn) = (a1 + b1)||...||(an + bn)
E(a1||...||an)×E(b1||...||bn) = E((a1+b1)||...||(an+bn))
15 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the client
Apply filtering to encrypted data
Example
SELECT l orderkey FROM lineitem
GROUP BY l orderkey
HAVING SUM(l quantity) > :1
16 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the client
Apply filtering to encrypted data
Example
SELECT l orderkey FROM lineitem
GROUP BY l orderkey
HAVING SUM(l quantity) > :1
Incompatible schemes for SUM
and comparison (>)
16 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the client
Apply filtering to encrypted data
Example
SELECT l orderkey det,
PAILLIER SUM(l quantity paillier)
FROM lineitem
GROUP BY l orderkey det
HAVING MAX(l quantity ope) > encrypt ope(m)
OR COUNT(*) > (:1 / m)
16 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the client
Apply filtering to encrypted data
Example
SELECT l orderkey det,
PAILLIER SUM(l quantity paillier)
FROM lineitem
GROUP BY l orderkey det
HAVING MAX(l quantity ope) > encrypt ope(m
Maximum value
of the column
l quantity
)
OR COUNT(*) > (:1 / m)
16 / 31
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
INTUITION
Optimizations are not always better
Designer
Best physical design
– Encryption schemes
– Precomputed expressions
Planner
Best query plan at runtime
18 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: INPUT AND OUTPUT
Input
Representative query workload
– Q0, Q1, ..., Qn
– Chosen by the administrator
Sample data
Space constraint factor (optional)
Output
Physical design of the server
– Set of encrypted columns to materialize
19 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: ALGORITHM
1 Consider all operations in query Qi
Check what expression would allow execution
on the server
EncSeti
– Set of value, scheme pairs for Qi
Example
WHERE x = :1 generates a x, DET pair,
referring to the x column
ORDER BY x + y generates a x + y, OPE
pair, referring to a precomputed x + y value
20 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: ALGORITHM
2 The designer invokes the planner to
determine the best way to execute Qi
The planner computes PowSeti
– Contains the subsets of EncSeti
The planner constructs an execution plan for Qi
for each element of the power set
3 The planner uses a cost model to estimate
the fastest execution plan
20 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
COST MODEL
Sum of three components
Execution time on the server
Data transfer time
Post-processing on client (decryption)
Constraints are considered using an Integer
Linear Programming (ILP) formulation
21 / 31
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
IMPLEMENTATION
8.000 lines of Scala for designer/planner
4.000 lines of C++ for client library
OpenSSL for cryptography
Each table is mapped to an encrypted table
Copies of columns (different cryptosystems)
Do not support
Views
Pattern matching with two or more patterns
Example
LIKE ’%foo%bar%’
23 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
ENVIRONMENT
Client
Four 4-core 2.2GHz Intel Xeon E5520
24GB RAM
Server
Four 4-core 2.4GHz Intel Xeon E5530
24GB RAM
Multiple cores used for decryption
Postgres 8.4
Memory limit: 8GB
TPC-H scale 10 dataset
24 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OVERALL EFFICIENCY
Median overhead of 1.24×
25 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
TECHNIQUE PERFORMANCE
Cumulative use of optimization techniques
26 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPACE OVERHEAD
27 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SENSITIVITY TO DESIGNER INPUT
Choosing representative queries
Aggregation over expressions
Expressions requiring precomputation
Very selective WHERE on large relations
28 / 31
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SECURITY
Plaintext is never revealed
OPE is used infrequently
Leaks order
29 / 31
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
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
CONCLUSION
Novel system: MONOMI
Analytic queries over confidential data
New optimization techniques
Use of designer and planner
Modest overheads
Execution: 1.24×
Space: 1.72×
31 / 31

More Related Content

What's hot

Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic EncryptionGöktuğ Serez
 
A survey on Fully Homomorphic Encryption
A survey on Fully Homomorphic EncryptionA survey on Fully Homomorphic Encryption
A survey on Fully Homomorphic Encryptioniosrjce
 
Homomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationHomomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationMohammed Ashour
 
40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanationHarish Gyanani
 
Template Protection with Homomorphic Encryption
Template Protection with Homomorphic EncryptionTemplate Protection with Homomorphic Encryption
Template Protection with Homomorphic EncryptionTolun Tosun
 
Partial Homomorphic Encryption
Partial Homomorphic EncryptionPartial Homomorphic Encryption
Partial Homomorphic Encryptionsecurityxploded
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice CryptographyPriyanka Aash
 
Implementation of RSA Algorithm for Speech Data Encryption and Decryption
Implementation of RSA Algorithm for Speech Data Encryption and DecryptionImplementation of RSA Algorithm for Speech Data Encryption and Decryption
Implementation of RSA Algorithm for Speech Data Encryption and DecryptionMd. Ariful Hoque
 
Compiler Construction | Lecture 2 | Declarative Syntax Definition
Compiler Construction | Lecture 2 | Declarative Syntax DefinitionCompiler Construction | Lecture 2 | Declarative Syntax Definition
Compiler Construction | Lecture 2 | Declarative Syntax DefinitionEelco Visser
 
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...Muhammad Ulhaque
 
Threshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random PermutationsThreshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random PermutationsAleksandr Yampolskiy
 
RSA-W7(rsa) d1-d2
RSA-W7(rsa) d1-d2RSA-W7(rsa) d1-d2
RSA-W7(rsa) d1-d2Fahad Layth
 
Algorithm analysis and design
Algorithm analysis and designAlgorithm analysis and design
Algorithm analysis and designMegha V
 

What's hot (19)

Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic Encryption
 
A survey on Fully Homomorphic Encryption
A survey on Fully Homomorphic EncryptionA survey on Fully Homomorphic Encryption
A survey on Fully Homomorphic Encryption
 
Homomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationHomomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning Classification
 
同態加密
同態加密同態加密
同態加密
 
Ntewrok secuirty cs7
Ntewrok secuirty cs7Ntewrok secuirty cs7
Ntewrok secuirty cs7
 
40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation
 
Template Protection with Homomorphic Encryption
Template Protection with Homomorphic EncryptionTemplate Protection with Homomorphic Encryption
Template Protection with Homomorphic Encryption
 
Partial Homomorphic Encryption
Partial Homomorphic EncryptionPartial Homomorphic Encryption
Partial Homomorphic Encryption
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice Cryptography
 
Lecture 12: Classes and Files
Lecture 12: Classes and FilesLecture 12: Classes and Files
Lecture 12: Classes and Files
 
Implementation of RSA Algorithm for Speech Data Encryption and Decryption
Implementation of RSA Algorithm for Speech Data Encryption and DecryptionImplementation of RSA Algorithm for Speech Data Encryption and Decryption
Implementation of RSA Algorithm for Speech Data Encryption and Decryption
 
Compiler Construction | Lecture 2 | Declarative Syntax Definition
Compiler Construction | Lecture 2 | Declarative Syntax DefinitionCompiler Construction | Lecture 2 | Declarative Syntax Definition
Compiler Construction | Lecture 2 | Declarative Syntax Definition
 
Computer Programming- Lecture 6
Computer Programming- Lecture 6Computer Programming- Lecture 6
Computer Programming- Lecture 6
 
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...
ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtas...
 
Threshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random PermutationsThreshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random Permutations
 
RSA-W7(rsa) d1-d2
RSA-W7(rsa) d1-d2RSA-W7(rsa) d1-d2
RSA-W7(rsa) d1-d2
 
Algorithm analysis and design
Algorithm analysis and designAlgorithm analysis and design
Algorithm analysis and design
 
Computer Programming- Lecture 4
Computer Programming- Lecture 4Computer Programming- Lecture 4
Computer Programming- Lecture 4
 
Computer Programming- Lecture 9
Computer Programming- Lecture 9Computer Programming- Lecture 9
Computer Programming- Lecture 9
 

Viewers also liked

Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...Mateus S. H. Cruz
 
モノのセンサ化による行動センシング
モノのセンサ化による行動センシングモノのセンサ化による行動センシング
モノのセンサ化による行動センシングYutaka Arakawa
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic EncryptionVipin Tejwani
 
Homomorphic encryption in cloud computing final
Homomorphic encryption  in cloud computing finalHomomorphic encryption  in cloud computing final
Homomorphic encryption in cloud computing finalSantanu Das Saan
 
Introduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionIntroduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionChristoph Matthies
 
антиреклама йогурта
антиреклама йогуртаантиреклама йогурта
антиреклама йогуртаWhdPC
 
Programmazione lineare - problemi con soluzioni
Programmazione lineare - problemi con soluzioniProgrammazione lineare - problemi con soluzioni
Programmazione lineare - problemi con soluzioniCristina Scanu
 
Pharaoh's snake at the chemist lab.
Pharaoh's snake  at the chemist lab.Pharaoh's snake  at the chemist lab.
Pharaoh's snake at the chemist lab.iesMola
 
Use iPhone Backup When iTunes Fails To Produce Backup
Use iPhone Backup When iTunes Fails To Produce BackupUse iPhone Backup When iTunes Fails To Produce Backup
Use iPhone Backup When iTunes Fails To Produce BackupiPhone Backup
 
Hutan hujan prestashop study case
Hutan hujan prestashop   study caseHutan hujan prestashop   study case
Hutan hujan prestashop study caseMahda Gustarini
 
Peskovnik a5 vrtec web
Peskovnik a5 vrtec webPeskovnik a5 vrtec web
Peskovnik a5 vrtec webpeskovnik
 
Alicante
AlicanteAlicante
AlicanteiesMola
 

Viewers also liked (18)

Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
 
モノのセンサ化による行動センシング
モノのセンサ化による行動センシングモノのセンサ化による行動センシング
モノのセンサ化による行動センシング
 
Helib
HelibHelib
Helib
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic Encryption
 
Homomorphic encryption in cloud computing final
Homomorphic encryption  in cloud computing finalHomomorphic encryption  in cloud computing final
Homomorphic encryption in cloud computing final
 
Introduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionIntroduction to Homomorphic Encryption
Introduction to Homomorphic Encryption
 
Take home exam
Take home examTake home exam
Take home exam
 
антиреклама йогурта
антиреклама йогуртаантиреклама йогурта
антиреклама йогурта
 
Programmazione lineare - problemi con soluzioni
Programmazione lineare - problemi con soluzioniProgrammazione lineare - problemi con soluzioni
Programmazione lineare - problemi con soluzioni
 
Pharaoh's snake at the chemist lab.
Pharaoh's snake  at the chemist lab.Pharaoh's snake  at the chemist lab.
Pharaoh's snake at the chemist lab.
 
Presentation4
Presentation4Presentation4
Presentation4
 
Use iPhone Backup When iTunes Fails To Produce Backup
Use iPhone Backup When iTunes Fails To Produce BackupUse iPhone Backup When iTunes Fails To Produce Backup
Use iPhone Backup When iTunes Fails To Produce Backup
 
Hutan hujan prestashop study case
Hutan hujan prestashop   study caseHutan hujan prestashop   study case
Hutan hujan prestashop study case
 
Peskovnik a5 vrtec web
Peskovnik a5 vrtec webPeskovnik a5 vrtec web
Peskovnik a5 vrtec web
 
Materi dasar-
Materi dasar-Materi dasar-
Materi dasar-
 
Alicante
AlicanteAlicante
Alicante
 
Esercizio 4
Esercizio 4Esercizio 4
Esercizio 4
 
Angl
AnglAngl
Angl
 

Similar to Overview of MONOMI

Workshop "Can my .NET application use less CPU / RAM?", Yevhen Tatarynov
Workshop "Can my .NET application use less CPU / RAM?", Yevhen TatarynovWorkshop "Can my .NET application use less CPU / RAM?", Yevhen Tatarynov
Workshop "Can my .NET application use less CPU / RAM?", Yevhen TatarynovFwdays
 
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark Needham
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark NeedhamGraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark Needham
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark NeedhamNeo4j
 
OPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemOPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemJesus Velasquez
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Yusuke Izawa
 
Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Tamir Dresher
 
OPTEX - Mathematical Modeling and Management System
OPTEX - Mathematical Modeling and Management System OPTEX - Mathematical Modeling and Management System
OPTEX - Mathematical Modeling and Management System Jesus Velasquez
 
PySpark in practice slides
PySpark in practice slidesPySpark in practice slides
PySpark in practice slidesDat Tran
 
Flink Batch Processing and Iterations
Flink Batch Processing and IterationsFlink Batch Processing and Iterations
Flink Batch Processing and IterationsSameer Wadkar
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"LogeekNightUkraine
 
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOAltinity Ltd
 
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11Henry Schreiner
 
The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189Mahmoud Samir Fayed
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to HadoopApache Apex
 
OpenStack for Centos
OpenStack for CentosOpenStack for Centos
OpenStack for CentosChandan Kumar
 
Is writing performant code too expensive?
Is writing performant code too expensive? Is writing performant code too expensive?
Is writing performant code too expensive? Tomasz Kowalczewski
 
Verification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed SystemsVerification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed SystemsMykola Novik
 

Similar to Overview of MONOMI (20)

Workshop "Can my .NET application use less CPU / RAM?", Yevhen Tatarynov
Workshop "Can my .NET application use less CPU / RAM?", Yevhen TatarynovWorkshop "Can my .NET application use less CPU / RAM?", Yevhen Tatarynov
Workshop "Can my .NET application use less CPU / RAM?", Yevhen Tatarynov
 
Data Analysis in Python
Data Analysis in PythonData Analysis in Python
Data Analysis in Python
 
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark Needham
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark NeedhamGraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark Needham
GraphConnect Europe 2016 - Tuning Your Cypher - Petra Selmer, Mark Needham
 
OPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management SystemOPTEX Mathematical Modeling and Management System
OPTEX Mathematical Modeling and Management System
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
 
Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)
 
OPTEX - Mathematical Modeling and Management System
OPTEX - Mathematical Modeling and Management System OPTEX - Mathematical Modeling and Management System
OPTEX - Mathematical Modeling and Management System
 
PySpark in practice slides
PySpark in practice slidesPySpark in practice slides
PySpark in practice slides
 
Flink Batch Processing and Iterations
Flink Batch Processing and IterationsFlink Batch Processing and Iterations
Flink Batch Processing and Iterations
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
 
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11
 
4.1-Pig.pptx
4.1-Pig.pptx4.1-Pig.pptx
4.1-Pig.pptx
 
The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189
 
Hadoop-Introduction
Hadoop-IntroductionHadoop-Introduction
Hadoop-Introduction
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
OpenStack for Centos
OpenStack for CentosOpenStack for Centos
OpenStack for Centos
 
9-Query Processing-05-06-2023.PPT
9-Query Processing-05-06-2023.PPT9-Query Processing-05-06-2023.PPT
9-Query Processing-05-06-2023.PPT
 
Is writing performant code too expensive?
Is writing performant code too expensive? Is writing performant code too expensive?
Is writing performant code too expensive?
 
Verification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed SystemsVerification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed Systems
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Overview of MONOMI

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion OVERVIEW System called MONOMI Extension of CryptDB Analytical queries over encrypted data Data protected against server compromises Modest overhead Slowdown of 1.03 to 2.33× 4 / 31
  • 5. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion MAIN IDEAS Split client/server execution Optimization techniques Per-row precomputation Space-efficient encryption Grouped homomorphic addition Pre-filtering Designer Physical data layout Planner Efficient execution plan for queries 5 / 31
  • 6. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion USED ENCRYPTION SCHEMES 6 / 31
  • 7. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion ARCHITECTURE 7 / 31
  • 8. 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
  • 9. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion INTUITION The server cannot execute all queries Limitations of cryptosystems Cannot transfer all data to the client Large amount of data Divide execution Execute as much as possible on server Transfer data to the client when it is not possible to execute on the server 9 / 31
  • 10. 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 value FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; 10 / 31
  • 11. 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 value FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM Addition and comparison in- volve incompatible encryption schemes (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; 10 / 31
  • 12. 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 value FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) No efficient encryption scheme allows multiplica- tion of two encrypted values * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; 10 / 31
  • 13. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 14. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET Precomputed multiplication ) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 15. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1 Reference to the columns of the child operator ] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 16. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef Deterministic encryption of the value :1 GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 17. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP Concatenation of all values from each GROUP BY group (precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 18. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 19. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT Outmost SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 20. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT Innermost SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 21. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt Decrypts the data at the client pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 22. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: Multiplication by constant [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 23. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: Filter referring to the HAVING clause sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 24. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort key:[$1] LocalProjection Selection of ps partkey and of the summation of the pre- computed expression exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 25. 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 nation WHERE n name = :1 GROUP BY ps partkey HAVING SUM (ps supplycost * ps availqty) > ( SELECT SUM (ps supplycost * ps availqty) * 0.0001 FROM partsupp JOIN supplier JOIN nation WHERE n name = :1 ) ORDER BY value DESC; LocalSort Sorting referring to the ORDER BY clause key:[$1] LocalProjection exprs: [$0, sum($1)] LocalGroupFilter filter: sum($1) > subquery0() LocalDecrypt pos: [$0, $1] LocalProjection exprs: [sum($0) * 0.0001] RemoteSQL SELECT ps parkey DET, GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef GROUP BY ps partkey DET LocalDecrypt pos: [$0] RemoteSQL SELECT GROUP(precomp DET) FROM ... WHERE n name DET = 0xabcdef 11 / 31
  • 26. 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
  • 27. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion PER-ROW PRECOMPUTATION Prior computation of certain expressions Materialized using additional columns Decision made by the designer module Example SUM (ps supplycost * ps availqty) 13 / 31
  • 28. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion SPACE-EFFICIENT ENCRYPTION Minimize ciphertext expansion FFX mode of operation: n bits to n bits Pack multiple columns in a row Pack multiple rows into a single Paillier Packed ciphertexts are kept in separate files on the local file system 14 / 31
  • 29. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion GROUPED HOMOMORPHIC ADDITION Packed aggregates computed with a single modular multiplication (a1||...||an) + (b1||...||bn) = (a1 + b1)||...||(an + bn) E(a1||...||an)×E(b1||...||bn) = E((a1+b1)||...||(an+bn)) 15 / 31
  • 30. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion PRE-FILTERING Minimize data sent to the client Apply filtering to encrypted data Example SELECT l orderkey FROM lineitem GROUP BY l orderkey HAVING SUM(l quantity) > :1 16 / 31
  • 31. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion PRE-FILTERING Minimize data sent to the client Apply filtering to encrypted data Example SELECT l orderkey FROM lineitem GROUP BY l orderkey HAVING SUM(l quantity) > :1 Incompatible schemes for SUM and comparison (>) 16 / 31
  • 32. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion PRE-FILTERING Minimize data sent to the client Apply filtering to encrypted data Example SELECT l orderkey det, PAILLIER SUM(l quantity paillier) FROM lineitem GROUP BY l orderkey det HAVING MAX(l quantity ope) > encrypt ope(m) OR COUNT(*) > (:1 / m) 16 / 31
  • 33. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion PRE-FILTERING Minimize data sent to the client Apply filtering to encrypted data Example SELECT l orderkey det, PAILLIER SUM(l quantity paillier) FROM lineitem GROUP BY l orderkey det HAVING MAX(l quantity ope) > encrypt ope(m Maximum value of the column l quantity ) OR COUNT(*) > (:1 / m) 16 / 31
  • 34. 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
  • 35. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion INTUITION Optimizations are not always better Designer Best physical design – Encryption schemes – Precomputed expressions Planner Best query plan at runtime 18 / 31
  • 36. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion DESIGNER: INPUT AND OUTPUT Input Representative query workload – Q0, Q1, ..., Qn – Chosen by the administrator Sample data Space constraint factor (optional) Output Physical design of the server – Set of encrypted columns to materialize 19 / 31
  • 37. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion DESIGNER: ALGORITHM 1 Consider all operations in query Qi Check what expression would allow execution on the server EncSeti – Set of value, scheme pairs for Qi Example WHERE x = :1 generates a x, DET pair, referring to the x column ORDER BY x + y generates a x + y, OPE pair, referring to a precomputed x + y value 20 / 31
  • 38. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion DESIGNER: ALGORITHM 2 The designer invokes the planner to determine the best way to execute Qi The planner computes PowSeti – Contains the subsets of EncSeti The planner constructs an execution plan for Qi for each element of the power set 3 The planner uses a cost model to estimate the fastest execution plan 20 / 31
  • 39. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion COST MODEL Sum of three components Execution time on the server Data transfer time Post-processing on client (decryption) Constraints are considered using an Integer Linear Programming (ILP) formulation 21 / 31
  • 40. 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
  • 41. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion IMPLEMENTATION 8.000 lines of Scala for designer/planner 4.000 lines of C++ for client library OpenSSL for cryptography Each table is mapped to an encrypted table Copies of columns (different cryptosystems) Do not support Views Pattern matching with two or more patterns Example LIKE ’%foo%bar%’ 23 / 31
  • 42. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion ENVIRONMENT Client Four 4-core 2.2GHz Intel Xeon E5520 24GB RAM Server Four 4-core 2.4GHz Intel Xeon E5530 24GB RAM Multiple cores used for decryption Postgres 8.4 Memory limit: 8GB TPC-H scale 10 dataset 24 / 31
  • 43. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion OVERALL EFFICIENCY Median overhead of 1.24× 25 / 31
  • 44. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion TECHNIQUE PERFORMANCE Cumulative use of optimization techniques 26 / 31
  • 45. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion SPACE OVERHEAD 27 / 31
  • 46. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion SENSITIVITY TO DESIGNER INPUT Choosing representative queries Aggregation over expressions Expressions requiring precomputation Very selective WHERE on large relations 28 / 31
  • 47. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion SECURITY Plaintext is never revealed OPE is used infrequently Leaks order 29 / 31
  • 48. 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
  • 49. Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion CONCLUSION Novel system: MONOMI Analytic queries over confidential data New optimization techniques Use of designer and planner Modest overheads Execution: 1.24× Space: 1.72× 31 / 31