CN111478765A - 一种云环境下的同态密文范围索引方法 - Google Patents

一种云环境下的同态密文范围索引方法 Download PDF

Info

Publication number
CN111478765A
CN111478765A CN202010259666.4A CN202010259666A CN111478765A CN 111478765 A CN111478765 A CN 111478765A CN 202010259666 A CN202010259666 A CN 202010259666A CN 111478765 A CN111478765 A CN 111478765A
Authority
CN
China
Prior art keywords
cloud
node
data
search engine
index
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
CN202010259666.4A
Other languages
English (en)
Other versions
CN111478765B (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.)
Guangxi University
Original Assignee
Guangxi 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 Guangxi University filed Critical Guangxi University
Priority to CN202010259666.4A priority Critical patent/CN111478765B/zh
Publication of CN111478765A publication Critical patent/CN111478765A/zh
Application granted granted Critical
Publication of CN111478765B publication Critical patent/CN111478765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种云环境下的同态密文范围索引方法,包括以下步骤:步骤S1,密钥分配中心生成密钥,实现系统初始化;步骤S2,验证用户身份权限;步骤S3,对用户提交的明文数据进行私有云加密;步骤S4,根据操作类型响应用户的操作请求,所述用户的操作请求包括查询操作请求和更新操作请求;步骤S5,将查询结果解密返回给数据使用者,或将操作结果返回给数据所有者;本发明使云存储系统能够安全高效地实现密文状态下的范围索引创建及动态更新,在实现快速的密文范围检索的基础上,还支持索引结构的动态更新,以满足云存储系统中动态数据的存储需求。

Description

一种云环境下的同态密文范围索引方法
技术领域
本发明涉及一种信息检索和信息安全领域的索引方法,尤其涉及一种云环境下的同态密文范围索引方法。
背景技术
云存储系统中,用户提交的数据检索方式包括字符型数据的精确和模糊关键词检索,以及数值型数据的等值和范围检索。例如:在用户行为记录分析存储系统中,用户的注册时间、年龄、行为发生时间、行为类型等被存储在系统中。查询请求(20190101≤行为发生时间≤20190201)表示在该时间段时所有被记录的用户行为。在云存储系统中,服务提供商(即云存储服务器)是一个半可信模型,它是诚实且好奇的,会严格地按照用户要求执行协议,但会对协议执行过程中所暴露的用户数据有所好奇,并试图从中得到更敏感的信息。用户存储的数据信息是敏感的,需要通过加密来保护这些数据的机密性。目前在关键词检索方面,有许多成熟可行的方案,且相比以往达到了更高的安全要求。但在数值型数据的范围检索方面,仍然需要解决检索方案兼顾在性能及安全性两方面所面临的问题。若对存储的所有数据进行逐个地解密搜索会带来大量的计算成本,为了对密文数据进行高效的范围检索,需构造一个安全的隐私索引方案。
在中国发明专利说明书CN201810358310.9中公开了一种基于谓词加密的支持多维区间范围查询的可搜索公钥加密方法,由密钥生成算法、生成加密索引并上传服务器、生成范围搜索陷门并上传服务器和云服务器执行查询并返回结果步骤组成。谓词加密可以判断某一密文是否满足某谓词,把是否处于某范围作为谓词,从而可以达到密文范围检索的目的。在中国发明专利说明书CN201810692703.3中公开了一种使用R树作为索引结构的空间数据密文的范围查询方法,由系统初始化、生成数据索引、生成搜索指令、云服务器执行搜索并返回符合条件的密文数据和用户解密密文结果等步骤组成。R树是一种处理高维空间存储问题的数据结构,在R树索引中,可以快速地过滤大量不符合检索条件的数据,以此达到高效查询的目的。
同态加密具有无需解密而可以直接在密文上进行运行的功能,在云计算安全领域中受到广泛的关注和研究。2012年,Fan和Vercauteren在《Somewhat Practical FullyHomomorphic Encryption》文章中提出了BFV同态加密方案,支持有限次数的同态加法和同态乘法操作,有着更少的密钥,同时还提高了计算效率。尽管同态加密可以密文上直接执行检索运算,但其运算结果仍然是加密的,而检索处理需要判断哪些数据与用户的检索请求相匹配。
在专利CN201810358310.9的可搜索公钥加密方法中,该发明需要使用谓词加密的特性对所有数据进行线性扫描,以此来判断某一数据是否符合用户提交的检索条件,其检索效率与存储的密文数据集的大小呈线性相关,对于云存储中的海量数据,其搜索成本过大。在专利CN201810692703.3的范围查询方法中,该方案需要事先获取全部数据集后,建立索引文件,后续不易对索引文件进行更新。目前,缺少一种支持动态更新索引的,并能够高效搜索的密文范围索引方案。
发明内容
本发明所要解决的技术问题是需要提供一种针对云环境下的同态密文范围索引方法,进而实现快速的密文范围检索,同时还支持索引结构的动态更新,以满足云存储系统中动态数据的存储需求。
对此,本发明提供一种云环境下的同态密文范围索引方法,包括以下步骤:
步骤S1,密钥分配中心生成私钥,实现系统初始化;
步骤S2,验证用户身份权限;
步骤S3,对用户提交的明文数据进行私有云加密;
步骤S4,根据操作类型响应用户的操作请求,所述用户的操作请求包括查询操作请求和更新操作请求;
步骤S5,将查询结果解密返回给数据使用者,或将操作结果返回给数据所有者;
其中,所述步骤S4的查询操作请求中,云存储中心将查询范围与索引结点的索引值做比较运算,并使用云搜索引擎的公钥加密不在查询范围内的虚假比较结果;云搜索引擎使用自己的私钥对比较结果解密,向云存储中心请求在查询范围内的子结点比较结果,直到叶子结点;云存储中心在向云搜索引擎发送记录数据时,使用自己的私钥对其混淆;云搜索引擎向私有云代理返回经混淆的查询结果密文;
所述步骤S4的更新操作请求中,对于插入操作,云存储中心将插入值与索引结点的索引值做比较运算,直到云存储中心访问到相应的叶子结点,然后将新增数据插入到该叶子结点;对于删除操作,云存储中心将待删除范围与索引结点的索引值做比较运算,实现递归删除操作,直到叶子结点,在叶子结点中,若被删除的包含该叶子的最大值,则选择该结点删除后的最大索引值,向父结点递归插入,直到当前子节点在父结点中对应的索引值不为空为止;对于修改操作,则在删除后重新插入。
本发明的进一步改进在于,所述步骤S1包括以下子步骤:
步骤S101,密钥分配中心调用BFV同态加密方案的Setup函数生成全局参数params;
步骤S102,密钥分配中心生成私钥sk1作为云存储中心的私钥sk1,并生成私钥sk1所对应的公钥pk1
步骤S103,密钥分配中心生成私钥sk2作为云存储中心的私钥sk2,并生成私钥sk2所对应的公钥pk2
步骤S104,密钥分配中心将全局参数params,私钥sk1,公钥pk1,公钥pk2发送给云存储中心;
步骤S105,将全局参数params,私钥sk2,公钥pk1,公钥pk2发送给云搜索引擎;
步骤S106,将全局参数params,私钥sk1,私钥sk2,公钥pk2发送给私有云代理;
步骤S107,数据用户向私有云代理注册,私有云代理向数据用户返回用户凭证。
本发明的进一步改进在于,所述步骤S2包括以下子步骤:
步骤S201,数据用户向私有云代理发送身份信息;
步骤S202,私有云代理验证其身份凭证;
步骤S203,与数据用户建立SSL会话;
步骤S204,数据用户向私有云代理发送操作请求(OP,M);
步骤S205,私有云代理检查数据用户的操作权限。
本发明的进一步改进在于,所述步骤S3包括以下子步骤:
步骤S301,私有云代理使用云搜索引擎的公钥pk2和参数params调用BFV的Encrypt算法将操作数据M加密成密文C;
步骤S302,向云存储中心发送操作密文(OP,C)。
本发明的进一步改进在于,所述步骤S4的查询操作请求包括以下子步骤:
步骤S411,云存储中心将查询范围的下界和上界与根索引结点中的索引数据做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到查询范围的下界与索引值的比较结果以及查询范围的上界与索引值的比较结果;
步骤S412,当结点未满时,向该结点增加虚假比较结果来对云搜索引擎隐藏数据的分布;当向该结点的比较结果中增加负的比较值时,随机选取两个负数,通过云搜索引擎的公钥pk2和全局参数params使用Encrypt算法将虚假比较结果加密成密文,对所有的子结点顺序在密文状态下进行加1操作;当向该结点增加正的比较值时,随机选取两个正数,使用云搜索引擎的公钥pk2和全局参数params调用Encrypt算法将虚假比较结果加密成密文,添加到比较结果中;
步骤S413,云存储中心将混淆过的比较值密文和子结点的顺序密文进行打乱处,将打乱后的结果发送给云搜索引擎;
步骤S414,云搜索引擎使用自己的私钥sk2和全局参数params调用Decryption算法解密得到明文;
步骤S415,云搜索引擎向待搜索序号队列和待请求序号队列中增加不在检索范围内的子结点,并向云存储中心发送待搜索序号队列和待请求序号队列;
步骤S416,云存储中心对待搜索序号队列和待请求序号队列进行逆打乱处理,获取待搜索结点队列和待请求结点队列;
步骤S417,对叶子结点的比较请求,除了按上述要求进行混淆操作外,云存储中心还选取一个随机数与记录数据进行异或操作,同时使用自己的公钥对该随机数加密,一同发送给云搜索引擎;
步骤S418,云搜索引擎根据比较结果明文,将符合查询条件的记录数据发送给私有云代理。
本发明的进一步改进在于,所述步骤S414中,若
Figure BDA0002438813460000041
Figure BDA0002438813460000042
都小于0,则表示对应的索引值小于查询范围;
Figure BDA0002438813460000043
Figure BDA0002438813460000044
都大于0,则表示对应的索引值大于查询范围;其余的情况则表示索引值处于查询范围内;设小于范围的索引值个数为l,处于范围内的索引值个数为e;
Figure BDA0002438813460000045
为查询范围下界与节点内第i个索引值混淆后的差值,
Figure BDA0002438813460000046
为查询范围上界与节点内第i个索引值混淆后的差值;
若e>1,且l+e=num,则云搜索引擎获取addro等于l+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列,addro为子节点,num为当前结点的索引值个数;
若e>1,且l+e<num,则云搜索引擎获取addro等于l+1或l+e+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列;
若e=1,且l+e=num,则云搜索引擎获取addro等于l+e的序号加入到待搜索序号队列;
若e=1,且l+e<num,则云搜索引擎获取addro等于l+e或l+e+1的序号加入到待搜索序号队列;
若e=0,则云搜索引擎获取addro等于l+1(若存在该结点)的序号加入到待搜索队列。
本发明的进一步改进在于,所述步骤S417中,对在搜索过程中得到的待请求结点队列,获取其叶子结点后,同样对记录数据进行异或的混淆操作,发送给云搜索引擎;所述步骤S418中,对待请求队列返回的记录,过滤之前添加的虚假请求,发送给私有云代理。
本发明的进一步改进在于,所述步骤S4的更新操作请求包括插入操作请求,所述插入操作请求以下子步骤:
步骤S421,云存储中心将插入数Newc与索引结点中的索引数据keyi c,i∈[1,number]做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到插入值与索引值的比较结果,得到比较结果密文和子结点的顺序序号;然后增加虚假比较值以混淆比较结果,发送给云搜索引擎,云搜索引擎解密比较结果后,设小于新增数据的索引值个数为l,等于新增数据的索引值个数为e,选择一个子结点addro∈[l+1,l+e+1],继续递归搜索到相应的叶子结点;
步骤S422,云存储中心将新增数据与当前叶子结点做隐私比较运算,所述隐私比较运算为做同态的减法运算后再做同态运算乘以一个随机正数,得到新增数据与索引值的比较结果;
步骤S423,当结点未满时,向该结点增加虚假的比较值来对云搜索引擎隐藏数据的分布,将比较结果进行打乱操作,并将其发送给云搜索引擎;
步骤S424,云搜索引擎解密比较值和顺序值,设小于新增数据的索引值个数为l,则云搜索引擎获得新增数据的顺序序号:l+1,并更新原序号keyo=keyo+1,将使用公钥pk2加密的顺序数据发送给云存储中心;
步骤S425,云存储中心剔除虚假数据,并执行逆打乱操作;
步骤S426,将新增数据插入到当前叶子结点,若结点未满,使用云搜索引擎返回的加密顺序更新对应的索引值顺序;
步骤S427,若插入后结点已满,在使用云搜索引擎返回的加密顺序更新原顺序后,将该结点的数据发送给云搜索引擎,在云搜索引擎的帮助下,分裂成两个结点;
步骤S428,云搜索引擎将加密的顺序序号解密成顺序明文,根据顺序明文分裂成两个结点,其顺序明文使用公钥pk2重新加密成密文;
步骤S429,云存储中心根据返回分裂信息,分裂相应的结点并更新相应的顺序信息,将分裂的结点和中值插入到父结点,递归至结点未满。
本发明的进一步改进在于,所述步骤S4的更新操作请求还包括删除操作请求,所述删除操作请求以下子步骤:
步骤S431,云存储中心将待删除范围与索引结点中的
Figure BDA0002438813460000061
i∈[1,number]做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到待删除值与索引值的比较结果,然后增加虚假比较值以混淆比较结果,发送给云搜索引擎;
步骤S432,云搜索引擎解密比较结果后,设小于待删除数据的索引值个数为l,处于待删除范围内的索引值个数为e,删除处于待删除范围内的索引值;
步骤S433,当执行到叶子结点时,若被删除的索引值包含该叶结点的最大值,则选择删除后剩余中的顺序最大的索引值递归插入到父结点,直到当前子结点所对应的索引值不为空。
本发明的进一步改进在于,所述步骤S4的更新操作请求还包括修改操作请求,所述修改操作请求以下子步骤:
步骤S441,执行删除操作请求;
步骤S442,执行插入操作请求。
与现有技术相比,本发明的有益效果在于:使云存储系统能够安全高效地实现密文状态下的范围索引创建及动态更新,并具备以下优点:解决了存储在云端的密文数据的快速索引问题,用户无需参与到查询的中间过程,而只需给出查询条件和接收查询结果,极大地降低了查询用户/终端的性能需求;在查询过程中索引系统在存储服务器和搜索服务器的交互下,依靠局部的顺序信息加速范围查询的处理过程,最高能够达到对数级的搜索效率,且只需要较小的索引存储空间;在更新和查询过程中通过不同信任域的分割,各个不被完全信任的实体只能获取部分的敏感信息,无法还原成用户的查询信息和存储的信息,从而提高了云存储的安全性;通过数据的存储及传输使用公私密钥对进行加密或解密,阻止攻击者的非授权访问,保证了数据传输的安全性。
附图说明
图1是本发明一种实施例的系统结构示意图;
图2是本发明一种实施例的索引树的数据结构示意图;
图3是本发明一种实施例的工作流程示意图;
图4是本发明一种实施例的检索操作请求的工作流程示意图;
图5是本发明一种实施例的插入操作请求的工作流程示意图;
图6是本发明一种实施例的删除操作请求的工作流程示意图;
图7是本发明一种实施例的插入操作请求实例;
图8是本发明一种实施例的查询操作请求实例;
图9是本发明一种实施例的删除操作请求实例。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
本例旨在提供一种云环境下的同态密文范围索引方法,更为具体的,提供的是基于B+树索引结构的同态密文范围索引的查询及更新方法,可用于在云环境下数据库中搜索指定范围的密文数据,同时支持增删改的更新操作,进而能够过滤掉大量不匹配的数据,以加速密文查询的处理过程,使服务器在不能推断出用户敏感信息的情况下,实现快速的密文范围检索。同时,支持索引结构的动态更新,以满足云存储系统中动态数据的存储需求。
如图1所示,本例所述同态密文范围索引方法采用了同态密文范围索引系统,所述同态密文范围索引系统包括密钥分配中心、云存储中心、云搜索引擎、私有云代理和数据用户。其中,密钥分配中心负责为各服务器分发公私密钥;私有云代理负责接收数据用户的操作请求,将操作请求加密后传递给云存储中心,等待检索操作的返回结果,然后将加密的查询结果解密后返回给数据用户;云存储中心负责存储用户的密文数据及加密索引,响应云搜索引擎的操作数据和索引值的比较请求,索引树更新操作和结点数据请求;云搜索引擎负责判断操作数与索引值的比较大小,搜索索引树,并根据索引的搜索情况,对索引树进行更新或请求相应的密文数据返回给私有云代理;数据用户可分为数据所有者和数据使用者。数据所有者可对数据进行更新操作,而数据使用者可向系统发出检索请求,并获取检索结果。所述云存储中心和云搜索引擎是两个不同服务提供商所提供的云服务平台,甚至两者可以是处于竞争关系中,所以两者处于半可信状态但不存在泄密的情况。
如图2所示,本例优选采用一种隐藏顺序信息的索引数据结构——加密B+树。如同B:树的定义一样,叶子结子包含了所有的关键字的信息以及指向含这些关键字记录的指针;而非叶结点作为索引部分,包含有该结点下各子树中的最大关键字。与常规B:树不同的是,结点中的数据使用非对称同态算法加密(具体为BFV同态加密方案),同时不是以顺序的方式进行存储,而是使用密文标志来表示索引数据在结点中的大小顺序来达到可以以乱序的方式存储索引值,来避免向云存储中心泄露密文的顺序信息。
具体地说,如图3中的索引结点所示,3表示该结点中存储了3个索引值及3个子结点的地址,子节点也称孩子节点。在索引域中,索引值顺序2c表示索引值19c为该结点中第2小的索引值;索引值顺序3c表示索引值29c为该结点中第3小的索引值;索引值顺序1c表示索引值18c为该结点中第1小的索引值。在指针域中,地址顺序3c表示指向子结点[19~29](其范围处于第2小索引值与第3小索引值之间)为该结点中第3小的子结点;地址顺序2c表示指向子结点[18~19]为该结点中第2小的子结点;地址顺序1c表示指向子结点[Min~18]为该结点中第1小的子结点。
这些索引数据和顺序标志都使用BFV同态加密算法加密,云存储中心可以在没有解密的条件下也能对结点进行混淆操作。而云搜索引擎所获得的中间数据是经过混淆后的比较结果,无法获取准确的数据分布与索引值的明文。
BFV同态加密方案主要包含以下算法:
初始化Setup算法:该算法以安全参数作为输入,产生加密方案的全局参数params,包含维数n、余数q和错误分布等;
密钥生成KeyGeneration算法:该算法包含两个概率多项式时间算法,私钥生成HE.SecretKeyGen算法根据全局参数params生成私钥sk,公钥生成HE.PublicKeyGen算法根据全局参数params和私钥sk生成公钥pk;
加密Encryption算法:该算法以私钥sk和明文m作为输入,产生与m相对应的密文c,且相同的明文加密后可得到不同的密文;
解密Decryption算法:该算法以私钥sk和密文c作为输入,解密得到相应的明文m;
同态运算Homomorphic Evaluation算法:该算法以密文序列和运算操作符作为输入,输出相应运算后的密文,其中运算操作包含加减法和乘法。
如图3所示,本例所述云环境下的同态密文范围索引方法包括以下步骤:
步骤S1,系统初始化:密钥分配中心生成云存储中心和云搜索引擎的私钥,向云存储中心发送其私钥,向云搜索引擎发送其私钥,同时将两者私钥发送给私有云代理,将两者的公钥发布到云存储中心、云搜索引擎和私有云代理。各数据用户向私有云代理发送身份信息注册,私有云代理向其返回用户凭证;
步骤S2,验证身份权限:用户提交身份、建立SSL会话和发送操作信息,私有云代理验证其身份及操作权限;
步骤S3,私有云加密:私有云将用户提交的明文数据,使用云搜索引擎的私钥加密成密文,发送给云存储中心;
步骤S4,根据操作类型的不同,用户的操作请求可为分两类:查询操作请求和更新操作请求;
其中,查询操作请求中,云存储中心将查询范围与索引结点的索引值做比较运算,并使用云搜索引擎的公钥加密一些不在查询范围内的虚假比较结果,以针对云搜索引擎临时改变真实数据的顺序信息,将包含虚假比较结果的结点比较数据发送给云搜索引擎,云搜索引擎使用自己的私钥对比较结果解密,向云存储中心请求在查询范围内的子结点比较结果,其中包括一些不在范围内的虚假请求,直到叶结点。云存储中心在向云搜索引擎发送记录数据时,使用自己的私钥对其混淆。云搜索引擎向私有云代理返回经混淆的查询结果密文;
更新操作请求中,对于插入操作,云存储中心将插入值与索引结点的索引值做比较运算,直到云存储中心访问到相应的叶子结点,然后将新增数据插入到该叶子结点。若该叶子结点已满,则需要将该结点数据与新增数据划分为两个结点,并将两结点中小结点的最大值(即原结点的中值)插入到父结点中,递归处理直到根结点。对于删除操作,云存储中心将待删除范围与索引结点的索引值做比较运算,若存在k(k>0)对异号的比较值,则将这些比较值为0的索引值删除,将第2~k个比较值为0的索引值所对应的子树直接删除,对第1对比较值为异号的索引值和第1对比较值大于0的索引值所对应的子结点继续执行递归删除,直到叶子结点。若不存在比较值为0的索引值,则对第1个比较值为异号的索引值所对应的子结点继续执行递归删除操作,直到叶子结点。而在叶子结点中,若被删除的包含该叶子的最大值,则选择该结点删除后的最大索引值,向父结点递归插入,直到当前子孩子在父结点中对应的索引值不为空为止。对于修改操作,则需要删除后重新插入,k为大于0的自然数。
步骤S5,用户返回结果:私有云代理将查询结果解密返回给数据使用者,或将操作结果返回给数据所有者。
具体的,步骤S1中系统初始化的具体过程为:
步骤S101,密钥分配中心调用BFV同态加密方案的Setup函数生成全局参数params;
步骤S102,密钥分配中心调用BFV同态加密方案中的SecretKeyGen算法生成私钥sk1作为云存储中心的私钥sk1,并调用BFV同态加密方案中的PublicKeyGen算法生成私钥sk1所对应的公钥pk1;当然,该步骤优选采用BFV同态加密方案中的SecretKeyGen算法和PublicKeyGen算法,在实际应用中,也可以采用其他约定好的算法来实现公钥和私钥的生成,步骤S103亦然;全局参数params简称参数params;
步骤S103,密钥分配中心调用SecretKeyGen算法生成私钥sk2作为云存储中心的私钥sk2,并调用PublicKeyGen算法生成私钥sk2所对应的公钥pk2
步骤S104,密钥分配中心将全局参数params,私钥sk1,公钥pk1和公钥pk2发送给云存储中心;
步骤S105,将全局参数params,私钥sk2,公钥pk2和公钥pk1发送给云搜索引擎;
步骤S106,将全局参数params,私钥sk1,私钥sk2和公钥pk2发送给私有云代理;
步骤S107,数据用户向私有云代理注册,私有云代理向数据用户返回用户凭证。
本例所述步骤S2的私有云代理验证用户身份权限的具体过程为:
步骤S201,数据用户向私有云代理发送身份;
步骤S202,私有云代理验证其身份凭证;
步骤S203,与数据用户建立SSL会话;
步骤S204,数据用户向私有云代理发送操作请求(OP,M);
步骤S205,私有云代理检查数据用户的操作权限。
本例所述步骤S3的私有云代理加密的具体过程为:
步骤S301,私有云代理使用云搜索引擎的公钥pk2和参数params调用BFV的Encrypt算法将操作数据M加密成密文C;其加密过程可以使用云搜索引擎的公钥pk2和参数params调用Encrypt算法;
步骤S302,向云存储中心发送操作密文(OP,C)。
本例所述步骤S4为公有云服务器执行操作运算,可分为四类,包括检索操作请求、插入操作请求、删除操作请求和修改操作请求。
其中,如图4所示,检索操作请求的具体过程为:
步骤S411,云存储中心将查询范围的下界(LowBound)和上界(UpBound)密文(LBc,UBc)与根索引结点中
Figure BDA0002438813460000111
(如图2中索引结点所示)的索引数据
Figure BDA0002438813460000112
i∈[1,number]做同态的减法运算后再做同态乘法运算乘以一个随机正数,得到查询范围的下界与索引值的比较结果
Figure BDA0002438813460000113
Figure BDA0002438813460000114
以及查询范围的上界与索引值的比较结果
Figure BDA0002438813460000115
Figure BDA0002438813460000116
得到比较结果密文和子结点的顺序序号
Figure BDA0002438813460000117
步骤S412,当结点未满时,可向该结点增加一些虚假的比较值来对云搜索引擎隐藏数据的分布。若结点未满,根据该结点所在的高度以及在本次搜索过程中已增加虚假比较值的次数,选取增加负比较值和正比较值的个数,若该结点的高度越高、已增加虚假比较值次数越小,则该结点增加虚假比较值的概率越高。当向该结点的比较结果中增加一组负的比较值(查询范围减索引值的结果都为负,则表示该索引值小于该范围),则随机地选取两个负数,使用云搜索引擎的公钥pk2和参数params使用Encrypt算法将虚假比较值dfake加密成密文
Figure BDA0002438813460000118
将1加密成1c。对所有的子结点顺序在密文状态下使用HomomorphicEvaluation算法进行加1操作,即子结点顺序
Figure BDA0002438813460000119
Figure BDA00024388134600001110
最后比较结果变为:
Figure BDA00024388134600001111
若向该结点增加正的比较值(即表示该虚假比较值大于查询范围),则随机选取两个正数,使用云搜索引擎的公钥pk2和参数params调用Encrypt算法将虚假比较值dfake加密成密文
Figure BDA00024388134600001112
将num加密成numc,添加到比较结果中,得到:
Figure BDA00024388134600001113
除此之外,甚至可以在原父子结点之间插入一个完全虚假的结点,以隐藏当前结点的高度。
步骤S413,云存储中心将混淆过的比较值密文和子结点的顺序密文进行打乱处理Q:
Figure BDA00024388134600001114
Figure BDA0002438813460000121
将打乱后的结果发送给云搜索引擎。
步骤S414,云搜索引擎使用自己的私钥sk2和参数params调用Decryption算法解密得到明文:
Figure BDA0002438813460000122
Figure BDA0002438813460000123
Figure BDA0002438813460000124
都小于0,则表示对应的索引值keyi小于查询范围;若
Figure BDA0002438813460000125
Figure BDA0002438813460000126
都大于0,则表示对应的索引值keyi大于查询范围;其余的情况则表示索引值keyi处于查询范围内。设小于范围的索引值个数为1,处于范围内的索引值个数为e;
Figure BDA0002438813460000127
为查询范围下界与节点内第i个索引值混淆后的差值,
Figure BDA0002438813460000128
为查询范围上界与节点内第i个索引值混淆后的差值;混淆后的差值指的是查询范围边界与结点内第i个索引值的差值;
若e>1,且l+e=num,则云搜索引擎获取addro等于l+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列(即该结点子树下的所有叶子结点中的数据都处于查询范围内),addro为子节点,num为当前结点的索引值个数;当l+e时,即num为最大的子结点;
若e>1,且l+e<num,则云搜索引擎获取addro等于l+1或l+e+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列;即有两个待搜索的结点:序号为1+1和l+e+1子结点;
若e=1,且l+e=num,则云搜索引擎获取addro等于l+e的序号加入到待搜索序号队列;
若e=1,且l+e<num,则云搜索引擎获取addro等于l+e或l+e+1的序号加入到待搜索序号队列,区别l+e=num和l+e<num的原因为:当l+e=num时,没有l+e+1子结点;
若e=0,则云搜索引擎获取addro等于l+1的序号(若存在该子结点)加入到待搜索队列。若l=num,没有第num+1个子结点;当前结点包含所有子树的数据都不在索引范围内,当前结点的搜索结束。
步骤S415,云搜索引擎向待搜索序号队列和待请求序号队列中增加一些不在检索范围内的子结点,并向云存储中心发送待搜索序号队列和待请求序号队列。
步骤S416,云存储中心对待搜索序号队列和待请求序号队列进行逆打乱处理Q-1,获取待搜索结点队列和待请求结点队列。对待搜索结点队列执行步骤S411,直到搜索到叶子结点。
步骤S417,对叶子结点的比较请求,除了按上述要求进行混淆操作外,还需附带用户所要求检索的记录数据(即使用记录数据替换非叶结点中的addro)。但为了使记录数据对云搜索引擎不可区分,云存储中心选取一个随机数与记录数据进行异或操作,同时使用自己的公钥对该随机数加密,一同发送
Figure BDA0002438813460000131
给云搜索引擎。对在上述搜索过程中得到的待请求结点队列,获取这些子树的叶子结点,同样对记录数据进行异或的混淆操作,发送给云搜索引擎。
步骤S418,云搜索引擎根据比较结果明文
Figure BDA0002438813460000132
i∈[1,num],比较结果明文指的是查询范围与索引值的差值乘以一个随机正数的明文结果;然后将符合查询条件的记录数据(即
Figure BDA0002438813460000133
异号或其中一个比较值为0)发送给私有云代理,符合查询条件指的是在处理范围边界内,即
Figure BDA0002438813460000134
异号或任一个比较值为0。对待请求队列返回的记录,过滤之前添加的虚假请求,发送给私有云代理。
如图5所示,本例所述步骤S4的插入操作请求的具体过程为:
步骤S421,云存储中心将插入数Newc与索引结点
Figure BDA0002438813460000135
中的索引值
Figure BDA0002438813460000136
i∈[1,number]做同态的减法运算后再做同态乘法运算乘以一个随机正数,得到插入值与索引值的比较结果
Figure BDA0002438813460000137
得到比较结果密文和子结点的顺序序号
Figure BDA0002438813460000138
像步骤S414步骤中增加虚假比较值以混淆比较结果,发送给云搜索引擎,云搜索引擎解密比较结果后,设小于新增数据的索引值个数为l,等于新增数据的索引值个数为e,选择一个子结点addro∈[l+1,l+e+1],继续递归搜索到相应的叶子结点,递归搜索指的是云存储中心将新增数据与索引结点的索引数据的比较结果发送给云搜索引擎,云搜索引擎根据比较结果继续请求下一结点,直到叶子结点;当l+e=num,则不存在l+e+1,只能选择[l+1,l+e]的子结点。
步骤S422,存储中心将新增数据与当前叶子结点做隐私比较运算,即做同态的减法运算后再做同态运算乘以一个随机正数,得到新增数据与索引值的比较结果:
Figure BDA0002438813460000139
Figure BDA00024388134600001310
步骤S423,如同步骤S412那样,步骤S423中,当结点未满时,可向该结点增加一些虚假的比较值来对云搜索引擎隐藏数据的分布。若结点未满,根据该结点所在的高度以及在本次搜索过程中已增加虚假比较值的次数,选取增加负比较值和正比较值的个数,若该结点的高度越高、已增加虚假比较值次数越小,则该结点增加虚假比较值的概率越高。增加虚假数据得:
Figure BDA0002438813460000141
将比较结果进行打乱操作0:
Figure BDA0002438813460000142
并将其发送给云搜索引擎。
步骤S424,云搜索引擎解密比较值和顺序值,设小于新增数据的索引值个数为l,则云搜索引擎获得新增数据的顺序序号:l+1,并更新原序号keyo=keyo+1,将使用pk2加密的顺序数据
Figure BDA0002438813460000143
发送给云存储中心。
步骤S425,云存储中心剔除虚假数据(若有增加虚假的正比较值,则需要对加密的顺序序号减去增加虚假正比较值的个数),并执行逆打乱操作Q-1
步骤S426,将新增数据插入到当前叶子结点,若结点未满,使用云搜索引擎返回的加密顺序更新对应的索引值顺序。
步骤S427,若插入后结点已满,在使用云搜索引擎返回的加密顺序更新原顺序后,需要将该结点的数据发送给云搜索引擎,在云搜索引擎的帮助下,分裂成两个结点。首先对结点
Figure BDA0002438813460000144
的索引值
Figure BDA0002438813460000145
i∈[1,num],进行混淆操作:为每个索引值
Figure BDA0002438813460000146
i∈[1,num]随机选择一个随机数ri,i∈[1,num],使用pk2将其加密成
Figure BDA0002438813460000147
i∈[1,num],索引值与随机数都是在公钥pk2下同态加密,可进行运算后仍等到相应运算后的密文结果
Figure BDA0002438813460000148
i∈[1,num]。为了使云搜索引擎能够消除随机数但又不使其暴露,云存储中心同时使用pk1将其加密成
Figure BDA0002438813460000149
i∈[1,num],附带相应的加密顺序发送给云搜索引擎,即
Figure BDA00024388134600001410
Figure BDA00024388134600001411
步骤S428,云搜索引擎将加密的顺序序号
Figure BDA00024388134600001412
i∈[1,num]解密成顺序明文,根据顺序明文分裂成两个结点,其中一个结点中的keyo∈[1,num/2],而另一个keyo∈[num/2,num],对于后者将其更新成keyo∈[1,num/2],其顺序明文使用pk2重新加密成密文。在结点分裂时,还需要将中间结点插入到父结点,选择keyo等于num/2的
Figure BDA0002438813460000151
转换成
Figure BDA0002438813460000152
具体为:云存储中心解密
Figure BDA0002438813460000153
然后使用pk1将其加密成
Figure BDA0002438813460000154
而随机数密文也是在pk1下加密的密文,两者可进行同态运算得到中值:
Figure BDA0002438813460000155
而该中值是使用pk1加密的,若将其发送给云存储中心会暴露中值明文。所以,云搜索引擎同样随机选择一个随机数q,使用pk1和pk2分别加密成
Figure BDA0002438813460000156
Figure BDA0002438813460000157
对该中值进行混淆:
Figure BDA0002438813460000158
另外,将分裂的顺序信息
Figure BDA0002438813460000159
Figure BDA00024388134600001510
其中
Figure BDA00024388134600001511
i∈[0,1]为分裂结点的顺序0或1的密文,及混淆后的中值
Figure BDA00024388134600001512
发送给云存储中心。
步骤S429,云存储中心根据返回分裂信息,分裂相应的结点并更新相应的顺序信息。将
Figure BDA00024388134600001513
解密成key+q后,使用pk2加密成
Figure BDA00024388134600001514
对混淆的中值去混淆:
Figure BDA00024388134600001515
将分裂的结点和中值插入到父结点,递归至结点未满。
如图6所示,本例所述步骤S4的删除操作请求的具体过程为:
步骤S431,云存储中心将待删除范围(LBc,UBc)与索引结点
Figure BDA00024388134600001516
中的
Figure BDA00024388134600001517
i∈[1,number]做同态的减法运算后再做同态乘法运算乘以一个随机正数,得到待删除值与索引值的比较结果:
Figure BDA00024388134600001518
其中
Figure BDA00024388134600001519
得到比较结果
Figure BDA00024388134600001520
像S414步骤中增加虚假比较值以混淆比较结果,发送给云搜索引擎。
步骤S432,云搜索引擎解密比较结果后,设小于待删除数据的索引值个数为l(即
Figure BDA00024388134600001521
都为负值),处于待删除范围内的索引值个数为e(即
Figure BDA00024388134600001522
为异号)。删除处于待删除范围内的索引值。
若e=0,则对顺序为l+1的子结点继续执行递归删除操作直到叶结点;
否则,对顺序为l+1和l+e+1的子结点继续执行递归删除操作直到叶结点,而顺序为l+2至l+e的子树则直接删除。
步骤S433,当执行到叶子结点,若被删除的索引值包含该叶结点的最大值(即该索引值的顺序该结点的num),则选择删除后剩余中的顺序最大的索引值递归插入到父结点(该索引值在父结点中的顺序标志与该子结点的顺序标志一致),直到当前子结点所对应的索引值不为空。
本例所述步骤S4的修改操作请求的具体过程为:
步骤S441,执行删除操作请求;
步骤S442,执行插入操作请求。
本例所述步骤S5的私有云代理向用户返回结果的具体过程为:
步骤S501,若用户请求的是查询操作,使用私钥sk1解密混淆值,对结果记录异或去除混淆,然后再使用私钥sk2对结果解密;
步骤S502,向用户返回明文结果,关闭会话。
综上所述,值得一提的是,本例私有云代理验证用户的身份和操作权限,以防止用户的非授权访问;云存储中心和云搜索引擎分别处于两个不同的信任域中(如:两个不存在共谋的云服务提供商提供的不同云平台),有各个的公/私密钥;隐私比较中,会对比较运算得到的差值乘以一个随机的正数,以隐藏频率信息;云存储中心响应云搜索引擎的操作数与索引值比较请求时,会增加一些不影响搜索操作的虚假数据,以防止云搜索引擎从比较信息中推测出敏感信息;云搜索引擎根据比较结果,会在向云存储中心的比较请求队列中增加一些虚假的比较请求,以防止云存储中心从访问序列中推测出索引数据的顺序信息;云搜索引擎在更新云存储中心存储的索引时,双方都对索引数据进行混淆,实现云搜索引擎无法获取数据明文,而云存储中心无法获知是哪个数据被提取到父结点中。
因此,本例采用上述同态密文索引方法和系统在云存储中,可使云存储系统安全高效地实现密文状态下的范围索引创建及动态更新,具有以下优点:
1、解决了存储在云端的密文数据的快速索引问题,用户无需参与到查询的中间过程,而只需给出查询条件、接收查询结果,极大地降低了查询用户/终端的性能需求;
2、查询过程中索引系统在存储服务器和搜索服务器的交互下,依靠局部的顺序信息加速范围查询的处理过程,最高能够达到对数级的搜索效率,且只需要较小的索引存储空间;
3、更新和查询过程中通过不同信任域的分割,各个不被完全信任的实体只能获取部分的敏感信息,无法还原成用户的查询信息和存储的信息,从而提高了云存储的安全性;
4、数据的存储及传输使用公私密钥对进行加密或解密,阻止攻击者的非授权访问,保证了数据传输的安全性。
更为具体的,本例假设数据所有者Alice想要将某特征值分别为29、12、24、18的用户行为记录存储到云存储系统中,供其它数据使用者检索,如图7所示。数据使用者Bob想要检索该特征值处于[16,20]范围内的行为记录,如图8所示。数据所有者Alice想要删除[16,29]范围内的记录,如图9所示
插入实例的插入过程如图7所示。
(1)、数据所有者将特征值为29、12、24、18的记录发送给私有云代理。
(2)、私有云代理使用pk2加密:
Figure BDA0002438813460000171
(3)、私有云代理将
Figure BDA0002438813460000172
发送给云存储中心。
(4)、云存储中心索引树为空,无需比较,直接存储到根(叶)结点中,并使用pk2加密1产生的密文作为其序号1c,得:(1c,29c,info29)。
(5)、私有云代理将
Figure BDA0002438813460000173
发送给云存储中心。
(6)、云存储中心执行隐私比较,得:-34c=(12c-29c)×2,得到比较结果:(-34c,1c)。
(7)、云存储中心对比较结果混淆,增加一个正的虚假比较值20c,得混淆后的比较结果:(-34c,2c)、(20c,1c),发送给云搜索引擎。
(8)、云搜索引擎解密比较结果,得到新增数据的顺序2,同时更新原数据的顺序序号为(3,1),将其使用pk2加密返回给云存储中心。
(9)、云存储中心去除混淆数据得新增数据的顺序1c和原数据顺序2c,插入新数据到该叶结点,更新其它数据的序号,得:((2c,29c,info29),(1c,12c,info12))。
(10)、私有云代理将
Figure BDA0002438813460000174
发送给云存储中心。
(11)、云存储中心执行隐私比较,得:-15c=(24c-29c)×3、24c=(24c-12c)×2,得到比较结果:(-15c,2c)、(24c,1c)。
(12)、云存储中心对比较结果混淆,增加一个负的混淆比较值-5c,得混淆后的比较结果:(-15c,2c)、(24c,1c)、(-5c,3c),发送给云搜索引擎。
(13)、云搜索引擎解密比较结果,得到新增数据的顺序2,同时更新原数据的顺序序号为(3,1,4),将其使用pk2加密返回给云存储中心。
(14)、云存储中心去除混淆数据得新增数据的顺序2c和原数据顺序3c,1c,插入新数据到该叶结点,更新其它数据的序号,得:((3c,29c,info29),(1c,12c,info12),(2c,24c,info24))。
(15)、私有云代理将18pk2发送给云存储中心。
(16)、云存储中心执行隐私比较,得:-22c=(18c-29c)×2、18c=(18c-12c)×3、-12c=(18c-24c)×2,得到比较结果(3c,-22c)、(1c,18c)、(2c,-12c),发送给云搜索引擎。
(17)、云搜索引擎解密比较结果,得到新增数据的顺序2,同时更新原数据的顺序序号为(4,1,3),将其使用pk2加密返回给云存储中心,插入到该结点后,得:((4c,29c,info29),(1c,12c,info12),(3c,24c,info24))。
(18)、当前叶结点已满,云存储中心随机地选择4个随机数,并使用pk1和pk2加密,得到:
Figure BDA0002438813460000181
Figure BDA00024388134600001815
(19)、对索引值进行混淆,得
Figure BDA0002438813460000182
Figure BDA0002438813460000183
(20)、云搜索引擎解密序号,将其分为两个结点,0:
Figure BDA0002438813460000184
Figure BDA00024388134600001816
(21)、云搜索引擎选取顺序为2的数据,使用sk2
Figure BDA0002438813460000185
解密成18-6,并使用pk1加密成
Figure BDA0002438813460000186
进行同态加法将其转换成
Figure BDA0002438813460000187
(22)、选取一个随机数13,使用pk1和pk2对其加密得:
Figure BDA0002438813460000188
Figure BDA0002438813460000189
对中值混淆得
Figure BDA00024388134600001810
(23)、将结点分裂信息0:
Figure BDA00024388134600001811
Figure BDA00024388134600001812
以及混淆后的中值
Figure BDA00024388134600001813
发送给云存储中心。
(24)、云存储中心新建叶结点,分裂原结点。
(25)、新建父结点作为索引树的根结点,将最大值29c插入父结点,得:(29c,1c)。
(26)、去除中值的混淆得
Figure BDA00024388134600001814
插入到父结点:((29c,2c),(18c,1c))。
(27)、插入分裂的结点,得(2,((2c,29c),((1+0)c,addr0)),((1c,18c),((1+1)c,addr1)))。
本例查询实例的查询过程如图8所示。
(1)、数据使用者将查询范围[16,20]发送给私有云代理。
(2)、私有云代理使用pk2加密得:[16c,20c]。
(3)、私有云代理将[16c,20c]发送给云存储中心。
(4)、云存储中心执行隐私比较,得:(-26c=(16c-29c)×2,-9c=(20c-29c)×1)、(-6c=(16c-18c)×3,12c=(20c-18c)×6)。
(5)、云存储中心对比较结果混淆,增加一对负的比较值,得到混淆后的比较结果:(-26c,-9c)、(-6c,12c)、(-26c,-8c),同时增加一个虚假的3c结点。
(6)、将(-26c,-9c,2c)、(-6c,12c,1c)、(-26c,-8c,3c)发送给云搜索引擎。
(7)、云搜索引擎解密比较结果,得到后续搜索的子结点:2c和1c
(8)、云搜索引擎向云存储中心请求查询范围与2c子结点的比较值。
(9)、云存储中心执行隐私比较,得:(-13c=(16c-29c)×1,-18c=(20c-29c)×2)、(-40c=(16c-24c)×5,-16c=(20c-24c)×4)。
(10)、因为当前是叶结点,需向云搜索引擎发送记录信息。选取两个随机值,r1和r2,使用pk1对其加密得
Figure BDA0002438813460000191
执行
Figure BDA0002438813460000192
Figure BDA0002438813460000193
Figure BDA0002438813460000194
(11)、云存储中心对比较结果混淆,增加一对正的比较值和一个假的info记录,得到混淆后的比较结果:
Figure BDA0002438813460000195
发送给云搜索引擎。
(12)、云搜索引擎解密比较值,该结子无匹配记录。
(13)、云搜索引擎向云存储中心请求查询范围与1c子结点的比较值。
(14)、云存储中心执行隐私比较,得:(8c=(16c-12c)×2,40c=(20c-12c)×5)、(-10c=(16c-18c)×5,6c=(20c-18c)×3)。
(15)、因为当前是叶结点,需向云搜索引擎发送记录信息。选取两个随机值,r3和r4,使用pk1对其加密得
Figure BDA0002438813460000196
执行
Figure BDA0002438813460000197
Figure BDA0002438813460000198
Figure BDA0002438813460000199
(16)、云存储中心对比较结果混淆,增加一对负的比较值和一个假的info记录,得到混淆后的比较结果:
Figure BDA00024388134600001910
发送给云搜索引擎。
(17)、云搜索引擎解密比较值,得匹配记录
Figure BDA0002438813460000201
队列中没有待比较结点,将匹配记录发送给私有云代理。
(18)、私有云代理对
Figure BDA0002438813460000202
解密得r4,去除混淆:
Figure BDA0002438813460000203
将info18返回给数据使用者。
本例删除实例的删除过程如图9所示。
(1)、用户将删除范围[16,29]发送给私有云代理。
(2)、私有云代理使用pk2加密得:[16c,29c]。
(3)、私有云代理将[16c,29c]发送给云存储中心。
(4)、云存储中心执行隐私比较,得:(-26c=(16c-29c)×2,0c=(29c-29c)×1)、(-6c=(16c-18c)×3,66c=(29c-18c)×6)、(-60c=(16c-36c)×3,-42c=(29c-36c)×6)。
(5)、将(-26c,0c,1c,2c)、(-6c,66c,3c,1c)、(-60c,-42c,2c,3c)发送给云搜索引擎。
(6)、云搜索引擎解密比较结果(-26,0,1,2)、(-6,66,3,1)、(-60,-42,2,3)。
(7)、云搜索引擎向云在中发送删除请求,即顺序为1,2的索引值和顺序为2的子树。
(8)、云搜索引擎向云存储中心继续比较的请求,即顺序为1,3的子结点。
(9)、云存储中心对顺序为3的子结点执行隐私比较,得:(-16c=(16c-32c)×1,-21c=(29c-32c)×7)、(-39c=(16c-29c)×3,0c=(29c-29c)×11)、(-40c=(16c-36c)×2,-21c=(29c-36c)×3)。
(10)、将比较结果(-16c,-21c)、(-39c,0c)、(-40c,-21c)和索引值顺序(2c,1c,3c)发送给云搜索引擎。
(11)、云搜索引擎解密比较值,得比较结果(-16,-21)、(-39,0)、(-40,-21)和索引值顺序(2,1,3)。
(12)、云搜索引擎向云在中发送删除请求,即顺序为1的索引值及对应记录。
(13)、云搜索引擎更新删除后的索引值顺序:
Figure BDA0002438813460000204
(14)、云存储中心对顺序为1的子结点执行隐私比较,得:(8c=(16c-12c)×2,51c=(29c-12c)×3)、(-6c=(16c-18c)×3,55c=(29c-18c)×5)。
(15)、将比较结果(8c,51c)、(-6c,55c)和索引值顺序(1c,2c)发送给云搜索引擎。
(16)、云搜索引擎解密比较值,得比较结果(8,51)、(-6,55)和索引值顺序(1,2)。
(17)、云搜索引擎向云在中发送删除请求,即顺序为2的索引值及对应记录。
(18)、云搜索引擎更新删除后的索引值顺序:
Figure BDA0002438813460000211
并要求向父结点插入顺序为1c的索引值。
(19)、云存储中心发送待插入索引值及其顺序12c和1c,索引值顺序(1c,3c),和子结点顺序(1c,3c)。
(20)、云搜索引擎解密后,更新其索引值的顺序:
Figure BDA0002438813460000212
(2c,)、(1c,12c),更新其子结点的顺序:(1c,2c)。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种云环境下的同态密文范围索引方法,其特征在于,包括以下步骤:
步骤S1,密钥分配中心生成密钥,实现系统初始化;
步骤S2,验证用户身份权限;
步骤S3,对用户提交的明文数据进行私有云加密;
步骤S4,根据操作类型响应用户的操作请求,所述用户的操作请求包括查询操作请求和更新操作请求;
步骤S5,将查询结果解密返回给数据使用者,或将操作结果返回给数据所有者;
其中,所述步骤S4的查询操作请求中,云存储中心将查询范围与索引结点的索引值做比较运算,并使用云搜索引擎的公钥加密不在查询范围内的虚假比较结果;云搜索引擎使用自己的私钥对比较结果解密,向云存储中心请求在查询范围内的子结点比较结果,直到叶子结点;云存储中心在向云搜索引擎发送记录数据时,使用自己的私钥对其混淆;云搜索引擎向私有云代理返回经混淆的查询结果密文;
所述步骤S4的更新操作请求中,对于插入操作,云存储中心将插入值与索引结点的索引值做比较运算,直到云存储中心访问到相应的叶子结点,然后将新增数据插入到该叶子结点;对于删除操作,云存储中心将待删除范围与索引结点的索引值做比较运算,实现递归删除操作,直到叶子结点,在叶子结点中,若被删除的包含该叶子的最大值,则选择该结点删除后的最大索引值,向父结点递归插入,直到当前子节点在父结点中对应的索引值不为空为止;对于修改操作,则在删除后重新插入。
2.根据权利要求1所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S1包括以下子步骤:
步骤S101,密钥分配中心调用BFV同态加密方案的Setup函数生成全局参数params;
步骤S102,密钥分配中心生成私钥sk1作为云存储中心的私钥sk1,并生成私钥sk1所对应的公钥pk1
步骤S103,密钥分配中心生成私钥sk2作为云存储中心的私钥sk2,并生成私钥sk2所对应的公钥pk2
步骤S104,密钥分配中心将全局参数params,私钥sk1,公钥pk1,公钥pk2发送给云存储中心;
步骤S105,将全局参数params,私钥sk2,公钥pk1,公钥pk2发送给云搜索引擎;
步骤S106,将全局参数params,私钥sk1,私钥sk2,公钥pk2发送给私有云代理;
步骤S107,数据用户向私有云代理注册,私有云代理向数据用户返回用户凭证。
3.根据权利要求1所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S2包括以下子步骤:
步骤S201,数据用户向私有云代理发送身份信息;
步骤S202,私有云代理验证其身份凭证;
步骤S203,与数据用户建立SSL会话;
步骤S204,数据用户向私有云代理发送操作请求(OP,M);
步骤S205,私有云代理检查数据用户的操作权限。
4.根据权利要求1所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S3包括以下子步骤:
步骤S301,私有云代理使用云搜索引擎的公钥pk2和参数params调用BFV的Encrypt算法将操作数据M加密成密文C;
步骤S302,向云存储中心发送操作密文(OP,C)。
5.根据权利要求1至4任意一项所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S4的查询操作请求包括以下子步骤:
步骤S411,云存储中心将查询范围的下界和上界与根索引结点中的索引数据做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到查询范围的下界与索引值的比较结果以及查询范围的上界与索引值的比较结果;
步骤S412,当结点未满时,向该结点增加虚假比较结果来对云搜索引擎隐藏数据的分布;当向该结点的比较结果中增加负的比较值时,随机选取两个负数,通过云搜索引擎的公钥pk2和全局参数params使用Encrypt算法将虚假比较结果加密成密文,对所有的子结点顺序在密文状态下进行加1操作;当向该结点增加正的比较值时,随机选取两个正数,使用云搜索引擎的公钥pk2和全局参数params调用Encrypt算法将虚假比较结果加密成密文,添加到比较结果中;
步骤S413,云存储中心将混淆过的比较值密文和子结点的顺序密文进行打乱处,将打乱后的结果发送给云搜索引擎;
步骤S414,云搜索引擎使用自己的私钥sk2和全局参数params调用Decryption算法解密得到明文;
步骤S415,云搜索引擎向待搜索序号队列和待请求序号队列中增加不在检索范围内的子结点,并向云存储中心发送待搜索序号队列和待请求序号队列;
步骤S416,云存储中心对待搜索序号队列和待请求序号队列进行逆打乱处理,获取待搜索结点队列和待请求结点队列;
步骤S417,对叶子结点的比较请求,除了按上述要求进行混淆操作外,云存储中心还选取一个随机数与记录数据进行异或操作,同时使用自己的公钥对该随机数加密,一同发送给云搜索引擎;
步骤S418,云搜索引擎根据比较结果明文,将符合查询条件的记录数据发送给私有云代理。
6.根据权利要求5所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S414中,若
Figure FDA0002438813450000033
Figure FDA0002438813450000034
都小于0,则表示对应的索引值小于查询范围;
Figure FDA0002438813450000031
Figure FDA0002438813450000032
都大于0,则表示对应的索引值大于查询范围;其余的情况则表示索引值处于查询范围内;设小于查询范围的索引值个数为l,处于查询范围内的索引值个数为e;
Figure FDA0002438813450000036
为查询范围下界与节点内第i个索引值混淆后的差值,
Figure FDA0002438813450000035
为查询范围上界与节点内第i个索引值混淆后的差值;
若e>1,且l+e=num,则云搜索引擎获取addro等于l+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列,addro为子节点,num为当前结点的索引值个数;
若e>1,且l+e<num,则云搜索引擎获取addro等于l+1或l+e+1的序号加入到待搜索序号队列,获取addro∈[l+2,l+e]的序号加入待请求序号队列;
若e=1,且l+e=num,则云搜索引擎获取addro等于l+e的序号加入到待搜索序号队列;
若e=1,且l+e<num,则云搜索引擎获取addro等于l+e或l+e+1的序号加入到待搜索序号队列;
若e=0,则云搜索引擎获取addro等于l+1的序号加入到待搜索队列。
7.根据权利要求5所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S417中,对在搜索过程中得到的待请求结点队列,获取其叶子结点后,同样对记录数据进行异或的混淆操作,发送给云搜索引擎;所述步骤S418中,对待请求队列返回的记录,过滤之前添加的虚假请求,发送给私有云代理。
8.根据权利要求1至4任意一项所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S4的更新操作请求包括插入操作请求,所述插入操作请求以下子步骤:
步骤S421,云存储中心将插入数Newc与索引结点中的索引数据
Figure FDA0002438813450000041
i∈[1,number]做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到插入值与索引值的比较结果,得到比较结果密文和子结点的顺序序号;然后增加虚假比较值以混淆比较结果,发送给云搜索引擎,云搜索引擎解密比较结果后,设小于新增数据的索引值个数为l,等于新增数据的索引值个数为e,选择一个子结点addro∈[l+1,l+e+1],继续递归搜索到相应的叶子结点;
步骤S422,云存储中心将新增数据与当前叶子结点做隐私比较运算,所述隐私比较运算为做同态的减法运算后再做同态运算乘以一个随机正数,得到新增数据与索引值的比较结果;
步骤S423,当结点未满时,向该结点增加虚假的比较值来对云搜索引擎隐藏数据的分布,将比较结果进行打乱操作,并将其发送给云搜索引擎;
步骤S424,云搜索引擎解密比较值和顺序值,设小于新增数据的索引值个数为l,则云搜索引擎获得新增数据的顺序序号:l+1,并更新原序号keyo=keyo+1,将使用公钥pk2加密的顺序数据发送给云存储中心;
步骤S425,云存储中心剔除虚假数据,并执行逆打乱操作;
步骤S426,将新增数据插入到当前叶子结点,若结点未满,使用云搜索引擎返回的加密顺序更新对应的索引值顺序;
步骤S427,若插入后结点已满,在使用云搜索引擎返回的加密顺序更新原顺序后,将该结点的数据发送给云搜索引擎,在云搜索引擎的帮助下,分裂成两个结点;
步骤S428,云搜索引擎将加密的顺序序号解密成顺序明文,根据顺序明文分裂成两个结点,其顺序明文使用公钥pk2重新加密成密文;
步骤S429,云存储中心根据返回分裂信息,分裂相应的结点并更新相应的顺序信息,将分裂的结点和中值插入到父结点,递归至结点未满。
9.根据权利要求8所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S4的更新操作请求还包括删除操作请求,所述删除操作请求以下子步骤:
步骤S431,云存储中心将待删除范围与索引结点中的
Figure FDA0002438813450000042
i∈[1,number]做同态的减法运算后,再做同态乘法运算乘以一个随机正数,得到待删除值与索引值的比较结果,然后增加虚假比较值以混淆比较结果,发送给云搜索引擎;
步骤S432,云搜索引擎解密比较结果后,设小于待删除数据的索引值个数为l,处于待删除范围内的索引值个数为e,删除处于待删除范围内的索引值;
步骤S433,当执行到叶子结点时,若被删除的索引值包含该叶结点的最大值,则选择删除后剩余中的顺序最大的索引值递归插入到父结点,直到当前子结点所对应的索引值不为空。
10.根据权利要求9所述的云环境下的同态密文范围索引方法,其特征在于,所述步骤S4的更新操作请求还包括修改操作请求,所述修改操作请求以下子步骤:
步骤S441,执行删除操作请求;
步骤S442,执行插入操作请求。
CN202010259666.4A 2020-04-03 2020-04-03 一种云环境下的同态密文范围索引方法 Active CN111478765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010259666.4A CN111478765B (zh) 2020-04-03 2020-04-03 一种云环境下的同态密文范围索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010259666.4A CN111478765B (zh) 2020-04-03 2020-04-03 一种云环境下的同态密文范围索引方法

Publications (2)

Publication Number Publication Date
CN111478765A true CN111478765A (zh) 2020-07-31
CN111478765B CN111478765B (zh) 2023-06-09

Family

ID=71749607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010259666.4A Active CN111478765B (zh) 2020-04-03 2020-04-03 一种云环境下的同态密文范围索引方法

Country Status (1)

Country Link
CN (1) CN111478765B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906030A (zh) * 2021-03-09 2021-06-04 浙江万里学院 基于多方全同态加密的数据共享方法和系统
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
CN116708040A (zh) * 2023-08-07 2023-09-05 成都墨甲信息科技有限公司 一种基于对称同态加密的数据安全管控方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106571905A (zh) * 2016-11-02 2017-04-19 南京邮电大学 一种数值型数据同态保序加密方法
CN107908779A (zh) * 2017-12-05 2018-04-13 河南科技大学 云环境下基于mat树的动态多属性连接关键词的搜索方法
US20180183571A1 (en) * 2015-09-04 2018-06-28 NEC Laboratories Europe GmbH Method for providing encrypted data in a database and method for searching on encrypted data
CN108985094A (zh) * 2018-06-28 2018-12-11 电子科技大学 云环境下实现密文空间数据的访问控制和范围查询方法
CN109344637A (zh) * 2018-10-24 2019-02-15 北京理工大学 一种可搜索和保护隐私的数据共享云辅助电子医疗系统
CN109450935A (zh) * 2018-12-19 2019-03-08 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180183571A1 (en) * 2015-09-04 2018-06-28 NEC Laboratories Europe GmbH Method for providing encrypted data in a database and method for searching on encrypted data
CN106571905A (zh) * 2016-11-02 2017-04-19 南京邮电大学 一种数值型数据同态保序加密方法
CN107908779A (zh) * 2017-12-05 2018-04-13 河南科技大学 云环境下基于mat树的动态多属性连接关键词的搜索方法
CN108985094A (zh) * 2018-06-28 2018-12-11 电子科技大学 云环境下实现密文空间数据的访问控制和范围查询方法
CN109344637A (zh) * 2018-10-24 2019-02-15 北京理工大学 一种可搜索和保护隐私的数据共享云辅助电子医疗系统
CN109450935A (zh) * 2018-12-19 2019-03-08 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAOHUA HUANG等: "A Range Search Scheme Based on Encrypted Index Hiding Order and Access Patterns" *
黄保华等: "数据库中数值型数据的加密存储与查询方法" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
CN112906030A (zh) * 2021-03-09 2021-06-04 浙江万里学院 基于多方全同态加密的数据共享方法和系统
CN116708040A (zh) * 2023-08-07 2023-09-05 成都墨甲信息科技有限公司 一种基于对称同态加密的数据安全管控方法及系统
CN116708040B (zh) * 2023-08-07 2023-10-24 成都墨甲信息科技有限公司 一种基于对称同态加密的数据安全管控方法及系统

Also Published As

Publication number Publication date
CN111478765B (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
CN110337649B (zh) 用于搜索模式未察觉的动态对称可搜索加密的方法和系统
Wang et al. Secure ranked keyword search over encrypted cloud data
CN111478765B (zh) 一种云环境下的同态密文范围索引方法
Wang et al. Enabling secure and efficient ranked keyword search over outsourced cloud data
US10833841B2 (en) Leakage-free order-preserving encryption
US10664610B2 (en) Method and system for range search on encrypted data
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
Zhang et al. Dynamic and Efficient Private Keyword Search over Inverted Index--Based Encrypted Data
US10929402B1 (en) Secure join protocol in encrypted databases
Li et al. Traceable and controllable encrypted cloud image search in multi-user settings
Poon et al. Fast phrase search for encrypted cloud storage
CN115459967A (zh) 一种基于可搜索加密的密文数据库查询方法及系统
CN113836571B (zh) 基于云和区块链的医疗数据拥有终端位置匹配方法及系统
Park et al. PKIS: practical keyword index search on cloud datacenter
Ibrahim et al. Towards efficient yet privacy-preserving approximate search in cloud computing
Cui et al. P-McDb: Privacy-preserving search using multi-cloud encrypted databases
Yang et al. Mu-teir: Traceable encrypted image retrieval in the multi-user setting
Ahsan et al. Countering statistical attacks in cloud-based searchable encryption
JP7217844B1 (ja) 秘匿検索システムおよび秘匿検索方法
Song et al. Traceable and privacy-preserving non-interactive data sharing in mobile crowdsensing
CN114168703A (zh) 一种群组加密数据检索方法
Pillai et al. Blockchain-Based Searchable Asymmetric Encryption Scheme in Cloud Environment
JP5969681B1 (ja) 秘密情報管理システム
EP2924620B1 (en) Method and system for high-performance private matching
Baldimtsi et al. Sorting and searching behind the curtain: Private outsourced sort and frequency-based ranking of search results over encrypted data

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