CN116366259A - 一种面向密文数据的公共可验证布尔搜索系统及方法 - Google Patents

一种面向密文数据的公共可验证布尔搜索系统及方法 Download PDF

Info

Publication number
CN116366259A
CN116366259A CN202310332291.3A CN202310332291A CN116366259A CN 116366259 A CN116366259 A CN 116366259A CN 202310332291 A CN202310332291 A CN 202310332291A CN 116366259 A CN116366259 A CN 116366259A
Authority
CN
China
Prior art keywords
key
query
cloud server
ciphertext
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.)
Pending
Application number
CN202310332291.3A
Other languages
English (en)
Inventor
王强
卢嘉蕙
周福才
Original Assignee
东北大学
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 东北大学 filed Critical 东北大学
Priority to CN202310332291.3A priority Critical patent/CN116366259A/zh
Publication of CN116366259A publication Critical patent/CN116366259A/zh
Pending legal-status Critical Current

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种面向密文数据的公共可验证布尔搜索系统及方法,涉及信息安全技术领域。该系统及方法利用了基于密钥策略的属性加密、可搜索加密以及公共可验证的概念,隐藏了客户端的查询关键字,对云服务器返回的查询结果可进行公共验证,在保证数据安全的同时,帮助客户端提高了资源的利用率。同时,该系统及方法提出盲验证即验证者无法了解到实际输出的具体值,保护了客户端的输出隐私。并且该方法支持撤销行为不端的云服务器,避免了云服务器对客户端提供无效的外包查询服务的问题,提升了云服务器的健壮性及可用性,使客户端的的查询访问更完善,大大减少了恶意服务器的有效攻击,与传统方案相比,具有很高的安全性及实用性。

Description

一种面向密文数据的公共可验证布尔搜索系统及方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种面向密文数据的公共可验证布尔搜索系统及方法。
背景技术
随着海量数据的增长,为满足存储需求很多终端客户选择将数据外包给云服务器进行存储。用户将数据上传至云服务器,无法直接对数据进行控制,用户只能寄希望于云服务器不被攻击且诚实地提供查询服务。但近年来,云服务器导致数据泄露的事件层出不穷,如何保障数据的机密性成为一个不容小觑的问题。通常会在将数据上传到云服务器前对数据进行加密,但是将面临用户如何对密文进行查找的难题,可搜索加密应运而生。可搜索加密允许对加密后上传到云服务器中的数据即外包密文数据进行检索操作而不泄露数据的隐私,保证了外包存储数据的隐私性,并且整个检索过程中不涉及对密文数据的解密。
布尔搜索技术是可搜索加密的一个重要研究方向,其主要用于在文档集合中查找符合特定布尔表达式的文档。将布尔搜索技术应用于服务器对外包密文的查询过程中,可提高搜索结果的精确度和相关性。然而在外包环境中,恶意用户攻击等诸多风险因素都可能导致云服务器没有正确为数据拥有者提供服务,数据拥有者无法得知搜索结果是否满足完整性和机密性。并且外包密文数据通常具有很高的商业价值,未经授权的篡改会带来不可估量的经济损失。数据拥有者需要可靠的验证机制判断收到的搜索结果是否正确。
国内外的研究人员提出了一些可验证的密文搜索方案,客户端虽能够验证查询结果的正确性,但这些方案仅支持在本地存储数据且仅能支持单个关键字的搜索,并且存在不同客户端可重复进行相同的查询请求并验证结果的问题,在很大程度上造成了时间和资源的浪费。
综上,在实现密文数据搜索过程中,确保数据安全性并对搜索结果进行验证以避免资源浪费,是一个亟待解决的问题。
发明内容
针对上述现有技术存在的不足,本发明提供一种面向密文数据的公共可验证布尔搜索系统及方法。
本发明的技术方案为:
本发明第一方面提供一种面向密文数据的公共可验证布尔搜索系统,参与该系统的实体包括完全可信的密钥分发中心,客户端和云服务器;
所述密钥分发中心,用于生成公共参数;当有云服务器S提出注册请求时,为S分配数字签名密钥以赋予S一个有效的身份信息;当S提出认证请求时,密钥分发中心利用公共参数为S生成一个查询密钥,使S具有查询数据的能力;如果有客户端向密钥分发中心举报云服务器S查询失败,密钥分发中心撤销S的查询功能,使其不再具有后续外包查询的能力;
客户端,用于在向云服务器S提交查询请求前,利用密钥分发中心产生的公共参数对所需查询的关键字w进行预处理:生成密文输入值σw、用于验证布尔查询值是否正确的验证密钥和用于将密文输出值恢复成明文的恢复密钥;参与公共验证的其他客户端利用验证密钥对云服务器S返回的密文查询结果进行盲验证,在不解密的情况下验证查询结果是否正确:如果盲验证通过,客户端继续恢复输出,得到最终的明文查询结果,如果盲验证未通过,客户端向密钥分发中心举报S查询失败;
云服务器,用于客户端向云服务器S提交查询请求时,执行查询服务并生成相应的密文查询结果且返回给客户端;所述密文查询结果包括盲化的密文输出值、云服务器的身份信息以及对密文输出值的签名信息。
本发明第二方面提供一种面向密文数据的公共可验证布尔搜索方法,所述方法包括如下步骤:
步骤1:密钥分发中心执行初始化操作:初始化一个空的用于执行布尔查询Q的有效查询服务器列表LQ;初始化一个空的用于存放已注册云服务器的唯一标识符id的注册服务器列表LReg;生成公共参数,包括客户端所需的参数PP,云服务器所需的公共信息密钥PKQ和主密钥MK;
步骤2:当有云服务器S提出注册请求时,由密钥分发中心为S生成数字签名密钥,包括签名私钥SKS和签名验证密钥VKsign,并将该云服务器S的唯一标识符id与VKsign一同添加到注册服务器列表LReg,完成该云服务器S在密钥分发中心的注册;
步骤3:当云服务器S向密钥分发中心提出认证请求时,密钥分发中心利用公共信息密钥PKQ和主密钥MK为云服务器S生成一个查询密钥,且将该云服务器S的唯一标识符id加入列表LQ,代表该云服务器已被认证并具有执行布尔查询Q的能力;
步骤4:客户端利用参数PP对所需查询的关键字w进行预处理:生成发送给云服务器S的密文输入值σw、用于验证布尔查询值是否正确的验证密钥VKQ,w以及用于将密文输出值恢复成明文的恢复密钥RKQ,w
骤5:当有客户端向云服务器S提交查询请求时,该云服务器S执行查询服务,利用公共信息密钥PKQ、查询密钥EKQ,S和云服务器的签名私钥SKS对密文输入值σw进行查询,该云服务器S执行查询操作后,若查询失败则输出随机值,若查询成功则得到盲化的密文输出值,并对该盲化的密文输出值进行签名,生成最终的密文结果值σb
步骤6:由参与公共验证的其他客户端,应用验证密钥VKQ,w对云服务器S返回的密文结果值σb进行公开盲验证,若盲验证通过,则输出令牌τσb=(accept,S)并得到真实的密文输出值μ且执行步骤7;若盲验证未通过,则向密钥分发中心举报S查询失败并输出令牌τσb=(reject,S)且执行步骤8;
步骤7:由拥有恢复密钥RKQ,w的客户端利用验证密钥VKQ,w和恢复密钥RKQ,w对真实的密文输出值μ进行恢复得到最终的明文查询结果;
步骤8:密钥分发中心在接收到来自客户端的举报后,撤销该云服务器S的查询功能,使其不再具有后续外包查询的能力。
进一步地,根据所述的面向密文数据的公共可验证布尔搜索方法,步骤3中所述的密钥分发中心利用公共信息密钥PKQ和主密钥MK为云服务器S生成查询密钥的方法为:密钥分发中心首先从时间源τ选取当前操作时间,记作t;然后利用自定义的布尔查询表达式属性标签
Figure BDA0004155277430000031
分别对布尔查询Q和布尔查询/>
Figure BDA0004155277430000032
进行加密处理生成σQ和/>
Figure BDA0004155277430000033
利用σQ、/>
Figure BDA0004155277430000034
公共信息密钥PKQ、主密钥MK,通过调用可撤销KPABE方案提供的KeyGen算法,分别生成针对布尔查询Q的解密密钥/>
Figure BDA0004155277430000035
和布尔查询/>
Figure BDA0004155277430000036
的解密密钥/>
Figure BDA0004155277430000037
再然后调用可撤销KPABE方案提供的Update算法,分别生成针对布尔查询Q的更新密钥/>
Figure BDA0004155277430000038
和布尔查询/>
Figure BDA0004155277430000039
的更新密钥/>
Figure BDA00041552774300000310
最终输出云服务器S对于布尔查询的查询密钥/>
Figure BDA00041552774300000311
进一步地,根据所述的面向密文数据的公共可验证布尔搜索方法,步骤4中所述的对所需查询的关键字w进行预处理的方法为:客户端首先从时间源τ选取当前操作时间,记作t;接着随机选取明文消息m0和m1,并将m0和m1盲化分别生成消息mx和消息m1-x,其中x∈{0,1};然后将所述布尔查询表达式属性标签f添加到所需查询的关键字w中生成集合W,并把W与公共参数PP、消息mx和消息m1-x作为参数通过调用可撤销KPABE方案提供的Encrypt算法得到cx和c1-x,即密文输入值σw=(cx,c1-x);最终利用哈希函数计算得到哈希值g(mx)和g(m1-x),并把上述两个哈希值与LReg一同作为用于验证密文布尔查询值是否正确的验证密钥输出,记为VKQ,w;同时输出用于将密文输出值恢复得到最终的明文输出值的恢复密钥RKQ,w=x。
进一步地,根据所述的面向密文数据的公共可验证布尔搜索方法,步骤5的具体方法为:云服务器S首先将σw解析为(c,c′);然后以公共信息密钥PKQ和查询密钥EKQ,S作为输入,通过调用可撤销KPABE方案提供的Decrypt算法,用与布尔查询Q相关的密钥
Figure BDA0004155277430000041
对密文c进行解密得到d0;同理用与布尔查询/>
Figure BDA0004155277430000042
相关的密钥/>
Figure BDA0004155277430000043
对密文c′进行解密得到d1;在解密上述内容时,首先需判断与密文相关的所需查询的关键字w是否满足访问策略,若满足,直接解密得到dx和d1-x,若不满足,则该云服务器无法解密,直接输出随机值;最后调用SIGN方案提供的签名算法对解密结果和云服务器S的唯一标识符id进行签名得到γ,生成完整的密文结果值σb=(dx,d1-x,S,γ)。
进一步地,根据所述的面向密文数据的公共可验证布尔搜索方法,步骤6的具体方法为:首先判断云服务器的唯一标识符id是否属于注册服务器列表LReg和有效查询服务器列表LQ,并调用SIGN方案提供的签名验证算法来验证云服务器返回的签名是否正确;在签名正确的情况下,利用验证密钥VKQ,w比较哈希值进行判断:如果g(mx)=g(dx)则密文输出值μ=dx且相对应的令牌为
Figure BDA0004155277430000044
如果g(m1-x)=g(d1-x)则密文输出值μ=d1-x且相对应的令牌为/>
Figure BDA0004155277430000045
其他情况则密文输出值μ=⊥且/>
Figure BDA0004155277430000046
进一步地,根据所述的面向密文数据的公共可验证布尔搜索方法,步骤8中所述密钥分发中心撤销被举报的云服务器S的查询功能的方法为:密钥分发中心首先将被撤销的云服务器S的唯一标识符id从有效查询服务器列表LQ中删除;对查询密钥EKQ,S进行更新:重新选择当前时间,并再次调用可撤销KPABE方案提供的Update算法得到新的查询密钥
Figure BDA0004155277430000047
将更新后的EKQ,S′密钥重新分发给所有未被撤销的云服务器S′,为其他云服务器更新查询密钥EKQ,S′(S'≠S),这就相当于间接撤销了云服务器S的外包查询能力。
总体而言,通过本发明所构思的以上技术方案较现有技术具有以下有益效果:
本发明系统及方法利用了基于密钥策略的属性加密技术(Key-Policy AttributeBased Encryption,KPABE)、可搜索加密技术(Searchable encryption,SE)以及公共可验证的概念,隐藏了客户端的查询关键字,对云服务器返回的查询结果可进行公共验证,在保证数据安全的同时,帮助客户端提高了资源的利用率。同时,本发明系统及方法提出盲验证即验证者(参与验证的客户端)无法了解到实际输出的具体值,保护了客户端的输出隐私。并且,该方法支持撤销行为不端的云服务器,避免了云服务器对客户端提供无效的外包查询服务的问题,提升了云服务器的健壮性及可用性。
本发明系统及方法满足公共可验证性、可撤销性以及盲验证性,使客户端的的查询访问更完善,大大减少了恶意服务器的有效攻击,与传统方案相比,具有很高的安全性及实用性。
附图说明
图1为本实施方式面向密文数据的公共可验证布尔搜索系统的结构示意图;
图2为本实施方式面向密文数据的公共可验证布尔搜索方法的流程示意图;
具体实施方式
为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1是本实施方式的面向密文数据的公共可验证布尔搜索系统的结构示意图,所述面向密文数据的公共可验证布尔搜索系统中参与的实体包括密钥分发中心,客户端和云服务器。如图1所示,其中密钥分发中心负责管理和分发加密通信中使用的密钥且是完全可信的,云服务器是位于云上的半可信存储设备。密钥分发中心、客户端与云服务器三者进行交互。具体为:
所述密钥分发中心,用于生成公共参数;当有云服务器S提出注册请求时,为S分配数字签名密钥以赋予S一个有效的身份信息;当S提出认证请求时,密钥分发中心利用公共参数为S生成一个查询密钥,使S具有查询数据的能力;如果有客户端向密钥分发中心举报云服务器S查询失败,密钥分发中心撤销S的查询功能,使其不再具有后续外包查询的能力;
客户端,用于在向云服务器S提交查询请求前,利用密钥分发中心产生的公共参数对所需查询的关键字w进行预处理:生成密文输入值σw、用于验证布尔查询值是否正确的验证密钥和用于将密文输出值恢复成明文的恢复密钥;参与公共验证的其他客户端利用验证密钥对云服务器S返回的密文查询结果进行盲验证,在不解密的情况下验证查询结果是否正确:如果盲验证通过,客户端继续恢复输出,得到最终的明文查询结果,如果盲验证未通过,客户端向密钥分发中心举报S查询失败;
云服务器,用于客户端向云服务器S提交查询请求时,执行查询服务并生成相应的密文查询结果且返回给客户端;所述密文查询结果包括盲化的密文输出值、云服务器的身份信息以及对密文输出值的签名信息。
图2是本实施方式的面向密文数据的公共可验证布尔搜索方法的流程示意图,如图2所示,所述面向密文数据的公共可验证布尔搜索方法包括如下步骤:
步骤1:密钥分发中心执行初始化操作:初始化一个空的用于执行布尔查询Q的有效查询服务器列表LQ;初始化一个空的用于存放已注册云服务器的唯一标识符id的注册服务器列表LReg;生成公共参数,包括客户端所需的参数PP,云服务器所需的公共信息密钥PKQ和主密钥MK。
首先由密钥分发中心制定属性集合
Figure BDA0004155277430000061
并随机选取一个安全参数λ,然后将属性集合/>
Figure BDA0004155277430000062
和安全参数λ作为输入参数,调用可撤销KPABE方案(源自论文《Attribute-BasedEncryption Supporting Direct/Indirect Revocation Modes》)提供的初始化算法,生成针对布尔查询Q的参数和布尔查询/>
Figure BDA0004155277430000063
的参数。其中Q表示布尔查询表达式(例如:Q(w1,w2,w3)=w1∨w2∨w3,/>
Figure BDA0004155277430000064
其中w1,w2,w3均为查询关键字)。
具体来说,首先初始化时间源τ,生成参数
Figure BDA0004155277430000065
和/>
Figure BDA0004155277430000066
以及主密钥/>
Figure BDA0004155277430000067
和/>
Figure BDA0004155277430000068
将上述参数组合,生成公共参数/>
Figure BDA0004155277430000069
和主密钥/>
Figure BDA00041552774300000610
并为布尔查询Q生成公共信息密钥PKQ=PP。同时初始化一个空的用于执行布尔查询Q的有效查询服务器列表LQ。除此之外,还需初始化一个空的注册服务器列表LReg,用于存放已注册云服务器的唯一标识符id。
步骤2:当有云服务器S提出注册请求时,由密钥分发中心为S生成数字签名密钥,包括签名私钥SKS和签名验证密钥VKsign,并将该云服务器S的唯一标识符id与VKsign一同添加到注册服务器列表LReg,完成该云服务器S在密钥分发中心的注册;
具体来说,云服务器向密钥分发中心提交注册申请,密钥分发中心收到注册申请后,通过调用SIGN数字签名方案(源自书籍《Introduction to Modern Cryptography(Chapman&Hall/Crc Cryptography and Network Security Series))提供的密钥生成算法,生成数字签名密钥对(SKsign,VKsign),其中将SKsign作为云服务器的签名私钥,记作SKS,并将进行注册的云服务器S的唯一标识符id与签名验证密钥VKsign一同添加到注册服务器列表LReg,表明已赋予了该云服务器一个有效的身份信息,该服务器已完成注册。
步骤3:当云服务器S向密钥分发中心提出认证请求时,密钥分发中心利用公共信息密钥PKQ和主密钥MK为云服务器S生成一个查询密钥,且将该云服务器S的唯一标识符id加入列表LQ,代表该云服务器已被认证并具有执行布尔查询Q的能力。
具体为:密钥分发中心首先从时间源τ选取当前操作时间,记作t;然后利用自定义的布尔查询表达式属性标签
Figure BDA00041552774300000611
分别对布尔查询Q和布尔查询/>
Figure BDA00041552774300000612
进行加密处理生成σQ和/>
Figure BDA00041552774300000613
利用σQ、/>
Figure BDA0004155277430000071
公共信息密钥PKQ、主密钥MK,通过调用可撤销KPABE方案提供的KeyGen算法,分别生成针对布尔查询Q的解密密钥/>
Figure BDA0004155277430000072
和布尔查询/>
Figure BDA0004155277430000073
的解密密钥/>
Figure BDA0004155277430000074
再然后调用可撤销KPABE方案提供的Update算法,分别生成针对布尔查询Q的更新密钥/>
Figure BDA0004155277430000075
和布尔查询/>
Figure BDA0004155277430000076
的更新密钥
Figure BDA0004155277430000077
最终输出云服务器S对于布尔查询的查询密钥/>
Figure BDA0004155277430000078
并将该云服务器S的唯一标识符id加入列表LQ,代表该云服务器已被认证,并具有执行布尔查询Q的能力。
步骤4:客户端利用参数PP对所需查询的关键字w进行预处理:生成发送给云服务器S的密文输入值σw、用于验证布尔查询值是否正确的验证密钥VKQ,w以及用于将密文输出值恢复成明文的恢复密钥RKQ,w
所述预处理方法如下:客户端首先从时间源τ选取当前操作时间,记作t;接着随机选取明文消息m0和m1,并将m0和m1盲化分别生成消息mx和消息m1-x,其中x∈{0,1};然后将所述布尔查询表达式属性标签f添加到所需查询的关键字w即输入关键字w中生成集合W,并把W与公共参数PP、消息mx和消息m1-x作为参数通过调用可撤销KPABE方案提供的Encrypt算法得到cx和c1-x,即密文输入值σw=(cx,c1-x);最终利用哈希函数计算得到哈希值g(mx)和g(m1-x),并把上述两个哈希值与LReg一同作为验证密钥输出,记为VKQ,w;同时输出恢复密钥RKQ,w=x。其中,VKQ,w为用于验证密文布尔查询值是否正确的验证密钥,RKQ,w是用于将密文输出值恢复得到最终的明文输出值的恢复密钥。
步骤5:当有客户端向云服务器S提交查询请求时,该云服务器S执行查询服务,利用公共信息密钥PKQ、查询密钥EKQ,S和云服务器的签名私钥SKS对密文输入值σw进行查询,该云服务器S执行查询操作后,若查询失败则输出随机值,若查询成功则得到盲化的密文输出值,并对该盲化的密文输出值进行签名,生成最终的密文结果值σb
具体来说,由于执行查询服务的云服务器S不知道恢复密钥x的值,则云服务器S首先需要将σw解析为(c,c′);然后以公共信息密钥PKQ和查询密钥EKQ,S作为输入,通过调用可撤销KPABE方案提供的Decrypt算法,用与布尔查询Q相关的密钥
Figure BDA0004155277430000079
对密文c进行解密得到d0;同理用与布尔查询/>
Figure BDA00041552774300000710
相关的密钥/>
Figure BDA00041552774300000711
对密文c′进行解密得到d1。在解密上述内容时,首先需判断与密文相关的所需查询的关键字w是否满足访问策略,其中访问策略是由多个逻辑运算符(例如AND、OR、NOT)组成,用于筛选满足特定要求的数据。若满足,直接解密得到dx和d1-x(x∈{0,1}),若不满足,则该云服务器无法解密,直接输出随机值。最终调用SIGN方案提供的签名算法对解密结果和云服务器S的唯一标识符id进行签名得到γ,生成完整的密文结果值σb=(dx,d1-x,S,γ)。
步骤6:由参与公共验证的其他客户端,应用验证密钥VKQ,w对云服务器S返回的密文结果值σb进行公开盲验证,若盲验证通过,则输出令牌
Figure BDA0004155277430000081
并得到真实的密文输出值μ且执行步骤7;若盲验证未通过,则则向密钥分发中心举报S查询失败并输出令牌
Figure BDA0004155277430000082
且执行步骤8;
具体来说,首先判断云服务器的唯一标识符id是否属于注册服务器列表LReg和有效查询服务器列表LQ,并调用SIGN方案提供的签名验证算法来验证云服务器返回的签名是否正确。在签名正确的情况下,利用验证密钥VKQ,w比较哈希值进行判断:如果g(mx)=g(dx)则密文输出值μ=dx且相对应的令牌为
Figure BDA0004155277430000083
如果g(m1-x)=g(d1-x)则密文输出值μ=d1-x且相对应的令牌为/>
Figure BDA0004155277430000084
其他情况则密文输出值μ=⊥且/>
Figure BDA0004155277430000085
如果步骤6输出的令牌为
Figure BDA0004155277430000086
方可继续执行下述步骤7,得到最终的明文输出结果,若步骤6输出的令牌为/>
Figure BDA0004155277430000087
不必执行步骤7,直接执行步骤8。
步骤7:由拥有恢复密钥RKQ,w的客户端利用验证密钥VKQ,w和恢复密钥RKQ,w对真实的密文输出值μ进行恢复得到真正的布尔查询输出值b即最终的明文查询结果;
具体来说,云服务器S返回的密文结果值σb经过其他客户端的盲验证后,客户端需要将其恢复成明文输出结果。在盲验证通过的情况下,即令牌为
Figure BDA0004155277430000088
的场景里,客户端需要利用VKQ,w和RKQ,w,将计算后的哈希值g(μ)与g(m0)和g(m1)进行比较,若g(μ)=g(m0),则输出b=1;若g(μ)=g(m1),则输出b=0。若均不满足,则输出无效值。
步骤8:密钥分发中心在接收到来自客户端的举报后,撤销该云服务器S的查询功能,使其不再具有后续外包查询的能力;
在盲验证未通过的情况下,即令牌为
Figure BDA0004155277430000089
所述密钥分发中心撤销被举报的云服务器S的查询功能的方法为:密钥分发中心首先将被撤销的云服务器的唯一标识符id从有效查询服务器列表LQ中删除;对查询密钥EKQ,S进行更新:重新选择当前时间,并再次调用可撤销KPABE方案提供的Update算法得到新的查询密钥/>
Figure BDA00041552774300000810
将更新后的EKQ,S′密钥重新分发给所有未被撤销的云服务器S′,为其他云服务器更新查询密钥EKQ,S′(S'≠S),这就相当于间接撤销了云服务器S的外包查询能力。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (7)

1.一种面向密文数据的公共可验证布尔搜索系统,其特征在于,参与该系统的实体包括完全可信的密钥分发中心,客户端和云服务器;
所述密钥分发中心,用于生成公共参数;当有云服务器S提出注册请求时,为S分配数字签名密钥以赋予S一个有效的身份信息;当S提出认证请求时,密钥分发中心利用公共参数为S生成一个查询密钥,使S具有查询数据的能力;如果有客户端向密钥分发中心举报云服务器S查询失败,密钥分发中心撤销S的查询功能,使其不再具有后续外包查询的能力;
客户端,用于在向云服务器S提交查询请求前,利用密钥分发中心产生的公共参数对所需查询的关键字w进行预处理:生成密文输入值σw、用于验证布尔查询值是否正确的验证密钥和用于将密文输出值恢复成明文的恢复密钥;参与公共验证的其他客户端利用验证密钥对云服务器S返回的密文查询结果进行盲验证,在不解密的情况下验证查询结果是否正确:如果盲验证通过,客户端继续恢复输出,得到最终的明文查询结果,如果盲验证未通过,客户端向密钥分发中心举报S查询失败;
云服务器,用于客户端向云服务器S提交查询请求时,执行查询服务并生成相应的密文查询结果且返回给客户端;所述密文查询结果包括盲化的密文输出值、云服务器的身份信息以及对密文输出值的签名信息。
2.一种面向密文数据的公共可验证布尔搜索方法,其特征在于,所述方法包括如下步骤:
步骤1:密钥分发中心执行初始化操作:初始化一个空的用于执行布尔查询Q的有效查询服务器列表LQ;初始化一个空的用于存放已注册云服务器的唯一标识符id的注册服务器列表LReg;生成公共参数,包括客户端所需的参数PP,云服务器所需的公共信息密钥PKQ和主密钥MK;
步骤2:当有云服务器S提出注册请求时,由密钥分发中心为S生成数字签名密钥,包括签名私钥SKS和签名验证密钥VKsign,并将该云服务器S的唯一标识符id与VKsign一同添加到注册服务器列表LReg,完成该云服务器S在密钥分发中心的注册;
步骤3:当云服务器S向密钥分发中心提出认证请求时,密钥分发中心利用公共信息密钥PKQ和主密钥MK为云服务器S生成一个查询密钥,且将该云服务器S的唯一标识符id加入列表LQ,代表该云服务器已被认证并具有执行布尔查询Q的能力;
步骤4:客户端利用参数PP对所需查询的关键字w进行预处理:生成发送给云服务器S的密文输入值σw、用于验证布尔查询值是否正确的验证密钥VKQ,w以及用于将密文输出值恢复成明文的恢复密钥RKQ,w
骤5:当有客户端向云服务器S提交查询请求时,该云服务器S执行查询服务,利用公共信息密钥PKQ、查询密钥EKQ,S和云服务器的签名私钥SKS对密文输入值σw进行查询,该云服务器S执行查询操作后,若查询失败则输出随机值,若查询成功则得到盲化的密文输出值,并对该盲化的密文输出值进行签名,生成最终的密文结果值σb
步骤6:由参与公共验证的其他客户端,应用验证密钥VKQ,w对云服务器S返回的密文结果值σb进行公开盲验证,若盲验证通过,则输出令牌τσb=(accep,t)S并得到真实的密文输出值μ且执行步骤7;若盲验证未通过,则向密钥分发中心举报S查询失败并输出令牌τσb=(reject,S)且执行步骤8;
步骤7:由拥有恢复密钥RKQ,w的客户端利用验证密钥VKQ,w和恢复密钥RKQ,w对真实的密文输出值μ进行恢复得到最终的明文查询结果;
步骤8:密钥分发中心在接收到来自客户端的举报后,撤销该云服务器S的查询功能,使其不再具有后续外包查询的能力。
3.根据权利要求2所述的面向密文数据的公共可验证布尔搜索方法,其特征在于,步骤3中所述的密钥分发中心利用公共信息密钥PKQ和主密钥MK为云服务器S生成查询密钥的方法为:密钥分发中心首先从时间源τ选取当前操作时间,记作t;然后利用自定义的布尔查询表达式属性标签
Figure FDA0004155277370000021
分别对布尔查询Q和布尔查询/>
Figure FDA0004155277370000022
进行加密处理生成σQ和/>
Figure FDA0004155277370000023
利用σQ、/>
Figure FDA0004155277370000024
公共信息密钥PKQ、主密钥MK,通过调用可撤销KPABE方案提供的KeyGen算法,分别生成针对布尔查询Q的解密密钥/>
Figure FDA0004155277370000025
和布尔查询/>
Figure FDA0004155277370000026
的解密密钥/>
Figure FDA0004155277370000027
再然后调用可撤销KPABE方案提供的Update算法,分别生成针对布尔查询Q的更新密钥/>
Figure FDA0004155277370000031
和布尔查询/>
Figure FDA0004155277370000032
的更新密钥/>
Figure FDA0004155277370000033
最终输出云服务器S对于布尔查询的查询密钥/>
Figure FDA0004155277370000034
4.根据权利要求3所述的面向密文数据的公共可验证布尔搜索方法,其特征在于,步骤4中所述的对所需查询的关键字w进行预处理的方法为:客户端首先从时间源τ选取当前操作时间,记作t;接着随机选取明文消息m0和m1,并将m0和m1盲化分别生成消息mx和消息m1-x,其中x∈{0,1};然后将所述布尔查询表达式属性标签f添加到所需查询的关键字w中生成集合W,并把W与公共参数PP、消息mx和消息m1-x作为参数通过调用可撤销KPABE方案提供的Encrypt算法得到cx和c1-x,即密文输入值σw=(cx,c1-x);最终利用哈希函数计算得到哈希值g(mx)和g(m1-x),并把上述两个哈希值与LReg一同作为用于验证密文布尔查询值是否正确的验证密钥输出,记为VKQ,w;同时输出用于将密文输出值恢复得到最终的明文输出值的恢复密钥RKQ,w=x。
5.根据权利要求4所述的面向密文数据的公共可验证布尔搜索方法,其特征在于,步骤5的具体方法为:云服务器S首先将σw解析为(c,c′);然后以公共信息密钥PKQ和查询密钥EKQ,S作为输入,通过调用可撤销KPABE方案提供的Decrypt算法,用与布尔查询Q相关的密钥
Figure FDA0004155277370000035
对密文c进行解密得到d0;同理用与布尔查询/>
Figure FDA0004155277370000036
相关的密钥/>
Figure FDA0004155277370000037
对密文c′进行解密得到d1;在解密上述内容时,首先需判断与密文相关的所需查询的关键字w是否满足访问策略,若满足,直接解密得到dx和d1-x,若不满足,则该云服务器无法解密,直接输出随机值;最后调用SIGN方案提供的签名算法对解密结果和云服务器S的唯一标识符id进行签名得到γ,生成完整的密文结果值σb=(dx,d1-x,S,γ)。
6.根据权利要求2所述的面向密文数据的公共可验证布尔搜索方法,其特征在于,步骤6的具体方法为:首先判断云服务器的唯一标识符id是否属于注册服务器列表LReg和有效查询服务器列表LQ,并调用SIGN方案提供的签名验证算法来验证云服务器返回的签名是否正确;在签名正确的情况下,利用验证密钥VKQ,w比较哈希值进行判断:如果g(mx)=g(dx)则密文输出值μ=dx且相对应的令牌为τσb=(accept,S),如果g(m1-x)=g(d1-x)则密文输出值μ=d1-x且相对应的令牌为τσb=(accept,S);其他情况则密文输出值μ=⊥且τσb=(reject,S)。
7.根据权利要求2所述的面向密文数据的公共可验证布尔搜索方法,其特征在于,步骤8中所述密钥分发中心撤销被举报的云服务器S的查询功能的方法为:密钥分发中心首先将被撤销的云服务器S的唯一标识符id从有效查询服务器列表LQ中删除;对查询密钥EKQ,S进行更新:重新选择当前时间,并再次调用可撤销KPABE方案提供的Update算法得到新的查询密钥
Figure FDA0004155277370000041
将更新后的EKQ,S′密钥重新分发给所有未被撤销的云服务器S′,为其他云服务器更新查询密钥EKQ,S′(S'≠S),这就相当于间接撤销了云服务器S的外包查询能力。
CN202310332291.3A 2023-03-31 2023-03-31 一种面向密文数据的公共可验证布尔搜索系统及方法 Pending CN116366259A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310332291.3A CN116366259A (zh) 2023-03-31 2023-03-31 一种面向密文数据的公共可验证布尔搜索系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310332291.3A CN116366259A (zh) 2023-03-31 2023-03-31 一种面向密文数据的公共可验证布尔搜索系统及方法

Publications (1)

Publication Number Publication Date
CN116366259A true CN116366259A (zh) 2023-06-30

Family

ID=86919782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310332291.3A Pending CN116366259A (zh) 2023-03-31 2023-03-31 一种面向密文数据的公共可验证布尔搜索系统及方法

Country Status (1)

Country Link
CN (1) CN116366259A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701494A (zh) * 2023-08-07 2023-09-05 国网四川省电力公司电力科学研究院 一种保护隐私的密文云数据统计分析系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701494A (zh) * 2023-08-07 2023-09-05 国网四川省电力公司电力科学研究院 一种保护隐私的密文云数据统计分析系统及方法
CN116701494B (zh) * 2023-08-07 2023-10-10 国网四川省电力公司电力科学研究院 一种保护隐私的密文云数据统计分析系统及方法

Similar Documents

Publication Publication Date Title
Miao et al. Multi-authority attribute-based keyword search over encrypted cloud data
Miao et al. Fair and dynamic data sharing framework in cloud-assisted internet of everything
Curtmola et al. Searchable symmetric encryption: improved definitions and efficient constructions
CN111130757A (zh) 一种基于区块链的多云cp-abe访问控制方法
US11018875B2 (en) Method and system for secure connected vehicle communication
US11606201B2 (en) Cryptographic systems and methods using distributed ledgers
Feng et al. An efficient protocol with bidirectional verification for storage security in cloud computing
CN113326541B (zh) 一种基于智能合约的云边协同多模式隐私数据流转方法
CN110602099A (zh) 基于可验证的对称可搜索加密的隐私保护方法
CA2795745A1 (en) Cryptographic document processing in a network
CN114205136A (zh) 一种基于区块链技术的交通数据资源共享方法及系统
CN114021164B (zh) 基于区块链的征信系统隐私保护方法
Li et al. Traceable Ciphertext‐Policy Attribute‐Based Encryption with Verifiable Outsourced Decryption in eHealth Cloud
CN110851848B (zh) 对称可搜索加密的隐私保护方法
Guo et al. Accountable attribute-based data-sharing scheme based on blockchain for vehicular ad hoc network
CN116366259A (zh) 一种面向密文数据的公共可验证布尔搜索系统及方法
Zhang et al. New public auditing protocol based on homomorphic tags for secure cloud storage
Park et al. PKIS: practical keyword index search on cloud datacenter
CN117454442A (zh) 匿名安全和可追溯的分布式数字取证方法与系统
Yang et al. Mu-teir: Traceable encrypted image retrieval in the multi-user setting
US20230041862A1 (en) Cloud-side collaborative multi-mode private data circulation method based on smart contract
CN116248289A (zh) 基于密文属性加密的工业互联网标识解析访问控制方法
Feng et al. A Searchable CP-ABE Privacy Preserving Scheme.
Drăgan et al. Bootstrapping online trust: Timeline activity proofs
Xie et al. Protecting privacy in key-value search systems

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