云存储环境下多用户可搜索加密方案
云存储中多层次索引可搜索加密的研究与实现

云存储中多层次索引可搜索加密的研究与实现AbstractWith the development of cloud computing, cloud storage is becoming more and more widely used and important. However, due to the large amount of data stored in the cloud, it is necessary to ensure the security and privacy of users' data in the cloud. In this paper, we propose a multi-level index searchable encryption method for cloud storage, which can provide efficient and secure data access for users while protecting the privacy of users' data. This method has been implemented and tested in a cloud storage system, and the experimental results show that our method can achieve good performance and security.Keywords: cloud storage; searchable encryption; multi-level index; security; privacyIntroductionWith the development of cloud computing, cloud storage has become an important part of cloud services. Cloud storage provides users with a convenient and flexible way to store and access data. However, the security and privacy issues of cloud storage have become increasingly important. In the traditional encryption scheme, data is encrypted before being stored in the cloud, which makes it difficult for users to search for data directly in the cloud. To solve this problem, searchable encryption technology has emerged, which canprovide efficient and secure data access for users while protecting the privacy of users' data.Searchable encryption allows users to search for data in encrypted form, and only returns the search results to the users who have the key to decrypt the data. The basic idea of searchable encryption is to construct a searchable index for the encrypted data, which can be used to search for matching keywords while ensuring the confidentiality of the encrypted data. In recent years, various searchable encryption schemes have been proposed, such as symmetric searchable encryption, public-key searchable encryption and multi-keyword searchable encryption.Multi-level index search encryption is a searchable encryption scheme based on multi-level index structure. This scheme divides the index into multiple levels, each level corresponds to a certain granularity of the data, and the search requests are processed layer by layer from coarse to fine. The multi-level index structure can greatly reduce the search complexity and improve the search efficiency.In this paper, we propose a multi-level index searchable encryption method for cloud storage. Our method uses a multi-level index structure to construct a searchable index for the encrypted data, and supports both exact and fuzzy search. The search requests are processed layer by layer from coarse to fine, and the search results are returned to the user only after the search operation is completed on all levels. Our method can effectively balance the search efficiency and the security of user data, and provide efficient and secure data access for users while protecting the privacy of user data.The rest of the paper is organized as follows. Section 2 briefly introduces related work. Section 3 describes theproposed multi-level index searchable encryption method. Section 4 presents the experimental results and analysis. Finally, Section 5 concludes the paper.Related workSearchable encryption technology has been widely studied in recent years. In this section, we briefly introduce some related work.1. Symmetric searchable encryptionSymmetric searchable encryption (SSE) is a searchable encryption scheme that uses the same key for encryption and decryption. The basic idea of SSE is to construct a searchable index for the encrypted data, which can be used to search for matching keywords while ensuring theconfidentiality of the encrypted data. SSE has the advantages of high efficiency and simplicity, but it is difficult to achieve secure multi-user search.2. Public-key searchable encryptionPublic-key searchable encryption (PKSE) is a searchable encryption scheme that uses a public-key infrastructure for encryption and decryption. PKSE is suitable for secure multi-user search, but it has high computational complexity and communication overhead.3. Multi-keyword searchable encryptionMulti-keyword searchable encryption (MKSE) is a searchable encryption scheme that allows users to search for multiple keywords at the same time. MKSE can improve the search efficiency, but it also has high computational complexity and communication overhead.Multi-level index searchable encryption is a searchable encryption scheme based on multi-level index structure. This scheme divides the index into multiple levels, each levelcorresponds to a certain granularity of the data, and the search requests are processed layer by layer from coarse to fine. The multi-level index structure can greatly reduce the search complexity and improve the search efficiency.Proposed methodIn this section, we describe the proposed multi-level index searchable encryption method for cloud storage. The method consists of three phases: index construction, query processing and result retrieval.1. Index constructionThe index construction phase is used to construct amulti-level index for the encrypted data. The index is composed of multiple levels, each level corresponds to a certain granularity of the data. At each level, a Bloomfilter is used to represent the set of keywords contained in the data, and the encrypted data is stored in the next level index.Specifically, the index construction phase includes the following steps:Step 1. Keyword extractionExtract the keywords from the plaintext data and store them in a set.Step 2. Bloom filter constructionConstruct a Bloom filter for each level index, which is used to represent the set of keywords contained in the dataat this level.Step 3. EncryptionEncrypt the data using a symmetric encryption algorithm, such as AES, and store the encrypted data in the next level index.Step 4. Index updateUpdate the Bloom filter of each level index with the keywords extracted from the encrypted data at this level, and store the encrypted data in the next level index.2. Query processingThe query processing phase is used to process the search requests from users. The search requests may include exact search and fuzzy search. Exact search requires an exact match with the keyword, while fuzzy search requires a partial match with the keyword.Specifically, the search request is processed in the following steps:Step 1. Keyword matchingMatch the search request with the Bloom filter of the top-level index. If the search request matches the filter, continue to the next level.Step 2. DecryptionDecrypt the encrypted data at this level using the decryption key, and continue to the next level.Step 3. Bloom filter matchingMatch the search request with the Bloom filter at this level. If the search request matches the filter, continue to the next level.Step 4. Result retrievalRetrieve the search results from the decrypted data at the bottom level, and return the results to the user.3. Result retrievalThe result retrieval phase is used to retrieve the search results from the decrypted data at the bottom level. The search results can be presented to the user in plaintext or encrypted form, depending on the security requirements.Experimental resultsWe implemented the proposed method in a cloud storage system and conducted experiments to evaluate the performance and security of our method. The experimental environment is a virtual machine with 2.4 GHz Intel CPU and 4GB memory, running Ubuntu 16.04 LTS.We evaluated the performance of our method in terms of search time and storage space. The search time is the time required to process a search request, and the storage space is the amount of memory required to store the index and the encrypted data. We compared our method with the traditional searchable encryption method based on inverted index, which is widely used in cloud storage.The results show that our method can achieve better performance and security than the traditional method. Specifically, our method can achieve a search time of less than 10ms for a search request containing 10 keywords, and the storage space required is no more than 1.5 times the original data size. Moreover, our method can effectively protect the privacy of user data while ensuring efficient and secure data access.ConclusionIn this paper, we proposed a multi-level index searchable encryption method for cloud storage. Our method uses a multi-level index structure to construct a searchable index for the encrypted data, and supports both exact and fuzzy search. The search requests are processed layer by layer from coarse to fine, and the search results are returned to the user only after the search operation is completed on all levels. Our method can effectively balance the search efficiency and the security of user data, and provide efficient and secure data access for users whileprotecting the privacy of user data.The experimental results show that our method can achieve good performance and security. In the future work, we will further improve the efficiency and security of our method, and explore the application of our method in other fields, such as healthcare, finance and social media.。
云存储中可搜索加密方案的研究与设计的开题报告

云存储中可搜索加密方案的研究与设计的开题报告一、选题背景随着云计算技术的不断发展,越来越多的数据被存储到云端,并在云端上进行处理。
然而,传统的云存储存在许多安全问题,例如数据泄露、隐私保护等问题。
因此,加密技术被广泛应用于云存储中以保护数据安全。
但是,在使用加密技术的同时,搜索和访问加密数据变得非常困难。
因此,如何在云存储中实现可搜索加密技术成为了一个热门的研究方向。
二、选题意义云存储中的可搜索加密技术可以保护数据隐私,同时又允许用户在加密数据中进行搜索和访问。
这种技术可以防止数据被窃听或篡改,同时又便于用户在云端上管理和使用自己的数据。
因此,研究云存储中的可搜索加密技术对于保护用户数据安全,提高云存储服务的质量和可信度具有重要意义。
三、研究内容本文将研究云存储中可搜索加密方案的设计与实现,主要包括以下几个方面:1. 研究可搜索加密技术的基本原理和方法。
2. 分析现有的可搜索加密方案的优缺点,并根据实际需求设计适合云存储的可搜索加密方案。
3. 实现和评估设计好的可搜索加密方案。
对所设计的可搜索加密方案进行测试和验证,并分析其安全性、可用性和性能。
四、研究方法本文的研究方法主要包括文献调研、实验设计和实验验证。
首先,通过对可搜索加密技术的相关文献进行调研,了解可搜索加密技术的基本原理和方法。
然后,根据实际需求设计适合云存储的可搜索加密方案。
最后,实现和评估所设计的可搜索加密方案,并对其进行测试和验证,分析其安全性、可用性和性能。
五、预期成果及创新点本文研究的预期成果主要包括:1. 设计可用于云存储的新型可搜索加密方案。
2. 实现设计好的可搜索加密方案,并对其进行测试和验证。
3. 分析所设计的可搜索加密方案的安全性、可用性和性能,并与现有的可搜索加密方案进行比较。
本文的创新点主要体现在以下方面:1. 设计新型的可搜索加密方案,兼顾数据安全和可用性。
2. 实现和验证所设计的可搜索加密方案,并对其进行全面的评估和分析,为云存储中可搜索加密技术的研究提供参考。
云环境中的可搜索加密方案研究

云环境中的可查找加密方案探究随着云计算的快速进步,越来越多的用户将数据存储和处理迁移到云平台上。
然而,云环境中数据的安全性问题成为了一个令人担忧的问题。
虽然云服务提供商通常会实行各种安全措施来保卫用户的数据,但用户本身也应该对自己的数据进行加密,以确保其隐私和秘密性。
但是,使用传统的加密方法对云环境中的数据进行加密会带来查找困难的问题,因为传统加密使得数据成为不行查找的。
为了解决这个问题,可查找加密方案应运而生。
可查找加密方案是一种在数据加密的同时,依旧能够对数据进行查找和查询的加密方法。
它允许用户在云环境中存储数据的同时,能够对数据进行关键字查找,并获得符合查找条件的结果,同时保证数据的秘密性和隐私性。
在云环境中,用户可以将经过加密的数据上传到云服务器,并保证云服务器无法查看、修改或泄露用户的数据。
当用户需要查找和查询数据时,可查找加密方案允许用户通过加密查找副原本查找数据,并在不泄露数据内容的前提下得到结果。
常见的可查找加密方案有基于对称加密算法和基于公钥密码体制的可查找加密方案。
基于对称加密算法的可查找加密方案使用相同的密钥来加密和解密数据。
用户在上传数据时,起首对数据进行加密处理,然后生成对应的索引。
当用户需要查找数据时,用户将查找关键字加密,并将其发送给云服务器,云服务器使用相同的密钥来解密和匹配索引,返回匹配的结果给用户。
这种方法的优点是简易高效,但密钥的管理和传递可能会带来一些安全隐患。
基于公钥密码体制的可查找加密方案使用了公钥和私钥两个密钥来加密和解密数据。
用户起首使用公钥加密数据和生成索引,然后将加密的数据和索引上传到云服务器。
当用户需要查找数据时,用户将查找关键字加密,并将其发送给云服务器。
云服务器使用私钥解密索引,并将匹配结果返回给用户。
这种方法的优点是密钥的管理相对简易,但由于公钥密码体制的加密和解密速度较慢,导致查找效率较低。
除了以上常见的可查找加密方案,还有一些基于陷门密码学和加密算法改进的可查找加密方案。
可搜索加密技术在保护隐私的前提下实现数据搜索

可搜索加密技术在保护隐私的前提下实现数据搜索在保护隐私的前提下实现数据搜索的可搜索加密技术随着信息技术的飞速发展,数据安全和隐私保护的问题越来越受到人们的关注。
在现实生活中,我们经常会遇到这样的情况:需要对大量的数据进行搜索和查询,但又担心数据的泄露和被滥用。
为了解决这一问题,可搜索加密技术应运而生。
可搜索加密技术是一种在保护数据隐私的前提下,实现对加密数据进行搜索和查询的技术。
它将传统的明文数据加密后存储在服务器上,只有授权用户能够解密和搜索数据,从而保证了数据的安全性。
下面将详细介绍可搜索加密技术的原理和应用。
一、可搜索加密技术的原理可搜索加密技术的实现主要基于对称加密和不可逆加密的原理。
1. 对称加密:可搜索加密技术利用对称密钥算法对数据进行加密和解密。
在数据存储映射阶段,用户对明文数据进行加密,并将加密后的数据存储在服务器上。
在数据搜索阶段,用户需要输入搜索关键字,通过搜索关键字和加密算法生成一个查询密文,将查询密文发送给服务器。
服务器接收到查询密文后,通过解密算法解密查询密文,并将明文关键字与数据库中的密文数据进行比较,最终返回匹配结果给用户。
2. 不可逆加密:为了保护数据的隐私,在数据存储映射阶段,可搜索加密技术通常采用哈希函数对数据进行不可逆加密。
哈希函数是一种将任意长度的输入转化为固定长度输出的函数,具有单向性和抗碰撞性。
通过将明文数据经过哈希函数计算后得到一个哈希值,并将哈希值与明文数据关联存储在服务器上。
在数据搜索阶段,用户输入搜索关键字后,通过哈希函数计算关键字的哈希值,然后将哈希值与服务器上的数据进行比较,从而实现数据搜索。
二、可搜索加密技术的应用可搜索加密技术具有广泛的应用场景,包括云计算、大数据分析、医疗健康等领域。
1. 云计算:云计算作为一种资源共享和计算模式,对数据的安全和隐私保护提出了更高要求。
可搜索加密技术能够在云计算环境下,实现对加密数据的搜索和查询,为用户提供更加安全可靠的服务。
云存储环境中的可搜索加密

关键词排序
– 使用方向索引(目前只支持单关键词)
公钥可搜索加密
公钥加密
加密密钥和解密密钥不同
加解密速度慢 不用建立安全信道
应用场景
邮件系统
– 情况1:B用A的公钥加密了邮件发给 A邮箱检索’urgent’等字眼的信息以做 相应处理 – 情况2:A给服务器一些关键词限门服 务器进行检索匹配决定邮件推送策略
数据共享
应用扩展
支持多种查询——子集、范围查询,并且可以按照身份加密(只 支持单关键词)
多用户固定关键词并集检索,对用户进行访问控制(扩展性不好, 用户量大时效率低,对多关键词不能自由搜索) 谓词加密技术支持多用户并实现授权搜索(扩展性不好,用户搜 索请求由第三方产生,效率低,搜索类型少)
验证
– 密文Ci与E(Wi)异或得到Ti – 验证Ti的结构是否为Si+F(Si)
方法评价
优点
– 支持对文件中任意单词的检索(每个单词分别加密) – 支持受控检索
缺点
– 效率低 – 统计攻击 – 未考虑限门安全性
Bloom filter
针对效率低下问题,提出使用Bloom filter 作为文件索引
云存储环境中的可搜索加密机 制
目录
问题背景 可搜索加密 对称可搜索加密 公钥可搜索加密 研究方向展望
问题背景
云存储环境
云存储服务
– 云存储环境方便海量数据的存取(灵活、节约开销) – 个人或企业存储在云端的数据日益增加
隐私保护
– 云存储将数据的拥有权和控制权分离 – 用户加密数据
现实场景
云存储中的数据安全加密方案研究

云存储中的数据安全加密方案研究数据安全一直是云存储领域中的一个重要问题。
随着越来越多的个人和企业将数据存储在云服务器上,数据的安全性和隐私保护变得尤为重要。
为了保护数据的机密性和完整性,研究人员们积极寻找各种数据安全加密方案。
本文将探讨当前云存储中的数据安全加密方案研究,并介绍一些常见的加密技术和方法。
一、云存储中的数据安全问题在传统的本地存储环境中,数据通常保存在用户控制的设备中,用户可以直接控制和管理数据的安全性。
然而,在云存储中,数据存储在云服务器上,用户失去了对数据的直接控制和管理能力。
这样,数据的安全性就面临着诸多挑战。
第一个挑战是数据的保密性。
在云存储中,数据传输和存储过程中容易受到未授权访问的风险。
攻击者可以通过窃听传输过程中的数据包或者获取存储设备的访问权限来获取数据。
如果数据没有进行适当的加密保护,攻击者可以轻松获得敏感信息。
第二个挑战是数据的完整性。
云服务器提供商通常会使用冗余存储技术来保证数据的持久性和可靠性,但是数据完整性的保护并不足够。
攻击者可以通过更改或破坏数据来破坏数据的完整性,从而导致数据不可信。
第三个挑战是数据的可用性。
云服务器并不是绝对可靠的,可能会遭受硬件故障、自然灾害、网络攻击等。
这些事件可能导致数据丢失或不可用,给用户带来损失。
二、云存储中的数据安全加密解决方案为了解决云存储中的数据安全问题,研究人员们提出了各种数据加密方案。
下面将介绍一些常见的加密技术和方法。
1. 对称加密算法对称加密算法是一种将数据加密和解密使用相同密钥的加密算法。
在云存储中,用户可以使用对称密钥加密数据,然后将加密的数据存储在云服务器上。
只有拥有密钥的用户才能解密数据。
常见的对称加密算法包括AES(高级加密标准)、DES(数据加密标准)等。
2. 非对称加密算法非对称加密算法使用公钥和私钥来进行数据的加密和解密。
用户可以将公钥存储在云服务器上,使用私钥对数据进行加密,只有持有私钥的用户才能解密数据。
云环境下的多用户模糊检索加密方案

云环境下的多用户模糊检索加密方案吴岱霓;王晓明【摘要】在现有的公钥检索加密方案中,大部分方案只适用于单用户的情景,并且无法满足模糊检索的用户需求.为此,提出一种云环境下满足多用户分享数据需求的加密方案.在可排序多关键字检索加密(MRSE)方案的基础上,利用拉格朗日函数和欧几里德距离实现密钥分享和模糊匹配.分析结果表明,与MRSE方案相比,该方案并没有因为拓展为多用户查询而降低每个用户的性能,同时还支持隐私查询、指定检索、多用户查询等功能.【期刊名称】《计算机工程》【年(卷),期】2016(042)005【总页数】6页(P18-22,29)【关键词】加密数据;模糊检索;多用户;拉格朗日函数;欧几里得距离【作者】吴岱霓;王晓明【作者单位】暨南大学信息科学技术学院,广州510632;暨南大学信息科学技术学院,广州510632【正文语种】中文【中图分类】TP309云存储是最流行的公共服务之一。
然而,数据所有者没有办法防止云服务器本身和未经授权的个人访问,甚至对外存数据的篡改。
为了确保数据的保密性,敏感数据需要在发送至云服务器之前进行加密,以达到保证数据隐私的目的。
然而,数据加密将极大地限制云服务器处理用户访问请求的能力。
一个典型的例子是,加密文件更改的原始属性,这使得关键字搜索和排序变艰难。
为了解决此问题,文献[1]提出了单用户的可搜索加密的概念和方案。
该方案是基于密文扫描的思想,对整个密文文件进行单词的扫描和对比,以确认关键字是否存在。
文献[2]基于身份加密(Identity-Based Encryption,IBE),提出单用户的公钥加密关键字检索(Public Encryption with Keyword Search,PEKS)的概念。
在PEKS中,用户能搜索到与某一关键字匹配的数据,但是不泄露原始数据的任何信息。
为了使公钥可搜索加密更贴近实际应用需求,研究者进一步对公钥可搜索加密技术进行了完善和拓展。
云存储环境下多用户可搜索加密方案

云存储环境下多用户可搜索加密方案王映康;罗文俊【期刊名称】《电信科学》【年(卷),期】2012(28)11【摘要】可搜索加密技术用来检索存储在云端的加密数据,既能够保证数据的安全性,同时又能够使得加密数据不失可用性.多用户可搜索加密技术使得用户在对云服务器保密的情况下与其他用户进行数据分享.在现有的基于Elgamal代理加密的多用户可搜索加密方案的基础上,本文对原有方案中的数据加密方式做出了更改,使得经过用户加密的数据只会在必要的时候才会被重新加密,而且加密的计算量比原方案小.本文改变了令牌的产生方式,使得客户端计算令牌的计算量更小,在云服务器端进行搜索的开销更少.%Searchable encryption can be used to search the encrypted data which is stored in the cloud.By using searchable encryption, we can guarantee the security of the data without losing operability.Multi-user searchable encryption enables users to share their data to others without revealing their data to the cloud server.In our scheme, we make the encrypted data re-encrypted when the data is required, but not every time the user sends data to the cloud server.That can make our scheme more efficient.We use a different way to generate the trapdoors, and the trapdoors in our scheme is easy to compute and shorter than the existed scheme.【总页数】5页(P103-107)【作者】王映康;罗文俊【作者单位】重庆邮电大学计算机科学与技术学院重庆 400065【正文语种】中文【相关文献】1.基于云存储的多用户可搜索加密方案 [J], 王保民;何智灵;罗文俊2.云存储环境下多服务器的密钥聚合可搜索加密方案 [J], 张玉磊; 刘祥震; 郎晓丽; 张永洁; 陈文娟; 王彩芬3.多用户环境下无证书认证可搜索加密方案 [J], 张玉磊; 文龙; 王浩浩; 张永洁; 王彩芬4.云存储下的多用户密钥聚合的关键字可搜索加密方案 [J], 王戌琦;程相国;程润辉5.基于区块链的多用户环境中公钥可搜索加密方案 [J], 郑东;朱天泽;郭瑞因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可搜索加密技术用来检索存储在云端的加密数据,既能够保证数据的安全性,同时又能够使得加密数据不失可用性。
多用户可搜索加密技术使得用户在对云服务器保密的情况下与其他用户进行数据分享。
在现有的基于Elgamal 代理加密的多用户可搜索加密方案的基础上,本文对原有方案中的数据加密方式做出了更改,使得经过用户加密的数据只会在必要的时候才会被重新加密,而且加密的计算量比原方案小。
本文改变了令牌的产生方式,使得客户端计算令牌的计算量更小,在云服务器端进行搜索的开销更少。
关键词云存储;可搜索加密;多用户文献标识码A doi:10.3969/j.issn.1000-0801.2012.11.018云存储环境下多用户可搜索加密方案王映康1,罗文俊2(1.重庆市电力公司信息通信分公司重庆401121;2.重庆邮电大学计算机科学与技术学院重庆400065)摘要1前言云计算[1]在为用户带来便利的同时,也产生了很多有待解决的问题。
其中,云计算的安全问题就首当其冲。
并且,云计算中的安全问题能否顺利解决将直接地决定云计算的普及程度,因为无论对于个人或是企业,对于数据的安全性将会越来越重视[2]。
在将数据存储到云服务器之前对数据进行加密是一个保护用户数据的方法,可以防止服务器对用户数据的非授权访问,或者当服务器上的安全措施出现问题时也能有效地保护用户的隐私。
然而,当用户想要访问自己的数据时,加密数据无法像以明文形式存储在云服务器上那样直接由云服务器将用户需要的数据返回给用户,因为加密使得用户的数据不再保持之前的结构。
用户可以选择从云服务器端下载所有的数据,然后解密数据以供后续操作;用户也可以直接将自己的加密密钥传送给服务器以让服务器对数据进行解密之后返回用户需要的数据。
显然,第一种方法无论是对于用户还是服务器来说开销都过于巨大,第二种方法使得用户对数据加密失去了意义。
幸而,可搜索加密技术[3]的出现能够有效地解决这些问题。
可搜索加密技术允许用户在外包数据之前对数据进行预处理,使得用户可以在不暴露数据内容的情况下对存储在第三方服务器上的加密数据进行[1]检索。
利用可搜索加密技术加密的数据是以加密数据的形式保存在云服务器端,所以能够实现对云存储服务器保密,使得云服务器无法获取数据的内容,即使云服务器端出现安全事故,也能够保护用户的数据。
通过巧妙的设计,用户可以让云服务器对加密数据进行搜索,服务器所能够获得的信息仅仅是哪些数据曾经被用户检索,而不会获得与数据内容相关的任何信息。
计算机网络的一个重要功能是数据分享,由于云计算时代的到来,对于存储在云端的加密数据的分享也引起了人们的关注,Chang 等人就已经将如何分享加密数据作为一个公开问题在参考文献[4]中提出。
随后人们对多用户可搜索加密进行了一些研究,而这些研究大部分都是建立在单用户可搜索加密的基础上。
在单用户可搜索加密方案研究与开发103中,将关键字与数据内容分开处理,常见的处理方法是用可搜索加密技术对关键字进行加密以产生一个供后续操作的加密索引,而对于元数据则采用对称加密算法加密。
在单用户环境下,这样的加密方式是可以接受的,因为加密密钥从始至终只有一个用户知晓。
而这样的加密方式应用到多用户环境下就存在一些问题。
在多用户环境下,某个用户的搜索权限被取消后,这个用户就不能对加密数据进行搜索,但由于已经将元数据的解密密钥分发给该用户,所以该用户在搜索权限被回收后依旧能够对数据进行解密,一旦恶意用户将该解密密钥泄露,会对整个系统造成严重的破坏。
Dong等人提出了基于代理加密的多用户可搜索加密方案[5,6],有效地解决了这一问题。
本文在参考文献[6]的基础上进行了改进:在Dong等人提出的方案中,当服务器接收到来自用户的数据之后,立刻对数据进行重加密。
然而,在现实中存储数据的人往往是对数据的操作最频繁的人。
如果用户对自己上传的数据操作频繁,那么服务器往往需要频繁地进行加密与解密,而这些不必要的操作在不影响系统安全性的基础上完全是可以避免的。
并且,利用了参考文献[5]中产生令牌的方式来产生令牌,使得令牌的长度更短,计算量更小,而且在搜索过程中的开销也更小。
2相关研究2.1可搜索加密为了检索存储在第三方服务器上的加密数据,Song等人在2000年首先提出了可搜索加密的概念,并给出了一个实际的方案[3]。
但该文中的方案是一种基于密文的扫描方案,对密文中的每个关键字进行比对以确定关键字是否存在。
但由于这种全文扫描的方法效率很低,而且也会暴露关键字的统计信息,所以其在效率与安全性方面都存在不足。
Goh提出了安全索引[7]的概念,通过对数据的关键字建立索引,查询索引以确定关键字是否存在,文中也给出了基于布隆过滤器的可搜索加密方案与可搜索加密的安全性定义。
后面也出现了一系列可搜索加密的研究成果[4,8],对之前的可搜索加密方案进行了扩展与改进。
2004年,Boneh等人提出了公钥可搜索加密[9]。
与之前的私钥可搜索加密方案相比,公钥可搜索加密允许由一些持有公钥的实体对数据进行加密,但仅允许持有私钥的用户对数据进行检索。
Boneh等人提出利用基于身份的加密[9]来构建公钥可搜索加密方案,并对其安全性进行了证明。
Boneh等人提出的方案虽然实现了公钥可搜索加密,但在效率与安全性方面还存在不足。
之后也有很多学者对公钥可搜索加密进行了一系列研究[10,11]。
为了与实践更好地结合,多关键字[12~17]、结构加密[18]等与实际相结合的可搜索加密方案也成为了人们研究的热点。
2.2多用户可搜索加密多用户可搜索加密在单用户可搜索加密的基础上有了新的突破,它不仅允许一个用户将自己的数据存储到云服务器上,还使得一个用户可以与其他用户分享自己存储在云服务器端的加密数据,而不会暴露数据的内容。
多用户可搜索加密的概念首先由Chang等人[4]首先提出多用户可搜索加密的实现方案[6],他们在参考文献[8]中单用户可搜索加密方案的基础上利用多播加密技术实现了第一个多用户可搜索加密方案。
由于参考文献[8]中的方案只是将单用户可搜索加密与多播加密技术结合,所以很难摆脱单用户可搜索加密的一些缺点,该方案中所有用户都使用相同的查询密钥进行查询,这在实际应用环境中会给用户以及数据拥有者带来很多麻烦。
Feng等人利用BLS短签名[19]构造了一个多用户可搜索加密系统[20],文中指出了所有用户使用相同查询密钥的缺点。
Dong等人用RSA公钥加密算法以及代理加密技术实现了一个多用户可搜索加密方案[5],后来Dong等人利用Elgmal公钥加密算法与代理加密构造了另一个多用户可搜索加密算法[6]。
在参考文献[8,20]的多用户可搜索加密方案中,用户将由用户密钥产生的令牌发送给服务器以对加密索引进行检索,然而对于数据本身则用对称加密算法加密。
服务器通过对加密索引的检索,将用户所需的数据返回给用户。
在用户向数据拥有者申请检索加密数据时,数据拥有者会分发给用户一个用户查询密钥以及一个数据解密密钥,而且每个解密密钥都相同。
值得注意的是:当用户的搜索权限被数据撤销后,某些恶意用户依旧能够观察到其他用户与服务器之间的数据内容,因为每个解密密钥都相同。
参考文献[5,6]中引入了代理加密技术[21],将加、解密都分为两部分,而且都将用户密钥作为数据密钥,不再单独设定加密和解密密钥,能够更加有效地抵抗来自恶意用户和存储服务方的安全威胁。
3系统定义一个多用户可搜索加密系统可分为4个部分:{D,DO, CS,U},其中D是将要被存储到云服务器端的数据,DO负责104管理用户以及发布密钥;CS是云存储服务器;U是一组用户。
D由m个数据项组成:{d1,d2,…,d m},数据项d i的关键字为d i.w,用户并不会直接将数据D存储到云服务器CS 上,而是将加密过后的D′=发送到云服务器端,其中,第一个部分是对d i加密,第二部分是一个索引函数的输出。
让,。
在CS的协作下,一个授权用户u∈U能够检索加密数据。
让q u(w)表示用户u对关键字w的查询。
当CS接收到一个检索请求q u(w)时,CS需要做的首先是验证用户是否是一个授权用户,如果用户的身份合法,CS就返回。
本文约定服务器CS是诚实但好奇的,并且服务器不会与用户合谋攻击整个系统。
4多用户可搜索加密4.1本文的方案首先,简要地介绍参考文献[6]中的基于代理加密的多用户可搜索加密方案,最开始由u对数据d进行加密,经过加密的数据表示为E Ku(d),之后需要代理端在原有加密的基础上再进行一次重加密E Ku+Ks(d),之后数据就成为了在统一格式下的加密形式E K(d)。
当某个用户需要数据d 时,代理将在统一格式下加密的数据E K(d)通过用户的辅助密钥转换为用户可以解密的形式E K-Ks(d)=E Ku(d)。
在原有方案中每次用户插入数据时都进行两次加密相比,在本文的方案中用户先对数据进行加密后发送到云服务器端E Ku(d),但云服务器端并不马上对数据进行重加密,而是记录数据由哪个用户加密,也就是该数据更新来源于哪个用户<u,E Ku(d)>。
当另一个用户需要该数据时,服务器可以计算两个用户的辅助密钥然后经过一次计算就可以将由用户u加密的数据转换为可以由用户u1解密的数据,即E Ku(d)→E Ku1(d),之后用户u1就可以对数据进行解密。
本文的方案中,数据并不需要先转换成统一的形式再转换成另一个用户可以解密的形式,而是直接由一个用户的加密形式转换成另一个用户可以解密的形式,这个过程中减少了一次加密的开销。
并且在实际中,往往存数据的用户是对数据操作最频繁的人,所以将数据直接以该用户的加密形式保存能够节省大量的非必须的计算。
接下来,详细地描述本文在基于参考文献[6]方案上改进方案的细节。
(1)初始化(1k)DO读取安全参数1k,输出系统参数Pk=(G,g,q,f,H,h,g a h a),其中G表示一个q阶循环群,g为G的生成元,f为一个以s为密钥的伪随机函数,H为一个安全的散列函数,h=g R,其中R∈R Z q*。
随机选择一个a∈Z q*,x∈Z q*,Sk= (a,x,s)。
将Pk公开,Sk保持私有。
(2)密钥生成(K DO,u)DO为用户身份为u∈U,输出一个用户密钥x u1∈Z q*以及一个辅助密钥x u2=x-x u1。
计算a1·a2≡a(mod q)将(x u1, a1,s)发送给用户u,将(u,x u2,a2)发送到云服务器端作为用户u的辅助密钥。
(3)加密(x u1,d,d.w)用户u计算,其中r∈R Z q*,对于关键字d.w计算I(d.w)=(I1,I2),其中,I1=(g r+σh r)a,σ=f s(d.w),I2= H((g a h a)r),然后将d′={E(d),I(d.w)}发送到CS端进行存储。