SlideShare a Scribd company logo
ENKI: Access Control for
Encrypted Query Processing
Isabelle Hang, Florian Kerchbaum, and Ernesto Damiani
ACM SIGMOD International Conference on Management of Data
Melbourne, Victoria, Australia, May 2015
SWIM Seminar
November 27, 2015
Mateus Cruz
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OVERVIEW
Query data encrypted using different keys
Access control enforced by encryption
Secure proxy re-encryption
Non-transitive and non-symmetric
Split query execution
Less computation on the client
37% performance overhead
1 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
REVIEW: CRYPTDB
SQL queries over encrypted data
Proxy controls access
Limitations
Column-level as minimum granularity
Onions of encryption
– Decreasing security
– Storage overhead
2 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ARCHITECTURE
Threat model
Passive attacker
Attacks on clients are out of the scope
3 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ACCESS CONTROL MATRIX
Rows correspond to subjects (S = |n|)
Columns correspond to objects (O)
Values 1 represent granted rights
Read, update or delete
No support for different rights
E.g.: Read-only
Example
User t1 t2 t3 t4 t5
Alice 0 1 1 1 1
Bob 1 1 0 1 0
4 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
QUALIFIED SET (QSi )
Set of subjects with access to an object
Column of an access control matrix
Never empty
Example
User t1 t2 t3 t4 t5
Alice 0 1 1 1 1
Bob 1 1 0 1 0
QSt4
= {1, 1}
So, Alice and Bob
have access to t4.
5 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
USER GROUPS (pi )
pi ∈ P∗
(S)
P∗
(S): power set of all subjects S (without ∅)
Example
p1 = {Alice} := A
p2 = {Bob} := B
p3 = {Alice, Bob} := AB
6 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
USER GROUP MAPPING
User group mapping
Assigns users to the groups they participate in
Example
User User Group
Alice A
Alice AB
Bob B
Bob AB
7 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OBJECT SET (O(pi))
Objects accessible by the same user group
O(pi) forms a partition over O
O(pi) = {o|o ∈ O ∧ QSo = pi}
Example
User t1 t2 t3 t4 t5
Alice 0 1 1 1 1
Bob 1 1 0 1 0
p1 = {Alice}
p2 = {Bob}
p3 = {Alice, Bob}
O(p1) = {t3, t5}
O(p2) = {t1}
O(p3) = {t2, t4}
8 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
VIRTUAL RELATION
Relation corresponding to one object set
One user group can access all of its tuples
Virtual relation mapping
Example
User Group Relation Virtual Relation
A R RA
B R RB
AB R RAB
9 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
VIRTUAL RELATION
Relation corresponding to one object set
One user group can access all of its tuples
Virtual relation mapping
Specified and maintained
by the data owner
Example
User Group Relation Virtual Relation
A R RA
B R RB
AB R RAB
9 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ENCRYPTION OF RELATIONS
The data owner splits R
Virtual relations: RA, RB, RAB
Same schema as R
The data owner generates encryption keys
One key per group
Distributed to group member
Example
Generate key r a for group A and encrypt RA:
κr a(Ra) = {κr a(t)|t ∈ RA}
10 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ENCRYPTION OF RELATIONS
The data owner splits R
Virtual relations: RA, RB, RAB
Same schema as R
The data owner generates encryption keys
One key per group
Distributed to group member
The number of keys for each user
depends on the number of groups
she participates
Example
Generate key r a for group A and encrypt RA:
κr a(Ra) = {κr a(t)|t ∈ RA}
10 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
QUERY REWRITING
Queries over more than one virtual relation
Performed by the ENKI Query Adapter
11 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
REWRITING STRATEGIES
Selection
Projection
Rename
Count
Set union
Cartesian product
12 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
REWRITING STRATEGIES
Selection
Projection
Rename
Count
Set union
Cartesian product
12 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
SELECTION: σαθβ(R)
Predicate θ (=, <, ≤, >, ≥)
α, β (E.g.: attributes, constants)
Encrypt αθβ for both virtual relations:
κr a(α)θκr a(β) (for key r a)
κr ab(α)θκr ab(β) (for key r ab)
Example
(σαθβ(R), Alice) = σκr a(α)θκr a(β)(κr a(RA))∧
σκr ab(α)θκr ab(β)(κr ab(RAB))
= {κr a(t)|t ∈ RA ∧ κr a(α)θκr a(β)}∪
{κr ab(t)|t ∈ RAB ∧ κr ab(α)θκr ab(β)}
13 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
CARTESIAN PRODUCT: R × S
Tuple from R: r
Tuple from S: s
Example
(R × S, Alice) = {κr a(r)κs a(s)∨
κr a(r)κs ab(s)∨
κr ab(r)κs a(s)∨
κr ab(r)κs ab(s)
|r ∈ (RA ∨ RAB) ∧ s ∈ (SA ∨ SAB)}
14 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OTHER OPERATIONS
Also support update, delete or insert
Support queries to modify the schema
Must modify schemas of virtual relations
15 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
PROXY RE-ENCRYPTION
Virtual relations encrypted with different keys
Cannot perform comparison
– Count distinctf, equi-join, set difference
Proxy re-encryption
Change keys without revealing plaintexts
Allow comparison
Definition
Proxy re-encryption of attribute Ai:
χy (κz(Ai)) := {χy(κz(tik))|tik ∈ Ai for all k = 1, ..., j}
= {κy(tik)|tik ∈ Ai for all k = 1, ..., j}
= κy (Ai)
16 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
PROPERTIES
Symmetry
χb(κa(Ai)) = κb(Ai) ↔ χa(κb(Ai)) = κa(Ai)
Transitivity
χb(κa(Ai)) = κb(Ai) ∧ χc(κb(Ai)) = κc(Ai) →
χc(κa(Ai)) = κc(Ai)
17 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
PROBLEM
Example
Alice has key r a, Bob has key r b, both have
key r ab.
Suppose a comparison between RA and RAB.
Proxy re-encryption of keys r a and r ab to r c:
r a ∼ r c and r ab ∼ r c.
Symmetry and transitivity allow:
r a ∼ r c ∼ r ab.
So Bob can access Alice’s data.
18 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ALGORITHMS
Parameter generation
Key generation
Encryption
Token
Input: Two keys ki and kj
Output: Token to proxy re-encrypt ki to kj:
T = Token(ki, kj)
Proxy re-encryption
Input: Ciphertext C and token T
Output: Ciphertext C = Pre(C, T)
19 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
TEMPORARY RE-ENCRYPTION
A ciphertext can be re-encrypted only once
Persisting re-encryption restricts usability
Temporary re-encryption
Base values: values initially encrypted
DetPre values: temporary re-encrypted values
Concatenate DetPre to Base
Delete DetPre after the user logs out
20 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
EXECUTING EQUI-JOINS
Execute join on the virtual relations
Encrypted with different keys
Re-encrypt with a shared key
Also encrypt the join condition
Example
(R Ai =Bi
S, Alice) = {κc(r)κc(s)|
r ∈ (RA ∨ RAB)∧
s ∈ (SA ∨ SAB)∧
κc(ri)θκc(sj)}
21 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
EXECUTING AGGREGATE FUNCTIONS
Aggregate functions over virtual relations
Encrypted with different keys
Proxy re-encryption could be used
Depends on the encryption scheme used
Example
For SUM, the Paillier cryptosystem can be used.
Problem: Creation of a secure proxy
re-encryption for the Paillier cryptosystem.
Either hard to construct or expensive.
22 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
CLIENT-SERVER SPLIT EXECUTION
Compute partial results on the server
Results for each virtual relation
Generate final result on the client
Decrypt partial results
Compute FAgg for the final results
23 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
SUPPORTED AGGREGATIONS
Maximum
Minimum
Sum
Average
Sort
24 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
SUPPORTED AGGREGATIONS
Maximum
Minimum
Sum
Average
Sort
24 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
MAXIMUM
Example
On the server, compute:
Res(RA) = Max(RA)
Res(RAB) = Max(RAB)
On the client, compute:
FMax = Max(Max(RA), Max(RAB))
25 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
ENVIRONMENT
SAP HANA database
Extended with UDFs
Server
8-core 2.6GHz 252GB RAM
Client
2-core 2.8GHz 16GB RAM
Proxy re-encryption implementation
C language
pbc and gmp libraries
26 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
DATASETS
TCP-C benchmark
IS-H: Healthcare management
LSM: Resources planning
SFIN: Simplified finances for SAP ERP
Dataset # Tables # Columns
TCP-C 9 92
IS-H 7 477
LSM 25 173
SFIN 9 741
27 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
MULTI USER MODE OVERHEAD
Overhead of multi user mode: 37%
28 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
IMPACT OF QUERY REWRITING
29 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
IMPACT OF NUMBER OF USER GROUPS
30 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
IMPACT OF POST-PROCESSING
31 / 33
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
OUTLINE
1 Introduction
2 Access Control
3 Query Rewriting
4 Proxy Re-Encryption
5 Split Execution
6 Experiments
7 Summary
Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary
SUMMARY
ENKI
Query processing over encrypted data
Contribution
Access control
Query rewriting strategies
Secure proxy re-encryption
Split execution
Evaluation
“Modest overhead” (40%)
32 / 33
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
EXTRA SLIDES
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
PROJECTION: πβ(R)
Relation R
R (Ai(1), ..., Ai(k)) ⊆ R(A1, ..., An)
Attribute list β
β = (Ai(1), ..., Ai(k)) ⊆ (A1, ..., An)
Example
(πβ(R), Alice) = πκr a(β)(κr a(RA))∪
πκr ab(β)(κr ab(RAB))
= κr a(RA) ∪ κr ab(RAB)
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
RENAME: ρQ←Ai
(R)
Rename ρ of an attribute Ai ∈ R to Q
Encrypt the new attribute name
Use keys of virtual relations
Rename is not persisted
Example
(ρQ←Ai
(R), Alice) = ρκr a(Q)←κr a(Ai )(κr a(RA))∪
ρκr ab(Q)←κr ab(Ai )(κr ab(RAB))
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
COUNT: βγCount(Ai)(R)
Executed on server-side
Count attributes values of Ai
Sum the partial results from virtual relations
Example
(βγCount(Ai )(R), Alice) = κr a(β)γCount(κr a(Ai ))(κr a(RA))+
κr ab(β)γCount(κr ab(Ai ))(κr ab(RAB))
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
SET UNION: R ∪ S
Union between two relations R and S
Same set of attributes
Example
(R ∪ S, Alice) = {κr a(t)|t ∈ RA}∪
{κr ab(t)|t ∈ RAB}∪
{κs a(t)|t ∈ SA}∪
{κs ab(t)|t ∈ SAB}
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
ALGORITHMS
Parameter generation
Key generation
Encryption
Token
Proxy re-encryption
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
PARAMETER GENERATION
Receives a security parameter λ
Generate a prime number p
Generate two groups G1, G2 of order p
Generate a map e : G1 × G1 → G2
Choose a random generator G ∈ G1
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
KEY GENERATION
Choose a random ki ∈ Zp
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
ENCRYPTION
Receives a plaintext m with key ki
Generates a ciphertext
C = Gmki ∈ G1
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
TOKEN
Receive two keys ki and kj
Generate a token T for proxy re-encryption
T = G
kj
ki ∈ G1
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
PROXY RE-ENCRYPTION
Receives a ciphertext C encrypted with ki
Generate ciphertext C encrypted with kj
C = e(C, T)
= e(Gmki
, G
kj
ki )
= e(G, G)
mki
kj
ki
= e(G, G)mkj
= gmkj
∈ G2
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
EXECUTING COUNT DISTINCT
Adjust keys of virtual relations
Re-encrypt to a common key
Example
(βγCountDistinct(Ai )(R), Alice) =
κc(β)γCountDistinct(κc(Ai ))(κc(RA) ∪ κc(RAB))
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
EXECUTING SET DIFFERENCE
Adjust keys of virtual relations
Re-encrypt to a common key
Example
(R  S, Alice) = {κc(t)|
t ∈ (RA ∨ RAB)∧
t /∈ (SA ∨ SAB)}
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
SUM
Example
On the server, compute:
Res(RA) = Sum(RA)
Res(RAB) = Sum(RAB)
On the client, compute:
FSum = Sum(Sum(RA), Sum(RAB))
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
AVERAGE
Replaced by the functions sum and count
Example
On the server, compute:
Res(RA) = {Sum(RA), Count(RA)}
Res(RAB) = {Sum(RAB), Count(RAB)}
On the client, compute:
FAvg = Sum(RA)+Sum(RAB)
Count(RA)+Count(RAB)
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
SORT
Example
On the server, compute:
Res(RA) = Sort(RA)
Res(RAB) = Sort(RAB)
On the client, compute:
FSort = Merge sorted lists(Sort(RA), Sort(RAB))
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
SYSTEM SETUP
The data owner
Handles n users
Defines the user group mapping
Defines the virtual relation mapping
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
QUERY EXECUTION STEPS
1 Look up
2 Proxy Re-encryption
3 Query encryption
4 Query rewriting
5 Server-side execution
6 Client-side execution
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
LOOK UP
Checks the user group mapping
Groups the query issuer belongs to
Checks virtual relation mapping
Virtual relations used to answer the query
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
PROXY RE-ENCRYPTION
Queries containing
Equi-join
Set difference
Count distinct
Adjust keys of virtual relations
Temporary re-encryption to shared key
Example
(R Ai =Bi
S, Alice) = {κc(r)κc(s)|
r ∈ (RA ∨ RAB)∧
s ∈ (SA ∨ SAB)∧
κc(ri)θκc(sj)}
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
QUERY ENCRYPTION
Encrypt attributes used in the query
Attributes accessible by the issuer
Example
(σαθβ(R), Alice) = σκr a(α)θκr a(β)(κr a(RA))∧
σκr ab(α)θκr ab(β)(κr ab(RAB))
= {κr a(t)|t ∈ RA ∧ κr a(α)θκr a(β)}∪
{κr ab(t)|t ∈ RAB ∧ κr ab(α)θκr ab(β)}
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
QUERY REWRITING
Modifies query
Executed over virtual relations
Returns a query sQ
Executed on the server
Can return am additional query cQ
Executed on the client
Example
sQ : Sum(RA), Count(RA), Sum(RAB), Count(RAB)
cQ : FAvg = Sum(RA)+Sum(RAB)
Count(RA)+Count(RAB)
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
SERVER-SIDE EXECUTION
Executes the encrypted query sQ
Returns encrypted results to the client
If necessary, also returns cQ
Example
Res(RA) = {Sum(RA), Count(RA)}
Res(RAB) = {Sum(RAB), Count(RAB)}
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
CLIENT-SIDE EXECUTION
Receives the encrypted results
Decrypt
Execute cQ if it exists
Example
FAvg = Sum(RA)+Sum(RAB)
Count(RA)+Count(RAB)
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
DYNAMIC ACCESS CONTROL POLICIES
Objects are encrypted with different keys
Busy user groups
User groups associated with objects
Non-empty object set
Access policies might change
Granting or revoking rights
Changes busy user groups
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
USER HIERARCHY
User Hierarchy (U)
Given a set of users S = {s1, ..., sn}, a user
hierarchy U is a pair (P∗
(S), ) where P∗
(S) is
the powerset without the empty set of S and
is a partial order such that for all sets of users
pi, pj ∈ P∗
(S), pi pj if pj ⊆ pi for all i, j =
{1, ..., 2n−1
}.
User dynamics change the hierarchy
Adding or deleting users
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
ADDING USER sn+1
Case 1
The original busy group porig
i becomes not busy
The new group (pnew
i ∪ sn+1) is busy
Case 2
The original busy group porig
i stays busy
The new group (pnew
i ∪ sn+1) is also busy
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
ADDING USER sn+1: CASE 1
The busy group porig
i becomes non busy
The new group (pnew
i ∪ sn+1) is busy
Solution
Add the user to the object set
Share the group key with user sn+1
O(porig
i ) = O(porig
i ∪ sn+1)
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
ADDING USER sn+1: CASE 2
The busy group porig
i stays busy
The new group (pnew
i ∪ sn+1) is also busy
Solution
sn+1 has access to a subset of objects of porig
i
Re-encrypt O(porig
i ∪ sn+1) with a new key
O(porig
i ) = O(pnew
i ) ∪ O(porig
i ∪ sn+1)
O(pnew
i ) ∩ O(porig
i ∪ sn+1) = ∅
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
REVOKING RIGHTS OF USER sn
Case 1
A user sn is revoked from all rights
Case 2
A user sn is revoked from a user group
Case 3
A user sn is revoked from certain objects
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
REVOKING USER sn: CASE 1
A user sn is revoked from all rights
The hierarchy changes
Solution
The busy group porig
i ∪ sn is deleted
Objects from porig
i ∪ sn are accessible by porig
i
Re-encrypt O(porig
i ∪ sn) using the key of porig
i
O(pnew
i ) = O(porig
i ) ∪ O(porig
i )
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
REVOKING USER sn: CASE 2
A user sn is revoked from a user group
Does not change the hierarchy
Changes busy user groups
Solution
Busy user group porig
i ∪ sn becomes non busy
Re-encrypt O(porig
i ∪ sn) using the key of porig
i
O(pnew
i ) = O(porig
i ∪ sn) ∪ O(porig
i )
Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management
REVOKING USER sn: CASE 3
A user sn is revoked from certain objects
Solution
Busy group porig
i ∪ sn is split into two
– pnew
i ∪ sn and pnew
i
Re-encrypt O(pnew
i ) using the key of porig
i
O(porig
i ∪ sn) = O(pnew
i ∪ sn) ∪ O(pnew
i )
O(pnew
i ∪ sn) ∩ O(pnew
i ) = ∅

More Related Content

What's hot

Privacy-Preserving Search for Chemical Compound Databases
Privacy-Preserving Search for Chemical Compound DatabasesPrivacy-Preserving Search for Chemical Compound Databases
Privacy-Preserving Search for Chemical Compound Databases
Mateus S. H. Cruz
 
Klee introduction
Klee  introductionKlee  introduction
Klee introduction
Georgiana T.
 
Symbolic Execution And KLEE
Symbolic Execution And KLEESymbolic Execution And KLEE
Symbolic Execution And KLEE
Shauvik Roy Choudhary, Ph.D.
 
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
Mohammed Ashour
 
An effective RC4 Stream Cipher
An effective RC4 Stream CipherAn effective RC4 Stream Cipher
An effective RC4 Stream Cipher
Tharindu Weerasinghe
 
Ntewrok secuirty cs7
Ntewrok secuirty cs7Ntewrok secuirty cs7
Ntewrok secuirty cs7
Infinity Tech Solutions
 
Template Protection with Homomorphic Encryption
Template Protection with Homomorphic EncryptionTemplate Protection with Homomorphic Encryption
Template Protection with Homomorphic Encryption
Tolun Tosun
 
Analysis of a Modified RC4
Analysis of a Modified RC4 Analysis of a Modified RC4
Analysis of a Modified RC4
Tharindu Weerasinghe
 
Cs8792 cns - Public key cryptosystem (Unit III)
Cs8792   cns - Public key cryptosystem (Unit III)Cs8792   cns - Public key cryptosystem (Unit III)
Cs8792 cns - Public key cryptosystem (Unit III)
ArthyR3
 
A closure ekon16
A closure ekon16A closure ekon16
A closure ekon16
Max Kleiner
 
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Andrii Vozniuk
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice Cryptography
Priyanka Aash
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic Encryption
Göktuğ Serez
 
Threshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random PermutationsThreshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random Permutations
Aleksandr Yampolskiy
 
Defect prevention software
Defect prevention softwareDefect prevention software
Defect prevention software
Zarko Acimovic
 
Use of an Oscilloscope - maXbox Starter33
Use of an Oscilloscope - maXbox Starter33Use of an Oscilloscope - maXbox Starter33
Use of an Oscilloscope - maXbox Starter33
Max Kleiner
 
Code Tuning
Code TuningCode Tuning
Code Tuning
guest4df97e3d
 
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWELattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Priyanka Aash
 
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertions
HARINATH REDDY
 
EKON 12 Closures Coding
EKON 12 Closures CodingEKON 12 Closures Coding
EKON 12 Closures Coding
Max Kleiner
 

What's hot (20)

Privacy-Preserving Search for Chemical Compound Databases
Privacy-Preserving Search for Chemical Compound DatabasesPrivacy-Preserving Search for Chemical Compound Databases
Privacy-Preserving Search for Chemical Compound Databases
 
Klee introduction
Klee  introductionKlee  introduction
Klee introduction
 
Symbolic Execution And KLEE
Symbolic Execution And KLEESymbolic Execution And KLEE
Symbolic Execution And KLEE
 
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
 
An effective RC4 Stream Cipher
An effective RC4 Stream CipherAn effective RC4 Stream Cipher
An effective RC4 Stream Cipher
 
Ntewrok secuirty cs7
Ntewrok secuirty cs7Ntewrok secuirty cs7
Ntewrok secuirty cs7
 
Template Protection with Homomorphic Encryption
Template Protection with Homomorphic EncryptionTemplate Protection with Homomorphic Encryption
Template Protection with Homomorphic Encryption
 
Analysis of a Modified RC4
Analysis of a Modified RC4 Analysis of a Modified RC4
Analysis of a Modified RC4
 
Cs8792 cns - Public key cryptosystem (Unit III)
Cs8792   cns - Public key cryptosystem (Unit III)Cs8792   cns - Public key cryptosystem (Unit III)
Cs8792 cns - Public key cryptosystem (Unit III)
 
A closure ekon16
A closure ekon16A closure ekon16
A closure ekon16
 
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice Cryptography
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic Encryption
 
Threshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random PermutationsThreshold and Proactive Pseudo-Random Permutations
Threshold and Proactive Pseudo-Random Permutations
 
Defect prevention software
Defect prevention softwareDefect prevention software
Defect prevention software
 
Use of an Oscilloscope - maXbox Starter33
Use of an Oscilloscope - maXbox Starter33Use of an Oscilloscope - maXbox Starter33
Use of an Oscilloscope - maXbox Starter33
 
Code Tuning
Code TuningCode Tuning
Code Tuning
 
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWELattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
 
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertions
 
EKON 12 Closures Coding
EKON 12 Closures CodingEKON 12 Closures Coding
EKON 12 Closures Coding
 

Viewers also liked

Cryptographic File Systems
Cryptographic File SystemsCryptographic File Systems
Cryptographic File Systems
Aditya Karan
 
Cryptographic algorithms
Cryptographic algorithmsCryptographic algorithms
Cryptographic algorithms
Anamika Singh
 
Advanced Cryptography for Cloud Security
Advanced Cryptography for Cloud SecurityAdvanced Cryptography for Cloud Security
Advanced Cryptography for Cloud Security
Neel Chakraborty
 
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Academia Sinica
 
Fibonacci Video Encryption
Fibonacci Video EncryptionFibonacci Video Encryption
Fibonacci Video Encryption
Jun Steed Huang
 
A New Approach for Video Encryption Based on Modified AES Algorithm
A New Approach for Video Encryption Based on Modified AES AlgorithmA New Approach for Video Encryption Based on Modified AES Algorithm
A New Approach for Video Encryption Based on Modified AES Algorithm
iosrjce
 
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
ijsrd.com
 
Helib
HelibHelib
Helib
文杰 陆
 
Privacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud dataPrivacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud data
IGEEKS TECHNOLOGIES
 
AES-Advanced Encryption Standard
AES-Advanced Encryption StandardAES-Advanced Encryption Standard
AES-Advanced Encryption Standard
Prince Rachit
 
Image encryption and decryption
Image encryption and decryptionImage encryption and decryption
Image encryption and decryption
Aashish R
 
Extending the Grazing Season
Extending the Grazing SeasonExtending the Grazing Season
Extending the Grazing Season
Kerr Center for Sustainable Agriculture
 
Xirurgicheskaja texnika kesareva sechenija
Xirurgicheskaja texnika kesareva sechenijaXirurgicheskaja texnika kesareva sechenija
Xirurgicheskaja texnika kesareva sechenijaIgor Nitsovych
 
Wellcome lamola
Wellcome lamolaWellcome lamola
Wellcome lamolaiesMola
 
Music sharing
Music sharingMusic sharing
Music sharing
SJPargett
 
Riding the Age Wave: Will Your Club Sink or Swim?
Riding the Age Wave: Will Your Club Sink or Swim?Riding the Age Wave: Will Your Club Sink or Swim?
Riding the Age Wave: Will Your Club Sink or Swim?
theGrapevine411
 

Viewers also liked (16)

Cryptographic File Systems
Cryptographic File SystemsCryptographic File Systems
Cryptographic File Systems
 
Cryptographic algorithms
Cryptographic algorithmsCryptographic algorithms
Cryptographic algorithms
 
Advanced Cryptography for Cloud Security
Advanced Cryptography for Cloud SecurityAdvanced Cryptography for Cloud Security
Advanced Cryptography for Cloud Security
 
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
 
Fibonacci Video Encryption
Fibonacci Video EncryptionFibonacci Video Encryption
Fibonacci Video Encryption
 
A New Approach for Video Encryption Based on Modified AES Algorithm
A New Approach for Video Encryption Based on Modified AES AlgorithmA New Approach for Video Encryption Based on Modified AES Algorithm
A New Approach for Video Encryption Based on Modified AES Algorithm
 
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
 
Helib
HelibHelib
Helib
 
Privacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud dataPrivacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud data
 
AES-Advanced Encryption Standard
AES-Advanced Encryption StandardAES-Advanced Encryption Standard
AES-Advanced Encryption Standard
 
Image encryption and decryption
Image encryption and decryptionImage encryption and decryption
Image encryption and decryption
 
Extending the Grazing Season
Extending the Grazing SeasonExtending the Grazing Season
Extending the Grazing Season
 
Xirurgicheskaja texnika kesareva sechenija
Xirurgicheskaja texnika kesareva sechenijaXirurgicheskaja texnika kesareva sechenija
Xirurgicheskaja texnika kesareva sechenija
 
Wellcome lamola
Wellcome lamolaWellcome lamola
Wellcome lamola
 
Music sharing
Music sharingMusic sharing
Music sharing
 
Riding the Age Wave: Will Your Club Sink or Swim?
Riding the Age Wave: Will Your Club Sink or Swim?Riding the Age Wave: Will Your Club Sink or Swim?
Riding the Age Wave: Will Your Club Sink or Swim?
 

Similar to ENKI: Access Control for Encrypted Query Processing

002 hbase clientapi
002 hbase clientapi002 hbase clientapi
002 hbase clientapi
Scott Miao
 
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Peng Cheng
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
Mario Fusco
 
Lambdas & Streams
Lambdas & StreamsLambdas & Streams
Lambdas & Streams
C4Media
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
Donal Fellows
 
Synopsis_kamlesh
Synopsis_kamleshSynopsis_kamlesh
Synopsis_kamlesh
KAMLESH HINGWE
 
The Ring programming language version 1.10 book - Part 93 of 212
The Ring programming language version 1.10 book - Part 93 of 212The Ring programming language version 1.10 book - Part 93 of 212
The Ring programming language version 1.10 book - Part 93 of 212
Mahmoud Samir Fayed
 
Swift cooking course making a cake ... pattern
Swift cooking course  making a cake ... patternSwift cooking course  making a cake ... pattern
Swift cooking course making a cake ... pattern
Didier Plaindoux
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher Queries
Gábor Szárnyas
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher Queries
openCypher
 
TechEvent Introduction to GraphQL
TechEvent Introduction to GraphQLTechEvent Introduction to GraphQL
TechEvent Introduction to GraphQL
Trivadis
 
St Petersburg R user group meetup 2, Parallel R
St Petersburg R user group meetup 2, Parallel RSt Petersburg R user group meetup 2, Parallel R
St Petersburg R user group meetup 2, Parallel R
Andrew Bzikadze
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
meharikiros2
 
Solr @ Etsy - Apache Lucene Eurocon
Solr @ Etsy - Apache Lucene EuroconSolr @ Etsy - Apache Lucene Eurocon
Solr @ Etsy - Apache Lucene Eurocon
Giovanni Fernandez-Kincade
 
Java 8
Java 8Java 8
Java 8
vilniusjug
 
chapter3 evemt handling and delighted model java mcq important mcq for 2023
chapter3 evemt handling and delighted model java mcq important mcq for 2023chapter3 evemt handling and delighted model java mcq important mcq for 2023
chapter3 evemt handling and delighted model java mcq important mcq for 2023
bhagatsadesh96
 
Explaining the Postgres Query Optimizer (Bruce Momjian)
Explaining the Postgres Query Optimizer (Bruce Momjian)Explaining the Postgres Query Optimizer (Bruce Momjian)
Explaining the Postgres Query Optimizer (Bruce Momjian)
Ontico
 
Stephan berg track f
Stephan berg   track fStephan berg   track f
Stephan berg track f
Alona Gradman
 
Private datawarehouse queries
Private datawarehouse queriesPrivate datawarehouse queries
Private datawarehouse queries
Er Deepshikha Varshney
 
Lambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive CodeLambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive Code
Ian Robertson
 

Similar to ENKI: Access Control for Encrypted Query Processing (20)

002 hbase clientapi
002 hbase clientapi002 hbase clientapi
002 hbase clientapi
 
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
 
Lambdas & Streams
Lambdas & StreamsLambdas & Streams
Lambdas & Streams
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
 
Synopsis_kamlesh
Synopsis_kamleshSynopsis_kamlesh
Synopsis_kamlesh
 
The Ring programming language version 1.10 book - Part 93 of 212
The Ring programming language version 1.10 book - Part 93 of 212The Ring programming language version 1.10 book - Part 93 of 212
The Ring programming language version 1.10 book - Part 93 of 212
 
Swift cooking course making a cake ... pattern
Swift cooking course  making a cake ... patternSwift cooking course  making a cake ... pattern
Swift cooking course making a cake ... pattern
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher Queries
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher Queries
 
TechEvent Introduction to GraphQL
TechEvent Introduction to GraphQLTechEvent Introduction to GraphQL
TechEvent Introduction to GraphQL
 
St Petersburg R user group meetup 2, Parallel R
St Petersburg R user group meetup 2, Parallel RSt Petersburg R user group meetup 2, Parallel R
St Petersburg R user group meetup 2, Parallel R
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
 
Solr @ Etsy - Apache Lucene Eurocon
Solr @ Etsy - Apache Lucene EuroconSolr @ Etsy - Apache Lucene Eurocon
Solr @ Etsy - Apache Lucene Eurocon
 
Java 8
Java 8Java 8
Java 8
 
chapter3 evemt handling and delighted model java mcq important mcq for 2023
chapter3 evemt handling and delighted model java mcq important mcq for 2023chapter3 evemt handling and delighted model java mcq important mcq for 2023
chapter3 evemt handling and delighted model java mcq important mcq for 2023
 
Explaining the Postgres Query Optimizer (Bruce Momjian)
Explaining the Postgres Query Optimizer (Bruce Momjian)Explaining the Postgres Query Optimizer (Bruce Momjian)
Explaining the Postgres Query Optimizer (Bruce Momjian)
 
Stephan berg track f
Stephan berg   track fStephan berg   track f
Stephan berg track f
 
Private datawarehouse queries
Private datawarehouse queriesPrivate datawarehouse queries
Private datawarehouse queries
 
Lambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive CodeLambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive Code
 

Recently uploaded

成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
Azure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdfAzure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdf
AanSulistiyo
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 

Recently uploaded (20)

成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
Azure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdfAzure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdf
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 

ENKI: Access Control for Encrypted Query Processing

  • 1. ENKI: Access Control for Encrypted Query Processing Isabelle Hang, Florian Kerchbaum, and Ernesto Damiani ACM SIGMOD International Conference on Management of Data Melbourne, Victoria, Australia, May 2015 SWIM Seminar November 27, 2015 Mateus Cruz
  • 2. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 3. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 4. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OVERVIEW Query data encrypted using different keys Access control enforced by encryption Secure proxy re-encryption Non-transitive and non-symmetric Split query execution Less computation on the client 37% performance overhead 1 / 33
  • 5. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary REVIEW: CRYPTDB SQL queries over encrypted data Proxy controls access Limitations Column-level as minimum granularity Onions of encryption – Decreasing security – Storage overhead 2 / 33
  • 6. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ARCHITECTURE Threat model Passive attacker Attacks on clients are out of the scope 3 / 33
  • 7. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 8. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ACCESS CONTROL MATRIX Rows correspond to subjects (S = |n|) Columns correspond to objects (O) Values 1 represent granted rights Read, update or delete No support for different rights E.g.: Read-only Example User t1 t2 t3 t4 t5 Alice 0 1 1 1 1 Bob 1 1 0 1 0 4 / 33
  • 9. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary QUALIFIED SET (QSi ) Set of subjects with access to an object Column of an access control matrix Never empty Example User t1 t2 t3 t4 t5 Alice 0 1 1 1 1 Bob 1 1 0 1 0 QSt4 = {1, 1} So, Alice and Bob have access to t4. 5 / 33
  • 10. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary USER GROUPS (pi ) pi ∈ P∗ (S) P∗ (S): power set of all subjects S (without ∅) Example p1 = {Alice} := A p2 = {Bob} := B p3 = {Alice, Bob} := AB 6 / 33
  • 11. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary USER GROUP MAPPING User group mapping Assigns users to the groups they participate in Example User User Group Alice A Alice AB Bob B Bob AB 7 / 33
  • 12. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OBJECT SET (O(pi)) Objects accessible by the same user group O(pi) forms a partition over O O(pi) = {o|o ∈ O ∧ QSo = pi} Example User t1 t2 t3 t4 t5 Alice 0 1 1 1 1 Bob 1 1 0 1 0 p1 = {Alice} p2 = {Bob} p3 = {Alice, Bob} O(p1) = {t3, t5} O(p2) = {t1} O(p3) = {t2, t4} 8 / 33
  • 13. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary VIRTUAL RELATION Relation corresponding to one object set One user group can access all of its tuples Virtual relation mapping Example User Group Relation Virtual Relation A R RA B R RB AB R RAB 9 / 33
  • 14. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary VIRTUAL RELATION Relation corresponding to one object set One user group can access all of its tuples Virtual relation mapping Specified and maintained by the data owner Example User Group Relation Virtual Relation A R RA B R RB AB R RAB 9 / 33
  • 15. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ENCRYPTION OF RELATIONS The data owner splits R Virtual relations: RA, RB, RAB Same schema as R The data owner generates encryption keys One key per group Distributed to group member Example Generate key r a for group A and encrypt RA: κr a(Ra) = {κr a(t)|t ∈ RA} 10 / 33
  • 16. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ENCRYPTION OF RELATIONS The data owner splits R Virtual relations: RA, RB, RAB Same schema as R The data owner generates encryption keys One key per group Distributed to group member The number of keys for each user depends on the number of groups she participates Example Generate key r a for group A and encrypt RA: κr a(Ra) = {κr a(t)|t ∈ RA} 10 / 33
  • 17. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 18. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary QUERY REWRITING Queries over more than one virtual relation Performed by the ENKI Query Adapter 11 / 33
  • 19. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary REWRITING STRATEGIES Selection Projection Rename Count Set union Cartesian product 12 / 33
  • 20. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary REWRITING STRATEGIES Selection Projection Rename Count Set union Cartesian product 12 / 33
  • 21. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary SELECTION: σαθβ(R) Predicate θ (=, <, ≤, >, ≥) α, β (E.g.: attributes, constants) Encrypt αθβ for both virtual relations: κr a(α)θκr a(β) (for key r a) κr ab(α)θκr ab(β) (for key r ab) Example (σαθβ(R), Alice) = σκr a(α)θκr a(β)(κr a(RA))∧ σκr ab(α)θκr ab(β)(κr ab(RAB)) = {κr a(t)|t ∈ RA ∧ κr a(α)θκr a(β)}∪ {κr ab(t)|t ∈ RAB ∧ κr ab(α)θκr ab(β)} 13 / 33
  • 22. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary CARTESIAN PRODUCT: R × S Tuple from R: r Tuple from S: s Example (R × S, Alice) = {κr a(r)κs a(s)∨ κr a(r)κs ab(s)∨ κr ab(r)κs a(s)∨ κr ab(r)κs ab(s) |r ∈ (RA ∨ RAB) ∧ s ∈ (SA ∨ SAB)} 14 / 33
  • 23. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OTHER OPERATIONS Also support update, delete or insert Support queries to modify the schema Must modify schemas of virtual relations 15 / 33
  • 24. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 25. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary PROXY RE-ENCRYPTION Virtual relations encrypted with different keys Cannot perform comparison – Count distinctf, equi-join, set difference Proxy re-encryption Change keys without revealing plaintexts Allow comparison Definition Proxy re-encryption of attribute Ai: χy (κz(Ai)) := {χy(κz(tik))|tik ∈ Ai for all k = 1, ..., j} = {κy(tik)|tik ∈ Ai for all k = 1, ..., j} = κy (Ai) 16 / 33
  • 26. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary PROPERTIES Symmetry χb(κa(Ai)) = κb(Ai) ↔ χa(κb(Ai)) = κa(Ai) Transitivity χb(κa(Ai)) = κb(Ai) ∧ χc(κb(Ai)) = κc(Ai) → χc(κa(Ai)) = κc(Ai) 17 / 33
  • 27. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary PROBLEM Example Alice has key r a, Bob has key r b, both have key r ab. Suppose a comparison between RA and RAB. Proxy re-encryption of keys r a and r ab to r c: r a ∼ r c and r ab ∼ r c. Symmetry and transitivity allow: r a ∼ r c ∼ r ab. So Bob can access Alice’s data. 18 / 33
  • 28. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ALGORITHMS Parameter generation Key generation Encryption Token Input: Two keys ki and kj Output: Token to proxy re-encrypt ki to kj: T = Token(ki, kj) Proxy re-encryption Input: Ciphertext C and token T Output: Ciphertext C = Pre(C, T) 19 / 33
  • 29. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary TEMPORARY RE-ENCRYPTION A ciphertext can be re-encrypted only once Persisting re-encryption restricts usability Temporary re-encryption Base values: values initially encrypted DetPre values: temporary re-encrypted values Concatenate DetPre to Base Delete DetPre after the user logs out 20 / 33
  • 30. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary EXECUTING EQUI-JOINS Execute join on the virtual relations Encrypted with different keys Re-encrypt with a shared key Also encrypt the join condition Example (R Ai =Bi S, Alice) = {κc(r)κc(s)| r ∈ (RA ∨ RAB)∧ s ∈ (SA ∨ SAB)∧ κc(ri)θκc(sj)} 21 / 33
  • 31. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 32. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary EXECUTING AGGREGATE FUNCTIONS Aggregate functions over virtual relations Encrypted with different keys Proxy re-encryption could be used Depends on the encryption scheme used Example For SUM, the Paillier cryptosystem can be used. Problem: Creation of a secure proxy re-encryption for the Paillier cryptosystem. Either hard to construct or expensive. 22 / 33
  • 33. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary CLIENT-SERVER SPLIT EXECUTION Compute partial results on the server Results for each virtual relation Generate final result on the client Decrypt partial results Compute FAgg for the final results 23 / 33
  • 34. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary SUPPORTED AGGREGATIONS Maximum Minimum Sum Average Sort 24 / 33
  • 35. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary SUPPORTED AGGREGATIONS Maximum Minimum Sum Average Sort 24 / 33
  • 36. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary MAXIMUM Example On the server, compute: Res(RA) = Max(RA) Res(RAB) = Max(RAB) On the client, compute: FMax = Max(Max(RA), Max(RAB)) 25 / 33
  • 37. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 38. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary ENVIRONMENT SAP HANA database Extended with UDFs Server 8-core 2.6GHz 252GB RAM Client 2-core 2.8GHz 16GB RAM Proxy re-encryption implementation C language pbc and gmp libraries 26 / 33
  • 39. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary DATASETS TCP-C benchmark IS-H: Healthcare management LSM: Resources planning SFIN: Simplified finances for SAP ERP Dataset # Tables # Columns TCP-C 9 92 IS-H 7 477 LSM 25 173 SFIN 9 741 27 / 33
  • 40. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary MULTI USER MODE OVERHEAD Overhead of multi user mode: 37% 28 / 33
  • 41. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary IMPACT OF QUERY REWRITING 29 / 33
  • 42. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary IMPACT OF NUMBER OF USER GROUPS 30 / 33
  • 43. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary IMPACT OF POST-PROCESSING 31 / 33
  • 44. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary OUTLINE 1 Introduction 2 Access Control 3 Query Rewriting 4 Proxy Re-Encryption 5 Split Execution 6 Experiments 7 Summary
  • 45. Introduction Access Control Query Rewriting Proxy Re-Encryption Split Execution Experiments Summary SUMMARY ENKI Query processing over encrypted data Contribution Access control Query rewriting strategies Secure proxy re-encryption Split execution Evaluation “Modest overhead” (40%) 32 / 33
  • 46. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management EXTRA SLIDES
  • 47. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management PROJECTION: πβ(R) Relation R R (Ai(1), ..., Ai(k)) ⊆ R(A1, ..., An) Attribute list β β = (Ai(1), ..., Ai(k)) ⊆ (A1, ..., An) Example (πβ(R), Alice) = πκr a(β)(κr a(RA))∪ πκr ab(β)(κr ab(RAB)) = κr a(RA) ∪ κr ab(RAB)
  • 48. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management RENAME: ρQ←Ai (R) Rename ρ of an attribute Ai ∈ R to Q Encrypt the new attribute name Use keys of virtual relations Rename is not persisted Example (ρQ←Ai (R), Alice) = ρκr a(Q)←κr a(Ai )(κr a(RA))∪ ρκr ab(Q)←κr ab(Ai )(κr ab(RAB))
  • 49. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management COUNT: βγCount(Ai)(R) Executed on server-side Count attributes values of Ai Sum the partial results from virtual relations Example (βγCount(Ai )(R), Alice) = κr a(β)γCount(κr a(Ai ))(κr a(RA))+ κr ab(β)γCount(κr ab(Ai ))(κr ab(RAB))
  • 50. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management SET UNION: R ∪ S Union between two relations R and S Same set of attributes Example (R ∪ S, Alice) = {κr a(t)|t ∈ RA}∪ {κr ab(t)|t ∈ RAB}∪ {κs a(t)|t ∈ SA}∪ {κs ab(t)|t ∈ SAB}
  • 51. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management ALGORITHMS Parameter generation Key generation Encryption Token Proxy re-encryption
  • 52. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management PARAMETER GENERATION Receives a security parameter λ Generate a prime number p Generate two groups G1, G2 of order p Generate a map e : G1 × G1 → G2 Choose a random generator G ∈ G1
  • 53. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management KEY GENERATION Choose a random ki ∈ Zp
  • 54. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management ENCRYPTION Receives a plaintext m with key ki Generates a ciphertext C = Gmki ∈ G1
  • 55. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management TOKEN Receive two keys ki and kj Generate a token T for proxy re-encryption T = G kj ki ∈ G1
  • 56. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management PROXY RE-ENCRYPTION Receives a ciphertext C encrypted with ki Generate ciphertext C encrypted with kj C = e(C, T) = e(Gmki , G kj ki ) = e(G, G) mki kj ki = e(G, G)mkj = gmkj ∈ G2
  • 57. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management EXECUTING COUNT DISTINCT Adjust keys of virtual relations Re-encrypt to a common key Example (βγCountDistinct(Ai )(R), Alice) = κc(β)γCountDistinct(κc(Ai ))(κc(RA) ∪ κc(RAB))
  • 58. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management EXECUTING SET DIFFERENCE Adjust keys of virtual relations Re-encrypt to a common key Example (R S, Alice) = {κc(t)| t ∈ (RA ∨ RAB)∧ t /∈ (SA ∨ SAB)}
  • 59. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management SUM Example On the server, compute: Res(RA) = Sum(RA) Res(RAB) = Sum(RAB) On the client, compute: FSum = Sum(Sum(RA), Sum(RAB))
  • 60. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management AVERAGE Replaced by the functions sum and count Example On the server, compute: Res(RA) = {Sum(RA), Count(RA)} Res(RAB) = {Sum(RAB), Count(RAB)} On the client, compute: FAvg = Sum(RA)+Sum(RAB) Count(RA)+Count(RAB)
  • 61. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management SORT Example On the server, compute: Res(RA) = Sort(RA) Res(RAB) = Sort(RAB) On the client, compute: FSort = Merge sorted lists(Sort(RA), Sort(RAB))
  • 62. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management SYSTEM SETUP The data owner Handles n users Defines the user group mapping Defines the virtual relation mapping
  • 63. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management QUERY EXECUTION STEPS 1 Look up 2 Proxy Re-encryption 3 Query encryption 4 Query rewriting 5 Server-side execution 6 Client-side execution
  • 64. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management LOOK UP Checks the user group mapping Groups the query issuer belongs to Checks virtual relation mapping Virtual relations used to answer the query
  • 65. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management PROXY RE-ENCRYPTION Queries containing Equi-join Set difference Count distinct Adjust keys of virtual relations Temporary re-encryption to shared key Example (R Ai =Bi S, Alice) = {κc(r)κc(s)| r ∈ (RA ∨ RAB)∧ s ∈ (SA ∨ SAB)∧ κc(ri)θκc(sj)}
  • 66. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management QUERY ENCRYPTION Encrypt attributes used in the query Attributes accessible by the issuer Example (σαθβ(R), Alice) = σκr a(α)θκr a(β)(κr a(RA))∧ σκr ab(α)θκr ab(β)(κr ab(RAB)) = {κr a(t)|t ∈ RA ∧ κr a(α)θκr a(β)}∪ {κr ab(t)|t ∈ RAB ∧ κr ab(α)θκr ab(β)}
  • 67. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management QUERY REWRITING Modifies query Executed over virtual relations Returns a query sQ Executed on the server Can return am additional query cQ Executed on the client Example sQ : Sum(RA), Count(RA), Sum(RAB), Count(RAB) cQ : FAvg = Sum(RA)+Sum(RAB) Count(RA)+Count(RAB)
  • 68. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management SERVER-SIDE EXECUTION Executes the encrypted query sQ Returns encrypted results to the client If necessary, also returns cQ Example Res(RA) = {Sum(RA), Count(RA)} Res(RAB) = {Sum(RAB), Count(RAB)}
  • 69. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management CLIENT-SIDE EXECUTION Receives the encrypted results Decrypt Execute cQ if it exists Example FAvg = Sum(RA)+Sum(RAB) Count(RA)+Count(RAB)
  • 70. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management DYNAMIC ACCESS CONTROL POLICIES Objects are encrypted with different keys Busy user groups User groups associated with objects Non-empty object set Access policies might change Granting or revoking rights Changes busy user groups
  • 71. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management USER HIERARCHY User Hierarchy (U) Given a set of users S = {s1, ..., sn}, a user hierarchy U is a pair (P∗ (S), ) where P∗ (S) is the powerset without the empty set of S and is a partial order such that for all sets of users pi, pj ∈ P∗ (S), pi pj if pj ⊆ pi for all i, j = {1, ..., 2n−1 }. User dynamics change the hierarchy Adding or deleting users
  • 72. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management ADDING USER sn+1 Case 1 The original busy group porig i becomes not busy The new group (pnew i ∪ sn+1) is busy Case 2 The original busy group porig i stays busy The new group (pnew i ∪ sn+1) is also busy
  • 73. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management ADDING USER sn+1: CASE 1 The busy group porig i becomes non busy The new group (pnew i ∪ sn+1) is busy Solution Add the user to the object set Share the group key with user sn+1 O(porig i ) = O(porig i ∪ sn+1)
  • 74. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management ADDING USER sn+1: CASE 2 The busy group porig i stays busy The new group (pnew i ∪ sn+1) is also busy Solution sn+1 has access to a subset of objects of porig i Re-encrypt O(porig i ∪ sn+1) with a new key O(porig i ) = O(pnew i ) ∪ O(porig i ∪ sn+1) O(pnew i ) ∩ O(porig i ∪ sn+1) = ∅
  • 75. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management REVOKING RIGHTS OF USER sn Case 1 A user sn is revoked from all rights Case 2 A user sn is revoked from a user group Case 3 A user sn is revoked from certain objects
  • 76. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management REVOKING USER sn: CASE 1 A user sn is revoked from all rights The hierarchy changes Solution The busy group porig i ∪ sn is deleted Objects from porig i ∪ sn are accessible by porig i Re-encrypt O(porig i ∪ sn) using the key of porig i O(pnew i ) = O(porig i ) ∪ O(porig i )
  • 77. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management REVOKING USER sn: CASE 2 A user sn is revoked from a user group Does not change the hierarchy Changes busy user groups Solution Busy user group porig i ∪ sn becomes non busy Re-encrypt O(porig i ∪ sn) using the key of porig i O(pnew i ) = O(porig i ∪ sn) ∪ O(porig i )
  • 78. Rewriting Strategies Proxy Re-Encryption Split Execution System Execution Flow Key Management REVOKING USER sn: CASE 3 A user sn is revoked from certain objects Solution Busy group porig i ∪ sn is split into two – pnew i ∪ sn and pnew i Re-encrypt O(pnew i ) using the key of porig i O(porig i ∪ sn) = O(pnew i ∪ sn) ∪ O(pnew i ) O(pnew i ∪ sn) ∩ O(pnew i ) = ∅