首页> 中国专利> 一种基于SM2签名算法的复核签名方法和数字签名设备

一种基于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。本发明能够解决现有方法中存在的容易发生网上银行交易劫持、交易篡改、远程控制,从而引发用户资金被盗用的技术问题。

著录项

  • 公开/公告号CN103701598A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 武汉信安珞珈科技有限公司;

    申请/专利号CN201310651863.0

  • 发明设计人 王翊心;胡进;阳凌怡;

    申请日2013-12-05

  • 分类号H04L9/32(20060101);G06Q20/40(20120101);

  • 代理机构42224 武汉东喻专利代理事务所(普通合伙);

  • 代理人方可

  • 地址 430071 湖北省武汉市武昌区洪山路78号

  • 入库时间 2024-02-19 23:10:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-11

    授权

    授权

  • 2014-04-30

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20131205

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

本发明属于信息安全领域,更具体地,涉及一种基于SM2签名算法的 复核签名方法和数字签名设备。

背景技术

目前,网上银行多采用基于数字证书的公共密钥架构(Public Key  Infrastructure,简称PKI)系统来保障网上银行数据安全,数字证书是由 银行自建或第三方CA(Certificate Authority)签发的,以数字证书为核心 的公钥密码机制可以对网络上传输的信息进行加密和解密、数字签名和验 证,确保网络上传递消息的机密性、完整性以及交易实体的真实性,签名 的不可否认性,从而保障网络应用的安全性。

椭圆曲线密码(Elliptic Curve Cryptography,ECC)是一种高安全性、 高效率的公钥密码,具有加/解密、数字签名和密钥协商等重要的密码功能, 可以安全且方便地满足各种信息网络中的用户身份识别、电子信息的真伪 鉴别和保密传输等重要的信息安全需求,是信息安全领域的核心技术。自 1985年由Neal Koblitz和Victor Miller提出ECC以来,由于其相对于 当前主流应用的公钥密码-RSA全方面的技术优势(更强的安全性、更高的 实现效率、更省的实现代价),吸引了大批密码学工作者就其安全性和实现 方法作了大量的研究,并已逐渐被诸多国际和国家标准组织采纳为公钥密 码标准(IEEE P1363、ANSI X9、ISO/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站点),而不需要显示关键信息。

然而,现有的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返回给用户。

优选地,步骤(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)mod n,其中e为hash1、hash2和y1的线性组合;

第九模块,用于根据第八模块的计算结果获得第二签名值 s=((1+dA)-1·(k-r·dA))mod n;,其中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签名算法的复核签名装置生成的第一 签名值r和第二签名值s转发给用户。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够 取得下列有益效果:

1、本发明的方法由于采用了更高级别的椭圆曲线算法和所见即所签的 技术,从而具备更高的安全级别。

2、本发明的方法由于采用了实现效率更高的椭圆曲线算法,从而具备 更高的实现效率。

3、本发明数字签名设备的使用者无需安装驱动程序,在计算机上利用 USB接口即可实现即插即用。

4、本发明数字签名设备增加了可视屏幕,可以显示签名数据,同时在 对交易信息签名时,需要用户按数字签名设备上的确认键,因此用户通过 本发明的数字签名设备确认交易信息,就可以有效的解决网上银行交易劫 持,交易篡改,远程控制以盗用用户资金的问题。

附图说明

图1是本发明数字签名设备的示意框图。

图2是本发明基于SM2签名算法的复核签名方法的基本流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体 实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的 本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可 以相互组合。

如图2所示,本发明基于SM2签名算法的复核签名方法包括以下步骤:

(1)接收来自用户的SM2复核签名请求,该SM2复核签名请求中包含 有该用户银行交易信息的报文p1;

(2)根据该SM2复核签名请求验证该用户是否是合法用户,如果是则 转入步骤(3),否则过程结束;具体而言,首先根据SM2复核签名请求要 求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设置的PIN 码做比较,若相同则表示用户为合法用户,否则表示该用户是非法用户;

(3)对该用户银行交易信息的报文p1进行解析,以生成交易信息p2, 并将解析后的交易信息p2显示给用户查看确认;具体而言,交易信息p2 包括但不局限于账户名、账号和交易金额;

(4)检测是否接收到来自于用户的确认信号,如果接收到则表示用户 需要进行SM2复核签名,然后转入步骤(5),如果未接收到确认信号,则 表示用户可能取消SM2复核签名操作,或者可能在一定时间内(在本实施 方式中是30秒至3分钟)未进行任何操作,然后过程结束;

(5)利用哈希算法分别计算该用户银行交易信息的报文p1的哈希值 hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中Z表示用 户个人信息的摘要值,H表示哈希算法;在本实施方式中,哈希算法可以是 SM3算法、SHA-256算法、SHA-384算法等;

(6)生成随机数k∈[1,n-1],其中n为椭圆曲线E的阶,椭圆曲线E 满足Weierstrass方程;具体过程已经在中国专利号ZL02154716.5的专 利中予以披露;

(7)将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘运算,以得 到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其中基点G是 椭圆曲线E上的任意点;

(8)根据步骤(5)计算得到的哈希值hash1、hash2和点kG获取第 一签名值r=(e+x1)mod n,其中e为hash1、hash2和y1的线性组合;优选 的,e的取值为:e=hash1+hash2+y1

(9)根据步骤(8)的计算结果获得第二签名值s=((1+dA)-1·(k-r·dA)) mod n;,其中dA是用户的私钥;

以上的步骤(8)和(9)实现了SM2算法的所见即所签。

(10)将第一签名值r和第二签名值s返回给用户。

本发明基于SM2签名算法的复核签名装置包括:

第一模块,用于接收来自用户的SM2复核签名请求,该SM2复核签名 请求中包含有该用户银行交易信息的报文p1;

第二模块,用于根据该SM2复核签名请求验证该用户是否是合法用户, 如果是则转入第三模块,否则过程结束;具体而言,首先根据SM2复核签 名请求要求用户输入PIN码,并在用户输入PIN码后将该PIN码和预先设 置的PIN码做比较,若相同则表示用户为合法用户,否则表示该用户是非 法用户;

第三模块,用于对该用户银行交易信息的报文p1进行解析,以生成交 易信息p2,并将解析后的交易信息p2显示给用户查看确认;具体而言,交 易信息p2包括但不局限于账户名、账号和交易金额;

第四模块,用于检测是否接收到来自于用户的确认信号,如果接收到 则表示用户需要进行SM2复核签名,然后转入第五模块,如果未接收到确 认信号,则表示用户可能取消SM2复核签名操作,或者可能在一定时间内 (在本实施方式中是30秒至3分钟)未进行任何操作,然后过程结束;

第五模块,用于利用哈希算法分别计算该用户银行交易信息的报文p1 的哈希值hash1=H(Z||p1)以及交易信息p2的哈希值hash2=H(p2),其中 Z表示用户个人信息的摘要值,H表示哈希算法;在本实施方式中,哈希算 法可以是SM3算法、SHA-256算法、SHA-384算法等;

第六模块,用于生成随机数k∈[1,n-1],其中n为椭圆曲线E的阶, 椭圆曲线E满足Weierstrass方程;具体过程已经在中国专利号ZL 02154716.5的专利中予以披露;

第七模块,用于将随机数k与椭圆曲线E的基点G做椭圆曲线的点乘 运算,以得到椭圆曲线E上的点kG,该点的横坐标为x1,纵坐标为y1,其 中基点G是椭圆曲线E上的任意点;

第八模块,用于根据第五模块计算得到的哈希值hash1、hash2和点kG 获取第一签名值r=(e+x1)mod n,其中e为hash1、hash2和y1的线性组合; 优选的,e的取值为:e=hash1+hash2+y1

第九模块,用于根据第八模块的计算结果获得第二签名值 s=((1+dA)-1·(k-r·dA))mod n;,其中dA是用户的私钥;

第十模块,用于将第一签名值r和第二签名值s返回给用户。

如图1所示,本发明的数字签名设备包括接口电路101、可视屏幕102、 基于SM2签名算法的复核签名装置103、确认按键104和取消按键105,接 口电路101、可视屏幕102、确认按键104和取消按键105均与基于SM2签 名算法的复核签名装置103电连接。

接口电路101与外部的联网计算设备连接,用于接收来自用户的SM2 复核签名请求,并将该SM2复核签名转发到基于SM2签名算法的复核签名 装置103。

基于SM2签名算法的复核签名装置103用于根据SM2复核签名请求生 成第一签名值r和第二签名值s,并将第一签名值r和第二签名值s转发给 接口电路101。复核签名装置103的结构已经在前文中描述,在此不再赘述。

可视屏幕102用于在基于SM2签名算法的复核签名装置103生成第一 签名值r和第二签名值s的过程中向用户显示交易信息。

确认按键104用于在基于SM2签名算法的复核签名装置103生成第一 签名值r和第二签名值s的过程中供用户确认SM2复核签名。

取消按键105用于在基于SM2签名算法的复核签名装置103生成第一 签名值r和第二签名值s的过程中供用户取消SM2复核签名。

接口电路101还用于将基于SM2签名算法的复核签名装置103生成的 第一签名值r和第二签名值s转发给用户。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等 同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号