Multi-data privacy query method and system
By grouping and parallelizing data and performing obfuscated encryption, the problems of large computational complexity and low security in hidden queries are solved, and efficient and secure data query collaboration is achieved.
Patent Information
- Application Number
- CN202411231643.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-04
- Publication Date
- 2025-10-21
- Estimated Expiration
- 2044-09-04
AI Technical Summary
The existing hidden query technology has large computational complexity and limited query data volume, resulting in low collaborative efficiency of system data query.
By grouping data and performing obfuscated encryption on data indexes, parallel computing and secure transmission of data are achieved, including the information interaction and decryption process between data service providers and users.
It improves data processing efficiency and transmission security, optimizes system performance, protects data privacy and improves data query collaboration efficiency among business parties.
Smart Images

Figure CN119203213B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of privacy computing, and in particular to a multi-data hidden query method and system. Background Art
[0002] In the field of privacy computing, hidden query technology is a privacy-preserving query technology that ensures that the query conditions and non-query content are not disclosed when users query information. It plays a significant role in applications such as anonymous information retrieval, stock trading, and fraud detection.
[0003] In the existing technology, algorithms such as homomorphic encryption are usually used to complete hidden queries. However, when completing hidden queries through this algorithm, the computational complexity of the online query stage is too large and the amount of query data is limited, resulting in low data query collaboration efficiency of the entire system. Summary of the Invention
[0004] To solve the above problems, the present invention provides a multi-data hidden query method and system, which groups the data through the data service party, and the grouped data index is obfuscated and encrypted by both parties before transmission and calculation, and finally the data user obtains the decrypted data to achieve a balance between hidden query security and query collaboration efficiency.
[0005] To achieve the above-mentioned purpose, the present invention provides a multi-data hidden query method, comprising: determining the corresponding initial public parameters according to the current security parameters; the data service party groups the original data set using a preset grouping rule to obtain multiple grouping sequences and a data index sequence corresponding to each grouping sequence; using the first confusion factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the grouping sequence to obtain a first ciphertext sequence corresponding to the data index sequence of each grouping sequence; the data service party receives the query grouping label corresponding to the data to be queried sent by the data user, locates the target grouping sequence, the target first ciphertext sequence and the target data index sequence according to the query grouping label; sends the target data index sequence to the data user; the data user According to the first index subsequence of the data to be queried and the index sequence of the target data, the second index subsequence of the group sequence to which the data to be queried belongs is located; the second index subsequence is confused using a second confusion factor and an initial public parameter to obtain a joint blinded confusion value; the joint blinded confusion value is sent to a data service provider; the data service provider first deblinds the joint blinded confusion value according to the initial public parameter, and then encrypts the target group sequence to obtain a second ciphertext sequence corresponding to the second index subsequence and the target group sequence; the target first ciphertext sequence and the second ciphertext sequence are sent to a data user; the data user decrypts the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result.
[0006] Further optionally, the method of using the first obfuscation factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence includes: for each data index in any group sequence Calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula
[0007]
[0008] Wherein, i = {1, 2, …, t}, represents the group sequence number of the group sequence; j = {{1, 2, …, n1}; {1, 2, …, n2}; …; {1, 2, …, nt}}, represents the data index sequence number in the group sequence; a and b are both secure large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; r1 is the first confusion factor.
[0009] Further optionally, the second index subsequence is obfuscated using a second obfuscation factor and an initial common parameter to obtain a joint blinded obfuscation value, which is calculated by the following formula:
[0010]
[0011] Where cV is the combined blind confusion value; y i is the i-th element value in the second index subsequence, i∈[n], n is the number of data to be queried;
[0012] The method of first performing a deblinding process on the joint blinded obfuscation value according to the initial public parameter and then encrypting the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence includes:
[0013]
[0014] Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; j={1,2,…,nw}, represents the data index sequence number in the group sequence to which the data to be queried belongs.
[0015] Further optionally, decrypting the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result includes:
[0016] When the number of data to be queried is n=2, the query result is calculated by the following formula:
[0017]
[0018] When the number of data to be queried is n ≥ 3, the query result is calculated using the following formula:
[0019]
[0020] …
[0021]
[0022] Further optionally, determining corresponding initial public parameters according to current security parameters includes:
[0023] Determine the target security level according to the security level mapping relationship and the current security parameters; select the public parameters corresponding to the target security level as the initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are pre-set respectively.
[0024] On the other hand, the present invention also provides a multi-data hidden query system, including: an initial public parameter determination module, used to determine the corresponding initial public parameters according to the current security parameters; a data preprocessing module, used for the data service party to group the original data set using a preset grouping rule to obtain multiple group sequences and a data index sequence corresponding to each group sequence; use the first confusion factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain a first ciphertext sequence corresponding to the data index sequence of each group sequence; a target data index sequence determination module, used for the data service party to receive the query group label corresponding to the data to be queried sent by the data user, locate the target group sequence, the target first ciphertext sequence and the target data index sequence according to the query group label; and send the target data index sequence to the data user; The obfuscation encryption module is used by the data user to locate the second index subsequence of the to-be-queried data in the group sequence to which it belongs based on the first index subsequence of the to-be-queried data and the target data index sequence; the second index subsequence is obfuscated using a second obfuscation factor and initial public parameters to obtain a joint blinded obfuscation value; and the joint blinded obfuscation value is sent to the data service provider; the deblinding encryption module is used by the data service provider to first deblind the joint blinded obfuscation value based on the initial public parameters, and then encrypt the target group sequence to obtain the second index subsequence and the second ciphertext sequence corresponding to the target group sequence; and the target first ciphertext sequence and the second ciphertext sequence are sent to the data user; the decryption module is used by the data user to decrypt the target first ciphertext sequence and the second ciphertext sequence based on the second obfuscation factor and initial public parameters to obtain a query result.
[0025] Further optionally, the method of using the first obfuscation factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence includes: for each data index in any group sequence Calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula
[0026]
[0027] Wherein, i = {1, 2, …, t}, represents the group sequence number of the group sequence; j = {{1, 2, …, n1}; {1, 2, …, n2}; …; {1, 2, …, nt}}, represents the data index sequence number in the group sequence; a and b are both secure large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; r1 is the first confusion factor.
[0028] Further optionally, the second index subsequence is obfuscated using a second obfuscation factor and an initial common parameter to obtain a joint blinded obfuscation value, which is calculated by the following formula:
[0029]
[0030] Where cV is the combined blind confusion value; y i is the i-th element value in the second index subsequence, i∈[n], n is the number of data to be queried;
[0031] The method of first performing a deblinding process on the joint blinded obfuscation value according to the initial public parameter and then encrypting the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence includes:
[0032]
[0033] Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; j={1,2,…,nw}, represents the data index sequence number in the group sequence to which the data to be queried belongs.
[0034] Further optionally, decrypting the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result includes:
[0035] When the number of data to be queried is n=2, the query result is calculated by the following formula:
[0036]
[0037] When the number of data to be queried is n ≥ 3, the query result is calculated using the following formula:
[0038]
[0039] …
[0040]
[0041] Further optionally, the initial public parameter determination module includes: a security level determination submodule, used to determine the target security level based on the security level mapping relationship and the current security parameters; an initial public parameter determination submodule, used to select the public parameters corresponding to the target security level as the initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are pre-set respectively.
[0042] The above technical solution has the following beneficial effects: by grouping the original data set, different group sequences can be calculated in parallel to improve data processing efficiency; by establishing a data index sequence and obfuscating and hiding the data index sequence before transmission, the security of the data transmission process is improved and the performance of the system is optimized. The overall transmission process not only protects the privacy of the data, but also fully realizes the value of the data, and improves the data query collaboration efficiency between relevant business parties. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0044] Figure 1 This is a flow chart of a multi-data hidden query method provided by an embodiment of the present invention;
[0045] Figure 2 is a flow chart of a method for determining initial common parameters provided by an embodiment of the present invention;
[0046] Figure 3 Schematic diagram of the structure of a multi-data hidden query system provided by an embodiment of the present invention;
[0047] Figure 4 3 is a schematic diagram of an initial public parameter determination module provided by an embodiment of the present invention.
[0048] Figure numerals: 100 - initial public parameter determination module; 1001 - security level determination submodule; 1002 - initial public parameter determination submodule; 200 - data preprocessing module; 300 - target data index sequence determination module; 400 - obfuscation encryption module; 500 - deblinding encryption module; 600 - decryption module. DETAILED DESCRIPTION
[0049] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0050] To address the problems of low security and low query collaboration efficiency in the prior art of hidden queries, an embodiment of the present invention provides a multi-data hidden query method, comprising:
[0051] S1. Determine the corresponding initial public parameters based on the current security parameters;
[0052] Before data exchange, public parameters need to be initialized. The current security parameters are determined according to the algorithm to be used later. The initial public parameters corresponding to the current security parameters can be determined by the pre-set initial relationship between the security parameters and the public parameters.
[0053] As an optional implementation, based on the current security parameter λ, the initial public parameters pp are selected: {a, b, g, p}, where the prime number p is the modulus of the finite field GF, a and b are large secure integers, and g is the generator of the finite field GF.
[0054] S2. The data service provider groups the original data set using a preset grouping rule to obtain multiple group sequences and a data index sequence corresponding to each group sequence; and simultaneously obfuscates the data indexes in the group sequences using a first obfuscation factor and an initial public parameter to obtain a first ciphertext sequence corresponding to the data index sequence of each group sequence.
[0055] The data service provider P1 is the party that stores the original data set, and the data user P & The data user P is the one who queries the data. & When querying data from the data service provider P1, the obfuscated hidden value of the sequence number of the data to be queried in the original data set is sent to further obtain the data to be queried.
[0056] Taking the medical information retrieval transaction scenario as an example, the data service provider P1 is a medical institution, and the data user P & For a medical insurance agency, the medical insurance agency needs to obtain information about certain patients, so it needs to conduct data anonymity query with the medical institution. In this scenario, the original data set of the data service provider is data: {m1,m & ,……,m B}, where m i:Age||Gender||Department of treatment||Annual frequency of treatment||Disease severity||Duration of treatment||Treatment effect||Surgical history, etc.
[0057] To improve data processing efficiency, the original data set is grouped using preset grouping rules before data querying. As an optional implementation, the preset grouping rules include grouping data with the same time period, grouping data with the same department, grouping data with the same age group, etc.
[0058] Taking the preset grouping rule of grouping data with the same time period into one group as an example, the data of the same year and quarter are grouped into one group, and "year-quarter" is used as the grouping label. According to the above rule, the original data set data: {m1,m & ,……,m B} are regrouped to obtain multiple grouping sequences:
[0059] ID1-data1:
[0060] ID & -data & :
[0061] …;
[0062] ID G -data G :
[0063] Among them, ID G is the grouping label of group t, and its corresponding grouping sequence includes the data of quarter x in year xxxx; is the data index, and the corresponding data in the grouped sequence in the original data set can be determined according to the data index.
[0064] At the same time, establish the data index sequence corresponding to each grouping sequence:
[0065] ID1-IndexMap1:
[0066] ID & -IndexMap & :
[0067] …;
[0068] ID G -IndexMap G :
[0069] Among them, n1+n2+…+nt=N.
[0070] The position of any data in any grouping sequence in the original data set can be determined through this data index sequence, for example This means that the data is ranked first in the group sequence with group label ID1 and ranked first in the original data set. Bit.
[0071] Randomly select the first confusion factor r1, and perform obfuscation processing on the data index simultaneously according to the first confusion factor r1 and the initial public parameter (parallel calculation) to obtain the first ciphertext sequence
[0072] S3. The data service provider receives the query group tag corresponding to the data to be queried sent by the data user, locates the target group sequence, the target first ciphertext sequence, and the target data index sequence according to the query group tag, and sends the target data index sequence to the data user.
[0073] During the query process, the data user P & According to the data to be queried (n is the number of data to be queried) corresponding to the query group tag ID ' , and group the query by tag ID ' To data service provider P1.
[0074] Data service provider P1 receives data from data user P & The query group tag ID sent ' , and group the tag IDs based on that query ' Locate the target group sequence ID V -data ' , target first ciphertext sequence and target data index sequence ID ' -IndexMap ' :
[0075] Data service provider P1 sets the target data index sequence ID ' -IndexMap ' : Sent to data user P & .
[0076] S4. The data user locates the second index subsequence of the to-be-queried data in the group sequence to which the to-be-queried data belongs based on the first index subsequence of the to-be-queried data and the index sequence of the target data; obfuscates the second index subsequence using the second obfuscation factor and the initial common parameters to obtain a joint blinded obfuscation value; and sends the joint blinded obfuscation value to the data service provider;
[0077] Data user P& Based on the data to be queried The first index subsequence in the original dataset: x i = iT[O] , and the target data index sequence ID ' -IndexMap ' : Accurately locate the group sequence ID of the data to be queried V -data ' The second index subsequence in: y i = iT[O] .
[0078] Data user P & Randomly select the second confusion factor r & , and according to the second confusion factor r & and the initial public parameter to the second index subsequence Perform random obfuscation hiding (parallel calculation) to obtain the joint blinded obfuscation value cV.
[0079] Data user P & The joint blinded confusion value cV is sent to the data service provider P1.
[0080] S5. The data service provider first performs a deblinding process on the joint blinded obfuscation value based on the initial public parameters, and then encrypts the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence; and sends the target first ciphertext sequence and the second ciphertext sequence to the data user.
[0081] The data service provider P1 first performs unblinding processing on the joint blinded confusion value cV based on the initial public parameters, and then performs unblinding processing on the target group sequence ID V -data ' Encrypt to obtain the second ciphertext sequence corresponding to the second index subsequence and the target group sequence
[0082]
[0083] Data service provider P1 sends the target first ciphertext sequence and the second ciphertext sequence Sent to data user P & .
[0084] It should be noted that the target first ciphertext sequence It can also be sent together with the target data index sequence.
[0085] S6. The data user decrypts the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result.
[0086] Data user P & According to the second confusion factor r & The initial public parameters are used to decrypt the received target first ciphertext sequence and the second ciphertext sequence to obtain the query result.
[0087] As an optional implementation, the first confusion factor and the initial public parameter are used to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence, including: for each data index in any group sequence Calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula
[0088]
[0089] Wherein, i = {1, 2, …, t}, represents the group sequence number of the group sequence; j = {{1, 2, …, n1}; {1, 2, …, n2}; …; {1, 2, …, nt}}, represents the data index sequence number in the group sequence; a and b are both secure large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; r1 is the first confusion factor.
[0090] The first confusion factor r1 is used to initialize the public parameters a, b, and g to index the data. Perform obfuscation processing to obtain the first ciphertext sequence:
[0091]
[0092] …;
[0093]
[0094] Among them, each element in the first ciphertext sequence
[0095] As an optional implementation, the second index subsequence is obfuscated using a second obfuscation factor and the initial common parameters to obtain a joint blinded obfuscation value, which is calculated using the following formula:
[0096]
[0097] Where cV is the combined blind confusion value; y i is the i-th element value in the second index subsequence, i∈[n], n is the number of data to be queried;
[0098] According to the initial public parameters, the joint blinded obfuscation value is first deblinded, and then the target packet sequence is encrypted to obtain the second index subsequence and the second ciphertext sequence corresponding to the target packet sequence, including:
[0099]
[0100] Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; j={1,2,…,nw}, represents the data index sequence number in the group sequence to which the data to be queried belongs.
[0101] In the process of obfuscation and hiding, the second obfuscation factor r & And the initial public parameters a, b, g for the second index subsequence Perform random confusion to obtain the joint blinded confusion value cV:
[0102]
[0103] Among them, y1, y & ,…,y O are all elements in the second index subsequence.
[0104] After the data service provider P1 receives the joint blinded confusion value cV, it first performs unblinding processing on the joint blinded confusion value cV according to the initial public parameters a and b, and then performs unblinding processing on the target group sequence ID V -data ' Encryption is performed to obtain the second ciphertext sequence corresponding to the second index subsequence and the target group sequence: in
[0105] As an optional implementation, the target first ciphertext sequence and the second ciphertext sequence are decrypted according to the second confusion factor and the initial public parameter to obtain a query result, including:
[0106] When the number of data to be queried is n=2, the query result is calculated by the following formula:
[0107]
[0108] When the number of data to be queried is n ≥ 3, the query result is calculated using the following formula:
[0109]
[0110] …
[0111]
[0112] In the above, the decryption process based on the ciphertext sequence and the initial public parameters is implemented in parallel to quickly obtain the query result.
[0113] As an optional implementation, determining corresponding initial public parameters based on current security parameters includes:
[0114] S101, determining a target security level based on the security level mapping relationship and current security parameters;
[0115] S102: selecting public parameters corresponding to the target security level as initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are respectively pre-set.
[0116] A security level mapping relationship is pre-set, which includes the mapping between different security parameters and corresponding security levels, and the initial public parameters corresponding to different security levels are recognized by the public, and each value in the initial public parameters is a constant.
[0117] In specific use, the current security parameters corresponding to the current algorithm are mapped to the corresponding target security level, and the public parameters corresponding to the target security level are selected as the initial public parameters. The initial public parameters exist at both the data service provider P1 and the data user P & .
[0118] The embodiment of the present invention further provides a multi-data hidden query system, comprising:
[0119] An initial public parameter determination module 100 is configured to determine corresponding initial public parameters based on current security parameters;
[0120] Before data exchange, public parameters need to be initialized. The current security parameters are determined according to the algorithm to be used later. The initial public parameters corresponding to the current security parameters can be determined by the pre-set initial relationship between the security parameters and the public parameters.
[0121] As an optional implementation, according to the current security parameter λ, the initial public parameters pp are selected: a, b, g, p = , where the prime number p is the modulus of the finite field GF, a and b are large secure integers, and g is the generator of the finite field GF.
[0122] The data preprocessing module 200 is configured to group the original data set using a preset grouping rule by the data service provider to obtain multiple grouping sequences and a data index sequence corresponding to each grouping sequence; and to simultaneously perform obfuscation processing on the data indexes in the grouping sequences using a first obfuscation factor and an initial public parameter to obtain a first ciphertext sequence corresponding to the data index sequence of each grouping sequence.
[0123] The data service provider P1 is the party that stores the original data set, and the data user P& The data user P is the one who queries the data. & When querying data from the data service provider P1, the obfuscated hidden value of the sequence number of the data to be queried in the original data set is sent to further obtain the data to be queried.
[0124] Taking the medical information retrieval transaction scenario as an example, the data service provider P1 is a medical institution, and the data user P & For a medical insurance agency, the medical insurance agency needs to obtain information about certain patients, so it needs to conduct data anonymity query with the medical institution. In this scenario, the original data set of the data service provider is data: {m1,m & ,……,m B}, where m i :Age||Gender||Department of treatment||Annual frequency of treatment||Disease severity||Duration of treatment||Treatment effect||Surgical history, etc.
[0125] To improve data processing efficiency, the original data set is grouped using preset grouping rules before data querying. As an optional implementation, the preset grouping rules include grouping data with the same time period, grouping data with the same department, grouping data with the same age group, etc.
[0126] Taking the preset grouping rule of grouping data with the same time period into one group as an example, the data of the same year and quarter are grouped into one group, and "year-quarter" is used as the grouping label. According to the above rule, the original data set data: {m1,m & ,……,m B} are regrouped to obtain multiple grouping sequences:
[0127] ID1-data1:
[0128] ID & -data & :
[0129] …;
[0130] ID G -data G :
[0131] Among them, ID G is the grouping label of group t, and its corresponding grouping sequence includes the data of quarter x in year xxxx; is the data index, and the corresponding data in the grouped sequence in the original data set can be determined according to the data index.
[0132] At the same time, establish the data index sequence corresponding to each grouping sequence:
[0133] ID1-IndexMap1:
[0134] ID & -IndexMap & :
[0135] …;
[0136] ID G -IndexMap G :
[0137] Among them, n1+n2+…+nt=N.
[0138] The position of any data in any grouping sequence in the original data set can be determined through this data index sequence, for example This means that the data is ranked first in the group sequence with group label ID1 and ranked first in the original data set. Bit.
[0139] Randomly select the first confusion factor r1, and perform obfuscation processing on the data index simultaneously according to the first confusion factor r1 and the initial public parameter (parallel calculation) to obtain the first ciphertext sequence
[0140] The target data index sequence determination module 300 is configured to receive a query group tag corresponding to the data to be queried from a data user, locate the target group sequence, the target first ciphertext sequence, and the target data index sequence based on the query group tag, and send the target data index sequence to the data user.
[0141] During the query process, the data user P & According to the data to be queried (n is the number of data to be queried) corresponding to the query group tag ID ' , and query group label ID ' To data service provider P1.
[0142] Data service provider P1 receives data from data user P & The query group tag ID sent ' , and group the tag IDs based on that query ' Locate the target group sequence ID V -data ' , target first ciphertext sequence and target data index sequence ID ' -IndexMap ' :
[0143] Data service provider P1 sets the target data index sequence ID ' -IndexMap ' : Sent to data user P & .
[0144] The obfuscation encryption module 400 is configured to enable a data user to locate a second index subsequence of the data to be queried in the group sequence to which the data to be queried belongs based on the first index subsequence of the data to be queried and the index sequence of the target data; obfuscate the second index subsequence using a second obfuscation factor and initial public parameters to obtain a joint blinded obfuscation value; and transmit the joint blinded obfuscation value to a data service provider.
[0145] Data user P & Based on the data to be queried The first index subsequence in the original dataset: x i = iT[O] , and the target data index sequence ID ' -IndexMap ' : Accurately locate the group sequence ID of the data to be queried V -data ' The second index subsequence in: y i = iT[O] .
[0146] Data user P & Randomly select the second confusion factor r & , and according to the second confusion factor r & and the initial public parameter to the second index subsequence Perform random obfuscation hiding (parallel calculation) to obtain the joint blinded obfuscation value cV.
[0147] Data user P & The joint blinded confusion value cV is sent to the data service provider P1.
[0148] The deblinding encryption module 500 is used by the data service provider to first deblind the joint blinded obfuscation value based on the initial public parameters, and then encrypt the target packet sequence to obtain the second index subsequence and the second ciphertext sequence corresponding to the target packet sequence; and send the target first ciphertext sequence and the second ciphertext sequence to the data user;
[0149] The data service provider P1 first performs unblinding processing on the joint blinded confusion value cV of the second index subsequence based on the joint blinded confusion value and the initial public parameter, and then performs unblinding processing on the target group sequence ID V -data 'Encrypt to obtain the second ciphertext sequence corresponding to the second index subsequence and the target group sequence
[0150] Data service provider P1 sends the target first ciphertext sequence and the second ciphertext sequence Sent to data user P & .
[0151] It should be noted that the target first ciphertext sequence It can also be sent together with the target data index sequence.
[0152] The decryption module 600 is used by the data user to decrypt the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result.
[0153] Data user P & According to the second confusion factor r & The initial public parameters are used to decrypt the received target first ciphertext sequence and the second ciphertext sequence to obtain the query result.
[0154] As an optional implementation, the first confusion factor and the initial public parameter are used to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence, including: for each data index in any group sequence Calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula
[0155]
[0156] Wherein, i = {1, 2, …, t}, represents the group sequence number of the group sequence; j = {{1, 2, …, n1}; {1, 2, …, n2}; …; {1, 2, …, nt}}, represents the data index sequence number in the group sequence; a and b are both secure large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; r1 is the first confusion factor.
[0157] The first confusion factor r1 is used to initialize the public parameters a, b, and g to index the data. Perform obfuscation processing to obtain the first ciphertext sequence:
[0158]
[0159] …;
[0160]
[0161] Among them, each element in the first ciphertext sequence
[0162] As an optional implementation, the second index subsequence is obfuscated using a second obfuscation factor and the initial common parameters to obtain a joint blinded obfuscation value, which is calculated using the following formula:
[0163]
[0164] Where cV is the combined blind confusion value; y i is the i-th element value in the second index subsequence, i∈[n], n is the number of data to be queried;
[0165] According to the initial public parameters, the joint blinded obfuscation value is first deblinded, and then the target packet sequence is encrypted to obtain the second index subsequence and the second ciphertext sequence corresponding to the target packet sequence, including:
[0166]
[0167] Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; j={1,2,…,nw}, represents the data index sequence number in the group sequence to which the data to be queried belongs.
[0168] In the process of obfuscation and hiding, the second obfuscation factor r & And the initial public parameters a, b, g for the second index subsequence Perform random confusion to obtain the joint blinded confusion value cV:
[0169]
[0170] Among them, y1, y & ,…,y O are all elements in the second index subsequence.
[0171] After the data service provider P1 receives the joint blinded confusion value cV, it first performs unblinding processing on the joint blinded confusion value cV according to the initial public parameters a and b, and then performs unblinding processing on the target group sequence ID V -data ' Encryption is performed to obtain the second ciphertext sequence corresponding to the second index subsequence and the target group sequence: in
[0172] As an optional implementation, the target first ciphertext sequence and the second ciphertext sequence are decrypted according to the second confusion factor and the initial public parameter to obtain a query result, including:
[0173] When the number of data to be queried is n=2, the query result is calculated by the following formula:
[0174]
[0175] When the number of data to be queried is n ≥ 3, the query result is calculated using the following formula:
[0176]
[0177]
[0178] …
[0179]
[0180] In the above, the decryption process based on the ciphertext sequence and the initial public parameters is implemented in parallel to quickly obtain the query result.
[0181] As an optional implementation, the initial public parameter determination module includes:
[0182] The security level determination submodule 1001 is used to determine the target security level according to the security level mapping relationship and the current security parameters;
[0183] The initial public parameter determination submodule 1002 is used to select public parameters corresponding to the target security level as initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are respectively pre-set.
[0184] A security level mapping relationship is pre-set, which includes the mapping between different security parameters and corresponding security levels, and the initial public parameters corresponding to different security levels are recognized by the public, and each value in the initial public parameters is a constant.
[0185] In specific use, the current security parameters corresponding to the current algorithm are mapped to the corresponding target security level, and the public parameters corresponding to the target security level are selected as the initial public parameters. The initial public parameters exist at both the data service provider P1 and the data user P & .
[0186] The above technical solution has the following beneficial effects: by grouping the original data set, different group sequences can be calculated in parallel to improve data processing efficiency; by establishing a data index sequence and obfuscating and hiding the data index sequence before transmission, the security of the data transmission process is improved and the performance of the system is optimized. The overall transmission process not only protects the privacy of the data, but also fully realizes the value of the data, and improves the data query collaboration efficiency between relevant business parties.
[0187] The specific implementation methods of the above inventions further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above content is only the specific implementation methods of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A multi-data hidden query method, characterized in that: include: Determine the corresponding initial public parameters based on the current security parameters; The data service provider groups the original data set using a preset grouping rule to obtain multiple grouping sequences and a data index sequence corresponding to each grouping sequence; the data indexes in the grouping sequences are simultaneously obfuscated using a first obfuscation factor and an initial public parameter to obtain a first ciphertext sequence corresponding to the data index sequence of each grouping sequence; The data service provider receives the query group tag corresponding to the data to be queried sent by the data user, locates the target group sequence, the target first ciphertext sequence and the target data index sequence according to the query group tag, and sends the target data index sequence to the data user; The data user locates the second index subsequence of the to-be-queried data in the group sequence to which the to-be-queried data belongs based on the first index subsequence of the to-be-queried data and the target data index sequence; obfuscates the second index subsequence using a second obfuscation factor and initial public parameters to obtain a joint blinded obfuscation value; and sends the joint blinded obfuscation value to the data service provider; The data service provider first performs a deblinding process on the joint blinded obfuscation value based on the initial public parameters, and then encrypts the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence; and sends the target first ciphertext sequence and the second ciphertext sequence to the data user; The data user decrypts the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result.
2. The multi-data hidden query method according to claim 1, characterized in that: The method of using the first confusion factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence includes: for each data index in any group sequence , calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula : ; in, , represents the group sequence number of the grouping sequence; {{1,2,…,n1};{1,2,…,n2};…;{1,2,…,nt}} represents the data index sequence number in the group sequence; a and b are both safe large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; is the first confounding factor.
3. The multi-data hidden query method according to claim 2, characterized in that: The second index subsequence is obfuscated using the second obfuscation factor and the initial common parameter to obtain a joint blinded obfuscation value, which is calculated by the following formula: ; in, is the joint blinded confusion value, and the second index subsequence is , is the value of the i-th element in the second index subsequence, , n is the number of data to be queried, is the second confounding factor; The method of first performing a deblinding process on the joint blinded obfuscation value according to the initial public parameter and then encrypting the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence includes: ; Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; , represents the data index sequence number in the group sequence to which the data to be queried belongs.
4. The multi-data hidden query method according to claim 3, characterized in that: The decrypting the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result includes: When the number of data to be queried When , the query result is calculated by the following formula: ; ; When the number of data to be queried When , the query result is calculated by the following formula: ; ; … 。 5. The multi-data hidden query method according to claim 1, characterized in that: The determining of the corresponding initial public parameters according to the current security parameters includes: Determine the target security level based on the security level mapping relationship and current security parameters; The public parameters corresponding to the target security level are selected as initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are respectively pre-set.
6. A multi-data hidden query system, characterized in that: include: An initial public parameter determination module is used to determine the corresponding initial public parameters according to the current security parameters; The data preprocessing module is used by the data service provider to group the original data set using a preset grouping rule to obtain multiple group sequences and a data index sequence corresponding to each group sequence; the data indexes in the group sequence are simultaneously obfuscated using a first obfuscation factor and an initial public parameter to obtain a first ciphertext sequence corresponding to the data index sequence of each group sequence; The target data index sequence determination module is configured to receive a query group tag corresponding to the data to be queried from a data user, locate the target group sequence, the target first ciphertext sequence, and the target data index sequence based on the query group tag, and send the target data index sequence to the data user; The obfuscation encryption module is used for the data user to locate the second index subsequence of the to-be-queried data in the group sequence to which it belongs based on the first index subsequence of the to-be-queried data and the target data index sequence; obfuscate the second index subsequence using a second obfuscation factor and initial public parameters to obtain a joint blinded obfuscation value; and send the joint blinded obfuscation value to the data service provider; The deblinding encryption module is used by the data service party to first deblind the joint blinded obfuscation value according to the initial public parameters, and then encrypt the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence; and send the target first ciphertext sequence and the second ciphertext sequence to the data user; The decryption module is used for the data user to decrypt the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result.
7. The multi-data hidden query system according to claim 6, characterized in that: The method of using the first confusion factor and the initial public parameter to simultaneously perform obfuscation processing on the data indexes in the group sequence to obtain the first ciphertext sequence corresponding to the data index sequence of each group sequence includes: for each data index in any group sequence , calculate its corresponding ciphertext value in the first ciphertext sequence by the following formula : ; in, , represents the group sequence number of the grouping sequence; {{1,2,…,n1};{1,2,…,n2};…;{1,2,…,nt}} represents the data index sequence number in the group sequence; a and b are both safe large integers in the initial public parameters; g is the generator of the finite field GF in the initial public parameters; is the first confounding factor.
8. The multi-data hidden query system according to claim 7, characterized in that: The second index subsequence is obfuscated using the second obfuscation factor and the initial common parameter to obtain a joint blinded obfuscation value, which is calculated by the following formula: ; in, is the joint blinded confusion value, and the second index subsequence is , is the value of the i-th element in the second index subsequence, , n is the number of data to be queried, is the second confounding factor; The method of first performing a deblinding process on the joint blinded obfuscation value according to the initial public parameter and then encrypting the target packet sequence to obtain a second index subsequence and a second ciphertext sequence corresponding to the target packet sequence includes: ; Wherein, w represents the group sequence number of the group sequence to which the data to be queried belongs; , represents the data index sequence number in the group sequence to which the data to be queried belongs.
9. The multi-data hidden query system according to claim 8, characterized in that: The decrypting the target first ciphertext sequence and the second ciphertext sequence according to the second confusion factor and the initial public parameter to obtain a query result includes: When the number of data to be queried When , the query result is calculated by the following formula: ; ; When the number of data to be queried When , the query result is calculated by the following formula: ; ; … 。 10. The multi-data hidden query system according to claim 6, characterized in that: The initial public parameter determination module includes: The security level determination submodule is used to determine the target security level based on the security level mapping relationship and the current security parameters; The initial public parameter determination submodule is used to select the public parameters corresponding to the target security level as the initial public parameters; wherein the security level mapping relationship and the initial public parameters under each security level are pre-set respectively.
Citation Information
Patent Citations
Data query method and device, equipment and storage medium
CN115934707A
Efficient privacy protection joint calculation method, system and device for data confusion
CN116702192A