CN108055122A - 可验证的防内存泄露动态可搜索加密方法、云服务器 - Google Patents

可验证的防内存泄露动态可搜索加密方法、云服务器 Download PDF

Info

Publication number
CN108055122A
CN108055122A CN201711146556.1A CN201711146556A CN108055122A CN 108055122 A CN108055122 A CN 108055122A CN 201711146556 A CN201711146556 A CN 201711146556A CN 108055122 A CN108055122 A CN 108055122A
Authority
CN
China
Prior art keywords
search
verify
data owner
vht
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711146556.1A
Other languages
English (en)
Other versions
CN108055122B (zh
Inventor
陈晓峰
管文浩
王剑锋
王贇玲
袁浩然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201711146556.1A priority Critical patent/CN108055122B/zh
Publication of CN108055122A publication Critical patent/CN108055122A/zh
Application granted granted Critical
Publication of CN108055122B publication Critical patent/CN108055122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于云计算技术领域,公开了一种可验证的防内存泄露动态可搜索加密方法、云服务器,包括:数据拥有者,用于建立索引和加密文件集,并将索引和加密文件集外包给云服务器,同时向云服务器提交关键词陷门搜索相关文件,并对返回的搜索结果进行验证;数据拥有者也可以对加密文件集进行更新;云服务器,用于存储加密文件集和索引,根据陷门在索引上搜索,返回相应的结果和证据,并根据数据拥有者的更新操作更新相应的证据。本发明提出了第一个同时实现防内存信息泄露和可验证的动态对称可搜索加密方案,保证了密钥的安全性、搜索结果的正确性和完整性;解决了物理不可克隆函数密钥产生不稳定的问题,建立了一个更可靠的密钥产生机制。

Description

可验证的防内存泄露动态可搜索加密方法、云服务器
技术领域
本发明属于云计算技术领域,尤其涉及一种可验证的防内存泄露动态可搜索加密方法、云服务器。
背景技术
在信息化时代,互联网上汇聚的资源越来越多。为了高效的管理和利用互联网资源,云计算作为一种可扩展的和高吞吐量的计算范式出现在人们的视线中。云计算可以提供强大的数据存储能力,越来越多的个人和公司愿意将数据外包给云服务器。云外包存储服务可以减少数据拥有者巨大的本地数据管理开销。然而,数据外包也会不可避免的带来一些数据安全与隐私问题。因此,数据拥有者通常将数据加密后外包,但这带来了如何在密文上进行关键字检索的问题。为了解决这种困境,现有技术可搜索加密(searchableencryption,SE)允许客户端将文件集以密文的形式外包给云服务器,同时客户端仍然保有关键字检索的能力。根据使用的加密算法,可搜索加密可以分为对称可搜索加密(searchable symmetric encryption,SSE)和公钥加密关键字搜索(public keyencryption with keyword search,PEKS)。与SSE相比,现有技术的PEKS可以实现更丰富的查询功能,但在处理大量数据时比SSE要低效。由于云环境中处理的数据量巨大,相比PEKS,SSE更适合用来构建云计算应用。SSE的安全性包含两方面:一是索引和搜索陷门可能泄露一些不应该暴露给云服务器的敏感信息;二是一个恶意服务器可能会因为利益原因返回不正确的搜索结果。一个安全的SSE方案应该拥有安全的索引和陷门构造,且面对恶意服务器时,客户端有能力验证搜索结果的正确性和完整性。关于构建安全的SSE方案研究现在已经有许多,但目前存在一些快速有效的物理攻击,如侧信道攻击,可以轻松的获取用户存储在非易失性内存中的秘密信息,使得现有绝大多数SSE方案中的索引与陷门不再安全。现有技术中唯一的防内存泄露的动态SSE方案是由Dai[Dai S,Li H,Zhang F.Memory Leakage-resilient Searchable Symmetric Encryption[J].Future Generation ComputerSystems,2016,62:76-84]提出的,该方案通过用物理不可克隆函数(physicallyunclonablefunctions,PUFs)代替存储在非易失性内存中的长期信息来抵抗内存攻击;但该方案假设云服务器是诚实且好奇的,也就是没有考虑恶意服务器的情况,客户端不具有验证搜索结果的能力。
综上所述,现有技术存在的问题是:现有的对称可搜索加密方法无法同时抵抗内存攻击和恶意服务器,具体表现为以下两方面:其一,现存的针对恶意服务器的可验证的对称可搜索加密方法都是简单的假设密钥存储在非易失性内存中,一旦攻击者利用侧信道攻击等方法获取内存中的密钥,这些可验证的对称可搜索加密方法的验证都将失效;其二,现存的抵抗内存攻击的对称可搜索加密方法无法对搜索结果进行验证。
发明内容
针对现有技术存在的问题,本发明提供了一种可验证的防内存泄露动态可搜索加密方法、云服务器。
本发明是这样实现的,一种可验证的防内存泄露动态可搜索加密方法,所述可验证的防内存泄露动态可搜索加密方法通过结合物理不可克隆函数与秘密分享技术来构建分享,使用密钥时利用分享恢复密钥,而不在非易失性内存中存储任何秘密信息,从而达到抵御内存攻击的目的;一种结合Merkle哈希树和二叉搜索树特点的二叉树VHT被用来构建安全的索引,对文件集的更新就是对VHT上节点的更新;对VHT根节点的哈希值和计数器进行MAC计算,在索引上的搜索路径和MAC值会作为证据返回给数据拥有者,数据拥有者通过搜索路径重新计算VHT根节点值,并与本地保存的计数器进行MAC计算,然后与返回的MAC比较,若相同,则验证通过,否则验证失败;云服务器需要对本地保存的计数器进行签名,确保计数器的有效性。
其中,在VHT上的每一个节点N都是一个元组(nkey,v,cl,cr,hN),其中nkey表示节点N的键(key),v表示节点N的值(value),cl和cr分别表示节点N的左右孩子节点,hN表示节点N的哈希值,定义为节点N的键大于左子树上所有节点的键,小于右子树上所有的键。
进一步,所述可验证的防内存泄露动态可搜索加密方法使用防碰撞的哈希函数PCPA-安全的对称加密算法E1=(Enc1,Dec1)和E2=(Enc2,Dec2),其中 伪随机置换消息认证码和一个安全的签名方案SIGN,如BLS短签名,其中d表示字典中包含的关键字数。
进一步,所述可验证的防内存泄露动态可搜索加密方法包括以下六个算法:
KeyGen(1λ):输入安全变量λ,产生密钥K;数据拥有者随机选择t个(n1,d1,m1)-PUF,一个n1比特字符串s和一个秘密信息a0
给定文本集关键字集合公共参数PP和密钥K,数据拥有者运行这个概率算法产生加密文件集搜索索引和客户端状态σ;
TrapGen(w,K,PP):给定一个查询关键字w∈Δ,Δ为包含所有可能关键字的字典,数据拥有者运行该算法产生一个w的陷门;
索引当接受到陷门TKw时,云服务器在索引上匹配陷门;
Verify(R(w),τ,K,PP,σ):数据拥有者运行验证算法验证搜索结果的有效性;当证据τ通过验证时,数据拥有者接受搜索结果R(w),否则拒绝;
Update(op,K,PP):op={upd,c,W′}表示更新操作,其中upd表示更新类型,c表示更新的文件,W′表示更新的关键字集;根据op,数据拥有者分别进行不同的更新操作。
进一步,所述KeyGen(1λ)中,每一个物理不可克隆函数为:
计算:
ri=PUFi(s),(zi,hdi)←FE.Gen(ri),i∈[1,t];
其中FE=(FE.Gen,FE.Rep)是一个(n1,d1,m1)模糊提取器;数据拥有者选择一个同时大于a0和t的素数p,构造一个在有限域里的k-1次多项式f(x):
f(x)=a0+a1x+…+ak-2xk-2+ak-1xk-1modp;
其中a1,…,ak-1是从[0,p)里均匀随机选取的整数;数据拥有者计算分享:
输出公共参数PP={f1,…,ft,hd1,…,hdt,s,p}和密钥K={PUF1,…,PUFt}。
进一步,所述中,数据拥有者随机从K中选择k个物理不可克隆函数。表示被随机选中的物理不可克隆函数,其中ti∈[1,t];对所有i∈[1,k],计算:
结合相应的分享恢复多项式f(x)并计算出a0=f(0)。构造索引对每一个关键字j∈[1,m],数据拥有者建立其中表示文件集中包含关键字wj的标识符集合,表示关键字wj的字典序;将转化为一个l比特长字符串Vw,l>n;对于i∈[1,l],当且仅当时,同时,数据拥有者计算:
建立可验证哈希表VHT,对于j∈[1,m],VHT上的每一个节点是一个元组其中是键,是值,cl和cr表示节点的左右孩子节点;节点的哈希值定义为:
用hroot表示VHT根节点的哈希值。数据拥有者设置计数器T=1,并计算:
建立加密文件集对于每一个DBi,i∈[1,n],数据拥有者计算:
K3=H1(a0‖id(DBi)‖1),
K4=H1(a0‖id(DBi)‖2),
设置ci拥有和DBi一样的标识符,数据拥有者将T和用户标签ID发送给云服务器,云服务器计算签名δ=SIGN(T‖ID),并返回给数据拥有者。最后,该算法输出 和σ={T,δ}。数据拥有者外包给云服务器,本地保存σ。
进一步,所述TrapGen(w,K,PP)中,数据拥有者需要恢复a0并计算:
数据拥有者将TKw发送给云服务器。
进一步,所述的中,云服务器在索引上搜索键等于TKw的节点,若找到这样的节点N',设R(w)←(N',N');否则设键大于TKw的节点中的最小的为Nbig,键小于TKw的节点中的最大的为Nsmall,R(w)←(Nbig,Nsmall);将搜索路径记为证据τ,返回给数据拥有者R(w)和τ。
进一步,所述Verify(R(w),τ,K,PP,σ)中,数据拥有者从密钥K中恢复a0并检验:
两个等式成立,数据拥有者就接受R(w)并继续接下来的验证,否则输出⊥;
如果接受的R(w)是一样的节点组成,数据拥有者计算:
并将Vw发送给云服务器;云服务器根据Vw返回相应的密文集对于每一个密文文件数据拥有者检查其中K4=H1(a0‖id(DBi)‖2);等式成立,数据拥有者输出否则输出⊥;
接受的R(w)是由两个不一样的节点组成,设并输出⊥。
进一步,所述Update(op,K,PP)根据op,数据拥有者进行:
修改:op={modify,ci,W′},数据拥有者想将ci修改成ci′,对于每一个关键字wj∈W′,数据拥有者产生相应的陷门并获取搜索结果R(wj);R(wj)通过验证数据拥有者从R(wj)中恢复并设加密以替换每一个关键字wj都更新后,设T←T+1,计算新的根节点哈希值hroot′以及发送(ci′,hroot′,β′,T,ID)和给云服务器;云服务设置hroot←hroot′,β←β′,ci←ci′,用更新VHT并计算δ′=SIGN(T‖ID);云服务器将δ′发送给数据拥有者,如果δ′是有效的,则数据拥有者设置δ←δ′;
删除:op={delete,ci,W′},将ci修改为字符delete,并对每一个wj∈W′,
添加:op={add,cn+1,W′},数据拥有者添加一个新文件cn+1,对于每一个新关键字wj∈W′,数据拥有者产生相应的陷门获取搜索结果R(wj),并验证数据拥有者在搜索路径的最后一个节点上创建一个孩子节点每一个关键字wj都更新后,设T←T+1,计算新的根节点哈希值hroot′以及发送(cn+1,hroot′,β′,T,ID)和给云服务器;云服务设置hroot←hroot′,β←β′,插入cn+1,用更新VHT并计算δ′=SIGN(T‖ID);云服务器将δ′发送给数据拥有者,如果δ′是有效的,则数据拥有者设置δ←δ′。
本发明的另一目的在于提供一种应用所述可验证的防内存泄露动态可搜索加密方法的云服务器。
本发明基于物理不可克隆函数和可验证哈希表VHT,是第一个同时实现抵抗内存攻击和搜索结果可验证的对称可搜索加密方案。为了实现抵抗内存攻击,本发明不在非易失性内存中存储任何秘密信息,而是利用物理不可克隆函数的输出实时的产生密钥。由于物理不可克隆函数仅能通过物理系统实现,且不可克隆,确保了内存攻击者无法获取任何秘密信息。同时,本发明将物理不可克隆函数与秘密分享技术相结合,解决了物理不可克隆函数密钥产生不稳定的问题,即使一些物理不可克隆函数损坏,仍然可以通过剩余的物理不可克隆函数恢复密钥;为了实现搜索结果可验证,本发明利用可验证哈希表构建安全的索引。如果服务器恶意篡改搜索结果,可验证哈希表的完整性就会被破坏,导致通过搜索路径计算的根节点哈希值无法通过验证。同时,根节点哈希值与一个计数器绑定,阻止了重放攻击。
与Dai的防内存泄露可搜索加密方案[DaiS,LiH,ZhangF.Memory Leakage-resilientSearchableSymmetricEncryption[J].FutureGenerationComputer Systems,2016,62:76-84]相比,本发明增加了搜索结果可验证性,提高了安全性,并且本发明还降低了空间复杂度(如表1所示)。表1中d表示字典中包含的关键字数,m表示外包的文件集中包含的关键字数。
表1方案比较
附图说明
图1是本发明实施例提供的可验证的防内存泄露动态可搜索加密方法流程图。
图2是本发明实施例提供的查找表示意图。
图3是本发明实施例提供的关键字数目相同时的索引建立时间(关键字数4000)示意图。
图4是本发明实施例提供的文件数目相同时的索引建立时间(文件数4000)示意图。
图5是本发明实施例提供的关键字数目相同时的搜索时间(关键字数4000)示意图。
图6是本发明实施例提供的文件数目相同时的搜索时间(文件数4000)示意图。
图7是本发明实施例提供的文件数为4000时的验证时间示意图。
图8是本发明实施例提供的文件数目相同时的添加操作时间(文件数4000)示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
对称可搜索加密(searchable symmetric encryption,SSE)允许数据拥有者将自己的加密数据外包给云服务器,并能够对外包的加密数据进行关键字检索。SSE已经成为了云计算领域的重要技术。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的可验证的防内存泄露动态可搜索加密方法包括以下步骤:
步骤一,设置:数据拥有者扫描外包文件集,建立安全的索引,并加密文件集,将索引与加密文件集外包给云服务器;
步骤二,搜索:数据拥有者生成待检索关键字的陷门,并将陷门发送给云服务器;云服务器利用陷门在索引上检索,返回给数据拥有者搜索结果和证据。数据拥有者验证证据的有效性,若通过验证,则接受搜索结果,否则拒绝;
步骤三,更新:数据拥有者更新加密文件集和索引上相应的关键字,并对云服务器保存的证据进行更新。
下面结合附图对本发明的应用原理作进一步的描述。
1、本发明利用物理不可克隆函数取代长期信息,将每一个物理不可克隆函数的输出作为秘密分享技术中的一个输入来构建相应的分享,秘密信息不用存储在非易失性内存中。一旦一个物理不可克隆函数损坏,仍然可以使用剩余的物理不可克隆函数来恢复所用的秘密信息。可验证哈希表VHT被用来构建安全的索引。VHT根节点的哈希值可以用来作为证据验证搜索结果。在VHT上,每一个节点对应一个关键字。由于VHT拥有二叉搜索树的性质,在VHT上进行搜索是高效的,并且对关键字的更新就是对VHT上相应节点的更新。为了阻止重放攻击,将VHT根节点哈希值与计数器进行绑定,并且服务器需要对计数器进行签名来确保计数器的有效性。密文数据的完整性则可以通过MAC函数来解决。
1.1在表2中总结了方案中使用的符号含义。为了不失一般性,假设在DB中文件拥有一样的长度,即对所有i∈[1,n],DBi∈{0,1}q
表2符号定义
1.2具体构造
是防碰撞的哈希函数。E1=(Enc1,Dec1)和E2=(Enc2,Dec2)是PCPA-安全的对称加密算法,其中此外,还用到了伪随机置换消息认证码和一个安全的签名方案SIGN,如BLS短签名,其中d表示字典中包含的关键字数。本发明是由如下6个算法(KeyGen,Enc,TrapGen,Search,Verify,Update)组成:
KeyGen(1λ)
λ是安全变量。数据拥有者运行这个算法产生密钥K。首先,数据拥有者随机选择t个(n1,d1,m1)-PUF,一个n1比特字符串s和一个秘密信息a0。每一个物理不可克隆函数如下所示:
计算:
ri=PUFi(s),(zi,hdi)←FE.Gen(ri),i∈[1,t];
其中FE=(FE.Gen,FE.Rep)是一个(n1,d1,m1)模糊提取器。接着,数据拥有者选择一个同时大于a0和t的素数p,构造一个在有限域里的k-1次多项式f(x):
f(x)=a0+a1x+…+ak-2xk-2+ak-1xk-1modp;
其中a1,…,ak-1是从[0,p)里均匀随机选取的整数。最后,数据拥有者计算分享:
输出公共参数PP={f1,…,ft,hd1,…,hdt,s,p}和密钥K={PUF1,…,PUFt}。
给定文本集关键字集合公共参数PP和密钥K,数据拥有者运行这个概率算法产生加密文件集搜索索引和客户端状态σ。
数据拥有者随机从K中选择k个物理不可克隆函数。表示被随机选中的物理不可克隆函数,其中ti∈[1,t]。对所有i∈[1,k],计算:
结合相应的分享可以轻松恢复多项式f(x)并计算出a0=f(0)。构造索引对每一个关键字j∈[1,m],数据拥有者首先建立然后将转化为一个l比特长字符串Vw,l>n。对于i∈[1,l],当且仅当时,同时,数据拥有者计算:
建立一个可验证哈希表VHT,该表同时也是一个查找表。对于j∈[1,m],VHT上的每一个节点是一个元组其中是键,是值,cl和cr表示节点的左右孩子节点。节点的哈希值定义为:
图2给出了一个查找表的例子。在查找表中的每一个节点都映射一个关键字。用hroot表示VHT根节点的哈希值。数据拥有者设置T=1,并计算:
K2=H1(a0‖2),
建立加密文件集对于每一个DBi,i∈[1,n],数据拥有者计算:
K3=H1(a0‖id(DBi)‖1),
K4=H1(a0‖id(DBi)‖2),
设置ci拥有和DBi一样的标识符,
数据拥有者将T和ID发送给云服务器,云服务器计算签名δ=SIGN(T‖ID),并返回给数据拥有者。最后,该算法输出和σ={T,δ}。数据拥有者外包给云服务器,本地保存σ。
TrapGen(w,K,PP)
给定一个查询关键字w∈Δ,数据拥有者运行该算法产生一个w的陷门。首先,数据拥有者需要恢复a0并计算:
K1=H1(a0‖1),
最后数据拥有者将TKw发送给云服务器。
设索引当接受到陷门TKw时,云服务器运行这个算法在索引上匹配陷门。VHT上TKw的闭合节点将会作为搜索结果R(w)与搜索证据τ一起返回给数据拥有者。搜索过程总结在算法1中。为了简单起见,用nkey表示节点的键,用表示VHT根节点。
在算法1中,L包含从根节点到闭合节点的搜索路径、闭合节点的孩子节点和搜索路径上节点的兄弟节点。
Verify(R(w),τ,K,PP,σ)
由于恶意服务器可能返回错误的结果,数据拥有者运行验证算法验证搜索结果的有效性。
当接受到搜索结果R(w)和证据τ时,数据拥有者根据搜索路径重新计算根节点哈希值,记为hroot′。同时,数据拥有者从密钥K中恢复a0并检验:
其中。如果这两个等式成立,数据拥有者就接受R(w)并继续接下来的验证,否则输出⊥。
如果接受的R(w)是由两个一样的节点组成,数据拥有者计算:
Kw=H1(a0||w),
并将Vw发送给云服务器。云服务器根据Vw返回相应的密文集对于每一个密文文件数据拥有者检查其中K4=H1(a0‖id(DBi)‖2)。如果等式成立,数据拥有者输出否则输出⊥。
如果接受的R(w)是由两个不一样的节点组成,设并输出⊥。
Update(op,K,PP)
op={upd,c,W′}表示更新操作,其中upd表示更新类型,c表示更新的文件,W′表示更新的关键字集。根据op,数据拥有者进行以下的算法操作:
修改:op={modify,ci,W′},假设数据拥有者想将ci修改成ci′。对于每一个关键字wj∈W′,数据拥有者首先产生相应的陷门并获取搜索结果R(wj)。R(wj)需要通过验证接着数据拥有者从R(wj)中恢复并设加密以替换每一个关键字wj都更新后,设T←T+1,计算新的根节点哈希值hroot′以及发送(ci′,hroot′,β′,T,ID)和给云服务器。最后,云服务设置hroot←hroot′,β←β′,ci←ci′,用更新VHT并计算δ′=SIGN(T‖ID)。云服务器将δ′发送给数据拥有者,如果δ′是有效的,则数据拥有者设置δ←δ′。
删除:op={delete,ci,W′}。将ci删除的操作可以看成一种特殊的修改操作,即将ci修改为字符delete,并对每一个wj∈W′,设
添加:op={add,cn+1,W′},假设数据拥有者添加一个新文件cn+1。对于每一个关键字wj∈W′,如果则添加操作可以看成一种设的特殊的修改操作。否则,数据拥有者首先产生相应的陷门获取搜索结果R(wj),并验证接着,数据拥有者在搜索路径的最后一个节点上创建一个孩子节点每一个关键字wj都更新后,设T←T+1,计算新的根节点哈希值hroot′以及发送(cn+1,hroot′,β′,T,ID)和给云服务器。最后,云服务设置hroot←hroot′,β←β′,插入cn+1,用更新VHT并计算δ′=SIGN(T‖ID)。云服务器将δ′发送给数据拥有者,如果δ′是有效的,则数据拥有者设置δ←δ′。
下面结合效率分析对本发明的应用效果作详细的描述。
1、将Kurosawa的方案[Kurosawa K,OhtakiY.How to Update DocumentsVerifiably in Searchable Symmetric Encryption[C]//International Conference onCryptology and Network Security.Springer,Cham,2013:309-328.]、Dai的方案[Dai S,Li H,Zhang F.Memory Leakage-resilient Searchable Symmetric Encryption[J].Future Generation Computer Systems,2016,62:76-84]和本发明进行比较。首先,本发明能同时实现防内存泄露和搜索结果可验证。其次,本发明是高效的,因为本发明不涉及群中的指数运算和对称全同态加密,并且客户端的计算开销是与文件集大小无关的。最后,在Dai的方案中,客户端需要在本地存储一个O(d)大小的表来完成搜索,d表示字典中包含的所有可能关键字数。但是在本发明中客户端仅需在本地保存一个计数器和一个签名。相比Dai的方案,本发明空间复杂度更小。此外,即使一些物理不可克隆函数损坏了,本发明仍然能恢复密钥,而Dai的方案不行。
表3展示了三种方案的比较。表中,n表示在文件集中的文件数,m表示在关键字集合中的关键字数目,u表示搜索返回的文件数,|W|表示更新的关键字数,k表示选择用来重构秘密信息的物理不可克隆函数数目,U表示一次在物理不可克隆函数和模糊提取器上的一次操作,I表示一次整数比较操作,P表示一次对称全同态加密操作,D表示一次群指数运算,Z表示一次哈希运算,A表示一次MAC函数运算。
表3三种方案比较
方案 Kurosawa方案 Dai方案 本发明的方案
抗内存泄露 不支持 支持 支持
可验证性 支持 不支持 支持
搜索计算量(服务器) (mn-u)(Z+A) 1P logmI
验证计算量(客户端) (u+n)(Z+A) _ logmA+(u+1)M+1D+kU
添加计算量(客户端) (m+1)(Z+A) |W|(2U+P) (|W|+1)(logmA+M)+|W|D+kU
1.1效率分析
对提出的可验证的防内存泄露动态SSE方案进行了实验仿真,实验环境是Windows系统,2.60GHZ的CPU,8G运行内存。
图3到图8展示了与Dai的方案的建立索引、搜索、验证和更新时间对比。在这个时间对比仿真实验中,设置字典的关键字数为40000,且本发明中k=4,t=5。图3和图4说明了在发明中索引建立时间与关键字数m线性相关,与文件集数n无关。尽管索引建立时间开销较大,但这是一个一次性开销。图5和图6说明在搜索阶段,当文件数合适时,本发明优于Dai的方案。事实上,本发明的搜索时间与logm线性相关。即使m为8000时,本发明的搜索时间也仅有11ms,这是足够高效的。图7表明本发明的验证是非常快的,且验证时间随关键字数增长而缓慢增加。在提高安全性的同时,客户端的开销仅增加了一点点。图8给出添加操作的时间对比,本发明在添加时的时间开销都是毫秒级,足以应用在实际应用中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种可验证的防内存泄露动态可搜索加密方法,其特征在于,所述可验证的防内存泄露动态可搜索加密方法利用物理不可克隆函数取代存储在非易失性内存中的长期信息,每一个物理不可克隆函数的输出作为秘密分享技术中多项式的一个输入来构建相应的分享;验证哈希表VHT被用来构建安全的索引,VHT根节点的哈希值可以用来作为证据验证搜索结果的正确性和完整性,在VHT上,每一个节点对应一个关键字;对关键字的更新就是对VHT上相应节点的更新;将VHT根节点哈希值与计数器进行绑定,云服务器对计数器进行签名。
2.如权利要求1所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述可验证的防内存泄露动态可搜索加密方法使用防碰撞的哈希函数PCPA-安全的对称加密算法E1=(Enc1,Dec1)和E2=(Enc2,Dec2),其中 伪随机置换消息认证码和一个安全的签名方案SIGN-BLS短签名,其中d表示字典中包含的关键字数。
3.如权利要求1所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述可验证的防内存泄露动态可搜索加密方法进一步包括以下六个算法:
KeyGen(1λ):输入一个安全参数λ,输出一个由数据拥有者存储的密钥K和一个公共参数PP;
输入文件集关键字集合密钥K和公共参数PP,输出一个安全的索引加密的文件集合和数据拥有者状态σ;都外包给云服务器;
TrapGen(w,K,PP):输入搜索关键字w,密钥K和公共参数PP,输出一个陷门TKw
当接受到陷门TKw,云服务器在索引上运行这个算法,返回相应的搜索结果R(w)和搜索证据τ;
Verify(R(w),τ,K,PP,σ):如果搜索结果R(w)通过证据τ的验证,则接受R(w)并输出相应的密文集合否则输出错误⊥;
Update(op,K,PP):输入更新操作op,修改,添加和删除,数据拥有者状态σ和密钥K,输出更新后的索引加密文件集和数据拥有者状态σ′。
4.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述KeyGen(1λ)中,数据拥有者首先随机选择t个物理不可克隆函数(n1,d1,m1)-PUF,一个(n1,d1,m1)模糊提取器FE和一个秘密信息a0;数据拥有者之后构建一个包含秘密信息a0的多项式f(x),利用f(x)、物理不可克隆函数(n1,d1,m1)-PUF和模糊提取器FE计算秘密分享技术中的分享;则密钥K为选择的物理不可克隆函数,计算的分享为公共参数。
5.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述中,数据拥有者首先通过密钥K和公共参数恢复秘密信息a0,算法中使用的密码学工具的密钥通过a0构建;数据拥有者扫描外包文件集,构建关键字集合和相应的文件标识符集合,然后使用可验证哈希表VHT建立索引计算VHT的根节点哈希值,并将哈希值与计数器做MAC计算;VHT是一种二叉树结构,结合了Merkle哈希树和二叉搜索树的特点;在VHT上的每一个节点N都是一个元组(nkey,v,cl,cr,hN),其中nkey表示节点N的键(key),v表示节点N的值(value),cl和cr分别表示节点N的左右孩子节点,hN表示节点N的哈希值,定义为节点N的键大于左子树上所有节点的键,小于右子树上所有的键。
6.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述TrapGen(w,K,PP)中,待搜索关键字的字典序的伪随机置换就是该关键字的搜索陷门。
7.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述中,索引是一个可验证哈希表VHT,在VHT上搜索匹配TKw的节点,则匹配的节点即为搜索结果,搜索路径为搜索证据。
8.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述Verify(R(w),τ,K,PP,σ)中,数据拥有者通过搜索路径重新计算VHT的根节点哈希值,并将计算的哈希值与本地保存的计数器做MAC计算;若计算出的MAC值与云服务器返回的MAC一致,则通过验证,否则验证不通过。
9.如权利要求3所述的可验证的防内存泄露动态可搜索加密方法,其特征在于,所述Update(op,K,PP)中,已有关键字的更新操作即是对VHT上相应节点值的修改,新增关键字的更新操作是添加新的节点;所有更新操作都需要将计数器加一,并重新计算VHT的根节点哈希值和MAC值。
10.一种应用权利要求1~9任意一项所述可验证的防内存泄露动态可搜索加密方法的云服务器。
CN201711146556.1A 2017-11-17 2017-11-17 可验证的防内存泄露动态可搜索加密方法、云服务器 Active CN108055122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711146556.1A CN108055122B (zh) 2017-11-17 2017-11-17 可验证的防内存泄露动态可搜索加密方法、云服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711146556.1A CN108055122B (zh) 2017-11-17 2017-11-17 可验证的防内存泄露动态可搜索加密方法、云服务器

Publications (2)

Publication Number Publication Date
CN108055122A true CN108055122A (zh) 2018-05-18
CN108055122B CN108055122B (zh) 2021-03-23

Family

ID=62120291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711146556.1A Active CN108055122B (zh) 2017-11-17 2017-11-17 可验证的防内存泄露动态可搜索加密方法、云服务器

Country Status (1)

Country Link
CN (1) CN108055122B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088719A (zh) * 2018-08-14 2018-12-25 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109492410A (zh) * 2018-10-09 2019-03-19 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN110392038A (zh) * 2019-06-03 2019-10-29 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110457915A (zh) * 2019-07-17 2019-11-15 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统
CN110851481A (zh) * 2019-11-08 2020-02-28 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN111614470A (zh) * 2020-05-27 2020-09-01 贵州大学 基于改进Merkle-Tree认证方法的可验证多关键字搜索方法
CN111917759A (zh) * 2020-07-27 2020-11-10 八维通科技有限公司 一种加油站用的数据安全交互方法
CN112416948A (zh) * 2020-12-15 2021-02-26 暨南大学 一种可验证的基因数据外包查询协议及系统
CN113282543A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282542A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN114584286A (zh) * 2022-05-06 2022-06-03 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN114900318A (zh) * 2022-06-02 2022-08-12 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317360A (zh) * 2005-11-29 2008-12-03 皇家飞利浦电子股份有限公司 使用puf的物理秘密共享和邻近的证明
CN103763362A (zh) * 2014-01-13 2014-04-30 西安电子科技大学 一种安全的分布式重复数据删除方法
US20150317481A1 (en) * 2014-05-05 2015-11-05 Sypris Electronics, Llc System and device for verifying the integrity of a system from its subcomponents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317360A (zh) * 2005-11-29 2008-12-03 皇家飞利浦电子股份有限公司 使用puf的物理秘密共享和邻近的证明
CN103763362A (zh) * 2014-01-13 2014-04-30 西安电子科技大学 一种安全的分布式重复数据删除方法
US20150317481A1 (en) * 2014-05-05 2015-11-05 Sypris Electronics, Llc System and device for verifying the integrity of a system from its subcomponents

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
R.BOST 等: "Verifiable Dynamic Symmetric Searchable Encryption Optimality and Forward Security", 《HTTPS://EPRINT.IACR.ORG/EPRINT-BIN/GETFILE.PL?ENTRY=2016/062&VERSION.PDF》 *
SHUGUANG DAI 等: "Memory leakage-resilient searchable symmetric encryption", 《FUTURE GENERATION COMPUTER SYSTEMS》 *
SHUGUANG DAI 等: "Memory leakage-resilient secret sharing schemes", 《SCIENCE CHINA》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088719B (zh) * 2018-08-14 2019-06-04 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109088719A (zh) * 2018-08-14 2018-12-25 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109492410B (zh) * 2018-10-09 2020-09-01 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
CN109492410A (zh) * 2018-10-09 2019-03-19 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN110392038A (zh) * 2019-06-03 2019-10-29 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110392038B (zh) * 2019-06-03 2021-07-13 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110457915B (zh) * 2019-07-17 2020-12-29 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统
CN110457915A (zh) * 2019-07-17 2019-11-15 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统
CN110851481B (zh) * 2019-11-08 2022-06-28 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN110851481A (zh) * 2019-11-08 2020-02-28 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN111614470A (zh) * 2020-05-27 2020-09-01 贵州大学 基于改进Merkle-Tree认证方法的可验证多关键字搜索方法
CN111917759B (zh) * 2020-07-27 2021-02-19 八维通科技有限公司 一种加油站用的数据安全交互方法
CN111917759A (zh) * 2020-07-27 2020-11-10 八维通科技有限公司 一种加油站用的数据安全交互方法
CN112416948A (zh) * 2020-12-15 2021-02-26 暨南大学 一种可验证的基因数据外包查询协议及系统
CN113282543A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282542A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282543B (zh) * 2021-05-20 2022-07-05 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282542B (zh) * 2021-05-20 2022-07-12 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN114584286A (zh) * 2022-05-06 2022-06-03 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN114584286B (zh) * 2022-05-06 2022-08-05 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN114900318A (zh) * 2022-06-02 2022-08-12 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法
CN114900318B (zh) * 2022-06-02 2024-04-19 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法

Also Published As

Publication number Publication date
CN108055122B (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN108055122A (zh) 可验证的防内存泄露动态可搜索加密方法、云服务器
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
Yang et al. Lightweight and privacy-preserving delegatable proofs of storage with data dynamics in cloud storage
Poh et al. Searchable symmetric encryption: Designs and challenges
Huang et al. Achieving big data privacy via hybrid cloud
US10129029B2 (en) Proofs of plaintext knowledge and group signatures incorporating same
US9973342B2 (en) Authentication via group signatures
US10764048B2 (en) Privacy-preserving evaluation of decision trees
CN106803784A (zh) 安全多媒体云存储中基于格的多用户模糊可搜索加密方法
Li et al. Privacy-preserving data utilization in hybrid clouds
Pulls et al. Balloon: A forward-secure append-only persistent authenticated data structure
CN106776904A (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN112800445B (zh) 一种用于密文数据的前后向安全和可验证的布尔查询方法
Yang et al. Privacy-preserving k nearest neighbor query with authentication on road networks
Xiang et al. Achieving verifiable, dynamic and efficient auditing for outsourced database in cloud
CN109088719A (zh) 外包数据库多关键词可验证密文搜索方法、数据处理系统
Ying et al. Reliable policy updating under efficient policy hidden fine-grained access control framework for cloud data sharing
Luo et al. MHB* T based dynamic data integrity auditing in cloud storage
Etemad et al. Generic dynamic data outsourcing framework for integrity verification
CN110188545A (zh) 一种基于链式数据库的数据加密方法及装置
Liu et al. Multi-user image retrieval with suppression of search pattern leakage
CN116108497A (zh) 一种基于身份匿名的医疗数据轻量级云存储方法及装置
CN115906149A (zh) 基于有向无环图的kp-abe及区块链的用户数据可信共享方法
Xu et al. Intrusion-resilient public auditing protocol for data storage in cloud computing
Dachman-Soled et al. Local non-malleable codes in the bounded retrieval model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant