当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于SM9签名的无证书签名生成方法及装置制造方法及图纸

技术编号:35187375 阅读:16 留言:0更新日期:2022-10-12 17:59
本发明专利技术公开了一种基于SM9签名的无证书签名生成方法及装置,其中的方法包括初始化步骤、部分私钥提取步骤、秘密值设置步骤、公钥设置步骤、私钥设置步骤、签名步骤以及验证步骤,它基于SM9算法的签名结构,消除了传统公钥密码系统中对证书的需求以及基于身份的公钥密码术中的密钥托管问题,该方法的实现无需传输大量证书数据,能够适用于资源受限的应用场景中,弥补了SM9数字签名算法在无证书体系中的空缺。空缺。空缺。

【技术实现步骤摘要】
一种基于SM9签名的无证书签名生成方法及装置


[0001]本专利技术涉及信息安全
,尤其涉及一种基于SM9签名的无证书签名生成方法及装置。

技术介绍

[0002]数字签名(Digital Signature)是密码学中的重要部分之一。数字签名被认为是对现实中手写签名的电子模拟。在日常生活中,许多事件的处理都需要经过特定个人或团体的签名。
[0003]现有的签名生成一般基于传统的公钥基础设施密码体制或者基于身份的密码体制来实现,前者需要基于证书来实现,后者会产生密钥托管的问题,因此存在签名生成实现较为复杂的问题。

技术实现思路

[0004]本专利技术提供一种基于SM9签名的无证书签名生成方法及装置,用以解决或者至少部分解决现有技术中存在的因需要基于证书来实现或者会产生密钥托管问题而存在的实现复杂的技术问题。
[0005]为了解决上述技术问题,本专利技术第一方面提供了一种基于SM9签名的无证书签名生成方法,包括:
[0006]初始化步骤,包括:密钥生成中心产生随机数msk,其中将产生的随机数d作为主私钥,并计算主公钥P
pub
=[d]P2,然后计算G
T
的中的元素g=e(P1,P
pub
),P1, P2分别为群G1和G2的生成元,G1,G2表示阶为q的加法循环群,G
T
表示q的乘法循环群,q为一个大素数,表示由1,2,,

,q

1组成的整数集合;
[0007]部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥其中,H1(
·
)为由密码杂凑函数派生的密码函数,ID
A
为用户A的可辨识标识;
[0008]秘密值设置步骤,包括:用户A随机选取将x
A
作为自己的秘密值;
[0009]公钥设置步骤,包括:用户A计算群元素Q
A
,Q
A
=[H1(ID
A
)]P2+P
pub
,R
A
=[x
A
]Q
A
,并设置用户R
A
的公钥PK
A
,PK
A
=R
A
,其中,R
A
为基于群元素Q
A
计算出的一个中间变量;
[0010]私钥设置步骤,包括:用户A计算y
A
,y
A
=H3(R
A
),并计算自己的私钥S
A
,其中,y
A
表示R
A
的哈希值;
[0011]签名步骤,包括:给定待签名的消息m,私钥S
A
,身份ID
A
;用户A作为签名者随机选取r,计算w=g
r
,w为基于r生成的第一承诺值,基于消息m和第一承诺值w计算第一哈希值h,h=H2(m||w)然后计算中间变量l,l=r

hmodq,再计算V,V=[l]S
A
,V为部分签名值,最后输出签名值σ=(h,V);
[0012]验证步骤,包括:验证者在给定待签名的消息m,公钥R
A
,身份ID
A
,签名值σ=(h,V)的情况下,首先计算群元素Q
A
,Q
A
=[H1(ID
A
)]P2+P
pub
,并计算R
A
的哈希值y
A
,y
A
=H3(R
A
);然后计算中间变量u,u=e(V,R
A
+[y
A
]Q
A
),再计算w

,w

=u
·
g
h
,w

为基于r生成的第二承诺值,然后计算第二哈希值h

,h

=H2(m||w

),最后判断第二哈希值h

与第一哈希值h是否一致,如果一致,则σ为合法签名,否则,签名无效。
[0013]基于同样的专利技术构思,本专利技术第二方面提供了一种基于SM9签名的无证书签名生成装置,包括:
[0014]初始化模块,用于执行初始化步骤,包括:密钥生成中心产生随机数msk,其中将产生的随机数d作为主私钥,并计算主公钥P
pub
=[d]P2,然后计算G
T
的中的元素g=e(P1,P
pub
),P1,P2分别为群G1和G2的生成元,G1,G2表示阶为q的加法循环群,G
T
表示q的乘法循环群,q为一个大素数,表示由1,2,,

,q

1组成的整数集合;
[0015]部分私钥提取模块,用于执行部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥部分私钥其中,H1(
·
)为由密码杂凑函数派生的密码函数,ID
A
为用户A的可辨识标识;
[0016]秘密值设置模块,用于执行秘密值设置步骤,包括:用户A随机选取将x
A
作为自己的秘密值;
[0017]公钥设置模块,用于执行公钥设置步骤,包括:用户A计算群元素Q
A
,Q
A
= [H1(ID
A
)]P2+P
pub
,R
A
=[x
A
]Q
A
,并设置用户R
A
的公钥PK
A
,PK
A
=R
A
,其中,R
A
为基于群元素Q
A
计算出的一个中间变量;
[0018]私钥设置模块,用于执行私钥设置步骤,包括:用户A计算y
A
,y
A
=H3(R
A
),并计算自己的私钥S
A
,其中,y
A
表示R
A
的哈希值;
[0019]签名模块,用于执行签名步骤,包括:给定待签名的消息m,私钥S
A
,身份ID
A
;用户 A作为签名者随机选取r,计算w=g
r
,w为基于r生成的第一承诺值,基于消息m和第一承诺值w计算第一哈希值h,h=H2(m||w)然后计算中间变量l,l=r

hmodq,再计算V,V=[l]S
A
,V为部分签名值,最后输出签名值σ=(h,V);
[0020]验证模块,用于执行验证本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SM9签名的无证书签名生成方法,其特征在于,包括:初始化步骤,包括:密钥生成中心产生随机数msk,其中将产生的随机数d作为主私钥,并计算主公钥P
pub
=[d]P2,然后计算G
T
的中的元素g=e(P1,P
pub
),P1,P2分别为群G1和G2的生成元,G1,G2表示阶为q的加法循环群,G
T
表示q的乘法循环群,q为一个大素数,表示由1,2,,....,q

1组成的整数集合;部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥部分私钥提取步骤,包括:密钥生成中心生成用户A部分私钥其中,H1(
·
)为由密码杂凑函数派生的密码函数,ID
A
为用户A的可辨识标识;秘密值设置步骤,包括:用户A随机选取将x
A
作为自己的秘密值;公钥设置步骤,包括:用户A计算群元素Q
A
,Q
A
=[H1(ID
A
)]P2+P
pub
,R
A
=[x
A
]Q
A
,并设置用户R
A
的公钥PK
A
,PK
A
=R
A
,其中,R
A
为基于群元素Q
A
计算出的一个中间变量;私钥设置步骤,包括:用户A计算y
A
,y
A
=H3(R
A
),并计算自己的私钥S
A
,其中,y
A
表示R
A
的哈希值;签名步骤,包括:给定待签名的消息m,私钥S
A
,身份ID
A
;用户A作为签名者随机选取r,计算w=g
r
,w为基于r生成的第一承诺值,基于消息m和第一承诺值w计算第一哈希值h,h=H2(m||w)然后计算中间变量l,l=r

h mod q,再计算V,V=[l]S
A
,V为部分签名值,最后输出签名值σ=(h,V);验证步骤,包括:验证者在给定待签名的消息m,公钥R
A
,身份ID
A
,签名值σ=(h,V)的情况下,首先计算群元素Q
A
,Q
A
=[H1(ID
A
)]P2+P
pub
,并计算R
A
的哈希值y
A
,y
A
=H3(R
A
);然后计算中间变量u,u=e(V,R
A
+[y
A
]Q
A
),再计算w

,w

=u
·
g
h
,w

为基于r生成的第二承诺值,然后计算第二哈希值h

,h

=H2(m||w

),最后判断第二哈希值h

与第一哈希值h是否一致,如果一致,则σ为合法签名,否则,签名无效。2.一种基于SM9签名的无证书签名生成装置,其特征在于,包括:初始化模块,用于执行初始化步骤,包括:密钥生成中心产生随机数msk,其中将产生的随机数d作为主私钥,并...

【专利技术属性】
技术研发人员:包子健何德彪郑航城彭聪王婧冯琦黄欣沂
申请(专利权)人:武汉大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1