A cross-domain search method for multi-user encrypted data based on constant-level query tokens

Through blockchain and shared key generation algorithm, the problem of inefficient range search in multi-user cross-domain data sharing is solved, and efficient and secure cross-domain data query is realized to ensure the integrity of query information and fair user transactions.

CN119675877BActive Publication Date: 2025-08-15CHENGDU UNIVERSITY OF TECHNOLOGY
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the multi-user cross-domain data sharing scenario, range search is inefficient and unsafe, user permission management leads to large storage overhead, query delays increase, and cross-domain data sharing is not fully considered.

Method used

A cross-domain search method for multi-user encrypted data based on blockchain is adopted, key information is saved through request chains and authorization chains, shared key generation algorithms and sequential weighted inverted indexes are used to generate constant-level query tokens, and secure search is achieved by combining bilinear mapping and random numbers.

Benefits of technology

It realizes efficient querying for cross-domain data sharing, reduces query overhead, improves security and the integrity of query information, and ensures fair transactions between users and cloud servers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119675877B_ABST
    Figure CN119675877B_ABST
Patent Text Reader

Abstract

The present invention discloses a multi-user encrypted data cross-domain search method based on constant-level query tokens, which relates to the field of encrypted data range search. The system model consists of a user group, data owners in different search domains, a blockchain, and a cloud server. The method includes: an initialization phase, a key distribution phase, an index construction phase, a token generation phase, and an authorization query phase. The data owner constructs a sequential weighted inverted index to implement a randomized constant-level query token, uses a binary tree sorting tree to store different values to determine the search range, reduces the query overhead and improves the security of the query process; introduces a request chain and an authorization chain to save the key information related to the user and the data owner and to construct and search the index, thereby achieving a secure search. The present invention reduces the overhead of multiple users in the range search process, improves the security of the query process, and ensures the security and integrity of the query information during multi-data domain range search.
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 honest and curious servers, then effectively perform keyword queries on the uploaded data and correctly retrieve relevant files without compromising the confidentiality of their data. Single-keyword search has evolved to the point where many algorithms guarantee forward and backward security for searchable encryption. However, research on range search remains inadequate, and many current range search solutions are neither efficient nor inherently leaky. To address these issues, researchers have transformed range queries into multiple keyword queries, which is one solution.

[0003] In traditional single-keyword searchable encryption schemes, each query token corresponds to a query result, converting a range search into a multi-keyword search. If the number of multiple keywords is too large, the query will generate a large number of query tokens, which will lead to increased 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 often may be subject to external adversaries recording and analyzing 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 using access control lists in many solutions. However, when the number of users is too large, it will lead to increased local storage overhead for data owners, and the time overhead for generating user query tokens will also increase, indirectly increasing user query latency.

[0005] Blockchain is a decentralized platform with immutable properties. In today's searchable encryption solutions, it often acts as a trusted third-party platform, ensuring fair transactions between users and cloud servers. Therefore, while addressing the aforementioned issues, it is crucial to introduce blockchain to design a system that guarantees honest transactions between users and servers, implements multi-user permission control and fine-grained file access control without the use of user access control lists, and enables cross-domain searches of encrypted data while maintaining efficient query speeds and comprehensive security. 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 constant-level query tokens to ensure the security and integrity of query information when searching across multiple data domains.

[0007] The object 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 initializes the key K using the system security parameters. Two blockchains are initialized, named the request chain and the authorization chain, and the corresponding smart contracts are deployed.

[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 the data owner's identity identifier. 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 the request chain record;

[0011] Index building phase: the data owner obtains 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 local files, uploading 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 ku i Generate shared key K; user set the search range Q = [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 send the query token UST to the data owner of the target domain;

[0013] Authorization query phase: 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. 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, completing the query.

[0014] Furthermore, the initialization phase specifically includes:

[0015] The data owner generates the 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 its 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 Publicly recorded on the authorization chain;

[0020] 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 to the user, 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 the matrix K is the median 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 Represents; 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 Calculating 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 unit is expressed as (v i ,f j ), the unit value is x i,j express;

[0030] For each unit 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 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, 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 stored in the index on the response chain. The left and right boundaries are represented as {v′ 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 it, the request chain freezes the user's search deposit in the deposit pool and triggers the automatic execution function 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 refunded.

[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 and triggers the automatic execution function at time t, and then calls the data search contract to query the two authorization tokens in AST, where 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 of 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, the file identifier bitmap of the query result. The file identifier bitmap is then uploaded to the cloud server to obtain the corresponding encrypted file set.

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

[0045] 1) Using a 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) Two auxiliary blockchains, the request chain and the authorization chain, are introduced to store 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.

[0047] 3) Using a local tree-building algorithm, the values in the local database are first sorted and uploaded to the request chain using a shared key encryption. When a user searches, the search range value is first determined locally, and the blockchain only receives the index of the encrypted data set. Compared with de-ordering encryption, no information is leaked.

[0048] 4) A sequential weighted inverted index is used, where each value and file identifier pair is assigned a weight. This weight allows for a range search of encrypted data with constant-sized query tokens, without requiring a query token for each value.

[0049] 5) Using bilinear mapping, random numbers are added during the index construction 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 This 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 It is the sequential weighted inverted index graph of the solution of the present invention;

[0053] Figure 4 It is the local binary tree graph of the solution of the present invention;

[0054] Figure 5 This 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 following will clearly and completely describe the technical solutions of the present invention in conjunction with the embodiments. Obviously, the embodiments described are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work shall fall within the scope of protection of the present invention.

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

[0059] A cross-domain search method for multi-user encrypted data based on constant-level query tokens, the flow chart is as follows Figure 1 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 the corresponding smart contracts.

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

[0062] S11. The data owner generates public parameters 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 its 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. Initialize the key K using the system security parameter λ;

[0064] S13. Initialize two blockchains, named request chain and authorization chain, 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 store 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 the data owner's identity identifier. 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 the 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 to the user, the user's key public information Public records are on the request chain.

[0070] S3, index building phase: the data owner obtains the 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, the leaf nodes of the binary tree BT stored in the request chain represent all values in the set v and are sorted from smallest to largest. When searching, you can query the leaf nodes that store the values through the root node to obtain the actual boundary values. Using a local tree-building algorithm, the values in the local database are first sorted and uploaded to the request chain using a shared key encryption. When a user searches, the search range value is first determined locally, and the blockchain only receives the index of the encrypted dataset. Compared to de-ordering encryption, this prevents information leakage.

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

[0073] In a preferred embodiment of the present invention, the flow chart of the index building phase 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 obtain 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 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 rules of the sequential weighted inverted index. The behavior of the matrix X is the median 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 Represents; 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 Calculating 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 unit is expressed as (v i ,f j ), the unit value is x i,j express;

[0082] For each unit 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 in the matrix X stores a weight, representing the number of values in the file that are no greater than the value corresponding to the current row. Using a sequential weighted inverted index, each value-file identifier pair is assigned a weight. This weight enables range searches of encrypted data with constant-size query tokens, eliminating the need for a separate query token for each value.

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

[0085] S4, Token generation phase: Users obtain tokens from the authorization chain With binary tree BT, use With your own key ku i Generate shared key K; user set the search range Q = [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, 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 stored in the index on the response chain. The left and right boundaries are represented as {v′ 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 v 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 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 search deposit, the request chain freezes the user's search deposit in the deposit pool and triggers the automatic execution function 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, which freezes the deposit and performs the query. After the query is completed, the encrypted file bitmap is returned to the user. 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, completing 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 obtain 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, an error report is sent to the smart contract on the requesting chain, and the user's deposit is unfrozen and refunded.

[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 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;

[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, and obtains 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 as follows:

[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 its 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 of 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, the file identifier bitmap of the query result. The file identifier bitmap is then uploaded to the cloud server to obtain the corresponding encrypted file set.

[0103] The system model of the present invention consists of a user group, data owners of different search domains (also known as 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 constructing the index, the data owner uses a private key to set the search permission for the data set, obtains the user's key public information, generates a shared key with his own private key, encrypts the binary sorting tree with the shared key, and stores 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. 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 the user locally resolves into a string of file identifiers, uploads to the cloud server that stores the files, and obtains the corresponding file collection.

[0104] The present invention implements a new method for cross-domain range search of encrypted data using a constant-level query token, which reduces the overhead of multiple users in the range search process, improves the security of 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 foregoing description is merely 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 construed as excluding other embodiments. Rather, the present invention 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 techniques or knowledge in the relevant field. Modifications and variations made by those skilled in the art that do not depart from the spirit and scope of the present invention are intended to be protected by the appended claims.

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 initializes the key K using the system security parameters. Two blockchains are initialized, named the request chain and the authorization chain, and the corresponding smart contracts are deployed. 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 the data owner's identity identifier. 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 the request chain record; Index building phase: the data owner obtains 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 local files, uploading 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 ku i Generate shared key K; user set the search range Q = [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 send the query token UST to the data owner of the target domain; Authorization query phase: 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. 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, completing the query.

2. A multi-user encrypted data cross-domain search method based on constant-level query tokens according to claim 1, characterized in that: The initialization phase specifically includes: The data owner generates the 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 its 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. The method for cross-domain search of multi-user encrypted data 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, where Indicates that the base is the generator g and the exponent is the random number GA i The power operation of 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 in, Indicates that the base is the generator g and the exponent is the random number U i The power operation of the request key ku i , the key distribution center uses a secure channel to send to the user, the user's key public information Public records are on the request chain.

4. The method for cross-domain search of multi-user encrypted data 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 the sequential weighted inverted index. The behavior of the matrix X is the median 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 Represents; 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 Calculating EDB Index in Indicates that the base is the generator g and the exponent is the random number r i,1 The power operation of Indicates that the base is the generator g and the exponent is r i,1 .H2(K 2,i ,v i )·ko exponentiation; then use the hash function H1 and the key K 1,i , calculate the EDB value Finally, let EDB = EDB∪{st,c} to complete the EDB index set construction; 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. The method for cross-domain search of multi-user encrypted data 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 unit is expressed as (v i ,f j ), the unit value is x i,j express; For each unit 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. The method for cross-domain search of multi-user encrypted data 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 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, 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 stored in the index on the response chain. The left and right boundaries are represented as {v′ 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; Indicates that the base is the generator g and the exponent is the random number r left,2 The power operation of Indicates that the base is the generator g and the exponent is r left,2 ·H2(K 2,left ,v′ left ), Indicates that the base is the generator g and the exponent is the random number r right,2 The power operation of Indicates that the base is the generator g and the exponent is r right,2 ·H(K 2,right ,v′ right ) power operation; 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 it, the request chain freezes the user's search deposit in the deposit pool and triggers the automatic execution function 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 refunded. 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; Indicates that the base is the generator g and the exponent is r left,2 ·H2(K 2,left ,v′ left )·ko's power operation, Indicates that the base is the generator g and the exponent is r right,2 ·H(K 2,right ,v′ right )·Exponentiation of ko; The authorization chain freezes the search deposit of the cloud server in the deposit pool and triggers the automatic execution function at time t, and then calls the data search contract to query the two authorization tokens in AST, where 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 of 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, the file identifier bitmap of the query result. The file identifier bitmap is then uploaded to the cloud server to obtain the corresponding encrypted file set.

Citation Information

Patent Citations

  • 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