A privacy-preserving keyword-oriented similarity query method in smart healthcare
By building a BD-PB tree in smart medical care and combining MFHIPPE and SHE encryption technology, the problems of inefficiency and privacy leakage of multi-dimensional massive medical data in the existing technology are solved, and safe and efficient multi-dimensional similarity query and keyword matching are achieved, ensuring the security of data privacy and query results.
Patent Information
- Application Number
- CN202311152981.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-07
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2043-09-07
AI Technical Summary
The existing privacy protection similarity query and keyword matching technology fail to efficiently combine in smart medical scenarios, resulting in inefficient query efficiency and risk of privacy leakage, which cannot meet the safe and efficient query needs of multi-dimensional massive medical data.
A multidimensional similarity query method based on BD-PB tree was designed, combined with MFHIPPE and SHE encryption technology, and by constructing BD-PB tree indexed multidimensional physiological data and symptom keywords, querying using filter-verification mode, and using endogeneous protection encryption and homomorphic encryption algorithms to ensure data security and query efficiency.
It realizes safe and efficient multi-dimensional similarity query in smart medical care, improves query efficiency, ensures the privacy protection of physiological data and symptom keywords, prevents the leakage of cloud server information, and provides safe and accurate query results.
Smart Images

Figure CN117194516B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of smart medical care, and in particular relates to a keyword-oriented privacy-preserving similarity query method in smart medical care. Background Art
[0002] Thanks to the booming development of cloud computing and the Internet of Things (IoT) technologies, smart healthcare has significantly improved the quality and efficiency of various medical services, including disease diagnosis and prognosis. At the same time, the rapid growth of medical data has created significant challenges for local data management and processing. To address the enormous challenge of maximizing the potential value of this rapidly growing volume of medical data, medical centers are increasingly migrating this data from local locations to powerful third-party cloud servers to provide efficient data intelligence services. However, cloud servers, as third-party service providers, are not entirely trustworthy, and directly outsourcing plaintext data could expose sensitive patient information. To address these privacy concerns, medical centers are opting to outsource encrypted data to cloud servers. While encryption technology can protect data privacy, ciphertext is generally less searchable than plaintext, making it difficult to support rich queries such as similarity and keyword searches. Similarity queries, one of the most important query functions in smart healthcare, aim to identify historical patient records with similar physiological characteristics to the current patient, using smart sensors to continuously collect multi-dimensional physiological data (such as heart rate, blood pressure, and blood oxygen concentration). By analyzing the historical treatment records of these similar patients, doctors can develop more effective and accurate treatment plans. Keyword search is another important query function. It can find historical patients with similar symptoms based on the symptom description keywords provided by the patient (such as cough, fever, etc.). Consider combining these two query functions to query similar patients based on the patient's own symptom description and physiological data measured by portable smart sensors, thereby providing a more reasonable and accurate multi-dimensional similarity query service for symptom keywords. Existing research on privacy-preserving similarity query and keyword matching has been proposed independently, without a solution that effectively combines the two query requirements to provide richer query capabilities.
[0003] Privacy-preserving similarity and keyword queries have garnered considerable attention in academia and industry, and scholars have proposed a variety of privacy-preserving query solutions. However, existing solutions still suffer from limitations in terms of security, efficiency, accuracy, and practicality. Privacy-preserving similarity query solutions are currently categorized as those based on matrix encryption and those based on public key encryption. Based on this, Wong et al. proposed the asymmetric scalar-product-preserving encryption (ASPE) scheme and designed two efficient k-nearest neighbor (kNN) query schemes. Subsequently, Cao, Wang et al. also proposed several similarity query schemes based on ASPE. While these schemes are efficient due to their matrix design, they are vulnerable to known-plaintext attacks. To ensure the security of matrix-based encryption schemes, Zhang et al. developed an asymmetric inner product encryption (AIPE) scheme using global packing technology to balance security and performance requirements. However, the proposed scheme is not robust, as it is secure only when the cloud server is fully trusted. To improve the security of ASPE, Zheng et al. designed an improved ASPE scheme (MASPE) that introduces random numbers into the data and correspondingly increases the dimensionality of the secret key. Furthermore, Zheng et al. utilized the MASPE scheme to implement a weighted similarity query scheme in a privacy-preserving manner. To date, several public-key encryption schemes have been proposed. Generally speaking, such schemes offer higher security than matrix encryption schemes. Rane et al. designed a privacy-preserving scheme for similarity queries in a client-server model based on additive homomorphic encryption. However, since encrypted data in the cloud cannot be compared using additive homomorphic encryption alone, the client's communication and computational overhead is high. To alleviate this burden on the client, Zheng, Guan et al. proposed several schemes based on a dual-cloud model, deploying one cloud to store encrypted data and another to store the keys. Specifically, Zheng et al. introduced kd-trees to efficiently index encrypted datasets in the cloud and utilized Paillier public-key encryption to implement privacy-preserving similarity queries. Guan et al. improved the basic Paillier encryption technique to support privacy-preserving kNN queries. Furthermore, research on privacy-preserving keyword queries currently focuses on searchable encryption, which can be categorized into symmetric searchable encryption (SSE), public key keyword search encryption (PEKS), and attribute-based keyword search encryption (ABKS). These three approaches can also be categorized into symmetric encryption, public key encryption, and attribute-based encryption based on the underlying encryption technologies employed. These are used to implement different scenarios and entity access control requirements. The SSE scheme was first proposed by Song et al. to address the keyword search problem on encrypted data. In this scheme, each keyword is encrypted using a stream cipher, enabling the cloud server to identify the presence of a specific query keyword without knowing the exact keyword.Yao et al., while implementing access authorization, fully considered re-encrypting the ciphertext without increasing its dimensionality, and proposed a searchable encryption scheme for keywords or other identifiers. Li et al. proposed a scheme that supports joint keywords as input, enabling cloud servers to verify the integrity of the results. However, symmetric searchable encryption schemes are only useful when the data owner is also the querying user. PEKS schemes are suitable for this one-to-one scenario, when outsourced data is shared with another authorized user. Boneh et al. proposed the first PEKS scheme. While this scheme can be applied to multi-user settings, it suffers from inefficiencies. According to Kamara et al., the elliptic curve pairing operations used in most PEKS schemes lead to inefficiencies. Gu et al. eliminated the pairing operations from the encryption process, thereby improving the efficiency of PEKS schemes. Zhang et al. proposed a scheme that can search encrypted data in logarithmic time without pairing and can protect the privacy of trapdoors. However, these schemes cannot accommodate more than one querying user. For multiple querying users, Huang et al. proposed an electronic medical record (EMR) framework with access control that maintains anonymity and supports multi-user authorization. Furthermore, their framework enables authorized users who meet the access policy to perform Boolean keyword searches on encrypted EMRs. Miao et al. proposed a secure multi-keyword search scheme based on encrypted EMR attributes, which is applicable to multi-owner environments and can support fine-grained access control.
[0004] However, the above solutions on similarity query and keyword matching are independently proposed, and none of them specifically address the specific needs of multi-dimensional similarity query for keywords in smart medical scenarios. The most direct way to achieve such rich query is to linearly integrate these two types of solutions. Specifically, when a rich query request is initiated, the similarity query solution is first applied to obtain the query that satisfies d(q,a i )≤τ, and then apply the keyword search scheme to verify whether each candidate record meets the However, such integration has problems in terms of efficiency and privacy: on the one hand, this linear query is equivalent to executing two independent queries on two independent data sets, which will inevitably lead to low query efficiency; on the other hand, when a query fails, this linear integration method will directly reveal which query type is not satisfied, which will lead to privacy issues. Therefore, how to design a secure and efficient keyword-oriented multidimensional similarity query scheme is still extremely challenging and has great research significance. (1) First, most medical data are massive and multidimensional. In a piece of medical data, there are different types of medical information depending on the physical meaning. Designing a simple linear query algorithm for this massive multidimensional and rich data is very inefficient; (2) Second, medical data contains a lot of sensitive information about patients. Encrypting and protecting the privacy of data with different meanings will inevitably affect query efficiency, and simple encryption schemes do not have high security. Therefore, how to design a secure and efficient encryption scheme and query algorithm is extremely challenging; (3) Finally, there are many types of query services that can be mined by intelligent electronic medical systems, and most existing solutions only study a certain type of query request independently. Therefore, there is a lack of efficient integration that can meet different types of query requests while simultaneously protecting the privacy of medical data, user queries, and query results. Consequently, there is a lack of rich query methods and application systems that can fully mine and utilize all types of medical data, while also leveraging this rich data information to provide efficient and privacy-protected rich query methods and application systems to ensure the security and practicality of smart medical services. Summary of the Invention
[0005] In response to the problems existing in the above background technology, the purpose of the present invention is to provide a privacy-preserving keyword-oriented similarity query method in smart medical care, which is specifically implemented through the following technical solutions:
[0006] A privacy-preserving keyword-oriented similarity query method in smart healthcare is proposed. This method is based on a typical medical data outsourcing system application scenario. The outsourcing system includes the following three participants:
[0007] 1) Medical Center: Responsible for managing, generating, and maintaining public information in the system, distributing key information to other entities in the system, and providing original medical data with high credibility;
[0008] 2) Query user: Initiate a query request to the cloud server to obtain keyword-oriented privacy-preserving similarity medical service data that matches the query;
[0009] 3) Cloud Server: CS = {CS1, CS2}, responsible for providing keyword-oriented similarity query services in a ciphertext environment, with super storage and computing capabilities;
[0010] The outsourcing system also includes six modules:
[0011] 1) System initialization module: executed by the medical center, performs system initialization, generates system public parameters and entity public and private keys;
[0012] 2) Data organization module: organizes local data sets into a tree structure through the medical center to prepare for data encryption and outsourcing;
[0013] 3) Data encryption module: This module allows the medical center to adopt different encryption methods based on the constructed BD-PB tree and the different key values of the nodes;
[0014] 4) Query trapdoor generation module: User U i Initiate a query request l u ≤l, encrypt it and send it to the cloud server CS1;
[0015] 5) Query service module: When the cloud server S1 receives the session key ssk and encrypted query token sent by the user Perform keyword-oriented similarity query on the encrypted tree E(T), which includes filtering and verification stages;
[0016] 6) Data decryption module: It allows users to decrypt the encrypted results returned by the query using the keys they have to obtain the final plaintext results.
[0017] Furthermore, the specific steps of the system initialization module are:
[0018] 1) According to the input security parameters Run MFHIPPE.KeyGen(1 λ )Key generation algorithm, generating an asymmetric bilinear group and select the generator and Given the dimension n of the physiological data vector, generate n+4 dimensional random reversible matrix B in the range, and set B * =det(B)·(B -1 ) T ;Finally, we get the public parameters of the MFHIPPE cryptographic system: where Q is The polynomial-sized subset of the data vector encryption key: EK = (g1, B), and the query vector trapdoor generation key: TK = (g2, B * );
[0019] 2) According to the input security parameters run Key generation algorithm, set the plaintext space to And randomly generate a Number of bit lengths A k p A prime number p of bit length and a k p The set of prime numbers with bit length and calculate and Finally, the public parameters of the SHE cryptosystem are obtained: And the private key: Run the following SHE encryption algorithm to generate four ciphertexts {E(0)1, E(0)2, E(1), E(-1)}, where {E(0)1, E(0)2} is used as the public key of the SHE public key version PHE, that is, pk = (E(0)1, E(0)2);
[0020] SHE encryption algorithm: Input: m and sk, output: ciphertext c, as follows: in 3) Initialize the system symptom keyword dictionary x i (1≤i≤t) is a positive integer, the maximum number of symptom keywords that the user may provide is set to l, and l+1-dimensional reversible matrices M1 and M2 are randomly generated as the encryption keys of the symptom keyword vector, and an l+1-dimensional random binary vector S is used as the split vector;
[0021] 4) The medical center publishes {pp, pk, PP, E(1), E(-1)}, sends {M1, M2, S, TK} to the user through a secure channel, sends sk to the cloud server S2, and keeps the key EK by itself.
[0022] Furthermore, the specific steps of the data organization module are:
[0023] Outsourcing system has symptom keyword dictionary x i (1≤i≤t) is a positive integer, medical health data set where a i is an n-dimensional physiological data vector, It is the corresponding symptom keyword set, and the data set is organized by constructing a new data structure BD-PB tree The top-down construction steps of the BD-PB tree are:
[0024] Step 1) For internal nodes, taking the root node as an example, there are two cases for selecting the node value:
[0025] Case 1: Select the key value of the node (p1, p2) based on the physiological data vector. First, select the two data records with the largest Euclidean distance. As a benchmark vector, based on p1 and p2, the current dataset Divided into two sub-datasets and For each Both have d(a i ,p1)≤d(a i ,p2), for each Both have d(a i ,p1)>d(a i ,p2);
[0026] Case 2: Select the key value of the node x based on the symptom keyword j , from the symptom keyword dictionary Randomly select a symptom keyword Then, based on this keyword, the dataset Divided into two sub-datasets and For each have For each have
[0027] Step 2) After determining the key value of the root node, and Construct the left subtree T of the root node l and right subtree T r ;
[0028] Step 3) Repeat Step 1-2 until there is only one record left in the sub-dataset and all the keywords in the symptom keyword dictionary are used to construct the path. Finally, this record is used as the leaf node of the path and stores the original data vector record (id i ,a i )(1≤i≤m).
[0029] Furthermore, the specific operations of the data encryption module are:
[0030] 1) When the internal node is the reference vector (p1, p2), the encryption steps are as follows:
[0031] Step 1: First construct two (n+2) dimensional vectors u L and u R :
[0032] u L=(-d(p1,p2),||p1|| 2 -||p2|| 2 ,p2-p1);
[0033] u R =(d(p1,p2),||p1|| 2 -||p2|| 2 ,p2-p1);
[0034] Step 2: Run the following MFHIPPE encryption algorithm to L and u R Encrypt them separately to get u L and u R Ciphertext and MFHIPPE encryption algorithm, MFHIPPE.Enc(PP,EK,u L / R ), input: PP, EK, u L / u R , output:
[0035] step a: for data vector u L and u R , select random numbers γ2>γ1>0 and
[0036] Step b: Construct two n+4 dimensional vectors u′ L and u′ R :
[0037] u′ L =(-γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1);
[0038] u′ R =(γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1);
[0039] stepc: Generate two ciphertext pairs about (p1, p2):
[0040]
[0041] Output
[0042] 2) When the internal node is the symptom keyword x i The encryption steps are as follows:
[0043] Step 1: First construct a (l+1)-dimensional symptom keyword vector
[0044] Step 2: Use the randomly generated (l+1)-dimensional binary split vector S to split P i Split into two vectors P′ i and P″ i :
[0045]
[0046] Step 3: vector P′ i and P″ i Expand into diagonal matrices respectively and
[0047] Step 4: Finally get the symptom keyword x i The ciphertext is represented as where r p,1 and r p,2 are two non-zero random integers;
[0048] 3) For leaf nodes (id i ,a i ), the encryption steps are as follows:
[0049] Step 1: First construct a (n+4)-dimensional vector z i =(a i ,||a i || 2 ,1,r i ,r i ),in And r i ≠0;
[0050] Step 2: Encrypt the ID using the SHE public key version PHE encryption algorithm i get
[0051] Step 3: Use the SHE public key version PHE encryption algorithm to encrypt z i Each dimension of data is encrypted to obtain the encrypted vector E(z i )=(E(z i,1 ),E(z i,2 ),…,E(z i,n+4 )),in and
[0052] Finally, the encrypted leaf node {E(id i ),E(z i )}.
[0053] Furthermore, the specific operations of querying the trapdoor generation module are:
[0054] 1) For the similarity query condition (q,τ), the encryption steps are as follows:
[0055] Step 1: First construct an (n+2)-dimensional vector t1 and a (n+4)-dimensional vector t2:
[0056] t1=(2τ,1,2q)
[0057] t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t )(where r t Non-zero is a random number)
[0058] Step 2: Run the following MFHIPPE query trapdoor generation algorithm to obtain the encrypted query trapdoor for vector t1
[0059] MFHIPPE query trapdoor generation algorithm, MFHIPPE.TokenGen(PP,TK,t1), input: PP,TK,t1, output:
[0060] Stepa: For vector t1 = (2τ, 1, 2q), select random numbers γ4>γ3>0, and
[0061] Step b: Construct n+4 dimensional vector t′1=(2γ4τ,γ4,2γ4q,1,γ3);
[0062] Step c: Generate query trapdoor
[0063] Output query trapdoor
[0064] Step3: For vector t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t ), encrypted with SHE public key version PHE as E(t2)=(E(t i,1 ),E(t i,2 ),…,E(t i,n+4 )),in and
[0065] 2) For symptom keyword combination query conditions The encryption steps are as follows:
[0066] Step 1: User randomly generates ll locally u False symptom keywords that are not in the medical center's symptom keyword dictionary In this way, the new symptom keyword combination is
[0067] Step 2: Construct polynomial b based on the new keyword combination l (y-X1)(y-X2)…(tX l )=b0+b1y+…+b l y l , construct the symptom keyword query vector Q based on this polynomial coefficient u =(b0,b1,…,b l );
[0068] Step 3: Use the random binary vector S to transform the query vector Q u Randomly split into two vectors Q′ u and Q″ u :
[0069]
[0070] Step 4: Then Q′ u and Q″ u Expand into diagonal matrices respectively and
[0071] Step 5: This is the symptom keyword set The constructed ciphertext is represented as where r q,1 and r q,2 are two non-zero random integers;
[0072] Finally, user U j Choose a session key ssk and use it with the encrypted query token Sent to cloud server S1 through a secure channel.
[0073] Furthermore, the specific operations of the query service module are:
[0074] 1) Filtration stage
[0075] Step 1: First initialize a candidate dataset is empty;
[0076] Step 2: Perform recursive query starting from the root node:
[0077] When the query node is an internal node, there are two cases:
[0078] Case 1: If the internal node is the ciphertext pair of the reference vector Cloud server S1 runs the following MFHIPPE verification algorithm to obtain u L ,u R The sign of the inner product result with t1:
[0079] MFHIPPE verification algorithm MFHIPPE.Check(CT u ,TK v ), input: CT u and TK v , output: 0 or 1, 0 represents 1 representative
[0080] Step a: Calculation
[0081]
[0082]
[0083] Step b: Search whether there is z∈Q such that If it exists, get
[0084] z=<u′,v′> ;
[0085] Step c: If z>0, the algorithm outputs 1; otherwise, it outputs 0;
[0086] The key idea of the above algorithm: sign(z)=sign(<u′,v′> )=sign(<u,v> )
[0087] Proof: z =<u′,v′> =αβdet(B)(γ2γ4<u,v> +γ1+γ3)
[0088] because
[0089] If z = 0, then It does not hold, so z≠0;
[0090] If z>0, then
[0091] Similarly, if z<0, there is<u,v> <0;
[0092] In summary, sign(z)=sign(<u′,v′> )=sign(<u,v> ). According to the MFHIPPE verification algorithm, if Output 1, then continue filtering the right subtree;
[0093] prove:
[0094]
[0095] According to the principle of PB tree, The data that meets the conditions falls into the right subtree of the PB tree;
[0096] Similarly, it can be proved When , continue to filter the left subtree;
[0097] like or Then both the left and right subtrees need to be filtered;
[0098] Case 2: If the internal node is the symptom keyword x i The ciphertext E1(x i ):
[0099] First, define the ciphertext E1(x i )and The operation Θ between them is:
[0100]
[0101] in The original vector P i and Q u The diagonal matrix obtained by expansion;
[0102] When filtering to internal nodes, the symptom keyword is x i The ciphertext E1(x i ), calculate
[0103]
[0104] Inference: If the result is 0, it means that the current node keyword is the symptom keyword provided by the patient, and continue to visit the left subtree; otherwise, the current node is not the symptom keyword provided by the patient, and continue to visit the right subtree;
[0105] The key idea of the above inference is: Assume that the node currently filtered is but And construct polynomials based on true and false mixed keyword combinations
[0106] According to the polynomial coefficients, Q u =(b0,b1,…,b l ),like That is x i is a real symptom keyword provided by the user; if That is x i Not actual symptom keywords provided by the user;
[0107] When the query node is a leaf node, it is directly added to the candidate set And backtrack; finally, recursively search the entire encrypted index tree E(T) and return the candidate data set
[0108] 1) Verification phase
[0109] Step 1: Cloud server S1 first calculates the homomorphic properties of the SHE encryption scheme Then, the following SHE symbolic computation protocol is run in collaboration with the cloud server S2, and S2 returns For S1, note that when m>0, sign(m)=1, otherwise sign(m)=-1;
[0110] The SHE symbol computation protocol assumes that S1 has the ciphertext E(m) and E(-1), and S2 has the SHE symmetric key sk:
[0111] Step a: S1 randomly selects two integers Satisfy r1>r2>0, and calculate Then S1 sends E(r1m-r2) to S2;
[0112] Step b: After obtaining E(r1m-r2), S2 uses the SHE symmetric key Decrypted to get: like Then there is otherwise Therefore, the sign of the original plaintext m can be obtained according to the sign of r1m-r2 (because r1>r2>0);
[0113] Now suppose that E(s i ) to express like That is, d(a i ,q)≤τ, then E(s i )=E(-1), otherwise E(s i )=E(1);
[0114] prove:
[0115]
[0116] Step 2: S1 gets E(s i ), calculate E(s i *id i )=E(s i )*E(id i );
[0117] Step 3: S1 randomly selects two random numbers Satisfy r i,1 >r i,2 , and then calculate the following two ciphertexts:
[0118]
[0119] Then, S1 sends the two ciphertexts to S2.
[0120] Furthermore, the specific operations of the data decryption module are:
[0121] Step 1: After S2 receives the two ciphertexts calculated and sent by S1 in the previous module, it first decrypts x with the key sk and obtains sign(x). Then, S2 can further obtain sign(s) based on sign(x). i *id i ), when sign(s i *id i )=-1, due to E(s i )=E(-1) holds, and further due to Corresponding id i Need to be returned to the user as a result;
[0122] Step 2: Get {AES ssk (r i,1 ||r i,2 ),x}, the querying user decrypts r using the session key ssk i,1 and r i,2 , and finally calculated
[0123] This server returns all result sets that satisfy the query request To the user, that is:
[0124] Based on the in-depth study and analysis of the existing privacy protection technologies and research results of similarity query and keyword matching, this invention realizes a safe and efficient keyword-oriented multi-dimensional similarity query solution and application system for smart medical care. It is a medical data set with m data records, each record includes an ID i , an n-dimensional physiological data vector a i and a corresponding set of symptom keywords The query request initiated by the query user is Where q is the n-dimensional physiological data vector to be queried, τ is the similarity query range, Is the set of symptom keywords to be queried. The query result returns the IDs of the data records whose Euclidean distance to q is less than or equal to τ, that is, where d(·,·) represents the Euclidean distance.
[0125] This invention innovates a method for performing different privacy protection queries on two types of data, namely patient physiological data and symptom keywords, to ensure data security in the entire process of data outsourcing, data query, data return and data recovery of the entire medical query service system. The main innovations include: (1) By designing a new data structure BD-PB tree to simultaneously index the two data types of multidimensional physiological data and symptom keywords in the medical data set, the query efficiency is significantly improved compared to sequentially indexing different types of data; (2) Drawing on the Hilbert filter condition and the properties of polynomial functions, a multidimensional similarity query algorithm based on the BD-PB tree for symptom keywords is designed in a "filter-verify" query mode, further improving the query efficiency on the server side; (3) Based on the traditional functional inner product protection encryption scheme, it is improved according to the connection between each entity, and an innovative inner product protection encryption scheme is designed that can only judge the positive or negative inner product of two vectors. MFHIPPE ensures that the original physiological data vectors and their inner product values will not be leaked, ensuring the security of the user's physiological data information; (4) Based on the characteristics of polynomial functions, vector splitting and matrix encryption technologies, an innovative lightweight symmetric matrix encryption technology is designed, which can realize the secure element multiplication of keyword vectors and prevent the cloud server from recovering the original keyword information through partial ciphertext information; (5) By integrating a symmetric homomorphic encryption technology SHE, a secure and efficient data symbol calculation algorithm is designed based on the dual-cloud architecture, and the interactive communication between the two clouds is used to verify the filtered candidate data, ensuring the correctness of the final query results and the security and efficiency of the verification process. BRIEF DESCRIPTION OF THE DRAWINGS
[0126] Figure 1 This is a system model diagram of the present invention;
[0127] Figure 2 It is the algorithm block diagram and data flow diagram of the present invention;
[0128] Figure 3 This is a sample diagram of the BD-PB tree of the present invention. DETAILED DESCRIPTION
[0129] The present invention is further described below in conjunction with the accompanying drawings to facilitate a better understanding of the present technical solution.
[0130] This invention is based on the typical medical data outsourcing system application scenario, the system model is as follows Figure 1 As shown, it includes the following three parties:
[0131] (1) Medical Center: Responsible for managing, generating, and maintaining public information in the system, distributing key information to other entities in the system, and providing original medical data with high credibility;
[0132] (2) Query user: Initiate a query request to the cloud server to obtain keyword-oriented privacy-preserving similarity medical service data that matches the query;
[0133] (3) Cloud server: CS = {CS1, CS2}, responsible for providing keyword-oriented similarity query services in a ciphertext environment, with super storage and computing capabilities.
[0134] The system consists of 6 modules, the algorithm block diagram and data flow diagram are as follows Figure 2 As shown:
[0135] (1) System initialization module
[0136] The medical center performs the following operations to initialize the system and generate system public parameters and entity public and private keys:
[0137] 1) According to the input security parameters Run MFHIPPE.KeyGen(1 λ )Key generation algorithm, generating an asymmetric bilinear group and select the generator and Given the dimension n of the physiological data vector, generate n+4 dimensional random reversible matrix B in the range, and set B * =det(B)·(B -1 ) T Finally, we get the public parameters of the MFHIPPE cryptographic system: where Q is The polynomial-sized subset of the data vector encryption key: EK = (g1, B), and the query vector trapdoor generation key: TK = (g2, B * );
[0138] 2) According to the input security parameters run Key generation algorithm, set the plaintext space to And randomly generate a Number of bit lengths A k p A prime number p of bit length and a k p The set of prime numbers with bit length and calculate and Finally, the public parameters of the SHE cryptosystem are obtained: And the private key: Run the following [SHE encryption algorithm] to generate four ciphertexts {E(0)1, E(0)2, E(1), E(-1)}, where {E(0)1, E(0)2} is used as the public key of the SHE public key version PHE, that is, pk = (E(0)1, E(0)2);
[0139] [SHE encryption algorithm] (input: m and sk, output: ciphertext c), the details are as follows: in
[0140] 3) Initialize the system symptom keyword dictionary is a positive integer), set the maximum number of symptom keywords that the user may provide to be l, randomly generate l+1-dimensional reversible matrices M1 and M2 as the encryption keys of the symptom keyword vector, and an l+1-dimensional random binary vector S as the split vector;
[0141] 4) The medical center publishes {pp, pk, PP, E(1), E(-1)}, sends {M1, M2, S, TK} to the user through a secure channel, sends sk to the cloud server S2, and keeps the key EK by itself.
[0142] (2) Data organization module
[0143] The medical center organized local data sets into a tree structure in preparation for data encryption and outsourcing:
[0144] This system has a symptom keyword dictionary is a positive integer), medical and health data set where a i is an n-dimensional physiological data vector, is the corresponding symptom keyword set. This data set is organized by constructing a new data structure BD-PB tree BD-PB tree sample Figure 3 shown.
[0145] Explanation: BD-PB tree is designed by integrating the key ideas of binary decision tree and PB tree, which can effectively support keyword-oriented similarity query. A binary decision tree is a complete binary tree, where each node is a keyword. Assuming that the keyword value of the current node is x, the left subtree data of the current node contains the keyword, and the right subtree data does not contain the keyword. For PB tree, the key value of each node is two base vectors selected from all data vector records, denoted as p1 and p2. In the left subtree T l The data vector a in satisfies d(a,p1)≤d(a,p2) (d(·,·) is the Euclidean distance), and in the right subtree T r The data vector b in satisfies d(b,p1)>d(b,p2).
[0146] The top-down construction steps of the BD-PB tree are:
[0147] Step 1: For internal nodes, taking the root node as an example, there are two cases for selecting the node value:
[0148] Case 1: Select the key value of the node based on the physiological data vector (p1, p2). In this case, the key value selection method is the same as the PB tree. First, select the two data records with the largest Euclidean distance. As a benchmark vector. Based on p1 and p2, the current dataset Divided into two sub-datasets and For each Both have d(a i ,p1)≤d(a i ,p2), for each Both have d(a i ,p1)>d(a i ,p2).
[0149] Case 2: Select the key value of the node x based on the symptom keyword j In this case, from the symptom keyword dictionary Randomly select a symptom keyword Then, based on this keyword, the dataset Divided into two sub-datasets and For each have For each We have
[0150] Step 2: After determining the key value of the root node, and Construct the left subtree T of the root node l and right subtree T r .
[0151] Step 3: Repeat Step 1-2 until there is only one record left in the sub-dataset and all the keywords in the symptom keyword dictionary are used to construct the path. Finally, this record is used as the leaf node of the path and stores the original data vector record (id i ,a i )(1≤i≤m). Note: All values in the symptom keyword dictionary will be used to construct the tree. That is, when there is only one data item left in the final data set, it is still necessary to partition the data based on the remaining keywords in the dictionary that have not been used to construct the ancestor node of the current node until all values in the dictionary are used up.
[0152] (3) Data encryption module
[0153] The medical center uses different encryption methods for the constructed BD-PB tree according to the different key values of the nodes:
[0154] 1) When the internal node is the reference vector (p1, p2), the encryption steps are as follows:
[0155] Step 1: First construct two (n+2) dimensional vectors u L and u R :
[0156] u L =(-d(p1,p2),||p1|| 2 -||p2|| 2 ,p2-p1)
[0157] u R =(d( x1 ,p2),||p1|| 2 -||p2|| 2 ,p2-p1)
[0158] Step 2: Run the following [MFHIPPE encryption algorithm] to L and u R Encrypt them separately to get u L and u R Ciphertext and
[0159]
MFHIPPE encryption algorithm
[0160] step a: for data vector u L and u R , select random numbers γ2>γ1>0 and
[0161] Step b: Construct two n+4 dimensional vectors u′ L and u′ R :
[0162] u′ L =(-γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1)
[0163] u′ R =(γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1)
[0164] Step c: Generate two ciphertext pairs about (p1, p2):
[0165]
[0166] Output
[0167] 1) When the internal node is the symptom keyword x i The encryption steps are as follows:
[0168] Step 1: First construct a (l+1)-dimensional symptom keyword vector Step 2: Use the randomly generated (l+1)-dimensional binary split vector S to split P i Split into two vectors P′ i and P″ i :
[0169]
[0170] Step 3: vector P′ i and P″ i Expand into diagonal matrices respectively and
[0171] Step 4: Finally get the symptom keyword x i The ciphertext is represented as where r p,1 and r p,2 are two non-zero random integers.
[0172] 1) For leaf nodes (id i ,a i ), the encryption steps are as follows:
[0173] Step 1: First construct a (n+4)-dimensional vector z i =(a i ,||a i || 2 ,1,r i ,r i ),in And r i ≠0;
[0174] Step 2: Encrypt the ID using the SHE public key version PHE encryption algorithm i get
[0175] Step 3: Use the SHE public key version PHE encryption algorithm to encrypt z i Each dimension of data is encrypted to obtain the encrypted vector E(z i )=(E(z i,1 ),E(z i,2 ),…,E(z i,n+4 )),in and
[0176] Finally, the encrypted leaf node {E(id i ),E(z i )}.
[0177] (4) Query the trapdoor generation module
[0178] User U j Query request initiated l u ≤l, encrypt it and send it to the cloud server CS1:
[0179] 1) For the similarity query condition (q,τ), the encryption steps are as follows:
[0180] Step 1: First construct an (n+2)-dimensional vector t1 and a (n+4)-dimensional vector t2:
[0181] t1=(2τ,1,2q)
[0182] t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t )(where r t Non-zero is a random number)
[0183] Step 2: Run the following [MFHIPPE query trapdoor generation algorithm] to obtain the encrypted query trapdoor for vector t1
[0184] [MFHIPPE query trapdoor generation algorithm] MFHIPPE.TokenGen(PP,TK,t1)(Input: PPO,TK,t1, Output: ):
[0185] Step a: For vector t1 = (2τ, 1, 2q), select random numbers γ4 > γ3 > 0, and
[0186] Step b: Construct an n+4-dimensional vector t′1=(2γ4τ,γ4,2γ4q,1,γ3);
[0187] Step c: Generate query trapdoor
[0188] Output query trapdoor
[0189] Step3: For vector t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t ), encrypted with SHE public key version PHE as E(t2)=(E(t i,1 ),E(t i,2 ),…,E(t i,n+4 )),in and
[0190] 1) For symptom keyword combination query conditions The encryption steps are as follows:
[0191] Step 1: User randomly generates ll locally u False symptom keywords that are not in the medical center's symptom keyword dictionary In this way, the new symptom keyword combination is
[0192] Step 2: Construct polynomial b based on the new keyword combinationl (y-X1)(y-X2)…(yX l )=b0+b1y+…+b l y l , construct the symptom keyword query vector Q based on this polynomial coefficient u =(b0,b1,…,b l );
[0193] Step 3: Use the random binary vector S to transform the query vector Q u Randomly split into two vectors Q′ u and Q″ u :
[0194]
[0195] Step 4: Then Q′ u and Q″ u Expand into diagonal matrices respectively and
[0196] Step 5: This is the symptom keyword set The constructed ciphertext is represented as where r q,1 and r q,2 are two non-zero random integers;
[0197] Finally, user U j Choose a session key ssk and use it with the encrypted query token Sent to cloud server S1 through a secure channel.
[0198] (5) Query service module
[0199] When the cloud server S1 receives the session key ssk and encrypted query token sent by the user Perform keyword-oriented similarity query on the encrypted tree E(T), which includes filtering and verification stages:
[0200] 1) Filtering stage:
[0201] Step 1: First initialize a candidate dataset is empty;
[0202] Step 2: Perform recursive query starting from the root node:
[0203] When the query node is an internal node, there are two cases:
[0204] Case 1: If the internal node is the ciphertext pair of the reference vector Cloud server S1 runs the following [MFHIPPE verification algorithm] to obtain u L ,u R The sign of the inner product result with t1:
[0205]
MFHIPPE verification algorithm
[0206] Step a: Calculation
[0207]
[0208]
[0209] Step b: Search whether there is z∈Q such that If it exists, get
[0210] z=<u′,v′> ;
[0211] Step c: If z>0, the algorithm outputs 1; otherwise, it outputs 0;
[0212] The key idea of the above algorithm: sign(z)=sign(<u′,v′> )=sign(<u,v> )
[0213] Proof: z =<u′,v′> =αβdet(B)(γ2γ4<u,v> +γ1+γ3)
[0214] because
[0215] If z = 0, then It does not hold, so z≠0;
[0216] If z>0, then
[0217] Similarly, if z<0, there is<u,v> <0;
[0218] In summary, sign(z)=sign(<u′,v′> )=sign(<u,v> ).
[0219] According to the [MFHIPPE verification algorithm], if Output 1, then continue filtering the right subtree;
[0220] prove:
[0221]
[0222] According to the principle of PB tree, The data that meets the conditions falls into the right subtree of the PB tree;
[0223] Similarly, it can be proved When , continue to filter the left subtree;
[0224] like or Then both the left and right subtrees need to be filtered.
[0225] Case 2: If the internal node is the symptom keyword x i The ciphertext E1(x i ):
[0226] First, define the ciphertext E1(x i )and The operation Θ between them is:
[0227]
[0228] in The original vector P i and Q u The diagonal matrix obtained by expansion;
[0229] When filtering to internal nodes, the symptom keyword is x i The ciphertext E1(x i ), calculate
[0230]
[0231] Inference: If the result is 0, it means that the current node keyword is the symptom keyword actually provided by the patient, and continue to access the left subtree; otherwise, the current node is not the symptom keyword actually provided by the patient, and continue to access the right subtree.
[0232] The key idea of the above inference is: Assume that the node currently filtered is but And construct polynomials based on true and false mixed keyword combinations According to the polynomial coefficients, Q u =(b0,b1,…,b l ),like That is x i is a real symptom keyword provided by the user; if That is xi Not a true user-provided symptom keyword.
[0233] When the query node is a leaf node, it is directly added to the candidate set And backtrack; finally, recursively search the entire encrypted index tree E(T) and return the candidate data set
[0234] 1) Verification phase:
[0235] Step 1: Cloud server S1 first calculates the homomorphic properties of the SHE encryption scheme Then, the following [SHE symbolic computation protocol] is run in collaboration with the cloud server S2, and S2 returns Given S1, note that when m>0, sign(m)=1, otherwise sign(m)=-1.
[0236] SHE symbolic computation protocol (assuming S1 has the ciphertexts E(m) and E(-1), and S2 has the SHE symmetric key sk):
[0237] Step a: S1 randomly selects two integers Satisfy r1>r2>0, and calculate Then S1 sends E(r1m-r2) to S2;
[0238] Step b: After obtaining E(r1m-r2), S2 uses the SHE symmetric key Decrypted to get:
[0239]
[0240] like Then there is otherwise Therefore, the sign of the original plaintext m can be obtained according to the sign of r1m-r2 (because r1>r2>0);
[0241] Now suppose that E(s i ) to express like (ie d(a i ,q)≤τ), then E(s i )=E(-1), otherwise E(s i )=E(1);
[0242] prove:
[0243]
[0244] Step 2: After S1 obtains E(si), calculate E(si *id i )=E(s i )*E(id i );
[0245] Step 3: S1 randomly selects two random numbers Satisfy r i,1 >r i,2 , and then calculate the following two ciphertexts:
[0246]
[0247] Then, S1 sends the two ciphertexts to S2.
[0248] (6) Data decryption module
[0249] Step 1: After receiving the two ciphertexts calculated and sent by S1 in the previous module, S2 first decrypts x with the key sk and obtains sign(x). Then, S2 can further obtain sign(s) based on sign(x). i *id i ). When sign(s i *id i )=-1, due to E(s i )=E(-1) holds, and further due to Corresponding id i It needs to be returned to the user as a result. Specifically, S2 returns {AES ssk (r i,1 ||r i,2 ),x}, where AES ssk (r i,1 ||r i,2 ) is calculated by S1, and x is calculated by S2.
[0250] Step 2: Get {AES ssk (r i,1 ||r i,2 ),x}, the querying user decrypts r using the session key ssk i,1 and r i,2 , and finally calculated This server returns all result sets that satisfy the query request To the user, that is
[0251] Drawing on the key ideas of binary classification trees and partition trees, this paper innovatively designs a new tree-like data structure, the BD-PB tree, which can simultaneously index two data types, multidimensional physiological data and symptom keywords, in medical datasets. The tree structure design makes the query complexity sublinear with the dataset size and significantly improves query efficiency compared to methods that sequentially index two different types of data.
[0252] Drawing on the properties of Hilbert filter conditions and polynomial functions, this paper designs an efficient keyword-oriented multidimensional similarity query algorithm based on the BD-PB tree using a "filter-verify" query model. This algorithm can achieve efficient pruning based on the construction principle of the BD-PB tree, speeding up queries while ensuring the correctness of the query algorithm, further improving the query efficiency on the server side.
[0253] This paper improves on the traditional functional inner product protection encryption scheme based on the connections between the interacting entities in this system. It innovatively designs an inner product protection encryption scheme MFHIPPE that can only determine the positive or negative inner product of two vectors. It ensures that the original physiological data vectors and their inner product values will not be leaked, effectively protecting the privacy of the user's physiological data information.
[0254] Based on the characteristics of polynomial functions, vector splitting, and matrix encryption, this paper designs a lightweight polynomial-based symmetric matrix encryption technology. It can implement secure element multiplication between keyword vectors and effectively prevent cloud servers from recovering original keyword information through stored partial ciphertext information, thereby ensuring the privacy of users' original symptom keyword information.
[0255] The present invention introduces a symmetric homomorphic encryption technology SHE and designs a secure and efficient data symbol calculation algorithm based on SHE encryption technology based on a dual-cloud architecture. It can use the interactive communication between the two clouds to quickly verify the filtered candidate data, ensuring the correctness of the final query results and the security and efficiency of the verification process.
Claims
1. A privacy-preserving similarity query method for keywords in smart healthcare, characterized by: This method is based on a typical medical data outsourcing system application scenario, which includes the following three participants: 1) Medical Center: Responsible for managing, generating, and maintaining public information in the system, distributing key information to other entities in the system, and providing original medical data with high credibility; 2) Query user: Initiate a query request to the cloud server to obtain keyword-oriented privacy-preserving similarity medical service data that matches the query; 3) Cloud Server: CS = {CS1, CS2}, responsible for providing keyword-oriented similarity query services in a ciphertext environment, with super storage and computing capabilities; The outsourcing system also includes six modules: 1) System initialization module: executed by the medical center, performs system initialization, generates system public parameters and entity public and private keys; 2) Data organization module: organizes local data sets into a tree-structured BD-PB tree through the medical center to prepare for data encryption and outsourcing; 3) Data encryption module: This module allows the medical center to adopt different encryption methods based on the constructed BD-PB tree and the different key values of the nodes; 4) Query trapdoor generation module: User U j Initiate a query request It is encrypted and sent to the cloud server CS1; 5) Query service module: When the cloud server S1 receives the session key ssk and encrypted query token sent by the user Perform keyword-oriented privacy-preserving similarity query on the encrypted tree E(T), which includes filtering and verification stages. 6) Data decryption module: It allows users to decrypt the encrypted results returned by the query using the keys they have to obtain the final plaintext results; The specific steps of the data organization module are: Outsourcing system has symptom keyword dictionary is a positive integer, medical and health data set where a i is an n-dimensional physiological data vector, It is the corresponding symptom keyword set, and the data set is organized by constructing a new data structure BD-PB tree The top-down construction steps of the BD-PB tree are: Step 1) For internal nodes, taking the root node as an example, there are two cases for selecting the node value: Case 1: Select the key value of the node (p1, p2) based on the physiological data vector. First, select the two data records with the largest Euclidean distance. As a benchmark vector, based on p1 and p2, the current dataset Divided into two sub-datasets and For each Both have d(a i ,p1)≤d(a i ,p2), for each Both have d(a i ,p1)>d(a i ,p2); Case 2: Select the key value of the node x based on the symptom keyword j , from the symptom keyword dictionary Randomly select a symptom keyword Then, based on this keyword, the dataset Divided into two sub-datasets and For each have For each have Step 2) After determining the key value of the root node, and Construct the left subtree T of the root node l and right subtree T r ; Step 3) Repeat Step 1-2 until there is only one record left in the sub-dataset and all the keywords in the symptom keyword dictionary are used to construct the path. Finally, this record is used as the leaf node of the path and stores the original data vector record (id i ,a i )(1≤i≤m).
2. A privacy-preserving similarity query method for keywords in smart medical care as described in claim 1, characterized in that The specific steps of the system initialization module are: 1) According to the input security parameters Run MFHIPPE.KeyGen(1 λ )Key generation algorithm, generating an asymmetric bilinear group and select the generator and Given the dimension n of the physiological data vector, generate n+4 dimensional random reversible matrix B in the range, and set B * =det(B)·(B -1 ) T ;Finally, we get the public parameters of the MFHIPPE cryptographic system: where Q is The polynomial-sized subset of the data vector encryption key: EK = (g1, B), and the query vector trapdoor generation key: TK = (g2, B * ); 2) According to the input security parameters run Key generation algorithm, set the plaintext space to And randomly generate a Number of bit lengths A k p A prime number p of bit length and a k p The set of prime numbers with bit length and calculate and Finally, the public parameters of the SHE cryptosystem are obtained: And the private key: Run the following SHE encryption algorithm to generate four ciphertexts {E(0)1, E(0)2, E(1), E(-1)}, where {E(0)1, E(0)2} is used as the public key of the SHE public key version PHE, that is, pk = (E(0)1, E(0)2); SHE encryption algorithm: Input: m and sk, output: ciphertext c, as follows: in 3) Initialize the system symptom keyword dictionary x i (1≤i≤t) is a positive integer, the maximum number of symptom keywords that the user may provide is set to l, and l+1-dimensional reversible matrices M1 and M2 are randomly generated as the encryption keys of the symptom keyword vector, and an l+1-dimensional random binary vector S is used as the split vector; 4) The medical center publishes {pp, pk, PP, E(1), E(-1)}, sends {M1, M2, S, TK} to the user through a secure channel, sends sk to the cloud server S2, and keeps the key EK by itself.
3. A privacy-preserving similarity query method for keywords in smart medical care as described in claim 1, characterized in that The specific operations of the data encryption module are: 1) When the internal node is the reference vector (p1, p2), the encryption steps are as follows: Step 1: First construct two (n+2) dimensional vectors u L and u R : u L =(-d(p1,p2),||p1|| 2 -||p2|| 2 ,p2-p1); u R =(d(p1,p2),||p1|| 2 -||p2|| 2 ,p2-p1); Step 2: Run the following MFHIPPE encryption algorithm to L and u R Encrypt them separately to get u L and u R Ciphertext and MFHIPPE encryption algorithm, MFHIPPE.Enc(PP,EK,u L / R ), input: PP, EK, u L / u R , output: step a: for data vector u L and u R , select random numbers γ2>γ1>0 and Step b: Construct two n+4 dimensional vectors u′ L and u′ R : u′ L =(-γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1); u′ R =(γ2d(p1,p2),γ2(||p1|| 2 -||p2|| 2 ),γ2(p2-p1),γ1,1); Step c: Generate two ciphertext pairs about (p1, p2): Output 2) When the internal node is the symptom keyword x i The encryption steps are as follows: Step 1: First construct a (l+1)-dimensional symptom keyword vector Step 2: Use the randomly generated (l+1)-dimensional binary split vector S to split P i Split into two vectors P′ i and P″ i : Step 3: vector P′ i and P″ i Expand into diagonal matrices respectively and Step 4: Finally get the symptom keyword x i The ciphertext is represented as where r p,1 and r p,2 are two non-zero random integers; 3) For leaf nodes (id i ,a i ), the encryption steps are as follows: Step 1: First construct a (n+4)-dimensional vector z i =(a i ,||a i || 2 ,1,r i ,r i ),in And r i ≠0; Step 2: Encrypt the ID using the SHE public key version PHE encryption algorithm i get Step 3: Use the SHE public key version PHE encryption algorithm to encrypt z i Each dimension of data is encrypted to obtain the encrypted vector E(z i )=(E(z i,1 ),E(z i,2 ),…,E(z i,n+4 )),in and Finally, the encrypted leaf node {E(id i ),E(z i )}.
4. A privacy-preserving similarity query method for keywords in smart medical care as described in claim 1, characterized in that The specific operations of querying the trapdoor generation module are: 1) For the similarity query condition (q,τ), the encryption steps are as follows: Step 1: First construct an (n+2)-dimensional vector t1 and a (n+4)-dimensional vector t2: t1=(2τ,1,2q) t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t )(where r t Non-zero is a random number) Step 2: Run the following MFHIPPE query trapdoor generation algorithm to obtain the encrypted query trapdoor for vector t1 MFHIPPE query trapdoor generation algorithm, MFHIPPE.TokenGen(PP,TK,t1), input: PP,TK,t1, output: Step a: For vector t1 = (2τ, 1, 2q), select random numbers γ4 > γ3 > 0, and Step b: Construct an n+4-dimensional vector t′1=(2γ4τ,γ4,2γ4q,1,γ3); Step c: Generate query trapdoor Output query trapdoor Step 3: For vector t2=(-2q,1,||q|| 2 -τ 2 ,r t ,-r t ), encrypted with SHE public key version PHE as E(t2)=(E(t i,1 ),E(t i,2 ),…,E(t i,n+4 )),in and 2) For symptom keyword combination query conditions The encryption steps are as follows: Step 1: User randomly generates ll locally u False symptom keywords that are not in the medical center's symptom keyword dictionary In this way, the new symptom keyword combination is Step 2: Construct polynomial b based on the new keyword combination l (y-X1)(y-X2)…(yX l )=b0+b1u+…+b l y l , construct the symptom keyword query vector Q based on this polynomial coefficient u =(b0,b1,…,b l ); Step 3: Use the random binary vector S to transform the query vector Q u Randomly split into two vectors Q′ u and Q″ u : Step 4: Then Q′ u and Q″ u Expand into diagonal matrices respectively and Step 5: This is the symptom keyword set The constructed ciphertext is represented as where r q,1 and r q,2 are two non-zero random integers; Finally, user U j Choose a session key ssk and use it with the encrypted query token Sent to cloud server S1 through a secure channel.
5. A privacy-preserving similarity query method for keywords in smart medical care as described in claim 1, characterized in that The specific operations of the query service module are: 1) Filtration stage Step 1: First initialize a candidate dataset is empty; Step 2: Perform recursive query starting from the root node: When the query node is an internal node, there are two cases: Case 1: If the internal node is the ciphertext pair of the reference vector Cloud server S1 runs the following MFHIPPE verification algorithm to obtain u L ,u R The sign of the inner product result with t1: MFHIPPE verification algorithm MFHIPPE.Check(CT u ,TK v ), input: CT u and TK v , output: 0 or 1, 0 represents 1 representative Step a: Calculation Step b: Search whether there is z∈Q such that If it exists, get z=<u′,v′> ; Step c: If z>0, the algorithm outputs 1; otherwise, it outputs 0; The key idea of the above algorithm: sign(z)=sign(<u′,v′> )=sign(<u,v> ) Proof: Z =<u′,v′> =αβdet(B)(γ2γ4<u,v> +γ1+γ3) because If z = 0, then It does not hold, so z≠0; If z>0, then Similarly, if z<0, there is<u,v> <0; In summary, sign(z)=sign(<u′,v′> )=sign(<u,v> ); According to the MFHIPPE verification algorithm, if Output 1, then continue filtering the right subtree; prove: According to the principle of PB tree, The data that meets the conditions falls into the right subtree of the PB tree; Similarly, it can be proved When , continue to filter the left subtree; like or Then both the left and right subtrees need to be filtered; Case 2: If the internal node is the symptom keyword x i The ciphertext E1(x i ): First, define the ciphertext E1(x i )and The operation Θ between them is: in The original vector P i and Q u The diagonal matrix obtained by expansion; When filtering to internal nodes, the symptom keyword is x i The ciphertext E1(x i ), calculate Inference: If the result is 0, it means that the current node keyword is the symptom keyword provided by the patient, and continue to visit the left subtree; otherwise, the current node is not the symptom keyword provided by the patient, and continue to visit the right subtree; The key idea of the above inference is: Assume that the node currently filtered is but And construct polynomials based on true and false mixed keyword combinations According to the polynomial coefficients, Q u =(b0,b1,…,b l ),like That is x i is a real symptom keyword provided by the user; if That is x i Not actual symptom keywords provided by the user; When the query node is a leaf node, it is directly added to the candidate set And backtrack; finally, recursively search the entire encrypted index tree E(T) and return the candidate data set 1) Verification phase Step 1: Cloud server S1 first calculates the homomorphic properties of the SHE encryption scheme Then, the following SHE symbolic computation protocol is run in collaboration with the cloud server S2, and S2 returns For S1, note that when m>0, sign(m)=1, otherwise sign(m)=-1; The SHE symbol computation protocol assumes that S1 has the ciphertext E(m) and E(-1), and S2 has the SHE symmetric key sk: Step a: S1 randomly selects two integers Satisfy r1>r2>0, and calculate Then S1 sends E(r1m-r2) to S2; Step b: After obtaining E(r1m-r2), S2 uses the SHE symmetric key Decrypted to get: like Then there is otherwise Therefore, the sign of the original plaintext m can be obtained according to the sign of r1m-r2 (because r1>r2>0); Now suppose that E(s i ) to express like That is, d(a i ,q)≤τ, then E(s i )=E(-1), otherwise E(s i )=E(1); prove: Step 2: S1 gets E(s i ), calculate E(s i *id i )=E(s i )*E(id i ); Step 3: S1 randomly selects two random numbers Satisfy r i,1 >r i,2 , and then calculate the following two ciphertexts: Then, S1 sends the two ciphertexts to S2.
6. A privacy-preserving similarity query method for keywords in smart medical care as claimed in claim 1, characterized in that The specific operations of the data decryption module are: Step 1: After S2 receives the two ciphertexts calculated and sent by S1 in the previous module, it first decrypts x with the key sk and obtains sign(x). Then, S2 can further obtain sign(s) based on sign(x). i *id i ), when sign(s i *id i )=-1, due to E(s i )=E(-1) holds, and further due to Corresponding id i Need to be returned to the user as a result; Step 2: Get {AES ssk (r i,1 ||r i,2 ),x}, the querying user decrypts r using the session key ssk i,1 and r i,2 , and finally calculated This server returns all result sets that satisfy the query request To the user, that is:
Citation Information
Patent Citations
Privacy-protecting medical information similar range query method
CN115174072A
Privacy protection method for outsourcing reasoning of gradient boosting decision tree
CN115967526A