一种面向云计算应用的同态加密密文检索方法技术

技术编号:15792153 阅读:83 留言:0更新日期:2017-07-09 23:32
本发明专利技术提供一种面向云计算应用的同态加密密文检索方法,将预处理阶段放到云端来进行实施,文档的TF‑IDF权重向量都是在云端计算得到;云端基于同态加密后的文档,可以对密文进行同态性操作和计算,构建出每篇文档的TF‑IDF权重向量,并以明文方式存在;在进行密文检索时,客户端将检索项加密并上传到云端,云端对密文检索项进行操作也可得到相应的TF‑IDF权重向量明文,进而计算出检索项与文档集中各个文档的相似度并得到明文排序结果;与将预处理阶段放到客户端进行处理的方案进行对比,减轻了客户端的计算压力,能够充分利用云计算强大的计算能力及存储能力来对数据进行操作,提高检索工作效率。

【技术实现步骤摘要】
一种面向云计算应用的同态加密密文检索方法
:本专利技术属于云计算应用
,特别涉及一种面向云计算应用的同态加密密文检索方法。
技术介绍
:云计算是一种创新的服务模式,它能够使用户通过互联网随时获得近乎无限的计算能力和丰富多样的信息服务,是分布式计算、并行计算和网格计算的演进。云存储也属于云计算范畴,应用日渐普及。随着云计算的迅速发展,大量敏感信息被集中到云端。为了避免客户的隐私数据泄露,须将隐私数据进行加密处理后存储在云端。当保存在云服务器端的密文数据发展到了一定规模时,对密文数据的有效检索将是一个亟待解决的问题。现有同态加密密文检索方案中,一般将文档集的预处理等大量工作放置于客户端进行。2014年有文献将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=cimodp,得到明文消息M=m1m2m3...mt,即得到解密后的明文;同态性分析:设有两个明文m1,m2,其对应的密文分别为c1,c2,则c1=m1+2pq+pqr1c2=m2+2pq+pqr2加法同态性分析:c1+c2=(m1+m2)+4pq+pq(r1+r2),因为(c1+c2)modp=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)modp=m1*m2,因此该算法满足乘法同态性。(2)关键词mindex的查询匹配算法a、采用上述加密算法,在客户端对关键词加密,得到对应的密文cindex=mindex+2pq+pqr,并上传到云端;b、云端接收到密文关键词cindex后,采用密文匹配算法进行查询,其中N=pq,匹配公式Retrieval=(ci-cindex)modN=((mi-mindex)+pq(r1-r2))modN;若Retrieval=0,则mi-mindex=0,即当mi=mindex的时候,pq(r1-r2)modN=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;在使用上述公式时,只需向云端上传N,其中N=pq,所以从N是无法得出密钥p的,所以上述公式是安全并可靠的。对根据统计得到的数据进行记录,如表1所示;表1倒排索引表如表1所示,文档名及关键词在云端仍然是加密状态,然而统计得到的文档编号、出现频率和出现的文档数在云端为明文形式。(3)生成文件向量集用户在进行关键词检索时,待检索的文档集其实对应的是文档集的权重向量集,在倒排索引表更新完成以后,根据统计出的关键词词频与逆文档频率,生成文档集对应的权重向量集;本专利技术所使用的权重计算框架是T本文档来自技高网...
一种面向云计算应用的同态加密密文检索方法

【技术保护点】
一种面向云计算应用的同态加密密文检索方法,其特征在于,该方法包括以下步骤:步骤1:在客户端对文档集加密并上传至云端在客户端,用户采用整数全同态加密算法对文档集中的每篇文档进行加密,然后上传至云端保存。(1)加密算法KeyGen:选择一个随机产生的P位的安全大素数作为密钥p,其中p∈[2

【技术特征摘要】
1.一种面向云计算应用的同态加密密文检索方法,其特征在于,该方法包括以下步骤:步骤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=cimodp,得到明文消息M=m1m2m3...Mt,即得到解密后的明文;同态性分析:设有两个明文m1,m2,其对应的密文分别为c1,c2,则c1=m1+2pq+pqr1c2=m2+2pq+pqr2加法同态性分析:c1+c2=(m1+m2)+4pq+pq(r1+r2),因为(c1+c2)modp=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)modp=m1*m2,因此该算法满足乘法同态性。(2)关键词mindex的查询匹配算法a、采用上述加密算法,在客户端对关键词加密,得到对应的密文cindex=mindex+2pq+pqr,并上传到云端;b、云端接收到密文关键词cindex后,采用密文匹配算法进行查询,其中N=pq,匹配公式Retrieval=(ci-cindex)modN=((mi-mindex)+pq(r1-r2))modN;若Retrieval=0,则mi-mindex=0,即当mi=mindex的时候,pq(r1-r2)modN=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...

【专利技术属性】
技术研发人员:拱长青肖芸林娜郭振洲李席广赵亮孟庆杰
申请(专利权)人:沈阳航空航天大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1