CN111026788A - 一种混合云中基于同态加密的多关键词密文排序检索方法 - Google Patents

一种混合云中基于同态加密的多关键词密文排序检索方法 Download PDF

Info

Publication number
CN111026788A
CN111026788A CN201911067597.0A CN201911067597A CN111026788A CN 111026788 A CN111026788 A CN 111026788A CN 201911067597 A CN201911067597 A CN 201911067597A CN 111026788 A CN111026788 A CN 111026788A
Authority
CN
China
Prior art keywords
cloud server
index
vector
data
public
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
CN201911067597.0A
Other languages
English (en)
Other versions
CN111026788B (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.)
Wuhan University of Science and Engineering WUSE
Original Assignee
Wuhan University of Science and Engineering WUSE
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 Wuhan University of Science and Engineering WUSE filed Critical Wuhan University of Science and Engineering WUSE
Priority to CN201911067597.0A priority Critical patent/CN111026788B/zh
Publication of CN111026788A publication Critical patent/CN111026788A/zh
Application granted granted Critical
Publication of CN111026788B publication Critical patent/CN111026788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed 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
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种混合云中基于同态加密的多关键词密文排序检索方法,数据拥有者对文件集加密后发送给公有云服务器,然后与可信私有云服务器交互获得公共词典,更新公共词典并对文件集生成明文索引发送给私有云服务器;私有云服务器构建动态权重模型计算数据拥有者的加权权重并生成加权索引,然后构建二叉索引树并使用同态加密算法对索引树加密得到安全索引,将安全索引发送给公有云服务器。私有云服务器根据数据使用者的查询数据生成查询向量,并将查询向量扩展成陷门作为检索请求发送到公有云服务器;公有云服务器接收到陷门后在安全索引中检索,将排名靠前的加密文件下载链接列表返回给数据使用者。本发明具有较高的检索效率和准确率。

Description

一种混合云中基于同态加密的多关键词密文排序检索方法
技术领域
本发明属于云计算和信息检索技术领域,具体涉及一种混合云中基于同态加密的多关键词密文排序检索方法。
背景技术
随着云计算的发展,越来越多的个人和企业将大量数据和应用外包给云服务器,从而获得价格低廉、高效率、高容量、可扩展的计算和存储资源、随时随地灵活的访问支持等云服务带来的诸多好处。
混合云是近年来云计算的主要模式和发展方向,融合了公有云和私有云。公有云由大型的企业运营,具有很大的计算能力和存储空间,能够服务于大量的用户,私有云将提供服务的基础设施、应用和数据都纳入到组织内部的管理中,使其能更加符合组织使用需求,混合云由多个公有云、私有云组合而成,基于云间服务的协同和组合,构建一个动态、灵活、无缝的集成云环境,兼有公有云易扩展、节约成本和私有云安全、可控的优势。在混合云中,用户通常将关键数据放在私有云中存储和处理,而将大量应用数据外包到公有云中,而且在一些特殊的混合云应用场景中,例如云爆发、云灾备等,用户需要将更多的重要数据在公有云上存储。由于公有云服务器提供商通常不完全可信,他们可能窥探和分析用户存储的一些重要隐私信息,因此将数据交由公有云服务器托管就意味着数据的安全性和隐私性受到了威胁,需要将数据进行加密后外包给公有云服务器,但与此同时给数据的访问和操作带来新的困难和挑战。
目前针对云中外包密文数据的多关键词检索,大多数现有工作都遵循“单一拥有者”模式,即仅独立实现对属于一个数据拥有者的外包数据的检索。现实中,由于不同数据拥有者所属的权威领域不同,多个数据拥有者上传文件存在较大的质量差异,数据使用者通常期望同时从多个数据拥有者上传的所有数据集中检索出高质量的数据,即需要实现“多拥有者”模式。然而,将“单一拥有者”模式直接扩展为“多拥有者”模式面临着两大挑战:一是密钥管理不方便以及高通信成本;二是不同数据拥有者的主题相似文件的质量有明显差别,对文件质量的排名比较困难。因此,研究混合云中针对“多拥有者”模式的安全、高效、准确、灵活的多关键词密文检索方法具有重要的现实意义。
针对加密文件进行关键词的密文检索技术,Liu等人首先提出了基于对称加密的密文检索方案,它支持对加密的数据进行关键词检索,并且能够保证文件和关键词的隐私性(文献1)。同时,云服务器能够参与部分解密,以减少用户的计算开销。该方案构建基于双线性映射来实现密文的检索,效率较低。
Wang等人设计了一种基于非对称加密的密文检索方案,使用不同的密钥加密每个数据块,实现灵活的基于加密的访问控制,并且使用基于散列函数的密钥派生过程减少计算开销(文献2)。该方案还设计了一些机制来处理用户访问权限的更改,但是服务提供商只支持通过关键词检索数据拥有者自己的数据,不允许其他人检索。随后,Dawn等人提出了一种基于非对称加密的密文检索方案,用于帮助用户A将用户B的数据存储到云服务器,只有B可以检索数据(文献3)。
Yasuhiro提出了一种基于布隆过滤器的方案,不需要预先定义词典,查询效率较高,但是在该方案中,用户的查询都需要数据拥有者来处理,因此不适用于云存储(文献4)。
Prakash等人首次将ElGamal型椭圆曲线密码应用于可搜索的索引,由于其附加的同态性质,保证数据安全性的同时,可以对加密文件进行有效排序(文献5)。但是该方案中关键词查询的效率较低,并且不适用于“多拥有者”模式的情况。
针对“单一拥有者”模式的弊端,Guo等人提出了在云服务器上针对“多拥有者”模式的安全多关键词排序检索,用可信代理来管理密钥的分配,并构建分组平衡索引树实现高效的查询。然而,该方案中使用的非对称标量积保持方法虽然可以很方便的实现可搜索加密,但是它的安全风险比较高,容易受到攻击(文献6)。
综上所述,目前并没有一种能在混合云环境中实现针对“多拥有者”模式的安全高效的多关键词密文排序检索方法,已有相关方案存在不支持“多拥有者”模式或多关键词检索、检索效率较低及安全风险较高等问题。
文献1:Liu Q,Wang G J,Wu J.An efficient privacy preserving keywordsearch scheme in cloud computing.Proceedings of the International Conferenceon Computational Science and Engineering,IEEE Computer Society,Washington,DC,USA,2009.715-720.
文献2:Wang W C,Li Z W,Rodney O,et al.Secure and efficient access tooutsourced data.Proceedings of the ACM Workshop on Cloud Computing Security,ACM Press,New York,USA,2009.55-66.
文献3:Song X D,David P,Wagner P.Practical techniques for searches onencrypted data.Proceedings of the IEEE Symposium on Security and Privacy,IEEEComputer Society,Washington,DC,USA,2000.44-56.
文献4:Yasuhiro O.Partial disclosure of searchable encrypted data withsupport for boolean queries.Proceedings of the International Conference onAvailability Reliability and Security,IEEE Computer Society,Washington,DC,USA,2008.1083-1090.
文献5:Prakash S,Andola N,Venkatesan S,et al.Secure access of multiplekeywords over encrypted data in cloud environment using ECC-PKI and ECCElGamal.Proceedings of the International Conference on Public KeyInfrastructure and Its Applications,IEEE Computer Society,Washington,DC,USA,2017.49-56.
文献6:Guo Z Q,Zhang H,Sun C,et al.Secure multi-keyword ranked searchover encrypted cloud data for multiple data owners.Journal of Systems andSoftware,2017.137:380-395.
发明内容
针对现有技术的以上缺陷和改进需求,本发明提供了一种混合云环境中支持“多拥有者”模式的安全高效的多关键词密文排序检索方法。
本发明所采用的技术方案是:一种混合云中基于同态加密的多关键词密文排序检索方法,其特征在于,包括以下步骤:
步骤1:初始化;
可信私有云服务器选择一个大素数作为私有密钥,私有云服务器选择一个远大于私有密钥的大素数作为共享密钥;
步骤2:文件加密和上传;
数据拥有者对要上传的文件进行加密后发送到公有云服务器;
步骤3:生成明文索引;
具体实现包括以下子步骤:
步骤3.1:数据拥有者与私有云服务器进行交互获得公共词典;
步骤3.2:数据拥有者对其所有文件进行语法分析、分词和提取关键词,得到关键词集合,并根据关键词集合更新公共词典;
步骤3.3:数据拥有者利用向量空间模型和公共词典为每个文件分别生成明文形式的二进制索引向量,所有的二进制索引向量构成了明文索引;
步骤3.4:数据拥有者将公共词典和明文索引发送给私有云服务器。
步骤4:生成安全索引;
具体实现包括以下子步骤:
步骤4.1:私有云服务器首先计算公共词典中每两个关键词之间的相关系数并生成相关矩阵;
步骤4.2:私有云服务器为数据拥有者的每个文件生成流行度信息,计算数据拥有者对公共词典中所有关键词的平均流行度向量;
步骤4.3:私有云服务器利用相关矩阵和平均流行度向量计算数据拥有者对公共词典中所有关键词的原始权重;
步骤4.4:私有云服务器对所有数据拥有者的原始权重进行归一化处理,得到每个数据拥有者对公共词典中所有关键词的加权权重,并通过数据拥有者的明文索引和加权权重生成所有文件的加权索引向量;
步骤4.5:私有云服务器基于所有数据拥有者的加权索引向量构建一个加权二叉索引树;
步骤4.6:私有云服务器使用步骤1中的私有密钥和共享密钥对二叉索引树中的每个节点对应的加权索引向量进行整数上的同态加密,得到加密索引树,即安全索引;
步骤4.7:私有云服务器将安全索引发送至公有云服务器;
步骤5:生成陷门;
具体实现包括以下子步骤:
步骤5.1:数据使用者将查询数据和参数信息发送给私有云服务器以请求检索;
步骤5.2:私有云服务器对数据使用者的查询数据进行分词和提取关键词处理,并根据公共词典生成二进制查询向量;
步骤5.3:私有云服务器根据参数信息将查询向量扩展为陷门并发送到公有云服务器;
步骤6:检索;
具体实现包括以下子步骤:
步骤6.1:公有云服务器接收到陷门后,在安全索引中使用步骤1中的共享密钥计算并比较查询向量与加密索引树节点对应密文索引向量的相关性得分,将前n个得分最高的结果存入一个相关性分数序列中;
步骤6.2:公有云服务器对得分结果进行排序,将前n个结果对应的密文文件下载链接列表返回给数据使用者;
步骤6.3:数据使用者下载密文文件,并与数据拥有者交互,获得密钥后解密文件。
与现有技术相比,本发明具有以下的有益效果:实现了一种混合云环境中基于整数上同态加密的多关键词密文排序检索方法,能够有效保障数据的安全隐私,支持“多拥有者”模式和多关键词的数据检索,具有较高的检索效率和准确率,排序结果不仅考虑到查询数据和文件之间的相关性,还考虑到文件质量,更符合用户的需求。
附图说明
图1为本发明实施例的整体流程图;
图2为本发明实施例中生成明文索引阶段的细化流程图;
图3为本发明实施例中生成安全索引阶段的细化流程图;
图4为本发明实施例中生成安全索引阶段的文件权重示例图;
图5为本发明实施例中生成安全索引阶段的节点配对示例图;
图6为本发明实施例中生成安全索引阶段的加权索引树示例图;
图7为本发明实施例中加密索引树节点阶段的细化流程图;
图8为本发明实施例中生成陷门阶段的细化流程图;
图9为本发明实施例中查询阶段的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
以下首先就本发明的技术术语进行解释和说明:
数据拥有者:文件数据集的贡献者,将数据上传到云服务器存储的个人或组织。
数据使用者:需要对数据拥有者存储在云服务器中的数据进行检索的用户。
公有云服务器:由大型企业运营,能够提供给用户较大存储空间和数据处理能力;会诚实地执行用户所要求的协议及功能,但是会尽可能地窥探和分析用户存储的重要隐私数据。
私有云服务器:由中小型企业组织内部构建,安全可信,用于处理有较高安全性需求的数据操作。
明文索引:索引指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序,未被加密或者其他处理的索引即明文索引。
安全索引:加密以后得到的索引即安全索引。
私有密钥:加密算法中未公开发布的密钥称为私有密钥。
共享密钥:加密算法中公开发布的密钥称为共享密钥,共享密钥和私有密钥是一对密钥,都参与对数据的加密和解密,仅有共享密钥无法解密数据。
向量空间模型:把对文本内容的处理简化为向量空间中的向量运算,并且以空间上的相似度表达语义的相似度。当文件被表示为文件空间的向量,就可以通过计算向量之间的相似度来度量文件间的相似度。文本处理中最常用的相似度度量方式是余弦距离。
Jaccard相似系数:两个样本集交集的元素个数与并集的元素个数的比值,一般用来比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。
以下结合实施例和附图对本发明做进一步说明。
图1为本发明混合云中基于同态加密的多关键词密文排序检索方法的整体流程图。如图1所示,本发明混合云中基于同态加密的多关键词密文排序检索方法是应用在混合云中的数据检索情境中,该情境包括数据拥有者、私有云服务器、公有云服务器和数据使用者四个实体。首先,每个数据拥有者与私有云服务器交互更新公共词典,对其所有文件生成明文形式的索引向量发送给私有云服务器,同时将文件集加密后发送至公有云服务器;然后,私有云服务器构建动态权重模型计算每个数据拥有者对公共词典中所有关键词的加权权重,生成加权索引,构建二叉索引树,通过同态加密算法对索引树进行加密得到安全索引,并将安全索引发送至公有云服务器;接着,当数据使用者需要检索公有云服务器上的文件时,私有云服务器接收数据使用者发送的检索数据和参数信息,生成查询向量,将查询向量扩展为陷门后发送到公有云服务器发起检索请求;最后,公有云服务器根据陷门和安全索引为数据使用者进行检索,将得分最高的密文文件下载链接列表返回给数据使用者,数据使用者下载密文文件,并与数据拥有者交互获得密钥后解密文件。在其实施方式中,私有云服务器还承担着必要时更新数据拥有者的权重和安全索引的责任。
在本实施例中,数据拥有者为3个终端(PC、PDA、智能手机等)用户,分别为O1、O2、O3,现在数据拥有者需要上传至公有云服务器共享的数据为文件集合F;数据使用者为用户X,需要访问集合F。
本发明提供的一种混合云中基于同态加密的多关键词密文排序检索方法,具体包括以下步骤:
步骤1:初始化;
私有云服务器选择两个大素数作为私有密钥和共享密钥;步骤1具体包括以下子步骤:
步骤1.1:私有云服务器选择大素数P1作为私有密钥;
步骤1.2:私有云服务器选择一个远大于P1的大素数P2作为共享密钥。
步骤2:文件加密和上传;
数据拥有者对要上传的文件进行加密后发送到公有云服务器,步骤2具体包括以下子步骤:
步骤2.1:数据拥有者准备好要上传的文件集合,并使用DES算法分别对每个文件进行加密;
步骤2.2:数据拥有者将密文文件上传至公有云服务器。
步骤3:生成明文索引;
数据拥有者首先与私有云服务器进行交互获得公共词典,然后对所有文件提取关键词生成关键词集合,更新公共词典并为每个文件生成明文形式的二进制索引向量,所有的二进制索引向量构成了明文索引,最后将公共词典和明文索引发送给私有云服务器;
如图2所示,步骤3具体包括以下子步骤:
步骤3.1:数据拥有者Oi与私有云服务器进行交互获得公共词典,交互过程主要是对公共词典的更新,对数据拥有者Oi的每个文件提取关键词后把这些关键词发送到私有云服务器,私有云服务器通过这些关键词更新公共词典,把公共词典里没有的关键词添加进公共词典,因此公共词典里存储了数据拥有者的所有文件的关键词,并没有重复。
在本实施例中,数据拥有者O1与私有云服务器交互后得到公共词典D,D初始包含了20个关键词,具体为D={filter,index,document,frequency,vector,index,file,segment,attribute,keyword,node,score,cloud,result,internet,word,retrival,icon,data,query}。
步骤3.2:数据拥有者Oi对所有文件进行语法分析和分词,用Fi,j表示Oi的第j个文件,对Fi,j提取m个关键词(一般通过tf-idf算法,即通过计算关键词的词频和逆文本频率得到文件中最重要的前m个关键词,这些关键词可以反映该文件的主题特征,不是通过文件的主题特征去提取关键词),得到包含m个关键词的集合Ki,j,并根据所有文件的关键词集合更新公共词典D;
在本实施例中共有6个文件,数据拥有者O1有3个文件,数据拥有者O2有1个文件,数据拥有者O3有2个文件,对每个文件提取10个关键词,得到关键词集合如下表1所示:
表1文件集合的关键词集合
Figure BDA0002259874680000081
Figure BDA0002259874680000091
每个数据拥有者根据其关键词集合更新公共词典D,O1将D中没有的关键词{service,computing,encryption,search,memory,management,key,owner,security,scheme,privacy,maintenance}添加到D末尾,并将更新后的D发送到私有云服务器。当O2更新D时,只需将关键词{space,model,environment,access,element}添加到D末尾,同理O3将关键词{download,resource,relevance}添加到D末尾,因此最后D一共包含40个关键词;
为了更清晰地描述本发明的关键步骤,本实施例以英文文件内容为例进行说明;对于中文文件,也可以按照步骤3.2对其进行分词和提取关键词处理得到关键词集合并更新公共词典D;
步骤3.3:数据拥有者Oi利用向量空间模型(向量空间模型是计算机中常用的一种模型,把对文本内容的处理简化为向量空间中的向量运算,以空间上的相似度表达文本之间的相似度,在这里若公共词典中有p个关键词,将数据拥有者Oi的每个文件都转化成一个p维向量,公共词典中的某个关键词未出现在文件中,这个关键词在向量中对应的元素为0,否则为1,每个文件都有这样的一个向量,称之为索引向量)根据每个文件的关键词集合和公共词典D生成数据拥有者Oi的每个文件明文形式的二进制索引向量,用Ii,j表示Oi第j个文件的二进制索引向量,Ii,j长度等于D中关键词个数,记为p,其每一个元素代表D中对应的关键词在文件Fi,j的关键词集合里是否存在,若存在,则为1,否则为0,所有的二进制索引向量构成了明文索引;
在本实施例中,数据拥有者Oi根据其每个文件Fi,j的关键词集合和公共词典D分别为每个文件生成二进制索引向量,用Ii,j表示Oi第j个文件的二进制索引向量,Ii,j长度为40位,若D的关键词在Fi,j关键词集合中存在,则Ii,j中该关键词对应位为1,否则为0;例如,文件F1,1的二进制索引向量可以表示为I1,1={0,1,1,0,0,…,0,0,0,0},文件F2,1的二进制索引向量可以表示为I2,1={0,0,0,1,1,…,1,0,0,0};Oi所有文件的二进制索引向量构成了其明文索引;
步骤3.4:数据拥有者将公共词典和明文索引发送至私有云服务器。
步骤4:生成安全索引;私有云服务器首先计算公共词典中每两个关键词之间的相关系数并生成相关矩阵,然后为数据拥有者的每个文件生成流行度信息,计算数据拥有者对公共词典中所有关键词的平均流行度向量,并计算数据拥有者对词典中所有关键词的原始权重,归一化后得到加权权重进而生成加权索引向量,接着根据加权索引向量构建加权二叉索引树,最后使用步骤1中的私有密钥和共享密钥对加权索引树中的所有节点进行整数上的同态加密得到安全索引,并将安全索引发送给公有云服务器;如图3所示,步骤4具体包括以下子步骤:
步骤4.1:私有云服务器使用Jaccard相似系数计算公共词典D中每两个关键词之间的相关系数Sx,y并生成相关矩阵S;Sx,y计算公式如下:
Figure BDA0002259874680000101
其中,dx和dy分别表示存在关键词x和y的文件集合,L(dx∩dy)表示同时存在关键词x和y的文件个数,L(dx∪dy)表示关键词x和y至少存在一个的文件个数,x和y出现在同一文件中的文件个数越多,两者越相关;S是一个对称矩阵,矩阵的行列数相等,为D中关键词的个数,每一个元素表示对应关键词之间的相关系数;
在本实施例中,私有云服务器计算公共词典D中每两个关键词的相关系数,如D的第2个关键词index和第3个关键词document,同时存在这两个关键词的文件有F1,1和F1,3,至少存在一个关键词的文件有F1,1、F1,2、F1,3、F3,1和F3,2,则S2,3=2/5=0.4,即index和document的相关系数为0.4。由于D中有40个关键词,私有云服务器使用一个40×40的相关矩阵S来表示所有关键词之间的相关系数,如下所示:
Figure BDA0002259874680000102
步骤4.2:私有云服务器根据数据拥有者Oi所有文件的下载次数和点击率生成流行度向量Pi,其每个元素Pi,j代表文件Fi,j的流行度信息;为了表示不同数据拥有者对不同的领域具有不同的权重,私有云服务器构建动态权重模型,通过文件的受欢迎度来确定Oi的平均流行度APi,计算公式如下:
Figure BDA0002259874680000111
其中,Pi表示Oi的流行度向量,其长度等于Oi的文件个数li;Ii是一个li×p的矩阵,矩阵的每一行代表Oi的一个文件的二进制索引向量;Pi·Ii的结果是一个长度为p的向量,其每个元素代表Oi的所有文件对公共词典D中对应关键词的流行度之和;αi是一个长度为p的向量,其每一个元素表示Oi的所有文件中包含D中对应关键词的文件数的倒数,可以通过Ii获得;运算符
Figure BDA0002259874680000112
表示两个向量的对应元素的乘积;APi也是一个长度为p的向量,其每个元素代表Oi对D中对应关键词的权威程度;
在本实施例中,由于数据拥有者O1有3个文件,私有云服务器构建一个长度为3的流行度向量P1来表示O1所有文件的流行度信息,P1={3,4,9},其三个元素分别代表文件F1,1、F1,2和F1,3的流行度信息。α1的每一个元素表示O1的所有文件中包含D中对应关键词的文件数的倒数,例如O1的所有文件中只有文件F1,1包含D中第一个关键词filter,文件F1,1、F1,2和F1,3包含D中第二个关键词index,因此α1的前两个元素分别为1和1/3,私有云服务器计算O1的平均流行度AP1如下:
Figure BDA0002259874680000113
同理,私有云服务器构建向量P2和P3来表示数据拥有者O2、O3所有文件的流行度信息,并计算出数据拥有者O2和O3的平均流行度向量AP2和AP3
步骤4.3:私有云服务器根据平均流行度向量APi和相关矩阵S计算每一个数据拥有者Oi对公共词典D中的所有关键词的原始权重
Figure BDA0002259874680000114
计算公式如下:
Figure BDA0002259874680000121
其中,
Figure BDA0002259874680000122
是一个长度为p的向量,其每个元素依次代表Oi对公共词典D中一个关键词的原始权重;
在本实施例中,数据拥有者Oi的原始权重
Figure BDA0002259874680000123
是一个长度为40的向量,通过相关矩阵S和Oi的平均流行度向量APi计算出数据拥有者O1的原始权重W1 raw={18.34,10.55,8.27,…,9.67,21.60,24.33},数据拥有者O2的原始权重W2 raw={12.97,8.47,19.78,…,11.69,5.88,10.81},数据拥有者O3的原始权重W3 raw={10.50,6.69,6.15,…,15.37,9.23,13.34};
步骤4.4:私有云服务器对所有数据拥有者的原始权重进行归一化处理,首先在不同数据拥有者之间选取每个关键词的最大原始权重构成Wmax,Wmax是一个长度为p的向量,其每个元素代表在所有数据拥有者的原始权重信息中对公共词典D对应关键词的最大原始权重,即:
Figure BDA0002259874680000124
然后将这些最大原始权重都规格化为1,其他关键词权重是0到1之间的数字,用Wi表示数据拥有者Oi对D中所有关键词的加权权重,则:
Wi=(Wi,1,Wi,2,...,Wi,p);
Wi是一个长度为p的向量,其中Wi,t是Oi对第t个关键词的加权权重,则:
Figure BDA0002259874680000125
其中,Wmax[t]表示所有数据拥有者的原始权重信息中第t个关键词的最大原始权重;
最后根据Wi及二进制索引向量Ii,j得到加权索引向量
Figure BDA0002259874680000126
即:
Figure BDA0002259874680000127
按上述步骤,将明文索引中所有的二进制索引向量进行计算得到对应的加权索引向量;
在本实施例中,公共词典D中的第一个关键词filter的最大原始权重为18.34,将其规格化为1,则归一化后数据拥有者O1、O2、O3对关键词filter的加权权重分别为1、0.71和0.57;利用这种方法,每个数据拥有者获得了对D中所有关键词的加权权重,再根据明文索引和加权权重生成所有文件的加权索引向量,例如计算加权索引向量
Figure BDA0002259874680000131
如下:
Figure BDA0002259874680000132
步骤4.5:私有云服务器基于所有文件的加权索引向量构建一个加权二叉索引树;首先为每个加权索引向量生成一个叶节点u,包含u.id,u.Fid,u.Val,u.id是u的唯一标识,u.Fid表示u指向文件的标识,u.Val用来存储加权索引向量,所有叶节点构成一个节点队列;然后通过两两计算叶节点中加权索引向量的余弦值,找出一个与叶节点u1余弦值最大的叶节点u2进行配对,以u1和u2为子节点生成一个父节点v,包含v.id和v.Val,v.id是v的唯一标识,v.Val用来存储一个新的索引向量,其每个元素是子节点中索引向量的对应元素的较大值;接着继续执行上述步骤,完成余下叶节点的两两配对,并生成对应父节点;最后执行所有父节点的分组配对,直到构造出完整的二叉索引树;
在本实施例中,如图4所示,是所有数据拥有者的6个文件的加权索引向量,私有云服务器首先分别为这6个加权索引向量生成叶节点;然后对6个叶节点进行配对,如图5所示,对文件F1,1的节点进行配对时,分别计算F1,1节点与其他5个节点的向量余弦值,选择余弦值最大的F1,2节点与F1,1节点进行配对,并创建F1,1节点与F1,2节点的父节点,父节点存储了一个新的索引向量,其每个元素是F1,1节点与F1,2节点中索引向量的对应元素的较大值;同理F1,3节点与F2,1节点进行配对,F3,1节点与F3,2节点进行配对,并创建各自的父节点;最后如图6所示,继续通过父节点的分组配对构造出完整的二叉索引树;
步骤4.6:如图7所示,私有云服务器首先将二叉索引树每个节点中加权索引向量的每一位编码为整数Pm,然后使用步骤1中的私有密钥P1和共享密钥P2分别对所有编码数进行整数上的同态加密,每次加密时选取一个随机大素数q,其位数小于P1和P2,计算C=Pm*P1+P1*P2*q,C即为文件Fi,j的加权索引向量中一位元素的加密结果;对其进行解密需要同时使用P1和P2,计算(C mod P2)/P1即可得到Pm,从而还原明文;二叉索引树中所有的加权索引向量加密后的密文索引向量构成了加密索引树,即安全索引;
在本实施例中,选取256位大素数P1和300位大素数P2作为私有密钥和共享密钥对加权索引向量进行加密,例如,加密加权索引向量
Figure BDA0002259874680000141
时,将其第一位元素0编码为一个整数,选取随机大素数q1计算C1=Pm1*P1+P1*P2*q1即为第一位加密后的结果,然后选取随机大素数q2加密第二位元素,最终完成所有加权索引向量的加密,得到安全索引;
步骤4.7:私有云服务器将安全索引发送至公有云服务器。
步骤5:生成陷门;数据使用者将查询数据和参数信息发送到私有云服务器以请求检索,私有云服务器对查询数据提取关键词并根据公共词典生成二进制查询向量,再将查询向量扩展为陷门并发送给公有云服务器;如图8所示,步骤5具体包括以下子步骤:
步骤5.1:数据使用者将查询数据和参数信息发送给私有云服务器以请求检索;
在本实施例中,数据使用者X将要查询的数据q={secure index and keywordsearch}和需要返回的文件数量n=3发送给私有云服务器;
步骤5.2:私有云服务器对查询数据进行分词和提取关键词处理,得到查询的关键词集合Kq,并通过公共词典D生成二进制查询向量Rq,Rq是一个长度为p的向量,其每个元素代表D中对应的关键词在Kq里是否存在,若存在,则为1,否则为0;
在本实施例中,私有云服务器对查询数据进行提取关键词处理得到关键词集合Kq={secure,index,keyword,search},并根据公共词典D生成二进制查询向量Rq={0,1,0,…,0,0,0},其中第2位、第10位和第24位为1,其余位为0;
步骤5.3:私有云服务器将参数信息添加到查询向量Rq的末尾,得到陷门Tq,Tq是一个长度为p+1的向量,前p个元素与查询向量一致,最后一位元素代表需要返回的文件数量,最后将Tq发送到公有云服务器;
在本实施例中,将参数n=3添加到查询向量Rq的末尾,得到陷门Tq={0,1,0,…,0,0,0,3},并将Tq发送到公有云服务器。
步骤6:检索;公有云服务器根据陷门和安全索引为数据使用者的请求进行检索,将前n个得分最高的密文文件下载链接列表返回给数据使用者,数据使用者下载密文文件,并与数据拥有者交互获得密钥后解密文件,如图9所示,步骤6具体包括以下子步骤:
步骤6.1:公有云服务器接收到陷门后,在加密索引树中执行深度优先搜索算法从根节点开始检索,依次计算查询向量Rq与所遍历节点对应密文索引向量的内积R,并使用共享密钥P2计算得到相关性分数Sci,j,公有云服务器将相关性分数存入一个长度为n的分数序列中;当分数序列存满n个相关性分数后继续遍历,若遇到非叶子节点v,则计算v与Rq的相关性分数,如果该分数小于分数序列中的最小分数,则停止遍历并返回上一节点继续遍历,如果该分数大于分数序列中的最小分数,则继续遍历v的所有子节点;若遇到叶子节点u,则计算u与Rq的相关性分数,如果该分数小于分数序列中的最小分数,则继续遍历,如果该分数大于分数序列中的最小分数,则将该分数替换分数序列中的最小分数并继续遍历;按照这个规则完成整个索引树的遍历,最终分数序列中的分数即为n个最高的文件得分;
在本实施例中,如图6,公有云服务器会依次计算查询向量Rq与节点root、u4、u1、F1,1、F1,2、u2、F1,3对应密文索引向量的内积,并使用P2对内积结果进行模操作得到相关性分数;公有云服务器计算Rq与叶子节点F1,1、F1,2、F1,3的相关性分数并将其存入一个长度为3的分数序列中,此时分数序列中包含的相关性分数为{1.21,1,0.89};继续计算Rq与叶子节点F2,1的相关性分数Sc2,1=0.2,该分数小于分数序列中的最小分数,则继续遍历,返回到root节点后计算Rq与非叶子节点u3的相关性分数Sc3,0=1.15,该分数大于分数序列中的最小分数,因此需要继续遍历u3的两个叶子节点;计算Rq与叶子节点F3,1的相关性分数Sc3,1=0.96,该分数大于分数序列中的最小分数,则用该分数替换分数序列中的最小分数0.89,此时分数序列中的相关性分数为{1.21,1,0.96},计算Rq与叶子节点F3,2的相关性分数Sc3,2=0.71,该分数小于分数序列中的最小分数,不做任何操作,遍历结束,最终分数序列中的分数{1.21,1,0.96}即为3个最高的文件得分;
若在明文环境中,Rq与加权索引向量
Figure BDA0002259874680000151
的明文内积为:
Figure BDA0002259874680000152
Figure BDA0002259874680000153
表示加权索引向量
Figure BDA0002259874680000154
加密后的密文索引向量,则公有云服务器计算Rq与密文索引向量
Figure BDA0002259874680000155
的内积R1,1为:
R1,1=Rq·(C1,C2,C3,...,C40)
=(0,1,0,...,0,0,0)·(C1,C2,C3,...,C40)
=C2+C10+C24
=Pm2*P1+P1*P2*q2+Pm10*P1+P1*P2*q10+Pm24*P1+P1*P2*q24
=P1*(Pm2+Pm10+Pm24)+P1*P2*(q2+q10+q24)
其中,Pm2、Pm10和Pm24分别代表
Figure BDA0002259874680000161
的第2位、第10位和第24位元素编码后得到的整数,使用步骤1中的共享密钥P2对密文内积结果进行模操作得到相关性分数Sci,j,则:
Sc1,1=[P1*(Pm2+Pm10+Pm24)+P1*P2*(q2+q10+q24)]modP2
=P1*(Pm2+Pm10+Pm24)
该分数结果可以反映明文文件和查询数据之间的相关性,这是因为该加密算法具有加法上的同态性,使得密文内积结果解密后与明文内积结果一致,例如对上述Rq
Figure BDA0002259874680000162
的内积结果进行解密:
Decrypt[P1*(Pm2+Pm10+Pm24)+P1*P2*(q2+q10+q24)]
=[P1*(Pm2+Pm10+Pm24)+P1*P2*(q2+q10+q24)]modP2/P1
=(P1*(Pm2+Pm10+Pm24))/P1
=Pm2+Pm10+Pm24
得到的结果进行反编码后即可还原为明文分数1.21,因此通过比较相关性分数Sci,j就可以完成文件得分的排序;
步骤6.2:公有云服务器对计算的得分结果进行排序,将前n个结果对应的密文文件下载链接列表返回给数据使用者;
在本实施例中,分数序列中的3个相关性分数分别对应文件F1,1、F1,2和F3,1,且Sc1,1>Sc3,1>Sc1,2,公有云服务器将F1,1、F3,1和F1,2对应的密文文件下载链接列表返回给数据使用者X;
步骤6.3:数据使用者下载密文文件,并与数据拥有者交互,获得密钥后解密文件;
在本实施例中,数据使用者X下载所需要的文件后,与数据拥有者O1和O3交互获得密钥,即可解密文件。
步骤7:关键词权重更新;当数据拥有者没有文件更新时,随着公有云服务器上文件的点击率和下载量的变化,数据拥有者对公共词典中关键词的权重会动态地变化。私有云服务器每隔一段时间按照步骤4更新每个数据拥有者对公共词典中所有关键词的平均流行度和加权权重,此时不用重新计算相关矩阵;然后重新计算所有数据拥有者加权索引,构建新的安全索引并发送到公有云服务器;
当数据拥有者根据实际需求增加文件、删除文件或修改文件时,公共词典会发生变化,导致数据拥有者对词典中关键词的权重也会变化。数据拥有者重新执行步骤2和步骤3将更新后的公共词典和明文索引发送到私有云服务器,同时将新的密文文件发送至公有云服务器;私有云服务器按照步骤4重新生成相关矩阵和加权索引,构建新的安全索引并发送至公有云服务器;
在本实施例中,数据拥有者O1对文件F1,1进行增加、删除或修改操作后,重新执行步骤2和步骤3将更新后的公共词典和明文索引发送到私有云服务器,同时将新的密文文件发送至公有云服务器;私有云服务器按照步骤4重新生成加权索引,构建新的安全索引并发送至公有云服务器;当没有文件更新时,私有云服务器每隔一段时间按照步骤4重新计算加权索引,构建新的安全索引并发送至公有云服务器即可。
本发明实现了一种混合云中基于同态加密的多关键词密文排序检索方法,通过构建动态权重模型计算数据拥有者对索引关键词的加权权重,使得权重较高的数据拥有者的高质量文件更容易被检索出;采用加权二叉索引树作为索引结构,以及整数上的同态加密算法实现密文检索,能够保证检索的安全隐私,具有较高的检索效率和准确率,并能对检索结果进行有效排序。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种混合云中基于同态加密的多关键词密文排序检索方法,其特征在于,包括以下步骤:
步骤1:初始化;
可信私有云服务器选择一个大素数作为私有密钥,私有云服务器选择一个远大于私有密钥的大素数作为共享密钥;
步骤2:文件加密和上传;
数据拥有者对要上传的文件进行加密后发送到公有云服务器;
步骤3:生成明文索引;
具体实现包括以下子步骤:
步骤3.1:数据拥有者与私有云服务器进行交互获得公共词典;
步骤3.2:数据拥有者对其所有文件进行语法分析、分词和提取关键词,得到关键词集合,并根据关键词集合更新公共词典;
步骤3.3:数据拥有者利用向量空间模型和公共词典为每个文件分别生成明文形式的二进制索引向量,所有的二进制索引向量构成了明文索引;
步骤3.4:数据拥有者将公共词典和明文索引发送给私有云服务器;
步骤4:生成安全索引;
具体实现包括以下子步骤:
步骤4.1:私有云服务器首先计算公共词典中每两个关键词之间的相关系数并生成相关矩阵;
步骤4.2:私有云服务器为数据拥有者的每个文件生成流行度信息,计算数据拥有者对公共词典中所有关键词的平均流行度向量;
步骤4.3:私有云服务器利用相关矩阵和平均流行度向量计算数据拥有者对公共词典中所有关键词的原始权重;
步骤4.4:私有云服务器对所有数据拥有者的原始权重进行归一化处理,得到每个数据拥有者对公共词典中所有关键词的加权权重,并通过数据拥有者的明文索引和加权权重生成所有文件的加权索引向量;
步骤4.5:私有云服务器基于所有数据拥有者的加权索引向量构建一个加权二叉索引树;
步骤4.6:私有云服务器使用步骤1中的私有密钥和共享密钥对二叉索引树中的每个节点对应的加权索引向量进行整数上的同态加密,得到加密索引树,即安全索引;
步骤4.7:私有云服务器将安全索引发送至公有云服务器;
步骤5:生成陷门;
具体实现包括以下子步骤:
步骤5.1:数据使用者将查询数据和参数信息发送给私有云服务器以请求检索;
步骤5.2:私有云服务器对数据使用者的查询数据进行分词和提取关键词处理,并根据公共词典生成二进制查询向量;
步骤5.3:私有云服务器根据参数信息将查询向量扩展为陷门并发送到公有云服务器;
步骤6:检索;
具体实现包括以下子步骤:
步骤6.1:公有云服务器接收到陷门后,在安全索引中使用步骤1中的共享密钥计算并比较查询向量与加密索引树节点对应密文索引向量的相关性得分,将前n个得分最高的结果存入一个相关性分数序列中;
步骤6.2:公有云服务器对得分结果进行排序,将前n个结果对应的密文文件下载链接列表返回给数据使用者;
步骤6.3:数据使用者下载密文文件,并与数据拥有者交互,获得密钥后解密文件。
2.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤3.1中,数据拥有者与私有云服务器进行交互获得公共词典,交互过程主要是对公共词典的更新,对数据拥有者Oi的每个文件提取关键词后把这些关键词发送到私有云服务器,私有云服务器通过这些关键词更新公共词典,把公共词典里没有的关键词添加进公共词典,因此公共词典里存储了数据拥有者的所有文件的关键词。
3.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤3.2中,数据拥有者Oi对所有文件进行语法分析和分词,用Fi,j表示Oi的第j个文件,对Fi,j提取m个关键词,得到包含m个关键词的集合Ki,j,并根据所有文件的关键词集合更新公共词典D。
4.根据权利要求3所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤3.3中,数据拥有者Oi利用向量空间模型根据每个文件的关键词集合和公共词典D生成数据拥有者Oi的每个文件明文形式的二进制索引向量,用Ii,j表示Oi第j个文件的二进制索引向量,Ii,j长度等于D中关键词个数,记为p,其每一个元素代表D中对应的关键词在文件Fi,j的关键词集合里是否存在,若存在,则为1,否则为0,所有的二进制索引向量构成了明文索引。
5.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.1中,私有云服务器使用Jaccard相似系数计算公共词典D中每两个关键词之间的相关系数Sx,y并生成相关矩阵S;
Sx,y计算公式为:
Figure FDA0002259874670000031
其中,dx和dy分别表示存在关键词x和y的文件集合,L(dx∩dy)表示同时存在关键词x和y的文件个数,L(dx∪dy)表示关键词x和y至少存在一个的文件个数,x和y出现在同一文件中的文件个数越多,两者越相关;S是一个对称矩阵,矩阵的行列数相等,为D中关键词的个数,每一个元素表示对应关键词之间的相关系数。
6.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.2中,私有云服务器根据数据拥有者文件的下载次数和点击率生成流行度向量,并根据数据拥有者的流行度向量和二进制索引向量计算出数据拥有者对公共词典中所有关键词的平均流行度向量;
私有云服务器根据数据拥有者Oi所有文件的下载次数和点击率生成流行度向量Pi,其每个元素Pi,j代表文件Fi,j的流行度信息,Fi,j表示Oi的第j个文件;为了表示不同数据拥有者对不同的领域具有不同的权重,私有云服务器构建动态权重模型,通过文件的受欢迎度来确定Oi的平均流行度APi,计算公式如下:
Figure FDA0002259874670000032
其中,Pi表示Oi的流行度向量,其长度等于Oi的文件个数li;Ii是一个li×p的矩阵,矩阵的每一行代表Oi的一个文件的二进制索引向量;Pi·Ii的结果是一个长度为p的向量,其每个元素代表Oi的所有文件对公共词典D中对应关键词的流行度之和;αi是一个长度为p的向量,其每一个元素表示Oi的所有文件中包含D中对应关键词的文件数的倒数,能通过Ii获得;运算符
Figure FDA0002259874670000041
表示两个向量的对应元素的乘积;APi也是一个长度为p的向量,其每个元素代表Oi对D中对应关键词的权威程度。
7.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.3中,私有云服务器根据平均流行度向量APi和相关矩阵S计算每一个数据拥有者Oi对公共词典D中的所有关键词的原始权重Wi raw,计算公式如下:
Figure FDA0002259874670000042
其中,Wi raw是一个长度为p的向量,其每个元素依次代表Oi对公共词典D中一个关键词的原始权重。
8.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.4中,私有云服务器对所有数据拥有者的原始权重进行归一化处理,首先在不同数据拥有者之间选取每个关键词的最大原始权重构成Wmax,Wmax是一个长度为p的向量,其每个元素代表在所有数据拥有者的原始权重信息中对公共词典D对应关键词的最大原始权重,即:
Figure FDA0002259874670000043
然后将这些最大原始权重都规格化为1,其他关键词权重是0到1之间的数字,用Wi表示数据拥有者Oi对D中所有关键词的加权权重,则:
Wi=(Wi,1,Wi,2,...,Wi,p);
Wi是一个长度为p的向量,其中Wi,t是Oi对第t个关键词的加权权重,则:
Figure FDA0002259874670000044
其中,Wmax[t]表示所有数据拥有者的原始权重信息中第t个关键词的最大原始权重;
最后根据Wi及二进制索引向量Ii,j得到加权索引向量
Figure FDA0002259874670000045
即:
Figure FDA0002259874670000051
按上述步骤,将明文索引中所有的二进制索引向量进行计算得到对应的加权索引向量。
9.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.5中,首先为每个加权索引向量生成一个叶节点u,包含u.id,u.Fid,u.Val,u.id是u的唯一标识,u.Fid表示u指向文件的标识,u.Val用来存储加权索引向量,所有叶节点构成一个节点队列;然后通过两两计算叶节点中加权索引向量的余弦值,找出一个与叶节点u1余弦值最大的叶节点u2进行配对,以u1和u2为子节点生成一个父节点v,包含v.id和v.Val,v.id是v的唯一标识,v.Val用来存储一个新的索引向量,其每个元素是子节点中索引向量的对应元素的较大值;接着继续执行上述步骤,完成余下叶节点的两两配对,并生成对应父节点;最后执行所有父节点的分组配对,直到构造出完整的二叉索引树。
10.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤4.6中,私有云服务器首先将二叉索引树每个节点中加权索引向量的每一位编码为整数Pm,然后使用步骤1中的私有密钥P1和共享密钥P2分别对所有编码数进行整数上的同态加密,每次加密时选取一个随机大素数q,其位数小于P1和P2,计算C=Pm*P1+P1*P2*q,C即为文件Fi,j的加权索引向量中一位元素的加密结果;对其进行解密需要同时使用P1和P2,计算(C mod P2)/P1即可得到Pm,从而还原明文;二叉索引树中所有的加权索引向量加密后的密文索引向量构成了加密索引树,即安全索引。
11.根据权利要求1所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于:步骤6.1中,公有云服务器接收到陷门后,在加密索引树中执行深度优先搜索算法从根节点开始检索,依次计算查询向量Rq与所遍历节点对应密文索引向量的内积R,并使用共享密钥P2计算得到相关性分数Sci,j,公有云服务器将相关性分数存入一个长度为n的分数序列中;当分数序列存满n个相关性分数后继续遍历,若遇到非叶子节点v,则计算v与Rq的相关性分数,如果该分数小于分数序列中的最小分数,则停止遍历并返回上一节点继续遍历,如果该分数大于分数序列中的最小分数,则继续遍历v的所有子节点;若遇到叶子节点u,则计算u与Rq的相关性分数,如果该分数小于分数序列中的最小分数,则继续遍历,如果该分数大于分数序列中的最小分数,则将该分数替换分数序列中的最小分数并继续遍历;按照这个规则完成整个索引树的遍历,最终分数序列中的分数即为n个最高的文件得分。
12.根据权利要求1-11任意一项所述的混合云中基于同态加密的多关键词密文排序检索方法,其特征在于,所述方法还包括步骤7:关键词权重更新;
当数据拥有者没有文件更新时,随着公有云服务器上文件的点击率和下载量的变化,数据拥有者对公共词典中关键词的权重会动态地变化;私有云服务器每隔一段时间按照步骤4更新每个数据拥有者对公共词典中所有关键词的平均流行度和加权权重,此时不用重新计算相关矩阵;然后重新计算所有数据拥有者加权索引,构建新的安全索引并发送到公有云服务器;
当数据拥有者根据实际需求增加文件、删除文件或修改文件时,公共词典会发生变化,导致数据拥有者对词典中关键词的权重也会变化;数据拥有者重新执行步骤2和步骤3将更新后的公共词典和明文索引发送到私有云服务器,同时将新的密文文件发送至公有云服务器;私有云服务器按照步骤4重新生成相关矩阵和加权索引,构建新的安全索引并发送至公有云服务器。
CN201911067597.0A 2019-11-04 2019-11-04 一种混合云中基于同态加密的多关键词密文排序检索方法 Active CN111026788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911067597.0A CN111026788B (zh) 2019-11-04 2019-11-04 一种混合云中基于同态加密的多关键词密文排序检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911067597.0A CN111026788B (zh) 2019-11-04 2019-11-04 一种混合云中基于同态加密的多关键词密文排序检索方法

Publications (2)

Publication Number Publication Date
CN111026788A true CN111026788A (zh) 2020-04-17
CN111026788B CN111026788B (zh) 2023-04-21

Family

ID=70200783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911067597.0A Active CN111026788B (zh) 2019-11-04 2019-11-04 一种混合云中基于同态加密的多关键词密文排序检索方法

Country Status (1)

Country Link
CN (1) CN111026788B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737756A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 经由两个数据拥有方进行的xgb模型预测方法、装置及系统
CN111756777A (zh) * 2020-08-28 2020-10-09 腾讯科技(深圳)有限公司 数据传输方法、数据处理设备、装置及计算机存储介质
CN112291057A (zh) * 2020-11-20 2021-01-29 天津市城市规划设计研究总院有限公司 城市规划领域提高智能物联网安全性的方法系统可读介质
CN112667674A (zh) * 2021-03-12 2021-04-16 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112966018A (zh) * 2021-03-03 2021-06-15 北京邮电大学 基于混合云的模糊检索方法
CN113435184A (zh) * 2021-07-05 2021-09-24 平安科技(深圳)有限公司 文本主题抽取方法、系统、设备及存储介质
CN115426206A (zh) * 2022-11-07 2022-12-02 中邮消费金融有限公司 一种基于同态加密技术的图反欺诈能力赋能的方法及系统
CN116366283A (zh) * 2023-02-07 2023-06-30 南京模砾半导体有限责任公司 一种基于对称加密的文件安全传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150341326A1 (en) * 2014-05-21 2015-11-26 The Board Of Regents, The University Of Texas System System And Method For A Practical, Secure And Verifiable Cloud Computing For Mobile Systems
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法
CN107948146A (zh) * 2017-11-20 2018-04-20 武汉科技大学 一种混合云中基于属性加密的连接关键词检索方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150341326A1 (en) * 2014-05-21 2015-11-26 The Board Of Regents, The University Of Texas System System And Method For A Practical, Secure And Verifiable Cloud Computing For Mobile Systems
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法
CN107948146A (zh) * 2017-11-20 2018-04-20 武汉科技大学 一种混合云中基于属性加密的连接关键词检索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YU JIN, ETC.: "Data integrity verification based on hybrid cloud" *
金瑜等: "BTDA:基于半可信第三方的动态云数据更新审计方案" *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737756A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 经由两个数据拥有方进行的xgb模型预测方法、装置及系统
CN111756777A (zh) * 2020-08-28 2020-10-09 腾讯科技(深圳)有限公司 数据传输方法、数据处理设备、装置及计算机存储介质
CN112291057A (zh) * 2020-11-20 2021-01-29 天津市城市规划设计研究总院有限公司 城市规划领域提高智能物联网安全性的方法系统可读介质
CN112966018A (zh) * 2021-03-03 2021-06-15 北京邮电大学 基于混合云的模糊检索方法
CN112966018B (zh) * 2021-03-03 2022-04-01 北京邮电大学 基于混合云的模糊检索方法
CN112667674A (zh) * 2021-03-12 2021-04-16 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112667674B (zh) * 2021-03-12 2021-06-18 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113435184A (zh) * 2021-07-05 2021-09-24 平安科技(深圳)有限公司 文本主题抽取方法、系统、设备及存储介质
CN113435184B (zh) * 2021-07-05 2022-07-12 平安科技(深圳)有限公司 文本主题抽取方法、系统、设备及存储介质
CN115426206A (zh) * 2022-11-07 2022-12-02 中邮消费金融有限公司 一种基于同态加密技术的图反欺诈能力赋能的方法及系统
CN116366283A (zh) * 2023-02-07 2023-06-30 南京模砾半导体有限责任公司 一种基于对称加密的文件安全传输方法
CN116366283B (zh) * 2023-02-07 2023-08-18 南京模砾半导体有限责任公司 一种基于对称加密的文件安全传输方法

Also Published As

Publication number Publication date
CN111026788B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
CN108388807B (zh) 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN107480163B (zh) 一种云环境下支持隐私保护的高效密文图像检索方法
Chen et al. {SANNS}: Scaling up secure approximate {k-Nearest} neighbors search
Yuan et al. SEISA: Secure and efficient encrypted image search with access control
Kuzu et al. Efficient similarity search over encrypted data
CN109145079B (zh) 基于个人兴趣用户模型的云端可搜索加密方法
CN109885640B (zh) 一种基于α叉索引树的多关键词密文排序检索方法
CN112800088A (zh) 基于双向安全索引的数据库密文检索系统及方法
CN109992995B (zh) 一种支持位置保护和查询隐私的可搜索加密方法
CN109739945B (zh) 一种基于混合索引的多关键词密文排序检索方法
WO2022099495A1 (zh) 云计算环境中的密文搜索方法及系统、设备
CN112328606B (zh) 基于区块链的关键字可搜索加密方法
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
CN109471964A (zh) 一种基于同义词集的模糊多关键词可搜索加密方法
Chen et al. DMRS: an efficient dynamic multi-keyword ranked search over encrypted cloud data
CN109885650B (zh) 一种外包云环境隐私保护密文排序检索方法
Wang et al. PeGraph: A system for privacy-preserving and efficient search over encrypted social graphs
Handa et al. A cluster based multi-keyword search on outsourced encrypted cloud data
Ananthi et al. FSS-SDD: fuzzy-based semantic search for secure data discovery from outsourced cloud data
CN115309861A (zh) 一种密文检索系统、方法、计算机设备及存储介质
Henzinger et al. Private web search with Tiptoe
CN116644146A (zh) 一种文档搜索方法、装置、系统、电子设备及存储介质
CN115510490A (zh) 一种非密钥共享的加密数据查询方法、装置、系统及设备

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