CN114201773A - SkNN query method and system supporting access time limitation and result verification - Google Patents

SkNN query method and system supporting access time limitation and result verification Download PDF

Info

Publication number
CN114201773A
CN114201773A CN202111522678.2A CN202111522678A CN114201773A CN 114201773 A CN114201773 A CN 114201773A CN 202111522678 A CN202111522678 A CN 202111522678A CN 114201773 A CN114201773 A CN 114201773A
Authority
CN
China
Prior art keywords
data
evidence
hvs
party
cloud storage
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202111522678.2A
Other languages
Chinese (zh)
Other versions
CN114201773B (en
Inventor
李萌
高剑博
祝烈煌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
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 Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN202111522678.2A priority Critical patent/CN114201773B/en
Publication of CN114201773A publication Critical patent/CN114201773A/en
Application granted granted Critical
Publication of CN114201773B publication Critical patent/CN114201773B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

The invention discloses a SkNN query method and a system supporting access time limitation and result verification, which are applied to an environment consisting of a plurality of data uploading modules, a plurality of data requesting modules and a data cloud storage module; the data uploading module calculates a data security index with limited access time, uploads the data security index and the encrypted data to the data cloud storage module and shares a secret key with some data request modules; the data request module generates a query token according to the access time, submits the token to the data cloud storage module, decrypts the matched data after the data is sent back and verifies the authenticity, and otherwise, waits for valid data; the data cloud storage module receives the security index and the encrypted data from the data uploading module, receives the token from the data requesting module, searches the security index by using the token and returns k nearest query results and evidence. The method and the device can protect the privacy of the data requesting party from being infringed by the untrusted data cloud storage party, and are also suitable for the location-based vehicle networking service.

Description

SkNN query method and system supporting access time limitation and result verification
Technical Field
The invention relates to a SkNN query method and a system supporting access time limitation and result verification, and belongs to the technical field of privacy protection, cloud service and encrypted data query.
Background
Most location based services (lbs) allow a user to upload their current location and their location to be queried to a cloud server, which returns a query result (such as the most recent ten well-rated cafe) to the user. However, in this type of service, security is a major issue, as location is closely related to user privacy, while cloud servers are not fully trusted. Particularly data stored on the cloud, may be analyzed or leaked by the cloud server. Meanwhile, the commercial cloud server may be attacked by hackers, and the public cloud storage service is not completely trusted, so that privacy becomes a critical issue. In particular, similar problems exist in location-based internet of vehicles services, such as navigation, internet appointment, intelligent parking, and the like.
In addition, data owners may wish to have specific access time restrictions on their data items uploaded to the cloud server, while data requesters also have specific access time requirements for data items on the cloud server (e.g., coffee shops operating from 8 to 12). The data requirements of privacy protecting data owners and data requesters are of great concern and include spatial attributes of data items, temporal attributes of data items, category attributes of data items, and query requests of data items. Therefore, it is important to improve query efficiency and increase data verification measures while ensuring privacy of data owners and data requesters.
To solve the privacy protection problem, location-based services using a secure K-nearest neighbor query processing method have emerged in recent years. These methods typically include three parties: the system comprises a data uploading party, a data requesting party and a data cloud storage party. Wherein the data uploading party stores the encrypted data and the security index on the data cloud storage party. The data request side submits a safe K nearest neighbor query to the data cloud storage side, the data cloud storage side returns a corresponding result after searching a database of the data cloud storage side, and the data cloud storage side is not completely credible. These approaches do not address the specific data attribute requirements, namely how to implement SkNN query processing with secure, sometimes limited, access. This also brings three new requirements:
(1) access time limitation: returning only the matched specific items which are in accordance with the data attribute query time range;
(2) the results can verify that: preventing a data cloud storage party from maliciously excluding or tampering specific items in the query;
(3) efficient query: on the premise of ensuring the safety, the data query and matching are efficiently carried out.
Disclosure of Invention
The invention aims to solve the defects of the prior art, and provides a SkNN query method and a system supporting access time limitation and result verification so as to resist the security threat of an untrusted data cloud storage party in the cloud encrypted data query process and solve the problem of specific data attribute requirement, thereby protecting the privacy of a data uploading party and a data requesting party and ensuring the life and property safety of the data uploading party and the data requesting party.
The invention adopts the following technical scheme for achieving the aim of the invention:
the SkNN inquiry system supporting access time limitation and result verification has the characteristics that: the system comprises a plurality of data uploading modules, a plurality of data requesting modules and a data cloud storage module;
the data uploading module comprises: an index generating unit and a shared key transmitting unit;
the data request module comprises: the system comprises a shared key receiving unit, a token generating unit and an evidence verifying unit;
the data cloud storage module comprises: an index receiving unit and a data searching unit;
a shared key sending unit of any ith data uploading module sends the generated shared key to an index generating unit of the shared key sending unit and a shared key receiving unit of a jth data requesting module respectively;
the index generating unit of the ith data uploading module extracts the access time attribute, the space attribute and the category attribute of the data item to be uploaded, calculates a security index and verification information, encrypts the data item to be uploaded by using the shared key to obtain encrypted data, and then sends the encrypted data, the security index and the verification information to the index receiving unit for storage;
the index receiving unit receives the encryption information, the security index and the verification information, stores the encryption information, the security index and the verification information and forwards the encryption information, the security index and the verification information to the data searching unit;
after receiving the shared key, the shared key receiving unit of the jth data request module forwards the shared key to the token generation unit and the evidence verification unit of the jth data request module;
a token generation unit of the jth data request module uses the shared secret key, generates a query token according to the access time attribute, the space attribute and the category attribute of a data item required to be requested by the token generation unit, and sends the query token to the data search unit;
the data searching unit searches the security index by using the query token, if the search is successful, corresponding encrypted data and verification information are sent to an evidence verification unit of the jth data request module, and if the search is failed, an empty character string is sent to the evidence verification unit of the jth data request module;
and if the evidence verification unit of the jth data request module receives the encrypted data, decrypting the encrypted data by using the shared secret key, and generating a verification result by using the evidence information, so as to judge whether to accept the decrypted data according to the verification result.
The invention relates to a SkNN query method supporting access time limitation and result verification, which is characterized by being applied to a network environment consisting of a plurality of data uploading parties, a plurality of data requesting parties and a data cloud storage party, wherein the SkNN query method comprises the following steps:
step one, index construction:
step 1.1 any ith data uploading party firstly gives a sharing secretKey and for a set of n data { D1,D2,…,DnEach of the data items DiCalculate its encrypted data EiThen extract each data item DiType attribute Type ofiGenerating a subtree by using the data items with the same category of attributes, and then respectively generating the attributes with different categories into root nodes of the subtree to be used as new leaf nodes, thereby generating a whole tree tivetre;
step 1.2 the ith data uploading party performs comparison on each data item D in the leaf nodes on the subtreeiFirst, the access Time is extractediAnd position LiPosition L is encoded using a spatial encoding methodiConverting into position area G (i), and using prefix coding method to access TimeiConversion to Access periodiFinally according to the position region G (i) and the visit periodiCalculating the location area complement LCS by using the complement coding methodiAnd access time complement TCSi
Step 1.3 give t pseudorandom key hash message authentication code functions h1,h2,...,htA random prediction machine H and m +1 secret keys K1,K2,...,Km,Km+1The ith data uploading party initializes a null indistinguishable bloom filter BiAnd is provided with
Figure BDA0003408341930000031
Thereby respectively setting the position region G (i) or the access periodiThe kth prefix pr in (1)kAnd a random number rnEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; complementary location area LCSiAnd access time complement TCSiPrefix element w in (1)sComputing the evidence biti=QueLoc(Bi,ws) And evidence bit hash value
Figure BDA0003408341930000032
Recalculating evidence node hash value HVi=hash(Ei) (ii) a Wherein h isqIndicating the use of the qth key KqHashes the message authentication code function,
Figure BDA0003408341930000033
indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;
Figure BDA0003408341930000034
representing an exclusive-OR operation, k ∈ [1, | Sn|],q∈[1,m];|SnI denotes the location area G (i) or the access periodiLength of (d); QueLoc (B)i,ws) For computing prefix elements wsEmbedded into a non-discriminating bloom Filter BiThe position of (1); s belongs to [1, | CS ∈ |)n|];|CSn| denotes the location area complement LCSiAnd access time complement TCSiLength of (d);
step 1.4 the ith data uploading party converts the category attribute in the root node of the subtree into the category attribute type by using a prefix coding methodiAnd according to the type of the category attributeiCalculation of category complementary YCS using complementary codingiThen, according to the procedure of step 1.3, the type of the category attributeiThe prefix in (2) and the random number rnEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; simultaneous complementary YCS to classesiPrefix element w in (1)yCalculating the whole tree evidence biti′=QueLoc(Bi,wy) And whole tree evidence bit hash value
Figure BDA0003408341930000035
Then according to the left sub-tree left and the right sub-tree right of the root node; computing the hash value HV of the evidence node of the whole treei′=hash(HVleft,HVright);HVleftRepresenting the hash value of the evidence node of the entire left sub-tree, HVrightRepresenting right sub-tree whole tree evidence node hash value
Step 1.5, the ith data uploading party performs processing on the root node of the whole tree TiveTreeLeft sub-tree left and right sub-tree right of the point, computing evidence root node hash value HVroot=hash(HVleft,HVright);HVleftRepresenting a root node hash value of evidence for a left sub-tree, HVrightRepresenting right subtree evidence root node hash value
Step 1.6 the ith data uploading party uses the whole tree TimeTree and the random number rnCombining into a secure index, and then combining the encrypted data { E }1,…Ei,…EnAnd verification information bitsi,Hvsi,HVsi,HVrootSubmitting to the data cloud storage party; sharing the shared key to any data request party; wherein bitsiRepresents a set of evidence bits, and bitsi={biti,biti′},HvsiRepresents a set of evidence bit hash values, and Hvsi={Hvi,Hvi′},HVsiRepresents a set of evidence node hash values, and HVsi={HVi,HVi′};
Step two, token generation:
step 2.1 any j-th data requester uses prefix coding method and space coding method to request Type of data itemjAccess TimejAnd position LjRespectively converted into corresponding prefix sets
Figure BDA0003408341930000041
Step 2.2 the jth data requestor is aggregated according to the three prefixes
Figure BDA0003408341930000042
Generating query tokens separately
Figure BDA0003408341930000043
And submitting to a data cloud storage party; wherein, prk' means three prefix sets
Figure BDA0003408341930000044
One element of, | Sn' | denotes the set of three prefixes
Figure BDA0003408341930000045
Length of any one prefix set;
step 2.3 said jth data requestor will query the token
Figure BDA0003408341930000046
Sending the data to the data cloud storage party;
step three, query processing:
step 3.1, the data cloud storage party respectively receives corresponding security indexes from a plurality of data uploading parties and receives query tokens from the jth data requesting party
Figure BDA0003408341930000047
3.2 the data cloud storage side utilizes the root node of the whole TiveTree from top to bottom
Figure BDA0003408341930000048
Checking the query token
Figure BDA0003408341930000049
If the matching can be carried out, continuing to inquire the child nodes of the safety index until the root node of the subtree is inquired, and otherwise, returning empty character strings and verification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rn
Step 3.3 the data cloud storage side starts from the root node of the subtree to utilize from top to bottom
Figure BDA0003408341930000051
Checking two query tokens
Figure BDA0003408341930000052
If all the safety indexes can be matched with any one safety index, if all the safety indexes can be matched with any safety index, the safety indexes are inquired continuously from the child nodes until the sub-trees are inquiredLeaf node and returns corresponding encrypted data EiVerification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rnGiving the jth data request party further decryption data, otherwise, returning empty character string and verification information { bits }i,Hvsi,HVsi,HVrootAnd a random number rnGiving the jth data requestor;
step four, verifying the result:
step 4.1 the jth data requester receives encrypted data E from the data cloud storageiOr an empty character string, receives a shared key from the ith data uploading party, and decrypts the encrypted data E by using the shared keyiTo verify the encrypted data EiThe correctness of the test;
step 4.2, the jth data requester receives verification information { bits ] from the data cloud storage partyi,Hvsi,HVsi,HVrootAnd a random number rnAnd HVs from the evidence node hash value setiElement calculation verification node hash value HV in the unionver=hash(HVsi,x,HVsi,y) Comparison HVrootAnd HVverWhether or not to be identical to verify the encrypted data EiIf the integrity of the data is the same, executing the step 4.3; otherwise, it represents encrypted data EiIncomplete and end the process; wherein x, y is 1,2, …, | HVsi|,|HVsiThe | represents the set HVsiLength of (d);
step 4.3 the jth data requestor initializes an empty indistinguishable bloom filter BjWill inquire about the token
Figure BDA0003408341930000053
Each element in (a) is embedded in a non-resolvable bloom filter BjIn the method, corresponding verification bit set bits are calculated simultaneouslyverAnd a set of validation bit hash values HvverThen comparing the verification bit set bitsverAnd a set of validation bit hash values HvverRespectively with evidence bit sets bitsiAnd evidence bit hash value set HvsiWhether or not to be identical to verify the encrypted data EiIf they are the same, the integrity of (1) indicates the encrypted data EiThe integrity is realized; otherwise, it represents encrypted data EiIs incomplete.
Compared with the prior art, the invention has the beneficial effects that:
1. according to the invention, a data uploading party extracts the time attribute, the space attribute and the category attribute of a data item to calculate the security index and the verification information, encrypts the data and submits the encrypted data and the index and the verification information to a data cloud storage party, and shares a secret key with a data requesting party. And the data requester generates a query token and submits the query token to the data cloud storage party to obtain the required data and the verification information, and the query result is verified. The data cloud storage party searches the security index using the token and returns corresponding data and authentication information. The method solves the problem of specific data attribute requirements, achieves high-efficiency secret data query supporting limited access time and verifiable results, and effectively protects the privacy of a data uploading party and a data requesting party;
2. according to the invention, the data uploading party generates the security index and the verification information by using the indistinguishable bloom filter method, the spatial coding method, the prefix coding method and the complementary set coding method, so that a malicious data cloud storage party cannot acquire information such as the spatial position of the data uploading party, and strong index security is achieved;
3. according to the invention, the data request party generates the query token by using the prefix encoding method, the complement encoding method and the pseudorandom hash function method, so that the problem of specific data attribute requirement is solved, and a malicious data cloud storage party cannot acquire the spatial position information and the relevant information of the access time range of the data request party, thereby achieving strong token privacy;
4. the invention realizes low-computation-cost computation operation on each of the data uploading party, the data requesting party and the data cloud storage party, realizes low-overhead communication of each party, effectively reduces the query response time, avoids the complicated interactive operation taking local execution as a main part, and does not reduce the accuracy of safe K nearest neighbor query processing.
Drawings
FIG. 1 is a diagram of a secure K nearest neighbor query model in the prior art;
FIG. 2 is a model diagram of the SkNN query system of the present invention supporting access time limitation and result verifiability;
fig. 3 is an overview of the SkNN query method of the present invention that supports access time limitation and verifiable results.
Detailed Description
In this embodiment, a typical secure K nearest neighbor query process is as shown in fig. 1, where a data upload module encrypts data and calculates a secure index to upload to a data cloud storage module, and a data request module sends a secure K nearest neighbor query to the data cloud storage module and obtains a return result;
in this embodiment, a SkNN query system supporting access time limitation and result verifiability includes, as shown in fig. 2, a plurality of data upload modules, a plurality of data request modules, and a data cloud storage module;
taking the cloud-up secret data query processing in the primary restaurant reservation service as an example, the data uploading module is a restaurant providing dining service, the data request module is a guest needing to use the restaurant reservation service, and the data cloud storage module is a third-party platform. The guest submits the position and the preset time of the guest to a third-party platform, and the third-party platform is matched with a proper restaurant for reservation;
the data uploading module comprises: an index generating unit and a shared key transmitting unit;
the data request module comprises: the system comprises a shared key receiving unit, a token generating unit and an evidence verifying unit;
the data cloud storage module comprises: an index receiving unit and a data searching unit;
a shared key sending unit of any ith data uploading module sends the generated shared key to an index generating unit of the shared key sending unit and a shared key receiving unit of a jth data requesting module respectively;
an index generating unit of the ith data uploading module extracts the access time attribute, the space attribute and the category attribute of the data item to be uploaded, calculates a security index and verification information, encrypts the data item to be uploaded by using a shared key to obtain encrypted data, and sends the encrypted data, the security index and the verification information to an index receiving unit for storage;
the index receiving unit receives the encryption information, the security index and the verification information, stores the encryption information, the security index and the verification information and forwards the encryption information, the security index and the verification information to the data searching unit;
after receiving the shared key, the shared key receiving unit of the jth data request module forwards the shared key to the token generation unit and the evidence verification unit of the jth data request module;
a token generation unit of the jth data request module uses a shared key, generates a query token according to the access time attribute, the space attribute and the category attribute of a data item required to be requested by the token generation unit, and sends the query token to the data search unit;
the data searching unit searches the security index by using the query token, if the search is successful, corresponding encrypted data and verification information are sent to the evidence verification unit of the jth data request module, and if the search is failed, an empty character string is sent to the evidence verification unit of the jth data request module;
and if the evidence verification unit of the jth data request module receives the encrypted data, decrypting the encrypted data by using the shared secret key, and generating a verification result by using the evidence information, so as to judge whether to accept the decrypted data according to the verification result.
As shown in fig. 3, the SkNN query method supporting access time limitation and result verifiability converts the K nearest neighbor problem into an equality check problem using spatial coding, converts the equality check problem and the range query problem into a neighbor keyword query problem using prefix coding, respectively, and finally constructs a secure index and verification information using an indistinguishable bloom filter, and implements secure and efficient query processing and evidence generation using membership checking in the bloom filter.
In this embodiment, a SkNN query method supporting access time limitation and result verifiability is applied to a network environment formed by a plurality of data uploading parties, a plurality of data requesting parties, and a data cloud storage party, and is performed according to the following steps:
step one, index construction:
step 1.1 any ith data uploader firstly gives a shared key and sets a group of n data { D }1,D2,…,DnEach of the data items Di,DiCalculating encrypted data E for useful information about location L, such as current business time information uploaded by restaurants in a reserved restaurant service, restaurant address information, etciThe encryption algorithm here is an AES encryption algorithm, and each data item D is extractediType attribute Type ofiGenerating a subtree by using the data items with the same category of attributes, and then respectively generating the attributes with different categories into root nodes of the subtree to be used as new leaf nodes, thereby generating a whole tree tivetre;
step 1.2 every data item D in leaf node on ith data uploading party pair sub-treeiFirst, the access Time is extractediAnd position LiPosition L is encoded using a spatial encoding methodiConverting into position area G (i), and using prefix coding method to access TimeiConversion to Access periodiFinally according to the position region G (i) and the access periodiCalculating the location area complement LCS by using the complement coding methodiAnd access time complement TCSi
Step 1.3 give t pseudorandom key hash message authentication code functions h1,h2,...,htA random prediction machine H and m +1 secret keys K1,K2,...,Km,Km+1The ith data uploading party initializes a null indistinguishable bloom filter BiAnd is provided with
Figure BDA0003408341930000081
Thereby respectively setting the position region G (i) or the access periodiThe kth prefix pr in (1)kAnd a random number rnEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; complementary location area LCSiAnd access time complement TCSiPrefix element inElement wsComputing the evidence biti=QueLoc(Bi,ws) And evidence bit hash value
Figure BDA0003408341930000082
Recalculating evidence node hash value HVi=hash(Ei) (ii) a Wherein h isqIndicating the use of the qth key KqThe pseudo-random key hash message authentication code function is that the key hash message authentication code is a hash value obtained by adding a key into data and then performing hash operation;
Figure BDA0003408341930000083
indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;
Figure BDA0003408341930000084
representing an exclusive-OR operation, k ∈ [1, | Sn|],q∈[1,m];|SnI denotes the location area G (i) or the access periodiLength of (d); QueLoc (B)i,ws) For computing prefix elements wsEmbedded into a non-discriminating bloom Filter BiThe position of (1); s belongs to [1, | CS ∈ |)n|];|CSn| denotes the location area complement LCSiAnd access time complement TCSiLength of (d);
step 1.4, the ith data uploading party converts the category attribute in the root node of the subtree into the category attribute type by using a prefix coding methodiAnd according to the type of the category attributeiCalculation of category complementary YCS using complementary codingiThen, according to the procedure of step 1.3, the type of the category attributeiPrefix and random number r in (1)nEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; simultaneous complementary YCS to classesiPrefix element w in (1)yCalculating the whole tree evidence bit'i=QueLoc(Bi,wy) And whole tree evidence bit hash value
Figure BDA0003408341930000085
Then according to the left subtree left and right of the root nodeSubtree right; computing the hash value HV of the evidence node of the whole treei′=hash(HV′left,HV′right);HV′leftRepresents the hash value of the evidence node of the whole tree of the left subtree, HV'rightRepresenting right sub-tree whole tree evidence node hash value
Step 1.5, the ith data uploader calculates the hash value HV of the evidence root node by calculating the root node of the whole tree TiveTree, the left sub-tree left and the right sub-tree right of the root noderoot=hash(HVleft,HVright);HVleftRepresenting a root node hash value of evidence for a left sub-tree, HVrightRepresenting right subtree evidence root node hash value
Step 1.6, the ith data uploading party uploads the whole tree TiveTree and a random number rnCombining into a secure index, and then combining the encrypted data { E }1,…Ei,…EnAnd verification information bitsi,Hvsi,HVsi,HVrootSubmitting to a data cloud storage party; sharing the shared key to any data request party; wherein bitsiRepresents a set of evidence bits, and bitsi={biti,bit′i},HvsiRepresents a set of evidence bit hash values, and Hvsi={Hvi,Hv′i},HVsiRepresents a set of evidence node hash values, and HVsi={HVi,HV′i};
Step two, token generation:
step 2.1 any j-th data requester uses prefix coding method and space coding method to request Type of data itemjAccess TimejAnd position LjRespectively converted into corresponding prefix sets
Figure BDA0003408341930000091
For example, in a predetermined restaurant service, restaurant business time information, current address information, and the like queried by a guest;
step 2.2 the jth data requestor is aggregated according to the three prefixes
Figure BDA0003408341930000092
Generating query tokens separately
Figure BDA0003408341930000093
And submitting to a data cloud storage party; wherein, prk' means three prefix sets
Figure BDA0003408341930000094
One element of, | Sn' | denotes the set of three prefixes
Figure BDA0003408341930000095
Length of any one prefix set;
step 2.3 the jth data requestor will query the token
Figure BDA0003408341930000096
Sending the data to a data cloud storage party;
step three, query processing:
step 3.1, the data cloud storage party receives corresponding security indexes from a plurality of data uploading parties respectively and receives query tokens from the jth data requesting party
Figure BDA0003408341930000097
Step 3.2, the data cloud storage party utilizes the root node of the whole TiveTree from top to bottom
Figure BDA0003408341930000098
Checking query tokens
Figure BDA0003408341930000099
If the matching can be carried out, continuing to inquire the child nodes of the safety index until the root node of the subtree is inquired, and otherwise, returning empty character strings and verification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rn
Step 3.3 data cloud storage side starts from the root node of the subtree to utilize from top to bottom
Figure BDA00034083419300000910
Checking two query tokens
Figure BDA00034083419300000911
If the matching can be carried out, continuing to inquire the child nodes of the safety indexes until the leaf nodes of the subtrees are inquired, and returning corresponding encrypted data EiVerification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rnGiving the jth data request party to further decrypt the data, otherwise, returning an empty character string and verification information { bits }i,Hvsi,HVsi,HVrootAnd a random number rnGiving j data request party;
step four, verifying the result:
step 4.1 the jth data requestor receives encrypted data E from the data cloud storageiOr an empty string, receives the shared key from the ith data uploader, and decrypts the encrypted data E using the shared keyiTo verify the encrypted data EiThe correctness of the test;
step 4.2, the jth data requester receives verification information { bits ] from the data cloud storage partyi,Hvsi,HVsi,HVrootAnd a random number rnAnd HVs from the evidence node hash value setiElement calculation verification node hash value HV in the unionver=hash(HVsi,x,HVsi,y) Comparison HVrootAnd HVverWhether or not to be identical to verify the encrypted data EiIf the integrity of the data is the same, executing the step 4.3; otherwise, it represents encrypted data EiIncomplete and end the process; wherein x, y is 1,2, …, | HVsi|,|HVsiThe | represents the set HVsiLength of (d);
step 4.3 the jth data requestor initializes an empty indistinguishable bloom filter BjWill inquire about the token
Figure BDA0003408341930000101
Each element in (a) is embedded in a non-resolvable bloom filter BjIn the method, corresponding verification bit set bits are calculated simultaneouslyverAnd a set of validation bit hash values HvverThen comparing the verification bit set bitsverAnd a set of validation bit hash values HvverAnd evidence bit set bitsiAnd evidence bit hash value set HvsiWhether or not to be identical to verify the encrypted data EiIf they are the same, the integrity of (1) indicates the encrypted data EiCompleting and ending the flow; otherwise, it represents encrypted data EiAnd the process is incomplete and ends.
In conclusion, the invention is improved on the basis of the secure K nearest neighbor algorithm, solves the problem of specific attribute requirements, realizes the SkNN query method and system supporting access time limitation and result verification, and can effectively resist the security threat of the untrusted data cloud storage party, thereby protecting the privacy security, personal security and property security of the data requesting party.

Claims (2)

1. A SkNN query system that supports access time limitation and result verifiability, comprising: the system comprises a plurality of data uploading modules, a plurality of data requesting modules and a data cloud storage module;
the data uploading module comprises: an index generating unit and a shared key transmitting unit;
the data request module comprises: the system comprises a shared key receiving unit, a token generating unit and an evidence verifying unit;
the data cloud storage module comprises: an index receiving unit and a data searching unit;
a shared key sending unit of any ith data uploading module sends the generated shared key to an index generating unit of the shared key sending unit and a shared key receiving unit of a jth data requesting module respectively;
the index generating unit of the ith data uploading module extracts the access time attribute, the space attribute and the category attribute of the data item to be uploaded, calculates a security index and verification information, encrypts the data item to be uploaded by using the shared key to obtain encrypted data, and then sends the encrypted data, the security index and the verification information to the index receiving unit for storage;
the index receiving unit receives the encryption information, the security index and the verification information, stores the encryption information, the security index and the verification information and forwards the encryption information, the security index and the verification information to the data searching unit;
after receiving the shared key, the shared key receiving unit of the jth data request module forwards the shared key to the token generation unit and the evidence verification unit of the jth data request module;
a token generation unit of the jth data request module uses the shared secret key, generates a query token according to the access time attribute, the space attribute and the category attribute of a data item required to be requested by the token generation unit, and sends the query token to the data search unit;
the data searching unit searches the security index by using the query token, if the search is successful, corresponding encrypted data and verification information are sent to an evidence verification unit of the jth data request module, and if the search is failed, an empty character string is sent to the evidence verification unit of the jth data request module;
and if the evidence verification unit of the jth data request module receives the encrypted data, decrypting the encrypted data by using the shared secret key, and generating a verification result by using the evidence information, so as to judge whether to accept the decrypted data according to the verification result.
2. A SkNN query method supporting access time limitation and result verifiability is characterized by being applied to a network environment formed by a plurality of data uploading parties, a plurality of data requesting parties and a data cloud storage party, and the SkNN query method is carried out according to the following steps:
step one, index construction:
step 1.1 any ith data uploader firstly gives a shared key and sets a group of n data { D }1,D2,…,DnEach of the data items DiCalculate its encrypted data EiThen draw outEach data item DiType attribute Type ofiGenerating a subtree by using the data items with the same category of attributes, and then respectively generating the attributes with different categories into root nodes of the subtree to be used as new leaf nodes, thereby generating a whole tree tivetre;
step 1.2 the ith data uploading party performs comparison on each data item D in the leaf nodes on the subtreeiFirst, the access Time is extractediAnd position LiPosition L is encoded using a spatial encoding methodiConverting into position area G (i), and using prefix coding method to access TimeiConversion to Access periodiFinally according to the position region G (i) and the visit periodiCalculating the location area complement LCS by using the complement coding methodiAnd access time complement TCSi
Step 1.3 give t pseudorandom key hash message authentication code functions h1,h2,...,htA random prediction machine H and m +1 secret keys K1,K2,...,Km,Km+1The ith data uploading party initializes a null indistinguishable bloom filter BiAnd is provided with
Figure FDA0003408341920000021
Thereby respectively setting the position region G (i) or the access periodiThe kth prefix pr in (1)kAnd a random number rnEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; complementary location area LCSiAnd access time complement TCSiPrefix element w in (1)sComputing the evidence biti=QueLoc(Bi,ws) And evidence bit hash value
Figure FDA0003408341920000022
Recalculating evidence node hash value HVi=hash(Ei) (ii) a Wherein h isqIndicating the use of the qth key KqHashes the message authentication code function,
Figure FDA0003408341920000023
indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;
Figure FDA0003408341920000024
representing an exclusive-OR operation, k ∈ [1, | Sn|],q∈[1,m];|SnI denotes the location area G (i) or the access periodiLength of (d); QueLoc (B)i,ws) For computing prefix elements wsEmbedded into a non-discriminating bloom Filter BiThe position of (1); s belongs to [1, | CS ∈ |)n|];|CSn| denotes the location area complement LCSiAnd access time complement TCSiLength of (d);
step 1.4 the ith data uploading party converts the category attribute in the root node of the subtree into the category attribute type by using a prefix coding methodiAnd according to the type of the category attributeiCalculation of category complementary YCS using complementary codingiThen, according to the procedure of step 1.3, the type of the category attributeiThe prefix in (2) and the random number rnEmbedded into a non-discriminating bloom Filter BiPerforming the following steps; simultaneous complementary YCS to classesiPrefix element w in (1)yCalculating the whole tree evidence bit'i=QueLoc(Bi,wy) And whole tree evidence bit hash value
Figure FDA0003408341920000025
Then according to the left sub-tree left and the right sub-tree right of the root node; computing the hash value HV of the evidence node of the whole treei′=hash(HV′left,HV′right);HV′leftRepresents the hash value of the evidence node of the whole tree of the left subtree, HV'rightRepresenting right sub-tree whole tree evidence node hash value
Step 1.5, the ith data uploading party calculates the Hash value HV of the evidence root node for the root node of the whole tree TiveTree, the left sub-tree left and the right sub-tree right of the root noderoot=hash(HVleft,HVright);HVleftRepresenting a root node hash value of evidence for a left sub-tree, HVrightRepresenting right subtree evidence root node hash value
Step 1.6 the ith data uploading party uses the whole tree TimeTree and the random number rnCombining into a secure index, and then combining the encrypted data { E }1,…Ei,…EnAnd verification information bitsi,Hvsi,HVsi,HVrootSubmitting to the data cloud storage party; sharing the shared key to any data request party; wherein bitsiRepresents a set of evidence bits, and bitsi={biti,bit′i},HvsiRepresents a set of evidence bit hash values, and Hvsi={Hvi,Hv′i},HVsiRepresents a set of evidence node hash values, and HVsi={HVi,HVi′};
Step two, token generation:
step 2.1 any j-th data requester uses prefix coding method and space coding method to request Type of data itemjAccess TimejAnd position LjRespectively converted into corresponding prefix sets
Figure FDA0003408341920000031
Step 2.2 the jth data requestor is aggregated according to the three prefixes
Figure FDA0003408341920000032
Generating query tokens separately
Figure FDA0003408341920000033
And submitting to a data cloud storage party; wherein, pr'kRepresenting three sets of prefixes
Figure FDA0003408341920000034
One element of, | S'nI denotes three prefix sets
Figure FDA0003408341920000035
Length of any one prefix set;
step 2.3 said jth data requestor will query the token
Figure FDA0003408341920000036
Sending the data to the data cloud storage party;
step three, query processing:
step 3.1, the data cloud storage party respectively receives corresponding security indexes from a plurality of data uploading parties and receives query tokens from the jth data requesting party
Figure FDA0003408341920000037
3.2 the data cloud storage side utilizes the root node of the whole TiveTree from top to bottom
Figure FDA0003408341920000038
Checking the query token
Figure FDA0003408341920000039
If the matching can be carried out, continuing to inquire the child nodes of the safety index until the root node of the subtree is inquired, and otherwise, returning empty character strings and verification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rn
Step 3.3 the data cloud storage side starts from the root node of the subtree to utilize from top to bottom
Figure FDA0003408341920000041
Checking two query tokens
Figure FDA0003408341920000042
If the matching can be carried out, continuing to inquire the child nodes of the safety indexes until the leaf nodes of the subtrees are inquired, and returningCorresponding encrypted data EiVerification information { bitsi,Hvsi,HVsi,HVrootAnd a random number rnGiving the jth data request party further decryption data, otherwise, returning empty character string and verification information { bits }i,Hvsi,HVsi,HVrootAnd a random number rnGiving the jth data requestor;
step four, verifying the result:
step 4.1 the jth data requester receives encrypted data E from the data cloud storageiOr an empty character string, receives a shared key from the ith data uploading party, and decrypts the encrypted data E by using the shared keyiTo verify the encrypted data EiThe correctness of the test;
step 4.2, the jth data requester receives verification information { bits ] from the data cloud storage partyi,Hvsi,HVsi,HVrootAnd a random number rnAnd HVs from the evidence node hash value setiElement calculation verification node hash value HV in the unionver=hash(HVsi,x,HVsi,y) Comparison HVrootAnd HVverWhether or not to be identical to verify the encrypted data EiIf the integrity of the data is the same, executing the step 4.3; otherwise, it represents encrypted data EiIncomplete and end the process; wherein x, y is 1,2, …, | HVsi|,|HVsiThe | represents the set HVsiLength of (d);
step 4.3 the jth data requestor initializes an empty indistinguishable bloom filter BjWill inquire about the token
Figure FDA0003408341920000043
Each element in (a) is embedded in a non-resolvable bloom filter BjIn the method, corresponding verification bit set bits are calculated simultaneouslyverAnd a set of validation bit hash values HvverThen comparing the verification bit set bitsverAnd a set of validation bit hash values HvverRespectively with evidence bit sets bitsiAnd evidenceSet of bit hash values HvsiWhether or not to be identical to verify the encrypted data EiIf they are the same, the integrity of (1) indicates the encrypted data EiThe integrity is realized; otherwise, it represents encrypted data EiIs incomplete.
CN202111522678.2A 2021-12-13 2021-12-13 SkNN query method and system supporting access time limitation and verifiable result Active CN114201773B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111522678.2A CN114201773B (en) 2021-12-13 2021-12-13 SkNN query method and system supporting access time limitation and verifiable result

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111522678.2A CN114201773B (en) 2021-12-13 2021-12-13 SkNN query method and system supporting access time limitation and verifiable result

Publications (2)

Publication Number Publication Date
CN114201773A true CN114201773A (en) 2022-03-18
CN114201773B CN114201773B (en) 2024-02-13

Family

ID=80653255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111522678.2A Active CN114201773B (en) 2021-12-13 2021-12-13 SkNN query method and system supporting access time limitation and verifiable result

Country Status (1)

Country Link
CN (1) CN114201773B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2936106A1 (en) * 2016-07-14 2018-01-14 Mirza Kamaludeen Encrypted data - data integrity verification and auditing system
WO2018019815A1 (en) * 2016-07-25 2018-02-01 Robert Bosch Gmbh Method and system for dynamic searchable symmetric encryption with forward privacy and delegated verifiability
CN110334526A (en) * 2019-05-30 2019-10-15 西安电子科技大学 It is a kind of that the forward secrecy verified is supported to can search for encryption storage system and method
CN110602099A (en) * 2019-09-16 2019-12-20 广西师范大学 Privacy protection method based on verifiable symmetric searchable encryption
CN111935141A (en) * 2020-08-10 2020-11-13 合肥工业大学 Single-time inadvertent anti-link query system and method for secret data
CN112804050A (en) * 2021-04-14 2021-05-14 湖南大学 Multi-source data query system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2936106A1 (en) * 2016-07-14 2018-01-14 Mirza Kamaludeen Encrypted data - data integrity verification and auditing system
WO2018019815A1 (en) * 2016-07-25 2018-02-01 Robert Bosch Gmbh Method and system for dynamic searchable symmetric encryption with forward privacy and delegated verifiability
EP3488554A1 (en) * 2016-07-25 2019-05-29 Robert Bosch GmbH Method and system for dynamic searchable symmetric encryption with forward privacy and delegated verifiability
CN110334526A (en) * 2019-05-30 2019-10-15 西安电子科技大学 It is a kind of that the forward secrecy verified is supported to can search for encryption storage system and method
CN110602099A (en) * 2019-09-16 2019-12-20 广西师范大学 Privacy protection method based on verifiable symmetric searchable encryption
CN111935141A (en) * 2020-08-10 2020-11-13 合肥工业大学 Single-time inadvertent anti-link query system and method for secret data
CN112804050A (en) * 2021-04-14 2021-05-14 湖南大学 Multi-source data query system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨书略 等: "排序可验证的语义模糊可搜索加密方案", 工程科学与技术, no. 04, 20 July 2017 (2017-07-20) *
王谦;熊书明;: "一种面向移动云存储的可验证访问控制方案", 计算机工程, no. 05, 15 May 2016 (2016-05-15) *

Also Published As

Publication number Publication date
CN114201773B (en) 2024-02-13

Similar Documents

Publication Publication Date Title
CN107256248B (en) Wildcard-based searchable encryption method in cloud storage security
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
CN107491497B (en) Multi-user multi-keyword sequencing searchable encryption system supporting query in any language
CN113626484B (en) Encryption method, system and computer equipment capable of flexibly replacing ciphertext and searching
Yiu et al. Enabling search services on outsourced private spatial data
US8474025B2 (en) Methods and apparatus for credential validation
CN101593196B (en) Method, device and system for rapidly searching ciphertext
CN106803784A (en) The multi-user based on lattice is fuzzy in secure multimedia cloud storage can search for encryption method
CN104158827B (en) Ciphertext data sharing method, device, inquiry server and upload data client
CN106330865A (en) Property base keyword searching method supporting efficient revocation in cloud environment
CN107734054A (en) Encryption data searching system in safe cloud storage
CN108171066A (en) The cross-domain searching method of keyword and system in a kind of medical treatment cloud under secret protection
CN112365945A (en) Block chain-based electronic medical record fine-grained access control and ciphertext searchable method
CN111935141B (en) Single-time inadvertent anti-link query system and method for secret data
CN108021677A (en) The control method of cloud computing distributed search engine
CN115314295B (en) Block chain-based searchable encryption technical method
CN107885705A (en) A kind of efficiently expansible safe document similarity computational methods and device
CN114567465B (en) Block chain-based classified medical data searchable encryption method
CN116469501A (en) Electronic medical record sharing method, system, equipment and storage medium based on blockchain
Nie et al. Time‐enabled and verifiable secure search for blockchain‐empowered electronic health record sharing in IoT
CN114201773B (en) SkNN query method and system supporting access time limitation and verifiable result
CN108055256A (en) The platform efficient deployment method of cloud computing SaaS
CN115412259A (en) Searchable proxy signcryption method and product of cloud health system based on block chain
CN114595472B (en) Method and system for repeated, careless and anti-link query of secret state data
CN107995298A (en) The data reusing method of parallel cloud computing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant