安全云存储中的正则语言检索系统转让专利

申请号 : CN201710888030.4

文献号 : CN107679408B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨旸张煜超郑相涵叶少珍张浩刘耿耿邹剑倪一涛

申请人 : 福州大学

摘要 :

本发明涉及一种安全云存储中的正则语言检索系统。该体系的加密算法的输入为一个公钥和利用任意长度字符串描述的正则语言,生成的密文被发送给云服务器;在数据检索阶段,用户定义一个确定性有限自动机并利用其私钥生成的陷门,定义了一组状态转移集合、初始状态和接受状态。当且仅当嵌入在密文中的正则语言被的陷门接受时,该文档被视为匹配文档。本发明可以容纳任意多的符号,并且可以随时增添新的符号,大大提高了方案的实用性;此外,还能减少用户无线终端的存储开销,便于系统的灵活扩展。

权利要求 :

1.一种安全云存储中的正则语言检索系统,其特征在于:包括密钥生成中心、云服务器;

所述密钥生成中心,用于为用户生成公钥/私钥对;

所述云服务器,用于为用户提供云存储服务;

系统建立时,密钥生成中心生成公共参数,并为每个用户生成公钥/私钥对;而后,密钥生成中心将数据拥有者的文档数据进行加密生成密文并发送给云服务器存储,同时,对文档数据的关键词字符串进行加密,以描述该文档数据;

用户进行数据检索查询时,通过密钥生成中心利用私钥生成搜索陷门,而后将该陷门发送至云服务器,云服务器根据陷门搜索匹配文档数据,并返回给用户;

密钥生成中心为每个用户生成公钥/私钥对的具体实现方式如下,KeyGen(PP,u)→(PKu,SKu):对于用户u,密钥生成中心随机选择α,s',s”, 计算Y=e(g1,g2)α,Y0=gs', 然后输出公钥/私钥对(PKu,SKu),其中,PKu=(Y,Y0,Y1,Y2,Y3,Y4,Y5),SKu=(α,s',s”,s”');密钥生成中心将数据拥有者的文档数据进行加密的具体实现方式如下,Enc(PKu,W={w1,...,wl})→CT:密钥生成中心以字符串W和公钥PKu为输入,随机选择计算C0=H(Ys),C1=gs,C2=ηs, C5,i=si/s',C6,i=wisi-1/s”,C7,i=wisi/s”',输出密文CT=(C0,C1,C2,C3,C4,{C5,i}i∈[0,l]{C6,i,C7,i}i∈[1,l]),并发送给云服务器;

通过密钥生成中心利用私钥生成搜索陷门的具体实现方式如下,执行陷门生成算法,并输入用户的私钥SKu

和DFA表示

在DFA表示中,Q是状态集合{q0,...,qn-1},其中,q0是初始状态,qn-1是接受状态,是状态转移集合,其中每一个状态转移都是一个元组随机选择u,r, 以及{ri}i∈[0,l], 用户计算T2=gu,T3=gr, T6,t=rt/s',T7,t=ut/s',Ts,t=rtσt/s”,输出TK=(T1,T2,T3,T4,T5,{T6,t,T7,t,T8,t}t∈[1,m]),并将其发送给云服务器进行查询;

云服务器根据搜索陷门搜索匹配文档数据的具体实现方式如下,Test(CT,TK)→1/0:以密文CT和陷门TK为输入,云服务器计算:如果等式H(Γ)=C0成立,算法输出1,表示陷门与加密索引相匹配,并对用户返回与密文CT相对应的文档F;否则输出0;

密钥生成中心生成公共参数的具体实现方式如下,

Setup(1κ)→PP:密钥生成中心执行Setup算法,以安全参数1κ为输入,算法随机选择h0,h1,h2,h3,h4,φ1,φ2,η∈RG以及a, 计算g1=ga,g2=gb,得到公共参数PP=(g,g1,g2,h0,h1,h2,h3,h4,φ1,φ2,η);其中,H:GT→G是哈希函数,G是素数阶p的双线性组,g∈G是G的生成元。

说明书 :

安全云存储中的正则语言检索系统

技术领域

[0001] 本发明涉及一种安全云存储中的正则语言检索系统

背景技术

[0002] 云存储是一种新兴的存储模式,可以为用户提供可扩展、灵活和按需付费的服务。对于个人使用来说,用户可以随时随地使用任何设备访问他们的数据。当一组用户使用云
存储时,它允许群组成员同步并管理所有共享文档。此外,它还为用户节省了用于购买存储设备的资金投入。云存储在为客户提供便利的同时也引起许多安全隐私问题。所有数据存
储在云服务提供商的多个服务器上,因此客户无法完全掌握其数据。由于服务器可能被黑
客入侵,或者内部人员可能泄露数据来获取商业利益,因此用户们担心文档的隐私问题。用户希望采用加密技术来保护数据的机密性,又引发了另一个问题:如何在大量密文上进行
数据检索。用户不可能下载所有存储信息对其解密进而再对明文进行检索,并且不能承受
巨大的传输开销和漫长的数据检索时间。
[0003] 可搜索加密技术不仅可以对数据进行加密保护,而且能够在不破坏数据隐私的前提下支持高效的搜索功能。用户利用其私钥生成搜索陷门并将其发送给云服务器。接收到
陷门后,云服务器在不对密文进行解密的前提下对加密数据进行搜索。在数据检索过程中,云服务器不会得到任何有关加密数据的明文信息和用户搜索内容的信息。然而,大多数可
搜索加密方案只支持基本的搜索模式,例如单一关键词搜索,连结关键词搜索和布尔搜索。
云计算是竞争激烈的行业,提供良好的用户体验至关重要。
[0004] 虽然云计算是下一代网络的服务模式,但是安全和隐私问题是阻碍其在实际应用中被广泛接受的主要障碍。Chang等人研究了云计算的安全性,包括防火墙、访问控制、身份管理、入侵防御和聚合加密。Zheng等人提出一种移动架构来实现远程驻留多媒体服务安全访问。有人研究了商业云的安全架构,它实现了安全可靠的云服务并且能够安全处理大量
数据。
[0005] 可证明的数据持有(PDP)为云计算提供了一种概率验证方法来证明用户的数据完整性。Barsoum等人研究了PDP构造的设计原理,并指出了现有PDP模型的局限性。Wang等人提出了一种用于多个云服务器存储的基于身份的PDP模型。它取消了复杂的证书管理,并能够进行多种类型的验证。Li等人研究了资源受限设备中的可证明持有方案,减少了大量计
算开销,实现了动态数据操作。Omojte等人提出了一种轻量级编码方案来支持多个用户。
[0006] 可搜索加密技术可以保护数据隐私,同时支持用户对加密文档进行查询。自从Song等人提出这个概念以来,它引起了越来越多的关注。Wang等人利用一对多保序映射方
法在加密文件中实现了关键词排序搜索方案。Liu等人减少了查询开销,并将查询分类为多个等级。Xu等人结合公钥加密和模糊关键词搜索设计了模糊关键词搜索的公钥加密框架。
Li等人引入了相关度分数和偏好因子使其能够进行精确的关键词搜索,并利用分类的子字
典来提高效率。
[0007] Cui等人引入了密钥聚合可搜索加密的概念,使得数据拥有者只向用户发送单个密钥就能共享大量文档。Yang等人设计了一个基于时间的可搜索加密方案,搜索权限在指
定的时间内被授予给用户。有人引入了基于属性的加密机制用于可搜索加密从而能够对搜
索权限进行细粒度访问控制。Chen等人提出了一种双服务器模型来抵抗关键词猜测攻击。
有人研究了基于格的加密技术从而构造后量子时代的可搜索加密方案。
[0008] 有人研究了移动环境中的可搜索加密。当移动群组改变时,Xia等人使用动态非对称组密钥协商协议和代理签名来更新密文。还有人研究了无安全信道的方案来抵抗关键词
猜测攻击。后来,Liang等人提出了支持正则语言搜索的可搜索加密方案。然而,它有几个严重的问题。首先,用户必须与密钥生成中心进行交互才能进行搜索查询。其次,当系统设置时,必须预先定义符号集合。主公钥的大小随着该集合的增长而增长,当预定义的符号集变大时,主公钥需要消耗更大的存储空间。如果要加入新的符号,整个系统必须重新构建。第三,在加密和陷门生成算法中,用户需要执行大量幂计算。因此,Liang的方案对于云存储应用来说并不实用。

发明内容

[0009] 本发明的目的在于针对现有方案中,无法支持正则语言搜索、存储和计算开销大等问题,提供一种安全云存储中的正则语言检索系统,可以容纳任意多的符号,并且可以随时增添新的符号,大大提高了方案的实用性;此外,还能减少用户无线终端的存储开销,便于系统的灵活扩展。
[0010] 为实现上述目的,本发明的技术方案是:一种安全云存储中的正则语言检索系统,包括密钥生成中心、云服务器;
[0011] 所述密钥生成中心,用于为用户生成公钥/私钥对;
[0012] 所述云服务器,用于为用户提供云存储服务;
[0013] 系统建立时,密钥生成中心生成公共参数,并为每个用户生成公钥/私钥对;而后,密钥生成中心将数据拥有者的文档数据进行加密生成密文并发送给云服务器存储,同时,对文档数据的关键词字符串进行加密,以描述该文档数据;
[0014] 用户进行数据检索查询时,通过密钥生成中心利用私钥生成搜索陷门,而后将该陷门发送至云服务器,云服务器根据陷门搜索匹配文档数据,并返回给用户。
[0015] 在本发明一实施例中,密钥生成中心生成公共参数的具体实现方式如下,
[0016] Setup(1κ)→PP:密钥生成中心执行Setup算法,以安全参数1κ为输入,算法随机选择h0,h1,h2,h3,h4,φ1,φ2,η∈R G以及 计算g1=ga,g2=gb,得到公共参数PP=(g,g1,g2,h0,h1,h2,h3,h4,φ1,φ2,η);其中,H:GT→G是哈希函数,G是素数阶p的双线性组,g∈G是G的生成元。
[0017] 在本发明一实施例中,密钥生成中心为每个用户生成公钥/私钥对的具体实现方式如下,
[0018] KeyGen(PP,u)→(PKu,SKu):对于用户u,密钥生成中心随机选择α,s′,s″,计算Y=e(g1,g2)α,Y0=gs′, 然后输出公
钥/私钥对(PKu,SKu),其中,PKu=(Y,Y0,Y1,Y2,Y3,Y4,Y5),SKu=(α,s′,s″,s″′)。
[0019] 在本发明一实施例中,密钥生成中心将数据拥有者的文档数据进行加密的具体实现方式如下,
[0020] Enc(PKu,W={w1,...,wl})→CT:密钥生成中心以字符串W和公钥PKu为输入,随机选择 计算C0=H(Ys),C1=gs,C2=ηs, C5,i=si/s′,
C6,i=wisi-1/s″,C7,i=wisi/s″′,输出密文CT=(C0,C1,C2,C3,C4,{C5,i}i∈[0,l]{C6,i,C7,i}i∈[1,l]),并发送给云服务器。
[0021] 在本发明一实施例中,通过密钥生成中心利用私钥生成搜索陷门的具体实现方式如下,
[0022] 执行陷门生成算法,并输入用户的私钥SKu和DFA表示
[0023] 在DFA表示中,Q是状态集合{q0,...,qn-1},其中,q0是初始状态,qn-1是接受状态,是状态转移集合,其中每一个状态转移都是一个元组
[0024] 随机选择u,r, 以及{ri}i∈[0,l], 用户计算T2=gu,T3=gr, T6,t=rt/s′,T7,t=ut/s′,Ts,t=rtσt/
s″,输出TK=(T1,T2,T3,T4,T5,{T6,t,T7,t,T8,t}t∈[1,m]),并将其发送给云服务器进行查询。
[0025] 在本发明一实施例中,云服务器根据搜索陷门搜索匹配文档数据的具体实现方式如下,
[0026] Test(CT,TK)→1/0:以密文CT和陷门TK为输入,云服务器计算:
[0027]
[0028] 如果等式H(Γ)=C0成立,算法输出1,表示陷门与加密索引相匹配,并对用户返回与密文CT相对应的文档F;否则输出0。
[0029] 相较于现有技术,本发明具有以下有益效果:
[0030] (1)正则语言搜索:本发明采用了正则语言搜索,与其它方案相比,本发明可以提供更灵活的搜索模式;本系统中,加密算法的输入为一个公钥和利用任意长度字符串描述
的正则语言;生成的密文被发送给云服务器;在数据检索阶段,用户定义一个确定性有限自动机(DFA)并利用其私钥生成DFA的陷门;DFA定义了一组状态转移集合、初始状态和接受状态。当且仅当嵌入在密文中的正则语言被DFA的陷门接受时,该文档被视为匹配文档;
[0031] (2)动态属性:该系统中可以容纳任意多的符号,并且可以随时增添新的符号,大大提高了方案的实用性;此外,还能减少用户无线终端的存储开销;便于系统的灵活扩展;
[0032] (3)效率优势:本发明建立在对称素数阶双线性群的基础上,比合数阶和非对称素数阶双线性群更高效;此外,加密和陷门生成算法也是高效的。

附图说明

[0033] 图1为本发明系统框架。
[0034] 图2为本发明DFA的工作过程。
[0035] 图3为本发明工业云存储的示例。

具体实施方式

[0036] 下面结合附图,对本发明的技术方案进行具体说明。
[0037] 本发明的一种安全云存储中的正则语言检索系统,包括密钥生成中心、云服务器;
[0038] 所述密钥生成中心,用于为用户生成公钥/私钥对;
[0039] 所述云服务器,用于为用户提供云存储服务;
[0040] 系统建立时,密钥生成中心生成公共参数,并为每个用户生成公钥/私钥对;而后,密钥生成中心将数据拥有者的文档数据进行加密生成密文并发送给云服务器存储,同时,对文档数据的关键词字符串进行加密,以描述该文档数据;
[0041] 用户进行数据检索查询时,通过密钥生成中心利用私钥生成搜索陷门,而后将该陷门发送至云服务器,云服务器根据陷门搜索匹配文档数据,并返回给用户。
[0042] 在本发明中,密钥生成中心生成公共参数的具体实现方式如下,
[0043] Setup(1κ)→PP:密钥生成中心执行Setup算法,以安全参数1κ为输入,算法随机选择h0,h1,h2,h3,h4,φ1,φ2,η∈R G以及 计算g1=ga,g2=gb,得到公共参数PP=(g,g1,g2,h0,h1,h2,h3,h4,φ1,φ2,η);其中,H:GT→G是哈希函数,G是素数阶p的双线性组,g∈G是G的生成元。
[0044] 在本发明中,密钥生成中心为每个用户生成公钥/私钥对的具体实现方式如下,
[0045] KeyGen(PP,u)→(PKu,SKu):对于用户u,密钥生成中心随机选择α,s′,s″,计算Y=e(g1,g2)α,Y0=gs′, 然后输出公
钥/私钥对(PKu,SKu),其中,PKu=(Y,Y0,Y1,Y2,Y3,Y4,Y5),SKu=(α,s′,s″,s″′)。
[0046] 在本发明中,密钥生成中心将数据拥有者的文档数据进行加密的具体实现方式如下,
[0047] Enc(PKu,W={w1,...,wl})→CT:密钥生成中心以字符串W和公钥PKu为输入,随机选择 计算C0=H(Ys),C1=gs,C2=ηs, C5,i=si/s′,
C6,i=wisi-1/s″,C7,i=wisi/s″′,输出密文CT=(C0,C1,C2,C3,C4,{C5,i}i∈[0,l]{C6,i,C7,i}i∈[1,l]),并发送给云服务器。
[0048] 在本发明中,通过密钥生成中心利用私钥生成搜索陷门的具体实现方式如下,
[0049] 执行陷门生成算法,并输入用户的私钥SKu和DFA表示
[0050] 在DFA表示中,Q是状态集合{q0,...,qn-1},其中,q0是初始状态,qn-1是接受状态,T是状态转移集合,其中每一个状态转移都是一个元组
[0051] 随机选择 以及{ri}i∈[0,l], 用户计算T2=gu,T3=gr, T6,t=rt/s′,T7,t=ut/s′,Ts,t=rtσt/
s″,输出TK=(T1,T2,T3,T4,T5,{T6,t,T7,t,T8,t}t∈[1,m]),并将其发送给云服务器进行查询。
[0052] 在本发明中,云服务器根据搜索陷门搜索匹配文档数据的具体实现方式如下,
[0053] Test(CT,TK)→1/0:以密文CT和陷门TK为输入,云服务器计算:
[0054]
[0055] 如果等式H(Γ)=C0成立,算法输出1,表示陷门与加密索引相匹配,并对用户返回与密文CT相对应的文档F;否则输出0。
[0056] 以下为本发明的具体实现过程。
[0057] 图1为本发明的系统框架。系统包括以下各种类型的实体。每个实体的特点和功能介绍如下:
[0058] 密钥生成中心(KGC):KGC受系统中所有实体的信任,负责生成系统的公共参数,同时为系统中每一位合法用户生成公钥/私钥对。KGC通过秘密渠道将私钥发送给用户,公钥则对所有用户公开,KGC利用安全管理机制来保管公钥(例如PKI:公钥基础设施)。
[0059] 数据拥有者:数据拥有者利用云存储服务存储个人的敏感数据,并利用正则语言描述文档,对正则语言和文档进行加密,并将其发送给云服务器。
[0060] 云服务器:云服务器为用户提供云存储服务。数据通常存储在逻辑池和多个物理服务器中。云服务器保证授权用户能够随时随地地访问数据。云服务器拥有惊人的数据处
理和计算能力。云服务器对用户的搜索查询做出响应,开始搜索匹配文档。
[0061] 用户:用户请求云服务器对加密数据执行测试计算。用户利用私钥生成搜索陷门,并将其发送给云服务器进行查询。
[0062] 本发明中的部分符号定义如下。
[0063]
[0064]
[0065] 由于任意的(M,W)都能转换成(M′,W′)(其中M′只有一种接受状态),因此本发明只考虑|F|=1的DFA表示。此外,本系统支持动态的字母集合更新,例如|Σ|是无限大小,因此DFA的表示定义成M=(Q,Σ,T,q0,qn-1),其中n=|Q|,
[0066] 1、本系统的基本实现流程
[0067] 1.1系统建立
[0068] Setup(1κ)→PP:密钥生成中心执行Setup算法,以安全参数1κ为输入,算法随机选择h0,h1,h2,h3,h4,φ1,φ2,η∈R G以及 计算g1=ga,g2=gb,得到公共参数PP=(g,g1,g2,h0,h1,h2,h3,h4,φ1,φ2,η);其中,H:GT→G是哈希函数,G是素数阶p的双线性组,g∈G是G的生成元。
[0069] 1.2用户注册
[0070] 当用户u向系统注册时,KGC验证其身份并为其生成规公钥/私钥(PKu,SKu)。
[0071] KeyGen(PP,u)→(PKu,SKu):对于用户u,密钥生成中心随机选择α,s′,s″,计算Y=e(g1,g2)α,Y0=gs′, 然后输出公
钥/私钥对(PKu,SKu),其中,PKu=(Y,Y0,Y1,Y2,Y3,Y4,Y5),SKu=(α,s′,s″,s″′)。
[0072] 1.3加密
[0073] Enc(PKu,W={w1,...,wl})→CT:密钥生成中心以字符串W和公钥PKu为输入,随机s s s
选择 计算C0=H(Y),C1=g ,C2=η, C5,i=si/s′,
C6,i=wisi-1/s″,C7,i=wisi/s″′,输出密文CT=(C0,C1,C2,C3,C4,{C5,i}i∈[0,l]{C6,i,C7,i}i∈[1,l]),并发送给云服务器。
[0074] 1.4陷门生成
[0075] 执行陷门生成算法,并输入用户的私钥SKu和DFA表示
[0076] 在DFA表示中,Q是状态集合{q0,...,qn-1},其中,q0是初始状态,qn-1是接受状态,T是状态转移集合,其中每一个状态转移都是一个元组
[0077] 随机选择u,r, 以及{ri}i∈[0,l], 用户计算T2=gu,T3=gr, T6,t=rt/s′,T7,t=ut/s′,Ts,t=rtσt/
s″,输出TK=(T1,T2,T3,T4,T5,{T6,t,T7,t,T8,t}t∈[1,m]),并将其发送给云服务器进行查询。
[0078] 1.5测试
[0079] Test(CT,TK)→1/0:以密文CT和陷门TK为输入,云服务器计算:
[0080]
[0081] 如果等式H(Γ)=C0成立,算法输出1,表示陷门与加密索引相匹配,即陷门的DFA接受字符串W,并对用户返回与密文CT相对应的文档F;否则输出0。
[0082] 2、双线性对
[0083] 算法Gp以安全参数λ为输入,输出素数阶双线性映射的参数(p,g,G,GT,e)。其中G和GT是素数阶p的乘法循环群,g是G的生成元。映射e:G×G→GT是双线性映射。双线性映射e有a b ab三个属性:(1)双线性性: 且a,b∈Zp,有e(u ,v)=e(uv) 。(2)非退化性:e(g,g)≠
1。(3)可计算性:映射e可有效计算。
[0084] 3、困难性假设
[0085] 假设1(DBDH:判定性双线性Diffie-Hellman假设)。G是素数阶p的双线性组,g是G的生成元。随机选择 给定 攻击者很难将e(g,g)abs∈GT和元素Z(从
GT中随机选择)这两者区分开来。
[0086] 4、确定性有限自动机概述
[0087] 确定性有限自动机(DFA)属于计算性理论的范畴,它接受或拒绝字符串,并为每个输入字符串执行唯一的操作。一个确定性有限自动机M是一个五元组(Q,Σ,δ,q0,F)。
[0088] (1)Q是状态集合
[0089] (2)Σ是一组称为字母表的符号集合
[0090] (3)δ是转移函数
[0091] (4)q0∈Q是初始状态
[0092] (5) 是接受状态的集合
[0093] 符号 表示与函数δ相关联的一组转移集合。如果 则转移 的表达形式为 其中
[0094] 假设M=(Q,Σ,δ,q0,F)。M接受字符串W=(w1,w2,...,wl)∈Σ当且仅当存在一个状态序列r0,r1,...,rn∈Q,其中
[0095] 1)r0=q0
[0096] 2)对于i∈(0,n-1),有转移函数δ(ri,wi+1)=ri+1
[0097] 3)rn∈F
[0098] 符号ACCEPT(M,W)表示确定性有限自动机M接受字符串W,符号REJECT(M,W)表示确定性有限自动机M不接受字符串W。如果M接受所有的W∈L并且拒绝所有 说明自动机M
能够识别L语言,这种语言称为正则语言。
[0099] 图2描述了DFA的工作过程。例子中有4个状态,q0是初始状态,q4是接受状态。假设自动机当前处于状态q0。输入符号w1后,状态将从q0转移到q1。根据预定义的状态转移集合T,随着符号wi不断输入,状态会持续变化。如果输入字符串是(w1,w2,w6)或者(w1,w5,w3,w4,w6),图2中的DFA将接受该字符串。如果输入字符串是(w1,w3,w6),图2中的DFA将拒绝该字符串。
[0100] 5、工业云存储示例
[0101] 图3所示的是一个工业云存储的示例:企业计划研发一种新产品的过程。通过该实例来说明本方案的工作原理
[0102] 研究和发明新产品的过程包括以下步骤:
[0103] 1)生产计划:首先设计产品的功能、结构和材料,并将设计信息发送给审计部门。
[0104] 2)审计:审计部门负责核实该方案的可行性和制造成本。如果不合适,审计部门将否定该方案。否则,审计部门会将计划发送给制造部门。
[0105] 3)制造:接受到新产品设计方案后,制造部门按照计划生产样品。然后,样品被发送给测试部门。如果制造失败,样品将被送回到设计部门。
[0106] 4)实验测试:测试部门测试样品的物理性质、功能和实用性。如果样品通过了所有的实验测试,就可以进行大规模的生产。否则,生产计划被送回设计部门。
[0107] 5)产品:经过一系列的研究开发,新产品可以投放到市场中。
[0108] 根据上述研究和开发程序,把关键词串定义为:w1=″Design″,w2=″Agree″,w3=″Procedure″,w4=″Pass″,w5=″Disagree″,w6=″Fail″
[0109] 在系统建立阶段,KGC为系统生成公共参数并为每个用户分配公钥/私钥对,接着对企业家生成的数据进行加密并将其发送给云服务器。同时对关键词字符串进行加密来描
述文档,例如(CT1,CT2,CT3):
[0110] CT1=Enc(pku,(w1,w2,w3,w4))
[0111] CT2=Enc(pku,(w1,w5))
[0112] CT3=Enc(pku,(w1,w2,w6))
[0113] 如果用户想要进行数据检索查询,首先定义DFA。令q0=″ProductionPlan″为初始状态,q4=″Product″为唯一接受状态。令q1=″Audit″,q2=″Manufacture″,q3=″Experimental Test″。
[0114] 状态转移集合T:
[0115] T1=(Production Plan,Audit,Design),
[0116] T2=(Audit,Manufacture,Agree),
[0117] T3=(Manufacture,Experimental Test,Produce),
[0118] T4=(Experimental Test,Pass,Product),
[0119] T5=(Audit,Production Plan,Disagree),
[0120] T6=(Manufacture,Production Plan,Fail),
[0121] T7=(Experimental Test,Production Plan,Fail)
[0122] 接着将用户定义的有限自动机M加密成搜索陷门TK并将其发送给云服务器。
[0123] 云服务器执行Test算法寻找匹配文档,接着对用户返回与CT1相对应的文档F1且文档中F1包含着DFA能够接受的关键词串。
[0124] 本发明的优点在于:
[0125] (1)正则语言搜索:本发明采用了正则语言搜索,与其它方案相比,本发明可以提供更灵活的搜索模式。本系统中,加密算法的输入为一个公钥和利用任意长度字符串描述
的正则语言。生成的密文被发送给云服务器。在数据检索阶段,用户定义一个确定性有限自动机(DFA)并利用其私钥生成DFA的陷门。DFA定义了一组状态转移集合、初始状态和接受状态。当且仅当嵌入在密文中的正则语言被DFA的陷门接受时,该文档被视为匹配文档。
[0126] (2)动态属性:该系统中可以容纳任意多的符号,并且可以随时增添新的符号,大大提高了方案的实用性。此外,还能减少用户无线终端的存储开销。便于系统的灵活扩展。
[0127] (3)效率优势:本发明建立在对称素数阶双线性群的基础上,比合数阶和非对称素数阶双线性群更高效。此外,加密和陷门生成算法也是高效的。
[0128] 用途:云计算能够为用户提供灵活的数据管理和访问服务。然而,云服务器提供的存储服务并不完全受到用户信任。可搜索加密是实现安全存储和搜索的重要工具,它能够提供机密性保护和隐私数据检索的功能。本发明提出了一种高效的动态的正则语言可搜索
加密方案。与其他现有方案相比,本发明的优点在于它支持正则语言加密和基于确定性有
限自动机的数据检索。动态构造保证了系统具有较高的可扩展性并且无需预定义符号集
合,减少了计算开销和存储空间。本系统支持多用户,每个用户都可以在不与密钥生成中心交互的情况下利用自己的私钥生成DFA陷门。
[0129] 以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。