云计算环境中的密文搜索方法及系统、设备与流程

文档序号:23865325发布日期:2021-02-05 16:50阅读:183来源:国知局
[0001]本发明属于数据处理
技术领域
:,尤其涉及一种云计算环境中的密文搜索方法及系统、设备及存储介质。
背景技术
::[0002]云计算作为分布式计算技术,具有几乎无限的计算能力和存储空间。但是,由于云数据超出了用户的控制范围,这些数据在使用过程中必须保证数据的隐私性和有效的访问控制。为了解决数据隐私问题,实现有效的操作,可以对数据进行全同态加密,全同态加密满足f(enc(u))=enc(f(u))。这一特性符合云计算安全、密文检索等云计算模型的需要,因此研究同态加密具有重要的理论意义和应用价值。此外,云数据的访问控制策略的实现需要传统访问控制中的可信实体方法,但云服务提供商不再受信任,因此加密方需要在上传数据之前对数据进行加密。为了有效地实现对加密数据的访问控制,可以使用cp-abe加密算法。经典的cp-abe方案虽然可以实现细粒度的访问,但不支持密文检索服务,全同态加密方案可以实现密文检索。然而,它很容易受到选择明文攻击。[0003](1)全同态加密[0004]全同态加密能够在不知道密钥的情况下对密文进行任意计算,这种特殊的性质使得全同态加密有广泛的应用需求,例如在云计算数据隐私安全、多方计算、密文检索等。首个全同态加密方案是由gentry在2009年提出的,此后人们提出了一些基于不同困难问题的全同态加密方案以及对全同态加密效率改进的一些方法。[0005]目前全同态加密的效率是阻碍其发展的主要问题,而低效率的主要原因是其密文尺寸过大。因为每次同态计算将引起密文噪音的增长,尤其是密文乘法计算使得密文噪音增长非常快。当噪音超过正确解密所允许的界后,将无法执行同态操作。因此,为了能够执行更多的密文同态操作,必须设置大的参数使得密文有足够的空间容纳噪音,这直接导致了密文尺寸的剧增。[0006](2)属性基加密[0007]shamir于1979年首次提出身份基加密的概念,随后众多身份基加密的扩展概念被提出,比如层次化身份基加密,身份基广播加密,空间加密等。属性基加密也是身份基加密的一种扩展。现有两种属性基加密:密钥政策基加密的属性基加密(cp-abe)和密文政策基的属性基加密(kp-abe)。在密文政策基属性基加密中,明文消息在一个可表示成以“与”“或”“非”门连接的逻辑表达式的谓词下加密。每个用户从属性机构处获得对应某个属性集合的密钥。当且仅当该属性集合满足上述谓词时,解密才能成功。密钥政策基属性基加密的情况则恰恰相反:在这种加密体制中,密文和属性集合相对应,而用户密钥则对应某个谓词。[0008]属性加密在实际中有广泛的应用场景,比如分布式文件系统的访问控制,安全在线社交网络,高效广播加密等。此外,目前大部分身份基加密的扩展均可看作属性基加密的特例,比如,广播加密就可被看作一种特殊的密文政策基属性基加密,在这种加密系统中访问结构是以“或”门连接的谓词。属性基加密也是解决身份基加密系统中的若干理论问题的重要工具,迄今为止,属性基加密已被用来解决身份基加密中的身份撤销问题以及用来构造负责(accountable)身份基加密方案等。由于属性基加密在理论和实际应用中的重要性,这种加密体制一经提出便引起了研究者广泛的关注。[0009](3)语义空间模型[0010]计算机很难理解人类语言的意思。这严重限制了我们给计算机传达指令,限制了计算机向我们解释它们的行动,也限制了计算机分析和处理文本的能力。语义的向量空间模型(vsms)是处理这些局限性的开端。vsm的思想是把集合里的每个文档表示(represent)为空间里的一个点(向量空间里的一个向量)。空间里的点越接近,语义相似性就越想相似;空间里的点越远,语义上就越遥远。用户的一个查询被表示为同一空间里的一个点作为一篇文档(这个查询被称为伪文档(pseudo-document))。文档按照和该查询的距离递增排序,然后展现给用户。然而vsm语义空间的还有很多的不足,比如文档的主题分类、关键字、同义词等等,会造成搜索效率低下,精度误差高的问题。技术实现要素:[0011]本发明所要解决的技术问题是:针对现有技术的问题,本发明提供了一种云计算环境中的密文搜索方法。[0012]第一方面,本申请实施例提供了一种云计算环境中的密文搜索方法,所述方法包括:[0013]基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;[0014]基于所述客户端接收用户申请所述密文结构私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;[0015]所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;[0016]所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。[0017]第二方面,本申请实施例提供了一种云计算环境中的密文搜索系统,所述系统包括:[0018]加密模块:用于基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;[0019]生成模块:用于基于所述客户端接收用户申请所述密文结构私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;[0020]搜索模块:用于所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;[0021]解密模块:用于所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。[0022]第三方面,本申请实施例还提供了一种云计算环境中的密文搜索设备,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面所述的云计算环境中的密文搜索方法中的各个步骤。[0023]第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的云计算环境中密文搜索方法中的各个步骤。[0024]本发明提供了一种云计算环境中的密文搜索方法,该方法包括:基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;基于所述客户端接收用户申请所述密文结构私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。该方法实现了密文数据的高效检索功能,采用权重策略树优化访问策略,潜在语义优化空间模型,通过访问控制策略表和文档索引表提高检索的精准度,降低了密文搜索的计算量;利用全同态加密的特点,完全模糊化云服务器控制数据,实现高效的隐藏策略,充分利用云服务器算力进行同态加/乘操作来进行访问控制和密文检索,可实现高效的数据动态更新,极大的提高云数据处理的保密性和效率;且访问策略与用户是多对多的关系,即使一个用户背叛,它也不会影响其他用户,而且基于权重策略树的特性和属性值的同态加密模糊化,可以抵抗关键字猜测攻击。附图说明[0025]下面结合附图详述本发明的具体结构[0026]图1为本发明的一种云计算环境中的密文搜索方法的流程示意图;[0027]图2为本发明的一种云计算环境中的密文搜索方法的子流程示意图;[0028]图3为本发明的一种云计算环境中的密文搜索方法的另一子流程示意图;[0029]图4为本发明的一种云计算环境中的密文搜索方法的另一子流程示意图;[0030]图5为本发明的一种云计算环境中的密文搜索方法的另一子流程示意图;[0031]图6为本发明的一种云计算环境中的密文搜索方法的另一子流程示意图;[0032]图7为本发明的一种云计算环境中的密文搜索方法的另一子流程示意图;[0033]图8为本发明的一种云计算环境中的密文搜索方法的程序模块示意图。具体实施方式[0034]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0035]图1为本申请实施例中云计算环境中的密文搜索方法的流程示意图,本实施例中,上述云计算环境中的密文搜索方法包括:[0036]步骤101、基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文。[0037]其中,加密方先对明文集进行加密得到密文结构,其中明文集由多个明文文档构成,将密文结构中生成的关键字的权重向量信息整合,得到一个密文索引表,根据加密方所选择的属性特征数随机生成一个用户权限表,用户权限表中还包括每个用户的属性类和属性类对应的用户权重策略树,用户权重策略树就是对加密方所选择的属性特征数进行加密,加密方所选择的属性特征数也就是选择具有这些属性的用户可以查看该加密文件,其中用户的属性类至少包括用户id,或其它的特征值,在本实施例中只提出用户id,随后将密文结构、密文索引表以及用户权限表上传至云服务器中,其中密文索引表和用户权限表中的信息均是进行过同态模糊加密过的从而形成表格。[0038]步骤102、基于所述客户端接收用户申请所述密文结构私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥。[0039]其中,搜索方也就是用户输入自己的属性以及想要搜索的关键字的信息去申请密文的私钥,客户端给用户发送密文结构的私钥,用户的本地服务器则会生成一个搜索陷门,该搜索陷门整合了用户输入的信息以及得到的私钥。其中,输入搜索方的属性私钥sk、关键字的可搜索策略树r、公钥pk参数,然后输出搜索陷门后上传至云服务器的具体计算为:[0040]搜索方通过遍历策略树r,选取树r的根节点,令其为t∈gzp,本地服务器设置生成随机值d并存储,计算dpai:[0041]dpai=dt*h1d=gt(ac-r)/b+ad[0042]通过访问树r,从树的根节点开始,自树从上而下访问树的任一节点i,选取一个多项式qi,并符合qi=d-1。选取树r的根节点r0,令其为t∈gzp,令qr0(0)=t.设为访问结构树中所有叶子节点组成的集合,有并进行以下加密计算:dk和dk':[0043][0044]先取随机值tj∈gzp,对属性集合进行计算,有任意关键字都有以下计算,生成dj和dj':[0045][0046]此处根据搜索方用户的属性生成对应的向量,该向量用于云服务器端用户权限表的用户策略树的匹配,该向量的每个属性值为同态算法模糊加密:[0047]v(id,s)={*,*,、,*}(*为相对应属性的数值)[0048]然后,生成用户搜索关键字索引向量,为[0049]itf={*,*,、、,*}(*为相对应关键字的tf值)[0050]搜索陷门stk的输出格式为:[0051][0052]步骤103、所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文。[0053]其中,1、上传搜索方的搜索陷门,云服务器csp进行对用户权限表和密文索引表的匹配,确定用户密文集搜索范围,进行密文文档相似度向量计算,云服务器通过计算云端中的iidf向量和密文ct、skt中的itf向量,得出对应的itf-idf文档向量,再通过对应的lsa潜在语义空间模型参数(x),求得对应文档匹配向量v,[0054]文档匹配向量=v=itf-idft*x[0055]得出该密文文档和搜索陷门的相似度v,通过对余弦计算相似度度量的筛选,选取对应的密文,生成待解密密文集合。计算如下:[0056][0057]2、对筛选后的密文集合进行匹配操作:[0058]若y是密文ct中的访问策略a中的叶子节点,则定义j=att(y)。对每一个属性j∈a,计算其中间值ey。[0059][0060]若y是a的非叶子节点,那么定义sz是一个任意kz大小的节点z集合,然后按照如下计算中间值ey。[0061][0062]若y是根节点,那么中间值e,按照如下的结果返回。[0063][0064]3、若x是可搜索策略树r的叶子结点,令w=key(x)是哈希函数关联的关键字,对每一个属性x∈r,计算其中间值ey'。[0065][0066]若x是r的非叶子节点,那么定义sz'是一个任意kz'大小的孩子节点z'集合,然后按照如下计算中间值ey'。[0067][0068]若x是根节点,那么中间值e,按照如下的结果返回。[0069][0070]4、根据两个值,ey和ey'进行相对应公式运算,返回中间结果选取下一篇符合相似度筛选的密文从第2步开始计算。公式如下:[0071][0072]步骤104、所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。[0073]其中,在步骤103中,返回中间结果后,进行解密计算:[0074]本申请实施例提供了一种云计算环境中的密文搜索方法,该方法包括:基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;基于所述客户端接收用户申请所述密文的私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。该方法实现了密文数据的高效检索功能,采用权重策略树优化访问策略,潜在语义优化空间模型,通过访问控制策略表和文档索引表提高检索的精准度,降低了密文搜索的计算量;利用全同态加密的特点,完全模糊化云服务器控制数据,实现高效的隐藏策略,充分利用云服务器算力进行同态加/乘操作来进行访问控制和密文检索,可实现高效的数据动态更新,极大的提高云数据处理的保密性和效率;且访问策略与用户是多对多的关系,即使一个用户背叛,它也不会影响其他用户,而且基于权重策略树的特性和属性值的同态加密模糊化,可以抵抗关键字猜测攻击。[0075]具体的,基于上述实施例,参照图2,图2为本申请云计算环境中的密文搜索方法的子流程示意图,本实施例中,基于客户端的加密方对明文集加密得到密文结构的具体步骤包括:[0076]先对所述明文进行属性基加密;[0077]构建所述明文中关键字的tf向量以及所述明文集中关键字的idf向量;[0078]计算所述明文集中的关键字的tf-idf向量;[0079]对所述明文集进行潜在语义svd降维计算,得到向量空间模型和iidf;[0080]同态加密所述向量空间模型和iidf生成对应密文结构。[0081]其中,构建所述明文中关键字的tf向量以及所述明文集中关键字的idf:[0082](其中mj为文档dj中的词数,nij为关键词ti出现的词数。)[0083](其中|d|为总文档数,为关键词ti出现的文档数)[0084]计算所述明文集中的关键字的tf-idf向量atf-idf;[0085]lsa潜在语义空间模型:atf-idf=usvt,[0086]lsa向量空间模型参数:x=ust[0087]先通过加密方对其明文的加密,选择r0∈gzp然后分别计算c和然后分别计算c和[0088]通过访问结构a构建访问树t,从树的根节点开始,自树从上而下访问树的任一节点i,选取一个多项式qi,并符合qi=d-1。对于树的根节点t0,有r0∈gzp,令设y为访问结构树t中所有叶子节点组成的集合,有y∈y并进行以下加密计算:cy和cy'[0089][0090]对语义模型中的生成关键字集合w进行计算,取随机值ri∈gzp对任意关键字w∈w,都有以下计算,生成cw和cw'[0091][0092]通过加密方对其明文集进行构建对应tf向量,取对应文档的索引匹配向量为:[0093]itf={*,*,、,*}(*为对应key的数值)[0094]同时所有文档对应的索引向量整合到云服务器端的表二的文档索引表中,最后,密文ct的输出格式为:[0095][0096]此处加密方在本地服务器对优化后的权重访问策略树、确定加密明文集进行潜在语义svd降维计算(其中关键字权重为tf-idf权重)生成的向量空间模型lsa和iidf,同态加密生成对应密文结构后上传云服务器。lsa(latentsemanticanalysis)潜在语义分析,也被称为lsi(latentsemanticindex),是scottdeerwester,susant.dumais等人在1990年提出来的一种新的索引和检索方法。该方法和传统向量空间模型(vsm)一样使用向量来表示词(terms)和文档(documents),并通过向量间的关系(如夹角)来判断词及文档间的关系;不同的是,lsa将词和文档映射到潜在语义空间,从而去除了原始向量空间中的一些“噪音”,提高了信息检索的精确度。通过生成词汇库,构成词汇-文本矩阵(使用tf-idf加权词频)。初始矩阵中每一行对应一个词,每列对应一篇文章,m个词和n篇文章可以表示为如下m*n的矩阵,然后进行图中的奇异值分解,对svd分解后的矩阵进行降维,构建潜在语义空间。lsa的优点在于:低维空间表示可以刻画同义词,同义词会对应着相同或相似的主题;降维可去除部分噪声,使特征更明显;充分利用冗余数据;无监督/完全自动化;与语言无关,实用性强。[0097]具体的,基于上述实施例,参照图3,图3为本申请云计算环境中的密文搜索方法的另一子流程示意图,本实施例中,随机生成用户权限表具体步骤包括:[0098]对优化后的用户权重策略树同态加密,所述用户权重策略树至少包括加密方选择的属性特征数;[0099]生成优化后的主题策略树密文、属性类对应权重密文、策略权重对应密文集合密文。[0100]其中,优化后的用户权重策略树进行优化后,不仅减少了密文的存储开销,而且还减少了加密方面的计算开销,对优化后的用户权重策略树通过同态加密后,对这三部分进行同态匹配操作。[0101]具体的,基于上述实施例,参照图4,图4为本申请云计算环境中的密文搜索方法的另一子流程示意图,本实施例中,所述云服务器对所述用户属性与所述用户权重策略树进行匹配的具体步骤包括:[0102]对所述用户属性进行同态算法模糊加密后,与所述属性类对应权重密文进行匹配;[0103]若匹配成功,则将所述用户属性再与所述主题策略树密文进行匹配,确定所述用户的权限和可搜索密文的范围;[0104]再与所述策略权重对应密文集合密文进行匹配,锁定所述密文的搜索范围。[0105]其中,搜索方用户上传搜索申请属性陷门向量,该向量也是通过同态算法模糊加密后,云服务器首先对用户的属性密文先进行属性类对应权重密文的匹配计算,大致计算原理如下:[0106]其中同态加密中加密方随机生成大素数的r',p,q,取得公共参数r'p,n=pq,hm.ctattribute是搜索方的属性陷门向量,hm.ctdu是加密方的属性类对应权重密文,value=((hm.ctattribute-hm.ctdu)r'p)modn[0107]=((mattribute-mtoken)r'p+2kr'pq(rattribute-rtoken))modn[0108]=(mattribute-mtoken)r'p[0109]可见,由于r'p不为0,因此,如果value=0,则表示匹配成功,即用户的属性对应的类存在于云服务器的表内,然后通过相类似的计算可以得出该属性在属性类内的权重值value=ωattribute。[0110]云服务器进行与策略属性树密文匹配,将经过匹配后的确定的用户属性类进行树的与/或计算,具体操作为使用同态加密的密文性值为{0,1}的特质,通过同态的加减操作实现与/或计算。将操作后的策略属性树密文与多属性权重值集合valueall={ω1、、、ωn}进行乘同态操作,然后与策略权重对应密文集合密文进行匹配,返回value=wsearch,该value值为设定好的密文集合索引,将值传给文档索引表进行下一步密文检索。[0111]在这个过程中,用户数据的传输、存储、检索以及处理等过程,除用户本地外,其他实体均未接触到用户明文数据及其中间处理结果。另外,用户也不需要获取同态算法解密私钥p,而只需要上传加密这个数据时所用到的随机数r和p的积以及n=pq,用这两个公参来进行同态模糊加密,由于r与p都是大素数,其积同样在计算上也是难分解的,这样就确保了私有密钥p没有被泄露的风险。[0112]具体的,基于上述实施例,参照图5,图5为本申请云计算环境中的密文搜索方法的另一子流程示意图,本实施例中,若所述用户属性与所述用户权重策略树匹配成功,则通过所述关键字与所述密文索引表进行筛选,得到搜索的索引密文的具体步骤包括:[0113]当所述用户属性与所述用户权重策略树匹配成功后;[0114]通过所述陷门中的搜索关键字和相关参数与所述密文索引表进行密文相关性筛选,得到搜索的索引密文,所述密文索引表至少包括所述密文中的关键字向量。[0115]其中,当用户属性跟用户权重策略树匹配成功后,陷门中的用户搜索的关键字则会在密文索引表中的关键字进行筛选,得到最相近的索引密文。[0116]具体的,基于上述实施例,参照图6,图6为本申请云计算环境中的密文搜索方法的另一子流程示意图,本实施例中,基于所述客户端接收搜索方用户申请所述密文结构的私钥的请求的具体步骤包括:[0117]基于客户端生成公钥和用于生成私钥的主私钥;[0118]基于公钥、主私钥、所述用户id以及所述用户属性得到所述用户的私钥。[0119]其中,构建g0是一个以素数p为阶的双线性群,并且η为随机值。设g为其生成元,双线性映射e:g0×g0→gr,定义了两个哈希函数:h0:{0,1}*→g0和h1:{0,1}*→gzp。在群gzp中选择三个随机数a,b,c∈gzp。同态加密算法生成p,q,r为随机素数值,p为私钥,生成搜索公钥参数:{n=pq,rq=rq}。输出公钥pk和主密钥mk,其中公钥pk内包含了同态加密算法所需的随机值函数集合。[0120][0121]mk={a,b,c}。[0122]输入公钥pk、主私钥msk、申请搜索的用户id和搜索方du的属性集合s,然后输出搜索方的属性私钥sk。取随机数r∈gzp,并对属性集s中的每个属性选取随机数tj∈gzp,并赋予对应时间戳加密的idt。计算可得:[0123][0124]具体的,基于上述实施例,参照图7,图7为本申请云计算环境中的密文搜索方法的另一子流程示意图,本实施例中,云计算环境中的密文搜索方法还包括:[0125]基于客户端删除加密数据时,通过更改数据的访问结构;[0126]云服务器确定所述加密数据被删除后,返回删除文件至所述客户端。[0127]其中,当加密方想要删除某类加密数据时,通过同态操作撤消访问权限属性来更改文件的访问结构,delete操作之后执行后,云服务器将确定是否当前文件已被删除,并将返回一个删除文件给加密方。潜在语义空间模型lsa不支持数据更新,而且容易被猜测关键字攻击,所以利用云服务器算力和使用同态加密来解决这个问题。方案中采用的向量空间模型依赖于tf-idf权重,其中逆文档频率(idf)因子取决于包含关键字的文件数。添加或删除文件时,关键字的idf因子可能会更改。为了避免在更新发生时更新所有可搜索索引,文件向量应该相互独立。由于可搜索索引是为每个文件构建的,一个可行的解决方案是只在文件向量中存储tf值,并添加另一个辅助向量来存储每个关键字的idf值。这样更新仅限于辅助向量,而不是所有可搜索的索引。其代价是在用户搜索请求期间,需要计算tf-idf权重以获得相关性得分。由于计算在服务器端,并且服务器端的计算能力很高,所以整体效率几乎不受更新的影响。而且使用了同态算法加密后,避免了猜测关键字攻击,而且同态操作过程中全程黑盒化,没有泄露私钥的可能性。[0128]其中,同态算法的实现:[0129]1、homo.encrypt(pk,m',lsa)→ct':同态加密算法,输入公共参数pk,数据所有方do生成确定好的权重策略树向量、语义模型参数和文档tf向量,[ω为文档数]。其中q,r为随机素数值,p为私钥,加密内容用二进制比特来表示,m'∈{0,1}。得加密密文ct'[0130]ct'={pq+2krq+m'}[0131]此处加密算法是对初始算法的优化,针对原算法加密生成密文过大的改进,使用多bit的二进制缩减密文大小,加密公式中的2的k次方,表示bit的缩减程度,这样极大的缩小计算量,而且为了多次同态操作后会使密文噪声过大,使用了模交换技术,即是在每次计算密文后再与一个小数相乘,来降低噪声,控制密文中噪声的增加。[0132]假设模q为vj,两个密文噪声都为v,那么在同态乘运算后噪声大于v2,在logj层乘法运算后的噪声达到阈值,不能进行下一步计算。所以为了解决这个情况,把每次乘法运算后再乘以1/v。在第一次的运算中噪声为x2然后乘以1/v,这样噪声被降低。[0133]2、calculate(ct',f(update))→ct*:云服务器csp输入指定的ct',通过数据所有方发送的对应同态操作的函数f(update),可以实现对密文的加同态和乘同态计算,对加密的密文ct'进行属性上的更新操作和对密文中的lsa模型内的参数进行动态修改。[0134]这里对应的函数操作:权重属性策略树进行匹配;对tf-idf进行权重计算;进行潜在语义(lsa)的计算;属性策略树的值或权重、用户id、相关文档向量的动态修改。[0135]同态操作原理如下:[0136]同态性包含加法和乘法同态,有两个密文c1=m1+2kr1q+pq和c2=m2+2kr2q+pq[0137]同态加法正确性证明:[0138]((c1+c2)modp)mod2k=[0139][((m1+m2)+2kq(r1+r2)+pq)modp]mod2k=[0140]((m1+m2)+2kq(r1+r2))mod2k=m1+m2[0141]同态乘法正确性证明:[0142]((c1*c2)modp)mod2k=[((m1+2kr1q)(m2+2kr2q)+[0143]p((m1+2kr1q)+(m2+2kr2q))q+(pq)2)modp]mod2k=[0144]((m1+2kr1q)(m2+2kr2q))mod2k=[0145](m1m2+2k(m1r2+m2r1+2kr1r2)q)mod2k=m1m2[0146]但是在上述方案中,如果将pq当做公钥,私钥p很容易就被发现了,所以在上述加密算法中引入最大公约数问题,即加入一些明文为0加密得到的密文[0147]{xi:xi=2nri+pqi}[0148]将这个集合看做是公钥,并且在加密时随机从这个集合中选取一些子集的和加入加密算法中,方案就是安全的。因为加进去的是0的密文,所以对解密并没有影响。[0149]进一步的,本申请实施例还提供一种云计算环境中的密文搜索设备200,参照图8,图8为本申请实施例中云计算环境中的密文搜索设备模块示意图,本申请实施例中,上述云计算环境中的密文搜索设备200包括:[0150]加密模块801:用于基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;[0151]生成模块802:用于基于所述客户端接收用户申请所述密文的私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;[0152]搜索模块803:用于所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;[0153]解密模块804:用于所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。[0154]本申请实施例提供的一种云计算环境中的密文搜索设备200,可以实现:基于客户端的加密方对明文集加密得到密文结构,根据所述密文结构得到密文索引表,随机生成用户权限表,并将所述密文结构、用户权限表和密文索引表上传至云服务器,所述用户权限表至少包括每个用户属性类和属性类对应的用户权重策略树,所述明文集至少包括一个明文;基于所述客户端接收用户申请所述密文的私钥的请求,所述用户接收所述密文结构私钥后并生成相对应的搜索陷门发送至云服务器,所述搜索陷门至少包括用户属性、搜索关键字、用户私钥;所述云服务器对所述用户属性与所述用户权重策略树进行匹配,若所述用户属性与所述用户权重策略树匹配成功,则通过所述搜索关键字与所述密文索引表进行筛选,得到搜索的索引密文;所述云服务器返回所述索引密文的中间值至所述客户端,并进行解密得到搜索结果。该方法实现了密文数据的高效检索功能,采用权重策略树优化访问策略,潜在语义优化空间模型,通过访问控制策略表和文档索引表提高检索的精准度,降低了密文搜索的计算量;利用全同态加密的特点,完全模糊化云服务器控制数据,实现高效的隐藏策略,充分利用云服务器算力进行同态加/乘操作来进行访问控制和密文检索,可实现高效的数据动态更新,极大的提高云数据处理的保密性和效率;且访问策略与用户是多对多的关系,即使一个用户背叛,它也不会影响其他用户,而且基于权重策略树的特性和属性值的同态加密模糊化,可以抵抗关键字猜测攻击。[0155]进一步的,本申请实施例还提供一种云计算环境中的密文搜索设备,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的云计算环境中的密文搜索方法中的各个步骤。[0156]进一步的,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的云计算环境中的密文搜索方法中的各个步骤。[0157]在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0158]需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。[0159]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。[0160]以上为对本发明所提供的一种云计算环境中的密文搜索方法及系统、设备及存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1