US10831919B2 - Method for confidentially querying an encrypted database - Google Patents

Method for confidentially querying an encrypted database Download PDF

Info

Publication number
US10831919B2
US10831919B2 US15/767,885 US201615767885A US10831919B2 US 10831919 B2 US10831919 B2 US 10831919B2 US 201615767885 A US201615767885 A US 201615767885A US 10831919 B2 US10831919 B2 US 10831919B2
Authority
US
United States
Prior art keywords
encrypted
records
server
container
querying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US15/767,885
Other versions
US20180300497A1 (en
Inventor
Sergiu CARPOV
Renaud Sirdey
Simon FAU
Oana STAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Assigned to COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES reassignment COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CARPOV, Sergiu, FAU, Simon, STAN, Oana, SIRDEY, RENAUD
Publication of US20180300497A1 publication Critical patent/US20180300497A1/en
Application granted granted Critical
Publication of US10831919B2 publication Critical patent/US10831919B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Definitions

  • the present invention relates to the field of confidential querying an encrypted database.
  • the invention uses the fully homomorphic encryption or FHE (full homomorphic encryption) or the partially homomorphic encryption or SWHE (somewhat homomorphic encryption). It applies more particularly to a cloud computing environment.
  • a fully homomorphic encryption or FHE is an asymmetric encryption
  • Enc pk public key pk
  • X is the space of clear messages (called simply clear space)
  • Y is the space of encrypted messages (called simply space encrypted)
  • a cryptosystem is defined by a pair of an encryption function Enc(.) and a decryption function Dec(.).
  • a fully homomorphic encryption is used to calculate any combination of addition and multiplication operations on plain messages from corresponding operations on encrypted messages.
  • the additive operation is an exclusive OR and a multiplicative AND operation. It is then possible to perform logical operations on Boolean values from corresponding operations on their numerical values.
  • the article by S. Wang cited proposes calculating an encrypted Boolean for each record in the database, this Boolean indicating whether the record in question satisfied or not at the request of the user.
  • the server does not know the number of records satisfying the query, the user provides it an upper bound M′, the number of records that can be returned to him, as well as a result of quality parameter ⁇ .
  • the server uses a fixed size buffer B proportional to ⁇ M′ wherein it stores records, each record of the buffer being stored randomly among ⁇ positions of the buffer.
  • a record that does not meet the request is stored as a null numerical value ( 0 ) and therefore has no influence on decryption.
  • a record corresponding to the request is stored and can be decrypted if it does not collide with another record.
  • This probabilistic approach is however not entirely satisfactory since the server response may not be exhaustive, the degree of completeness depending on the quality parameter ⁇ .
  • the M. Mani et al. article entitled “Enabling secure database as a service using fully homomorphic properties: challenges and opportunities” published in arXiv preprint, 13 Feb. 2013, pp. 1-13 proposes calculating an encrypted Boolean for each record in the database, as above, and then to proceed in two steps.
  • the service provider server determines the number M of records corresponding to the query (number of “hits”) by summing the encrypted Booleans, and transmits it to the user.
  • the latter decrypts the number and requests the server to transmit M′>M first records.
  • the number M′ is transmitted in plaintext.
  • the server orders as confidential records according to the values quantified Boolean, i.e. M′ first records of the table and ordered contain M satisfying records to the query. This method allows to hide the number M of records corresponding to the result.
  • This method of confidential querying preserves confidentiality of results but has the disadvantage of requiring a schedule of the whole database for each request.
  • the object of the present invention is therefore to provide a confidential querying method of a database encrypted by encryption homomorphic totally or partially homomorphic, which overcomes all or part of the aforementioned drawbacks, in particular having a high degree privacy without significant increase in computational complexity.
  • the present invention is defined by a method of confidential querying a database hosted by a server, records the database containing a table, each record being obtained by means of a homomorphic encryption totally or partially of homomorphic clear values, in which:
  • the user receives the container, decrypts the contents of each location, and determines whether the container is full or not;
  • step (f2) if the container is not full, the user gets the response to said query from the records stored in the containers received and decrypted in step(s) (e).
  • the table of records is advantageously represented by a matrix T with a size of N ⁇ P where N is the number of records in the table and P the number of fields of these records, an encrypted element ⁇ of the matrix being obtained from the plaintext value
  • the predicate is evaluated on various records, typically by means of additive ⁇ and multiplicative ⁇ operations on the encrypted elements.
  • the database is partitioned into portions with a size of N/L with the possible exception of a portion, steps (c), (d), (e), (f1)-(f2) being carried out in series or in parallel, on each of said base portions.
  • the fully homomorphic encryption method can use such a Brakerski cryptosystem.
  • FIG. 1 schematically illustrates the implementation of a confidential querying method according to one embodiment of the invention
  • FIG. 2 shows a flow chart of the construction of containers for confidential querying method according to one embodiment of the invention
  • FIG. 3 schematically shows a flow chart of the confidential querying method of a database according to an embodiment of the invention.
  • the encryption method is fully homomorphic. It will be understood, in fact, that one can always choose a method for partially homomorphic encryption insofar as it can calculate combinations of operations of multiplication and addition on plaintext elements with sufficient depth.
  • a server is shown in 110 , for example a cloud service provider.
  • This server hosts a database 130 , such as a relational database.
  • the database includes a table T (e.g., a relationship in a relational database) consisting of N encrypted records. More specifically, each record includes fields P and each field is encrypted by means of a completely homomorphic cryptosystem as explained below.
  • Each record can be considered a P-uple numerical values or equivalently as a vector of size P whose elements are encrypted.
  • the table T can be considered as a matrix of size N ⁇ P of encrypted elements, rows corresponding to different records and columns to different fields.
  • Each bit a q is encrypted using the aforementioned completely homomorphic cryptosystem, e.g. the Brakerski cryptosystem of which a description is found in the article by Z. Brakerski et al. entitled “(Leveled) fully homomorphic encryption without bootstrapping” published in Proc. of ITCS 2012, pp. 309-325.
  • Dec( ⁇ ) will be called, in a stretch of the meaning of the term, “decrypted” of ⁇ .
  • a user transmits to the server a request, R, such as a SQL (Structured Query Language) query generally comprising a predicate, i.e. a logical expression involving one or more field(s) of the table T and can take, according to the records, a true or false value.
  • R such as a SQL (Structured Query Language) query generally comprising a predicate, i.e. a logical expression involving one or more field(s) of the table T and can take, according to the records, a true or false value.
  • the server evaluates the predicate (i.e. calculates its logical value) on the different records of the table T and forms a vector r with a size of N the elements of which are Boolean elements representing logical values thus obtained. It is essential to note that the evaluation of predicates is performed on encrypted and plaintext elements, and that the Boolean elements yielding logic values of different records are encrypted. In other words, the server cannot distinguish in the table the records corresponding to a true value and those corresponding to a false value of the predicate. Note that the server has more access to the number of results, that is to say the number of M records resulting in a true value of the predicate.
  • the method of confidential querying implements a container, also known as bucket of fixed size, which may contain up to K records, by means of which the results of the query are returned to the user.
  • the server examines all the records in the table and transfers blindly to the container those that satisfy the query, that is, those for which the value of the predicate is true.
  • the blind transfer is done by means of a detailed allocation operation further along. It ensures that the server (or a malicious third party making an attack on the server) cannot determine the actual records transferred into the container.
  • the locations of the container in which a record has not been transferred contain numerical values 0 (conventionally indicating that the slot is empty).
  • the server can determine in advance the number ⁇ tilde over (m) ⁇ of containers since the M number of results is not revealed to him. For each container B m received, the user decrypts the content on different locations of the container. If the user reaches a place containing only 0 it then knows that it has obtained all the results. Otherwise, if such a location is not detected, the user back to the server a continuation request, RC m .
  • the transfer of results is thus by passage of containers (or buckets) on user request.
  • the server indirectly knows the number of containers transferred to a query, i.e. the value ⁇ tilde over (m) ⁇ but only knows the number of results within a number K ⁇ 1 of records.
  • the initial request R to the user and its successive continuation requests RC m , m 1, . . . , ⁇ tilde over (m) ⁇ 1.
  • the server evaluates the predicate on all the records of the table T .
  • ⁇ and ⁇ may be used.
  • the logic of a predicate value can be obtained from ⁇ and ⁇ operations on the encrypted elements of a record. For example, we found the calculation of a comparison predicate in the aforementioned article by M. Mani et al.
  • the codeword ⁇ is assigned to V if c is a number between 1 and the codeword B is assigned to V if c is an encrypted element of 0. It is important to note that this allocation is performed blindly, that is to say that the server calculating the expression (7) has no way to determine which of the words ⁇ and B is effectively assigned to V . Indeed, in the absence of the decryption key, the server does not know if c is a number from 1 or 0.
  • the codeword assigned is changed by calculating the expression (7), n is not possible to infer the assignment of a simple comparison of V with ⁇ and B .
  • the server performing the calculation of the expression (9) would not know which element to determine the vector v the encrypted word ⁇ would be assigned.
  • the assignment may concern an entire row or entire column of matrix H .
  • the assignment operation Aff_row makes it possible for the server to blindly extract records satisfying the user query and load them in successive containers as explained in relation to FIG. 2 .
  • This container can be considered as a matrix B with a size of K ⁇ P.
  • K is the number of records that can be stored in the container and P the number of fields.
  • the matrix B is initialized by the matrix 0 K ⁇ p all the elements of which are null.
  • the index n last (m ⁇ 1) ⁇ K the index of the last record transmitted to the user is determined.
  • the server knows indeed that it has already sent records satisfying the query to the user. It should be noted, however, that the server does not know where the last record is found in the table T .
  • the index k is only increased (in a hidden manner) to the extent that the i th record is both a satisfactory recording to the application and is intended to be stored in the current container.
  • the user request R here is to retrieve all records from the base starting from byte (encrypted) 192 .
  • table T is composed of five records composed of four fields, namely:
  • the first column provides the indices of the records, the penultimate contains the encrypted Boolean r i and the last encrypted Boolean i dx .
  • the first container returned by the server is as follows:
  • the user Upon receipt of this container, the user decrypts the (fields of the) different records stored therein. As the user does not detect any null row, it transmits a first continuation request of the RC 1 server. It rescans the five records in the table and only transfers to the second container those that have not already been stored in the first. The server then constructs the second container:
  • the user decrypts the (field of the) different recordings and detects a null row, i.e. comprising only encrypted null values. It is concluded therefrom that all records satisfying the query have already been transmitted to it.
  • the above described container construction method ensures that the server has access to an upper bound on the number of results ( ⁇ tilde over (m) ⁇ K).
  • the ambiguity about the number of results would be the maximum but the number of records transmitted unnecessarily would also be a maximum (N ⁇ M). However, in a small-sized K container, the ambiguity on the number of results would be lower but the number of unnecessarily transmitted recordings would also be smaller ( ⁇ tilde over (m) ⁇ M).
  • each container required the entire table T to be scanned.
  • the extraction procedure is applied to each portion of the table.
  • the complexity of constructing a container is reduced by a factor L.
  • the transfer of results mobilizes at least L times more communication resources to the extent that the L table portions will be scanned at least once each.
  • K container size and partition factor L is a compromise between the required degree of ambiguity, available computing resources and communications resources.
  • FIG. 3 A flowchart is schematically shown in FIG. 3 of a confidential querying method of a database according to an embodiment of the invention.
  • the user transmits a request (R) comprising a predicate to the server.
  • the server constructs a container B m comprising a predetermined number K of locations and blindly stores at these locations the records satisfying the predicate not previously transmitted to the user.
  • the construction of the container is carried out as explained above in relation to FIG. 2 .
  • the server transmits to the user the container B m .
  • the user decrypts the content of each location of the container B m , in other words, each element of the matrix B .
  • step 360 the user determines if a null row is present or not in the container B m . It is thus deduced whether the container is full or not.
  • the processing of the request ends in 375 .
  • the user transmits to the server a continuation request RC m in 380 and increments the index of the container, m, in 385 before returning to step 330 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

A method for confidentially querying an encrypted database hosted by a server. The user transmits, to the server, a request including a predicate. The predicate is evaluated in an encrypted manner on different records of the database. The records that satisfy the query are transferred blindly into a container. The container is transmitted to the user who decrypts the content of same. If the container is full, the user sends a continuation request to the server. If this is not the case, the records of the successive containers that have already been decrypted form the response to the request.

Description

TECHNICAL FIELD
The present invention relates to the field of confidential querying an encrypted database. The invention uses the fully homomorphic encryption or FHE (full homomorphic encryption) or the partially homomorphic encryption or SWHE (somewhat homomorphic encryption). It applies more particularly to a cloud computing environment.
PRIOR ART
The recent development of cloud computing has enabled many companies to outsource their databases to data centres. However this new practice, if it reduces heavy investment in computer equipment, is not without posing serious privacy issues, as data stored in the database and content search queries. In most industries, including the medical, financial or economic, it is essential that the confidentiality of data and content queries can be guaranteed not only vis-à-vis a malicious third party but also vis-à-vis the cloud service provider itself.
To meet this requirement of confidentiality, we are naturally led to perform encryption or all of the user data stored in the database. However a simple encryption is insufficient in practice since the search for records that meet a user request reveals the locations where they are stored. A malicious third or supplier itself, can then associate the encrypted records to user queries and deduce confidential information.
The article by S. Wang et al. entitled “Is homomorphic encryption the Holy Grail for data base queries on encrypted data?” Technical report, University of California, Santa Barbara in 2012, offers a confidential inquiry method of a database whose records are encrypted using a fully homomorphic cryptosystem.
It is first recalled that a fully homomorphic encryption or FHE (full homomorphic cryptography) is an asymmetric encryption Encpk (public key pk) satisfies the following relationships:
Enc pk : X→Y
a,b∈X,Enc pk(a+b)=Enc pk(a)⊕Enc pk(b)  (1-1)
a,b∈X,Enc pk(a·b)=Enc pk(a)⊗Enc pk(b)  (1-2)
where X is the space of clear messages (called simply clear space) and Y is the space of encrypted messages (called simply space encrypted), + and are respectively an additive and a multiplicative operation in space clear giving X a ring structure (X, +, ·), ⊕ and ⊗ are corresponding operations in space encrypted giving a structure of (Y, ⊕, ⊗). It is understood from the expressions (1-1) and (1-2) that the application Encpk of (X, +, ·) in (Y, ⊕, ⊗) is a ring homomorphism.
In practice, a fully homomorphic encryption is a probabilistic encryption, that is to say, depending on a random parameter (or noise) r. Encrypting a clear message m can thus give different messages encrypted Encpk(m,r) according to the value taken by the parameter r. However, regardless of the value taken by this parameter, the decryption of Encpk(m,r) always gives the clear message m. If we denote Decsk the decryption function corresponding to Encpk (where sk is the secret key of the user), we therefore have:
Dec sk(Enc pk(m,r))=m  (2)
In the following, we adopt a simpler notation to ease the presentation, i.e. m=Encpk(m,r) and it should be omitted in the encryption/decryption expressions mention of public and private keys. Thus, it was a Dec(m)=m.
A cryptosystem is defined by a pair of an encryption function Enc(.) and a decryption function Dec(.). Thus, a completely homomorphic cryptosystem, verifies the above notations:
Dec[ā⊕b ]=a+b  (3-1)
Dec[ā⊗b ]=a·b  (3-2)
In other words, a fully homomorphic encryption is used to calculate any combination of addition and multiplication operations on plain messages from corresponding operations on encrypted messages. Generally, the space of plaintext is the field of Boolean bodies X=Z/2Z, the additive operation is an exclusive OR and a multiplicative AND operation. It is then possible to perform logical operations on Boolean values from corresponding operations on their numerical values.
Note that when the encryption method is used to calculate the combinations of addition and multiplication operations on clears with a certain depth of combination, it is preferred to use the term “partially homomorphic”.
The article by S. Wang cited proposes calculating an encrypted Boolean for each record in the database, this Boolean indicating whether the record in question satisfied or not at the request of the user. The server does not know the number of records satisfying the query, the user provides it an upper bound M′, the number of records that can be returned to him, as well as a result of quality parameter γ. The server uses a fixed size buffer B proportional to γM′ wherein it stores records, each record of the buffer being stored randomly among γ positions of the buffer. A record that does not meet the request is stored as a null numerical value (0) and therefore has no influence on decryption. However, a record corresponding to the request is stored and can be decrypted if it does not collide with another record. This probabilistic approach is however not entirely satisfactory since the server response may not be exhaustive, the degree of completeness depending on the quality parameter γ.
To remedy this lack of completeness, the M. Mani et al. article entitled “Enabling secure database as a service using fully homomorphic properties: challenges and opportunities” published in arXiv preprint, 13 Feb. 2013, pp. 1-13 proposes calculating an encrypted Boolean for each record in the database, as above, and then to proceed in two steps. Initially, the service provider server determines the number M of records corresponding to the query (number of “hits”) by summing the encrypted Booleans, and transmits it to the user. The latter decrypts the number and requests the server to transmit M′>M first records. The number M′ is transmitted in plaintext. The server then orders as confidential records according to the values quantified Boolean, i.e. M′ first records of the table and ordered contain M satisfying records to the query. This method allows to hide the number M of records corresponding to the result.
This method of confidential querying preserves confidentiality of results but has the disadvantage of requiring a schedule of the whole database for each request.
The object of the present invention is therefore to provide a confidential querying method of a database encrypted by encryption homomorphic totally or partially homomorphic, which overcomes all or part of the aforementioned drawbacks, in particular having a high degree privacy without significant increase in computational complexity.
PRESENTATION OF THE INVENTION
The present invention is defined by a method of confidential querying a database hosted by a server, records the database containing a table, each record being obtained by means of a homomorphic encryption totally or partially of homomorphic clear values, in which:
(a) the user sends a request (R), comprising a predicate to the server;
(b) the server calculates the encrypted Boolean predicate for each record in the table;
(c) the server constructs a container (Bm) comprising a predetermined number (K) of locations and stores blind to said locations of records satisfying the predicate and not previously transmitted to the user, based on the Boolean values encrypted (ri , i=1, . . . , N) obtained in step (b);
(d) the server transmits to the user the container thus constructed;
(e) the user receives the container, decrypts the contents of each location, and determines whether the container is full or not;
(f1) if the container is full, the user transmits a continuation request (RCm) to the server for a new iteration of steps (c), (d) and (e);
(f2) if the container is not full, the user gets the response to said query from the records stored in the containers received and decrypted in step(s) (e).
The table of records is advantageously represented by a matrix T with a size of N×P where N is the number of records in the table and P the number of fields of these records, an encrypted element Ā of the matrix being obtained from the plaintext value
A = q = 0 Q - 1 a q 2 q by A _ a 0 _ , a 1 _ , , a Q - 1 _
wherein aq, q=0, . . . , Q−1 are the plaintext value bits and aq, q=0, . . . , Q−1 are their corresponding encrypted obtained by said totally or partially homomorphic encryption.
The predicate is evaluated on various records, typically by means of additive ⊕ and multiplicative ⊗ operations on the encrypted elements.
The container is advantageously represented by a matrix B with a size of K×P with K<N, the server constructing the matrix B by initializing the elements of the null matrix and by updating the rows of this iteratively array by scanning all the records in the table of records, said updating being effected by means of an assignment operation:
B=Aff_row( B,c t i ; k )
indiscriminately affecting the cti vector at the kth row of B, where ti is a row-vector of T representing a ith scanned record and c is an encrypted Boolean.
The assignment operation of a vector T of encrypted element P with the kth row of a matrix H=(hij ) of encrypted elements with a size of K×P gives a matrix G=(gij) of encrypted elements of the same size, such as Dec(gij )=Dec(hij ) ∀i≠k and Dec(gkj )=Dec(uj ), 1≤j≤P.
The encrypted Boolean can be calculated by c=ri ⊗(nlast <idx )⊗(idx nlast+K) where ri is the encrypted value of Boolean predicate for the ith scanned record, idx an encrypted variable giving the number of records already scanned satisfying the predicate, nlast=(m−1)K where m−1 is the container number previously transmitted by the server to the user and nlast , nlast+K of the respective encryptions of nlast and nlast+K.
The encrypted variable idx is advantageously updated with each record scanned by idx =idx +ri .
The encrypted index k of the row of the matrix B is itself updated with each record scanned by k=k+c.
Alternatively, the database is partitioned into portions with a size of N/L with the possible exception of a portion, steps (c), (d), (e), (f1)-(f2) being carried out in series or in parallel, on each of said base portions.
The fully homomorphic encryption method can use such a Brakerski cryptosystem.
BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of the invention appear on reading of a preferred embodiment of the invention with reference to the appended figures wherein:
FIG. 1 schematically illustrates the implementation of a confidential querying method according to one embodiment of the invention;
FIG. 2 shows a flow chart of the construction of containers for confidential querying method according to one embodiment of the invention;
FIG. 3 schematically shows a flow chart of the confidential querying method of a database according to an embodiment of the invention.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
The confidential querying a database encrypted by encryption totally or partially homomorphic, according to the present invention will be described below in the context of a client-server architecture illustrated in FIG. 1.
Without loss of generality, it is assumed in the following description that the encryption method is fully homomorphic. It will be understood, in fact, that one can always choose a method for partially homomorphic encryption insofar as it can calculate combinations of operations of multiplication and addition on plaintext elements with sufficient depth.
A server is shown in 110, for example a cloud service provider. This server hosts a database 130, such as a relational database. It will be assumed in all cases that the database includes a table T (e.g., a relationship in a relational database) consisting of N encrypted records. More specifically, each record includes fields P and each field is encrypted by means of a completely homomorphic cryptosystem as explained below. Each record can be considered a P-uple numerical values or equivalently as a vector of size P whose elements are encrypted. Similarly, the table T can be considered as a matrix of size N×P of encrypted elements, rows corresponding to different records and columns to different fields.
Without loss of generality, we assume in the following that the plaintext value, A, of a field can be represented by a word of Q bits, in other words:
A = q = 0 Q - 1 a q 2 q ,
the space of the plaintext consisting of binary values {0,1}, in other words X=Z/2Z. Each bit aq is encrypted using the aforementioned completely homomorphic cryptosystem, e.g. the Brakerski cryptosystem of which a description is found in the article by Z. Brakerski et al. entitled “(Leveled) fully homomorphic encryption without bootstrapping” published in Proc. of ITCS 2012, pp. 309-325. The encrypted value aq =Enc(aq) is a binary word and it is noted Ā the sequence of words aq , q=0, . . . , Q−1, in other words:
Ā a 0 , a 1 , . . . , a Q−1   (4)
Ā will be called, in a stretch of the meaning of the term, “encrypted” of A.
Similarly, is reciprocally noted Dec(Ā), the word of Q bits defined by:
Dec ( A _ ) = q = 0 Q - 1 Dec ( a q _ ) 2 q ( 5 )
Dec(Ā) will be called, in a stretch of the meaning of the term, “decrypted” of Ā.
Returning to FIG. 1, a user transmits to the server a request, R, such as a SQL (Structured Query Language) query generally comprising a predicate, i.e. a logical expression involving one or more field(s) of the table T and can take, according to the records, a true or false value. The predicate may include Boolean operators AND, OR, NOT and/or comparison operators (<, ≤, >, ≥) or an equality operator (==).
The server evaluates the predicate (i.e. calculates its logical value) on the different records of the table T and forms a vector r with a size of N the elements of which are Boolean elements representing logical values thus obtained. It is essential to note that the evaluation of predicates is performed on encrypted and plaintext elements, and that the Boolean elements yielding logic values of different records are encrypted. In other words, the server cannot distinguish in the table the records corresponding to a true value and those corresponding to a false value of the predicate. Note that the server has more access to the number of results, that is to say the number of M records resulting in a true value of the predicate.
The method of confidential querying according to the invention implements a container, also known as bucket of fixed size, which may contain up to K records, by means of which the results of the query are returned to the user. Specifically, the server examines all the records in the table and transfers blindly to the container those that satisfy the query, that is, those for which the value of the predicate is true. The blind transfer is done by means of a detailed allocation operation further along. It ensures that the server (or a malicious third party making an attack on the server) cannot determine the actual records transferred into the container. The locations of the container in which a record has not been transferred contain numerical values 0 (conventionally indicating that the slot is empty).
The response of the user server is distributed over a number {tilde over (m)} of containers, B1, . . . , B{tilde over (m)} where {tilde over (m)}=┌M/K┐ is the entire part by excess of the M/K fraction. The server can determine in advance the number {tilde over (m)} of containers since the M number of results is not revealed to him. For each container Bm received, the user decrypts the content on different locations of the container. If the user reaches a place containing only 0 it then knows that it has obtained all the results. Otherwise, if such a location is not detected, the user back to the server a continuation request, RCm. The transfer of results is thus by passage of containers (or buckets) on user request. In the end, the server indirectly knows the number of containers transferred to a query, i.e. the value {tilde over (m)} but only knows the number of results within a number K−1 of records.
There is shown in the figure, the initial request R to the user and its successive continuation requests RCm, m=1, . . . , {tilde over (m)}−1. In response to requests R, RC1, . . . , RC{tilde over (m)}−1 the server transmits respectively the containers Bm, m=1, . . . , {tilde over (m)}, as explained below.
In response to the request R to the user, the server evaluates the predicate on all the records of the table T. This assessment is of course done on encrypted values. For example, if the request is to obtain all the records such as the content F a field is equal to a given numerical value D, i.e. if the predicate is F=D, where fQ−1 . . . f1f0 and dQ−1 . . . d1d0 are the respective binary representations of F and D, therefore:
( F _ D _ ) = q = 0 Q - 1 ( 1 _ f q _ d q _ ) ( 6 )
In other words, the evaluation of the predicate (F==D) gives an encrypted Boolean value of 1 (logic value TRUE) if the field F of the record is equal to D and equal to 0 (logic value FALSE) otherwise.
Other predicates implementing comparison operators and/or arithmetic operators (⊕ and ⊗) may be used. In general, the logic of a predicate value can be obtained from ⊕ and ⊗ operations on the encrypted elements of a record. For example, we found the calculation of a comparison predicate in the aforementioned article by M. Mani et al.
In any case, the server evaluates the predicate on each record i=1, . . . , N of the table and infers a vector r with a size of N whose elements are the results of this evaluation.
Then a conditional assignment operator Sel is defined for allocating a first codeword Ā or a second encrypted word B at a variable V based on the value of an encrypted Boolean element c, as follows:
V=Sel(Ā,B;c )
v q =( c a q )⊕((1 c )⊗ b q ),q=0, . . . ,Q−1  (7)
It is understood from the expression (7) that the codeword Ā is assigned to V if c is a number between 1 and the codeword B is assigned to V if c is an encrypted element of 0. It is important to note that this allocation is performed blindly, that is to say that the server calculating the expression (7) has no way to determine which of the words Ā and B is effectively assigned to V. Indeed, in the absence of the decryption key, the server does not know if c is a number from 1 or 0. In addition, the codeword assigned is changed by calculating the expression (7), n is not possible to infer the assignment of a simple comparison of V with Ā and B.
The assignment operator Sel makes it possible to assign blindly an encrypted value to an element of a vector. Specifically, if it is noted that v=(v 1, . . . , v p) an encrypted vector and k the encrypted element of an index k, 1≤k≤P, an encrypted value ū can be blindly assigned to the index element k of the vector v to generate a new vector w=(w 1, . . . , w P) such as:
Dec( w i )=Dec( v i ),∀i≠k et Dec( w k )=Dec(ū)  (8)
This assignment can be advantageously obtained by means of:
w i =Sel( v i ,ū;(ī==k )),i=1, . . . ,P  (9)
As the index k is encrypted, the server performing the calculation of the expression (9) would not know which element to determine the vector v the encrypted word ū would be assigned. In addition, the decryption of the elements of vector w will provide the same decrypted elements to the vector v, except for the decryption of the index element k which will yield the word u. It is appropriate to note that the calculation of the expression (9) simply requires knowledge of the (public) key encryption to obtain the index numbers ī, i=1, . . . , P.
According to the same principle, it is possible to blindly assign a codeword ū to any element of indices k,l in a matrix H (with a size of K×P) of encrypted elements H=(hij ), 1≤i≤K, 1≤j≤P to obtain a matrix of the same size G=(gij ), 1≤i≤K, 1≤j≤P:
g ij =Sel( h ij ,ū;(ī==k )⊗( j ==1)  (10)
The matrix G then verifies:
Dec( g ij )=Dec( h ij )∀(i,j)≠(k,1) and Dec( g k1 )=Dec(ū)  (11)
In other words, the deciphering of the elements of the matrix G will provide the same decrypted elements so that the matrix H, except for the deciphering of the element of indices k,1 which will yield the word ū. The assignment expression (10) will be noted later more concisely:
G=Aff( H;( k ,1))  (12)
The assignment may concern an entire row or entire column of matrix H. For example, if ū=(u1 , . . . , uP ) a vector of codewords is noted to respectively assign P elements of the kth row of the matrix H, we can define a new matrix G:
g ij =Sel( h ij , u j ;(ī==k ))1≤i≤K,1≤j≤P  (13)
Again, as the index k being encrypted, the processor performing the calculation of the expression (13) does not know which row of the matrix has been assigned and the decryption yields:
Dec( g ij )=Dec( h ij )∀i≠k et Dec( g kj )=Dec( u j ),1≤j≤P  (14)
In other words, the decryption of the matrix elements of G provide the same decrypted elements for the matrix H, except decryption elements of the row k that will restore the elements of the vector u. The expression (14) will be noted more concisely hereinafter:
G=Aff_row( H,ū;k )  (15)
The assignment operation Aff_row makes it possible for the server to blindly extract records satisfying the user query and load them in successive containers as explained in relation to FIG. 2.
It is assumed in this figure that the server received a continuation request RCm from the user and therefore must build the container Bm.
This container can be considered as a matrix B with a size of K×P. Here we recall that K is the number of records that can be stored in the container and P the number of fields. We recall that the table of records can be considered a matrix T with a size of N×P: T=(tij), i=1, . . . , M, j=1, . . . , P. It is assumed that K<N, or K<<N.
At step 210, the matrix B is initialized by the matrix 0K×p all the elements of which are null.
At step 220, the index nlast=(m−1)·K the index of the last record transmitted to the user is determined. The server knows indeed that it has already sent records satisfying the query to the user. It should be noted, however, that the server does not know where the last record is found in the table T.
At step 230, a record counter is initialized in the table T, i.e. 1=1. It should be noted that this counter is plaintext. It is used to scan successive records in the table.
In step 240, the server initializes a variable idx yielding the number of scanned records satisfying the predicate, i.e. idx =0. It should be noted that this variable is encrypted but its null initial value is known to the server.
At step 250, the server initializes a counter k pointing to the current row of the container, k=1. Again, the counter is encrypted but its initial value is known to the server.
All the records of the table T, are then scanned, i.e. a loop is entered into in which the steps are repeated for i going from 1 to N:
At step 260, the encrypted Boolean is calculated:
c = r i ⊗( n last < i dx )⊗( i dx n last +K )  (16)
In other words, it is determined blindly if the ith record in the table T satisfies the request (term ri ), and if it is actually part of last the nlast+1 to nlast+K records that can be transferred to the current container (term (nlast <idx )⊗(idx nlast+K)). This test is necessary since it scans the whole of the table blindly.
At step 270, the ith record is transferred of the table T to the kth location of the container, by updating the matrix B using the assignment operation:
B=Aff_row( B,c t i ; k )  (17)
where ti the vector of size P is noted representing the ith record of the table T and where cti is the vector defined by:
c t i =( c t i1 , . . . , c t iP   (18)
In step 280, the number of scanned records satisfying the query is updated, i.e.:
i dx = i dx + r i   (19)
In step 290, the row pointer in the container is updated by:
k=k+c   (20)
In other words, the index k is only increased (in a hidden manner) to the extent that the ith record is both a satisfactory recording to the application and is intended to be stored in the current container.
A numerical example is given below to illustrate the process for constructing the containers. The user request R here is to retrieve all records from the base starting from byte (encrypted) 192.
It is assumed that the table T is composed of five records composed of four fields, namely:
i/p 1 2 3 4 ri idx
1 192 168 132 20 1 1
2 201 141 32 1 0 1
3 192 168 201 20 1 2
4 121 42 2 255 0 2
5 192 178 101 2 1 3
The first column provides the indices of the records, the penultimate contains the encrypted Boolean ri and the last encrypted Boolean idx .
It is assumed that the container size is K=2. In this case, the first container returned by the server is as follows:
192 168 132 20
192 168 201 20
Upon receipt of this container, the user decrypts the (fields of the) different records stored therein. As the user does not detect any null row, it transmits a first continuation request of the RC1 server. It rescans the five records in the table and only transfers to the second container those that have not already been stored in the first. The server then constructs the second container:
192 178 101 2
0 0 0 0
The user decrypts the (field of the) different recordings and detects a null row, i.e. comprising only encrypted null values. It is concluded therefrom that all records satisfying the query have already been transmitted to it.
It is understood that the above described container construction method ensures that the server has access to an upper bound on the number of results ({tilde over (m)}K). The size K of the container is a compromise between the degree of ambiguity acceptable for the number of results, and the need for communication resources (between the user and the server). Indeed, a trivial solution, but without interest, would be to choose κ=N, i.e. to load the entire table T in the container. The ambiguity about the number of results would be the maximum but the number of records transmitted unnecessarily would also be a maximum (N−M). However, in a small-sized K container, the ambiguity on the number of results would be lower but the number of unnecessarily transmitted recordings would also be smaller ({tilde over (m)}−M).
It has already been pointed out hereinbefore that the construction of each container required the entire table T to be scanned. In order to simplify the calculations, we can partition the table into L portions of a size equal to N/L (except for the last portion of size N−└N/L┘·L), the extraction procedure is applied to each portion of the table. The complexity of constructing a container is reduced by a factor L. In contrast, the transfer of results mobilizes at least L times more communication resources to the extent that the L table portions will be scanned at least once each. Ultimately, the choice of K container size and partition factor L is a compromise between the required degree of ambiguity, available computing resources and communications resources.
A flowchart is schematically shown in FIG. 3 of a confidential querying method of a database according to an embodiment of the invention.
Exchanges between the user (client) and the server (service provider) are those already illustrated in FIG. 1.
At step 310, the user transmits a request (R) comprising a predicate to the server.
At step 320, the server calculates the value of the encrypted Boolean predicate for each record in the table T, in other words calculates the values ri , i=1, . . . N.
At step 325, the index of the container is initialized, i.e. m=1.
At step 330, the server constructs a container Bm comprising a predetermined number K of locations and blindly stores at these locations the records satisfying the predicate not previously transmitted to the user. The construction of the container is carried out as explained above in relation to FIG. 2.
At step 340, the server transmits to the user the container Bm.
At step 350, the user decrypts the content of each location of the container Bm, in other words, each element of the matrix B.
At step 360, the user determines if a null row is present or not in the container Bm. It is thus deduced whether the container is full or not.
If such a row is detected, the user deduces therefrom that the user has received all records satisfying the query. Indeed, it will be understood that the last container B{tilde over (m)} comprises K−(M−{tilde over (m)}K) null rows whereas previous containers Bm, m=1, . . . , {tilde over (m)}−1 do not contain any. The user obtains in 370 the response to the request R from the records stored in the containers Bm, m=1, . . . , {tilde over (m)}, previously decrypted in step 350. The processing of the request ends in 375.
Conversely, if the user does not detect such a null row after decryption, it transmits to the server a continuation request RCm in 380 and increments the index of the container, m, in 385 before returning to step 330.

Claims (10)

The invention claimed is:
1. A method for confidentially querying a database hosted by a server, the database contains a table of records, the method comprising:
(a) a user transmits a request, comprising a predicate, to the server, the predicate being a logical expression involving one or more fields of the table of records, wherein each record is obtained by a totally or partially homomorphic encryption of plaintext values;
(b) the server calculates an encrypted Boolean value of the predicate for each record in the table;
(c) the server constructs a container comprising a predetermined number of locations and blindly stores to the locations of records verifying the predicate and not previously transmitted to the user, from the encrypted Boolean values obtained in (b);
(d) the server transmits the container thus constructed to the user;
(e) the user receives the container, decrypts the contents of each location, and determines whether or not the container is full;
(f1) the user transmits, when the container is full, a continuation request to the server for a new iteration of (c), (d) and (e);
(f2) the user obtains, when the container is not full, the response to the request from the records stored in the containers received and decrypted in (e).
2. The method for confidentially querying a database according to claim 1, wherein the table of records is represented by a matrix T with a size of N×P, wherein N is a number of records in the table and P a number of fields of the records, an encrypted element Ā of the matrix being obtained from plaintext value
A = q = 0 Q - 1 a q 2 q
by Ā≡a0 , a1 , . . . , aQ−1 wherein aq, q=0, . . . , Q−1 are bits of the plaintext value and aq , q=0, . . . , Q−1 are their corresponding encrypted elements obtained by the totally or partially homomorphic encryption.
3. The method for confidential querying of a database according to claim 2, wherein the predicate is evaluated on different records by additive and multiplicative operations on the encrypted elements.
4. The method for confidential querying of a database according to claim 3, wherein the container is represented by a matrix B with a size of K×P with K<N, the server constructing the matrix B by initializing elements of the matrix to zero and by updating rows of the matrix iteratively by scanning all the records from the table of records, the updating being done by an assignment operation:

B=Aff_row( B,c t i ; k )
affecting indiscriminately the vector cti at the kth row of B, wherein ti is a row-vector of T representing a ith scanned record and c is an encrypted Boolean element.
5. The method for confidential querying of a database according to claim 4, wherein the assigning a vector ū of P encrypted element at the kth row of a matrix H=(h ij) of encrypted elements with a size of K×P yielding a matrix G=(gij) of encrypted elements of same size such as Dec(g ij)=Dec(hij ) ∀i≠k and Dec(gkj )=Dec(uj ), 1≤j≤P.
6. The method for confidential querying of a database according to claim 4, wherein the encrypted Boolean element is calculated using c=ri ⊗(nlast <idx )⊗(idx nlast+K) wherein ri the encrypted boolean predicate for the ith scanned record, idx an encrypted variable giving the number of already scanned records satisfying the predicate, nlast=(m−1) K wherein m−1 is the number of containers previously transmitted by the server to the user and nlast ,nlast+K the respective encrypted elements of nlast and nlast+K.
7. The method for confidential querying of a database according to claim 6, wherein the encrypted variable idx is updated with each scanned record by idx =idx +ri .
8. The method for confidential querying of a database according to claim 6, wherein the encrypted index k of the row of the matrix B is updated with each scanned record by k=k+c.
9. The method for confidential querying of a database according to claim 1, wherein the database is partitioned into portions with a size of N/L with the possible exception of a portion, (c), (d), (e), (f1)-(f2) being carried out in series or in parallel, on each of the base portions.
10. The method for confidential querying of a database according to claim 1, wherein the fully homomorphic encryption method uses a Brakerski cryptosystem.
US15/767,885 2015-10-14 2016-10-12 Method for confidentially querying an encrypted database Active 2037-04-23 US10831919B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1559774 2015-10-14
FR1559774A FR3042625B1 (en) 2015-10-14 2015-10-14 METHOD OF CONFIDENTIAL INTERROGATION OF A DATABASED DATABASE
PCT/EP2016/074386 WO2017064085A1 (en) 2015-10-14 2016-10-12 Method for confidentially querying an encrypted database

Publications (2)

Publication Number Publication Date
US20180300497A1 US20180300497A1 (en) 2018-10-18
US10831919B2 true US10831919B2 (en) 2020-11-10

Family

ID=55236535

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/767,885 Active 2037-04-23 US10831919B2 (en) 2015-10-14 2016-10-12 Method for confidentially querying an encrypted database

Country Status (5)

Country Link
US (1) US10831919B2 (en)
EP (1) EP3363143B1 (en)
ES (1) ES2800038T3 (en)
FR (1) FR3042625B1 (en)
WO (1) WO2017064085A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461551B1 (en) * 2018-10-23 2022-10-04 Private AI Inc. Secure word search

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
US10546032B2 (en) * 2017-11-21 2020-01-28 International Business Machines Corporation System and method for association rule mining from encrypted databases
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183656A1 (en) * 2007-01-25 2008-07-31 Perng Chang-Shing Query integrity assurance in database outsourcing
US20130170640A1 (en) * 2011-04-29 2013-07-04 International Business Machines Corporation Fully Homomorphic Encryption
US20140201524A1 (en) * 2013-01-15 2014-07-17 Sap Ag Systems and Methods for Securing Data in a Cloud Computing Environment Using In-Memory Techniques and Secret Key Encryption
US20160283728A1 (en) * 2015-03-26 2016-09-29 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
US20180013549A1 (en) * 2016-07-06 2018-01-11 Sap Se Managing user-controlled security keys in cloud-based scenarios
US20180183571A1 (en) * 2015-09-04 2018-06-28 NEC Laboratories Europe GmbH Method for providing encrypted data in a database and method for searching on encrypted data
US20180191506A1 (en) * 2017-01-05 2018-07-05 Serge Vilvovsky Method and System for Secure Data Storage Exchange, Processing, and Access
US20190138739A1 (en) * 2018-12-14 2019-05-09 Intel Corporation Methods and apparatus for implementing a secure database using programmable integrated circuits with dynamic partial reconfigurability

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183656A1 (en) * 2007-01-25 2008-07-31 Perng Chang-Shing Query integrity assurance in database outsourcing
US20130170640A1 (en) * 2011-04-29 2013-07-04 International Business Machines Corporation Fully Homomorphic Encryption
US20140201524A1 (en) * 2013-01-15 2014-07-17 Sap Ag Systems and Methods for Securing Data in a Cloud Computing Environment Using In-Memory Techniques and Secret Key Encryption
US20160283728A1 (en) * 2015-03-26 2016-09-29 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
US20180183571A1 (en) * 2015-09-04 2018-06-28 NEC Laboratories Europe GmbH Method for providing encrypted data in a database and method for searching on encrypted data
US20180013549A1 (en) * 2016-07-06 2018-01-11 Sap Se Managing user-controlled security keys in cloud-based scenarios
US20180191506A1 (en) * 2017-01-05 2018-07-05 Serge Vilvovsky Method and System for Secure Data Storage Exchange, Processing, and Access
US20190138739A1 (en) * 2018-12-14 2019-05-09 Intel Corporation Methods and apparatus for implementing a secure database using programmable integrated circuits with dynamic partial reconfigurability

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
ANNE CANTEAUT ; SERGIU CARPOV ; CAROLINE FONTAINE ; TANCR�DE LEPOINT ; MAR�A NAYA-PLASENCIA ; PASCAL PAILLIER ; RENAUD SIRDEY: "How to Compress Homomorphic Ciphertexts", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20150224:095450, Report 2015/113, 24 February 2015 (2015-02-24), pages 1 - 25, XP061017866
Brakerski, Z. et al., "Fully Homomorphic Encryption without Bootstrapping", Proc. of ITCS, 2012, 27 total pages.
Canteaut, A. et al., "How to Compress Homomorphic Ciphertexts", International Association for Cryptologic Research, Feb. 24, 2015, pp. 1-25, XP061017866.
Cash, D. et al., "Highly-Scalable Searchable Symmetric Encryption with Support for Boolean Queries", International Association for Cryptologic Research, Aug. 16, 2013, XP061008014.
DAVID CASH ; STANISLAW JARECKI ; CHARANJIT JUTLA ; HUGO KRAWCZYK ; MARCEL ROSU ; MICHAEL STEINER: "Highly-Scalable Searchable Symmetric Encryption with Support for Boolean Queries", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20130816:211344, Report 2013/169, 16 August 2013 (2013-08-16), pages 1 - 45, XP061008014
International Search Report dated Jan. 17, 2017 in PCT/EP2016/074386 filed Oct. 12, 2016.
Mani, M. et al., "Enabling Secure Database as a Service using Fully Homomorphic Encryption: Challenges and Opportunities", ArXiv, Feb. 13, 2013, pp. 1-13.
Preliminary French Search Report dated Jun. 24, 2016 in French Application 1559774 filed Oct. 14, 2015.
Setty, S. et al., "Taking proof-based verified computation a few steps closer to practicality (extended version)", International Association for Cryptologic Research, Feb. 28, 2013, pp. 1-25, XP061007148.
SRINATH SETTY ; VICTOR VU ; NIKHIL PANPALIA ; BENJAMIN BRAUN ; MUQEET ALI ; ANDREW J. BLUMBERG ; MICHAEL WALFISH: "Taking proof-based verified computation a few steps closer to practicality (extended version)", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20130228:071118, Report 2012/598, 28 February 2013 (2013-02-28), pages 1 - 25, XP061007148
U.S. Appl. No. 15/756,623, filed Mar. 1, 2018, Renaud Sirdey et al.
Wang, S. et al., "Is Homomorphic Encryption the Holy Grail for Database Queries on Encrypted Data?", Technical report, University of California, Santa Barbara, 2012, 18 total pages.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461551B1 (en) * 2018-10-23 2022-10-04 Private AI Inc. Secure word search

Also Published As

Publication number Publication date
EP3363143B1 (en) 2020-03-18
EP3363143A1 (en) 2018-08-22
FR3042625B1 (en) 2017-12-15
FR3042625A1 (en) 2017-04-21
WO2017064085A1 (en) 2017-04-20
US20180300497A1 (en) 2018-10-18
ES2800038T3 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
US10831919B2 (en) Method for confidentially querying an encrypted database
Ion et al. On deploying secure computing: Private intersection-sum-with-cardinality
Liu et al. Privacy of outsourced k-means clustering
US10812252B2 (en) String matching in encrypted data
US10554385B2 (en) Method for providing encrypted data in a database and method for searching on encrypted data
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
US10476662B2 (en) Method for operating a distributed key-value store
JP6180177B2 (en) Encrypted data inquiry method and system capable of protecting privacy
Xiao et al. Security analysis for order preserving encryption schemes
CN115688167B (en) Method, device and system for inquiring trace and storage medium
Liu et al. Enabling privacy-preserving shortest distance queries on encrypted graph data
US20210328763A1 (en) Computation-efficient secret shuffle protocol for encrypted data based on homomorphic encryption
US20210344489A1 (en) Communication-efficient secret shuffle protocol for encrypted data based on homomorphic encryption and oblivious transfer
EP4000216B1 (en) Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium
Akavia et al. Secure search on encrypted data via multi-ring sketch
Hamlin et al. Cryptography for Big Data Security.
US20210081807A1 (en) Non-Interactive Private Decision Tree Evaluation
Abadi et al. Feather: Lightweight multi-party updatable delegated private set intersection
Kesarwani et al. Efficient Secure k-Nearest Neighbours over Encrypted Data.
Corena et al. Secure and fast aggregation of financial data in cloud-based expense tracking applications
Tian et al. EAFS: An efficient, accurate, and forward secure searchable encryption scheme supporting range search
Shen et al. A practical and secure stateless order preserving encryption for outsourced databases
Akavia et al. Secure data retrieval on the cloud: Homomorphic encryption meets coresets
Choi et al. Secure mutual proximity zone enclosure evaluation
Lian et al. Efficient Privacy‐Preserving Protocol for k‐NN Search over Encrypted Data in Location‐Based Service

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES, FRANCE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CARPOV, SERGIU;SIRDEY, RENAUD;FAU, SIMON;AND OTHERS;SIGNING DATES FROM 20180504 TO 20180717;REEL/FRAME:046521/0831

Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CARPOV, SERGIU;SIRDEY, RENAUD;FAU, SIMON;AND OTHERS;SIGNING DATES FROM 20180504 TO 20180717;REEL/FRAME:046521/0831

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4