User revocable non-interactive medical data sharing system and method with forward and backward privacy

By introducing data owner-generated keys and key update tokens into the medical data sharing system, and updating the security index by the cloud server, the problems of user revocation and frequent interaction in multi-client searchable encryption are solved. This enables non-interactive queries and forward and backward privacy protection, improving the security and efficiency of the system.

CN116341009BActive Publication Date: 2026-01-13BEIJING INST OF TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310333206.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-30
Publication Date
2026-01-13
Estimated Expiration
2043-03-30

AI Technical Summary

Technical Problem

Existing multi-client searchable encryption technologies make it difficult for users to revoke and update keys, and frequent interactions lead to security risks and high communication overhead, making it impossible to effectively achieve forward and backward privacy protection.

Method used

A user-revocable, non-interactive medical data sharing system with forward and backward privacy was designed. The system enables multi-client non-interactive queries and user revocation through the generation of security keys and key update tokens by the data owner, and the updating of security indexes by the cloud server. Data encryption is achieved using invertible matrices and pseudo-random functions, and forward privacy is ensured through time-range queries.

Benefits of technology

It enables non-interactive queries from multiple clients, reducing the security risks and communication overhead of frequent interactions between data owners and users. It also efficiently implements user revocation key updates, ensuring forward and backward privacy protection and improving search efficiency and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116341009B_ABST
    Figure CN116341009B_ABST
Patent Text Reader

Abstract

The present application relates to a user-revocable non-interactive medical data sharing system and method with forward and backward privacy, belonging to the technical field of medical data query and privacy protection. The steps of the method include initializing the system, updating the data, querying the data and revoking the user. The present application is based on multi-client setting and can ensure efficient and safe search of other clients. Most of the existing searchable encryption schemes that realize forward privacy require the data owner to store the keyword state, and the data user needs to frequently interact with the data owner, which requires the data owner to be online at any time, has great security risks and causes great communication overhead. The present application solves the problem of frequent interaction between the data owner and the data user and greatly improves the search efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a user-revocable, non-interactive medical data sharing system and method with forward and backward privacy, belonging to the field of medical data query and privacy protection technology. Background Technology

[0002] With the development of cloud computing and the Internet of Things (IoT), e-healthcare systems have become a significant trend. Data collected from IoT wireless devices is stored in the cloud and made available to data users (health service providers), enabling those unable to access hospitals or with mobility issues to remotely access quality healthcare services. Specifically, patients wear wireless wearable devices, and key vital signs are collected periodically. This information is aggregated into Personal Health Information (PHI) files and stored on cloud servers. Within this system, data users (third-party health service providers) can apply for authorization to access and use the health data, querying it on demand to monitor patient health and provide timely diagnoses. The combination of cloud computing and IoT wearable devices in the healthcare industry helps save data storage space, reduce IT costs, and improve patient treatment efficiency. However, data security and personal privacy remain critical issues in healthcare information systems.

[0003] To protect data privacy, data owners can encrypt PHI files before uploading them to a cloud server. However, this severely limits the cloud server's operations, such as computation and searching. To address the difficulty of searching encrypted data, Searchable Encryption (SE) technology was proposed to enable searching within encrypted files. Data owners extract file keywords, encrypt and generate a secure index, and then upload it to the cloud server. Authorized users can generate search tokens and send them to the cloud server for queries. Finally, the cloud server searches the encrypted data and returns the search results to the user. Throughout this process, the document, secure index, and search token are all encrypted; the cloud server cannot know the specific plaintext information, thus protecting data privacy. Because PHI files are dynamically updated, SE should allow updates to the secure index. Simultaneously, to defend against attacks exploiting leaks generated by update operations, forward privacy and backward privacy are essential requirements for Dynamically Searchable Symmetric Encryption (DSSE). Forward privacy prevents the server from determining whether updated content contains keywords from previous user search requests, while backward privacy prevents the server from determining whether content has been deleted. Because PHI files are encrypted...<attribute,value> For more precise searching of PHI files, data users can search for keywords and ranges to obtain the desired PHI files. For example, if a resting heart rate exceeds 90, indicating an abnormal health condition, health service providers can search for relevant PHI files by searching for {heart rate, 90-180}.

[0004] In existing multi-client searchable encryption schemes, data users and data owners are distinct entities. Data users obtain data usage rights by submitting authorization requests to the data owner. However, when a data owner revokes a user's data usage rights, or when a user no longer requests access to the data, the system key needs to be updated to prevent the revoked user from accessing the data. The computational cost of downloading data, decrypting it again, and then re-encrypting it with a new key is too high. Therefore, a novel key update technique is considered to update the encryption key of the security index. Summary of the Invention

[0005] The technical problem solved by this invention is to address the difficulty of user revoking and updating keys in existing searchable encryption technologies based on multi-client scenarios, and to propose a user-revocable, forward and backward privacy-based non-interactive medical data sharing method and system.

[0006] To achieve the above objectives, the present invention adopts the following technical solution:

[0007] A user-revocable, non-interactive medical data sharing system with forward and backward privacy, which includes data owners, data users, and cloud servers;

[0008] In this system, the data owner is responsible for initializing the system, selecting security parameters, generating security keys, and sending the security keys to authorized data users through a secure channel. The data owner collects medical information data through wearable devices, generates multiple PHI files, and is the owner of the data. The data owner encrypts the PHI files, generates a secure index based on the PHI files, and sends the encrypted data and index to the cloud server. When a data user revokes their access rights, the data owner regenerates the security keys and sends a key update token to the cloud server to update the index keys.

[0009] Data users are authorized third-party healthcare service providers. They can obtain a key to generate query requests by submitting a registration request to the data owner. Data users search the encrypted database by submitting a search token to the server and use a symmetric key to recover the underlying data after receiving the result set. If they no longer provide the expected services, their authorization can be revoked, and they will no longer have the right to access the data.

[0010] Cloud servers possess virtually unlimited storage and computing resources, providing storage and computing services to data owners and users. Upon receiving a search request from a data user, the cloud server searches the encrypted database and returns the search results to the data user. After receiving an update key token from the data owner, the cloud server uses the update key to update the security index.

[0011] A user-revocable, non-interactive medical data sharing method with forward and backward privacy includes the following steps: initializing the system, updating data, querying data, and revoking the user's account. Specifically, the method comprises the following steps:

[0012] Step 1: Initialize the system. The data owner randomly generates the system key msk and initializes the state table. Record the current key; initialize the state table Mat to store the subsequently generated encryption matrix, initialize the state table CDB to store the security index, send the state table Mat and the state table CDB to the cloud server for storage, and send the key msk and the state table LastKey to the data user through the secure channel;

[0013] in, and These are two (2n+2)×(2n+2) invertible matrices used for encryption. and It is a λ-bit key. λ is a safety parameter, and n is a set value;

[0014] Step 2: Update data. The data owner generates a PHI file based on the medical information data collected by the patient's wireless device. The data owner encrypts the generated PHI file, extracts symptom keywords from the PHI file, and generates a security index based on the symptom keywords and specific symptom values. The index is then uploaded to the cloud server for storage.

[0015] The method for generating a secure index is as follows:

[0016] Step 2.1: Assuming the generated PHI file is a document doc (document identifier is ind), perform the operation op (op = add / del) to encrypt the keyword and its corresponding value {w:x}. Generate a secure index based on each keyword w in the document doc. First, obtain the latest status value of the current keyword from the status table LastUp. If there is no corresponding value for w in LastUp[w], set LastUp[w] = 0. λ prk = LastUp[w], calculate the key corresponding to the keyword. in, It is a pseudo-random function;

[0017] Step 2.2: Encrypt the document identifier (ind) of the document doc. Calculate using a delegated pseudo-random function based on the current timestamp The delegated random function consists of two functions: ① Input master key K∈{0,1} λ and range Output a delegated key K C ;② Input Delegable Function K C Sum of values If v∈C, the key will be output. If v does not belong to C, there is no output;

[0018] Step 2.3: Generate an encryption matrix based on the numerical value x corresponding to the keyword w. And set the address of the encryption matrix to

[0019] Among them, encryption matrix The method is as follows:

[0020] Step 2.3.1: First, convert the numerical value x into a binary vector x = (x1, x2, ..., x...). n );

[0021] Step 2.3.2: Convert the binary vector x = (x1, x2, ..., x...) according to the following rules. n Transform it into a 2n-dimensional vector p = (p1, p2, ..., p...) 2n );

[0022] If x i =1, then p 2i-1 =1*2 n-i ,p 2i =1*2 n-i ;

[0023] If x i =0, then p 2i-1 =1*2 n-i ,p 2i =-1*2 n-i i = 1, 2, 3, ..., n;

[0024] Step 2.3.3: Generate the matrix

[0025]

[0026] Where r1 is a randomly selected positive integer, r2 is a non-zero random number, and two other sets of random numbers are selected. and satisfy

[0027] Step 2.3.4: Data users use invertible matrices and For matrix Encryption obtained

[0028] Step 2.4: Obtain the latest encryption key from LastKey Calculate using an updatable pseudo-random function P Calculate L←H1(T,key||0) using hash function H1, and calculate using hash function H2.

[0029] Among them, an updatable pseudo-random function P is used to calculate Time refers to the calculation of pseudo-random values H is a defined hash function;

[0030] Step 2.5: Update the latest status of the keyword to LastUp[w]←key;

[0031] Step 2.6: encrypt the text (L,D,C,ts) are sent to the cloud server for storage;

[0032] Step 2.7: Cloud server stores CDB[L]←(D,C,ts) and

[0033] Step 3: Query data. The data user generates an encrypted query request and sends it to the cloud server.

[0034] Specifically, the data user generates a time range from the initial time to the current time, encrypts it along with the query keyword and the keyword query range, and sends it to the cloud server. For example, searching for {heart rate: 90-180}, the cloud server performs a search operation, finds files within the time range that match the keyword query requirements, and returns them to the data user. Because past time ranges cannot find the latest timestamps, forward privacy is achieved. The data query includes the following sub-steps:

[0035] Step 3.1: The data user calculates the key corresponding to the keyword. And calculate using the DelKey function, which allows for delegated pseudo-random functions. Where Tr is the time range from the initial time to the current time; the data user obtains the latest key based on the status table LastKey. And calculate

[0036] Step 3.2: Data users generate an encryption matrix based on the keyword query range {w:(a,b)}. Specifically:

[0037] Generate encryption matrix The method is as follows:

[0038] Step 3.2.1: Given the range q = [a, b], convert it into a binary vector a = (a1, a2, ..., a...).n ) and b = (b1, b2, ..., b n );

[0039] Step 3.2.2: Transform the vector into a 2n-dimensional vector c = (c1, c2, ..., cn) according to the following rules. 2n );

[0040] If a i =1, then c 2i-1 =-1,c 2i =1;

[0041] If a i =0, then c 2i-1 =1,c 2i =1;i=1,2,3,…,n;

[0042] Transform the vector b to obtain d = (d1, d2, ..., d 2n );

[0043] If b i =1, then d 2i-1 =-1,d 2i =1;

[0044] If b i =0, then d 2i-1 =1,d 2i =1;i=1,2,3,…,n;

[0045] Step 3.2.3: Generate the matrix

[0046]

[0047] Where e1 is a randomly selected positive integer, e2 is a non-zero random number, and two other sets of random numbers are selected. and in satisfy

[0048] Step 3.2.4: Use an invertible matrix and For matrix Encryption obtained

[0049] Step 3.3: Transfer the search token Send to the cloud server;

[0050] Step 3.4: The cloud server receives the search token. Then, select the security index (L,D,C,ts) in reverse order of the security index uploaded by the data owner, and calculate... If the result is ⊥, continue the search until the result is not ⊥, then stop the sequential search and calculate the result. This also means that the timestamp ts is within the time range, while ensuring the forward privacy of the solution, because the newly added timestamp cannot be searched in the past time range, that is, the past search tokens cannot search for the newly added files;

[0051] Step 3.5: Calculate L←H1(T,key||0), retrieve the security index based on L to obtain (D,C,ts)←EDB[L], and calculate... We obtain (adm||X||prk), where adm is the address of the encryption matrix corresponding to the key value, X is the key update token, and prk is the key value of the previous security index containing the key w. If X ≠ 0 λ Update the search token T = P.KeyUpdate(X,T), if X = 0 λ T remains unchanged;

[0052] The for Where UpdateToken(K1,K2):

[0053] Step 3.6: Retrieve the encryption matrix corresponding to the keyword value. calculate The tr(·) function is used to calculate the trace of the matrix. If the result is less than 0, the value of the keyword is within the range of the keyword being sought, and it is added to the result set. If the result is greater than or equal to 0, the value of the keyword is not within the range of the keyword being sought.

[0054] Step 3.7: Update key to prk, and repeat steps 3.5-3.6 until the value of prk is 0. λ ;

[0055] Step 3.8: Send the result set to the data owner; the search is complete.

[0056] Step 3.9: The data owner decrypts the data to obtain the final result;

[0057] Step 4: User Revocation. When a data user no longer has access to the data, the data owner will regenerate the key and update the key for the secure index, so that the revoked user no longer has the right to search the encrypted text. Specifically:

[0058] Step 4.1: The data owner generates a new key msk;

[0059] in, and These are two (2n+2)×(2n+2) invertible matrices used for encryption. constant, It is a λ-bit key. The status table LastKey is updated to Record the current key;

[0060] Step 4.2: The data owner generates an update key token and performs the following operation for each known key w:

[0061] Step 4.2.1: Calculate the key corresponding to the keyword Get the current keyword status prk←LastUp[w], calculated based on the current timestamp ts. calculate and

[0062] Step 4.2.2: Calculate the matrix update token and

[0063] Step 4.2.3: Combine the ciphertext (L,D,C,ts) with the matrix update token. and Send to the cloud server;

[0064] Step 4.3: The cloud server receives the ciphertext (L,D,C,ts) and the update token. and Then, the cloud server stores CDB[L]←(D,C,ts) and updates all encryption matrices as follows:

[0065] Thus, through steps 1 to 4, the keyword update, query, and user cancellation operations for medical data sharing have been completed, and the forward and backward privacy of the scheme has been guaranteed.

[0066] The privacy-preserving searchable encryption method for the medical data sharing system of this invention has the following advantages compared with existing searchable encryption technologies:

[0067] 1. Existing searchable encryption methods primarily consider a single client, where the client encrypts and uploads a secure index. When searching for a keyword, the client generates a search token and uploads it to the cloud server. This is not suitable for our medical data sharing system. This invention is based on a multi-client setup, where data owners can share data with other users, and data users obtain access rights by applying to the data owner. This invention can be further extended for use in other scenarios, such as task recommendation systems and geolocation queries.

[0068] 2. Most existing searchable encryption schemes for achieving forward privacy require data owners to store keyword states, and data users need to interact frequently with data owners. This requires data owners to be online at all times, which poses a great security risk and causes very high communication overhead. This invention achieves multi-client non-interactive searchable encryption by introducing time range queries. Because the time state is added synchronously by multiple clients and does not require interaction between clients, it solves the problem of frequent interaction between data owners and data users, and greatly improves search efficiency.

[0069] 3. This invention uses time range queries. The time range generated by the current time cannot search for future time points; it can only search for time points before the current time. Therefore, we achieve non-interactive forward privacy through time range queries. Because we encrypt the file identifier, the cloud server does not know the specific file being deleted when it is deleted, thus achieving backward privacy. At the same time, this invention uses an inverted index to achieve sublinear search.

[0070] 4. The range query method designed in this scheme is more efficient and will not reveal the size relationship of each ciphertext compared to the OPE method; because it uses random matrix encryption, the size relationship of the values ​​will not be revealed through random number perturbation.

[0071] 5. Currently, dynamic symmetric searchable encryption does not consider the issue of user revocation. In multi-client schemes, if a user revokes their application, the key of the security index needs to be updated. This scheme efficiently solves the problem of updating the key when a user revokes their application. Attached Figure Description

[0072] Figure 1 This is a schematic diagram of the system composition of the present invention;

[0073] Figure 2 Example diagram for updates and user undoing;

[0074] Figure 3 The simulation results show the performance of keyword search. Detailed Implementation

[0075] The present invention will be further described below with reference to the accompanying drawings and embodiments.

[0076] Example 1

[0077] like Figure 1 As shown, a user-revocable, non-interactive medical data sharing system with forward and backward privacy includes data owners, data users, and cloud servers;

[0078] In this context, the data owner is the entity that owns the data. The data owner is responsible for initializing the system, selecting security parameters, generating a security key, and sending the security key to the authorized data user (corresponding to the user) via a secure channel. Figure 1 ①); The data owner collects medical information data through wearable devices, generating multiple PHI files, and is the owner of the data; encrypts the PHI files, generates a secure index based on the PHI files, and sends the encrypted data and index to the cloud server (corresponding to...). Figure 1 ②); When a data user revokes their access rights, the data owner regenerates the security key and sends a key update token to the cloud server to update the index key (corresponding to...). Figure 1 ④).

[0079] Data users are authorized third-party healthcare service providers who can obtain a key (corresponding to) for generating query requests by submitting a registration request to the data owner. Figure 1 ①); Data users search the encrypted database by submitting search tokens to the server, and then use the symmetric key to recover the underlying data after receiving the result set (corresponding to...). Figure 1 ③); If they no longer provide the expected service, their authorization can be revoked, and they will no longer have the right to access the data (corresponding to...). Figure 1 ④).

[0080] Cloud servers possess virtually unlimited storage and computing resources, providing storage and computing services to data owners, storing encrypted files and secure indexes (corresponding to...). Figure 1 ①); After receiving a search request from a data user, the cloud server searches the encrypted database and returns the search results to the data user (corresponding to...). Figure 1 ③); After receiving the update key token from the data owner, the cloud server uses the update key to update the security index (corresponding to...). Figure 1 ④).

[0081] like Figure 2 As shown, assume that the data owner generates files from time to time, each file (doc) corresponds to a file identifier (ind), and keywords can be extracted to form a keyword set W. ind Suppose this example updates files doc1 and doc2, where file doc1 has a keyword set W1 = {w1: heart rate value: 65}, and file doc2 has a keyword set W2 = {w1: heart rate value: 70, w2: blood oxygen value: 94}. After adding the files twice, a user revokes permissions and updates the key.

[0082] Step 1: Initialize the system. The data owner randomly generates the system key msk and initializes the state table. Record the current key; initialize the state table Mat to store the subsequently generated encryption matrix, initialize the state table CDB to store the security index, send the state table Mat and the state table CDB to the cloud server for storage, and send the key msk and the state table LastKey to the data user through the secure channel;

[0083] in, and These are two (2n+2)×(2n+2) invertible matrices used for encryption. and It is a λ-bit key. λ is a safety parameter, and n is set to 9;

[0084] Step 2: Update data. The data owner generates a PHI file based on the medical information data collected by the patient's wireless device. The data owner encrypts the generated PHI file, extracts symptom keywords from the PHI file, and generates a security index based on the symptom keywords and specific symptom values. The index is then uploaded to the cloud server for storage.

[0085] For ease of understanding, we only list the two files updated with keyword w1, ignoring keyword w2. The method for generating a secure index is as follows:

[0086] Step 2.1: Set the document identifier of the generated PHI file to ind=1, and perform the operation op=add to encrypt the keyword and its corresponding value {w1:heart rate value:65}. First, obtain the latest status value of the current keyword from the status table LastUp. Since this is the first update, set LastUp[w1]=0. λ prk = LastUp[w1]; calculate the key corresponding to the keyword. in, It is a pseudo-random function;

[0087] Step 2.2: Encrypt the document identifier ind=1 of the document doc. Using a delegated pseudo-random function based on the current timestamp ts1 = 100, calculate

[0088] Step 2.3: Generate an encryption matrix based on the numerical value x corresponding to the keyword w1. And set the address of the encryption matrix to Specifically

[0089] Step 2.3.1: First, convert the numerical value x = 65 into a binary vector x = (x1, x2, ..., x9) = (0, 0, 1, 0, 0, 0, 0, 0, 1).

[0090] Step 2.3.2, transform it into a 2n = 18 dimensional vector p = (p1, p2, ..., p) according to the following rules. 18 = [256.0, -256.0, 128.0, -128.0, 64.0, 64.0, 32.0, -32.0, 16.0, -16.0, 8.0, -8.0, 4.0, -4.0, 2.0, -2.0, 1.0, 1.0]:

[0091] If x i =1, then p 2i-1 =1*2 n-i ,p 2i =1*2 n-i ;

[0092] If x i =0, then p 2i-1 =1*2 n-i ,p 2i =-1*2 n-i i = 1, 2, 3, ..., 9;

[0093] Step 2.3.3: Calculate the matrix

[0094]

[0095] Where r1 is a randomly selected positive integer, r2 is a non-zero random number, and two other sets of random numbers are selected. and satisfy

[0096] Step 2.3.4, the data user uses an invertible matrix. and Encryption obtained

[0097] Step 2.4: Obtain the latest encryption key from LastKey Calculated using an updatable pseudo-random function Use hash function H1 to calculate L1←H1(T1,key1||0), and use hash function H2 to calculate... like Figure 2 As shown in Block 1;

[0098] Step 2.5, update the latest status of the keyword to LastUp[w]←key1;

[0099] Step 2.6, ciphertext (L1,D1,C1,ts1) are sent to the cloud server for storage;

[0100] Step 2.7, cloud server storage CDB[L1]←(D1,C1,ts1) and

[0101] Step 2.8, update document doc2 (document identifier is ind=2) and perform operation op=add, encrypt the keyword and its corresponding value {w1:heart rate value:70};

[0102] Step 2.9: First, obtain the latest state value of the current keyword from the state table LastUp. Since this is the second update, prk = LastUp[w1] = key1; calculate the key corresponding to the keyword. in, It is a pseudo-random function;

[0103] Step 2.10: Encrypt the document identifier ind=1 of the document doc. Using a delegated pseudo-random function based on the current timestamp ts2 = 200, calculate

[0104] Step 2.11: Generate an encryption matrix based on the numerical value x corresponding to the keyword w1. And set the address of the encryption matrix to Specifically:

[0105] Step 2.11.1: First, convert the coordinate point x = 70 into a binary vector x = (x1, x2, ..., x9) = (0, 0, 1, 0, 0, 0, 1, 1, 0);

[0106] Step 2.11.2, transform it into a 2n = 18 dimensional vector p = (p1, p2, ..., p) according to the following rules. 18 = [256.0, -256.0, 128.0, -128.0, 64.0, 64.0, 32.0, -32.0, 16.0, -16.0, 8.0, -8.0, 4.0, 4.0, 2.0, 2.0, 1.0, -1.0]:

[0107] If x i =1, then p 2i-1 =1*2 n-i ,p 2i =1*2 n-i ;

[0108] If x i =0, then p 2i-1 =1*2 n-i ,p 2i =-1*2 n-i i = 1, 2, 3, ..., 9;

[0109] Step 2.11.3, Calculate the matrix

[0110]

[0111] Where r1 is a randomly selected positive integer, r2 is a non-zero random number, and two other sets of random numbers are selected. and satisfy

[0112] Step 2.11.4, the data user uses an invertible matrix. and Encryption obtained

[0113] Step 2.12, obtain the latest encryption key from LastKey. Calculated using an updatable pseudo-random function Use hash function H1 to calculate L2←H1(T1,key2||0), and use hash function H2 to calculate... like Figure 2 As shown in block 2;

[0114] Step 2.13, update the latest status of the keyword to LastUp[w]←key2;

[0115] Step 2.14, ciphertext (L2,D2,C2,ts2) are sent to the cloud server for storage;

[0116] Step 2.15, cloud server storage CDB[L2]←(D2,C2,ts2) and Step 3: User Revocation. When a data user no longer has access to the data, the data owner will regenerate the key and update the key for the secure index, so that the revoked user no longer has the right to search the encrypted text. Specifically:

[0117] Step 3.1: The data owner generates a new key, msk.

[0118] in, and These are two (2n+2)×(2n+2) invertible matrices used for encryption. constant, It is a λ-bit key; the LastKey state table is updated to... Record the current key; send the key to the authorized data user;

[0119] Step 3.2: The data owner generates an update key token and performs the following operation for each known key w1:

[0120] Step 3.2.1, calculate the key corresponding to the keyword. Get the current keyword status prk = LastUp[w1] = key2, and calculate based on the current timestamp ts3 = 201. calculate L3←H1(T2,key3||0) and like Figure 2 As shown in block 3;

[0121] Step 3.2.2, calculate the matrix update token and

[0122] Step 3.2.3: Combine the ciphertext (L3,D3,C3,ts3) with the matrix update token. and Send to cloud server

[0123] Step 3.3: The cloud server receives the ciphertext (L3, D3, C3, ts3) and the update token. and Then, the cloud server stores CDB[L3]←(D3,C3,ts3) and updates all encryption matrices as follows: like Figure 2 The updated key is shown below.

[0124] Step 4. Query Data. The data user generates an encrypted query request and sends it to the cloud server. Specifically, the data user generates a time range from the initial time to the current time, and sends it along with the query keywords and the keyword query range to the cloud server, for example, searching for {heart rate: 60-80}. The cloud server executes the search operation, finds files that match the keyword query requirements within the time range, and returns them to the data user. Because past time ranges cannot find the latest timestamps, forward privacy is achieved. Querying data includes the following sub-steps:

[0125] Step 4.1, the data user calculates the key corresponding to the keyword. And calculate using the DelKey function, which allows for delegated pseudo-random functions. Where Tr is a time range [0, 300] from the initial time to the current time; the data user obtains the latest key based on the status table LastKey. And calculate

[0126] Step 4.2: Generate an encryption matrix based on the keyword query range {w:(60, 80)}. Specifically:

[0127] Step 4.2.1: Given the range q = [60, 80], convert it into binary vectors a = ('000111100') and b = ('001000110') respectively.

[0128] Step 4.2.2: Transform into a 2n = 18 dimensional vector c = (c1, c2, ..., c) according to the following rules. 18 And perturb with a random number r2:

[0129] If a i =1, then c 2i-1 =-1,c 2i =1;

[0130] If a i =0, then c 2i-1 =1,c 2i =1;i=1,2,3,…,n;

[0131] Transform the vector b to obtain d = (d1, d2, ..., d 18 );

[0132] If b i =1, then d 2i-1 =-1,d 2i =1;

[0133] If b i =0, then d 2i-1 =1,d 2i =1;i=1,2,3,…,n;

[0134] We get c = [1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1,1,1,1,1], d = [1,1,1,1,-1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,1,1];

[0135] Step 4.2.3: Calculate the matrix

[0136]

[0137] Where e1 is a randomly selected positive integer, e2 is a non-zero random number, and two other sets of random numbers are selected. and in satisfy

[0138] Step 4.2.4: Use an invertible matrix and Encryption obtained

[0139] Step 4.3: Transfer the search token Send to the cloud server;

[0140] Step 4.4: The cloud server receives the search token. Then, select the security index (L,D,C,ts) in reverse order of the security index uploaded by the data owner; first select (L3,D3,C3,ts3) for calculation. Since the timestamp ts3 = 201 corresponding to update step 3 is within the time range Tr = [0, 300], searching the first index satisfies the requirement, and the calculation yields...

[0141] Step 4.5: Calculate L3←H1(T2,key3||0), retrieve the security index based on L3 to obtain (D3,C3,ts3)←EDB[L3], and then calculate... get Among them 0 λ This indicates that this is a key update operation. Update the token for the key, where key2 is the key value of the previous security index containing the keyword w1; Update search token

[0142] Step 4.6: Calculate L2←H1(T1,key2||0), retrieve the security index based on L2 to obtain (D2,C2,ts2)←EDB[L2], and then calculate... Get (adm2||0) λ ||key1), where adm2 is the address of the encryption matrix, i.e. Address; 0 λ This means that the search token T1 remains unchanged, and key1 is the key value of the previous secure index containing the key w1;

[0143] Step 4.7, Calculation The tr(·) function is used to calculate the trace of the matrix; if the result is less than 0, the value of the key is within the range of the key being sought, and C2 is added to the result set.

[0144] Step 4.8: Calculate L1←H1(T1,key1||0), retrieve the security index based on L1 to obtain (D1,C1,ts1)←EDB[L1], and then calculate... Get (adm1||0) λ ||0 λ ), where adm1 is the address of the encryption matrix, i.e. Address; 0 λ This indicates that the search token T1 remains unchanged, and the next 0... λ This indicates that the search has been suspended.

[0145] Step 4.9, Calculation The tr(·) function is used to calculate the trace of the matrix; if the result is less than 0, the value of the key is within the range of the key being sought, and C1 is added to the result set.

[0146] Step 4.10: Send the result set to the data owner; the search is complete.

[0147] Step 4.11: The data owner decrypts the data to obtain the final result, {doc1,doc2};

[0148] Thus, through steps 1 to 4, a non-interactive medical data sharing method with forward and backward privacy that supports user revocation has been completed.

[0149] The experiments were implemented using Python 3, with pycrypto used to implement the cryptographic primitives. The pseudo-random function F1 was instantiated as HMAC-SHA-256, hash functions H1 and H2 as HMAC-SHA-512, and function SE as AES symmetric encryption. The experiments were run on an Intel Core i7 CPU system with 2.6GHz and 16GB of RAM. To demonstrate that the proposed solution is multi-client non-interactive, a scenario with three independent data owners, data users, and a server was developed. This was compared to the RSPP scheme, which requires interaction to obtain search-related information before each search. Figure 3 The simulation results of the two keyword matching methods are shown in the graph. The horizontal axis represents the size of the search results, and the vertical axis represents the running time. The blue bars represent the method of this invention, and the purple bars represent the method mentioned in RSPP. The experimental results show that the present invention has a significant improvement in efficiency compared with the existing work because it reduces the interaction.

[0150] The solution RSPP is Yang L, Zheng Q, Fan

[0151] In summary, the above are merely preferred embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A user-revocable, non-interactive medical data sharing system with forward and backward privacy, characterized in that: The system includes data owners, data users, and cloud servers; In this system, the data owner is the owner of the data, selects security parameters and generates a security key, and sends the security key to the data user requesting authorization through a secure channel; the data owner collects medical information data through wearable devices, generates multiple PHI files, and is the owner of the data; the PHI files are encrypted, a secure index is generated based on the PHI files, and the encrypted data and index are sent to the cloud server; when a data user revokes access rights, the data owner regenerates the security key and sends a key update token to the cloud server to update the key of the index; Data users obtain a key for generating query requests by submitting a registration request to the data owner; data users search the encrypted database by submitting a search token to the cloud server, and use a symmetric key to recover the underlying data after receiving the result set; if the expected service is no longer provided, the authorization can be revoked, and the user will no longer have the right to access the data. Cloud servers possess storage and computing resources, enabling them to provide storage and computing services to data owners and data users. Upon receiving a search request from a data user, the cloud server searches the encrypted database and returns the search results to the data user. Upon receiving an update key token from the data owner, the cloud server uses the update key to update the security index. The method for generating a secure index is as follows: Let the document identifier of the generated PHI file be Perform operations on PHI files , Encryption keywords and their corresponding values And based on each keyword in the PHI file To generate a secure index, first start from the state table. Get the latest status value of the current keyword, if There is no Set the corresponding value ; Calculate the key corresponding to the keyword ,in, It is a pseudo-random function; Document identifier for PHI files Encrypt Calculate using a delegated pseudo-random function based on the current timestamp ; Based on keywords Corresponding value Generate encryption matrix And set the address of the encryption matrix to ; from Obtain the latest encryption key ,calculate , and ; The latest status of the updated keywords is .

2. A user-revocable, non-interactive medical data sharing method with forward and backward privacy, characterized in that... The steps of this method include: Step 1: The data owner randomly generates a system key. Initialize the state table Record the current key and initialize the state table. Store the subsequently generated encryption matrix and initialize the state table. Store a secure index for the state table and state table Send to cloud server storage, and transmit the key through a secure channel. Status table Send to data users; Step 2: The data owner generates a PHI file based on the collected medical information data. The data owner encrypts the generated PHI file, extracts symptom keywords from the PHI file, and generates a security index based on the symptom keywords and specific symptom values. The index is then uploaded to the cloud server for storage. Step 3: The data user generates an encrypted query request and sends it to the cloud server. The cloud server executes the search operation and returns the search results to the data user. Step 4: When a data user no longer has the right to access the data, the data owner will regenerate the key and send the generated key update token to the cloud server. The cloud server uses the key update token to update the key of the security index, so that the revoked user no longer has the right to search the encrypted text. In step 2, the method for generating the secure index is as follows: Step 2.1, let the document identifier of the generated PHI file be... Perform operations on PHI files , Encryption keywords and their corresponding values And based on each keyword in the PHI file To generate a secure index, first start from the state table. Get the latest status value of the current keyword, if There is no Set the corresponding value ; Calculate the key corresponding to the keyword ,in, It is a pseudo-random function; Step 2.2, modify the document identifier of the PHI file. Encrypt Calculate using a delegated pseudo-random function based on the current timestamp ; Step 2.3, based on keywords Corresponding value Generate encryption matrix And set the address of the encryption matrix to ; Step 2.4: From Obtain the latest encryption key ,calculate , and ; Step 2.5: Update the latest status of the keywords to... .

3. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 2, characterized in that: In step 1, , and These are two used for encryption. Invertible matrix and yes Bit key , , For safety parameters, This is a set value.

4. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 2, characterized in that: In step 2.2, the delegated random function consists of two functions: ① Enter the master key and range Output a delegated key ;② Input Delegate Function Sum of values ,if It will output the key. ;if No output; In step 2.3, the encryption matrix The method is as follows: Step 2.3.1: First, set the value... Convert to binary vector ; Step 2.3.2: Convert the binary vector according to the following rules. Transform into dimensional vector ; if ,but ; if ,but i = 1, 2, 3, ..., n; Step 2.3.3: Generate the matrix ; in, It is a randomly selected positive integer. Choose two additional sets of random numbers, each a non-zero random number. and , satisfy ; Step 2.3.4: Data users use invertible matrices and For matrix Encryption obtained ; In step 2.4, an updatable pseudo-random function is used. calculate Using hash functions calculate Using hash functions calculate ; Among them, an updatable pseudo-random function is used. calculate Time refers to the calculation of pseudo-random values , Define a hash function.

5. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 2, characterized in that: In step 2, the ciphertext and Send to cloud server storage, cloud server storage and .

6. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 3, characterized in that: In step 3, the method by which the data user generates an encrypted query request is as follows: Step 3.1: The data user calculates the key corresponding to the keyword. and using a delegated pseudo-random function Function calculation ,in, It is the time range from the initial time to the current time; data users refer to the status table. Get the latest key and calculate ; Step 3.2: Data users search the scope based on keywords. Generate encryption matrix ; Step 3.3: Transfer the search token Send to the cloud server; Step 3.4: The cloud server receives the search token. Then, select the security indexes in descending order of the security indexes uploaded by the data owners. ,calculate If the result is If the result is not found, continue searching until the result is found. The search continues sequentially until the result is obtained. ; Step 3.5: Calculation ,according to Retrieving the security index And through calculation get ,in It is the address of the encryption matrix corresponding to the keyword value. Update the token for the key. The previous one contains keywords Secure index Value, if Update search token =P.KeyUpdate( ),if , constant; Step 3.6: Retrieve the encryption matrix corresponding to the keyword value. ,calculate ,in Used to calculate the trace of a matrix; if the result is less than 0, the value of the keyword is within the range of the keyword being sought, and it is added to the result set; if it is greater than or equal to 0, the value of the keyword is not within the range of the keyword being sought. Step 3.7: [The text appears to be incomplete and contains several grammatical errors. A more accurate translation would require the full context.] Updated to Repeat steps 3.5-3.6 until... The value is ; Step 3.8: Send the result set to the data owner; the search is complete. Step 3.9: The data owner decrypts the data to obtain the final result.

7. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 6, characterized in that: In step 3.2, an encryption matrix is ​​generated. The method is as follows: Step 3.2.1: Given a range Convert them into binary vectors respectively. and ; Step 3.2.2: Transform into the following rules dimensional vector ; if ,but ; if ,but i = 1, 2, 3, ..., n; For vectors Convert to obtain ; if ,but ; if ,but i = 1, 2, 3, ..., n; Step 3.2.3: Generate the matrix ; in, It is a randomly selected positive integer. Choose two additional sets of random numbers, each a non-zero random number. and ,in satisfy ; Step 3.2.4: Use an invertible matrix and For matrix Encryption obtained .

8. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 2, characterized in that: In step 4, the method for updating the key of the security index is as follows: Step 4.1: The data owner generates a new key. ; in, , and These are two used for encryption. Invertible matrix constant, yes Bit key Status table Updated to Record the current key; Step 4.2: The data owner generates an update key token; Step 4.3: The cloud server receives the encrypted message. and update token and Afterwards, cloud server storage And update all encryption matrices as follows: .

9. The user-revocable, non-interactive medical data sharing method with forward and backward privacy according to claim 8, characterized in that: In step 4.2, the method by which the data owner generates the update key token is as follows: Step 4.2.1: Calculate the key corresponding to the keyword Get the current keyword status Based on the current timestamp calculate ,calculate , and ; Step 4.2.2: Calculate the matrix update token and ; Step 4.2.3: encrypt the text Along with the matrix update token and Send to the cloud server.

Citation Information

Patent Citations

  • Compressed sensing-fused privacy protection image retrieval method

    CN111522973A

  • Forward and backward secure and verifiable Boolean query method for ciphertext data

    CN112800445A