| CPC G06F 16/24575 (2019.01) [G06F 21/31 (2013.01); H04L 9/008 (2013.01)] | 16 Claims |

|
1. Method for confidentially querying the presence of a record in a database hosted by a server, said records being stored in the database in the form of digital footprints, each digital footprint being obtained by hashing a record by means of a public hash function and each row of the database containing the digital footprints sharing their m >1 first bits, wherein:
a first user has a stream cipher symmetric key and a second user has an at least additive homomorphic cryptosystem;
the rows of the database are encrypted by means of said stream cipher by adding masks each having the size of a row of the database;
the first user authorises the access to the database to the second user by encrypting the inverse masks by means of the public key of said homomorphic cryptosystem and by transmitting the inverse masks thus encrypted to the server;
the rows of the database are transcrypted in the homomorphic domain by adding to said rows the inverse masks thus encrypted;
the second user computes the digital footprint of the record by means of said public hash function and deduces therefrom an integer value, qm, corresponding to the m first bits;
the second user constructs a request in the form of a first vector of size 2m consisting of a homomorphic ciphertext of the value “1” in position qm and of homomorphic ciphertexts of the value “0” in the other positions, the request being transmitted to the server;
the server evaluates in the homomorphic domain the scalar product between the first vector and a second vector of size 2m consisting of the encrypted rows of the database, the result being transmitted as a response to the second user;
the second user decrypts said response by means of the private key of their homomorphic cryptosystem and deduces therefrom the plaintext content of the row qm of the database;
the second user searches whether the digital footprint of the record is among the digital footprints of the row qm thus obtained, wherein the transcryption of the rows of the database is carried out once for all by the server when the second user has been authorised to query the database by the first user.
|