1.可搜索加密概述
随着云计算的逐渐推广,越来越多的敏感信息被送到云端,如邮件、个人健康记录、公司合同文件、商业秘密等。为了防止敏感数据的隐私泄露和非法访问,越来越多的企业和用户选择将数据加密后上传到云端。然而,加密又带来数据的搜索难题,如果将文件下载解密后查询,则由于下载了不需要的文件而浪费了用户的大量网络开销和存储开销,且进行解密和查询也需要大量计算开销。如果数据不能在云端被搜索和使用,那么把数据存储在云端除了可以减轻本地管理负担之外并没有其他任何实际应用意义。人们希望由具有强大计算能力的云服务器进行检索,由于云服务器通常是“诚实且半可信”的,若直接把密钥发送给云服务器,则用户的隐私将暴露在云服务器面前。关键字搜索技术允许用户只取回感兴趣的文件,但数据的加密对用户进行关键字搜索产生很大的限制。另外,关键字本身也包含了与数据文件相关的重要信息,为了保护用户数据的隐私性,有时也需要对关键字进行加密,这使得数据搜索更加困难。为了解决这类问题,出现了可搜索加密(Searchable Encryption,SE)。
可搜索加密使用户具有在密文域上进行关键字搜索的能力。主要解决当数据加密存储在云端时,服务器不完全可信的前提下如何利用服务器来完成安全的关键词搜索。在可搜索加密方案中,用户将自己的数据加密,同时把关键词提取出来并进行加密,随后生成基于密文关键词的数据索引文件,并发送到云服务器中存储;当需要搜索云端存储的密文数据时,发送一个关键词陷门信息给云服务器,这里要求陷门不能泄露关键词的任何信息。云服务器在索引上执行检索,并返回对应的数据密文给用户,要求云服务器除了能知道密文文件是否包含某个特定关键词外,无法获得更多信息。用户在本地完成解密操作并最终获得所要查询的数据文件。主要分为4步。
(1)文件加密:数据产生者在本地使用加密密钥对将要上传的文件进行加密,并将密文上传服务器。
(2)陷门生成:经过数据产生者授权的数据使用者使用密钥对将要查询的关键词生成陷门,发送给云服务器。
(3)查询检索:云服务器对数据使用者提交的陷门和每个上传文件的索引表进行检索,返回包含陷门关键词的密文文件。
(4)文件解密:数据使用者使用解密密钥对云服务器返回的密文文件进行解密。
2.对称可搜索加密
可搜索加密主要包括对称可搜索加密(Symmetric Searchable Encryption,SSE)和非对称可搜索加密(Asymmetric Searchable Encryption,ASE)两种类型。二者在功能和性能方面有不同的侧重点,分别用来解决云计算不同场景下的业务需求问题。在对称环境下,数据的产生者、搜索凭证的产生者以及解密者都是同一个用户。对称可搜索加密体制使得一个用户以私有的方式将自己的数据远程存储在一个半可信的云端服务器上,并保留选择性恢复所需文件的能力。在非对称环境下,数据的产生者、搜索凭证的产生者以及解密者可以是不同的用户实体。
对称可搜索加密通常用于用户上传数据供自己搜索的场景。
定义在字典Δ={W1,W2,…,Wd}上的对称可搜索加密算法可描述为五元组:
其中:
(1)K=KeyGen(λ):输入安全参数λ,根据安全参数输出加密密钥K。
(2)(I,C)=Encrypt(K,D):输入密钥K和明文文件。D是明文文件集合,D=(D1,D2,…,Dn),输出文件索引I和密文文件集C=(C1,C2,…,Cn),部分方案不需要生成索引。
(3)Tw=Trapdoor(K,W):输入需要查询的关键词W,输出关键词W对应的陷门Tw。(www.daowen.com)
(4)D(W)=Search(I,Tw):输入生成的陷门Tw以及文件的索引I,输出包含关键词W的文件集合D(W)。
(5)Di=Decrypt(K,Ci):输入密钥K和返回的密文文件Ci,输出明文文件Di。
如果对称可搜索加密方案SSE是正确的,那么对于∀λ∈N,n∈Z,W∈Δ,D=(D1,D2,…,Dn)以及Key Gen(λ)和Encrypt(K,D)输出的K和(I,C),都有Search(I,Trapdoor(K,W))=D(W)和Decrypt(K,Ci)=Di成立。
在对称可搜索加密应用场景中,数据生成方和搜索方共享私钥。该方案优点是搜索效率高,缺点是对搜索索引更新的操作比较烦琐,效率不高,而且不能完全支持合取或析取的关键字搜索。
3.非对称可搜索加密
非对称可搜索加密用于用户上传数据由第三方搜索。用户将数据加密后上传到服务器中,若其他用户得到授权,则可使用数据持有者的公钥根据所需的关键词生成陷门信息进行搜索。
由于对称密码体制自身的限制,SSE若用在多用户场景下,用户之间需要事前构建某种安全信道来传递秘密信息,进而实现数据的加密上传与检索。相比之下,基于公钥密码体制的可搜索加密则无须事先建立安全信道就可以实现用户在公共网络中的保密通信和安全检索,适用于两方持有不同密钥的应用场景,优点是能够灵活地支持复杂搜索,缺点是效率低。
Boneh等人首次将可搜索加密技术应用到非对称密码学中,提出PEKS(Public Key Encryption with Keyword Search)的概念。非对称密码体制下可搜索加密算法可描述为
(1)(pk,sk)=KeyGen(λ):λ是安全参数,该算法根据安全参数生成公钥pk和私钥sk。
(2)CW=Encrypt(pk,W):利用生成的公钥pk和加密文件的关键词W,生成关键词密文CW。
(3)TW=Trapdoor(sk,W):利用生成的私钥sk和用户输入的关键词W,生成关键词W的陷门TW。
(4)b=Test(pk,CW,TW):根据生成的公钥pk、关键词W的陷门TW和关键词密文CW计算匹配相似度,输出判定值b∈{0,1}。
PEKS允许任何知道接收方公钥的人都可以将关键字可搜索密文提交至服务器,包含加密后的文件以及提取出来的关键字。当接收者需要检索包含某个关键字的密文时,向云服务器提交一个检索陷门;然后服务器在不知道文件和关键字原始明文的情况下,检索到包含该关键字的所有密文,并将文件的密文发送给接收者;最后接收者将该密文解密后得到自己需要的检索结果。PEKS允许在不泄露关键字信息的条件下,公钥生成的密文可以被判定是否含有指定的关键字。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。