CN106934063A - 一种面向云计算应用的同态加密密文检索方法 - Google Patents

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

Info

Publication number
CN106934063A
CN106934063A CN201710199651.1A CN201710199651A CN106934063A CN 106934063 A CN106934063 A CN 106934063A CN 201710199651 A CN201710199651 A CN 201710199651A CN 106934063 A CN106934063 A CN 106934063A
Authority
CN
China
Prior art keywords
ciphertext
document
clouds
keyword
formula
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710199651.1A
Other languages
English (en)
Other versions
CN106934063B (zh
Inventor
拱长青
肖芸
林娜
郭振洲
李席广
赵亮
孟庆杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Aerospace University
Original Assignee
Shenyang Aerospace University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenyang Aerospace University filed Critical Shenyang Aerospace University
Priority to CN201710199651.1A priority Critical patent/CN106934063B/zh
Publication of CN106934063A publication Critical patent/CN106934063A/zh
Application granted granted Critical
Publication of CN106934063B publication Critical patent/CN106934063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种面向云计算应用的同态加密密文检索方法
技术领域:
本发明属于云计算应用技术领域,特别涉及一种面向云计算应用的同态加密密文检索方法。
背景技术:
云计算是一种创新的服务模式,它能够使用户通过互联网随时获得近乎无限的计算能力和丰富多样的信息服务,是分布式计算、并行计算和网格计算的演进。云存储也属于云计算范畴,应用日渐普及。随着云计算的迅速发展,大量敏感信息被集中到云端。为了避免客户的隐私数据泄露,须将隐私数据进行加密处理后存储在云端。当保存在云服务器端的密文数据发展到了一定规模时,对密文数据的有效检索将是一个亟待解决的问题。
现有同态加密密文检索方案中,一般将文档集的预处理等大量工作放置于客户端进行。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=ci mod p,得到明文消息M=m1m2m3...mt,即得到解密后的明文;
同态性分析:设有两个明文m1,m2,其对应的密文分别为c1,c2,则
c1=m1+2pq+pqr1
c2=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;在使用上述公式时,只需向云端上传N,其中N=pq,所以从N是无法得出密钥p的,所以上述公式是安全并可靠的。
对根据统计得到的数据进行记录,如表1所示;
表1倒排索引表
如表1所示,文档名及关键词在云端仍然是加密状态,然而统计得到的文档编号、出现频率和出现的文档数在云端为明文形式。
(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的。
本发明的有益效果:
在云计算密文检索应用领域,基于TF-IDF向量检索模型的同态加密密文检索方法较有优势,现有方案多是将文档集的预处理等大量工作放置于客户端进行处理,客户端处理大量的工作,云端只处理少量工作,这样做的缺点是增加了客户端的压力,并未利用云端本身强大的计算能力。
本发明将预处理阶段放到云端来进行实施,与将预处理阶段放到客户端进行处理的方案进行对比,这样处理的好处是:减轻了客户端的计算压力,能够充分利用云计算强大的计算能力及存储能力来对数据进行操作,提高检索工作效率。
本发明的创新点可总结如下:
(1)将文档集的预处理等大量工作尽量迁移到云端进行,文档的TF-IDF权重向量都是在云端计算得到;
(2)云端基于同态加密后的文档,可以对密文进行同态性操作和计算,构建出每篇文档的TF-IDF权重向量,并以明文方式存在;
(3)在进行密文检索时,客户端将检索项加密并上传到云端,云端对密文检索项进行操作也可得到相应的TF-IDF权重向量明文,进而计算出检索项与文档集中各个文档的相似度并得到明文排序结果。
附图说明
图1为本发明所提出的方法的总体步骤的流程图;
图2为本发明中步骤1、2对文档加密上传及预处理操作具体的流程图;
图3为本发明中步骤1、2、3的操作具体流程图;
图4为本发明中步骤4文档下载的具体流程图。
具体实施方式:
本发明提出一种面向云计算的同态密文检索方法,将文档集的预处理等大量工作移到云端来进行,云端对加密后的文档实施预处理,能够充分利用云端的计算能力,进而实现高效的同态密文检索。结合附图及实施例详细说明如下。
本发明提出的方法流程如图1所示,包括以下步骤:
步骤1:在客户端对文档集加密并上传至云端
(1)加密算法
随机选择一个密钥p=131;
q和随机数r是在规定的时间间隔内随机选取的。
选择四篇文档作为文档集,每篇文档中随机选取7个关键词,文档内容具体如下:
test1={I happiness on the others my hands}
test2={I was father wind happiness I is}
test3={my father is a player player birthday}
test4={happiness father others was of my others}
对这四篇文档分别进行加密,得到的密文文档具体如下:
test1={dc47e285afe8b229b2463e12cfe69f1049ea107b84f51c034c4653ca01142196c9bd11a559d61541049eb2e90112cf2bc6f11300d8a78d53e129fb50cb3f56320459fe510dec9ba2a7}
test2={56e1d11107f444633216d92f822262c9ad76c9b1444676c9bbfb50afb4fc6981447609adc10888653213df64837ddf4d9598252359fea4d95edf6214d9542b75d}
test3={4d9586fb6512cf29ba295980a7ccc6ed2fb1e59902540d3e12fb70f21049ec114217285a811d70d123a3f13327b285b7e8b2d8ba081173c7954e3af8bb70f37903e94f0211a56534c3b320756e3511d70d}
test4={f8971173af126bedb3f5e53c9a123a48d61543af8c412d2f895df6394a7bc4d95344467dc4a759fe6444764d95363abdc4a7285ba8ebc11300c7c6ff2b759f51b3c692daaa7ebd4464761959fdfa15811300d872d02}
将加密后的文档集以密文形式上传到云端进行存储。
步骤2:在云端对密文文档集进行预处理操作
(1)分词过滤
英文一般是通过空格来分割词条,分词后需要剔除对文档集的检索没有任何意义的关键词,我们称为停用词。这里使用StandardAnalyzer分析器,而且使用了不带参数的构造器StandardAnalyzer(),在StandardAnalyzer类的这个不带参数的构造器中,指定了一个过滤字符数组STOP_WORDS,首先需要将这个STOP_WORDS进行同态加密算法进行加密上传至云端保存以备用。
本实施例中存在的停用词为{on,the,was,is,a},由于原始文档集在客户端已经进行加密处理了,在加密的情况下进行查找密文停用词需要采用线性匹配的方法进行查找,进行匹配查询的方法如下:
假设云端文档中的密文关键词为tindex,存储在云端的密文停用词为ti,根据公式(3)可以对密文档集的每篇文档的密文关键词进行密文停用词匹配查询,若Retrieval=0,则ti-tindex=0,那么ti=tindex,则证明此关键词tindex为查询到的停用词,并将其删除过滤掉。
最后将所有查询到的密文停用词删除过滤处理之后,生成新的文档集,其中的每一篇文档用dj表示;
(2)建立倒排索引
假设在云端需要统计的密文关键词为cwind={107b965d18369814bd43b},存储在云端密文文档test1={dc47e285afe8b229b2463e12cfe69f1049ea107b84f51c034c4653ca01142196c9bd11a559d61541049eb2e90112cf2bc6f11300d8a78d53e129fb50cb3f56320459fe510dec9ba2a7}中的每个密文关键词标记为ci
则根据公式(6)计算,若Retrieval=0,则ci-cwind=0,那么ci=cwind,则表示在密文文档test1中找到了需要统计的密文关键词cwind,即匹配查询到一个,词频fij记数count记为1,出现的文档数ni表示该统计的密文关键词cwind在文档集中出现的文档数量,经过与四篇密文文档的匹配,最后统计得到该密文关键词cwind的ni=1;
统计得到的数据如表2所示;
表2倒排索引表
如表2所示,文档名及关键词在云端仍然是加密状态,然而统计得到的文档编号、出现频率和出现的文档数在云端为明文形式。
(3)生成文件向量集
根据公式(7)得到:
d1={i=1,happiness=0,others=1,my=0,hands=2,father=0,wind=0,player=0,birthday=0}
d2={i=2,happiness=0,others=0,my=0,hands=0,father=0.6,wind=2,player=0,birthday=0}
d3={i=0,happiness=0,others=0,my=0,hands=0,father=0.3,wind=0,player=4,birthday=2}
d4={i=0,happiness=0,others=2,my=0,hands=0,father=0.3,wind=0,player=0,birthday=0}
根据公式(8)最终得到文档集的权重向量集为:
步骤3:检索过程
例如,查询“father”检索项,可以根据步骤1,2得到其权重向量为最后根据公式(11)计算检索项与文档集的权重向量的相似度,按从大到小的顺序返回给客户端,得到的结果为:
步骤4:文档下载
根据上一步检索可知,文档2和检索项的相似度最高,如选择文档2下载,具体实现流程如下:
待下载文档中输入“test2”,并将其检索文档名在客户端进行同态加密上传至云端,此匹配操作是在云端进行的。
保存在云端的密文文档名集合为{d2fc02540950b013217a7893ebcd83e12110184cc700e27ad4d95f25409d2fbf60331130099c9ad7d2fb1aaa784d95f11a525},待下载的文档名密文为{18d8c3e121129d93222756fb1e},再通过公式(14)可以在云端检索到要下载的文档,若Retrieval=0,则ci-cindex=0,则表示在密文文档中查询到了该密文文档,继而用户可确认进行下载到客户端。
步骤4:下载后的文档解密
客户端接收到下载的密文文档test2={56e1d11107f444633216d92f822262c9ad76c9b1444676c9bb#fb50afb4fc6981447609adc10888653213df64837ddf4d9598252359fea4d95edf6214d9542b75d},然后对其进行解密,解密算法为:
Decrypt(c):计算mi=ci mod p,得到明文消息M=m1m2m3...mt,即得到解密后的明文文档test2={I was father wind happiness I is},即正确下载并解密密文文档。

Claims (1)

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=ci mod p,得到明文消息M=m1m2m3...Mt,即得到解密后的明文;
同态性分析:设有两个明文m1,m2,其对应的密文分别为c1,c2,则
c1=m1+2pq+pqr1
c2=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。
CN201710199651.1A 2017-03-30 2017-03-30 一种面向云计算应用的同态加密密文检索方法 Active CN106934063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710199651.1A CN106934063B (zh) 2017-03-30 2017-03-30 一种面向云计算应用的同态加密密文检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710199651.1A CN106934063B (zh) 2017-03-30 2017-03-30 一种面向云计算应用的同态加密密文检索方法

Publications (2)

Publication Number Publication Date
CN106934063A true CN106934063A (zh) 2017-07-07
CN106934063B CN106934063B (zh) 2020-08-07

Family

ID=59424866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710199651.1A Active CN106934063B (zh) 2017-03-30 2017-03-30 一种面向云计算应用的同态加密密文检索方法

Country Status (1)

Country Link
CN (1) CN106934063B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282328A (zh) * 2018-02-02 2018-07-13 沈阳航空航天大学 一种基于同态加密的密文统计方法
WO2019024838A1 (zh) * 2017-07-31 2019-02-07 腾讯科技(深圳)有限公司 检索项的生成方法及相关装置
CN110309674A (zh) * 2019-07-04 2019-10-08 浙江理工大学 一种基于全同态加密的排序方法
CN110737912A (zh) * 2018-09-26 2020-01-31 杨思琦 一种基于同态加密的论文查重方法
CN111737719A (zh) * 2020-07-17 2020-10-02 支付宝(杭州)信息技术有限公司 保护隐私的文本分类方法及装置
CN117278216A (zh) * 2023-11-23 2023-12-22 三亚学院 一种基于云计算虚拟化与网络存储文件的加密***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120213359A1 (en) * 2011-02-17 2012-08-23 Gradiant Method and apparatus for secure iterative processing
CN105323209A (zh) * 2014-06-05 2016-02-10 江苏博智软件科技有限公司 全同态加密和多重数字水印技术的云数据安全保护方法
CN105610910A (zh) * 2015-12-18 2016-05-25 中南民族大学 面向云存储并基于全同态密码的密文全文检索方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120213359A1 (en) * 2011-02-17 2012-08-23 Gradiant Method and apparatus for secure iterative processing
CN105323209A (zh) * 2014-06-05 2016-02-10 江苏博智软件科技有限公司 全同态加密和多重数字水印技术的云数据安全保护方法
CN105610910A (zh) * 2015-12-18 2016-05-25 中南民族大学 面向云存储并基于全同态密码的密文全文检索方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吕文斌 等: "基于同态加密的密文检索方案研究", 《计算机测量与控制》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024838A1 (zh) * 2017-07-31 2019-02-07 腾讯科技(深圳)有限公司 检索项的生成方法及相关装置
US11416708B2 (en) 2017-07-31 2022-08-16 Tencent Technology (Shenzhen) Company Limited Search item generation method and related device
CN108282328A (zh) * 2018-02-02 2018-07-13 沈阳航空航天大学 一种基于同态加密的密文统计方法
CN108282328B (zh) * 2018-02-02 2021-03-12 沈阳航空航天大学 一种基于同态加密的密文统计方法
CN110737912A (zh) * 2018-09-26 2020-01-31 杨思琦 一种基于同态加密的论文查重方法
CN110309674A (zh) * 2019-07-04 2019-10-08 浙江理工大学 一种基于全同态加密的排序方法
CN110309674B (zh) * 2019-07-04 2021-10-01 浙江理工大学 一种基于全同态加密的排序方法
CN111737719A (zh) * 2020-07-17 2020-10-02 支付宝(杭州)信息技术有限公司 保护隐私的文本分类方法及装置
CN117278216A (zh) * 2023-11-23 2023-12-22 三亚学院 一种基于云计算虚拟化与网络存储文件的加密***
CN117278216B (zh) * 2023-11-23 2024-02-13 三亚学院 一种基于云计算虚拟化与网络存储文件的加密***

Also Published As

Publication number Publication date
CN106934063B (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
CN106934063A (zh) 一种面向云计算应用的同态加密密文检索方法
Kellaris et al. Generic attacks on secure outsourced databases
Cash et al. Leakage-abuse attacks against searchable encryption
US8904171B2 (en) Secure search and retrieval
US20170242924A1 (en) Masking query data access pattern in encrypted data
EP3511845B1 (en) Encrypted message search method, message transmission/reception system, server, terminal and programme
Buyrukbilen et al. Secure similar document detection with simhash
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
CN104468121B (zh) 基于指定服务器的支持多密钥加密的公钥可搜索加密方法
CN107704768A (zh) 一种密文的多关键字分级安全检索方法
Khan et al. Secure ranked fuzzy multi-keyword search over outsourced encrypted cloud data
Kissel et al. Verifiable phrase search over encrypted data secure against a semi-honest-but-curious adversary
CN110737912A (zh) 一种基于同态加密的论文查重方法
CN109213731A (zh) 云环境中基于迭代加密的多关键词密文检索方法
Cui et al. Harnessing encrypted data in cloud for secure and efficient image sharing from mobile devices
Henzinger et al. Private web search with Tiptoe
CN107454059A (zh) 一种云储存环境下基于序列密码的搜索加密方法
Ibrahim et al. Approximate keyword-based search over encrypted cloud data
Moataz et al. Privacy-preserving multiple keyword search on outsourced data in the clouds
Liu et al. Achieving secure and efficient cloud search services: Cross-lingual multi-keyword rank search over encrypted cloud data
Agun et al. Privacy and efficiency tradeoffs for multiword top k search with linear additive rank scoring
Saha et al. Efficient protocols for private database queries
Devi et al. A comparative study on homomorphic encryption algorithms for data security in cloud environment
Gopal et al. Secure similarity based document retrieval system in cloud
Kumari et al. Privacy preserving similarity based text retrieval through blind storage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant