一种基于无证书签密的等式测试方法与流程

文档序号:24051573发布日期:2021-02-23 22:36阅读:197来源:国知局

[0001]
本发明涉及的领域为密码学和信息安全方向,构造了一种基于无证书签密的等式测试方法,该方法能够同时保证数据机密性和不可伪造性,除此之外,本发明引入了等式测试技术,使得云服务器可以对来自不同公钥加密的密文进行搜索或匹配操作。


背景技术:

[0002]
随着信息社会的不断前进,数据的增长速度越来越快,云服务器作为一个存储处理数据的平台逐渐受到关注。然而,在上传数据的过程中,第三方可以很容易窃取或者篡改数据信息,从而使得云服务器最终获取错误数据,造成数据的冗余,降低了数据的可用性。
[0003]
为了确保有效数据的安全传输,一般选择将数据加密之后再上传至云服务器。但是加密机制主要确保数据的机密性,而不能保证数据的可认证性,因此,签密作为同时保证机密性和可认证性的合理机制被广泛引入。
[0004]
当签密数据上传后,用户不能直接搜索所需明文数据。传统的可搜索加密技术可以利用云服务器来搜索密文。但是,该技术仅支持搜索相同公钥加密下的密文。等式测试概念的引入合理解决了可搜索加密技术的局限性,使得同时支持搜索相同或者不同公钥加密下的密文成为可能。
[0005]
现有的基于公钥基础设施的等式测试签密方法和基于身份的等式测试签密方法分别存在证书管理和密钥托管问题,而基于无证书签密的等式测试方法能够对所述两个密码系统取长补短。


技术实现要素:

[0006]
本发明中涉及到的方法为:一种基于无证书签密的等式测试方法。该方法采用签密操作,旨在同时保证数据的机密性、完整性以及不可伪造性。
[0007]
本发明中涉及的机制为:无证书密码机制。因此也避免了公钥基础设施和身份基密码体制中的证书管理和密钥托管问题。
[0008]
本发明涉及到的技术为:等式测试。如果存在两个数据接收者t和r,首先他们通过算法生成相应的陷门,当接收到来自其他用户的签密密文后,他们将陷门和该签密密文传输至云服务器。最后,云服务器将对来自两个用户的不同密文执行等式测试操作来判断这些密文所对应的明文是否相同。
具体实施方式
[0009]
具体构造由8个算法组成,操作步骤如下:
[0010]
1)初始化算法:以一个安全参数k作为输入,kgc将选取素数为q生成元为p的两个群g1,g2,然后选取e:g1×
g1→
g2作为双线性映射,同时选取h1:{0,1}*

g1,h2:g2×
g1→
{0,1}*,h3:h4:{0,1}*

g1h5:作为五个哈希函
数。随机选取系统主密钥然后计算p1=s1p,p2=s2p,最终输出系统公共参数:par={q,e,p,g1,g2,p1,p2,h1,h2,h3,h4,h5};
[0011]
2)生成部分密钥算法:以<par,id
u
,s1,s2>作为输入,kgc计算f
id
=h1(id),s
u,1
=s1f
id
,s
u,2
=s2f
id
,则设置用户的部分私钥为s
u
=(s
u,1

su,2
);
[0012]
3)生成秘密值算法:以id
u
作为输入,用户u随机选取作为秘密值;
[0013]
4)生成密钥算法:以<par,id
u
,s
u
,x
u
>作为输入,则设置用户u的私钥为sk
u
=(s
u
,x
u
),用户的公钥为pk
u
=x
u
p;
[0014]
5)生成陷门算法:以<id
u
,sk
u
>作为输入,用户u将输出td
u
=s
u,2
作为陷门;
[0015]
6)签密算法:以<par,id
a
,id
b
,sk
a
,pk
b
,m>作为输入,其中m∈{0,1}*表示所传递的消息,sk
a
表示a的私钥,pk
b
表示b的公钥,发送者a随机选取计算c1=u1p,c2=u2p,f
a
=h1(id
a
),f
b
=h1(id
b
),以及d=(u1+u2)
·
pk
b
;计算c4=h3(q2||f
b
)
·
(u2·
h4(m)),然后计算出h=h5(c1,c2,c3,c4,pk
b
,d),c5=(h
·
x
a
+u1+u2)
·
f
a
+h
·
(s
a,1
+s
a,2
),最后输出签密密文c=(c1,c2,c3,c4,c5);
[0016]
7)解签密算法:以<par,id
a
,id
b
,sk
b
,pk
a
,c>作为输入,sk
b
表示b的私钥,pk
a
表示a的公钥,接收者b计算d=x
b
·
(c1+c2),f
a
=h1(id
a
),f
b
=h1(id
b
),然后计算出h=h5(c1,c2,c3,c4,pk
b
,d);如果e(c5,p)=e(h
·
(pk
a
+p1+p2)+c1+c2,f
a
)成立,则继续执行以下算法;计算q
′1=e(c1,s
b,1
),q
′2=e(c2,s
b,2
),计算最后验证式子是否成立,如果成立,输出明文m;
[0017]
8)测试算法:如果分别设置c
t
=(c
t,1
,c
t,2
,c
t,3
,c
t,4
,c
t,5
)和c
r
=(c
r,1
,c
r,2
,c
r,3
,c
r,4
,c
r,5
)表示两个接收用户e
t
,e
r
的签密密文,以<βar,id
t
,id
r
,c
t
,c
r
,td
t
,td
r
>作为输入,则该测试算法计算q
t,2
=e(c
t,2
,td
t
),q
r,2
=e(c
r,2
,td
r
),f
t
=h1(id
t
),f
r
=h1(id
r
);然后计算最后验证式子e(φ
t
,c
r,2
)=e(φ
r
,c
t,2
)是否成立,如果不成立,返回0;否则,返回1。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1