[发明专利]一种面向云计算应用的同态加密密文检索方法有效
申请号: | 201710199651.1 | 申请日: | 2017-03-30 |
公开(公告)号: | CN106934063B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 拱长青;肖芸;林娜;郭振洲;李席广;赵亮;孟庆杰 | 申请(专利权)人: | 沈阳航空航天大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2452;G06F16/2458 |
代理公司: | 沈阳维特专利商标事务所(普通合伙) 21229 | 代理人: | 甄玉荃 |
地址: | 110136 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种面向云计算应用的同态加密密文检索方法,将预处理阶段放到云端来进行实施,文档的TF‑IDF权重向量都是在云端计算得到;云端基于同态加密后的文档,可以对密文进行同态性操作和计算,构建出每篇文档的TF‑IDF权重向量,并以明文方式存在;在进行密文检索时,客户端将检索项加密并上传到云端,云端对密文检索项进行操作也可得到相应的TF‑IDF权重向量明文,进而计算出检索项与文档集中各个文档的相似度并得到明文排序结果;与将预处理阶段放到客户端进行处理的方案进行对比,减轻了客户端的计算压力,能够充分利用云计算强大的计算能力及存储能力来对数据进行操作,提高检索工作效率。 | ||
搜索关键词: | 一种 面向 计算 应用 同态 密密 检索 方法 | ||
【主权项】:
一种面向云计算应用的同态加密密文检索方法,其特征在于,该方法包括以下步骤:步骤1:在客户端对文档集加密并上传至云端在客户端,用户采用整数全同态加密算法对文档集中的每篇文档进行加密,然后上传至云端保存。(1)加密算法KeyGen:选择一个随机产生的P位的安全大素数作为密钥p,其中p∈[2P‑1,2P];Encrypt(m):随机选取一个Q位安全大素数q,其中,q∈[2Q‑1,2Q],P>Q>明文分组长度,随机产生一个随机数r,对M进行分组M=m1m2m3...mt(mi的长度为L),计算密文ci=mi+2pq+pqr,即可得到密文;Decrypt(c):计算mi=ci mod p,得到明文消息M=m1m2m3...Mt,即得到解密后的明文;同态性分析:设有两个明文m1,m2,其对应的密文分别为c1,c2,则c1=m1+2pq+pqr1c2=m2+2pq+pqr2加法同态性分析:c1+c2=(m1+m2)+4pq+pq(r1+r2),因为(c1+c2)mod p=m1+m2,因此该算法满足加法同态;乘法同态性分析:c1*c2=(m1*m2)+2m1pq+m1pqr2+2m2pq+4p2q2+2p2q2r2+m2pqr1+2p2q2r1+p2q2r1r2=(m1*m2)+2pq(m1+m2)+pq(m1r2+m2r1)+2p2q2(r2+r1)+4p2q2+p2q2r1r2,因为(c1*c2)mod p=m1*m2,因此该算法满足乘法同态性。(2)关键词mindex的查询匹配算法a、采用上述加密算法,在客户端对关键词加密,得到对应的密文cindex=mindex+2pq+pqr,并上传到云端;b、云端接收到密文关键词cindex后,采用密文匹配算法进行查询,其中N=pq,匹配公式Retrieval=(ci‑cindex)mod N=((mi‑mindex)+pq(r1‑r2))mod N;若Retrieval=0,则mi‑mindex=0,即当mi=mindex的时候,pq(r1‑r2)mod N=0,所以Retrieval=0,检索时只需向云端上传N,其中N=pq,云端无法推出用户的密钥p,但服务器能够直接对用户的密文进行查询匹配操作。步骤2:在云端对密文文档集进行预处理操作云端首先生成密文文档集的副本,预处理操作都是对副本进行,预处理分为三个阶段,即分词过滤,建立倒排索引,生成文档集的权重向量集;(1)分词过滤选择关键词,检索文档集;对每一个关键词,看其是否存在于停用词列表中,如果存在则将其从文档中删除过滤掉;由于原始文档集在客户端已经进行加密处理了,在加密的情况下进行查找密文关键词可以采用线性匹配的方法进行查找;进行匹配查询的方法如下:在步骤1中,客户端已经采用公式(1)将停用词加密后上传至云端,云端保存密文停用词,采用公式(2)将文档集中的每个关键词进行加密并上传至云端保存;假设云端文档中的密文关键词为tindex,存储在云端的密文停用词为ti,则有:ti=mi+2pq+pqr2 公式(1)tindex=mindex+2pq+pqr1 公式(2)在云端通过公式(3)对云端每篇密文文档中的每个关键词,都进行过滤处理,其查询的匹配公式为:此匹配操作是在云端进行的,设结果为Retrieval,若Retrieval=0,则ti‑tindex=0,则表示在密文文档中查询到了密文停用词,在使用上述公式时,只需向云端上传N,其中N=pq,所以从N是无法得出密钥p的,所以上述公式是安全并可靠的;最后将所有查询到的密文停用词删除过滤处理之后,生成新的文档集,其中的每一篇文档用dj表示。(2)建立倒排索引本发明将倒排索引的建立放在服务器端进行,在加密条件下统计出关键词ki的词频TFi以及逆文档频率IDFi,最后生成密文文档集的倒排索引表;假设在云端需要统计的密文关键词为ckindex,存储在云端的密文关键词为ci,则有ckindex=mkindex+2pq+pqr1 公式(4)ci=mi+2pq+pqr2 公式(5)令,此匹配操作是在云端进行的,公式(6)中,设结果为Retrieval,若Retrieval=0,则ci‑ckindex=0,则表示在此篇密文文档中找到了需要统计的密文关键词ckindex,即匹配查询到一个,词频fij记数count增加1,出现的文档数ni表示该统计的密文关键词ckindex在文档集中出现的文档数量,最后经过统计得到该密文关键词的fij和ni。(3)生成文件向量集在倒排索引表更新完成以后,根据统计出的关键词词频与逆文档频率,生成文档集对应的权重向量集;本发明所使用的权重计算框架是TF‑IDF框架,其中TF代表的是关键词的词频,IDF代表的是关键词的逆文档频率;本发明采用的计算权重向量的值如公式(7)所示:其中wij代表关键词ki对文档dj的TF‑IDF权重,fij表示关键词ki出现在文档dj中的频率,即出现的次数,N表示文档集中文档的总数量,ni表示文档集中包含关键词ki的文档数量,N/ni代表关键词ki的逆文档频率;设密文文档dj有t个密文关键词ki,且它们之间相互独立,定义密文文档dj为t维空间上的向量,根据上述公式求得密文文档dj中各个密文关键词ki的权重值,进而生成密文文档的明文权重向量,其中每个密文关键词ki求得的权重值都为明文;则dj的值如公式(8)所示:步骤3:检索过程客户端将明文检索项加密上传至云端,在云端对密文检索项做和密文文档集一样的预处理工作,将密文检索项进行分词过滤操作,其中的每一项都是相应密文关键词在密文检索项中的明文权重值,该明文权重值的计算公式如公式(9)所示:设密文检索项q有t个密文关键词ki,且它们之间相互独立,根据上述公式求得密文检索项q中各个密文关键词ki的明文权重值,进而生成密文检索项的明文权重向量,其中每个密文关键词ki求得的权重值都为明文;则q的值如公式(10)所示:检索过程其实是对密文检索项的明文权重向量与密文文档集中各密文文档的明文权重向量进行相似度计算,相似度的计算公式如下:设密文文档的明文权重向量为密文检索项的明文权重向量为根据向量空间模型的定义,设两者相似度为则有其中,|dj|和|q|分别为在云端计算得到的密文文档的明文向量模和密文检索项的明文向量模,在云端利用公式(11)计算得到密文关键词与每篇密文文档的相似度计算结果,并对计算结果按相似度大小进行排序,将相似度高的,即与查询相关程度高的文档排在前面,从而有利于用户查找,最后云端将相似度排序结果返回给客户端供用户进行查看。步骤4:文档下载根据上一步检索到想要的文档之后,可以对选定的文档进行下载,首先在客户端输入待下载的文档名,采用公式(12)将待下载的文档名加密上传至云端保存,采用公式(13)文档集的每篇文档名进行加密并上传至云端保存;假设存储在云端的待下载文件的密文文件名为cindex,云端文档的密文文件名为ci,则有cindex=mindex+2pq+pqr1 公式(12)ci=mi+2pq+pqr2 公式(13)同样,因为同态加密技术对同一数据加密两次所得的密文是不同的,所以需将待下载的密文文档名与文档集中的各密文文档名通过公式(14)进行匹配,设匹配结果为Retrieval,则此匹配操作是在云端进行的,通过公式(14)可以在云端检索到要下载的文档,若Retrieval=0,则ci‑cindex=0,则表示在密文文档中查询到了该密文停用词,在使用上述公式时,只需向云端上传N,其中N=pq,所以从N是无法得出密钥p。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳航空航天大学,未经沈阳航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710199651.1/,转载请声明来源钻瓜专利网。