A hidden intersection method based on random pseudo-random functions
By inadvertent pseudo-random function performing secondary encryption and matrix operations on the data, the problem of risk of violent database collision in privacy set interception is solved, and efficient concealment and interception is achieved without plain text interaction, ensuring data concealment and security.
Patent Information
- Application Number
- CN202210459193.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-27
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2042-04-27
AI Technical Summary
In the prior art, there is a risk of violent collisions in the process of privacy collection interception, resulting in data leakage of privacy information.
The hidden interception method based on inadvertent pseudo-random functions is adopted to quadratic encryption of local data and generate encrypted data using random number and matrix operations to achieve data concealment and avoid plaintext interaction and data leakage.
There is no clear interaction during the intercommunication process, and both parties cannot obtain specific information other than the intersection, resist the malicious behavior of the data party, and achieve efficient concealment of intercommunication.
Smart Images

Figure CN114861203B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of privacy computing, and in particular to a hidden intersection method based on an oblivious pseudo-random function. Background Art
[0002] Private Set Intersection (PSI) is a specific application problem in privacy computing, possessing both important theoretical significance and strong practical application value. With the increasing demand for privacy protection of user data, PSI can maximize the privacy of personal information while ensuring the convenience of businesses that rely on it.
[0003] PSI allows multiple parties holding separate private datasets to compute the intersection of their data without disclosing any information beyond the intersection. When performing the intersection calculation, suppose Party A holds dataset A and Party B holds dataset B. The PSI result is A intersects B. The information Party A obtains from Party B is only the intersection of A and B; similarly, the information Party B obtains from Party A is only the intersection of A and B. For privacy reasons, neither Party A nor Party B can disclose any data, so they can only obtain the intersection of data A and B, without revealing any user information beyond the intersection.
[0004] The existing technology generally requires Party A and Party B to input their own desensitized data to perform intersection or perform intersection through hashing. This solution has the risk of being brute-forced. Summary of the Invention
[0005] The purpose of the present invention is to provide a hidden intersection method based on an inadvertent pseudo-random function to solve the defect of the existing technology that there is a risk of violent database collision when two parties intersect data.
[0006] The present invention is further described below in two aspects:
[0007] In a first aspect, a hidden intersection method based on an oblivious pseudo-random function is provided, wherein the method is applied to an initiator and comprises the following steps:
[0008] The initiator pre-processes the local data to obtain encrypted data, and sends the encrypted data to the data recipient;
[0009] Obtaining operation data obtained by the data party based on the encrypted data operation;
[0010] The obtained operation data is compared with the operation data of the party to obtain the intersection result.
[0011] In conjunction with the first aspect, the method for preprocessing local data to obtain encrypted data includes the following steps:
[0012] Acquiring local data and performing secondary encryption on the local data;
[0013] The twice-encrypted data is converted to obtain encrypted data.
[0014] In combination with the first aspect, the method for performing secondary encryption on the local data includes the following steps:
[0015] First encryption:
[0016] Obtain local data, input the local data into a first one-way function, and obtain a first encryption result;
[0017] Second encryption:
[0018] Get a random number as the key of the random function;
[0019] The first encryption result is used as a parameter and input into a random function together with the key to perform operation to obtain a second encryption result.
[0020] In conjunction with the first aspect, the method for converting the twice-encrypted data to obtain encrypted data includes the following steps:
[0021] Generate a first matrix with all 1s, and set some items in the first matrix to zero according to the second encryption result;
[0022] Constructing a second matrix and a third matrix according to the obtained key and the number of columns of the first matrix;
[0023] Performing an XOR operation on the second matrix and the transpose of the first matrix to obtain a fourth matrix;
[0024] An XOR operation is performed on the obtained fourth matrix and the third matrix to obtain encrypted data.
[0025] In combination with the first aspect, the first matrix is a matrix with m rows and w columns, where w is an integer and m is the total amount of local data of the initiator.
[0026] In conjunction with the first aspect, our method for obtaining computational data includes the following steps:
[0027] The second encryption result is used as the element of the second matrix, and the elements are spliced together. The spliced result is input into the second one-way function for operation, and the operation result is used as the operation data of the party.
[0028] In a second aspect, a hidden intersection method based on an oblivious pseudo-random function is provided, wherein the method is applied to a data party and comprises the following steps:
[0029] The data party obtains the encrypted data sent by the initiator, and the encrypted data is obtained by the initiator after pre-processing its own local data;
[0030] The encrypted data is combined with the pre-processed local data to obtain operation data;
[0031] The obtained calculation data is sent to the initiator.
[0032] In conjunction with the second aspect, the local data preprocessing method includes the following steps:
[0033] Acquire local data, and perform secondary encryption on the local data;
[0034] include:
[0035] First encryption:
[0036] Obtaining local data, and inputting the local data into a first one-way function to obtain a first encryption result;
[0037] Second encryption:
[0038] The initiator's key is obtained, and the first encryption result and the key are input into a random function for operation to obtain a second encryption result.
[0039] In conjunction with the second aspect, the method for calculating the operation data includes the following steps:
[0040] Obtain a random sequence and combine it with the key to generate a key sequence;
[0041] Perform a selection operation based on the key sequence and the encrypted data to obtain a selection sequence;
[0042] Each element of the selection sequence is concatenated and input into the second one-way function to obtain operation data.
[0043] In conjunction with the second aspect, a method for performing a selection operation based on a key sequence and encrypted data to obtain a selection sequence includes the following steps:
[0044] Constructing a selection sequence having the same number of items as the key sequence;
[0045] The elements in the key sequence are judged one by one. When the element in the key sequence is zero, the element at the same position in the sequence is also zero.
[0046] Otherwise, perform an XOR operation on the element and the element at the same position in the encrypted data, and use the result of the XOR operation as the element at that position in the selection sequence.
[0047] The advantages of the present invention are: in this hidden intersection method based on an inadvertent pseudo-random function, both the initiator and the data party perform a secondary encryption on the local data using random numbers, and then construct the encrypted data multiple times through a random sequence to obtain a matrix. The local data is then further concealed by performing an XOR operation between the matrices. In this method, the initiator obtains the intersection result without obtaining any elements outside the intersection, and the data party does not output any real data during the process of cooperating with the initiator in the operation. There is no plaintext interaction during the entire intersection process, and neither party can obtain other specific information about the other party's data set from the interaction process. In addition, because both parties use the one-way function H1 during the data input stage, the data party cannot obtain the plaintext information about the data Y input by the initiator after obtaining Δ. Therefore, this method can also resist malicious behavior by the data party and is a very efficient hidden intersection solution. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] Figure 1 The figure is a flow chart of the data encryption method of the initiator in the present invention.
[0049] Figure 2 Schematic diagram of the data encryption method of the data party in the present invention.
[0050] Figure 3 The figure is a flowchart of the data encryption method after the initiator and the data party cooperate in the present invention.
[0051] Figure 4 This is a flowchart of the data encryption method after the initiator and the data party jointly implement it in the present invention. DETAILED DESCRIPTION
[0052] In order to make the technical means, creative features, objectives and effects achieved by the present invention easier to understand, the present invention is further described below in conjunction with specific implementation methods.
[0053] In the description of the present invention, it should be understood that the terms "center", "longitudinal", "lateral", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside", "outside" and the like indicate orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as limiting the present invention. In addition, the terms "first", "second", etc. are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, features defined as "first", "second", etc. may explicitly or implicitly include one or more of the features. In the description of the present invention, unless otherwise specified, "multiple" means two or more.
[0054] In the description of the present invention, it should be noted that, unless otherwise expressly specified or limited, the terms "mounted," "connected," and "connected" should be understood in a broad sense. For example, they may refer to fixed connections, detachable connections, or integral connections; mechanical connections or electrical connections; direct connections or indirect connections through an intermediate medium; and internal communication between two components. Those skilled in the art will understand the specific meanings of the above terms in the present invention based on specific circumstances.
[0055] like Figure 1 As shown, a hidden intersection method based on an oblivious pseudo-random function is disclosed. The method is applied to an initiator and includes the following steps:
[0056] S11: The initiator pre-processes the local data to obtain encrypted data, and sends the encrypted data to the data recipient;
[0057] The method for preprocessing local data to obtain encrypted data includes the following steps:
[0058] Acquiring local data and performing secondary encryption on the local data;
[0059] Converting the twice-encrypted data to obtain encrypted data;
[0060] The secondary encryption method includes the following steps:
[0061] First encryption:
[0062] Obtain local data, input the local data into a first one-way function, and obtain a first encryption result;
[0063] The specific encryption steps are as follows: the initiator first obtains its own local data Y = {y1, y2, ..., y n1}, input the local data into the one-way function H1, and the output result is H1(Y). H1 is a one-way function, and the output must be 256 bits, so SHA-256 can be used. A one-way function is an injective function with the following characteristics: for each input, the function value is easy to calculate (polynomial time), but given a random input, it is difficult to calculate the original input (it cannot be calculated in polynomial time using a deterministic Turing machine). In this application, the choice of one-way function H1 includes one or more of SHA1, BLAKE, SHA256, and MD5;
[0064] Second encryption:
[0065] Get a random number as the key of the random function;
[0066] The first encryption result is used as a parameter and input into a random function together with the key to perform operation to obtain a second encryption result;
[0067] The specific encryption steps are as follows: generate a random number k and a random function AES (Advanced Encryption Standard), use the random number k as the key of the random function AES, and use the first encryption result H1(Y) as the parameter input of the random function AES. The output of the random function AES obtained by calculation is: v = F k (H1(Y));
[0068] The method for converting the twice-encrypted data to obtain encrypted data includes the following steps:
[0069] Generate a first matrix with all 1s, and set some items in the first matrix to zero according to the second encryption result;
[0070] The first matrix is a matrix with m rows and w columns, where w=600 and m is the total amount of local data of the initiator;
[0071] The specific steps are:
[0072] Generate a first matrix D with m rows and w columns with all values 1, and set the second encryption result v = F k (H1(Y)), as the element of the matrix, and must satisfy D i [v[i]]=0; where i∈[w], w is 600, and m is the total amount of local data of the initiator;
[0073] Constructing a second matrix A and a third matrix E according to the obtained key and the number of columns of the first matrix D;
[0074] Construct the second matrix according to the random number k and the number of columns of the first matrix D and the third matrix
[0075] Perform an XOR operation on the second matrix A and the transpose of the first matrix D to obtain a fourth matrix B;
[0076] Perform an XOR operation on the second matrix A and the transpose of the first matrix D to obtain the matrix During the operation, the corresponding elements of the matrix are subjected to XOR bitwise operation;
[0077] Performing an XOR operation on the obtained fourth matrix and the third matrix to obtain encrypted data;
[0078] Perform XOR operation on the fourth matrix B and the third matrix E to obtain encrypted data
[0079] S12: Obtaining operation data obtained by the data party based on the encrypted data operation;
[0080] S13: Compare the obtained calculation data with the calculation data of the party to obtain an intersection result;
[0081] The method for obtaining computing data by the initiator includes the following steps:
[0082] The second encryption result is used as an element of the second matrix, and the elements are spliced together. The spliced result is input into the second one-way function for operation, and the operation result is used as the operation data of the initiator.
[0083] The second matrix A and the output v of the random function AES are concatenated and input into a one-way function to obtain the operation data, that is: δ=H2(A1[v[1]]||…||A w [v[w]]);
[0084] Among them, ||...|| is the splicing operation, which is to piece together the rows of the matrix one by one. For example:
[0085] matrix
[0086] After splicing, it becomes R=r 00 …r 0l …r k0 …r kl .
[0087] like Figure 2 As shown, a hidden intersection method based on an oblivious pseudo-random function is disclosed. The method is applied to a data party and includes the following steps:
[0088] S21: The data party obtains the encrypted data sent by the initiator, where the encrypted data is obtained by the initiator after pre-processing its own local data;
[0089] S22: performing a combined operation on the encrypted data and the pre-processed local data to obtain operation data;
[0090] The local data preprocessing method comprises the following steps:
[0091] Acquire local data, and perform secondary encryption on the local data;
[0092] include:
[0093] First encryption:
[0094] Obtaining local data, and inputting the local data into a first one-way function to obtain a first encryption result;
[0095] The data party first obtains its own local data X={x1,x2,...x n1}, input the local data into the one-way function H1, and the output result is H1(X);
[0096] Second encryption:
[0097] Obtaining the initiator's key, inputting the first encryption result and the key into a random function for operation to obtain a second encryption result;
[0098] The specific encryption steps are: obtain the random number k of the participant as the key and the random function AES, use the key k and the first encryption result H1(X) as the parameter input of the random function AES, and obtain the output of the random function AES by calculation: u=F k (H1(X));
[0099] The method for obtaining operation data by jointly operating the encrypted data with the pre-processed local data comprises the following steps:
[0100] Obtain a random sequence and combine it with the key to generate a key sequence;
[0101] Perform a selection operation based on the key sequence and the encrypted data to obtain a selection sequence;
[0102] A method for obtaining a selection sequence by performing a selection operation based on a key sequence and encrypted data includes the following steps:
[0103] Constructing a selection sequence having the same number of items as the key sequence;
[0104] Get the random sequence S and generate a random key sequence based on the key k:
[0105]
[0106] The elements in the key sequence are judged one by one. When the element in the key sequence is zero, the element at the same position in the sequence is also zero.
[0107] Otherwise, perform an XOR operation on the element and the element at the same position in the encrypted data, and use the result of the XOR operation as the element at that position in the selection sequence;
[0108] The specific steps include:
[0109] The selection sequence C is calculated based on the key sequence S and the encrypted data Δ, satisfying:
[0110] When the element S[i] in the key sequence is 0, the element at the corresponding position in the sequence is selected as:
[0111] Otherwise the element at that position is:
[0112] The elements of the selected sequence are concatenated and input into the second one-way function to obtain operation data;
[0113] After concatenating the elements in the selection sequence C, we can get the following as the parameters of the one-way function H2: include:
[0114]
[0115] Wherein ||...|| is a concatenation operation. In this application, the selection of the one-way function H2 includes one or more of SHA1, BLAKE, SHA256, and MD5. It should be noted that different functions are selected for calculation when the one-way functions H1 and H2 are calculated.
[0116] S23: Send the obtained calculation data to the initiator.
[0117] like Figure 3 、 Figure 4 As shown, a hidden intersection method based on an oblivious pseudo-random function is disclosed, which is applied to an initiator and a data provider and includes the following steps:
[0118] S31: The initiator pre-processes the local data to obtain encrypted data, and sends the encrypted data to the data recipient;
[0119] The method for pre-processing the initiator's local data to obtain encrypted data includes the following steps:
[0120] Obtaining the local data of the initiator and performing secondary encryption on the local data of the initiator;
[0121] Converting the twice-encrypted data to obtain encrypted data;
[0122] The secondary encryption method includes the following steps:
[0123] First encryption:
[0124] Obtaining the initiator's local data, inputting the initiator's local data into a first one-way function, and obtaining a first encryption result;
[0125] The specific encryption steps are as follows: the initiator first obtains its own local data Y = {y1, y2, ..., y n1}, input the initiator's local data into the one-way function H1, and the output result is H1(Y). H1 is a one-way function and needs to satisfy the output of 256 bits, so SHA-256 can be used;
[0126] Second encryption:
[0127] Get a random number as the key of the random function;
[0128] The first encryption result is used as a parameter and input into a random function together with the key to perform operation to obtain a second encryption result;
[0129] The specific encryption steps are as follows: generate a random number k and a random function AES (Advanced Encryption Standard), use the random number k as the key of the random function AES, and use the first encryption result H1(Y) as the parameter input of the random function AES. The output of the random function AES obtained by calculation is: v = F k (H1(Y));
[0130] The method for converting the twice-encrypted data to obtain encrypted data includes the following steps:
[0131] Generate a first matrix with all 1s, and set some items in the first matrix to zero according to the second encryption result;
[0132] The first matrix is a matrix with m rows and w columns, where w=600 and m is the total amount of local data of the initiator;
[0133] The specific steps are:
[0134] Generate a first matrix D with m rows and w columns with all values 1, and set the second encryption result v = F k (H1(Y)), as the element of the matrix, and must satisfy D i [v[i]]=0; where i∈[w], w is 600, and m is the total amount of local data of the initiator;
[0135] Constructing a second matrix A and a third matrix E according to the obtained key and the number of columns of the first matrix D;
[0136] Construct the second matrix according to the random number k and the number of columns of the first matrix D and the third matrix
[0137] Perform an XOR operation on the second matrix A and the transpose of the first matrix D to obtain a fourth matrix B;
[0138] Perform an XOR operation on the second matrix A and the transpose of the first matrix D to obtain the matrix
[0139] Performing an XOR operation on the obtained fourth matrix and the third matrix to obtain encrypted data;
[0140] Perform an XOR operation on the fourth matrix B and the third matrix E to obtain the encrypted data:
[0141]
[0142] After the operation is completed, the encrypted data Δ is sent to the data party;
[0143] S32: The data party receives the encrypted data sent by the initiator;
[0144] S33: The data party performs a combined operation on the encrypted data and the pre-processed local data to obtain operation data;
[0145] The preprocessing method of the data party's local data includes the following steps:
[0146] Obtaining local data of a data party, and performing secondary encryption on the local data of the data party;
[0147] include:
[0148] First encryption:
[0149] Obtaining local data of a data party, and inputting the local data of the data party into a first one-way function to obtain a first encryption result;
[0150] The data party first obtains its own local data X={x1,x2,...x n1}, input the local data of the data party into the one-way function H1, and the output result is H1(X);
[0151] Second encryption:
[0152] Obtaining the initiator's key, inputting the first encryption result and the key into a random function for operation to obtain a second encryption result;
[0153] The specific encryption steps are: obtain the random number k of the participant as the key and the random function AES, use the key k and the first encryption result H1(X) as the parameter input of the random function AES, and obtain the output of the random function AES by calculation: u=F k (H1(X));
[0154] The method for obtaining operation data by jointly operating the encrypted data with the pre-processed local data comprises the following steps:
[0155] Obtain a random sequence and combine it with the key to generate a key sequence;
[0156] Perform a selection operation based on the key sequence and the encrypted data to obtain a selection sequence;
[0157] A method for obtaining a selection sequence by performing a selection operation based on a key sequence and encrypted data includes the following steps:
[0158] Constructing a selection sequence having the same number of items as the key sequence;
[0159] Get the random sequence S and generate a random key sequence based on the key k:
[0160]
[0161] The elements in the key sequence are judged one by one. When the element in the key sequence is zero, the element at the same position in the sequence is also zero.
[0162] Otherwise, perform an XOR operation on the element and the element at the same position in the encrypted data, and use the result of the XOR operation as the element at that position in the selection sequence;
[0163] The specific steps include:
[0164] The selection sequence C is calculated based on the key sequence S and the encrypted data Δ, satisfying:
[0165] When the element S[i] in the key sequence is 0, the element at the corresponding position in the sequence is selected as:
[0166] Otherwise the element at that position is:
[0167] The elements of the selected sequence are concatenated and input into the second one-way function to obtain operation data;
[0168] After concatenating the elements in the selection sequence C, we can get the following as the parameters of the one-way function H2: include:
[0169]
[0170] Among them, ||...|| is the splicing operation;
[0171] After the calculation is completed, the data party sends the calculated data to the initiator;
[0172] S34: The initiator obtains the operation data obtained by the data party based on the encrypted data operation;
[0173] S35: The initiator compares the obtained calculation data with its own calculation data to obtain an intersection result;
[0174] The method for obtaining computing data by the initiator includes the following steps:
[0175] The second encryption result is used as an element of the second matrix, and the elements are spliced together. The spliced result is input into the second one-way function for operation, and the operation result is used as the operation data of the initiator.
[0176] The second matrix A and the output v of the random function AES are concatenated and input into a one-way function to obtain the operation data, that is: δ=H2(A1[v[1]]||…||A w [v[w]]);
[0177] Among them, ||...|| is the splicing operation.
[0178] It will be understood by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Thus, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take 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.) containing computer-usable program code.
[0179] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, 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 processes in the flowcharts and / or block diagrams. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0180] 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.
[0181] 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 The steps for the function specified in one or more boxes.
[0182] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present invention.
[0183] The above description is merely a preferred embodiment of the present application and is not intended to limit the present application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present application shall be included within the scope of protection of the present application.
Claims
1. A hidden intersection method based on an inadvertent pseudo-random function, characterized in that: The method is applied to the initiator and includes the following steps: The initiator pre-processes the local data to obtain encrypted data, and sends the encrypted data to the data recipient; The method for obtaining encrypted data after preprocessing local data includes the following steps: Acquiring local data and performing secondary encryption on the local data; Converting the twice-encrypted data to obtain encrypted data; The method for performing secondary encryption on the local data comprises the following steps: First encryption: Obtain local data, input the local data into a first one-way function, and obtain a first encryption result; Second encryption: Get a random number as the key of the random function; The first encryption result is used as a parameter and input into a random function together with the key to perform operation to obtain a second encryption result; The method for converting the twice-encrypted data to obtain encrypted data includes the following steps: Generate a first matrix with all 1s, and set some items in the first matrix to zero according to the second encryption result; Constructing a second matrix and a third matrix according to the obtained key and the number of columns of the first matrix; Performing an XOR operation on the second matrix and the transpose of the first matrix to obtain a fourth matrix; Performing an XOR operation on the obtained fourth matrix and the third matrix to obtain encrypted data; Obtaining operation data obtained by the data party based on the encrypted data operation; The obtained operation data is compared with the operation data of the party to obtain the intersection result.
2. The method for concealed intersection based on an inadvertent pseudo-random function according to claim 1, characterized in that: The first matrix is a matrix with m rows and w columns, where w is an integer and m is the total amount of local data of the initiator.
3. The method for concealed intersection based on an oblivious pseudo-random function according to claim 2, wherein: Our method for obtaining computational data includes the following steps: The second encryption result is used as the element of the second matrix, and the elements are spliced together. The spliced result is input into the second one-way function for operation, and the operation result is used as the operation data of the party.
4. A hidden intersection method based on an inadvertent pseudo-random function, characterized by: The method is applied to the data entity and includes the following steps: The data party obtains the encrypted data sent by the initiator, and the encrypted data is obtained by the initiator after pre-processing its own local data; The method for obtaining encrypted data after preprocessing local data includes the following steps: Acquiring local data and performing secondary encryption on the local data; Converting the twice-encrypted data to obtain encrypted data; The method for performing secondary encryption on the local data comprises the following steps: First encryption: Obtain local data, input the local data into a first one-way function, and obtain a first encryption result; Second encryption: Get a random number as the key of the random function; The first encryption result is used as a parameter and input into a random function together with the key to perform operation to obtain a second encryption result; The method for converting the twice-encrypted data to obtain encrypted data includes the following steps: Generate a first matrix with all 1s, and set some items in the first matrix to zero according to the second encryption result; Constructing a second matrix and a third matrix according to the obtained key and the number of columns of the first matrix; Performing an XOR operation on the second matrix and the transpose of the first matrix to obtain a fourth matrix; Performing an XOR operation on the obtained fourth matrix and the third matrix to obtain encrypted data; The encrypted data is combined with the pre-processed local data to obtain operation data; The obtained calculation data is sent to the initiator.
5. The method for concealed intersection based on an oblivious pseudo-random function according to claim 4, characterized in that: The calculation method of the operation data comprises the following steps: Obtain a random sequence and combine it with the key to generate a key sequence; Perform a selection operation based on the key sequence and the encrypted data to obtain a selection sequence; Each element of the selection sequence is concatenated and input into the second one-way function to obtain operation data.
6. The method for concealed intersection based on an oblivious pseudo-random function according to claim 5, characterized in that: A method for obtaining a selection sequence by performing a selection operation based on a key sequence and encrypted data includes the following steps: Constructing a selection sequence having the same number of items as the key sequence; The elements in the key sequence are judged one by one. When the element in the key sequence is zero, the element at the same position in the sequence is also zero. Otherwise, perform an XOR operation on the element and the element at the same position in the encrypted data, and use the result of the XOR operation as the element at that position in the selection sequence.
Citation Information
Patent Citations
Privacy set intersection calculation method capable of resisting hostile attack
CN107124268A
Method and device for performing multi-party joint dimension reduction processing on private data
CN111400766A