CN113626485B - 一种适用于数据库管理系统的可搜索加密方法及系统 - Google Patents
一种适用于数据库管理系统的可搜索加密方法及系统 Download PDFInfo
- Publication number
- CN113626485B CN113626485B CN202110753784.5A CN202110753784A CN113626485B CN 113626485 B CN113626485 B CN 113626485B CN 202110753784 A CN202110753784 A CN 202110753784A CN 113626485 B CN113626485 B CN 113626485B
- Authority
- CN
- China
- Prior art keywords
- prt
- endet
- tag
- exk
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000007726 management method Methods 0.000 claims description 43
- 230000006870 function Effects 0.000 claims description 32
- 238000004422 calculation algorithm Methods 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 11
- 230000003044 adaptive effect Effects 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 9
- 101100026202 Neosartorya fumigata (strain ATCC MYA-4609 / Af293 / CBS 101355 / FGSC A1100) neg1 gene Proteins 0.000 claims description 6
- 239000013256 coordination polymer Substances 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 6
- 238000004088 simulation Methods 0.000 description 8
- 230000007547 defect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于可搜索加密技术领域,公开了一种适用于数据库管理系统的可搜索加密方法及系统,所述适用于数据库管理系统的可搜索加密方法包括:初始化系统;参数处理与密钥产生;用户u对文件加密、关键字和安全索引的生成;查询过程;用户关于密文的解密,获取所需文档。本发明提供的适用于数据库管理系统的可搜索加密方法,可以生成适用于数据库管理系统的索引,称之为基于加密索引可变的标签适用于数据库管理系统的可搜索对称加密。本发明通过使用确定性加密功能的输出值的一部分来构造索引,并提供自我信息控制机制以逐步公开部分值。此外,本发明也提供了一定的安全功能,来对信息进行安全管理。和一般方案相比,本发明提高了可搜索加密的加密安全性以及搜索效率,并更加适用于数据库管理系统。
Description
技术领域
本发明属于可搜索加密技术领域,尤其涉及一种适用于数据库管理系统的可搜索加密方法及系统。
背景技术
目前,随着人们在云端存储数据的不断普及,人们把越来越多的数据存储到云端的同时,其数据的安全性与可靠性就受到了前所未有的关注程度。虽然利用加密技术将文件加密存储于云端可有效的保证数据的保密性,但是通过这种方式用户的数据则丧失了许多的可操作性。例如,对文件进行搜索仅仅只需将关键字直接进行匹配即可,但对于加密后的数据,则无法进行这种操作。因此,为了能够提供密文搜索方法,大量的可搜索加密方式孕育而出,不过目前所提出适用于数据库管理系统的可搜索加密方法主要是基于英文单词来进行的,并且多数方案都是仅仅支持精确搜索方案以及单关键词搜索。
对于实际使用的系统的需求来说,往往希望搜索的内容不仅仅是单个的,更希望是通过多个关键字进行联合的搜索。与此同时,在进行搜索操作时,又是会产生一些细微的文字格式或者输入错误,但是通常的精确搜索无法容忍这种错误的出现,导致了搜索系统可用性的大大降低。因此,亟需一种新的适用于数据库管理系统的可搜索加密方法,以弥补现有技术存在的问题及缺陷。
因此通过上述分析,现有技术存在的问题及缺陷为:在进行搜索操作时,会产生一些细微的文字格式或者输入错误,现有精确搜索方法无法容忍这种错误的出现,导致了搜索系统可用性的大大降低。
解决以上问题及缺陷的难度为:
鉴于以上的实际问题,在用户提交加密文件与加密关键字后,如何构建合理的索引来降低搜索时间,避免搜索错误,成为一个解决上述问题的关键。过于简单的索引可能会增加搜索的时间成本,而太复杂索引难于构建,操作困难,导致可用性降低。
解决以上问题及缺陷的意义为:对此本发明选择构建基于标签的可搜索加密方案。用户想要存储文件,要同时提交加密文件,以及每个文件对应的加密关键字。关键字作为标签处理,独立于其他关键字。服务器接收到标签后进行可靠地安全计算处理,并构建相应索引。其中主要应用两个思想,一是通过使用确定性加密功能的一小部分来构建索引,二是提供自我信息控制机制来逐步公开部分值。这种方案构建了适用于数据库管理系统的可搜索加密方法,构建合理的索引,提高了搜索效率和数据的安全性。
发明内容
针对现有技术存在的问题,本发明提供了一种适用于数据库管理系统的可搜索加密方法及系统,尤其涉及一种适用于数据库管理系统的可搜索加密方案构建适用于数据库管理系统的索引生成方法及系统。
本发明是这样实现的,一种适用于数据库管理系统的可搜索加密方法,所述适用于数据库管理系统的可搜索加密方法包括以下步骤:
步骤一,初始化系统;
系统初始化各个模块,为系统选择合适的安全参数和公共参数。
步骤二,参数处理与密钥产生;
根据步骤一中选择的参数,生成方案所使用的哈希函数、伪随机函数和系统密钥;
步骤三,用户u对文件加密、关键字和安全索引的生成;
用户为文件选择合适的标识符,并加密文件和文件关键字,并依据方案构建合理的安全索引,发送给服务端用于存储查询等;
步骤四,查询过程;
用户使用关键字和系统密钥来进行文件查询,服务端根据方案查询到对应加密文件,发送给用户;
步骤五,用户关于密文的解密,获取所需文档;
用户根据密文和系统密钥来进行文件袋解密,获取原始文件。
进一步,步骤一中,所述初始化系统,包括:
系统参数初始化,输入安全参数λ,根据安全参数产生系统公共参数CP=(SEA,λ),对称加密方案SEA=(Gen,Enc,Dec)。
进一步,步骤二中,所述参数处理与密钥产生,包括:
数据拥有者根据公共参数CP,哈希函数H:{0,1}λ×{0,1}*→{0,1}λ是一个单向陷门函数,伪随机函数F:{0,1}λ×{0,1}*→{0,1}λ;
令 成为一个随机oracle的哈希表,初始状态为/>系统密钥K,选取/>产生k4←SEA.KeyGen(1λ),然后得到系统密钥K=(k1,k2,k3,k4)。
进一步,步骤三中,所述用户u对文件加密、关键字和安全索引的生成,包括:
用户u输入文档集合D=(D1,...,DN),用户按照以下步骤进行计算:
(1)对文档集合D=(D1,...,DN),其中的是其中一个文档,ω为文档的关键词,D′=(ω′1,...,ω′len(D))是D的一组唯一关键词;为每个文档Di∈D随机均匀地选取一个唯一的标识符ID(Di)∈{0,1}μ,加密文档Di,得到Ci←SEA.Enc(k4,Di);
(2)对文档中的每个关键字ωi计算其概率标签prti=tag(ωi),存储在系统中。prt的计算过程如下,选取计算prt1′:=H(H(K1||ω)||prt2′),得到prt=(prt1′,prt2′);
(3)将密文文档C和概率标签prt的集合建立索引,存储在数据库中。
进一步,步骤四中,所述查询过程,包括:
(1)在关键字查询过程中,用户输入要查询的关键字ω和系统密钥K;
(2)数据库得到关键字ω和系统密钥K后,计算陷门trd:=H(K1||ω),分析prti=(prt1′,prt2′),并计算prt′1:=H(trd||prt2);如果prt1=prt′1,则输出b:=1,否则输出b:=0;
(3)根据关键字ω和系统密钥K以及要确定的文档长度L,对i∈[1,L],计算deti:=H(k2||ω)|i,得到确定标签集合DeT:=(det1,...,detL);对i∈[1,L],计算exki:=H(k3||i),得到提取密钥集合ExK:=(exk1,...,exkL);
(4)根据确定标签集合DeT和提取密钥集合ExK,对所有i∈[1,L],选取计算/>令endeti:=(endeti,1,endeti,2),得到加密后的确定标签EnDeT:=(endet1,...,endetL);
(5)根据加密后的确定标签选择对应要求查询的第i位关键字,解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出 提取DeT中第i位的元素,从而得到要查询的关键字标签。
进一步,步骤五中,所述用户关于密文的解密,获取所需文档,包括:
用户输入得到的含有所需关键字ωi的密文Ci和系统密钥K,通过解密算法得到明文Di←SEA.Dec(k4,Ci).。
进一步,所述适用于数据库管理系统的可搜索加密方法,还包括:
(1)数学符号:使用表示所有正实数;如果任何正多项式结合存在/>函数neg1:/>可忽略不计;A为概率算法,那么y←A(x),其中y表示均匀随机分布带和x为输入值;令S为一个有限的集合那么/>表示s均匀地选自S;对于正整数m和n(m<n),[m,n]表示为集合{m,m+1,...,n};对于二进制比特串x和y,使用x||y表示级联。
(2)对称密码基元:
伪随机函数:对于密钥函数F:{0,1}λ×{0,1}m→{0,1}n,如果F在λ中是多项式可计算的,并且对于任何的多项式概率时间PPT算法A,使得
其中FunC[m,n]是一组所有的{0,1}m→{0,1}n函数,则F是伪随机的。
对称密钥加密方案SEA:对于对称密钥加密方案SEA=(Gen,Enc,Dec),如果对于任何PPT算法A,都有 其中,EncK(lr(·,·,b))是oracle中的左右选择,对于输出(x0,x1);如果b=0,则C0←EncK(x0),如果b=1,则C1←EncK(x1),满足上述条件,SEA在LOR-CPA中最安全的。
(3)可搜索加密SSE的符号
1)令ω为关键词,是一组关键词;
2)令D=(ω1,...,ωlen(D))是一个文档,D=(D1,...,DN)是一个文档集合;C=(C1,...,CN)是密文集合,其中Ci是Di生成的密文,i∈[1,N];令D′=(ω′1,...,ω′len(D))是D的一组唯一关键词;即对于任何,i,j∈[1,len(D′)](i<j),都有ω′i≠ω′j;
3)令ID(Di)∈{0,1}μ为文件Di的标识符;
4)对于文档集合D=(D1,...,DN),令D(ω)={id(Di)|ω∈Di},搜索顺序为w=(ωl,...,ωq),使D(w)=(D(ωl),...,D(ωq));
5)令T为一组关键词集合(ω1,...,ωM)的标签集合;令ID(tag)∈{0,1}μ为tag的标识符;对于一个标签集合T=(tag1,...,tagN);令T(ω)={ID(tagi)|tagi包括ω,i∈[1,N]};对于搜索顺序(ω1,...,ωM),令T(w)=(T(ω1),...,T(ωN))。
进一步,所述适用于数据库管理系统的可搜索加密方法,还包括:
所述加密方案由十个多项式算法KeyGen,Enc,Dec,Tag,Trapdoor,Search,DeterTag,ExKeyGen,EnDeterTag,ExDeterTag构成;其中,所述算法过程如下:
(1)产生秘密密钥KeyGen(1λ):选取产生k4←SEA.KeyGen(1λ),输出K=(k1,k2,k3,k4);
(2)加密Enc(K,D):输出C←SEA.Enc(k4,D);
(3)解密Dec(K,C):输出D←SEA.Dec(k4,C);
(4)计算概率标签Tag(K,ω):选取计算prt1:=H(H(k1||ω)||prt2),输出prt=(prt1,prt2);
(5)计算陷门Trapdoor(K,ω):输出trd:=H(k1||ω);
(6)搜索Search(pt,tr):分析prt:=(prt1,prt2),计算prt′1:=H(trd||prt2),如果prt1=prt′1,则输出b:=1,否则输出b:=0;
(7)计算确定性标签DeterTag(K,ω,L):对全部i∈[1,L]计算deti:=H(k2||ω)|i,输出DeT:=(det1,...,detL);
(8)提取密钥ExKeyGen(K,L):计算exki:=H(k3||i),其中i∈[1,L],输出ExK:=(exk1,...,exkL);
(9)加密确定标签EnDeterTag(EK,DT):对所有i∈[1,L],选取 计算/>然后令edti:=(edti,1,edti,2)。输出EDT:=(edt1,...,edtL);
(10)提取元素确定标签ExDeterTag(exki,i,EnDeT):解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出
为了保证方案的安全性,必须满足以下条件:
1)对于和K←KeyGen(1λ),满足D=Dec(K,Enc(K,D));
2)对于ω∈Δ,以及K←KeyGen(1λ),满足Search((Tag(K,ω),Trapdoor(K,ω))=1;
3)对于i∈[1,L],ω∈Δ,K←KeyGen(1λ),以及ExK←ExKeyGen(K,L),满足ExDeterTag(exki,i,EnDeterTag(ExK,DeterTag(K,ω,L)))=deti,其中DeterTag(K,ω,L)=(det1,...,deti,...,detL)。
进一步,所述适用于数据库管理系统的可搜索加密方法,还包括:
根据安全形式化,通过使用泄漏函数L为本方案提供适应性安全定义,该泄漏函数L表示本方案中可接受的信息泄漏,其中历史是文档收集D的元组,搜索序列w,以及一组已经从对手与挑战者查询的提取位置/>
定义:本方案中,λ为安全参数;让α和β成为状态算法;概率实验Rα(1λ)和Iα,β(1λ)定义如下:
(1)Rα(1λ)一个挑战者C执行K←KeyGen(1λ)和ExK←ExKeyGen(K,L);对手A产生自适应查询的多项式数量如下所示:
1)如果A查询一个文档D和一个操作Enc,那么C执行C←Enc(K,D)然后将其发送给A;
2)如果A查询一个关键词ω和一个操作Tag,那么C执行prt←Tag(K,ω)然后将其发送给A;
3)如果A查询一个关键词ω和一个操作Trapdoor,那么C执行trd←Trapdoor(K,ω)然后将其发送给A;
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么C执行EnDeT←EnDeterTag(ExK,DeT)然后将EDT发送给A;
5)如果A查询提取位置i和一个操作ExtKey,那么C将exki发送给A;
6)最终,A返回数值b∈{0,1}。
(2)Iα,β(1λ)一个模拟器S由λ和L产生K和ExK;对手A产生自适应查询多项式数量如下,其中是在A的第j个查询后的历史:
1)如果A查询一个文档D和一个操作Enc,那么S由产生C,然后将其发送给A;
2)如果A查询一个关键字ω和一个操作Tag,那么S由产生prt,然后将其发送给A;
3)如果A查询一个关键词ω和一个操作Trapdoor,那么S由产生trd,然后将其发送给A;
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么S由产生EnDeT,然后将其发送给A;
5)如果A查询提取位置i和一个操作ExtKey,那么S由产生exki,然后将其发送给A;
6)最终,A输出b∈{0,1}。
当对任何安全参数1λ和任何PPT算法α,存在一个PPT算法β如下,|Pr[Rα(1λ)=1]-Pr[Iα,β(1λ)=1]≤neg1(λ)|;
则本方案是自适应安全的。
下面的信息用于展示在普通的SSE方案。
在添加文档D后,能够从密文C中得到信息len(D),ID(D)和len(D′),我们定义L1(D)=(len(D),ID(D),len(D′))。
算法Search展示了prt和trd之间的搜索结果,我们定义L2(T,w)=T(w)。
由于Trapdoor是确定的,当通过检查trd(ωi)=trd(ωj),得到ωi=ωj时,任何有陷门trd(ωi)和trd(ωj)的用户都能够通过确定。我们定义L3(ω1,…,ωq)=SPq,其中SPq=(spi,j)1≤i,j≤q是二进制对称矩阵,如果ωi=ωj,那么spi,j=1,否则spi,j=0。
以下信息是从本方案确定标记展示出来的:
通过公开ExK的exki,一个EnDeTj的关键词wj的第i行数值也被公开。令/>其中1≤i≤L,b∈{0,1}。ID(EnDeTj)是EnDeTj的标识符,我们定义/>
这些信息与L3(ω1,…,ωq)密切相关,因为任何人都能够通过检查trd(ωi)=trd(ωj),确定对于i∈[1,L]时,和/>的等价性。我们得到如果不存在A对于EnDeterTag或ExtKey的查询,我们定义的安全性与一般的方案相同。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述的适用于数据库管理系统的可搜索加密方法的步骤。
本发明的另一目的在于提供一种应用所述的适用于数据库管理系统的可搜索加密方法的适用于数据库管理系统的可搜索加密系统,所述适用于数据库管理系统的可搜索加密系统包括:
初始化模块,用于初始化系统;
密钥产生模块,用于进行参数处理和密钥产生;
生成模块,用于进行用户u对文件加密、关键字和安全索引的生成;
查询模块,用于进行查询过程;
文档获取模块,用于进行用户关于密文的解密,获取所需文档。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的适用于数据库管理系统的可搜索加密方法,可以生成适用于数据库管理系统的索引,称之为基于加密索引可变的标签可搜索的对称加密或IG-TSSE。本发明通过使用确定性加密功能的输出值的一小部分来构造索引,以及提供自我信息控制机制以逐步公开部分值。和一般方案相比,本发明加强了可搜索加密的加密安全性以及搜索效率,并且对数据库管理系统更加友好。
本方案为基于标签的可搜索加密,能够生成适合数据库管理系统索引方案,本发明称为基于加密索引可变的标签可搜索的对称加密方案或IG-TSSE方案。本方案还能够提供简单的安全功能,用于添加删除。简单来说,本方案主要分为两个部分,一是使用确定性加密输出值的一部分来构建索引;二是提供自我信息控制机制来逐步公开部分值。
首先本方案不只产生概率标签作为普通标签,而且还生成一个用户想要存储文档的每个关键字的确定性标签。为了产生确定性标签,本发明使用包含在确定性加密输出值中的短比特串,然后就能够构建来自确定性标签的数据库管理系统支持的B-Tree等索引。由确定性标签构建的索引用于缩小关键字搜索的概率标签。换句话说,本发明更轻易地找到陷门中隐藏的相同关键字的概率标签。同时,关键字的搜索过程也稍作修改:用户计算一个包含确定性标签的陷门,服务器找到概率标签的候选项,然后进行陷门检查,之后在陷门与候选项中进行关键字搜索。
其次,如果需要,本发明可以通过步骤逐步揭示确定性标签。为了构建自我信息控制,用户通过使用不同的加密密钥对每个比特进行加密并将它们存储在服务器中。如果用户想要公开确定性标签的一部分以减少搜索成本,则需要用户向服务器发送加密密钥。然后,服务器通过从加密密钥解密加密的确定性标签来提取普通确定性比特,并由它们构建索引,诸如B树的索引。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的适用于数据库管理系统的可搜索加密方法流程图。
图2是本发明实施例提供的适用于数据库管理系统的可搜索加密系统结构框图;
图中:1、初始化模块;2、密钥产生模块;3、生成模块;4、查询模块;5、文档获取模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种适用于数据库管理系统的可搜索加密方法及系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的适用于数据库管理系统的可搜索加密方法包括以下步骤:
S101,初始化系统;
S102,参数处理与密钥产生;
S103,用户u对文件加密、关键字和安全索引的生成;
S104,查询过程;
S105,用户关于密文的解密,获取所需文档。
如图2所示,本发明实施例提供的适用于数据库管理系统的可搜索加密系统包括:
初始化模块1,用于初始化系统;
密钥产生模块2,用于进行参数处理和密钥产生;
生成模块3,用于进行用户u对文件加密、关键字和安全索引的生成;
查询模块4,用于进行查询过程;
文档获取模块5,用于进行用户关于密文的解密,获取所需文档。
下面结合实施例对本发明的技术方案作进一步描述。
本方案为基于标签的可搜索加密,能够生成适用于数据库管理系统索引方案,本发明称为基于加密索引可变的标签可搜索的对称加密方案或IG-TSSE方案。本方案还能够提供简单的安全功能,用于添加删除。简单来说,本方案主要分为两个部分,一是使用确定性加密输出值的一部分来构建索引;二是提供自我信息控制机制来逐步公开部分值。
首先本方案不只产生概率标签作为普通标签,而且还生成一个用户想要存储文档的每个关键字的确定性标签。为了产生确定性标签,本发明使用包含在确定性加密输出值中的短比特串,然后就能够构建来自确定性标签的数据库管理系统支持的B-Tree等索引。由确定性标签构建的索引用于缩小关键字搜索的概率标签。换句话说,本发明更轻易地找到陷门中隐藏的相同关键字的概率标签。同时,关键字的搜索过程也稍作修改:用户计算一个包含确定性标签的陷门,服务器找到概率标签的候选项,然后进行陷门检查,之后在陷门与候选项中进行关键字搜索。
其次,如果需要,本发明可以通过步骤逐步揭示确定性标签。为了构建自我信息控制,用户通过使用不同的加密密钥对每个比特进行加密并将它们存储在服务器中。如果用户想要公开确定性标签的一部分以减少搜索成本,则需要用户向服务器发送加密密钥。然后,服务器通过从加密密钥解密加密的确定性标签来提取普通确定性比特,并由它们构建索引,诸如B树的索引。
本方案发明的一种适用于数据库管理系统的可搜索加密方案,包括以下步骤:
步骤1、初始化系统。
系统参数初始化,输入安全参数λ,根据安全参数产生系统公共参数CP=(SEA,λ),对称加密方案SEA=(Gen,Enc,Dec)。
步骤2、参数处理与密钥产生
数据拥有者根据公共参数CP,哈希函数H:{0,1}λ×{0,1}*→{0,1}λ是一个单向陷门函数,伪随机函数F:{0,1}λ×{0,1}*→{0,1}λ。令 成为一个随机oracle的哈希表,其初始状态为/>系统密钥K,选取/>产生k4←SEA.KeyGen(1λ),然后得到系统密钥K=(k1,k2,k3,k4)。
步骤3、用户u对文件加密、关键字和安全索引的生成
用户u输入文档集合D=(D1,...,DN),用户按照以下步骤进行计算:
3.1)对文档集合D=(D1,...,DN),其中的是其中一个文档,ω为文档的关键词,D′=(ω′1,...,ω′len(D))是D的一组唯一关键词。为每个文档Di∈D随机均匀地选取一个唯一的标识符ID(Di)∈{0,1}μ,加密文档Di,得到Ci←SEA.Enc(k4,Di);
3.2)对文档中的每个关键字ωi计算其概率标签prti=tag(ωi),存储在系统中。prt的计算过程如下,选取计算prt1′:=H(H(k1||ω)||prt2′),得到prt=(prt1′,prt2′);
3.3)将密文文档C和概率标签prt的集合建立索引,存储在数据库中。
步骤4:查询过程
4.1)在关键字查询过程中,用户输入要查询的关键字ω和系统密钥K;
4.2)数据库得到关键字ω和系统密钥K后,计算陷门trd:=H(K1||ω),分析prti=(prt1′,prt2′),并计算prt′1:=H(trd||prt2),如果prt1=prt′1,则输出b:=1,否则输出b:=0。
4.3)根据关键字ω和系统密钥K以及要确定的文档长度L,对i∈[1,L],计算deti:=H(k2||ω)|i,得到确定标签集合DeT:=(det1,...,detL);对i∈[1,L],计算exki:=H(k3||i),得到提取密钥集合ExK:=(exk1,...,exkL);
4.4)根据确定标签集合DeT和提取密钥集合ExK,对所有i∈[1,L],选取计算/>然后令endeti:=(endeti,1,endeti,2),得到加密后的确定标签EnDeT:=(endet1,...,endetL)。
4.5)从而根据加密后的确定标签选择对应要求查询的第i位关键字,解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出 提取DeT中第i位的元素,从而得到要查询的关键字标签。
步骤5:用户关于密文的解密,获取所需文档
用户输入得到的含有所需关键字ωi的密文Ci和系统密钥K,通过解密算法得到明文Di←SEA.Dec(k4,Ci)。
下面对本方案进行详细说明。
在叙述本发明适用于数据库管理系统的可搜索加密方案:构建适合数据库管理系统的索引生成之前,介绍下本方案步骤中所需要使用到的一些数学符号。
(1)数学符号:本发明使用表示所有正实数。如果任何正多项式结合存在函数neg1:/>可忽略不计。A为概率算法,那么y←A(x),其中y表示均匀随机分布带和x为输入值。令S为一个有限的集合那么/>表示s均匀地选自S。对于正整数m和n(m<n),[m,n]表示为集合{m,m+1,...,n}。对于二进制比特串x和y,使用x||y表示它们的级联。
(2)对称密码基元:
伪随机函数:对于密钥函数F:{0,1}λ×{0,1}m→{0,1}n,如果f在λ中是多项式可计算的,并且对于任何的多项式概率时间(PPT)算法A,它能够使得
其中FunC[m,n]是一组所有的{0,1}m→{0,1}n函数,那么F是伪随机的。
·对称密钥加密方案SEA:对于对称密钥加密方案SEA=(Gen,Enc,Dec),如果对于任何PPT算法A,都有
其中,EncK(lr(·,·,b))是oracle中的左右选择,对于输出(x0,x1),如果b=0,则C0←EncK(x0),如果b=1,则C1←EncK(x1),满足上述条件,SEA在LOR-CPA中最安全的。
(3)可搜索加密SSE的符号
1)令ω为关键词,是一组关键词。
2)令D=(ω1,...,ωlen(D))是一个文档,D=(D1,...,DN)是一个文档集合。C=(C1,...,CN)是密文集合,其中Ci是Di生成的密文,i∈[1,N]。令D′=(ω′1,...,ω′len(D))是D的一组唯一关键词。即对于任何i,j∈[1,len(D′)](i<j),都有ω′i≠ω′j。
3)令ID(Di)∈{0,1}μ为文件Di的标识符。
4)对于文档集合D=(D1,...,DN),令D(ω)={ID(Di)|ω∈Di},搜索顺序为w=(ωl,...,ωq),使D(w)=(D(ωl),...,D(ωq))。
5)令T为一组关键词集合(ω1,...,ωN)的标签集合。令ID(tag)∈{0,1}μ为tag的标识符。对于一个标签集合T=(tag1,...,tagN)。令T(ω)={ID(tagi)|tagi包括ω,i∈[1,N]}。对于搜索顺序(ω1,...,ωN),令T(w)=(T(ω1),...,T(ωN))。
本加密方案由十个多项式算法KeyGen,Enc,Dec,Tag,Trapdoor,Search,DeterTag,ExKeyGen,EnDeterTag,ExDeterTag构成,算法的具体过程如下所示:
1)产生秘密密钥KeyGen(1λ):选取产生k4←SEA.KeyGen(1λ),然后输出K=(k1,k2,k3,k4)。
2)加密Enc(K,D):输出C←SEA.Enc(k4,D)。
3)解密Dec(K,C):输出D←SEA.Dec(k4,C)。
4)计算概率标签Tag(K,ω):选取计算prt1:=H(H(k1||ω)||prt2),输出prt=(prt1,prt2)。
5)计算陷门Trapdoor(K,ω):输出trd:=H(k1||ω)。
6)搜索Search(prt,trd):分析prt:=(prt1,prt2),计算prt′1:=H(trd||prt2),如果prt1=prt′1,则输出b:=1,否则输出b:=0。
7)计算确定性标签DeterTag(K,ω,L):对全部i∈[1,L]计算deti:=H(k2||ω)|i,输出DeT:=(det1,...,detL)
8)提取密钥ExKeyGen(K,L):计算exki:=H(k3||i),其中i∈[1,L],输出ExK:=(exk1,...,exkL)。
9)加密确定标签EnDeterTag(ExK,DeT):对所有i∈[1,L],选取 计算/>然后令endeti:=(endeti,1,endeti,2)。输出EnDeT:=(endet1,...,endetL)。
10)提取元素确定标签ExDeterTag(exki,i,EnDeT):解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出
为了保证方案的安全性,必须满足以下条件:
1)对于和K←KeyGen(1λ),满足D=Dec(K,Enc(K,D));
2)对于ω∈Δ,以及K←KeyGen(1λ),满足Search((Tag(K,ω),Trapdoor(K,ω))=1;
3)对于i∈[1,L],ω∈Δ,K←KeyGen(1λ),以及ExK←ExKeyGen(K,L),满足ExDeterTag(exki,i,EnDeterTag(ExK,DeterTag(K,ω,L)))=deti,其中DeterTag(K,ω,L)=(det1,...,deti,...,detL)。
根据安全形式化,本发明通过使用泄漏函数L为提供一个适应性安全定义,该泄漏函数L表示本方案中可接受的信息泄漏,其中历史是文档收集D的元组,搜索序列w,以及一组已经从对手与挑战者查询的提取位置/>
由此本发明定义:本方案中,λ为安全参数。让α和β成为状态算法。然后,概率实验Rα(1λ)和Iα,β(1λ)定义如下:
(1)Rα(1λ)一个挑战者C执行K←KeyGen(1λ)和ExK←ExKeyGen(K,L)。对手A产生自适应查询的多项式数量如下所示:
1)如果A查询一个文档D和一个操作Enc,那么C执行C←Enc(K,D)然后将其发送给A。
2)如果A查询一个关键词ω和一个操作Tag,那么C执行prt←Tag(K,ω)然后将其发送给A
3)如果A查询一个关键词ω和一个操作Trapdoor,那么C执行trd←Trapdoor(K,ω)然后将其发送给A
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么C执行EnDeT←EnDeterTag(ExK,DeT)然后将ExDeT发送给A
5)如果A查询提取位置i和一个操作ExtKey,那么C将exki发送给A
6)最终,A返回数值b∈{0,1}。
(2)Iα,β(1λ)一个模拟器S由λ和L产生K和ExK。对手A产生自适应查询多项式数量如下,其中是在A的第j个查询后的历史:
1)如果A查询一个文档D和一个操作Enc,那么S由产生C,然后将其发送给A
2)如果A查询一个关键字ω和一个操作Tag,那么S由产生prt,然后将其发送给A
3)如果A查询一个关键词ω和一个操作Trapdoor,那么S由产生trd,然后将其发送给A
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么S由产生EnDeT,然后将其发送给A
5)如果A查询提取位置i和一个操作ExtKey,那么S由产生exki,然后将其发送给A
6)最终,A输出b∈{0,1}
当对任何安全参数1λ和任何PPT算法α,存在一个PPT算法β如下,
|Pr[Rα(1λ)=1]-Pr[Iα,β(1λ)=1]≤neg1(λ)|
那么本方案是自适应安全的。
在此,本发明描述了上述泄露函数L,下面的信息用于展示在普通的SSE方案。
在添加文档D后,能够从密文C中得到信息len(D),ID(D)和len(D′),我们定义L1(D)=(len(D),ID(D),len(D′))。
算法Search展示了prt和trd之间的搜索结果,我们定义L2(T,w)=T(w)。
由于Trapdoor是确定的,当通过检查trd(ωi)=trd(ωj),得到ωi=ωj时,任何有陷门trd(ωi)和trd(ωj)的用户都能够通过确定。我们定义L3(ω1,…,ωq)=SPq,其中SPq=(spi,j)1≤i,j≤q是二进制对称矩阵,如果ωi=ωj,那么spi,j=1,否则spi,j=0
以下信息是从本方案确定标记展示出来的:
通过公开ExK的exki,一个EnDeTj的关键词wj的第i行数值乜被公开。令/>其中1≤i≤L,b∈{0,1}。ID(EnDeTj)是EnDeTj的标识符,我们定义/>
这些信息与L3(ω1,…,ωq)密切相关,因为任何人都能够通过检查trd(ωi)=trd(ωj),确定对于i∈[1,L]时,和/>的等价性。我们得到如果不存在A对于EnDeterTag或ExtKey的查询,本发明定义的安全性与一般的方案相同。
本发明提出了一种基于标签的可搜索加密方案,可以生成适用于数据库管理系统的索引。本发明称之为基于加密索引可变的标签可搜索的对称加密。本方案通过使用确定性加密功能的输出值的一小部分来构造索引,以及提供自我信息控制机制以逐步公开部分值。和一般方案相比,本方案加强了可搜索加密的加密安全性以及搜索效率,并且更加适用于数据库管理系统。
如果攻击者A没有查询EncDetTag和ExtKey,我们可以通过按照现有的安全证明方式来证明。而对于本方案中,我们主要模拟证明EncDetTag和ExtKey的查询。对此我们构建有限状态PPT模拟器M
1)初始化的仿真
令其初始状态为/>M选择密钥/> 为了模拟exki,当/>时,对i∈[1,L],M将/>存储在/>中。也就是说,M设置了第i个提取密钥exki,作为/>的随机比特流。
2)在公开任何exki之前,模拟EnDeT
令ωj是从A查询的第j个关键字。在这里,我们假设A没有查询ExtKey。
如果A在对模拟器M查询(ωj,EnDeterTag),那么M对于i∈[1,L],选取和然后将/>发送给A。在此模拟器M设置了/>以及/>
3)模拟exki的查询
如果A对模拟器M查询(i,ExtKey),M首先检查i是否已经被查询过。
如果已经查询过,那么模拟器M再次发送给A。如果并没有查询过,M必须对k∈[1,j]模拟/>其中ω1,...,ωj必须是A已经在EnDeterTag查询过的,并且/>是ωk确定标签的第i位。为了更好的模拟,对于k∈[1,j],M选择 并将/> 存储在/>中。可以用/>来计算输出output,这是在运行ExtKey之后泄露的信息。在此之后,M将/>发送给A。
4)公开exki后对EnDeT的模拟
令ωq为A查询的第q个关键词。令EXP∈[1,L]成为A已经查询过的额外位置。在此我们假设A对M查询(ωq,EnDeterTag)。同样地,在我们公开任何exki之前,对i∈[1,L],M选取和/>并设置/> 另外,因为/>已经被公开,对于i∈EXP,M必须模拟/>此外,对于i∈EXP,M选取通过使用/>将/> 存储到/>中。在此之后,M将/>发送给A。
5)通过上述模拟,我们分析如下所示:
1、通过上述分析,A猜测出由M产生的k3是几乎不可能的,因此A对任何随机oracle查询到任何比特串k3||·也几乎是不可能的。所以A不能推断出任何同样地,A猜测出由M产生的k2是几乎不可能的,因此A对任何随机oracle查询到任何比特串k2||·也几乎是不可能的。所以在公开exki(在我们的模拟中为/>)之前,A无法获取det的任何部分信息。
2、我们用于生成确定标签和其加密模拟不受Enc,Tag,Trapdoor的影响,即使A已经在M中通过这些操作查询到了文件D和其关键词。这是因为,EnDeT仅取决于k2、k3,并且与k1、k4无关,k1、k4用于生成C,prt,trd。同样地,我们对EnDeT的模拟并不会影响C,prt,trd,因为我们对确定标签的模拟加密难以区分。另外,虽然A知道有关(j,k)的信息,使得L3(w)中,对于i∈[1,L]ωj=ωk和A也不能够决定i∈[1,L]时,/>或1.
3、在A向查询/>之前,如果不公开/>A无法获取任何/>在公开/>之后,为了获取/>如果A向/>查询/>那么A将获取然后通过运行/>A获取/>甚至,它拥有/>
通过上述证明,我们得知M是一个有效的模拟器,实现了我们的安全方案。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种适用于数据库管理系统的可搜索加密方法,其特征在于,所述适用于数据库管理系统的可搜索加密方法包括以下步骤:
步骤一,初始化系统;
步骤二,参数处理与密钥产生;
步骤三,用户u对文件加密、关键字和安全索引的生成;
步骤四,查询过程;
步骤五,用户关于密文的解密,获取所需文档;
步骤二中,所述参数处理与密钥产生,包括:
数据拥有者根据公共参数CP,哈希函数H:{0,1)λ×{0,1}*→{0,1}λ是一个单向陷门函数,伪随机函数F:{0,1}λ×{0,1}*→{0,1}λ;
令 成为一个随机oracle的哈希表,初始状态为/>系统密钥K,选取/>产生k4←SEA,KeyGen(1λ),然后得到系统密钥K=(k1,k2,k3,k4);
步骤三中,所述用户u对文件加密、关键字和安全索引的生成,包括:
用户u输入文档集合D=(D1,...,DN),用户按照以下步骤进行计算:
(1)对文档集合D=(D1,...,DN),其中的Di=(ωi.1,...,ωi.len(Di))是其中一个文档,ω为文档的关键词,D′=(ω′1,...,ω′len(D)是D的一组唯一关键词;为每个文档Di∈D随机均匀地选取一个唯一的标识符ID(Di)∈{0,1}μ,加密文档Di,得到Ci←SEA.Enc(k4,Di);;
(2)对文档中的每个关键字ωi计算其概率标签prti=tag(ωi),存储在系统中;prt的计算过程如下,选取计算prt1′:=H(H(k1||ω)||prt2′),,得到prt=(prt1′,prt2′);
(3)将密文文档C和概率标签prt的集合建立索引,存储在数据库中;
步骤四中,所述查询过程,包括:
(1)在关键字查询过程中,用户输入要查询的关键字ω和系统密钥K;
(2)数据库得到关键字ω和系统密钥K后,计算陷门trd:=H(k1||ω),分析prti=(prt1′,prt2′),并计算prt′1:=H(trd||prt2);如果prt1=prt′1,则输出b:=1,否则输出b:=0;
(3)根据关键字ω和系统密钥K以及要确定的文档长度L,对i∈[1,L],计算deti=H(k2||ω|i,得到确定标签集合DeT:=(det1,...,detL);对i∈[1,L],计算exki:=H(k3||i),得到提取密钥集合ExK:=(exk1,...,exkL);
(4)根据确定标签集合DeT和提取密钥集合ExK,对所有i∈[1,L],选取计算/>令endeti:=(endeti,1,endeti,2),得到加密后的确定标签EnDeT:=(endet1,...,endetL);
(5)根据加密后的确定标签选择对应要求查询的第i位关键字,解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出提取DeT中第i位的元素,从而得到要查询的关键字标签。
2.如权利要求1所述的适用于数据库管理系统的可搜索加密方法,其特征在于,步骤一中,所述初始化系统,包括:系统参数初始化,输入安全参数λ,根据安全参数产生系统公共参数CP=(SEA,λ),对称加密方案SEA=(Gen,Enc,Dec)。
3.如权利要求1所述的适用于数据库管理系统的可搜索加密方法,其特征在于,步骤五中,所述用户关于密文的解密,获取所需文档,包括:
用户输入得到的含有所需关键字ωi的密文Ci和系统密钥K,通过解密算法得到明文Di←SEA,Dec(k4,Ci).。
4.如权利要求1所述的适用于数据库管理系统的可搜索加密方法,其特征在于,所述适用于数据库管理系统的可搜索加密方法,还包括:
(1)数学符号:使用表示所有正实数;如果任何正多项式结合存在/>函数neg1:/>可忽略不计;A为概率算法,那么y←A(x),其中y表示均匀随机分布带和x为输入值;令S为一个有限的集合那么/>表示s均匀地选自S;对于正整数m和n(m<n),[m,n]表示为集合{m,m+1,...,n};对于二进制比特串x和y,使用x||y表示级联;
(2)对称密码基元:
伪随机函数:对于密钥函数F:{0,1}λ×{0,1}m→{0,1}n,如果F在λ中是多项式可计算的,并且对于任何的多项式概率时间PPT算法A,使得
其中FunC[m,n]是一组所有的{0,1}m→{0,1}n函数,则F是伪随机的;
对称密钥加密方案SEA:对于对称密钥加密方案SEA=(Gen,Enc,Dec),如果对于任何PPT算法A,都有其中,EncK(lr(∵,b)))是oracle中的左右选择,对于输出(x0,x1);如果b=0,则C0←EncK(x0),如果b=1,则C1←EncK(x1),满足上述条件,SEA在LOR-CPA中最安全的;
(3)可搜索加密SSE的符号
1)令ω为关键词,是一组关键词;
2)令D=(ω1,...,ωlen(D))是一个文档,D=(D1,...,DN)是一个文档集合;C=(C1,...,CN)是密文集合,其中Ci是Di生成的密文,i∈[1,N];令D′=(ω′1,...,ω′len(D))是D的一组唯一关键词;即对于任何,i,j∈[1,len(D′)](i<j),都有ω′i≠ω′j;
3)令ID(Di)∈{0,1}μ为文件Di的标识符;
4)对于文档集合D=(D1,...,DN),令D(ω)={ID(Di)|ω∈Di},搜索顺序为w=(ωl,...,ωq),使D(w)=(D(ωl),...,D(ωq));
5)令T为一组关键词集合(ω1,...,ωM)的标签集合;令ID(tag)∈{0,1}μ为tag的标识符;对于一个标签集合T=(tag1,...,tagN);令T(ω)={ID(tagi)|tagi包括ω,i∈[1,N]};对于搜索顺序(ω1,...,ωN),令T(w)=(T(ω1),...,T(ωN))。
5.如权利要求1所述的适用于数据库管理系统的可搜索加密方法,其特征在于,所述适用于数据库管理系统的可搜索加密方法,还包括:
加密方案由十个多项式算法KeyGen,Enc,Dec,Tag,Trapdoor,Search,DeterTag,ExKeyGen,EnDeterTag,ExDeterTag构成;其中,所述算法过程如下:
(1)产生秘密密钥KeyGen(1λ)::选取产生k4←SEA.KeyGen(1λ),输出K=(k1,k2,k3,k4);
(2)加密Enc(K,D):输出c←SEA.Enc(k4,D);
(3)解密Dec(K,C):输出D←SEA.Dec(k4,C);
(4)计算概率标签Tag(K,ω):选取计算prt1:=H(H(k1||ω)||prt2),输出prt=(prt1,prt2);
(5)计算陷门Trapdoor(K,ω)输出trd:=H(k1|ω);
(6)搜索Search(prt,trd)分析prt:=(prt1,prt2),计算prt′1:=H(trd||prt2);如果prt1=prt′1,则输出b:=1,否则输出b:=0;
(7)计算确定性标签DeterTag(K,ω,L)对全部i∈[1,L]计算deti:=H(k2||ω)|i,输出DeT:=(det1,...,detL);
(8)提取密钥ExKeyGen(K,L)计算exki:=H(k3||i);其中i∈[1,L],输出ExK:=(exk1,...,exkL);
(9)加密确定标签EnDeterTag(ExK,DeT):对所有i∈[1,L],选取计算然后令endeti:=(endeti,1,endeti,2)。输出EnDeT:=(endet1,...,endetL);
(10)提取元素确定标签ExDeterTag(exki,i,EnDeT)解析EnDeT:=(endet1,...,endetL)和endeti:=(endeti,1,endeti,2),输出
为了保证方案的安全性,必须满足以下条件:
1)对于和K←KeyGen(1λ),满足D=Dec(K,Enc(K,D));
2)对于ω∈Δ,以及K←KeyGen(1λ),满足Search((Tag(K,ω),Trapdoor(K,ω))=1;
3)对于i∈[1,L],ω∈Δ,K←KeyGen(1λ),以及ExK←ExKeyGen(K,L),满足ExDeterTag(exki,i,EnDeterTag(ExK,DeterTag(K,ω,L)))=deti;其中DeterTag(K,ω,L)=(det1,...,deti,...,detL);
所述适用于数据库管理系统的可搜索加密方法,还包括:
根据安全形式化,通过使用泄漏函数L为本方案提供适应性安全定义,该泄漏函数L表示本方案中可接受的信息泄漏,其中历史是文档收集D的元组,搜索序列w,以及一组已经从对手与挑战者查询的提取位置/>
定义:本方案中,λ为安全参数;让α和β为状态算法;概率实验Rα(1λ)和Iα,β(1λ)定义如下:
(1)Rα(1λ)一个用户者C执行K←KeyGen(1λ)和ExK←ExKeyGne(K,L);对手A产生自适应查询的多项式数量如下所示:
1)如果A查询一个文档D和一个操作Enc,那么C执行C←Enc(K,D)然后将其发送给A;
2)如果A查询一个关键词ω和一个操作Tag,那么C执行prt←Tag(K,ω)然后将其发送给A;
3)如果A查询一个关键词ω和一个操作Trapdoor,那么C执行trd←Trapdoor(K,ω)然后将其发送给A;
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么C执行EnDeT←EnDeterTag(ExK,DeT)然后将EnDeT发送给A;
5)如果A查询提取位置i和一个操作ExtKey,那么C将exki发送给A;
6)最终,A返回数值b∈{0,1};
(2)Iα,β(1λ)一个模拟器S由λ和L产生K和ExK;对手A产生自适应查询多项式数量如下,其中是在A的第j个查询后的历史:
1)如果A查询一个文档D和一个操作Enc,那么S由产生C,然后将其发送给A;
2)如果A查询一个关键字ω和一个操作Tag,那么S由产生prt,然后将其发送给A;
3)如果A查询一个关键词ω和一个操作Trapdoor,那么S由产生trd,然后将其发送给A;
4)如果A查询一个关键词ω和一个操作EnDeterTag,那么S由产生EnDeT,然后将其发送给A;
5)如果A查询提取位置i和一个操作ExtKey,那么S由产生exki,然后将其发送给A;
6)最终,A输出b∈{0,1};
当对任何安全参数1λ和任何PPT算法α,存在一个PPT算法β如下,|Pr[Rα(1λ)=1]-Pr[Iα,β(1λ)=1]≤neg1(λ)|;
则本方案是自适应安全的;
下面的信息用于展示在普通的SSE方案:
在添加文档D后,能够从密文C中得到信息len(D),ID(D)和len(D′),定义L1(D)=(len(D),ID(D),len(D′));
算法Search展示prt和trd之间的搜索结果,定义L2(T,w)=T(w);
由于Trapdoor是确定的,当通过检查trd(ωi)=trd(ωj),得到ωi=ωj时,任何有陷门trd(ωi)和trd(ωj)的用户都能够通过确定;定义L3(ω1,…,ωq)=SPq;其中SPq=(spi,j)1≤i,j≤q是二进制对称矩阵,如果ωi=ωj,那么spi,j=1,否则spi,j=0;
以下信息是从本方案中确定标记展示出来的:
通过公开ExK的exki,一个EnDeTj的关键词wj的第i行数值也被公开;令其中1≤i≤L,b∈{0,1};ID(EnDeTj)是EnDeTj的标识符,定义
这些信息与L3(ω1,…,ωq)密切相关,因为任何人都能够通过检查trd(ωi)=trd(ωj),确定对于i∈[1,L]时,和/>的等价性;如果不存在A对于EnDeterTag或ExtKey的查询,定义的安全性与一般的方案相同。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~5任意一项所述的适用于数据库管理系统的可搜索加密方法的步骤。
7.一种实施权利要求1~5任意一项所述的适用于数据库管理系统的可搜索加密方法的适用于数据库管理系统的可搜索加密系统,其特征在于,所述适用于数据库管理系统的可搜索加密系统包括:
初始化模块,用于初始化系统;
密钥产生模块,用于进行参数处理和密钥产生;
生成模块,用于进行用户u对文件加密、关键字和安全索引的生成;
查询模块,用于进行查询过程;
文档获取模块,用于进行用户关于密文的解密,获取所需文档。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753784.5A CN113626485B (zh) | 2021-07-03 | 2021-07-03 | 一种适用于数据库管理系统的可搜索加密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753784.5A CN113626485B (zh) | 2021-07-03 | 2021-07-03 | 一种适用于数据库管理系统的可搜索加密方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626485A CN113626485A (zh) | 2021-11-09 |
CN113626485B true CN113626485B (zh) | 2024-05-31 |
Family
ID=78379038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110753784.5A Active CN113626485B (zh) | 2021-07-03 | 2021-07-03 | 一种适用于数据库管理系统的可搜索加密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626485B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080035295A (ko) * | 2006-10-19 | 2008-04-23 | 고려대학교 산학협력단 | 암호화된 데이터베이스 검색 방법 및 그 시스템 |
CN104052740A (zh) * | 2014-05-22 | 2014-09-17 | 西安理工大学 | 云存储中可验证的基于词典的可搜索加密方法 |
WO2021095384A1 (ja) * | 2019-11-14 | 2021-05-20 | ソニーグループ株式会社 | 情報処理装置、端末装置および検索方法 |
-
2021
- 2021-07-03 CN CN202110753784.5A patent/CN113626485B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080035295A (ko) * | 2006-10-19 | 2008-04-23 | 고려대학교 산학협력단 | 암호화된 데이터베이스 검색 방법 및 그 시스템 |
CN104052740A (zh) * | 2014-05-22 | 2014-09-17 | 西安理工大学 | 云存储中可验证的基于词典的可搜索加密方法 |
WO2021095384A1 (ja) * | 2019-11-14 | 2021-05-20 | ソニーグループ株式会社 | 情報処理装置、端末装置および検索方法 |
Non-Patent Citations (1)
Title |
---|
王恺璇 ; 李宇溪 ; 周福才 ; 王权琦 ; .面向多关键字的模糊密文搜索方法.计算机研究与发展.2017,(02),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113626485A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ge et al. | Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification | |
Du et al. | Privacy-preserving indexing and query processing for secure dynamic cloud storage | |
Wang et al. | Searchable encryption over feature-rich data | |
CN108334612B (zh) | 一种针对密文域的形近汉字全文模糊检索方法 | |
CN110334526B (zh) | 一种支持验证的前向安全可搜索加密存储系统及方法 | |
CN112800445B (zh) | 一种用于密文数据的前后向安全和可验证的布尔查询方法 | |
Strizhov et al. | Multi-keyword similarity search over encrypted cloud data | |
CN106776904A (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
CN111552849B (zh) | 可搜索加密方法、系统、存储介质、车载网、智能电网 | |
Chen et al. | EliMFS: achieving efficient, leakage-resilient, and multi-keyword fuzzy search on encrypted cloud data | |
CN108111587B (zh) | 一种基于时间释放的云存储搜索方法 | |
Chen et al. | Bestie: Very practical searchable encryption with forward and backward security | |
Wang et al. | Generalized pattern matching string search on encrypted data in cloud systems | |
CN104036050A (zh) | 一种密文云数据复杂查询方法 | |
CN111026788A (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
CN110908959A (zh) | 一种支持多关键字和结果排序的动态可搜索加密方法 | |
Du et al. | GraphShield: Dynamic large graphs for secure queries with forward privacy | |
Xu et al. | Dynamic searchable symmetric encryption with physical deletion and small leakage | |
Jiang et al. | An Efficient Symmetric Searchable Encryption Scheme for Cloud Storage. | |
Li et al. | Multi-keyword fuzzy search over encrypted cloud storage data | |
Ibrahim et al. | Towards efficient yet privacy-preserving approximate search in cloud computing | |
Guo et al. | LuxGeo: Efficient and Security-Enhanced Geometric Range Queries | |
Wang et al. | Enabling efficient approximate nearest neighbor search for outsourced database in cloud computing | |
CN113434739A (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 |