一种基于SM9签名算法的证书签名方案的制作方法

文档序号:32894720发布日期:2023-01-13 00:05阅读:29来源:国知局
一种基于SM9签名算法的证书签名方案的制作方法
一种基于sm9签名算法的证书签名方案
技术领域
1.本发明属于信息安全技术领域,尤其涉及一种基于sm9签名算法的证书签名方案。


背景技术:

2.随着信息网络技术在金融、政务、通信等领域不断深化,数字签名作为实现数字认证的重要工具,愈发需要满足不断新生的应用场景和要求。数字签名具有身份合法性认证、抗抵赖、防伪造等特性,因此普遍应用于目前的网络通信、电子商务、电子政务等场景中。传统的数字签名技术需要一套公钥基础设施以及繁琐的证书管理,而基于身份的密码体制虽然摆脱了这些缺点,但仍因密钥托管存在安全问题。
3.基于证书签名的签名过程需要签名者私钥和他的证书,而验证只需要签名者公钥。传统公钥基础设施必须将其证书与签名同时发送给验证者,而不是只发送签名,将需要更多带宽来进行签名传输。而基于证书签名使用证书来生成签名,而不需要将证书与签名同时发送,验证者可以通过验证签名的有效性来确保证书存在。
4.sm9算法是一种基于椭圆曲线双线性对的标识密码算法,于2016年3月28日由国家密码管理局发布(标准表号:gm/t 0044-2016sm9标识密码算法),标准满足电子认证服务系统等应用需求,弥补了国产标识密码体制的空白。其主要包括三个部分:数字签名算法、公钥加密算法、密钥交换协议。这里我们采用数字签名算法的参数及标准。
5.综上本专利设计了一种基于sm9签名算法的证书签名方案。


技术实现要素:

6.本发明实施例提供一种基于sm9签名算法的证书签名方案,旨在解决传统的数字签名技术需要一套公钥基础设施以及繁琐的证书管理,而基于身份的密码体制虽然摆脱了这些缺点,但仍因密钥托管存在安全问题。
7.本发明实施例是这样实现的,一种基于sm9签名算法的证书签名方案,包括如下步骤:
8.步骤s100,系统初始化计算,证书颁发机构产生随机数作为私钥,并计算公钥,接着随机选取签名者私钥,并进行公钥计算生产签名者私钥对;
9.步骤s200,证书授权,签名者提供身份信息给证书颁发结构,证书颁发机构依据该信息和上述密钥信息验证,在信息通过后计算并生成证书反馈给签名者;
10.步骤s300,签名计算,签名者输入待签名消息,并进行签名计算并输出签名值;
11.步骤s400,验证计算,对上述步骤输出的签名值进行验证计算,判断其正确性。
12.作为本发明所述的一种优选实施方案,本方法参数选取与sm9签名算法标准参数保持一致,具体符号描述如下:
13.q:一个大素数;
14.由1,2,,

,q-1组成的整数集合;
15.阶为q的加法循环群;
16.阶为q的乘法循环群;
17.p1,p2:分别为群和的生成元;
18.gu:乘法群中元素g的u次幂;
19.[k]p:椭圆曲线上点p的k倍点,k是正整数;
[0020]
e:从到g
t
的双线性对映射;
[0021]
h1(
·
),h2(
·
):由密码杂凑函数派生的密码函数,均为
[0022]
a:签名者a;
[0023]
ca:证书颁发机构;
[0024]
d:由ca秘密持有的系统主私钥;
[0025]
p
pub1
,p
pub2
:由ca公开的系统主公钥,计算公式为p
pub1
=[d]p1,p
pub2
=[d]p2;
[0026]
aliceinfo:签名者a的个人信息;
[0027]
id:签名者身份标识;
[0028]
(ska,pka):签名者a的公私钥对;
[0029]
certa:签名者a的证书
[0030]
sa:签名者a的基于证书体系的私钥;
[0031]
m:待签名的消息;
[0032]
σ=(h,s):签名值;
[0033]
mod q:模q运算;例如,23mod 7≡2;
[0034]
x||y:x与y的拼接,其中x,y可以是比特串或字节串。
[0035]
作为本发明所述的一种优选实施方案,所述步骤s100,系统初始化计算,证书颁发机构产生随机数作为私钥,并计算公钥,接着随机选取签名者私钥,并进行公钥计算生产签名者私钥对的详细步骤如下:其中,a表示签名者,ca表示证书颁发机构;
[0036]
a)证书颁发机构产生随机数作为私钥,并计算公钥p
pub1

[0037]
[d]p1,p
pub2
=[d]p2。
[0038]
b)签名者a随机选取作为私钥,计算公钥pka=[sa]p2,生成自己的公私钥对(ska,pka)。
[0039]
作为本发明所述的一种优选实施方案,所述步骤s200,证书授权,签名者提供身份信息给证书颁发结构,证书颁发机构依据该信息和上述密钥信息验证,在信息通过后计算并生成证书反馈给签名者的详细步骤如下:
[0040]
a)签名者a提供信息给ca
[0041]
b)ca验证信息
[0042]
c)如果验证通过,ca计算t=h1(p
pub1
,p
pub2
,pka,ida)
[0043]
d)ca生成证书certa=[d(t+d)-1
]p1,并发送给a。
[0044]
作为本发明所述的一种优选实施方案,所述签名者a提供信息的信息包括其中包括他的公钥pka和任何必要的附加身份信息。
[0045]
作为本发明所述的一种优选实施方案,所述步骤s300,签名计算,签名者输入待签名消息,并进行签名计算并输出签名值的详细步骤如下:
[0046]
a)计算签名者基于证书体系的私钥
[0047]
b)计算的中的元素g1=e(p1,p
pub2
)
[0048]
c)随机选取并计算h=h2(m||w),
[0049]
d)计算s=[l]sa[0050]
e)输出消息m的签名σ=(h,s)。
[0051]
作为本发明所述的一种优选实施方案,所述步骤s400,验证计算,对上述步骤输出的签名值进行验证计算,判断其正确性的算法如下:
[0052]
a)计算的中的元素g2=e(p
pub1
,pka)
[0053]
b)计算t=h1(p
pub1
,p
pub2
,pka,ida)
[0054]
c)计算u=e(s,[t]p2+p
pub2
)
[0055]
d)计算
[0056]
e)判断h=h2(m||w)是否成立,若成立,则σ为合法签名;反之,则签名无效。
[0057]
作为本发明所述的一种优选实施方案,所述步骤s400中正确性验证算法如下:
[0058][0059]
[0060][0061]
一种基于sm9签名算法的证书签名方案,其包括:
[0062]
初始化单元,所述初始单元用于执行系统初始化计算;
[0063]
证书授权单元,所述证书授权单元用于执行证书授权计算;
[0064]
签名计算单元,所述签名计算单元用于进行计算签名值;
[0065]
验证计算单元,所述验证计算单元用于完成验证算法。
[0066]
作为本发明所述的一种优选实施方案,本系统中的参数选取与sm9签名算法标准参数保持一致。
[0067]
本发明的有益效果:本方案基于国密算法sm9的签名结构,结合了传统公钥密码技术和基于身份的加密技术的优点,同时解决了复杂的证书管理问题和密钥托管问题。该方案可以同时抵抗type 1和type 2敌手的攻击。
附图说明
[0068]
图1是本发明一种基于sm9签名算法的证书签名方案的方法步骤图;
[0069]
图2是本发明一种基于sm9签名算法的证书签名方案的原理图;
[0070]
图3是本发明一种基于sm9签名算法的证书签名方案的结构框图。
具体实施方式
[0071]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0072]
本发明解决了现有的基于sm9的基于证书签名无法抵抗type 2敌手的攻击问题,且结合了传统公钥密码技术和基于身份的加密技术的优点,同时解决了复杂的证书管理问题和密钥托管问题。
[0073]
本发明实施例是这样实现的,本发明实施例是这样实现的,一种基于sm9签名算法的证书签名方案,包括如下步骤:
[0074]
步骤s100,系统初始化计算,证书颁发机构产生随机数作为私钥,并计算公钥,接着随机选取签名者私钥,并进行公钥计算生产签名者私钥对;
[0075]
步骤s200,证书授权,签名者提供身份信息给证书颁发结构,证书颁发机构依据该信息和上述密钥信息验证,在信息通过后计算并生成证书反馈给签名者;
[0076]
步骤s300,签名计算,签名者输入待签名消息,并进行签名计算并输出签名值;
[0077]
步骤s400,验证计算,对上述步骤输出的签名值进行验证计算,判断其正确性。
[0078]
进一步的,本方法参数选取与sm9签名算法标准参数保持一致,具体符号描述如下:
[0079]
q:一个大素数;
[0080]
由1,2,,....,q-1组成的整数集合;
[0081]
阶为q的加法循环群;
[0082]
阶为q的乘法循环群;
[0083]
p1,p2:分别为群和的生成元;
[0084]gu
:乘法群中元素g的u次幂;
[0085]
[k]p:椭圆曲线上点p的k倍点,k是正整数;
[0086]
e:从到g
t
的双线性对映射;
[0087]
h1(
·
),h2(
·
):由密码杂凑函数派生的密码函数,均为
[0088]
a:签名者a;
[0089]
ca:证书颁发机构;
[0090]
d:由ca秘密持有的系统主私钥;
[0091]
p
pub1
,p
pub2
:由ca公开的系统主公钥,计算公式为p
pub1
=[d]p1,p
pub2
=[d]p2;
[0092]
aliceinfo:签名者a的个人信息;
[0093]
id:签名者身份标识;
[0094]
(ska,pka):签名者a的公私钥对;
[0095]
certa:签名者a的证书
[0096]
sa:签名者a的基于证书体系的私钥;
[0097]
m:待签名的消息;
[0098]
σ=(h,s):签名值;
[0099]
mod q:模q运算;例如,23mod 7≡2;
[0100]
x||y:x与y的拼接,其中x,y可以是比特串或字节串。
[0101]
进一步的,所述步骤s100,系统初始化计算,证书颁发机构产生随机数作为私钥,并计算公钥,接着随机选取签名者私钥,并进行公钥计算生产签名者私钥对的详细步骤如下:其中,a表示签名者,ca表示证书颁发机构;
[0102]
a)证书颁发机构产生随机数作为私钥,并计算公钥p
pub1

[0103]
[d]p1,p
pub2
=[d]p2。
[0104]
b)签名者a随机选取作为私钥,计算公钥pka=[sa]p2,生成自己的公私钥对(ska,pka)。
[0105]
进一步的,所述步骤s200,证书授权,签名者提供身份信息给证书颁发结构,证书颁发机构依据该信息和上述密钥信息验证,在信息通过后计算并生成证书反馈给签名者的详细步骤如下:
[0106]
a)签名者a提供信息给ca
[0107]
b)ca验证信息
[0108]
c)如果验证通过,ca计算t=h1(p
pub1
,p
pub2
,pka,ida)
[0109]
d)ca生成证书certa=[d(t+d)-1
]p1,并发送给a。
[0110]
进一步的,所述签名者a提供信息的信息包括其中包括他的公钥pka和任何必要的附加身份信息。
[0111]
进一步的,所述步骤s300,签名计算,签名者输入待签名消息,并进行签名计算并输出签名值的详细步骤如下:
[0112]
a)计算签名者基于证书体系的私钥
[0113]
b)计算的中的元素g1=e(p1,p
pub2
)
[0114]
c)随机选取并计算h=h2(m||w),
[0115]
d)计算s=[l]sa[0116]
e)输出消息m的签名σ=(h,s)。
[0117]
进一步的,所述步骤s400,验证计算,对上述步骤输出的签名值进行验证计算,判断其正确性的算法如下:
[0118]
a)计算的中的元素g2=e(p
pub1
,pka)
[0119]
b)计算t=h1(p
pub1
,p
pub2
,pka,ida)
[0120]
c)计算u=e(s,[t]p2+p
pub2
)
[0121]
d)计算
[0122]
e)判断h=h2(m||w)是否成立,若成立,则σ为合法签名;反之,则签名无效。
[0123]
进一步的,所述步骤s400中正确性验证算法如下:
[0124][0125][0126]
[0127][0128]
一种基于sm9签名算法的证书签名方案,其包括:
[0129]
初始化单元,所述初始单元用于执行系统初始化计算;
[0130]
证书授权单元,所述证书授权单元用于执行证书授权计算;
[0131]
签名计算单元,所述签名计算单元用于进行计算签名值;
[0132]
验证计算单元,所述验证计算单元用于完成验证算法。
[0133]
进一步的,本系统中的参数选取与sm9签名算法标准参数保持一致。
[0134]
实施例一
[0135]
参阅图1-图3,本发明提出了一种基于sm9签名算法的证书签名方案,下面给出具体描述。
[0136]
具体方案流程如下所示:具体方案流程如下所示:a表示用户,ca表示证书颁发机构。
[0137]
1)初始化
[0138]
a)证书颁发机构产生随机数作为私钥,并计算公钥p
pub1

[0139]
[d]p1,p
pub2
=[d]p2。
[0140]
b)用户a随机选取作为私钥,计算公钥pka=[sa]p2,生成自己的公私钥对(ska,pka)。
[0141]
2)证书授权
[0142]
a)用户a提供信息aliceinfo给ca,其中包括他的公钥pka和任何必要的附加身份信息,如她的姓名。
[0143]
b)ca验证信息。
[0144]
c)如果验证通过,ca计算t=h1(p
pub1
,p
pub2
,pka,ida),
[0145]
d)ca生成证书certa=[d(t+d)-1
]p1,并发送给a。
[0146]
3)签名
[0147]
a)用户计算自己基于证书体系的私钥
[0148]
b)计算的中的元素g1=e(p1,p
pub2
)。
[0149]
c)随机选取并计算h=h2(m||w),
[0150]
d)计算s=[l]sa。
[0151]
e)输出消息m的签名σ=(h,s)。
[0152]
4)验证
[0153]
a)计算的中的元素g2=e(p
pub1
,pka)。
[0154]
b)计算t=h1(p
pub1
,p
pub2
,pka,ida)。
[0155]
c)计算u=e(s,[t]p2+p
pub2
)
[0156]
d)计算
[0157]
e)判断h=h2(m||w)是否成立,若成立,则σ为合法签名;反之,则签名无效。
[0158]
正确性:
[0159][0160][0161][0162]
实施例二
[0163]
请参阅图3,本发明还提供一种基于sm9签名算法的证书签名方案,在使用的时候,首先,初始化单元初始单元执行系统初始化计算;接着证书授权单元执行证书授权计算;签名计算单元进行计算签名值;验证计算单元进行验证算法对其进行核验。
[0164]
进一步的,本系统中的参数选取与sm9签名算法标准参数保持一致。
[0165]
综上所述,本发明基于sm9的签名结构,结合了传统公钥密码技术和基于身份的加密技术的优点,同时解决了复杂的证书管理问题和密钥托管问题。与现有的研究成果相比,该方案通信成本更低,适用于计算能力有限或通信带宽昂贵的环境。
[0166]
本应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0167]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0168]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
[0169]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1