[发明专利]签名生成方法、生成装置、签名验证方法和验证装置有效
申请号: | 201810878819.6 | 申请日: | 2018-08-03 |
公开(公告)号: | CN108964916B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 贾晓芸;毕伟 | 申请(专利权)人: | 中思博安科技(北京)有限公司 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08;H04L9/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100007 北京市东城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 签名 生成 方法 装置 验证 | ||
本发明提供了一种签名生成方法、生成装置、签名验证方法和验证装置,该签名生成方法可以跨多个预设椭圆曲线生成数字签名,只有将所有的预设椭圆曲线全部攻破才可以伪造该数字签名,而只要一条预设椭圆曲线是安全的,则基于该签名的系统就是安全的,这就可以有效避免现有加密货币或基于区块链的应用系统由单一曲线secp256k1引起的后门安全问题,提高系统安全性。此外,利用本发明可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线,从而实现不同安全需求的动态签名。
技术领域
本发明涉及信息安全技术领域,更具体地说,涉及一种签名生成方法、生成装置、签名验证方法和验证装置。
背景技术
数字签名,又称数字签字、公钥数字签名等,提出的初衷就是在网络环境中模拟日常生活中的手工签名或印章。数字签名的基础是公钥密码学,通过数学手段达到传统签名的功能。
现有的加密货币系统或基于区块链的应用系统大部分采用基于secp256k1的椭圆曲线数字签名算法。但由于采用的是单一椭圆曲线secp256k1,这就很难避免曲线创造者植入的后门,从而形成安全漏洞。
发明内容
有鉴于此,为解决上述问题,本发明提供一种签名生成方法、生成装置、签名验证方法和验证装置,技术方案如下:
一种签名生成方法,包括:
根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
基于所述阶次对所述第一基点坐标的横坐标做取余处理得到第一取余结果,并在所述第一取余结果不为0的情况下,基于预设签名规则处理所述第一取余结果得到第一签名值;
对所述消息做哈希运算得到第一哈希值,并按照预设运算规则对所述第一哈希值、所述随机数、所述签名私钥和所述第一签名值进行运算得到第二签名值;
在所述第二签名值不为0的情况下,生成由所述第一签名值和所述第二签名值构成的数字签名。
优选的,所述预设椭圆曲线,包括:
P-256曲线、SM2、secp256r1和secp256k1中的任意多种。
优选的,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
将所述第一取余结果作为第一签名值。
优选的,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
对所述第一取余结果进行求和/异或处理;
基于所述阶次对求和/异或处理结果做取余处理得到第二取余结果,并在所述第二取余结果不等于0的情况下,将所述求和/异或处理结果作为第一签名值。
优选的,所述方法还包括:
在所述第一取余结果为0或者所述第二签名值为0或者所述第二取余结果等于0的情况下,返回执行所述选取所述预设椭圆曲线的随机数,这一步骤。
一种签名生成装置,包括:
第一确定模块,用于根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
第一计算模块,用于在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中思博安科技(北京)有限公司,未经中思博安科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810878819.6/2.html,转载请声明来源钻瓜专利网。