Method for using an ORAM database by a terminal device, corresponding computer program product and device - Patents.com
Patent Information
- Application Number
- JP2024529932
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-11-19
- Filing Date
- 2022-11-18
- Publication Date
- 2025-11-04
AI Technical Summary
Existing data backup solutions for terminal devices, such as smartphones and tablets, face challenges in ensuring privacy and confidentiality due to untrusted cloud providers accessing user data, and ORAM solutions are impractical due to high computational demands and metadata vulnerabilities.
A method involving a third-party device to create an ORAM database on a remote server, delegating computationally demanding tasks and providing metadata to the terminal device, ensuring confidentiality through encrypted communication and separate encryption keys, allowing the terminal device to directly access and manage the ORAM database.
Enhances data confidentiality on remote servers by leveraging third-party resources to initialize ORAM databases, reducing computational burden on terminal devices and maintaining privacy despite metadata storage on third-party equipment.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The field of the present disclosure is that of data backup on a remote server, for example in the cloud.
[0002] More specifically, the present disclosure relates to a method for such data backup on a remote server from a terminal device.
[0003] The present disclosure may be of interest in any field where such terminal devices need to back up data on a remote server, which is illustratively the case for terminal devices such as smartphones, tablets, etc. [Background technology]
[0004] Finally, the present invention will concentrate more particularly on describing the existing problems faced by the inventors of the present application in the field of mobile devices (e.g. smartphones, tablets, etc.). The present invention is naturally not limited to this particular field of application, but is directed to data backup on a remote server for any type of terminal device (e.g. a home server).
[0005] For example, it is known to back up data from end devices with cloud provider services such as Google Drive. While this is often convenient, it conflicts with the need for privacy, since cloud storage providers may not be trustworthy and can access sensitive data stored by users. Encryption of such data is not sufficient to guarantee privacy, since the cloud provider can still understand whether the user reads or writes a file and which parts of the data are accessed. That information can be used to track the user's activities.
[0006] Oblivious Random-Access Memory (ORAM) is a known solution to address these privacy issues. More specifically, ORAM is a cryptographic scheme that protects user privacy by obscuring access patterns at the cost of some performance loss. Especially in devices with limited computing power, such as mobile devices, this performance loss can be significant, making ORAM solutions largely impractical. In practice, a number of limitations can be identified for mobile devices. -Initial setup of ORAM is quite slow as the storage device needs to be initialized and encrypted. -ORAM needs to store client-side metadata necessary for ORAM to operate (e.g., a map of the location of data blocks in a database). If this client metadata is lost or the device is destroyed, the encrypted data becomes unusable and is lost forever. Summary of the Invention [Problem to be solved by the invention]
[0007] Thus, there is a need for a solution to improve the confidentiality of data stored on a remote server by an end device, even when the end device has limited computing power. [Means for solving the problem]
[0008] A particular aspect of the present disclosure relates to a method for using an ORAM database created by a remote server by a terminal device, comprising connecting a third party device to the terminal device and the remote server through a communication network. According to such a method, the third party device performs a step of receiving a request sent by the terminal device through the communication network, the request causing the third party device to initiate creation of an ORAM database on the remote server. In response to the step of receiving the request, the third party device: - initiating creation of an ORAM database at a remote server by transmitting ORAM database elements to the remote server over a communications network; - generating metadata associated with the created ORAM database on a remote server; - transmitting metadata to a terminal device through a communication network so that the terminal device can use the ORAM database created by the remote server without going through a third-party device; Execute.
[0009] Thus, the present disclosure proposes a new and inventive solution for improving the confidentiality of data stored by a terminal device on a remote server, even when the terminal device has limited computing capabilities (e.g., a smartphone or tablet).
[0010] More specifically, the proposed solution allows such terminal devices to use an ORAM database by delegating to a third-party device the authority for the most computationally demanding steps involved in the use of such an ORAM database, namely the authority to create (or initialize) the ORAM database itself on a remote server. In particular, once the ORAM database is created, the metadata necessary to use it is provided to the terminal device, so that the terminal device can further access the created ORAM database directly (without going through a third-party device). In this way, data confidentiality is guaranteed to the terminal device despite the use of a third-party device to create the ORAM database.
[0011] In some embodiments, the step of initializing the creation of the ORAM database comprises: generating a temporary symmetric encryption key; encrypting an initial data block of the ORAM database using the temporary encryption key; - transmitting the encrypted initial data block as part of the ORAM database element to a remote server over a communications network; Equipped with.
[0012] In some embodiments, the metadata comprises a temporary symmetric encryption key.
[0013] In this way, the terminal device can decrypt the data blocks of the ORAM database when the third-party device initialized it.
[0014] In some embodiments, transmitting the metadata to the terminal device comprises establishing an encrypted and authenticated communication channel with the terminal device over the communication network, wherein the metadata is transmitted over the encrypted and authenticated communication channel.
[0015] In some embodiments, the third party device performs the step of deleting the metadata stored on the third party device in response to the step of transmitting the metadata to the terminal device.
[0016] In this way, the terminal device acquires ownership of the ORAM database.
[0017] In some embodiments, after transmitting the metadata to the terminal device, the third party device performs a step of receiving the metadata associated with the ORAM database from the terminal device over the communications network in encrypted form based on a private encryption key that is different from the temporary symmetric encryption key.
[0018] In this way, a backup of the metadata is stored in the third party device. Furthermore, since the private encryption key is unknown to the third party device, the third party device cannot use the metadata to access the ORAM database. The confidentiality of the data stored in the ORAM database is maintained.
[0019] According to another aspect of the present disclosure, the terminal device is connected to a third party device and a remote server through a communication network, so that - sending a request to a third party device over a communications network to cause the third party device to initiate creation of an ORAM database at a remote server; receiving metadata from a third-party device via a communications network, the metadata enabling the terminal device to use the ORAM database created on the remote server without going through the third-party device; Execute.
[0020] In some embodiments, the received metadata comprises a temporary symmetric encryption key used by the third party device to encrypt an initial block of the ORAM database stored on the remote server.
[0021] In some embodiments, receiving the metadata from the third party device comprises establishing an encrypted and authenticated communications channel with the third party device over the communications network, wherein the metadata is received over the encrypted and authenticated communications channel.
[0022] In some embodiments, the terminal device performs a step of sending an access token to the third party device over the communications network so that the third party device can access the remote server to initialize creation of the ORAM database at the remote server.
[0023] In some embodiments, after receiving metadata from the third-party device, the terminal device performs a step of revoking the access token sent to the third-party device so that the third-party device can no longer access the ORAM database on the remote server.
[0024] In this way, the confidentiality of the data stored in the ORAM database is improved.
[0025] In some embodiments, the terminal device performs a write of at least one data block in the ORAM database, the write comprising: - encrypting at least one data block of the ORAM database using a secret encryption key different from the temporary symmetric encryption key; - transmitting at least one encrypted data block to a remote server over a communications network for storage in an ORAM database; updating the metadata taking into account the transmission of the at least one encrypted data block; Equipped with.
[0026] In some embodiments, the terminal device performs the step of generating a private cryptographic key.
[0027] In some embodiments, the terminal device performs a read of at least one encrypted data block of the ORAM database, the read comprising: - receiving at least one encrypted data block of an ORAM database from a remote server over a communications network; decrypting the encrypted data block based on the temporary encryption key if the metadata indicates that the encrypted data block is an initial block of an ORAM database encrypted by a third-party device, or based on the private encryption key if the metadata indicates that the encrypted data block is a data block of an ORAM database encrypted by a terminal device; Equipped with.
[0028] In some embodiments, the terminal device performs the step of transmitting the metadata in encrypted form based on a private encryption key to the third party device over the communications network.
[0029] In some embodiments, the ORAM database is of type pathORAM.
[0030] In some embodiments, the metadata comprises a location map of the database and hiding place information.
[0031] Another aspect of the present disclosure relates to a computer program product comprising program code instructions for implementing the above-described method for using an ORAM database (in any of the different embodiments discussed above) when said program is run on a computer or processor.
[0032] Another aspect of the present disclosure relates to an apparatus configured to implement all or part of the steps of the above-mentioned method for using an ORAM database when executed by a terminal device (in any of the different embodiments discussed above). Thus, the features and advantages of this apparatus are the same as those of the corresponding steps of said method. Therefore, the features and advantages of this apparatus will not be described in further detail.
[0033] Another aspect of the present disclosure relates to an apparatus configured to implement all or part of the steps of the above-mentioned method for using an ORAM database when executed by a third-party apparatus (in any of the different embodiments discussed above). Thus, the features and advantages of this apparatus are the same as those of the corresponding steps of said method. Therefore, the features and advantages of this apparatus will not be described in further detail.
[0034] Other characteristics and advantages of the embodiments will become apparent from the following description, given by way of suggestive and non-exhaustive example, and from the accompanying drawings, in which: [Brief description of the drawings]
[0035] [Figure 1] 1 illustrates a terminal device in communication with a third party device and a remote server, according to one embodiment of the present disclosure. [Diagram 2]2 illustrates method steps for using an ORAM database created in a remote server of FIG. 1 by a terminal device of FIG. 1 according to one embodiment of the present disclosure; [Diagram 3] 3 shows an example of an equipment structural block enabling the terminal device of FIG. 1 to implement all or part of the corresponding steps of the method of FIG. 2; [Figure 4] 3 illustrates an example of an architecture block of a device that enables the third-party device of FIG. 1 to implement all or part of the corresponding steps of the method of FIG. 2; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0036] In all of the figures herein, the same numerical references designate similar elements and steps.
[0037] Referring now to FIG. 1, a terminal device 100 in communication with a third party device 130 and a remote server 150 will be described according to one embodiment of the present disclosure.
[0038] A terminal device 100 (e.g., a smartphone, a tablet equipped with a wireless communication module) is in communication with a third party device 130 and a remote server 150 (e.g., a server of a storage provider) through a communication network. The communication network is a wireless communication network, e.g., a Third Generation Partnership Project (3GPP), hereafter 3GPP, 2G, 3G, 4G or 5G cellular network. Such a communication network comprises a base station 110 implementing an air interface with the terminal device 100 and a core network 120 interfacing with the third party device 130 and the server 150.
[0039] However, in other embodiments, the communication network is a wired communication network, for example when the terminal device 100 is not a mobile device (for example when the terminal device 100 is a home server).
[0040] Returning to FIG. 1, according to the method of the present disclosure, which will be described in further detail below in relation to FIG. 2, the terminal device 100 delegates the authority to create the ORAM database 150db on the server 150 to the third-party device 130. Thus, the third-party device 130 initiates the creation of the ORAM database 150db on the server 150 and generates metadata 130md related to the database 150db. The metadata 130md is transmitted to the terminal device 100 in order to enable the terminal device 100 to use the database 150db directly, i.e., without going through the third-party device 130. Illustratively, the metadata 130md comprises a "location map" (e.g., a lookup table) that allows "undoing the scramble" and links back the location of blocks in the database 150db to a logical ordering of blocks that can be used by the client, i.e., in this case, the terminal device 100.
[0041] The third-party device 130 also generates a temporary symmetric encryption key 130tk for encrypting the initial data blocks of the database 150db. In an illustrative example, the metadata 130md generated by the third-party device 130 includes the temporary symmetric encryption key 130tk so that the terminal device 100 can decrypt the data blocks of the database 150db as they were initialized by the third-party device 130.
[0042] However, in other embodiments, the third-party device 130 does not use such a temporary symmetric encryption key 130tk to encrypt the initial data blocks of the database 150db, and in such embodiments, the metadata 130md does not include the temporary symmetric encryption key 130tk.
[0043] Returning to figure 1, the terminal device 100 uses a private encryption key 100sk, different from the temporary symmetric encryption key 130tk, to encrypt the data blocks stored in the database 150db. In this way, the third party device 130 cannot access the data blocks stored by the terminal device 100 in the database 150db, since it does not have knowledge of the private encryption key 100sk.
[0044] However, in other embodiments, the terminal device 100 does not use a secret encryption key 100sk that is different from the temporary symmetric encryption key 130tk to encrypt the data blocks stored in the database 150db.
[0045] Returning to Fig. 1, the terminal device 100 comprises a device 100d comprising means configured to implement all or part of the corresponding steps of the method for using an ORAM database discussed below in relation to Fig. 2. The means implemented in the device 100d are further discussed below in relation to Fig. 3.
[0046] The third party device 130 comprises device 130d comprising means configured to implement all or part of the corresponding steps of the method for using an ORAM database discussed below in conjunction with Figure 2. The means implemented in device 130d are further discussed below in conjunction with Figure 4.
[0047] Referring now to FIG. 2, a method for using the ORAM database 150db by the terminal device 100 according to one embodiment of the present disclosure will be described.
[0048] More specifically, in step S200, the terminal device 100 transmits an access token through the communication network to the third party device 130. The access token enables the third party device 130 to access the remote server 150 and initiate creation of the database 150db on the remote server 150.
[0049] In response, in step S200, the third party device 130 receives the access token sent by the terminal device 100.
[0050] In the illustrative example, the terminal device 100 sends a request to the remote server 150 to receive such an access token. In response to receiving the request sent by the terminal device 100, the remote server 150 generates and sends an access token to the terminal device 100. Using such an access token, any device in possession of the token can access the remote server 150. Thus, the access token is sent by the terminal device 100 to the third-party device 130 so that the third-party device 130 can access the remote server 150, for example to initiate the creation of the database 150db.
[0051] However, in other embodiments, such a mechanism involving an access token is not implemented. In an illustrative example, the third-party device 130 may already be given access to the remote server 150, for example, if there is a general agreement between the parties that manage the third-party device 130 and the remote server 150.
[0052] Returning to FIG. 2, in step 210 , the terminal device 100 transmits a request to the third party device 130 over the communication network to cause the third party device 130 to initiate creation of the database 150db on the server 150 .
[0053] In response, in step S210, the third party device 130 receives the request sent by the terminal device 100.
[0054] In response to receiving the request sent by the terminal device 100, the third party device 130 initiates the creation of the database 150db at the remote server 150 by sending database elements to the remote server 150 during step S220. In this way, the authority to initiate the creation of the database 150db is delegated from the terminal device 100 to the third party device 130.
[0055] More specifically, in step S221, the third-party device 130 generates a temporary symmetric encryption key 130tk and encrypts an initial data block of the database 150db with the temporary symmetric encryption key 130tk. In step S222, the third-party device 130 transmits the encrypted initial data block to the remote server 150 as part of the database element.
[0056] However, in other embodiments, the third party device 130 does not use such a temporary symmetric encryption key 130tk to encrypt the initial data blocks of the database 150db. In some embodiments, the database element comprises additional information that enables the creation of the database 150db, including, for example, the size of the database 150db to be created. In some embodiments, the authority to initiate the creation of the database 150db is further delegated from the third party device 130 to the remote server 150.
[0057] Returning to Figure 2, in step S230, the third-party device 130 generates metadata 130md (e.g., a "location map" as discussed above in connection with Figure 1) related to the database 150db created on the remote server 150. In step S231, the third-party device 130 transmits the metadata 130md to the terminal device 100 so that the terminal device 100 can directly use the database 150db created on the remote server 150.
[0058] In response, in step S231, the terminal device 100 receives the metadata 130md transmitted by the third-party device 130.
[0059] In some embodiments in which the third-party device 130 uses the temporary symmetric encryption key 130tk to encrypt the initial data blocks of the database 150db, the metadata 130md comprises the temporary symmetric encryption key 130tk, and accordingly the terminal device 100 can decrypt the data blocks of the database 150db as they were initialized by the third-party device 130.
[0060] In some embodiments, the third party device 130 and the terminal device 100 establish an encrypted and authenticated communication channel to communicate with each other through the communication network. The third party device 130 transmits the metadata 130md to the terminal device 100 through the encrypted and authenticated communication channel. In response, the terminal device 100 receives the metadata 130md transmitted by the third party device 130 through the encrypted and authenticated communication channel. Accordingly, the information exchange between the terminal device 100 and the third party device 130 becomes secure.
[0061] In some embodiments, database 150db is of the pathORAM type, which is particularly suitable for mobile devices. In such embodiments, metadata 130md comprises a "location map" of database 150db as well as hiding location information.
[0062] Returning to Fig. 2, in step S232, in response to transmitting the metadata 130md to the terminal device 100 during step S231, the third party device 130 deletes the generated metadata 130md. In this way, the metadata 130md as generated by the third party device 130 does not remain stored in the third party device 130. The terminal device 100 thus acquires ownership of the database 150db.
[0063] However, in other embodiments, the third party device 130 does not delete the generated metadata 130md.
[0064] 2, in step S250, after receiving the metadata 130md, the terminal device 100 revokes the access token it sent during step S200 to the third-party device 130. In this way, the third-party device 130 can no longer access the database 150db on the remote server 150.
[0065] However, in an embodiment in which step S200 is not implemented, the terminal device 100 does not implement step S250.
[0066] Returning to FIG. 2, after performing steps S200-S250, the terminal device 100 can now use the database 150db to write one or more data blocks stored therein.
[0067] As an example, in step S260, the terminal device 100 performs a write of one or more data blocks in the database 150db.
[0068] In that regard, in step S261, the terminal device 100 generates a private encryption key 100sk different from the temporary symmetric encryption key 130tk and encrypts one or more data blocks with the private encryption key 100sk. In step S262, the terminal device 100 transmits the one or more encrypted data blocks to the remote server 150 for storage in the database 150db. In step S263, the terminal device 100 updates the metadata 130md to take into account the transmission of the one or more encrypted data blocks.
[0069] However, in other embodiments, the terminal device 100 does not use a secret encryption key 100sk that is different from the temporary symmetric encryption key 130tk to encrypt the data blocks stored in the database 150db.
[0070] Returning to FIG. 2, in step S270, the terminal device 100 transmits the metadata 130md to the third-party device 130 in a form encrypted based on the private encryption key 100sk. Correspondingly, in step S270, the third-party device 130 receives the metadata 130md transmitted by the terminal device 100 in a form encrypted based on the private encryption key 100sk. In this way, a backup of the metadata 130md is stored in the third-party device 130. Furthermore, since the private encryption key 100sk is unknown to the third-party device 130, the third-party device 130 cannot access the database 150db using the metadata 130md. The confidentiality of the data stored in the database 150db is protected despite the presence of a backup of the metadata 130md in the device 130.
[0071] However, in other embodiments, the terminal device 100 does not perform step S270, and the metadata 130md is not sent to the third-party device 130 for storage as a backup.
[0072] Returning to FIG. 2, after performing steps S200-S250, the terminal device 100 can also use the database 150db to read one or more data blocks stored in the database 150db.
[0073] As an example, in step S280, the terminal device 100 performs a read of one or more data blocks stored in the database 150db.
[0074] In that regard, in step S281, the remote server 150 transmits one or more encrypted data blocks of the database 150db to the terminal device 100, for example in response to a request for such one or more data blocks sent by the terminal device 100. In response, in step S281, the terminal device 100 receives one or more encrypted data blocks of the database 150db from the remote server 150. In step S282, the terminal device 100: - a temporary symmetric encryption key 130tk if the metadata 130md indicates that the corresponding encrypted data block is an initial block of a database 150db encrypted by a third-party device 130, or the private encryption key 100sk if the metadata 130md indicates that the corresponding encrypted data block is a data block of the database 150db encrypted by the terminal device 100; The method includes: decrypting one or more encrypted blocks of data based on the
[0075] In other embodiments that do not use the temporary symmetric encryption key 130tk and / or the private encryption key 100sk to encrypt one or more data blocks stored in the database 150db, the terminal device 100 does not necessarily decrypt the one or more data blocks stored in the database 150db. In either case, the terminal device 100 relies on information in the metadata 130md to determine whether decryption is required based on either encryption key, if applicable.
[0076] Referring now to FIG. 3, an example of a building block implemented in device 100d will be described.
[0077] More specifically, to be able to implement all or part of the steps of the method discussed above in relation to FIG. 2 as performed by the terminal device 100 (according to any of the embodiments disclosed above), in some embodiments the device 100d may include: a non-volatile memory 303 (for example a read-only memory (ROM), a hard disk, a flash memory, etc.); - A volatile memory 301 (e.g., a random access memory (RAM)) and a processor 302 Equipped with.
[0078] The non-volatile memory 303 is a non-transitory computer-readable storage carrier medium that stores executable program code instructions executed by the processor 302 to enable implementation of some steps of the method described above (method for using an ORAM database) in the various embodiments disclosed above in relation to FIG.
[0079] Upon initialization, the above-mentioned program code instructions are transferred from the non-volatile memory 303 to the volatile memory 301 for execution by the processor 302. The volatile memory 301 also includes registers for storing variables and parameters required for this execution.
[0080] The steps of the method for using an ORAM database, as executed by the terminal device 100, are: - by executing a set of program code instructions, which may be stored on a removable (e.g. CD-ROM, DVD-ROM, USB key) or non-separable non-transitory computer-readable carrier medium, which is executed by a reprogrammable computing machine, such as a PC-type device, a DSP (digital signal processor), or a microprocessor; or -By dedicated machines or components such as FPGAs (Field Programmable Gate Arrays), ASICs (Application-Specific Integrated Circuits), or any dedicated hardware components may be implemented equally satisfactorily.
[0081] In other words, the present disclosure is not limited to a purely software-based implementation in the form of computer program instructions, but may also be implemented in the form of hardware, or in any form combining hardware and software parts.
[0082] Referring now to FIG. 4, an example of a building block implemented in device 130d will be described.
[0083] More particularly, to be able to implement all or a portion of the steps of the method discussed above in relation to FIG. 2 as performed by a third party device 130 (according to any of the embodiments disclosed above), in some embodiments, device 130d may include: a non-volatile memory 403 (for example a read-only memory (ROM), a hard disk, a flash memory, etc.); - A volatile memory 401 (e.g., a random access memory (RAM)) and a processor 402 Equipped with.
[0084] The non-volatile memory 403 is a non-transitory computer-readable storage carrier medium that stores executable program code instructions executed by the processor 402 to enable implementation of some steps of the method described above (method of using the ORAM database) in the various embodiments disclosed above in relation to FIG.
[0085] Upon initialization, the above-mentioned program code instructions are transferred from the non-volatile memory 403 to the volatile memory 401 for execution by the processor 402. The volatile memory 401 also includes registers for storing variables and parameters required for this execution.
[0086] The steps of a method for using an ORAM database, as performed by a third party device 130, include: - by executing a set of program code instructions, which may be stored on a removable (e.g. CD-ROM, DVD-ROM, USB key) or non-separable non-transitory computer-readable carrier medium, which is executed by a reprogrammable computing machine, such as a PC-type device, a DSP (digital signal processor), or a microprocessor; or -By dedicated machines or components such as FPGAs (Field Programmable Gate Arrays), ASICs (Application-Specific Integrated Circuits), or any dedicated hardware components may be implemented equally satisfactorily.
[0087] In other words, the present disclosure is not limited to a purely software-based implementation in the form of computer program instructions, but may also be implemented in the form of hardware, or a combination of hardware and software parts.
Claims
1. A method for using an Oblivious Random-Access Memory (ORAM) database (150db) created by a terminal device (100) on a remote server (150), comprising: a third party device is connected to said terminal device and said remote server through a communication network (110, 120); receiving a request sent by the terminal device through the communication network to cause the third party device to initiate creation of the ORAM database at the remote server (S210); To carry out and in response to receiving the request, the third party device: - initializing the creation of the ORAM database at the remote server by transmitting ORAM database elements to the remote server through the communication network (S220); - generating (S230) metadata (130md) associated with the ORAM database created on the remote server; - transmitting the metadata to the terminal device through the communication network so that the terminal device can use the ORAM database created by the remote server without going through the third-party device (S231); To carry out A method characterized by:
2. The step of initializing the creation of the ORAM database (S220) comprises: - generating (S221) a temporary symmetric encryption key (130tk); - encrypting an initial data block of the ORAM database using the temporary symmetric encryption key (S221); - transmitting the encrypted initial data block as part of the ORAM database element to the remote server through the communications network (S222); The method of claim 1 , comprising:
3. The method of claim 2 , wherein the metadata comprises the temporary symmetric encryption key.
4. In response to transmitting the metadata to the terminal device, the third party device: - deleting the metadata stored on the third-party device (S232); The method of claim 1 , further comprising:
5. The third-party device: After the step of transmitting the metadata to the terminal device, receiving (S270) from the terminal device through the communication network the metadata associated with the ORAM database in encrypted form based on a secret encryption key (100sk) different from the temporary symmetric encryption key (130kt); The method of claim 2 , further comprising:
6. A method for using an Oblivious Random-Access Memory (ORAM) database (150db) created by a terminal device (100) on a remote server (150), comprising: the terminal device is connected to a third-party device and the remote server through a communication network; - sending (S210) through the communication network a request to the third party device to initiate creation of the ORAM database at the remote server; receiving metadata (130md) from the third-party device through the communication network, which enables the terminal device to use the ORAM database created by the remote server without going through the third-party device (S231); A method comprising:
7. 7. The method of claim 6, wherein the metadata comprises a temporary symmetric encryption key (130 kt) used by the third-party device to encrypt an initial block of the ORAM database stored on the remote server.
8. The terminal device - sending an access token to the third party device through the communication network so that the third party device can access the remote server to initialize the creation of the ORAM database at the remote server (S200); The method of claim 6, further comprising:
9. After receiving the metadata from the third-party device, the terminal device: - revoking the access token sent to the third party device so that the third party device can no longer access the ORAM database at the remote server (S250); The method of claim 8, further comprising:
10. The terminal device performs a write (S260) of at least one data block in the ORAM database, the write comprising: - encrypting (S261) said at least one data block of said ORAM database using a secret encryption key (100sk) different from said temporary symmetric encryption key; - transmitting (S262) the encrypted at least one data block to the remote server through the communication network for storage in the ORAM database; - updating said metadata to take into account said transmission of said at least one encrypted data block (S263); The method of claim 7, comprising:
11. The terminal device Execute a step (S280) of reading the at least one encrypted data block of the ORAM database; The reading step (S280) - receiving (S281) from the remote server through the communication network the encrypted said at least one data block of the ORAM database; - the encrypted data block, - the temporary symmetric encryption key (130tk) if the metadata indicates that the encrypted data block is the initial block of the ORAM database encrypted by the third-party device, or the private encryption key (100sk), if the metadata indicates that the encrypted data block is a data block of the ORAM database encrypted by the terminal device; and a step (S282) of decoding the The method of claim 10, comprising:
12. The terminal device - transmitting said metadata in encrypted form based on said private encryption key to said third party device through said communication network (S270); The method of claim 10, further comprising:
13. A computer program product comprising program code instructions for implementing the method according to any one of claims 1 to 12.
14. An apparatus (100d) for using an Oblivious Random-Access Memory (ORAM) database (150db) created by a remote server (150) by a terminal device (100), comprising: receiving a request sent by said terminal device through a communications network to cause a third-party device to initiate creation of said ORAM database at said remote server; a processor (302) or special-purpose computing machine configured to: and the processor or the special purpose computing machine, in response to receiving the request: - initiating creation of the ORAM database at the remote server by transmitting ORAM database elements to the remote server over the communications network; - generating metadata (130md) associated with the ORAM database created on the remote server; - transmitting said metadata to said terminal device through said communication network so that said terminal device can use said ORAM database created on said remote server without going through said third party equipment; It shall be configured as follows: An apparatus (100d) characterized by:
15. An apparatus (130d) for using an Oblivious Random-Access Memory (ORAM) database (150db) created by a remote server (150) by a terminal device (100), comprising: - sending a request to a third party device over a communications network to cause said third party device to initiate creation of said ORAM database at said remote server; - receiving metadata (130md) from the third party device through the communication network, which enables the terminal device to use the ORAM database created on the remote server without going through the third party device; a processor (402) or special-purpose computing machine configured to: An apparatus (130d) characterized by: