(α,β)-core query method for structured encrypted bipartite graph data
By constructing an index table and adopting structured encryption technology and symmetric homomorphic encryption technology, the inefficient (α, β)-core query problem in existing methods is solved, efficient and accurate real-time query is achieved, and rich query of node attribute information is supported.
Patent Information
- Application Number
- CN202310911060.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-24
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2043-07-24
AI Technical Summary
The existing (α, β)-core query method for encrypted bipartite graph data requires pre-processing of all α, β combinations, resulting in low efficiency and inability to handle new edges in real time, while also failing to consider node attribute information.
Structured encryption technology and symmetric homomorphic encryption technology are used to build an index table. Privacy protection is performed through (α, β)-WC query and (α, β)-AWC query. The adjacency matrix is calculated and returned to the user for decryption to implement (α, β)-core query.
There is no need to pre-list the α and β combinations, which enables efficient real-time (α, β)-core queries and supports rich queries of node attribute information, improving query accuracy and efficiency.
Smart Images

Figure CN116975381B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of information technology, and in particular to an (α, β)-core query method for structured encrypted bipartite graph data. Background Art
[0002] A bipartite graph is a graph whose nodes are divided into two independent sets U and L, and each edge connects a node in U to another node in L. (α,β)-core queries can identify important and meaningful subgraphs from large complex networks. Specifically, a (α,β)-core query of a bipartite graph given α and β can obtain important dense subgraphs from a huge bipartite graph. Given the degree constraints α and β of the upper node U and the lower node L of the bipartite graph, a maximum subgraph G is found. α,β , the degrees of all upper and lower nodes of the subgraph are greater than or equal to the degree constraints, that is, A typical application scenario for (α,β)-core is online group recommendation, which aims to recommend products to a group of users who may or may not have similar tastes. For example, recommending movies for friends to watch together.
[0003] Existing methods for performing (α, β)-core queries on encrypted bipartite graph data primarily preprocess all possible combinations of α and β and construct a secure index table based on these combinations, enabling efficient (α, β)-core queries. However, existing privacy-preserving (α, β)-core query techniques on bipartite graphs require preprocessing all possible combinations of α and β, constructing a secure index table based on these combinations, and then utilizing homomorphic properties to perform data computations to obtain a set of nodes that satisfy degree constraints. However, as the number of nodes increases, preprocessing and listing all possible combinations of α and β is not a viable solution. Furthermore, the combination structure changes when a new edge is added. Furthermore, existing methods fail to consider the presence of node attribute information in real-world scenarios. Therefore, it is necessary to provide a method that can directly compute accurate (α, β)-cores in real time without enumerating all possible combinations of α and β, thereby enabling richer queries. Summary of the Invention
[0004] The purpose of the present invention is to provide an (α, β)-core query method for structured encrypted bipartite graph data, which is conducive to improving the efficiency and accuracy of (α, β)-core queries and realizing richer query functions.
[0005] To achieve the above objectives, the present invention adopts a technical solution: a (α, β)-core query method for structured encrypted bipartite graph data, comprising:
[0006] Construct an index table for the bipartite graph and encrypt the index using structured encryption technology and symmetric homomorphic encryption technology;
[0007] Perform privacy-preserving (α, β)-core queries, using either (α, β)-WC queries or (α, β)-AWC queries based on query requirements.
[0008] The adjacency matrix obtained by the query is returned to the user, and the user uses the private key to decrypt the matrix to obtain the query result.
[0009] Furthermore, six index tables are constructed for the bipartite graph, including:
[0010] Query degree table D1: stores nodes whose degree is greater than or equal to a specific value;
[0011] Node degree table D2: stores nodes whose degrees are equal to a specific value;
[0012] Partition table S: partitions the bipartite graph into connected subgraphs, which is used to implement subgraph connectivity queries;
[0013] Edge table E: the edges connecting the upper-level nodes and the lower-level nodes, and each edge stores four tuples of information, namely (weight value, 1, upper-level node, ciphertext of lower-level node);
[0014] Weight value table W: The weight value is a rating with a fixed rating range, which is used to find the minimum ciphertext value;
[0015] Keyword table T: stores the lower-level vertex information containing keywords.
[0016] Furthermore, the (α, β)-WC is defined as: given a bipartite graph G = (U, L, E), two integers α and β, query node q, and obtain a maximal connected subgraph containing q The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, And has the largest weight value W(G q,α,β ).
[0017] Furthermore, before calculating (α, β)-WC, (α, β)-core is calculated for the query node q; specifically:
[0018] First, obtain the index entry of the node degree table D2 with degree equal to α and β from the query degree table D1, and obtain the query node V = (U, L) that meets the degree constraint based on the entry, and determine whether the query node q exists in V. If so, continue execution;
[0019] Secondly, construct a temporary adjacency matrix for U and L;
[0020] Finally, a sum operation is performed on each row and column in the adjacency matrix, and the result is compared with α and β; when the result is greater than α(β), the upper or lower layer vertex meets the degree constraint, otherwise the vertex is filtered.
[0021] Furthermore, the (α1, β1)-core is calculated for the query node q1. The matrix calculation steps include:
[0022] (a) Perform the operation first: add the elements of each row;
[0023] (b) Compare the result of the row operation with α=α1 and filter the upper vertices that do not meet the α condition;
[0024] (c) Perform column operations on the upper vertices that meet the requirements: add the elements of each column;
[0025] (d) Compare the result of the column operation with β = β1 and filter the lower-level vertices that do not meet the β condition;
[0026] (e) To ensure the accuracy of the query (α1, β1)-core result, the vertex set that satisfies the above steps is further processed through steps (a)-(d);
[0027] During the entire calculation process above, it is necessary to determine whether the query node is in the vertex set that satisfies the degree constraint.
[0028] Furthermore, the (α,β)-AWC is defined as: given a bipartite graph G, query node q, degree constraints α and β, query attribute set q w , get a subgraph G containing q R The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, And the attribute information of the lower vertex L1 contains q w and subgraph G R With the largest weight value W(G R ).
[0029] Furthermore, the specific implementation method of the (α, β)-AWC is:
[0030] First, obtain the vertex set V that meets the degree constraint by querying the degree table D1 and the node degree table D2, and compare it with the keyword index table T and the query keyword q w Filter attribute information to obtain the final query keyword q w Vertex V1; then, perform (α, β)-WC query based on V1.
[0031] Furthermore, two non-colluding servers C1 and C2 are used to compare the ciphertext sizes; for β and The specific implementation method is:
[0032] (1) Randomly generate two random values r1 and r2 (r1>r2>0);
[0033] (2) Replace the coin and randomly select b = 1 or 0;
[0034] (3) Calculation
[0035] (4) The calculation result is sent to the server C2, which decrypts it:
[0036] if Then return δ=1; otherwise return δ=0;
[0037] (5) After server C1 obtains δ, it compares δ with b to see if they are equal. If they are equal, it means otherwise
[0038] Compared with the existing technology, the present invention has the following beneficial effects: it provides an (α, β)-core query method for structured encrypted bipartite graph data. This method does not require listing the α, β combinations, but directly allows the cloud server to perform real-time calculations, thereby efficiently obtaining an accurate (α, β)-core; in addition, it also assigns attribute information to edges and nodes to achieve richer queries and meet different query requirements. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] Figure 1 is a flowchart of a method implementation of an embodiment of the present invention;
[0040] Figure 2 1 is a schematic diagram of adjacency matrix operations in an embodiment of the present invention;
[0041] Figure 3 Schematic diagram of the (α, β)-WC operation process in an embodiment of the present invention. DETAILED DESCRIPTION
[0042] The present invention will be further described below with reference to the accompanying drawings and embodiments.
[0043] It should be noted that the following detailed descriptions are exemplary and are intended to provide further explanation of the present application. Unless otherwise specified, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which the present application belongs.
[0044] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit the exemplary embodiments according to the present application. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprise" and / or "include" are used in this specification, they indicate the presence of features, steps, operations, devices, components and / or combinations thereof.
[0045] This paper designs a privacy-preserving (α, β)-core query using structured encryption and symmetric additive homomorphic encryption. Based on α and β, upper and lower-level nodes that satisfy degree constraints are obtained, and an adjacency matrix is constructed for the two types of nodes. Through row and column operations and size comparisons, a maximal subgraph that satisfies the (α, β)-core is obtained.
[0046] This embodiment provides a (α, β)-core query method for structured encrypted bipartite graph data, and its implementation process is as follows: Figure 1 The method specifically comprises the following steps:
[0047] 1. Index table construction and encryption
[0048] Six index tables are constructed for the bipartite graph and the indexes are encrypted using structured encryption technology and symmetric homomorphic encryption technology:
[0049] Query degree table D1: stores nodes whose degree is greater than or equal to a specific value. Figure 1 As shown, the maximum degree of the upper node is 4, so a dictionary with degrees 1-4 is constructed, where t1 in the key represents the upper node type (t2 represents the lower node type), and the value stores the D2 inverted index key greater than or equal to 1. For example, D1(1||t1) = {D2(1||t1), D2(2||t1), D2(3||t1), D2(4||t1)}.
[0050] Node degree table D2: stores node degrees equal to a specific value. Figure 1 As shown, the node with the upper node degree of 1 is {u6, u7}, then D2(1||t1)={u6, u7}; the node with the lower node degree of 2 is {v1, v2, v6, v7}, then D2(2||t2)={v1, v2, v6, v7}.
[0051] Partition table S: partitions the bipartite graph into connected subgraphs. The purpose of this table is to implement subgraph connectivity queries. Figure 1 It can be seen that it is composed of two bipartite graphs, namely S1 = {u1, u2, u3, u4, v1, v2, v3, v4, v5}, S2 = {u5, u6, u7, v6, v7}.
[0052] Edge table E: The edges connecting the upper layer nodes and the lower layer nodes, and each edge stores four tuples of information, namely (weight value, 1, upper layer node, ciphertext of lower layer node). Figure 1 As shown, (u1, v1) = {4, 1, u1, v1}.
[0053] Weight value table W: The weight value is the rating (such as movie rating) and the rating range is fixed. This index table is used to find the minimum ciphertext value. From the IMDB website, we know that its rating range is {1, 2, 3, 4, 5}. When w = 1, the ciphertext value of {1, 0, 0, 0} is stored. That is, W(1) = {c1, c0, c0, c0, c0}. i Represents the ciphertext value of i.
[0054] Keyword table T: stores the lower-level vertex information containing keywords. Figure 1 As shown, the nodes in the lower layer that contain the keyword θ1 = Science are {v1, v2, v3, v4, v5}, that is, T(θ1) = {v1, v2, v6, v7}
[0055] 2. Privacy-preserving (α, β)-core query
[0056] The present invention proposes two types of queries: (α,β)-Weighted Community (abbreviated as (α,β)-WC) and (α,β)-Attributed Weighted Community (abbreviated as (α,β)-AWC). The (α,β)-WC query or the (α,β)-AWC query is used according to the query requirements.
[0057] Definition 1 ((α, β)-core): Given a bipartite graph G = (U, L, E), two integers α and β, obtain a maximal subgraph The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is,
[0058] Definition 2 (Bipartite graph weight): Given a bipartite graph G, its bipartite graph weight can be expressed as = minW(e), e∈E(G).
[0059] Definition 3 ((α,β)-Weighted Community): Given a bipartite graph G = (U,L,E), two integers α and β, query a node q and obtain a maximal connected subgraph containing q The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, And has the largest weight value W(G q,α,β ).
[0060] Definition 4 ((α,β)-AttributedWeighted Community): Given a bipartite graph G, query node q, degree constraints α and β, query attribute set (keyword) q w , get a subgraph G containing q R The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, And the attribute information of the lower vertex L1 contains q w and subgraph G R With the largest weight value W(G R ).
[0061] (α,β)-Weighted Community:
[0062] Before calculating (α, β)-WC, it is necessary to calculate (α, β)-core for the query node q. The details are as follows:
[0063] First, obtain the D2 index entry with degree equal to α and β from table D1, and obtain the query node V = (U, L) that satisfies the degree constraint based on the entry. Then determine whether the query node q exists in V. If so, continue execution. For example: query node u3, calculate (3,2)-core, and obtain the Value values with degree equal to 3 and 2 from table D1: D1(3||t1) = {D2(3), D2(4)}, D1(2||t2) = {D2(2), D2(3), D2(4)}. Based on the values of {D1(3), D1(2)}, obtain the vertex information V = U, L) from table D2, where U = {1, u2, u3, u4} and L = {v1, v2, v3, v4, v5, v6, v7}.
[0064] Secondly, construct a temporary adjacency matrix for U and L, such as Figure 1 (d) shown.
[0065] Finally, the summation operation is performed on each row and column in the adjacency matrix, and the result is compared with α and β. If the result is greater than α(β), the upper (lower) layer vertex meets the degree constraint, otherwise the vertex is filtered out.
[0066] Calculate (α1, β1)-core for query node q1. The matrix calculation steps include:
[0067] (a) Perform the operation first: add the elements of each row;
[0068] (b) Compare the result of the row operation with α=α1 and filter the upper vertices that do not meet the α condition;
[0069] (c) Perform column operations on the upper vertices that meet the requirements: add the elements of each column;
[0070] (d) Compare the result of the column operation with β = β1 and filter the lower-level vertices that do not meet the β condition;
[0071] (e) To ensure the accuracy of the query (α1, β1)-core results, the vertex set that satisfies the above steps is subjected to steps (a)-(d) again.
[0072] Take the above example: query node u3 and calculate (3,2)-core. The matrix calculation steps are described as follows:
[0073] (a) Advanced "row" operation: add the elements of each row. (See Figure 2 Middle horizontal box)
[0074] (b) Compare the result of the "row" operation with α=3, and filter out the upper-level vertices that do not meet the α condition.
[0075] (c) Perform a column operation on the upper vertices that satisfy the condition: add the elements of each column. (See Figure 2 The vertical box on the left side of the center)
[0076] (d) Compare the result of the "column" operation with β = 2, and filter the lower-level vertices that do not meet the β condition (see Figure 2 the vertical box on the right side of the screen).
[0077] (e) To ensure the accuracy of the query (3,2)-core results, the vertex set that satisfies the above steps is subjected to steps (a)-(d) again.
[0078] The entire process above is to determine whether the query node is in the vertex set that satisfies the degree constraint.
[0079] Here, we first perform a row operation on the matrix to filter out lower-level vertices that do not meet the degree constraint; then we perform a column operation on the matrix to filter out upper-level vertices that do not meet the degree constraint (the column operation does not calculate the filtered lower-level vertices at this time). By continuously performing row and column sum operations and size comparisons, we calculate the vertices that meet the degree constraint. When both the row and column conditions are met and no further vertex filtering is required, the matrix operation ends.
[0080] Note: The priority order of row and column operations is not unique. The present invention adopts row operations first and then column operations.
[0081] According to the above steps, the query result of (3,2)-core is Figure 1 (e) The adjacency matrix, users can construct the corresponding structure graph based on the adjacency matrix.
[0082] The above description implements an (α,β)-core query in a plaintext environment. For ciphertext environments, the "1" and "0" values in the matrix are encrypted using symmetric homomorphic encryption technology, and row and column operations and size comparisons are implemented based on the properties of symmetric homomorphic encryption.
[0083] Compared with the (α, β)-core proposed by Guan in 2022, this invention has the following advantages:
[0084] (1) There is no need to pre-process all combinations of α and β, and the processing efficiency is higher for data of a large number of graph nodes.
[0085] (2) When adding new users or edges in the future, this solution only needs to adjust table D2 to implement (α, β)-core queries.
[0086] [Guan]Y.Guan, R.Lu, Y.Zheng, S.Zhang, J.Shao and G.Wei, "AchievingEfficient and Privacy-Preserving(,)-Core Query over Bipartite Graphs inCloud," in IEEE Transactions on Dependable and Secure Computing, doi: 10.1109 / TDSC.2022.3169386.
[0087] After implementing the (α, β)-core query, we need to further filter the edge weights to obtain a more meaningful subgraph structure. Based on the (α, β)-core subgraph, we obtain the minimum weight and modify the adjacency matrix position that meets the minimum value to 0, and then perform the "row" and "column" operations.
[0088] Taking the "user-movie" personalized recommendation IMDB as a real-world scenario, we know that its weight value is W = {1, 2, 3, 4, 5}. The optimal subgraph is continuously "cropped" by obtaining the minimum weight value.
[0089] For example, to implement a (3, 2)-WC query, the weight value W = {2, 3, 4, 5}
[0090] (a) According to U = {u1, u2, u3, u4} and L = {v1, v2, v3, v4, v5}, obtain the minimum weight W = 2 and the corresponding edge, and modify the value in the adjacency matrix, such as Figure 1 (e).
[0091] (b) Perform addition and comparison operations on the rows and columns (the process is the same as (α, β)-core). Here, an array needs to be constructed to store the position A that needs to be modified each time.
[0092] (c) After filtering out the node u4 that does not satisfy the degree constraint, it is necessary to determine whether the query node u3 exists in the vertex set. If not, the above operation is invalid. The original adjacency matrix of the previous layer operation must be restored based on array A and returned to the user as the final query result. If it exists, continue to follow steps (a) and (b) and continue to loop to determine the weights in the S set. The final result of the operation is as follows Figure 1 (f).
[0093] (α,β)-Attributed Weighted Community:
[0094] Because nodes contain rich information, node attribute values must also be considered to achieve more accurate personalized recommendations. For example, if a user likes science fiction movies, then we should recommend more science fiction movies to that user and other users who also like science fiction movies. However, this important information is contained in the node attribute values. Therefore, this invention proposes to achieve more meaningful queries based on the attribute information of the underlying nodes.
[0095] First, obtain the vertex set V that satisfies the degree constraint through Table D1 and Table D2, and compare it with the keyword index table T and the query keyword q w Filter attribute information to obtain the final query keyword q w Then, perform (α, β)-WC query based on V1.
[0096] With (3, 2)-AWC, q w ={Science, Action}, q={u3} as an example:
[0097] (a) Perform keyword attribute filtering to obtain a new vertex set V1 = (U, L), where U = {u1, u2, u3, u4} and L = {v2, v3, v4, v5}, and construct a temporary adjacency matrix for V1, such as Figure 1 (a).
[0098] (b) Then perform (3, 2)-WC operation on the matrix. The operation process is as follows Figure 3 shown.
[0099] 3. Decrypt the query results
[0100] The adjacency matrix obtained by the query is returned to the user, and the user uses the private key to decrypt the matrix to obtain the query result.
[0101] The core idea of the entire solution is to calculate the adjacency matrix online. To better implement queries in a ciphertext environment, the present invention uses two non-colluding servers C1 and C2 to implement a more complex ciphertext size comparison. The specific operation is as follows:
[0102] Comparison of two ciphertexts (r1>r2>0)
[0103]
[0104] Randomly select b and then calculate
[0105] For β and The specific implementation method is:
[0106] (1) Randomly generate two random values r1 and r2 (r1>r2>0);
[0107] (2) Replace the coin and randomly select b = 1 or 0;
[0108] (3) Calculation
[0109] (4) The calculation result is sent to the server C2, which decrypts it:
[0110] if Then return δ=1; otherwise return δ=0;
[0111] (5) After server C1 obtains δ, it compares δ with b to see if they are equal. If they are equal, it means otherwise
[0112] For example: compare β = 4 and
[0113] (1) Randomly generate two random values r1 = 6, r2 = 2
[0114] (2) Replace the coin and randomly select b=1
[0115] (3) Calculation
[0116]
[0117] (4) E(14) is sent to server C2, which decrypts it:
[0118] If D(E(14))=14>0, then return δ=1
[0119] (5) After server C1 obtains δ = 1, it compares δ with b to see if they are equal.
[0120] If they are equal, it means otherwise
[0121] This operation is used to compare the row and column operation results with the α and β values when calculating (α, β)-core in a ciphertext environment. It is mainly used to implement ciphertext comparison in symmetric homomorphic encryption.
[0122] The (α, β)-core query method for structured encrypted bipartite graph data provided by the present invention constructs a temporary adjacency matrix, adopts symmetric partially homomorphic encryption technology, performs "row" and "column" ciphertext addition operations and ciphertext size comparison, and implements (α, β)-core queries under privacy protection. In addition, the present invention also assigns attribute information and edge weight values to nodes to achieve rich queries under ciphertext. The present invention has the following outstanding technical features and advantages:
[0123] (1) Without preprocessing all combinations of nodes α and β, (α, β)-core query can be achieved by constructing an adjacency matrix and performing "row" and "column" addition operations and size comparisons.
[0124] (2) By introducing edge weights, a more personalized (α, β)-Weighted Community query can be achieved based on the method in (1).
[0125] (3) By introducing node attribute values, we can filter the attribute values of lower-level vertices based on the method (1), thus achieving richer and more accurate (α, β)-AttributedWeighted Community queries.
[0126] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.
[0127] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the steps in the process. Figure 1a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0128] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.
[0129] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0130] The above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention in any other manner. Any person skilled in the art may utilize the above-disclosed technical content to modify or modify the present invention into equivalent embodiments. However, any simple modifications, equivalent variations, and modifications to the above embodiments that do not depart from the technical content of the present invention and are based on the technical essence of the present invention remain within the scope of protection of the present invention.
Claims
1. A (α, β)-core query method for structured encrypted bipartite graph data, characterized in that: include: Construct an index table for the bipartite graph and encrypt the index using structured encryption technology and symmetric homomorphic encryption technology; Perform privacy-preserving (α, β)-core queries, using either (α, β)-WC queries or (α, β)-AWC queries based on query requirements. The adjacency matrix obtained by the query is returned to the user, and the user uses the private key to decrypt the matrix to obtain the query result; The (α, β)-WC is defined as: given a bipartite graph G = (U, L, E), two integers α and β, query node q, and obtain a maximal connected subgraph containing q The degree of all nodes U1 in the network is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, deg(v,G q,α,β )≥β, and has the largest weight value W(G q,α,β ); Before calculating (α, β)-WC, calculate (α, β)-core for the query node q; specifically: First, obtain the index entry of the node degree table D2 with degree equal to α and β from the query degree table D1, and obtain the query node V = (U, L) that meets the degree constraint based on the entry, and determine whether the query node q exists in V. If so, continue execution; Secondly, construct the adjacency matrix for U and L; Finally, the sum operation is performed on each row and column in the adjacency matrix, and the result is compared with α and β. When the result is greater than α or β, the upper or lower vertex meets the degree constraint. Otherwise, the vertices that do not meet the degree constraint are filtered out. The (α, β)-AWC is defined as: given a bipartite graph G, a query node q, two integers α and β, and a query attribute set q w , get a subgraph G containing q R , where the degree of all nodes U1 is greater than or equal to α, and the degree of L1 is greater than or equal to β, that is, deg(v,G q,α,β )≥β, and the attribute information of the lower vertex L1 contains q w and subgraph G R With the largest weight value W(G R ).
2. The (α, β)-core query method for structured encrypted bipartite graph data according to claim 1, characterized in that Construct six index tables for the bipartite graph, including: Query degree table D1: stores nodes whose degree is greater than or equal to a specific value; Node degree table D2: stores nodes whose degrees are equal to a specific value; Partition table S: partitions the bipartite graph into connected subgraphs, which is used to implement subgraph connectivity queries; Edge table E: The edges connecting the upper-level nodes and the lower-level nodes, and each edge stores four tuples of information, namely the weight value, 1, the upper-level node, and the ciphertext of the lower-level node; Weight value table W: The weight value is a rating with a fixed rating range, which is used to find the minimum ciphertext value; Keyword table T: stores the lower-level vertex information containing keywords.
3. The (α, β)-core query method for structured encrypted bipartite graph data according to claim 1, characterized in that Calculate (α1, β1)-core for query node q1. The matrix calculation steps include: (a) Perform the operation first: add the elements of each row; (b) Compare the result of the row operation with α=α1 and filter the upper vertices that do not meet the α condition; (c) Perform column operations on the upper vertices that meet the requirements: add the elements of each column; (d) Compare the result of the column operation with β = β1 and filter the lower-level vertices that do not meet the β condition; (e) To ensure the accuracy of the query (α1, β1)-core result, the vertex set that satisfies the above steps is further processed through steps (a)-(d); During the entire calculation process above, it is necessary to determine whether the query node is in the vertex set that satisfies the degree constraint.
4. The (α, β)-core query method for structured encrypted bipartite graph data according to claim 1, characterized in that: The specific implementation method of the (α, β)-AWC is: First, obtain the vertex set V that meets the degree constraint by querying the degree table D1 and the node degree table D2, and compare it with the keyword index table T and the query keyword q w Filter attribute information to obtain the final query keyword q w Vertex V1; then, perform (α, β)-WC query based on V1.
5. The (α, β)-core query method for structured encrypted bipartite graph data according to claim 1, characterized in that: Use two non-colluding servers C1 and C2 to compare the ciphertext size; for B and The specific implementation method is: (1) Randomly generate two random values r1 and r2, r1>r2>0; (2) Replace the coin and randomly select b = 1 or 0; (3) Calculation (4) The calculation result is sent to the server C2, which decrypts it: if Then return δ=1; Otherwise return δ=0; (5) After server C1 obtains δ, it compares δ with b to see if they are equal. If they are equal, it means otherwise
Citation Information
Patent Citations
Dynamic updating method for privacy policy in composite service
CN109495460A
Database with security row tables
US20200320210A1