Data access mode privacy protection system based on cryptographic algorithm
By using horizontal arrays and fully binary tree storage structures on the server side, real data blocks and location data blocks are stored separately, solving the problem of large bandwidth overhead and security risks of data privacy storage in the existing WoORAM solution, and achieving efficient and secure data privacy storage.
Patent Information
- Application Number
- CN202411539846.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-31
- Publication Date
- 2025-04-08
AI Technical Summary
The existing WoORAM solution has a large bandwidth overhead every logical write operation and poses a security risk when storing data privacy.
A data access mode privacy protection system based on password algorithm is adopted. By using a storage structure of horizontal arrays and a fully binary tree on the server side, real data blocks and location data blocks are stored separately, reducing bandwidth overhead and improving the security of privacy storage.
It significantly reduces the bandwidth overhead during data privacy storage, and improves the privacy protection capability of data access mode, avoiding the problems of large bandwidth overhead and security risks in the prior art.
Smart Images

Figure CN119783143A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of privacy access technology, and in particular to a data access mode privacy protection system based on a cryptographic algorithm. Background Art
[0002] In WoORAM, only the access mode of data write operation is hidden, instead of hiding the access mode of data read and write operation at the same time. Application scenarios with this requirement include: synchronization or backup of cloud storage, hidden volumes in deniable storage, etc.
[0003] The first WoORAM scheme is HiVE-WoORAM proposed by Blass et al. The bandwidth overhead caused by each logical write operation is O(B*log2 N) data block size, which consists of two parts. The first part is the bandwidth overhead of O(B*log2 N) data block size caused by physical read operation, and the second part is the bandwidth overhead of O(B*log N) data block size caused by physical write operation. Then, another WoORAM scheme was proposed, named DetWoORAM scheme. The bandwidth overhead caused by each logical write operation is O(B*log N) data block size, which consists of two parts. The first part is the bandwidth overhead of O(B*log N) data block size caused by physical read operation, and the second part is the bandwidth overhead of 2B data block size caused by physical write operation. In addition, another WoORAM scheme was proved to be unsafe in research work. Due to the existing single-server WoORAM scheme, for each logical write operation, at least logarithmic bandwidth overhead is required, which makes the bandwidth overhead large. Summary of the invention
[0004] The embodiment of the present application provides a data access mode privacy protection system based on a cryptographic algorithm, which can store data in the form of real data block storage and location data storage, greatly reducing the bandwidth overhead when storing data privately.
[0005] A first aspect of an embodiment of the present application provides a data access mode privacy protection system based on a cryptographic algorithm, the system comprising a server and a client, wherein the server comprises a first storage structure and a second storage structure;
[0006] The first storage structure includes a plurality of first data blocks, the first data blocks are used to store data, the second storage structure includes a plurality of second data blocks, the second data blocks are used to store physical storage location data of the first data blocks, and the first data blocks and the second data blocks have the same size;
[0007] The physical storage location data of the data stored in the first data block is the same as the physical storage location data stored in the corresponding second data block;
[0008] The client sends the real data block to the server, and the client does not store the physical storage location data of the real data block in the server;
[0009] The server receives the real data block, stores the real data block in the plurality of first data blocks, and stores the physical storage location data of the real data block in the plurality of second data blocks.
[0010] In a possible implementation, the first storage structure includes a main storage area and a masking area, wherein the main storage area includes N slots, the masking area includes M slots, and each slot is used to store a first data block.
[0011] In a possible implementation, the second storage structure is a binary tree, each node in the binary tree is a storage bucket, and the storage bucket includes Z second data blocks.
[0012] In a possible implementation, the client sends the real data block to the server, including:
[0013] The client encrypts the real data block to obtain an encrypted real data block;
[0014] The client sends the encrypted real data block to the server.
[0015] In this example, the data access mode privacy protection system based on the cryptographic algorithm can store data by using real data block storage and location data storage, which greatly reduces the bandwidth overhead when storing data privately.
[0016] A second aspect of an embodiment of the present application provides a terminal, comprising a processor, an input device, an output device and a memory, wherein the processor, input device, output device and memory are interconnected, wherein the memory is used to store a computer program, the computer program comprises program instructions, and the processor is configured to call the program instructions to execute the step instructions executed by the client in the first aspect of the embodiment of the present application.
[0017] A third aspect of an embodiment of the present application provides a server, comprising a processor, an input device, an output device and a memory, wherein the processor, input device, output device and memory are interconnected, wherein the memory is used to store a computer program, and the computer program includes program instructions, and the processor is configured to call the program instructions to execute the step instructions executed by the server in the first aspect of the embodiment of the present application.
[0018] The fourth aspect of the embodiments of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program for electronic data exchange, wherein the computer program enables a computer to execute part or all of the steps described in the first aspect of the embodiments of the present application.
[0019] A fifth aspect of the embodiments of the present application provides a computer program product, wherein the computer program product includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to cause a computer to execute some or all of the steps described in the first aspect of the embodiments of the present application. The computer program product may be a software installation package. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0021] Figure 1 A schematic diagram of a storage structure of a server is provided for an embodiment of the present application;
[0022] Figure 2 A flowchart of the execution steps of a data access mode privacy protection system based on a cryptographic algorithm is provided for an embodiment of the present application;
[0023] Figure 3 A model schematic diagram of a write operation algorithm in a system is provided for an embodiment of the present application;
[0024] Figure 4 A schematic diagram for comparing server bandwidth overhead is provided for an embodiment of the present application;
[0025] Figure 5 A schematic diagram for comparing client storage overhead is provided for an embodiment of the present application. DETAILED DESCRIPTION
[0026] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0027] The terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish different objects, rather than to describe a specific order. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally includes steps or units that are not listed, or optionally includes other steps or units inherent to these processes, methods, products or devices.
[0028] Reference to "embodiments" in this application means that a particular feature, structure, or characteristic described in conjunction with the embodiments may be included in at least one embodiment of the present application. The appearance of the phrase in various locations in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment that is mutually exclusive with other embodiments. It is explicitly and implicitly understood by those skilled in the art that the embodiments described in this application may be combined with other embodiments.
[0029] In order to better understand the data access mode privacy protection system based on cryptographic algorithm provided in the embodiment of the present application, the data access mode privacy protection system based on cryptographic algorithm (CB-WoORAM) is first introduced below.
[0030] In the CB-WoORAM solution, for each read operation, the user directly looks up the physical address locally, and then the target data block is directly retrieved and retrieved. In CB-WoORAM, the specific symbols and meanings used are shown in Table 1 below:
[0031] Table 1 Symbols and meanings
[0032]
[0033] The storage structure of the data access mode privacy protection system based on cryptographic algorithms is as follows: Figure 1 As shown, specifically:
[0034] In the CB-WoORAM scheme, there are a total of N real data blocks, which are outsourced and stored on the cloud server. Before these data are uploaded to the cloud server, they need to be encrypted by the user locally. Similarly, after they are retrieved from the cloud server, they need to be decrypted by the user locally. Therefore, all data blocks stored on the cloud server exist in the form of ciphertext. In the CB-WoORAM scheme, there are two storage structures on the server side, namely a horizontal array (first storage structure) and a complete binary tree (second storage structure). The data blocks in the horizontal array are data blocks containing data content, while the data blocks in the complete binary tree are location data blocks, which means that the physical location of the data block is the storage content. Each data block containing data content is in the form of (identifier, x; data), and each data block with physical location as content is in the form of i(identifier, path; x), where identifier represents a unique identity number or block number in the data block containing data content or the location data block, path represents the leaf number, data represents the content of the data block, and x is the content of the location data block. This means that the data block marked by the identifier must be at the physical position marked by x in the horizontal array, and the location data block marked by the identifier must be at the path marked by path in the complete binary tree. Regardless of the data blocks storing data or the location data blocks storing physical locations, in the CB-WoORAM scheme they are set to a uniform size to confuse all data blocks with each other. All location data blocks are set to a uniform size of O(log N) bits because the content of each location data block corresponds to a physical address of O(log N) bits. However, the uniform size of all data blocks depends on the specific application environment. In the CB-WoORAM scheme, both virtual data blocks and virtual location data blocks exist. In the CB-WoORAM scheme, the identity numbers of all virtual data or location data blocks are set to the same value to distinguish the data blocks retrieved and retrieved from the cloud server, which will need to be decrypted in the local client. If a data storage block
[0035] If a data block containing content or a location data block of a storage location is virtual, then the rest of the data block is filled with a random bit string. Virtual data blocks are used in the ORAM scheme to confuse all data blocks with each other, so that an honest but curious server cannot distinguish whether any encrypted data block is a real data block or a virtual data block, or even an honest but curious server cannot distinguish whether two encrypted data blocks are the same data block. Therefore, the participation of virtual data blocks is a required part of the access mode of hidden data.
[0036] Generally, client-side stash is deployed in various ORAM solutions. This is a temporary storage used to store data blocks that cannot be written back to the server-side storage. In the CB-WoORAM solution, each data block can be written back to the server-side storage, so there is no need to deploy a temporary storage stash on the client.
[0037] PosMap is a list that records the physical locations of N real data blocks that are outsourced and stored on the cloud server. In the CB-WoORAM solution, the PosMap is completely stored in a binary tree instead of being directly stored on the client. Therefore, in the CB-WoORAM solution, there is no storage overhead for PosMap and stash on the client.
[0038] There is no stash or PosMap on the client, so the CB-WoORAM solution is also a WoORAM without stash, just like in DetWoORAM
[90] However, the information associated with the key used by the pseudo-random function PRF(key,x) needs to be kept secret by the client. In addition, the key used to encrypt the data block on the client also needs to be kept secret on the client. The information associated with the key is small enough to be negligible compared to the size of the data block on the client storage.
[0039] like Figure 1 As shown, the storage structure of the server side consists of two parts, specifically the first storage structure and the second storage structure, one part is a horizontal array (the first storage structure), and the other part is a complete binary tree (the second storage structure). They respectively store data blocks containing data content and location data blocks containing storage physical locations.
[0040] Based on the horizontal array for storing data content. This is a horizontal array for storing data blocks of data content, which is divided into two parts, one is called the main memory area, and the other is called the mask area. The main memory area has N slots, and the mask area has M slots. In the horizontal array, each slot can be used to store a data block. Therefore, in the horizontal array, there are a total of N+M data blocks, such as Figure 1 shown in the upper part of .
[0041] PosMap is a list used to record the physical positions corresponding to N real data blocks outsourced to the cloud storage server. In the horizontal array, there are a total of N+M slots. Therefore, the physical position of each data block storing data content is O(log(N+S))=O(log N) bits, because in the CB-WoORAM scheme, the size of M is set to O(N). The following paragraphs will discuss how large the value of M can be set to improve the efficiency of the CB-WoORAM scheme. Therefore, the size of PosMap is O(N*log N) bits. In the CB-WoORAM scheme, the PosMap composed of position data blocks is stored in a complete binary tree, such as Figure 1 In a binary tree, there are L+1 levels in total, which are labeled 0, 1, 2, ..., L. The root node is at level 0, and all leaf nodes are at level L. The height of a complete binary tree is theoretically However, in fact, the height of the binary tree is And to simplify the description, let L = log N. Therefore, there are exactly N leaf nodes and N-1 non-leaf nodes in the binary tree.
[0042] In a binary tree based on storing data blocks with physical locations as content, each node represents a bucket, and each bucket contains Z location data blocks. In our scheme, Z is set to a value that is independent of N and is a constant value. Several real location data blocks may exist in a bucket, and the remaining space in the bucket is filled with virtual location data blocks.
[0043] Since the complete binary tree contains O(N) position data blocks, and the size of each position data block is O(logN) bits, the size of the complete binary tree based on the position data block is O(N*log N) bits. In addition, the number of data blocks storing data content in the horizontal array is N+M, so the size of the server-side storage is N+M data blocks storing data content, plus O(N*log N) bits, where the size of M is set to O(N).
[0044] In the CB-WoORAM scheme, all data blocks storing data content are stored in the main memory area. Each data block is assigned to a random uniform physical location x, and x∈[0,N), which means that the data block is stored in the slot marked as x in the horizontal array. It is worth noting that a slot belonging to the set [0,N) is in the main memory area, while a slot belonging to the set [N,N+S) is in the masked area. In the CB-WoORAM scheme, each slot stores a data block with data content.
[0045] In the binary tree based on location data blocks, the physical address of each data block with data content in the horizontal array is stored. The leaf number of this complete binary tree will not be dynamic, but static. It is calculated by the user on the local client. Therefore, the use of iterative location graphs or ODS-based location graphs is avoided in the CB-WoORAM scheme. For example: the physical address of data block a with data content is x, and the data block (a, x; data) with data content is stored in the main memory area in the horizontal array. Afterwards, x is regarded as the content of location data block a, and the physical address of the location data block is calculated by the user on the local client using a pseudo-random function PRF with a key Key, that is, p = PRF (Key, a), where Key is secretly stored by the client locally, so the location data block (a, p; x) is stored on the path p in the binary tree.
[0046] At the beginning, since the locations where all data blocks with data content are stored are obtained according to the logical addresses of the data blocks, the complete binary tree based on the location data blocks is set to empty. In this section, the detailed execution process of the CB-WoORAM scheme is introduced as follows. Generally, a fully functional ORAM has a Retrieval algorithm and an Eviction algorithm to simultaneously hide the user's access mode for data read operations and the access mode for data write operations. However, in the WoORAM scheme, only the user's access mode for data write operations needs to be hidden. For the ORAM scheme in a client-server environment, the access mode for data read / write operations means the interaction process between the client and the server corresponding to the logical read operation or write operation. Therefore, only the access mode corresponding to the logical write operation in the interaction process between the client and the server is considered to be hidden, while the access mode corresponding to the logical read operation in the interaction process between the client and the server does not need to be considered to be hidden. The CB-WoORAM scheme is mainly composed of two algorithms, namely the Write algorithm and the Eviction algorithm, and the detailed execution steps of the CB-WoORAM algorithm are as follows. Figure 2 As shown in Algorithm 1.
[0047] Figure 3As shown in Algorithm 2 in . The input of this algorithm is the identity number a of the requested data block and its new content data*, plus the total number of write operations counter when the WoORAM algorithm is executed. The purpose of adding counter is to confuse the access pattern of the write operation of the requested data block. The algorithm is to write a requested data block with new content data* to the horizontal array. Since the content of the requested data block is updated to data*, the data block does not need to be retrieved first and then operated, but is directly written back to a new physical location in the mask area of the horizontal array. In this process, multiple data blocks with data content with the same identity number may appear in the horizontal array at the same time. Even if only in the mask area of the horizontal array, multiple data blocks with data content with the same identity number may exist at the same time. This is because for each logical write operation access, the requested data block is first written back to the mask area of the horizontal array. In detail, a data block containing data content has been written back to the mask area of the horizontal array before. If the data block containing data content has not been written back to the main memory area from the mask area of the horizontal array, and at this moment the data block containing data content is again subjected to the write operation algorithm, then at this moment there will be two data blocks containing data content with the same identity number in the mask area of the horizontal array.
[0048] For example, Figure 3 As shown, data block a containing new content data* is the requested data block to be written back to the horizontal array. At this moment, the number of write operations modulo M is counter, so data block a containing data content will be written back to the slot marked as N+counter in the horizontal array. It is worth noting that the slot marked as N+counter is in the masked area of the horizontal array. Afterwards, the location map of data block a containing data content needs to be updated, that is, the physical location of data block a containing data content needs to be updated. Therefore, the physical location of data block a containing data content needs to be retrieved and updated to N+counter.
[0049] However, in the CB-WoORAM scheme, the physical locations of all data blocks containing data content are stored in a binary tree. That is, the physical locations of all data blocks containing data content are regarded as the contents of the corresponding position data blocks in the complete binary tree. The two data blocks have the same identity number or block number, but one contains data content and the other contains the corresponding physical location. In order to obtain the position data block a, its corresponding leaf number will need to be calculated on the local client, that is, p = PRF (Key, a), where Key is secretly saved by the local client. Afterwards, the corresponding path marked as p is retrieved and retrieved, and all data blocks on the path are stored on the local client. The corresponding path consists of all data blocks in the bucket set from the root bucket to the leaf bucket marked as p.
[0050] After the location data block a is retrieved, the physical location x of the data block a containing the data content is replaced by N+counter. Finally, the data block (a, N+counter, data*) containing the data content and the location data block (a, N+counter, data*) containing the physical location are written back to the mask area in the horizontal array and the corresponding path p in the complete binary tree respectively.
[0051] In detail, as shown in Algorithm 1, steps 1 to 8 are the Write algorithm. Step 1 is to obtain the leaf number corresponding to the requested data block by calculating the pseudo-random function PRF with the key key. Step 2 is to obtain the position data block by searching and retrieving the corresponding path in the binary tree. Step 3 is to obtain the physical position corresponding to the data block containing the data content from the retrieved and retrieved position data block. Step 4 is to obtain the data block containing the data content according to the above physical position. Step 5 is to update the data content corresponding to the data block to data*. Step 6 is to update the physical position corresponding to the data block containing the data content to N+counter. Step 7 is to write the data block containing the data content (a, x; data) back to the mask area of the horizontal array. Step 8 is to write the position data block containing the physical position (a, p; x) back to the corresponding path p in the binary tree.
[0052] In this section, the Eviction algorithm is proposed as an offline work for future secure access. After each Write algorithm is executed, the requested data block is written back to the mask area of the horizontal array. If there is no Eviction process, the data block with data content previously written back to the mask area may be overwritten by the newly arrived data block with data content. Therefore, after each Write algorithm is executed, all data blocks with data content will need to be transferred from the mask area of the horizontal array to the main memory area. That is, the data blocks with data content will need to be retrieved from the mask area of the horizontal array and then written back to the main memory area of the horizontal array. If for each Eviction process, all N real data blocks outsourced to the cloud server for storage are transferred from the mask area of the horizontal array to the main memory area, then this is a trivial approach. In fact, for each Eviction algorithm execution process, only N / M real data blocks with data content will need to be transferred from the mask area of the horizontal array to the main memory area therein.
[0053] So, which N / M real data blocks containing data content will be selected to execute the eviction process? In order to avoid the unfortunate occurrence of the above-mentioned overwriting, after each M Write algorithm is executed, the N real data blocks outsourced to the cloud storage must be evicted from the masked area in the horizontal array to the main memory area. It is worth noting that N / M here is not necessarily an integer, but can also be a fraction, that is, N is not necessarily set to a value greater than M. In addition, in order to confuse the access mode of data write operations, each time the Eviction algorithm is executed, the selected N / M real data blocks containing data content should have no association with the identity number of the requested data block. Therefore, the selected N / M real data blocks containing data content are generated in the following way, and their identity numbers are directly associated only with a count value counter, where counter is the total number of write operations performed in the CB-WoORAM scheme.
[0054] The selected N / M real data blocks containing data content will be retrieved and retrieved from the masked area of the horizontal array and stored in the local client, after which these data blocks will be decrypted and re-encrypted. Finally, these data blocks will be transferred to the main memory area of the horizontal array. In this process, the physical positions of these data blocks are changed and need to be updated. Therefore, the leaf numbers corresponding to the selected N / M real data blocks containing data content will be calculated by the pseudo-random function PRF with the key key. After that, the N / M corresponding paths on the binary tree will be retrieved and retrieved, thereby obtaining the corresponding N / M position data blocks. From the obtained N / M position data blocks, the physical positions of the N / M corresponding data blocks containing data content can be obtained, so the N / M data blocks containing data content can be successfully retrieved and retrieved. Finally, the N / M data blocks containing data content and the position data blocks containing physical positions will be written back to the main memory area of the horizontal array and the binary tree respectively.
[0055] The detailed execution steps are shown in Algorithm 1. Steps 9 to 19 are the Eviction process. Steps 9 to 10 are to select N / M data blocks containing data content associated with counter, where counter is the total number of times the Write algorithm is executed. Step 11 is to select a data block belonging to a set consisting of N / M data blocks containing data content. Step 12 is to calculate the leaf number corresponding to the selected data block by using a pseudo-random function PRF with a key key. Step 13 is to obtain the corresponding position data block containing the physical position by retrieving and retrieving the path corresponding to the leaf number calculated above in the binary tree. Step 14 is to obtain the physical position corresponding to the data block containing data content from the position data block obtained above. Step 15 is to obtain the target data block containing data content according to the physical position obtained above. Step 16 is to update the physical position to the identity number or block number of the target data block. Step 17 is to write the data block (a′, x′; data′) back to the mask area in the horizontal array. Step 18 is to write back the position data block (a′, p′; x′) to the path p in the binary tree. Step 19 is the end of the selection. Step 20 is an increment factor, and step 21 is the end of the CB-WoORAM scheme algorithm.
[0056] The following introduces a comparative analysis of the performance of this application and the existing WoORAM solution.
[0057] The main aspects are as follows: bandwidth overhead, number of communication rounds, and client storage overhead. In the comparison process, the bandwidth overhead only considers the bandwidth overhead caused by the user's logical write operation on the data during the remote access process, and does not need to consider the bandwidth overhead caused by the user's logical read operation on the data during the remote access process, because in the WoORAM solution, the user's logical read operation on the remote access of data is unnecessary. In our comparison, the Path ORAM solution
[32] It is used as a comparison object for the existing WoORAM scheme because it is one of the most efficient fully functional ORAM schemes. As shown in Table 2, R represents the hiding of the user's access mode of the data logical read operation during the remote access process, and W represents the hiding of the user's access mode of the data logical write operation during the remote access process. Therefore, the security of the WoORAM scheme is marked as "W-only", however, the Path ORAM scheme is a full-featured ORAM that hides the user's access mode of both data read operations and data write operations, so it is marked as "R&W". Finally, the CB-WoORAM scheme will be compared with the previously existing single-server WoORAM scheme, and the comparison results are shown in Table 2, where the bandwidth overhead and the client storage overhead are both expressed in units of data blocks. In Table 2, it is assumed that the uniform size of the data block B = O(log 2 N)-bit, this is the same as the DetWoORAM solution
[90] Same assumptions as in the performance comparison table.
[0058] 1. Bandwidth Overhead
[0059] Bandwidth overhead refers to the total amount of data transferred between the client and the server in the CB-WoORAM scheme. During the Write algorithm of the CB-WoORAM scheme, only the requested data blocks are transferred between the client and the server, plus the O(log N) location data blocks in a target path on the complete binary tree that need to be transferred between the client and the server. Therefore, the bandwidth overhead caused by the Write algorithm is O(1) data block size, because when the uniform size B of the data blocks containing the data content is set to O(log 2 N) bits, the size of the O(log N) position data block is actually the size of the O(1) data block containing data content. The uniform size of the data block here is set as in the DetWoORAM solution.
[90] It is worth noting that in the CB-WoORAM scheme, the size of each location data block is O(log N) bits. During the Eviction algorithm of the CB-WoORAM scheme, only the selected N / M data blocks are transferred between the client and the server, plus the corresponding (N / M)*O(logN)=O(log N) location data blocks on the N / M paths in the complete binary tree, which need to be transferred between the client and the server. Therefore, the bandwidth overhead caused by the Eviction algorithm is still O(1) data block size. Therefore, the total number of data blocks containing data content transferred between the client and the server is of constant order. That is, the bandwidth overhead of the CB-WoORAM scheme is O(B) bits.
[0060] Table 2 Performance comparison of existing single-server WoORAM solutions
[0061]
[0062]
[0063] 2. Communication Round Overhead
[0064] The communication round number refers to the number of interactions between the client and the server. During the execution of the Write algorithm of the CB-WoORAM scheme, the interaction between the client and the server occurs once for the requested data block and once for the target location data block. During the execution of the Eviction algorithm of the CB-WoORAM scheme, the interaction between the client and the server occurs. Even if the number of data blocks containing data content transferred between the client and the server is N / M, it is still only one interaction for the selected N / M data blocks containing data content and one interaction for the N / M target location data blocks. This is because the special location graph technology with a two-layer storage structure proposed by us is used in the CB-WoORAM scheme to avoid the complex interaction process. Therefore, the number of communication interaction rounds between the client and the server in our scheme is of constant order.
[0065] 3. Client Storage Overhead
[0066] Client storage overhead refers to the total amount of data in the client storage at most during the execution of the CB-WoORAM solution. During the execution of the Write algorithm of the CB-WoORAM solution, O(log N) position data blocks in a path on the binary tree will need to be retrieved and retrieved to the local client storage space, which is the size of O(1) data blocks containing data content. During the execution of the Eviction algorithm of the CB-WoORAM solution, N / M selected data blocks containing data content and the corresponding (N / M)*O(log N)=O(logN) position data blocks in N / M paths on the complete binary tree are retrieved and retrieved to the client storage space. These data blocks will not stay in the local client waiting for the next access and may be written back to the server storage again as in the previous ORAM solution, but will be immediately written back to the horizontal array and the binary tree on the cloud server respectively. Therefore, during the entire execution of the CB-WoORAM solution, the total amount of data stored in the client at most is N / M = O(1) data blocks containing data content, plus O(log N) location data blocks, that is, O(1) data blocks containing data content. Therefore, the client storage overhead size is O(B) bits.
[0067] In this section, we first describe the detailed implementation and environment configuration process. After that, the common evaluation benchmarks and methods for all WoORAM schemes are given. In order to give the actual performance of our newly designed CB-WoORAM scheme, we implemented a prototype with PosMap stored on the client. It is worth noting that in addition to all single-server WoORAMs being experimentally evaluated and compared with our CB-WoORAM scheme, the full-featured single-server Path ORAM is also experimentally evaluated and compared with it. Because Path ORAM is a full-featured ORAM and one of the most efficient ORAMs. Finally, we give a comparison of the experimental results of the CB-WoORAM scheme with all the above schemes under various parameter environments.
[0068] 4. Implementation and Environment Configuration
[0069] The CB-WoORAM scheme and the comparison object are implemented using JAVA. We use AES-128 in ECB mode to implement randomized encryption of each data block so that each encrypted data block is indistinguishable from each other, whether the data block is a real data block or a virtual data block. Randomized encryption is an encryption method in which a random string is used when the plaintext is encrypted. For example: there are two ciphertexts C1 and C2, C1 = Enc(m,r1), C2 = Enc(m,r2), where m is a plaintext, and r1 and r2 are two different random strings. The two ciphertexts are indistinguishable, even if they come from the same plaintext m. Our experiments are conducted in a client and server environment. The client is a quad-core Intel,i5-4590 processor and 16GB DDR3 memory, and it is also equipped with a single SATA hard disk with a rotation speed of 7200 rpm. The server is equipped with a 4-core Intel,i5-4590 processor and 12GB DDR3 memory, and it also has a single SATA hard disk with a rotation speed of 7200. The network bandwidth between the client and the server is 72Mbps.
[0070] In our evaluation, how large should the uniform value of the data block size B be set to? In the binary tree-based ORAM, PosMap is directly stored on the client in both the client and server environments, and the size of B is set to a suitable value to obtain a better performance. The reasons are as follows: First, when B = O(log N) bits, the size of the outsourced data is B*N = O(N*log N) bits. According to the analysis in the above text, PosMap = N*log N bits. Therefore, the order of magnitude of PosMap is the same as that of the database. Obviously, in this case, when B is set to a very small value, such as O(log N) bits, the fact that PosMap is stored on the client is actually not negligible. Therefore, in both the client and server environments, B cannot be set to a very small value. Secondly, the path size in a binary tree is Z*B*(H+1) bits. When the value of B increases, the path will increase linearly with it, and the size of the bandwidth overhead is linearly positively correlated with the path size. Therefore, the bandwidth overhead will also increase linearly with the increase of B. When B increases to 2 times its original size, its bandwidth overhead is approximately twice its original size. This is shown in S 3 This has also been verified in the ORAM experiment. Therefore, in the client and server environment, B cannot be set to an excessively large value.
[0071] V. Evaluation Criteria and Methods
[0072] Evaluation Benchmark. As in the previous evaluations in HiVE-WoORAM and DetWoORAM, these schemes will be compared based on the following principles.
[0073] Bandwidth overhead: refers to the total amount of data transferred between the client and the server in order to retrieve a requested data block.
[0074] Temporary storage overhead: refers to the total amount of data stored on the client. These data blocks are temporary because after each access, all retrieved data blocks will be written back to the server from the local.
[0075] Evaluation Methodology. The values of all compared schemes are calculated according to the specific formulas and constants publicly documented in their original works in their respective works. We make some assumptions as follows: There is an additional encryption or MAC overhead of about 40 bytes in the encrypted data block. Because randomized encryption is used in each of all ORAM schemes. In each stash slot, there is an additional state header of about 20 bytes, which contains location information and some state information. And a 4-byte word is used to indicate the type of ORAM request. During the initialization process, all stashes are filled with random strings, and they are directly uploaded to the cloud storage server. In all schemes in this chapter, the data block size B is set to a uniform fixed value, that is, 4Kbyte=4096 bytes.
[0076] The specific values of bandwidth overhead and client storage overhead in each solution are analyzed as follows. N is the total number of outdoor packet data blocks, that is, the total number of real data blocks in all ORAM solutions. In the Path ORAM solution, the bandwidth overhead is 2*B*log 2 N bits, the client storage overhead is 2*B*log N bits. In the HiVE-WoORAM solution, k=3, t=10Mbyte, so the bandwidth overhead of this solution is B*(log N+log 2 N) bits, and the client storage overhead is B*log N. In the DetWoORAM scheme, we abide by the scheme's own assumptions and obtain a bandwidth overhead of B*log N+2B bits, and a client storage overhead of B+M / N data blocks containing location content = 2B bits. According to the values published in their performance comparison, M / N = 1. In our CB-WoORAM scheme, the bandwidth overhead caused by the Write algorithm is 3B bits, and the client storage overhead is B bits, because when the uniform size B of the data blocks containing data content is set to log 2When the bandwidth is N bits, first log N location data blocks are retrieved, and their size is B bits. The uniform size of the data blocks is set as in the DetWoORAM scheme. It is worth noting that in our scheme, the size of each location data block is log N-bit. During the Eviction algorithm of our scheme, only the selected N / M data blocks are transferred between the client and the server, plus the corresponding 2*(N / M)*log N=2log N data blocks containing location content on the N / M paths in the complete binary tree, which need to be transferred between the client and the server. Therefore, the bandwidth overhead caused by the Eviction algorithm is 2B bits. So the bandwidth overhead of our scheme is 3B bits.
[0077] 6. Experimental Results
[0078] In this section, based on the above evaluation criteria and evaluation methods, a series of experimental results will be presented as follows. To simplify the description in the following figures, following their own scheme naming, the WoORAM scheme proposed by Blass et al. is called HIVE-WoORAM, the WoORAM scheme proposed by Roche et al. is called DetWoORAM, and the scheme proposed by Stefanov et al. is called Path ORAM. Figure 4 and Figure 5 Comparison results of Path ORAM, one of the most efficient full-featured ORAMs, and existing single-server WoORAM solutions, including our CB-WoORAM solution, in terms of bandwidth overhead and client storage overhead.
[0079] In terms of bandwidth overhead, the experimental comparison results of existing single-server WoORAM solutions are as follows: Figure 4 As shown in Figure 2. Bandwidth overhead refers to the total amount of data transferred between the client and the server in order to retrieve a requested data block. When log N = 18, the size of the outsourced data is N*B = 2 18 *4Kbyte=1GByte. In our comparison process, the size of the outsourced data starts at 1GByte, that is, from log N=18 to log N=28. At this time, the size of the outsourced data is N*B=2 28 *4Kbyte=1TByte. Figure 4As shown in the figure, it is a comparison result of the bandwidth overhead of the existing single-server WoORAM schemes. It can be concluded from the figure that the CB-WoORAM scheme and the DetWoORAM scheme change less with the uniform increase of log N, while the HiVE-WoORAM and Path ORAM change more with the uniform increase of log N, and the CB-WoORAM scheme is slightly better than the DetWoORAM scheme. However, in fact, the CB-WoORAM scheme is in the order of constant in this aspect, while the DetWoORAM scheme is in the order of logarithm in this aspect. Therefore, the CB-WoORAM scheme has a significant advantage in bandwidth overhead compared with similar WoORAM schemes.
[0080] In terms of client storage overhead, the experimental comparison results of existing single-server WoORAM solutions are as follows: Figure 5 As shown. The experimental environment and bandwidth overhead at this time are the same as those when comparing log N, both of which are from 18:00 to 28:00. At this time, the amount of outsourced data starts from 1GByte and ends at 1TByte. Client storage overhead refers to the amount of data stored on the client. These data blocks are temporary because after each access, all retrieved data blocks will be written back to the server-side storage from the local. It can be seen from the figure that the CB-WoORAM scheme and the DetWoORAM scheme change less with the uniform increase of log N, while HiVE-WoORAM and Path ORAM change more with the uniform increase of log N. Although the CB-WoORAM scheme has the same order of magnitude as the most advanced DetWoORAM scheme in terms of client storage overhead, the CB-WoORAM scheme is slightly better than the most advanced DetWoORAM scheme in the above conditions.
[0081] In a specific implementation, a data access mode privacy protection system based on a cryptographic algorithm includes a server and a client, wherein the server includes a first storage structure and a second storage structure;
[0082] The first storage structure includes a plurality of first data blocks, the first data blocks are used to store data, the second storage structure includes a plurality of second data blocks, the second data blocks are used to store physical storage location data of the first data blocks, and the first data blocks and the second data blocks have the same size;
[0083] The physical storage location data of the data stored in the first data block is the same as the physical storage location data stored in the corresponding second data block;
[0084] The client sends the real data block to the server, and the client does not store the physical storage location data of the real data block in the server;
[0085] The server receives the real data block, stores the real data block in the plurality of first data blocks, and stores the physical storage location data of the real data block in the plurality of second data blocks.
[0086] In a possible implementation, the first storage structure includes a main storage area and a masking area, wherein the main storage area includes N slots, the masking area includes M slots, and each slot is used to store a first data block.
[0087] In a possible implementation, the second storage structure is a binary tree, each node in the binary tree is a storage bucket, and the storage bucket includes Z second data blocks.
[0088] In a possible implementation, the client sends the real data block to the server, including:
[0089] The client encrypts the real data block to obtain an encrypted real data block;
[0090] The client sends the encrypted real data block to the server.
[0091] In this example, the data access mode privacy protection system based on the cryptographic algorithm can store data by using real data block storage and location data storage, which greatly reduces the bandwidth overhead when storing data privately.
[0092] A second aspect of an embodiment of the present application provides a terminal, comprising a processor, an input device, an output device and a memory, wherein the processor, input device, output device and memory are interconnected, wherein the memory is used to store a computer program, the computer program comprises program instructions, and the processor is configured to call the program instructions to execute the step instructions executed by the client in the embodiment of the present application.
[0093] A third aspect of an embodiment of the present application provides a server, comprising a processor, an input device, an output device and a memory, wherein the processor, input device, output device and memory are interconnected, wherein the memory is used to store a computer program, the computer program comprises program instructions, and the processor is configured to call the program instructions and execute the step instructions executed by the server in the embodiment of the present application.
[0094] An embodiment of the present application also provides a computer storage medium, wherein the computer storage medium stores a computer program for electronic data exchange, and the computer program enables a computer to execute part or all of the steps of the method executed by any server or client as recorded in the above method embodiments.
[0095] An embodiment of the present application also provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program, and the computer program enables a computer to execute part or all of the steps of the method executed by any server or client as recorded in the above method embodiments.
[0096] It should be noted that, for the aforementioned method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the described order of actions, because according to the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.
[0097] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0098] In the several embodiments provided in the present application, it should be understood that the disclosed device can be implemented in other ways. For example, the device embodiments described above are only schematic, such as the division of the units, which is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the device or unit can be electrical or other forms.
[0099] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0100] In addition, the functional units in the various embodiments of the application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated units may be implemented in the form of hardware or in the form of software program modules.
[0101] If the integrated unit is implemented in the form of a software program module and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a memory, including a number of instructions to enable a computer device (which can be a personal computer, server or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned memory includes: U disk, read-only memory (ROM), random access memory (RAM), mobile hard disk, disk or optical disk and other media that can store program codes.
[0102] A person of ordinary skill in the art can understand that all or part of the steps in the various methods of the above embodiments can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable memory, which can include: a flash drive, a read-only memory, a random access memory, a magnetic disk or an optical disk, etc.
[0103] The embodiments of the present application are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of the present application. At the same time, for general technical personnel in this field, according to the idea of the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.
Claims
1. A data access mode privacy protection system based on cryptographic algorithm, characterized in that: The system includes a server and a client, wherein the server includes a first storage structure and a second storage structure; The first storage structure includes a plurality of first data blocks, the first data blocks are used to store data, the second storage structure includes a plurality of second data blocks, the second data blocks are used to store physical storage location data of the first data blocks, and the first data blocks and the second data blocks have the same size; The physical storage location data of the data stored in the first data block is the same as the physical storage location data stored in the corresponding second data block; The client sends the real data block to the server, and the client does not store the physical storage location data of the real data block in the server; The server receives the real data block, stores the real data block in the plurality of first data blocks, and stores the physical storage location data of the real data block in the plurality of second data blocks.
2. The data access mode privacy protection system based on cryptographic algorithm according to claim 1 is characterized in that: The first storage structure includes a main storage area and a masking area, wherein the main storage area includes N slots, the masking area includes M slots, and each slot is used to store a first data block.
3. The data access mode privacy protection system based on cryptographic algorithm according to claim 2 is characterized in that: The second storage structure is a binary tree, each node in the binary tree is a storage bucket, and the storage bucket includes Z second data blocks.
4. The data access mode privacy protection system based on cryptographic algorithm according to claim 2 is characterized in that: The client sends the real data block to the server, including: The client encrypts the real data block to obtain an encrypted real data block; The client sends the encrypted real data block to the server.
5. A terminal, characterized in that: The invention comprises a processor, an input device, an output device and a memory, wherein the processor, the input device, the output device and the memory are interconnected, wherein the memory is used to store a computer program, the computer program comprises program instructions, and the processor is configured to call the program instructions to execute the method executed by the client as described in any one of claims 1 to 4.
6. A server, characterized in that: The method comprises a processor, an input device, an output device and a memory, wherein the processor, the input device, the output device and the memory are interconnected, wherein the memory is used to store a computer program, the computer program comprises program instructions, and the processor is configured to call the program instructions to execute the method executed by the server as described in any one of claims 1 to 4.