CN108256348B - 一种密文搜索结果验证方法及其系统 - Google Patents

一种密文搜索结果验证方法及其系统 Download PDF

Info

Publication number
CN108256348B
CN108256348B CN201711242788.7A CN201711242788A CN108256348B CN 108256348 B CN108256348 B CN 108256348B CN 201711242788 A CN201711242788 A CN 201711242788A CN 108256348 B CN108256348 B CN 108256348B
Authority
CN
China
Prior art keywords
user
search result
verification information
verification
mht
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.)
Active
Application number
CN201711242788.7A
Other languages
English (en)
Other versions
CN108256348A (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.)
Shenzhen University
Original Assignee
Shenzhen 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 Shenzhen University filed Critical Shenzhen University
Priority to CN201711242788.7A priority Critical patent/CN108256348B/zh
Publication of CN108256348A publication Critical patent/CN108256348A/zh
Application granted granted Critical
Publication of CN108256348B publication Critical patent/CN108256348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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

Landscapes

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

Abstract

本发明适用于在移动医疗网络中支持搜索结果验证的密文搜索领域,提供了一种密文搜索结果验证方法及其系统,该方法包括:系统初始化步骤:根据输入的系统安全参数生成系统的公钥和私钥;索引生成和验证信息生成步骤:利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息;生成陷门步骤:根据输入的私钥和待搜索关键字生成陷门TD;搜索匹配步骤:根据陷门TD并利用搜索算法搜索匹配的健康记录;搜索结果验证步骤:根据验证信息检查搜索结果的完整性。

Description

一种密文搜索结果验证方法及其系统
技术领域
本发明属于数据处理领域,尤其涉及在移动医疗网络中支持搜索结果验证的密文搜索领域。
背景技术
基于物联网、云计算、可穿戴技术的快速发展,由可穿戴设备、接入设备、云服务器所组成的移动医疗网络逐渐形成,将极大地提升现有的医疗水平与效率。可穿戴设备附着在人体将采集用户的健康数据,包括血压、心率等,健康数据通过接入设备上传到云服务器,医生等通过云服务器搜索或下载用户健康数据,进而实时监控到用户的健康状况。
然而,由于健康数据属于用户隐私,云服务器也是不完全可信的,任何健康数据的泄露将影响到用户财产甚至生命状况。数据加密是保障用户隐私的最直接方式之一,但与此同时健康数据的灵活性受到影响,因此,医生如何对加密数据进行高效的搜索操作一直是业界亟需解决的问题。
发明内容
本发明所要解决的技术问题为提高对加密数据进行搜索操作的效率,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
为解决上述技术问题,本发明是这样实现的,一种密文搜索结果验证方法,其中,所述方法包括:
系统初始化步骤:根据输入的系统安全参数κ生成系统的公钥PK和私钥SK;
索引生成和验证信息生成步骤:利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息;
生成陷门步骤:根据输入的所述私钥SK和待搜索关键字生成陷门TD;
搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录;
搜索结果验证步骤:根据验证信息检查搜索结果的完整性。
优选的,所述系统初始化步骤包括:
输入系统安全参数κ,选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择α∈Zp *,计算A=gα
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α}。
优选的,所述索引生成和验证信息生成步骤包括:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性,定义以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256,另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数;
·keySum域,存储映射到该单元格的x的总和;
·valueSum域,存储映射到该单元格的y的总和;
·hashvalueSum域,用于存储映射到该单元格的所有h(y)之和;
其中,count域也称为计数布隆滤波器(CBF);
该步骤包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen:
IndGen(PK,W)→CI,索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入,对每个关键字wi,随机选择si∈Zp,计算
Figure BDA0001490226310000031
Figure BDA0001490226310000032
其中,i=1,2,…,t,输出索引密文CI={C′i,Ci}i=1,2,…,t。
VerInfGen(PK,W)→VI,验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入;
对于每个wi,计算ζi=h0(wi),并将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t,为每个wi计算
Figure BDA0001490226310000034
,其中
Figure BDA0001490226310000035
υ是CD(wi)中加密的健康记录的数量;
Figure BDA0001490226310000037
以及i=1,…,t,所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H1(mR)τ
最后生成的验证信息VI为
VI={CBF,m1,m2,…,mt,φ,σMHT};
并将所述验证信息VI与索引密文CI一起发送给医疗保健服务器,同时,将IBLT发送到仲裁中心。
优选的,所述生成陷门步骤包括:
输入所述私钥SK以及待搜索关键字
Figure BDA0001490226310000036
,其中,所述关键字w表示用户想要搜索包含关键字w的加密健康记录;生成陷门
Figure BDA0001490226310000033
优选的,所述搜索匹配步骤包括:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,C′i))=Ci(i=1,2,…,t)是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则没有找到匹配的健康记录,仅返回验证信息{φ,CBF}给用户。
优选的,所述搜索结果验证步骤包括:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure BDA0001490226310000041
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure BDA0001490226310000042
由仲裁中心决定
Figure BDA0001490226310000043
是否属于IBLT,如果IBLT中没有包含
Figure BDA0001490226310000044
仲裁中心返回null,否则发送(count,valueSum,hashvalueSum)给用户;
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure BDA0001490226310000045
并检查所有相应位置的最小计数是否等于返回的个数;如果是,则验证搜索结果的正确性,其中,首先,用户检查等式
Figure BDA0001490226310000046
是否成立,如果没有,则该过程终止,否则使用
Figure BDA0001490226310000047
的哈希链生成mR,然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性;
如果相应位置的最低计数不等于返回的个数,则需要仲裁中心的介入,用户向仲裁中心发送
Figure BDA0001490226310000048
仲裁中心返回(count,valueSum,hashvalueSum)给用户,用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum,如果等于,那么医疗健康服务器返回正确的结果。
本发明还提供了一种密文搜索结果验证系统,其中,所述系统包括:
系统初始化模块,用于根据输入的系统安全参数κ生成系统的公钥PK和私钥SK;
索引生成和验证信息生成模块,利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息;
生成陷门模块,用于根据输入的所述私钥SK和待搜索关键字生成陷门TD;
搜索匹配模块,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录;
搜索结果验证模块,用于根据验证信息检查搜索结果的完整性。
优选的,所述系统初始化模块具体用于:
输入系统安全参数κ,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择
Figure BDA0001490226310000051
计算A=gα;
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α}。
优选的,所述索引生成和验证信息生成模块具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性,定义以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256,另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数;
·keySum域,存储映射到该单元格的x的总和;
·valueSum域,存储映射到该单元格的y的总和;
·hashvalueSum域,用于存储映射到该单元格的所有h(y)之和;
其中,count域也称为计数布隆滤波器(CBF);
该步骤包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen:
IndGen(PK,W)→CI,索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入,对每个关键字wi,随机选择si∈Zp,计算
Figure BDA0001490226310000063
Figure BDA0001490226310000061
其中,i=1,2,…,t,输出索引密文CI={C′i,Ci}i=1,2,…,t;
VerInfGen(PK,W)→VI,验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入;
对于每个wi,计算ζi=h0(wi),并将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t,为每个wi计算
Figure BDA0001490226310000064
,其中
Figure BDA0001490226310000065
υ是CD(wi)中加密的健康记录的数量;
Figure BDA0001490226310000066
以及i=1,…,t,所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H1(mR)τ
最后生成的验证信息VI为
VI={CBF,m1,m2,…,mt,φ,σMHT};
并将所述验证信息VI与索引密文CI一起发送给医疗保健服务器,同时,将IBLT发送到仲裁中心。
优选的,所述生成陷门模块具体用于:
输入所述秘钥SK以及待搜索关键字
Figure BDA0001490226310000067
,其中,所述关键字
Figure BDA0001490226310000068
表示用户想要搜索包含关键字
Figure BDA0001490226310000069
的加密健康记录;生成陷门
Figure BDA0001490226310000062
优选的,所述搜索匹配模块具体用于:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,C′i))=Ci(i=1,2,…,t)是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则没有找到匹配的用户健康记录,并仅返回验证信息{φ,CBF}给用户。
优选的,所述搜索结果验证模块具体用于:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure BDA0001490226310000071
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure BDA0001490226310000072
由仲裁中心决定
Figure BDA0001490226310000073
是否属于IBLT,如果IBLT中没有包含
Figure BDA0001490226310000074
仲裁中心返回null,否则发送(count,valueSum,hashvalueSum)给用户;
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure BDA0001490226310000075
并检查所有相应位置的最小计数是否等于返回的个数;如果是,则验证搜索结果的正确性,其中,首先,用户检查等式
Figure BDA0001490226310000076
是否成立,如果没有,则该过程终止,否则使用
Figure BDA0001490226310000077
的哈希链生成mR,然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性;
如果相应位置的最低计数不等于返回的个数,则需要仲裁中心的介入,用户向仲裁中心发送
Figure BDA0001490226310000078
仲裁中心返回(count,valueSum,hashvalueSum)给用户,用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum,如果等于,那么医疗健康服务器返回正确的结果。
本发明与现有技术相比,有益效果在于:本发明的技术方案支持搜索结果验证,能对搜索结果的完全性与正确性进行验证,本发明的技术方案既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
附图说明
图1是本发明实施例提供的密文搜索结果验证方法流程图;
图2是本发明实施例提供的密文搜索结果验证系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,为本发明实施例提供的密文搜索结果验证方法流程图。
在步骤S1中,系统初始化步骤:根据输入的系统安全参数κ生成系统的公钥PK和私钥SK。
在本实施例中,令e:G0×G0→GT表示一个双线性映射,其中G0是素数p、生成元为g的双线性群,设H1:{0,1}*→G0和H2:GT→{0,1}p表示两个抗碰撞的哈希函数。
在本实施例中,所述系统初始化步骤S1为Setup(1κ)→(PK,SK).,具体包括:
输入系统安全参数κ,选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择
Figure BDA0001490226310000081
计算A=gα
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α}。
在步骤S2中,索引生成和验证信息生成步骤:利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息。
在本实施例中,所述索引生成和验证信息生成步骤S2包括:
数据属主要上传l个用户健康记录D={d1,…,dl}并存储到医疗健康服务器上,在上传这些记录之前,数据所有者向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法(例如AES算法)对上传的用户健康记录进行加密。其中,用户健康记录的数量远远大于关键字的数量,即l>>t。加密的用户健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令D(wj)表示与关键字wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,例如,如果D(wj)={id1,id2},则CD(wj)={c1,c2},对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
此外,需要构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性。为了做到这一点,需要以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256。另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数;
·keySum域,存储映射到该单元格的x的总和;
·valueSum域,存储映射到该单元格的y的总和;
·hashvalueSum域,用于存储映射到该单元格的所有H(y)之和。
其中,count域也称为计数布隆滤波器(CBF)。
在本实施例中,以下加密算法包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen。
IndGen(PK,T,W)→CI。索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入。对每个关键字wi,随机选择si∈Zp,计算
Figure BDA0001490226310000101
Figure BDA0001490226310000102
其中,i=1,2,…,t。输出索引密文CI={C′i,Ci}i=1,2,…,t
VerInfGen(PK,W)→VI。验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入。
对于每个wi,计算ζi=h0(wi),并根据以下表一中的算法1将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t。为每个wi计算
Figure BDA0001490226310000103
Figure BDA0001490226310000104
υ是CD(wi)中加密的健康记录的数量;
Figure BDA0001490226310000105
以及i=1,…,t。所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后,通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H2(mR)τ
最后,生成的验证信息VI为VI={CBF,m1,m2,…,mt,φ,σMHT}并将其与索引密文CI一起发送给医疗健康服务器,同时,将IBLT发送到仲裁中心。
表一
算法1:
输入:(x,y)
输出:IBLT
对于i=1,…,k
T[h<sub>i</sub>(x)].count+1
T[h<sub>i</sub>(x)].keySum+x
T[h<sub>i</sub>(x)].valueSum+y
T[h<sub>i</sub>(x)].hashvalueSum+h(y)
结束
在步骤S3中,生成陷门步骤:根据输入的所述私钥SK和待搜索关键字
Figure BDA00014902263100001111
生成陷门TD。
在本实施例中,如果用户想要搜索包含关键字
Figure BDA00014902263100001110
的加密健康记录,则运行以下算法来生成与
Figure BDA0001490226310000111
相关联的陷门。所述生成陷门步骤S3为
Figure BDA0001490226310000112
具体包括:
输入所述秘钥SK以及关键字
Figure BDA0001490226310000113
其中,所述关键字
Figure BDA0001490226310000114
表示用户想要搜索包含关键字
Figure BDA0001490226310000115
的加密健康记录;生成陷门
Figure BDA0001490226310000116
最后,用户向医疗健康服务器提交TD。
在步骤S4中,搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
在本实施例中,接收到用户的陷门TD后,医疗健康服务器执行以下算法来搜索匹配的健康记录。所述搜索匹配步骤S4为Search(CI,VI,TD)→Search result,具体包括:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,C′i))=Ci(i=1,2,…,t)是否成立;
若成立,则说明医疗健康服务器搜索到与陷门相匹配的桶bi以及相应的健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则意味着没有找到匹配的健康记录,医疗健康服务器仅返回验证信息{φ,CBF}给用户。
在步骤S5中,搜索结果验证步骤:根据验证信息检查搜索结果的完整性。
在本实施例中,所述搜索结果验证步骤S5包括:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure BDA0001490226310000117
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure BDA0001490226310000118
根据算法2,仲裁中心可以决定
Figure BDA0001490226310000119
是否属于IBLT。如果IBLT中没有包含
Figure BDA0001490226310000126
,仲裁中心返回null。否则,发送(count,valueSum,hashvalueSum)给用户。
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure BDA0001490226310000121
并检查所有相应位置的最小计数是否等于返回的个数,如果是,则验证搜索结果的正确性。首先,用户检查等式
Figure BDA0001490226310000122
是否成立;如果没有,则该过程终止。否则,可以应用从MHT中目标叶子节点到其根节点的路径上获得的兄弟节点重新生成mR。也就是说,用户可以使用
Figure BDA0001490226310000123
的哈希链生成mR。然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性。
如果相应位置的最低计数不等于返回的个数,则需要仲裁中心的介入。用户向仲裁中心发送
Figure BDA0001490226310000124
仲裁中心运行算法2并返回(count,valueSum,hashvalueSum)给用户。用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum。如果是这样,那么医疗健康服务器返回正确的结果。
Figure BDA0001490226310000125
在本实施例中,用户根据验证信息检查搜索结果的完整性。该过程包括以下两种情况:
情况1:当搜索结果为空集合时,则医疗健康服务器声称没有与提交的陷门匹配的健康记录,并返回验证信息{φ,CBF}给用户作为证明。用户使用CBF验证搜索结果的完全性。检查是否存在至少一个等式
Figure BDA0001490226310000131
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure BDA0001490226310000132
根据以下表二中的算法2,仲裁中心可以决定
Figure BDA0001490226310000139
是否属于IBLT。如果IBLT中没有包含
Figure BDA0001490226310000133
仲裁中心返回null。否则发送(count,valueSum,hashvalueSum)给用户。
情况2:当搜索结果不为空时,用户首先检查结果的完全性,以确保所有匹配的健康记录已被返回。用户计算
Figure BDA0001490226310000134
并检查所有相应位置的最小计数是否等于返回的个数。如果是,用户则验证搜索结果的正确性。首先,用户检查等式
Figure BDA0001490226310000135
是否成立;如果没有,则该过程终止。否则,可以应用从MHT中目标叶子节点到其根节点的路径上获得的兄弟节点重新生成mR。也就是说,用户可以使用
Figure BDA0001490226310000136
的哈希链生成mR。然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性。
如果相应位置的最低计数不等于返回的个数,则需要仲裁中心的介入。用户向仲裁中心发送
Figure BDA0001490226310000137
仲裁中心运行以下表二中的算法2并返回(count,valueSum,hashvalueSum)给用户。用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum。如果是这样,那么医疗健康服务器返回正确的结果。
表二
Figure BDA0001490226310000138
Figure BDA0001490226310000141
本发明提供的一种密文搜索结果验证方法,支持搜索结果验证,能对搜索结果的完全性与正确性进行验证,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
请参阅图2,为本发明实施例提供的密文搜索结果验证系统结构示意图。
在本实施例中,密文搜索结果验证系统10具体包括系统初始化模块11、索引生成和验证信息生成12、生成陷门模块13、搜索匹配模块14、搜索结果验证模块15。
系统初始化模块11,用于根据输入的系统安全参数κ生成系统的公钥PK和私钥SK。
在本实施例中,所述系统初始化模块11具体用于:
输入系统安全参数κ,选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择
Figure BDA0001490226310000142
计算A=gα;
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α}。
索引生成和验证信息生成模块12,利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息。
在本实施例中,所述索引生成和验证信息生成模块12具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密。加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l。令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文。对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
需要构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性。为了做到这一点,需定义以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256。另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数。
·keySum域,存储映射到该单元格的x的总和。
·valueSum域,存储映射到该单元格的y的总和。
·hashvalueSum域,用于存储映射到该单元格的所有h(y)之和。
其中,count域也称为计数布隆滤波器(CBF)。
此步骤包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen。
IndGen(PK,W)→CI。索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入。对每个关键字wi,随机选择si∈Zp,计算
Figure BDA0001490226310000151
Figure BDA0001490226310000152
其中,i=1,2,…,t。输出索引密文CI={C′i,Ci}i=1,2,…,t
VerInfGen(PK,W)→VI。验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入。
对于每个wi,计算ζi=h0(wi),并根据算法1将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t。为每个wi计算
Figure BDA0001490226310000153
其中
Figure BDA0001490226310000154
υ是CD(wi)中加密的健康记录的数量;
Figure BDA0001490226310000155
以及i=1,…,t。所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后,通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H1(mR)τ
最后,生成的验证信息VI为
VI={CBF,m1,m2,…,mt,φ,σMHT}
并将其与索引密文CI一起发送给医疗保健服务器,同时,将IBLT发送到仲裁中心。
Figure BDA0001490226310000161
生成陷门模块13,用于根据输入的所述私钥SK和待搜索关键字
Figure BDA0001490226310000166
生成陷门TD。
在本实施例中,所述生成陷门模块13具体用于:
输入所述私钥SK以及待搜索关键字
Figure BDA0001490226310000162
其中,所述关键字
Figure BDA0001490226310000163
表示用户想要搜索包含关键字
Figure BDA0001490226310000164
的加密健康记录;生成陷门
Figure BDA0001490226310000165
搜索匹配模块14,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
在本实施例中,所述搜索匹配模块14具体用于:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,C′i))=Ci(i=1,2,…,t)是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则没有找到匹配的用户健康记录,并仅返回验证信息{φ,CBF}给用户。
搜索结果验证模块15,用于根据验证信息检查搜索结果的完整性。
在本实施例中,所述搜索结果验证模块15具体用于:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure BDA0001490226310000171
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure BDA0001490226310000172
根据算法2,仲裁中心可以决定
Figure BDA0001490226310000173
是否属于IBLT。如果IBLT中没有包含
Figure BDA0001490226310000174
仲裁中心返回null。否则,发送(count,valueSum,hashvalueSum)给用户。
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure BDA0001490226310000175
并检查所有相应位置的最小计数是否等于返回的个数,如果是,则验证搜索结果的正确性。首先,用户检查等式
Figure BDA0001490226310000176
是否成立;如果没有,则该过程终止。否则,可以应用从MHT中目标叶子节点到其根节点的路径上获得的兄弟节点重新生成mR。也就是说,用户可以使用
Figure BDA0001490226310000177
的哈希链生成mR。然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性。
如果相应位置的最低计数不等于返回的个数,则需要仲裁中心的介入。用户向仲裁中心发送
Figure BDA0001490226310000178
仲裁中心运行算法2并返回(count,valueSum,hashvalueSum)给用户。用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum。如果是这样,那么医疗健康服务器返回正确的结果。
Figure BDA0001490226310000179
Figure BDA0001490226310000181
在本实施例中,各个模块中的处理流程分别和前述方法步骤中的步骤一一对应,在此不做重复描述。
本发明提供的一种密文搜索结果验证系统10,支持搜索结果验证,能对搜索结果的完全性与正确性进行验证,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种密文搜索结果验证方法,其特征在于,所述方法包括:
系统初始化步骤:根据输入的系统安全参数κ生成系统的公钥PK和私钥SK;
所述系统初始化步骤包括:输入系统安全参数κ,选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择计算
Figure FDA0003126100240000011
计算A=gα
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α};
索引生成和验证信息生成步骤:利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息;
所述索引生成和验证信息生成步骤包括:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性,定义以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256,另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数;
·keySum域,存储映射到该单元格的x的总和;
·valueSum域,存储映射到该单元格的y的总和;
·hashvalueSum域,用于存储映射到该单元格的所有h(y)之和;
其中,count域也称为计数布隆滤波器(CBF);
该步骤包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen:
IndGen(PK,W)→CI,索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入,对每个关键字wi,随机选择si∈Zp,计算
Figure FDA0003126100240000021
Figure FDA0003126100240000022
其中,i=1,2,…,t,输出索引密文CI={Ci′,Ci}i=1,2,…,t
VerInfGen(PK,W)→VI,验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入;
对于每个wi,计算ζi=h0(wi),并将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t,为每个wi计算
Figure FDA0003126100240000023
Figure FDA0003126100240000031
其中υ是CD(wi)中加密的健康记录的数量;
Figure FDA0003126100240000032
Figure FDA0003126100240000033
以及i=1,…,t,所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H1(mR)τ
最后生成的验证信息VI为VI={CBF,m1,m2,…,mt,φ,σMHT};
并将所述验证信息VI与索引密文CI一起发送给医疗保健服务器,同时,将IBLT发送到仲裁中心;
生成陷门步骤:根据输入的所述私钥SK和待搜索关键字生成陷门TD;
所述生成陷门步骤包括:输入所述私钥SK以及待搜索关键字
Figure FDA0003126100240000034
其中,所述关键字
Figure FDA0003126100240000035
表示用户想要搜索包含关键字
Figure FDA0003126100240000036
的加密健康记录;
搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录;
搜索结果验证步骤:根据验证信息检查搜索结果的完整性;
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure FDA0003126100240000037
Figure FDA0003126100240000038
并检查所有相应位置的最小计数是否等于返回的个数;如果是,则验证搜索结果的正确性,其中,首先,用户检查等式h′
Figure FDA0003126100240000039
是否成立,如果没有,则该过程终止,否则使用
Figure FDA0003126100240000041
的哈希链生成mR,然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性;
如果相应位置的最小计数不等于返回的个数,则需要仲裁中心的介入,用户向仲裁中心发送
Figure FDA0003126100240000042
仲裁中心返回(count,valueSum,hashvalueSum)给用户,用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum,如果等于,那么医疗健康服务器返回正确的结果。
2.如权利要求1所述的密文搜索结果验证方法,其特征在于,所述生成陷门步骤还包括:
生成陷门
Figure FDA0003126100240000043
3.如权利要求2所述的密文搜索结果验证方法,其特征在于,所述搜索匹配步骤包括:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,Ci′))=Ci(i=1,2,…,t)是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则没有找到匹配的健康记录,仅返回验证信息{φ,CBF}给用户。
4.如权利要求3所述的密文搜索结果验证方法,其特征在于,所述搜索结果验证步骤包括:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure FDA0003126100240000051
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure FDA0003126100240000052
由仲裁中心决定
Figure FDA0003126100240000053
是否属于IBLT,如果IBLT中没有包含
Figure FDA0003126100240000054
仲裁中心返回null,否则发送(count,valueSum,hashvalueSum)给用户。
5.一种密文搜索结果验证系统,其特征在于,所述系统包括:
系统初始化模块,用于根据输入的系统安全参数κ生成系统的公钥PK和私钥SK;
所述系统初始化模块具体用于:输入系统安全参数κ,选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
定义两个哈希函数H1:{0,1}*→G0和H2:GT→{0,1}p
随机选择计算
Figure FDA0003126100240000055
计算A=gα
生成系统的公钥PK={G0,H1,H2,g,A=gα}和私钥SK={α};
索引生成和验证信息生成模块,利用公钥加密算法对从健康记录提取的关键字建立索引,利用可逆的布隆查找表和Merkle哈希树生成验证信息;
所述索引生成和验证信息生成模块具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj
构造可逆的布隆查找表(IBLT)和Merkle哈希树(MHT)以实现搜索结果的可验证性,定义以下抗碰撞的哈希函数:(1)h0:{0,1}*→[1,l]将任何用二进制表示的关键字映射到[1,l];(2)h1,…,hk:[1,l]→[1,m]将[1,l]中的任一整数映射到IBLT中的k个不同区域,其中m是IBLT的长度;(3)h:[1,l]→[1,l2];(4)h′:{0,1*}→{0,1}256,另外,IBLT将(x,y)映射到其单元格上,这些单元格包括以下四个域,这些域都被初始化为0:
·count域,用于对映射到该单元格的条目数进行计数;
·keySum域,存储映射到该单元格的x的总和;
·valueSum域,存储映射到该单元格的y的总和;
·hashvalueSum域,用于存储映射到该单元格的所有h(y)之和;
其中,count域也称为计数布隆滤波器(CBF);
所述索引生成与验证信息模块包括两个子算法:索引生成子算法IndGen和验证信息生成子算法VerInfGen:
IndGen(PK,W)→CI,索引生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入,对每个关键字wi,随机选择si∈Zp,计算
Figure FDA0003126100240000061
Figure FDA0003126100240000062
Figure FDA0003126100240000063
其中,i=1,2,…,t,输出索引密文CI={Ci′,Ci}i=1,2,…,t
VerInfGen(PK,W)→VI,验证信息生成算法将公钥PK和关键字集合W={w1,…,wt}作为输入;
对于每个wi,计算ζi=h0(wi),并将所有(ζi,idj)(idj∈D(wi))对插入IBLT,其中i=1,…,t,为每个wi计算
Figure FDA0003126100240000071
Figure FDA0003126100240000072
其中υ是CD(wi)中加密的健康记录的数量;
Figure FDA0003126100240000073
Figure FDA0003126100240000074
以及i=1,…,t,所有的mi(i=1,…,t)被视为叶子节点来创建MHT,MHT的根表示为mR
然后通过运行BLS短签名算法对mR进行签名,选择随机数τ∈Zp并计算φ=gτ,然后生成MHT签名σMHT为σMHT=H1(mR)τ
最后生成的验证信息VI为VI={CBF,m1,m2,…,mt,φ,σMHT};
并将所述验证信息VI与索引密文CI一起发送给医疗保健服务器,同时,将IBLT发送到仲裁中心;
生成陷门模块,用于根据输入的所述私钥SK和待搜索关键字生成陷门TD;
所述生成陷门模块具体用于:输入所述私钥SK以及待搜索关键字
Figure FDA0003126100240000075
其中,所述关键字
Figure FDA0003126100240000076
表示用户想要搜索包含关键字
Figure FDA0003126100240000077
的加密健康记录;
搜索匹配模块,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录;
搜索结果验证模块,用于根据验证信息检查搜索结果的完整性;
当搜索结果不为空集合时,首先检查搜索结果的完全性以确保所有匹配的用户健康记录已被返回,计算
Figure FDA0003126100240000078
Figure FDA0003126100240000081
并检查所有相应位置的最小计数是否等于返回的个数;如果是,则验证搜索结果的正确性,其中,首先,用户检查等式
Figure FDA0003126100240000082
Figure FDA0003126100240000083
是否成立,如果没有,则该过程终止,否则使用
Figure FDA0003126100240000084
的哈希链生成mR,然后,计算e(σMHT,g)=e(H1(mR),φ)以检查mR的正确性,从而验证了搜索结果的正确性;
如果相应位置的最小计数不等于返回的个数,则需要仲裁中心的介入,用户向仲裁中心发送
Figure FDA0003126100240000085
仲裁中心返回(count,valueSum,hashvalueSum)给用户,用户检查返回的个数是否等于count,返回的标识符的总和是否等于valueSum,返回的标识符的哈希值的和是否等于hashvalueSum,如果等于,那么医疗健康服务器返回正确的结果。
6.如权利要求5所述的密文搜索结果验证系统,其特征在于,所述生成陷门模块具体还用于:
生成陷门
Figure FDA0003126100240000086
7.如权利要求6所述的密文搜索结果验证系统,其特征在于,所述搜索匹配模块具体用于:
以索引密文CI、验证信息VI和所述陷门TD作为输入以检验等式H2(e(TD,Ci′))=Ci(i=1,2,…,t)是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),并返回搜索结果{bi,CD(wi)}以及验证信息{φ,CBF,σMHT}给用户;
若不成立,则没有找到匹配的健康记录,仅返回验证信息{φ,CBF}给用户。
8.如权利要求7所述的密文搜索结果验证系统,其特征在于,所述搜索结果验证模块具体用于:
当搜索结果为空集合时,返回验证信息{φ,CBF}给用户作为证明,用户使用CBF验证搜索结果的完全性;检查是否存在至少一个等式
Figure FDA0003126100240000091
如果是,则验证过程终止并输出0;否则,用户向仲裁中心发送
Figure FDA0003126100240000092
由仲裁中心决定
Figure FDA0003126100240000093
是否属于IBLT,如果IBLT中没有包含
Figure FDA0003126100240000094
仲裁中心返回null,否则发送(count,valueSum,hashvalueSum)给用户。
CN201711242788.7A 2017-11-30 2017-11-30 一种密文搜索结果验证方法及其系统 Active CN108256348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711242788.7A CN108256348B (zh) 2017-11-30 2017-11-30 一种密文搜索结果验证方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711242788.7A CN108256348B (zh) 2017-11-30 2017-11-30 一种密文搜索结果验证方法及其系统

Publications (2)

Publication Number Publication Date
CN108256348A CN108256348A (zh) 2018-07-06
CN108256348B true CN108256348B (zh) 2021-08-20

Family

ID=62721648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711242788.7A Active CN108256348B (zh) 2017-11-30 2017-11-30 一种密文搜索结果验证方法及其系统

Country Status (1)

Country Link
CN (1) CN108256348B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990857B (zh) * 2019-12-11 2021-04-06 支付宝(杭州)信息技术有限公司 保护隐私安全的多方联合进行特征评估的方法及装置
CN111614470A (zh) * 2020-05-27 2020-09-01 贵州大学 基于改进Merkle-Tree认证方法的可验证多关键字搜索方法
CN115333845B (zh) * 2022-08-19 2024-04-12 南京理工大学 基于子集的隐私数据验证方法
CN116959657B (zh) * 2023-09-18 2023-12-12 苏州绿华科技有限公司 一种医疗大数据安全管理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103944711A (zh) * 2014-02-17 2014-07-23 国家超级计算深圳中心 一种云存储密文检索方法及其系统
CN104102714A (zh) * 2014-07-16 2014-10-15 上海交通大学 基于累加器和布隆过滤器的外包数据查询验证方法及系统
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925624B2 (en) * 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103944711A (zh) * 2014-02-17 2014-07-23 国家超级计算深圳中心 一种云存储密文检索方法及其系统
CN104102714A (zh) * 2014-07-16 2014-10-15 上海交通大学 基于累加器和布隆过滤器的外包数据查询验证方法及系统
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Straggler identification in round-trip data streams via newton’s identities and invertible bloom filters;EPPSTEIN D,GOODRICH M;《IEEE Transactions on Knowledge and Data Engineering》;20110228;第23卷(第2期);全文 *
Verifiable Search for Dynamic Outsourced Database in Cloud Computing;Jianfeng Wang et;《2015 10th International Conference on Broadband and Wireless Computing, Communication and Applications》;20151231;全文 *
云环境下的多用户加密关键字搜索技术研究;李诗旸;《中国优秀硕士学位论文全文数据库信息科技辑》;20151215(第12期);全文 *

Also Published As

Publication number Publication date
CN108256348A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN108256348B (zh) 一种密文搜索结果验证方法及其系统
Wu et al. New certificateless aggregate signature scheme for healthcare multimedia social network on cloud environment
US20230109352A1 (en) Node group-based data processing method and system, device, and medium
Mao et al. A position-aware Merkle tree for dynamic cloud data integrity verification
CN108092766A (zh) 一种密文搜索权限验证方法及其系统
Wei et al. A redactable blockchain framework for secure federated learning in industrial Internet of Things
CN103563288B (zh) 基于口令的单轮密钥交换协议
CN111107094B (zh) 轻量级地面向医疗物联网的大数据共享系统
Kang et al. Certificateless public auditing with privacy preserving for cloud-assisted wireless body area networks
CN106789082A (zh) 基于无线体域网的云存储医疗数据批量自审计方法
CN109117662A (zh) 基于区块链的电子病历安全搜索方法
CN106487786A (zh) 一种基于生物特征的云数据完整性验证方法及系统
Qian et al. Profile matching for IoMT: A verifiable private set intersection scheme
Fan et al. Verifiable attribute-based multi-keyword search over encrypted cloud data in multi-owner setting
Fan et al. Identity-based auditing for shared cloud data with efficient and secure sensitive information hiding
Obiri et al. Personal health records sharing scheme based on attribute based signcryption with data integrity verifiable
Arumugam et al. Federated learning-based privacy preservation with blockchain assistance in IoT 5G heterogeneous networks
CN113836571B (zh) 基于云和区块链的医疗数据拥有终端位置匹配方法及系统
Kim et al. Privacy-preserving public auditing for shared cloud data with secure group management
WO2019104675A1 (zh) 一种密文搜索结果验证方法及其系统
Han et al. An efficient lucas sequence-based batch auditing scheme for the internet of medical things
Li et al. Public auditing scheme for cloud-based wireless body area network
WO2019104674A1 (zh) 一种密文搜索权限验证方法及其系统
CN109376890B (zh) 具有科室匹配功能的预约挂号方法
CN114697019B (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