语义关键词可搜索加密方法与流程-尊龙凯时官方app下载

文档序号:36400741发布日期:2023-12-16 03:24阅读:19来源:国知局
语义关键词可搜索加密方法、系统、电子设备和介质
技术领域
:1.本发明涉及数据加密
技术领域
:,尤其涉及一种语义多关键词搜索加密方法、系统、电子设备和介质。
背景技术
::2.随着云计算、云存储的迅速发展,数据的安全问题也愈发的受到重视。3.近年来,研究者们普遍使用tf-idf模型来生成密文状态下的文档向量和安全索引,从而来构建支持各种形式的可搜索加密方案。4.但是现有的基于tf-idf模型是利用从所有的文件中提取关键词,然后根据提取的关键词构建安全索引,这会导致字典集合中关键词的数量庞大,需要较大的存储空间。5.因此亟需一种可搜索加密方案来降低存储空间的使用。技术实现要素:6.本发明提供了一种语义多关键词搜索加密方法、系统、电子设备和介质,旨在有效解决现有技术中的可搜索加密方案需要较大存储空间的技术问题。7.根据本发明的第一方面,本发明提供一种语义关键词搜索加密方法,包括:获取数据拥有者端需要加密的文档数据,并对所述文档数据进行加密,得到一一对应的加密索引和密文文件;获取数据用户端发送的搜索请求指令;根据所述搜索请求指令匹配所述加密索引;将与匹配到的加密索引相对应的密文文件传输至数据用户端;在所述数据用户端,对所述密文文件进行解密,得到文档数据。8.进一步地,所述对所述文档数据进行加密包括:利用预获取的密钥对将所述文档数据进行加密,得到加密文档集;对所述文档数据的主题进行提取以得到主题集,所述主题集内的主题和所述加密文档集内的文档一一对应;对所述主题集进行加密,得到加密索引。9.进一步地,所述对所述文档的主题进行提取以得到主题集的步骤包括:利用预训练的btm主题模型对所述数据文档进行主题提取;利用吉布斯采样的方法对提取的主题进行处理,得到主题-关键词相关度分布矩阵,并得到文档-主题相关度分布矩阵;分别计算所述主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数;利用所述主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数,提取所述数据文档的所有主题中,最佳主题-关键词概率分布矩阵;根据所述困惑度和一致性参数指定语料库内主题的数量;根据指定的库内主题的数量,在所述最佳主题-关键词相关度分布矩阵中,提取主题,得到主题集。10.进一步地,所述对所述主题集进行加密的步骤包括:利用预训练的btm主题模型,从所述主题-关键词相关度分布矩阵中提取每个主题的关键词概率分布向量,构造t个主题对应的t个节点,将所述t个节点设定为叶子节点;利用t个叶子结点,构造平衡树索引d;将平衡树索引d中的所有向量的维度拓展到(m j 2)-bit,并计算平衡树索引的索引向量索引向量的计算方法包括:将索引向量的(m j 1)th-bit维度设为一个随机数得到其中,d表示添加的虚拟词数量,m为数组大小,(m j 2)th-bit设为1;将索引向量分割成两个向量分割方法为:判断0/1分割向量s其各维度的值是否为1,若为1,则将,则将否则将d′i=d″i,其中,r表示随机选取的随机数;利用{m1,m2}将所述平衡树索引中的子向量加密得到其中,i1,i为加密索引,{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。11.进一步地,所述对所述主题集进行加密的步骤包括:从文档-主题相关度分布矩阵中获取第i篇文档的主题概率分布向量;构建主题-文档倒排索引;使用对称密钥对所述倒排索引进行加密,生成主题文档安全索引。12.进一步地,所述获取数据用户发送的搜索请求指令包括:在所述数据用户端发送搜索请求后,提取所述搜索请求内的关键词;对所述关键词进行加密并生成搜索陷门;将所述搜索陷门发送至数据用户端;利用所述数据用户端,使用搜索陷门重新发起搜索请求;接收所述数据用户发送的搜索陷门,作为所述搜索请求指令。13.进一步地,所述对所述关键词进行加密并生成搜索陷门的步骤,包括:对关键词作伪随机变换生成虚拟关键词并在插入集合生成集合qi;通过预训练的btm主题模型为集合qi生成m-bit查询主题向量;随机在包含的d个虚拟关键词中选取v个关键词,并将v个关键词的相应位置设为1,且利用一个随机数对v个关键词进行缩放,将v个关键词的维度扩展为(m j 2);计算预先获取的clj与n的平均值其中n={n=1,2,…}表示所述关键词的数目,clj是一个混淆参数,为存储在cs中的文档集合保密等级;利用clj、n和μ,计算方差利用所述方差σ对进行分割,得到其中,分割方法包括:查询的每一个元素若0/1分割向量s其各维度的值为0,则令,则令否则令否则令和为搜索陷门;利用{m1,m2}对搜索陷门进行加密,得到加密陷门,其中加密方法包括:{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。14.进一步地,所述匹配所述加密索引的步骤包括:利用预先构建的cosine函数计算加密索引和加密陷门之间的相似度;若所述相似度达到预设阈值,则将加密索引对应的密文文件、加密索引对应的主题标签发送至数据用户端。15.进一步地,所述对所述密文文件进行解密的步骤包括:对所述主题标签进行解析,得到γi和mack(wi,vi),其中,γi和mack(wi,vi)的串联值表示标签域,γi=encsk(vi),vi表示在每个文件中是否出现的向量值,enc表示加密算法;使用dec函数对每一个标签进行计算decsk(γi)得到vi,再使用mac函数计算将计算出的与mack(wi,vi)进行对比,若二者相同,则进行下一步验证,否则直接拒绝解密操作;所述下一步验证的步骤包括:计算v=vl^v2^v3^…^vn,其中,^表示占位修饰字符;检验v中对应位置是否满足都为1,若满足,则验证成功,对密文文件执行解密操作,否则直接拒绝解密操作。16.根据本发明的第二方面,本发明还提供了一种语义关键词搜索加密系统,包括:数据加密模块,用于获取数据拥有者端需要加密的文档数据,并对所述文档数据进行加密,得到一一对应的加密索引和密文文件;指令获取模块,用于获取数据用户端发送的搜索请求指令;索引匹配模块,用于根据所述搜索请求指令,匹配所述加密索引;文件传输模块,用于将与匹配到的加密索引相对应的密文文件传输至数据用户端;数据解密模块,用于在所述数据用户端,对所述密文文件进行解密,得到文档数据。17.根据本发明的第三方面,本发明还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现上述中的任意一项所述语义关键词搜索加密方法。18.根据本发明的另一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述中的任意一项所述语义关键词搜索加密方法。19.通过本发明中的上述实施例中的一个实施例或多个实施例,至少可以实现如下技术效果:20.在本发明所公开的技术方案中,是对数据拥有者端需要加密的文档数据进行加密,而无需对所有的文档数据进行加密,这就减少了关键词的提取数量,节省了存储空间。附图说明21.下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。22.图1为本发明实施例提供的语义关键词搜索加密方法的流程图;23.图2为本发明实施例提供的语义关键词搜索加密系统的框架图;24.图3为本发明实施例提供的电子装置的结构示意框图。具体实施方式25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。26.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。27.随着云计算、云存储的迅速发展,愈来愈多的企业或者用户为了节省软硬件的高额维护成本通常选择将他们的隐私数据文档外包到云端,但如何保护数据安全成为了一个难题。为了保障数据隐私,在外包之前,数据需要以加密的形式进行外包,但如何高效的检索密文数据成为了新的难题。针对此难题,可搜索加密技术应运而生,它是一种允许用户在无需解密的情况下,对存储在云服务器上的密文数据进行有效检索的一项技术。28.近年来,研究者们普遍使用基于向量空间模型和安全knn的tf-idf模型来生成密文状态下的文档向量和安全索引,从而来构建支持各种形式的可搜索加密方案,例如:单关键词搜索、多关键词搜索、模糊关键词搜索和连接关键词搜索等等。其中,tf-idf模型是基于bow模型建立的,它使用术语频率和逆文档频率来度量关键词和文档之间的相关性,利用相关性分数来代表向量之间的内积,然而,这种基于tf-idf构建的方案忽略了不同文件中关键词的语义,从而会导致检索结果与用户的语义意图请求之间存在差异。此外,大多数现有的基于tf-idf的可搜索加密方案都是利用从所有的文件中提取关键词,然后根据提取的关键词构建安全索引,导致字典集合中关键词的数量庞大以及生成的向量具有极高的维数和稀疏性,因此,目前的可搜索加密方案在搜索时间和空间成本上都表现的不太理想。29.基于此,本技术提供一种语义关键词可搜索加密方法、系统、电子设备和介质,至少能够降低空间的占用。30.图1所示为本发明实施例所提供的语义关键词搜索加密方法,包括:31.s101、获取数据拥有者端需要加密的文档数据,并对文档数据进行加密,得到一一对应的加密索引和密文文件;32.s102、获取数据用户端发送的搜索请求指令;33.s103、根据搜索请求指令匹配加密索引;34.s104、将与匹配到的加密索引相对应的密文文件传输至数据用户端;35.s105、在数据用户端,对密文文件进行解密,得到文档数据。36.在本实施例中,可以调度五个实体来实现上述步骤,五个实体分别为:数据拥有者端、数据用户端、云服务器、可信中心和数据服务中心,其中,数据拥有者端提供数据文档,并将数据文档发送至数据服务中心,由数据服务中心负责处理并加密,即由数据服务中心执行步骤s101,随后数据服务中心将生成的加密索引和密文文件发送至云服务器,并与之共享生成的安全密钥。当云服务器监测到数据用户端发起搜索请求后,即云服务器执行了步骤s102后,继续由云服务器执行步骤s103、步骤s104,将密文文件发送至数据用户端,数据用户端在其本地执行解密操作,即在数据用户端执行步骤s105。37.由于本实施例提供的语义关键词搜索加密方法,在进行搜索加密的过程中,是对数据拥有者端需要加密的文档数据进行加密,而无需对所有的文档数据进行加密,这就减少了关键词的提取数量,节省了存储空间。38.在一个实施例中,对文档数据进行加密包括:39.利用预获取的密钥对将文档数据进行加密,得到加密文档集;40.对文档数据的主题进行提取以得到主题集,主题集内的主题和加密文档集内的文档一一对应;41.对主题集进行加密,得到加密索引。42.在本实施例中,数据拥有者和可信中心共同生成一个五元组安全秘密钥key={k,s,clj,m1,m2}。其中,k是一个加密主题文档的对称密钥,由数据拥有者端生成;s是一个(m d 2)-bit的0/1分割向量,其各维度的值只能是0或者1;m1,m2是两个(m d 2)×(m d 2)的可逆矩阵;clj是一个混淆参数,为存储在cs(cloudserver,云服务器)中的文档集合保密等级,表示为:clj={levelj|levelj=1,2,…,5};{s,m1,m2}是用来加密关键词向量和检索陷门向量。43.在一个实施例中,对文档的主题进行提取以得到主题集的步骤包括:44.利用预训练的btm主题模型对数据文档进行主题提取;45.利用吉布斯采样的方法对提取的主题进行处理,得到主题-关键词相关度分布矩阵,并得到文档-主题相关度分布矩阵;46.分别计算主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数;47.利用主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数,提取数据文档的所有主题中,最佳主题-关键词概率分布矩阵;48.根据困惑度和一致性参数指定语料库内主题的数量;49.根据指定的库内主题的数量,在最佳主题-关键词相关度分布矩阵中,提取主题,得到主题集。50.在本实施例中,数据服务中心会首先利用基于深度学习的btm主题模型训练出语料库在不同主题下的模型并进行文档主题ti的提取。然后使用吉布斯采样(gippssampling)得到主题-关键词相关度分布矩阵(tkrd-matrix)ω和文档-主题相关度分布矩阵(dtrd-matrix)θ,接着分别计算它们的困惑度和一致性参数,并提取每个主题最佳的主题-关键词概率分布矩阵。最后,根据这两个参数指定语料库的主题个数t,并从最佳的主题-关键词相关度分布矩阵中提取主题集t={t1,t2,…,tt}。51.在一个实施例中,对主题集进行加密的步骤包括:52.利用预训练的btm主题模型,从主题-关键词相关度分布矩阵中提取每个主题的关键词概率分布向量,构造t个主题对应的t个节点,将t个节点设定为叶子节点;53.利用t个叶子结点,构造平衡树索引d;54.将平衡树索引d中的所有向量的维度拓展到(m j 2)-bit,并计算平衡树索引的索引向量55.将索引向量分割成两个向量56.利用{m1,m2}将平衡树索引中的子向量加密得到57.在本实施例中,索引向量的计算方法包括:将索引向量的(m j 1)th-bit维度设为一个随机数{ε(j)|j∈[1,d]},得到其中,d表示添加的虚拟词数量,m为数组大小,(m j 2)th-bit设为1;[0058]索引向量分割方法为:判断0/1分割向量s其各维度的值是否为1,若为1,则将否则将d′i=d″i,其中,r表示随机选取的随机数。[0059]其中,i1,i为加密索引,{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。[0060]在本实施例中,每个叶子节点存储一个主题id和一个数组infoxy,数组大小为m,数组值为向量t[i],向量t[i]对应的是第i个主题中的所有关键词的概率分布,x、y分别表示第x层的第y个节点;[0061]其中,非叶子节点rxy存储较大的infoxy,当两个节点构成一个新的平衡树索引时,将两个孩子节点的infoxy一一比较,大的保存在相应的父节点infoxy位置,然后得到一个平衡树索引d,或称为一级索引。[0062]在一个实施例中,对主题集进行加密的步骤包括:[0063]从文档-主题相关度分布矩阵中获取第i篇文档的主题概率分布向量;[0064]构建主题-文档倒排索引;[0065]使用对称密钥对倒排索引进行加密,生成主题文档安全索引。[0066]在本实施例中,由于每个文档都包含一个潜在语义特征的主题向量,因此易于构建文档-主题分布矩阵,接着从训练好的dtrd-matrixθ中获取第i篇文档的主题概率分布向量。为了提高检索率,构建主题-文档倒排索引,实现对文档的快速检索,接着使用对称密钥k1对其进行加密,生成主题文档安全索引i2,还可称为二级索引。[0067]在本实施例中,对主题集进行加密的步骤还包括:构造查找表。[0068]具体地,查找表的形式如表1所示:[0069]关键词标签ξsk(w1)tag1=《γ1|mack(w1,v1)》ξsk(w2)tag2=《γ2|mack(w2,v2)》ξsk(w3)tag3=《γ3|mack(w3,v3)》…………[0070]表1查找表[0071]在表1中,ξsk(w1)、ξsk(w2)、ξsk(w3)……,表示在密钥sk作用下的伪随机变换值,γi和mack(wi,vi)的串联值表示标签域,其中,γi=encsk(vi),vi表示在每个文件中是否出现的向量值。若vi,j=1,则表示第j个文件含有此关键词,反之则不包含。[0072]数据拥有者将需要上传的文件使用对称秘钥k1进行加密,然后得到一个加密文档集合随后将安全索引和查找表table发送至云服务器。[0073]而当云服务器的检索操作完成后,根据每一个伪随机变换值在查找表table中进行查找然后返回相应的tag,随后将前k个文件的密文和tag返回给用户。[0074]在本实施例中提出的二级索引和上述实施例提出的一级索引的构建方案中,可以在语义关键词搜索加密方法使用其中一个,也可以在语义关键词搜索加密方法同时使用。[0075]在一个实施例中,根据搜索请求指令匹配加密索引的步骤包括:[0076]获取数据用户发送的搜索请求指令包括:[0077]在数据用户端发送搜索请求后,提取搜索请求内的关键词;[0078]对关键词进行加密并生成搜索陷门;[0079]将搜索陷门发送至数据用户端;[0080]利用数据用户端,使用搜索陷门重新发起搜索请求;[0081]接收数据用户发送的搜索陷门,作为搜索请求指令。[0082]在本实施例中,通过将关键字提取出来加密成陷门,能够对数据用户的搜索数据也行成保护,从而提升数据用户数据的安全性。[0083]在一个实施例中,对关键词进行加密并生成搜索陷门的步骤,包括:[0084]对关键词作伪随机变换生成虚拟关键词并在插入集合生成集合qi;[0085]通过预训练的btm主题模型为集合qi生成m-bit查询主题向量;[0086]随机在包含的d个虚拟关键词中选取v个关键词,并将v个关键词的相应位置设为1,且利用一个随机数对v个关键词进行缩放,将v个关键词的维度扩展为(m j 2);[0087]计算预先获取的clj与n的平均值[0088]利用clj、n和μ,计算方差[0089]利用方差σ对进行分割,得到[0090]利用{m1,m2}对搜索陷门进行加密,得到加密陷门。[0091]其中对搜索陷门进行加密的方法包括:{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。[0092]在本实施例中,n={n=1,2,…},表示关键词的数目,clj是一个混淆参数,为存储在cs中的文档集合保密等级。[0093]利用方差σ对进行分割方法的包括:查询的每一个元素若0/1分割向量s其各维度的值为0,则令,则令否则令否则令和为搜索陷门。[0094]在一个实施例中,匹配加密索引的步骤包括:[0095]利用预先构建的cosine函数计算加密索引和加密陷门之间的相似度;[0096]若相似度达到预设阈值,则将加密索引对应的密文文件、加密索引对应的主题标签发送至数据用户端。[0097]在本实施例中,云服务器通过cosine方法计算加密安全索引i1和加密陷门之间的相似度得分来获取主题id。因为平衡树索引的每个节点都是一个表示主题-关键词概率分布的向量,而且父节点中元素取两个子节点中的最大值,所以当将查询陷门与树节点的向量执行匹配时,就可得到概率最大的节点,表明与查询向量更接近。得到主题id后,根据主题id与二级索引进行匹配获取文档索引,最后根据文档索引将密文集合r返回给用户,用户使用密钥k1进行解密,得到所需的文件。[0098]但是由于大多数基于安全的knn算法都是通过引入随机数来提高算法的加密强度,但这仍然会遭受比值攻击的威胁;随后本技术将加密三元组及矩阵进行维度拓展,通过在扩展维中加入“哑元”随机数来提高安全强度,不过由于在每次检索时选取的随机变量是固定的,导致其分布具有规律性,所以当面对大数据分析时,仍具有相当大的隐患,所以为了进一步消除这种固定属性,本技术还利用“混淆参数”对插入的关键词数进行扰动的改进思路,根据每次查询文件的保密级别和关键词数量,对加密三元组及矩阵进行动态的维度扩展,即每次进行相似度计算时查询关键词数量为从而最终的相关度计算如下:[0099][0100]在一个实施例中,对密文文件进行解密的步骤包括:[0101]对主题标签进行解析,得到γi和mack(wi,vi),其中,γi和mack(wi,vi)的串联值表示标签域,γi=encsk(vi),vi表示在每个文件中是否出现的向量值,enc表示加密算法;[0102]使用dec函数对每一个标签进行计算decsk(γi)得到vi,再使用mac函数计算[0103]将计算出的与mack(wi,vi)进行对比,若二者相同,则进行下一步验证,否则直接拒绝解密操作;[0104]下一步验证的步骤包括:计算v=v1^v2^v3^…^vn,其中,^表示占位修饰字符;检验v中对应位置是否满足都为1,若满足,则验证成功,对密文文件执行解密操作,否则直接拒绝解密操作。[0105]在本实施例中,数据用户端在接收到上述实施例中描述的k个文件的密文和tag后,执行上述步骤,即:对主题标签{tagi|i=1,2,…,n}进行解析得到γi和mack(wi,vi)。然后对于每一个标签计算decsk(γi)得到vi,再计算然后与mack(wi,vi)进行对比,若相同,则进行下一步验证,否则直接拒绝。[0106]随后计算v=v1^v2^v3^…^vn,查看返回的密文集合,检验v中对应位置是否满足都为1,若满足,则验证成功,然后执行解密操作,否则直接拒绝。[0107]综上所述,本技术提供的语义关键词搜索加密方法,利用主题模型与文本及提取的关键词之间的潜在语义关系建模,接着利用基于深度学习的btm主题模型生成待查询关键词的概率分布作为搜索凭证,然后将其与安全索引进行匹配运算得到主题id,接着将主题id与二级索引进行匹配来返回最相关的文档。通过将特定关键词替换成基于语义的主题,保证了提取的关键词与文档标识符之间的不相关性,同时,通过构造双层索引结构,一方面,训练好的主题模型降低了安全索引中节点的维数,提高了检索效率,另一方面,基于平衡树构建的倒排索引也进一步减少了时间复杂度。[0108]请参阅图2,本技术实施例还提供一种语义关键词搜索加密系统,包括:数据加密模块1、指令获取模块2、索引匹配模块3、文件传输模块4及数据解密模块5。[0109]其中,数据加密模块1用于获取数据拥有者端需要加密的文档数据,并对文档数据进行加密,得到一一对应的加密索引和密文文件;指令获取模块2用于获取数据用户端发送的搜索请求指令;索引匹配模块3用于根据搜索请求指令,匹配加密索引;文件传输模块4用于将与匹配到的加密索引相对应的密文文件传输至数据用户端;数据解密模块5用于在数据用户端,对密文文件进行解密,得到文档数据。[0110]本实施例提供的语义关键词搜索加密系统,在进行搜索加密的过程中,是对数据拥有者端需要加密的文档数据进行加密,而无需对所有的文档数据进行加密,这就减少了关键词的提取数量,节省了存储空间。[0111]在一个实施例中,数据加密模块1包括:文档加密单元、主题集提取单元和主题集加密单元;文档加密单元用于利用预获取的密钥对将文档数据进行加密,得到加密文档集;主题集提取单元用于对文档数据的主题进行提取以得到主题集,主题集内的主题和加密文档集内的文档一一对应;主题集加密单元用于对主题集进行加密,得到加密索引。[0112]在一个实施例中,主题集提取单元包括:数据提取子单元、矩阵获取子单元、参数计算子单元、最佳主题提取子单元、主题数量指定子单元、主题获取子单元;[0113]数据提取子单元用于利用预训练的btm主题模型对数据文档进行主题提取;矩阵获取子单元用于利用吉布斯采样的方法对提取的主题进行处理,得到主题-关键词相关度分布矩阵,并得到文档-主题相关度分布矩阵;参数计算子单元用于分别计算主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数;最佳主题提取子单元用于利用主题-关键词相关度分布矩阵、文档-主题相关度分布矩阵的困惑度和一致性参数,提取数据文档的所有主题中,最佳主题-关键词概率分布矩阵;主题数量指定子单元用于根据困惑度和一致性参数指定语料库内主题的数量;主题获取子单元用于根据指定的库内主题的数量,在最佳主题-关键词相关度分布矩阵中,提取主题,得到主题集。[0114]在一个实施例中,主题集加密单元包括:子节点构建子单元、平衡树索引构建子单元、第一维度拓展子单元、索引向量分割子单元、子向量加密子单元;[0115]子节点构建子单元用于利用预训练的btm主题模型,从主题-关键词相关度分布矩阵中提取每个主题的关键词概率分布向量,构造t个主题对应的t个节点,将t个节点设定为叶子节点;[0116]平衡树索引构建子单元用于利用t个叶子结点,构造平衡树索引d;[0117]第一维度拓展子单元用于将平衡树索引d中的所有向量的维度拓展到(m j 2)-bit,并计算平衡树索引的索引向量索引向量的计算方法包括:将索引向量的(m j 1)th-bit维度设为一个随机数{ε(j)|j∈[1,d]},得到其中,d表示添加的虚拟词数量,m为数组大小,(m j 2)th-bit设为1;[0118]索引向量分割子单元用于将索引向量分割成两个向量分割方法为:判断0/1分割向量s其各维度的值是否为1,若为1,则将否则将d′i=d″i,其中,r表示随机选取的随机数;[0119]子向量加密子单元用于利用{m1,m2}将平衡树索引中的子向量加密得到其中,i1,i为加密索引,{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。[0120]在一个实施例中,主题集加密单元包括:主题概率分布向量获取子单元、倒排索引构建子单元和倒排索引加密子单元。[0121]主题概率分布向量获取子单元用于从文档-主题相关度分布矩阵中获取第i篇文档的主题概率分布向量;倒排索引构建子单元用于构建主题-文档倒排索引;倒排索引加密子单元用于使用对称密钥对倒排索引进行加密,生成主题文档安全索引。[0122]在一个实施例中,指令获取模块2包括:关键词提取单元、关键词加密单元、搜索陷门传输单元、搜索陷门搜索单元、搜索陷门接收单元;[0123]关键词提取单元用于在数据用户端发送搜索请求后,提取搜索请求内的关键词;[0124]关键词加密单元用于对关键词进行加密并生成搜索陷门;[0125]搜索陷门传输单元用于将搜索陷门发送至数据用户端;[0126]搜索陷门搜索单元用于利用数据用户端,使用搜索陷门重新发起搜索请求;[0127]搜索陷门接收单元用于接收数据用户发送的搜索陷门,作为搜索请求指令[0128]在一个实施例中,关键词加密单元包括:伪随机变换子单元、查询主题向量生成子单元、第二维度扩展子单元、平均值计算子单元、方差计算子单元、向量分跟子单元、搜索陷门加密子单元;[0129]伪随机变换子单元用于对关键词作伪随机变换生成虚拟关键词并在插入集合生成集合qi;[0130]查询主题向量生成子单元用于通过预训练的btm主题模型为集合qi生成m-bit查询主题向量;[0131]第二维度扩展子单元用于随机在包含的d个虚拟关键词中选取v个关键词,并将v个关键词的相应位置设为1,且利用一个随机数对v个关键词进行缩放,将v个关键词的维度扩展为(m j 2);[0132]平均值计算子单元用于计算预先获取的clj与n的平均值其中n={n=1,2,…},表示关键词的数目,clj是一个混淆参数,为存储在cs中的文档集合保密等级;[0133]方差计算子单元用于利用clj、n和μ,计算方差[0134]向量分跟子单元用于利用方差σ对进行分割,得到其中,分割方法包括:查询均每一个元素若0/1分割向量s其各维度的值为0,则令否则令和为搜索陷门;[0135]搜索陷门加密子单元用于利用{m1,m2}对搜索陷门进行加密,得到加密陷门,其中加密方法包括:{m1,m2}是两个(m d 2)×(m d 2)的可逆矩阵。[0136]在一个实施例中,索引匹配模块3包括:相似度计算单元和数据发送单元;[0137]相似度计算单元用于利用预先构建的cosine函数计算加密索引和加密陷门之间的相似度;[0138]数据发送单元用于若相似度达到预设阈值,则将加密索引对应的密文文件、加密索引对应的主题标签发送至数据用户端。[0139]在一个实施例中,数据解密模块5包括:主题标签解析单元、主题标签计算单元、验证单元;[0140]主题标签解析单元用于对主题标签进行解析,得到γi和mack(wi,vi),其中,γi和mack(wi,vi)的串联值表示标签域,γi=encsk(vi),vi表示在每个文件中是否出现的向量值,enc表示加密算法;[0141]主题标签计算单元用于使用dec函数对每一个标签进行计算decsk(γi)得到vi,再使用mac函数计算[0142]用于将计算出的与mack(wi,vi)进行对比,若二者相同,则进行下一步验证,否则直接拒绝解密操作;[0143]验证单元用于下一步验证的步骤包括:计算v=v1^v2^v3^…^vn,其中,^表示占位修饰字符;检验v中对应位置是否满足都为1,若满足,则验证成功,对密文文件执行解密操作,否则直接拒绝解密操作。[0144]本技术实施例还提供一种电子装置,请参阅图3,该电子装置包括:存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行该计算机程序时,实现前述中描述的语义关键词搜索加密方法。[0145]进一步的,该电子装置还包括:至少一个输入设备603以及至少一个输出设备604。[0146]上述存储器601、处理器602、输入设备603以及输出设备604,通过总线605连接。[0147]其中,输入设备603具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备604具体可为显示屏。[0148]存储器601可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器601用于存储一组可执行程序代码,处理器602与存储器601耦合。[0149]进一步的,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述中的存储器601。该计算机可读存储介质上存储有计算机程序,该程序被处理器602执行时实现前述实施例中描述的语义关键词搜索加密方法。[0150]进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器601(rom,read-onlymemory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。[0151]在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。[0152]所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。[0153]另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0154]所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。[0155]需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。[0156]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。[0157]综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。当前第1页12当前第1页12
当前第1页1  
相关技术
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图