一种基于SM9数字签名的批量验证方法和系统与流程

文档序号:23709604发布日期:2021-01-23 16:30阅读:来源:国知局

技术特征:
1.一种基于sm9数字签名的批量验证方法,其特征在于,所述方法包括:获取待签名消息以及所述待签名消息对应的签名者的身份标识;基于可信密钥生成中心获取系统公钥和签名者私钥;基于所述系统公钥、所述身份标识和所述签名者私钥生成待签名消息的数字签名,并将所述数字签名以消息签名对的形式表示;验证者对所述消息签名对进行批量验证。2.根据权利要求1所述的验证方法,其特征在于,所述基于所述系统公钥、所述身份标识和所述签名者私钥生成待签名消息的数字签名,包括:s301、计算g=e(p
1
,p
pub
);其中:g表示乘法循环群g
t
中的元素;e表示从g
1
×
g
2
到g
t
的双线性映射,g
1
为阶为素数n的加法循环群,g
2
为阶为素数n的加法循环群,g
t
为阶为素数n的乘法循环群;p
1
表示群g
1
的生成元;p
pub
表示可信密钥生成中心初始化的系统公钥;s302、随机选取一个数r
i
∈[1,n-1],[1,n-1]为不小于1且不大于n-1的整数的集合;计算并将w
i
转换为字符串;其中:w
i
表示乘法循环群g
t
中的元素g的r
i
次幂;s303、计算l
i
=(r
i-h
2i
)mod n其中:l
i
表示整数集合[1,n-1]中的元素;h
2i
为中间变量,且h
2i
=h
2
(m
i
||id
i
||w
i
,n)其中:h
2
为由密码杂凑函数派生的密码函数;m
i
表示签名者u
i
分属的待签名消息,id
i
表示签名者u
i
的身份标识;若l
i
=0,则跳转到s302;s304、计算s
i
=[l
i
]d
i
并将s
i
转换为字符串;其中:s
i
表示加法循环群g
1
中的元素;d
i
表示签名者u
i
的签名者私钥;s305、得到签名者u
i
的数字签名σ
i
=(w
i
,s
i
)。3.根据权利要求2所述的验证方法,其特征在于,将所述数字签名以消息签名对的形式表示,所述消息签名对为:{σ
i
,m
i
,id
i
}其中:σ
i
为签名者u
i
的数字签名;m
i
表示签名者u
i
分属的待签名消息;
id
i
表示签名者u
i
的身份标识。4.根据权利要求2所述的验证方法,其特征在于,所述验证者对所述消息签名对进行批量验证,包括:验证者基于预设的验证方法对所述消息签名对进行批量验证,所述预设的验证方法包括:s501、校验w
i
是否为乘法循环群g
t
中元素;若不是,则判定所述消息签名对无效;s502、校验s
i
是否为加法循环群g
1
中元素;若不是,则判定所述消息签名对无效;s503、从整数集合[1,n-1]中随机选取n个数(v
1
,v
2
,...,v
n
);s504、判断预设的验证条件是否成立;若成立,则判定所述消息签名对有效,若不成立,则判定所述消息签名对无效。5.根据权利要求4所述的验证方法,其特征在于,所述预设的验证条件为:其中:e表示从g
1
×
g
2
到g
t
的双线性映射;p
2
表示群g
2
的生成元;p
pub
表示可信密钥生成中心初始化的系统公钥;h
2i
为中间变量;其中:s表示加法循环群g
1
中的元素;h
1i
表示中间变量,且h
1i
=h
1
(id
i
||hid,n)其中:h
1
为由密码杂凑函数派生的密码函数;hid表示可信密钥生成中心选择并公开的私钥生成函数识别符;其中:表示加法循环群g
1
中的元素。6.根据权利要求3所述的验证方法,其特征在于,还包括:验证者对所述消息签名对进行验证,验证方法包括:s501、校验w
i
是否为乘法循环群g
t
中元素;若不是,则判定所述消息签名对无效;s502、校验s
i
是否为加法循环群g
1
中元素;若不是,则判定所述消息签名对无效;s503、依次判断预设的验证条件是否成立;若成立,则判定所述消息签名对有效,若不成立,则判定所述消息签名对无效;所述预设的验证条件为:
其中:e表示从g
1
×
g
2
到g
t
的双线性映射;p
2
表示群g
2
的生成元;p
pub
表示可信密钥生成中心初始化的系统公钥;h
2i
为中间变量;h
1i
=h
1
(id
i
||hid,n)其中:h
1
为由密码杂凑函数派生的密码函数;id
i
表示签名者u
i
的身份标识;hid表示可信密钥生成中心选择并公开的私钥生成函数识别符。7.一种基于sm9数字签名的批量验证系统,其特征在于,所述系统包括:第一获取模块,被配置为获取待签名消息以及所述待签名消息对应的签名者的身份标识;第二获取模块,被配置为基于可信密钥生成中心获取系统公钥和签名者私钥;数字签名获取模块,被配置为基于所述系统公钥、所述身份标识和所述签名者私钥生成待签名消息的数字签名,并将所述数字签名以消息签名对的形式表示;签名验证模块,被配置为对所述消息签名对进行批量验证。8.根据权利要求7所述的验证系统,其特征在于,所述数字签名获取模块进一步被配置为:s301、计算g=e(p
1
,p
pub
);其中:g表示乘法循环群g
t
中的元素;e表示从g
1
×
g
2
到g
t
的双线性映射,g
1
为阶为素数n的加法循环群,g
2
为阶为素数n的加法循环群,g
t
为阶为素数n的乘法循环群;p
1
表示群g
1
的生成元;p
pub
表示可信密钥生成中心初始化的系统公钥;s302、随机选取一个数r
i
∈[1,n-1],[1,n-1]为不小于1且不大于n-1的整数的集合;计算并将w
i
转换为字符串;其中:w
i
表示乘法循环群g
t
中的元素g的r
i
次幂;s303、计算l
i
=(r
i-h
2i
)mod n其中:l
i
表示整数集合[1,n-1]中的元素;h
2i
为中间变量,且h
2i
=h
2
(m
i
||id
i
||w
i
,n)其中:h
2
为由密码杂凑函数派生的密码函数;m
i
表示签名者u
i
分属的待签名消息,id
i
表示签名者u
i
的身份标识;若l
i
=0,则跳转到s302;
s304、计算s
i
=[l
i
]d
i
并将s
i
转换为字符串;其中:s
i
表示加法循环群g
1
中的元素;d
i
表示签名者u
i
的签名者私钥;s305、得到签名者u
i
的数字签名σ
i
=(w
i
,s
i
)。9.根据权利要求8所述的验证系统,其特征在于,所述签名验证模块进一步被配置为:s501、校验w
i
是否为乘法循环群g
t
中元素;若不是,则判定所述消息签名对无效;s502、校验s
i
是否为加法循环群g
1
中元素;若不是,则判定所述消息签名对无效;s503、从整数集合[1,n-1]中随机选取n个数(v
1
,v
2
,...,v
n
);s504、判断预设的验证条件是否成立;若成立,则判定所述消息签名对有效,若不成立,则判定所述消息签名对无效。10.根据权利要求9所述的验证系统,其特征在于,所述预设的验证条件为:其中:e表示从g
1
×
g
2
到g
t
的双线性映射;p
2
表示群g
2
的生成元;p
pub
表示可信密钥生成中心初始化的系统公钥;h
2i
为中间变量;其中:s表示加法循环群g
1
中的元素;h
1i
表示中间变量,且h
1i
=h
1
(id
i
||hid,n)其中:h
1
为由密码杂凑函数派生的密码函数;hid表示可信密钥生成中心选择并公开的私钥生成函数识别符;其中:表示加法循环群g
1
中的元素。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1