Certificateless Puklic Key Encryption With Equality Test of Supporting Keyword Search
-
摘要: 公钥加密等值测试(PKEET)可以实现云环境下不同公钥加密数据之间的密文等值比较,即不对密文解密的情况下测试两个密文对应的明文是否一致。但是,密文等值测试加密不提供关键字密文搜索功能。已有密文等值测试加密方案直接以消息生成陷门作为等值测试的凭证,测试的准确度不高,搜索效率较低。针对此问题,该文首先提出了支持关键字搜索的无证书密文等值测试加密(CLEETS)方案。方案通过关键字检索判断是否包含自己需要的信息,根据判断结果选择执行等值测试,从而避免无效测试。然后,在随机预言机模型下证明该方案满足适应性选择关键词不可区分性。最后,对方案进行功能和效率对比。对比结果表明,该文方案的计算代价略高,但是方案在密文等值测试加密中实现了关键字的检索功能,弥补了效率低的不足。Abstract: Public Key Encryption with Equality Test (PKEET) is an important method to achieve the equality test of ciphertexts which are generated by the different public key aiming to the same plaintext in cloud environment. In other words, it can tests the plaintext corresponding to the two ciphertext’s equivalence without decrypting the ciphertext, but does not supply the searchable function. Nowadays, the existing PKEET scheme takes directly the message to generate a trapdoor as the proof of equality test, which has low test accuracy and search efficiency. To solve the above problems, a certificateless public key encryption with equality test scheme supporting keyword search (CertificateLess Equality test EncrypTion with keyword Search, CLEETS) is proposed. The scheme determines whether it contains information needed by the user through the keyword search, then performs the equality test according to the search result, which can avoid invalid test. Then, it is proved that the scheme satisfies the indistinguishability of adaptive selection of keywords under the random oracle model. Finally, the comparison analyses of function and efficiency are performed. The results indicate the computation cost of CLEETS scheme is less efficient. Fortunately, it can realizes the function of keyword search in encryption with equality test, which can remedies the inefficiency.
-
1. 引言
云计算[1]能够提供广泛的计算、分析、存储、部署和支持应用程序等服务,帮助用户降低成本。考虑到云数据的敏感性[2],引入密码系统来加密私有数据。可搜索加密[3]既可以保护用户的隐私,又支持搜索加密数据,在云数据存储中有广泛应用。
2004年,Boneh等人[4]提出了第1个公钥可搜索加密方案。该方案既支持密文检索,又能实现用户数据共享。传统公钥可搜索加密中,证书颁发机构是公钥基础设施系统的核心部分,负责发布和管理用户的证书,这样带来了证书管理问题。基于身份的公钥可搜索加密方案[5]可以解决传统公钥可搜索加密的证书管理问题,但是又引入了密钥托管问题。2014年,Peng等人[6]提出了无证书可搜索加密方案。该方案既解决了证书管理问题,又解决了密钥托管问题。2017年,Ma等人[7,8]提出了分别应用于工业互联网和医疗健康网络的无证书可搜索加密方案。但是,以上方案[6-8]只能对使用了相同公钥加密的数据进行操作。云环境中用户可能会使用不同的公钥对数据进行加密,但是,服务器不能直接对不同公钥加密的数据进行比较,因此公钥可搜索加密技术[9,10]存在一定的局限性。
2010年,Yang等人[11]提出了公钥加密等值测试(Public Key Encryption with Equality Test, PKEET),该技术可以判断不同公钥加密的密文是否是同一明文所产生。也就是说,若
C 和C′ 是用两个不同公钥加密的密文,其中C=Encrypt(M,PK) 和C′=Encrypt(M′,PK′) ,该算法通过比较C=C′ 是否成立来判断M=M′ 是否成立。但是,Yang方案不提供授权机制,任何用户都可以进行等值测试,暴露了数据所有者的隐私。2011年,Tang[12]在PKEET中引入授权机制,提出了一个支持细粒度授权的公钥加密等值测试方案。随后,Tang[13,14]又提出了仅指定用户可以进行密文等值测试和抵抗离线消息恢复攻击的密文等值测试方案。2015年,Ma等人[15]提出了支持灵活授权的公钥加密等值测试方案。2016年,Ma[16]提出了身份等值测试方案,该方案简化了证书管理问题并支持用户级授权。2018年,Qu等人[17]提出了无证书密文等值测试加密方案,该方案可以解决传统PKEET方案[18]和身份PKEET方案[19]中的证书管理和密钥托管问题。但是,当前已有的PKEET方案不提供关键字检索功能。如果云服务器存储的密文中根本没有用户需要的信息,而用户只有执行密文等值测试后才能得知,这无形中消耗了大量的网络带宽。针对上述问题,本文提出了支持关键字搜索的无证书密文等值测试加密(CertificateLess Equality test EncrypTion with keyword Search, CLEETS)方案。方案中用户首先根据关键字生成一个陷门,利用该陷门判断云服务器的密文中是否包含关键字对应的密文信息。如果包含则进行等值测试;否则不进行等值测试,这样,将提高用户的检索效率。在随机预言模型下证明方案满足适应性选择关键词不可区分性。同时将方案与已有的PKEET方案进行功能和效率对比。对比结果表明,虽然本文方案的计算代价略高,但是它在密文等值测试中增加了关键字检索功能,使得方案的适用性更强。
2. CLEETS方案安全模型
2.1 CLEETS方案系统模型
支持关键字搜索的无证书密文等值测试加密(CLEETS)方案包括云服务器、公钥服务器、密钥生成中心(KGC)、数据拥有者和用户5类实体。系统模型如图1所示。
(1) 云服务器:存储密文,并且通过接收者的陷门和授权执行密文搜索与等值测试。
(2) 公钥服务器:存储所有用户的公钥。
(3) 密钥生成中心(KGC):生成部分私钥。
(4) 数据拥有者:生成、上传密文到云服务器。
(5) 用户:提出搜索和等值测试请求,生成搜索陷门和等值测试陷门。
2.2 CLEETS方案形式化定义
CLEETS方案包括以下算法:
(1) 系统设置:KGC安全参数K,生成系统公共参数PP和主密钥
ˆg 。(2) 生成部分私钥:KGC输入参数PP、主密钥
ˆg 和用户的身份,生成用户的部分私钥Di 。(3) 生成秘密值法:用户输入参数PP,生成用户的秘密值
Xi 。(4) 生成私钥:用户输入参数PP、部分私密钥
Di 和秘密值Xi ,生成用户的(完整)私钥SKi 。(5) 生成公钥:用户运行,输入参数PP和秘密值
Xi ,生成用户的公钥PKi 。(6) 加密:数据拥有者输入参数PP、关键字
wi 、接收者的公钥PKi 和身份IDi ,输出密文C 。(7) 生成搜索陷门:接收者输入参数PP、关键字
wi′ 和接收者的私钥SKR ,输出搜索陷门TW 。(8) 生成测试陷门:接收者运行,输入参数PP和接收者的私钥
SKR ,输出测试陷门tdi 。(9) Test1搜索测试算法:服务器输入参数PP、服务器私钥
SKR 和搜索陷门TW 。如果wi=wi′ ,输出“1”并执行Test2算法;否则输出“0”,终止操作。(10) Test2等价测试算法:服务器运行,设
CA 和tdA 为接收者A 的密文和测试陷门,CB 和tdB 为接收者B 的密文和测试陷门。输入参数PP和两个密文/测试陷门对(CA,tdA) 和(CB,tdB) 。如果二者为同一消息的密文,则输出“1”;否则输出“0”。2.3 CLEETS方案安全模型
与文献[8,17]一样,本文定义敌手
AI 和AII 。其中,敌手AI 模仿恶意用户,用户的公钥可以被任意替换,但是无法获得用户的部分私钥。敌手AII 模仿恶意KGC ,它不能得到用户的公钥,但是知道主密钥及部分私钥。CLEETS方案的安全性由挑战者C 与敌手AI 及AII 之间的游戏来完成。游戏1:挑战者
C 和AI 之间的游戏过程如下:(1) 系统建立阶段:
C 输入安全参数K ,输出主密钥s 和参数PP 。C 返回PP 给AI ,保存s ;(2) 询问阶段:
AI 进行Hash 、生成部分私钥、生成私钥、生成公钥、公钥替换、生成搜索陷门、生成测试陷门等询问,C 将返回相应值给AI ;(3) 挑战阶段:
AI 输出两个挑战关键字w0 和w1 ,w0≠w1 且未被AI 询问过。C 任意选择b∈{0,1} ,运行加密算法生成密文,发送给AI ;(4) 猜测阶段:
AI 以b∈{0,1} 作为猜测值输出。如果b′=b ,则AI 获胜。AI 获胜的优势为AdvAI(k)=|Pr[b′=b]−12| 。游戏2:挑战者
C 和AII 的游戏过程如下:(1) 系统建立阶段:
C 输入安全参数K ,输出主密钥s 和参数PP 并返回给AII ;(2) 询问阶段:与游戏1中过程相同,除了不进行部分私钥询问和公钥替换询问;
(3) 挑战阶段:与游戏1中过程相同;
(4) 猜测阶段:
AII 输出b′∈{0,1} 作为猜测值,如果b′=b ,则AII 获胜。AII 获胜的优势为:AdvAII(k)=|Pr[b′=b]−12| 。3. CLEETS方案
3.1 具体方案
(1) 系统设置。输入安全参数
K ,生成系统参数PP 。KGC 执行以下过程:(a)选取两个循环群
G1和G2 ,其阶为q ,g 为G1 的生成元,再选择双线性映射e:G1×G1→G2 ; (b)随机选择s∈Z∗q 作为主密钥并秘密保存,并计算ˆg=gs ; (c)选择4个抗碰撞的哈希函数H1,H2:{0,1}∗→G1 ,H3:{0,1}∗→Z∗q ,H4:G2→Z∗q ; (d)公开系统参数PP={G1,G2,e,q,g,ˆg,H1,H2,H3,H4} 。(2) 生成部分私钥。
KGC 执行以下步骤生成接收者和云服务器的部分私钥:(a)输入接收者的身份信息
IDR∈{0,1}∗ ,计算QR=H1(IDR) ,计算接收者的部分私钥DS=QsR ; (b)输入云服务器的身份信息IDS∈{0,1}∗ ,计算QS=H1(IDS) ,计算云服务器的部分私钥DS=QsS 。(3) 生成秘密值。选择一个随机数作为秘密值。
(a)接收者任意选取
XR∈Z∗q 作为其秘密值;(b)云服务器任意选取XS∈Z∗q 作为其秘密值。(4) 生成私钥。用户输入秘密值和部分私钥,产生自己的完整私钥。
(a)接收者输入
XR∈Z∗q 和DR ,生成私钥SKR=DXRR ;(b)云服务器输入XS∈Z∗q 和DS ,生成私钥SKS=DSXS 。(5) 生成公钥。输入秘密值生成用户的公钥。
(a)接收者输入秘密值
XR 和系统公钥ˆg ,生成接收者的公钥PKR=ˆgXR ; (b)云服务器输入XS 和系统公钥ˆg ,生成接收者的公钥PKS=ˆgXS 。(6) 加密。设一组关键字集
W={wi|1≤i≤n} 。输入PP ,IDS ,IDR ,PKR ,PKS ,wi 和消息M ,数据拥有者执行以下计算过程:(a)随机选择
α,β∈Z∗q ,计算C1i=gα 和C2i=gβ ;(b)计算C3i=e(H2(wi)α,PKRPKS)e(QRα,ˆg) ;(c)计算C4i=H3(M)α⋅H4(e(PKR,QR)α) 。则目标密文C={C1,C2,···,Cn} ,其中Ci=(C1i,C2i,C3i,C4i) 。(7) 生成搜索陷门。接收者输入
PP ,wi′ 和SKR ,计算出搜索陷门TW=H2(wi′)XRDR 。(8) 生成测试陷门。接收者输入
PP 和SKR ,接收者计算出测试陷门Td=DRXR 。(9)
Test1 算法。云服务器输入PP ,SKS 和TWi ,验证e(TW,C1)e(H2(wi)XS,C1)=C3 是否成立。若等式成立则继续执行以下算法,否则返回“0”。(10)
Test2 算法。云服务器输入PP ,TdA ,TdB ,CA=(CA1,CA2,CA3,CA4) ,CB=(CB1,CB2,CB3CB4) ,计算KA=CA4H4(e(CA2,TdA)) ,KB=CB4H4(e(CB2,TdB)) ,验证等式e(CA1,KB)=e(CB1,KA) 。若等式成立则给用户返回“1”,否则返回“0”。3.2 正确性
CLEETS方案正确当且仅当Test1算法和Test2算法中的验证等式成立。
(1) Test1中的验证等式成立,如果
w=wi :e(TW,C1)e(H2(wi)XS,C1)=e(H2(wi)XRDR,gα)e(H2(wi)XS,gα)=e(H2(wi)XR,gα)e(DR,gα)e(H2(wi)XS,gα)=e(H2(wi)XR+XS,gα)e(QRs,gα)=e(H2(wi)α,PKRPKS)e(QRα,ˆg)=C3 即等式
e(TW,C1)e(H2(wi)XS,C1)=C3 成立。(2) Test2中的验证等式成立:
KA=CA4H4(e(CA2,TdA))=H3(MA)αA⋅H5(e(PKRA,QRA)βA)H4(e(gβA,DRAXRA))=H3(MA)αA⋅H4(e(gsXRA,QRA)βA)H4(e(gβA,QRAsXRA))=H3(MA)αA,KB=CB4H4(e(CB2,TdB))=H3(MB)αB⋅H4(e(PKRB,QRB)βB)H4(e(gβB,DRBXRB))=H3(MB)αB⋅H4(e(gsXRB,QRB)βB)H4(e(gβB,QRBsXRB))=H3(MB)αB。 如果
MA=MB ,则e(CA1,KB)=e(CB1,KA) 成立。4. 安全性证明
假设挑战者
C 无法以一定的优势解决BDH (Bilinear Diffie-Hellman)困难问题,则在随机预言模型下,方案在适应性选择关键字攻击下具有关键字不可区分性安全。引理1 假设敌手
AI 以一定的优势ε 攻破CLEETS方案,则存在一个算法B 以一定的优势解决BDH困难问题。设qH1 ,qPP ,qP ,qT 和qA 分别表示H1 哈希询问、部分私钥询问、私钥询问、搜索陷门询问和测试陷门询问,则算法B 解决BDH困难问题的优势为ε′≥εqH1(1−1qH1)qPP+qP+qT+qA 证明 给出
BDH 问题实例(g,ga,gb,gc) ,C 的主要任务是通过AI 的回答,计算出e(g,g)abc 。(1) 系统设置。
C 选择一个IDI(1≤IDI≤qH1) 作为挑战身份,计算ˆg=ga ,将系统参数PP={K,G1,G2,e,q,g,ˆg,H1,H2,H3,H4} 发送给敌手AI 。(2)
H1 哈希询问:C 维持LH1 数据表,该表包含元组⟨IDi,αi,Qi⟩ 。AI 询问IDi 时,C 执行以下操作:(a)如果
IDi 已经在⟨IDi,αi,Qi⟩ 中,C 输出Qi ; (b)否则,判断IDi 是否等于IDI 。如果IDi=IDI ,C 随机选取αi∈Z∗q 并计算Qi=gαib ; (c)否则,C 随机选取αi∈Z∗q 并计算Qi=gαi ,添加⟨IDi,αi,Qi⟩ 到表LH1 中并输出Qi 。(3)
H2 哈希询问:C 维持LH2 数据表,该表包含元组⟨wi,βi,H2(wi)⟩ 。AI 询问wi 时,C 执行以下操作:(a)如果
H2(wi) 已经在⟨wi,βi,H2(wi)⟩ 中,C 输出H2(wi) ; (b)否则,C 随机选取βi∈Z∗q 并计算H2(wi)=gβi ,添加⟨wi,βi,H2(wi)⟩ 到表LH2 中并输出H2(wi) 。(4)
H3 哈希询问:C 维持LH3 数据表,该表包含元组⟨Mj,βj,H3(Mj)⟩ 。当AI 对Mj 进行询问时,C 执行以下操作:(a)如果
H3(Mj) 已经在⟨Mj,βj,H3(Mj)⟩ 中,C 输出H3(Mj) ; (b)否则,C 随机选取γi∈Z∗q 并计算H3(Mj)=gγi ,添加⟨wi,βi,H2(wi)⟩ 到表LH3 中并输出H3(Mj) 。(5)
H4 哈希询问:C 维持LH4 数据表,该表包含元组⟨PKi,Qi,H4⟩ 。当AI 对PKi ,Qi 进行询问时,C 执行以下操作:(a)如果
PKi,Qi 已经在LH1,LPK 在中,C 输出H4 ; (b)否则,C 随机选取xi,αi∈Z∗q 并计算PKi=gxi ,Qi=gαi ,添加⟨PKi,Qi,H4⟩ 到表LH4 中并输出H4 。(6)部分私钥提取询问。
C 维持为LPSK 数据表,该表包含元组⟨IDi,Qi,Di⟩ 。AI 询问IDi 的部分私钥时,C 执行H1 询问获得⟨IDi,αi,Qi⟩ ,然后执行:(a)如果
IDi≠IDI ,先计算Di=ˆgαi ,然后添加⟨IDi,Qi,Di⟩ 到表LPSK 中并输出Di ; (b)否则,C 终止操作,记录该事件为E1 。(7)公钥提取询问。
C 维持LPK 数据表,该表包括元组⟨IDi,Xi,PKi⟩ 。AI 询问IDi 的公钥时,C 执行如下操作:(a)如果
PKi 存在于LPK 中则输出PKi ; (b)否则C 随机选取Xi∈Z∗q 计算PKi=g1Xi ,C 添加⟨IDi,Xi,PKi⟩ 到表LPK 中并输出PKi 。(8)公钥替换询问。
AI 以一个随机值代替任意用户的公钥。(9)私钥询问。输入用户身份
IDi ,如果IDi=IDI ,C 终止查询,此事件记为E2 ;否则C 执行以下操作:(a)如果
⟨IDi,Qi,Di⟩ 和⟨IDi,Xi,PKi⟩ 分别位于表LPSK 和LPK 中,则C 设置私钥SKi=(Xi,Di) 并输出此值;(b)否则,C 以身份IDi 进行查询,通过上述过程获得SKi=(Xi,Di) 并输出。(10)搜索陷门询问。当
AI 对关键字wi 对应的TWi 进行陷门查询时,挑战者C 执行以下操作:(a)如果
IDi=IDI ,则C 终止查询,此事件记为E3 ;(b)否则,C 从表LPK 中取出⟨IDi,Xi,PKi⟩ ,从表LPSK 中取出⟨IDi,Qi,Di⟩ ,从表LH2 中取出⟨wi,βi,H2(wi)⟩ ,计算TWi=H2(wi′)XRDR 并输出。(11)测试陷门询问。当
AI 对消息Mj 进行测试陷门查询时,挑战者C 执行以下操作:(a)如果
IDi=IDI ,则C 终止查询,此事件记为E4 ;(b)否则,C 从表LPK 中取出⟨IDi,Xi,PKi⟩ ,从表LPSK 中取出⟨IDi,Qi,Di⟩ ,计算tMj =DRXR 。(12)挑战。利用身份
ID∗ ,AI 对两个关键字w0 和w1 发起挑战,C执行以下操作:(a)如果
ID∗≠IDi ,C 终止查询,此事件记为E5 ;(b)否则,随机选择b∈{0,1} ,r∈Z∗q ,输出C∗=(grc,C3b) 。如果C∗ 是有效密文,则C∗= e(gβi,gXRPKS)rce(gαib,ga)rc=e(g,g)βiXRrce(g,PKS)βirce(g,g)αiabrc 。(13)更多陷门询问。
AI 通过发送wi 给挑战者C ,进行更多的陷门询问,其中wi≠w0 且wi≠w1 ,C 像上面一样输出,以事件E6 表示AI 既没有对w0 询问也没有对w1 询问。(14)猜测。
AI 输出b′∈{0,1} 作为猜测值,此时,(C∗e(gc,g)rβiXie(gc,PKS)rβi)1rαi=(e(g,g)crβiXie(g,PKS)crβie(g,g)rabcαie(gc,g)rβiXie(gc,PKS)rβi)1rαi=(e(g,g)crβiXie(g,PKS)crβie(g,g)rabcαie(gc,g)rβiXie(gc,PKS)rβi)1rαi=(e(g,g)rabcαi)1rαi=e(g,g)abc 以下分析
C 获胜的优势ε′ :(a)当
AI 执行Hi(1≤i≤4) 询问时,C 以随机值回应;(b)如果Ei(1≤i≤6) 都不发生,C 不终止查询。显然,Pr[¬E1∧¬E2∧¬E3∧¬E4∧¬E5]=(1−1/qH1)qPP+qP+qT+qA(1/qH1) 。根据文献[8]可知解决困难问题的优势为
ε′≥12Pr[¬E6]Pr[¬E1∧¬E2∧¬E3∧¬E4∧¬E5] ≥12⋅2ε⋅(1−1qH1)qPP+qP+qT+qA⋅(1qH1)=(εqH1)(1−1qH1)qPP+qP+qT+qA证毕 引理2 假设敌手
AII 以一定的优势ε 攻破CLEETS方案,则存在一个算法B 以一定的优势解决BDH困难问题。设qH1 ,qP ,qT 和qA 分别表示H1 哈希询问、私钥询问、搜索陷门询问和测试陷门询问。则算法B 解决BDH困难问题的优势为ε′≥εqH1(1−1qH1)qP+qT+qA 证明 给出
BDH 问题实例(g,ga,gb,gc) ,C 的主要任务是通过AII 的回答,计算e(g,g)abc 。(1)系统设置。
C 选择IDI(1≤IDI≤qH1) 作为挑战身份,并计算ˆg=gs ,最后将系统参数PP={K,G1,G2,e,q,g,ˆg,H1,H2,H3,H4} 和s 发送给敌手AII 。(2)
H1 哈希询问:C 维持LH1 数据表,该表包含元组⟨IDi,Qi⟩ 。当AII 询问IDi 时,C 执行以下操作:(a)如果
IDi 已经在⟨IDi,αi,Qi⟩ 中,C 输出Qi ;(b)否则,C 随机选取Qi∈G1 ,添加⟨IDi,Qi⟩ 到表LH1 中并输出Qi 。(3)
H2 哈希询问:与定理1中证明过程相同。(4)
H3 哈希询问:与定理1中证明过程相同。(5)
H4 哈希询问:与定理1中证明过程相同。(6)公钥提取询问。
C 维持LPK 数据表,该表包含元组⟨IDi,Xi,PKi⟩ 。当AII 询问IDi 的公钥时,C 执行如下操作:(a)如果
PKi 已经存在于LPK 中,输出PKi ;(b)否则,C 随机选取Xi∈Z∗q ,如果IDi=IDI ,计算PKi=gb1Xi 。否则,PKi=g1Xi ,添加⟨IDi,Xi,PKi⟩ 到表LPK 中并输出PKi 。(7)私钥询问。输入用户身份
IDi ,如果IDi=IDI ,C 终止查询,此事件记为E1 。否则,C 查询LH1和LPK 获得⟨IDi,Qi⟩ 和⟨IDi,Xi,PKi⟩ 。最后,输出SKi=(Xi,sQi) 。(8)搜索陷门询问。与定理1中相同,除了计算
TWi=H2(wi′)DRsQR 。(9)测试陷门询问。与定理1中相同,除了计算
tMj=sQRXR 。(10)挑战。与定理1中挑战过程相同。
(11)更多陷门询问。与定理1中证明过程相同。
(12)猜测。
AII 输出b′∈{0,1} 作为猜测值,此时:(C∗e(ga,gcXS)rβie(Qi,gcs)r)1rβiXi=(e(g,g)aβibXirce(ga,gcXS)βire(Qi,gcs)re(ga,gcXS)rβie(Qi,gcs)r)1rβiXi=(e(g,g)aβibXirc)1rβiXi=e(g,g)abc 以下分析
C 获胜的优势ε′ :(a)当
AII 执行Hi(1≤i≤4) 询问时,C 以随机值回应;(b)如果Ei(1≤i≤5) 都不发生,则C不终止查询。显然:Pr[¬E1∧¬E2∧¬E3∧¬E4]=(1−1qH1)qP+qT+qA(1qH1) 根据文献[8]可知解决困难问题的优势为:ε′≥12Pr[¬E5]Pr[¬E1∧¬E2∧¬E3∧¬E4]≥12⋅2ε⋅(1−1qH1)qP+qT+qA⋅(1qH1)=(εqH1)(1−1qH1)qP+qT+qA 证毕
5. 性能分析
5.1 功能对比
从表1可以看出,文献[6]方案支持关键字搜索功能但不支持密文等值测试;文献[16]方案支持密文等值测试但不支持关键字搜索功能,其搜索准确度不高。本文方案同时支持密文等值测试和关键字搜索功能。先通过关键字搜索判断是否有用户所需的密文信息,再执行密文等值测试,有效地提高了检索效率。
5.2 效率分析
文献[6]方案和本文方案均能实现关键字搜索加密,因此仅对本文方案和文献[6]方案的通信开销进行比较。
|G1| 和|G2| 代表群G1 和G2 上元素的长度,lgq 代表二进制比特数,|Zq| 代表Zq 上数的长度。从表2可以看出,与文献[6]方案相比,本文方案秘密值长度和公钥长度相同,部分私钥长度和密文长度稍高。表 2 通信开销方案 部分私钥长度 秘密值长度 公钥长度 密文长度 文献[6]方案 |2Zq| |2Zq| |2G1| n(|G1|+lgq) 本文方案 |2G1| |2Zq| |2G1| n(|G1|+|G2|+lgq) 5.3 计算代价
以下模拟方案的计算代价。假设
Tsm 为生成随机数时间;Tb 为双线性对运算时间;TH 为哈希函数运算时间;Tex 为指数运算时间;Tmul 为乘法运算时间。仿真环境为戴尔笔记本电脑(I7-4700CPU@ 3.2 GHz,16 GB和Ubuntu Linux)和PBC[20]函数库。方案的执行时间如表3所示,其中,Tsm=2.142 ms, Tb=0.671 ms, TH=5.762 ms, Tex=5.611ms, Tmul=0.1 ms。表 3 计算代价(ms)密钥生成 加密 陷门 授权 测试算法1 测试算法2 4Tex +2TH +2Tsm=38.252 4Tex +3Tb +Tmul +2TH +2Tsm=
40.365TH +Tex +Tmul =11.473 Tex =5.611 2Tb +Tex=6.953 4Tb +2TH=14.208 6. 结束语
本文提出了一种支持关键字搜索的无证书密文等值测试加密方案。该方案可以实现未对密文解密的情况下,先执行关键字检索,再判断是否执行密文等值测试,进而判断两个密文是否是同一明文产生。该方案不仅克服了传统可搜索加密的密文等值测试问题,也解决了等值测试中检索效率低的问题。通过安全性分析,证明本文方案满足关键字不可区分性。由于方案在密文等值测试的基础上增加了密文关键字搜索功能,使服务器免于执行遍历密文的等值测试,但是,增加了两个双线性对运算和一个映射到循环群的哈希运算,因此,具有相对较大的计算开销。未来,我们会进一步解决计算和通信开销问题。
-
表 1 功能对比
表 2 通信开销
方案 部分私钥长度 秘密值长度 公钥长度 密文长度 文献[6]方案 |2Zq| |2Zq| |2G1| n(|G1|+lgq) 本文方案 |2G1| |2Zq| |2G1| n(|G1|+|G2|+lgq) 表 3 计算代价(ms)
密钥生成 加密 陷门 授权 测试算法1 测试算法2 4Tex +2TH +2Tsm=38.252 4Tex +3Tb +Tmul +2TH +2Tsm=
40.365TH +Tex +Tmul =11.473 Tex =5.611 2Tb +Tex=6.953 4Tb +2TH=14.208 -
张键红, 李鹏燕. 一种有效的云存储数据完整性验证方案[J]. 信息网络安全, 2017(3): 1–5. doi: 10.3969/j.issn.1671-1122.2017.03.001ZHANG Jianhong and LI Pengyan. An efficient data integrity verification scheme for cloud storage[J]. Netinfo Security, 2017(3): 1–5. doi: 10.3969/j.issn.1671-1122.2017.03.001 MAYER-SCHONBERGER V and CUKIER K. Big data: A Revolution that Will Transform How We Live, Work and Think[M]. London: John Murray, 2013: 94–98. SONG D X, WAGNER D, and PERRIG A. Practical techniques for searches on encrypted data[C]. 2000 IEEE Symposium on Security and Privacy, Berkeley, USA, 2000: 44–55. doi: 10.1109/SECPRI.2000.848445. BONEH D, DI CRESCENZO G, OSTROVSKY R, et al. Public key encryption with keyword search[C]. International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2004: 506–522. doi: 10.1007/978-3-540-24676-3_30. 江明明, 郭宇燕, 余磊, 等. 有效的标准模型下格上基于身份的代理重加密[J]. 电子与信息学报, 2019, 41(1): 61–66. doi: 10.11999/JEIT180146JIANG Mingming, GUO Yuyan, YU Lei, et al. Efficient identity-based proxy re-encryption on lattice in the standard model[J]. Journal of Electronics &Information Technology, 2019, 41(1): 61–66. doi: 10.11999/JEIT180146 PENG Yanguo, CUI Jiangtao, PENG Changgen, et al. Certificateless public key encryption with keyword search[J]. China Communications, 2014, 11(11): 100–113. doi: 10.1109/CC.2014.7004528 MA Mimi, HE Debiao, KUMAR N, et al. Certificateless searchable public key encryption scheme for industrial internet of things[J]. IEEE Transactions on Industrial Informatics, 2018, 14(2): 759–767. doi: 10.1109/TII.2017.2703922 MA Mimi, HE Debiao, KHAN M K, et al. Certificateless searchable public key encryption scheme for mobile healthcare system[J]. Computers & Electrical Engineering, 2018, 65: 413–424. doi: 10.1016/j.compeleceng.2017.05.014 张玉磊, 刘祥震, 郎晓丽, 等. 云存储环境下多服务器的密钥聚合可搜索加密方案[J]. 电子与信息学报, 2019, 41(3): 674–679. doi: 10.11999/JEIT180418ZHANG Yulei, LIU Xiangzhen, LANG Xiaoli, et al. Multi-server key aggregation searchable encryption scheme in cloud environment[J]. Journal of Electronics &Information Technology, 2019, 41(3): 674–679. doi: 10.11999/JEIT180418 张玉磊, 刘文静, 刘祥震, 等. 基于授权的多服务器可搜索密文策略属性基加密方案[J]. 电子与信息学报, 2019, 41(8): 1808–1814. doi: 10.11999/JEIT180944ZHANG Yulei, LIU Wenjing, LIU Xiangzhen, et al. Searchable multi-server CP-ABE scheme based on authorization[J]. Journal of Electronics &Information Technology, 2019, 41(8): 1808–1814. doi: 10.11999/JEIT180944 YANG Guomin, TAN C H, HUANG Qiong, et al. Probabilistic public key encryption with equality test[C]. Cryptographers’ Track at the RSA Conference 2010, San Francisco, USA, 2010: 119–131. doi: 10.1007/978-3-642-11925-5_9. TANG Qiang. Towards public key encryption scheme supporting equality test with fine-grained authorization[C]. The 16th Australasian Conference on Information Security and Privacy, Melbourne, Australia, 2011: 389–406. TANG Qiang. Public key encryption supporting plaintext equality test and user-specified authorization[J]. Security and Communication Networks, 2012, 5(12): 1351–1362. doi: 10.1002/sec.418 TANG Qiang. Public key encryption schemes supporting equality test with authorisation of different granularity[J]. International Journal of Applied Cryptography, 2012, 2(4): 304–321. doi: 10.1504/IJACT.2012.048079 MA Sha, HUANG Qiong, ZHANG Mingwu, et al. Efficient public key encryption with equality test supporting flexible authorization[J]. IEEE Transactions on Information Forensics and Security, 2015, 10(3): 458–470. doi: 10.1109/TIFS.2014.2378592 MA Sha. Identity-based encryption with outsourced equality test in cloud computing[J]. Information Sciences, 2016, 328: 389–402. doi: 10.1016/j.ins.2015.08.053 QU Haipeng, YAN Zhen, LIN Xijun, et al. Certificateless public key encryption with equality test[J]. Information Sciences, 2018, 462: 76–92. doi: 10.1016/j.ins.2018.06.025 HUANG Kaibin, TSO R, CHEN Yuchi, et al. PKE-AET: Public key encryption with authorized equality test[J]. The Computer Journal, 2015, 58(10): 2686–2697. doi: 10.1093/comjnl/bxv025 LEE H T, LING San, SEO J H, et al. Semi-generic construction of public key encryption and identity-based encryption with equality test[J]. Information Sciences, 2016, 373: 419–440. doi: 10.1016/j.ins.2016.09.013 The pairing-based cryptography library[EB/OL]. http://crypto.stanford.edu/pbc/, 2015. 期刊类型引用(2)
1. 宋文帅,邓淼磊,马米米,李昊宸. 可搜索公钥加密研究进展. 计算机应用. 2023(03): 794-803 . 百度学术
2. 张玉磊,白巧玲,马彦丽,闫晨阳,王彩芬. 无证书密文等值测试签密方案. 电子与信息学报. 2021(09): 2534-2541 . 本站查看
其他类型引用(10)
-