一种基于sm2签名算法的复核签名方法和数字签名设备的制作方法

文档序号:6522414阅读:180来源:国知局
一种基于sm2签名算法的复核签名方法和数字签名设备的制作方法
【专利摘要】本发明公开了一种基于SM2签名算法的复核签名方法,包括:接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文p1,对合法用户银行交易信息的报文p1进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认,检测是否接收到来自于用户的确认信号,如果接收到则利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),生成随机数k∈[1,n-1],将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG。本发明能够解决现有方法中存在的容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的技术问题。
【专利说明】—种基于SM2签名算法的复核签名方法和数字签名设备
【技术领域】
[0001]本发明属于信息安全领域,更具体地,涉及一种基于SM2签名算法的复核签名方法和数字签名设备。
【背景技术】
[0002]目前,网上银行多采用基于数字证书的公共密钥架构(Public KeyInfrastructure,简称PKI)系统来保障网上银行数据安全,数字证书是由银行自建或第三方CA (Certificate Authority)签发的,以数字证书为核心的公钥密码机制可以对网络上传输的信息进行加密和解密、数字签名和验证,确保网络上传递消息的机密性、完整性以及交易实体的真实性,签名的不可否认性,从而保障网络应用的安全性。
[0003]椭圆曲线密码(Elliptic Curve Cryptography, ECC)是一种高安全性、高效率的公钥密码,具有加/解密、数字签名和密钥协商等重要的密码功能,可以安全且方便地满足各种信息网络中的用户身份识别、电子信息的真伪鉴别和保密传输等重要的信息安全需求,是信息安全领域的核心技术。自1985年由Neal Koblitz和Victor Miller提出ECC以来,由于其相对于当前主流应用的公钥密码一 RSA全方面的技术优势(更强的安全性、更高的实现效率、更省的实现代价),吸引了大批密码学工作者就其安全性和实现方法作了大量的研究,并已逐渐被诸多国际和国家标准组织采纳为公钥密码标准(IEEE P1363、ANSI X9、IS0/IEC和IETF等),ECC已经被信息安全产业界视为下一代的公钥密码,其取代RSA的趋势不可避免。捕圆曲线集成加密方案(Elliptic Curve Integrated Encryption Scheme,简称 ECIES)和捕圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,简称ECDSA)分别是国际上使用最广泛的椭圆曲线加密算法和椭圆曲线签名算法。中国国家密码管理局于2010年12月17日发布了名为SM2椭圆曲线公钥密码算法,SM2椭圆曲线密码算法包括SM2加密算法、SM2签名算法和SM2密钥交换算法。其中,SM2签名算法目前主要用作普通签名,即不需要显示和按键复核的签名,常用于下载和更新数字证书,登录需要客户端证书认证的安全加密站点(SSL站点),而不需要显示关键信息。
[0004]然而,现有的SM2普通签名缺点是容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的问题。

【发明内容】

[0005]针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SM2签名算法的复核签名方法和数字签名设备,其目的在于,解决现有方法中存在的容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的技术问题。
[0006]为实现上述目的,按照本发明的一个方面,提供了一种基于SM2签名算法的复核签名方法,包括以下步骤:
[0007](I)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文Pi ;[0008](2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤
(3),否则过程结束;
[0009](3)对该用户银行交易信息的报文Pl进行解析,以生成交易信息P2,并将解析后的交易信息p2显示给用户查看确认;
[0010](4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则过程结束; [0011](5)利用哈希算法分别计算该用户银行交易信息的报文Pl的哈希值hashl=H(Z pi)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;
[0012](6)生成随机数k e [l,n-l],其中η为椭圆曲线E的阶,椭圆曲线E满足Weierstrass 方程;
[0013](7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为X1,纵坐标为Y1,其中基点G是椭圆曲线E上的任意点;
[0014](8)根据步骤(5)计算得到的哈希值hashl、hash2和点kG获取第一签名值r=(e+x1)mod η,其中 e 为 hashl、hash2 和 Y1 的线性组合;
[0015](9)根据步骤(8)的计算结果获得第二签名值sKQ+c^r1.(k-r.dA))mod η ;,其中4是用户的私钥;
[0016](10)将第一签名值r和第二签名值s返回给用户。
[0017]优选地,步骤(2)具体为,首先根据SM2复核签名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户。
[0018]优选地,交易信息p2包括用户的账户名、账号和交易金额。
[0019]优选地,步骤(5)的哈希算法是SM3算法、SHA-256算法或SHA-384算法。
[0020]按照本发明的另一方面,提供了一种基于SM2签名算法的复核签名装置,包括:
[0021]第一模块,用于接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文Pi ;
[0022]第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入第三模块,否则过程结束;
[0023]第三模块,用于对该用户银行交易信息的报文pi进行解析,以生成交易信息P2,并将解析后的交易信息P2显示给用户查看确认;
[0024]第四模块,用于检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入第五模块,如果未接收到确认信号,则过程结束;
[0025]第五模块,用于利用哈希算法分别计算该用户银行交易信息的报文Pl的哈希值hashl=H(Z pi)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;
[0026]第六模块,用于生成随机数k e [l,n-l],其中η为椭圆曲线E的阶,椭圆曲线E满足 Weierstrass 方程;
[0027]第七模块,用于将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为X1,纵坐标为yi,其中基点G是椭圆曲线E上的任意占.^ \\\ ?
[0028]第八模块,用于根据第五模块计算得到的哈希值hashl、hash2和点kG获取第一签名值rKe+xJmod η,其中e为hashl、hash2和y:的线性组合;
[0029]第九模块,用于根据第八模块的计算结果获得第二签名值8=((1+4)-1.(k-r.dA))mod η ;,其中dA是用户的私钥;
[0030]第十模块,用于将第一签名值r和第二签名值s返回给用户。
[0031]按照本发明的另一方面,提供了一种数字签名设备,包括接口电路、可视屏幕、基于SM2签名算法的复核签名装置、确认按键和取消按键,接口电路、可视屏幕、确认按键和取消按键均与基于SM2签名算法的复核签名装置电连接,接口电路与外部的联网计算设备连接,用于接收来自用户的SM2复核签名请求,并将该SM2复核签名转发到基于SM2签名算法的复核签名装置,基于SM2签名算法的复核签名装置用于根据SM2复核签名请求生成第一签名值r和第二签名值S,并将第一签名值r和第二签名值s转发给接口电路,可视屏幕用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中向用户显示交易信息,确认按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户确认SM2复核签名,取消按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户取消SM2复核签名,接口电路还用于将基于SM2签名算法的复核签名装置生成的第一签名值r和第二签名值s转发给用户。[0032]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0033]1、本发明的方法由于采用了更高级别的椭圆曲线算法和所见即所签的技术,从而具备更高的安全级别。
[0034]2、本发明的方法由于采用了实现效率更高的椭圆曲线算法,从而具备更高的实现效率。
[0035]3、本发明数字签名设备的使用者无需安装驱动程序,在计算机上利用USB接口即可实现即插即用。
[0036]4、本发明数字签名设备增加了可视屏幕,可以显示签名数据,同时在对交易信息签名时,需要用户按数字签名设备上的确认键,因此用户通过本发明的数字签名设备确认交易信息,就可以有效的解决网上银行交易劫持,交易篡改,远程控制以盗用用户资金的问题。
【专利附图】

【附图说明】
[0037]图1是本发明数字签名设备的示意框图。
[0038]图2是本发明基于SM2签名算法的复核签名方法的基本流程图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0040]如图2所示,本发明基于SM2签名算法的复核签名方法包括以下步骤:
[0041](I)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文Pi ;
[0042](2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤
(3),否则过程结束;具体而言,首先根据SM2复核签名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户;
[0043](3)对该用户银行交易信息的报文Pl进行解析,以生成交易信息P2,并将解析后的交易信息P2显示给用户查看确认;具体而言,交易信息P2包括但不局限于账户名、账号和交易金额;
[0044](4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则表示用户可能取消SM2复核签名操作,或者可能在一定时间内(在本实施方式中是30秒至3分钟)未进行任何操作,然后过程结束;
[0045](5)利用哈希算法分别计算该用户银行交易信息的报文Pl的哈希值hashl=H(Z pi)以及交 易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;在本实施方式中,哈希算法可以是SM3算法、SHA-256算法、SHA-384算法等;
[0046](6)生成随机数k e [l,n-l],其中η为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;具体过程已经在中国专利号ZL02154716.5的专利中予以披露;
[0047](7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为xl,纵坐标为yl,其中基点G是椭圆曲线E上的任意点;
[0048](8)根据步骤(5)计算得到的哈希值hashl、hash2和点kG获取第一签名值rKe+x^mod η,其中e为hashl、hash2和Y1的线性组合;优选的,e的取值为:e=hashl+hash2+y1 ;
[0049](9)根据步骤(8)的计算结果获得第二签名值sKQ+dA)—1.(k-r.dA))mod η ;,其中4是用户的私钥;
[0050]以上的步骤(8)和(9)实现了 SM2算法的所见即所签。
[0051](10)将第一签名值r和第二签名值s返回给用户。
[0052]本发明基于SM2签名算法的复核签名装置包括:
[0053]第一模块,用于接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文Pi ;
[0054]第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入第三模块,否则过程结束;具体而言,首先根据SM2复核签名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户;
[0055]第三模块,用于对该用户银行交易信息的报文Pl进行解析,以生成交易信息P2,并将解析后的交易信息P2显示给用户查看确认;具体而言,交易信息P2包括但不局限于账户名、账号和交易金额;
[0056]第四模块,用于检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入第五模块,如果未接收到确认信号,则表示用户可能取消SM2复核签名操作,或者可能在一定时间内(在本实施方式中是30秒至3分钟)未进行任何操作,然后过程结束;
[0057]第五模块,用于利用哈希算法分别计算该用户银行交易信息的报文pi的哈希值hashl=H(Z pi)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;在本实施方式中,哈希算法可以是SM3算法、SHA-256算法、SHA-384算法等;
[0058]第六模块,用于生成随机数k e [l,n-l],其中η为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;具体过程已经在中国专利号ZL02154716.5的专利中予以披露;
[0059]第七模块,用于将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为X1,纵坐标为yi,其中基点G是椭圆曲线E上的任意
占.[0060]第八模块,用于根据第五模块计算得到的哈希值hashl、hash2和点kG获取第一签名值!^(e+xjmod η,其中e为hashl、hash2和Y1的线性组合;优选的,e的取值为:e=hashl+hash2+y1 ;
[0061]第九模块,用于根据第八模块的计算结果获得第二签名值8=((1+4)-1.(k-r.dA))mod η ;,其中dA是用户的私钥;
[0062]第十模块,用于将第一签名值r和第二签名值s返回给用户。
[0063]如图1所示,本发明的数字签名设备包括接口电路101、可视屏幕102、基于SM2签名算法的复核签名装置103、确认按键104和取消按键105,接口电路101、可视屏幕102、确认按键104和取消按键105均与基于SM2签名算法的复核签名装置103电连接。
[0064]接口电路101与外部的联网计算设备连接,用于接收来自用户的SM2复核签名请求,并将该SM2复核签名转发到基于SM2签名算法的复核签名装置103。
[0065]基于SM2签名算法的复核签名装置103用于根据SM2复核签名请求生成第一签名值r和第二签名值S,并将第一签名值r和第二签名值s转发给接口电路101。复核签名装置103的结构已经在前文中描述,在此不再赘述。
[0066]可视屏幕102用于在基于SM2签名算法的复核签名装置103生成第一签名值r和第二签名值s的过程中向用户显示交易信息。
[0067]确认按键104用于在基于SM2签名算法的复核签名装置103生成第一签名值r和第二签名值s的过程中供用户确认SM2复核签名。
[0068]取消按键105用于在基于SM2签名算法的复核签名装置103生成第一签名值r和第二签名值s的过程中供用户取消SM2复核签名。
[0069]接口电路101还用于将基于SM2签名算法的复核签名装置103生成的第一签名值r和第二签名值s转发给用户。
[0070]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于SM2签名算法的复核签名方法,其特征在于,包括以下步骤: (1)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文pi ; (2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤(3),否则过程结束; (3)对该用户银行交易信息的报文pi进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认; (4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则过程结束; (5)利用哈希算法分别计算该用户银行交易信息的报文pi的哈希值hashl=H(Z||pl)以及交易信息p2的哈希值hash2=H (p2),其中Z表示用户个人信息的摘要值,H表示哈希算法; (6)生成随机数ke [I, n-Ι],其中η为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程; (7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为X1,纵坐标为Y1,其中基点G是椭圆曲线E上的任意点; (8)根据步骤(5)计算得到的哈希值hash1、hash2和点kG获取第一签名值r= (e+xjmod η,其中e为hashl、hash2和Y1的线性组合;` (9)根据步骤(8)的计算结果获得第二签名值8=((1+4)4.(k-r.dA))mod η ;,其中4是用户的私钥; (10)将第一签名值r和第二签名值s返回给用户。
2.根据权利要求1所述的复核签名方法,其特征在于,步骤(2)具体为,首先根据SM2复核签名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户。
3.根据权利要求1所述的复核签名方法,其特征在于,交易信息p2包括用户的账户名、账号和交易金额。
4.根据权利要求1所述的复核签名方法,其特征在于,步骤(5)的哈希算法是SM3算法、SHA-256算法或SHA-384算法。
5.一种基于SM2签名算法的复核签名装置,其特征在于,包括: 第一模块,用于接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文Pl ; 第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入第三模块,否则过程结束; 第三模块,用于对该用户银行交易信息的报文Pl进行解析,以生成交易信息P2,并将解析后的交易信息P2显示给用户查看确认; 第四模块,用于检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入第五模块,如果未接收到确认信号,则过程结束; 第五模块,用于利用哈希算法分别计算该用户银行交易信息的报文Pl的哈希值hashl=H(Z pi)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法; 第六模块,用于生成随机数k e [1,n-Ι],其中η为椭圆曲线E的阶,椭圆曲线E满足Weierstrass 方程; 第七模块,用于将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为X1,纵坐标为Y1,其中基点G是椭圆曲线E上的任意点;第八模块,用于根据第五模块计算得到的哈希值hashl、hash2和点kG获取第一签名值r=(e+x1)mod η,其中 e 为 hashl、hash2 和 Y1 的线性组合; 第九模块,用于根据第八模块的计算结果获得第二签名值s=((l+dAr.(k-r.dA))modη;,其中七是用户的私钥; 第十模块,用于将第一签名值r和第二签名值s返回给用户。
6.一种数字签名设备,包括接口电路、可视屏幕、基于SM2签名算法的复核签名装置、确认按键和取消按键,其特征在于, 接口电路、可视屏幕、确认按键和取消按键均与基于SM2签名算法的复核签名装置电连接; 接口电路与外部的联网计算设备连接,用于接收来自用户的SM2复核签名请求,并将该SM2复核签名转发到基于SM2签名算法的复核签名装置; 基于SM2签名算法的复 核签名装置用于根据SM2复核签名请求生成第一签名值r和第二签名值s,并将第一签名值r和第二签名值s转发给接口电路; 可视屏幕用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中向用户显示交易信息; 确认按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户确认SM2复核签名; 取消按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户取消SM2复核签名; 接口电路还用于将基于SM2签名算法的复核签名装置生成的第一签名值r和第二签名值S转发给用户。
【文档编号】G06Q20/40GK103701598SQ201310651863
【公开日】2014年4月2日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】王翊心, 胡进, 阳凌怡 申请人:武汉信安珞珈科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1