CN110765469B - 一种高效且健壮的动态可搜索对称加密方法及系统 - Google Patents

一种高效且健壮的动态可搜索对称加密方法及系统 Download PDF

Info

Publication number
CN110765469B
CN110765469B CN201910866516.7A CN201910866516A CN110765469B CN 110765469 B CN110765469 B CN 110765469B CN 201910866516 A CN201910866516 A CN 201910866516A CN 110765469 B CN110765469 B CN 110765469B
Authority
CN
China
Prior art keywords
ciphertext
key
retrieval
bit string
keyword
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.)
Active
Application number
CN201910866516.7A
Other languages
English (en)
Other versions
CN110765469A (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.)
Huazhong University of Science and Technology
Shenzhen Huazhong University of Science and Technology Research Institute
Original Assignee
Huazhong University of Science and Technology
Shenzhen Huazhong University of Science and Technology Research Institute
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 Huazhong University of Science and Technology, Shenzhen Huazhong University of Science and Technology Research Institute filed Critical Huazhong University of Science and Technology
Priority to CN201910866516.7A priority Critical patent/CN110765469B/zh
Publication of CN110765469A publication Critical patent/CN110765469A/zh
Application granted granted Critical
Publication of CN110765469B publication Critical patent/CN110765469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种高效且健壮的动态可搜索对称加密方法及系统,属于云存储安全领域,包括:对于任意一个关键字w,在检索客户端获得与其相关联的最近一次操作使用的密钥信息及对应的密文索引L′和陷门T′,以生成当前操作的密文并发送至检索服务器,从而将其存储到密文数据库中;所生成密文的密文元信息中包括L′和T′;删除操作密文的密文元信息中还包括删除凭据;生成检索密文时更新密钥信息,密文元信息中还包括上一检索操作与当前检索操作所使用密钥之间的更新凭据,发送检索密文的同时发送L′和T′;在检索服务器,获得与关键字w相关联的所有密文,删除需要删除的密文后将结果集合发送至检索客户端。本发明能够提高可搜索对称加密方法的健壮性。

Description

一种高效且健壮的动态可搜索对称加密方法及系统
技术领域
本发明属于云存储安全领域,更具体地,涉及一种高效且健壮的动态可搜索对称加密方法及系统。
背景技术
数据外包存储是云计算与云存储技术发展到一定的程度后出现的一种新的趋势,它可以为用户提供数据的便捷访问与安全备份。在外包存储的场景下,只要有互联网,用户随时随地都可以访问自己的文件,并且不需要担心自己本地设备损坏造成的数据丢失问题,因此现在人们越来越倾向于使用数据外包存储技术。
在数据外包存储中,数据的隐私性和安全性非常重要,用户上传的数据往往包含有不想让他人知道的秘密信息。此时就需要通过对数据进行加密来保护数据明文了。为了方便用户在加密数据中进行关键字检索,人们发展出了可搜索加密技术(searchableencryption,简称SE)可搜索加密SE是一种支持用户在密文上进行关键字查找的密码学原语,它能够为用户节省大量的网络和计算开销,并充分利用云端服务器庞大的计算资源进行密文上的关键字查找。可搜索加密技术分为可搜索对称加密与可搜索公钥加密。其中可搜索公钥加密不适用于数据外包存储的场景,因此在数据外包存储中,可搜索对称加密的应用更为广泛。
传统的可搜索对称加密方法往往专注于性能以及多样化检索,而没有关注用户在使用过程中可能产生的错误操作情况。比如用户在使用的过程中,可能会删除一个不存在的关键字,也可能会重复删除一个关键字,也可能会在添加一个关键字之前先删除这个关键字,出于对安全性和保密性的考虑,传统的可搜索对称加密方法无法察觉到这些错误,而这些错误对于密文检索过程来说可能是致命的,严重者会造成用户数据损坏,无法执行正常检索。总的来说,现有的可搜索对称加密方法的健壮性得不到保证。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种高效且健壮的动态可搜索对称加密方法及系统,其目的在于,提高可搜索对称加密方法的健壮性。
为实现上述目的,按照本发明的第一方面,提供了一种高效且健壮的动态可搜索对称加密方法,对于任意一个关键字w,包括在检索客户端执行的加密步骤和检索密文生成步骤,以及在检索服务器执行的密文检索步骤;
加密步骤包括:获得关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′;
将当前操作的文件标识符id加密为文件标识符密文C,并生成随机比特串R;根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L;根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D;若当前操作为删除操作,则密文元信息D中还包含删除凭据A,用于匹配待删除密文;
生成当前操作对应的密文(L、R、D、C),并上传至检索服务器,以根据密文索引L将该密文存储到密文数据库EDB中;更新状态表LastOp;
检索密文生成步骤包括:成功获取到关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′后,获得关键字w关联的上一次操作使用的密钥K′和密钥S′,并计算对应的密文索引L′和陷门T′;
将无效文件标识符id0加密为文件标识符密文C0,并生成随机比特串R0;随机选取密钥K和密钥S,并计算密钥K和密钥K′之间的更新凭据ΔK→K′,密钥K和密钥K′属于同一密钥空间,密钥S和密钥S′属于同一密钥空间;根据密钥K、关键字w、无效文件标识符id0、检索操作的操作符op0以及随机比特串R0计算检索操作的密文索引L0;根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0
生成检索密文(L0、R0、D0、C0),并将该密文连同密文索引L′和陷门T′一起发送至检索服务器,以使得检索服务器开始针对关键字w执行密文检索;更新状态表LastOp和LastKey;
密文检索步骤包括:根据密文索引L′查询密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,获得与关键字w相关联的所有密文并进行解析,将其中删除操作密文、待删除密文以及冗余的检索密文均删除后,将剩余密文中的文件标识符密文按照检索顺序组织为结果集合I,并返回给检索客户端;
其中,密文数据库EDB位于检索服务器,用于存储密文;状态表LastOp和LastKey位于检索客户端,且均对外不可访问;状态表LastOp中各条目分别用于记录与一个关键字相关联的最近一次操作所对应的文件标识符、操作符及随机比特串,状态表LastKey中各条目分别用于记录与一个关键字相关联的最近一次操作使用的密钥信息;操作符用于指示操作类型。
本发明将关键字w相关联的上一个操作的密文索引L′和陷门T′加密到当前操作对应的密文元信息中,L′和T′只有在检索服务器检索到对应的密文时,才会被解密并暴露给服务器,用于继续对前一条可搜索密文进行检索,由此能够在密文数据中维护密文间的隐藏关系链,并且在密文索引和检索陷门发生改变的情况下,仍然维持密文间隐藏关系的完整性;检索服务器在执行检索操作时,能够根据密文元信息中所包含的上一操作的密文索引和陷门,将与同一个关键字相关联的所有可搜索密文连接起来,这使得检索服务器在检索时,所处理的所有可搜索密文都是关联于同一个关键字的,由此实现了与这些匹配的密文的数量线性相关的检索复杂度,也即是说,本发明将密文的检索时间复杂度降为了亚线性级,实现了高效检索。
本发明在每次针对关键字检索时,都会重新生成并更新其对应的密钥信息,同时通过生成密钥之间的更新凭据,并将其保存到检索密文的密文元信息中,能够使得在后产生的陷门对在前产生的密文的正常检索,由此保证可搜索对称加密的健壮性。具体来说,如果用户对同一个关键字w与文件标识符id,生成了重复的添加操作密文,那么检索服务器在检索的时候可以把重复的添加操作密文全部找到,并且任意时刻如果用户要删除这些密文,只需上传一个删除操作密文即可将其全部删除;如果用户对同一个关键字w与文件标识符id,生成并上传了重复的删除操作密文,那么检索服务器在检索的时候可以把重复的删除操作密文全部找到,并将之从密文数据库中删除,不会影响可搜索对称加密方法的正常功能;如果用户对同一个关键字w与文件标识符id,先上传了删除操作密文,后上传了对应的添加操作密文,那么检索服务器在进行检索时,可以保留在删除操作密文之后上传的添加密文,而从密文数据库中删除该删除操作密文以及在其之前上传的添加密文;因此,本发明能够对用户的错误操作进行容忍,允许用户对密文进行以错误的顺序对密文进行添加或删除操作,并能够正常执行功能,提高了可搜索对称加密方法的健壮性。
本发明每次针对关键字检索时,都会重新生成并更新其对应的密钥信息,使得用户某时刻生成的检索密文只能对其之前的密文进行检索,而无法对其之后的密文进行检索,由此保证了可搜索对称加密的前向安全性;本发明在生成添加操作密文或删除操作密文时,密文中的文件标识符都是经过加密的,检索服务器无法获得已经删除的可搜索密文中所保存的文件标识符,并且前面上传的删除操作密文不会影响后面上传的添加操作密文,由此保证了可搜索对称加密的后向安全性;因此,本发明所提供的高效且健壮的动态可搜索对称加密方法具有前后向安全性。
本发明中,检索服务器能够支持用户添加新的可搜索密文到密文数据库中,并且在检索时可实现对指定可搜索密文的删除操作,因此本发明所提供的高效且健壮的动态可搜索对称加密方法具有动态性。
进一步地,本发明所提供的高效且健壮的动态可搜索对称加密方法,对于关键字w,还包括在检索客户端执行的解密步骤;
解密步骤包括:若结果集合
Figure BDA0002201421880000051
则将状态表LastOp和LastKey中与关键字w相关联的条目均设置为空值,操作结束;
若结果集合
Figure BDA0002201421880000052
则依次获取其中的元素并解密,从而获得当前密文数据库EDB中与关键字w相关联的所有添加操作密文的文件标识符{id1,id2,…idn};
其中,n为结果集合I中的元素个数,idi表示根据结果集合I中第i个元素解密得到的文件标识符,1≤i≤n。
进一步地,加密步骤中,根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L,其计算方式为:
L=G(P(K′,w||id||op)||R);
其中,G()为密码学哈希函数,输出二进制长度为λ的比特串;P()为密钥可更新的伪随机函数,输出长度为λ′的比特串;||表示比特串连接操作;λ为预设的安全参数,λ′为与λ的多项式相关的值;密钥K′属于伪随机函数P()的密钥空间
Figure BDA0002201421880000053
进一步地,密钥可更新的伪随机函数P()支持UpdateTokenP操作,KeyUpdateP操作以及TokenCombineP操作;
UpdateTokenP操作用于计算密钥空间
Figure BDA0002201421880000061
中任意两个密钥k1和k2之间的更新凭据
Figure BDA0002201421880000062
KeyUpdateP操作用于根据两个密钥k1和k2之间的更新凭据
Figure BDA0002201421880000063
更新使用前一个密钥k1生成的伪随机函数值;
TokenCombineP操作用于结合密钥k1、k2之间的更新凭据
Figure BDA0002201421880000064
以及密钥k2、k3之间的更新凭据
Figure BDA0002201421880000065
从而得到密钥k1、k3之间的更新凭据
Figure BDA0002201421880000066
其中,k1、k2和k3为密钥空间
Figure BDA0002201421880000067
中任意三个不同的密钥。
进一步地,计算关键字w关联的上一次操作对应的陷门T′,其计算方式为:
T′=F(S′,w||id′||op′);
其中,F()为伪随机函数,输出二进制长度为λ的比特串;密钥S′属于为随机函数F()的密钥空间
Figure BDA0002201421880000068
进一步地,加密步骤中,获得关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′,包括:
获得状态表中关键字w相关联的条目,以获得w相关联的最近一次操作使用的密钥K′和密钥S′;若获取到的密钥均为空值,则从密钥空间
Figure BDA0002201421880000069
中随机选取一个密钥,并赋值给密钥K′,从密钥空间
Figure BDA00022014218800000610
中随机选取一个密钥,并赋值给密钥S′;
获得状态表中关键字w相关联的条目,以获得关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′;若获取成功,则根据L′=G(P(K′,w||id′||op′)||R′)计算密文索引L′,根据T′=F(S′,w||id′||op′)计算陷门T′;若获取不成功,则设置密文索引L′=0λ,陷门T′=0λ
其中,0λ表示二进制长度为λ的全零比特串。
进一步地,加密步骤中,根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D,包括:
若op=add,则根据
Figure BDA0002201421880000071
生成当前操作对应的密文元信息D;
若op=del,则根据A=P(K′,w||id||add)生成删除凭据A,并根据
Figure BDA0002201421880000072
生成当前操作对应的密文元信息D;
其中,add表示添加操作的操作符,del表示删除操作的操作符;H()为密码学哈希函数,输出二进制长度为2λ+λ′+x的比特串;x表示操作符的二进制长度,x≥2;0λ′表示二进制长度为λ′的全零比特串;
Figure BDA0002201421880000073
表示异或操作。
进一步地,检索密文生成步骤中,根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0,其计算方式为:
Figure BDA0002201421880000074
进一步地,密文检索步骤包括:
(S1)检索服务器接收到密文索引L′、陷门T′以及检索密文(L0、R0、D0、C0)后,根据(Lt,Rt,Dt,Ct)=(L0,R0,D0,C0)、(L′t,T′t)=(L′,T′)以及(optt)=(srch,NULL)初始化临时变量以Lt、Rt、Dt、Ct、L′t、T′t、opt以及Δt,并初始化两个空集Set1和Set2
(S2)根据密文索引L0将检索密文(L0,R0,D0,C0)存储到密文数据库EDB中;
(S3)从密文数据库EDB中获得密文索引L′相对应的密文EDB[L′],以获得该密文的随机比特串R′、密文元信息D′和文件标识符密文C′,并根据
Figure BDA0002201421880000081
对该密文进行解析,以获得密文EDB[L′]的操作符op′和信息X′,以及密文EDB[L′]的前一条与关键字w相关联的密文的密文索引L″和陷门T″;
(S4)若op′=del,则转入步骤(S5);若op′=add,则转入步骤(S8);若op′=srch,则转入步骤(S12);
(S5)从密文数据库EDB中删除密文EDB[L′],并将信息X′加入到集合Set2中;
(S6)根据
Figure BDA0002201421880000082
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S7)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S8)若存在At∈Set2,使得L′=G(At||R′),则从密文数据库中删除密文EDB[L′]后,转入步骤(S9);否则,转入步骤(S11);
(S9)根据
Figure BDA0002201421880000083
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S10)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S11)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,并根据(L′t,T′t,opt)←(L″,T″,op′)更新临时变量L′t、T′t和opt后,将文件标识符密文C′加入到集合Set1中,并转入步骤(S18);
(S12)若opt=srch且Δt≠NULL,则从密文数据库中删除密文EDB[L′]后,转入步骤(S13);否则,转入步骤(S16);
(S13)根据
Figure BDA0002201421880000091
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S14)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后;
(S15)根据Δt=Δt⊙X′更新临时变量Δt后,转入步骤(S17);
(S16)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t,并根据(optt)=(op′,X′)更新临时变量opt和Δt后,转入步骤(S17);
(S17)对于每一个At∈Set2,根据At=KeyUpdateP(X′,At)对其进行更新,并在集合Set2中所有元素更新完成后转入步骤(S18);
(S18)根据(L′,T′)=(L″,T″)更新密文索引L′和陷门T′的值,若L′=0λ且T′=0λ,则转入步骤(S3);否则,将集合Set1作为最终的结果集合I返回给用户,针对关键字w的检索操作结束;
其中,srch表示检索操作的操作符,0λ′+x表示二进制长度为λ′+x的全零比特串,0x表示二进制长度为x的全零比特串,⊙表示TokenCombineP操作。
进一步地,在加密步骤中,将文件标识符id加密为文件标识符密文C的方式为:C=EncSE(KSE,id);
在解密步骤中,对结果集合I中任意第i个元素I[i]进行解密的方式为:idi=DecSE(KSE,I[i]);
其中,EncSE()和DecSE()分别为对称加密算法SE中的加密算法和解密算法;KSE表示从对称加密算法SE的密钥空间中随机选取的密钥,其二进制长度至少为λ,λ为预设的安全参数。
按照本发明的另一个方面,提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于从计算机可读存储介质中读取可执行程序,执行本发明第一方面提供的高效且健壮的动态可搜索对称加密方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的高效且健壮的动态可搜索对称加密方法,在每次针对关键字检索时,都会重新生成并更新其对应的密钥信息,同时通过生成密钥之间的更新凭据,并将其保存到检索密文的密文元信息中,使得本发明能够对用户的错误操作进行容忍,允许用户对密文进行以错误的顺序对密文进行添加或删除操作,并能够正常执行功能,由此提高了可搜索对称加密方法的健壮性。
(2)本发明所提供的高效且健壮的动态可搜索对称加密方法,将关键字w相关联的上一个操作的密文索引L′和陷门T′加密到当前操作对应的密文元信息中,检索服务器在执行检索操作时,能够根据密文元信息中所包含的上一操作的密文索引和陷门,将与同一个关键字相关联的所有可搜索密文连接起来,从而将密文的检索时间复杂度降为了亚线性级,实现了高效检索。
(3)本发明所提供的高效且健壮的动态可搜索对称加密方法,每次针对关键字检索时,都会重新生成并更新其对应的密钥信息,使得用户某时刻生成的检索密文只能对其之前的密文进行检索,而无法对其之后的密文进行检索,由此保证了可搜索对称加密的前向安全性;在针对生成添加操作密文或删除操作密文时,密文中的文件标识符都是经过加密的,检索服务器无法获得已经删除的可搜索密文中所保存的文件标识符,并且前面上传的删除操作密文不会影响后面上传的添加操作密文,由此保证了可搜索对称加密的后向安全性;因此,本发明具有前后向安全性。
(4)本发明所提供的高效且健壮的动态可搜索对称加密方法,检索服务器能够支持用户添加新的可搜索密文到密文数据库中,并且在检索时可实现对指定可搜索密文的删除操作,因此本发明具有动态性。
附图说明
图1为现有的外包存储系统的架构示意图;
图2为本发明实施例提供的高效且健壮的动态可搜索对称加密方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对外包存储系统的架构进行简要介绍。如图1所示,外包存储系统的共包括两个实体,检索客户端和检索服务器,检索客户端即数据拥有者,其主要功能是初始化整个系统并生成对称密钥,加密关键字与文件标识符并生成可搜索密文,生成检索陷门并提交检索请求,接收检索结果并解密出检索内容;检索服务器负责保存检索客户端上传的可搜索密文,执行检索客户端发起的检索请求并返回检索结果。
检索客户端的功能共包括以下四个方面:
(1)检索客户端在本地对系统进行初始化,生成对称密钥,本地状态,并初始化检索服务器上的加密数据库。
(2)检索客户端利用对称密钥,本地状态对指定的关键字-文件标识符对以及操作类型进行加密,并将加密的结果上传给检索服务器保存;
(3)检索客户端利用对称密钥,本地状态对指定的关键字来生成密文索引、该索引对应的检索陷门以及检索密文,并提交给检索服务器来作为检索请求;
(4)检索客户端接收到检索服务器发送回来的检索结果,对检索结果进行解密并获取其中的文件标识符,并以此为依据更新本地状态。
检索服务器的功能共包括以下两个方面:
(1)检索服务器接收到检索客户端提交的可搜索密文后,将其保存在加密数据库中;
(2)检索服务器接收到检索客户端提交的检索请求后,在加密数据库上执行检索或删除操作,并返回检索出的密文。
在本发明中,在初始化阶段需要根据应用需求预定义安全参数λ和λ′,并根据安全参数确定相应的加密、解密算法,其中,λ是非零自然数,其数值越大,可搜索对称加密方法越安全,但相应的计算越复杂;λ′=poly(λ),即λ′是一个与λ多项式相关的值;需要确定的加密、解密算法及各算法的基本原理具体如下:
伪随机函数F:
Figure BDA0002201421880000121
其中
Figure BDA0002201421880000122
是伪随机函数F的密钥空间,
Figure BDA0002201421880000123
是F的数据空间,
Figure BDA0002201421880000124
是F的值空间,并且
Figure BDA0002201421880000125
即伪随机函数F的输出结果是二进制长度为λ的比特串;其中,密钥空间
Figure BDA0002201421880000126
中的密钥二进制长度为安全参数λ;对数据空间
Figure BDA0002201421880000127
中的数据长度,F没有要求;
密钥可更新的伪随机函数P:
Figure BDA0002201421880000128
其中
Figure BDA0002201421880000129
是密钥可更新的伪随机函数P的密钥空间,
Figure BDA00022014218800001210
是P的数据空间,
Figure BDA00022014218800001211
是P的值空间,并且
Figure BDA00022014218800001212
P对数据空间中的数据长度没有要求;在本发明中,密钥可更新的伪随机函数P()支持UpdateTokenP操作,KeyUpdateP操作以及TokenCombineP操作;UpdateTokenP操作用于计算密钥空间
Figure BDA00022014218800001213
中任意两个密钥k1和k2之间的更新凭据
Figure BDA00022014218800001214
KeyUpdateP操作用于根据两个密钥k1和k2之间的更新凭据
Figure BDA0002201421880000131
更新使用前一个密钥k1生成的伪随机函数值;TokenCombineP操作用于结合密钥k1、k2之间的更新凭据
Figure BDA0002201421880000132
以及密钥k2、k3之间的更新凭据
Figure BDA0002201421880000133
从而得到密钥k1、k3之间的更新凭据
Figure BDA0002201421880000134
k1、k2和k3为密钥空间
Figure BDA0002201421880000135
中任意三个不同的密钥;
密码学哈希函数H:{0,1}*→{0,1}2λ+λ′+x,其输入是任意二进制长度的比特串,输出是二进制长度为2λ+λ′+x的比特串;x表示操作符的二进制长度,操作符用于指示操作类型,在本发明中,共支持添加操作(add)、删除操作(del)和检索操作(srch)三种操作,因此,x≥2,为便于计算,以下实施例中,设置x=2,相应地,密码学哈希函数H的输出二进制长度为2λ+λ′+2;
密码学哈希函数G:{0,1}*→{0,1}λ,其输入是任意二进制长度的比特串,其输出是二进制长度为λ的比特串;
对称加密算法SE,其包含两个算法:加密算法EncSE()和解密算法DecSE(),其对称加密算法SE的密钥空间中密钥的二进制长度至少为λ;实际中,一般选择高级加密标准(AES)系列;
密文数据库EDB,位于检索服务器,用于根据密文索引存储密文;
状态表LastOp和LastKey,位于检索客户端,由检索客户端秘密保存,且均对外不可访问;状态表LastOp中各条目分别用于记录与一个关键字相关联的最近一次操作所对应的文件标识符、操作符及随机比特串,状态表LastKey中各条目分别用于记录与一个关键字相关联的最近一次操作使用的密钥信息;
具体可通过哈希表实现密文数据库EDB、以及私有状态表LastOp和LastKey。
经过上述初始化之后,本发明所提供的高效且健壮的动态可搜索对称加密方法,如图2所示,对于任意一个关键字w,包括在检索客户端执行的加密步骤和检索密文生成步骤,以及在检索服务器执行的密文检索步骤;
加密步骤包括:获得关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′;
将当前操作的文件标识符id加密为文件标识符密文C,在本实施例中,将文件标识符id加密为文件标识符密文C的方式为:C=EncSE(KSE,id),KSE表示从对称加密算法SE的密钥空间中随机选取的密钥;生成随机比特串R,其二进制长度为λ;根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L;根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D;若当前操作为删除操作,则密文元信息D中还包含删除凭据A,用于匹配待删除密文;
生成当前操作对应的密文(L、R、D、C),并上传至检索服务器,以根据密文索引L将该密文存储到密文数据库EDB中;更新状态表LastOp,具体地,根据关键字w、文件标识符id、操作符op以及随机比特串R更新状态表LastOp中与关键字w相关联的条目;
检索密文生成步骤包括:成功获取到关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′后,获得关键字w关联的上一次操作使用的密钥K′和密钥S′,并计算对应的密文索引L′和陷门T′;
将无效文件标识符id0加密为文件标识符密文C0,具体加密方式为C0=EncSE(KSE,id0),无效文件标识符id0是一种特殊的文件标识符,仅起到标识作用,在本实施例中,id0=0λ,即为id0二进制长度为λ的全零比特串;生成随机比特串R0,其二进制长度为λ;随机选取密钥K和密钥S,并计算密钥K和密钥K′之间的更新凭据ΔK→K′;密钥K和密钥K′属于同一密钥空间,均属于密钥可更新的伪随机函数P的密钥空间
Figure BDA0002201421880000141
密钥S和密钥S′属于同一密钥空间,均属于伪随机函数F的密钥空间
Figure BDA0002201421880000151
根据密钥K、关键字w、无效文件标识符id0、检索操作的操作符op0以及随机比特串R0计算检索操作的密文索引L0;根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0
生成检索密文(L0、R0、D0、C0),并将该密文连同密文索引L′和陷门T′一起发送至检索服务器,以使得检索服务器开始针对关键字w执行密文检索;更新状态表LastOp和LastKey,具体根据关键字w、无效文件标识符id0、操作符op0以及随机比特串R0更新状态表LastOp中与关键字w相关联的条目,根据关键字w、密钥K和密钥S更新状态表LastKey中与关键字w相关联的条目;
密文检索步骤包括:根据密文索引L′查询密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,获得与关键字w相关联的所有密文并进行解析,将其中删除操作密文、待删除密文以及冗余的检索密文均删除后,将剩余密文中的文件标识符密文按照检索顺序组织为结果集合I,并返回给检索客户端;在检索服务器中,密文的检索顺序与密文的上传顺序相反。
如图2所示,上述高效且健壮的动态可搜索对称加密方法,对于关键字w,还可包括在检索客户端执行的解密步骤;
解密步骤包括:若结果集合
Figure BDA0002201421880000152
则将状态表LastOp和LastKey中与关键字w相关联的条目均设置为空值,操作结束;
若结果集合
Figure BDA0002201421880000153
则依次获取其中的元素并解密,从而获得当前密文数据库EDB中与关键字w相关联的所有添加操作密文的文件标识符{id1,id2,…idn};
其中,n为结果集合I中的元素个数,idi表示根据结果集合I中第i个元素解密得到的文件标识符,1≤i≤n;
在本实施例中,对结果集合I中任意第i个元素I[i]进行解密的方式为:idi=DecSE(KSE,I[i])。
在本实施例中,在加密步骤中,根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L,其计算方式为:
L=G(P(K′,w||id||op)||R);
其中,||表示比特串连接操作;
其他密文的密文索引计算方式与此相同,在获取到密文对应的关键字、文件标识符、操作符、随机比特串,以及当前操作使用的密钥后,按照同样的计算方式计算即可。
在本实施例中,计算关键字w关联的上一次操作对应的陷门T′,其计算方式为:
T′=F(S′,w||id′||op′);
其他密文的陷门计算方式与此相同,在获取到密文对应的关键字、文件标识符、操作符以及当前操作使用的密钥后,按照同样的计算方式计算即可。
在本实施例中,加密步骤中,获得关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′,具体包括:
获得状态表中关键字w相关联的条目,以获得w相关联的最近一次操作使用的密钥K′和密钥S′;若获取到的密钥均为空值,则从密钥空间
Figure BDA0002201421880000161
中随机选取一个密钥,并赋值给密钥K′,从密钥空间
Figure BDA0002201421880000162
中随机选取一个密钥,并赋值给密钥S′,从而对密钥K′和密钥S′进行初始化;
获得状态表中关键字w相关联的条目,以获得关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′;若获取成功,即id′、op′和R′均不为NULL,则根据L′=G(P(K′,w||id′||op′)||R′)计算密文索引L′,根据T′=F(S′,w||id′||op′)计算陷门T′;若获取不成功,即(id′,op′,R′)=(NULL,NULL,NULL),则设置密文索引L′=0λ,陷门T′=0λ
其中,0λ表示二进制长度为λ的全零比特串。
在本实施例中,加密步骤中,根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D,包括:
若op=add,则根据
Figure BDA0002201421880000171
生成当前操作对应的密文元信息D;
若op=del,则根据A=P(K′,w||id||add)生成删除凭据A,并根据
Figure BDA0002201421880000172
生成当前操作对应的密文元信息D;删除凭据A是待删除密文的密文索引的一部分;
其中,
Figure BDA0002201421880000173
表示异或操作;
其他的添加操作密文和删除操作密文的密文元信息计算方式与此相同,在获取到密文对应的关键字、文件标识符、操作符、随机比特串,与同一关键字相关联的上一操作的密文索引和陷门,以及当前操作使用的密钥后,按照同样的计算方式计算即可。
在本实施例中,检索密文生成步骤中,根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0,其计算方式为:
Figure BDA0002201421880000174
在本实施例中,密文检索步骤具体包括:
(S1)检索服务器接收到密文索引L′、陷门T′以及检索密文(L0、R0、D0、C0)后,根据(Lt,Rt,Dt,Ct)=(L0,R0,D0,C0)、(L′t,T′t)=(L′,T′)以及(optt)=(srch,NULL)初始化临时变量以Lt、Rt、Dt、Ct、L′t、T′t、opt以及Δt,并初始化两个空集Set1和Set2
(S2)根据密文索引L0将检索密文(L0,R0,D0,C0)存储到密文数据库EDB中;
(S3)从密文数据库EDB中获得密文索引L′相对应的密文EDB[L′],以获得该密文的随机比特串R′、密文元信息D′和文件标识符密文C′,并根据
Figure BDA0002201421880000181
对该密文进行解析,以获得密文EDB[L′]的操作符op′和信息X′,以及密文EDB[L′]的前一条与关键字w相关联的密文的密文索引L″和陷门T″;密文EDB[L′]对应的操作类型不同,信息X′有所不同,若为删除操作,则X′=0λ,若为删除操作,则X′为用于匹配待删除密文的删除凭据,若为检索操作,则X′为与关键字w相关联的上一检索操作使用的密钥与当前检索操作使用的密钥之间的更新凭据;
(S4)若op′=del,则转入步骤(S5);若op′=add,则转入步骤(S8);若op′=srch,则转入步骤(S12);
(S5)从密文数据库EDB中删除密文EDB[L′],并将信息X′加入到集合Set2中;通过此步骤,可将删除操作密文从密文数据库EDB中删除,并将用于匹配待删除密文的删除凭据加入到集合Set2中;
(S6)根据
Figure BDA0002201421880000182
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];由此,可在密文EDB[L′]被删除后,将其前一条与关键字w相关联的密文的索引和陷门加密到其后一条与关键字w相关联的密文的密文元信息中;在本发明中,异或操作的优先级高于比特串连接操作的优先级;
(S7)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S8)若存在At∈Set2,使得L′=G(At||R′),说明了当前添加操作密文为某一个删除操作密文对应的待删除密文,则从密文数据库中删除密文EDB[L′],从而删除待删除的密文,并转入步骤(S9);否则,转入步骤(S11);
(S9)根据
Figure BDA0002201421880000191
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];由此,可在密文EDB[L′]被删除后,将其前一条与关键字w相关联的密文的索引和陷门加密到其后一条与关键字w相关联的密文的密文元信息中;
(S10)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S11)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,并根据(L′t,T′t,opt)←(L″,T″,op′)更新临时变量L′t、T′t和opt后,将文件标识符密文C′加入到集合Set1中,并转入步骤(S18);
(S12)若opt=srch且Δt≠NULL,说明出现了两个连续的检索密文,则从密文数据库中删除密文EDB[L′],从而删除冗余的检索密文,并转入步骤(S13);否则,转入步骤(S16);
(S13)根据
Figure BDA0002201421880000192
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S14)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后;
(S15根据Δt=Δt⊙X′更新临时变量Δt后,转入步骤(S17);
(S16)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t,并根据(optt)=(op′,X′)更新临时变量opt和Δt后,转入步骤(S17);
(S17)对于每一个At∈Set2,根据At=KeyUpdateP(X′,At)对其进行更新,并在集合Set2中所有元素更新完成后转入步骤(S18);
(S18)根据(L′,T′)=(L″,T″)更新密文索引L′和陷门T′的值,若L′=0λ且T′=0λ,则转入步骤(S3);否则,将集合Set1作为最终的结果集合I返回给用户,针对关键字w的检索操作结束;
其中,srch表示检索操作的操作符,0λ′+2表示二进制长度为λ′+2的全零比特串,⊙表示TokenCombineP操作。
应当说明的是,在本发明中,诸如(Lt,Rt,Dt,Ct)=(L0,R0,D0,C0)、(L′t,T′t)=(L′,T′)的表达式表示一一对应赋值的操作,例如,(Lt,Rt,Dt,Ct)=(L0,R0,D0,C0)表示将Lt、Rt、Dt、Ct依次赋值为L0、R0、D0、C0,(L′t,T′t)=(L′,T′)表示将L′t和T′t依次赋值为L′和T′;以此类推,在此将不作一一列举。
本发明还提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于从计算机可读存储介质中读取可执行程序,执行上述高效且健壮的动态可搜索对称加密方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种高效且健壮的动态可搜索对称加密方法,其特征在于,对于任意一个关键字w,包括在检索客户端执行的加密步骤和检索密文生成步骤,以及在检索服务器执行的密文检索步骤;
所述加密步骤包括:获得所述关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′;
将当前操作的文件标识符id加密为文件标识符密文C,并生成随机比特串R;根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L;根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D;若当前操作为删除操作,则所述密文元信息D中还包含删除凭据A,用于匹配待删除密文;
生成当前操作对应的密文(L、R、D、C),并上传至所述检索服务器,以根据密文索引L将该密文存储到密文数据库EDB中;更新状态表LastOp;
所述检索密文生成步骤包括:成功获取到所述关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′后,获得所述关键字w关联的上一次操作使用的密钥K′和密钥S′,并计算对应的密文索引L′和陷门T′;
将无效文件标识符id0加密为文件标识符密文C0,并生成随机比特串R0;随机选取密钥K和密钥S,并计算密钥K和密钥K′之间的更新凭据ΔK→K′,密钥K和密钥K′属于同一密钥空间,密钥S和密钥S′属于同一密钥空间;根据密钥K、关键字w、无效文件标识符id0、检索操作的操作符op0以及随机比特串R0计算检索操作的密文索引L0;根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0
生成检索密文(L0、R0、D0、C0),并将该密文连同密文索引L′和陷门T′一起发送至所述检索服务器,以使得所述检索服务器开始针对关键字w执行密文检索;更新状态表LastOp和LastKey;
所述密文检索步骤包括:根据密文索引L′查询密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,获得与关键字w相关联的所有密文并进行解析,将其中删除操作密文、待删除密文以及冗余的检索密文均删除后,将剩余密文中的文件标识符密文按照检索顺序组织为结果集合I,并返回给所述检索客户端;
其中,密文数据库EDB位于检索服务器,用于存储密文;所述状态表LastOp和LastKey位于检索客户端,且均对外不可访问;所述状态表LastOp中各条目分别用于记录与一个关键字相关联的最近一次操作所对应的文件标识符、操作符及随机比特串,所述状态表LastKey中各条目分别用于记录与一个关键字相关联的最近一次操作使用的密钥信息;操作符用于指示操作类型。
2.如权利要求1所述的高效且健壮的动态可搜索对称加密方法,其特征在于,对于所述关键字w,还包括在检索客户端执行的解密步骤;
所述解密步骤包括:若结果集合
Figure FDA0002201421870000021
则将所述状态表LastOp和LastKey中与关键字w相关联的条目均设置为空值,操作结束;
若结果集合
Figure FDA0002201421870000022
则依次获取其中的元素并解密,从而获得当前所述密文数据库EDB中与关键字w相关联的所有添加操作密文的文件标识符{id1,id2,…idn};
其中,n为所述结果集合I中的元素个数,idi表示根据所述结果集合I中第i个元素解密得到的文件标识符,1≤i≤n。
3.如权利要求1或2所述的高效且健壮的动态可搜索对称加密方法,其特征在于,所述加密步骤中,根据密钥K′、关键字w、文件标识符id、当前操作的操作符op以及随机比特串R计算当前操作的密文索引L,其计算方式为:
L=G(P(K′,w||id||op)||R);
其中,G()为密码学哈希函数,输出二进制长度为λ的比特串;P()为密钥可更新的伪随机函数,输出长度为λ′的比特串;||表示比特串连接操作;λ为预设的安全参数,λ′为与λ的多项式相关的值;密钥K′属于伪随机函数P()的密钥空间
Figure FDA0002201421870000031
4.如权利要求3所述的高效且健壮的动态可搜索对称加密方法,其特征在于,密钥可更新的伪随机函数P()支持UpdateTokenP操作,KeyUpdateP操作以及TokenCombineP操作;
UpdateTokenP操作用于计算密钥空间
Figure FDA0002201421870000032
中任意两个密钥k1和k2之间的更新凭据
Figure FDA0002201421870000033
KeyUpdateP操作用于根据两个密钥k1和k2之间的更新凭据
Figure FDA0002201421870000034
更新使用前一个密钥k1生成的伪随机函数值;
TokenCombineP操作用于结合密钥k1、k2之间的更新凭据
Figure FDA0002201421870000035
以及密钥k2、k3之间的更新凭据
Figure FDA0002201421870000036
从而得到密钥k1、k3之间的更新凭据
Figure FDA0002201421870000037
其中,k1、k2和k3为密钥空间
Figure FDA0002201421870000038
中任意三个不同的密钥。
5.如权利要求3所述的高效且健壮的动态可搜索对称加密方法,其特征在于,计算所述关键字w关联的上一次操作对应的陷门T′,其计算方式为:
T′=F(S′,w||id′||op′);
其中,F()为伪随机函数,输出二进制长度为λ的比特串;密钥S′属于为随机函数F()的密钥空间
Figure FDA0002201421870000041
6.如权利要求5所述的高效且健壮的动态可搜索对称加密方法,其特征在于,所述加密步骤中,获得所述关键字w相关联的最近一次操作使用的密钥K′和密钥S′,以及对应的密文索引L′和陷门T′,包括:
获得所述状态表中关键字w相关联的条目,以获得w相关联的最近一次操作使用的密钥K′和密钥S′;若获取到的密钥均为空值,则从密钥空间
Figure FDA0002201421870000042
中随机选取一个密钥,并赋值给密钥K′,从密钥空间
Figure FDA0002201421870000043
中随机选取一个密钥,并赋值给密钥S′;
获得所述状态表中关键字w相关联的条目,以获得所述关键字w相关联的最近一次操作对应的文件标识符id′、操作符op′以及随机比特串R′;若获取成功,则根据L′=G(P(K′,w||id′||op′)||R′)计算密文索引L′,根据T′=F(S′,w||id′||op′)计算陷门T′;若获取不成功,则设置密文索引L′=0λ,陷门T′=0λ
其中,0λ表示二进制长度为λ的全零比特串。
7.如权利要求6所述的高效且健壮的动态可搜索对称加密方法,其特征在于,所述加密步骤中,根据密钥S′、关键字w、文件标识符id、操作符op、随机比特串R、密文索引L′以及陷门T′生成当前操作对应的密文元信息D,包括:
若op=add,则根据
Figure FDA0002201421870000044
生成当前操作对应的密文元信息D;
若op=del,则根据A=P(K′,w||id||add)生成删除凭据A,并根据
Figure FDA0002201421870000045
生成当前操作对应的密文元信息D;
其中,add表示添加操作的操作符,del表示删除操作的操作符;H()为密码学哈希函数,输出二进制长度为2λ+λ′+x的比特串;x表示操作符的二进制长度,x≥2;0λ′表示二进制长度为λ′的全零比特串;
Figure FDA0002201421870000051
表示异或操作。
8.如权利要求7所述的高效且健壮的动态可搜索对称加密方法,其特征在于,所述检索密文生成步骤中,根据密钥S、关键字w、无效文件标识符id0、操作符op0、随机比特串R0、更新凭据ΔK→K′、密文索引L′和陷门T′生成检索操作的密文元信息D0,其计算方式为:
Figure FDA0002201421870000052
9.如权利要求8所述的高效且健壮的动态可搜索对称加密方法,其特征在于,所述密文检索步骤包括:
(S1)检索服务器接收到密文索引L′、陷门T′以及检索密文(L0、R0、D0、C0)后,根据(Lt,Rt,Dt,Ct)=(L0,R0,D0,C0)、(L′t,T′t)=(L′,T′)以及(optt)=(srch,NULL)初始化临时变量以Lt、Rt、Dt、Ct、L′t、T′t、opt以及Δt,并初始化两个空集Set1和Set2
(S2)根据密文索引L0将检索密文(L0,R0,D0,C0)存储到密文数据库EDB中;
(S3)从密文数据库EDB中获得密文索引L′相对应的密文EDB[L′],以获得该密文的随机比特串R′、密文元信息D′和文件标识符密文C′,并根据
Figure FDA0002201421870000053
对该密文进行解析,以获得密文EDB[L′]的操作符op′和信息X′,以及密文EDB[L′]的前一条与关键字w相关联的密文的密文索引L″和陷门T″;
(S4)若op′=del,则转入步骤(S5);若op′=add,则转入步骤(S8);若op′=srch,则转入步骤(S12);
(S5)从密文数据库EDB中删除密文EDB[L′],并将信息X′加入到集合Set2中;
(S6)根据
Figure FDA0002201421870000061
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S7)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S8)若存在At∈Set2,使得L′=G(At||R′),则从密文数据库中删除密文EDB[L′]后,转入步骤(S9);否则,转入步骤(S11);
(S9)根据
Figure FDA0002201421870000062
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S10)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t后,转入步骤(S18);
(S11)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,并根据(L′t,T′t,opt)←(L″,T″,op′)更新临时变量L′t、T′t和opt后,将文件标识符密文C′加入到集合Set1中,并转入步骤(S18);
(S12)若opt=srch且Δt≠NULL,则从密文数据库中删除密文EDB[L′]后,转入步骤(S13);否则,转入步骤(S16);
(S13)根据
Figure FDA0002201421870000063
更新临时变量Dt后,根据临时变量Lt、Rt、Dt和Ct更新密文数据库EDB中与密文索引Lt相对应的密文EDB[Lt];
(S14)根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t
(S15)根据Δt=Δt⊙X′更新临时变量Δt后,转入步骤(S17);
(S16)根据(Lt,Rt,Dt,Ct)=(L′,R′,D′,C′)更新临时变量Lt、Rt、Dt和Ct,根据(L′t,T′t)=(L″,T″)更新临时变量L′t和T′t,并根据(optt)=(op′,X′)更新临时变量opt和Δt后,转入步骤(S17);
(S17)对于每一个At∈Set2,根据At=KeyUpdateP(X′,At)对其进行更新,并在集合Set2中所有元素更新完成后转入步骤(S18);
(S18)根据(L′,T′)=(L″,T″)更新密文索引L′和陷门T′的值,若L′=0λ且T′=0λ,则转入步骤(S3);否则,将集合Set1作为最终的结果集合I返回给用户,针对关键字w的检索操作结束;
其中,srch表示检索操作的操作符,0λ′+x表示二进制长度为λ′+x的全零比特串,0x表示二进制长度为x的全零比特串,⊙表示TokenCombineP操作。
10.一种系统,包括处理器和计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储可执行程序;
所述处理器用于从所述计算机可读存储介质中读取所述可执行程序,执行权利要求1-9任一项所述的高效且健壮的动态可搜索对称加密方法。
CN201910866516.7A 2019-09-12 2019-09-12 一种高效且健壮的动态可搜索对称加密方法及系统 Active CN110765469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910866516.7A CN110765469B (zh) 2019-09-12 2019-09-12 一种高效且健壮的动态可搜索对称加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910866516.7A CN110765469B (zh) 2019-09-12 2019-09-12 一种高效且健壮的动态可搜索对称加密方法及系统

Publications (2)

Publication Number Publication Date
CN110765469A CN110765469A (zh) 2020-02-07
CN110765469B true CN110765469B (zh) 2021-04-20

Family

ID=69329553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910866516.7A Active CN110765469B (zh) 2019-09-12 2019-09-12 一种高效且健壮的动态可搜索对称加密方法及系统

Country Status (1)

Country Link
CN (1) CN110765469B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199698B (zh) * 2020-09-30 2023-12-12 华中科技大学 一种健壮的可搜索对称加密方法与系统
CN112800445B (zh) * 2021-01-21 2022-12-09 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法
CN113076319B (zh) * 2021-04-13 2022-05-06 河北大学 基于离群值检测技术和位图索引的动态数据库填充方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106127075A (zh) * 2016-06-27 2016-11-16 湖南大学 一种云存储环境下基于隐私保护的可搜索加密方法
CN108200063A (zh) * 2017-12-29 2018-06-22 华中科技大学 一种可搜索公钥加密方法、采用该方法的系统和服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101302137B1 (ko) * 2009-12-16 2013-09-16 한국전자통신연구원 대칭 키 기반 검색 가능 암호 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106127075A (zh) * 2016-06-27 2016-11-16 湖南大学 一种云存储环境下基于隐私保护的可搜索加密方法
CN108200063A (zh) * 2017-12-29 2018-06-22 华中科技大学 一种可搜索公钥加密方法、采用该方法的系统和服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
可搜索加密的研究进展;徐鹏 等;《网络与信息安全学报》;20161031;第2卷(第10期);第8-16页 *

Also Published As

Publication number Publication date
CN110765469A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
US11537626B2 (en) Full-text fuzzy search method for similar-form Chinese characters in ciphertext domain
CN110457915B (zh) 高效且具有前后向安全性的可搜索对称加密方法及系统
Stefanov et al. Practical dynamic searchable encryption with small leakage
US11709948B1 (en) Systems and methods for generation of secure indexes for cryptographically-secure queries
US10235335B1 (en) Systems and methods for cryptographically-secure queries using filters generated by multiple parties
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
US20170300713A1 (en) Method and System for Verifiable Searchable Symmetric Encryption
CN110765469B (zh) 一种高效且健壮的动态可搜索对称加密方法及系统
Kamara et al. Cs2: A searchable cryptographic cloud storage system
US20130046974A1 (en) Dynamic symmetric searchable encryption
EP3342090A1 (en) Method for providing encrypted data in a database and method for searching on encrypted data
Li et al. Towards privacy-preserving storage and retrieval in multiple clouds
CN112800445B (zh) 一种用于密文数据的前后向安全和可验证的布尔查询方法
US20170262546A1 (en) Key search token for encrypted data
US20140133651A1 (en) Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program
Rizomiliotis et al. ORAM based forward privacy preserving dynamic searchable symmetric encryption schemes
CN112199698B (zh) 一种健壮的可搜索对称加密方法与系统
US9946720B1 (en) Searching data files using a key map
CN115225409A (zh) 基于多备份联合验证的云数据安全去重方法
CN112818404A (zh) 数据访问权限的更新方法、装置、设备及可读存储介质
WO2020210066A1 (en) Methods for encrypting and updating virtual disks
Rizomiliotis et al. Simple forward and backward private searchable symmetric encryption schemes with constant number of roundtrips
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
CN116996281B (zh) 支持密文分享的动态可搜索对称加密方法、系统及介质

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