A dynamic searchable encryption method for massive high-dimensional medical data
By building attribute hierarchical trees and index trees in massive high-dimensional medical data, generating encrypted indexes and performing segmentation processing, the problem of efficient and dynamic multi-keyword accurate search in massive high-dimensional medical data in the existing technology is solved, and efficient and dynamic searchable encryption and data updates are achieved.
Patent Information
- Application Number
- CN202211062637.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-01
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2042-09-01
AI Technical Summary
Existing searchable encryption technologies are difficult to achieve efficient and dynamic multi-keyword accurate search in massive high-dimensional medical data, especially in supporting scope search and subset query, where there are problems of large computing overhead and uncertain results.
The dynamic searchable encryption method is adopted, and the attribute hierarchical tree and index tree are constructed, index vectors are generated and segmented, and an encrypted index tree is established, which supports accurate search of multiple keywords based on attribute ranges and realizes dynamic update of data.
It realizes efficient and dynamic searchable encryption in massive high-dimensional medical data, supports multi-keyword connections and attribute range query with complex structures, improves search efficiency, and reduces computing and communication overhead.
Smart Images

Figure CN115422432B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of data encryption query, and in particular to a dynamic searchable encryption method for massive high-dimensional medical data. Background Art
[0002] In recent years, with the development of medical informatization, many paper medical records have been converted into electronic medical records (EMR), resulting in a large amount of electronic medical record data. For each medical center, how to achieve safe and effective management, storage and retrieval of massive EMRs has become an urgent problem to be solved. In order to ensure the security of data, an important measure is to encrypt and store electronic medical record data, and then search and query the encrypted electronic medical record data. Many existing keyword-based search technologies are widely used in plaintext data, but cannot be directly used for ciphertext data. Searchable encryption technology provides a method for keyword retrieval on ciphertext.
[0003] Searchable encryption technology is a solution that allows users to search and query encrypted data. Currently, most searchable encryption solutions that support multiple keywords only support simple keyword equality queries, and multiple keyword queries that support keyword range queries and subset queries are generally asymmetric searchable encryption based on complex algebraic structures, which have high computational overhead. In addition, another type of multi-keyword searchable encryption solution is aimed at file sorting search, which returns results with uncertain sorting. None of the above searchable encryption solutions are applicable to EMR datasets.
[0004] Electronic medical records have the characteristics of large data volume, multiple attributes, and fast update. At the same time, electronic medical records are personal sensitive information and are usually stored in encrypted form. Therefore, searching encrypted electronic medical records requires accurate multi-keyword and range searches while returning deterministic results, which has become a problem that needs to be solved. Summary of the invention
[0005] In order to perform efficient and dynamic searchable encryption in massive high-dimensional encrypted electronic medical record data, the present invention provides a dynamic searchable encryption method for massive high-dimensional medical data. It realizes multi-keyword precise search based on attribute range, realizes nonlinear search in search efficiency for massive medical data, and can realize dynamic update of encrypted data in searchable encrypted retrieval.
[0006] A dynamic searchable encryption method for massive high-dimensional medical data, characterized by comprising the following steps:
[0007] S1. Medical center electronic medical record data set D = {D1, D2, ..., D N} to encrypt and obtain the ciphertext data, N represents the total number of electronic medical records, D n represents the nth electronic medical record; the medical center extracts all attribute values in the electronic medical record dataset D to construct an attribute value set W = {W1, W2, ..., W R}, R represents the total number of attribute types, W r Represents the attribute value set of the rth attribute type;
[0008] S2. The medical center constructs corresponding attribute hierarchical trees for multiple attributes of electronic medical records, and uses attribute hierarchical trees and attribute value sets to define the electronic medical records D n Generate index vector I n ;
[0009] S3. Medical Center uses segmentation vector parameters to process electronic medical records D n The index vector I n , get electronic medical records D n Multiple index subvectors of ;
[0010] S4. The medical center constructs an index tree based on the index subvectors of the electronic medical record dataset D and assigns a subkey to each layer of the index tree;
[0011] S5. The medical center encrypts each layer of the index tree according to the sub-secret key to obtain an encrypted index tree, and then uploads the ciphertext data and the encrypted index tree to the medical cloud server;
[0012] S6. The data user initiates a search query request to the medical center, and the medical center processes the search query request, generates a search trap, and feeds it back to the data user;
[0013] S7. The data user initiates a matching request to the medical cloud server and sends the search trapdoor. The medical cloud server performs matching in the encrypted index tree according to the search trapdoor, and the matching electronic medical record ciphertext is fed back to the data user;
[0014] S8. The medical center dynamically updates the data in the medical cloud server; when the medical center adds an electronic medical record, it uploads the ciphertext data of the electronic medical record to be added, as well as its corresponding encrypted index, search trap and ID information to the medical cloud server. The medical cloud server searches the encrypted index tree according to the search trap to find the largest attribute matching node, and adds the encrypted search and corresponding ID information of the electronic medical record to be added to the attribute matching node according to the index tree generation rules; when the medical center deletes an electronic medical record, it uploads the search trap corresponding to the attribute value of the electronic medical record to be deleted to the medical cloud server. The medical cloud server performs matching retrieval on the encrypted index tree according to the search trap, and deletes the electronic medical record corresponding to the matching leaf node and the ID of the leaf node on the index tree.
[0015] Furthermore, the process of constructing the attribute hierarchical tree includes:
[0016] S11. An electronic medical record represents an attribute record of a patient. An attribute record includes multiple attributes, each of which corresponds to an attribute value. According to the attribute value, the multiple attributes are divided into two categories: numerical attributes and non-numerical attributes.
[0017] S12. For a numerical attribute class: determine the maximum value range of the attribute value of the attribute, and use the maximum value range as the root node; divide the maximum value range according to the attribute value range and attribute logic to obtain multiple sub-ranges, and each sub-range is used as a child node; divide each child node in the same way to obtain multiple new child nodes, and then continue to divide until a single attribute value is divided, and use the single attribute value as a leaf node to obtain an attribute hierarchical tree;
[0018] S13. For non-numeric attribute classes: determine the semantics of the attribute value, use the semantic inclusion relationship to define the value range, and select the maximum semantics as the root node; divide the layers according to the semantic inclusion relationship and the semantic parallel relationship to obtain the attribute hierarchical tree.
[0019] Furthermore, a vector representation is constructed for each path of the attribute hierarchical tree, including:
[0020] Assign a vector to each node of the attribute hierarchy tree, including the root node, child node and leaf node; when a node is located at the jth node of the bth layer of the attribute hierarchy tree b bit, then it is represented by where j b ∈J b , J b represents the total number of nodes in the bth layer, b = {1, 2, ..., B}, B represents the total number of layers in the attribute hierarchical tree;
[0021] If the node There are K child nodes in the bth layer, and the node Is a node The kth child node of Allocate K-dimensional vector And the K-dimensional vector The value of the kth dimension of is 1, and the values of the remaining dimensions are 0;
[0022] Create a corresponding path for each attribute value The nodes in each path are represented by corresponding vectors, and all vectors in each path are combined to obtain the vector representation of each path. Further, the process of constructing the index tree is as follows:
[0023] S21. Construct a V+1-layer index tree, take an index vector of an electronic medical record, and divide the index vector equally using a partitioning vector parameter to obtain V index sub-vectors in sequential order;
[0024] S22. Get the first index sub-vector of the index vector, start searching from the root node Root of the index tree, and determine whether there is a child node in the first layer of the index tree with the same value as the first index sub-vector. If yes, proceed to step S23. Otherwise, add a child node in the first layer, the value of the child node is the same as the value of the first index sub-vector, and then proceed to step S23.
[0025] S23. Enter the v={2,3,...,V+1}th layer of the index tree, determine whether there is a child node at the vth layer of the index tree with the same value as the vth index sub-vector, if yes, proceed to step S24, otherwise add a child node at the vth layer, the value of the child node is the same as the value of the vth index sub-vector, and then proceed to step S24;
[0026] S24. Determine whether the current index sub-vector is the last index sub-vector of the index vector. If so, the index vector is added, and the ID information of the electronic medical record corresponding to the index vector is added to the leaf node corresponding to the current index sub-vector. Otherwise, return to S23.
[0027] S24. Repeat steps S21-S24, add the index vectors of all electronic medical records, and obtain an index tree.
[0028] Furthermore, we start from the root node of the index tree and perform a hierarchical traversal. The sub-keys of each layer are represented as SK v ={S v ,M v,1 ,M v,2},S v The node partition identification matrix for the vth layer is an L×1 dimensional 0-1 matrix, where L is the vector dimension of the child nodes at each layer of the index tree; M v,1is the L×L first reversible matrix of the vth layer, M v,2 is the L×L dimensional second reversible matrix of the vth layer. The medical center uses the sub-key SK v The child nodes of the vth layer of the index tree are encrypted one by one to generate the corresponding encrypted index. The process is as follows:
[0029] S31. index the i-th child node b at the v-th level of the tree v,i Multiply by a random number ε v,i Get the new vector b v ' ,i ;
[0030] S32. For the new vector b v ' ,i Perform P partitioning and get and If S v [i]=0, then If S v [i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree;
[0031] S33. Generate the i-th child node b of the v-th layer of the index tree according to the result of S32 v,i The encrypted index of
[0032] Furthermore, the medical center extracts all attribute values in the electronic medical record data set D to construct an attribute dictionary. The process of the medical center generating a search trapdoor according to the search query request through the attribute dictionary includes:
[0033] S41. Obtain the attribute keywords in the search query request, map the attribute keywords to the positions of the corresponding attribute values through the attribute dictionary, and obtain the position vector q by combining the attribute hierarchical tree;
[0034] S42. Negate the position vector q to obtain a query vector Q, and process the query vector Q using the segmentation vector parameter to obtain V query sub-vectors in sequential order;
[0035] S43. Take the vth query subvector d v Multiply by the random number β v Get vector d v ′;
[0036] S44. Vector d v 'Perform q partitioning, and get and If S v [i]=0, then If S v[i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree;
[0037] S45. Generate the vth query subvector d of the query vector Q according to the result of S44 v The corresponding search trap is expressed as
[0038] Beneficial effects of the present invention:
[0039] The present invention provides a dynamic searchable encryption method for massive high-dimensional medical data, which includes three main bodies: medical centers, medical cloud servers and data users. It can perform fast and accurate searches on encrypted EMRs, support multi-keyword connections with complex structures, and use attribute hierarchical structures to implement attribute range queries. It provides a simple search method for massive electronic medical record data and improves search efficiency.
[0040] The present invention reduces the dimension of the index vector through an attribute hierarchical structure (ie, an attribute hierarchical tree), reduces the amount of calculation and communication overhead, and constructs an encrypted index tree to achieve nonlinear search efficiency.
[0041] There is no connectivity between the queries in the method of the present invention, that is, except for the medical center, other entities cannot generate new search traps based on previous search traps. Specifically, even if there are two identical search query requests, there will be differences in generating search traps because of the addition of random numbers, and the medical cloud server cannot infer the relationship between the search traps.
[0042] The present invention also provides a dynamic data update method, which can flexibly handle the addition and deletion of EMRs without the need for local storage of index trees, thereby reducing the risk of local index tree leakage. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] Figure 1 is a system structure diagram of an embodiment of the present invention;
[0044] Figure 2 This is a hierarchical tree structure diagram of age attributes according to an embodiment of the present invention;
[0045] Figure 3 Schematic diagram of index vectors according to an embodiment of the present invention;
[0046] Figure 4 This is an index tree structure diagram of an embodiment of the present invention. DETAILED DESCRIPTION
[0047] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0048] In a dynamic searchable encryption method for massive high-dimensional medical data proposed by the present invention, Figure 1 The three entities shown include medical center, medical cloud server and data user.
[0049] A medical center is a hospital or medical institution that has EMR resources. Its role is to: N} to encrypt and obtain the ciphertext data, N represents the total number of electronic medical records, D n represents the nth electronic medical record; extract all attribute values of the electronic medical record dataset D to construct an attribute value set W = {W1, W2, ..., W R}, R represents the total number of attribute types, W r Represents the set of attribute values of the rth attribute type; uploads the encrypted electronic medical record data and the encrypted index tree to the medical cloud server; is also responsible for reviewing data users, and sending search traps and EMR decryption keys to data users who have passed the review; is also responsible for real-time updating of data in the medical cloud server. When updating, the medical center generates update information locally and sends it to the medical cloud server.
[0050] Data users are units that are authorized to search encrypted data in the medical cloud server. When data users query encrypted data, they first send a search query request to the medical center, wait for the medical center to feedback the corresponding search trap and decryption key, then send the search trap to the medical cloud server, wait for the medical cloud server to feedback the encrypted data that meets the conditions, and then use the decryption key feedback from the medical center to decrypt the encrypted data.
[0051] The medical cloud server is used to store encrypted electronic medical record data and encrypted index trees, and perform corresponding processing operations when receiving search traps and update requests.
[0052] In one embodiment, the electronic medical record data is shown in Table 1. An electronic medical record has four attributes: age, race, gender, and disease. Each attribute has multiple attribute values, but each attribute of an electronic medical record corresponds to a specific attribute value. At the same time, each electronic medical record has its own ID information.
[0053] Table 1 Electronic medical records
[0054]
[0055] As can be seen from Table 1, the gender attribute has only two attribute values, male and female, which is easy to represent. However, the attribute values of age, region and disease are numerous and the relationships are complex. In order to realize the range search within the attribute domain and reduce the length of the index vector, the medical center constructs attribute hierarchical trees for different types of attributes.
[0056] In one embodiment, taking age attribute as an example, the constructed age attribute hierarchical tree is as follows: Figure 2 As shown, first determine the maximum value range that can contain all the age attribute values recorded in the EMR. In this embodiment, the maximum value range is determined to be [0,100], and [0,100] is used as the root node of the age attribute hierarchical tree. The root node [0,100] is divided according to the attribute range and attribute characteristics to obtain three child nodes [0,30], [31,60] and [61,100]. Then, the three child nodes are divided separately until only one specific attribute value is left. The attribute value is used as a leaf node, as shown in FIG. Figure 2 The bottom layer "1", "2", etc.
[0057] Specifically, for non-numerical attributes such as regions and diseases, semantic inclusion relationships are used to define the scope, thereby constructing the corresponding attribute hierarchical tree. For example, semantically, the region "Sichuan" includes the place "Chengdu", and "Yunnan" and "Hunan" are parallel provincial and municipal names.
[0058] In one embodiment, the medical center generates an index vector for the electronic medical record through an attribute hierarchical tree and an attribute value set. An index vector of an EMR is composed of location information of multiple attributes. In this embodiment, four attributes, namely age, region, gender and disease, are used for illustration.
[0059] Specifically, a vector representation is constructed for each path of the attribute hierarchical tree, including:
[0060] Assign a vector to each node of the attribute hierarchy tree, including the root node, child node and leaf node; when a node is located at the jth node of the bth layer of the attribute hierarchy tree b bit, then it is represented by where j b ∈J b , J b represents the total number of nodes in the bth layer, b = {1, 2, ..., B}, B represents the total number of layers in the attribute hierarchical tree;
[0061] If the node There are K child nodes in the bth layer, and the node Is a node The kth child node of Allocate K-dimensional vector And the K-dimensional vector The value of the kth dimension of is 1, and the values of the remaining dimensions are 0;
[0062] Create a corresponding path for each attribute value The nodes in each path are represented by corresponding vectors, and all the vectors in each path are combined to obtain the vector representation of each path.
[0063] The age attribute hierarchical tree is used for specific explanation, such as Figure 2 , Figure 3 As shown, the corresponding path of the attribute value "61" is P 61 =(a 1,1 ,a 2,3 ,a 3,7 ,a 4,61 )=("0-100","61-100","61-70","61"), node a 2,3 = "61-100" is node a 1,1 = the third child node of "0-100", and node a 1,1 = "0-100" has 3 child nodes, so it is node a 2,3 = "61-100" allocates 3D vector A 2,3 =001; then process the next node in the path, node a 3,7 = "61-70" is node a 2,3 = the first child node of "61-100", and node a 2,3 = "61-100" has 4 child nodes, so it is node a 3,7 = "61-70" allocates 4-dimensional vector A 3,7 =1000; node a 4,61 = "61" is node a 3,7 = "61-70" is the first child node, and node a 3,7 = "61-70" has 10 child nodes, so it is node a 4,61 = "61" allocates 10-dimensional vector A 4,61 =1000000000, thus obtaining the vector representation of the attribute value "61" as 100110001000000000. The vector representations of the four attributes of age, region, gender and disease of an EMR are combined to form the index vector of the EMR, where gender has only two attribute values, male and female. No attribute hierarchical tree is constructed, but the vector representation is based on the position of the attribute value set.
[0064] In one embodiment, the medical center constructs an index tree based on the index subvectors of the electronic medical record dataset D, including:
[0065] S21. Construct a V+1-layer index tree, take an index vector of an electronic medical record, and divide the index vector equally using a partitioning vector parameter to obtain V index sub-vectors in sequential order;
[0066] S22. Get the first index sub-vector of the index vector, start searching from the root node Root of the index tree, and determine whether there is a child node in the first layer of the index tree with the same value as the first index sub-vector. If yes, proceed to step S23. Otherwise, add a child node in the first layer, the value of the child node is the same as the value of the first index sub-vector, and then proceed to step S23.
[0067] S23. Enter the v={2,3,...,V+1}th layer of the index tree, determine whether there is a child node at the vth layer of the index tree with the same value as the vth index sub-vector, if yes, proceed to step S24, otherwise add a child node at the vth layer, the value of the child node is the same as the value of the vth index sub-vector, and then proceed to step S24;
[0068] S24. Determine whether the current index sub-vector is the last index sub-vector of the index vector. If so, the index vector is added, and the ID information of the electronic medical record corresponding to the index vector is added to the leaf node corresponding to the current index sub-vector. Otherwise, return to S23.
[0069] S25. Repeat steps S21-S24, add the index vectors of all electronic medical records, and obtain an index tree.
[0070] Specifically, Figure 4 As shown, there are five index vectors, [100010001], [100110001], [110001001], [110001111], and [110010111]. The five index vectors are processed respectively using a segmentation vector parameter V. In this embodiment, V=3, and three index sub-vectors corresponding to the five index vectors are obtained, [100,010,001], [100,110,001], [110,001,001], [110,001,111], and [110,010,111].
[0071] Construct the root node Root of the index tree. First, add the index vector [100010001]. If the root node Root does not have a child node with the value
[100] , add a child node with the value
[100] . Then, search for a child node with the value
[010] under the branch of the child node
[100] . If there is no child node with the value
[010] , add a child node with the value
[010] . Then, search for a child node with the value
[001] under the branch of the child node
[010] . If there is no child node with the value
[001] , add a child node with the value
[001] . At this point, all the index sub-vectors of the first EMR are added. , attach the ID information of the EMR to the last child node
[001] , i.e. the leaf node, with ID = 1; after adding the first four index vectors, when adding the last index vector [110010111], first determine whether the root node Root has a child node
[110] . If it has been added before, enter the branch of the child node
[110] to find whether there is a child node
[010] . If not, add
[010] and create a child node
[111] in
[010] . Finally, attach the ID information, with ID = 5.
[0072] Specifically, we start from the root node of the index tree and perform a hierarchical traversal. The sub-keys of each layer are represented by SK v ={S v ,M v,1 ,M v,2},S v The node partition identification matrix for the vth layer is an L×1 dimensional 0-1 matrix, where L is the vector dimension of the child nodes at each layer of the index tree; M v,1 is the L×L first reversible matrix of the vth layer, M v,2 is the L×L dimensional second reversible matrix of the vth layer, and the medical center uses the sub-key SK v The child nodes of the vth layer of the index tree are encrypted one by one to generate the corresponding encrypted index. The process is as follows:
[0073] S31. index the i-th child node b at the v-th level of the tree v,i Multiply by a random number ε v,i Get the new vector b v ' ,i ;
[0074] S32. For the new vector b v ' ,i Perform P partitioning and get and If S v [i]=0, then If S v [i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree;
[0075] S33. Generate the i-th child node b of the v-th layer of the index tree according to the result of S32 v,i The encrypted index of
[0076] In one embodiment, the medical center extracts all attribute values in the electronic medical record data set D to construct an attribute dictionary; the process of the medical center generating a search trapdoor according to a search query request through the attribute dictionary includes:
[0077] S41. Obtain the attribute keyword in the search query request, map the attribute keyword to the position of the corresponding attribute value through the attribute dictionary, and obtain the position vector q by combining the attribute hierarchical tree; wherein, for the attribute category that the data user does not search, all the attribute value position vector bits of its attribute category are set to 1, for the attribute category that needs to be searched, the corresponding attribute value position vector bit is set to 1, and the remaining attribute value position vector bits are set to 0;
[0078] S42. The position vector q is inverted to obtain a query vector Q, and the query vector Q is processed using the segmentation vector parameter to obtain V query sub-vectors in order; wherein each attribute value position in the query vector Q corresponds to the attribute value set one by one, and an attribute hierarchical tree is used to represent the attribute type with complex relationships;
[0079] S43. Take the vth query subvector d v Multiply by the random number β v Get vector d v ′,β v ≠0;
[0080] S44. Vector d v 'Perform q partition, and get and If S v [i]=0, then If S v [i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree;
[0081] S45. Generate the vth query subvector d of the query vector Q according to the result of S44 v The corresponding search trap is expressed as
[0082] In one embodiment, after receiving the search trap d″ sent by the data user, the medical cloud server performs a matching query, including:
[0083] Perform hierarchical traversal on the encrypted index tree, starting from the root node, and perform standard inner product with the vth search trap of the query vector Q in turn for the encrypted index of the child node at the vth level of the encrypted index tree. If the result is 0, it means that the child node matches the query attribute. Then perform matching screening in the branch of the child node, and perform standard inner product with the v+1th search trap of the query vector Q in turn for the encrypted index of all child nodes of the child node. Follow this rule to search until the last level. The matching node at the last level of the encrypted index tree points to the ID information of the EMR encrypted data that matches the data user's query. The standard inner product is expressed as:
[0084]
[0085] Among them, ε is the random value added to generate the encryption index, and β is the random value added to generate the search trapdoor.
[0086] In one embodiment, the medical center dynamically updates the data stored in the medical cloud server. When deleting or adding electronic medical records, the purpose is achieved by synchronously updating the nodes of the encrypted index tree on the medical cloud server. It should be noted that the update of the index is only based on the ID of the EMR encrypted data and does not require access to the EMR data content.
[0087] Specifically, when the medical center adds an EMR, it first encrypts the EMR to be added, and uses the method mentioned above to generate the encrypted index and search trap for the EMR. Then, the encrypted EMR, the ID of the EMR, the encrypted index, and the search trap are sent to the medical cloud server.
[0088] After receiving the request for adding data from the medical center, the medical cloud server uses the search trap of the EMR to be added to search the encrypted index tree based on the matching query method mentioned in the above embodiment. After receiving the search trap of the EMR to be added, the medical cloud server starts searching from the root node of the encrypted index tree, and performs standard inner product with the vth search trap of the query vector Q in turn for the encrypted index of the child node at the vth layer of the encrypted index tree. If the result is 0, it means that the child node has the same attribute value as the EMR to be added, and then performs matching screening in the branch of the child node, and performs standard inner product with the v+1th search trap of the query vector Q in turn for the encrypted index of all child nodes of the child node, and so on. In the search query process, if there is only one node with a standard inner product of 0 when searching the v+ith layer of the encrypted index tree, and the inner product of the child nodes of the node with a standard inner product of 0 and the v+i+1th search trap is not 0, then the node is the largest attribute matching node of the EMR to be added in the encrypted index tree. Starting from the v+i+1th sub-vector of the encrypted index of the EMR to be added, add a child node to the largest attribute matching node according to the construction rule of the index tree, and then continue to add under the child node until all the sub-vectors used in the encrypted index are added, that is, the final leaf node is obtained, and the ID of the EMR to be added is attached to the leaf node to complete the update of the encrypted index tree.
[0089] Specifically, the medical center needs to delete the discarded medical records in the medical cloud server to avoid wasting storage resources and reducing search efficiency. Faced with massive EMR data, it is usually not necessary to specify an ID to delete a record. Instead, the corresponding records are deleted based on the attribute values that meet the attributes. When the medical center deletes the EMR, it first determines which attribute values to delete, such as age=61and Disease=Diabetes. According to the conditions for deleting data, the medical center generates a corresponding search trap and sends the search trap to the medical cloud service. The medical cloud server receives the medical center's request to delete data, and searches the encrypted index tree for the search trap for deleting records in the form of a search query. When searching to the last layer, there is a node that meets the requirements, and the ID pointed to by the node is the ID of the encrypted EMR that meets the request to delete data. The medical cloud server needs to delete the node at the last layer of the encrypted index tree and delete the encrypted EMR with the corresponding ID in the encrypted storage.
[0090] In the present invention, unless otherwise clearly stipulated and limited, the terms such as "installation", "setting", "connection", "fixation" and "rotation" should be understood in a broad sense. For example, it can be a fixed connection, a detachable connection, or an integral one; it can be a mechanical connection or an electrical connection; it can be directly connected or indirectly connected through an intermediate medium; it can be the internal connection of two elements or the interaction relationship between two elements. Unless otherwise clearly defined, ordinary technicians in this field can understand the specific meanings of the above terms in the present invention according to the specific circumstances.
[0091] Although embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions and variations may be made to the embodiments without departing from the principles and spirit of the present invention, and that the scope of the present invention is defined by the appended claims and their equivalents.
Claims
1. A dynamic searchable encryption method for massive high-dimensional medical data, characterized in that: The following steps are involved: S1. Medical center electronic medical record data set D = {D1, D2, ..., D N } to encrypt and obtain the ciphertext data, N represents the total number of electronic medical records, D n represents the nth electronic medical record; the medical center extracts all attribute values in the electronic medical record dataset D to construct an attribute value set W = {W1, W2, ..., W R }, R represents the total number of attribute types, W r Represents the attribute value set of the rth attribute type; S2. The medical center constructs corresponding attribute hierarchical trees for multiple attributes of electronic medical records, and uses attribute hierarchical trees and attribute value sets to define the electronic medical records D n Generate index vector I n ; S3. Medical Center uses segmentation vector parameters to process electronic medical records D n The index vector I n , get electronic medical records D n Multiple index subvectors of ; S4. The medical center constructs an index tree based on the index subvectors of the electronic medical record dataset D and assigns a subkey to each layer of the index tree; S5. The medical center encrypts each layer of the index tree according to the sub-secret key to obtain an encrypted index tree, and then uploads the ciphertext data and the encrypted index tree to the medical cloud server; S6. The data user initiates a search query request to the medical center, and the medical center processes the search query request, generates a search trap, and feeds it back to the data user; S7. The data user initiates a matching request to the medical cloud server and sends the search trapdoor. The medical cloud server performs matching in the encrypted index tree according to the search trapdoor, and the matching electronic medical record ciphertext is fed back to the data user; S8. The medical center updates the data in the medical cloud server; when the medical center adds an electronic medical record, it uploads the ciphertext data of the electronic medical record to be added, as well as its corresponding encryption index, search trap and ID to the medical cloud server; when the medical center deletes an electronic medical record, it uploads the search trap corresponding to the attribute value of the electronic medical record to be deleted to the medical cloud server.
2. A dynamic searchable encryption method for massive high-dimensional medical data according to claim 1, characterized in that: The process of building a hierarchical attribute tree includes: S11. An electronic medical record represents an attribute record of a patient. An attribute record includes multiple attributes, each of which corresponds to an attribute value. According to the attribute value, the multiple attributes are divided into two categories: numerical attributes and non-numerical attributes. S12. For a numerical attribute class: determine the maximum value range of the attribute value of the attribute, and use the maximum value range as the root node; divide the maximum value range according to the attribute value range and the logic of the attribute to obtain multiple sub-ranges, and each sub-range is used as a child node; divide each child node in the same way to obtain multiple new child nodes, and then continue to divide until a single attribute value is divided, and use the single attribute value as a leaf node to obtain an attribute hierarchical tree; S13. For non-numeric attribute classes: determine the semantics of the attribute value, use the semantic inclusion relationship to define the value range, and select the maximum semantics as the root node; divide the layers according to the semantic inclusion relationship and the semantic parallel relationship to obtain the attribute hierarchical tree.
3. A dynamic searchable encryption method for massive high-dimensional medical data according to claim 2, characterized in that: Construct a vector representation for each path of the attribute hierarchical tree, including: Assign a vector to each node of the attribute hierarchy tree, including the root node, child node and leaf node; when a node is located at the jth node of the bth layer of the attribute hierarchy tree b bit, then it is represented by where j b ∈J b , J b represents the total number of nodes in the bth layer, b = {1, 2, ..., B}, B represents the total number of layers in the attribute hierarchical tree; If the node There are K child nodes in the bth layer, and the node Is a node The kth child node of Allocate K-dimensional vector And the K-dimensional vector The value of the kth dimension of is 1, and the values of the remaining dimensions are 0; Create a corresponding path for each attribute value The nodes in each path are represented by corresponding vectors, and all the vectors in each path are combined to obtain the vector representation of each path.
4. A dynamic searchable encryption method for massive high-dimensional medical data according to claim 1, characterized in that: The process of building an index tree is: S21. Construct a V+1-layer index tree, take an index vector of an electronic medical record, and divide the index vector equally using a partitioning vector parameter to obtain V index sub-vectors in sequential order; S22. Get the first index sub-vector of the index vector, start searching from the root node Root of the index tree, and determine whether there is a child node in the first layer of the index tree with the same value as the first index sub-vector. If yes, proceed to step S23. Otherwise, add a child node in the first layer, the value of the child node is the same as the value of the first index sub-vector, and then proceed to step S23. S23. Enter the v={2,3,...,V+1}th layer of the index tree, determine whether there is a child node at the vth layer of the index tree with the same value as the vth index sub-vector, if yes, proceed to step S24, otherwise add a child node at the vth layer, the value of the child node is the same as the value of the vth index sub-vector, and then proceed to step S24; S24. Determine whether the current index sub-vector is the last index sub-vector of the index vector. If so, the index vector is added, and the ID information of the electronic medical record corresponding to the index vector is added to the leaf node corresponding to the current index sub-vector. Otherwise, return to S23. S25. Repeat steps S21-S24, add the index vectors of all electronic medical records, and obtain an index tree.
5. A dynamic searchable encryption method for massive high-dimensional medical data according to claim 4, characterized in that: Starting from the root node Root of the index tree, the sub-key of each layer is represented by SK v ={S v ,M v,1 ,M v,2 },S v Partition identification matrix for nodes in layer v; M v,1 is the first reversible matrix of the vth layer, M v,2 is the second reversible matrix of the vth layer, and the medical center uses the sub-key SK v The child nodes of the vth layer of the index tree are encrypted one by one to generate the corresponding encrypted index. The process is as follows: S31. index the i-th child node b at the v-th level of the tree v,i Multiply by a random number ε v,i Get the new vector b v ' ,i ; S32. For the new vector b v ' ,i Perform P partitioning and get and If S v [i]=0, then If S v [i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree; S33. Generate the i-th child node b of the v-th layer of the index tree according to the result of S32 v,i The encrypted index of 6. A dynamic searchable encryption method for massive high-dimensional medical data according to claim 1, characterized in that: The medical center extracts all attribute values in the electronic medical record dataset D to construct an attribute dictionary; The process by which the medical center generates a search trapdoor based on a search query request using an attribute dictionary includes: S41. Obtain the attribute keywords in the search query request, map the attribute keywords to the positions of the corresponding attribute values through the attribute dictionary, and obtain the position vector q by combining the attribute hierarchical tree; S42. Negate the position vector q to obtain a query vector Q, and process the query vector Q using the segmentation vector parameter to obtain V query sub-vectors in sequential order; S43. Take the vth query subvector d v Multiply by the random number β v Get vector d v ′; S44. Vector d v 'Perform q partition, and get and If S v [i]=0, then If S v [i]=1, then Where S v [i] represents the node partitioning identifier of the i-th child node at the v-th level of the index tree; S45. Generate the vth query subvector d of the query vector Q according to the result of S44. v The corresponding search trap is expressed as M v,1 is the first reversible matrix of the vth layer, M v,2 is the second reversible matrix of the vth layer.