CN108599937B - 一种多关键字可搜索的公钥加密方法 - Google Patents

一种多关键字可搜索的公钥加密方法 Download PDF

Info

Publication number
CN108599937B
CN108599937B CN201810361850.2A CN201810361850A CN108599937B CN 108599937 B CN108599937 B CN 108599937B CN 201810361850 A CN201810361850 A CN 201810361850A CN 108599937 B CN108599937 B CN 108599937B
Authority
CN
China
Prior art keywords
representing
public key
keyword
cloud storage
storage server
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
CN201810361850.2A
Other languages
English (en)
Other versions
CN108599937A (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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN201810361850.2A priority Critical patent/CN108599937B/zh
Publication of CN108599937A publication Critical patent/CN108599937A/zh
Application granted granted Critical
Publication of CN108599937B publication Critical patent/CN108599937B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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

Landscapes

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

Abstract

本发明提出了一种支持多关键字搜索的公钥加密方法用于解决现有多关键字可搜索的公钥加密方法中存在的密文关键字计算过程复杂的技术问题,实现步骤包括:(1)可信第三方设定公共参数;(2)数据拥有者设置存储文件的关键字字段、关键字向量和查询格式;(3)可信第三方计算云存储服务器和数据共享者的密钥并分发;(4)数据拥有者对明文关键字向量中的明文关键字进行加密并发送;(5)数据共享者计算明文关键字向量中的明文关键字的陷门信息并发送;(6)云存储服务器搜索密文集合中的密文关键字,并将搜索到的密文关键字发送给数据共享者。本发明可在公开信道下传输关键字的密文信息和陷门信息,且抵抗关键字猜测攻击。

Description

一种多关键字可搜索的公钥加密方法
技术领域
本发明属于数据加密技术领域,具体涉及一种多关键字可搜索的公钥加密方法,可用于在云存储环境中实现高效密文检索。
背景技术
随着云计算技术的出现,计算机以及互联网技术已经达到了新的高度,人们在享受互联网在数据存储、数据传输带来便捷的同时也在担心着数据遭受窃取泄露的风险。近些年来云计算技术得到了迅速发展,云计算的种种安全性问题也不断涌现,存储在云端的数据经常遭到来自服务器内部以及外部恶意攻击者的攻击,尽管许多安全专家提供了保护数据隐私的措施,但是存储数据量的逐渐增大,数据类型逐渐变多对数据的保护以及数据安全搜索提出了更高的要求,因此必须将隐私数据进行加密处理后存储在云平台,然而对数据加密后使得在海量密文文件中搜索特定的文件变得极为困难。根据使用密码体制的不同,可搜索加密分为基于对称密码体制加密和公钥密码体制加密,基于公钥的可搜索加密中使用到了数据共享者的公钥,数据拥有者不需要与数据共享者协商密钥。与基于对称密码体制的可搜索加密,应用场景更为广阔。
现有的技术方案中,授权公告号为CN104852801B名称为“一种可搜索的公钥加密方法”,公开了一种支持多个接收者的公钥加密方案,其实现步骤是:初始化数据拥有者、接收者和云服务器运行环境;数据拥有者定义一个接收者集合,并为选取数据文件的关键字加密;对数据文件加密与加密的关键字存放在云服务器上;数据拥有者为接收者发送一个保密陷门;接收者利用关键字陷门生成算法将关键字陷门发送给云服务器;服务器根据接收者提供的关键字陷门使用测试算法找出相应的关键字密文。该方法支持多个接收者进行可搜索公钥加密,保护指定接收者的成员隐私,但对于一个包含m个关键字的文件,必须计算2m-1个密文关键字才能满足数据共享者的搜索需求,由于关键字密文的数量呈指数级增长,使得密文关键字计算过程复杂,并且需要更大的存储空间来存储密文关键字。
发明内容
本发明的目的在于克服上述技术中存在的缺陷,提出了一种多关键字可搜索的公钥加密方法,用于解决现有多关键字可搜索的公钥加密方法中存在的密文关键字计算过程复杂的技术问题。
本发明的技术思路是:可信第三方为云存储服务器以及数据共享者分发密钥,并计算公共参数;数据拥有者对文件的明文关键字加密并上传云存储服务器;云服务器存储数据拥有者存储的文件密文以及关键字密文集合;数据共享者根据关键字生成陷门信息发送给云存储服务器;云存储服务器收到陷门信息后对存储在其中的密文进行搜索,只有当数据共享者搜索的关键字与服务器存储的关键字密文匹配时才能返回相应的密文关键字。
根据上述技术思路,实现本发明目的采取的技术方案包含步骤如下:
(1)可信第三方设定公共参数cp:
可信第三方设定公共参数cp,包括群G1、G1的生成元为P、G1的阶为q、群G2、群G1的双线性映射e、哈希函数H1和哈希函数H2
(2)数据拥有者设置存储文件的关键字字段、关键字向量和查询格式:
数据拥有者设置存储文件的关键字字段Attm以及与Attm对应的明文关键字向量
Figure GDA0002588976620000022
并根据Attm
Figure GDA0002588976620000023
设置存储文件的查询格式QU;
(3)可信第三方计算云存储服务器和数据共享者的密钥并分发:
(3a)可信第三方通过公共参数cp中群G1、G1的生成元P和G1的阶q,计算云存储服务器的公钥pkS和私钥skS,并将skS发送给云存储服务器,同时将pkS发送给数据拥有者和数据共享者;
(3b)可信第三方通过公共参数cp中的群G1的生成元P和G1的阶q,计算数据共享者的公钥pkR和私钥skR,并将skR发送给数据共享者,同时将pkR发送给数据拥有者;
(4)数据拥有者对明文关键字向量
Figure GDA0002588976620000021
中的明文关键字进行加密并发送:
(4a)数据拥有者通过云存储服务器的公钥pkS和数据共享者的公钥pkR,对明文关键字向量
Figure GDA0002588976620000031
中的每一个明文关键字进行加密,得到密文关键字集{t1,t2,...tm};
(4b)数据拥有者通过数据共享者的公钥pkR和群G1的生成元P,计算密文关键字集的四个信息分量U、V、B和C,得到密文集合R={t1,t2,...tm,U,V,B,C},并将R发送给云存储服务器;
(5)数据共享者计算明文关键字向量
Figure GDA0002588976620000032
中的明文关键字的陷门信息Trap并发送:
(5a)数据共享者根据存储文件的关键字字段Attm和查询格式QU的要求,从明文关键字向量
Figure GDA0002588976620000033
中选择n个明文关键字Ω12,...Ωn,并通过公共参数cp中的哈希函数H1、双线性映射e、数据共享者的私钥skR、云存储服务器公钥pkS和选择的随机数
Figure GDA0002588976620000034
计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw1
(5b)数据共享者通过自己的私钥skR、公共参数cp中的哈希函数H1和选择的随机数
Figure GDA0002588976620000035
计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw2,并将明文关键字Ω12,...Ωn在关键字字段中I1,I2,...In,以及Tw1和Tw2作为明文关键字Ω12,...Ωn的陷门信息Trap={Tw1,Tw2,I1,I2,...In},发送给云存储服务器;
(6)云存储服务器搜索密文集合R中的密文关键字,并将搜索结果发送给数据共享者:
(6a)云存储服务器根据Trap中明文关键字Ω12,...Ωn在关键字字段中的位置信息I1,I2,...In,从密文集合R中搜索对应位置的n个密文关键字
Figure GDA0002588976620000036
并计算密文关键字
Figure GDA0002588976620000037
的验证中间值T′;
(6b)云存储服务器通过公钥pkS、私钥skS、密文集合R中密文关键字集的信息分量C以及公共参数cp中的双线性映射e,计算n个密文关键字
Figure GDA0002588976620000038
的验证中间值t′;
(6c)云存储服务器通过验证中间值T′与验证中间值t′以及R中密文关键字集的信息分量U和V,验证H2[e(Tw,V)]=H2[T″·e(Tw2,U)]是否成立,若是,则搜索成功,并将密文关键字
Figure GDA0002588976620000041
发送给数据共享者,否则搜索密文关键字失败。
本发明与现有技术相比,具有如下优点:
1.本发明中与现有技术相比,现有技术中一个包含m个关键字的文件,需要计算2m -1个密文关键字才能满足数据共享者的搜索需求,密文关键字数量呈指数级增长,本发明中简化了密文关键字计算过程,只需要m个密文关键字就可以满足搜索需求。
2.本发明与现有技术相比,现有技术中向云存储服务器发送密文关键字和关键字陷门信息需要在安全信道下进行,本发明中数据拥有者在计算关键字密文时使用了云存储服务器的公钥,使得密文关键字以及关键字的陷门信息可以在公开信道下传输,由于无法获取云存储服务器的私钥,外部攻击者即使拥有密文关键字和陷门信息也不能执行检测算法。
3.本发明与现有技术相比,现有技术中同一个关键字的陷门信息是唯一确定的,攻击者统计关键字陷门信息并对陷门信息包含的关键字进行猜测,本发明中在数据拥有者计算关键字陷门信息时,使用了云存储服务器的公钥和随机数,使得陷门信息满足密文不可区分性,攻击者无法对陷门信息包含的关键字进行离线猜测攻击。
4.本发明与现有技术相比,现有技术中当云服务器收到关键字陷门信息时,才执行关键字搜索过程,本发明中当数据共享者离线不进行搜索时,云存储服务器可以预先计算搜索需要的匹配中间值,当云存储服务器收到陷门信息时,通过匹配中间值简化了计算过程提高了搜索运算效率。
附图说明
图1是本发明适用的公钥加密系统的结构图;
图2是本发明的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细描述;
参照图1,本发明适用的多关键字搜索的公钥加密方法的系统,包括云存储服务器、可信第三方、数据拥有者、数据共享者;其中可信第三方为云存储服务器以及数据共享者分发密钥,并计算公共参数;数据拥有者对文件的明文关键字加密并上传云存储服务器;云存储服务器用于存储数据拥有者上传的文件以及关键字密文集合,以及执行密文搜索过程;数据共享者根据关键字生成陷门信息发送给云存储服务器,云存储服务器在密文环境下进行搜索关键字;
参照图2,一种多关键字可搜索的公钥加密方法,包括如下步骤:
步骤1)可信第三方设定公共参数:
步骤1a)可信第三方设定群G1、G1的阶q和群G1的生成元P:
步骤1a1)选择不小于2k的最小的素数q,k为大于等于1的自然数;
步骤1a2)选择长度大于k、值大于q且与q互素的最小素数p,构成循环群
Figure GDA0002588976620000051
步骤1a3)选择
Figure GDA0002588976620000052
中所有满足式αq≡1modp的元素α,构成群G1;;
步骤1a4)可信第三方选择群G1的生成元P:从循环群
Figure GDA0002588976620000053
随机选取元素β,若β满足式
Figure GDA0002588976620000054
则将β作为群G1的生成元P;否则重新选取
Figure GDA0002588976620000055
中另一个元素,直到式
Figure GDA0002588976620000056
成立为止;
步骤1b)可信第三方选择双线性映射e:选择一个满足双线性、非退化性和可计算性的双线性映射;
步骤1b1)双线性指对任意P,Q,R∈G1和a,b∈Z,满足式e(aP,bQ)=e(P,Q)ab或满足式e(P+Q,R)=e(P,R)·e(Q,R)和式e(P,Q+R)=e(P,Q)·e(P,R);
步骤1b2)非退化性指当群G1和群G2的阶数为素数时,若G1的生成元是P,则G2的生成元可由e(P,P)计算得到;
步骤1b3)可计算性指对任意的P,Q∈G1,在多项式时间内可以计算得到结果e(P,Q);
步骤1c)可信第三方设定群G2
步骤1c1)使用群G1的生成元P,并根据双线性映射e性质中的的可计算性和非退化性,计算得到群G2的生成元e(P,P),表示为g=e(P,P);
步骤1c2)计算生成元g的幂次方ga,所有满足式ga≡1modp的ga构成群G2,其中1≤a≤q;
步骤1d)可信第三方选择哈希函数H1:选择映射过程为{0,1}*→G1的哈希函数;
步骤1e)可信第三方选择哈希函数H2:选择映射过程为G2→{0,1}k的哈希函数。
步骤2)数据拥有者设置存储文件的关键字字段、关键字向量和查询格式:
关键字字段Attm包括m个关键字字段,每个关键字字段包含一个明文关键字;
关键字向量
Figure GDA0002588976620000061
包括与Attm中m个关键字字段对应的明文关键字Wi,1,Wi,2,...Wi,m,其中i表示第i个存储文件;
查询格式QU包括明文关键字Wi,1,Wi,2,...Wi,m中的待搜索明文关键字以及待搜索明文关键字在关键字字段Attm中的位置信息I1,I2.,..Im,且1≤I1,I2,...Im≤m。
步骤3)可信第三方计算云存储服务器和数据共享者的密钥并分发:
步骤3a1)可信第三方将公共参数cp作为作为云存储服务器的第一个私钥分量,选择一个小于群G1阶q的正随机数x,将x作为云存储服务器的第二个私钥分量,将cp和x构成的元组作为云存储服务器的私钥skS={cp,x};
步骤3a2)可信第三方将公共参数cp作为云存储服务器的第一个公钥分量,去除群G1中的零元,得到群
Figure GDA0002588976620000062
Figure GDA0002588976620000063
中选择随机数Q,将Q作为云存储服务器的第二个公钥分量,并通过私钥分量x和G1的生成元P,计算云存储服务器的第三个公钥分量X,将cp、Q和X构成的元组作为云存储服务器的公钥pkS={cp,Q,X},
Figure GDA0002588976620000071
X的计算公式为:
X=xP
步骤3a3)将skS发送给云存储服务器,同时将pkS发送给数据拥有者和数据共享者;
步骤3b1)可信第三方将cp作为数据共享者的第一个私钥分量,并选择两个小于群G1阶q的正随机数s1和s2,分别作为数据共享者的第二个私钥分量和第三个私钥分量,将cp、s1和s2构成的元组作为数据共享者的私钥skR={cp,s1,s2};
步骤3b2)可信第三方通过s1、s2和群G1的生成元P,计算数据共享者的第一个公钥分量Y1、第二个公钥分量Y2和第三个公钥分量Y3,取值1,2,...P构成群ZP={1,2,...P},从ZP选择随机数Y4,并将Y4作为数据共享者的第四个公钥分量,将云存储服务器的公钥pkS作为数据共享者的第五个公钥分量,将Y1、Y2、Y3、Y4和pkS构成的元组作为数据共享者的公钥pkR={Y1,Y2,Y3,Y4,pkS},Y4∈ZP,Y1、Y2和Y3计算分别公式为:
Y1=s1P
Y2=s2P
Y3=s1s2P
步骤3b3)将skR发送给数据共享者,同时将pkR发送给数据拥有者;
步骤4)数据拥有者对关键字向量
Figure GDA0002588976620000072
中的明文关键字加密并发送:
步骤4a)数据拥有者通过云存储服务器的公钥pkS中公钥分量Q和X、数据共享者的公钥pkR中公钥分量Y1,对向量
Figure GDA0002588976620000073
中的每一个明文关键字进行加密,得到密文关键字集{t1,t2,...tm};计算公式为:
tj=e(H1(Wi,j),rY1)e(rQ,X)
其中,e表示公共参数cp中的双线性映射,H1表示公共参数cp中的哈希函数,Wi,j表示第i个存储文件中的第j个明文关键字,r表示一个小于群G1阶q的正随机数。
步骤4b)数据拥有者通过数据共享者的公钥pkR中的公钥分量Y1、Y2、Y3和Y4以及群G1的生成元P,计算密文关键字集的四个信息分量U、V、B和C,并将密文集合R={t1,t2,...tm,U,V,B,C}发送给云存储服务器,计算公式分别为:
B=rY2
C=rP
U=rY2+rPY4
V=rY3+rY1Y4
其中,r表示一个小于群G1阶q的正随机数;
步骤5)数据共享者计算明文关键字的陷门信息并发送:
步骤5a1)数据共享者根据存储文件的关键字字段Attm和查询格式QU的要求,从明文关键字向量
Figure GDA0002588976620000081
中选择n个明文关键字Ω12,...Ωn,并通过公共参数cp中的哈希函数H1、数据共享者的私钥skR中的第二个私钥分量s1和第三个私钥分量s2、云存储服务器公钥pkS中的第四个公钥分量Y4计算n个明文关键字Ω12,...Ωn的陷门信息中间值T1,计算公式为:
Figure GDA0002588976620000082
其中,p是大于群G1阶数q的最小素数,mod表示取模运算;
步骤5a2)数据共享者通过公共参数cp中的哈希函数H1、双线性映射e、私钥skR中的第二个私钥分量s1、云存储服务器的公钥pkS的第二个公钥分量Q和第三个公钥分量X以及T1,计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw1;计算公式为:
Figure GDA0002588976620000083
其中,
Figure GDA0002588976620000091
表示s1的乘法逆元,
Figure GDA0002588976620000092
表示任意长度的二进制随机数,
Figure GDA0002588976620000093
示异或运算。
步骤5b)数据共享者通过私钥skR的第二个私钥分量s1、公共参数cp中的哈希函数H1和a~计算得到陷门信息分量Tw2,并将明文关键字Ω12,...Ωn在关键字字段中位置信息I1,I2,...In,以及Tw1和Tw2作为明文关键字的陷门信息Trap={Tw1,Tw2,I1,I2,...In}发送给云存储服务器,计算公式为:
Figure GDA0002588976620000094
步骤6)云存储服务器执行验证过程并返回结果:
步骤6a)云存储服务器通过关键字陷门信息Trap和查询格式QU,从密文集合R中选择对应位置的密文关键字,计算得到第一个验证中间值T′,计算公式为:
Figure GDA0002588976620000095
其中,
Figure GDA0002588976620000096
表示从密文集合R中选择的n个密文关键字的乘积,e表示公共参数cp中的双线性映射,
Figure GDA0002588976620000097
表示存储文档的n个关键字,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,Q表示云存储服务器的第二个公钥分量,X表示云存储服务器的第三个公钥分量;
步骤6b)云存储服务器根据关键字陷门信息Trap得到从密文集合R中选择的关键字的个数n,通过公钥pkS中的公钥分量Q、私钥skS中第二个私钥分量s1、密文集合R中密文关键字集的信息分量C和公共参数cp中的双线性映射e计算得到第二个验证中间值t′,计算公式为:
t′=e(xQ,C)-n
步骤6c1)云存储服务器计算验证中间值T′和t′,通过T′和t′计算第一个待验证值T″,计算公式为:
Figure GDA0002588976620000098
其中,e表示公共参数cp中的双线性映射,
Figure GDA0002588976620000101
表示存储文档的n个关键字,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的公钥分量;
步骤6c2)云存储服务器对第一个验证值T″的计算公式进行化简:
当n个明文关键字中的每个关键字Ωi和存储文档中的对应位置的关键字
Figure GDA0002588976620000102
相等时,云存储服务器将待验证值T″的计算公式化简为:
Figure GDA0002588976620000107
其中,e表示公共参数cp中的双线性映射,H1表示公共参数cp中的哈希函数,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,s1表示数据共享者的第二个私钥分量,P表示群G1的生成元,T1表示n个关键字Ω12,...Ωn的陷门信息中间值,B和C表示密文集合R中密文关键字集的信息分量,Y4表示数据共享者的第四个公钥分量;
步骤6c3)云存储服务器计算第二个待验证值Tw,计算公式为:
Figure GDA0002588976620000103
其中,Tw1表示明文关键字的陷门信息Trap的陷门信息分量,
Figure GDA0002588976620000104
表示异或运算,H1表示公共参数cp中的哈希函数,e表示公共参数cp中的双线性映射,x云存储服务器的第二个私钥分量,Q表示云存储服务器的第二个公钥分量,Y1表示数据共享者的公钥分量;
步骤6c4)云存储服务器验证式H2[e(Tw,V)]=H2[T″·e(Tw2,U)]是否成立:
云存储服务器计算H2[e(Tw,V)]和H2[T″·e(Tw2,U)]两个值,计算公式为:
Figure GDA0002588976620000105
Figure GDA0002588976620000106
并比较两个值是否相等;若式H2[e(Tw,V)]=H2[T″·e(Tw2,U)]成立表示搜索成功,返回密文关键字
Figure GDA0002588976620000111
给数据共享者;
其中H1和H2分别表示公共参数cp中的哈希函数,e表示公共参数cp中的双线性映射,Tw2表示n个明文关键字Ω12,...Ωn的陷门信息分量,U、V、B和C表示密文集合R中密文关键字集的信息分量,
Figure GDA0002588976620000112
表示数据共享者的第二个私钥分量s1的乘法逆元,r表示一个小于群G1阶q的正随机数,
Figure GDA0002588976620000113
表示任意长度的二进制随机数,P表示群G1的生成元,T1表示n个关键字Ω12,...Ωn的陷门信息中间值,Y1表示数据共享者的第一个公钥分量、Y2表示数据共享者的第二个公钥分量、Y3表示数据共享者的第三个公钥分量,Y4表示数据共享者的第四个公钥分量。

Claims (10)

1.一种多关键字可搜索的公钥加密方法,其特征在于,包括以下步骤:
(1)可信第三方设定公共参数cp:
可信第三方设定公共参数cp,包括群G1、G1的生成元为P、G1的阶为q、群G2、群G1的双线性映射e、哈希函数H1和哈希函数H2
(2)数据拥有者设置存储文件的关键字字段、关键字向量和查询格式:
数据拥有者设置存储文件的关键字字段Attm以及与Attm对应的明文关键字向量
Figure FDA0002588976610000011
并根据Attm
Figure FDA0002588976610000012
设置存储文件的查询格式QU,其中,m表示关键字字段的个数,i表示第i个存储文件;
(3)可信第三方计算云存储服务器和数据共享者的密钥并分发:
(3a)可信第三方通过公共参数cp中群G1、G1的生成元P和G1的阶q,计算云存储服务器的公钥pkS和私钥skS,并将skS发送给云存储服务器,同时将pkS发送给数据拥有者和数据共享者;
(3b)可信第三方通过公共参数cp中的群G1的生成元P和G1的阶q,计算数据共享者的公钥pkR和私钥skR,并将skR发送给数据共享者,同时将pkR发送给数据拥有者;
(4)数据拥有者对明文关键字向量
Figure FDA0002588976610000013
中的明文关键字进行加密并发送:
(4a)数据拥有者通过云存储服务器的公钥pkS和数据共享者的公钥pkR,对明文关键字向量
Figure FDA0002588976610000014
中的每一个明文关键字进行加密,得到密文关键字集{t1,t2,...tm};
(4b)数据拥有者通过数据共享者的公钥pkR和群G1的生成元P,计算密文关键字集的四个信息分量U、V、B和C,得到密文集合R={t1,t2,...tm,U,V,B,C},并将R发送给云存储服务器;
(5)数据共享者计算明文关键字向量
Figure FDA0002588976610000021
中的明文关键字的陷门信息Trap并发送:
(5a)数据共享者根据存储文件的关键字字段Attm和查询格式QU的要求,从明文关键字向量
Figure FDA0002588976610000022
中选择n个明文关键字Ω12,...Ωn,并通过公共参数cp中的哈希函数H1、双线性映射e、数据共享者的私钥skR、云存储服务器公钥pkS和选择的随机数
Figure FDA0002588976610000023
计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw1
(5b)数据共享者通过自己的私钥skR、公共参数cp中的哈希函数H1和选择的随机数
Figure FDA0002588976610000024
计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw2,并将明文关键字Ω12,...Ωn在关键字字段中的位置信息I1,I2,...In,以及Tw1和Tw2作为明文关键字Ω12,...Ωn的陷门信息Trap={Tw1,Tw2,I1,I2,...In},发送给云存储服务器;
(6)云存储服务器搜索密文集合R中的密文关键字,并将搜索结果发送给数据共享者:
(6a)云存储服务器根据Trap中明文关键字Ω12,...Ωn在关键字字段中的位置信息I1,I2,...In,从密文集合R中搜索对应位置的n个密文关键字
Figure FDA0002588976610000025
并计算密文关键字
Figure FDA0002588976610000026
的验证中间值T′;
(6b)云存储服务器通过公钥pkS、私钥skS、密文集合R中密文关键字集的信息分量C以及公共参数cp中的双线性映射e,计算n个密文关键字
Figure FDA0002588976610000027
的验证中间值t′;
(6c)云存储服务器通过验证中间值T′与验证中间值t′以及R中密文关键字集的信息分量U和V,验证H2[e(Tw,V)]=H2[T″·e(Tw2,U)]是否成立,若是,则搜索成功,并将密文关键字
Figure FDA0002588976610000028
发送给数据共享者,否则搜索密文关键字失败,其中,T″和Tw分别表示云存储服务器计算的第一个待验证值和第二个验证值。
2.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(1)所述的可信第三方设定公共参数cp,实现方法为;
(1a)可信第三方设定群G1、G1的阶q和群G1的生成元P:选择一个长度为k的素数q作为群G1的阶,选择大于q的最小素数p,取值1,2,...p-1构成循环群
Figure FDA0002588976610000031
选择
Figure FDA0002588976610000032
中所有满足式αq≡1modp的元素α,构成群G1,选择满足式
Figure FDA0002588976610000033
元素β,将β作为群G1的生成元P,其中k表示大于1的自然数;
(1b)可信第三方设定双线性映射e:选择满足双线性、非退化性和可计算性的映射,作为群G1的双线性映射e;
(1c)可信第三方设定群G2:通过双线性映射e和G1的生成元P,计算元素g=e(P,P)作为群G2的生成元,并计算g的幂次方ga,所有满足式ga≡1modp的ga构成群G2,其中1≤a≤q;
(1d)可信第三方设定哈希函数H1:选择映射过程为{0,1}*→G1的哈希函数H1
(1e)可信第三方设定哈希函数H2:选择映射过程为G2→{0,1}k的哈希函数H2
3.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(2)中所述的存储文件关键字的字段、关键字向量和查询格式,其中:
关键字字段Attm包括m个关键字字段,每个关键字字段包含一个明文关键字;
关键字向量
Figure FDA0002588976610000034
包括与Attm中m个关键字字段对应的明文关键字Wi,1,Wi,2,...Wi,m,其中i表示第i个存储文件;
查询格式QU包括明文关键字Wi,1,Wi,2,...Wi,m中的待搜索明文关键字以及待搜索明文关键字在关键字字段Attm中的位置信息I1,I2.,..Im,且1≤I1,I2,...Im≤m。
4.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(3a)所述的计算云存储服务器的公钥pkS和私钥skS,实现步骤为:
(3a1)可信第三方将公共参数cp作为作为云存储服务器的第一个私钥分量,并选择一个小于群G1阶q的正随机数x,将x作为云存储服务器的第二个私钥分量,将cp和x构成的元组作为云存储服务器的私钥skS={cp,x};
(3a2)可信第三方将公共参数cp作为云存储服务器的第一个公钥分量,去除群G1中的零元,得到群
Figure FDA0002588976610000041
并将从
Figure FDA0002588976610000042
中选择随机数Q作为云存储服务器的第二个公钥分量,通过私钥分量x和G1的生成元P,计算云存储服务器的第三个公钥分量X,将cp、Q和X构成的元组作为云存储服务器的公钥pkS={cp,Q,X},
Figure FDA0002588976610000043
X的计算公式为:
X=xP。
5.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(3b)中所述的计算数据共享者的公钥pkR和私钥skR,实现步骤为:
(3b1)可信第三方将cp作为数据共享者的第一个私钥分量,并选择两个小于群G1阶q的正随机数s1和s2,分别作为数据共享者的第二个私钥分量和第三个私钥分量,将cp、s1和s2构成的元组作为数据共享者的私钥skR={cp,s1,s2};
(3b2)可信第三方通过s1、s2和群G1的生成元P,计算数据共享者的第一个公钥分量Y1、第二个公钥分量Y2和第三个公钥分量Y3,取值1,2,...P构成群ZP={1,2,...P},并将从ZP选择随机数Y4作为数据共享者的第四个公钥分量,将云存储服务器的公钥pkS作为数据共享者的第五个公钥分量,将Y1、Y2、Y3、Y4和pkS构成的元组作为数据共享者的公钥pkR={Y1,Y2,Y3,Y4,pkS},Y4∈ZP,Y1、Y2和Y3计算分别公式为:
Y1=s1P
Y2=s2P
Y3=s1s2P。
6.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(4a)中所述的对明文关键字向量
Figure FDA0002588976610000051
中的每一个明文关键字进行加密,计算公式为:
tj=e(H1(Wi,j),rY1)e(rQ,X)
其中,e表示公共参数cp中的双线性映射,H1表示公共参数cp中的哈希函数,Wi,j表示第i个存储文件中的第j个明文关键字,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,Q表示云存储服务器的第二个公钥分量,X表示云存储服务器的第三个公钥分量。
7.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(4b)中所述的计算密文关键字集的四个信息分量U、V、B和C,计算公式分别为:
B=rY2
C=rP
U=rY2+rPY4
V=rY3+rY1Y4
其中,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,Y2表示数据共享者的第二个公钥分量,Y3表示数据共享者的第三个公钥分量,Y4表示数据共享者的第四个公钥分量,P表示公共参数cp中群G1的生成元。
8.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(5a)中所述的计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw1,实现步骤为:
(5a1)数据共享者计算n个关键字Ω12,...Ωn的陷门信息中间值T1,计算公式为:
Figure FDA0002588976610000061
其中,s1表示数据共享者的第二个私钥分量,s2表示数据共享者的第三个私钥分量,Y4表示数据共享者的第四个公钥分量,p表示大于群G1阶数q的最小素数,mod表示取模运算,H1是公共参数cp中的哈希函数,Ω12,...Ωn表示数据共享者选取的n个明文关键字;
(5a2)数据共享者计算n个关键字Ω12,...,Ωn的陷门信息分量Tw1,计算公式为:
Figure FDA0002588976610000062
其中,s1表示数据共享者的第二个私钥分量,
Figure FDA0002588976610000063
表示s1的乘法逆元,H1表示公共参数cp中的哈希函数,
Figure FDA0002588976610000064
表示任意长度的二进制随机数,
Figure FDA0002588976610000065
表示异或运算,e表示公共参数cp中的双线性映射,Q表示云存储服务器的第二个公钥分量,X表示云存储服务器的第三个公钥分量。
9.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(5b)中所述的计算n个明文关键字Ω12,...Ωn的陷门信息分量Tw2,计算公式为:
Figure FDA0002588976610000066
其中,s1表示数据共享者的第二个私钥分量,H1表示公共参数cp中的哈希函数,
Figure FDA0002588976610000071
表示任意长度的二进制随机数。
10.根据权利要求1所述的一种多关键字可搜索的公钥加密方法,其特征在于,步骤(6c)中所述的验证H2[e(Tw,V)]=H2[T″·e(Tw2,U)]是否成立,实现步骤如下:
(6c1)云存储服务器计算第一个待验证值T″,计算公式为:
Figure FDA0002588976610000072
Figure FDA0002588976610000073
t′=e(xQ,C)-n
其中,T′表示第一个验证中间值,t′表示第二个验证中间值,
Figure FDA0002588976610000074
表示从密文集合R中选择的n个密文关键字的乘积,e表示公共参数cp中的双线性映射,
Figure FDA0002588976610000075
表示存储文档的n个关键字,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,Q表示云存储服务器的第二个公钥分量,X表示云存储服务器的第三个公钥分量,s1表示数据共享者的第二个私钥分量,C表示密文集合R中密文关键字集的信息分量;
(6c2)云存储服务器对第一个验证值T″的计算公式进行化简:
当n个明文关键字中的每个关键字Ωi和存储文档中的对应位置的关键字
Figure FDA0002588976610000076
相等时,云存储服务器将待验证值T″的计算公式化简为:
Figure FDA0002588976610000077
其中,e表示公共参数cp中的双线性映射,H1表示公共参数cp中的哈希函数,r表示一个小于群G1阶q的正随机数,Y1表示数据共享者的第一个公钥分量,s1表示数据共享者的第二个私钥分量,P表示群G1的生成元,T1表示n个关键字Ω12,...Ωn的陷门信息中间值,B和C表示密文集合R中密文关键字集的信息分量,Y4表示数据共享者的第四个公钥分量;
(6c3)云存储服务器计算第二个待验证值Tw,计算公式为:
Figure FDA0002588976610000081
其中,Tw1表示明文关键字的陷门信息Trap的陷门信息分量,
Figure FDA0002588976610000082
表示异或运算,H1表示公共参数cp中的哈希函数,e表示公共参数cp中的双线性映射,x云存储服务器的第二个私钥分量,Q表示云存储服务器的第二个公钥分量,Y1表示数据共享者的公钥分量;
(6c4)云存储服务器验证式H2[e(Tw,V)]=H2[T″·e(Tw2,U)]是否成立:
云存储服务器计算H2[e(Tw,V)]和H2[T″·e(Tw2,U)]两个值,并比较两个值是否相等,计算公式分别为:
Figure FDA0002588976610000083
Figure FDA0002588976610000084
其中H1和H2分别表示公共参数cp中的哈希函数,e表示公共参数cp中的双线性映射,Tw2表示n个明文关键字Ω12,...Ωn的陷门信息分量,U、V、B和C表示密文集合R中密文关键字集的信息分量,
Figure FDA0002588976610000085
表示数据共享者的第二个私钥分量s1的乘法逆元,r表示一个小于群G1阶q的正随机数,
Figure FDA0002588976610000086
表示任意长度的二进制随机数,P表示群G1的生成元,T1表示n个关键字Ω12,...Ωn的陷门信息中间值,Y1表示数据共享者的第一个公钥分量、Y2表示数据共享者的第二个公钥分量、Y3表示数据共享者的第三个公钥分量,Y4表示数据共享者的第四个公钥分量。
CN201810361850.2A 2018-04-20 2018-04-20 一种多关键字可搜索的公钥加密方法 Active CN108599937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810361850.2A CN108599937B (zh) 2018-04-20 2018-04-20 一种多关键字可搜索的公钥加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810361850.2A CN108599937B (zh) 2018-04-20 2018-04-20 一种多关键字可搜索的公钥加密方法

Publications (2)

Publication Number Publication Date
CN108599937A CN108599937A (zh) 2018-09-28
CN108599937B true CN108599937B (zh) 2020-10-09

Family

ID=63614402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810361850.2A Active CN108599937B (zh) 2018-04-20 2018-04-20 一种多关键字可搜索的公钥加密方法

Country Status (1)

Country Link
CN (1) CN108599937B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109347832A (zh) * 2018-10-24 2019-02-15 中国银行股份有限公司 一种动态数据共享方法、终端设备及代理服务器
CN109672525B (zh) * 2018-12-14 2020-10-02 华中科技大学 一种具有前向索引的可搜索公钥加密方法及系统
CN109617683B (zh) * 2018-12-15 2021-09-17 西安邮电大学 终端以及云服务器
CN110611570B (zh) * 2019-09-26 2022-03-22 鹏城实验室 一种加密、密钥信息提供以及数据获取方法、装置
CN111934875B (zh) * 2020-07-06 2021-10-01 河海大学 一种支持密文模糊搜索功能的公钥加密方法和系统
CN112118104A (zh) * 2020-09-17 2020-12-22 中国人民解放军31008部队 一种安全增强的基于公钥加密的连接关键词搜索方法
CN112118257B (zh) * 2020-09-17 2023-04-07 中国人民解放军31008部队 一种安全增强的基于公钥加密的关键词搜索方法
CN112737924B (zh) * 2020-12-28 2022-06-14 杭州趣链科技有限公司 基于配对的加密邮件过滤方法
CN112564907B (zh) * 2021-03-01 2021-07-20 北京信安世纪科技股份有限公司 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN112966302B (zh) * 2021-03-09 2023-06-23 西安邮电大学 一种支持患者隐私保护的安全远程医疗数据共享方法
CN113158174B (zh) * 2021-04-06 2022-06-21 上海交通大学 基于图论的分组密码实际密钥信息的自动化搜索系统
CN113904823B (zh) * 2021-09-28 2024-02-27 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统
CN115002754B (zh) * 2022-02-24 2023-03-31 华东师范大学 一种基于车辆社交网络的轻量级数据分享方法
CN116074013A (zh) * 2022-11-18 2023-05-05 电子科技大学 一种抗后门攻击的公钥可搜索加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
CN105871543A (zh) * 2016-03-29 2016-08-17 西安电子科技大学 多数据拥有者背景下基于属性的多关键字密文检索方法
CN106407822A (zh) * 2016-09-14 2017-02-15 华南理工大学 一种关键词、多关键词可搜索加密方法和系统
CN107491497A (zh) * 2017-07-25 2017-12-19 福州大学 支持任意语言查询的多用户多关键词排序可搜索加密系统
US9946720B1 (en) * 2015-12-04 2018-04-17 Ionu Security, Inc. Searching data files using a key map

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1757006A2 (en) * 2004-06-01 2007-02-28 Ben-Gurion University of the Negev Research and Development Authority Structure preserving database encryption method and system
KR20130085491A (ko) * 2011-12-09 2013-07-30 한국전자통신연구원 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
US9946720B1 (en) * 2015-12-04 2018-04-17 Ionu Security, Inc. Searching data files using a key map
CN105871543A (zh) * 2016-03-29 2016-08-17 西安电子科技大学 多数据拥有者背景下基于属性的多关键字密文检索方法
CN106407822A (zh) * 2016-09-14 2017-02-15 华南理工大学 一种关键词、多关键词可搜索加密方法和系统
CN107491497A (zh) * 2017-07-25 2017-12-19 福州大学 支持任意语言查询的多用户多关键词排序可搜索加密系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Public Key Encryption with Conjunctive Field Keyword Search;Dong Jin Park;《5th internetional workshop》;20040831;全文 *
Public key encryption with keyword search revisited;J. Beak;《Proceeding sof the internetional coference on computational science and its applications》;20080630;全文 *
可搜索加密机制研究;李雪;《计算机技术与发展》;20170131;第27卷(第1期);全文 *
面向云计算的数据安全保护关键技术研究;刘婷婷;《中国博士学位论文全文数据库 信息科技辑》;20140131;第5.3节 *

Also Published As

Publication number Publication date
CN108599937A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108599937B (zh) 一种多关键字可搜索的公钥加密方法
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
CN109660555B (zh) 基于代理重加密的内容安全分享方法和系统
Huang et al. Achieving big data privacy via hybrid cloud
Hsu et al. A Study of Public Key Encryption with Keyword Search.
CN110120873B (zh) 基于云外包交易数据的频繁项集挖掘方法
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
Li et al. Enabling efficient and secure data sharing in cloud computing
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
WO2014185450A1 (ja) 照合システム、ノード、照合方法およびプログラム
Liu et al. Public-key authenticated encryption with keyword search: A generic construction and its quantum-resistant instantiation
Ling et al. Group id-based encryption with equality test
CN111556048B (zh) 一种支持密文模式匹配的属性基安全通信方法及系统
Azarderakhsh et al. How not to create an isogeny-based PAKE
Huang et al. A more efficient public-key authenticated encryption scheme with keyword search
Oudah et al. Lightweight Authentication Model for IoT Environments Based on Enhanced Elliptic Curve Digital Signature and Shamir Secret Share.
Hwang et al. An ElGamal-like secure channel free public key encryption with keyword search scheme
CN113407966A (zh) 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统
Zhang et al. Efficient public key encryption with revocable keyword search in cloud computing
CN115021993B (zh) 一种可验证的公钥可搜索加密系统及方法
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Hahn et al. Multi-key similar data search on encrypted storage with secure pay-per-query
CN113132345B (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