CN108319670A - 基于云计算的可验证的动态排名搜索方法 - Google Patents

基于云计算的可验证的动态排名搜索方法 Download PDF

Info

Publication number
CN108319670A
CN108319670A CN201810063034.3A CN201810063034A CN108319670A CN 108319670 A CN108319670 A CN 108319670A CN 201810063034 A CN201810063034 A CN 201810063034A CN 108319670 A CN108319670 A CN 108319670A
Authority
CN
China
Prior art keywords
encryption
file
ranking
encrypted
keyword
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.)
Withdrawn
Application number
CN201810063034.3A
Other languages
English (en)
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.)
Hunan University
Original Assignee
Hunan 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 Hunan University filed Critical Hunan University
Priority to CN201810063034.3A priority Critical patent/CN108319670A/zh
Publication of CN108319670A publication Critical patent/CN108319670A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于云计算的可验证的动态排名搜索方法,包括:步骤S1:生成加密密钥;步骤S2:生成倒排文件集合和相关程度排名;步骤S3:生成加密索引;步骤S4:生成加密密文;步骤S5:生成加密验证矩阵,保存在本地服务器中;步骤S6:生成加密验证信息,生成搜索令牌,并将加密索引、加密密文、加密验证信息和搜索令牌上传到云端服务器;步骤S7:根据搜索令牌和加密索引,返回加密密文和加密验证信息;步骤S8:根据加密验证信息和加密验证矩阵,验证返回信息的正确性。本发明方法通过本地验证矩阵和云端验证信息对比,避免发生云端数据被篡改的情况,提高了数据的安全性和正确性。同时,通过更新令牌可以动态更新文件排名,方便数据更新操作。

Description

基于云计算的可验证的动态排名搜索方法
技术领域
本发明涉及云计算领域,尤其涉及一种基于云计算的可验证的动态排名搜索方法。
背景技术
大数据已经成为许多领域的热门话题,在这些领域,数据的容量和增长速度需要基于云平台进行处理和分析。由于开放的云环境具有非常有限的用户控制,为了保证安全性,现有的研究建议在外包之前对数据进行加密,并采用可搜索的对称加密(SSE),以促进基于密码的关键词搜索。但是,在现有技术中没有任何SSE结构可以在实现线性搜索的同时保证高效的更新和验证。
同时,现有的SSE方案在执行查询操作时,均返回所有的搜索结果,不适用于从大量文件中检索并返回用户指定查询内容的情况,无法满足用户只对最佳匹配文件感兴趣的应用场景。
为了优化查询结果,Cao等人在论文《Privacy-preserving multi-keywordranked search over encrypted cloud data》中通过应用安全KNN技术对排名结果提出了一个多关键词排名搜索加密方案。Sun等人在论文《Verifiable privacy-preservingmulti-keyword text search in the cloud supporting similarity-based ranking》提出了一种可验证的多关键词搜索方案,搜索结果的正确性可以通过散列链来验证,该方案根据余弦相似度对搜索结果进行排序。在他们的方案中,基于MDB树构建安全索引,服务器需要返回索引的最小子树,以便用户可以在本地执行检索来验证搜索结果的正确性。Zhang等人在论文《Privacy preserving ranked multi-keyword search for multiple dataowners in cloud computing》中的多拥有者模型中开发了隐私保护、排名、多关键词搜索等方案。Chen等人在论文《An efficient privacy-preserving ranked keyword searchmethod》中提出了基于层次聚类索引的加密数据的多关键词排序搜索。他们的方案均采用Merkle哈希树和密码签名来实现可验证性。然而,上述各种现有的方案中,排名均为静态的。而在实际应用中,云端服务器的数据经常需要更新,静态排名无法及时反映出云端数据文件的排名情况,无法向查询用户反馈处于正确排名位置的文件。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于云计算的可验证的动态排名搜索方法,通过将验证矩阵保存在本地服务器,仅向云端服务器传输基于验证矩阵生成的验证信息,从而既保证了数据的可验证性,又降低了通信成本,同时通过云端验证信息与本地验证矩阵的比对,避免了云端服务器数据被篡改的情况,提高了数据的安全性和正确性。
本发明提供了一种基于云计算的可验证的动态排名搜索方法,包括:
步骤S1:本地服务器生成加密密钥;
其中,所述加密密钥至少包括公钥和私钥;
步骤S2:本地服务器根据原始文件集合和预设关键词集合生成倒排文件集合和相关程度排名;
其中,所述倒排文件集合以预设关键词集合为目录,且每个关键词对应一个倒排索引;
所述相关程度排名是指将同一个关键词对应的所有文件根据所述关键词在每个文件中的出现频次排名,关键词在文件中出现频次越高,文件排名越靠前;
步骤S3:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密索引;
步骤S4:本地服务器根据所述加密密钥和所述倒排文件集合生成加密密文;
步骤S5:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密验证矩阵;
其中,所述加密验证矩阵存储在本地服务器中;
步骤S6:本地服务器根据所述加密验证矩阵生成加密验证信息,根据所述加密索引、加密密文生成搜索令牌,并将所述加密索引、加密密文、加密验证信息和搜索令牌上传到云端服务器;
步骤S7:根据云端服务器提供的所述搜索令牌和加密索引,返回用户所需的加密密文和加密验证信息;
其中,所述加密密文为用户指定的处于特定排名位置的文件对应的加密密文;
步骤S8:根据所述加密验证信息和本地服务器中的所述加密验证矩阵,验证云端服务器返回信息的正确性。
在本发明方案中,通过将原始文件集合的索引进行倒排,得到与预设关键词对应的的倒排索引,即获得预设关键词与每个文件之间的对应关系,然后将与同一关键词相关的所有文件进行相关程度排名,即该关键词在该文件中的出现频次越多,该文件排名越靠前,从而获得按照关键词为目录分类并按照相关程度排名的倒排文件集合,由此可以根据关键词来查询某一关键词分类下排名位于特定位置的文件(例如前K项文件,即TOP-K文件)内容。
为了保证上传到云端服务器的数据不被篡改,同时也为了提高云端服务器返回文件的正确性,本发明方案根据关键词集合和文件的相关程度排名构建了验证矩阵,该验证矩阵记录了关键词对应的文件的相关程度排名情况,且该验证矩阵并不发送到云端,而仅仅保存在本地服务器中。同时,根据该验证矩阵中的信息,生成与每个文件对应的与关键词相关的加密验证信息,并将该加密验证信息与加密索引、加密密文集合一起发送到云端服务器。当用户向云端服务器查询文件时,同时向用户返回与文件对应的加密验证信息,此时,用户只需向本地服务器获取验证矩阵信息,然后与该加密验证信息相比对,即可知道其从云端服务器获取的文件信息是否正确有效,从而极大地提高了本发明方案中数据的安全性。
进一步的,本发明方案还包括:
步骤S9:根据更新文件和对应的关键词、加密验证信息以及所述更新文件对应的相关程度排名生成更新令牌,并发送给云端服务器;
步骤S10:云端服务器根据所述更新令牌,更新所述加密索引、加密密文集合、加密验证信息集合。
为了方便云端数据库中保存的文件集合的动态更新,本发明方案还提供了用于更新文件的更新令牌。该更新令牌包含了新增(或删除)文件所对应的关键词、该文件在相关程度排名中所处的位置以及该文件在验证矩阵中对应的单元格信息和加密验证信息。云端服务器根据文件所对应的关键词和该文件在相关程度排名中所处的位置以及加密验证信息更新云端的加密索引、加密密文集合和加密验证信息,同时根据更新令牌中的该文件在验证矩阵中对应的单元格信息更新本地服务器的验证矩阵。
进一步的,所述步骤S5包括:
步骤S51:以所述关键词集合中关键词个数为行数,以所述相关程度排名中的最大排名数为列数构建所述加密验证矩阵;
步骤S52:根据关键词和每个文件的相关程度排名及其前后相邻文件的相关程度排名计算所述加密验证矩阵中每个单元格的值,并将计算得到的值按所述加密密钥加密后存储到对应的单元格中。
在本发明方案中,以关键词集合中的关键词个数为行数,以相关程度排名中的最大排名数为列数构建验证矩阵。当某些关键词对应的排名数达不到最大排名数时,该关键词对应的空白单元格用随机字符串填充。在验证矩阵的每一个单元格中均保存有该文件的当前排名信息、该文件的前一排名位置信息和该文件的后一排名位置信息,从而建立起前后文件之间的联系,用于校验云端数据是否被篡改。
进一步的,所述加密验证信息包括:
根据所述加密验证矩阵中的关键词和文件的相关程度排名生成第一验证符和根据所述加密验证矩阵中文件所在的加密密文集合的文件个数生成第二验证符。
本方案提供的验证信息至少包含两个验证符,即用于验证文件是否被篡改的第一验证符,和用于验证文件个数是否完整的第二验证符。当查询用户获取的验证信息中的第一验证符和第二验证符均与验证矩阵中的信息相匹配时,才能确定查询用户获取的信息是正确、完整的。为了进一步提升安全性,该验证信息均经过加密处理再保存到云端服务器中。
有益效果
本发明提供的一种基于云计算的可验证的动态排名搜索方法,通过将验证矩阵保存在本地服务器,仅向云端服务器传输基于验证矩阵生成的验证信息,从而既保证了数据的可验证性,又降低了通信成本,同时通过云端验证信息与本地验证矩阵的对比,避免了云端服务器数据被篡改的情况,提高了数据的安全性和正确性。同时,通过更新令牌可以动态更新文件排名,方便数据更新操作。
附图说明
图1是本发明实施例提供的一种基于云计算的可验证的动态排名搜索方法的步骤示意图;
图2是本发明实施例提供的一种基于云计算的可验证的动态排名搜索方法的具体示例的示意图;
图3是本发明实施例提供的具体示例的流程示意图;
图4是本发明实施例提供的具体示例的关键词中文件排名信息图;
图5是本发明实施例提供的搜索数组数据结构图;
图6是本发明实施例提供的搜索表数据结构图;
图7是本发明实施例提供的加密密文数据结构图;
图8是本发明实施例提供的更新后的排名链表数据结构图;
图9是本发明实施例提供的更新后的搜索数组数据结构图;
图10是本发明实施例提供的更新后的搜索表数据结构图。
具体实施方式
为了方便更好地理解本发明方案的内容,下面结合具体实施例详细阐述本发明方案的内容。
图1是本发明实施例提供的一种基于云计算的可验证的动态排名搜索方法的步骤示意图,如图所示,本发明方法包括:步骤S1:本地服务器生成加密密钥;其中,所述加密密钥至少包括公钥和私钥;步骤S2:本地服务器根据原始文件集合和预设关键词集合生成倒排文件集合和相关程度排名;其中,所述倒排文件集合以预设关键词集合为目录,且每个关键词对应一个倒排索引;所述相关程度排名是指将同一个关键词对应的所有文件根据所述关键词在每个文件中的出现频次排名,关键词在文件中出现频次越高,文件排名越靠前;步骤S3:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密索引;步骤S4:本地服务器根据所述加密密钥和所述倒排文件集合生成加密密文;步骤S5:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密验证矩阵;其中,所述加密验证矩阵存储在本地服务器中;步骤S6:本地服务器根据所述加密验证矩阵生成加密验证信息,根据所述加密索引、加密密文生成搜索令牌,并将所述加密索引、加密密文、加密验证信息和搜索令牌上传到云端服务器;步骤S7:根据云端服务器提供的所述搜索令牌和加密索引,返回用户所需的加密密文和加密验证信息;其中,所述加密密文为用户指定的处于特定排名位置的文件对应的加密密文;步骤S8:根据所述加密验证信息和本地服务器中的所述加密验证矩阵,验证云端服务器返回信息的正确性。
为了方便云端数据库中保存的文件集合的动态更新,本发明方法还包括:步骤S9:根据更新文件和对应的关键词、加密验证信息以及所述更新文件对应的相关程度排名生成更新令牌,并发送给云端服务器;步骤S10:云端服务器根据所述更新令牌,更新所述加密索引、加密密文集合、加密验证信息集合。
其中,步骤S5包括:步骤S51:以所述关键词集合中关键词个数为行数,以所述相关程度排名中的最大排名数为列数构建所述加密验证矩阵;步骤S52:根据关键词和每个文件的相关程度排名及其前后相邻文件的相关程度排名计算所述加密验证矩阵中每个单元格的值,并将计算得到的值按所述加密密钥加密后存储到对应的单元格中。
其中,所述加密验证信息包括:根据所述加密验证矩阵中的关键词和文件的相关程度排名生成第一验证符和根据所述加密验证矩阵中文件所在的加密密文集合的文件个数生成第二验证符。
下面结合具体例子(如图2所示)阐述本发明方案的内容,在本例子中,本地服务器为数据所有者(即Data owner):
D={D1,...,Dj...,Dn}表示n个文件的集合,对应的密文表示为C={(1,C1),...,(1,Cn)},其中Dj表示集合D中的第j个文件,j的范围是[1,n];
W={w1,...,wi,...,wn}表示关键词的集合,其中,wi表示第i个关键词,i的范围是[1,m];
表示关键词wi的标示符的集合;
表示关键词包含的文件的标示符的集合;
I={Ts,As}表示由搜索表Ts和搜索链表As组成的加密索引;
V表示具有m×n个单元格的验证矩阵;
TKw表示关键词w生成的搜索令牌;
TK*(D)表示文件生成的添加/删除令牌;
Cw,K表示关键词w的TOP-K搜索结果。
对于加密索引I={Ts,As}而言,每个关键词w∈W,#w个节点的关键词链表Lw被随机存储在搜索数组As中,并且指向Lw的头的指针是被含在搜索表Ts中。具体来说,搜索数组As是由#As大小单元组成的数组,As[i]表示存储在位置i的值的。搜索表Ts是存储#T个键值对的字典表。如果在Ts中存在一对(K,V),则V是与Ts中的键值K相关联,键值K表示一个搜索令牌。此外,Ts[K]=V表示将键值K处的V存储在Ts中。此处构造的搜索表大小是#Ts=m+1,其中前m条对应于关键词集合W中的关键词,搜索表中最后的一条指向As中未使用的单元。设置了#As=|C|/8+z,其中|C|是密文集的大小,z∈N是未使用单元的大小。与现有技术中方案不同,本方案的文件标识符随机出现在ID(wi)中,本发明方案要求ID(wi)具有以下排名属性:
令Ri,j表示在关键词wi∈W中的文件Dj∈D的排名,并且令Li,j表示关键词集合ID(wi)中的第j位。对于j,k∈ID(wi),若Dj的排名在Dk的排名之前(即Ri,j<Ri,k),则j在k之前(即Li,j<Li,k)。
给定关键词集合idj是的rank-j文件的标识符,其中j∈[1,#w]。因此,对于每个关键词wi∈W,排序链表Lw被定义如下:
Lw由#w个节点(N1,...,N#w)组成,每个节点定义为Nj=<idj,addrs(Nj+1)>,其中idj∈ID(wi)是关键词wi下排名为第j个文件的标识符,addrs(Nj+1)是搜索数组As中节点Nj+1的地址。在特殊情况下,N#w=<id#w,0>。
对于验证矩阵,令H:{0,1}*→{0,1}k是抗冲突的哈希散列函数,其中k是用于系统的参数。由于关键词最多包含n个文件,可验证的矩阵V是m×n矩阵,其中行i∈[1,m]对应于关键词wi∈W,列j∈[1,n]对应于文件总数D。行i和关键词w之间的关系由搜索表Ts的键值对决定。
令V[i][j]表示验证矩阵中第i行和第j列,并且令Ri,j为在V[i][j]存储的随机串,有:
其中V[i][j]记录关键词w的排名信息rank-(j-1),rank-j和rank-(j+1)。V[i][1]=H(0,id1,id2)和V[i][#w]=H(id#w-1,id#w,0)。对于j∈[#w+1,n],V[i][j]填充有随机字符串。
在本例中(如图3流程示意图所示),设整个系统通过参数k来确定。私钥加密模型SKE=(Gen,Enc,Dec)为对称密钥加密方案,其中Gen是密钥生成算法,Enc是加密算法,Dec是解密算法。令F={f:{0,1}3k→{0,1}k}是两个通用的函数族,令H1:{0,1}*→{0,1}*是随机函数,令H:{0,1}3k→{0,1}k是抗冲突的散列函数。令F:{0,1}*×{0,1}*→{0,1}k,G:{0,1}k×{0,1}*→{0,1}*,P:{0,1}k×{0,1}*→{0,1}k和S:{0,1}k×{0,1}*→{0,1}k是伪随机函数(PRF),上述各个函数均为加密操作所采用的函数。
初始阶段
Setup(1k)→(PK,SK):生成密钥阶段。
用户随机选择四个k位字符串k1,k2,k3,k4作为PRF的初始密钥,运行SKE.Gen(1k)生成ke和(N=pq,g),其中,g表示RSA幂运算的底数,pq是组成大素数N的质数。令y的分解函数E(y)为随机素数x,使得f(x)=y,即x的幂运算得到y,从而得到密钥PK=(N,g,f)和SK=(p,q,ke,k1,k2,k3,k4),其中PK为公钥上传云端服务器,SK为私钥保存在本地服务器中。
存储阶段
生成倒排索引。
获得原始文件集合后,根据预设关键词集合生成目录;针对每一个关键词从原始文件集合中筛选出包含该关键词的所有文件;将包含同一关键词的所有文件根据该关键词在文件中出现的频次进行排名,频次越高、文件排名越靠前,从而得到相关程度排名;然后根据关键词与排名后文件的对应关系生成倒排索引(即以关键词检索文件的索引),最后以预设关键词集合中的关键词为目录生成倒排文件集合。
例如,如下表所示,原始文件集合为正向索引(即文件-关键词索引)。
文件 关键词
CF1 CW1
CF2 CW1
CF3 CW2
CF4 CW3
CF5 CW4
CF6 CW2
通过倒排处理后,得到倒排文件集合(如下表所示),该文件集合为倒排索引(即关键词-文件索引)。
关键词 文件
CW1 CF1、CF2
CW2 CF3、CF6
CW3 CF4
CW4 CF5
EncIndex(SK,D,W)→I:生成加密索引。
以初始化阶段的私钥SK,加密文件/关键词对,生成有排名信息的加密索引I,加密索引I包含两部分信息I=(Ts,As),Ts搜索表和As搜索数组,具体Ts,As生成步骤如下:
构建大小为|C|/8+z的数组,Ts是大小为m+1的搜索字典表。对于每个关键词w∈W,执行如下操作:
(1)创建一个包含中#w个位置排名列表Lw随机存储在搜索数组As。对于i∈[1,#w],将每个节点Ni设置为<idi,addrs(Ni+1)>,并且将使用式(2)加密:
其中ri是k位随机串,即为上文提到的随机函数H1:{0,1}*→{0,1}*即为上文提到的伪随机函数P:{0,1}k×{0,1}*→{0,1}k,k3即上文提到的用作密钥的k位字符串。
(2)设置搜索表Ts中存储Lw头的地址:
其中,即为上文提到的伪随机函数F:{0,1}*×{0,1}*→{0,1}k即上文提到的伪随机函数G:{0,1}k×{0,1}*→{0,1}*,k1和k2均为上文提到的用作密钥的k位字符串。
让free表示不在W中的关键词。用户通过在As中随机选择z∈N个未使用的单元格来创建未加密的空闲链表Lfree。F1,...,Fz是As中的空闲节点。对于1≤i≤z,设置:As[addrs(Fi)]=<0,addrs(Fi-1)>,其中addrs(F0)=NULL。然后设置Ts[free]=addrs(Fz)。最后,输出加密索引I=(Ts,As)。
具体而言,以3个关键词,4个文件为例,关键词中文件的排名信息如图4所示;将排名链表Lw按EnIndex算法随机存入As搜索数组,As具体如图5所示;在As搜索数组中,每个关键词的头结点存入Ts搜索表如图6所示。
EndFile(D,SK)→C:生成加密密文。
对于每个文件Di∈D,通过运行SKE.Enc(ke,Di)生成密文ci。密文集C={(1,C1),...,(1,Cn)}。具体而言,4个文件加密生成的密文如图7。
AccGen(PK,SK,D,W)→(V,A):生成验证矩阵。
设V为m×n矩阵;对于每个关键词w∈W,通过私钥SK加密的洗牌运算来定位验证矩阵V中的对应的行,并且通过计算来加密验证矩阵中的每个非随机值,其中,即为上文提到的伪随机函数S:{0,1}k×{0,1}*→{0,1}k,k4为上文提到的用作密钥的k位字符串。结合上述实例,4个文件,5个关键词的验证矩阵如下所示:
然后,用公式(4)(5)计算A=(Ac,AI)并在本地存储,其中Ac是每个文件哈希值的RSA验证信息,AI是每个关键词和验证矩阵RSA验证信息,A是验证信息:
例如,当关键词m=3,文件n=4计算并保存在本地服务器中。
搜索阶段
(1)在初始阶段工作完成以后,为了获取关键词W下的TOP-K个文件,首先生成搜索令牌,用私钥SK加密关键词。
SrcToken(w,SK)→TKw
用密钥k1,k2,k3加密关键词W,生成搜索令牌其中,τ1是指用密钥k1加密的查询关键词τ2是指用密钥k2加密的查询关键词τ3是指用密钥k3加密的查询关键词
具体而言,例如要检索包含关键词w2的TOP-1个文件,用户将向CSP(即云端服务器)发送其中对于
(2)发送搜索令牌到CSP,由云服务器返回对应的TOP-K文件及验证信息。
Search(TKw,K,I)→Cw,K:CSP收到搜索令牌时,CSP定位Ts1],如果τ1不在Ts,则返回空值。否则,计算以恢复指向Lw头的指针。考虑到As1]=(v1,r1),通过公式(6)计算来恢复搜索数组As中的对应关键词下的第一个节点N1,也是排第一位的文件信息:
对于2≤i≤K+1,节点Ni将如上所述被查找。令ID(w,K)={id1,...,idk}是包含关键词w的TOP-K个文件的标识符。返回的密文被设置为如果Cw,K中有K'文件(K'标记为删除文件),则TOP-K查询将被扩展到TOP-(K+K')查询。
例如,搜索令牌中
CSP定位并通过计算来找到包含As中的关键词w2的第一个节点的地址。然后,CSP定位As[4],并计算来获得<4,3>,其中4是rank-1文件的标识符,3是关键词w2的rank-2文件的在As地址。以同样的方式,CSP将得到As中第二个节点<3,0>,其中3是rank-2文件的标识符,0表示D3是包含关键词w2的最后一个文件。返回的密文是Cw,K={3,{1,4,c4}}。
查询得到对应的Top-k文件之后,有CSP计算部分验证信息:
GenProof(TKw,PK,C,V)→∏:CSP计算验证信息∏={πcI,1I,2}其中,验证信息包含了用于验证文件集合c完整性的πc、根据查询关键词对应的文件集合中除开目标文件以外的其他文件的排名信息生成的验证信息πI,1和根据文件集合中除开查询关键词以外的其他关键词对应文件的排名信息生成的验证信息πI,2,通过以下公式:
式中,g是RSA加密运算的底数,i表示文件个数,N表示排名的最大值,ci表示密文,j表示矩阵中的排名。
例如,根据公式(7)CSP计算验证部分信息∏={πcI,1I,2}如下:
πI,1=∏j=1,2,3prime(H(3,V[3][j]))
返回给查询用户的信息是
验证阶段
根据搜索阶段返回的结果,用户本地验证返回结果的正确性,具体算法:
Verify(PK,SK,Cw,K,∏,A)→{0,1}:搜索阶段返回的TOP-K文件集Cw,K,用户首先计算TOP-K查询返回文件的加密信息 被包含在Cw,K中,然后根据等式(8)检查文件个数的完整性:
然后,用户根据Cw,K重建接着在j=1,2,3,...,K范围内,用户计算出zj并且以等式(9)检查排名信息的完整性:
如果(8)(9)成立的,验证结果输出1,否则输出0;
通过SKE.Dec(ke,C)从Cw,K解密每个密文。
例如,用户计算x=prime(H(4,H(c4)),并检查是否成立。然后重构计算z=prime(H(3,V[3][1])),和检查是否成立。
更新阶段
UpdToken(SK,D)→TK*(D):要添加文件Dn+1,首先生成更新令牌TK*(D),对于每个具有idi∈ID(Dn+1)的关键词执行以下步骤:
(1)确定Dn+1的排名,表示为J,然后计算βi=(βi[1],βi[2],βi[3],βi[4]),βi[1]表示关键字对应的行,βi[2]表示对应关键词验证矩阵的行第J-1单元格内容的更新,βi[3]表示对应关键词验证矩阵的行第J单元格内容的更新,βi[3]表示对应关键词验证矩阵的行第J+1单元格内容的更新:
βi[3]=<J,V'[βi[1]][J]>,βi[4]=<J+1,V'[βi[1]][J+1]>,
其中可以计算V'作为更新的可验证矩阵:
其中是原始可验证矩阵V中的关键词的rank-j文件的标识符,其可以通过CSP执行TOP-K搜索来获得。
(2)计算其中ri是随机字符串,idi是第i个关键词的标示符。最后,生成更新令牌TK*(D)=TKadd(D)={(n+1,cn+1),ζ,τα},其中ζ=(R1,n+1,...,Rm,n+1)是K-bit(K位)的随机字符串,τα是新加文件在每个关键词下的排名信息且 是新加文件在验证矩阵中的位置信息。
实现删除Di文件,用户要首先生成更新令牌TK*(D)=TKdel(D)=(i,delete),并且发送到CSP。
AccUpdate(PK,SK,TK*(D),Ac,AI)→(Ac',AI'):如果TK*(D)=TKadd(D),需通过式(10)更新Ac
对应文件Di包含的关键词,也需要更新验证信息,每个被包含的关键词需计算:
式中J是文件在每个关键词中的排名。然后,更新AI
式中是一个随机字符串。
如果TK*(D)=TKdel(D),用户首先要以SKE.Enc(ke,delete)和SKE.Enc(ke,ci)生成密文c'和ci。然后计算x=prime(H(i,H(ci))),x'=prime(H(i,H(c'))),和d=x’/xmod(p-1)(q-1),最后更新Ac=A'c=(Ac)d,其中,x=prime(H(i,H(ci)))是原密文信息,x'=prime(H(i,H(c')))是新加密文信息,(p-1)(q-1)组成前文大素数N的pq。
Updata(I,C,V,TK*)→(I',C',V'):如果更新令牌TK*(D)=TKadd(D)=(i,delete),CSP将以“delete”代替ci文件,否则,如果TK*(D)=TKadd(D)={(n+1,cn+1),ζ,τvα},CSP首先将添加验证矩阵V的最后一栏ζ,并且添加(n+1,cn+1)到密文集C将密文集更新。从1≤i≤#Dn+1,CSP的也需要做如下更新:
(1)第一步,通过计算φ←Ts[free]找到As搜索链表的最后一个free节点,并且通过(0,φ-1)←As[φ]找到下一个free节点φ-1,然后,更新搜索表Ts[free]=φ-1,其中,φ表示As搜索链表的最后一个free节点,既没有用到的节点。
(2)第二步,通过计算找到第一个节点N1。然后,在搜索阶段得到搜索链表的{N2,...,NJ},其中的J是文件Dn+1的排名。
(3)第三步让αJ表示搜索链表中节点J的地址addrs(NJ),存储新的节点的位信息φ,计算如果AsJ-1]=(v,r),计算
(4)第四步,如果J=1,设置
(5)第五步,对于j∈[J+1,n],它将V[βi[1]][j]向后移动一列。然后,用βi[2],βi[3],βi[4]中的取代V[βi[1]][J-1],V[βi[1]][J]和V[βi[1]][J+1]。
例如,假设用户想将文件D5添加到服务器,其中D5是关键词w2的rank-2文件,关键词排名链表如图8;更新的搜索数组As如图9所示;更新的搜索表Ts如图10所示;
更新密文及验证矩阵:通过运行EncFile算法生成密文c5,并选择三个随机字符串ζ=(R1,5,R2,5,R3,5)。然后,计算τv为:
β[1]=3,
此外,计算τα加文新文件后的验证矩阵如下所示:
更新本地服务器的本地验证信息:计算更新
综上所述,本发明提供的方法,通过将验证矩阵保存在本地服务器,仅向云端服务器传输基于验证矩阵生成的验证信息,从而既保证了数据的可验证性,又降低了通信成本,同时通过云端验证信息与本地验证矩阵的对比,避免了云端服务器数据被篡改的情况,提高了数据的安全性和正确性。同时,通过更新令牌可以动态更新文件排名,方便数据更新操作。
以上所述仅为本发明的实施例而已,并不用以限制本发明,凡在本发明精神和原则之内,所作任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于云计算的可验证的动态排名搜索方法,其特征在于,包括:
步骤S1:本地服务器生成加密密钥;
其中,所述加密密钥至少包括公钥和私钥;
步骤S2:本地服务器根据原始文件集合和预设关键词集合生成倒排文件集合和相关程度排名;
其中,所述倒排文件集合以预设关键词集合为目录,且每个关键词对应一个倒排索引;
所述相关程度排名是指将同一个关键词对应的所有文件根据所述关键词在每个文件中的出现频次排名,关键词在文件中出现频次越高,文件排名越靠前;
步骤S3:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密索引;
步骤S4:本地服务器根据所述加密密钥和所述倒排文件集合生成加密密文;
步骤S5:本地服务器根据所述加密密钥、所述倒排文件集合和相关程度排名生成加密验证矩阵;
其中,所述加密验证矩阵存储在本地服务器中;
步骤S6:本地服务器根据所述加密验证矩阵生成加密验证信息,根据所述加密索引、加密密文生成搜索令牌,并将所述加密索引、加密密文、加密验证信息和搜索令牌上传到云端服务器;
步骤S7:根据云端服务器提供的所述搜索令牌和加密索引,返回用户所需的加密密文和加密验证信息;
其中,所述加密密文为用户指定的处于特定排名位置的文件对应的加密密文;
步骤S8:根据所述加密验证信息和本地服务器中的所述加密验证矩阵,验证云端服务器返回信息的正确性。
2.根据权利要求1所述的方法,其特征在于,包括:
步骤S9:根据更新文件和对应的关键词、加密验证信息以及所述更新文件对应的相关程度排名生成更新令牌,并发送给云端服务器;
步骤S10:云端服务器根据所述更新令牌,更新所述加密索引、加密密文集合、加密验证信息集合。
3.根据权利要求1所述的方法,其特征在于,所述步骤S5包括:
步骤S51:以所述关键词集合中关键词个数为行数,以所述相关程度排名中的最大排名数为列数构建所述加密验证矩阵;
步骤S52:根据关键词和每个文件的相关程度排名及其前后相邻文件的相关程度排名计算所述加密验证矩阵中每个单元格的值,并将计算得到的值按所述加密密钥加密后存储到对应的单元格中。
4.根据权利要求1所述的方法,其特征在于,所述加密验证信息包括:
根据所述加密验证矩阵中的关键词和文件的相关程度排名生成第一验证符和根据所述加密验证矩阵中文件所在的加密密文集合的文件个数生成第二验证符。
CN201810063034.3A 2018-01-23 2018-01-23 基于云计算的可验证的动态排名搜索方法 Withdrawn CN108319670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810063034.3A CN108319670A (zh) 2018-01-23 2018-01-23 基于云计算的可验证的动态排名搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810063034.3A CN108319670A (zh) 2018-01-23 2018-01-23 基于云计算的可验证的动态排名搜索方法

Publications (1)

Publication Number Publication Date
CN108319670A true CN108319670A (zh) 2018-07-24

Family

ID=62888045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810063034.3A Withdrawn CN108319670A (zh) 2018-01-23 2018-01-23 基于云计算的可验证的动态排名搜索方法

Country Status (1)

Country Link
CN (1) CN108319670A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859425A (zh) * 2020-07-21 2020-10-30 西南交通大学 一种基于属性的通配符可搜索加密方法
CN115225260A (zh) * 2022-05-20 2022-10-21 湖南大学 一种动态可搜索加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012112833A2 (en) * 2011-02-17 2012-08-23 Taasera, Inc. System and method for application attestation
CN103064931A (zh) * 2012-12-21 2013-04-24 清华大学 可验证的隐私数据比较与排名查询方法
CN103607405A (zh) * 2013-11-27 2014-02-26 东北大学 一种面向云存储的密文搜索认证方法
US20140317706A1 (en) * 2005-12-08 2014-10-23 At&T Intellectual Property I, L.P. Digital social network trust propagation
CN105592100A (zh) * 2016-01-26 2016-05-18 西安电子科技大学 一种基于属性加密的政务云访问控制方法
CN106487763A (zh) * 2015-08-31 2017-03-08 腾讯科技(深圳)有限公司 一种基于云计算平台的数据访问方法及用户终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317706A1 (en) * 2005-12-08 2014-10-23 At&T Intellectual Property I, L.P. Digital social network trust propagation
WO2012112833A2 (en) * 2011-02-17 2012-08-23 Taasera, Inc. System and method for application attestation
CN103064931A (zh) * 2012-12-21 2013-04-24 清华大学 可验证的隐私数据比较与排名查询方法
CN103607405A (zh) * 2013-11-27 2014-02-26 东北大学 一种面向云存储的密文搜索认证方法
CN106487763A (zh) * 2015-08-31 2017-03-08 腾讯科技(深圳)有限公司 一种基于云计算平台的数据访问方法及用户终端
CN105592100A (zh) * 2016-01-26 2016-05-18 西安电子科技大学 一种基于属性加密的政务云访问控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIN LIU等: "Verifiable Ranked Search Over Dynamic Encrypted Data in Cloud Computing", 《IEEE/ACM INTERNATIONAL SYMPOSIUM ON QUALITY OF SERVICE》 *
XIAOHONG NIE等: "Dynamic Verifiable Search Over Encrypted Data in Untrusted Clouds", 《INTERNATIONAL CONFERENCE ON ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859425A (zh) * 2020-07-21 2020-10-30 西南交通大学 一种基于属性的通配符可搜索加密方法
CN115225260A (zh) * 2022-05-20 2022-10-21 湖南大学 一种动态可搜索加密方法
CN115225260B (zh) * 2022-05-20 2024-04-12 湖南大学 一种动态可搜索加密方法

Similar Documents

Publication Publication Date Title
US11537626B2 (en) Full-text fuzzy search method for similar-form Chinese characters in ciphertext domain
CN108712366B (zh) 云环境中支持词形词义模糊检索的可搜索加密方法及系统
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
CN105681280A (zh) 一种云环境中基于中文的可搜索加密方法
CN103927340B (zh) 一种密文检索方法
CN106980796B (zh) 云环境下基于mdb+树的多域连接关键词的搜索方法
CN109088719B (zh) 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN115438230A (zh) 安全高效的动态加密云数据多维范围查询方法
CN111859421B (zh) 一种基于词向量的多关键字密文存储、检索方法及系统
CN116579001A (zh) 一种基于区块链的多关键字可搜索加密方法
Wang et al. An efficient and privacy-preserving range query over encrypted cloud data
Mittal et al. Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data
CN108319670A (zh) 基于云计算的可验证的动态排名搜索方法
CN108650268B (zh) 一种实现多级访问的可搜索加密方法及系统
Wang et al. Enabling efficient approximate nearest neighbor search for outsourced database in cloud computing
CN117951730A (zh) 一种基于哈希索引的云端安全可搜索加密方法
CN108549701A (zh) 云环境加密外包数据语义扩展搜索方法及系统
CN115495792B (zh) 一种具有隐私保护的模糊关键词可搜索加密方法和系统
CN114528370B (zh) 动态多关键字模糊排序搜索方法及系统
CN112328626B (zh) 面向云环境的支持模糊关键词排序的可搜索加密方法
Zhao et al. Privacy-preserving personalized search over encrypted cloud data supporting multi-keyword ranking
CN109582818B (zh) 一种基于可搜索加密的曲库云检索方法
Xue et al. Cuckoo-filter based privacy-aware search over encrypted cloud data
Feng et al. Research on privacy preserving of searchable encryption

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20180724