可搜索加密技术在医疗云平台中的应用研究
可搜索加密技术在医疗云平台中的
应用研究
随着信息技术的发展和医疗行业对数据保密性和可搜索性的需求不断增加,可搜索加密技术在医疗云平台中的应用日渐重要。
本文将介绍可搜索加密技术的基本原理,探讨其在医疗云平台中的应用研究,并分析其优势和挑战。
可搜索加密技术是一种能够在加密的同时实现数据的搜索功能的加密技术。
对于医疗云平台来说,这意味着可以在保证数据隐私和保密的前提下,实现对医疗数据的搜索和查询。
医疗云平台是指集中存储和管理医疗数据的云端服务,可为医疗机构、医生和患者提供远程访问和共享数据的便利。
在医疗云平台中使用可搜索加密技术有许多应用场景。
一个典型的例子是医院内部的医生需要查询一位病人的病历数据。
传统的方式是将所有数据解密后进行搜索,但这会暴露患者的隐私信息。
而使用可搜索加密技术,医生可以对加密后的数据进行搜索,系统只会返回与搜索关键词
匹配的结果,保护了患者的隐私同时实现了数据的可搜索性。
但是,将可搜索加密技术应用到医疗云平台中并不容易。
首先,医疗数据的保密性是至关重要的,任何数据泄露都
可能对患者造成极大的损害。
因此,确保加密算法的安全
性和可靠性是一个挑战。
其次,对于大规模的医疗数据来说,高效的搜索算法和索引结构是必要的,以满足医生和
患者的需求。
此外,在数据共享和交互方面也需要解决多
方面的问题,如数据拥有者的控制权、权限管理等。
为了解决这些挑战,研究者提出了许多可搜索加密技术
的改进和扩展。
其中,基于属性的加密方案被广泛应用于
医疗云平台中。
该方案根据数据的属性对数据进行加密并
构建索引,医生可以通过搜索关键词或属性值进行查询。
此外,医疗云平台中的可搜索加密技术还包括同态加密、
零知识证明、可验证搜索等。
这些技术的目标是在满足数
据保密性和可搜索性的同时,提高系统的性能和安全性。
值得注意的是,可搜索加密技术在医疗云平台中的应用
还面临一些风险和隐患。
首先,加密算法和协议的漏洞可
能被黑客利用来获取敏感信息。
其次,搜索结果的准确性
也是一个问题,因为搜索过程中的加密和解密操作可能导
致数据的损失和错误。
此外,医疗云平台中的权限管理和
数据共享机制也需要进一步研究和改进,以确保数据的控
制权和访问权限。
综上所述,可搜索加密技术在医疗云平台中的应用研究
具有重要意义和潜力。
它能够有效地保护医疗数据的隐私
和保密性,同时实现数据的可搜索性,提供了便利和效率。
然而,该技术在医疗云平台中还存在一些挑战和风险,需
要进一步的研究和改进。
未来,随着技术的进步和医疗行
业对数据安全性的要求不断提升,可搜索加密技术将在医
疗云平台中发挥更加重要的作用,并为医疗领域的发展提
供支持和保障。
基于区块链的可搜索加密方案研究
基于区块链的可搜索加密方案研究基于区块链的可搜索加密方案研究引言随着互联网的快速发展,信息的安全性和隐私保护成为人们越来越关注的话题。
在现实生活中,我们常常需要在大量数据中搜索特定的信息,但是传统的搜索方式由于存在信息暴露的风险而受到了限制。
为了解决这个问题,可搜索加密技术应运而生。
而基于区块链的可搜索加密方案则进一步提高了数据的安全性和可信性。
一、可搜索加密技术的概述可搜索加密技术(Searchable Encryption)是一种能够在加密数据中进行搜索和检索的技术。
基于可搜索加密技术,用户可以对加密后的数据进行搜索、排序和过滤等操作,而无需解密整个数据集。
这在很大程度上保护了数据隐私。
二、区块链技术的特点与应用区块链作为一种去中心化的分布式账本技术,具有不可篡改性、透明性、高效性和安全性等特点。
这使得区块链技术成为了可搜索加密方案的理想载体。
在基于区块链的可搜索加密方案中,数据经过加密后存储在区块链上,并通过智能合约进行管理和操作。
三、基于区块链的可搜索加密方案1. 数据加密与存储在基于区块链的可搜索加密方案中,数据首先需要进行加密和存储。
通常使用对称加密算法,如AES,对数据进行加密。
然后,将加密后的数据分片存储在区块链上的不同区块中,以保证数据的安全性和可信性。
2. 可搜索索引的生成可搜索索引是实现可搜索加密的重要组成部分。
在传统的可搜索加密方案中,通常使用倒排索引来实现。
但在基于区块链的可搜索加密方案中,由于数据分片存储在区块链上,需要重新设计索引结构。
可以利用Merkle树等数据结构来生成可搜索索引。
3. 搜索与访问控制在基于区块链的可搜索加密方案中,用户可以通过搜索关键字的方式来查询数据。
首先,用户将搜索请求发送给区块链网络。
然后,通过智能合约的逻辑判断查询语句,从存储在区块链上的数据中检索相关信息。
访问控制机制可以保证只有授权用户能够获得查询结果。
4. 安全性和可信性保障基于区块链的可搜索加密方案有着较高的安全性和可信性。
数据加密技术的进展与应用
数据加密技术的进展与应用随着空间信息化技术的迅速发展,人们对数据加密技术的需求不断增加。
数据加密技术被广泛应用于信息安全领域,以保障越来越多的数据的安全性,其技术也在不断地升级和改善。
本文将对当前数据加密技术的进展和应用进行分析,并探讨未来数据加密技术的发展趋势。
一、数据加密技术的发展现状1. 对称加密算法对称加密算法是一种加密和解密使用相同密钥的算法。
传统对称加密算法如DES、3DES等,由于它们的密钥体积太小,无法应对复杂和多变的加密需求,因此逐渐被替代。
目前,AES算法已成为最常用的对称加密算法之一,其密钥长度达到了256位,大大增强了密码的强度。
2. 非对称加密算法非对称加密算法是一种加密和解密使用不同密钥的算法。
RSA算法是最常见的非对称加密算法,其可靠性与安全性得到了广泛认可。
在RSA算法的基础上,出现了基于椭圆曲线的非对称加密算法,更进一步增强了安全性,防止了量子计算机的攻击。
3. 哈希加密算法哈希加密算法是一种把任意长度的消息压缩到固定长度的算法,常用于数字签名等领域。
SHA、MD5算法是常见的哈希加密算法,虽然它们在信息安全领域拥有很高的地位,但仍面临着碰撞攻击、余弦震荡等风险。
二、数据加密技术的应用现状1. 移动互联网随着手机用户数量的不断增加,移动互联网的安全风险也日益增加。
为此,各大手机厂商积极探索并引入了先进的加密技术,如Apple Pay、支付宝等移动支付方式,以及包括SSL、TLS、IPSec等在内的加密协议,从而为用户提供了安全可靠的移动支付和通信方式。
2. 云计算数据在云端不断流转,需要有更可靠的安全机制来保障用户存储的数据安全。
针对云计算环境中的安全问题,云服务提供商和云安全厂商相继推出了责任分离、加密分离、数据流自主控制等方案,加强了云计算的可靠性和安全性。
三、数据加密技术的未来发展1. 可搜索加密技术可搜索加密技术是通过将数据进行加密和分割,以实现在不泄露数据内容的情况下进行关键字搜索。
隐私计算常见技术路径
隐私计算常见技术路径一、安全多方计算安全多方计算(Secure Multi-Party Computation,简称SMC)是一种保护隐私的计算方法,它允许多个参与方在不泄露各自私有数据的前提下进行计算。
SMC的核心思想是将计算任务分解成多个子任务,并由各方分别计算自己的子任务,最后将计算结果合并得到最终结果。
在整个计算过程中,各方只需要交换必要的信息,而不需要直接共享私有数据,从而保证了隐私的安全性。
二、同态加密同态加密(Homomorphic Encryption)是一种特殊的加密技术,可以在加密状态下对数据进行计算,而无需解密。
具体来说,同态加密允许在密文状态下进行加法和乘法运算,得到的结果仍然是加密形式。
这意味着可以将数据加密后,交给云服务提供商进行计算,而不用担心数据泄露的问题。
只有在获取计算结果时,才需要进行解密操作。
同态加密技术为隐私计算提供了一种安全的方式。
三、可搜索加密可搜索加密(Searchable Encryption)是一种允许在加密状态下对数据进行搜索的加密技术。
传统的加密方法只能对数据进行加密和解密,无法在加密状态下进行搜索操作。
而可搜索加密技术通过引入一种特殊的索引结构,使得在加密状态下可以根据特定的搜索关键字快速地找到对应的加密数据。
这种技术在隐私计算中非常有用,可以实现在保护数据隐私的前提下进行高效的搜索和查询操作。
四、隐私保护技术的应用场景隐私计算的常见技术路径在很多领域都有广泛的应用。
举例来说,在医疗领域,医院可以通过安全多方计算的方式,与研究机构合作进行数据分析,而无需直接共享患者的隐私信息。
在金融领域,银行可以利用同态加密技术,将客户的交易数据加密后,发送给风险评估机构进行分析,保护客户的隐私。
在云计算领域,用户可以利用可搜索加密技术,将数据加密后存储在云上,仍然可以进行高效的搜索和查询操作。
总结起来,隐私计算的常见技术路径包括安全多方计算、同态加密和可搜索加密。
公开可验证的动态可搜索加密技术研究
公开可验证的动态可搜索加密技术研究公开可验证的动态可搜索加密技术研究概述随着大数据时代的到来,数据的存储和处理成为了一项重要任务。
然而,数据的隐私和安全性也越来越引起人们的关注。
动态可搜索加密技术应运而生,它为用户提供了在云环境中对数据进行搜索和操作的能力,同时保护了数据的隐私性。
本文将探讨公开可验证的动态可搜索加密技术的研究进展和应用。
动态可搜索加密技术简介动态可搜索加密技术(Dynamic Searchable Encryption, DSE)是指用户可以在将数据存储在云服务器上的同时,对数据进行加密和搜索的一种安全保护技术。
与传统的加密方式不同,DSE能够实现在加密状态下对数据进行搜索、删除和插入等操作。
它适用于云存储等场景,可以帮助用户在保护隐私的同时享受便捷的数据搜索服务。
公开可验证的DSE技术公开可验证的DSE技术是在动态可搜索加密的基础上进行进一步拓展的一种技术,它保证了数据搜索的安全性和完整性。
由于云服务器是一个半可信的环境,用户需要确保云服务器不会篡改或泄露其数据。
而公开可验证的DSE技术能够通过使用公开可验证加密技术和数据结构的方式,使用户能够验证数据是否被修改或伪造,从而保护数据完整性。
公开可验证的DSE技术有两个主要的组成部分:可验证搜索和可验证更新。
可验证搜索确保了云服务器返回的搜索结果是正确的,没有被篡改的。
可验证更新则保证了用户可以在云服务器上正确地插入、删除和修改数据,同时保证数据的完整性。
研究进展和应用在研究方面,公开可验证的DSE技术已经取得了一些重要进展。
目前,已经提出了一些基于树结构的可验证DSE方案,如基于Merkle-Tree的方案和基于Bloom Filter的方案。
这些方案通过使用不同的加密和哈希算法,实现了对数据搜索和更新的验证。
在应用方面,公开可验证的DSE技术有广泛的应用前景。
首先,它可以应用于云存储服务中,保护用户数据的隐私和完整性。
其次,它可以应用于医疗健康领域,保护患者的隐私和个人信息。
数据隐私保护技术在云计算中的应用案例分享
数据隐私保护技术在云计算中的应用案例分享随着云计算的快速发展,大量的数据被迁移到了云端进行存储和处理。
然而,与此同时,数据隐私保护也成为了一个备受关注的问题。
在云计算中,如何保护用户的数据隐私,防止数据泄露和滥用,是一个亟待解决的问题。
本文将从技术角度出发,分享一些数据隐私保护技术在云计算中的应用案例。
首先,差分隐私是一种常见的数据隐私保护方法,它通过在数据发布过程中加入一定的噪声来保护数据的隐私。
在云计算中,差分隐私可以用于保护用户的个人隐私。
例如,一家医疗机构想要将其患者的数据共享给研究机构,但又担心患者的个人隐私泄露。
通过采用差分隐私技术,医疗机构可以在发布数据之前加入噪声,使得数据中的个人信息无法被恢复,从而实现数据隐私的保护。
其次,同态加密是另一种常用的数据隐私保护技术。
它允许在不暴露数据内容的情况下进行计算。
在云计算中,同态加密可以用于保护用户在云端进行计算时的隐私。
例如,一个银行想要在云端进行大规模数据分析,但又担心敏感的客户信息被泄露。
通过使用同态加密技术,银行可以对客户数据进行加密,并将加密后的数据上传到云端进行计算,云端只能返回计算结果,而无法获知数据内容,从而保护了用户的隐私。
此外,可搜索加密是一种能够实现在加密数据上进行高效搜索的技术。
在云计算中,可搜索加密可以用于保护用户在云端存储的数据的隐私。
例如,一个企业想要将其机密文件存储在云端,但又担心文件内容被非法访问。
通过使用可搜索加密技术,企业可以将文件加密后上传到云端,用户可以通过在加密的文件上进行搜索操作,而无需解密文件内容,从而保护了数据的隐私。
最后,多方计算是一种能够在不公开数据的情况下进行计算的技术。
在云计算中,多方计算可以用于保护多个用户之间的数据隐私。
例如,一家广告公司希望通过云端数据联合分析的方式提高广告精准度,但又担心用户的个人数据被泄露。
通过使用多方计算技术,广告公司可以与用户和数据提供商共同进行数据分析,但保持各方数据的隐私,只通过加密计算结果进行共享,从而实现数据隐私的保护。
基于可搜索加密技术的云数据隐私保护研究
基于可搜索加密技术的云数据隐私保护研究近年来,随着互联网和云技术的不断发展,越来越多的个人数据和企业数据被存储在云平台上。
虽然云计算技术使得数据的存储和处理更加便捷,但也带来了数据隐私面临的巨大挑战。
在云计算环境下,数据传输与存储过程中的威胁主要包括数据泄露、数据篡改、数据丢失等方面。
为了保护用户的数据隐私,需要采用可搜索加密技术来实现加密存储和搜索。
一、可搜索加密技术介绍可搜索加密技术是一种新型的加密技术,是对传统加密技术的进一步完善和发展。
在可搜索加密技术下,数据仍然可以加密存储,但用户可以根据自身需要,通过搜索关键字等方式,快速查询到需要的信息。
同时,可搜索加密技术可以保证数据的隐私性和完整性,从而有效保护数据隐私。
在可搜索加密技术中,需要实现以下功能:1. 数据加密:将数据以某种方式加密存储在云端,确保数据的机密性。
2. 搜索加密:通过一定的技术手段将关键词和查询请求加密,使得云平台中的数据不会被攻击者获得。
3. 搜索匹配:在加密的数据集中找到包含搜索请求的加密数据,保证查询请求得到响应。
4. 结果正确性:确保查询结果是正确的,保证数据的完整性。
二、可搜索加密技术的实现方法可搜索加密技术目前主要有两种实现方法:基于对称加密和基于公钥加密。
1. 基于对称加密技术的实现方法是指数据与关键词都是用相同密钥进行加密/解密。
具体来说,数据在上传到云端前进行加密,然后关键词也经过加密,用相同密钥存储在云端。
用户在需要查询数据时,将关键词进行对称解密,然后云端根据解密后的关键词进行匹配查询,找到相应数据后,再通过相同密钥进行解密后返回给用户。
2. 基于公钥加密技术的实现方法是指数据和关键词使用不同的密钥进行加密/解密。
在这种方法中,数据在上传到云端之前进行加密,然后将加密后的数据和公钥存储在云端。
用户在查询时,通过公钥将关键词进行加密,然后上传到云端,云端使用私钥将其解密后进行匹配,然后再将匹配结果通过公钥加密后返回给用户。
云存储中可搜索加密方案的研究与设计的开题报告
云存储中可搜索加密方案的研究与设计的开题报告一、选题背景随着云计算技术的不断发展,越来越多的数据被存储到云端,并在云端上进行处理。
然而,传统的云存储存在许多安全问题,例如数据泄露、隐私保护等问题。
因此,加密技术被广泛应用于云存储中以保护数据安全。
但是,在使用加密技术的同时,搜索和访问加密数据变得非常困难。
因此,如何在云存储中实现可搜索加密技术成为了一个热门的研究方向。
二、选题意义云存储中的可搜索加密技术可以保护数据隐私,同时又允许用户在加密数据中进行搜索和访问。
这种技术可以防止数据被窃听或篡改,同时又便于用户在云端上管理和使用自己的数据。
因此,研究云存储中的可搜索加密技术对于保护用户数据安全,提高云存储服务的质量和可信度具有重要意义。
三、研究内容本文将研究云存储中可搜索加密方案的设计与实现,主要包括以下几个方面:1. 研究可搜索加密技术的基本原理和方法。
2. 分析现有的可搜索加密方案的优缺点,并根据实际需求设计适合云存储的可搜索加密方案。
3. 实现和评估设计好的可搜索加密方案。
对所设计的可搜索加密方案进行测试和验证,并分析其安全性、可用性和性能。
四、研究方法本文的研究方法主要包括文献调研、实验设计和实验验证。
首先,通过对可搜索加密技术的相关文献进行调研,了解可搜索加密技术的基本原理和方法。
然后,根据实际需求设计适合云存储的可搜索加密方案。
最后,实现和评估所设计的可搜索加密方案,并对其进行测试和验证,分析其安全性、可用性和性能。
五、预期成果及创新点本文研究的预期成果主要包括:1. 设计可用于云存储的新型可搜索加密方案。
2. 实现设计好的可搜索加密方案,并对其进行测试和验证。
3. 分析所设计的可搜索加密方案的安全性、可用性和性能,并与现有的可搜索加密方案进行比较。
本文的创新点主要体现在以下方面:1. 设计新型的可搜索加密方案,兼顾数据安全和可用性。
2. 实现和验证所设计的可搜索加密方案,并对其进行全面的评估和分析,为云存储中可搜索加密技术的研究提供参考。
可搜索加密技术在云存储中的应用
可搜索加密技术在云存储中的应用在当今数字化时代,数据的存储和管理方式发生了巨大的变革。
云存储作为一种便捷、高效的数据存储解决方案,已经被广泛应用于各个领域。
然而,随着数据量的不断增长和数据隐私的重要性日益凸显,如何在保障数据隐私的前提下,实现对云存储数据的有效搜索和访问,成为了一个亟待解决的问题。
可搜索加密技术的出现,为解决这一问题提供了可能。
一、云存储与数据隐私挑战云存储是指将数据存储在由云服务提供商运营的远程服务器上,用户可以通过网络随时随地访问和共享这些数据。
云存储的优势在于其强大的扩展性、高可用性和成本效益,使得企业和个人无需投资大量的硬件设备和维护成本,就能轻松存储和管理海量数据。
然而,云存储也带来了一系列的数据隐私问题。
由于用户的数据存储在云端,云服务提供商和潜在的攻击者有可能获取到这些数据。
如果数据没有经过适当的加密处理,一旦数据泄露,将会给用户带来巨大的损失,包括个人隐私泄露、商业机密被窃取等。
此外,即使数据在存储时进行了加密,传统的加密方法也使得在云端进行数据搜索变得极为困难。
因为加密后的数据变成了无意义的密文,无法直接进行关键词搜索和匹配。
这就导致了用户在需要搜索和访问特定数据时,不得不先将大量的加密数据下载到本地进行解密,然后再进行搜索,这不仅效率低下,而且增加了数据泄露的风险。
二、可搜索加密技术的原理可搜索加密技术是一种在加密数据上进行搜索操作的技术,它允许用户在不解密数据的情况下,对加密数据进行关键词搜索,并返回与搜索关键词相关的加密结果。
可搜索加密技术的核心原理是基于加密索引和陷门机制。
在数据上传到云端之前,首先对数据进行加密处理,并为加密数据构建一个特殊的加密索引。
这个索引包含了数据中可能出现的关键词以及它们对应的加密位置信息。
当用户需要进行搜索时,用户生成一个包含搜索关键词的陷门,并将其发送给云端。
云端使用陷门与加密索引进行匹配运算,如果匹配成功,则返回相应的加密数据。
可搜索加密技术在大数据安全中的应用
可搜索加密技术在大数据安全中的应用随着互联网和信息技术的快速发展,大数据正成为当今社会的重要资源。
然而,随之而来的数据泄露和隐私问题也日益突出,给个人以及企业带来了巨大的风险和威胁。
在这种背景下,可搜索加密技术成为一种重要的数据安全保护手段,并在大数据安全中得到广泛应用。
一、可搜索加密技术简介可搜索加密技术是一种将数据加密后仍然可以进行检索的技术。
传统的加密算法通常会将数据加密成无法直接搜索的形式,因此无法满足大数据的查询需求。
而可搜索加密技术则通过在加密前对数据进行一定的处理,让数据在加密后仍然可以被检索,从而实现对加密数据的高效查询。
二、可搜索加密技术的实现方式可搜索加密技术主要有两种实现方式:对称可搜索加密和公钥可搜索加密。
1. 对称可搜索加密对称可搜索加密方法使用相同的密钥对数据进行加解密操作。
这种方法的优点是加密和解密速度快,适用于大数据量的场景。
常见的对称可搜索加密方案有基于倒排索引的加密方案和基于陷门的加密方案。
2. 公钥可搜索加密公钥可搜索加密方法使用不同的密钥对数据进行加解密操作。
这种方法的优点是加密和解密过程中使用不同的密钥,提高了数据的安全性。
常见的公钥可搜索加密方案有基于同态加密的方案和基于零知识证明的方案。
三、可搜索加密技术在大数据安全中的应用可搜索加密技术在大数据安全中有广泛的应用。
以下是几个典型的应用场景:1. 云计算安全云计算是大数据处理的重要手段,但在云端存储数据存在诸多安全风险。
可搜索加密技术能够对云端存储的数据进行加密,同时保证数据能够被高效地检索,从而保护数据的机密性和完整性。
2. 医疗数据安全医疗数据是敏感信息的集中体现,但也需要进行大规模的数据分析。
可搜索加密技术可以对医疗数据进行加密处理,保护患者的隐私信息,同时又能够满足医疗数据分析的需求。
3. 商业数据隐私保护在商业领域,企业拥有大量的客户数据和业务数据,但这些数据的泄露可能导致企业声誉受损和商业机密被泄露。
可搜索加密技术研究综述
软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@ Journal of Software,2015,26(1):109−128 [doi: 10.13328/ki.jos.004700] ©中国科学院软件研究所版权所有. Tel: +86-10-62562563∗可搜索加密技术研究综述李经纬1, 贾春福1,3, 刘哲理1, 李进2, 李敏11(南开大学计算机与控制工程学院计算机与信息安全系,天津 300071)2(广州大学计算机科学与教育软件学院,广东广州 510006)3(中国民航大学信息安全评测中心,天津 300300)通讯作者: 贾春福, E-mail: cfjia@摘要: 从可搜索加密的两类基本问题出发,回顾了相关研究历史.介绍了可搜索加密的分类,包括其应用场景和应用模型,并探讨了相应的解决策略,从构造角度,将其分为对称可搜索加密和非对称可搜索加密.基于这种分类,围绕基本定义、典型构造和扩展研究,对可搜索加密相关工作进行了综述.最后,总结和展望了待解决的关键性问题和未来的研究方向.这些工作将对可搜索加密的进一步研究起到一定的促进作用.关键词: 可搜索加密;对称可搜索加密;非对称可搜索加密;关键词猜测攻击;云安全中图法分类号: TP309中文引用格式: 李经纬,贾春福,刘哲理,李进,李敏.可搜索加密技术研究综述.软件学报,2015,26(1):109−128.http://www.jos. /1000-9825/4700.htm英文引用格式: Li JW, Jia CF, Liu ZL, Li J, Li M. Survey on the searchable encryption. Ruan Jian Xue Bao/Journal of Software, 2015,26(1):109−128 (in Chinese)./1000-9825/4700.htmSurvey on the Searchable EncryptionLI Jing-Wei1, JIA Chun-Fu1,3, LIU Zhe-Li1, LI Jin2, LI Min11(Department of Computer & Information Security, College of Computer and Control Engineering, Nankai University, Tianjin 300071, China)2(School of Computer Science and Educational Software, Guangzhou University, Guangzhou 510006, China)3(Information Security Evaluation Cener of Civil Aviation, Civil Aviation University of China, Tianjin 300300, China)Abstract: This paper reviews previous research on the two basic searchable encryption problems, and introduces the classification of searchable encryption (SE), including its application scenarios and usage models. After discussing the resolution strategies, it divides SE into two groups, that is symmetric searchable encryption and asymmetric searchable encryption. Based on this classification, the research advance is surveyed on basic definition, typical construction and extended research. Finally, the need-to-be-solved problems and main research directions are discussed. This study aims at promoting further research of searchable encryption.Key words: searchable encryption; symmetric searchable encryption; asymmetric searchable encryption; keyword guessing attack;cloud security可搜索加密问题源于文献[1]:假设用户Alice试图将个人文件存放在一个诚实但具有好奇心的外部服务器,以降低本地资源开销.为保护文件隐私,须采用某种加密方式将文件加密后存储.使用传统分组密码,只有密∗基金项目: 国家重点基础研究发展计划(973)(2013CB834204); 国家自然科学基金(61272423, 61100224, 61472091); 高等学校博士学科点专项科研基金(20100031110030, 20120031120036); 天津市自然科学基金(14JCYBJC15300); 中国民航大学信息安全评测中心开放课题基金(CAAC-ISECCA-201403)收稿时间:2013-03-11; 定稿时间: 2014-07-09; jos在线出版时间: 2014-08-19CNKI网络优先出版: 2014-08-19 14:17, /kcms/doi/10.13328/ki.jos.004700.html110 Journal of Software 软件学报 V ol.26, No.1, January 2015钥拥有者才具备解密能力,意味着Alice 在执行基于关键词的查询操作时,需要下载所有已上传的文件,完全解密后再检索,会带来两个问题:① 如果Alice 在服务器上已存有大量文件,一一下载会占用大量网络带宽,可能造成服务器堵塞;② 对已下载的所有文件完全解密会占用大量本地计算资源,效率极低.解决此类问题的加密技术称为可搜索加密(searchable encryption,简称SE),该技术要求只有合法用户才具备基于关键词检索的能力.随着研究的推进,其应用并不仅限于此:2004年,Boneh 提出使用非对称可搜索加密(asymmetric searchable encryption,简称ASE)解决“不可信赖服务器路由”问题[2];最近兴起的云计算[3]将是SE 的最佳应用平台,由于服务提供商的不可控性,用户必须应对存储到云端的个人数据可能泄密的威胁,SE 提供的加密和密文直接检索功能使服务器无法窃听用户个人数据,但可以根据查询请求返回目标密文文件,这样既保证了用户数据的安全和隐私,又不会过分降低查询效率.本文关注近年来可搜索加密的研究进展,描述了可搜索加密基本问题的研究历史,并围绕定义、典型构造和扩展研究,分别对对称和非对称密码体制下的可搜索加密研究成果进行综述,最后展望了可搜索加密未来的研究方向,以期对其在国内的研究起到一定的推动作用.1 可搜索加密1.1 可搜索加密过程如图1所示,可搜索加密可分为4个子过程:Step 1. 加密过程.用户使用密钥在本地对明文文件进行加密,并将其上传至服务器.Step 2. 陷门生成过程.具备检索能力的用户,使用密钥生成待查询关键词的陷门,要求陷门不能泄露关键词的任何信息.Step 3. 检索过程.服务器以关键词陷门为输入,执行检索算法,返回所有包含该陷门对应关键词的密文文件,要求服务器除了能知道密文文件是否包含某个特定关键词外,无法获得更多信息.Step 4. 解密过程.用户使用密钥解密服务器返回的密文文件,获得查询结果.Fig.1 Steps in searchable encryption图1 可搜索加密过程1.2 研究历史可搜索加密问题的提出,源于解决两类可搜索加密的基本问题:① 不可信赖服务器的存储问题;② 不可信赖服务器的路由问题.1.2.1 不可信赖服务器存储问题的相关研究不可信赖服务器的存储问题最早提出于2000年[1],Song 等人[1]提出了基于密文扫描思想的SWP 方案,将明文文件划分为“单词”并对其分别加密,通过对整个密文文件扫描和密文单词进行比对,就可确认关键词是否存在,甚至统计其出现的次数.Goh [4]提出了基于索引的Z-IDX 方案,使用布隆过滤器(Bloom filter)作为单个文件的索引结构,将文件包含的关键词映射为码字存储于该文件的索引中,通过布隆过滤器的运算,就能判定密文文件是否包含某个特定关键词.Chang 和Mitzenmacher [5]考虑了该可搜索加密基本问题的一个应用场景:用户通过个人电脑以密文形式存储文件至服务器,然后使用移动设备(例如手机等)检索服务器上的密文文件,并针对此应用提出PPSED(privacy preserving keyword searches on remoted encrypted data)方案.Curtmola [6]规范化了对称可密文文件关键词陷门密文文件 Step 1Step 2 Step 3Step 4 服务器李经纬等:可搜索加密技术研究综述111搜索加密(symmetric searchable encryption,简称SSE)及其安全目标,提出能够在非自适应和自适应攻击模型下达到不可区分性安全的SSE-1和SSE-2方案.这里,SSE-1和SSE-2都基于“关键词-文件”索引构建思想,服务器只需O(1)时间即可完成检索操作.然而,执行文件的添加或删除操作需要重新构建索引,时间开销较大.近年来,围绕基本SSE方案中仍然存在的一些需要解决的问题,学者们进行了广泛的研究,包括:(1) 如何对服务器存放的密文文件进行动态添加、更新或删除[7−9];(2) 如何对基本方案中“单个关键词精确匹配”查询方式进行扩展,以适应更广泛的查询需求[10−15];(3) 如何对基本方案中“包含与不包含”查询模式进行优化,以进一步降低用户端筛选目标文件的计算量[16−18];(4) 如何应对在半可信且具有好奇心的威胁模型下,服务器并不总是诚实地计算并返回检索结果的情况[19,20].1.2.2 不可信赖服务器路由问题的相关研究不可信赖服务器的路由问题源于文献[2]:Bob通过不可信赖邮件服务器向Alice发送包含某些关键词的邮件,要求服务器不能获取邮件内容和相关关键词信息,但需根据关键词将邮件路由至Alice的某个终端设备.例如,如果邮件的关键词为“urgent”,则服务器将邮件分配至Alice的手机,如果邮件的关键词为“lunch”,则服务器将邮件分配至Alice的电脑.Boneh等人[2]最早提出PEKS(public key encryption with keyword search)概念,并基于BF-IBE[21]构造了第一个PEKS方案BDOP-PEKS,安全性可归结为BDH(bilinear Diffie-Hellman)数学假设. Khader[22]基于K-resilient IBE构造KR-PEKS方案,在标准模型下达到IND-CKA安全.Crescenzo等人[23]提出基于二次剩余中二次不可区分性问题(quadratic indistinguishability problem,简称QIP)的PEKS方案.Abdalla等人[24]针对PEKS算法一致性定义缺陷,提出统计一致性(statistically consistency)和计算一致性(computationally consistency),并描述了从基于身份加密(identity-based encryption,简称IBE)到PEKS的一般变换算法IBE2PEKS.文献[25−27]指出了当前PEKS的一个较为严重的安全隐患:由于关键词空间远小于密钥空间,而且用户通常仅检索一些常用关键词,攻击者可借此实施关键词猜测攻击(keyword guessing attack,简称KGA),进而证明了不存在满足算法一致性并且在KGA下是安全的PEKS方案.因此,抵御KGA意味着需对PEKS机制本身加以修改.鉴于此,Tang等人[28]提出PERKS(public-key encryption with registered keyword search)方案,要求接收者在初始化阶段注册关键词,并将产生的预标签(pre-tag)通过安全信道传递给发送者;Xu等人[29]提出PEFKS(public key encryption with fuzzy keyword search)方案,向不可信赖服务器提供模糊陷门以进行初次检索,对返回结果再在本地进行基于精确陷门的二次检索.这些方案都能抵御KGA.近年来,关于PEKS的研究集中于:(1) 对基本PEKS方案的安全性加以完善,提高PEKS密文与邮件密文的耦合度[30−35];(2) 扩展查询方式,适应更广泛的查询需求[36−39];(3) 以实际背景为依托,探索满足高级应用需求的方案[40−43].2 可搜索加密的分类2.1 应用模型分类如图2所示,从当前的应用角度可将可搜索加密问题模型分为4类.1) 单用户(单服务器)模型.用户加密个人文件并将其存储于不可信赖外部服务器,要求:① 只有该用户具备基于关键词检索的能力;② 服务器无法获取明文文件和待检索关键词的信息.文献[1]中的应用问题以及单用户模式的云存储服务都是单用户模型的实例.2) 多对一(单服务器)模型.多个发送者加密文件后,将其上传至不可信赖外部服务器,以期达到与单个接收者传送数据的目的.要求:①只有接收者具备基于关键词检索的能力;②服务器无法获取明文文件信息.需要指出的是,不同于单用户模型,多对一模型要求发送者和接收者不能是同一用户.文献[2]中的应用问题和具备简单共享机制的云存储服务都是多对一模型的实例.3) 一对多(单服务器)模型.112Journal of Software 软件学报 V ol.26, No.1, January 2015与多对一(单服务器)模型类似,但为单个发送者将加密文件上传至不可信赖外部服务器,借此与多个接收者共享数据.该模型遵循着一种广播共享的模式,文献[7]中的研究问题是一对多模型的实例.4) 多对多(单服务器)模型.在多对一模型的基础上,任意用户都可成为接收者,其通过访问控制和认证策略以后,具备基于关键词的密文检索方式提取共享文件的能力.要求:① 只有合法用户(例如能够满足发送者预先指定的属性或身份要求)具备基于关键词检索的能力;② 服务器无法获取明文文件信息.该模型既是多对一模型的扩展,同时也是云计算中复杂共享机制的抽象,具备广阔的应用前景.Fig.2 Usage models classification in searchable encryption 图2可搜索加密应用模型分类 2.2解决策略从密码构造角度可将SE问题模型的解决策略分为3类.1) 对称可搜索加密,适用于单用户模型. 对称可搜索加密的构造通常基于伪随机函数,具有计算开销小、算法简单、速度快的特点,除了加解密过程采用相同的密钥外,其陷门生成也需密钥的参与.单用户模型的单用户特点使得对称可搜索加密非常适用于该类问题的解决:用户使用密钥加密个人文件并上传至服务器,检索时,用户通过密钥生成待检索关键词陷门,服务器根据陷门执行检索过程后返回目标密文. 2) 非对称可搜索加密,适用于多对一模型.非对称可搜索加密使用两种密钥:公钥用于明文信息的加密和目标密文的检索,私钥用于解密密文信息和生成关键词陷门.非对称可搜索加密算法通常较为复杂,加解密速度较慢,然而,其公私钥相互分离的特点,非常适用于多用户体制下可搜索加密问题的解决:发送者使用接收者的公钥加密文件和相关关键词,检索时,接收者使用私钥生成待检索关键词陷门,服务器根据陷门执行检索算法后返回目标密文.该处理过程避免了在发送者与接收者之间建立安全通道,具有较高的实用性.3) 对称可搜索加密或非对称可搜索加密,可解决一对多和多对多模型中的可搜索加密问题.非对称可搜索加密本身即能有效地支持最基本形式的隐私数据的共享,通过共享密钥,其可被拓展到多对多的应用场景.对称可搜索加密虽然通常适用于单用户模型,但其由于计算开销小、速度快,更适合于大型文件数据的加密和共享,通过混合加密与基于属性加密技术相结合,或与代理重加密结合,也可用于构造共享方案. 基于关键词查询 基于关键词查询 (a) 单用户单服务器模型 (b) 多对一单服务器模型发送密文文件发送密文文件 基于关键词查询 发送密文文件 发送者 服务器 发送者 发送者 接收者 基于关键词查询 发送密文文件共享密文文件基于关键词查询共享密文文件用户 服务器 用户 用户 基于关键词查询基于关键词查询(c) 一对多单服务器模型发送密文文件 基于关键词查询 服务器 发送者 接收者 接收者 接收者 (d) 多用户单服务器模型 上传密文文件用户服务器李经纬等:可搜索加密技术研究综述113鉴于对称和非对称可搜索加密作为基本工具,在解决实际可搜索加密问题时的重要性,本文接下来将围绕定义、构造和扩展研究,分别对对称和非对称可搜索加密的研究成果进行综述.3 对称可搜索加密3.1 定义3.1.1 算法描述定义1(对称可搜索加密). 定义在字典Δ={W1,W2,…,W d}上的对称可搜索加密算法可描述为五元组:SSE=(KeyGen,Encrypt,Trapdoor,Search,Decrypt),其中,1)K=KeyGen(λ):输入安全参数λ,输出随机产生的密钥K;2)(I,C)=Encrypt(K,D):输入对称密钥K和明文文件集D=(D1,D2,…,D n),D i∈2Δ,输出索引I和密文文件集C=(C1,C2,…,C n).对于无需构造索引的SSE方案(例如SWP方案[1]),I=∅;3)T W=Trapdoor(K,W):输入对称密钥K和关键词W,输出关键词陷门T W;4)D(W)=Search(I,T W):输入索引I和陷门T W,输出包含W的文件的标识符构成的集合D(W);5)D i=Decrypt(K,C i):输入对称密钥K和密文文件C i,输出相应明文文件D i.如果对称可搜索加密方案SSE是正确的,那么对于∀λ∈ ,n∈ ,W∈Δ,D=(D1,D2,…,D n)以及KeyGen(λ)和Encrypt(K,D)输出的K和(I,C),都有Search(I,Trapdoor(K,W))=D(W)和Decrypt(K,C i)=D i成立.这里,C i∈C,i=1,2,…,n.基于定义1,对称可搜索加密流程如下:加密过程中,用户执行KeyGen算法生成对称密钥K,使用K加密明文文件集D,并将加密结果上传至服务器.检索过程中,用户执行Trapdoor算法,生成待查询关键词W的陷门T W;服务器使用T W检索到文件标识符集合D(W),并根据D(W)中文件标识符提取密文文件以返回用户;用户最终使用K解密所有返回文件,得到目标文件.3.1.2 安全目标在设计密码方案时,主要考虑可能面临攻击模型下需达到的安全目标,通常使用安全目标与攻击模型相结合的方式定义方案的安全性.早在2000年,Song等人[1]将可证安全理论的不可区分性安全目标引入可搜索加密机制,要求密文不会泄漏任何原始文件信息.然而,Song的原始定义并不足以描述攻击者在现实场景中所具备的可搜索攻击能力.针对此问题,Goh[4]提出了选择关键词攻击下的不可区分性安全目标IND-CKA,要求攻击者即使能够任意询问(或以黑盒方式产生)密文文件和关键词陷门,也无法获得比通过陷门检索方式更多的原始文件信息.进一步地,Chang等人[5]考虑攻击者在实施攻击时能够获得之前所有轮次服务器端的查询结果的情况,描述了可搜索加密机制基于模拟的安全性定义,以限制服务器除每一轮查询结果外,无法获得任何信息.2006年,Curtmola等人[6]指出:① 文献[4]未明确考虑关键词陷门在可搜索加密机制中的安全性;② 文献[5]中的安全性定义无法描述具备自适应攻击能力的攻击者,且能够被任何可搜索加密方案平凡地(trivially)满足.Curtmola等人[6]进而在自适应(adaptive)和非自适应(nonadaptive)模型下形式化地定义了SSE的语义安全(semantic security,简称SS)和不可区分性安全(indistingsuishability,简称IND).描述安全目标之前,引入几个概念: 定义2. 假设Δ={W1,W2,…,W d}表示关键词字典,D=(D1,D2,…,D n)表示明文文件集合,W=(W(1),W(2),…,W(q))表示一组已查询关键词,这里,D i∈2Δ,W i∈Δ.可定义如下概念:1)q-查询历史H=(D,W),这里,|W|=q;2)H的查询格式∂(H)=(D(W(1)),D(W(2)),…,D(W(q)));3)H的检索格式σ(H)为q×q矩阵,对于1≤i,j≤q,如果W(i)=W(j),那么第i行j列元素σ(H)ij=1;否则,σ(H)ij=0;4)攻击者关于H的视图定义为V K(H)=(I,C,T1,T2,…,T q,id(D1),id(D2),…,id(D n)),包括密钥K作用下产生114Journal of Software 软件学报 V ol.26, No.1, January 2015的密文文件及其索引、历史查询关键词的陷门和一些额外信息,例如各文件标识符等;5) H 的轨迹τ(H )=(|D 1|,|D 2|,…,|D n |,∂(H ),σ(H )),包括H 的查询格式、检索格式和D 中各文件长度信息. SSE 安全目标的定义源于攻击者和挑战者的博弈过程:挑战者首先执行KeyGen 算法产生对称密钥K ,并按 照如图3所示的某种方式(在图3(b)和图3(d)中,S (⋅)为模拟算法,可根据历史的轨迹模拟产生密文文件集及其索 引),根据秘密产生的随机参数b 响应攻击者的询问,最后,由攻击者通过计算输出一个判定值b ′作为对b 的猜测: 如果b ′=b ,判定成功;否则失败.因此,可定义攻击者A 在相应安全目标下的攻击优势为Adv SSE (A )=|2⋅Pr[b ′=b ]−1|.如果对任意A 和ε>0,都有Adv SSE (A )<ε,那么对称可搜索加密算法SSE 达到了相应的安全目标.Fig.3 Games in SSE security notions图3 SSE 安全目标中的博弈过程自适应和非自适应模型下的安全目标之间的关系如图4所示.Fig.4 Relation of security goals under adaptive and nonadaptive attack model图4 自适应和非自适应模型下安全目标间的关系图4中,箭头表示能推导出.通过图4可以看出:• 非自适应攻击模型下,SS-Nonadaptive 和IND-Nonadaptive 相互等价,即,达到SS-Nonadaptive 安全的SSE 同时也达到IND-Nonadaptive 安全;反之亦然;• 自适应攻击模型下,SS-Adaptive 安全能够推导出IND-Adaptive 安全,因此,SS-Adpative 比IND-Adaptive 具备更高的安全度.3.2 典型构造SSE 典型构造方式包括SWP 方案[1]、Z-IDX 方案[4]和SSE-1方案[6].本节从构造角度对3种典型方案的加密过程进行综述.由于Z-IDX 和SSE-1采用基于索引的加密,对数据文件本身采用传统分组密码直接加密即可,因此,这里只详细介绍这两种方法的索引构建过程.SS-Nonadaptive IND-Nonadaptive 非自适应模型下的安全目标:自适应模型下的安全目标:SS-Adaptive IND-Adaptive返回V .这里,(,), 0(()), 1Encrypt K D b V D b τ=⎧=⎨=⎩如果如果S 提交q -查询历史H 攻击者挑战者 返回V .这里,(), 0(()), 1K V H b V H b τ=⎧=⎨=⎩如果如果S 提交q -查询历史H 1,H 2 攻击者挑战者返回攻击者视图V K (H b ).这里,b ∈R {0,1}返回关键词陷门()i W T 提交询问关键词对()()01(,)i i W W 返回(I b ,C b )=Encrypt (K ,D b ).这里,b ∈R {0,1}提交明文文件集D 1,D 2攻击者挑战者自适应询问 返回()(1)(2)(1), 0(,,,...,), 1i i T b D W W W b −=⎧⎪=⎪⎩如果如果S 提交询问关键词W (i ) 提交明文文件集D 攻击者挑战者 自适应询问 (a) 非自适应模型下不可区分性安全(b) 非自适应模型下语义安全 (c) 自适应模型下不可区分性安全(d) 自适应模型下语义安全李经纬 等:可搜索加密技术研究综述1153.2.1 SWP 方案 SWP 方案[1]在预处理过程中根据文件长度产生伪随机流S 1,S 2,…,S n (n 为待加密文件中“单词”个数),然后采用两个层次加密:在第1层,使用分组密码E 逐个加密明文文件单词;在第2层,对分组密码输出E (K ′,W i )进行处理:① 将密文等分为L i 和R i 两部分;② 基于L i 生成二进制字符串S i ||F (K i ,S i ),这里,K i =f (K ″,L i ),||为符号串连接,F 和f 为伪随机函数;③ 异或E (K ′,W i )和S i ||F (K i ,S i )以形成W i 的密文单词.查询文件D 中是否包含关键词W ,只需发送陷门T W =(E (K ′,W ),K =f (K ″,L ))至服务器(L 为E (K ′,W )的左部),服务器顺序遍历密文文件的所有单词C ,计算C XOR E (K ′,W )=S ||T ,判断F (K ,S )是否等于T :如果相等,C 即为W 在D 中的密文;否则,继续计算下一个密文单词.SWP 方案[1]通过植入“单词”位置信息,能够支持受控检索(检索关键词的同时,识别其在文件中出现的位置).例如,将所有“单词”以W ||α形式表示,α为W 在文件中出现的位置,仍按图5所示加密,但查询时可增加对关键词出现位置的约束.SWP 方案[1]存在一些缺陷:① 效率较低,单个单词的查询需要扫描整个文件,占用大量服务器计算资源;② 在安全性方面存在统计攻击的威胁.例如,攻击者可通过统计关键词在文件中出现的次数来猜测该关键词是否为某些常用词汇.Fig.5 SWP scheme图5 SWP 方案3.2.2 Z-IDX 方案Z-IDX [4]方案使用布隆过滤器作为文件索引,以高效跟踪文件中的关键词.布隆过滤器由二进制向量Mem (假设为m 位)和哈希函数族{h 1(⋅),h 2(⋅),…,h r (⋅)}(h i :{0,1}*→{1,2,…,m },i =1,2,…,r )组成,用于判断某元素是否存在于某集合中.例如,对集合S ,初始时刻,Mem 所有比特位置0.以后,对每个元素s ∈S ,置Mem [h 1(s )], Mem [h 2(s )],…,Mem [h r (s )]为1.因此,为确定待判断元素a 是否属于S ,只需检查比特位Mem [h 1(a )],Mem [h 2(a )],…, Mem [h r (a )],如果所有比特位都为1,则a 属于S ;否则a 不属于S .Z-IDX [4]构建索引的过程如图6所示,关键词通过两次伪随机函数作用形成码字存储于索引中,第1次伪随机函数以关键词W i 为输入,分别在子密钥K 1,K 2,…,K r 作用下生成x i 1,x i 2,…,x ir ;第2次伪随机函数分别以x i 1,x i 2,…, x ir 为输入,在当前文件标识符id 作用下生成码字y i 1,y i 2,…,y ir ,确保了相同关键词在不同文件中形成不同码字.另外,在布隆过滤器中加入混淆措施(随机添加若干个1)预防了针对关键词数目的攻击.判断文件D id (id 为该文件的标识符)中是否包含关键词W i :① 用户使用密钥K =(K 1,K 2,…,K r )生成W i 的陷门T i =(x i 1,x i 2,…,x ir ),这里,x ij =f (K j ,W i ),j =1,2,…,r ;② 服务器基于T i 生成W i 的码字(y i 1,y i 2,…,y ir ),这里,y ij =f (id ,x ij ),j =1, 2,…,r ;③ 服务器判断D id 的索引Mem id 的y i 1,y i 2,…,y ir 位是否全为1:若是,则W i ∈D id ;否则,D id 不包含W i .Z-IDX [4]存在一些不足:(1) 空间代价上,服务器除存储密文文件本身外,还需记录文件索引,当文件较短时,其索引可能是文件长度 第1层加密…… W 1K 1=f (K ″,S 1) E (K ′,W 1) L 1R 1 S 1 F (K 1,S 1) C 1 XOR W 2K 2=f (K ″,S 2) E (K ′,W 2)L 2 R 2 S 2F (K 2,S 2)C 2XOR W n K n =f (K ″,S n ) E (K ′,W n ) L n R n S n F (K n ,S n ) C nXOR 第2层加密明文文件116Journal of Software 软件学报 V ol.26, No.1, January 2015的数倍,空间利用率较低.文献[4]给出一个例子,只包含一个单词且长度为9字节的文件,加密后的索引 却为90字节;(2) 时间代价上,服务器检索需逐个文件地计算和判断,整个关键词查询操作时间消耗为O (n )(n 为服务器上存储文件数目),效率较低.Fig.6 Z-IDX scheme图6 Z-IDX 方案3.2.3 SSE-1方案SSE-1[6]为支持高效检索,引入额外数据结构:对任意关键词W ∈Δ:① 数组A 存储D (W )的加密结果;② 速查表T 存储W 的相关信息,以高效定位相应关键词信息在A 中的位置. SSE-1[6]构建索引过程如下所示(图7描述了一个采用SSE-1方案构建仅包含一个关键词索引的实例,其中, SKE 为使用的底层对称加密算法):1) 构建数组A初始化全局计数器ctr =1,并扫描明文文件集D ,对于W i ∈Δ,生成文件标识符集合D (W i ),记id (D ij )为D (W i )中字典序下第j 个文件标识符,随机选取SKE 的密钥K i 0∈{0,1}λ(这里,λ为安全参数),然后按照如下方式构建并加 密由D (W i )中各文件标识符形成的链表::1|()|1i W i L j D W −≤≤,随机选取SKE 密钥K ij ∈{0,1}λ,并按照“文件标识符||下一个节点解密密钥||下一个节点在数组A 的存放位置”这一形式创建链表i W L 的第j 个节点.N ij =id (D ij )||K ij ||ψ(K 1,ctr +1).这里,K 1为SSE-1的一个子密钥,ψ(⋅)为伪随机函数.使用对称密钥K i (j −1)加密N ij 并存储至数组A 的相应位置,即 A [ψ(K 1,ctr )]=SKE .Encrypt (K i (j −1),N ij );而对于j =|D (W i )|,创建其链表节点|()||()|()||0||i i i D W i D W N id D NULL λ=并加密存储至数组A ,1(|()|1)|()|[(,)].(,)i i i D W i D W A K ctr SKE Encrypt K N ψ−=;最后,置ctr =ctr +1.2) 构建速查表T对于所有关键词W i ∈Δ,构建速查表T 以加密存储关键词链表i W L 的首节点的位置及密钥信息,即:T [π(K 3,W i )]=(addr A (N i 1)||K i 0) XOR f (K 2,W i ).这里,K 2和K 3为SSE-1的子密钥,f (⋅)为伪随机函数,π(⋅)为伪随机置换,addr A (⋅)表示链表节点在数组A 中的地址.检索所有包含W 的文件,只需提交陷门32((),())W K K T W f W π=至服务器,服务器使用3()K W π在T 中找到W相关链表首节点的间接地址3[()]K T W θπ=,执行2XOR ()||K f W K θα′=,α为L W 首节点在A 中的地址,K ′为首节 点加密使用的对称密钥.由于在L W 中,除尾节点外所有节点都存储下一节点的对称密钥及其在A 中的地址,服务器获得首节点的地址和密钥后,即可遍历链表所有节点,以获得包含W 的文件的标识符.… W n 明文文件D id … x 1rx 11 x 12 W 1f (K 1,⋅)f (K 2,⋅) f (K r ,⋅) … y 1r x 21 x 22 W 2f (K 1,⋅)f (K 2,⋅)f (K r ,⋅)f (id ,⋅)y 11 y 12 … x 2r y 21y 22… y 2r f (K 1,⋅)x n x n 2 f (id ,⋅)f (id ,⋅) y 21y 22 … y 1 111 111 1 1 1 111 111 1 1 … … …… ……1 1… … … ………… 混淆 … x nr f (K 2,⋅) f (K r ,⋅)。
