CN110457915B - 高效且具有前后向安全性的可搜索对称加密方法及系统 - Google Patents
高效且具有前后向安全性的可搜索对称加密方法及系统 Download PDFInfo
- Publication number
- CN110457915B CN110457915B CN201910646540.XA CN201910646540A CN110457915B CN 110457915 B CN110457915 B CN 110457915B CN 201910646540 A CN201910646540 A CN 201910646540A CN 110457915 B CN110457915 B CN 110457915B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- retrieval
- keyword
- operator
- index
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000004576 sand Substances 0.000 claims description 22
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
- G06F21/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了高效且具有前后向安全性的可搜索对称加密方法及系统,属于云存储安全领域,包括:检索客户端生成密文后并发送至检索服务器,以将该密文存储于密文数据库中;所生成的密文包括密文索引、随机比特串、密文元信息以及加密后的文件标识;密文元信息包括该密文的操作符,上一操作的密文索引和检索陷门,以及待删除的密文索引;进行关键字检索时,检索客户端从私有状态表获取与该关键字相关的文件标识和操作符,以生成密文索引和检索陷门,并发送到检索服务器;检索服务器从密文数据库获得与该关键字相关的所有密文,删除需要删除的密文后获得结果集合,并发送给检索客户端。本发明实现了对可搜索密文的高效检索并同时保证了前后向安全性。
Description
技术领域
本发明属于云存储安全领域,更具体地,涉及一种高效且具有前后向安全性的可搜索对称加密方法及系统。
背景技术
随着云计算与云存储技逐渐成熟,成本逐渐下降,用户更加倾向于将自己的文件等数据保存在云端,也就是数据的外包存储。外包存储技术使得用户不必担心自己的本地设备损坏或丢失所带来的数据失效问题,并且释放了用户本地设备有限的存储空间。但是这也带来了一个问题,就是用户如何保护自己数据中的隐私信息不被服务器获取。解决外包存储技术中数据隐私保护问题的主要方法就是在上传数据前先对数据进行加密。而为了在加密数据后,让数据依然具有良好的可用性,便于用户检索与取用,可搜索加密技术应运而生。可搜索加密技术分为可搜索对称加密与可搜索公钥加密,其中可搜索公钥加密技术主要应用在加密文件分享的场景中,并且检索效率低下。因此,可搜索对称加密技术在外包存储技术中应用更为广泛。
对于实用化的可搜索对称加密方法来说,检索效率和前、后向安全性都是非常重要的。所谓前向安全,是指云存储系统中,检索服务器无法使用用户在前面提交的检索陷门去对用户在后面上传的可搜索密文进行检索;所谓后向安全,是指检索服务器无法获取用户已经删除的密文中保存的文件标识。如果可搜索对称加密方法不够高效,那么检索服务器在进行检索时就需要花费更多的时间和资源,降低效率;如果可搜索对称加密方法不能同时实现前向安全和后向安全,那么用户上传检索陷门之后,与该陷门相关的可搜索密文,以及已经被用户删除的可搜索密文,都将与其他可搜索密文具有可区分性,降低了算法的安全性。
传统的可搜索对称加密方法中,为了保证后向安全性,往往依赖于ORAM(Oblivious Random Access Machine,不经意随机访问机)或者puncturable encryption(穿刺加密),这两种机制开销极大,这使得具有前、后向安全的可搜索对称加密方法往往不够高效,而高效的可搜索对称加密方法往往不具有前、后向安全性。总的来说,现有的可搜索对称加密方法无法同时获得高检索效率和前后向安全性(前向安全性和后向安全性)。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种高效且具有前后向安全性的可搜索对称加密方法及系统,旨在解决现有的可搜索对称加密方法无法同时获得高检索效率和前后向安全性的问题。
为实现上述目的,按照本发明的第一方面,提供了一种高效且具有前后向安全性的可搜索对称加密方法,包括:密文生成步骤和关键字检索步骤;
检索服务器和检索客户端中分别初始化了密文数据库EDB和私有状态表LastOp;密文数据库EDB用于存储检索客户端上传的密文,密文与关键字、文件标识以及操作符相关;私有状态表LastOp用于存储关键字及与该关键字相关的最近一次操作所对应的文件标识和操作符,私有状态表LastOp对外不可访问;操作符用于指示密文操作类型;
密文生成步骤包括:
(a1)在检索客户端,对于当前操作,根据待操作的关键字w、文件标识id以及相应的操作符op分别计算当前操作对应的密文索引L和检索陷门T,对文件标识id进行加密以得到加密后的文件标识C,并随机生成二进制长度为λ的比特串R;λ为预先定义的安全参数,检索陷门T和比特串R用于在检索服务器端解析密文;
(a2)生成当前操作所对应的密文元信息D,密文元信息D由检索陷门T和比特串R加密生成,并包含操作符op;
若能够从私有状态表LastOp中成功查询到与关键字w相关的上一个操作相对应的文件标识id′和操作符op′,则密文元信息D中还包含与关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′;检索陷门T′根据关键字w、文件标识id′和操作符op′计算得到;检索陷门T′用于在检索服务器端解析密文;能够从私有状态表LastOp中成功查询到与关键字w相关的上一个操作相对应文件标识和操作符,说明此前已经通过添加密文操作或者删除密文操作将与关键字w相关的密文存储到了密文数据库中,此时将上一个操作相对应的密文索引L′和检索陷门T′加密到当前操作对应的密文元信息中,L′和T′只有在检索服务器检索到对应的密文时,才会被解密并暴露给服务器,用于继续对前一条可搜索密文进行检索,由此能够在密文数据中维护密文间的隐藏关系链,并且在密文索引和检索陷门发生改变的情况下,仍然维持密文间隐藏关系的完整性;
若当前操作为删除密文操作,则密文元信息D中还包含待删除密文的密文索引A;
(a3)由密文索引L、比特串R、密文元信息D和加密后的文件标识C构成当前操作所对应的密文(L,R,D,C),并上传至检索服务器,以使得检索服务器根据密文索引L将该密文存储到密文数据库EDB中;由于所有可搜索密文中保存的文件标识都是加密的,因此检索服务器无法获得已经删除的可搜索密文中所保存的文件标识,由此保证了后向安全性;
(a4)将私有状态表LastOp中与关键字w相关的文件标识和操作符分别更新为文件标识id和操作符op;
关键字检索步骤包括:
(b1)在检索客户端,根据待检索的关键字ws查询私有状态表LastOp,以获取与关键字ws相关的最近一次操作所对应的文件标识ids和操作符ops,若获取失败,则操作结束;否则,转入步骤(b2);
(b2)根据关键字ws、文件标识ids以及操作符ops计算密文索引Ls和检索陷门Ts,并将密文索引Ls连同检索陷门Ts一起发送至检索服务器,以使得检索服务器开始执行针对关键字ws的检索操作;
(b3)检索服务器根据密文索引Ls查询密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,以获得与关键字ws相关的所有密文并进行解析,将其中删除密文操作所对应的密文及待删除的密文均删除后,将剩余密文中的加密后的文件标识按照密文被检索的顺序组织为结果集合S;根据密文元信息中所包含的上一操作所对应的密文索引和检索陷门,能够在检索服务器端,将与同一个关键字相关联的所有可搜索密文连接起来,这使得检索服务器在检索时,所处理的所有可搜索密文都是关联于同一个关键字ws的,由此实现了与同一个关键字ws所对应检索密文数量线性相关的检索复杂度,也即是说,本发明将密文的检索时间复杂度降为了亚线性级,实现了高效检索;
(b4)由检索服务器将结果集合S返回给检索客户端,从而完成针对关键字ws的检索操作;在每一次通过添加密文操作或删除密文操作更新密文数据库之后,更新私有状态表LastOp中与关键字w相关的文件标识和操作符,使得每一次针对关键字进行索引时,所生成的密文索引和检索陷门都会发生改变,从而检索客户端当前生成的检索陷门,只能对当前时刻以前上传的可搜索密文进行检索,而不能对该时刻之后生成并上传的可搜索密文进行检索,保证了前向安全性。
进一步地,关键字检索步骤还包括:
若则依次获取其中的元素并解密,从而获得当前密文数据库EDB中与关键字ws相关的所有文件标识{id1,id2,…idn},并在解密完成后,将私有状态表LastOp中与关键字ws相关的文件标识和操作符分别更新为id1和添加密文操作符;
其中,n为结果集合S中的元素个数,idi表示根据结果集合S中第i个元素解密得到的文件标识,1≤i≤n。
进一步地,对于任意一个操作,相应的关键字、文件标识和操作符分别为w0、id0和op0,该操作相对应的密文索引L0的计算方法为:
L0=F(K1,w0||id0||op0);
其中,F为预先设定的伪随机函数,其输出比特串的二进制长度为λ,K1为从伪随机函数F的密钥空间中随机选取的密钥,||表示比特串连接操作。
进一步地,与密文索引L0相对应的检索陷门T0的计算方法为:
T0=F(K2,w0||id0||op0);
其中,K2为从伪随机函数F的密钥空间中随机选取的密钥,K2≠K1。
进一步地,步骤(a2)包括:
若查询成功,且当前操作为删除密文操作,则根据关键字w、文件标识id′和操作符op′计算与关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′,并计算待删除密文的密文索引为A=F(K1,w||id||add)后,生成当前操作所对应的密文元信息D为:
进一步地,步骤(b3)包括:
(b301)在检索服务器端,初始化5个初值为NULL临时变量(Lt,Rt,Dt,Ct,Tt),以及两个空集S1和S2;
Rs和Ds分别表示密文EDB[Ls]中的随机比特串和密文元信息,ops、As、Ls′和Ts′分别表示从密文元信息Ds中解析出的操作符、待删除密文的密文索引、以及与待检索的关键字ws相关的上一操作所对应的密文索引和检索陷门;
(b303)若ops=del且Lt≠NULL,则转入步骤(b304);若ops=del且Lt=NULL,则转入步骤(b305);若ops=add且Ls∈S2,则转入步骤(b306);若ops=add且则转入步骤(b308);
(b305)从密文数据库EDB中删除密文EDB[Ls],并将密文索引As加入集合S2,转入步骤(b309);
(b307)从密文数据库EDB中删除密文EDB[Ls]后,转入步骤(b309);
(b308)分别更新五个临时变量的值为:Lt=Ls、Rt=Rs、Dt=Ds、Ct=Cs、Tt=Ts,并将加密后的文件标识Cs加入集合S1;Cs表示密文EDB[Ls]中加密后的文件标识;
(b309)分别更新密文索引Ls和检索陷门为Ts:Ls=Ls′,Ts=Ts′;
(b310)若Ls=0λ且Ts=0λ,则将集合S1作为结果集合S,操作结束;否则,转入步骤(b302);
其中,del表示删除密文操作的操作符。
进一步地,步骤(a1)中,对文件标识id进行加密以得到加密后的文件标识C,其方法为:
C=EncSE(K3,id);
其中,EncSE表示对称加密算法SE中的加密算法,K3表示从加密算法SE的密钥空间中随机选取的密钥,其二进制长度大于或等于λ。
进一步地,检索客户端解密结果集合S中元素的方法为:
idi=DecSE(K3,S[i]);
其中,DecSE表示称加密算法SE中的解密算法,S[i]表示结果集合S中的第i个元素。
按照本发明的第二方面,还提供了一种高效且具有前后向安全性的可搜索对称加密系统,包括:处理器和计算机可读存储介质;计算机可读存储介质存储有可执行程序代码;
处理器用于调用计算机可读存储介质中存储的可执行程序代码,执行本发明第一方面提供的高效且具有前后向安全性的可搜索对称加密方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的高效且具有前后向安全性的可搜索对称加密方法,在生成可搜索密文时,对其中的文件标识进行加密,使得检索服务器无法获得已经删除的可搜索密文中所保存的文件标识,由此保证了后向安全性;利用私有状态表LastOp保存最近添加或删除的关键字及对应的文件标识,并在更新密文数据库时实时更新该私有状态表,使得检索客户端当前生成的检索陷门,只能对当前时刻以前上传的可搜索密文进行检索,而不能对该时刻之后生成并上传的可搜索密文进行检索,保证了前向安全性;通过在密文中加密上一操作对应的文件标识和操作符,使得检索服务器在检索时,所处理的所有可搜索密文,都是关联于同一个关键字ws的,由此将密文的检索时间复杂度降为了亚线性级,实现了高效检索。总体而言,本发明实现了对可搜索密文的高效检索并同时保证了前后向安全性。
(2)本发明所提供的高效且具有前后向安全性的可搜索对称加密方法,检索服务器能够支持用户添加新的可搜索密文到EDB中,并且在检索时可实现对指定可搜索密文的删除功能,因此本发明具有动态性。
附图说明
图1为现有的外包存储系统的架构示意图;
图2为本发明实施例提供的高效且具有前后向安全性的可搜索对称加密方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对外包存储系统的架构进行简要介绍。如图1所示,外包存储系统的共包括两个实体,检索客户端和检索服务器,检索客户端即数据拥有者,其主要功能是初始化整个系统并生成对称密钥,加密关键字与文件标识并生成可搜索密文,生成检索陷门并提交检索请求,接收检索结果并解密出检索内容;检索服务器负责保存检索客户端上传的可搜索密文,执行检索客户端发起的检索请求并返回检索结果。
检索客户端的功能共包括以下四个方面:
(1)检索客户端在本地对系统进行初始化,生成对称密钥,本地状态,并初始化检索服务器上的加密数据库。
(2)检索客户端利用对称密钥,本地状态对指定的关键字-文件标识对以及操作类型进行加密,并将加密的结果上传给检索服务器保存;
(3)检索客户端利用对称密钥,本地状态对指定的关键字来生成密文索引和该索引对应的检索陷门,并提交给检索服务器来作为检索请求;
(4)检索客户端接收到检索服务器发送回来的检索结果,对检索结果进行解密并获取其中的文件标识,并以此为依据更新本地状态。
检索服务器的功能共包括以下两个方面:
(1)检索服务器接收到检索客户端提交的可搜索密文后,将其保存在加密数据库中;
(2)检索服务器接收到检索客户端提交的检索请求后,在加密数据库上执行检索或删除操作,并返回检索出的密文。
在本发明中,在初始化阶段需要根据应用需求预定义安全参数λ,并根据安全参数λ确定伪随机函数F、密码学哈希函数H,以及对称加密算法SE;λ是非零自然数,其数值越大,可搜索对称加密方法越安全,但相应的计算越复杂;各算法的基本原理及本发明对各算法的要求具体如下:
伪随机函数其中是伪随机函数F的密钥空间,是F的数据空间,是F的值空间,并且即F的输出结果是二进制长度为λ的比特串;其中,F要求密钥空间中的密钥二进制长度足够长以保证安全,其长度应至少为安全参数λ;对数据空间中的数据长度,F没有要求;
密码学哈希函数H:{0,1}*→{0,1}3λ+x,即该哈希函数的输入是任意二进制长度的比特串,输出是二进制长度为3λ+x的比特串;x为操作符的二进制长度,操作符用于指示操作类型,在本发明中,支持添加密文操作和删除密文操作共两种操作,因此,在本发明中,可设置操作符的二进制长度为x=1,例如,二进制1表示添加密文操作的操作符add,二进制0表示删除密文操作的操作符del,以下发明实施例中,均按照这种编码方式对操作符进行编码,相应地,密码学哈希函数H输出比特串的二进制长度为3λ+1;应当说明的是,在此所给出的操作符二进制长度及编码方式,仅为一种示例性的描述,不应理解为对本发明的唯一限定;
对称加密算法SE,其包含两个算法:加密算法EncSE和解密算法DecSE;C=EncSE(KSE,P),P=DecSE(KSE,C);其中密钥 为SE的密钥空间,其二进制长度至少为安全参数λ,P为数据明文,C为数据密文;
在初始化阶段,还要在检索服务器和检索客户端中分别初始化密文数据库EDB和私有状态表LastOp;密文数据库EDB用于存储检索客户端上传的密文,密文与关键字、文件标识以及操作符相关;私有状态表LastOp用于存储关键字及与该关键字相关的最近一次操作所对应的文件标识和操作符,私有状态表LastOp对外不可访问,即私有状态表LastOp由检索客户端秘密保存;操作符用于指示密文操作类型;具体可通过哈希表实现密文数据库EDB和私有状态表LastOp;
经过上述初始化之后,本发明所提供的高效且具有前后向安全性的可搜索对称加密方法,包括:密文生成步骤和关键字检索步骤;
密文生成步骤包括:
(a1)在检索客户端,对于当前操作,根据待操作的关键字w、文件标识id以及相应的操作符op分别计算当前操作对应的密文索引L和检索陷门T,对文件标识id进行加密以得到加密后的文件标识C,并随机生成二进制长度为λ的比特串R;λ为预先定义的安全参数,检索陷门T和比特串R用于在检索服务器端解析密文;
在一个可选的实施方式中,生成的密文索引L和检索陷门T分别为:L=F(K1,w||id||op),T=F(K2,w||id||op);加密后的文件标识C为:C=EncSE(K3,id);
||表示比特串连接操作;
(a2)生成当前操作所对应的密文元信息D,密文元信息D由检索陷门T及比特串R加密生成,并包含操作符op;
若能够从私有状态表LastOp中成功查询到与关键字w相关的上一个操作相对应的文件标识id′和操作符op′,则密文元信息D中还包含与关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′;检索陷门T′根据关键字w、文件标识id′和操作符op′计算得到;检索陷门T′用于在检索服务器端解析密文;能够从私有状态表LastOp中成功查询到与关键字w相关的上一个操作相对应文件标识和操作符,说明此前已经通过添加密文操作或者删除密文操作将与关键字w相关的密文存储到了密文数据库中,此时将上一个操作相对应的密文索引L′和检索陷门T′加密到当前操作对应的密文元信息中,L′和T′只有在检索服务器检索到对应的密文时,才会被解密并暴露给服务器,用于继续对前一条可搜索密文进行检索,由此能够在密文数据中维护密文间的隐藏关系链,并且在密文索引和检索陷门发生改变的情况下,仍然维持密文间隐藏关系的完整性;
若当前操作为删除密文操作,则密文元信息D中还包含待删除密文的密文索引A;
若查询成功,且当前操作为删除密文操作,则A为待删除密文的密文索引,A=F(K1,w||id||add),L′和T′分别为上一个操作所对应的密文索引和检索陷门,具体计算方式可参考上述步骤(a2)中的描述;
(a3)由密文索引L、比特串R、密文元信息D和加密后的文件标识C构成当前操作所对应的密文(L,R,D,C),并上传至检索服务器,以使得检索服务器根据密文索引L将该密文存储到密文数据库EDB中;由于所有可搜索密文中保存的文件标识都是加密的,因此检索服务器无法获得已经删除的可搜索密文中所保存的文件标识,由此保证了后向安全性;
(a4)将私有状态表LastOp中与关键字w相关的文件标识和操作符分别更新为文件标识id和操作符op;
关键字检索步骤包括:
(b1)在检索客户端,根据待检索的关键字ws查询私有状态表LastOp,以获取与关键字ws相关的最近一次操作所对应的文件标识ids和操作符ops,若获取失败,则操作结束;否则,转入步骤(b2);
(b2)根据关键字ws、文件标识ids以及操作符ops计算密文索引Ls和检索陷门Ts,并将密文索引Ls连同检索陷门Ts一起发送至检索服务器,以使得检索服务器开始执行针对关键字ws的检索操作;在本发明中,密文操作、密文、密文索引、检索陷门存在一一对应的关系;
(b3)检索服务器根据密文索引Ls查询密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,以获得与关键字ws相关的所有密文并进行解析,将其中删除密文操作所对应的密文及待删除的密文均删除后,将剩余密文中的加密后的文件标识按照密文被检索的顺序组织为结果集合S;密文被检索的顺序实际上与密文被存储到密文数据库EDB中的顺序相反;根据密文元信息中所包含的上一操作所对应的密文索引和检索陷门,能够在检索服务器端将与同一个关键相关联的所有可搜索密文连接起来,这使得检索服务器在检索时,所处理的所有可搜索密文都是关联于同一个关键字ws的,由此实现了与同一个关键字ws所对应检索密文数量线性相关的检索复杂度,也即是说,本发明将密文的检索时间复杂度降为了亚线性级,实现了高效检索;
在本实施例中,步骤(b3)具体包括:
(b301)在检索服务器端,初始化5个初值为NULL临时变量(Lt,Rt,Dt,Ct,Tt),以及两个空集S1和S2;这五个临时变量用于在检索过程中,保存隐藏关系链中当前被检索密文的下一个密文,若当前被检索密文位于隐藏关系链的链尾,则五个临时变量均为全零比特串;
Rs和Ds分别表示密文EDB[Ls]中的随机比特串和密文元信息和加密后的文件标识,ops、As、Ls′和Ts′分别表示从密文元信息Ds中解析出的操作符、待删除密文的密文索引、以及与待检索的关键字ws相关的上一操作所对应的密文索引和检索陷门;
(b303)若ops=del且Lt≠NULL,即当前密文对应的操作为删除密文操作,且当前密文不在隐藏关系链的链尾,则转入步骤(b304);若ops=del且Lt=NULL,即当前密文对应的操作为删除密文操作,且当前密文位于隐藏关系链的链尾,则转入步骤(b305);若ops=add且Ls∈S2,即当前密文对应的操作为添加密文操作,且当前密文是待删除的密文,则转入步骤(b306);若ops=add且即当前密文对应的操作为添加密文操作,且当前密文不是待删除的密文,则转入步骤(b308);
(b304)更新临时变量Dt为后,更新密文数据库EDB,使得密文EDB[Lt]=(Lt,Rt,Dt,Ct);通过这一操作,使得隐藏关系链中,当前被检索密文的前一条密文的密文索引和检索陷门被加密到当前被检索密文的下一条密文的密文元信息中,由此在当前被检索密文被删除后,仍然能够维持隐藏关系链的完整性;
(b305)从密文数据库EDB中删除密文EDB[Ls],并将密文索引As加入集合S2,转入步骤(b309);通过这一步骤,删除隐藏关系链中与关键字ws相关,且与删除密文操作相对应的密文,并将待删除密文的密文索引记录到集合中S2;
(b306)若Lt≠NULL,即当前被检索密文不在隐藏关系链的链尾,则更新临时变量Dt为后,更新密文数据库EDB,使得密文EDB[Lt]=(Lt,Rt,Dt,Ct),通过这一操作,使得隐藏关系链中,当前被检索密文的前一条密文的密文索引和检索陷门被加密到当前被检索密文的下一条密文的密文元信息中,由此在当前被检索密文被删除后,仍然能够维持隐藏关系链的完整性,更新完成后转入步骤(b307);否则,即当前被检索密文位于隐藏关系链的链尾,直接转入步骤(b307);
(b307)从密文数据库EDB中删除密文EDB[Ls]后,转入步骤(b309);通过这一步骤,删除隐藏关系链中待删除的密文;
(b308)分别更新五个临时变量的值为:Lt=Ls、Rt=Rs、Dt=Ds、Ct=Cs、Tt=Ts,并将加密后的文件标识Cs加入集合S1;Cs表示密文EDB[Ls]中加密后的文件标识;通过这一步骤,在密文数据库中保留当前被检索的密文,并将其中加密后的文件标识加入到了集合S1中;
(b309)分别更新密文索引Ls和检索陷门为Ts:Ls=Ls′,Ts=Ts′;通过这一步骤,检索服务器会沿着隐藏关系链继续向前检索;
(b310)若Ls=0λ且Ts=0λ,则将集合S1作为结果集合S,操作结束;否则,转入步骤(b302);Ls和Ts均为全零比特串时,说明当前被检索的密文位于隐藏关系链的链头,与关键字ws相关的所有密文均以被检索已到;
(b4)由检索服务器将结果集合S返回给检索客户端,从而完成针对关键字ws的检索操作;在每一次通过添加密文操作或删除密文操作更新密文数据库之后,更新私有状态表LastOp中与关键字w相关的文件标识和操作符,使得每一次针对关键字进行索引时,所生成的密文索引和检索陷门都会发生改变,从而检索客户端当前生成的检索陷门,只能对当前时刻以前上传的可搜索密文进行检索,而不能对该时刻之后生成并上传的可搜索密文进行检索,保证了前向安全性。
在本实施例中,关键字检索步骤还包括:
若则依次获取其中的元素并解密,从而获得当前密文数据库EDB中与关键字ws相关的所有文件标识{id1,id2,…idn},并在解密完成后,将私有状态表LastOp中与关键字ws相关的文件标识和操作符分别更新为id1和添加密文操作符;对结果集合中第i个元素S[i]进行解密的方式具体为:idi=DecSE(K3,S[i]);
其中,n为结果集合S中的元素个数,idi表示根据结果集合S中第i个元素解密得到的文件标识,1≤i≤n;由于在检索服务器端,密文被检索的顺序与密文被存储到密文数据库EDB中的顺序相反,文件标识id1所对应的密文,即为密文数据库EDB中最近上传的密文。
本发明还提供了一种高效且具有前后向安全性的可搜索对称加密系统,包括:处理器和计算机可读存储介质;计算机可读存储介质存储有可执行程序代码;
处理器用于调用计算机可读存储介质中存储的可执行程序代码,执行上述高效且具有前后向安全性的可搜索对称加密方法;
在本发明实施例中,系统的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
应用实例:
基于上述方法,本发明实现了多个子过程,分别用于执行上述方法中的步骤,具体为:
Setup(λ):输入安全参数λ,初始化(K∑,σ,EDB),其中K∑是客户端对称密钥,σ是客户端的本地状态,即私有状态表LastOp,EDB是存储在检索服务器的加密数据库;
Update(K∑,σ,op,(w,id)):根据密钥K∑,本地状态σ,操作类型op∈{add,del},和一个关键字-文件标识对(w,id),输出一个对应的可搜索密文;
Trapdoor(K∑,σ,w):根据密钥K∑,本地状态σ和关键字w,生成本次检索开始的密文索引L以及对应的检索陷门T;执行完成后,(L,T)将被提交给检索服务器以执行检索;
Search((L,T),EDB):检索服务器根据(L,T)在EDB上执行用户指定的检索请求;执行完成后,服务器会将检索出的密文结果集合S返回给检索客户端,并删除EDB中与删除请求相对应的密文,包括删除密文操作相对应的密文以及待删除的密文;
Decrypt(K∑,σ,S,w):检索客户端根据密钥K∑和本地状态σ解密检索服务器返回的结果集合S,以得到检索到的文件标识明文,并根据解密的结果更新本地状态。
根据所设计的上述子过程,本发明的执行过程具体如图2所示,包括:
步骤1:检索客户端输入安全参数λ,执行Setup(λ),在本地对系统进行初始化,生成对称密钥K∑,本地状态σ,并初始化检索服务器上的加密数据库EDB;
步骤2:检索客户端输入对称密钥K∑,本地状态σ,指定的关键字-文件标识对(w,id)以及操作类型op,运行算法Update(K∑,σ,op,(w,id))对关键字w及其对应的文件标识id进行加密,生成加密结果(L,R,D,C),并将(L,R,D,C)上传给检索服务器保存;
步骤3:检索服务器接收到检索客户端提交的可搜索密文(L,R,D,C)后,将其保存在加密数据库EDB中;
步骤4:检索客户端输入对称密钥K∑,本地状态σ和指定的关键字w,执行Trapdoor(K∑,σ,w)来生成开始执行检索的密文索引L和该索引对应的检索陷门T,并将(L,T)作为检索请求提交给检索服务器;
步骤5:检索服务器输入接收到的检索请求(L,T)和加密数据库EDB,执行Search((L,T),EDB),并返回检索出的密文集合S;
步骤6:检索客户端输入检索服务器发送回来的检索结果S,对称密钥K∑,本地状态σ和检索的关键字w,执行Decrypt(K∑,σ,S,w)对检索结果进行解密并获取其中的文件标识明文,并以此为依据更新本地状态。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种高效且具有前后向安全性的可搜索对称加密方法,其特征在于,包括:密文生成步骤和关键字检索步骤;
检索服务器和检索客户端中分别初始化了密文数据库EDB和私有状态表LastOp;所述密文数据库EDB用于存储检索客户端上传的密文,密文与关键字、文件标识以及操作符相关;所述私有状态表LastOp用于存储关键字及与该关键字相关的最近一次操作所对应的文件标识和操作符,所述私有状态表LastOp对外不可访问;所述操作符用于指示密文操作类型;
所述密文生成步骤包括:
(a1)在所述检索客户端,对于当前操作,根据待操作的关键字w、文件标识id以及相应的操作符op分别计算当前操作对应的密文索引L和检索陷门T,对文件标识id进行加密以得到加密后的文件标识C,并随机生成二进制长度为λ的比特串R;λ为预先定义的安全参数,所述检索陷门T和所述比特串R用于在所述检索服务器端解析密文;
(a2)生成当前操作所对应的密文元信息D,所述密文元信息D由所述检索陷门T和所述比特串R加密生成,并包含所述操作符op;
若能够从所述私有状态表LastOp中成功查询到与关键字w相关的上一个操作相对应的文件标识id′和操作符op′,则所述密文元信息D中还包含与所述关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′;所述检索陷门T′根据所述关键字w、所述文件标识id′和所述操作符op′计算得到;所述检索陷门T′用于在所述检索服务器端解析密文;
若当前操作为删除密文操作,则所述密文元信息D中还包含待删除密文的密文索引A;
(a3)由密文索引L、比特串R、密文元信息D和加密后的文件标识C构成当前操作所对应的密文(L,R,D,C),并上传至所述检索服务器,以使得所述检索服务器根据所述密文索引L将该密文存储到所述密文数据库EDB中;
(a4)将所述私有状态表LastOp中与所述关键字w相关的文件标识和操作符分别更新为所述文件标识id和所述操作符op;
所述关键字检索步骤包括:
(b1)在所述检索客户端,根据待检索的关键字ws查询所述私有状态表LastOp,以获取与所述关键字ws相关的最近一次操作所对应的文件标识ids和操作符ops,若获取失败,则操作结束;否则,转入步骤(b2);
(b2)根据所述关键字ws、所述文件标识ids以及所述操作符ops计算密文索引Ls和检索陷门Ts,并将所述密文索引Ls连同所述检索陷门Ts一起发送至所述检索服务器,以使得所述检索服务器开始执行针对所述关键字ws的检索操作;
(b3)所述检索服务器根据所述密文索引Ls查询所述密文数据库EDB,以获得相应的密文,并从该密文开始依次向前检索,以获得与所述关键字ws相关的所有密文并进行解析,将其中删除密文操作所对应的密文及待删除的密文均删除后,将剩余密文中的加密后的文件标识按照密文被检索的顺序组织为结果集合S;
(b4)由所述检索服务器将所述结果集合S返回给所述检索客户端,从而完成针对所述关键字ws的检索操作。
3.如权利要求1或2所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,对于任意一个操作,相应的关键字、文件标识和操作符分别为w0、id0和op0,该操作相对应的密文索引L0的计算方法为:
L0=F(K1,w0||id0||op0);
其中,F为预先设定的伪随机函数,其输出比特串的二进制长度为λ,K1为从所述伪随机函数F的密钥空间中随机选取的密钥,||表示比特串连接操作。
4.如权利要求3所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,与所述密文索引L0相对应的检索陷门T0的计算方法为:
T0=F(K2,w0||id0||op0);
其中,K2为从所述伪随机函数F的密钥空间中随机选取的密钥,K2≠K1。
5.如权利要求4所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,所述步骤(a2)包括:
若查询成功,且当前操作为删除密文操作,则根据所述关键字w、所述文件标识id′和所述操作符op′计算与所述关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′,并计算待删除密文的密文索引为A=F(K1,w||id||add)后,生成当前操作所对应的密文元信息D为:
若查询成功,且当前操作为添加密文操作,则根据所述关键字w、所述文件标识id′和所述操作符op′计算与所述关键字w相关的上一个操作所对应的密文索引L′和检索陷门T′后,生成当前操作所对应的密文元信息D为:
6.如权利要求5所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,所述步骤(b3)包括:
(b301)在所述检索服务器端,初始化5个初值为NULL临时变量(Lt,Rt,Dt,Ct,Tt),以及两个空集S1和S2;
Rs和Ds分别表示密文EDB[Ls]中的随机比特串和密文元信息和加密后的文件标识,ops、As、Ls′和Ts′分别表示从所述密文元信息Ds中解析出的操作符、待删除密文的密文索引、以及与待检索的关键字ws相关的上一操作所对应的密文索引和检索陷门;
(b303)若ops=del且Lt≠NULL,则转入步骤(b304);若ops=del且Lt=NULL,则转入步骤(b305);若ops=add且Ls∈S2,则转入步骤(b306);若ops=add且则转入步骤(b308);
(b305)从所述密文数据库EDB中删除密文EDB[Ls],并将密文索引As加入集合S2,转入步骤(b309);
(b307)从所述密文数据库EDB中删除密文EDB[Ls]后,转入步骤(b309);
(b308)分别更新五个临时变量的值为:Lt=Ls、Rt=Rs、Dt=Ds、Ct=Cs、Tt=Ts,并将加密后的文件标识Cs加入集合S1;Cs表示密文EDB[Ls]中加密后的文件标识;
(b309)分别更新密文索引Ls和检索陷门为Ts:Ls=Ls′,Ts=Ts′;
(b310)若Ls=0λ且Ts=0λ,则将集合S1作为所述结果集合S,操作结束;否则,转入步骤(b302);
其中,del表示删除密文操作的操作符。
7.如权利要求1或2所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,所述步骤(a1)中,对文件标识id进行加密以得到加密后的文件标识C,其方法为:
C=EncSE(K3,id);
其中,EncSE表示对称加密算法SE中的加密算法,K3表示从所述加密算法SE的密钥空间中随机选取的密钥,其二进制长度大于或等于λ。
8.如权利要求7所述的高效且具有前后向安全性的可搜索对称加密方法,其特征在于,所述检索客户端解密结果集合S中元素的方法为:
idi=DecSE(K3,S[i]);
其中,DecSE表示称加密算法SE中的解密算法,S[i]表示所述结果集合S中的第i个元素。
9.一种高效且具有前后向安全性的可搜索对称加密系统,包括:处理器和计算机可读存储介质;其特征在于,所述计算机可读存储介质存储有可执行程序代码;
所述处理器用于调用所述计算机可读存储介质中存储的所述可执行程序代码,执行权利要求1-8任一项所述的高效且具有前后向安全性的可搜索对称加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646540.XA CN110457915B (zh) | 2019-07-17 | 2019-07-17 | 高效且具有前后向安全性的可搜索对称加密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646540.XA CN110457915B (zh) | 2019-07-17 | 2019-07-17 | 高效且具有前后向安全性的可搜索对称加密方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457915A CN110457915A (zh) | 2019-11-15 |
CN110457915B true CN110457915B (zh) | 2020-12-29 |
Family
ID=68481398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910646540.XA Active CN110457915B (zh) | 2019-07-17 | 2019-07-17 | 高效且具有前后向安全性的可搜索对称加密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457915B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835731B (zh) * | 2020-06-19 | 2021-06-22 | 北京航空航天大学 | 新型抗文件注入攻击的动态对称可搜索加密方法和装置 |
CN112199698B (zh) * | 2020-09-30 | 2023-12-12 | 华中科技大学 | 一种健壮的可搜索对称加密方法与系统 |
CN112311781B (zh) * | 2020-10-23 | 2021-11-12 | 西安电子科技大学 | 一种前后向安全且具有可恢复关键字屏蔽的加密方法 |
CN112800445B (zh) * | 2021-01-21 | 2022-12-09 | 西安电子科技大学 | 一种用于密文数据的前后向安全和可验证的布尔查询方法 |
CN117651983A (zh) * | 2021-07-27 | 2024-03-05 | 三菱电机株式会社 | 检索执行装置、检索执行方法、检索执行程序和隐匿检索系统 |
CN114095161A (zh) * | 2021-11-12 | 2022-02-25 | 电子科技大学 | 一种支持等式测试的身份基可穿刺加密方法 |
CN115225260B (zh) * | 2022-05-20 | 2024-04-12 | 湖南大学 | 一种动态可搜索加密方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821876A (zh) * | 2015-04-16 | 2015-08-05 | 华中科技大学 | 一种支持物理删除的动态可搜索对称加密方法 |
CN104899517A (zh) * | 2015-05-15 | 2015-09-09 | 陕西师范大学 | 基于短语的可搜索对称加密方法 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
CN108471405A (zh) * | 2018-03-07 | 2018-08-31 | 中山大学 | 一种基于云盘的正向保密动态可搜索加密的协议设计方法 |
-
2019
- 2019-07-17 CN CN201910646540.XA patent/CN110457915B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821876A (zh) * | 2015-04-16 | 2015-08-05 | 华中科技大学 | 一种支持物理删除的动态可搜索对称加密方法 |
CN104899517A (zh) * | 2015-05-15 | 2015-09-09 | 陕西师范大学 | 基于短语的可搜索对称加密方法 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
CN108471405A (zh) * | 2018-03-07 | 2018-08-31 | 中山大学 | 一种基于云盘的正向保密动态可搜索加密的协议设计方法 |
Non-Patent Citations (3)
Title |
---|
"Dynamic Searchable Symmetric Encryption with Physical Deletion and Small Leakage";Peng Xu et al;《Faculty of Engineering and Information Sciences》;20171231;1-20 * |
"Lightweight Searchable Public-Key Encryption for Cloud-Assisted Wireless Sensor Networks";Peng Xu et al;《IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS》;20180831;第14卷(第8期);3712-3723 * |
"可搜索加密的研究进展";徐鹏 等;《网络与信息安全学报》;20161031;第2卷(第10期);00101-1至00101-9 * |
Also Published As
Publication number | Publication date |
---|---|
CN110457915A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457915B (zh) | 高效且具有前后向安全性的可搜索对称加密方法及系统 | |
CN110334526B (zh) | 一种支持验证的前向安全可搜索加密存储系统及方法 | |
Stefanov et al. | Practical dynamic searchable encryption with small leakage | |
US8533489B2 (en) | Searchable symmetric encryption with dynamic updating | |
CN112800445B (zh) | 一种用于密文数据的前后向安全和可验证的布尔查询方法 | |
CN110765469B (zh) | 一种高效且健壮的动态可搜索对称加密方法及系统 | |
CN109493017B (zh) | 基于区块链的可信外包存储方法 | |
US9971904B2 (en) | Method and system for range search on encrypted data | |
WO2017036547A1 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
CN113221155B (zh) | 一种多层级与多等级加密的云储存系统 | |
WO2014041066A1 (en) | Method and system to perform secure boolean search over encrypted documents | |
CN112199698A (zh) | 一种健壮的可搜索对称加密方法与系统 | |
Handa et al. | A cluster based multi-keyword search on outsourced encrypted cloud data | |
CN113434739B (zh) | 一种云环境下前向安全的多用户动态对称加密检索方法 | |
CN113132345B (zh) | 具有可搜索功能的代理隐私集合求交方法 | |
WO2022002350A1 (en) | Data storage server and client devices for securely storing data | |
JP6672451B2 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
CN115913725A (zh) | 基于异或加密链的前向安全动态可搜索加密方法及系统 | |
Williams et al. | SR-ORAM: Single round-trip oblivious ram | |
Handa et al. | An efficient approach for secure information retrieval on cloud | |
CN116670741A (zh) | 隐匿检索系统和隐匿检索方法 | |
JP6493402B2 (ja) | 追加装置、削除装置、追加依頼装置、データ検索システム、データ検索方法、および、コンピュータプログラム | |
CN115225260B (zh) | 一种动态可搜索加密方法 | |
JP7276767B2 (ja) | 動的検索可能暗号処理システム | |
EP4203379A1 (en) | Searchable encryption |
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 |