Multi-user encrypted data cross-domain search method based on constant-level query token

By introducing blockchain and shared key generation algorithms in encrypted data range search, the problems of inefficiency and information leakage in the existing technology are solved, and efficient and secure multi-user cross-domain data sharing is achieved.

CN119675877AActive Publication Date: 2025-03-21CHENGDU UNIVERSITY OF TECHNOLOGY
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202411820135.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-11
Publication Date
2025-03-21
Estimated Expiration
2044-12-11

AI Technical Summary

Technical Problem

The prior art is inefficient in encrypted data range search, has the risk of information leakage, and is difficult to realize multi-user cross-domain data sharing.

Method used

By introducing blockchain technology, we design request chains and authorization chains, use shared key generation algorithms and sequential weighted inverted indexes to generate constant-order query tokens to realize cross-domain data sharing and secure search.

Benefits of technology

It improves the efficiency and security of encrypted data range search, realizes cross-domain data sharing for multiple users, and reduces query overhead and information leakage risks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119675877A_ABST
    Figure CN119675877A_ABST
Patent Text Reader

Abstract

The invention discloses a multi-user encrypted data cross-domain search method based on a constant-level query token, and relates to the field of encrypted data range search. A system model is composed of a user group, data owners of different search domains, a block chain and a cloud server. The method comprises an initialization stage, a key distribution stage, an index construction stage, a token generation stage and an authorization query stage. A data owner constructs a sequence weighted inverted index to realize a randomized constant-level query token, and a binary tree sorting tree is used for storing different values to determine a search range, so that the query overhead is reduced, and the security of a query process is improved; a request chain and an authorization chain are introduced to store key information related to a user and a data owner and carry out index construction and search, so that safe search is realized. According to the method, the overhead of multiple users in the range search process is reduced, the security in the query process is improved, and the security and integrity of query information during multi-data-field range search are ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of encrypted data range search, and in particular to a multi-user encrypted data cross-domain search method based on constant-level query tokens. Background Art

[0002] With the development of symmetric searchable encryption technology, customers can upload their data to an honest and curious server, and then effectively perform keyword queries on the uploaded data and correctly retrieve relevant files without leaking the confidentiality of their data. Since the development of single keyword search, there have been many algorithms that guarantee forward security and backward security of searchable encryption, but research on range search is still not in-depth enough. Many range search solutions today are neither efficient nor leaky. In order to solve the above problems, relevant researchers have transformed range queries into multiple keyword queries, which is one of the solutions.

[0003] In traditional single-keyword searchable encryption schemes, each query token corresponds to a query result, which converts the range search into a multi-keyword search. If the number of multi-keywords is too large, the query will generate a large number of query tokens, which will increase communication and storage overhead; in addition, the same query token can always obtain the same data, and the query token also contains the user's permission information, which may often be recorded and analyzed by external adversaries on the correspondence between tokens and results. These situations are inefficient and unsafe.

[0004] In addition, most range search solutions focus on data queries between data owners and data users in the same search domain, and do not consider the application scenarios of cross-domain data sharing. In multi-user cross-domain data sharing scenarios, there are often multiple data owners. How to efficiently realize cross-domain data sharing between multiple data domains and different users is also a key research object. In this application scenario, user permission management is usually implemented in many solutions using access control lists. However, when the number of users is too large, the local storage overhead of the data owner will increase, and the time overhead of generating the user's query token will also increase, indirectly increasing the user's query delay.

[0005] Blockchain is a decentralized platform with the characteristics of being tamper-proof. In today's searchable encryption solutions, it often plays the role of a trusted third-party platform that ensures fair transactions between users and cloud servers. Therefore, under the premise of solving the above problems, it is very important to introduce blockchain to design a system that guarantees honest transactions between users and servers, implements multi-user permission control and file fine-grained access control functions without using user access control lists, and meets the needs of cross-domain search of encrypted data while having efficient query rates and relatively complete security performance. Summary of the invention

[0006] The purpose of the present invention is to overcome the deficiencies of the prior art and provide a multi-user encrypted data cross-domain search method based on a constant-level query token to ensure the security and integrity of query information when searching across multiple data domains.

[0007] The objective of the present invention is achieved through the following technical solutions:

[0008] A multi-user encrypted data cross-domain search method based on constant-level query tokens, comprising:

[0009] Initialization phase: For the target security system, the data owner generates a public parameter set and uses the system security parameters to initialize the key K; initializes two blockchains, named request chain and authorization chain, and deploys corresponding smart contracts;

[0010] Key distribution phase: Data owners and users in different search domains register with the key distribution center. For requests from data owners, the key distribution center generates an identifier for the data owner. Data owner authorization key ko, key public information Then Upload to the authorization chain record; for requests from users, the key distribution center generates a user identity identifier User request key ku i , key public information Then Upload to request chain record;

[0011] Index building phase: the data owner obtains the data from the request chain Generate a shared key K with its own key ko; the data owner generates a set (v, f) for local files and encrypts all its local files, and uploads the encrypted data set to the cloud server for storage; for index construction, the data owner uses (v, f), ko and K to generate an EDB index set, and then uploads the EDB to the authorization chain for storage; use the value set v to build a binary tree, record the root node BT of the tree, and encrypt the tree with the shared key K and upload it to the request chain for storage;

[0012] Token generation phase: users obtain tokens from the authorization chain With binary tree BT, use With your own key i Generate a shared key K; the search range Q of the user-set value = [v left ,v right], use the query range Q, shared key K and binary tree BT to generate the query token UST; send the search deposit and query token UST to the request chain, the request chain runs the smart contract to freeze the deposit, and sends the query token UST to the data owner of the target domain;

[0013] Authorization query stage: The data owner receives the query token UST, uses the key ko to calculate the authorization query token AST, and then sends it to the authorization chain for index query. At the same time, the cloud server sends the query deposit to the authorization chain, which freezes the deposit and performs the query. After the query is completed, the encrypted file bitmap is returned to the user, and the user decrypts the file bitmap and uploads it to the cloud server; finally, the cloud server returns the encrypted data set to the user to complete the query.

[0014] Furthermore, the initialization phase specifically includes:

[0015] The data owner generates a public parameter PG = (λ, Z p ,h,H1,H2,F,<p,G,g> ,G T ,e), where λ is the system security parameter, Z p is a finite field, h, H1, H2 are collision-resistant hash functions, F is a pseudo-random function,<p,G,g> is a group parameter representing a group G of order p with g as a generator, G T is also a group, e is a bilinear map, satisfying: G×G→G T , hash functions H1,H2 are defined as: {0,1} * ×{0,1} * →Z p , the hash function h is defined as: {0,1} * →{0,1} λ ;

[0016] Initialize the key K using the system security parameter λ;

[0017] Initialize two blockchains, named request chain and authorization chain, and deploy corresponding smart contracts.

[0018] Furthermore, the key distribution phase specifically includes:

[0019] In response to the registration request sent by the data owner, the key distribution center assigns a unique identifier to the requested data owner. From Z p Select random number α and GA in the domain i , let the data owner's authorization key ko = α, the key distribution center uses the authorization key and the data owner's identity information to calculate the data owner's key public information Among them, for the authorization key ko, the key distribution center uses a secure channel to send it to the data owner, and the data owner's key public information Public records are on the authorization chain;

[0020] In response to the registration request sent by the user, the key distribution center assigns a unique identifier to the requesting user. From Z p Select random numbers β and U from the domain i , let the user's request key ku i =β, the key distribution center uses the request key and the user's identity information to calculate the user's key public information Among them, for the request key ku i , the key distribution center uses a secure channel to send the user's key public information Public records are on the request chain.

[0021] Furthermore, the index building phase specifically includes:

[0022] The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorized key ko to obtain the shared key K;

[0023] The data owner initializes a sequential weighted matrix X;

[0024] The data owner generates a set (v, f) for the local file and fills the index matrix K according to the rules of the sequential weighted inverted index. The behavior of matrix K is the value v in the set v i , listed as file identifier f of set f i , each row of the matrix X is represented by bs i Indicates; the data owner uses the set v to construct a binary tree BT; for each file in f, the data owner encrypts it with the shared key K and uploads it to the cloud server for storage;

[0025] Each row in the matrix X is replaced by (v i ,bs i ) means that for every v i , input the shared key K, and use the pseudo-random function F to calculate the two keys K 1,i ||K 2,i =F(K,v i ), select a random number r i,1 ;

[0026] The data owner uses his own authorization key ko, hash function H2, key K 2,i and a random number r i,1 Calculate EDB index Next, use the hash function H1 and the key K 1,i , calculate the EDB value c = bs i ⊕H1(K 1,i ,v i ), finally let EDB = EDB∪{st,c} to complete the construction of EDB index set;

[0027] The data owner uploads the EDB index set to the response chain, and the response chain calls the index construction contract to save it; the data owner uses the shared key K to encrypt the binary tree BT and uploads it to the request chain for storage.

[0028] Furthermore, the process of filling the index matrix X by the rule of sequential weighted inverted index specifically includes:

[0029] Traverse the matrix X, and the position of each cell is expressed as (v i ,f j ), the unit value is x i,j express;

[0030] For each cell traversed, check the file f j For each value of, record the row value v that is not greater than the current cell i The number of values ​​of is d, let this unit value x i,j =d, where d is the weight.

[0031] Furthermore, the data owner automatically runs the index building algorithm at regular intervals to regenerate the EDB and BT.

[0032] Furthermore, the token generation phase includes the following steps:

[0033] The user determines the search domain to be searched, and then obtains the authorization key public information of the data owner of the corresponding search domain from the authorization chain With your own request key ku i Perform calculations to obtain the shared key K;

[0034] The user sets the search range for the value, using Q = [v left ,v right ] represents, and then obtain the encrypted binary tree of the corresponding search domain from the request chain, decrypt it with the shared key K, and perform boundary value query to determine the actual boundary value of the index stored in the response chain. The left and right boundaries are represented as {v′ after boundary search in the binary tree. left ,v′ right}=BinaryTree.RangeSearch(Q,BT);

[0035] For the left and right boundaries v′ left,v′ right , execute the search token generation algorithm locally on the user, and use the pseudo-random function F and the shared key K to calculate K 1,left ||K 2.left =F(K,v′ left ), K 1,right ||K 2.right =F(K,v′ right ), the user then selects a random number r left,2 ,r right,2 , and then calculate two randomized search tokens separately: The user locally initializes the set UST1 and stores two search tokens in UST1;

[0036] The user uses the shared key K to calculate UST2 = h(K||UST1) and construct the search token UST = (UST1, UST2);

[0037] The user sends the search deposit and search token UST to the request chain. After receiving the request chain, the user's search deposit is frozen in the deposit pool and the function is automatically executed at time t; then the search token UST is sent to the data owner of the corresponding search domain.

[0038] Furthermore, the authorization query stage includes the following steps:

[0039] The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorized key ko to obtain the shared key K;

[0040] The data owner receives the search token UST=(UST1, UST2), calculates DAST=h(K||UST1), and determines whether DAST is equal to UST2. If not, the search process is stopped, an error report is sent to the smart contract on the requesting chain, and the user's deposit is unfrozen and returned;

[0041] If the conditions are met, the data owner initializes an empty set AST, and for each Token in UST1, uses its own authorization key ko to perform authorization operations and calculate the authorized search token AToken left and AToken right , the calculation process is as follows: Add two authorization search tokens to the collection AST, and then send the AST to the authorization chain;

[0042] The authorization chain freezes the search deposit of the cloud server in the deposit pool, triggers the automatic execution function at time t, and then calls the data search contract to query the two authorization tokens in AST. The left result c left , right result c right ; The data search contract adds the two search results to the query result set RS and sends it to the target search user;

[0043] After the target user receives the query result set RS returned by the authorization chain, the user calculates the result bs left =c left ⊕H1(K 1.left ,v′ left ), bs right =c right ⊕H1(K 1.right ,v′ right ); execute bs Q =bs right -bs left Subtract the weights in the two strings to get the query result bs Q , the query result bs Q Each non-zero cell in corresponds to the corresponding file identifier column in the matrix X, that is, corresponds to the file identifier bitmap of the query result, and then the file identifier bitmap is uploaded to the cloud server to obtain the corresponding encrypted file set.

[0044] The beneficial effects of the present invention are:

[0045] 1) Using the shared key generation algorithm, the user and each search domain will have a shared key. Through this shared key, data owners in different search domains and users can share data across search domains.

[0046] 2) Introduce two auxiliary blockchains, the request chain and the authorization chain, to save the key information related to users and data owners and to build and search indexes to achieve secure search; and implement the search deposit freezing protocol to ensure fair transactions between users and cloud servers.

[0047] 3) Use the local tree building algorithm to sort the values ​​of the local database first, and upload them to the request chain using a shared key encryption; when the user searches, the search range value is first determined locally, and the blockchain only receives the index of the encrypted data set, which will not leak information compared to de-sequencing encryption.

[0048] 4) A sequential weighted inverted index is used, where each value and file identifier pair corresponds to a weight, through which an encrypted data range search method with a constant-size query token can be implemented without requiring each value to correspond to a query token.

[0049] 5) Using bilinear mapping, random numbers are added during the index building and search token generation stages to achieve search token randomization, making it impossible for external malicious adversaries to record the correspondence between tokens and results, thereby improving data security. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] Figure 1 It is a flowchart of a solution in an embodiment of the present invention;

[0051] Figure 2 It is a sequential weighted matrix diagram of the solution of the present invention;

[0052] Figure 3 A sequential weighted inverted index graph of the solution of the present invention;

[0053] Figure 4 A local binary tree diagram of the solution of the present invention;

[0054] Figure 5 It is a key distribution flow chart of the solution of the present invention;

[0055] Figure 6 Constructing a flow chart for the indexing of the scheme of the present invention;

[0056] Figure 7 The data search flow chart of the solution of the present invention. DETAILED DESCRIPTION

[0057] The technical solution of the present invention will be clearly and completely described below in conjunction with the embodiments. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0058] See also Figure 1-Figure 7 , the present invention provides a technical solution:

[0059] A multi-user encrypted data cross-domain search method based on constant-level query tokens, the flow chart is as follows Figure 1 As shown, including:

[0060] S1. Initialization phase: For the target security system, the data owner generates a public parameter set and initializes the key K using the system security parameters; initializes two blockchains, named request chain and authorization chain, and deploys corresponding smart contracts.

[0061] In a preferred embodiment of the present invention, the initialization phase specifically includes:

[0062] S11. The data owner generates a public parameter PG = (λ, Z p,h,H1,H2,F,<p,G,g> ,G T ,e), where λ is the system security parameter, Z p is a finite field, h, H1, H2 are collision-resistant hash functions, F is a pseudo-random function,<p,G,g> is a group parameter representing a group G of order p with g as a generator, G T is also a group, e is a bilinear map, satisfying: G×G→G T , hash functions H1,H2 are defined as: {0,1} * ×{0,1} * →Z p , the hash function h is defined as: {0,1} * →{0,1} λ ; where {0,1} * Refers to the 01 string space of arbitrary length, {0,1} λ Refers to the 01 string space of length λ;

[0063] S12, initializing the key K using the system security parameter λ;

[0064] S13. Initialize two blockchains, named request chain and authorization chain respectively, and deploy corresponding smart contracts. The request chain and authorization chain are alliance chains.

[0065] Two auxiliary blockchains, the request chain and the authorization chain, are introduced to save key information related to users and data owners and to build and search indexes to achieve secure search; and a search deposit freezing protocol is implemented to ensure fair transactions between users and cloud servers.

[0066] S2, key distribution phase: data owners and users in different search domains register with the key distribution center. For requests from data owners, the key distribution center generates an identity identifier for the data owner. Data owner authorization key ko, key public information Then Upload to the authorization chain record; for requests from users, the key distribution center generates a user identity identifier User request key ku i , key public information Then Upload to request chain record.

[0067] In a preferred embodiment of the present invention, the key distribution phase flow chart is as follows: Figure 5 As shown, specifically including:

[0068] S21. In response to the registration request sent by the data owner, the key distribution center assigns a unique identifier to the requested data owner. From Z p Select random number α and GA in the domain i , let the data owner's authorization key ko = α, the key distribution center uses the authorization key and the data owner's identity information to calculate the data owner's key public information Among them, for the authorization key ko, the key distribution center uses a secure channel to send it to the data owner, and the data owner's key public information Public records are on the authorization chain.

[0069] S22: In response to the registration request sent by the user, the key distribution center assigns a unique identity identifier to the requesting user. From Z p Select random numbers β and U from the domain i , let the user's request key ku i =β, the key distribution center uses the request key and the user's identity information to calculate the user's key public information Among them, for the request key ku i , the key distribution center uses a secure channel to send the user's key public information Public records are on the request chain.

[0070] S3, index building phase: data owner obtains data from the request chain Generate a shared key K with your own key ko; the data owner generates a set (v, f) for local files and encrypts all local files, and uploads the encrypted data set to the cloud server for storage; for index construction, the data owner uses (v, f), ko and K to generate an EDB index set, and then uploads the EDB to the authorization chain for storage; use the value set v to build a binary tree, record the root node BT of the tree, and encrypt the tree with the shared key K and upload it to the request chain for storage.

[0071] The local binary tree diagram is as follows Figure 4 As shown in the figure, the leaf nodes of the binary tree BT stored in the request chain represent all the values ​​of the set v, and are sorted from small to large. When searching, you can start from the root node to query the leaf nodes that store the values ​​and obtain the actual boundary values. Using the local tree building algorithm, the values ​​of the local database are first sorted, encrypted with a shared key and uploaded to the request chain; when the user searches, the search range value is first determined locally, and the blockchain only receives the index of the encrypted data set, which does not leak information compared to de-order encryption.

[0072] Enter the query range and return the actual range: BinaryTree.RangeSearch(Q,BT);

[0073] In a preferred embodiment of the present invention, the index building phase flow chart is as follows: Figure 6 As shown, specifically including:

[0074] S31. The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorization key ko = α to get the shared key

[0075] S32, the data owner initializes a sequential weighted matrix X; Figure 2 As shown, this matrix is ​​used to construct Figure 3 The sequential weighted index of ;

[0076] S33. The data owner generates a set (v, f) for the local file and fills the index matrix X according to the rule of sequential weighted inverted index. The value v in the behavior set v of the matrix X is i , listed as file identifier f of set f i , each row of the matrix X is represented by bs i Indicates; the data owner uses the set v to construct a binary tree BT; for each file in f, the data owner encrypts it with the shared key K and uploads it to the cloud server for storage;

[0077] S34, each row in the matrix X is replaced by (v i ,bs i ) means that for every v i , input the shared key K, and use the pseudo-random function F to calculate the two keys K 1,i ||K 2,i =F(K,v i ), select a random number r i,1 ;

[0078] S35, the data owner uses his own authorization key ko, hash function H2, key K 2,i and a random number r i,1 Calculate EDB index Next, use the hash function H1 and the key K 1,i , calculate the EDB value c = bs i ⊕H1(K 1,i ,v i ), finally let EDB = EDB∪{st,c} to complete the construction of EDB index set;

[0079] S36. The data owner uploads the EDB index set to the response chain, and the response chain calls the index construction contract to save it; the data owner uses the shared key K to encrypt the binary tree BT and uploads it to the request chain for storage.

[0080] Figure 2 and Figure 3 The sequential weighted matrix diagram and the sequential weighted inverted index diagram are shown respectively. The process of filling the index matrix X according to the rules of the sequential weighted inverted index includes:

[0081] Traverse the matrix X, and the position of each cell is expressed as (v i ,f j ), the unit value is x i,j express;

[0082] For each cell traversed, check the file f j For each value of, record the row value v that is not greater than the current cell i The number of values ​​of is d, let this unit value x i,j =d, where d is the weight.

[0083] Each cell of the matrix X stores a weight, which is the number of values ​​in the file that are not greater than the value corresponding to the current row. Using a sequential weighted inverted index, each value and file identifier pair corresponds to a weight, which can be used to implement an encrypted data range search method with a constant-size query token, without requiring each value to correspond to a query token.

[0084] Furthermore, the data owner automatically runs the index building algorithm at regular intervals to regenerate the EDB and BT.

[0085] S4, token generation phase: users obtain tokens from the authorization chain With binary tree BT, use With your own key i Generate a shared key K; the search range Q of the user-set value = [v left ,v right ], use the query range Q, shared key K and binary tree BT to generate the query token UST; send the search deposit and query token UST to the request chain, the request chain runs the smart contract to freeze the deposit, and sends the query token UST to the data owner of the target domain.

[0086] In a preferred embodiment of the present invention, the token generation phase includes the following steps:

[0087] S41. The user determines the search domain to be searched, and then obtains the authorization key public information of the data owner of the corresponding search domain from the authorization chain. With your own request key ku i Perform calculations to obtain the shared key

[0088] S42, the search range of the user set value, using Q = [v left ,v right ] represents, and then obtain the encrypted binary tree of the corresponding search domain from the request chain, decrypt it with the shared key K, and perform boundary value query to determine the actual boundary value of the index stored in the response chain. The left and right boundaries are represented as {v′ after boundary search in the binary tree. left ,v′ right}=BinaryTree.RangeSearch(Q,BT); This search algorithm is a special search algorithm. In order to make the query range complete, the left boundary of the search result is v′ left , is a left In a small set of values, the largest value, if v′ left It is already the smallest value on the left edge of the tree, so construct v directly l ′ eft Is empty.

[0089] S43, for the left and right boundaries v l ′ eft ,v r ′ ight , execute the search token generation algorithm locally on the user, and use the pseudo-random function F and the shared key K to calculate K 1,left ||K 2.left =F(K,v l ′ eft ), K 1,right ||K 2.right =F(K,v r ′ ight ), the user then selects a random number r left,2 ,r right,2 , and then calculate two randomized search tokens separately: The user locally initializes the set UST1 and stores two search tokens in UST1;

[0090] S44. The user uses the shared key K to calculate UST2=h(K||UST1) and construct a search token UST=(UST1,UST2);

[0091] S45. The user sends the search deposit and search token UST to the request chain. After receiving the request chain, the user's search deposit is frozen in the deposit pool and the automatic execution function is triggered at time t; then the search token UST is sent to the data owner of the corresponding search domain.

[0092] S5, Authorization query stage: The data owner receives the query token UST, uses the key ko to calculate the authorization query token AST, and then sends it to the authorization chain for index query. At the same time, the cloud server sends the query deposit to the authorization chain, and the authorization chain freezes the deposit and performs the query. After the query is completed, the encrypted file bit map is returned to the user, and the user decrypts the file bit map and uploads it to the cloud server; finally, the cloud server returns the encrypted data set to the user to complete the query.

[0093] In a preferred embodiment of the present invention, the authorization query phase flow chart is as follows: Figure 7 As shown, the following steps are included:

[0094] S51. The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorization key ko = α to get the shared key

[0095] S52, the data owner receives the search token UST = (UST1, UST2), calculates DAST = h(K||UST1), and determines whether DAST is equal to UST2. If not, the search process is stopped, and an error report is sent to the smart contract on the request chain, and the user's deposit is unfrozen and returned;

[0096] S53. If the conditions are met, the data owner initializes an empty set AST, and for each AToken in UST1, uses its own authorization key ko to perform authorization operations and calculates the authorized search token AToken. left and AToken right , the calculation process is as follows: Add two authorization search tokens to the collection AST, and then send the AST to the authorization chain;

[0097] S54, the authorization chain freezes the search deposit of the cloud server in the deposit pool, triggers the automatic execution function at time t, and then calls the data search contract to query the two authorization tokens in AST to obtain the left result c left , right result c right ; The data search contract adds the two search results to the query result set RS and sends it to the target search user; the query process is:

[0098] For each {st,c} pair in EDB, take out st and calculate:

[0099]

[0100]

[0101] Determine whether a1=b1 or a2=b2 is true. If true, add the c corresponding to st to the query set RS, where the left result c left , right result c right .

[0102] S55. After the target user receives the query result set RS returned by the authorization chain, the user calculates the result bs left =c left ⊕H1(K 1.left ,v′ left ), bs right =c right ⊕H1(K 1.right ,v′ right ); execute bs Q =bs right -bs left Subtract the weights in the two strings to get the query result bs Q , the query result bs Q Each non-zero cell in corresponds to the corresponding file identifier column in the matrix X, that is, corresponds to the file identifier bitmap of the query result, and then the file identifier bitmap is uploaded to the cloud server to obtain the corresponding encrypted file set.

[0103] The system model of the present invention is composed of a user group, data owners of different search domains (also called search domain administrators), a blockchain, and a cloud server. The data owner constructs a sequential weighted inverted index to implement a randomized constant-level query token, and uses a binary tree sorting tree to store different values ​​to determine the search range, reducing the query overhead and improving the security of the query process; when building the index, the data owner uses a private key to set the search permission of the data set, obtains the user's key public information, generates a shared key with his own private key, and uses the shared key to encrypt the binary sorting tree and store it in the request chain. When the user queries, the request chain is accessed to obtain the binary sorting tree, a query request is generated and submitted to the request chain, and the smart contract of the request chain stores the user's deposit and forwards the token; the data owner authorizes the query request and submits the authorization token to the authorization chain for index query. The authorization chain returns the search results, which are locally resolved by the user into a string of file identifiers, uploaded to the cloud server storing the file, and the corresponding file collection is obtained.

[0104] The present invention realizes a new method for cross-domain range search of encrypted data with a constant-level query token, reduces the overhead of multiple users in the process of range search, improves the security in the query process, and ensures the security and integrity of query information during multi-data domain range search, providing users with a new idea for cross-domain range search of encrypted data.

[0105] The above is only a preferred embodiment of the present invention. It should be understood that the present invention is not limited to the form disclosed herein, and should not be regarded as excluding other embodiments, but can be used in various other combinations, modifications and environments, and can be modified within the scope of the concept described herein through the above teachings or the technology or knowledge of the relevant field. The changes and modifications made by those skilled in the art shall not deviate from the spirit and scope of the present invention, and shall be within the scope of protection of the claims attached to the present invention.

Claims

1. A multi-user encrypted data cross-domain search method based on constant-level query tokens, characterized in that: include: Initialization phase: For the target security system, the data owner generates a public parameter set and uses the system security parameters to initialize the key K; initializes two blockchains, named request chain and authorization chain, and deploys corresponding smart contracts; Key distribution phase: Data owners and users in different search domains register with the key distribution center. For requests from data owners, the key distribution center generates an identifier for the data owner. Data owner authorization key ko, key public information Then Upload to the authorization chain record; for requests from users, the key distribution center generates a user identity identifier User request key ku i , key public information Then Upload to request chain record; Index building phase: the data owner obtains the data from the request chain Generate a shared key K with its own key ko; the data owner generates a set (v, f) for local files and encrypts all its local files, and uploads the encrypted data set to the cloud server for storage; for index construction, the data owner uses (v, f), ko and K to generate an EDB index set, and then uploads the EDB to the authorization chain for storage; use the value set v to build a binary tree, record the root node BT of the tree, and encrypt the tree with the shared key K and upload it to the request chain for storage; Token generation phase: users obtain tokens from the authorization chain With binary tree BT, use With your own key i Generate a shared key K; the search range Q of the user-set value = [v left ,v right ], use the query range Q, shared key K and binary tree BT to generate the query token UST; send the search deposit and query token UST to the request chain, the request chain runs the smart contract to freeze the deposit, and sends the query token UST to the data owner of the target domain; Authorization query stage: The data owner receives the query token UST, uses the key ko to calculate the authorization query token AST, and then sends it to the authorization chain for index query. At the same time, the cloud server sends the query deposit to the authorization chain, which freezes the deposit and performs the query. After the query is completed, the encrypted file bitmap is returned to the user, and the user decrypts the file bitmap and uploads it to the cloud server; finally, the cloud server returns the encrypted data set to the user to complete the query.

2. According to claim 1, a multi-user encrypted data cross-domain search method based on constant-level query tokens is characterized in that: The initialization phase specifically includes: The data owner generates a public parameter PG = (λ, Z p ,h,H1,H2,F,<p,G,g> ,G T ,e), where λ is the system security parameter, Z p is a finite field, h, H1, H2 are collision-resistant hash functions, F is a pseudo-random function,<p,G,g> is a group parameter representing a group G of order p with g as a generator, G T is also a group, e is a bilinear map, satisfying: G×G→G T , hash functions H1,H2 are defined as: {0,1} * ×{0,1} * →Z p , the hash function h is defined as: {0,1} * →{0,1} λ ; Initialize the key K using the system security parameter λ; Initialize two blockchains, named request chain and authorization chain, and deploy corresponding smart contracts.

3. A multi-user encrypted data cross-domain search method based on constant-level query tokens according to claim 2, characterized in that: The key distribution stage specifically includes: In response to the registration request sent by the data owner, the key distribution center assigns a unique identifier to the requested data owner. From Z p Select random number α and GA in the domain i , let the data owner's authorization key ko = α, the key distribution center uses the authorization key and the data owner's identity information to calculate the data owner's key public information Among them, for the authorization key ko, the key distribution center uses a secure channel to send it to the data owner, and the data owner's key public information Public records are on the authorization chain; In response to the registration request sent by the user, the key distribution center assigns a unique identifier to the requesting user. From Z p Select random numbers β and U from the domain i , let the user's request key ku i =β, the key distribution center uses the request key and the user's identity information to calculate the user's key public information Among them, for the request key ku i , the key distribution center uses a secure channel to send the user's key public information Public records are on the request chain.

4. A multi-user encrypted data cross-domain search method based on constant-level query tokens according to claim 3, characterized in that: The index building phase specifically includes: The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorized key ko to obtain the shared key K; The data owner initializes a sequential weighted matrix X; The data owner generates a set (v, f) for the local file and fills the index matrix X according to the rules of sequential weighted inverted index. The behavior of matrix X is the value v in the set v i , listed as file identifier f of set f i , each row of the matrix X is represented by bs i Indicates; the data owner uses the set v to construct a binary tree BT; for each file in f, the data owner encrypts it with the shared key K and uploads it to the cloud server for storage; Each row in the matrix X is replaced by (v i ,bs i ) means that for every v i , input the shared key K, and use the pseudo-random function F to calculate the two keys K 1,i ||K 2,i =F(K,v i ), select a random number r i,1 ; The data owner uses his own authorization key ko, hash function H2, key K 2,i and a random number r i,1 Calculate EDB index Next, use the hash function H1 and the key K 1,i , calculate the EDB value Finally, let EDB = EDB∪{st,c} to complete the construction of the EDB index set; The data owner uploads the EDB index set to the response chain, and the response chain calls the index construction contract to save it; the data owner uses the shared key K to encrypt the binary tree BT and uploads it to the request chain for storage.

5. A multi-user encrypted data cross-domain search method based on constant-level query tokens according to claim 4, characterized in that: The process of filling the index matrix X by the rule of sequential weighted inverted index specifically includes: Traverse the matrix X, and the position of each cell is expressed as (v i ,f j ), the unit value is x i,j express; For each cell traversed, check the file f j For each value of, record the row value v that is not greater than the current cell i The number of values ​​of is d, let this unit value x i,j =d, where d is the weight.

6. A multi-user encrypted data cross-domain search method based on constant-level query tokens according to claim 4, characterized in that: The data owner automatically runs the index building algorithm at regular intervals to regenerate the EDB and BT.

7. The method for cross-domain search of multi-user encrypted data based on constant-level query tokens according to claim 5, characterized in that: The token generation phase includes the following steps: The user determines the search domain to be searched, and then obtains the authorization key public information of the data owner of the corresponding search domain from the authorization chain With your own request key ku i Perform calculations to obtain the shared key K; The user sets the search range for the value, using Q = [v left ,v right ] represents, and then obtain the encrypted binary tree of the corresponding search domain from the request chain, decrypt it with the shared key K, and perform boundary value query to determine the actual boundary value of the index stored in the response chain. The left and right boundaries are represented as {v′ after boundary search in the binary tree. left ,v′ right }=BinaryTree.RangeSearch(Q,BT); For the left and right boundaries v′ left ,v′ right , execute the search token generation algorithm locally on the user, and use the pseudo-random function F and the shared key K to calculate K 1,left ||K 2.left =F(K,v′ left ), K 1,right ||K 2.right =F(K,v′ right ), the user then selects a random number r left,2 ,r right,2 , and then calculate two randomized search tokens separately: The user locally initializes the set UST1 and stores two search tokens in UST1; The user uses the shared key K to calculate UST2=h(K||UST1) and construct the search token UST=(UST1,UST2); The user sends the search deposit and search token UST to the request chain. After receiving the request chain, the user's search deposit is frozen in the deposit pool and the function is automatically executed at time t; then the search token UST is sent to the data owner of the corresponding search domain.

8. The method for cross-domain search of multi-user encrypted data based on constant-level query tokens according to claim 7, characterized in that: The authorization query phase includes the following steps: The data owner obtains the corresponding user request key public information from the request chain Calculate with your own authorized key ko to obtain the shared key K; The data owner receives the search token UST=(UST1, UST2), calculates DAST=h(K||UST1), and determines whether DAST is equal to UST2. If not, the search process is stopped, an error report is sent to the smart contract on the requesting chain, and the user's deposit is unfrozen and returned; If the conditions are met, the data owner initializes an empty set AST, and for each Token in UST1, uses its own authorization key ko to perform authorization operations and calculate the authorized search token AToken left and AToken right , the calculation process is as follows: Add two authorization search tokens to the collection AST, and then send the AST to the authorization chain; The authorization chain freezes the search deposit of the cloud server in the deposit pool, triggers the automatic execution function at time t, and then calls the data search contract to query the two authorization tokens in AST. The left result c left , right result c right ; The data search contract adds the two search results to the query result set RS and sends it to the target search user; After the target user receives the query result set RS returned by the authorization chain, the user calculates the results Execute bs Q =bs right -bs left Subtract the weights in the two strings to get the query result bs Q , the query result bs Q Each non-zero cell in corresponds to the corresponding file identifier column in the matrix X, that is, corresponds to the file identifier bitmap of the query result, and then the file identifier bitmap is uploaded to the cloud server to obtain the corresponding encrypted file set.

Citation Information

Patent Citations

  • Fine-grained multi-user security searchable encryption method in cloud-edge collaborative environment

    CN114640458A

  • Multi-client searchable encryption method based on block chain

    CN114912127A

  • Searchable encryption method capable of verifying multi-user authorization cross-domain based on double-chain architecture

    CN117896066A

  • Multi-user data multi-backup searchable encryption method based on block chain

    CN118381606A

  • Electronic storage system and a method of data management

    US20180349617A1