Methods and systems for storing and retreiving homomorphically encrypted keywords
Patent Information
- Application Number
- EP2022790098
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-10-06
- Publication Date
- 2025-08-13
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Cloud storage systems face challenges in maintaining security and reducing privacy leakage, as well as minimizing local computation requirements, especially when dealing with encrypted data that needs to be accessed and operated on.
The method involves encrypting file keywords using a symmetric encryption algorithm, uploading the symmetrically encrypted keywords to a cloud server, and then using a homomorphic encryption algorithm to encrypt the symmetric encryption key, allowing homomorphic operations on the encrypted data without exposing the plaintext to the server, thereby reducing privacy leakage and local computation needs.
This approach enhances security by ensuring the cloud server never accesses unencrypted keys or files, while reducing local computation and privacy leakage by enabling secure, private operations on encrypted data through homomorphic functions.
Smart Images

Figure 1.1
Abstract
Description
[0001] METHODS AND SYSTEMS FOR STORING AND RETREIVING HOMOMORPH ICALLY ENCRYPTED KEYWORDS
[0002] TECHNICAL FIELD
[0003] The present disclosure generally relates to the field of ciphertext storage and retrieval.
[0004] BACKGROUND
[0005] The use of cloud storage, as in storage of data remotely and wherein the data is retrievable through a network (i.e. the internet), has been and continues to increase exponentially. However, one of the inherent problems of storing data at a remote location, i.e. in a cloud storage, is that there is a risk that unauthorized people may access the stored data. In order to reduce the risk, cloud storage often utilizes encryption, such that all data stored in the cloud storage is encrypted. However, in order to retrieve data from the cloud storage, the stored, and potentially encrypted, data must be requested. Requesting data may cause leakage of sensitive privacy data. Further, encrypted data cloud storage may require that a big portion of the encryption and / or decryption is performed locally, rather than at the cloud. Furthermore, in order to efficiently access and / or use the data stored in the cloud, one may have to perform operations on said data. However, if the data is encrypted such operations may prove to be challenging.
[0006] It is therefore of interest to provide improved methods of cloud storage which may alleviate the above-mentioned problems.
[0007] SUMMARY
[0008] An object of the present disclosure is to provide methods which may provide higher security, reduced risk of privacy leakage and / or which may reduce the amount of required local computation. To achieve this object, the present disclosure provides methods for storing and for retrieving a file keyword in a cloud server.
[0009] According to a first aspect of the present disclosure, a method for storing a file keyword in a cloud server. The method according to the first aspect comprises the steps of: encrypting, at a client, the file keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of the file keyword, uploading the symmetrically encrypted cyphertext of the file keyword from the client to the server, encrypting, at the client, a symmetric encryption key for the symmetric encryption algorithm using a homomorphic encryption algorithm, uploading the homomorphically encrypted symmetric encryption key from the client to the server, and applying the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext thereby obtaining a homomorphically encrypted cyphertext of the file keyword.
[0010] According to a second aspect of the present disclosure, a method for retrieving an encrypted file stored in a cloud server, wherein the server comprises at least one homomorphically encrypted cyphertext of a file keyword. The at least one homomorphically encrypted cyphertext of a file keyword may have been stored in the cloud server by using the method according to the first aspect. The method according to the second aspect comprises the steps of: encrypting, at a client, a query keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of said query keyword, uploading said symmetrically encrypted cyphertext to the server, applying a homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of the query keyword thereby obtaining a homomorphically encrypted cyphertext of said query keyword. The homomorphically encrypted symmetric encryption key is a symmetric encryption key which has been encrypted using a homomorphic encryption algorithm. The method according to the second aspect further comprises applying, at the server, a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext of said query keyword and at least one of the at least one homomorphically encrypted cyphertext of a file keyword stored in the server, thereby obtaining at least one homomorphically encrypted similarity factor between the homomorphically encrypted cyphertext of said query keyword and said at least one of the at least one homomorphically encrypted cyphertext, sending the at least one homomorphically encrypted similarity factor from the server to the client, decrypting, locally at the client, the at least one homomorphically encrypted similarity factor using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor between the query keyword and the at least one file keyword.
[0011] The methods of the first and second aspects of the present disclosure may be understood as being linked in that methods of the first aspect may have to be used in order to successfully perform methods according to the second aspect. However, it is to be understood that the present disclosure is not limited to such a relationship between the first and second aspects, and that is envisioned that methods similar to the methods of the first aspect may enable the use of methods of the second aspect, and vice versa.
[0012] According to a third aspect of the present disclosure, a system for storing an encrypted file is provided. The system comprises a client and a server. The client comprises first circuitry configured for: encrypting a file keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of the file keyword, uploading the symmetrically encrypted cyphertext of the file keyword from the client to the server, encrypting a symmetric encryption key for said symmetric encryption algorithm using a homomorphic encryption algorithm, and uploading the homomorphically encrypted symmetric encryption key from to the client the server. The server comprises second circuitry configured for: applying the homomorphically encrypted symmetric encryption key to the symmetrically encrypted cyphertext, thereby obtaining a homomorphically encrypted cyphertext of the file keyword.
[0013] According to a fourth aspect of the present disclosure, a system for retrieving an encrypted file. The system comprises a client and a server comprising at least one homomorphically encrypted cyphertext of a file keyword. The client comprises third circuitry configured for encrypting a query keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of said query keyword, and uploading said symmetrically encrypted cyphertext to the server. The server comprises fourth circuitry configured for applying a homomorphically encrypted symmetric encryption key to the symmetrically encrypted cyphertext of the query keyword, thereby obtaining a homomorphically encrypted cyphertext of said query keyword, wherein the homomorphically encrypted symmetric encryption key is a symmetric encryption key which has been encrypted using a homomorphic encryption algorithm. The third circuitry is further configured for applying a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext of said query keyword and at least one of the at least one homomorphically encrypted cyphertext of a file keyword stored in the server, thereby obtaining at least one homomorphically encrypted similarity factor between the homomorphically encrypted cyphertext of said query keyword and the at least one of the at least one homomorphically encrypted cyphertext, and for sending the at least one homomorphically encrypted similarity factor from the server to the client. Furthermore, the third circuitry of the client is configured for decrypting, locally at the client, the at least one homomorphically encrypted similarity factor using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor between the query keyword and the at least one file keyword.
[0014] As discussed in the above, with regards to the methods of the first and second aspects of the present disclosure, the same may be true for the systems according to the third and fourth aspects of the present disclosure, in that the use of the one may be necessary in order to enable use of the other. However, it is to be understood that the present disclosure is not limited to such a relationship between the third and fourth aspects, and that is envisioned that systems similar to the systems of the third aspect may enable the use of systems of the fourth aspect, and vice versa.
[0015] Further, they relationship between the first and second aspects, and the third and fourth aspects, of the present disclosure may be understood as being interrelated, in that the complement each other and / or work together.
[0016] The present disclosure is based on the concept of using a homomorphized symmetric encryption scheme in order to enable homomorphic operations on the (symmetrically) encrypted data (i.e. ciphertext) stored in the cloud. More specifically, by homomorphically encrypting, locally at the client, the key, it allows the secure, and / or private, application of homomorphic functions on the encrypted data. Thereby, the privacy leakage and / or the amount of required local computation may be reduced. Further, the security may be increased since the cloud storage never has access to an non-encrypted key or nonencrypted files.
[0017] The term "client", may be understood as, for example, a computer, a smartphone, a piece of hardware, an FPGA, a piece of software, and / or a central processing unit, CPU. Further, by the term "cloud server" it is further meant, for example, cloud storage, cloud database, digital storage, server and / or database.
[0018] The first circuitry of the client may be substantially the same as the second circuitry, or may comprise parts, or all, of the second circuitry, or vice versa. Correspondingly, the third circuitry of the client may be substantially the same as the fourth circuitry, or may comprise parts, or all, of the fourth circuitry, or vice versa.
[0019] The method according to the first aspect may further comprise the step of: assigning a file with the file keyword, encrypting, at the client, the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext of the file, uploading the symmetrically encrypted cyphertext of the file from the client to the server, applying the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of the file thereby obtaining a homomorphically encrypted cyphertext of the file.
[0020] The homomorphic distance function may be a homomorphic cosine distance function. The definition of the cosine function may be according to the following equation:
[0021] The homomorphic distance function may be implemented using the Brakerski- Gentry-Vaikuntanathan, BGV, scheme, the Brakerski / Fan-Vercauteren, BFV, scheme or the Cheon, Kim, Kim and Song, CKKS, scheme. The BGV, BFV, and / or the CKKS scheme may be implemented using the appropriate algorithms discussed in, for example, any of the following publications: Boddeti V N . Secure Face Matching Using Fully Homomorphic Encryption^]. IEEE, 2018. VISHNU N B. Secure face matching using fully homomorphic encryption [C] / / 2018 IEEE 9th International Conference on Biometrics Theory, Applications and Systems (BTAS), October 01,2018; Brakerski, Zvika & Gentry, Craig & Vaikuntanathan, Vinod. (2011). (Leveled) Fully Homomorphic Encryption without Bootstrapping. Electronic Colloquium on Computational Complexity (ECCC). 18. 111. 10.1145 / 2090236.2090262:]; Zvika Brakerski and Vinod Vaikuntanathan. Fully homomorphic encryption from ring LWE and security for key dependent messages. In CRYPTO, volume 6841, page 501, 2011; and Zvika Brakerski and Vinod Vaikuntanathan. Efficient fully homomorphic encryption from (standard) LWE. In Ostrovsky [Ostll], pages 97-106. References are to full version: http: / / eprint.iacr.org / 2011 / 344.
[0022] The symmetric encryption algorithm may be an Advanced Encryption Standard, AES, symmetric encryption algorithm. Data Encryption Standard, DES, symmetric encryption algorithm or a Triple DES, 3DES or TDES, symmetric encryption algorithm. Further, the AES algorithm mainly includes four basic templates: byte substitution, ShiftRows, MixColumns, and round key addition. Therefore, in order to homomorphize the AES algorithm it is sufficient to homomorphize the templates. Detailed pseudocode for such homomorphized algorithms can be found in, for example, Gentry C , Halevi S , Smart N P . Homomorphic Evaluation of the AES Circuit[J], Springer, Berlin, Heidelberg, 2012.
[0023] The first circuitry of the client may be further configured for assigning a file with the file keyword, encrypting the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext of the file, and uploading the symmetrically encrypted cyphertext of the file from the client to the server. The second circuitry of the server may be further configured for applying the homomorphically encrypted symmetric encryption key to the symmetrically encrypted cyphertext of the file thereby obtaining a homomorphically encrypted cyphertext of the file.
[0024] Thereby, when the client has decrypted the similarity factor between the query keyword and the at least one file keyword, the client may request the file assigned to file keyword having the highest similarity factor to the query keyword.
[0025] The homomorphically encrypted symmetric encryption key may be a symmetric encryption key which has been encrypted by the client using a homomorphic encryption algorithm.
[0026] Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent claims as well as from the drawings.
[0027] It is noted that embodiments of the invention relate to all possible combinations of features recited in the claims. Further, it will be appreciated that the various embodiments described for the method as defined in accordance with the first aspect, the embodiments described for the fault locator system according to the second aspect and the fault locator device according to the third aspect are all combinable with each other.
[0028] BRIEF DESCRIPTION OF THE DRAWINGS
[0029] This and other aspects of the present disclosure will now be described in more detail, with reference to the appended drawings showing embodiment(s) of the disclosure.
[0030] Figs. 1 and 2 show flowchart of methods according to exemplifying embodiments of the present disclosure.
[0031] Figs. 3 and 4 show systems according to exemplifying embodiments of the present disclosure.
[0032] DETAILED DESCRIPTION
[0033] Fig. 1 shows a flowchart of a method 1000 for storing a file keyword (not shown; see Figs. 3 and 4) in a cloud server (according to an exemplifying embodiment of the present disclosure. The shown method 1000 comprises the steps of encrypting 110, at a client, the file keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of the file keyword. After the encrypting 110 of the file keyword, the method comprises the step of uploading 120 the symmetrically encrypted cyphertext of the file keyword from the client to the server. The method 1000 further comprises the step of encrypting 130, at the client, a symmetric encryption key for said symmetric encryption algorithm using a homomorphic encryption algorithm, and then, uploading 140 the homomorphically encrypted symmetric encryption key from the client to the server. Further, the method 1000 comprises the step of applying 150 the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext thereby obtaining a homomorphically encrypted cyphertext of the file keyword.
[0034] The method 1000 may further comprise the steps of assigning 160 a file (not shown; see Fig. 3) with the file keyword, encrypting 170, at the client, the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext of the file, uploading 180 the symmetrically encrypted cyphertext of the file from the client to the server, and applying 190 the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of the file thereby obtaining a homomorphically encrypted cyphertext of the file.
[0035] In other words, the method 1000 may comprise performing substantially the same steps for the file keyword and the file, and assigning 160, or linking, the file and file keyword.
[0036] It is to be understood that the present disclosure is not limited to the order of the steps of the method 1000 shown in Fig. 1. For example, the encrypting steps 110 and 170, and / or the uploading steps 120 and 180, may be performed in parallel, or right after each other. Additional variations of the order of the steps may be envisaged.
[0037] Fig. 2 shows a flowchart of a method 2000 for retrieving an encrypted file (not shown; see Figs. 3 and 4) stored in a cloud server (not shown; see Figs. 3 and 4) according to an exemplifying embodiment of the present disclosure. The server comprises at least one homomorphically encrypted cyphertext of a file keyword (not shown; see Figs. 3 and 4). The method 2000 comprises the steps of encrypting 210, at a client (not shown; see Figs. 3 and 4), a query keyword (not shown; see Fig. 4) using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of said query keyword, and then uploading 220 said symmetrically encrypted cyphertext to the server. The method 2000 further comprises the step of applying 230 a homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of said query keyword thereby obtaining a homomorphically encrypted cyphertext of said query keyword. The homomorphically encrypted symmetric encryption key is a symmetric encryption key which has been encrypted using a homomorphic encryption algorithm. The method 2000 further comprises the steps of applying 240, at the server, a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext of said query keyword and at least one of the at least one homomorphically encrypted cyphertext of a file keyword stored in the server, thereby obtaining at least one homomorphically encrypted similarity factor between the homomorphically encrypted cyphertext of said query keyword and said at least one of the at least one homomorphically encrypted cyphertext, sending 250 the at least one homomorphically encrypted similarity factor from the server to the client, and decrypting 260, locally at the client, the at least one homomorphically encrypted similarity factor using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor between the query keyword and the at least one file keyword.
[0038] A client which has been a part of the method 1000, as shown in Fig. 1 and described in the related thereto text, in order to upload an encrypted file keyword and / or an encrypted file may later be a part of the method 2000 in order to receive the encrypted similarity factor from the server and then decrypting 260 the similarity factor. Correspondingly, the server of the method 1000 may be same server as the server of the method 2000. However, the present disclosure is not limited to the client and / or the server being the same in the methods 1000 and 2000. For example, a first client may be used as a part of the method 1000, and then a second client may be used as a part of the method 2000.
[0039] Fig. 3 shows a system 100 according to an exemplifying embodiment of the present disclosure.
[0040] The system 100 comprises a client 10 and a server 20. The server 20 may be configured as a cloud server. The client 10 comprises first circuitry 11. The first circuitry 11 is configured for encrypting S13 a file keyword 13 using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext 13' of the file keyword 13. The first circuitry 11 is further configured for uploading S14 the symmetrically encrypted cyphertext 13' of the file keyword 13 from the client 10 to the server 20. The first circuitry 11 is further configured for encrypting S15 a symmetric encryption key 15 for said symmetric encryption algorithm using a homomorphic encryption algorithm, and uploading S16 the homomorphically encrypted symmetric encryption key 15' to the server. The client 10 may be communicatively connected to the server 20, thereby allowing receiving and sending information therebetween.
[0041] The server 20 comprises second circuitry 22 configured for applying S21 the homomorphically encrypted symmetric encryption key 15' to the symmetrically encrypted cyphertext 13', thereby obtaining a homomorphically encrypted cyphertext 13'' of the file keyword 13.
[0042] The system 100 allows for uploading of the symmetrically encrypted cyphertext 13' and the homomorphically encrypted symmetric encryption key 15' to a server 20. Thus, the encryption key 15 which can be used to decipher the symmetrically encrypted cyphertext 13' is uploaded to the server 20. However, due to the encryption key 15 having been homomorphically encrypted, when the homomorphically encrypted symmetric encryption key 15' is applied to the symmetrically encrypted cyphertext 13', the result is that the symmetrically encrypted cyphertext 13' is (substantially) being simultaneously symmetrically decrypted and homomorphically encrypted, thereby obtaining a homomorphically encrypted cyphertext 13” of the file keyword 13. Thereby, it is ensured that the server 20 never has access to the plain text of the file keyword 13.
[0043] The first circuitry 11 may further be configured to assign S19 a file with the file keyword 13, then encrypt S17 the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext 17' of the file, and then upload S18 the symmetrically encrypted cyphertext of the file 17' from the client 10 to the server 20. Hence, the file 17 may be encrypted and uploaded to the server 20 in a similar manner as the file keyword 13 was encrypted and uploaded to server 20. The second circuitry 22 of the server 20 may be further configured to apply S21 the homomorphically encrypted symmetric encryption key to the symmetrically encrypted cyphertext of the file 17' thereby obtaining a homomorphically encrypted cyphertext of the file (not shown). Hence, the function of the second circuitry 22 to apply S21 homomorphically encrypted symmetric encryption key may be used similarly for the cyphertexts of the file 17' and the file keyword 13'.
[0044] Alternatively, the first circuitry 11 may be configured to run software which, when executed by the first circuitry 11, runs parts of the methods 1000, 2000 shown in Figs. 1 and 2 and described in the text relating thereto. Further, the second circuitry 22 may be configured to run software which, when executed by the first circuitry 11, runs parts of the methods 1000, 2000. Thereby, the system 100 may be configured to run software which, when executed, runs, at least, parts, or all of the at least one of the methods 1000, 2000.
[0045] Fig. 4 shows a system 100 for retrieving an encrypted file (not shown; see Fig. 3) according to an exemplifying embodiment of the present disclosure. The system 100 comprises client 10 and a server 20. The server 20 comprises comprising at least one homomorphically encrypted cyphertext of a file keyword (not shown; see Fig. 3). The client 10 comprises third circuitry 33, and the server 20 comprises fourth circuitry 44. The client 10 shown in Fig. 4 may be substantially identical to the client shown in Fig 3. and described in the relating thereto text. The same may be true for the server 20 shown in Fig. 4 and the server shown in Fig. 3. Further, the third circuitry 33 may be the same, may be comprised by, or may comprise, the first circuitry (not shown; see Fig. 3). Correspondingly, the fourth circuitry 44 may be the same, may be comprised by, or may comprise, the second circuitry (not shown; see Fig. 3).
[0046] The third circuitry 33 configured for encrypting S13 a query keyword 14 using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext 14' of said query keyword 14. The third circuitry 33 is further configured for uploading S14 said symmetrically encrypted cyphertext 14' to the server 20. The fourth circuitry 44 is configured for applying S21 a homomorphically encrypted symmetric encryption key 15' to the symmetrically encrypted cyphertext 14' of said query keyword 14, thereby obtaining a homomorphically encrypted cyphertext 14'' of said query keyword 14. The homomorphically encrypted symmetric encryption key 15' is a symmetric encryption key 15 which has been encrypted using a homomorphic encryption algorithm. Hence, it may be understood that the process of homomorphically encrypting the query keyword 14 may be substantially the same as the used to homomorphically encrypt a file keyword as described in the text relating to Fig.3.
[0047] The fourth circuitry 44 is further configured for applying S22 a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext 14'' of said query keyword 14 and at least one of the at least one homomorphically encrypted cyphertext 13'' of a file keyword 13 stored in the server 20, thereby obtaining at least one homomorphically encrypted similarity factor 19'' between the homomorphically encrypted cyphertext 14'' of said query keyword 14 and said at least one of the at least one homomorphically encrypted cyphertext 13''. The fourth circuitry 44 is further configured for sending S23 the at least one homomorphically encrypted similarity factor 19'' from the server 20 to the client 10.
[0048] The third circuitry 33 of the client 10 is further configured for decrypting S31, locally at the client 10, the at least one homomorphically encrypted similarity factor 19'' using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor 19 between the query keyword 14 and the at least one file keyword 13.
[0049] While the present invention has been illustrated in the appended drawings and the foregoing description, such illustration is to be considered illustrative or exemplifying and not restrictive; the present invention is not limited to the disclosed embodiments. Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the appended claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Any reference signs in the claims should not be construed as limiting the scope.
Claims
CLAIMS1. A method (1000) for storing a file keyword (15) in a cloud server (25), comprising the steps of: encrypting (110), at a client, the file keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of the file keyword; uploading (120) the symmetrically encrypted cyphertext of the file keyword from the client to the server; encrypting (130), at the client, a symmetric encryption key for said symmetric encryption algorithm using a homomorphic encryption algorithm; uploading (140) the homomorphically encrypted symmetric encryption key from the client to the server; applying (150) the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext thereby obtaining a homomorphically encrypted cyphertext of the file keyword.
2. The method according to claim 1, further comprising the steps of: assigning (160) a file with the file keyword; encrypting (170), at the client, the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext of the file; uploading (180) the symmetrically encrypted cyphertext of the file from the client to the server; applying (190) the homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of the file thereby obtaining a homomorphically encrypted cyphertext of the file.
3. A method (2000) for retrieving an encrypted file stored in a cloud server, wherein the server comprises at least one homomorphically encrypted cyphertext of a file keyword, the method comprising the steps of: encrypting (210), at a client, a query keyword using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext of said query keyword; uploading (220) said symmetrically encrypted cyphertext to the server;applying (230) a homomorphically encrypted symmetric encryption key, at the server, to the symmetrically encrypted cyphertext of said query keyword thereby obtaining a homomorphically encrypted cyphertext of said query keyword, wherein the homomorphically encrypted symmetric encryption key is a symmetric encryption key which has been encrypted using a homomorphic encryption algorithm; applying (240), at the server, a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext of said query keyword and at least one of the at least one homomorphically encrypted cyphertext of a file keyword stored in the server, thereby obtaining at least one homomorphically encrypted similarity factor between the homomorphically encrypted cyphertext of said query keyword and said at least one of the at least one homomorphically encrypted cyphertext; sending (250) the at least one homomorphically encrypted similarity factor from the server to the client; decrypting (260), locally at the client, the at least one homomorphically encrypted similarity factor using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor between the query keyword and the at least one file keyword.
4. The method according to claim 3, wherein the homomorphic distance function is a homomorphic cosine distance function.
5. The method according to claim 3 or 4, wherein the homomorphic distance function is implemented using the Brakerski-Gentry-Vaikuntanathan, BGV, scheme, the Brakerski / Fan- Vercauteren, BFV, scheme or the Cheon, Kim, Kim and Song, CKKS, scheme.
6. The method according to any of the preceding claims, wherein the symmetric encryption algorithm is an Advanced Encryption Standard, AES, symmetric encryption algorithm. Data Encryption Standard, DES, symmetric encryption algorithm or a Triple DES, 3DES or TDES, symmetric encryption algorithm.
7. A system (100) comprising a client (10) and a server (20), wherein the client comprises first circuitry (11) configured for: encrypting (S13) a file keyword (13) using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext (13') of the file keyword;uploading (S14) the symmetrically encrypted cyphertext of the file keyword from the client to the server; encrypting (S15) a symmetric encryption key (15) for said symmetric encryption algorithm using a homomorphic encryption algorithm; and uploading (S16) the homomorphically encrypted symmetric encryption key (15') to the server; and wherein the server comprises second circuitry (22) configured for: applying (S21) the homomorphically encrypted symmetric encryption key (15') to the symmetrically encrypted cyphertext (13'), thereby obtaining a homomorphically encrypted cyphertext (13'') of the file keyword.
8. The system according to claim 7, wherein the first circuitry of the client is further configured for: assigning (S19) a file (17) with the file keyword (13); encrypting (S17) the file using the symmetric encryption algorithm thereby obtaining symmetrically encrypted cyphertext (17') of the file; and uploading (S18) the symmetrically encrypted cyphertext of the file (17') from the client to the server; and wherein the second circuitry of the server is further configured for: applying (S21) the homomorphically encrypted symmetric encryption key to the symmetrically encrypted cyphertext of the file thereby obtaining a homomorphically encrypted cyphertext of the file.
9. A system (100) for retrieving an encrypted file (17'), the system comprising a client (10) and a server (20) comprising at least one homomorphically encrypted cyphertext (13'') of a file keyword (13), wherein the client comprises third circuitry (33) configured for: encrypting (S13) a query keyword (14) using a symmetric encryption algorithm thereby obtaining a symmetrically encrypted cyphertext (14') of said query keyword; and uploading (S14) said symmetrically encrypted cyphertext to the server; and wherein the server comprises fourth circuitry (44) configured for: applying (S21) a homomorphically encrypted symmetric encryption key (15') to the symmetrically encrypted cyphertext (14') of said query keyword (14), thereby obtaining a homomorphically encrypted cyphertext (14'') of said query keyword (14), wherein thehomomorphically encrypted symmetric encryption key (15') is a symmetric encryption key (15) which has been encrypted using a homomorphic encryption algorithm; applying (S22) a homomorphic distance function to calculate a distance between the homomorphically encrypted cyphertext (14”) of said query keyword (14) and at least one of the at least one homomorphically encrypted cyphertext (13”) of a file keyword (13) stored in the server, thereby obtaining at least one homomorphically encrypted similarity factor (19”) between the homomorphically encrypted cyphertext (14”) of said query keyword and said at least one of the at least one homomorphically encrypted cyphertext (13”); and sending (S23) the at least one homomorphically encrypted similarity factor from the server to the client; and wherein the third circuitry of the client is configured for: decrypting (S31), locally at the client, the at least one homomorphically encrypted similarity factor (19”) using a homomorphic decryption algorithm, thereby obtaining at least one similarity factor between the query keyword and the at least one file keyword.
10. The system according to claim 9 , wherein the homomorphically encrypted symmetric encryption key is a symmetric encryption key which has been encrypted by the client using a homomorphic encryption algorithm.
11. The system according to claim 9 or 10, wherein the homomorphic distance function is a homomorphic cosine distance function.
12. The system according to any of claims 9 to 11, wherein the homomorphic distance function is implemented using the Brakerski-Gentry-Vaikuntanathan, BGV, scheme, the Brakerski / Fan-Vercauteren, BFV, scheme or the Cheon, Kim, Kim and Song, CKKS, scheme.
13. The system according to any of claims 7 to 12, wherein the symmetric encryption algorithm is an Advanced Encryption Standard, AES, symmetric encryption algorithm. Data Encryption Standard, DES, symmetric encryption algorithm or a Triple DES, 3DES or TDES, symmetric encryption algorithm.