一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持等式测试的身份基可穿刺加密方法与流程

2022-02-25 23:09:48 来源:中国专利 TAG:


1.本发明涉及云计算和信息安全领域。具体涉及一种支持等式测试的身份基可穿刺加密方法。所提出的方法允许获得授权的第三方实体测试由不同公钥加密的密文中是否包含相同的信息。同时,本方法不仅解决了传统公钥密码体制中的证书管理问题,还实现了细粒度的撤销功能和前向安全,更好地满足了云环境中的安全需求。


背景技术:

2.随着以云计算为代表的信息技术的飞速发展,越来越多的组织和个人开始将自己的数据存储到云服务器上,以减少管理和运行上的成本和开销。云服务器的应用使得用户能够高效快捷的共享自己的数据。但是出于安全考虑,这些数据都是以加密的形式进行存储的,因此如何在加密数据上进行安全高效的搜索成为了一个亟待解决的问题。
3.等式测试(public key encryption with equality test,pke-et)最早由yang等人提出。相较于只能在由相同公钥加密的密文中进行搜索的传统的可搜索加密算法,等式测试算法除了能够在由相同公钥加密的密文中进行搜索,还可以在由不同公钥加密的密文中进行搜索,判断两个密文中是否包含相同的信息。由于其独特的特性,等式测试算法常被用于云服务器上加密数据的搜索。但是现有的等式测试加密方法大多数是基于传统的公钥密码体制提出的。传统的公钥密码体制依赖公钥基础设施来提供服务,而这导致了昂贵的证书管理开销。此外,现有的等式测试方法不能提供前向安全性,无法保障云环境下的信息安全。
4.可穿刺加密(puncturable encryption,pe)最早由green和miers于2015年提出,该方案允许用户更新自己的私钥以实现前向安全性。具体而言,在可穿刺加密方案中,接收方可以使用密文中嵌入的标签来更新自己的私钥,以撤销私钥对该特定消息的解密能力,而更新后的私钥对其他密文的解密能力则不受影响。这样即便当下使用的私钥泄露,也不会影响之前发送消息的安全性,从而实现了前向安全。到目前为止,还没有研究人员提出支持等式测试的身份基可穿刺加密方法。


技术实现要素:

5.本发明针对现有的基于传统公钥密码体制的等式测试方法的不足,提出了一种支持等式测试的身份基可穿刺加密方法。
6.为了达到上述发明目的,本发明采用以下技术方案实现:在本方法中,发送方使用接收方的身份作为公钥对消息加密。在加密的过程中,发送方可以在消息中嵌入任意标签。在接收并解密消息后,接收方可以使用密文中嵌入的标签来更新自己的私钥,以撤销私钥对该特定消息的解密能力,从而实现前向安全。同时,云服务器可以从用户处获得用户使用私钥生成的陷门(即用户的授权),并使用该陷门对应用不同公钥加密的密文进行测试,以判断这对密文中是否包含相同的明文。
7.与现有技术相比,本发明的有益效果是技巧性地将基于身份的密码体制和可穿刺
加密技术引入到等式测试算法中,解决了基于传统公钥密码体制的等式测试方法中的证书管理问题,并实现了前向安全性。这使得所提出的方法在如云计算等复杂环境下能更好地贴合实际的需要,为用户提供更加安全的服务。
8.本发明共涉及三种实体:用户,云服务器和私钥生成中心(private key generator,pkg)。所述方法的具体步骤包括:
9.(1)系统建立setup:输入安全参数和密文能嵌入的最大标签数,pkg运行该算法并生成系统公开参数和系统主密钥;
10.(2)私钥提取keyextract:输入系统公开参数,用户身份和主密钥,pkg运行该算法生成用户身份所对应的私钥;
11.(3)陷门生成trapdoor:输入用户私钥;用户运行该算法生成陷门;
12.(4)加密encrypt:输入系统公开参数、用户的身份和标签集合,由发送方运行该算法,输出密文;
13.(5)穿刺更新puncture:输入系统公开参数、用户私钥和一个标签,由pkg执行该算法并输出被穿刺更新后的用户私钥;
14.(6)密文解密decrypt:输入密文消息,与密文关联的标签集合和用户私钥。由接收方执行该算法解密出明文消息;
15.(7)等式测试test:分别输入两位不同用户的陷门以及分别使用两位用户公钥加密的密文,由云服务器执行等式测试,输出判等结果。
具体实施方式
16.下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
17.本发明所述方法由七个算法组成,具体构造过程如下:
18.(1)系统建立setup:输入安全参数k和密文能嵌入的最大标签数d;选择一个素数p,并构造两个阶数为p的乘法循环群g和g
t
,设g是群g的生成元;定义一个双线性映射e:g
×g→gt
;随机选取三个哈希函数:h1:{0,1}
*
→zp
,h2:{0,1}
*

g和h3:g
t

g;随机选取α,β,γ∈z
p
,并计算g1=g
α
,g2=g
β
和g3=g
γ
;随机选取一个满足q(0)=β的d次多项式q(
·
);定义v(x)=g
q(x)
;令t0为一个不会被用于嵌入且不同的标签值;pkg秘密保留主密钥msk=(α,γ),并发布系统公开参数param=(g,g1,g2,g3,g
q(1)
,...,g
q(d)
,h1,h2,h3);注意,任何人都可以通过对(g2,g
q(1)
,...,g
q(d)
)进行插值,从而计算出v(
·
);
19.(2)私钥提取keyextract:输入系统公开参数param、用户身份id和主密钥msk,pkg按如下方式生成用户id的私钥:
20.a)对于用户id∈{0,1}
*
,随机选取r,u∈
r z
p

21.b)生成用户id的初始私钥为:
[0022][0023]
在收到了pkg发送来的私钥后,用户id可以通过检查下列等式是否成立来验证私
钥的正确性:
[0024][0025]
(3)陷门生成trapdoor:输入用户的私钥其中输出陷门为:
[0026]
(4)加密encrypt:输入系统公开参数param、用户身份id和一个标签集合t1,...,td,随机选取s,k∈
r z
p
;对于消息m∈g
t
,输出密文为
[0027][0028]
(5)穿刺更新puncture:输入系统公开参数param、用户id的私钥和标签t∈{0,1}\{t0};令其中有从群z
p
中随机选取λ、n1和n2,并计算
[0029][0030][0031]
pkg输出被穿刺更新后的用户id的私钥:
[0032]
(6)密文解密decrypt:输入密文消息c=(c1,c2,c3,c
(4,1)
,

,c
(4,d)
,c5,c6)、与密文关联的标签集合t1,

,td和用户私钥其中对于j=1,2,

,i,有接着计算一组系数ω1,ω2,

,ωd,ω
*
,如然后计算:
[0033][0034]
最后可解密出明文:
[0035][0036]
(7)等式测试test:输入用户id
x
和用户idy的陷门td
x
和tdy,以及分别使用两位用户公钥加密的密文c
x
=(c
x,1
,c
x,2
,c
x,3
,c
x,(4,1)
,

,c
x,(4,d)
,c
x,5
,c
x,6
)和cy=(c
y,1
,c
y,2
,c
y,3
,c
y,(4,1)
,

,c
y,(4,d)
,c
y,5
,c
y,6
)后,云服务器按照以下步骤执行等式测试:
[0037]
a)分别计算w
x
=e(c
x,5
,td
x
)和wy=e(c
y,5
,tdy);
[0038]
b)然后计算和
[0039]
c)测试是否相等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献