WO2024077948A1 - 匿踪查询方法、装置和系统及存储介质 - Google Patents

匿踪查询方法、装置和系统及存储介质 Download PDF

Info

Publication number
WO2024077948A1
WO2024077948A1 PCT/CN2023/094279 CN2023094279W WO2024077948A1 WO 2024077948 A1 WO2024077948 A1 WO 2024077948A1 CN 2023094279 W CN2023094279 W CN 2023094279W WO 2024077948 A1 WO2024077948 A1 WO 2024077948A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
data
plaintext
ciphertext
stored
Prior art date
Application number
PCT/CN2023/094279
Other languages
English (en)
French (fr)
Inventor
刘立伟
王新左
彭皓
张泽华
何杰
林战刚
Original Assignee
北京沃东天骏信息技术有限公司
北京京东世纪贸易有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京沃东天骏信息技术有限公司, 北京京东世纪贸易有限公司 filed Critical 北京沃东天骏信息技术有限公司
Publication of WO2024077948A1 publication Critical patent/WO2024077948A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Definitions

  • the present disclosure relates to the field of computer technology, in particular to the field of privacy computing, and more particularly to a stealth query method, a stealth query device, a stealth query system and a storage medium.
  • Anonymous query also known as Private Information Retrieval (PIR)
  • PIR Private Information Retrieval
  • a serial number-based anonymous query method in which a data query party initiates a ciphertext request for the storage serial number of each data record of a data provider, and obtains the label data of the data record corresponding to the storage serial number through a ciphertext response.
  • Some embodiments of the present disclosure provide an anonymous query method, including:
  • first encrypted identification data set includes encrypted identification data and a storage sequence number of each data record of the data provider
  • second encrypted identification data set includes encrypted identification data of each data record of the data query party
  • each data record includes identification data and label data
  • multiple label data of each multiple data records of the data provider are stored in a plain text
  • a ciphertext request is initiated to the data provider using the ciphertext of the index information of the target plaintext for the multiple target storage sequence numbers;
  • the multiple target tag data are obtained from the target plaintext.
  • determining that multiple target tag data of multiple target data records are stored in the same target plaintext includes:
  • determining the index information of the target plaintext stored in each target tag data of each target data record includes:
  • the index information of the target plaintext stored in each target tag data of each target data record is determined by dividing each target storage sequence number of each target data record by the amount of tag data that can be stored in each plaintext.
  • obtaining the plurality of target tag data from the target plaintext includes:
  • each target tag data is obtained from the target plaintext.
  • determining the storage location of each target tag data of each target data record in the target plaintext includes:
  • the storage position of each target tag data of each target data record in the target plaintext is determined by performing a modulo operation on the number of label data that can be stored in each plaintext by using each target storage sequence number of each target data record.
  • the method further includes: increasing the number of bits that can be stored in each plaintext and reducing the number of bits that can be stored in each tag.
  • the number of bits occupied by the signature data increases the amount of tag data that can be stored in each plaintext.
  • the number of bits that can be stored in each plaintext is increased by increasing at least one of the polynomial degree of the plaintext and the value range of the polynomial coefficient of the plaintext.
  • the number of bits occupied by each tag data is reduced through compression encoding.
  • determining the intersection of the first encrypted identification data set and the second encrypted identification data set includes:
  • An intersection of a first encrypted identification data set and a second encrypted identification data set having the same encrypted identification data is determined.
  • the data query party and the data provider use a negotiated encryption method to encrypt the identification data of their own data records respectively to generate encrypted identification data.
  • the index information of the target plaintext includes:
  • initiating a ciphertext request to a data provider includes: dividing the target storage sequence numbers in the intersection into one or more batches, each batch including one or more groups, the target storage sequence number of each group corresponds to the same target plaintext, and target storage sequence numbers of different groups correspond to different target plaintexts, and initiating a ciphertext request to the data provider for each batch, wherein the ciphertext carries index information of each target plaintext corresponding to each group of the batch;
  • the ciphertext of each target plaintext in the ciphertext response is decrypted to obtain each target plaintext of the batch.
  • it also includes: the data provider performs blind transmission expansion on the ciphertext of the index information of the target plaintext to obtain the target vector of the ciphertext of the index information of the target plaintext, and performs matrix operation on the plaintext matrix composed of each plaintext and the target vector to obtain the ciphertext of the target plaintext.
  • Some embodiments of the present disclosure provide a stealth query device, including:
  • an intersection determination unit configured to determine an intersection of a first encrypted identification data set and a second encrypted identification data set, wherein the first encrypted identification data set includes encrypted identification data and a storage sequence number of each data record of a data provider, and the second encrypted identification data set includes encrypted identification data of each data record of a data query party, each data record includes identification data and label data, and multiple label data of each multiple data records of the data provider are stored in a plain text;
  • the ciphertext request unit is configured to, when it is determined according to the multiple target storage sequence numbers in the intersection that the multiple target tag data of the corresponding multiple target data records are stored in the same target plaintext, initiate a ciphertext request to the data provider using the ciphertext of the index information of the target plaintext for the multiple target storage sequence numbers;
  • a ciphertext response unit configured to receive a ciphertext response returned by a data provider, and decrypt the ciphertext of the target plaintext in the ciphertext response to obtain the target plaintext;
  • the data acquisition unit is configured to acquire the plurality of target tag data from the target plaintext.
  • the ciphertext request unit is configured to determine that multiple target tag data of multiple target data records are stored in the same target plaintext, including:
  • the data acquisition unit is configured to
  • each target tag data is obtained from the target plaintext.
  • Some embodiments of the present disclosure provide a stealth query device, including:
  • a processor coupled to the memory, the processor being configured to execute a stealth query method based on instructions stored in the memory.
  • Some embodiments of the present disclosure provide an anonymous query system, comprising: an anonymous query device for a data query party, and a data providing device for a data provider.
  • Some embodiments of the present disclosure provide a non-transitory computer-readable storage medium having a computer program stored thereon, which implements the steps of the anonymous query method when executed by a processor.
  • FIG1 is a schematic flow chart of an anonymous query method according to some embodiments of the present disclosure.
  • FIG. 2 shows a schematic diagram of an anonymous query system according to some embodiments of the present disclosure.
  • FIG3 shows a schematic diagram of the structure of an anonymous query device according to some embodiments of the present disclosure.
  • FIG. 4 is a schematic diagram showing the structure of an anonymous query device according to some other embodiments of the present disclosure.
  • the anonymous query scheme of the disclosed embodiment determines the intersection of the data records of the data provider and the data query party by encrypting the identification data to find the intersection without revealing the privacy of both parties. If it is determined that the multiple target label data corresponding to the multiple target storage numbers in the intersection are stored in the same target plaintext, for such multiple target storage numbers, a ciphertext request is initiated to the data provider using the ciphertext of the index information of the target plaintext, and the ciphertext of the target plaintext in the ciphertext response is decrypted, and the multiple target label data can be obtained from the target plaintext. Therefore, through a ciphertext request and ciphertext response, multiple target label data can be obtained at the same time, reducing the communication overhead and computing overhead, thereby enabling the anonymous query scheme to run efficiently.
  • FIG1 is a schematic flow chart of an anonymous query method according to some embodiments of the present disclosure.
  • the anonymous query method of this embodiment includes steps 110 - 170 .
  • step 110 the data query party negotiates with the data provider on an encryption method for encrypting the identification data of its own data record to generate encrypted identification data.
  • Steps 110-1 and 110-2 provide an example.
  • step 110-1 the data query party constructs an oblivious pseudo-random function (OPRF) according to the negotiated encryption method.
  • the key (also called seed) of this function (set as F) is K.
  • the oblivious pseudo-random function and its key are used to encrypt the identification data of its own data record to generate encrypted identification data.
  • the data querying party constructs a hash function according to the negotiated encryption method, and the hash function is used to encrypt the identification data of its own data record to generate encrypted identification data.
  • step 110-2 the data provider constructs an oblivious pseudo-random function according to the negotiated encryption method, the key of which is K.
  • the oblivious pseudo-random function and its key are used to encrypt the identification data of its own data record to generate encrypted identification data.
  • the data provider constructs a hash function according to the negotiated encryption method, and the hash function is used to encrypt the identification data of its own data record to generate encrypted identification data.
  • Each data record includes identification data and label data.
  • Identification data is used to uniquely identify a data record, and the identification data of different data records are also different. Identification data includes, but is not limited to, user identification, device identification, and other data that can play an identification role.
  • Label data refers to the business data of the data record.
  • Business data is business-related data. The business data corresponding to different businesses is also different. The embodiments of the present disclosure do not limit the specific type of business data.
  • the table above has 3 data records, the ID number can be used as identification data, and the name and age can be used as label data.
  • the storage sequence number of a data record can indicate which row of the database the data record is stored in. Before the database is updated, the storage sequence number of the data record in the database is fixed and can be used to implement anonymous query.
  • the data records of the data query party can be stored in the database (DB1) of the data query party.
  • the data records of the data provider can be stored in the database (DB2) of the data provider.
  • step 120 the data query party and the data provider use a consensus encryption method to encrypt the identification data of their own data records to generate encrypted identification data, and form their own encrypted identification data sets.
  • the data provider also sends its own encrypted identification data set to the data query party.
  • Steps 120-1 and 120-2 give an example.
  • the data querying party encrypts the identification data of its own data record (i.e., the second identification data set X) according to the negotiated encryption method, for example, using an inadvertent pseudo-random function and its key or a hash function to generate encrypted identification data, thereby forming a second encrypted identification data set HX , wherein the second encrypted identification data set includes the encrypted identification data of each data record of the data querying party.
  • the negotiated encryption method for example, using an inadvertent pseudo-random function and its key or a hash function to generate encrypted identification data, thereby forming a second encrypted identification data set HX , wherein the second encrypted identification data set includes the encrypted identification data of each data record of the data querying party.
  • the data provider encrypts the identification data of its own data records (i.e., the first identification data set Y) to generate encrypted identification data in accordance with the negotiated encryption method, such as using an inadvertent pseudo-random function and its key or using a hash function, to form a first encrypted identification data set HY , and sends the first encrypted identification data set to the data query party.
  • the first encrypted identification data set includes the encrypted identification data and storage serial number of each data record of the data provider.
  • the data querying party and the data provider will generate the same encrypted identification data for the same identification data, so as to determine the intersection of the data records of the two parties.
  • determining the intersection of the first encrypted identification data set and the second encrypted identification data set includes: arranging the encrypted identification data in the first encrypted identification data set and the encrypted identification data in the second encrypted identification data set in ascending or descending order according to the same sorting method; and then determining the intersection of the first encrypted identification data set and the second encrypted identification data set having the same encrypted identification data.
  • the intersection can be determined more quickly using the sorted encrypted identification data.
  • step 140 the data provider preprocesses its own label data set M' to obtain plaintext data M, wherein multiple label data of each multiple data records of the data provider are stored in a plaintext.
  • Step 140 may be performed at any step before the data provider responds to the query of the data query party, or may be performed in advance.
  • the binary representation of the coefficients corresponds to logt bits, and a plaintext polynomial can store nlogt bits of data. Assuming that each tag data occupies S bits, the tag data y 1 , y 2 , ..., y p arranged by storage sequence are aligned in length, and all tag data with a total of P ⁇ S bits are put into a plaintext polynomial (i.e.
  • nlogt/S represents the number of tag data that can be stored in a plaintext polynomial (i.e., plaintext), which is a value greater than 1.
  • plaintext a plaintext polynomial
  • the number of tag data nlogt/S that can be stored in each plaintext is increased.
  • the number of tag data that can be obtained by one ciphertext request/response is further increased, further reducing the communication overhead and computing power.
  • the calculation overhead is calculated.
  • the number of bits nlogt that can be stored in each plaintext is increased.
  • the number of bits S occupied by each tag data is reduced.
  • secret state computing operations such as plaintext and ciphertext multiplication, ciphertext rotation, etc. will increase noise and consume the noise budget.
  • the initial noise budget is 2logq/logt. Therefore, the larger the plaintext coefficient range t, the smaller the initial budget.
  • step 150 when the data query party determines that multiple target tag data of corresponding multiple target data records are stored in the same target plaintext based on multiple target storage numbers in the intersection, the data query party initiates a ciphertext request to the data provider using the ciphertext of the index information of the target plaintext for the multiple target storage numbers.
  • the data query party knows the encoding method of the data provider's data label to plaintext. Therefore, the data query party can determine in which plaintext the label data of the data record is stored based on the storage sequence number of the data record in the data provider and the encoding parameters of the data label to plaintext.
  • determining that multiple target label data of multiple target data records are stored in the same target plaintext includes: determining the index information of the target plaintext stored in each target label data of each target data record according to multiple target storage serial numbers of the multiple target data records and encoding parameters of the label data to plaintext; when the index information of the target plaintext stored in multiple target label data of the multiple target data records is the same, determining that the multiple target label data of the multiple target data records are stored in the same target plaintext.
  • determining the index information of the target plaintext stored in each target tag data of each target data record includes: determining the number of bits that can be stored in each plaintext according to the encoding parameters of the tag data to the plaintext; determining the number of tag data that can be stored in each plaintext according to the number of bits that can be stored in each plaintext and the number of bits occupied by each tag data; and determining the index information of the target plaintext stored in each target tag data of each target data record by dividing the number of tag data that can be stored in each plaintext by each target storage sequence number of each target data record.
  • the index information of the target plaintext can be expressed by the following formula:
  • index represents the index of the target plaintext
  • id represents the target storage sequence number of the target data record
  • nlogt represents the number of bits that can be stored in each plaintext determined according to the encoding parameters (polynomial degree n, polynomial coefficient value range t of the plaintext)
  • S represents the number of bits occupied by each tag data
  • nlogt/S represents the number of tag data that can be stored in each plaintext
  • represents rounding down.
  • the label data corresponding to the consecutive nlogt/S storage numbers corresponds to a plaintext; accordingly, for any one or more of the consecutive nlogt/S storage numbers, a ciphertext request can be initiated to the data provider using the index information of the same plaintext corresponding to these storage numbers.
  • the index information of the target plaintext in this embodiment has two forms, the first is the index index of the target plaintext, and the second is the position [i, j] of the target plaintext in the plaintext matrix composed of various plaintexts.
  • the second matrix-based plaintext query positioning method can locate the target plaintext from both row and column dimensions at the same time, and the length of a single dimension of the matrix is much smaller than the length of a one-dimensional vector. Therefore, the second method can query and locate the target plaintext faster, thereby improving query efficiency.
  • the data query party determines that multiple target tag data of corresponding multiple target data records are stored in the same target plaintext based on multiple target storage numbers in the intersection
  • the data query party initiates a ciphertext request to the data provider using the ciphertext of the index information of the target plaintext for the multiple target storage numbers.
  • the target tag data of multiple target storage numbers (such as id2, id4) in the intersection are stored in the same target plaintext, using the above formula
  • the data query party uses its own public key for homomorphic encryption (such as BFV encryption) to obtain a ciphertext Enc(x index ) as a ciphertext request, which is serialized and sent to the data provider.
  • homomorphic encryption such as BFV encryption
  • the data query party uses its own public key for homomorphic encryption (such as BFV encryption) to obtain two ciphertexts Enc( xi ) and Enc( xj ), which are used as ciphertext requests and are serialized and sent to the data provider.
  • homomorphic encryption such as BFV encryption
  • the public key used for encryption in step 150 and the private key used for decryption in step 170 are the key pair of homomorphic encryption of the data querying party.
  • step 160 the data provider performs blind transmission expansion on the ciphertext of the index information of the target plaintext to obtain a target vector of the ciphertext of the index information of the target plaintext, performs a matrix operation on a plaintext matrix composed of each plaintext and the target vector to obtain the ciphertext of the target plaintext, and returns it to the data query party via a ciphertext response.
  • the data provider deserializes the data received from the data query party, and uses the Galois key provided by the data query party to perform "blind transmission expansion" on the two received ciphertexts Enc( xi ) and Enc( xj ) to obtain two column vectors of dimension T, in the form of (Enc(0),...,Enc(1),...,Enc(0)), which consist of ciphertexts of 0 and 1, where ciphertext 1 appears only once: for Enc( xi ), ciphertext 1 appears at the i-th position, and for Enc( xj ), ciphertext 1 appears at the j-th position. Due to the semantic security of homomorphic encryption, the data provider cannot determine the position of the ciphertext 1, and thus cannot know i and j that the data query party wants to query.
  • the data provider performs matrix-vector multiplication on the plaintext matrix M and the above two ciphertext vectors, that is, the homomorphic encryption plaintext and ciphertext multiplication operation.
  • R ciphertexts C 1 , C 2 , ..., CR are obtained, where R is the ciphertext expansion coefficient. They are used as the ciphertext response of the target plaintext M[i,j] and are serialized and sent to the data query party.
  • the data provider deserializes the data received from the data query party, and uses the Galois key provided by the data query party to perform "blind transmission expansion" on the received ciphertext Enc(x index ) to obtain a column vector with dimension N, in the form of (Enc(0),...,Enc(1),...,Enc(0)), which consists of ciphertext 0 and ciphertext 1, where ciphertext 1 only appears once.
  • Enc(x index ) ciphertext 1 appears at the index-th position. Due to the semantic security of homomorphic encryption, the data provider cannot determine the ciphertext position of 1, and thus cannot know the index that the data query party wants to query.
  • the data provider performs vector-vector multiplication on the plaintext vector composed of each plaintext and the above ciphertext vector, that is, the homomorphic encryption plaintext ciphertext multiplication operation.
  • R′ ciphertexts C 1 , C 2 ,..., CR′ are obtained, where R′ is the ciphertext expansion coefficient, as the ciphertext response of the target plaintext M[i,j], which is serialized and sent to the data query party.
  • step 170 the data query party receives the ciphertext response returned by the data provider, decrypts the ciphertext of the target plaintext in the ciphertext response to obtain the target plaintext, and obtains the multiple target label data from the target plaintext, and can store the obtained target label data in the database DB1.
  • the data query party can use its own label data and the label data of the data provider to conduct business.
  • the data querying party deserializes the received ciphertext response and combines the R ciphertexts using its own private key. And decrypt, or, combine and decrypt R′ ciphertexts, you can get the target plaintext M[i,j], then, according to the encoding method of label data to plaintext, decode the target plaintext M[i,j], you can get multiple label data of multiple target storage numbers.
  • obtaining the multiple target label data from the target plaintext through decoding includes: determining the storage position of each target label data of each target data record in the target plaintext according to the multiple target storage serial numbers of the multiple target data records and the encoding parameters of the label data to the plaintext; obtaining each target label data from the target plaintext according to the storage position of each target label data of each target data record in the target plaintext.
  • determining the storage position of each target label data of each target data record in the target plaintext includes: determining the number of bits that can be stored in each plaintext according to the encoding parameters of the label data to the plaintext; determining the number of label data that can be stored in each plaintext according to the number of bits that can be stored in each plaintext and the number of bits occupied by each label data; determining the storage position of each target label data of each target data record in the target plaintext by performing a modulo operation on the number of label data that can be stored in each plaintext by each target storage number of each target data record.
  • offset represents the starting storage position of the target tag data in the target plaintext
  • id represents the target storage sequence number of the target data record
  • nlogt represents the number of bits that can be stored in each plaintext determined according to the encoding parameters (polynomial degree n, polynomial coefficient value range t of the plaintext)
  • S represents the number of bits occupied by each tag data
  • nlogt/S represents the number of tag data that can be stored in each plaintext
  • mod represents the modulo operation.
  • the corresponding target tag data can be extracted from the target plaintext.
  • the data query party may initiate a ciphertext request for the storage sequence number of each batch in the intersection. Specifically, the data query party divides the target storage sequence number in the intersection into one or more batches, each batch includes one or more groups, the target storage sequence number of each group corresponds to the same target plaintext, and the target storage sequence numbers of different groups correspond to different target plaintexts, and initiates a ciphertext request to the data provider for each batch, which carries the ciphertext of the index information of each target plaintext corresponding to each group of the batch.
  • the subsequent data query party decrypts the ciphertext of each target plaintext in the ciphertext response to obtain each target plaintext of the batch, and then obtains the corresponding target label data from each target plaintext.
  • the communication overhead can be further reduced.
  • the batch size parameter (batchsize, that is, the number of groups in each batch) can be set flexibly.
  • the data query party The unordered_map data structure can be used to store the target plaintext index information (index or [i,j]) as the key and the target tag data at the starting storage position of the target plaintext (i.e., offset) as the value for easy search.
  • the anonymous query scheme of the disclosed embodiment determines the intersection of the data records of the data provider and the data query party by encrypting the identification data to find the intersection without revealing the privacy of both parties. If it is determined that the multiple target label data corresponding to the multiple target storage numbers in the intersection are stored in the same target plaintext, for such multiple target storage numbers, a ciphertext request is initiated to the data provider using the ciphertext of the index information of the target plaintext, and the ciphertext of the target plaintext in the ciphertext response is decrypted, and the multiple target label data can be obtained from the target plaintext. Therefore, multiple target label data can be obtained at the same time through a ciphertext request and ciphertext response, reducing communication overhead and computing overhead.
  • the following is a comparative analysis of the communication overhead and computational overhead. Assuming that a matrix-based plaintext query positioning method is used, the request needs to transmit 2 ciphertexts, and the response needs to transmit R ciphertexts. The size of each ciphertext is assumed to be c, if P data records are queried.
  • the ciphertext communication overhead of the data query party and the data provider is (R+2) ⁇ P ⁇ C.
  • the ciphertext communication overhead of the data query party and the data provider is (R+2) ⁇ P ⁇ C/s. It can be seen that the scheme of the embodiment of the present disclosure greatly reduces the ciphertext communication overhead.
  • the solution of the embodiment of the present disclosure requires one secret state calculation, while the solution of the related art requires multiple secret state calculations. Therefore, the solution of the embodiment of the present disclosure greatly reduces the calculation overhead.
  • FIG. 2 shows a schematic diagram of an anonymous query system according to some embodiments of the present disclosure.
  • the anonymous query system 200 of this embodiment includes: an anonymous query device 210 for a data query party, and a data providing device 220 for a data provider.
  • the anonymous query device 210 is configured to determine the intersection of a first encrypted identification data set and a second encrypted identification data set, wherein the first encrypted identification data set includes encrypted identification data and a storage sequence number of each data record of the data provider, and the second encrypted identification data set includes encrypted identification data of each data record of the data query party, each data record includes identification data and label data, and multiple label data of each multiple data records of the data provider are stored in a plain text;
  • the target storage sequence numbers are used to store the multiple target tag data of the corresponding multiple target data records in the intersection.
  • the ciphertext of the index information of the plaintext initiates a ciphertext request to the data provider;
  • the multiple target tag data are obtained from the target plaintext.
  • the anonymous query device 210 is configured to determine whether multiple target tag data of multiple target data records are stored in the same target plaintext including:
  • the anonymous query device 210 is configured to determine the index information of the target plaintext stored in each target tag data of each target data record, including:
  • the index information of the target plaintext stored in each target tag data of each target data record is determined by dividing each target storage sequence number of each target data record by the amount of tag data that can be stored in each plaintext.
  • the anonymous query device 210 is configured to obtain the plurality of target tag data from the target plaintext, including:
  • each target tag data is obtained from the target plaintext.
  • the anonymous query device 210 is configured to determine the storage location of each target tag data of each target data record in the target plaintext, including:
  • the storage location of each target tag data in each target data record in the target plaintext is determined by performing a modulo operation on the number of tag data that can be stored in each plaintext by each target storage sequence number of each target data record. Set.
  • the anonymous query device 210 is configured to increase the amount of tag data that can be stored in each plaintext by increasing the number of bits that can be stored in each plaintext and reducing the number of bits occupied by each tag data.
  • the anonymous query device 210 is configured to increase the number of bits that can be stored in each plaintext by increasing at least one of the polynomial degree of the plaintext and the value range of the polynomial coefficient of the plaintext; or, through compression coding, reduce the number of bits occupied by each tag data.
  • the anonymous query device 210 is configured to determine the intersection of the first encrypted identification data set and the second encrypted identification data set, including:
  • An intersection of a first encrypted identification data set and a second encrypted identification data set having the same encrypted identification data is determined.
  • the data query party and the data provider use a negotiated encryption method to encrypt the identification data of their own data records to generate encrypted identification data.
  • the index information of the target plaintext includes: the index of the target plaintext; or the position of the target plaintext in a plaintext matrix composed of various plaintexts.
  • the anonymous query device 210 is configured to initiate a ciphertext request to the data provider, including: dividing the target storage serial numbers in the intersection into one or more batches, each batch includes one or more groups, the target storage serial number of each group corresponds to the same target plaintext, and the target storage serial numbers of different groups correspond to different target plaintexts; for each batch, a ciphertext request is initiated to the data provider, wherein the ciphertext carries the index information of each target plaintext corresponding to each group of the batch; after receiving the ciphertext response returned by the data provider, the ciphertext of each target plaintext in the ciphertext response is decrypted to obtain each target plaintext of the batch.
  • the data providing device 220 is configured to: perform blind transmission expansion on the ciphertext of the index information of the target plaintext to obtain the target vector of the ciphertext of the index information of the target plaintext, and perform matrix operation on the plaintext matrix composed of each plaintext and the target vector to obtain the ciphertext of the target plaintext.
  • FIG3 shows a schematic diagram of the structure of an anonymous query device according to some embodiments of the present disclosure.
  • the anonymous query device 210 of this embodiment includes: units 310 - 340 .
  • the intersection determination unit 310 is configured to determine the intersection of a first encrypted identification data set and a second encrypted identification data set, wherein the first encrypted identification data set includes the encrypted identification data and storage sequence number of each data record of the data provider, and the second encrypted identification data set includes the encrypted identification data and storage sequence number of each data record of the data query party.
  • Data each data record includes identification data and label data, and multiple label data of each multiple data records of the data provider are stored in a plain text;
  • the ciphertext request unit 320 is configured to, when it is determined according to the multiple target storage sequence numbers in the intersection that the multiple target tag data of the corresponding multiple target data records are stored in the same target plaintext, initiate a ciphertext request to the data provider using the ciphertext of the index information of the target plaintext for the multiple target storage sequence numbers;
  • the ciphertext response unit 330 is configured to receive the ciphertext response returned by the data provider, and decrypt the ciphertext of the target plaintext in the ciphertext response to obtain the target plaintext;
  • the data acquisition unit 340 is configured to acquire the plurality of target tag data from the target plaintext.
  • the ciphertext request unit 320 is configured to determine that multiple target tag data of multiple target data records are stored in the same target plaintext including:
  • the ciphertext request unit 320 is configured to determine the index information of the target plaintext stored in each target tag data of each target data record, including:
  • the index information of the target plaintext stored in each target tag data of each target data record is determined by dividing each target storage sequence number of each target data record by the amount of tag data that can be stored in each plaintext.
  • the data acquisition unit 340 is configured as follows:
  • each target tag data is obtained from the target plaintext.
  • the data acquisition unit 340 is configured to: determine the storage location of each target tag data of each target data record in the target plaintext, including:
  • the storage position of each target tag data of each target data record in the target plaintext is determined by performing a modulo operation on the number of label data that can be stored in each plaintext by using each target storage sequence number of each target data record.
  • the number of tag data that can be stored in each plaintext is increased.
  • the number of bits that can be stored in each plaintext is increased.
  • the number of bits that can be stored in each plaintext is increased.
  • the number of bits occupied by each tag data is reduced.
  • the intersection determination unit 310 is configured to arrange the encrypted identification data in the first encrypted identification data set and the encrypted identification data in the second encrypted identification data set in ascending or descending order according to the same sorting method; and determine the intersection of the first encrypted identification data set and the second encrypted identification data set having the same encrypted identification data.
  • the ciphertext request unit 320 is configured to initiate a ciphertext request to the data provider, including: dividing the target storage serial numbers in the intersection into one or more batches, each batch includes one or more groups, the target storage serial number of each group corresponds to the same target plaintext, and the target storage serial numbers of different groups correspond to different target plaintexts, and initiating a ciphertext request to the data provider for each batch, wherein the ciphertext carries the index information of each target plaintext corresponding to each group of the batch; the ciphertext response unit 330 is configured to, after receiving the ciphertext response returned by the data provider, decrypt the ciphertext of each target plaintext in the ciphertext response to obtain each target plaintext of the batch.
  • FIG. 4 is a schematic diagram showing the structure of an anonymous query device according to some other embodiments of the present disclosure.
  • the anonymous query device 210 of this embodiment includes: a memory 410 and a processor 420 coupled to the memory 410 , and the processor 420 is configured to execute the anonymous query method in any of the aforementioned embodiments based on instructions stored in the memory 410 .
  • the anonymous query device 210 may further include an input/output interface 430 , a network interface 440 , a storage interface 450 , etc. These interfaces 430 , 440 , 450 , the memory 410 , and the processor 420 may be connected via a bus 460 , for example.
  • the memory 410 may include, for example, a system memory, a fixed non-volatile storage medium, etc.
  • the system memory may store, for example, an operating system, an application program, a boot loader, and other programs.
  • the processor 420 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field-available It can be implemented by discrete hardware components such as Field Programmable Gate Array (FPGA) or other programmable logic devices, discrete gates or transistors.
  • DSP digital signal processor
  • ASIC application-specific integrated circuit
  • FPGA Field Programmable Gate Array
  • the input and output interface 430 provides a connection interface for input and output devices such as a display, a mouse, a keyboard, and a touch screen.
  • the network interface 440 provides a connection interface for various networked devices.
  • the storage interface 450 provides a connection interface for external storage devices such as SD cards and USB flash drives.
  • the bus 460 can use any bus structure among a variety of bus structures.
  • the bus structure includes but is not limited to the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, and the Peripheral Component Interconnect (PCI) bus.
  • the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure may take the form of a computer program product implemented on one or more non-transient computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer program code.
  • non-transient computer-readable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • 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 a manufactured product including an instruction device that implements the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
  • These computer program instructions may 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, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提出一种匿踪查询方法、装置和系统及存储介质,涉及计算机技术领域,尤其涉及隐私计算领域。本公开实施例的匿踪查询方案,通过加密标识数据求交集的方式,在不泄露双方隐私的情况下,确定数据提供方和数据查询方的数据记录的交集,如果判定交集中的多个目标存储序号相应的多个目标标签数据被存储在同一目标明文,针对这样的多个目标存储序号,利用目标明文的索引信息的密文向数据提供方发起一次密文请求,对密文响应中的目标明文的密文进行解密,从目标明文中可获取该多个目标标签数据。从而,通过一次密文请求和密文响应,可以同时获取多个目标标签数据,降低了通信开销和计算开销,进而使得匿踪查询方案能够高效运行。

Description

匿踪查询方法、装置和系统及存储介质
相关申请的交叉引用
本申请是以CN申请号为202211252878.5,申请日为2022年10月13日的申请为基础,并主张其优先权,该CN申请的公开内容在此作为整体引入本申请中。
技术领域
本公开涉及计算机技术领域,尤其涉及隐私计算领域,特别涉及一种匿踪查询方法、匿踪查询装置、匿踪查询系统及存储介质。
背景技术
匿踪查询,也称隐私信息检索(Private Information Retrieval,PIR),用来保护用户的查询隐私,也即,数据查询方向数据提供方提交数据查询请求时,在保证数据查询方的查询信息不被泄漏的条件下完成数据查询。
一种基于序号的匿踪查询方法,数据查询方针对数据提供方的每条数据记录的存储序号发起一次密文请求,通过密文响应获得该存储序号相应的数据记录的标签数据。
经研究发现,如果想要查询多个数据记录的标签数据,则数据查询方针对多个数据记录的多个存储序号,需要通过多次密文请求和密文响应,才能获得该多个数据记录的标签数据,导致通信开销和计算开销比较大。
发明内容
本公开一些实施例提出一种匿踪查询方法,包括:
确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求;
接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文 进行解密得到所述目标明文;
从所述目标明文中获取所述多个目标标签数据。
在一些实施例中,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
在一些实施例中,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的除法运算,确定出每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息。
在一些实施例中,从所述目标明文中获取所述多个目标标签数据包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
在一些实施例中,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的取模运算,确定出每条目标数据记录的每个目标标签数据在目标明文的存储位置。
在一些实施例中,还包括:通过提高每个明文所能存储的比特数量和降低每个标 签数据占用的比特数量,增加每个明文所能存储的标签数据的数量。
在一些实施例中,通过提高明文的多项式次数、明文的多项式系数取值范围中的至少一项,提高每个明文所能存储的比特数量。
在一些实施例中,通过压缩编码方式,降低每个标签数据占用的比特数量。
在一些实施例中,确定第一加密标识数据集与第二加密标识数据集的交集包括:
按照相同的排序方式,对所述第一加密标识数据集中的加密标识数据和所述第二加密标识数据集中的加密标识数据进行升序排列或降序排列;
确定具有相同加密标识数据的第一加密标识数据集与第二加密标识数据集的交集。
在一些实施例中,数据查询方与数据提供方采用协商一致的加密方法分别对自己数据记录的标识数据进行加密生成加密标识数据。
在一些实施例中,所述目标明文的索引信息包括:
所述目标明文的索引;或者,
所述目标明文在各明文组成的明文矩阵的位置。
在一些实施例中,向数据提供方发起一次密文请求包括:将所述交集中的目标存储序号划分为一个或多个批次,每个批次包括一个或多个组,每个组的目标存储序号对应同一目标明文,不同组的目标存储序号对应不同目标明文,针对每个批次向数据提供方发起一次密文请求,其中携带该批次的各个组对应的各个目标明文的索引信息的密文;
在接收数据提供方返回的密文响应之后,对所述密文响应中的各个目标明文的密文进行解密得到该批次的各个目标明文。
在一些实施例中,还包括:数据提供方对所述目标明文的索引信息的密文进行茫然传输扩展得到所述目标明文的索引信息的密文的目标向量,将各明文组成的明文矩阵与所述目标向量进行矩阵运算得到所述目标明文的密文。
本公开一些实施例提出一种匿踪查询装置,包括:
交集确定单元,被配置为确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
密文请求单元,被配置为在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求;
密文响应单元,被配置为接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文;
数据获取单元,被配置为从所述目标明文中获取所述多个目标标签数据。
在一些实施例中,所述密文请求单元,被配置为判定多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
在一些实施例中,所述数据获取单元,被配置为
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
本公开一些实施例提出一种匿踪查询装置,包括:
存储器;以及,
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行匿踪查询方法。
本公开一些实施例提出一种匿踪查询系统,包括:用于数据查询方的匿踪查询装置,以及,用于数据提供方的数据提供装置。
本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现匿踪查询方法的步骤。
附图说明
下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人 员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开一些实施例的匿踪查询方法的流程示意图。
图2示出本公开一些实施例的匿踪查询系统的示意图。
图3示出本公开一些实施例的匿踪查询装置的结构示意图。
图4示出本公开另一些实施例的匿踪查询装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
除非特别说明,否则,本公开中的“第一”“第二”等描述用来区分不同的对象,并不用来表示大小或时序等含义。
本公开实施例的匿踪查询方案,通过加密标识数据求交集的方式,在不泄露双方隐私的情况下,确定数据提供方和数据查询方的数据记录的交集,如果判定交集中的多个目标存储序号相应的多个目标标签数据被存储在同一目标明文,针对这样的多个目标存储序号,利用目标明文的索引信息的密文向数据提供方发起一次密文请求,对密文响应中的目标明文的密文进行解密,从目标明文中可获取该多个目标标签数据。从而,通过一次密文请求和密文响应,可以同时获取多个目标标签数据,降低了通信开销和计算开销,进而使得匿踪查询方案能够高效运行。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的采集、收集、更新、分析、处理、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法的用途,且不违背公序良俗。对用户个人信息采取必要措施,防止对用户个人信息数据的非法访问,维护用户个人信息安全、网络安全和国家安全。
图1示出本公开一些实施例的匿踪查询方法的流程示意图。
如图1所示,该实施例的匿踪查询方法包括:步骤110-170。
在步骤110,数据查询方与数据提供方协商加密方法,用于对自己数据记录的标识数据进行加密生成加密标识数据。步骤110-1和步骤110-2给出了一种示例。
在步骤110-1,数据查询方按照协商的加密方法,构造不经意伪随机函数(Oblivious Pseudo-Random Function,OPRF),该函数(设为F)的密钥(也称种子)为K,该不经意伪随机函数及其密钥用于对自己数据记录的标识数据进行加密生成加密标识数据。
或者,数据查询方按照协商的加密方法,构造哈希函数,该哈希函数用于对自己数据记录的标识数据进行加密生成加密标识数据。
在步骤110-2,数据提供方按照协商的加密方法,构造不经意伪随机函数,该函数的密钥为K,该不经意伪随机函数及其密钥用于对自己数据记录的标识数据进行加密生成加密标识数据。
或者,数据提供方按照协商的加密方法,构造哈希函数,该哈希函数用于对自己数据记录的标识数据进行加密生成加密标识数据。
其中,每条数据记录包括标识数据和标签数据。标识数据用来唯一标识一条数据记录,不同数据记录的标识数据也不同。标识数据例如包括但不限于用户标识、设备标识等能够起到标识作用的数据。标签数据是指数据记录的业务数据,业务数据是业务相关的数据,不同业务对应的业务数据也不同,本公开实施例并不限定业务数据的具体类型。
例如,上表有3条数据记录,身份号可以作为标识数据,人名和年龄可以作为标签数据。
数据记录的存储序号能够表征该数据记录存储在数据库的哪一行。在数据库更新之前,数据记录在数据库中的存储序号是固定不变的,利用存储序号可实现匿踪查询。
数据查询方的数据记录可以存储在数据查询方的数据库(DB1)。数据提供方的数据记录可以存储在数据提供方的数据库(DB2)。
在步骤120,数据查询方和数据提供方采用协商一致的加密方法分别对自己数据记录的标识数据进行加密生成加密标识数据,并形成各自的加密标识数据集,数据提供方还将自己的加密标识数据集发送给数据查询方。步骤120-1和步骤120-2给出了一种示例。
在步骤120-1,数据查询方按照协商的加密方法,例如利用不经意伪随机函数及其密钥或者利用哈希函数,对自己数据记录的标识数据(即,第二标识数据集X)进行加密生成加密标识数据,形成第二加密标识数据集HX,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据。
在步骤120-2,数据提供方按照协商的加密方法,例如利用不经意伪随机函数及其密钥或者利用哈希函数,对自己数据记录的标识数据(即,第一标识数据集Y)进行加密生成加密标识数据,形成第一加密标识数据集HY,并将第一加密标识数据集发送给数据查询方,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号。
如果标识数据相同,则数据查询方和数据提供方针对该相同的标识数据会生成相同的加密标识数据,以便确定两方数据记录的交集。
在步骤130,数据查询方确定第一加密标识数据集与第二加密标识数据集的交集X’=HX∩HY,也即将第一加密标识数据集中与第二加密标识数据集具有相同加密标识数据的部分确定为第一加密标识数据集与第二加密标识数据集的交集。
在一些实施例中,确定第一加密标识数据集与第二加密标识数据集的交集包括:按照相同的排序方式,对所述第一加密标识数据集中的加密标识数据和所述第二加密标识数据集中的加密标识数据进行升序排列或降序排列;然后,确定具有相同加密标识数据的第一加密标识数据集与第二加密标识数据集的交集。从而,利用排序后的加密标识数据能更快地确定交集。
在步骤140,数据提供方对自己的标签数据集M’进行预处理得到明文数据M,其中,数据提供方的每多条数据记录的多个标签数据被存储在一个明文。
其中,步骤140可以在数据提供方响应数据查询方的查询之前的任意步骤执行,也可以预先执行。
明文空间是一个剩余类多项式环Rt=Zt[x]/(xn+1),它是一个n次多项式,系数是0,1,2,…,t-1等整数,系数的二进制表示时对应logt比特,一个明文多项式可以储存nlogt比特的数据。假设每个标签数据占用S比特,按存储序号排列的标签数据y1,y2,…,yp,将它们长度对齐后,将所有标签数据共P×S个比特,按顺序每nlogt比特放进一个明文多项式(即明文)中,一共得到N=P×S/(nlogt)个明文,从而完成标签数据到明文的编码。也即,对于某个标签数据来说,它会被存储在某个明文多项式(即明文)的若干个连续系数上。
其中,nlogt/S表示一个明文多项式(即明文)所能存储的标签数据的数量,其为大于1的数值。通过提高每个明文所能存储的比特数量nlogt和降低每个标签数据占用的比特数量S,增加每个明文所能存储的标签数据的数量nlogt/S。从而,进一步提高一次密文请求/响应所能获得的标签数据的数量,进一步降低了通信开销和计 算开销。其中,通过提高明文的多项式次数n、明文的多项式系数取值范围t中的至少一项,提高每个明文所能存储的比特数量nlogt。通过压缩编码方式,降低每个标签数据占用的比特数量S。
假设:多项式取值空间为剩余类环Rq=Zq[x]/(xn+1),它是一个n次多项式,系数是0,1,2,…,q-1等整数,明文多项式取值自Rt=Zt[x]/(xn+1),它是一个n次多项式,系数是0,1,2,…,t-1等整数,q≥t。在全同态加密算法(如BFV算法)中,密态计算操作(如明密文相乘、密文旋转等)会增加噪声,消耗噪声预算,初始的噪声预算为2logq/logt,因此明文系数范围t越大,初始预算越小,当增加的噪声累计超过初始噪声预算时,解密会失败,导致匿踪查询失败。因此,应当在不超过噪声预算的前提下选择尽量大的logt。例如,每个标签占用S=41比特,n=2048时,logt最大可以取16,超过16会导致匿踪查询失败。
在步骤150,数据查询方在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求。
数据查询方知晓数据提供方的数据标签到明文的编码方式,因此,数据查询方根据数据记录在数据提供方的存储序号,以及数据标签到明文的编码参数,可以确定该数据记录的标签数据被存储到哪个明文。
其中,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
其中,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息包括:根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的除法运算,确定出每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息。
其中,确定目标明文的索引信息可用以下公式表示:
其中,index表示目标明文的索引,id表示目标数据记录的目标存储序号,nlogt表示根据编码参数(多项式次数n、明文的多项式系数取值范围t)确定的每个明文所能存储的比特数量,S表示每个标签数据占用的比特数量,nlogt/S表示每个明文所能存储的标签数据的数量,||表示向下取整。
从index的公式可以看出,连续的nlogt/S个存储序号相应的标签数据对应一个明文;相应的,针对连续的nlogt/S个存储序号中的任意一个或多个存储序号,利用这些存储序号对应的同一明文的索引信息,可以向数据提供方发起一次密文请求。
目标明文的索引index还可以转换为目标明文M[i,j]在各明文组成的明文矩阵M的位置[i,j],其中,i=index/T,j=index mod T,T表示矩阵M的维数,假设对标签数据编码共得到N个明文,则
综上所述,本实施例中的目标明文的索引信息有两种形式,第一种是目标明文的索引index,第二种是目标明文在各明文组成的明文矩阵的位置[i,j]。第二种的矩阵形式的明文查询定位方式相对于第一种的向量形式的明文查询定位方式,由于矩阵可以从行/列两个维度同时定位、且矩阵单一维度的长度远小于一维向量的长度,因此,利用第二种方式可以更快地查询定位目标明文,提高查询效率。
数据查询方在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求。
假设交集中的多个目标存储序号(例如id2、id4)的目标标签数据被存储在同一目标明文,利用前述公式可以确定目标明文的索引index,还可以利用前述公式i=index/T,j=index mod T,根据需要确定目标明文M[i,j]在各明文组成的明文矩阵M的位置[i,j]。
如果采用向量形式的明文查询定位方式,则数据查询方利用自身公钥进行同态加密(如BFV加密)得到Enc(xindex)一条密文,作为密文请求,序列化后发送给数据提供方。
如果采用矩阵形式的明文查询定位方式,则数据查询方利用自身公钥进行同态加密(如BFV加密)得到Enc(xi),Enc(xj)两条密文,作为密文请求,序列化后发送给数据提供方。
其中,步骤150中的加密用的公钥与步骤170中解密用的私钥为数据查询方的同态加密的密钥对。同态加密能够基于密文进行加法、数乘、乘法和旋转等操作。例 如,Enc(a+b)=Enc(a)+Enc(b);k×Enc(a)=Enc(k×a),其中,Enc表示同态加密操作。
在步骤160,数据提供方对所述目标明文的索引信息的密文进行茫然传输扩展得到所述目标明文的索引信息的密文的目标向量,将各明文组成的明文矩阵与所述目标向量进行矩阵运算得到所述目标明文的密文,并通过密文响应返回给数据查询方。
如果采用矩阵形式的明文查询定位方式,数据提供方反序列化接收到的数据查询方的数据,利用数据查询方提供的Galois密钥,对接收到的两条密文Enc(xi),Enc(xj)进行“茫然传输扩展”得到两条维数为T的列向量,形式如(Enc(0),…,Enc(1),…,Enc(0)),由0的密文和1的密文组成,其中1的密文仅出现一次:对于Enc(xi)而言,1的密文出现在第i个位置上,对于Enc(xj)而言,1的密文出现在第j个位置上,由于同态加密的语义安全性,对于数据提供方来说,无法判断1的密文位置,从而无法得知数据查询方想要查询的i,j。
然后,数据提供方将明文矩阵M和以上两条密文向量进行矩阵-向量乘,即同态加密的明文密文相乘操作,假设得到R条密文C1,C2,…,CR,R是密文膨胀系数,作为目标明文M[i,j]的密文响应,序列化后发送给数据查询方。
如果采用向量形式的明文查询定位方式,数据提供方反序列化接收到的数据查询方的数据,利用数据查询方提供的Galois密钥,对接收到的一条密文Enc(xindex)进行“茫然传输扩展”得到一条维数为N的列向量,形式如(Enc(0),…,Enc(1),…,Enc(0)),由0的密文和1的密文组成,其中1的密文仅出现一次,对于Enc(xindex)而言,1的密文出现在第index个位置上,由于同态加密的语义安全性,对于数据提供方来说,无法判断1的密文位置,从而无法得知数据查询方想要查询的index。
然后,数据提供方将各明文组成的明文向量和以上一条密文向量进行向量-向量乘,即同态加密的明文密文相乘操作,假设得到R′条密文C1,C2,…,CR′,R′是密文膨胀系数,作为目标明文M[i,j]的密文响应,序列化后发送给数据查询方。
在步骤170,数据查询方接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文,并从所述目标明文中获取所述多个目标标签数据,可以将获取的目标标签数据存储到数据库DB1。从而,数据查询方可以利用自己的标签数据和数据提供方的标签数据开展业务。
数据查询方反序列化接收到的密文响应,利用自身的私钥,对R条密文进行组合 并解密,或者,对R′条密文进行组合并解密,均可以得到目标明文M[i,j],然后,根据标签数据到明文的编码方式,对目标明文M[i,j]进行解码,即可得到多个目标存储序号的多个标签数据。
其中,通过解码,从所述目标明文中获取所述多个目标标签数据包括:根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
其中,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置包括:根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的取模运算,确定出每条目标数据记录的每个目标标签数据在目标明文的存储位置。
其中,确定目标标签数据在目标明文的存储位置可以用以下公式表示:offset=id mod(nlogt/S),
其中,偏置offset表示目标标签数据在目标明文的起始存储位置,id表示目标数据记录的目标存储序号,nlogt表示根据编码参数(多项式次数n、明文的多项式系数取值范围t)确定的每个明文所能存储的比特数量,S表示每个标签数据占用的比特数量,nlogt/S表示每个明文所能存储的标签数据的数量,mod表示取模运算。
在知晓目标标签数据在目标明文的起始存储位置offset、以及每个标签数据占用的比特数量S的情况下,就可以从目标明文中提取出相应的目标标签数据。
在一些实施例中,数据查询方可以针对交集中每个批次的存储序号发起一次密文请求。具体来说,数据查询方将所述交集中的目标存储序号划分为一个或多个批次,每个批次包括一个或多个组,每个组的目标存储序号对应同一目标明文,不同组的目标存储序号对应不同目标明文,针对每个批次向数据提供方发起一次密文请求,其中携带该批次的各个组对应的各个目标明文的索引信息的密文。相应的,后续数据查询方在接收数据提供方返回的密文响应之后,对所述密文响应中的各个目标明文的密文进行解密得到该批次的各个目标明文,然后从每个目标明文中分别获取相应的目标标签数据。在一个批次对应多个目标明文的情况下,可进一步降低通信开销。其中,批次尺寸参数(batchsize,即每个批次的组的数量)可以灵活设置。此外,数据查询方 可以利用unordered_map的数据结构,将目标明文的索引信息(index或[i,j])作为键,将目标标签数据在目标明文的起始存储位置(即偏置offset)作为值,进行存储,方便查找。
本公开实施例的匿踪查询方案,通过加密标识数据求交集的方式,在不泄露双方隐私的情况下,确定数据提供方和数据查询方的数据记录的交集,如果判定交集中的多个目标存储序号相应的多个目标标签数据被存储在同一目标明文,针对这样的多个目标存储序号,利用目标明文的索引信息的密文向数据提供方发起一次密文请求,对密文响应中的目标明文的密文进行解密,从目标明文中可获取该多个目标标签数据。从而,通过一次密文请求和密文响应,可以同时获取多个目标标签数据,降低了通信开销和计算开销。
下面对通信开销和计算开销进行对比分析。假设采用矩阵形式的明文查询定位方式,请求需要传输2个密文,响应需要传输R个密文,每个密文大小假设为c,如果查询P个数据记录。
按照相关技术的方案,数据查询方和数据提供方的密文通信开销为(R+2)×P×C。按照本公开实施例的方案,假设平均下来s个数据记录在同一个密文请求中查询,则数据查询方和数据提供方的密文通信开销为(R+2)×P×C/s。可见,本公开实施例的方案极大地减少了密文通信开销。
对于对应同一明文的多个数据记录,本公开实施例的方案需要一次密态计算,而相关技术的方案需要多次密态计算,因此,本公开实施例的方案极大地减少了计算开销。
图2示出本公开一些实施例的匿踪查询系统的示意图。
如图2所示,该实施例的匿踪查询系统200包括:用于数据查询方的匿踪查询装置210,以及,用于数据提供方的数据提供装置220。
匿踪查询装置210,被配置为确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目 标明文的索引信息的密文向数据提供方发起一次密文请求;
接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文;
从所述目标明文中获取所述多个目标标签数据。
匿踪查询装置210,被配置为判定多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
匿踪查询装置210,被配置为确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的除法运算,确定出每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息。
匿踪查询装置210,被配置为从所述目标明文中获取所述多个目标标签数据包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
匿踪查询装置210,被配置为确定每条目标数据记录的每个目标标签数据在目标明文的存储位置包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的取模运算,确定出每条目标数据记录的每个目标标签数据在目标明文的存储位 置。
匿踪查询装置210,被配置为通过提高每个明文所能存储的比特数量和降低每个标签数据占用的比特数量,增加每个明文所能存储的标签数据的数量。
匿踪查询装置210,被配置为通过提高明文的多项式次数、明文的多项式系数取值范围中的至少一项,提高每个明文所能存储的比特数量;或者,通过压缩编码方式,降低每个标签数据占用的比特数量。
匿踪查询装置210,被配置为确定第一加密标识数据集与第二加密标识数据集的交集包括:
按照相同的排序方式,对所述第一加密标识数据集中的加密标识数据和所述第二加密标识数据集中的加密标识数据进行升序排列或降序排列;
确定具有相同加密标识数据的第一加密标识数据集与第二加密标识数据集的交集。
数据查询方与数据提供方采用协商一致的加密方法分别对自己数据记录的标识数据进行加密生成加密标识数据。
所述目标明文的索引信息包括:所述目标明文的索引;或者,所述目标明文在各明文组成的明文矩阵的位置。
匿踪查询装置210,被配置为向数据提供方发起一次密文请求包括:将所述交集中的目标存储序号划分为一个或多个批次,每个批次包括一个或多个组,每个组的目标存储序号对应同一目标明文,不同组的目标存储序号对应不同目标明文,针对每个批次向数据提供方发起一次密文请求,其中携带该批次的各个组对应的各个目标明文的索引信息的密文;在接收数据提供方返回的密文响应之后,对所述密文响应中的各个目标明文的密文进行解密得到该批次的各个目标明文。
数据提供装置220,被配置为:对所述目标明文的索引信息的密文进行茫然传输扩展得到所述目标明文的索引信息的密文的目标向量,将各明文组成的明文矩阵与所述目标向量进行矩阵运算得到所述目标明文的密文。
图3示出本公开一些实施例的匿踪查询装置的结构示意图。
如图3所示,该实施例的匿踪查询装置210包括:单元310-340。
交集确定单元310,被配置为确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识 数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
密文请求单元320,被配置为在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求;
密文响应单元330,被配置为接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文;
数据获取单元340,被配置为从所述目标明文中获取所述多个目标标签数据。
其中,所述密文请求单元320,被配置为判定多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
其中,所述密文请求单元320,被配置为确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的除法运算,确定出每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息。
其中,所述数据获取单元340,被配置为:
根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
其中,所述数据获取单元340,被配置为:确定每条目标数据记录的每个目标标签数据在目标明文的存储位置包括:
根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的取模运算,确定出每条目标数据记录的每个目标标签数据在目标明文的存储位置。
通过提高每个明文所能存储的比特数量和降低每个标签数据占用的比特数量,增加每个明文所能存储的标签数据的数量。通过提高明文的多项式次数、明文的多项式系数取值范围中的至少一项,提高每个明文所能存储的比特数量。通过压缩编码方式,降低每个标签数据占用的比特数量。
交集确定单元310,被配置为按照相同的排序方式,对所述第一加密标识数据集中的加密标识数据和所述第二加密标识数据集中的加密标识数据进行升序排列或降序排列;确定具有相同加密标识数据的第一加密标识数据集与第二加密标识数据集的交集。
密文请求单元320,被配置为向数据提供方发起一次密文请求包括:将所述交集中的目标存储序号划分为一个或多个批次,每个批次包括一个或多个组,每个组的目标存储序号对应同一目标明文,不同组的目标存储序号对应不同目标明文,针对每个批次向数据提供方发起一次密文请求,其中携带该批次的各个组对应的各个目标明文的索引信息的密文;密文响应单元330,被配置为在接收数据提供方返回的密文响应之后,对所述密文响应中的各个目标明文的密文进行解密得到该批次的各个目标明文。
图4示出本公开另一些实施例的匿踪查询装置的结构示意图。
如图4所示,该实施例的匿踪查询装置210包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为基于存储在存储器410中的指令,执行前述任意一些实施例中的匿踪查询方法。
匿踪查询装置210还可以包括输入输出接口430、网络接口440、存储接口450等。这些接口430,440,450以及存储器410和处理器420之间例如可以通过总线460连接。
其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
其中,处理器420可以用通用处理器、数字信号处理器(Digital Signal Processor,DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可 编程门阵列(Field Programmable Gate Array,FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。
其中,输入输出接口430为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口440为各种联网设备提供连接接口。存储接口450为SD卡、U盘等外置存储设备提供连接接口。总线460可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的非瞬时性计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (20)

  1. 一种匿踪查询方法,包括:
    确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
    在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求;
    接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文;
    从所述目标明文中获取所述多个目标标签数据。
  2. 根据权利要求1所述的匿踪查询方法,其中,判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
    根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
    在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
  3. 根据权利要求2所述的匿踪查询方法,其中,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息包括:
    根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
    根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
    通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的除法运算,确定出每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息。
  4. 根据权利要求1-3任一项所述的匿踪查询方法,其中,从所述目标明文中获取所述多个目标标签数据包括:
    根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
    根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
  5. 根据权利要求4所述的匿踪查询方法,其中,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置包括:
    根据标签数据到明文的编码参数,确定每个明文所能存储的比特数量;
    根据每个明文所能存储的比特数量以及每个标签数据占用的比特数量,确定每个明文所能存储的标签数据的数量;
    通过每条目标数据记录的每个目标存储序号对每个明文所能存储的标签数据的数量的取模运算,确定出每条目标数据记录的每个目标标签数据在目标明文的存储位置。
  6. 根据权利要求3或5所述的匿踪查询方法,还包括:
    通过提高每个明文所能存储的比特数量和降低每个标签数据占用的比特数量,增加每个明文所能存储的标签数据的数量。
  7. 根据权利要求6所述的匿踪查询方法,其中,
    通过提高明文的多项式次数、明文的多项式系数取值范围中的至少一项,提高每个明文所能存储的比特数量;或者,
    通过压缩编码方式,降低每个标签数据占用的比特数量。
  8. 根据权利要求1-7任一项所述的匿踪查询方法,其中,确定第一加密标识数据集与第二加密标识数据集的交集包括:
    按照相同的排序方式,对所述第一加密标识数据集中的加密标识数据和所述第二加密标识数据集中的加密标识数据进行升序排列或降序排列;
    将第一加密标识数据集中与第二加密标识数据集具有相同加密标识数据的部分 确定为第一加密标识数据集与第二加密标识数据集的交集。
  9. 根据权利要求1-8任一项所述的匿踪查询方法,其中,数据查询方与数据提供方采用协商一致的加密方法分别对自己数据记录的标识数据进行加密生成加密标识数据。
  10. 根据权利要求1-9任一项所述的匿踪查询方法,其中,所述目标明文的索引信息包括:
    所述目标明文的索引;或者,
    所述目标明文在各明文组成的明文矩阵的位置。
  11. 根据权利要求1-10任一项所述的匿踪查询方法,其中,向数据提供方发起一次密文请求包括:将所述交集中的目标存储序号划分为一个或多个批次,每个批次包括一个或多个组,每个组的目标存储序号对应同一目标明文,不同组的目标存储序号对应不同目标明文,针对每个批次向数据提供方发起一次密文请求,其中携带该批次的各个组对应的各个目标明文的索引信息的密文;
    在接收数据提供方返回的密文响应之后,对所述密文响应中的各个目标明文的密文进行解密得到该批次的各个目标明文。
  12. 根据权利要求1-11任一项所述的匿踪查询方法,还包括:
    数据提供方对所述目标明文的索引信息的密文进行茫然传输扩展得到所述目标明文的索引信息的密文的目标向量,将各明文组成的明文矩阵与所述目标向量进行矩阵运算得到所述目标明文的密文。
  13. 根据权利要求1-12任一项所述的匿踪查询方法,其中:
    所述目标明文的索引信息的密文是利用同态加密的密钥对中的公钥对所述目标明文的索引信息进行加密得到的,
    所述目标明文是利用同态加密的密钥对中的私钥对所述目标明文的密文进行解密得到的。
  14. 一种匿踪查询装置,包括:
    交集确定单元,被配置为确定第一加密标识数据集与第二加密标识数据集的交集,其中,所述第一加密标识数据集包括数据提供方的每条数据记录的加密标识数据和存储序号,所述第二加密标识数据集包括数据查询方的每条数据记录的加密标识数据,每条数据记录包括标识数据和标签数据,数据提供方的每多条数据记录的多个标签数据被存储在一个明文;
    密文请求单元,被配置为在根据所述交集中的多个目标存储序号判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文的情况下,针对所述多个目标存储序号,利用所述目标明文的索引信息的密文向数据提供方发起一次密文请求;
    密文响应单元,被配置为接收数据提供方返回的密文响应,并对所述密文响应中的所述目标明文的密文进行解密得到所述目标明文;
    数据获取单元,被配置为从所述目标明文中获取所述多个目标标签数据。
  15. 根据权利要求14所述的匿踪查询装置,其中,所述密文请求单元,被配置为判定相应多条目标数据记录的多个目标标签数据被存储在同一目标明文包括:
    根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据所存储的目标明文的索引信息;
    在多条目标数据记录的多个目标标签数据所存储的目标明文的索引信息相同的情况下,判定多条目标数据记录的多个目标标签数据被存储在同一目标明文。
  16. 根据权利要求14所述的匿踪查询装置,其中,所述数据获取单元,被配置为
    根据多条目标数据记录的多个目标存储序号以及标签数据到明文的编码参数,确定每条目标数据记录的每个目标标签数据在目标明文的存储位置;
    根据每条目标数据记录的每个目标标签数据在目标明文的存储位置,从所述目标明文中获取各个目标标签数据。
  17. 一种匿踪查询装置,包括:
    存储器;以及,
    耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指 令,执行权利要求1-11、13中任一项所述的匿踪查询方法。
  18. 一种匿踪查询系统,包括:
    用于数据查询方的匿踪查询装置,被配置为执行权利要求1-11中任一项所述的匿踪查询方法;以及,
    用于数据提供方的数据提供装置,被配置为执行权利要求12所述的匿踪查询方法。
  19. 一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-13中任一项所述的匿踪查询方法的步骤。
  20. 一种计算机程序,包括:
    指令,所述指令由处理器执行时使所述处理器执行根据权利要求1-13中任一项所述的匿踪查询方法。
PCT/CN2023/094279 2022-10-13 2023-05-15 匿踪查询方法、装置和系统及存储介质 WO2024077948A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211252878.5 2022-10-13
CN202211252878.5A CN115688167B (zh) 2022-10-13 2022-10-13 匿踪查询方法、装置和系统及存储介质

Publications (1)

Publication Number Publication Date
WO2024077948A1 true WO2024077948A1 (zh) 2024-04-18

Family

ID=85064692

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/094279 WO2024077948A1 (zh) 2022-10-13 2023-05-15 匿踪查询方法、装置和系统及存储介质

Country Status (2)

Country Link
CN (1) CN115688167B (zh)
WO (1) WO2024077948A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115688167B (zh) * 2022-10-13 2023-09-26 北京沃东天骏信息技术有限公司 匿踪查询方法、装置和系统及存储介质
CN116257887B (zh) * 2023-05-16 2023-08-22 建信金融科技有限责任公司 数据查询方法、装置、系统、设备及存储介质
CN116702215B (zh) * 2023-08-07 2023-12-08 腾讯科技(深圳)有限公司 一种查询处理方法、装置、设备及介质
CN116821461B (zh) * 2023-08-28 2023-12-12 云阵(杭州)互联网技术有限公司 资源查询方法以及装置
CN117010002B (zh) * 2023-09-28 2024-01-05 腾讯科技(深圳)有限公司 样本标识的对齐方法、装置、电子设备及存储介质
CN117194756A (zh) * 2023-11-02 2023-12-08 北京信安世纪科技股份有限公司 数据处理方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172258A1 (en) * 2013-12-13 2015-06-18 Kabushiki Kaisha Toshiba Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium
CN112699384A (zh) * 2020-12-11 2021-04-23 山东大学 基于fpga的全同态加密深度学习推理方法及系统
CN114065271A (zh) * 2020-07-30 2022-02-18 阿里健康信息技术有限公司 数据处理方法及装置
CN114722049A (zh) * 2022-05-18 2022-07-08 华控清交信息科技(北京)有限公司 一种多方数据交集计算方法、装置及电子设备
CN115688167A (zh) * 2022-10-13 2023-02-03 北京沃东天骏信息技术有限公司 匿踪查询方法、装置和系统及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3040842B1 (fr) * 2015-09-03 2018-12-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'interrogation confidentielle d'un service geodependant par cryptographie homomorphe
CN114139204A (zh) * 2021-12-03 2022-03-04 杭州安恒信息技术股份有限公司 一种匿踪查询方法、装置及介质
CN114090638B (zh) * 2022-01-20 2022-04-22 支付宝(杭州)信息技术有限公司 基于隐私保护的联合数据查询方法及装置
CN114943090B (zh) * 2022-07-22 2022-11-22 图灵人工智能研究院(南京)有限公司 一种基于同态加密大规模人脸库隐匿查询的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172258A1 (en) * 2013-12-13 2015-06-18 Kabushiki Kaisha Toshiba Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium
CN114065271A (zh) * 2020-07-30 2022-02-18 阿里健康信息技术有限公司 数据处理方法及装置
CN112699384A (zh) * 2020-12-11 2021-04-23 山东大学 基于fpga的全同态加密深度学习推理方法及系统
CN114722049A (zh) * 2022-05-18 2022-07-08 华控清交信息科技(北京)有限公司 一种多方数据交集计算方法、装置及电子设备
CN115688167A (zh) * 2022-10-13 2023-02-03 北京沃东天骏信息技术有限公司 匿踪查询方法、装置和系统及存储介质

Also Published As

Publication number Publication date
CN115688167A (zh) 2023-02-03
CN115688167B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
WO2024077948A1 (zh) 匿踪查询方法、装置和系统及存储介质
US20210099287A1 (en) Cryptographic key generation for logically sharded data stores
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
Wang et al. Search in my way: Practical outsourced image retrieval framework supporting unshared key
JP2014126865A (ja) 暗号処理装置および方法
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN108038128B (zh) 一种加密文件的检索方法、系统、终端设备及存储介质
CN108111587B (zh) 一种基于时间释放的云存储搜索方法
CA3065767C (en) Cryptographic key generation for logically sharded data stores
CN110263570B (zh) 一种实现高效相似性查询和访问控制的基因数据脱敏方法
Al Sibahee et al. Efficient encrypted image retrieval in IoT-cloud with multi-user authentication
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
EP4020265A1 (en) Method and device for storing encrypted data
JPWO2019215818A1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
CN112199698A (zh) 一种健壮的可搜索对称加密方法与系统
CN115795514A (zh) 一种隐私信息检索方法、装置及系统
Wang et al. Image encryption algorithm based on lattice hash function and privacy protection
WO2017126000A1 (ja) 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
US11101987B2 (en) Adaptive encryption for entity resolution
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
JPWO2017168798A1 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
JP7440662B2 (ja) マルチキー情報検索
CN117171202A (zh) 一种数据查询方法及装置