改进的可搜索对称加密
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改进的可搜索对称加密
改进的可搜索对称加密
可搜索对称加密:改进的定义和高效的构造
可搜索对称加密(SSE)允许一方通过一种私有的方式把数据的存储转移到另一方,同时保持它能够有选择性地搜索。
这个问题已经是积极研究的重点,并且几个安全定义和构造已经被提出。
在本章我们开始回顾现有的安全概念,并且提出新的,更强的安全定义。
然后我们介绍在我们新的定义下显示安全的两个构造。
有趣的是,除了满足更强的安全保证,我们的构造比先前的构造更高效。
此外,对可搜索对称加密的研究以前只考虑在数据的所有者具有提交搜索查询能力的环境下。
我们考虑自然延伸,所有者以外的其他各方的任意组可以提交搜索查询。
我们正式定义在这种多用户下的可搜索对称加密,并提出一种高效的构造。
私钥存储外包,允许无论是有限的资源或是专业知识有限的客户,在低成本由于常规密钥加密是可以防止搜索加密下的大量的对称加密数据的存储和分发。
数据之一,因此客户也失去了有选择的检索自己数据段的能力。
为了解决这个问题,提出了几种技术,提供了具有搜索功能的对称加密;这种构造通常称为搜索加密。
搜索加密的领域已经被DARPA作为技术进步之一被支持,可用于保持在信息聚合系统中隐私和国家安全需求的平衡。
提供具有搜索功能的对称加密的方法之一就是根据一个所谓的安全索引,索引是一个存储文档集的数据结构,同时支持高效的关键字搜索,即给定一个关键字,索引将会返回包含关键字的文档中的文档识别符。
通俗的说,一个索引是“安全”的,如果对一个关键字的搜索操作,用户只能拥有关键字的一个“活门”,ww 并且这个活门只能生成一个密钥。
没有知识的活门,是指索引不泄露有关其内容】中Goh表明,可以根据如上所述的一个安全索引,建立的信息。
如文献
【23
一个对称搜索加密方案:客户端索引和加密它的文档集,并且发送包括加密数据的安全索引给服务器。
要搜索一个关键字,客户端生成并且发送一个关键字ww 的一个活门,服务器使用搜索操作,恢复适当的(加密)文档的识别符。
我们使用已经忘记的RAM中的Ostrovsky和Goldreich这两个人的成果,对称搜索加密能够实现其完整的通用性和具有最佳的安全性。
更确切地说,使用这些技术可以实现任何类型的搜索查询(例如,连词和转折的关键词),不泄露任何信息给服务器,甚至没有“访问模式”(即哪些文档包含关键字)。
这有强的隐私保证,但是,来自于对数的成本(在文档的数量中)每次读写文档的轮回的次数。
在一些文章中,作者展示了一个2方的解决方案,但是考虑到更大的平方根开销相当大。
因此,前面提到的搜索加密的工作试图通过弱的隐私保证实现更高效地解决方案(典型的是一或二方)。
多用户的可搜索对称加密。
以前搜索加密的工作仅考虑单用户的环境下。
我们也考虑此环境下的一种自然延伸,即多用户环境下,用户拥有数据,但是任意一组用户可以提交查询,搜索他的文档集。
所有者通过授予和撤销其他用户的搜索访问来控制搜索权限。
我们正式定义在多用户环境下的搜索加密,并且提出一个不要求身份认证的高效的构造,从而实现比单纯使用访问控制机制更好的性能。
基于私钥加密数据的搜索。
在私钥加密数据的搜索的环境下,用户对自己的数据进行加密,因此他可以使用任意方式来组织(未加密)的数据,包括额外的数据
1
结构,以便可以高效地访问相关的数据。
然后数据和额外的数据结构可以被加密,并且被存储在服务器上,使拥有私钥的某些人可以访问它。
在这种环境下,用户的初始工作(即,预处理的数据)至少和数据量一样大,但后续工作(即,访问数
据)相对于客户机和服务器上的数据都是非常小的。
此外,一切有关用户的访问模式都可以被隐藏。
基于公钥加密数据的搜索。
在公钥加密数据的搜索的环境下,加密数据的用户并不是拥有解密密钥的人。
在一个典型的应用中,一个用户在大量的发送者发送邮件到邮件服务器时公布公钥。
任何拥有公钥的人都可以加密邮件,但只有私钥的所有者能够生成“活门”来测试一个关键字的产生。
虽然,Boneh,di Crescenzo,Kushilevitz以及Persiano对带有关键字搜索的基于公钥加密(PEKS)的原始研究揭示了用户的访问模式,Boneh,Kushilevitz,Ostrovsky和Skeith 显示如何建与数立一个公钥加密方案,甚至隐藏访问模式。
然而,这种构造的搜索时间方面据库规模的平方根成正比,显然是非常无效的,所以最好的解决方案是私钥加密。
最近,Bellare,Boldyreva和O'Neill引进了公钥有效地可搜索的加密(ESE)的概念,并提出了基于随机预言的构造。
不像PEKS,ESE方案允许任何人在索引中增加字来访问一个用户的公钥,并产生活门来实现搜索。
虽然ESE方案达到最佳搜索时间(我们的构造相同——见下文),是ESE内在决定的,因此提供的安全保证比在这项工作中提到的弱。
单数据库PIR。
在单一数据库私有信息检索方面(RIP),Kushilevitz和Ostrovsky ,介绍了一个用户如何从一个服务器中检索数据,这个服务器中包含未加密的数据,但未揭示访问模式并且总的通信量少于数据规模。
这就扩展到关键字搜索,包括对数据流的搜索。
但是,我们注意到,既然在RIP中的数据经常不被加密,那么任何一个尝试隐藏访问模式的方案必须能够访问所有的数据项。
否则,服务器会得到信息:也就是说,未被访问的项并不是用户的兴趣。
因此,RIP方案需要的工作量是基于数据库规模呈线性增长的。
当然,人们可以对多个查询和多个用户分摊这项工作,以便节省每个数据库的查询工作,如文献【27, 28】,但是,所
有RIP方案的主要特点是数据从来不被加密,不像前面基于两种搜索环境下的数据加密。
在这项工作中,诚实的用户像概率多项式时间图灵机(一种可不受储存容量限
制的假想计算机)那样建模,而对手和仿真模型像多项式大小的电路那样建模(确定性)。
由于每个概率多项式时间算法可以通过一个多项式大小的电路来模拟,我们的方案比任何概率多项式时间的对手都保证安全。
,2d文档收集。
设是一本有个单词的字典,而是所有可能的文献,,(w,...,w)1d d,ploy(k)k集。
我们假设以及所有属于,的单词是中的长多项式。
更进一步,w ,n,ploy(k)2使属于的D是文档的一个集合,每一个都包含了D,(D,...,D)1n ploy(k)id(D)个单词。
而是文档D的识别号,这个识别号是任何一个能唯一识
2
D(w)别一个文档的字符串,如一个存储位置。
我们通过注释了词典顺序列表,这些顺序列表包含了中所有文档的识别符。
D SKE,(Gen,Enc,Dec)对称加密。
一个对称加密方案是一个三次多项式时间算法GenEnc的集合使得带有一个安全参数k,并且返回一个密钥;带有一个密钥K Dec和一个消息,并且返回一个密文;带有一个密钥和一个密文,并KKmcc且返回,如果是产生的一个密钥。
直观地,一个对称加密方案是一个选择Kmc 明文攻击(CPA)的安全,如果密文的输出不泄露任何有关明文的有用信息,甚
至一个敌手可以查询加密甲骨文。
在这项工作中,我们考虑一个更强的概念,我们称之为伪随机对选择明文攻击(PCPA),保证密文是难以随机区别的(在附录A中规定了一个正规的定义)。
我们注意到,常见的私钥加密方案,如AES计数器模式满足这个定义。
加密方案,我们也使用伪随机函数(PRF)和排列(PRP),使伪随机函数。
除了
得多项式时间计算函数不能通过任何概率多项式时间敌手来区分随机函数(见附录A中的一个正规的定义)。
广播加密。
一个广播加密方案是一个四次多项式时间算法
BE,(Gen,Enc,Add,Dec)的根,如下工作。
设是的用户空间,即所有可能,BE Gen的用户识别符。
k是一个概率算法,当输入一个安全参数时输出一个主密钥
G,,mkEncmk。
是一个概率算法,当输入一个主密钥,用户的一个集合和一
Addmk个消息时,输出密文。
是一个概率算法,当输入一个主密钥和一个mc U,,Dec用户识别符,输出一个用户密钥。
最后,是一个确定性算法,当,kU 输入一个用户密钥和一个密文时,输出一个消息或是失败符号。
非正,,kcmU G式地,一个广播加密方案是安全的,如果其密文泄露了不在中有关任何用户的消息都没用的信息。
可搜索对称加密的定义
我们通过回顾一个可搜索对称加密方案的正规定义开始了我们的工作。
参与单用户搜索加密方案的人员包括希望在一个可靠却不常见的服务器上存储一份加密文档的用户,使得(1)服务器将不会得到任何收集的有用信息;D,(D,...,D)1n
(2)服务器通过收集和向客户端返回适当的文档(加密),从而能够检索。
我们考虑以上文档的搜索,当然,任何搜索加密方案只要文件被标记为关键字的任意文件集都有如下的描述(如图像和音频文件)。
定义4.1(可检索对称加密)在一个词典,上的一个基于索引的可检索对称加密SSE,(Gen,Enc,Trpdr,Search,Dec)方案是一个五次多项式时间算法的集合,使得
3
k:是一种概率密钥生成算法,在客户机上运行已安装该方案。
当输K,Gen(1)
入一个安全参数k,则会输出一个密钥。
K
(I,c),Enc(K,D):是一种在客户机上运行加密文档集的概率算法。
当输入一个密钥和文档集,则输出一个安全索引和密文的一KID,(D,...,D)c,(c,...,c)1n1n 个序列。
我们有时将其写作。
(I,c),Enc(D)K t,Trpdr(K,w):是一种运行于客户机上给定一个关键字产生一个活门的确定性的算法。
它将密钥和关键字作为输入,则将会输出一个活门。
我们有时将Ktw 其写作。
t,Trpdr(w)K
X,Search(I,t):是一种确定性算法,运行于服务器上以搜索中包含关键字Dw
的文档。
它将针对数据集的一个加密索引和一个活门作为输入,则会输出DIt 。
一系列的(字典排序的)文档识别符X
:是一种运行于客户端上恢复文档的确定性的算法。
当其输入D,Dec(K,c)ii 一个密钥和一个密文,则输出一个文档。
有时我们将其写作KDcii。
D,Dec(c)iKi
k,N一个基于索引的可检索对称加密方案是正确的,如果对于所有的,对
,k(I,c)于所有的,输出,对于所有的,对于所有的,输出KGen(1)D,2
w,,,对于所有, Enc(D)K
1,i,n,其中。
Search(I,Trpdr(w)),D(w),Dec(c),DKKii
以前定义的局限性。
迄今为止,可检索加密方案的两种关于安全的定义已经被使用:Goh提出针对不可区分性的可选关键字攻击(IND2-CKA)的安全定义,Chang和Mitzenmacher提出了基于模拟的安全定义。
直观地说,IND2-CKA所实现的安全性可被描述如下:给定访问索引,对方(即服务器)仍不能得到关于重要文档的一丁点信息,这些信息也不能通过来自客户机的活门来获取。
对方欺骗客户机以产生解密文档和获取可选关键字(例如,被选关键字攻击)相关的索引和活门。
在附录B 中IND2-CKA被提出了正规的说明。
我们都认为,Goh的研究解决了一个有很多用处的安全索引问题,其中的一大用处便是可搜索加密。
正如Goh自己所说的,IND2-CKA 并不明确要求活门是安全的,因为这并不是所有安全索引应用的一个要求。
4
尽管可能诱惑人们来补救这种情况,通过引进一个第二定义来保证活门不泄露任何信息,这在一个简单的方式下是不能做的。
事实上,正如我们在附录B中所示,证明一个可搜索对称加密是IND2-CKA的,然后证明其活门是安全的(在附录B 中有精确的意义),这并不意味着对
方不能恢复被查询的字(可搜索加密的一个必然要求)。
再来看一看已存在的模拟基础上的定义,Chang和Mitzenmacher在文献【18】中所提供的对可搜索对称加密的安全定义中,由于需要一个方案来输出安全活门,从而在某种意义上认为比IND2-CKA更强壮。
不幸的是,正如我们在附录B中所示,这个定义在可搜索对称加密方案中却不尽人意,甚至是不安全的,更有甚者,这个定义本身是不适应的。
5高效安全的可搜索对称加密
我们现在介绍我们的可搜索对称加密构造,并且在第4节中规定了其在安全性方面的定义。
我们开始引进一些在构造中使用的额外的记号和数据结构。
设,(D),,,(D),,是文档集中不同的关键字的集合,并且也是文档中DD,D不同的关键字的集合。
我们假设中的关键字能够使用至多l位表示。
此外,回, D(w)顾是集合中文档的数量,并且是中按字典排序包含关键字的文档的Dnw识别符的集合。
我们使用几种数据结构,包括数组,链表和查找表。
给定一个数组,我们A A[i]记在第个位置的元素为,并且元素的位置相对于数组记作。
iAxaddr(x)A A[i],x因此,如果,则。
此外,具有个节点的一个链表L存储在addr(x),inA
1,i,n一个数组中是一系列的节点,其中,并且是AN,,v,addr(N),viiAi,1i 一个任意的字符串,是链表中下一个节点的内存地址。
我们用表#Laddr(N)Ai,1 示链表中节点的数量。
L
5.1一个高效的非适应性的安全构造(SSE-1)
我们首先给定一个单用户非适应性安全的可搜索对称加密构造的概述。
首先,集合中的每个文档都是使用对称加密方案加密的。
我们再构造一个由两个D 数据结构组成的单一索引: I
w,,(D)D(w)A:对于所有的,在一个数组中,我们存储集合的一个密码。
w,,(D)T:对于所有的,在一个查找表中,我们存储信息,使得能够找到和解密A中适当的元素。
对于每个不同的关键字,我们首先创建一个链表,其中链表中w,,(D)Lii的每个节点都包含中的一个文档的识别符。
然后我们在置换的数组中随AD(w)i
5
机地存储所有链表中的所有节点,并且对随机生成的密钥进行加密。
对链表的Li
j,1j第个节点加密之前,对链表的第个节点增加一个指针(考虑),和密ALi 钥一起加密它。
这样,给定中的一个位置和链表中的第1个节点的解密密钥,ALi
服务器将能够找到并且解密链表中所有的节点。
注意,所有链表中的节点LLii 都是按随机顺序存储的,每个单独的链表的长度是被隐藏的。
Li 然后,我们建立一个查找表,使得允许找到和解密每个链表中的第一个TLi 中的每条对应于一个关键字,并且由一对<地址,值>节点。
查找表T w,,(D)i 组成。
值域包括的位置和每一个链表中的第1个节点的解密密钥。
值是自身ALi
使用伪随机函数的输出进行加密的。
其他的域,地址,是找到表中的一个条目T
是通过间接寻址进行管理的(如下所述)。
的简单使用。
查找表T
客户端在明文文本文档集的基础上生成和,并且将它们和加密的文档DAT
一起存储在服务器上。
当用户想恢复包含关键字的文档时,计算查找表中相Twi
应条目的解密密钥和地址,并且将它们发送给服务器。
服务器找到并解密查找表中给定的条目,得到链表中的第1个节点的指针和解密密钥。
因为链表中TLLii 的每个节点包含一个指向下一个节点的指针,因此服务器能够找到并且解密链表D(w)中的所有节点,泄露在中的识别符。
Li
高效的存储和稀疏表的访问。
我们描述间接寻址方法,以便有效地管理查找表。
一个查找表的条目是一个元组<地址,值>,其中地址字段是使用一个虚拟地址l去寻找包含一些值域的查找表中条目。
给定
一个参数,一个虚拟地址是来自
T
ll于指数大小的域,即来自。
然而,一个查找表的条目的最大数量是含有的{0,1}
ploy(l)来表示。
如果,对于一个查找表,地址多项式,因此,虚拟地址使用T lv字段来自于,值域来自于,并且中至多有个条目,则我们称是
TT{0,1}{0,1}s
lv一个的查找表。
({0,1},{0,1},s)
Addr设是虚拟地址的集合,其用于查找表T的条目。
我们能够有效地存储T,使得当给定一个虚拟地址,则它返回相关的值域。
在一个所谓的FKS字典O(|Addr|)O(1)Addr中,我们通过组织来实现它。
对于一个要求存储和查找时间的稀疏表的存储,是一个高效的数据结构。
换句话说,给定一些虚拟地址,a
6
a,Addr我们能够得出,如果,则在连续的查找时间内返回相关的值。
地址在Addr被认为是没有定义的。
我们详细的构造。
我们现在正准备构造的详细过程。
设SKE1和SKE2分别是fPCPA-安全对称加密方案。
此外,我们使用一个伪随机函数和两个伪随机参数和如下: ,,
k,log(s)kl2; f:{0,1},{0,1},{0,1}
kll; ,:{0,1},{0,1},{0,1}
log(s)log(s)k22,,:{0,1},{0,1},{0,1}其中是在最小单位下加密文档集的总大小,其中最小单位是一个关键字最小概s
率的大小(如,一个字节),设是一个包含个非空单元格的数组,设是一ATs k,log(s)l2个的查找表,以前使用被描述的间接寻址管理。
我们的({0,1},{0,1},|,|)
构造见图1的描述。
kskk:样品,生成,输出K,K,K,,,{0,1}K,SKE2.Gen(1)Gen(1)1234
K,(K,K,K,K)1234
: Enc(D)K
初始化:
,(D)1.观察,并且生成不同关键字的集合 D
w,,(D)D(w)2.对于所有的,生成
ctr,13.初始化一个全局计数器
建立数组A:
1,i,,(D)4.对于,建立一个含有N个节点的链表,并且在数组中存Ai,j
储,如下:
skK,,,{0,1}(a)样品的一个密钥 ,0i
(b)对于: 1,j,|D(w)|,1i
jid(D)设是在中的第个识别符 D(w)i,ji
kK,SKE1.Gen(1)生成密钥 i,j
创建一个节点N,,id(D)||K||,(ctr,1), i,ji,ji,jK1
7
在密钥下加密节点,并且在中存储: KNAi,j,1i,j
A[,(ctr)],SKE1.Enc(N) KKi,j1i,j,1
设置ctr,ctr,1
(c)对于的最后节点, Li
kN,,id(D)||0||NULL,设置最后一个节点的地址为空,|()|,|()|iDwiDwii 在密钥下加密节点,并且在中存储:KNAi,|D(w)|,1i,|D(w)|ii
A[,(ctr)],SKE1.Enc(N) KKi,|D(w)|1i,|D(w)|,1ii
ctr,ctr,1 设置
,,,s,|D(w)|s,ss,s5.设。
如果,然后设置的剩余个条目是AA,iw,,(D)i ,s的现有的个条目大小相同的随机值。
6.对于所有的,设置
T[,(w)],,addr(N)||K,,f(w)w,,(D)KiAi,1i,0kii32
|,(D)|,|,||,|,|,(D)|7.如果,然后设置的剩余个条目是的现有的TT |,(D)|个条目的随机值
准备输出:
1,i,n8.对于,设置c,SKE2.Enc(D) iKi4
I,(A,T)(I,c)9.输出,其中, c,(c,...,c)1n
:输出t,(,(w),f(w)) Trpdr(w)KKK32
Search(I,t):
(,,,),,T[,]1.解析为,并且设置 t
,,,,,,||K,,,,2.如果,则解析为,并且继续,否则返回 ,
,3.使用密钥K去解密A中的存储在地址为的列表L的开始节点 ,4.输出包含L 的文档识别符的列表
D,SKE2.Dec(c):输出 Dec(c)iKiKi4
图1:一个非自适应安全SSE方案(SSE-1)
8
f定理5.1.如果是一个伪随机函数,如果和是伪随机排列,并且如果SKE1,, 和SKE2是PCPA-安全,则SSE-1是非自适应安全。
6 多用户搜索加密
在本节中,我们考虑SSE的一个用户拥有一个文档集的环境下的自然延伸,但是任意一组用户都能提交查询到搜索集。
在一个新的环境下一个熟悉的问题出现了,即管理访问权限的同时考虑服务器的保留隐私。
我们首先提出一个多用户搜索加密方案的(MSSE)和一些其可取的安全性能,其次是一个高效率构造,实质上,是结合一个广播加密方案的单用户SSE方案。
定义6.1(多用户可搜索对称加密)一个基于索引的多用户SSE方案是一个七次MSSE,(Gen,Enc,Add,Revoke,Trpdr,Search,Dec)多项式时间算法的集合,这样k:是通过运行所有者创立的方案的一个概率密钥生成算法。
如果K,Gen(1)O k,则输出一个所有者的密钥。
输入一个安全参数KO
:是运行所有者加密文档集的一个概率算法。
当输(I,c,st,st),Enc(K,G,D)OSO G,,入所有者的密钥,一个授权的用户集,一个文档集。
输出一个安全DKO 索引,一系列密文,一个所有者状态和一个服务器状态。
有时我们将IststcOS 其记作。
(I,c,st,st),Enc(G,D)OSKO
:是运行一个所有者添加一个用户的一个概率算法。
当(K,Add(K,st,U)UOO
UU输入所有者的密钥和一个状态,以及一个唯一的用户标识符,输出的KstOO 密钥。
有时我们将其写作。
(K,Add(st,U)KUKOUO G:是运行所有者从中删除一个用户的概率算法。
(st,st),Revoke(K,st,U)OSOO U当输入用户的密钥和状态,以及一个唯一的用户标识符。
输出一个更KstOO 新的所有者状态和一个更新的服务器状态。
有时我们将其记作ststOS
(st,st),Revoke(st,U)。
OSKOO
9
O:是运行一个用户(包括)产生一个关键字的活门的一个确t,Trpdr(K,w)U
U定性算法。
当输入一个用户的密钥和一个关键字,输出一个活门或者KtwU 失败符号。
有时我们将其写作。
,t,Trpdr(w)KU S:是运行一个服务器执行搜索操作的一个确定性的算法。
X,Search(st,I,t)S 当输入一个服务器状态,一个索引和一个活门,输出一个集合ItstS
[1,n],其中是失败符号。
,X,2,{,}
:是运行用户恢复一个文档的一个确定性算法。
当输入一个用D,Dec(K,c)iUi 户密钥和一个密文,输出一个文档。
有时我们将其写作。
D,Dec(c)KcDiKiUiiU
一个多用户方案的安全可以类似于一个单用户方案的安全来定义,作为服务器不应该得到一些关于超越了访问和搜索模式的推断范围的文档和查询。
在这个新的环境下的一个独特的属性是撤销,本质山是要求一个被撤销的用户不再能执行搜索所有者的文档。
10。