CN109450935B - 云存储中可验证的语义安全的多关键词搜索方法 - Google Patents

云存储中可验证的语义安全的多关键词搜索方法 Download PDF

Info

Publication number
CN109450935B
CN109450935B CN201811553957.3A CN201811553957A CN109450935B CN 109450935 B CN109450935 B CN 109450935B CN 201811553957 A CN201811553957 A CN 201811553957A CN 109450935 B CN109450935 B CN 109450935B
Authority
CN
China
Prior art keywords
query
user
index
data
data owner
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
CN201811553957.3A
Other languages
English (en)
Other versions
CN109450935A (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.)
Henan University of Science and Technology
Original Assignee
Henan University of Science and Technology
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 Henan University of Science and Technology filed Critical Henan University of Science and Technology
Priority to CN201811553957.3A priority Critical patent/CN109450935B/zh
Publication of CN109450935A publication Critical patent/CN109450935A/zh
Application granted granted Critical
Publication of CN109450935B publication Critical patent/CN109450935B/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
    • 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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

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

Abstract

本发明涉及云存储中可验证的语义安全的多关键词搜索方法,包括系统初始化,TA与数据拥有者之间建立共享密钥,数据拥有者对数据文档及其索引的加密,TA生成查询陷门,云服务端安全查询,以及查询用户验证查询结果六个步骤,本发明通过内积谓词加密和双系统加密实现了对加密索引的语义安全的多关键词连接查询,通过引入可信的TA,实现了细粒度的授权,克服了传统的“0”或者“1”授权模型的缺点,TA对查询用户的查询资格进行验证并为通过验证的用户发送查询陷门,解决了数据拥有者需要一直在线的问题,本发明能实现细粒度授权,并且可以抵御词典攻击,可以验证查询结果正确性,是一种语义安全的多关键词搜索方法。

Description

云存储中可验证的语义安全的多关键词搜索方法
技术领域
本发明涉及加密搜索技术领域,具体涉及云存储中可验证的语义安全的多关键词搜索方法。
背景技术
云计算作为一种继分布式计算,网格计算等之后一种崭新的计算模式,可以提供强大的数据存储,管理和计算能力。近几年,随着云计算的迅速发展,很多公司或组织开始将数据外包到云端服务器,它不仅实现了用户随时随地访问远程数据,而且能减少用户的本地计算和维护开销。但是云服务器是由第三方互联网商业公司(如亚马逊、谷歌等)维护与管理的,通常与用户不属于同一个信任域。因此云计算带来便利服务的同时也可能产生严峻的安全隐患。为了保护数据安全和用户隐私,用户一般将数据加密后再存储在云服务器上。加密技术在保障外包数据安全和用户隐私的同时,也给实现安全而有效地密文搜索带来了巨大的挑战,而将所有密文下载到本地再进行解密则无疑会占用大量网络带宽和计算资源,因而也是不切实际的。
为了解决对加密数据的安全搜索问题,研究者已经提出了一些像同态加密,不经意的RAM(oblivious RAMs),但这些方法因为高昂的计算开销而不切实际。相反更加实际的方法,如可搜索加密(Searchable encryption,简称SE)方案也已经被提出,SE方案可以实现用户直接对密文进行检索,接收到密文后再对其解密,从而得到用户想要的数据,而不需要下载所有密文,然后全部解密之后才能检索自己需要的内容,这样可以节省大量的通信开销和计算开销,实现了对云端数据的高效控制,但基于公钥加密算法的SE方案具有不能抵制词典攻击(dictionaryattack)的固有缺点。
Li Ming等的论文“Authorized Private Keyword Search over EncryptedPersonal Health Records in Cloud Computing”(International Conference onDistributed Computing Systems IEEE,2011)涉及一种云环境下对加密的个人健康记录的可授权的多关键词搜索方法,文章基于现有的密码源语-分层谓词加密(hierarchicalpredicate encryption,简称HPE)提出两个可授权的关键词加密方法,他们引入了可信的授权机构TA,实现了基于用户属性的细粒度的授权模式,克服了传统的“0”或者“1”授权的弊端。在系统中,当查询用户需要进行关键词查询时,直接向TA不是数据拥有者发出查询请求,TA根据预先定义的授权规则决定是否对该用户授权,这解决了数据拥有者需要一直在线的弊端,而且他们还通过在索引的加密密文上引入一个随机数,从而克服了基于公钥加密算法的SE方案不能抵制词典攻击(dictionary attack)的固有缺点。然而该方案是假定云服务器是半诚实的,没有考虑云服务器在查询结果中插入不正确的结果的情形,没有验证查询结果正确性的功能。
申请号为CN201610243440.9的“基于公钥可搜索加密的文件存储、搜索方法及存储系统”的中国专利,涉及一种基于公钥加密的可搜索加密算法,该方案通过设置文件属性向量用于对文件的访问控制以及文件的搜索;通过设置文件的安全级别参数,来标识文件对安全强度的需求,不同的安全级别对应于不同的加密方式和加密强度。该方案解决现有的公钥可搜索加密用于属性加密时加密效率低的问题,适用对安全级别需求不同的多个应用,然而它的核心思想仍然是数据拥有者的文件属性是利用系统公钥进行加密的,这种加密的方法具有不能抵御词典攻击的固有缺陷,而且该方案也不具有查询用户验证查询结果的功能。
申请号为CN201510408903.8的“云存储中基于双线性对的多用户多关键词可搜索加密方法”的中国专利,涉及一种基于双线性对的多用户多关键词的密文搜索方法。本方案采用授权用户对关键词加密和云服务器对加密数据重加密的方式提出了一种可搜索多个关键词的加密方法,使得授权用户能够利用连接关键词的陷门搜索加密文档,而且该方案中加入了用户管理机构实现了用户的授权和管理问题。然而在这个方案中用户的授权采用的仍然是“0”或“1”授权模型,一旦用户被授权,用户管理机构将可以用于生成查询陷门的密钥发送给查询用户,也就是授权中的“1”模型,这样授权方式可以使用户请求任何多关键词连接查询,这在很多应用中是不能满足需求的,而且在这个方案中也没有查询结果验证的功能。
申请号为CN201711332605.0的“无证书的可验证多关键字密文查询系统及方法”的中国专利,具体涉及一种无证书的可验证多关键字密文查询系统及方法,引入了密钥生成中心,该方案中与传统基于公钥加密算法的密文查询不同的是,该文将密钥生成中心也假定为不可信的,通过让密钥生成中心分别根据数据拥有者和数据用户身份信息生成部分私钥,数据拥有者和数据用户根据部分私钥和秘密值生成完整的私钥,这样密钥生成中心就无法得到数据拥有者和数据用户的私钥,因而增加了私钥保护的安全性。然而在这个技术方案中,用户的授权描述不清楚,而且数据拥有者外包数据之前,数据拥用者采用公钥加密算法加密明文文档集,由于公钥加密算法具有加密速度比较缓慢的特征,所有用公钥算法加密比较大的明文文件是不切实际的。而且这个技术方案只提供了一个技术框架,并没有提供具体的算法描述。
而且上述列举的这四种现有技术都不是语义安全的,这对有语义安全需求的应用来说安全性是不够的。语义安全,是指攻击者即使拥有可选择的明密文对的知识也不能从数据拥有者外包的数据和用户提交的查询陷门中推断任何信息。
发明内容
针对现有技术的缺陷,本发明的目的是提供一种能实现细粒度授权,并且可以抵御词典攻击,可以验证查询结果正确性,语义安全的云存储中可验证的语义安全的多关键词搜索方法。
为了达到上述目的,本发明所采用的技术方案是:
云存储中可验证的语义安全的多关键词搜索方法,包括以下步骤:
步骤一、系统初始化,TA(可信的授权机构)负责系统密钥的生成,TA先后进行对偶矢量空间产生算法、正交基产生算法和初始化算法产生系统密钥(PK,SK);
步骤二、TA与数据拥有者之间建立共享密钥s,从而TA可以给数据拥有者安全地分发私密的参数,这些私密的参数用于数据拥有者对数据文档及其索引的加密;
步骤三、数据拥有者对数据文档及其索引的加密,数据拥有者需要将数据文档集F={f1,...,fm}及其索引I={I1,...,Im}进行加密后外包给云服务器,用
Figure BDA0001911364480000031
分别表示数据文档fi的标识符的密文,数据文档fi的密文,及fi对应的索引Ii的密文,m是数据文档的个数;
步骤四、TA对查询用户的查询资格验证,并根据查询用户的关键词生成查询陷门
Figure BDA0001911364480000041
发送给通过验证的查询用户;
步骤五、云服务器端对加密的索引执行安全的搜索,将查询结果发送给查询用户;
步骤六、查询用户验证查询结果。
进一步地,步骤一中TA生成系统密钥的具体过程为:
(1.1)TA运行对偶矢量空间产生算法δdpvs(1λ,N),输出一个DPVS组
Figure BDA0001911364480000042
1λ是安全参数,
Figure BDA0001911364480000043
q是一个素数,
Figure BDA0001911364480000044
Figure BDA0001911364480000045
是q阶循环群,g和gT分别是
Figure BDA0001911364480000046
Figure BDA0001911364480000047
的生成元,
Figure BDA0001911364480000048
是一个非退化的双线性对操作,gT=e(g,g)≠1,定义在有限域Fq上的N维矢量空间
Figure BDA0001911364480000049
Figure BDA00019113644800000410
的标准基
Figure BDA00019113644800000411
其中
Figure BDA00019113644800000412
N是矢量空间的维度,N=2n+3,n是属性矢量和查询矢量的长度;
(1.2)TA运行正交基产生算法δob(1λ,N),N=2n+3,输出
Figure BDA00019113644800000413
其中
Figure BDA00019113644800000414
是正交基,也就是说对于所有的i和j,都有
Figure BDA00019113644800000415
这里当i=j时满足δi,j=1,否则δi,j=0;
(1.3)TA运行初始化算法Setup(1λ,2n+3),产生系统密钥(PK,SK),用于索引矢量的加密和查询陷门的生成:
Figure BDA00019113644800000423
Figure BDA00019113644800000417
Figure BDA00019113644800000418
构造伪随机函数
Figure BDA00019113644800000419
Figure BDA00019113644800000420
Figure BDA00019113644800000421
其中PK是系统公开密钥,SK是私钥,
Figure BDA00019113644800000422
是对偶正交基,K1,K2是从伪随机函数F的第一个域中随机取得两个密钥。
进一步地,步骤二中TA与数据拥有者利用Diffie-Hellman密钥交换协议建立共享密钥s,共同输入(q,g),q是大素数,q与对偶矢量空间DPVS中的q取值相同,g为
Figure BDA0001911364480000051
的一个生成元,输出:A和B共享的一个
Figure BDA0001911364480000052
中的一个元素,此处A、B分别代表TA和数据拥有者,具体过程为:
(2.1)A均匀随机选择a∈[1,q-1],计算ga←ga(modq),发送ga给B;
(2.2)B均匀随机选择b∈[1,q-1],计算gb←gb(modq),发送gb给A;
(2.3)A计算
Figure BDA0001911364480000053
(2.4)B计算
Figure BDA0001911364480000054
进一步地,步骤三中数据文档F的加密用传统的对称加密算法加密,加密的密文为
Figure BDA0001911364480000055
m为数据文档的个数。
进一步地,步骤三中的索引I的加密过程如下:
(3.1)数据拥有者从TA请求用于索引加密的安全参数(r,K1)∈SK,用于索引I的加密,
(3.2)数据拥有者根据索引矢量的表示方法将I={I1,...,Im}中的每个Ii(1≤i≤m)逐个转化为索引矢量,m为索引个数,
Figure BDA0001911364480000056
表示第i个索引对应的索引矢量,n是索引矢量的长度;
(3.3)数据拥有者运行EncIndex
Figure BDA0001911364480000057
对每个索引矢量
Figure BDA0001911364480000058
加密,生成密文
Figure BDA0001911364480000059
其中
Figure BDA00019113644800000510
是索引矢量
Figure BDA00019113644800000511
对应的密文,并且求出
Figure BDA00019113644800000512
FIDi是数据文档fi的身份标识符;
(3.4)数据拥有者将(α1,...,αn),
Figure BDA00019113644800000515
外包给云服务器,其中
Figure BDA00019113644800000514
分别表示数据文档fi的标识符的密文,fi的密文,及fi对应的索引Ii的密文。
进一步地,步骤(3.1)请求安全参数(r,K1)的具体过程包括:
(3.1.1)TA利用与数据拥有者共享的密钥s计算P1=sr,P2=sK1,并发送(P1,P2)给数据拥有者;
(3.1.2)数据拥有者利用共享密钥s计算s-1P1和s-1P2分别获得r和K1,这里s-1指的是s的模q逆元。
进一步地,步骤四TA对查询用户的查询资格验证,并根据查询用户的关键词生成查询陷门
Figure BDA0001911364480000061
发送给通过验证的查询用户的具体过程如下:
(4.1)接到从用户发来的包含查询关键词的查询Q,TA检查该用户是否拥有与查询关键词相同的属性值或者是否有资格查询那些属性值;若TA检查后发现该查询用户符合查询权限,将查询Q表示成查询矢量
Figure BDA0001911364480000062
n是查询矢量的长度;
(4.2)TA运行陷门产生算法
Figure BDA00019113644800000615
产生陷门
Figure BDA0001911364480000064
Figure BDA0001911364480000065
Figure BDA00019113644800000614
Figure BDA0001911364480000067
KIDi表示对应于第i个属性的查询关键词的身份标识符,
Figure BDA0001911364480000068
假设用户不关心第j(1≤j≤d)个属性的值,定义βj=1;
β=β12...,βd-1d,这里d是属性的个数;
Figure BDA0001911364480000069
Figure BDA00019113644800000610
Return
Figure BDA00019113644800000611
Figure BDA00019113644800000612
用于密文的查询,
Figure BDA00019113644800000613
用于查询结果的验证;
(4.3)TA将
Figure BDA0001911364480000071
直接发给查询用户。
进一步地,步骤五云服务器端对加密的索引执行安全的搜索,将查询结果发送给查询用户的过程具体为,接到从查询用户发来的陷门
Figure BDA0001911364480000072
云服务器根据查询陷门对存储在它上面的每条索引密文
Figure BDA0001911364480000073
逐条执行查询,m为数据文档的数目,最后将查询结果发送给查询用户,具体过程下:
(5.1)云服务器对每条索引密文运行查询算法
Figure BDA00019113644800000719
其中
Figure BDA0001911364480000075
是索引矢量
Figure BDA0001911364480000076
对应的密文,
Figure BDA0001911364480000077
是陷门
Figure BDA0001911364480000078
的第一个分量,
Figure BDA00019113644800000720
Figure BDA00019113644800000710
Figure BDA00019113644800000711
Figure BDA00019113644800000712
Figure BDA00019113644800000713
Figure BDA00019113644800000714
也就是
Figure BDA00019113644800000715
时,结果返回1,否则,返回0;
(5.2)为了让查询用户相信Ii包含查询Q的全部关键词,云服务器利用
Figure BDA00019113644800000716
Figure BDA00019113644800000717
计算一个证据
Figure BDA00019113644800000718
(5.3)云服务器将(αi,pfi)返回给用户,此处pfi表示文件索引Ii包含所有查询关键词的证据,αi表示Ii对应的文件标识符的密文。
进一步地,步骤六查询用户验证查询结果的具体过程为,用户从云服务器接到查询结果(αi,pfi)后,用户根据算法Verify(pfii,β)验证结果的正确性,此处β=β12...,βd-1d是步骤四中TA根据用户的查询关键词计算出来并返回给用户的,当算法输出1,查询用户认为结果是正确的,若输出0,查询用户认为结果是不正确的。
本发明的有益效果在于:
(1)利用内积谓词加密和DVPS实现了多关键词连接查询。
(2)引入可信的TA,根据查询用户的属性设定授权规则,并根据授权用户的查询关键词生成陷门发送给查询用户,而不是直接将生成查询陷门的密钥发送给查询用户,这样避免了查询用户得到用于产生查询陷门的密钥后发起对任何关键词的连接查询,也就是克服了“0”或“1”的授权的缺陷。TA对用户进行授权同时也解决了数据拥有者需要一直在线的问题。
(3)利用系统公钥加密索引后,数据拥有者将该索引密文乘以一个随机因子
Figure BDA0001911364480000081
这个随机因子由TA选取并用TA与数据拥有者之间的共享密钥加密后发送给数据拥有者的。TA为查询用户生成查询陷门后也需要乘以r的逆元r-1,这样消除了在云服务器端查询时因为r的引入受到的影响。索引密文中引入随机数的操作克服了传统的基于公钥密码算法的可搜索加密中攻击者可以发起词典攻击的缺陷。
(4)利用内积谓词加密和双系统加密的思想,实现了语义安全的多关键词查询,也就是说在攻击者具有选择性的获取索引明密文对以及查询关键词的明密文对的前提下,本发明仍然能实现索引数据的安全以及查询关键词的安全。
附图说明
图1是本发明的系统体系结构图。
具体实施方式
本发明提供一种云存储中可验证的语义安全的多关键词搜索方法,即云环境下基于对偶矢量空间(Dual pairing vector space,简称DVPS)和内积谓词加密的对加密数据的语义安全搜索方法,为了更清晰地描述本发明的技术方案,下面首先简要介绍DVPS和内积谓词加密。
DPVS:DPVS构建在双线性对群
Figure BDA0001911364480000082
上面,这里q是一个素数,
Figure BDA0001911364480000083
Figure BDA0001911364480000084
是q阶循环群,g1,g2,gT分别是
Figure BDA0001911364480000085
的生成元,
Figure BDA0001911364480000091
是一个非退化的双线性对操作,gT=e(g,g)≠1。我们的方案是构造在一个对称的双线性对群上,也就是
Figure BDA0001911364480000092
Figure BDA0001911364480000093
一个多元组,包括素数q,定义在有限域Fq上的N维矢量空间
Figure BDA0001911364480000094
Figure BDA0001911364480000095
的标准基
Figure BDA0001911364480000096
其中
Figure BDA0001911364480000097
以及双线性对
Figure BDA0001911364480000098
满足以下3条性质:
(1)
Figure BDA0001911364480000099
是一个多项式时间可计算的非退化的双线性对满足e(sX,tY)=e(X,Y)st,其中s,t∈Fq,
Figure BDA00019113644800000910
假如e(X,Y)=1对于所有的
Figure BDA00019113644800000911
都成立,那么X=0,而且
Figure BDA00019113644800000912
(2)对所有的i和j,都满足
Figure BDA00019113644800000913
当i=j时δi,j=1;否则δi,j=0。
(3)
Figure BDA00019113644800000914
存在一个多项式时间可计算的自同态φi,j,满足k=j时φi,j(ak)=ai和k≠j时φi,j(ak)=0。
内积谓词加密:在标准的谓词加密(PE)中,私钥对应于一个谓词类
Figure BDA00019113644800000915
密文对应属性集∑中的一个属性,当且仅当f(I)=1时,对应于一个谓词
Figure BDA00019113644800000916
的私钥skf可以用来解密对应于属性I∈∑的一个密文;在内积谓词的谓词加密中,每个属性对应一个属性矢量
Figure BDA00019113644800000917
每一个谓词
Figure BDA00019113644800000918
对应一个谓词矢量
Figure BDA00019113644800000919
当且仅当
Figure BDA00019113644800000920
时(这里“·”表示内积),
Figure BDA00019113644800000921
在内积谓词加密中索引属性和多关键词查询都表示为一个矢量形式;我们下面介绍查询是多个属性关键词之间的AND连接时索引矢量(也称属性矢量)
Figure BDA00019113644800000922
和谓词矢量(也称查询矢量)
Figure BDA00019113644800000923
的表示方法;这种表示方法的基本思想是先转化为多项式,再转化为矢量,假定每个索引中有d个属性。
对于查询"(A1=a1)∧(A2=a2),...,∧(Ad=ad)",该查询可以转化为多项式p(A1,A2,...,Ad)=r1(A1-a1)+r2(A2-a2)+,...,+rd-1(Ad-1-ad-1)+(Ad-ad),这里系数ri∈Fq
属性矢量表示为:
Figure BDA0001911364480000101
这里Ai需要换成该索引的第i个属性的属性值,查询矢量表示为:
Figure BDA0001911364480000102
用户可能查询时只关注b(b<d)个属性,例如,对病人电子医疗记录的一个查询“性别=男”∧“疾病=胃癌”只关注病人的性别和疾病,并不关心年龄和地区等其他属性,这时查询矢量的表示方法是:对于不关注的属性,查询矢量的对应位上改为0即可。
利用这种矢量表示方法,具有下列重要的特性:(1)属性矢量和查询矢量的长度都是d+1;(2)当一个索引中包含一个查询中所有的关键词时,该索引矢量与查询矢量的内积为0,即
Figure BDA0001911364480000103
当查询具有属性间是“与”连接,属性内包含范围查询或者“OR”特征时,如“60≤年龄≤70”∧“疾病=胃癌”,属性矢量和查询矢量还用上述的矢量表示方法,那么矢量长度会增长很多,因而会相应的增加索引矢量和查询矢量加密的计算量,为此一些研究中也提出了一些适应这种查询的矢量表示方法,他们都满足
Figure BDA0001911364480000104
在本发明的方案中可以根据需求采用合适的索引矢量和查询矢量的表示方法。
在本发明方案中,符号“z←A(x,y,...)”表示运行输入为(x,y,...)的算法A,输出z;
Figure BDA0001911364480000105
表示从集合A中均匀随机地选取一个元素a;“GL(N,Fq)”表示每个元素属于Fq的N×N的可逆矩阵的集合;“F:Keys(F)×D→R”是一个定义域是D,值域是R的映射,Keys(F)是F的密钥集合;F(K,x)也可表示为FK(x),本方案中我们也称F(K,x)为x的密文。
下面详细介绍本发明的技术方案,本发明的系统体系结构如图1所示,本发明的查询方法包括:系统初始化,TA(可信的授权机构)与数据拥有者之间建立共享密钥,数据拥有者对数据文档及其索引的加密,TA生成查询陷门,云服务端安全查询,以及查询用户验证查询结果六个步骤,具体如下。
步骤一、系统初始化,TA负责系统密钥的生成;具体的过程如步骤1.1-1.3。
步骤1.1:TA运行对偶矢量空间产生算法δdpvs(1λ,N),1λ是安全参数,
Figure BDA0001911364480000111
输出一个DPVS组
Figure BDA0001911364480000112
这里N是矢量空间的维度,N=2n+3,n是属性矢量和查询矢量的长度。
步骤1.2:TA运行正交基产生算法δob(1λ,N)N=2n+3;
Figure BDA0001911364480000113
Figure BDA0001911364480000114
这里(XT)-1表示矩阵X转置后求逆。
Figure BDA0001911364480000115
Figure BDA0001911364480000116
Figure BDA0001911364480000117
这里
Figure BDA0001911364480000118
是对偶正交基,也就是说对于所有的i和j,都有
Figure BDA0001911364480000119
这里当i=j时满足δi,j=1,否则δi,j=0。
步骤1.3:TA运行初始化算法Setup(1λ,2n+3),产生系统密钥(PK,SK),用于索引矢量的加密和查询陷门的生成。
Figure BDA00019113644800001110
Figure BDA00019113644800001111
Figure BDA00019113644800001112
r表示从有限域Fq(去掉0)中均匀随机选取的一个值;
构造伪随机函数
Figure BDA00019113644800001113
Figure BDA00019113644800001114
是从伪随机函数F的第一个域(也就是F的密钥域)中随机取得两个密钥;
Figure BDA00019113644800001115
PK为系统公开密钥,SK为私钥。
步骤二、TA和数据拥有者建立共享密钥;TA需要与数据拥有者之间建立共享密钥,从而TA可以给数据拥有者安全地分发私密的参数,这些私密的参数用于数据拥有者对数据文档及其索引的加密;本发明采用Diffie-Hellman密钥交换协议建立共享密钥s;Diffie-Hellman密钥交换协议描述如下。
Diffie-Hellman密钥交换协议:
共同输入(q,g):q是大素数,这里q与对偶矢量空间DPVS中的q取值相同,g为
Figure BDA0001911364480000121
的一个生成元(注:这里的g与上面双线性群参数上的g不是一回事,只是一个常用的表示符号)。
输出:A和B共享的一个
Figure BDA0001911364480000122
中的一个元素,具体为:
步骤2.1:A均匀随机选择a∈[1,q-1],计算ga←ga(modq),发送ga给B;
步骤2.2:B均匀随机选择b∈[1,q-1],计算gb←gb(modq),发送gb给A;
步骤2.3:A计算
Figure BDA0001911364480000123
步骤2.4:B计算
Figure BDA0001911364480000124
在上述算法中,A和B分别代表着TA和数据拥有者。
步骤三、数据拥有者对文档数据及其索引的加密。为了方便搜索,数据拥有者将他拥有的数据文档集(如病人的电子医疗文档)F={f1,...,fm}建立一个索引I={I1,...,Im},m是数据文档(或电子医疗文档)的数目;我们称一条索引为一条记录,数据拥有者需要将数据文档集F={f1,...,fm}和索引I={I1,...,Im}进行加密后外包给云服务器。
文档集F的加密可以用传统的对称加密算法,如AES算法加密。
索引I的加密过程如下步骤3.1-3.4:
步骤3.1:数据拥有者从TA请求用于索引加密的安全参数(r,K1)∈SK,用于索引I的加密。请求(r,K1)的具体过程如步骤3.1.1-3.1.2。
步骤3.1.1:TA利用步骤二中建立的数据拥有者的共享密钥s计算(P1,P2),P1=sr,P2=sK1,并发送(P1,P2)给数据拥有者。
步骤3.1.2:数据拥有者利用共享密钥s计算s-1P1=r和s-1P2=K1得到(r,K1),这里s-1指的是s的模q逆元。
步骤3.2:数据拥有者根据索引矢量的表示方法将I={I1,...,Im}中的每个Ii(1≤i≤m)逐个转化为索引矢量
Figure BDA0001911364480000131
这里的n是索引矢量的长度。
步骤3.3:数据拥有者运行
Figure BDA0001911364480000132
对每个索引矢量
Figure BDA0001911364480000133
加密,生成密文
Figure BDA0001911364480000134
Figure BDA0001911364480000135
Figure BDA0001911364480000136
Figure BDA0001911364480000137
FIDi是数据文档fi(它的索引是Ii)的身份标识符。
Figure BDA0001911364480000138
Figure BDA0001911364480000139
Figure BDA00019113644800001310
是索引矢量
Figure BDA00019113644800001311
对应的密文。
步骤3.4:数据拥有者将(α1,...,αn),
Figure BDA00019113644800001312
外包给云服务器,这里αi,
Figure BDA00019113644800001313
分别表示fi的标识符的密文,fi的密文,及fi对应的索引Ii的密文。
步骤四、TA生成查询陷门并发送给查询用户。TA根据查询用户的查询关键词需要执行以下步骤4.1-4.3产生查询陷门(即查询矢量的密文)。
步骤4.1:接到从用户发来的包含查询关键词的查询Q,TA检查这个用户是否拥有与查询关键词相同的属性值或者是否有资格查询那些属性值。
若TA根据授权规则,判定该用户有权执行查询Q,将查询Q表示成查询矢量
Figure BDA00019113644800001314
n是查询矢量的长度。
步骤4.2:TA运行陷门产生算法
Figure BDA0001911364480000141
产生陷门
Figure BDA0001911364480000142
Figure BDA0001911364480000143
Figure BDA0001911364480000144
KIDi表示对应于第i个属性的查询关键词的身份标识符,
Figure BDA0001911364480000145
假设用户不关心第j(1≤j≤d)个属性的值,定义βj=1。
β=β12...,βd-1d,这里d是属性的个数。
Figure BDA0001911364480000146
Figure BDA0001911364480000147
Figure BDA0001911364480000148
Figure BDA0001911364480000149
将用于密文的查询,
Figure BDA00019113644800001410
将用于查询结果的验证。
步骤4.3:TA将
Figure BDA00019113644800001411
直接发给查询用户。
步骤五、云服务器端对加密的索引矢量执行安全的搜索。接到从查询用户发来的陷门
Figure BDA00019113644800001412
云服务器根据查询陷门对存储在它上面的每条索引密文
Figure BDA00019113644800001413
逐条执行查询,最后将查询结果发送给查询用户;具体过程如步骤5.1-5.3。
步骤5.1:云服务器对每条索引密文运行查询算法
Figure BDA00019113644800001414
这里
Figure BDA00019113644800001415
是索引矢量
Figure BDA00019113644800001416
对应的密文,
Figure BDA00019113644800001417
Figure BDA00019113644800001418
的第一个分量。
Figure BDA00019113644800001419
Figure BDA00019113644800001420
Figure BDA00019113644800001421
Figure BDA0001911364480000151
Figure BDA0001911364480000152
Figure BDA0001911364480000153
结果返回1,
否则,返回0。
根据索引矢量和查询矢量的表示方法,当
Figure BDA0001911364480000154
也即
Figure BDA0001911364480000155
说明Ii包含查询中所有的关键词。所以,算法
Figure BDA0001911364480000156
返回1,表示Ii包含查询中所有的关键词。当
Figure BDA0001911364480000157
说明Ii不包含查询中所有的关键词。
步骤5.2:为了让查询用户相信Ii包含查询Q的全部关键词,云服务器利用
Figure BDA0001911364480000158
Figure BDA0001911364480000159
计算一个证据
Figure BDA00019113644800001510
步骤5.3:云服务器将(αi,pfi)返回给用户,其中pfi表示文档的索引Ii包含所有查询关键词的证据,αi表示Ii对应的数据文档fi的标识符的密文。
步骤六、查询用户验证结果。查询用户从云服务器接到查询结果(αi,pfi)后,根据算法Verify(pfii,β)验证结果的正确性;这里的β=β12...,βd-1d是步骤四中TA根据用户的查询关键词计算出来并返回给用户的;当算法输出1,查询用户认为结果是正确的。.
Verify(pfii,β):
Figure BDA00019113644800001511
Ift=pfi,Return 1,说明结果正确。
Otherwise,Return 0,说明结果不正确。
这里正确是基于这样一个事实:
Figure BDA0001911364480000161
这里当
Figure BDA0001911364480000162
也就是Ii包含查询中所有的关键词时,
Figure BDA0001911364480000163
Figure BDA0001911364480000164
时,
Figure BDA0001911364480000165
这个值均匀随机的分布在
Figure BDA0001911364480000166
上,所以当验证算法中
Figure BDA0001911364480000167
时,说明说明Ii不包含查询中所有的关键词。
上述列举的技术方案适用于查询用户不关心查询到的具体的病人的具体的电子文档的内容,也就是
Figure BDA0001911364480000168
对应明文fi,只用于统计等目的,因此查询用户不需解密查询到结果;若查询用户关心查询到的病人文档的加密文件
Figure BDA0001911364480000169
对应明文fi,那么查询用户向TA请求授权时,需要与TA建立共享密钥(方法与TA和数据拥有者建立共享密钥的方法相同),并利用共享密钥传送可以解密
Figure BDA00019113644800001610
的密钥。
实施例一
下面我们结合如图1所示的系统结构图和表1所示的电子医疗记录EMR说明本发明的技术方案执行对电子医疗记录的多关键词的搜索过程。
表1电子医疗记录
Figure BDA00019113644800001611
Figure BDA0001911364480000171
步骤一、系统初始化,TA负责系统密钥的生成,具体的过程如步骤1.1-1.3:
步骤1.1:TA运行对偶矢量空间产生算法δdpvs(1λ,N)
Figure BDA0001911364480000172
输出一个组
Figure BDA0001911364480000173
N是矢量空间的维度,N=2n+3,n是属性矢量和查询矢量的长度。
步骤1.2:TA运行正交基产生算法δob(1λ,N)N=2n+3,输出
Figure BDA0001911364480000174
Figure BDA0001911364480000175
是正交基,也就是说对于所有的
Figure BDA0001911364480000176
当i=j时满足δi,j=1,否则δi,j=0。
步骤1.3:TA运行初始化算法Setup(1λ,2n+3),返回系统公开密钥PK,私钥SK,
Figure BDA0001911364480000177
其中
Figure BDA0001911364480000178
步骤二、TA和数据拥有者之间建立共享密钥;TA需要与数据拥有者建立共享密钥,用于TA向数据拥有者安全地分发用于加密数据拥有者数据的私密的参数。TA与数据拥有者利用Diffie-Hellman密钥交换协议建立共享密钥s;Diffie-Hellman密钥交换协议描述如下。
Diffie-Hellman密钥交换协议:
共同输入(q,g):q是大素数,q与对偶矢量空间DPVS中的q取值相同,g为
Figure BDA0001911364480000179
的一个生成元。
输出:A和B共享的一个
Figure BDA00019113644800001710
中的一个元素。
步骤2.1:A均匀随机选择a∈[1,q-1],计算ga←ga(modq),发送ga给B;
步骤2.2:B均匀随机选择b∈[1,q-1],计算gb←gb(modq),发送gb给A;
步骤2.3:A计算
Figure BDA00019113644800001711
步骤2.4:B计算
Figure BDA0001911364480000181
本发明的方案中A、B分别代表着TA和数据拥有者。
步骤三、数据拥有者对表1中的1000个病人的电子医疗文档及文档索引进行加密,则m=1000;数据拥有者将他拥有的1000个病人的电子医疗文档F={f1,...,f1000}建立一个索引I={I1,...,I1000};我们称一条索引为一条记录,数据拥有者需要将F={f1,...,f1000}和I={I1,...,Im}进行加密后外包给云服务器。文档F的加密可以用传统的对称加密算法,如AES算法加密,加密的密文为(Cf1,...,Cf1000)。本发明中着重考虑设计安全的查询方案,因此文档F的加密不再详述。索引I的加密过程如步骤3.1-3.4。
数据拥有者从TA请求用于索引加密的安全参数(r,K1),用于索引I的加密,这一步的具体的过程又包括步骤3.1.1和3.1.2两个步骤。
步骤3.1.1:TA利用与数据拥有者的共享密钥s计算P1=sr,P2=sK1,并发送(P1,P2)给数据拥有者,这里s-1指的是s的模q逆元。
步骤3.1.2:数据拥有者利用共享密钥s计算s-1P1和s-1P2分别获得r和K1
步骤3.2:数据拥有者根据索引矢量的表示方法将I={I1,...,I1000}逐个转化为索引矢量,
Figure BDA0001911364480000182
表示第i个索引对应的索引矢量,n是索引矢量的长度。
步骤3.3:数据拥有者通过
Figure BDA0001911364480000183
求出文档fi的标识符的密文,运行
Figure BDA0001911364480000184
对每个索引矢量进行加密,索引的密文为
Figure BDA0001911364480000185
其中
Figure BDA0001911364480000186
步骤3.4:数据拥有者将(α1,...,αn),
Figure BDA0001911364480000187
外包给云服务器,这里αi,
Figure BDA0001911364480000188
分别表示fi的标识符的密文,fi的密文,及fi对应的索引Ii的密文。
步骤四、产生和发送查询陷门。陷门是TA根据查询用户的查询关键词产生的,TA执行以下步骤4.1-4.4。
步骤4.1:接到从用户发来的包含查询关键词的查询Q,TA检查这个用户是否有资格进行这个查询(注意,TA已经预先定义了授权规则,这些授权规则根据这个用户是否具有与查询关键词相同的属性值或者定义一个授权规则决定用户是否被授权查询)。
步骤4.2:若TA检查后发现该查询用户符合查询权限,将查询Q根据查询矢量的产生方法产生查询矢量
Figure BDA0001911364480000191
n是查询矢量的长度。
步骤4.3:TA运行陷门产生算法
Figure BDA0001911364480000192
产生陷门
Figure BDA0001911364480000193
Figure BDA0001911364480000194
β=β1·β2...,βd
Figure BDA0001911364480000195
KIDi表示相应于第i个属性的查询关键词的身份标识符。
假设用户不关心第j个属性的的值,定义βj=1。
Figure BDA0001911364480000196
Figure BDA0001911364480000197
Figure BDA0001911364480000198
步骤4.4:TA将查询陷门
Figure BDA0001911364480000199
发给查询用户。
步骤五、云服务器端的安全搜索。接到从查询用户发来的陷门
Figure BDA00019113644800001910
云服务器根据陷门对存储在它上面的每条索引逐条查询,最后将查询结果发送给查询用户,具体过程如步骤5.1-5.3。
步骤5.1:云服务器对每条索引运行查询算法
Figure BDA00019113644800001911
Figure BDA0001911364480000201
Figure BDA0001911364480000202
步骤5.2:为了让查询用户相信第i条记录包含全部查询关键词,云服务器产生一个证据
Figure BDA0001911364480000203
步骤5.3:云服务器将(αi,pfi)传给查询用户,其中pfi表示文件索引ii包含查询关键词的证据。
步骤六、查询用户验证结果;接到查询结果后查询用户运行Verify(pfii,β)验证查询结果的正确性;当算法输出1,查询用户认为结果是正确的,若输出0,查询用户认为结果是不正确的。
综上,本发明提供的多关键词连接查询的方法,相比现有技术,优点在于:
(1)实现了对加密索引的多关键词连接查询。
(2)引入可信的TA,实现了细粒度的授权,克服了传统的“0”或者“1”授权模型的缺点。
(3)TA对查询用户的查询资格验证并为通过验证的用户发送查询陷门,这种模式解决了数据拥有者需要一直在线的问题。
(4)基于内积谓词加密和双系统加密实现了语义安全的关键词连接查询。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (3)

1.云存储中可验证的语义安全的多关键词搜索方法,其特征在于,包括以下步骤:
步骤一、系统初始化,TA(可信的授权机构)负责系统密钥的生成,TA先后进行对偶矢量空间产生算法、正交基产生算法和初始化算法产生系统密钥(PK,SK),TA生成系统密钥的具体过程为:
(1.1)TA运行对偶矢量空间产生算法δdpvs(1λ,N),输出一个DPVS组
Figure FDA0002735627490000011
1λ是安全参数,
Figure FDA0002735627490000012
q是一个素数,
Figure FDA0002735627490000013
Figure FDA0002735627490000014
是q阶循环群,g和gT分别是
Figure FDA0002735627490000015
Figure FDA0002735627490000016
的生成元,e:
Figure FDA0002735627490000017
是一个非退化的双线性对操作,gT=e(g,g)≠1,定义在有限域Fq上的N维矢量空间
Figure FDA0002735627490000018
Figure FDA00027356274900000122
的标准基
Figure FDA00027356274900000121
其中
Figure FDA0002735627490000019
N是矢量空间的维度,N=2n+3,n是属性矢量和查询矢量的长度;
(1.2)TA运行正交基产生算法δob(1λ,N),N=2n+3,输出
Figure FDA00027356274900000110
其中
Figure FDA00027356274900000111
是正交基,也就是说对于所有的i和j,都有
Figure FDA00027356274900000112
这里当i=j时满足δi,j=1,否则δi,j=0;
(1.3)TA运行初始化算法Setup(1λ,2n+3),产生系统密钥(PK,SK),用于索引矢量的加密和查询陷门的生成:
Setup(1λ,2n+3):
Figure FDA00027356274900000113
Figure FDA00027356274900000114
Figure FDA00027356274900000115
构造伪随机函数F:
Figure FDA00027356274900000116
Figure FDA00027356274900000117
Figure FDA00027356274900000118
其中PK是系统公开密钥,SK是私钥,
Figure FDA00027356274900000119
是对偶正交基,K1,K2是从伪随机函数F的第一个域中随机取得两个密钥;
步骤二、TA与数据拥有者之间建立共享密钥s,从而TA可以给数据拥有者安全地分发私密的参数,这些私密的参数用于数据拥有者对数据文档及其索引的加密;TA与数据拥有者利用Diffie-Hellman密钥交换协议建立共享密钥s,共同输入(q,g),q是大素数,g为
Figure FDA00027356274900000120
的一个生成元,输出:A和B共享的一个
Figure FDA0002735627490000021
中的一个元素,此处A、B分别代表TA和数据拥有者,具体过程为:
(2.1)A均匀随机选择a∈[1,q-1],计算ga←ga(modq),发送ga给B;
(2.2)B均匀随机选择b∈[1,q-1],计算gb←gb(modq),发送gb给A;
(2.3)A计算
Figure FDA0002735627490000022
(2.4)B计算
Figure FDA0002735627490000023
步骤三、数据拥有者对数据文档及其索引的加密,数据拥有者需要将数据文档集F={f1,...,fm}及其索引I={I1,...,Im}进行加密后外包给云服务器,用αi,
Figure FDA00027356274900000220
分别表示数据文档fi的标识符的密文,数据文档fi的密文,及fi对应的索引Ii的密文,m是数据文档的个数;索引I的加密过程如下:
(3.1)数据拥有者从TA请求用于索引加密的安全参数(r,K1)∈SK,用于索引I的加密,
(3.2)数据拥有者根据索引矢量的表示方法将I={I1,…,Im}中的每个Ii(1≤i≤m)逐个转化为索引矢量,m为索引个数,
Figure FDA0002735627490000024
表示第i个索引对应的索引矢量,n是索引矢量的长度;
(3.3)数据拥有者运行
Figure FDA0002735627490000025
对每个索引矢量
Figure FDA0002735627490000026
加密,生成密文
Figure FDA0002735627490000027
其中
Figure FDA0002735627490000028
是索引矢量
Figure FDA0002735627490000029
对应的密文,并且求出
Figure FDA00027356274900000210
FIDi是数据文档fi的身份标识符;
(3.4)数据拥有者将(α1,…,αn),
Figure FDA00027356274900000211
外包给云服务器,其中αi,
Figure FDA00027356274900000212
分别表示数据文档fi的标识符的密文,fi的密文,及fi对应的索引的密文;
步骤四、TA对查询用户的查询资格验证,并根据查询用户的关键词生成查询陷门
Figure FDA00027356274900000213
发送给通过验证的查询用户,具体过程如下:
(4.1)接到从用户发来的包含查询关键词的查询Q,TA检查该用户是否拥有与查询关键词相同的属性值或者是否有资格查询那些属性值;若TA检查后发现该查询用户符合查询权限,将查询Q表示成查询矢量
Figure FDA00027356274900000214
n是查询矢量的长度;
(4.2)TA运行陷门产生算法
Figure FDA00027356274900000215
产生陷门
Figure FDA00027356274900000216
Figure FDA00027356274900000217
Figure FDA00027356274900000218
ρ121,
Figure FDA00027356274900000219
Figure FDA0002735627490000031
KIDi表示对应于第i个属性的查询关键词的身份标识符,
Figure FDA0002735627490000032
假设用户不关心第j(1≤j≤d)个属性的值,定义βj=1;
β=β12…,βd-1d,这里d是属性的个数;
Figure FDA0002735627490000033
Figure FDA0002735627490000034
Figure FDA0002735627490000035
Figure FDA0002735627490000036
用于密文的查询,
Figure FDA0002735627490000037
用于查询结果的验证;
(4.3)TA将
Figure FDA0002735627490000038
直接发给查询用户;
步骤五、云服务器端对加密的索引执行安全的搜索,将查询结果发送给查询用户,具体为,接到从查询用户发来的陷门
Figure FDA0002735627490000039
云服务器根据查询陷门对存储在它上面的每条索引密文
Figure FDA00027356274900000310
逐条执行查询,m为数据文档的数目,最后将查询结果发送给查询用户,具体过程下:
(5.1)云服务器对每条索引密文运行查询算法
Figure FDA00027356274900000311
其中
Figure FDA00027356274900000312
是索引矢量
Figure FDA00027356274900000313
对应的密文,
Figure FDA00027356274900000314
是陷门
Figure FDA00027356274900000315
的第一个分量,
Figure FDA00027356274900000316
Figure FDA00027356274900000317
也就是
Figure FDA00027356274900000318
时,结果返回1,否则,返回0;
(5.2)为了让查询用户相信Ii包含查询Q的全部关键词,云服务器利用
Figure FDA00027356274900000319
Figure FDA00027356274900000320
计算一个证据
Figure FDA00027356274900000321
(5.3)云服务器将(αi,pfi)返回给用户,此处pfi表示文件索引Ii包含所有查询关键词的证据,αi表示Ii对应的文档标识符的密文;
步骤六、查询用户验证查询结果:用户从云服务器接到查询结果(αi,pfi)后,用户根据算法Verify(pfii,β)验证结果的正确性,此处β=β12…,βd-1d是步骤四中TA根据用户的查询关键词计算出来并返回给用户的,当算法输出1,查询用户认为结果是正确的,若输出0,查询用户认为结果是不正确的。
2.如权利要求1所述的云存储中可验证的语义安全的多关键词搜索方法,其特征在于,步骤三中数据文档F的加密用传统的对称加密算法加密,加密的密文为
Figure FDA0002735627490000041
m为数据文档的个数。
3.如权利要求1所述的云存储中可验证的语义安全的多关键词搜索方法,其特征在于,步骤(3.1)请求安全参数(r,K1)的具体过程包括:
(3.1.1)TA利用与数据拥有者共享的密钥s计算(P1,P2),P1=sr,P2=sK1并发送(P1,P2)给数据拥有者;
(3.1.2)数据拥有者利用共享密钥s计算s-1P1=r和s-1P2=K1得到(r,K1),这里s-1指的是s的模q逆元。
CN201811553957.3A 2018-12-19 2018-12-19 云存储中可验证的语义安全的多关键词搜索方法 Active CN109450935B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811553957.3A CN109450935B (zh) 2018-12-19 2018-12-19 云存储中可验证的语义安全的多关键词搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811553957.3A CN109450935B (zh) 2018-12-19 2018-12-19 云存储中可验证的语义安全的多关键词搜索方法

Publications (2)

Publication Number Publication Date
CN109450935A CN109450935A (zh) 2019-03-08
CN109450935B true CN109450935B (zh) 2021-02-02

Family

ID=65559441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811553957.3A Active CN109450935B (zh) 2018-12-19 2018-12-19 云存储中可验证的语义安全的多关键词搜索方法

Country Status (1)

Country Link
CN (1) CN109450935B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222081B (zh) * 2019-06-08 2022-04-19 西安电子科技大学 多用户环境下基于细粒度排序的数据密文查询方法
CN110266687B (zh) * 2019-06-21 2021-08-17 杭州云象网络技术有限公司 一种采用区块链技术的物联网安全代理数据共享模块设计方法
CN111159352B (zh) * 2019-12-31 2023-07-07 山东齐鲁知识产权交易中心有限公司 一种支持多关键词加权检索和结果排序且可验证的加解密方法
CN111478765B (zh) * 2020-04-03 2023-06-09 广西大学 一种云环境下的同态密文范围索引方法
CN112733193B (zh) * 2021-01-22 2023-04-07 福州大学 基于时间控制可审计匿名的谓词检索系统及方法
CN114338025A (zh) * 2021-06-23 2022-04-12 河南科技大学 一种云环境下密文等值测试方法
CN113836447B (zh) * 2021-09-29 2024-04-09 安徽大学 一种云平台下的安全轨迹相似性查询方法及系统
CN114640458B (zh) * 2022-03-28 2024-04-19 湖南科技大学 云边协同环境下细粒度的多用户安全可搜索加密方法
CN114826575B (zh) * 2022-04-19 2024-06-07 西安电子科技大学 云中基于内积谓词的单关键词可搜索加密方法
CN114676449B (zh) * 2022-05-26 2022-10-18 南京畅洋科技有限公司 一种基于可验证数据库的物联网数据可搜索加密方法
CN114900318B (zh) * 2022-06-02 2024-04-19 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法
CN115174568B (zh) * 2022-06-23 2023-05-16 南京信息工程大学 一种基于属性的密文检索方法
CN114884660B (zh) * 2022-07-12 2022-09-20 西南石油大学 一种基于通配符身份的可搜索加密方法
CN116127498B (zh) * 2022-11-28 2024-06-07 中国民用航空总局第二研究所 一种密文检索结果可验证的多关键字可搜索加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104052740A (zh) * 2014-05-22 2014-09-17 西安理工大学 云存储中可验证的基于词典的可搜索加密方法
CN105049196A (zh) * 2015-07-13 2015-11-11 西安理工大学 云存储中指定位置的多个关键词可搜索的加密方法
CN106980796A (zh) * 2017-03-27 2017-07-25 河南科技大学 云环境下基于mdb+树的多域连接关键词的搜索方法
CN107908779A (zh) * 2017-12-05 2018-04-13 河南科技大学 云环境下基于mat树的动态多属性连接关键词的搜索方法
KR20180130249A (ko) * 2017-05-29 2018-12-07 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104052740A (zh) * 2014-05-22 2014-09-17 西安理工大学 云存储中可验证的基于词典的可搜索加密方法
CN105049196A (zh) * 2015-07-13 2015-11-11 西安理工大学 云存储中指定位置的多个关键词可搜索的加密方法
CN106980796A (zh) * 2017-03-27 2017-07-25 河南科技大学 云环境下基于mdb+树的多域连接关键词的搜索方法
KR20180130249A (ko) * 2017-05-29 2018-12-07 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법
CN107908779A (zh) * 2017-12-05 2018-04-13 河南科技大学 云环境下基于mat树的动态多属性连接关键词的搜索方法

Also Published As

Publication number Publication date
CN109450935A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109450935B (zh) 云存储中可验证的语义安全的多关键词搜索方法
Liang et al. Searchable attribute-based mechanism with efficient data sharing for secure cloud storage
Miao et al. m 2-ABKS: Attribute-based multi-keyword search over encrypted personal health records in multi-owner setting
CN105610910B (zh) 面向云存储并基于全同态密码的密文全文检索方法及系统
CN107491497A (zh) 支持任意语言查询的多用户多关键词排序可搜索加密系统
CN105024802B (zh) 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
Liu et al. EMK-ABSE: Efficient multikeyword attribute-based searchable encryption scheme through cloud-edge coordination
Sun et al. A dynamic and non-interactive boolean searchable symmetric encryption in multi-client setting
Chen et al. Password-authenticated searchable encryption
Zhang et al. Secure and efficient searchable public key encryption for resource constrained environment based on pairings under prime order group
Jiang et al. An Efficient Symmetric Searchable Encryption Scheme for Cloud Storage.
Mei et al. Verifiable identity-based encryption with keyword search for IoT from lattice
Chen et al. Multi-user boolean searchable encryption supporting fast ranking in mobile clouds
Han et al. TCA-PEKS: Trusted certificateless authentication public-key encryption with keyword search scheme in cloud storage
Cui et al. Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database
Wang et al. Attribute-based encrypted search for multi-owner and multi-user model
Zhou et al. Fine‐Grained Attribute‐Based Multikeyword Search for Shared Multiowner in Internet of Things
Wang et al. Attribute-based encryption with efficient keyword search and user revocation
Shen et al. Keyword search with access control over encrypted data in cloud computing
Zhu et al. A secure data sharing scheme with designated server
Li et al. Decentralized Threshold Signatures with Dynamically Private Accountability
Li et al. Two‐Party Attribute‐Based Key Agreement Protocol with Constant‐Size Ciphertext and Key
Shen et al. Multi-Keywords Searchable Attribute-Based Encryption With Verification and Attribute Revocation Over Cloud Data
Hu et al. Public-key encryption with keyword search via obfuscation

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190308

Assignee: Henan Kexiang Big Data Technology Co.,Ltd.

Assignor: HENAN University OF SCIENCE AND TECHNOLOGY

Contract record no.: X2022980017060

Denomination of invention: A Multi keyword Search Method for Verifiable Semantic Security in Cloud Storage

Granted publication date: 20210202

License type: Exclusive License

Record date: 20221008