A minimum community search method, device, system and storage medium

By encrypting the adjacency index and core tree index with the BGN algorithm and using Bloom filter and array comparison protocol to perform minimum community search in the cloud server, the problems of low efficiency and privacy leakage in the existing technology are solved, and efficient and secure community search is achieved.

CN116226466BActive Publication Date: 2025-10-17QINGDAO UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310258280.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-17
Publication Date
2025-10-17
Estimated Expiration
2043-03-17

AI Technical Summary

Technical Problem

The existing minimum community search technology is inefficient, has low result quality, and is not suitable for multiple query nodes. At the same time, directly outsourcing the index to the cloud server will lead to the problem of privacy data leakage.

Method used

Data security is ensured by encrypting the adjacency index and core tree index with the BGN algorithm and performing minimum community search using the Bloom filter array and array comparison protocol in the cloud server.

Benefits of technology

The efficiency and result quality of minimum community search are improved while protecting data privacy, thus avoiding the leakage of private data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116226466B_ABST
    Figure CN116226466B_ABST
Patent Text Reader

Abstract

The application discloses a minimum community search method, device and system and a storage medium, and is applied to the field of minimum community search, and comprises the following steps: receiving an adjacent index and a core tree index which are encrypted by a BGN algorithm and are sent by a data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index; when receiving a query trapdoor token generated by a client, locating an initial community in the core tree index according to the Bloom filter array; generating a target community based on the initial community and the adjacent index by using an array comparison protocol; and sending the target community to the client, so that the client decrypts the target community to obtain a target result. The method avoids the privacy leakage problem caused by the minimum community search in a cloud server in the prior art by encrypting the minimum community search, and protects data security.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of minimum community search, in particular to a minimum community search method, device, system and computer readable storage medium. BACKGROUND

[0002] As a basic problem in graph theory, community search aims to search high-quality communities from large networks, which is suitable for various applications such as event organization, friend recommendation, e-commerce, etc. However, with the continuous development of social networks, community search has been unable to meet people's growing objective needs. For example, the organizers of a certain activity hope to invite as few users as possible in the case of high correlation due to the limitation of the activity site. The above problem is called the minimum community search problem. Unlike community search, the minimum community search problem requires the returned community (subgraph) to be as small as possible in the case of close correlation.

[0003] The existing minimum community search research has the problems of low efficiency, low quality of the result community and inapplicability to multiple query nodes. In order to improve the efficiency of community search, some research proposes to use cloud technology to complete community search, which can greatly improve the search speed while liberating the storage burden of the client. However, due to the large amount of private data of users in social networks, outsourcing the index directly to the cloud server may cause privacy data leakage. SUMMARY

[0004] The purpose of the present application is to provide a minimum community search method, device, system and storage medium, which is applied to the field of minimum community search. The method avoids the privacy leakage problem caused by performing minimum community search on the cloud server in the prior art, and protects data security.

[0005] To solve the above technical problems, the present application provides a minimum community search method, comprising:

[0006] Receiving the adjacency index and the core tree index encrypted by the BGN algorithm sent by the data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index;

[0007] When receiving the query trapdoor token generated by the client, locating the initial community in the core tree index according to the Bloom filter array;

[0008] Generating a target community based on the initial community and the adjacency index using an array comparison protocol;

[0009] Sending the target community to the client to decrypt the target community to obtain a target result.

[0010] Optionally, locating the initial community in the core tree index according to the Bloom filter array includes:

[0011] Calculating a corresponding position trapdoor according to the trapdoor of each query node in the query trapdoor token and the node identifier of the corresponding tree node;

[0012] Locating the lowest ancestor including the query node in the core tree index according to the bloom filter array according to the position trapdoor;

[0013] All nodes included in the lowest ancestor are determined as the initial community.

[0014] Optionally, generating a target community based on the initial community and the adjacency index using an array comparison protocol includes:

[0015] Establishing a state array of the initial community;

[0016] Calculating an evaluation value of each of the nodes in the initial community according to the adjacency index;

[0017] The state array of the evaluation value is updated using the array comparison protocol, and the target community is determined from the initial community according to the updated state array.

[0018] Optionally, the state array for establishing the initial community includes:

[0019] The first cloud server calculates a first auxiliary parameter according to the node identifier in the initial community and the node identifier in the query trapdoor token, and sends the first auxiliary parameter to the second cloud server;

[0020] The second cloud server generates a second auxiliary parameter according to the BGN key parameter and the first auxiliary parameter, and returns a status value to the first cloud server according to the second auxiliary parameter;

[0021] The first cloud server updates the state array according to the state value to establish the state array of the initial community.

[0022] Optionally, the adjacency index encrypted by the BGN algorithm and sent by the data receiving end includes:

[0023] The data end uses the BGN key to perform BGN encryption on the node flag and the node identifier, generates the encrypted adjacency index and sends it to the cloud server;

[0024] The cloud server receives the encrypted adjacency index sent by the data end.

[0025] Optionally, the core tree index encrypted by the BGN algorithm and sent by the data receiving end includes:

[0026] The data end calls the BGN key to perform BGN encryption on the core value and node identification of each tree node, to generate an encrypted core tree index and send the same to a cloud server;

[0027] The cloud server receives the encrypted core tree index sent by the data end.

[0028] Optionally, the client decrypts the target community to obtain a target result, including:

[0029] The client decrypts the state array in the target community using the BGN key;

[0030] A target node is obtained according to the decrypted state array and the initial community;

[0031] The target node is decrypted using the BGN key to obtain a target result.

[0032] To solve the above technical problems, the present application further provides a minimum community search device, comprising:

[0033] A receiving module is configured to receive an adjacency index and a core tree index encrypted by a BGN algorithm and sent by a data end, wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index;

[0034] A positioning module is configured to, when receiving a query trapdoor token generated by a client, locate an initial community in the core tree index according to the Bloom filter array;

[0035] A screening module is configured to generate a target community based on the initial community and the adjacency index using an array comparison protocol;

[0036] A result module is configured to send the target community to the client, so that the client decrypts the target community to obtain a target result.

[0037] To solve the above technical problems, the present application further provides a minimum community search system, comprising:

[0038] A data end is configured to send an adjacency index and a core tree index encrypted by a BGN algorithm to a cloud server, wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index;

[0039] A cloud server is configured to receive the adjacency index and the core tree index, locate an initial community in the core tree index according to the Bloom filter array when receiving a query trapdoor token, generate a target community based on the initial community and the adjacency index using an array comparison protocol, and send the target community to a client.

[0040] The client is used for generating the query trapdoor token and sending it to the cloud server; and decrypting the received target community to obtain a target result.

[0041] To solve the above technical problems, the application further provides a computer readable storage medium, wherein computer executable instructions are stored in the computer readable storage medium, and the computer executable instructions are executed by a processor to realize the minimum community search method.

[0042] It can be seen that the method receives the adjacent index and the core tree index encrypted by the BGN algorithm sent by the data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index; when receiving the query trapdoor token generated by the client, the initial community is located in the core tree index according to the Bloom filter array; the target community is generated based on the initial community and the adjacent index by using the array comparison protocol; and the target community is sent to the client to decrypt the target community to obtain a target result. By encrypting the minimum community search, the privacy leakage problem caused by the minimum community search in the cloud server in the prior art is avoided, and the data security is protected. BRIEF DESCRIPTION OF DRAWINGS

[0043] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the embodiments or the prior art description will be briefly introduced. Obviously, the drawings in the following description are only embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor on the basis of the provided drawings.

[0044] Figure 1 A flowchart of a minimum community search method provided by the embodiment of the present application;

[0045] Figure 2 A primitive community graph provided by the embodiment of the present application;

[0046] Figure 3 An adjacent index example graph provided by the embodiment of the present application;

[0047] Figure 4 A core tree index example graph provided by the embodiment of the present application;

[0048] Figure 5 A specific embodiment graph of a minimum community search method provided by the embodiment of the present application;

[0049] Figure 6 A structural block diagram of a minimum community search system provided by the embodiment of the present application. DETAILED DESCRIPTION

[0050] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative effort belong to the scope of protection of the present application.

[0051] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative effort belong to the scope of protection of the present application. Figure 1 Figure 1 A flowchart of a minimum community search method provided by an embodiment of the present application, which can include the following steps:

[0052] S101: receiving an adjacent index and a core tree index encrypted by a BGN algorithm sent by a data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index.

[0053] The execution subject of the embodiment can be a cloud server, and the cloud server can receive an adjacent index and a core tree index encrypted by a BGN (homomorphic encryption algorithm) sent by a data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index.

[0054] Homomorphic encryption refers to that after original data is encrypted by homomorphic encryption, a ciphertext calculation result obtained by performing specific operations on the ciphertext is equivalent to the data result obtained by directly performing the same calculation on the original plaintext data after homomorphic decryption. The homomorphic encryption algorithm and the encryption key encrypt the data, and send the ciphertext to the cloud server. The cloud server calculates the ciphertext according to the program given by the user without knowing the plaintext data, and returns the ciphertext calculation result to the user. The user decrypts the ciphertext calculation result using the homomorphic encryption algorithm and the decryption key, and the result is equivalent to the result of directly calculating the plaintext.

[0055] In the embodiment, the data end can generate a corresponding adjacent index and a core tree index according to an original community graph, and perform BGN homomorphic encryption on the generated adjacent index and core tree index. The embodiment does not limit the structure of the original community graph and the number of nodes. For ease of understanding, the embodiment takes a community graph as an example. Figure 2 Figure 2 An original community graph provided by an embodiment of the present application, which can be composed of 12 nodes identified by A-L.

[0056] The embodiment can generate an adjacent index according to the original community graph. After the adjacent index is generated, the adjacent index can be filled according to the maximum node degree of the adjacent index. The embodiment does not limit the filling method. Generally, the nodes without adjacent relationship and their flag bits can be used for filling. Specifically, the filling can be performed as follows:​​Figure 3 As shown, Figure 3 is an example graph of adjacency index, where v represents a node in the original community graph. The first row is the adjacency relationship of node A. Each item consists of (u, flagu), where flagu is the flag of the node. If node u is an adjacent node of node v, flagu = 1; if node u is not adjacent to node v, flagu = 0. For example, in Figure 2 In the original community graph, there are four nodes BCDE adjacent to node A. Figure 3 The corresponding flag is 1. The remaining rows are the adjacency relationships of each node v. Generally, the number of adjacent nodes of each node is not necessarily the same. In this embodiment, the adjacency index can be filled according to the maximum node degree of the adjacency index, for example Figure 3 A can be filled with G without adjacent node relationship, and F can be filled with K and I without adjacent node relationship.

[0057] In this embodiment, in order to further ensure the security of the adjacency index, this embodiment can perform pseudo-random permutation encryption on the node identifier in the adjacency index, and after the pseudo-random permutation encryption, perform BGN homomorphic encryption on the encrypted node identifier, and also perform BGN homomorphic encryption on the flag bit to obtain the encrypted adjacency index. The data end sends the encrypted adjacency index to the cloud server.

[0058] In this embodiment, a core tree index can be generated based on the original community graph, and in order to save computing resources and storage resources, the core tree index can be de-redundant, such as Figure 4 As shown, Figure 4 This is an example diagram of a core tree index, which includes the core tree index before and after de-redundancy. In the diagram, each tree node in the i-th layer represents a connected component Gi with a kernel value of i. Each tree node can be represented by a tree node identifier q. For example, the tree node of the G1 layer can be q1, and the tree nodes of the G3 layer can be q3 and q4 from left to right.

[0059] In this embodiment, in order to further enhance the security of the minimum community search, the node identifier in each tree node in the core tree index can be pseudo-randomly permuted and encrypted, the node identifier after pseudo-random permutation encryption can be BGN homomorphically encrypted, and the core value of each tree node can also be BGN homomorphically encrypted to obtain the encrypted adjacency index.

[0060] The Bloom filter is a kind of random data structure with high space efficiency, which is specially used to detect whether a specific element exists in a set. In the embodiment, the Bloom filter can be used to quickly locate the initial community. The data end constructs a corresponding Bloom filter array for each tree node in the BGN encrypted core tree index. The embodiment does not limit the specific construction method. Generally, the key of r pseudo-random functions can be called to calculate the trapdoor of each node before BGN encryption in each tree node. Then, the corresponding position trapdoor is calculated according to the trapdoor of each node and the tree node identifier. The value of the Bloom filter array of the corresponding tree node is set through the corresponding position trapdoor. When a node exists, the bit value corresponding to the Bloom filter array of the position trapdoor is set to 1. The Bloom filter array is constructed for each tree node. After completion, the core tree index is sent to the cloud server. The cloud server receives the BGN encrypted adjacent index and the core tree index from the data end. In the embodiment, the operation of calculating the trapdoor needs to be performed before BGN encryption. If there is another encryption operation before BGN encryption, the trapdoor can be calculated for the original node identifier or the encrypted node identifier.

[0061] S102: When receiving the query trapdoor token generated by the client, the initial community is located in the core tree index according to the Bloom filter array.

[0062] In the embodiment, when the cloud server receives the query trapdoor token generated by the client, the cloud server can locate the initial community in the core tree index according to the Bloom filter array. The embodiment does not limit the way in which the client generates the query trapdoor token. The query trapdoor token can be generated according to the query node. The number of query nodes is not limited in the embodiment. The encryption method of the query node needs to correspond to the encryption method of the node in the adjacent index and the core tree index, that is, in the embodiment, the client can first perform pseudo-random permutation encryption on the node identifier of the query node, then perform BGN homomorphic encryption on the node identifier after the pseudo-random permutation, and calculate the trapdoor of the node identifier before BGN encryption by calling r pseudo-random functions. In the embodiment, the node identifier of the query node after BGN encryption and the trapdoor can be packaged as the query trapdoor token, and the query trapdoor token is sent to the cloud server.

[0063] After the cloud server receives the query trapdoor token, it can locate the initial community in the kernel tree index according to the Bloom filter array. The embodiment does not limit the specific locating method, and the initial community can be determined according to the trapdoor of the query node in the query trapdoor token. First, a bottom-up search is performed in the kernel tree index. The search process can be to calculate the corresponding position trapdoor according to the trapdoor of the query node and the node identifier of the tree node currently being searched, and then to judge whether the bit value of the position trapdoor in the Bloom filter array is 1. If yes, it is determined that the corresponding query node exists, so as to determine the lowest ancestor containing the query node, and all nodes contained in the lowest ancestor are determined as the initial community. If the kernel tree index is not processed for redundancy, the initial community is all nodes in the lowest ancestor tree node; if the kernel tree index is processed for redundancy, the initial community is the node in the lowest ancestor tree node and all its descendants.

[0064] S103: generating the target community based on the initial community and the adjacency index using the array comparison protocol.

[0065] In the embodiment, after the initial community is determined, the array comparison protocol can be used to generate the target community based on the initial community and the adjacency index. The embodiment does not limit the specific process of generating the target community. Generally, an array C[i] can be initialized to record the nodes of the initial community, i represents the number of nodes in the initial community; k* is initialized to record the core value of the tree node to which the initial community belongs; and a State array is initialized to mark whether the corresponding node in the initial community belongs to the final target community. In the embodiment, an equality function f(·) is first called to initialize the value in the State array of each node. The node identifier in the query trapdoor token and the node identifier of the node in the initial community are input into the equality function f(·) in turn. First, a first auxiliary parameter [[x]] / [[y]] is calculated, where [[x]] is the node identifier of the query node encrypted by the BGN homomorphic encryption, and [[y]] is the node identifier of the node in the initial community encrypted by the BGN homomorphic encryption. Then, the first auxiliary parameter is calculated to obtain a second auxiliary parameter b←e([[x]] / [[y]], g rr ), where e and g are parameters in the BGN encryption key, rr is a parameter in the BGN decryption key, and b is the second auxiliary parameter. When the value of b is calculated to be 1 G by the hash function and a set of hash values (H, h), the number 1 is encrypted using the BGN homomorphic encryption key to generate a state value [[1]], and the corresponding bit in the State array is modified to [[1]]; when the value of b is not 1 GAt this time, the digital 0 is encrypted using the BGN homomorphic encryption key to generate a state value [[0]], and the corresponding bit in the State array is modified to [[0]], and the final output value of the equality function f(·) is [[1]] or [[0]]. After updating the State array, the state value of the query node is [[1]].

[0066] In this embodiment, the minimum community search is performed based on the initial community. The method of performing the minimum community search is not limited, and the array comparison protocol can be used to generate the target community based on the initial community and the adjacency index.

[0067] For each node [[u]] in the initial community, the evaluation value of the node is calculated, and an evaluation value array P[ι] is constructed, where ι represents the length of the array. The node with the largest evaluation value is selected and joined in the target community by changing the state value of the node. In the present application, the evaluation value is defined as d(u,R)-(k*-d(u,R)), where d(u,R) represents the degree of node u in the target community R, and k* is the core value of the node of the initial community. The score value Score of the evaluation value of each node is calculated by the array comparison protocol g'(P[ι]), and the state of the node is updated according to the score value Score. The third auxiliary parameter k is initialized to represent the minimum degree of the currently expanded community. After each round of search is completed, k needs to be updated. When k=k*, the search algorithm stops and returns the final result. Finally, the initial community node set C[ι] and the corresponding state value State array are output, and the node determined from the initial community node set C[ι] according to the state value State array is the target community.

[0068] In this embodiment, d(u,R) can be calculated by the following formula:

[0069]

[0070] In the formula, d(u,R) represents the degree of node u in the target community R, l is the maximum degree of the node, w is the fourth auxiliary parameter, and I A [u] j represents the jth item of the adjacency index table corresponding to node u, I A [u] j .flag represents the flag bit of the jth item of the adjacency index table corresponding to node u, and State(u) is the state value corresponding to node u, where node u in the formula is in the initial community C but not in the target community R.

[0071] In this embodiment, the fourth auxiliary parameter w can be calculated by the following formula:

[0072]

[0073] wherein i is the number of nodes in the initial community, I A [u] j denotes the jth entry of the adjacency list of node u, v t denotes a node in the initial community, State(v t ) denotes the state value of node vt, and f(·) is a comparison function, wherein the node u in the formula is in the initial community C but not in the target community R.

[0074] The array comparison protocol is g'(P[ι]), and a score Score is defined for each evaluation value in the evaluation value array. The score corresponding to the evaluation value is updated by iteration, and finally the evaluation value with Score = 1 is the maximum evaluation value in the evaluation value array. According to the returned evaluation value array P[ι] including the score value Score, the state value array State is updated. In this embodiment, the pseudo code of the array comparison protocol can be as follows:

[0075] 1、for i form 0toι-1;

[0076] 2、Score(a i )←BGN(1,pk);

[0077] 3、i form 1toι-1;

[0078] 4、

[0079] 5、Bootstrapping(a');

[0080] 6、Score(a i )←Score(a i )*g(a i ,a j );

[0081] 7、for j from 0to i-1;

[0082] 8、Score(a j )←Score(a j )*(1-g(a i ,a'));

[0083] 9、for t from 0toι-1;

[0084] 10、Bootstrapping(Score(a t ));

[0085] 11、return P[ι]。

[0086] In the figure, step 1 indicates that i cycles from 0 to ι-1; step 2 indicates that the Score (a) of each evaluation value is calculated based on the value of 1 homomorphically encrypted by BGN. i ), a i Represents the evaluation value in the evaluation value array, for each a i Calculate a score value Score(a i ); Step 3 indicates that i is looped from 1 to ι-1; Step 4 indicates that the evaluation value array in a i The number a in front j and its corresponding score value Score(a j ) are multiplied and then accumulated to calculate an intermediate value a'; the fifth step is to call the bootstrap algorithm Bootstrapping(·) in BGN encryption so that a' can be multiplied; the sixth step means multiplying each score value by the comparison result of the score value and the intermediate value to recalculate the score value Score(a i ), where g(a i , a') is used to judge a i Is it greater than or equal to a'? If so, return [[1]], otherwise return [[0]]; Step 7 indicates that j loops from 1 to i-1; Step 8 indicates that the evaluation value a is updated. i All previous evaluation values ​​a j The score value makes the evaluation value a j Multiply by g(a i ,a'); Step 9 indicates the loop of t from 1 to ι-1; Step 10 indicates that the score values ​​of all numbers in the evaluation value array are calculated by the bootstrap algorithm to eliminate the ciphertext noise so that it can continue to be multiplied in the next round; Step 11 indicates returning the evaluation value array P[ι] containing the score value Score.

[0087] In this embodiment, k is used to represent the minimum degree of the currently expanded community. After each round of search, k needs to be updated. When k = k*, the search algorithm stops returning results. This embodiment can also calculate the minimum degree of nodes in the target community R. The specific calculation method can be shown in the following formula:

[0088] k=min{d′(u,R)+(1-State(u))*(k*+1)};

[0089] Where k is the minimum degree of a node in the target community R, min{·} is the minimum function, State(u) is the state value corresponding to node u, k* is the core value of the tree node corresponding to the initial community, and d'(u, R) represents the degree of node u in the target community R. Node u in this formula is the node in the target community R.

[0090] In this embodiment, d′(u, R) can be calculated as follows:

[0091]

[0092] where d'(u, R) denotes the degree of node u in the target community R, l is the maximum degree of the node, w' is the fifth auxiliary parameter, I A [u] j denotes the jth item of the adjacency index table corresponding to node u, I A [u] j .flag denotes the flag bit of the jth item of the adjacency index table corresponding to node u, and State(u) is the state value corresponding to node u, where node u in the formula is a node in the initial community R, and the fifth auxiliary parameter w' is calculated in the same way as the fifth auxiliary parameter, but node u is a node in the initial community R.

[0093] When k = k*, the search algorithm stops and returns the last state value array, and the node determined from the corresponding initial community node set C[i] according to the state value array is the target community.

[0094] S104: The target community is sent to the client to enable the client to decrypt the target community to obtain the target result.

[0095] In the present embodiment, the cloud server sends the target community to the client, and the client can use the corresponding key to decrypt the target community to obtain the target result. The decryption step needs to correspond to the encryption step, and the State array constructed in the present embodiment is also sent to the client, and the client uses the BGN decryption key to decrypt the State array, judges the number of bits with a value of 1 in the array, and obtains the node from the initial community according to the number of bits. In the present embodiment, the BGN decryption key and the pseudo-random permutation key can be used to decrypt the node to obtain the target result, which is the result output by the minimum community search according to the query node.

[0096] Further, the present embodiment does not limit the generation method of the used key, nor does it limit how the cloud server, the client and the data end obtain the key. In the present embodiment, the data end can generate a key set K = {Kprp, {Ki}, (pk, sk), (H, h)} according to the security parameters; where Kprp is a pseudo-random permutation key, {Ki} is a key of r pseudo-random functions called by the Bloom filter, (pk, sk) is an encryption key and a decryption key of the BGN homomorphic encryption algorithm, and (H, h) is a hash function and a set of hash values used for comparison protocol, such as the equality function f(·) and the function g(·) in the pseudo code.

[0097] In order to further ensure the security of the minimum community search, two cloud servers can be used for the minimum community search in the embodiment, which are a first cloud server and a second cloud server. The first cloud server is responsible for the search of the minimum community, and the second cloud server is only responsible for providing the comparison result of the data to the first cloud server, so that the data and the key are separated. That is, in the embodiment, the data end can distribute the key and the index, the pk can be distributed to all objects by the data end, the encrypted adjacency index and the core tree index are distributed to the first cloud server, (H, h) and sk are distributed to the second cloud server, and Kprp, {Ki} and sk are distributed to the client.

[0098] In the embodiment, the adjacency index and the core tree index generated by the data end are homomorphically encrypted by BGN and sent to the cloud server. The minimum community search is performed in the cloud server based on the Bloom filter and the array comparison protocol. The target community searched is sent to the client for decryption, which avoids the privacy leakage problem caused by the minimum community search in the cloud server in the prior art and protects the data security.

[0099] The following will be described in detail Figure 5 , Figure 5 The following will be described in detail

[0100] 1. The data end generates a key set according to a security parameter, and sends the corresponding key in the key set to the corresponding target.

[0101] 2. The data end constructs a Bloom filter array of each tree node in the core tree index according to the keys of r pseudo-random functions.

[0102] 3. The data end homomorphically encrypts the key to generate an encrypted adjacency index and a core tree index.

[0103] 4. The data end sends the adjacency index and the core tree index to the first cloud server.

[0104] 5. The client generates a query trapdoor token according to the query node and the corresponding key, and sends the query trapdoor token to the first cloud server.

[0105] 6. When the first cloud server receives the query trapdoor token, the initial community is located in the core tree index according to the Bloom filter array.

[0106] 7. The first cloud server and the second cloud server use the array comparison protocol to generate the target community based on the initial community and the adjacency index.

[0107] 8. The first cloud server sends the target community to the client to enable the client to decrypt the target community to obtain a target result.

[0108] The embodiment of the present application also provides a minimum community searching device, which can comprise:

[0109] A receiving module is configured to receive the adjacent index and the core tree index encrypted by the BGN algorithm and sent by a data terminal, wherein the data terminal constructs a corresponding Bloom filter array for each tree node in the core tree index;

[0110] A positioning module is configured to position an initial community in the core tree index according to the Bloom filter array when receiving a query trapdoor token generated by a client;

[0111] A screening module is configured to generate a target community based on the initial community and the adjacent index by using an array comparison protocol;

[0112] A result module is configured to send the target community to the client to enable the client to decrypt the target community to obtain a target result.

[0113] Based on the above embodiment, the adjacent index and the core tree index generated by the data terminal for the original community graph are homomorphically encrypted by the BGN and sent to the cloud server, the Bloom filter and the array comparison protocol are used for minimum community searching in the cloud server, the target community searched is sent to the client for decryption, the privacy leakage problem caused by the minimum community searching in the cloud server in the prior art is avoided, and the data security is protected.

[0114] The following will be described in detail Figure 6 , Figure 6 The embodiment provides a structural block diagram of a minimum community searching system, which can comprise:

[0115] A data terminal 100 is configured to send the adjacent index and the core tree index encrypted by the BGN algorithm to a cloud server, wherein a Bloom filter array is constructed for each tree node in the core tree index;

[0116] The cloud server 200 is configured to receive the adjacent index and the core tree index sent by the data terminal, position an initial community in the core tree index according to the Bloom filter array when receiving a query trapdoor token, generate a target community based on the initial community and the adjacent index by using an array comparison protocol, and send the target community to a client;

[0117] The client 300 is configured to generate a query trapdoor token and send it to the cloud server, and decrypt the received target community to obtain a target result.

[0118] Based on the above embodiments, the present application generates the adjacent index and the core tree index of the original community graph by BGN homomorphic encryption and sends them to the cloud server, performs the minimum community search in the cloud server based on the Bloom filter and array comparison protocol, sends the target community obtained by the search to the client for decryption, avoids the privacy leakage problem caused by the minimum community search in the cloud server in the prior art, and protects the data security.

[0119] Based on the above embodiments, the cloud server 200 can include:

[0120] The computing unit is configured to calculate the corresponding position trapdoor according to the trapdoor of each query node in the query trapdoor and the node identifier of the corresponding tree node.

[0121] The positioning unit is configured to position the lowest ancestor including the query node in the core tree index according to the Bloom filter array according to the position trapdoor.

[0122] The determining unit is configured to determine all nodes contained in the lowest ancestor as the initial community.

[0123] Based on the above embodiments, the cloud server 200 can include:

[0124] The state unit is configured to establish the state array of the initial community.

[0125] The evaluation unit is configured to calculate the evaluation value of each node in the initial community according to the adjacent index.

[0126] The updating unit is configured to update the state array of the evaluation value using the data comparison protocol, and determine the target community from the initial community according to the updated state array.

[0127] Based on the above embodiments, the state unit can include:

[0128] The first auxiliary subunit is configured to calculate the first auxiliary parameter according to the node identifier in the initial community and the node identifier in the query trapdoor, and send the first auxiliary parameter to the second cloud server.

[0129] The second auxiliary subunit is configured to generate the second auxiliary parameter according to the BGN key parameter and the first auxiliary parameter, and return the state value to the first cloud server according to the second auxiliary parameter.

[0130] The establishing subunit is configured to update the state array according to the state value, and establish the state array of the initial community.

[0131] Based on the above embodiments, the data end 100 can include:

[0132] The first encryption unit is configured to call a BGN key pair to perform BGN encryption on the node flag and the node identification, and generate an encrypted adjacency index and send the same to the cloud server.

[0133] Correspondingly, the cloud server 200 can include

[0134] The first receiving unit is configured to receive the encrypted adjacency index sent by the data terminal.

[0135] Based on the above embodiments, the data terminal 100 can include:

[0136] The second encryption unit is configured to call a BGN key pair to perform BGN encryption on the core value and the node identification of each tree node, and generate an encrypted core tree index and send the same to the cloud server.

[0137] Correspondingly, the cloud server 200 can include

[0138] The second receiving unit is configured to receive the encrypted core tree index sent by the data terminal.

[0139] Based on the above embodiments, the client 300 can include:

[0140] The first decryption unit is configured to use a BGN key pair to decrypt the state array in the target community.

[0141] The second decryption unit is configured to obtain a target node according to the decrypted state array and the initial community.

[0142] The third decryption unit is configured to use a BGN key pair to decrypt the target node to obtain a target result.

[0143] The embodiment of the application further provides a computer readable storage medium, which has a computer program stored thereon, and the computer program is executed by a terminal or a processor to implement the minimum community search method provided by the embodiment of the application.

[0144] The embodiments in the specification are described in a progressive manner, and each embodiment focuses on the difference from other embodiments, and the same or similar parts of each embodiment can be referred to each other. For the device disclosed by the embodiments, since it corresponds to the method disclosed by the embodiments, the description is relatively simple, and the related parts can be referred to the method part.

[0145] Finally, it needs to be pointed out that in this document, relational terms such as first and second and the like can only be intended to distinguish one entity or operation from another entity or operation without necessarily requiring or implying any such actual relationship or order between such entities or operations. Moreover, the terms "comprising", "including", or any other variant thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without more limitations, an element defined by the statement "comprising a" does not exclude the existence of additional identical elements in the process, method, article, or apparatus including the stated element.

[0146] The above describes in detail a minimum community search method, device, system and storage medium provided by the present application. The principles and implementation manners of the present application are described by applying specific examples in this document. The above description of the embodiments is only used to help understand the method of the present application and its core idea. Meanwhile, for those skilled in the art, according to the idea of the present application, the specific implementation manners and application ranges will be changed. In view of the above, the content of the specification should not be understood as a limitation of the present application.

Claims

1. A minimum community search method, characterized in that: include: Receiving the adjacency index and core tree index encrypted by the BGN algorithm sent by the data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index; When receiving a query trapdoor token generated by the client, locating an initial community in the core tree index according to the Bloom filter array; generating a target community based on the initial community and the adjacency index using an array comparison protocol; The target community is sent to the client, so that the client decrypts the target community to obtain a target result.

2. The minimum community search method according to claim 1, characterized in that: The locating the initial community in the core tree index according to the Bloom filter array includes: Calculating a corresponding position trapdoor according to the trapdoor of each query node in the query trapdoor token and the node identifier of the corresponding tree node; Locating the lowest ancestor including the query node in the core tree index according to the bloom filter array according to the position trapdoor; All nodes included in the lowest ancestor are determined as the initial community.

3. The minimum community search method according to claim 1, characterized in that: The generating a target community based on the initial community and the adjacency index using an array comparison protocol includes: Establishing a state array of the initial community; Calculating an evaluation value of each node in the initial community according to the adjacency index; The state array of the evaluation value is updated using the array comparison protocol, and the target community is determined from the initial community according to the updated state array.

4. The minimum community search method according to claim 3, characterized in that: The state array for establishing the initial community includes: The first cloud server calculates a first auxiliary parameter according to the node identifier in the initial community and the node identifier in the query trapdoor token, and sends the first auxiliary parameter to the second cloud server; The second cloud server generates a second auxiliary parameter according to the BGN key parameter and the first auxiliary parameter, and returns a status value to the first cloud server according to the second auxiliary parameter; The first cloud server updates the state array according to the state value to establish the state array of the initial community.

5. The minimum community search method according to claim 1, characterized in that: The adjacency index encrypted by the BGN algorithm and sent by the data receiving end includes: The data end uses the BGN key to perform BGN encryption on the node flag and the node identifier, generates the encrypted adjacency index and sends it to the cloud server; The cloud server receives the encrypted adjacency index sent by the data end.

6. The minimum community search method according to claim 1, characterized in that: The core tree index encrypted by the BGN algorithm and sent by the data receiving end includes: The data end uses the BGN key to perform BGN encryption on the core value and node identifier of each tree node, generates the encrypted core tree index and sends it to the cloud server; The cloud server receives the encrypted core tree index sent by the data end.

7. The minimum community search method according to any one of claims 1 to 6, characterized in that: The client decrypts the target community to obtain a target result, including: The client uses the BGN key to decrypt the state array in the target community; Obtaining a target node according to the decrypted state array and the initial community; The target node is decrypted using the BGN key to obtain the target result.

8. A minimum community search device, characterized in that: include: A receiving module, configured to receive an adjacency index and a core tree index encrypted by a BGN algorithm sent by a data end; wherein the data end constructs a corresponding Bloom filter array for each tree node in the core tree index; a positioning module, configured to locate an initial community in the core tree index according to the Bloom filter array when receiving a query trapdoor token generated by a client; a screening module, configured to generate a target community based on the initial community and the adjacency index using an array comparison protocol; The result module is configured to send the target community to the client, so that the client decrypts the target community to obtain a target result.

9. A minimum community search system, characterized in that: include: The data end is used to send the adjacency index and the core tree index encrypted by the BGN algorithm to the cloud server; wherein, a corresponding Bloom filter array is constructed for each tree node in the core tree index; The cloud server is configured to receive the adjacency index and the core tree index; when receiving a query trapdoor token, locate an initial community in the core tree index according to the Bloom filter array; generate a target community based on the initial community and the adjacency index using an array comparison protocol; and send the target community to the client; The client is used to generate the query trapdoor token and send it to the cloud server; decrypt the received target community to obtain the target result.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, the minimum community search method according to any one of claims 1 to 4 is implemented.

Citation Information

Patent Citations

  • Community privacy data access method and device

    CN114244547A

  • Bloom filter index for device discovery

    US20180089243A1