一种基于SM2签名算法的复核签名方法和数字签名设备技术

技术编号:9855022 阅读:238 留言:0更新日期:2014-04-02 18:07
本发明专利技术公开了一种基于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签名算法的复核签名方法和数字签名设备
本专利技术属于信息安全领域,更具体地,涉及一种基于SM2签名算法的复核签名方法和数字签名设备。
技术介绍
目前,网上银行多采用基于数字证书的公共密钥架构(PublicKeyInfrastructure,简称PKI)系统来保障网上银行数据安全,数字证书是由银行自建或第三方CA(CertificateAuthority)签发的,以数字证书为核心的公钥密码机制可以对网络上传输的信息进行加密和解密、数字签名和验证,确保网络上传递消息的机密性、完整性以及交易实体的真实性,签名的不可否认性,从而保障网络应用的安全性。椭圆曲线密码(EllipticCurveCryptography,ECC)是一种高安全性、高效率的公钥密码,具有加/解密、数字签名和密钥协商等重要的密码功能,可以安全且方便地满足各种信息网络中的用户身份识别、电子信息的真伪鉴别和保密传输等重要的信息安全需求,是信息安全领域的核心技术。自1985年由NealKoblitz和VictorMiller提出ECC以来,由于其相对于当前主流应用的公钥密码-RSA全方面的技术优势(更强的安全性、更高的实现效率、更省的实现代价),吸引了大批密码学工作者就其安全性和实现方法作了大量的研究,并已逐渐被诸多国际和国家标准组织采纳为公钥密码标准(IEEEP1363、ANSIX9、ISO/IEC和IETF等),ECC已经被信息安全产业界视为下一代的公钥密码,其取代RSA的趋势不可避免。椭圆曲线集成加密方案(EllipticCurveIntegratedEncryptionScheme,简称ECIES)和椭圆曲线数字签名算法(EllipticCurveDigitalSignatureAlgorithm,简称ECDSA)分别是国际上使用最广泛的椭圆曲线加密算法和椭圆曲线签名算法。中国国家密码管理局于2010年12月17日发布了名为SM2椭圆曲线公钥密码算法,SM2椭圆曲线密码算法包括SM2加密算法、SM2签名算法和SM2密钥交换算法。其中,SM2签名算法目前主要用作普通签名,即不需要显示和按键复核的签名,常用于下载和更新数字证书,登录需要客户端证书认证的安全加密站点(SSL站点),而不需要显示关键信息。然而,现有的SM2普通签名缺点是容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的问题。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于SM2签名算法的复核签名方法和数字签名设备,其目的在于,解决现有方法中存在的容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于SM2签名算法的复核签名方法,包括以下步骤:(1)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文p1;(2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤(3),否则过程结束;(3)对该用户银行交易信息的报文p1进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认;(4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则过程结束;(5)利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;(6)生成随机数k∈[1,n-1],其中n为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;(7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其中基点G是椭圆曲线E上的任意点;(8)根据步骤(5)计算得到的哈希值hash1、hash2和点kG获取第一签名值r=(e+x1)modn,其中e为hash1、hash2和y1的线性组合;(9)根据步骤(8)的计算结果获得第二签名值s=((1+dA)-1·(k-r·dA))modn;,其中dA是用户的私钥;(10)将第一签名值r和第二签名值s返回给用户。优选地,步骤(2)具体为,首先根据SM2复核签名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户。优选地,交易信息p2包括用户的账户名、账号和交易金额。优选地,步骤(5)的哈希算法是SM3算法、SHA-256算法或SHA-384算法。按照本专利技术的另一方面,提供了一种基于SM2签名算法的复核签名装置,包括:第一模块,用于接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文p1;第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入第三模块,否则过程结束;第三模块,用于对该用户银行交易信息的报文p1进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认;第四模块,用于检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入第五模块,如果未接收到确认信号,则过程结束;第五模块,用于利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;第六模块,用于生成随机数k∈[1,n-1],其中n为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;第七模块,用于将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其中基点G是椭圆曲线E上的任意点;第八模块,用于根据第五模块计算得到的哈希值hash1、hash2和点kG获取第一签名值r=(e+x1)modn,其中e为hash1、hash2和y1的线性组合;第九模块,用于根据第八模块的计算结果获得第二签名值s=((1+dA)-1·(k-r·dA))modn;,其中dA是用户的私钥;第十模块,用于将第一签名值r和第二签名值s返回给用户。按照本专利技术的另一方面,提供了一种数字签名设备,包括接口电路、可视屏幕、基于SM2签名算法的复核签名装置、确认按键和取消按键,接口电路、可视屏幕、确认按键和取消按键均与基于SM2签名算法的复核签名装置电连接,接口电路与外部的联网计算设备连接,用于接收来自用户的SM2复核签名请求,并将该SM2复核签名转发到基于SM2签名算法的复核签名装置,基于SM2签名算法的复核签名装置用于根据SM2复核签名请求生成第一签名值r和第二签名值s,并将第一签名值r和第二签名值s转发给接口电路,可视屏幕用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中向用户显示交易信息,确认按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户确认SM2复核签名,取消按键用于在基于SM2签名算法的复核签名装置生成第一签名值r和第二签名值s的过程中供用户取消SM2复本文档来自技高网
...
一种基于SM2签名算法的复核签名方法和数字签名设备

【技术保护点】
一种基于SM2签名算法的复核签名方法,其特征在于,包括以下步骤:(1)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文p1;(2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤(3),否则过程结束;(3)对该用户银行交易信息的报文p1进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认;(4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则过程结束;(5)利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;(6)生成随机数k∈[1,n‑1],其中n为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;(7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其中基点G是椭圆曲线E上的任意点;(8)根据步骤(5)计算得到的哈希值hash1、hash2和点kG获取第一签名值r=(e+x1)mod n,其中e为hash1、hash2和y1的线性组合;(9)根据步骤(8)的计算结果获得第二签名值s=((1+dA)‑1·(k‑r·dA))mod n;,其中dA是用户的私钥;(10)将第一签名值r和第二签名值s返回给用户。...

【技术特征摘要】
1.一种基于SM2签名算法的复核签名方法,其特征在于,包括以下步骤:(1)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含有该用户银行交易信息的报文p1;(2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入步骤(3),否则过程结束;(3)对该用户银行交易信息的报文p1进行解析,以生成交易信息p2,并将解析后的交易信息p2显示给用户查看确认;(4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则过程结束;(5)利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用户个人信息的摘要值,H表示哈希算法;(6)生成随机数k∈[1,n-1],其中n为椭圆曲线E的阶,椭圆曲线E满足Weierstrass方程;(7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其中基点G是椭圆曲线E上的任意点;(8)根据步骤(5)计算得到的哈希值hash1、hash2和点kG获取第一签名值r=(e+x1)modn,其中e为hash1、hash2和y1的线性组合;(9)根据步骤(8)的计算结果获得第二签名值s=((1+dA)-1·(k-r·dA))modn,其中dA是用户的私钥;(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复核签名请求中包含有该用户银行交易信息的报文p1;第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户,如果是则转入第三模块,...

【专利技术属性】
技术研发人员:王翊心胡进阳凌怡
申请(专利权)人:武汉信安珞珈科技有限公司
类型:发明
国别省市:湖北;42

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

1