With the rapid development of the Internet,cloud storage and cloud computing technologies are becoming more and more mature.People are more and more inclined to store data in the cloud,but storing confidential data in the cloud may bring a series of privacy problems.The proposal of searchable encryption allows users to encrypt and store data in the cloud,and then search for the required files through keywords.However,this solution may leak during the update process,which will seriously threaten the privacy and security of files.In addition,there is a problem with efficient dynamic searchable encryption schemes that meet forward and backward security.Most schemes maintain an operation counter for each keyword,which will put higher requirements on local storage.During the verification stage of searchable encrypted results,both users and servers may not be able to perform honest operations due to interests and other reasons,resulting in difficulties in verifying searchable encrypted results.Therefore,the research on trustworthy low client storage searchable encryption systems has positive practical significance.This thesis designs a searchable encryption system based on blockchain from the perspective of reducing client storage.The main research work of this thesis is as follows:1)A low client storage scheme was designed,which achieved complete outsourcing of encrypted data and indexes,and the complexity of client storage space was only O(1).This solution only requires lower client storage overhead without affecting search efficiency.2)The solution achieves forward and backward security,which will solve the leakage problem during the system update process and ensure data security during the data update process.3)We have adopted blockchain technology and added a result verification step before the searchable encrypted result return operation.We use blockchain as a trusted third party to verify whether the returned results are correct and ensure the reliability of the results.4)Introducing smart contract technology to ensure that transactions between users in the entire system can be reliably and effectively executed on the chain. |