Verifiable Searchable Symmetric Encryption via Hash Tree Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing searchable encryption systems fail to ensure the accuracy and completeness of search results returned by an untrusted server, as a compromised server can return false or partially correct results, making it difficult for clients to verify the validity of the data.
Innovation Solution
A method and system that utilize cryptographically secure hash functions and message authentication codes to generate and verify hash trees, allowing clients to validate the correctness and completeness of search results by comparing the server's responses with pre-generated hash values, ensuring that the data has not been altered or modified during transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If searchable encryption systems are used to maintain data confidentiality, then data security is improved, but the ability to verify search result accuracy and completeness deteriorates
Solution Approach 1:
The system pre-generates hash values for all encrypted data files and stores them in a hash index before search operations. This preliminary action enables the client to later verify search results by comparing returned hash values against the pre-stored ones, ensuring both confidentiality and verification capability without compromising either.
Solution Approach 2:
The patent introduces hash values as an intermediary element between the encrypted data and the verification process. These hash values serve as a trusted mediator that allows the client to verify search result authenticity without decrypting the encrypted data, thus maintaining confidentiality while enabling verification.
2Adaptability or versatility
If an untrusted server performs searches on encrypted data, then search functionality is improved, but the risk of result manipulation increases
Solution Approach 1:
The system implements a feedback mechanism where the client sends search queries to the server, receives encrypted results with associated hash values, and then verifies these hash values against pre-stored hashes. This feedback loop ensures that even though the untrusted server performs the search, the client can detect any manipulation by comparing the returned hash values with the expected ones.
Solution Approach 2:
The patent applies preliminary anti-action by pre-computing and storing hash values that will be used to detect future manipulations. Before the server can potentially manipulate results, the system has already established a reference framework of correct hash values, making any server-side manipulation detectable through this pre-established verification mechanism.
3Ease of operation
If encrypted data is stored on a server, then data accessibility is improved, but the ability to ensure data integrity deteriorates
Solution Approach 1:
The system creates a copy of the data integrity verification mechanism by storing hash values separately from the encrypted data. These hash copies allow the client to verify data integrity remotely without needing to access or decrypt the actual encrypted data on the server, thus maintaining both accessibility and integrity verification.
Solution Approach 2:
The patent segments the data storage system into two independent components: the encrypted data stored on the server and the hash index stored locally on the client. This segmentation allows the data to remain accessible on the server while the integrity verification capability is maintained separately through the distributed hash index, preventing the trade-off between accessibility and integrity.
Data Source
Figure 1
Figure 2
Figure 2
AI summary
A method for verification of search results in an encrypted search process includes transmitting a search query including the encrypted keyword from a client to a server, and receiving a response to the search query and a first plurality of hash values from at least one hash tree from the server. The method further includes generating, a first message authentication code (MAC) based on the response, generating a first regenerated root node hash value using the first MAC, the first plurality of hash values, and a predetermined hash function, and generating an output message with the client indicating that the response is invalid in response to the first regenerated root node hash value not matching a predetermined first root node hash value stored in the memory of the client.