Access control for encrypted query processing

Information

  • Patent Grant
  • 9547720
  • Patent Number
    9,547,720
  • Date Filed
    Wednesday, December 24, 2014
    9 years ago
  • Date Issued
    Tuesday, January 17, 2017
    7 years ago
Abstract
Methods, systems, and computer-readable storage media for enforcing access control in encrypted query processing. Implementations include actions of obtaining a set of user groups based on the user credential and a user group mapping, obtaining a set of relations based on the query, obtaining a set of virtual relations based on the set of user groups and the set of relations, receiving a first rewritten query based on the set of virtual relations and a query rewriting operation, encrypting the first rewritten query to provide an encrypted query, and transmitting the encrypted query to at least one server computing device over a network for execution of the encrypted query over access controlled, encrypted data.
Description
BACKGROUND

Encrypted databases provide data protection (security) in cloud platforms and/or database-as-a-service settings. In encrypted databases, data (cleartext) can be encrypted at the client to provide encrypted data (ciphertext), which can be provided to the database for storage. In some examples, a third-party provides the database for interaction with one or more applications, although the stored data is encrypted. That is, the database is outsourced to the third-party.


Outsourcing a database offers efficient resource management and low maintenance costs for clients, but exposes outsourced data (client data) to a service provider (the third-party providing the database and its agents). To ensure data confidentiality, data owners seek to prevent unauthorized access, while data is stored or processed. Storing data on an untrusted database requires protection measures against, for example, curious personnel working for the service provider or outside attackers exploiting software vulnerabilities on the database server. In addition, data owners also seek to control data access for their own personnel.


SUMMARY

Implementations of the present disclosure include computer-implemented methods for enforcing access control in encrypted query processing. In some implementations, actions include obtaining a set of user groups based on the user credential and a user group mapping, the set of user groups including at least one user group, obtaining a set of relations based on the query, obtaining a set of virtual relations based on the set of user groups and the set of relations, the set of virtual relations including at least one virtual relation, receiving a first rewritten query based on the set of virtual relations and a query rewriting operation, encrypting the first rewritten query to provide an encrypted query, and transmitting the encrypted query to at least one server computing device over a network for execution of the encrypted query over access controlled, encrypted data. Other implementations of this aspect include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.


These and other implementations can each optionally include one or more of the following features: actions further include determining that the query includes at least one operation that is included in a set of predefined operations, and in response, initiating a key adjustment; the user group mapping maps one or more users to one or more user groups, based on an access control matrix that indicates which users are allowed access to which data stored in an encrypted database; the set of virtual relations is obtained further based on a virtual relation mapping that maps at least one relation and user group pair to a virtual relation; actions further include: receiving an encrypted result from the server computing device, and decrypting the encrypted results to provide a query result; actions further include: receiving a second rewritten query based on the set of virtual relations and the query rewriting operation, and obtaining a final query result based on the second rewritten query and the query result; and the set of pre-defined operations includes one or more of a count operation, a count distinct operation, an equi-join operation, and a set difference operation.


The present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.


The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.


It is appreciated that methods in accordance with the present disclosure can include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.


The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.





DESCRIPTION OF DRAWINGS


FIG. 1 depicts an example high-level architecture in accordance with implementations of the present disclosure.



FIG. 2 depicts a schematic architecture and example threat model in accordance with implementations of the present disclosure.



FIG. 3 depicts an example listing for a query rewriting operation in accordance with implementations of the present disclosure.



FIG. 4 depicts an example process that can be executed in accordance with implementations of the present disclosure.



FIG. 5 is a schematic illustration of example computer systems that can be used to execute implementations of the present disclosure.





Like reference symbols in the various drawings indicate like elements.


DETAILED DESCRIPTION

Implementations of the present disclosure are generally directed to enforcing access control in encrypted query processing. More specifically, implementations of the present disclosure are directed to securely executing queries (encrypted queries) over sensitive, access restricted data (encrypted data subject to one or more access control policies) on an outsourced database. In some implementations, an encryption-based access control model is provided. In some examples, the access control model defines access control restrictions at the level of attribute values and applies encryption as a relational operation to enforce the access restrictions on a relational algebra. In some implementations, techniques for query execution over encrypted, access restricted data on the database are provided. An example technique includes a query rewriting strategy to adapt relational operations over data encrypted with different keys. Other example techniques include a privacy-preserving routine for performing join operations and set difference operations in a multi-user mode, and a post-processing routine on the client-side, which conserves computational effort on the client, while preserving the confidentiality of the data.



FIG. 1 depicts an example high-level architecture 100 in accordance with implementations of the present disclosure. The high-level architecture 100 includes computing devices 102, 103, e.g., client-side computing devices, server systems 104, 106 and a network 108. In some examples, the computing devices 102, 103 and the server systems 104, 106 communicate over the network 108. In some examples, the computing devices 102, 103 can communicate with the server systems 104, 106 over one or more networks (e.g. including the network 108). In some examples, the computing devices 102, 103 can each include any appropriate type of computing device such as a desktop computer, a laptop computer, a handheld computer, a tablet computer, a personal digital assistant (PDA), a cellular telephone, a network appliance, a camera, a smart phone, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device, an email device, a game console, or an appropriate combination of any two or more of these devices or other data processing devices.


In some implementations, each server system 104, 106 includes at least one server and at least one data store. In the example of FIG. 1, the server systems 104, 106 is intended to represent various forms of servers including, but not limited to, a web server, an application server, a proxy server, a network server, and/or a server pool. In general, server systems accept requests for application services and provides such services to any number of client devices, e.g., the computing devices 102, 103, over the network 108.


In some implementations, the network 108 can include a large computer network, such as a local area network (LAN), a wide area network (WAN), the Internet, a cellular network, a telephone network (e.g., PSTN) or an appropriate combination thereof connecting any number of communication devices, mobile computing devices, fixed computing devices and server systems.


In some implementations, the server system 104 hosts one or more applications. That is, for example, the server system 104 can be provided as an application server. In some examples, an application is provided as one or more computer-executable programs. In some implementations, each computing device 102, 103 can be used to interact with an application hosted on the server system 104. For example, a user 120 can interact with the computing device 102 to interact with an application hosted on the server system 104, and a user 122 can interact with the computing device 103 to interact with an application hosted on the server system 104.


In some implementations, the server system 106 can maintain a database that stores encrypted data. In some examples, the database is referred to as an encrypted database. In some examples, an application hosted on the server system 104 interacts with the encrypted database. For example, and as described in further detail herein, the application can query the database by submitting one or more encrypted queries to the server system 106. In some examples, data stored in the encrypted database is encrypted at the computing device 102, the computing device 103 and/or the server system 104, and the encrypted data is sent to the server system 106 over the network 108 for storage. In some implementations, and as described herein, the server system 106 can be provided by a third-party service provider, which stores and provides access to the encrypted data.


Enhancing data security in an outsourced database can be achieved using encrypted query processing, which includes executing encrypted queries over encrypted data. In a multi-user mode, e.g., where two or more users are querying encrypted data, additional fine-grained access control mechanisms can be used to grant or restrict shared data access to users processing unencrypted query results. In some cases, implementing such a multi-user mode using encrypted query processing for a single user, combined with an additional authorization step at the application server can be compromised. As an example, a user working for the data owner and an employee working for the service provider could collude. In this example, if the user knows the decryption key of the data and the employee provides the encrypted data stored in the database, they are able to decrypt all data and bypass the access control mechanisms. Even if a trusted third-party receives the encrypted data from the service provider, decrypts the data, and enforces the access control policies, the user and employee can still collaborate in a chosen plaintext attack to retrieve the data.


In this context, and as introduced above, implementations of the present disclosure are directed to securely executing queries over sensitive, access restricted data on an outsourced database. In some implementations, an encryption-based access control model is provided. In some examples, the access control model defines access control restrictions at the level of attribute values and applies encryption as a relational operation to enforce the access restrictions on a relational algebra. In some implementations, techniques for query execution over encrypted, access restricted data on the database are provided. An example technique includes a query rewriting strategy to adapt relational operations over data encrypted with different keys. Other example techniques include a privacy-preserving routine for performing join operations and set difference operations in a multi-user mode, and a post-processing routine on the client-side, which conserves computational effort on the client, while preserving the confidentiality of the data.


In further detail, implementations of the present disclosure securely process relational operations over encrypted, access restricted relations. In some implementations, and as described in further detail herein, data with different access rights is encrypted with different keys, and query processing is handled over data encrypted with multiple encryption keys. Implementations of the present disclosure enable query processing over access controlled, encrypted data, and overcomes particular challenges. An example challenge is the mapping of any complex access control structure required in a multi-user scenario to an encryption-enforced access control model, which still allows query execution. Another example challenge is efficiently executing a range of queries, while minimizing any revealed information and the number of computations performed on the client-side. Implementations of the present disclosure overcome these challenges using the encryption-based access control model and the herein-described techniques to support the execution of relational operations in a multi-user mode.


Implementations of the present disclosure are described in further detail herein with reference to an example scenario. The example scenario illustrates a problem in enforcing access control policies for encrypted queries in a multi-user mode. It is contemplated, however, that implementations of the present disclosure can be provided in any appropriate scenario.


In the example scenario, a user Alice and a user Bob share a database with a table R and a table S. For example, in the tables, Alice has private access to certain tuples and shares access to other tuples with Bob, and Bob has private access to certain tuples. In this example, the tuples of table R that are accessible only to Alice are encrypted with a key r_a, and the tuples of table S that are accessible only to Alice are encrypted with a key s_a, and tuples that are only accessible to Bob are encrypted with a key r_b and a s_b for tables R and S, respectively. Tuples of table R that are accessible to Alice and Bob are encrypted with a key r_ab, and tuples of table S that are accessible to Alice and Bob are encrypted with a key s_ab. Alice knows keys r_a, r_ab, s_a, and s_ab and Bob knows keys r_b, r_ab, s_b, and s_ab.


Continuing with the example scenario, Alice issues an equal join operation on tables R and S. In response, the database executes a cartesian product on all tuples of R and S that Alice is allowed to access and key-adjusts these tuples to check the equal condition. Current key-adjustment protocols for deterministic encryption schemes cannot enforce access restrictions while key-adjusting the tuples. That is, current key-adjustment protocols reveal private information. To illustrate this, key-adjustments of keys a and ab to a new key c can be provided and are denoted as a˜c and ab˜c. Existing protocols are symmetric and transitive such that a key-adjustment a˜c˜ab exists. Consequently, Bob can key-adjust all data encrypted with key a to the shared key ab. This circumvents the defined access restrictions as the key-adjustment reveals information exclusively accessible by Alice. As described in further detail herein, implementations of the present disclosure resolve this problem by enforcing access control in encrypted query processing.



FIG. 2 depicts a schematic architecture 200 and example threat model in accordance with implementations of the present disclosure. The example architecture 200 includes a trusted side 202 (e.g., client-side) and an untrusted side 204 (e.g., server-side, third-party service provider). The trusted side 202 includes an application 206, a query adapter 208 and a database driver 210. In some examples, the application 206, the query adapter 208 and the database driver 210 are each provided as one or more computer-executable programs executed by one or more computing devices (e.g., the server system 104 of FIG. 1). In the depicted example, a plurality of client devices 212a, 212b, 212c (e.g., the computing device 102, 103 of FIG. 1) interact with the application 206. In some examples, users 214a, 214b, 214c (e.g., user Alice, user Bob, user Charlie, respectively) interact with the client devices 212a, 212b, 212c, respectively.


In the depicted example, the untrusted side 204 includes a database management system (DBMS) 220 and a database 222. The database 222 stores encrypted data, to which the users 214a, 214b, 214c have selective access based on one or more access control policies (ACPs). In the example of FIG. 2, the database 222 includes data 224a that is accessible only to the user 214a, data 224b that is accessible only to the user 214b, data 224c that is accessible only to the user 214c, data 224d that is accessible only to the user 214a and/or the user 214b, data 224e that is accessible only to the user 214b and/or the user 214c, data 224f that is accessible only to the user 214a and/or the user 214c, and data 224g that is accessible to the user 214a, the user 214b and/or the user 214c. In some examples, the data 224a, 224b, 224c, 224d, 224e, 224f, 224g each include one or more data tuples.


In some examples, the trusted side 202 corresponds to a data owner (e.g., an entity, such as a company), and the untrusted side 204 corresponds to a third-party service provider (e.g., a cloud hosting company). In some examples, the users 214a, 214b, 214c are agents (e.g., employees) of the data owner. In some examples, the users 214a, 214b, 214c interact with the application 206 through the respective clients 212a, 212b, 212c, which interactions can result in querying of the database 222 through the DBMS 220. In some examples, the DBMS 220 provides query results in response to a query.


In some implementations, the query adapter 208 is an extension of the DB driver 210, which rewrites an incoming query to be processable in a multi-user mode. In some implementations, each client 212a, 212b, 212c post-processes a respective returned query result (e.g., a query result provided to the respective client in response to a query issued by that client). In some implementations, the DMBS 220 is responsive to user-defined functions (UDFs), which perform cryptographic operations. Example cryptographic functions include privacy-preserving key-adjustment of the present disclosure, described in further detail herein.


In the example threat model, implementations of the present disclosure provide data confidentiality for private data of a user even if other (shared) keys of the user are compromised. In some examples, the attacker is passive. That is, the attacker can read all information stored on the database, but does not manipulate the stored data or issued queries.


As introduced above, implementations of the present disclosure provide an encryption-based access control model for specifying access rights based on attribute values of relations and cryptographically enforce the access rights. In some implementations, access restrictions on attribute values of a relation are defined using an access control matrix. In some examples, the access control matrix may serve as a base for more enhanced access models, which can exploit role-based access control.


In an example access control matrix custom character the rows correspond to subjects s and the columns correspond to objects o. Table 1, provided below, illustrates an example access control matrix with two users, Alice and Bob, as subjects and a relation R containing five tuples, t1, . . . , t5, as objects. The set of all subjects is denoted as S, where |S|=n, and the set of all objects is denoted as O.









TABLE 1







Example Access Control Matrix














User
t1
t2
t3
t4
t5







Alice
0
1
1
1
1



Bob
1
1
0
1
0










In some examples, the data owner grants access for an object o to a subject s by setting the entry in the access matrix custom character[s, o] to 1. If no access is granted, the entry is set to 0. A column of an access control matrix is a representation of the set of subjects that have access to an object o. This is denoted as a qualified set of object o (e.g., QSo). For example, the qualified set of object can be understood as the representation of the set of users that have access to a particular object. In some examples, each object can be accessed by at least one subject such that there are no zero columns and no empty qualified sets. In the example of Table 1, above, QSt4={1,1} is the qualified set of object t4, denoting that user Alice and user Bob both have access to tuple t4.


In some implementations, custom character*(S) is provided as the power set of all subjects S without the empty set. In some examples, each of these subsets is denoted as picustom character*(S) for all i=1, . . . , 2n−1, and can be referred to as a user group. From the example access control matrix of Table 1, three user groups are provided: p1={Alice}, p2={Bob}, and p3={Alice, Bob}. A mapping is provided, which assigns each user to the user groups that the user participates in. For each user s, there is a set of pj with j={1, . . . , 2n−1} of all user groups that the user participates in. This mapping is referred to as a user group mapping (UGM) and can be stored as a relation with the attributes: user and user group. Table 2, provided below, depicts an example user group mapping for the example example access control matrix of Table 1.









TABLE 2







Example User Group Mapping










User
User Group







Alice
p1



Alice
p3



Bob
p2



Bob
p3











The example of Table 2 shows that user Alice is member of user groups p1 and p3, and that user Bob is member of user groups p2 and p3.


In some implementations, a qualified set of an object maps to one and only one user group, which contains the same set of subjects. Consequently, all objects that are accessible by the same user group are provided in an object set for that user group. In some examples, an object set is provided as:

O(pi)={o|o ∈OΛQSo=pi}

for a user group picustom character*(S). This is the set of all objects assigned to the same user group. In the example of Table 1, example object sets are provided as: O(p1)={t3,t5}, O(p2)={t1}, and O(p3)={t2,t4}. It can be noted that all O(pi) form a partition over O as each two object sets are pairwise disjoint and the union of all object sets (which are non-empty by definition) is equal to the set of all objects O.


This resulting partition can be used to divide the underlying relation. That is, to store each object set in a separate relation, which can be referred to as a virtual relation. In some examples, a virtual relation indicates that one user group can access all of its tuples. This saves the annotation of a tuple with access information as its insertion in a virtual relation implies that this tuple can be accessed by a certain user group. In some examples, for n users, each relation is partitioned in a maximum of 2n−1 virtual relations. The total number of tuples does not change as each tuple of a relation is stored in one and only one virtual relation.


In some implementations, a mapping is provided, which assigns each user group and relation to the virtual relation containing the tuples that the particular user group is granted access to. This mapping is referred to as a virtual relation mapping (VRM) and can be stored as a relation with the attributes User Group, Relation, and Virtual Relation, for example. Table 3, provided below, depicts an example virtual relation mapping based on Table 1 and Table 2, described above.









TABLE 3







Example Virtual Relation Mapping











User Group
Relation
Virtual Relation







A
R
RA



B
R
RB



AB
R
RAB











More particularly, Table 3 depicts the virtual relation mapping for the user groups A, B, and AB and the relation R. The pair user group A and relation R is mapped to virtual relation RA, the pair user group B and relation R is mapped to virtual relation RB, and the pair of user group AB and relation R is mapped to virtual relation RAB. In some examples, the data owner specifies and maintains the user group mapping and the virtual relation mapping.


In accordance with implementations of the present disclosure, encryption is provided as a relational operation and the previously defined access restrictions are enforced. In some examples, a relation R=R (A1, . . . , An) with A1, . . . , An attributes can be considered. It contains tuples tk=(t1k, . . . , tnk) with 1, . . . , n the number of attributes and k=1, . . . , j the cardinality. An encryption κz (Ai) of attribute Ai with key z is provided as:

κz(Ai):={κz(tik)|tik∈Aiforallk=1, . . . , j}

with tik being the attribute values of Ai for all k=1, . . . , j.


The encryption of relation R=R (A1, . . . , An) is the encryption of its attributes A1, . . . , An and their attribute values t1k, . . . , tnk for all k=1, . . . , j, and is provided as:

κz(R): =Rz(A1), . . . , κz(An))={κz(t1k), . . . , κz(tnk)|tik∈Ai for all i=1, . . . ,n and for all k=1, . . . , j}.


In some implementations, for query processing over encrypted data, adjustable query-based encryption is used. In some examples, adjustable query-based encryption provides onion encryption layers for different classes of computation, which enables the execution of any relational operations over one attribute. In some examples, onion encryption layers are formulated as the composition of encryption operations over an attribute Ai, which can be provided as:

    • OnionDET: κzRNDzDETzJOIN(Ai)))
    • OnionOPE: κzRNDzOPE (Ai))
    • OnionHOM: κzHOM(Ai)


      where DET indicates deterministic encryption, OPE indicates order-preserving encryption, HOM indicate homomorphic encryption, and JOIN indicates the privacy-preserving encryption scheme provided in the present disclosure and applied, for example, to execute (equi-) join and set difference operations. In some examples, applying adjustable query-based encryption strategy allows to dynamically adjust layers of encryption on the DBMS server (e.g., the DBMS 220 of FIG. 2) to support relational operations.


In the following description, an encryption scheme is referred to as relational operation κz with key z relying on the efficient support of encrypted query processing. For purposes of brevity, details of the onion encryption layer, encryption scheme and encryption key have been forgone.


In accordance with implementations of the present disclosure, encryption is used to enforce the access restrictions on tuples of a relation. By way of example, a relation R=R (A1, . . . , An) and the user groups A, B, and AB can be considered. In some examples, the data owner splits R into virtual relations RA, RB, and RAB such that, for example:

RA(A1, . . . , An)=RB(A1, . . . , An)=RAB(A1, . . . , An).

In some examples, the data owner generates encryption keys for each user group and encrypts the respective virtual relation with the respective encryption key. For example, the data owner generates key r_a for user group A and encrypts RA as:

κr_a(RA)={κr_a(t)|t∈RA}.

Similarly, the data owner generates keys r_b and r_ab and encrypts RB and RAB for user groups B and AB, respectively. The data owner issues the respective keys to the member(s) of each user group.


In accordance with implementations of the present disclosure, encrypted query processing over a relational operation can be efficiently supported for a single-user mode. In particular, this holds for the following example primitive and derived relational operations: selection, projection, rename, cartesian product, set union, set difference, equi join; and aggregate functions: group by, count distinct, sum, average, maximum, minimum, and sort. In some examples, two count operations are provided, count and count distinct. In some examples, count counts the number of attribute values. In some examples, count distinct counts the number of distinctive attribute values. Both count operations are covered by single-user mode.


The introduction of access restrictions (based on access control policies (ACPs)) on relations, however, interferes with encrypted query processing in multiple ways. In one example, a relational operation is now executed over (potentially) multiple virtual relations depending on the access rights of the user rather than on one relation. To address this, the present disclosure provides query rewriting strategies, described in further detail below. Applying the rewriting strategies does not change the application logic. For example, the user only submits the original, unchanged query and their credentials (e.g., user ID). In some examples, a query adapter (e.g., the query adapter 208 of FIG. 2) rewrites the query and the DB driver (e.g., the DB driver 210 of FIG. 2) adapts the rewritten query for encrypted query processing. As another example, key-adjustments on virtual relations can be needed to support count distinct, equi-join, or set difference operations. These, however, might lead to a data compromise or a malfunction as a key-adjustment might falsely grant or revoke access rights. To address this, the present disclosure provides the privacy-preserving encryption scheme to support key-adjustments in a multi-user mode, as described in further detail below. In some examples, the privacy-preserving encryption scheme provides key-adjustment of attributes or relations encrypted with different keys, while preserving the access rights. As another example, some relational operations can only be executed on the server-side with significant computational effort, huge storage capacities, or diminishing security. To address this, the present disclosure provides a client-server split, requiring small data traffic and minimal computational effort on the client-side, while preserving security, as described in further detail herein.


The above-described features (techniques) can be combined in a multi-user protocol to handle the presence of multiple users described, as described in further detail herein. In some examples, the multi-user protocol receives a user credential (e.g., user ID) and a query, which includes a combination of relational operations, processes the query over virtual relations, and returns the result. In some examples, the multi-user protocol can handle an arbitrary set of users.


The multi-user protocol, incorporating the multiple techniques described herein, will be described in further detail with reference to the examples described above. More particularly, the table R is parted into virtual relations RA, RB, and RAB, which are encrypted as κr_a (RA), κr_b (RB), and κr_ab(RAB), respectively, with keys r_a, r_b r_ab. Table S is treated accordingly.


As introduced above, the present disclosure provides rewriting strategies for the relational operations selection, projection, rename, aggregate function count, set union, and cartesian product over encrypted virtual relations. Applying these rewriting strategies enables the straight-forward execution of these relational operations over encrypted data.


Selection: Consider a predicate θ (e.g. =, <, ≦, >, ≧) and α, β attributes, constants, or terms of attributes, constants, and data operations. A selection σαθβ(R) on relation R issued by user Alice is executed on the encrypted virtual relations κr_a (RA) and κr_ab(RAB). The condition αθβ has to be applied on both virtual relations. Therefore, αθβ is encrypted with key r_a as








κ

r

_

a




(
α
)





θκ

r

_

a




(
β
)







and with key r_ab as








κ

r

_

ab




(
α
)






θκ

r

_

ab




(
β
)


.






For example:







(



σ
αθβ



(
R
)


,
Alice

)

=




σ



κ

r

_

a




(
α
)





θκ

r

_

a




(
β
)







κ

r

_

a




(

R
A

)






σ



κ

r

_

ab




(
α
)





κ

r

_

ab




(
β
)







κ

r

_

ab




(

R
AB

)




=


{



κ

r

_

a




(
t
)


|


t


R
A






κ

r

_

a




(
α
)





θκ

r

_

a




(
β
)





}




{



κ

r

_

ab




(
t
)


|


t


R
AB






κ

r

_

ab




(
α
)





θκ

r

_

ab




(
β
)





}

.







Projection: Let R′ be a relation with R′(Ai(1), . . . , Ai(k))custom characterR (A1, . . . , An), and RA, and RAB′ be the respective virtual relations. A projection πβ(R) with attribute list β=(Ai(1), . . . , Ai(k))custom character(A1, . . . , An) on relation R issued by user Alice is executed over the virtual relations κr_a (RA) and κr_ab (RAB). Accordingly, the attribute list β is encrypted with key r_a as:

κr_a(β)=κr_a(Ai(1)), . . . ,κr_a(Ai(k))

and also encrypted with key r_ab as:

κr_ab(β)=κr_ab(Ai(1)), . . . , κr_ab(Ai(k)).

For example:










(



π
β



(
R
)


,
Alice

)

=


π


κ

r





_





a




(
β
)





(


K

r





_





a




(

R
A

)


)
















π


κ

r





_





a





b




(
β
)





(


κ

r





_





a





b




(

R

A





B


)


)



=


{



κ

r





_





a




(
t
)




r


R

A





}




{



κ

r





_





a





b




(
t
)


|

t


R

A





B





}

.









Rename: A rename ρ of an attribute Ai∈R to Q issued by Alice is executed on the encrypted virtual relations κr_a(RA) and κr_ab(RAB). The new attribute name Q is encrypted with key r_a as κr_a (Q) and with key r_ab as κr_ab (Q) respectively. It replaces the encrypted original attribute name Ai in the virtual relations. For example:







(



ρ

Q


A
i





(
R
)


,
Alice

)

=



ρ



κ

r





_





a




(
Q
)





κ

r





_





a




(

A
i

)






(


κ

r





_





a




(

R
A

)


)






ρ



κ

r





_





a





b




(
Q
)





κ

r





_





a





b




(

A
i

)






(


κ

r





_





a





b




(

R

A





B


)


)


.







In some examples, a rename is not persisted.


Count: The aggregate function βγCount(Ai)(R) on a relation R issued by Alice is executed on the virtual relations κr_a(RA) and κr_ab(RAB). For example:







(



γ

Count


(

A
i

)




β




(
R
)


,
Alice

)

=



γ

Count


(


κ

r

_

a




(

A
i

)


)






κ

r

_

a




(
β
)







κ

r

_

a




(

R
A

)



+


γ

Count


(


κ

r

_

ab




(

A
i

)


)






κ

r

_

ab




(
β
)








κ

r

_

ab




(

R
AB

)


.








In some examples, with count, the aggregate function is executed on server-side, and counts the numbers of attribute values of Ai for virtual relations κr_a(RA) and κr_ab(RAB) separately and adds these partial results on the server. The output represents the number of attribute values of attribute Ai accessible by Alice.


Set Union: Let relations R and S have the same set of attributes. A set union R∪S issued by Alice is executed on the virtual relations κr_a(RA), κr_ab(RAB), κs_a(SA), and κr_ab (SAB). For example:

(R∪S,Alice)={κr_a(t)|t∈RA}∪{κr_ab(t)|t∈RAB}∪{κs_a(t)|tΣSA}∪{κr_ab(t)|t∈SAB}.


Cartesian Product: A tuple r of relation R and a tuple s of relation S are provided. A cartesian product R×S issued by Alice is executed on the virtual relations κr_a(RA), κr_ab(RAB), κs_a(SA), and κs_ab(SAB). For example:

(R×S,Alice)={κr_a(rs_a(S)∇κr_a(rs_ab(S)∇κr_ab(rs_a(S)∇κr_ab(rs_ab(S)|r∈(RA∇RABs∈(SA∇SAB)}.


In some implementations, key adjustment is provided as a relational operation. For example, processing the unary operation count distinct or the binary operations equi-join and set difference over (deterministically) encrypted virtual relations requires that these virtual relations are encrypted with the same encryption key. This is because these operations rely on comparisons which are only feasible if the same encryption key is used. Implementations of the present disclosure key-adjust virtual relations on the database server, so that all queried attributes share the same encryption key while preserving data confidentiality.


In some implementations, a key-adjustment alters an attribute κz(Ai) encrypted with key z to enable its decryption with another key y. In some examples, a key-adjustment χyz(Ai)) of attribute Ai is provided as:

χyz(Ai)): ={χyz(tik))|tik∈Aiforallk=1, . . . , j}={κy(tik)|tik∈Aiforallk=1, . . . , j}=κy(Ai)


with tik the attribute values of Ai for all k=1, . . . , j.


In some examples, the key-adjustment of a relation κz(R) is the key-adjustment of all attributes. This can be provided as:

χyz(R))=Ryz(A1)), . . . ,χyz(An)))=Ry(A1), . . . ,κy(An))=κy(R)

In some examples, a key-adjustment scheme is called symmetric if:

χba(Ai))=κb(Ai)∇custom characterχab(Ai))=κa(Ai)

In some examples, a key-adjustment scheme is called transitive if:

χba(Ai))=κb(Ai)∇χcb(Ai))=κc(Ai)custom characterχca(Ai))=κc(Ai).


In some implementations, a symmetric and transitive key-adjustment ensures privacy-preserving computations on the database server for the single user mode. However, and as described above, key-adjustment does not preserve data confidentiality in the multi-user mode. Accordingly, implementations of the present disclosure provide a non-symmetric and non-transitive key-adjustment scheme, referred to herein as MDetAdj, which can be described as the cryptographic primitive for count distinct, equi-joins, and set differences in multi user mode.


Accordingly, a deterministic, non-symmetric, non-transitive key-adjustment scheme MDetAdj (KeyGen, Enc, Token, Adj) is provided as a tuple of a plurality of probabilistic polynomial time operations such that:

    • ki←KeyGen(λ). Randomly choose key kicustom characterp. Return ki.
    • C←Enc(m, ki). Choose a plaintext m and encrypt it with key ki as C=Gmkicustom character1. Return base value C.
    • T←Token(ki, kj). Generate an adjustment token to key-adjust ki to temporary key kj as






T
=


G


k
j


k
i






1

.







Return T.

    • C′←Adj(C, T). Key-adjust a ciphertext C encrypted with key ki to key kj as:







C


=


e


(

C
,
T

)


=


e
(


G

mk
i


,

G


k
j


k
i




)

=



e


(

G
,
G

)




mk
i




k
j


k
i




=



e


(

G
,
G

)



mk
j


=


g

mk
j





2

.











with e: custom character1×custom character1custom character2 a bilinear, non-degenerated, computable map. Return MDetJoin value C′.


In some implementations, all attribute values are encrypted using the MDetAdj scheme, and the encrypted values are called base values. In some examples, if a key-adjustment is required, the MDetAdj scheme is used to key-adjust the base values and compute the MDetJoin value for a temporary key c. The MDetJoin values are temporarily stored, and the relational operation is processed. In some examples, after the user logs out, the MDetJoin values are deleted.


As described in further detail herein, the key-adjustment of the present disclosure provides a plurality of security guarantees. A first assumption (Assumption 1) is provided and is referred to as the 1-Bilinear Diffie-Hellman Inversion (1-BDHI) Assumption, which provides that the 1-BDHI Assumption holds if, for any probabilistic polynomial time (PPT) adversary custom character, the probability that custom character on input (Ga, Ga2, Ga3, . . . , Ga1) outputs W, such that






W
=

g

1
a







is negligible in security parameter λ. In proving this assumption, an adversary (e.g., malicious user) is assumed to be passive (e.g., the adversary can read all encrypted database entries, but does not modify the database entries).


In some examples, the adversary can compromise all user accounts except for Alice's user account. That is, the adversary has access to the private keys {d1, . . . , dn-1} of all compromised users, which private keys can include private keys shared with Alice, but does not have access to Alice's private key dn. This implies that the adversary can access all database entries encrypted for the compromised users. In particular, the adversary also has access to database entries shared by Alice with other users. The adversary can compute adjustment tokens Token (dj, di) for all compromised private keys dj∈{d1, . . . , dn-1} to be key-adjusted to an arbitrary key di. Consequently, the adversary can key-adjust the database entries of all compromised users.


In the described scenario, Alice's private database entries are not compromised. These are the database entries encrypted with a private key dn, and are only accessible by Alice. The adversary cannot access these database entries, and cannot request adjustment tokens Token(dn, di), which key-adjust database entries encrypted with Alice's private key dn to an arbitrary key di. However, the adversary can request adjustment tokens Token (di, dn), such that a database entry encrypted with an arbitrary key di can be key-adjusted to key dn. In view of the foregoing, the adversary is not able to adjust a private database entry of Alice to another key.


Continuing, custom character is provided as a probabilistic time adversary modeled as described above, and custom character is a challenger. The following example security game can be provided: d1, . . . , dn is the set of user keys with Alice's user key as dn; custom character is the set of all database entries with s∈custom character a single database entry, the set of encrypted database entries as all database entries s∈custom character encrypted with a key di∈{d1, . . . , dn}; and custom character is the set of adjustment tokens Token(di, dj) for all i, j=1, . . . n that allow a database entry encrypted with key di to be key-adjusted to key dj.


In accordance with the example security game, custom character receives the following information: the encrypted database entries of all users; the keys of all compromised users di*∈{d1, . . . , dn-1}; and a subset of adjustment tokens custom character, which contains all tokens Token(di*, di). In some examples, custom character does not include those tokens, which allow to the key dn to be key-adjusted to a key di*∈{d1, . . . , dn-1}. Further, custom charactercan perform the following actions: custom character can choose an arbitrary value s, and can encrypt the value s with key di*∈{d1, . . . , dn-1}. This is because as custom character knows the keys {d1, . . . , dn-1} of all compromised users. Although custom character does not know the key dn, custom character can encrypt an arbitrary value with key dn, because custom character can compute:








Token


(


d

i
*


,

d
n


)




d

i
*



=



(

G


d
n


d

i
*




)


d
i
*


=

G

d
n








given a Token(di*, dn) and a key di* to encrypt a chosen value s under the uncompromised key dn of Alice.


Furthermore, custom character can choose keys kicustom character and kjcustom character\{dn} and can compute Token(ki, kj). custom character can key-adjust an encrypted database entry Gdis with an adjustment token Token(ki, kj) as:







Adj


(

C
,
T

)


=


e
(


G


k
i


m


,

G


k
j


k
i




)

=


e
(


G


d
i


s


,

G


d
j


d
i




)

=



e


(

G
,
G

)




d
i


s







d
j


d
i




=



e


(

G
,
G

)




d
j


s


=

g


d
j


s










In accordance with the example security game, custom character chooses a key d and sends it to custom character. custom character selects a random value r and encrypts it with key dn as Grdn. custom character sends Grdn to custom character and requests that custom character key-adjusts C=Grdn to key d as C′d. custom character can continue to perform its actions against the protocol. At the end of the example security game, custom character outputs its guess for C′d.


In accordance with implementations of the present disclosure, MDetAdj is secure, if, for a probabilistic time adversary custom character, Pr[custom characterwinstheSecurityGameofMDetAdj] is negligible in λ(Definition 1). In some examples, if the L-BDHI Assumption holds, then the key-adjustment protocol of the present disclosure is secure (Theorem 1). To provide this, it can be assumed that the adversary can solve the security game correctly, and a solver for the 1-BDHI problem can be constructed using the adversary custom character. In some examples, the solver receives an instance of the 1-BDHI Assumption with Ga, Ga2, . . . , Ga1custom character and computes








e


(

G
,
G

)



1
a


=


g

1
a









custom characterchooses a key d and sends it to custom character. custom character picks a valid ciphertext encrypted with key a as:

C=Enc(m,k)=Gmk=Gr custom character sends C=Gr to custom character and requests the key-adjustment of C to key d as:






V
=

g


r
a


d







custom character returns its guess for V. custom character computes






W
=

V

1

r





d








to solve the instance of the 1-BDHI Assumption as:






W
=


V

1

r





d



=



(

g


1
a


d


)


1

r





d



=

g

1
a








As introduced above, implementations of the present disclosure provide key-adjustment and rewriting strategies to execute the relational operations count distinct, set difference, and equi-join. Each of these is described in further detail below.


Count Distinct: The aggregate function count distinct βγcountDistinct(Ai)(R) on a relation R issued by Alice is executed on the virtual relations κr_a(RA) and κr_ab (RAB). As these virtual relations are encrypted with different keys, it is not possible to apply a count distinct. Consequently, the key of both virtual relations are adjusted to key c. This is provided as: χc ra (RA))=RA c ra (A1)), . . . , λc ra (An)))=RAc(A1), . . . , κc (An))=κc (RA), and χcr_ab (RAB))=κc(RAB), respectively. The aggregate function count distinct is then computed as:

(βγCountDistinct(Ai)(R), Alice)=78 c(β)γCountDistinct(κc(Ai))c(RA)∪κc(RAB)).

In some examples, count distinct counts the numbers of different attribute values of Ai of all relations accessible by user Alice.


Set Difference: Let relations R and S have the same set of attributes. A set difference R\S of relation S in relation R issued by Alice is executed on the virtual relations κr_a(RA), κr_ab (RAB), κs_a(SA), and κs_ab. As these virtual relations are encrypted with different keys, it is not possible to apply a set difference. Therefore, keys of all virtual relations are adjusted to key c. This is provided as: χc r_a(RA))=RAcr_a(A1)), . . . , χcr_a(An)))=RAc (A1), . . . , κc (An))=κc(RA) and κc(RAB), κc(SA), and κc (SAB), respectively. The set difference on the key-adjusted virtual relations can be provided as:

R\S={κc(t)|t∈(RA∇RABt∉(SA∇SAB)}


Equi-Join: An equi-join issued by user Alice between two relations R=R(A1, . . . , An) and S=S(B1, . . . , Bm) on their respective attributes Ai and Bj is executed on the virtual relations κr_a (RA), κr_ab(RAB), κs_a(SA), and κs_ab(SAB). However, the attributes Ai and Bj are encrypted with different keys within the relations (Ai is encrypted with key r_a in relation RA and with key r_ab in relation RAB and Bj is encrypted with key s_a in relation SA and with key s_ab in relation SAB). To apply the condition Ai=Bj on the accessible subsets of R and S, the key of all virtual relations and the condition are adjusted with a shared encryption key. This is provided as: χc ra (RA))=κc (RA), and the keys of κc (RAB), κc (SA), and κc(SAB) are respectively adjusted. The condition Ai=Bj as κc (Ai)=κc (Bj). Because all involved relations are encrypted with the same key c, the encrypted condition can be applied as follows: (Rcustom characterAi=BjS, Alice)={κc(r)κc(s)|r∈(RA∇ RAB) Λ s∈(SA ∇SAB) Λκc (ri)θκc(Sj)}.


As introduced above, implementations of the present disclosure further provide a client-server split, requiring small data traffic and minimal computational effort on the client-side, while preserving security. In some examples, aggregate functions count, count distinct, group by, sum, average, maximum, minimum, and sort compute key figures over a whole relation. The encrypted processing of the aggregation results is supported on the server in the single user mode. Server-side execution of count and count distinct are described above for the multi-user mode.


Introducing virtual relations to specify access restrictions, aggregate functions cannot be executed over the whole relation as this relation is split in different virtual relations encrypted with different keys. In order to evaluate an aggregate function, a user has to process the aggregate function over all virtual relations that the user is allowed to access. These virtual relations are encrypted with different encryption keys. Typically, the evaluation of aggregation results requires that all invoked virtual relations are encrypted with a shared encryption key.


In accordance with implementations of the present disclosure, a client-server split is provided for evaluating the aggregation function. Accordingly, computational effort is executed over encrypted data and encrypted partial result sets are issued to the client, where they are decrypted and further processed to receive the final result. In some implementations, execution of the aggregate functions are split between server and client as follows: on the server—computation of the encrypted results for each virtual relation (partial results); and on the client—decryption of the partial results and computation of a function custom characterAgg, which takes the unencrypted partial results as input, and computes the final result depending on the underlying aggregate function.


To illustrate this approach, an aggregate function F(Ai) can be considered, which computes maximum, minimum, average, sum, or sort over an attribute Ai. Let β=(A1, . . . , Ak) be an attribute list to group the results. If β=Ø, then there is no group-by function defined. An aggregate function βγF(Ai)(R) on a relation R issued by Alice is executed over the virtual relations RA and RAB. Consequently, the attribute list β is encrypted with key r_a as κa (β) and with key r_ab as κr_ab (β). The function F(Ai) is also encrypted with key r_a as F (κa (Ai)) and with key ab as F(κr_ab (A i)). The partial result for virtual relation RA can be computed on the server as:








κ

r





_





a




(

Res


(

R
A

)


)




=
β





γ

F


(


κ

r





_





a




(

A
i

)


)






κ

r





_





a




(

R
A

)





=


κ

r





_





a




(
β
)






γ

F


(


κ

r





_





a




(

A
i

)


)






κ

r





_





a




(

R
A

)








The partial result for virtual relation RAB can be computed on the server as:








κ

r





_





ab




(

Res


(

R

A





B


)


)




=
β





γ

F


(


κ

r





_





a




(

A
i

)


)






κ

r





_





a




(

R

A





B


)





=


κ

r





_





ab




(
β
)






γ

F


(


κ

r





_





a





b




(

A
i

)


)






κ

r





_





a





b




(

R

A





B


)








The partial results κr_a (Res (RA)) and κr_ab (Res (RAB)) are sent to the client by the server, and the client decrypts the partial results. On the client, the function custom characterAgg is computed, which takes as input the unencrypted partial results. This is provided as: custom characterAgg=Agg(Res RA), Res(RAB)), which is the final result.


In some implementations, custom characterAgg is defined based on the underlying aggregate function.


Maximum/Minimum: Res(RA)=Max(RA) and Res(RAB)=Max(RAB), and custom characterFAgg=custom characterMax is determined as: custom characterMax=Max(Max(RA), Max(RAB)). This also holds for the computation of the minimum.


Sum: Res(RA)=Sum(RA) and Res(RAB)=Sum(RAB), and custom characterAgg=custom characterFsum is determined (on the client) as custom charactersum=Sum(RA)+Sum(RAB).


Average. The aggregate function average is replaced by the aggregate functions sum and count. This provides the partial results


Res(RA)={Sum(RA), Count(RA)}, and Res(RAB)={Sum(RAB), Count(RAB)}, and custom characterAgg=custom characterAvg is determined as:







F
Avg

=




Sum


(

R
A

)


+

Sum


(

R
AB

)





Count


(

R
A

)


+

Count


(

R
AB

)




.





Sort: Res(RA)=Sort(RA) and Res(RAB)=Sort(RAB), each a sorted list, and custom characterAgg=custom characterSort is determined as custom characterSort=Merge_sorted_lists (Sort(RA), Sort(RAB)).


Group By: The aggregate function group by provides the grouped results for virtual relations RA and RAB, as partial results. The partial results are provided as Res(RA)={Agg(RA) grouped by RA.Ai} and Res(RAB)={Agg(RAB) grouped by RAB. Ai}, which are computed (on the client) as: if RA. Ai=RAB. Ai, these groups of RA and RAB are merged and the merged group is included in the final result; and if RA. Ai≠RAB. Ai, the partial result is taken in the final result.


For the multi-user scenario, a multi-user operation is provided, which allows an arbitrary set of users to execute a query (i.e., a combination of relational operations) over a set of access restricted relations. In some examples, the multi-user operation takes a user credential (e.g., user ID) and an unencrypted query and returns the final result of the query as output. The user credential is an identifier that is unique to a respective user. In some examples, a query is a combination of relational operations over one or more relations. The final result is the decrypted result of the query.


As introduced above, a relation R with attributes A1, . . . , An and a relation S with attributes B1, . . . , Bm, can be considered. The data owner splits relation R in the virtual relations R1, . . . , Rk encrypted with keys v1, . . . , vk, respectively. The data owner also splits relation S in virtual relations S1, . . . , Sl, which are encrypted with keys w1, . . . , wl, respectively. The data owner handles n users. Each user is equipped with a respective user credential. The data owner defines the user group mapping where each user credential is related to its user groups, and defines the virtual relation mapping, where each pair of user group and relation is assigned to a virtual relation. In one example, a user is a member in i+j different user groups. For relation R, the user is a member in user groups, which are assigned to virtual relations κv1(R1), . . . , κvi(Ri) and for relation S, the user is member in user groups, which are assigned to virtual relations κw1(S1), . . . , κwj(Sj).


In some implementations, the multi-user operation executes the following example functions: look-up, key-adjustment, query rewriting, query encryption, server-side execution, and client-side execution. With regard to look-up the virtual relations are determined based on the query and the user credential, and it is determined whether the required attributes are encrypted with the necessary encryption layer. With regard to key-adjustment, a key-adjustment is performed, if the query includes at least one of a set of predefined operations (e.g., count distinct, equi join, or set difference) that may require key adjustment. With regard to query rewriting, the query is adapted for application on virtual relations to provide a rewritten query. An example query rewriting operation is described in further detail below. With regard to query encryption, all elements (e.g., attributes, conditions, attribute list) of the rewritten query are encrypted. With regard to server-side execution, the rewritten, encrypted query is processed over encrypted data, and the encrypted results are returned to the client. With regard to client-side execution, the returned, encrypted results are decrypted, and further processing is performed, if required. Each of these functions are described in further detail below with reference to an arbitrary query and a user ID.


In some implementations, and with reference to FIG. 2, the query adapter 208 receives a user ID and a (cleartext) query (e.g., from the application 206), the user ID identifying the user (e.g., user 214a, 214b, 214c) that submitted the query. In some examples, the query adapter 208 performs the look-up, key-adjustment, query rewriting and query encryption, and transmits an encrypted query to the server-side (e.g., the DBMS 220).


Look Up: the user group mapping is referenced to identify all user groups containing the user ID. Given these user groups and the relation(s) contained in the query, all virtual relations for each pair of user group and relation(s) are determined based on the virtual relation mapping.


Key-Adjustment: if the query contains equi-join, a set difference, or a count distinct, the keys of all involved relations are adjusted to a temporary key c.


Query Rewriting: the query rewriting operation is executed to modify the original query to be executable over the required virtual relations κv1(R1), . . . , κviRi and κw1(S1), . . . , κwj(Sj). In some implementations, and as described in further detail below, the query rewriting operation takes as input the query Q, which can contain one or more unary or binary operations over relation R (and relation S). The query rewriting operation returns a rewritten query sQ to be executed on the server. In some examples, the query rewriting operation also a rewritten query cQ to be executed on the client.


Query Encryption: all attributes of the rewritten query sQ are encrypted. If there exists a condition aθb with a, b attributes, then the attributes a and b of relations accessible by this user are encrypted with the same key c. This is to adjust all attributes Rk. a for k=1, . . . , i and all attributes Sl. b for l=1, . . . , i to the same key c. If not and b is a constant, aθb is encrypted with all keys v1, . . . , vi. The attribute list β=Ai(1), . . . , Ai(k) of a projection or an aggregate function is encrypted with the keys v1, . . . , vi of the accessible relations R1, . . . , Ri of this user. This step encrypts the aggregate function F(Ai) with key v1, . . . , vi.


Server-side Execution: the server executes the rewritten, encrypted query sQ and returns the encrypted results to the client.


Client-side Execution: the client receives the encrypted results and decrypts the encrypted results to provide cleartext (unencrypted) results. If a query cQ is not provided (e.g., from the query rewriting operation), the query processing is finished. If a query cQ is provided, the client executes the query cQ over the decrypted results to provide the final result.



FIG. 3 depicts an example listing for a query rewriting operation in accordance with implementations of the present disclosure. With reference to the example listing, for all avg ∈Q, βγAvg(Ai)(R) is rewritten as Qk=βγSum,Count(Ai)(R), and a client-side query cQ (including Qk=62γSum,Count(Ai)(R)) is provided; for all ρ∈ Q, ρ(R) is rewritten as Qt=ρ(κvk(Rk)) for all t=1, . . . , i; for all unary σ∈Q, Qt=σ(R) is rewritten as Qt=σ(κvk(Rk)) for all k, t=1, . . . , i; and for all π∈Q, π(R) is rewritten as Qt=π(Rk) for all k, t=1, . . . , i. Continuing, for all max ∇ min ∇ sum ∈Q, γF(R.Ai)ΔR is rewritten as QtF(Rk.Ai)Δ(vvk(Rk)) for all k, t=1, . . . , i, where, if custom charactercQ then cQ is modified (e.g., to include QtF(Rk.Ai)Δ(Kvk(Rk))), otherwise cQ is generated (to include QtF(Rk.Ai)Δ(Kvk(Rk))). Continuing, for all ∪∇\∇×∇custom character∈Q, Δ(R, S) is rewritten as Qt=Rk, St) for all k=1, . . . , i, l=1, . . . , j, and t=1, . . . i*j; for all sort ∇ group ∈ Q, βγF(R.Ai)Δ(Qt) is rewritten as βγF(Rk.Ai)Δ(Qt) for all t=1, . . . , i in case Q unary, or for all t=1, . . . , i*j in case Q binary, and if custom charactercQ, cQ is modified (e.g., to include βγF(Rk.Ai)Δ(Qt)), otherwise cQ is generated (to include βγF(Rk.Ai)Δ(Qt)). If Q is unary, ΔR is rewritten as sQ=∪t=1, . . . , i Qt, and if Q is binary, Δ(R, S) is rewritten as sQ=∪t=1, . . . , i*j Qt. For all count distinct ∇ count ∈ Q, βγF(Rk.Ai)(sQ) is rewritten as sQ=62γF(Rk.Ai)SQ. The server-side query sQ is returned from the query rewriting operation and includes operations that are not include in the client-side query (cQ), if cQ is generated. If cQ is generated, cQ is also returned (e.g., to the client with the encrypted results).



FIG. 4 depicts an example process 400 that can be executed in accordance with implementations of the present disclosure. In some examples, the example process 400 can be provided as one or more computer-executable programs executed using one or more computing devices. In some examples, the query adapter of 208 of FIG. 2 performs operations of the example process 400.


A query and a user credential are received (402). In some examples, the user credential (e.g., user ID) uniquely identifying a user requesting execution of the query. A set of user groups is obtained (404). In some examples, the set of user groups is obtained based on the user credential and a user group mapping. In some examples, the user group mapping maps one or more users to one or more user groups based on an access control matrix that indicates which users are allowed access to which data stored in an encrypted database. A set of relations is obtained (406). For example, the set of relations is obtained based on the query. A set of virtual relations is obtained (408). In some examples, the set of virtual relations is obtained based on the set of user groups and the set of relations. In some examples, the set of virtual relations is obtained further based on a virtual relation mapping that maps at least one relation and user group pair to a virtual relation.


It is determined whether a key adjustment is required (410). For example, if the query includes one or more operations that are included in a set of predefined operations (e.g., equi-join, set difference, count distinct), key adjustment is required. If key adjustment is required, key adjustment is initiated (412). For example, encryption keys of any implicated relations are adjusted to a temporary encryption key c.


One or more rewritten queries are received (414). For example, a query rewriting operation is performed on the query to provide at least a server-side query (sQ). In some examples, the query rewriting operation also provides a client-side query (cQ). In some examples, the query rewriting operation provides the one or more queries based on the query and the set of virtual relations. The server-side query is encrypted (416). For example, the server-side query is encrypted to provide an encrypted query. The encrypted query is transmitted (418). For example, the encrypted query is transmitted to at least one server computing device over a network (e.g., to a server computing device hosting the DBMS 220 of FIG. 2). Encrypted results are received (420). For example, encrypted results including encrypted data are determined (e.g., by the server computing device(s)) and are provided to the client-side. The encrypted results are processed to provide a final result (422). In some examples, the encrypted results are decrypted to provide a query result (e.g., cleartext data). In some examples, the query result is the final result. In some examples, if a client-side query was provided, the client-side query is executed over the query result to provide the final result.


Referring now to FIG. 5, a schematic diagram of an example computing system 500 is provided. The system 500 can be used for the operations described in association with the implementations described herein. For example, the system 500 may be included in any or all of the server components discussed herein. The system 500 includes a processor 510, a memory 520, a storage device 530, and an input/output device 540. The components 510, 520, 530, 540 are interconnected using a system bus 550. The processor 510 is capable of processing instructions for execution within the system 500. In one implementation, the processor 510 is a single-threaded processor. In another implementation, the processor 510 is a multi-threaded processor. The processor 510 is capable of processing instructions stored in the memory 520 or on the storage device 530 to display graphical information for a user interface on the input/output device 540.


The memory 520 stores information within the system 500. In one implementation, the memory 520 is a computer-readable medium. In one implementation, the memory 520 is a volatile memory unit. In another implementation, the memory 520 is a non-volatile memory unit. The storage device 530 is capable of providing mass storage for the system 500. In one implementation, the storage device 530 is a computer-readable medium. In various different implementations, the storage device 530 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device. The input/output device 540 provides input/output operations for the system 500. In one implementation, the input/output device 540 includes a keyboard and/or pointing device. In another implementation, the input/output device 540 includes a display unit for displaying graphical user interfaces.


The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.


Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer can include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer can also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).


To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.


The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.


The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.


In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.


A number of implementations of the present disclosure have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.

Claims
  • 1. A computer-implemented method for enforcing access control in encrypted query processing, the method being executed using one or more processors and comprising: receiving, by the one or more processors, a query and a user credential, the user credential uniquely identifying a user requesting execution of the query;obtaining, by the one or more processors, a set of user groups based on the user credential and a user group mapping, the set of user groups comprising at least one user group;obtaining, by the one or more processors, a set of relations based on the query;obtaining, by the one or more processors, a set of virtual relations based on the set of user groups and the set of relations, the set of virtual relations comprising at least one virtual relation;receiving, by the one or more processors, a first rewritten query based on the set of virtual relations and a query rewriting operation;encrypting, by the one or more processors, the first rewritten query to provide an encrypted query; andtransmitting, by the one or more processors, the encrypted query to at least one server computing device over a network for execution of the encrypted query over access controlled, encrypted data.
  • 2. The method of claim 1, further comprising determining that the query comprises at least one operation that is included in a set of predefined operations, and in response, initiating a key adjustment.
  • 3. The method of claim 1, wherein the user group mapping maps one or more users to one or more user groups, based on an access control matrix that indicates which users are allowed access to which data stored in an encrypted database.
  • 4. The method of claim 1, wherein the set of virtual relations is obtained further based on a virtual relation mapping that maps at least one relation and user group pair to a virtual relation.
  • 5. The method of claim 1, further comprising: receiving an encrypted result from the server computing device; anddecrypting the encrypted results to provide a query result.
  • 6. The method of claim 5, further comprising: receiving a second rewritten query based on the set of virtual relations and the query rewriting operation; andobtaining a final query result based on the second rewritten query and the query result.
  • 7. The method of claim 1, wherein the set of pre-defined operations comprises one or more of a count operation, a count distinct operation, an equi-join operation, and a set difference operation.
  • 8. A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations for enforcing access control in encrypted query processing, the operations comprising:
  • 9. The computer-readable storage medium of claim 8, wherein operations further comprise determining that the query comprises at least one operation that is included in a set of predefined operations, and in response, initiating a key adjustment.
  • 10. The computer-readable storage medium of claim 8, wherein the user group mapping maps one or more users to one or more user groups, based on an access control matrix that indicates which users are allowed access to which data stored in an encrypted database.
  • 11. The computer-readable storage medium of claim 8, wherein the set of virtual relations is obtained further based on a virtual relation mapping that maps at least one relation and user group pair to a virtual relation.
  • 12. The computer-readable storage medium of claim 8, wherein operations further comprise: receiving an encrypted result from the server computing device; anddecrypting the encrypted results to provide a query result.
  • 13. The computer-readable storage medium of claim 12, wherein operations further comprise: receiving a second rewritten query based on the set of virtual relations and the query rewriting operation; andobtaining a final query result based on the second rewritten query and the query result.
  • 14. The computer-readable storage medium of claim 8, wherein the set of pre-defined operations comprises one or more of a count operation, a count distinct operation, an equi-join operation, and a set difference operation.
  • 15. A system, comprising: a computing device; anda computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations for enforcing access control in encrypted query processing, the operations comprising: obtaining a set of user groups based on the user credential and a user group mapping, the set of user groups comprising at least one user group;obtaining a set of relations based on the query;obtaining a set of virtual relations based on the set of user groups and the set of relations, the set of virtual relations comprising at least one virtual relation;receiving a first rewritten query based on the set of virtual relations and a query rewriting operation;encrypting the first rewritten query to provide an encrypted query; andtransmitting the encrypted query to at least one server computing device over a network for execution of the encrypted query over access controlled, encrypted data.
  • 16. The system of claim 15, wherein operations further comprise determining that the query comprises at least one operation that is included in a set of predefined operations, and in response, initiating a key adjustment.
  • 17. The system of claim 15, wherein the user group mapping maps one or more users to one or more user groups, based on an access control matrix that indicates which users are allowed access to which data stored in an encrypted database.
  • 18. The system of claim 15, wherein the set of virtual relations is obtained further based on a virtual relation mapping that maps at least one relation and user group pair to a virtual relation.
  • 19. The system of claim 15, wherein operations further comprise: receiving an encrypted result from the server computing device; anddecrypting the encrypted results to provide a query result.
  • 20. The system of claim 19, wherein operations further comprise: receiving a second rewritten query based on the set of virtual relations and the query rewriting operation; andobtaining a final query result based on the second rewritten query and the query result.
US Referenced Citations (16)
Number Name Date Kind
5572673 Shurts Nov 1996 A
6038563 Bapat et al. Mar 2000 A
6487552 Lei et al. Nov 2002 B1
7743069 Chitkara et al. Jun 2010 B2
7844829 Meenakshisundaram Nov 2010 B2
7995750 Kerschbaum et al. Aug 2011 B2
20030046572 Newman et al. Mar 2003 A1
20040139043 Lei et al. Jul 2004 A1
20040243816 Hacigumus et al. Dec 2004 A1
20080033960 Banks et al. Feb 2008 A1
20120159180 Chase Jun 2012 A1
20120330925 Ramamurthy et al. Dec 2012 A1
20130191650 Balakrishnan Jul 2013 A1
20130246813 Mori et al. Sep 2013 A1
20130262863 Yoshino et al. Oct 2013 A1
20140101438 Elovici et al. Apr 2014 A1
Related Publications (1)
Number Date Country
20160357869 A1 Dec 2016 US