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 PDFInfo
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000000295 complement effect Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access 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
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 withThereby 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 valueRecalculating evidence node hash value HVi=hash(Ei) (ii) a Wherein h isqIndicating the use of the qth key KqHashes the message authentication code function,indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;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 valueThen 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(HVle′ft,HVr′ight);HVle′ftRepresenting the hash value of the evidence node of the entire left sub-tree, HVr′ightRepresenting 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
Step 2.2 the jth data requestor is aggregated according to the three prefixesGenerating query tokens separatelyAnd submitting to a data cloud storage party; wherein, prk' means three prefix setsOne element of, | Sn' | denotes the set of three prefixesLength of any one prefix set;
step 2.3 said jth data requestor will query the tokenSending 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
3.2 the data cloud storage side utilizes the root node of the whole TiveTree from top to bottomChecking the query tokenIf 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 bottomChecking two query tokensIf 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 tokenEach 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 withThereby 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 valueRecalculating 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;indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;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 valueThen 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 setsFor 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 prefixesGenerating query tokens separatelyAnd submitting to a data cloud storage party; wherein, prk' means three prefix setsOne element of, | Sn' | denotes the set of three prefixesLength of any one prefix set;
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
Step 3.2, the data cloud storage party utilizes the root node of the whole TiveTree from top to bottomChecking query tokensIf 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 bottomChecking two query tokensIf 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 tokenEach 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 withThereby 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 valueRecalculating evidence node hash value HVi=hash(Ei) (ii) a Wherein h isqIndicating the use of the qth key KqHashes the message authentication code function,indicating the use of the m +1 th key Km+1The pseudo-random key hash message authentication code function;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 valueThen 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
Step 2.2 the jth data requestor is aggregated according to the three prefixesGenerating query tokens separatelyAnd submitting to a data cloud storage party; wherein, pr'kRepresenting three sets of prefixesOne element of, | S'nI denotes three prefix setsLength of any one prefix set;
step 2.3 said jth data requestor will query the tokenSending 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
3.2 the data cloud storage side utilizes the root node of the whole TiveTree from top to bottomChecking the query tokenIf 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 bottomChecking two query tokensIf 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 tokenEach 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.
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)
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 |
-
2021
- 2021-12-13 CN CN202111522678.2A patent/CN114201773B/en active Active
Patent Citations (7)
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)
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 |