公开/公告号CN105933116A
专利类型发明专利
公开/公告日2016-09-07
原文格式PDF
申请/专利权人 收付宝科技有限公司;
申请/专利号CN201610480445.3
申请日2016-06-27
分类号H04L9/08(20060101);H04L9/32(20060101);
代理机构北京汉昊知识产权代理事务所(普通合伙);
代理人罗朋
地址 100091 北京市海淀区颐和园路66号平房家乐祥商务宾馆8110客房
入库时间 2023-06-19 00:26:11
法律状态公告日
法律状态信息
法律状态
2018-07-17
专利权的转移 IPC(主分类):H04L9/08 登记生效日:20180627 变更前: 变更后: 申请日:20160627
专利申请权、专利权的转移
2018-01-09
授权
授权
2017-01-04
实质审查的生效 IPC(主分类):H04L9/08 申请日:20160627
实质审查的生效
2016-09-07
公开
公开
技术领域
本发明涉及移动设备安全技术领域,尤其涉及一种基于SM2的电子签名生成及验证方法和装置。
背景技术
随着移动互联网技术的飞速发展和广泛应用,智能移动终端逐步取代传统PC,加速渗透到传统应用中,成为各类应用的主要入口。越来越多的用户使用移动终端进行购物、转账等,用户在享受着更加便捷服务的同时,与之伴随而来的安全性问题也愈加凸显。
传统的电子签名产品,大多基于U盾等。现有的电子签名方案,电子签名基于用户口令及一些随机数等生成,安全性不高。
发明内容
本发明的目的是提高电子签名的安全性。
根据本发明的一个方面,提供了一种基于SM2的电子签名生成方法,所述方法包括:
获取基于用户为生成电子签名输入的口令的、特定于用户的用户因子;
获取随机因子;
获取用户输入口令的移动设备上的、特定于移动设备的设备因子;
基于所述用户因子、随机因子、设备因子,经基于分段模计算特性的基于分段模特性的SM2算法,生成电子签名,其中基于分段模特性的SM2算法是保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同的算法。
根据本发明的一个方面,提供了一种基于SM2的电子签名处理方 法,所述方法包括:
从移动设备盾插件接收移动设备盾插件生成的电子签名,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰;
对所述电子签名进行解扰;
将解扰后的电子签名发送给认证平台。
根据本发明的一个方面,提供了一种基于SM2的待验证电子签名验证方法,所述方法包括:
获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子;
获取在本地存储的、在生成电子签名时本地产生的随机因子;
获取用户输入口令的移动设备上的、特定于移动设备的设备因子;
基于所述用户因子、随机因子、设备因子,经基于分段模计算特性的基于分段模特性的SM2算法,生成待验证电子签名,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
向分布式密钥机发送待验证电子签名,以便转发到认证平台与电子签名对应的公钥验证结果进行比对验证。
根据本发明的一个方面,提供了一种基于SM2的待验证电子签名验证方法,所述方法包括:
从移动设备盾插件接收待验证电子签名,所述待验证电子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模计算特性的基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
对所述待验证电子签名进行解扰;
将解扰后的待验证电子签名发送给认证平台,以便与公钥验证结果进行比对验证。
根据本发明的一个方面,提供了一种基于SM2的电子签名生成设备,所述设备包括:
用于获取基于用户为生成电子签名输入的口令的、特定于用户的用户因子的装置;
用于获取随机因子的装置;
用于获取用户输入口令的移动设备上的、特定于移动设备的设备因子的装置;
用于基于所述用户因子、随机因子、设备因子,经基于分段模计算特性的基于分段模特性的SM2算法,生成电子签名的装置,其中基于分段模特性的SM2算法是保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同的算法。
根据本发明的一个方面,提供了一种电子签名处理设备,所述设备包括:
用于从移动设备盾插件接收移动设备盾插件生成的电子签名的装置,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模计算特性的基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰;
用于对所述电子签名进行解扰的装置;
用于将解扰后的电子签名发送给认证平台的装置。
根据本发明的一个方面,提供了一种基于SM2的待验证电子签名验证设备,所述设备包括:
用于获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子的装置;
用于获取在本地存储的、在生成电子签名时本地产生的随机因子的装置;
用于获取用户输入口令的移动设备上的、特定于移动设备的设备因子的装置;
用于基于所述用户因子、随机因子、设备因子,经基于分段模计算特性的基于分段模特性的SM2算法,生成待验证电子签名的装置,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
用于向分布式密钥机发送待验证电子签名,以便与电子签名对应的公钥验证结果进行比对验证的装置。
根据本发明的一个方面,提供了一种基于SM2的待验证电子签名验证设备,所述设备包括:
用于从移动设备盾插件接收待验证电子签名的装置,所述待验证电子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模计算特性的基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
用于对所述待验证电子签名进行解扰的装置;
用于将解扰后的待验证电子签名发送给认证平台,以便与电子签名对应的公钥验证结果进行比对验证的装置。
与现有技术相比,本发明具有以下优点:由于基于用户因子、设备因子、随机因子三个互不相关因子生成电子签名,这三个因子缺一不可,用户因子不作存储而由用户掌握,设备因子是移动设备特有的,只能在用户生成电子签名时绑定的移动设备上设置,这三个方面互相牵制,在验证电子签名时这三个因子必须完全与生成电子签名时的三个因子一致,才能验证通过,极大提高了电子签名安全性。优选的,基于用户因子、随机因子、设备因子、干扰因子,生成电子签名,其中保证用户因子、随机因子、设备因子、干扰因子中任何一项不同,电子签名都不同。本发明符合SM2国产密码标准,通过分段模计算,以及 移动设备与密码设备的分布式运算,提高电子签名的安全性。
另外,由于本发明实施例中,电子签名采用干扰保护机制,即通过移动设备盾插件对电子签名进行加扰,后台的分布式密钥机进行解扰才能恢复电子签名。只有分布式密钥机才能解扰。如果加扰的电子签名被任何第三方拦截,第三方都无法解扰恢复电子签名。即,采用干扰机制,每一个数字签名,都需要移动端、后台密钥机共同作用完成,私钥彼此屏蔽,过程彼此牵制,缺一不可,大大提高了电子签名的安全性。而分布式密钥机只能消除签名干扰成分,即解扰,不能生成用户签名,也不能代替用户签名,确保用户签名生成的私密性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出了根据本发明的一个实施例的基于SM2的电子签名生成方法在移动设备盾插件及分布式密钥机之间的双端交互流程图。
图2示出了根据本发明的一个实施例的基于SM2的待验证电子签名验证方法在移动设备盾插件及分布式密钥机之间的双端交互流程图。
图3示出了根据本发明的一个实施例的移动设备盾插件侧的基于SM2的电子签名生成设备的框图。
图4示出了根据本发明的一个实施例的分布式密钥机侧的基于SM2的电子签名处理设备的框图。
图5示出了根据本发明的一个实施例的移动设备盾插件侧的基于SM2的待验证电子签名验证设备的框图。
图6示出了根据本发明的一个实施例的分布式密钥机侧的基于SM2的待验证电子签名验证设备的框图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出了根据本发明的一个实施例的基于SM2的电子签名生成方法在移动设备盾插件及分布式密钥机之间的双端交互流程图。SM2是本领域技术人员都了解的国密的一种算法。本申请的一个实施例的电子签名生成验证系统包括移动设备盾插件、分布式密钥机、以及认证平台。移动设备盾插件位于用户的移动设备上,例如绑定移动设备的应用中。而分布式密钥机位于后台服务器,例如机房中。二者分布式协同运算,为用户提供电子签名功能。
以用户移动设备(如手机)上的电子银行应用为例。用户在开通移动设备上的电子银行应用(例如通过下载电子银行应用安装到移动设备上)时,电子银行应用绑定有一个移动设备盾插件,该插件与U盾不同,它不是单独存在,而是绑定在安装的电子银行应用中的,用于在电子签名生成和验证中与分布式密钥机协同运算,完成电子签名的生成和验证。安装电子银行应用后,用户需要完成注册。在注册时输入用户口令。用户要记住该口令,并且在以后每次通过电子银行应用办理业务(例如转账)时要输入相同的口令。这时,移动设备盾插件根据基于该用户口令生成的用户因子、获取到的随机因子和特定于移动设备的设备因子,生成电子签名,并利用加扰因子加扰后发给后台的分布式密钥机。分布式密钥机对该电子签名解扰后发给认证平台登记。当用户以后需要通过该电子银行应用办理业务(如转账)时,需要完成电子签名的验证过程。验证用户才能办理该业务,否则交易不安全。这时,用户需要输入自己在注册时输入的用户口令。移动设备盾插件基于该用户口令通过与在注册时基于用户口令得到用户因子相同的算法得到与注册时相同的用户因子。用户在注册时生成电子签名的过程中获取的随机因子是固定保存在用户的移动设备中的,因此,移动设备盾插件也可以获取到存储的生产电子签名的过程中使用的随机因子。设备因子是特定于移动设备的,也可以由移动设备盾插件获取到。此时获取到的设备因子也是与生成电子签名时相同的。因此,此时移动设备盾插件基于此时的用户因子、随机因子、设备因子生成的待验证电子签名应该也是与生成电子签名时生成的电子签名 相同的。移动设备盾插件将该待验证电子签名加扰后发到分布式密钥机,由分布式密钥机解扰后发到认证平台,与用户注册时生成且登记在认证平台的电子签名进行比对验证。从理论上,该待验证电子签名与用户注册时生成且登记在认证平台的电子签名应该相同。如不相同,则说明用户输入了错误的用户口令、用户使用的不是一开始注册所用的移动设备、或者生成的电子签名或待认证电子签名在传输的过程中遭到了非法篡改。由于本发明实施例中,基于用户因子、设备因子、随机因子三个互不相关因子生成电子签名,这三个因子缺一不可,用户因子不作存储而由用户掌握,设备因子是移动设备特有的,这三个因子互相牵制,在验证电子签名时这三个因子必须完全与生成电子签名时的三个因子一致,才能验证通过,使得即使在用户口令泄露等情况下其他人也很难仅凭用户口令验证成功,极大提高了电子签名安全性。而且,电子签名采用干扰保护机制,即通过移动设备盾插件对电子签名进行加扰,后台的分布式密钥机进行解扰才能恢复电子签名。只有分布式密钥机才能解扰。如果加扰的电子签名被任何第三方拦截,第三方都无法解扰恢复电子签名而分布式密钥机只能消除签名干扰成分,即解扰,不能生成用户签名,因此分布式密钥机端的管理者也无法私自篡改用户签名,这种移动设备盾插件和分布式密钥机相互牵制的方式确保了用户签名生成的私密性。
分布式密钥机在后台用于与移动设备盾插件相配合完成电子签名生成和验证过程中的运算,如解扰等。例如,每个银行的支行的机房设置一台分布式密钥机,负责该支行所下发的所有电子银行应用相关的电子签名的生成和验证。
如图1所示,根据本发明一个实施例的移动设备盾插件侧的一种基于SM2的电子签名生成方法包括:
步骤S110、获取基于用户为生成电子签名输入的口令的、特定于用户的用户因子;
步骤S120、获取随机因子;
步骤S130、获取用户输入口令的移动设备上的、特定于移动设备的 设备因子;
步骤S140、基于所述用户因子、随机因子、设备因子,经基于分段模计算特性的基于分段模特性的SM2算法,生成电子签名,其中基于分段模特性的SM2算法是保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同的算法。
下面对这些步骤进行详细描述。
步骤S110、获取基于用户为生成电子签名输入的口令的、特定于用户的用户因子。
在一个实施例中,步骤S110包括:
获取用户输入的口令;
将获取的口令输入用户因子生成算法,得到特定于用户的用户因子,其中所述用户因子生成算法是保证输入的口令不同,产生的用户因子都不同的算法。
如前所述,用户输入的口令是用户在注册时输入用户口令。一般,在用户注册时,与移动设备盾插件所绑定的应用的界面会提示用户输入用户口令。当用户输入该口令后,移动设备盾插件就获取了该口令。用户要记住该口令,并且在以后每次通过电子银行应用办理业务(例如转账)时要输入相同的口令。
所述用户因子生成算法是保证输入的口令不同,产生的用户因子都不同的算法。而且,在验证待验证电子签名时,产生待验证电子签名也要采用同样的用户因子生成算法生成验证时的用户因子。
用户因子是已有概念,是特定于用户的一个因子,例如随用户不同而不同的一个数。用户因子生成算法的特点是输入的口令与输出的值(用户因子)都唯一对应性,即输入的口令不同,产生的用户因子都不同。目前已知许多算法可用于用户因子生成算法,故不赘述。
步骤S120、获取随机因子。
在一个实施例中,步骤S120包括:
接收分布式密钥机发送的硬件随机数;
在本地产生本地随机数;
将所述硬件随机数与所述本地随机数合成,得到随机因子。
随机因子一般是指随机产生的数。
该实施例中的随机因子分为两部分。一部分是硬件随机数,是从分布式密钥机接收来的。另一部分是本地随机数,是移动设备盾插件本地产生的。该随机因子由两部分合成的好处是,由于该随机因子一部分来自于分布式密钥机,即使移动设备盾插件受到攻击,攻击者也仅仅是能掌握本地产生的随机数;而该随机因子还有一部分来自本地,即使分布式密钥机受到攻击,也仅仅是其中来自分布式密钥机的部分遭到破译,仍然无法窃取整个随机因子,提高了电子签名生成的安全性。
步骤S130、获取用户输入口令的移动设备上的、特定于移动设备的设备因子。
该设备因子可以是用户输入口令的移动设备上的设备ID或设备出厂号等,也可以是基于设备ID或设备出厂号等进行某种特定的运算而得到的一个数。移动设备上的设备ID或设备出厂号等可以存储在移动设备的存储器中的某一特定位置。移动设备盾插件只要读取该位置处存储的内容,就可以得到移动设备上的设备ID或设备出厂号等。某种特定的运算是已知的,并且固定的,对于任何移动设备计算设备因子时就采用同样的运算。例如,该特定的运算是移动设备上的设备ID异或后与设备出厂号串联等。一般来说,该运算需要具有输入输出一对一性,即对于不同的输入,必然会产生不同的输出。
步骤S140、基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成电子签名,其中基于分段模特性的SM2算法是保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同的算法。
本发明实施例是基于SM2算法实现的。SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。本发明实施例中,基于分段模计算特性的SM2算法具有输入输出一对一性,即保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同。在算法中,由用户因子、硬件因子、随机因子三个互不相关的各段因子分别迭代运 算,不需要组装成完整数据。
优选地,该基于分段模特性的SM2算法包括迭代算法,用户因子、设备因子、随机因子经过迭代算法,不需要将三个因子组装成完整的用户签名,从完整的用户签名难以分析出迭代前的三个因子,极大提高了电子签名的安全性。
在步骤S140之前,在一个实施例中,该方法还包括:步骤S135、获取用于对电子签名进行加扰的干扰因子。
在将电子签名发送到分布式密钥机之前对电子签名进行加扰的作用在于,防止电子签名被第三方拦截而泄露。在加扰的情况下,技术电子签名被第三方拦截,由于第三方不知道加扰用的干扰因子,仍然无法恢复电子签名。即,采用干扰机制,每一个数字签名,都需要移动端、后台密钥机共同作用完成,私钥彼此屏蔽,过程彼此牵制,缺一不可,大大提高了电子签名的安全性。而分布式密钥机只能消除签名干扰成分,即解扰,不能生成用户签名,确保用户签名生成的私密性。
在一个实施例中,步骤S135包括:
接收分布式密钥机发送的干扰公钥;
根据所述干扰公钥确定干扰因子。
分布式密钥机中设置有干扰公钥、干扰私钥对。干扰公钥、干扰私钥对可以对每次电子签名的生成和验证都相同,但优选是对每次电子签名的生成和验证采用不同的干扰公钥、干扰私钥对。分布式密钥机将干扰公钥发送给移动设备盾插件,供移动设备盾插件据此确定干扰因子。分布式密钥机保留干扰私钥。在移动设备盾插件用干扰因子对生成的电子签名加扰后发回分布式密钥机后,分布式密钥机用干扰私钥解扰。由于干扰私钥与干扰公钥是对应的,分布式密钥机可以解扰开生成的电子签名,而其他设备即使拦截到该电子签名,也因为缺少干扰私钥,无法对其解扰。
干扰因子是用于对生成的电子签名进行加扰的数等。根据所述干扰公钥确定干扰因子往往是通过预定干扰因子产生算法。该干扰因子产生算法具有输入输出一对一性,即对于不同的输入产生不同的输出。已知 许多算法具有输入输出一对一性,可以作为干扰因子产生算法,故不赘述。
在步骤S140之后,所述方法还包括:步骤S145、利用获取的干扰因子对生成的电子签名进行加扰,生成加扰后的电子签名。
加扰属于已有技术。有许多加扰算法可被用来利用获取的干扰因子对生成的电子签名进行加扰,生成加扰后的电子签名,故不赘述。
如图1所示,在一个实施例中,在步骤S145之后,所述方法包括:步骤S150、向分布式密钥机发送加扰后的电子签名。
向分布式密钥机发送加扰后的电子签名的目的是使分布式密钥机能够利用干扰私钥解扰加扰后的电子签名,从而将恢复的电子签名发送给认证平台登记,以便以后验证待验证电子签名。
如图所示,在一个实施例中,根据本发明一个实施例的在分布式密钥机侧的一种基于SM2的电子签名处理方法包括:
步骤S210、从移动设备盾插件接收移动设备盾插件生成的电子签名,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰;
步骤S220、对所述电子签名进行解扰;
步骤S230、将解扰后的电子签名发送给认证平台。
电子签名处理方法是指对从移动设备盾插件接收到的加扰后的电子签名进行解扰等处理,并发送给认证平台作为用户登记的电子签名的方法。
下面对这些步骤进行详细描述。
步骤S210、从移动设备盾插件接收移动设备盾插件生成的电子签名,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰。
所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰的过程前面结合步骤S110-S145已经描述,因此不再赘述。
步骤S220、对所述电子签名进行解扰。
在一个实施例中,在干扰因子是基于发送到移动设备盾插件的干扰公钥确定出的情况下,所述对所述电子签名进行解扰的步骤包括:用干扰私钥对电子签名进行解扰。
如前所述,分布式密钥机中设置有干扰公钥、干扰私钥对。分布式密钥机将干扰公钥发送给移动设备盾插件,供移动设备盾插件据此确定干扰因子。分布式密钥机保留干扰私钥。在移动设备盾插件用干扰因子对生成的电子签名加扰后发回分布式密钥机后,分布式密钥机用干扰私钥解扰。由于干扰私钥与干扰公钥是对应的,分布式密钥机可以解扰开生成的电子签名,而其他设备即使拦截到该电子签名,也因为缺少干扰私钥,无法对其解扰。
步骤S230、将解扰后的电子签名发送给认证平台。
将解扰后的电子签名发送给认证平台的目的是作为用户在认证平台登记的电子签名。当以后用户需要使用移动设备盾插件所绑定的应用(如电子银行应用)进行某个操作时,按后述方式生成待验证电子签名,发送到认证平台与生成电子签名时用户登记在认证平台的电子签名进行比对。如一致则通过验证。
如图2所示,根据本发明一个实施例的移动设备盾插件侧的一种基于SM2的待验证电子签名验证方法包括:
步骤S310、获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子;
步骤S320、获取在本地存储的、在生成电子签名时本地产生的随机因子;
步骤S330、获取用户输入口令的移动设备上的、特定于移动设备的 设备因子;
步骤S340、基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成待验证电子签名,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
步骤S350、向分布式密钥机发送待验证电子签名,以便转发到认证平台与公钥验证结果进行比对验证。
下面对这些步骤进行详细描述。
步骤S310、获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子。
例如,用户需要利用移动设备上的电子银行应用进行转账,这时需要为用户产生一个待验证电子签名,发送到认证平台进行验证。
在移动设备盾插件所绑定的应用界面的提示下,用户输入用户口令。移动设备盾插件获取到该用户口令,基于该用户口令生成特定于用户的用户因子。基于该用户口令生成特定于用户的用户因子与步骤S110中一致,且采用相同算法,这样才能保证电子签名生成和验证的一致性。与步骤S110的区别在于,本步骤获取的是一个用于电子签名验证的用户因子,而步骤S110产生的是一个用于电子签名生成的用户因子。
步骤S320、获取在本地存储的、在生成电子签名时本地产生的随机因子。
由于在生成用户的电子签名时产生的随机因子已保存在移动设备盾插件的存储器中,因此可以直接获取该随机因子。
步骤S330、获取用户输入口令的移动设备上的、特定于移动设备的设备因子。
步骤S330中获取用户输入口令的移动设备上的、特定于移动设备的设备因子的过程与步骤S130中完全一致。与步骤S130的区别在于,步骤S130中获取的设备因子用于用户电子签名的生成。步骤S330中获取的设备因子用于用户电子签名的验证。
步骤S340、基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成待验证电子签名,其中基于分段模特性的SM2 算法是生成电子签名时采用的基于分段模特性的SM2算法。
该步骤与步骤S140基本相同。与步骤S140不同的是,步骤S140是基于用于电子签名生成的用户因子、随机因子、设备因子来生成电子签名,而本步骤是于用于电子签名验证的用户因子、随机因子、设备因子来生成待验证电子签名。
步骤S350、向分布式密钥机发送待验证电子签名,以便转发到认证平台与公钥验证结果进行比对验证。
该步骤与步骤S150基本相同。与步骤S150不同的是,步骤S150是发送为用户生成的电子签名,而本步骤是发送生成的待验证电子签名。
在一个实施例中,在步骤S340之前,所述方法还包括:步骤S335获取用于对待验证电子签名进行加扰的干扰因子。
该步骤与步骤S135基本相同。与步骤S135不同的是,步骤S135是获取用于对生成的电子签名进行加扰的干扰因子,而步骤S335是获取用于对待验证电子签名进行加扰的干扰因子。
在步骤S340之后,所述方法还包括:步骤S345、利用获取的干扰因子对生成的待验证电子签名进行加扰,生成加扰后的待验证电子签名。
该步骤与步骤S145基本相同。与步骤S145不同的是,步骤S145是利用获取的干扰因子对为用户注册时生成的电子签名进行加扰,生成加扰后的电子签名。步骤S345是利用获取的干扰因子对用户需要使用应用的功能时生成的待验证电子签名进行加扰,生成加扰后的待验证电子签名。
此时,步骤S350包括:向分布式密钥机发送加扰后的待验证电子签名,以便分布式密钥机解扰后转发到认证平台与公钥验证结果进行比对验证。
如图2所示,根据本发明的一个实施例的在分布式密钥机侧的待验证电子签名验证方法包括:
步骤S410、从移动设备盾插件接收待验证电子签名,所述待验证电 子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
步骤S420、对所述待验证电子签名进行解扰;
步骤S430、将解扰后的待验证电子签名发送给认证平台,以便与公钥验证结果进行比对验证。
下面对这些步骤进行详细描述。
步骤S410、从移动设备盾插件接收待验证电子签名,所述待验证电子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法。
所述待验证电子签名按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰的过程如步骤S310-S345所示。
步骤S420、对所述待验证电子签名进行解扰。
在一个实施例中,在干扰因子是基于发送到移动设备盾插件的干扰公钥确定出的情况下,步骤S420包括:
用干扰私钥对待验证电子签名进行解扰。
步骤S430、将解扰后的待验证电子签名发送给认证平台,以便与公钥验证结果进行比对验证。
将解扰后的待验证电子签名发送给认证平台后,如果解扰后的待验 证电子签名与生成电子签名时用户在认证平台登记的电子签名一致,则验证通过。反之,则验证不通过。
如图3所示,根据本发明一个实施例的移动设备盾插件侧的一种基于SM2的电子签名生成设备3包括:
用于获取基于用户为生成电子签名输入的口令的、特定于用户的用户因子的装置(下简称为“生成电子签名用用户因子获取装置”)301;
用于获取随机因子的装置(下简称为“生成电子签名用随机因子获取装置”)302;
用于获取用户输入口令的移动设备上的、特定于移动设备的设备因子的装置(下简称为“生成电子签名用设备因子获取装置”)303;
用于基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成电子签名的装置(下简称为“电子签名生成装置”)304。
下面对这些装置进行详细描述。
在一个实施例中,生成电子签名用用户因子获取装置301用于:
获取用户输入的口令;
将获取的口令输入用户因子生成算法,得到特定于用户的用户因子,其中所述用户因子生成算法是保证输入的口令不同,产生的用户因子都不同的算法。
如前所述,用户输入的口令是用户在注册时输入用户口令。一般,在用户注册时,与移动设备盾插件所绑定的应用的界面会提示用户输入用户口令。当用户输入该口令后,移动设备盾插件就获取了该口令。用户要记住该口令,并且在以后每次通过电子银行应用办理业务(例如转账)时要输入相同的口令。
所述用户因子生成算法是保证输入的口令不同,产生的用户因子都不同的算法。而且,在验证待验证电子签名时,产生待验证电子签名也要采用同样的用户因子生成算法生成验证时的用户因子。
用户因子是已有概念,是特定于用户的一个因子,例如随用户不同而不同的一个数。用户因子生成算法的特点是输入的口令与输出的值 (用户因子)都唯一对应性,即输入的口令不同,产生的用户因子都不同。目前已知许多算法可用于用户因子生成算法,故不赘述。
在一个实施例中,生成电子签名用随机因子获取装置302用于:
接收分布式密钥机发送的硬件随机数;
在本地产生本地随机数;
将所述硬件随机数与所述本地随机数合成,得到随机因子。
随机因子一般是指随机产生的数。
该实施例中的随机因子分为两部分。一部分是硬件随机数,是从分布式密钥机接收来的。另一部分是本地随机数,是移动设备盾插件本地产生的。该随机因子由两部分合成的好处是,由于该随机因子一部分来自于分布式密钥机,即使移动设备盾插件受到攻击,攻击者也仅仅是能掌握本地产生的随机数;而该随机因子还有一部分来自本地,即使分布式密钥机受到攻击,也仅仅是其中来自分布式密钥机的部分遭到破译,仍然无法窃取整个随机因子,提高了电子签名生成的安全性。
生成电子签名用设备因子获取装置303用于获取设备因子。该设备因子可以是用户输入口令的移动设备上的设备ID或设备出厂号等,也可以是基于设备ID或设备出厂号等进行某种特定的运算而得到的一个数。移动设备上的设备ID或设备出厂号等可以存储在移动设备的存储器中的某一特定位置。移动设备盾插件只要读取该位置处存储的内容,就可以得到移动设备上的设备ID或设备出厂号等。某种特定的运算是已知的,并且固定的,对于任何移动设备计算设备因子时就采用同样的运算。例如,该特定的运算是移动设备上的设备ID异或后与设备出厂号串联等。一般来说,该运算需要具有输入输出一对一性,即对于不同的输入,必然会产生不同的输出。
电子签名生成装置304基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成电子签名,其中基于分段模特性的SM2算法是保证用户因子、随机因子、设备因子中任何一项不同,电子签名都不同的算法。
基于分段模特性的SM2算法具有输入输出一对一性,即保证用户因 子、随机因子、设备因子中任何一项不同,电子签名都不同。已知许多算法具有输入输出一对一性,可以用作基于分段模特性的SM2算法。这一部分在本文中不赘述。
优选地,该基于分段模特性的SM2算法包括迭代算法,用户因子、设备因子、随机因子经过迭代算法,不需要将三个因子组装成完整的用户签名,从完整的用户签名难以分析出迭代前的三个因子,极大提高了电子签名的安全性。
在一个实施例中,所述设备还包括:用于在经基于分段模特性的SM2算法生成电子签名之前,获取用于对电子签名进行加扰的干扰因子的装置(下简称“生成电子签名加扰用干扰因子获取装置”,图中未示)。
在将电子签名发送到分布式密钥机之前对电子签名进行加扰的作用在于,防止电子签名被第三方拦截而泄露。在加扰的情况下,技术电子签名被第三方拦截,由于第三方不知道加扰用的干扰因子,仍然无法恢复电子签名。即,采用干扰机制,每一个数字签名,都需要移动端、后台密钥机共同作用完成,私钥彼此屏蔽,过程彼此牵制,缺一不可,大大提高了电子签名的安全性。而分布式密钥机只能消除签名干扰成分,即解扰,不能生成用户签名,确保用户签名生成的私密性。
生成电子签名加扰用干扰因子获取装置用于:
接收分布式密钥机发送的干扰公钥;
根据所述干扰公钥确定干扰因子。
分布式密钥机中设置有干扰公钥、干扰私钥对。干扰公钥、干扰私钥对可以对每次电子签名的生成和验证都相同,但优选是对每次电子签名的生成和验证采用不同的干扰公钥、干扰私钥对。分布式密钥机将干扰公钥发送给移动设备盾插件,供移动设备盾插件据此确定干扰因子。分布式密钥机保留干扰私钥。在移动设备盾插件用干扰因子对生成的电子签名加扰后发回分布式密钥机后,分布式密钥机用干扰私钥解扰。由于干扰私钥与干扰公钥是对应的,分布式密钥机可以解扰开生成的电子签名,而其他设备即使拦截到该电子签名,也因为缺少干扰私钥,无法对其解扰。
干扰因子是用于对生成的电子签名进行加扰的数等。根据所述干扰公钥确定干扰因子往往是通过预定干扰因子产生算法。该干扰因子产生算法具有输入输出一对一性,即对于不同的输入产生不同的输出。已知许多算法具有输入输出一对一性,可以作为干扰因子产生算法,故不赘述。
在一个实施例中,所述设备还包括:用于在经基于分段模特性的SM2算法生成电子签名之后,利用获取的干扰因子对生成的电子签名进行加扰,生成加扰后的电子签名的装置(图中未示)。
加扰属于已有技术。有许多加扰算法可被用来利用获取的干扰因子对生成的电子签名进行加扰,生成加扰后的电子签名,故不赘述。
在一个实施例中,所述设备还包括:
用于向分布式密钥机发送加扰后的电子签名的装置(图中未示)。
如图4所示,在一个实施例中,根据本发明一个实施例的在分布式密钥机侧的一种基于SM2的电子签名处理设备4包括:
用于从移动设备盾插件接收移动设备盾插件生成的电子签名的装置(下简称“生成电子签名接收装置”)401,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰;
用于对所述电子签名进行解扰的装置(下简称“生成电子签名解扰装置”)402;
用于将解扰后的电子签名发送给认证平台的装置(下简称“解扰电子签名发送装置”)403。
下面对这些装置进行详细描述。
生成电子签名接收装置401用于从移动设备盾插件接收移动设备盾插件生成的电子签名,其中所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模 特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰。
所述电子签名在从移动设备盾插件端基于用户为生成电子签名输入的口令的特定于用户的用户因子、随机因子、用户输入口令的移动设备上的特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对电子签名进行加扰的干扰因子进行加扰的过程前面结合步骤S110-S145已经描述,因此不再赘述。
生成电子签名解扰装置402用于对所述电子签名进行解扰的装置。
在一个实施例中,在干扰因子是基于发送到移动设备盾插件的干扰公钥确定出的情况下,生成电子签名解扰装置402用于:
用干扰私钥对电子签名进行解扰。
如前所述,分布式密钥机中设置有干扰公钥、干扰私钥对。分布式密钥机将干扰公钥发送给移动设备盾插件,供移动设备盾插件据此确定干扰因子。分布式密钥机保留干扰私钥。在移动设备盾插件用干扰因子对生成的电子签名加扰后发回分布式密钥机后,分布式密钥机用干扰私钥解扰。由于干扰私钥与干扰公钥是对应的,分布式密钥机可以解扰开生成的电子签名,而其他设备即使拦截到该电子签名,也因为缺少干扰私钥,无法对其解扰。
解扰电子签名发送装置403用于将解扰后的电子签名发送给认证平台。
将解扰后的电子签名发送给认证平台的目的是作为用户在认证平台登记的电子签名。当以后用户需要使用移动设备盾插件所绑定的应用(如电子银行应用)进行某个操作时,按后述方式生成待验证电子签名,发送到认证平台与生成电子签名时用户登记在认证平台的电子签名进行比对。如一致则通过验证。
如图5所示,根据本发明一个实施例的移动设备盾插件侧的一种基于SM2的待验证电子签名验证设备5包括:
用于获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子的装置(下简称“验证电子签名用用户因子获取装置”)501;
用于获取在本地存储的、在生成电子签名时本地产生的随机因子的装置(下简称“验证电子签名用随机因子获取装置”)502;
用于获取用户输入口令的移动设备上的、特定于移动设备的设备因子的装置(下简称“验证电子签名用设备因子获取装置”)503;
用于基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成待验证电子签名的装置(下简称“待验证电子签名生成装置”)504,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
用于向分布式密钥机发送待验证电子签名,以便转发到认证平台与公钥验证结果进行比对验证的装置(下简称“待验证电子签名发送装置”)505。
下面对这些装置进行详细描述。
验证电子签名用用户因子获取装置501用于获取基于用户为验证电子签名生成的口令的、特定于用户的用户因子。
例如,用户需要利用移动设备上的电子银行应用进行转账,这时需要为用户产生一个待验证电子签名,发送到认证平台进行验证。
在移动设备盾插件所绑定的应用界面的提示下,用户输入用户口令。移动设备盾插件获取到该用户口令,基于该用户口令生成特定于用户的用户因子。基于该用户口令生成特定于用户的用户因子与装置301中一致,且采用相同算法,这样才能保证电子签名生成和验证的一致性。与装置301的区别在于,本装置获取的是一个用于电子签名验证的用户因子,而装置301产生的是一个用于电子签名生成的用户因子。
验证电子签名用随机因子获取装置502用于获取在本地存储的、在生成电子签名时本地产生的随机因子。
由于在生成用户的电子签名时产生的随机因子已保存在移动设备盾插件的存储器中,因此可以直接获取该随机因子。
验证电子签名用设备因子获取装置503用于获取用户输入口令的移动设备上的、特定于移动设备的设备因子。
此装置中获取用户输入口令的移动设备上的、特定于移动设备的设 备因子的过程与装置303中完全一致。与装置303的区别在于,装置303中获取的设备因子用于用户电子签名的生成。本装置中获取的设备因子用于待验证电子签名的验证。
待验证电子签名生成装置504用于基于所述用户因子、随机因子、设备因子,经基于分段模特性的SM2算法,生成待验证电子签名,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法。
该装置与装置304基本相同。与装置304不同的是,装置304是基于用于电子签名生成的用户因子、随机因子、设备因子来生成电子签名,而本装置是于用于电子签名验证的用户因子、随机因子、设备因子来生成待验证电子签名。
待验证电子签名发送装置505用于向分布式密钥机发送待验证电子签名,以便转发到认证平台与公钥验证结果进行比对验证。
在一个实施例中,所述设备还包括:用于在经基于分段模特性的SM2算法生成待验证电子签名之前,获取用于对待验证电子签名进行加扰的干扰因子的装置(图中未示)。
在一个实施例中,所述设备还包括:用于在经基于分段模特性的SM2算法生成待验证电子签名之后,利用获取的干扰因子对生成的待验证电子签名进行加扰,生成加扰后的待验证电子签名的装置(图中未示)。
在一个实施例中,待验证电子签名发送装置505用于:
向分布式密钥机发送加扰后的待验证电子签名,以便分布式密钥机解扰后转发到认证平台与公钥验证结果进行比对验证。
如图6所示,根据本发明的一个实施例的在分布式密钥机侧的基于SM2的待验证电子签名验证设备6包括:
用于从移动设备盾插件接收待验证电子签名的装置(下简称“待验证电子签名接收装置)601,所述待验证电子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用 获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法;
用于对所述待验证电子签名进行解扰的装置(下简称“待验证电子签名解扰装置”)602;
用于将解扰后的待验证电子签名发送给认证平台,以便与公钥验证结果进行比对验证的装置(下简称“解扰后待验证电子签名发送装置”)603。
下面对这些装置详细描述。
待验证电子签名接收装置601用于从移动设备盾插件接收待验证电子签名,所述待验证电子签名是按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰,其中基于分段模特性的SM2算法是生成电子签名时采用的基于分段模特性的SM2算法。
所述待验证电子签名按照基于用户为验证电子签名生成的口令的、特定于用户的用户因子、在本地存储的、在生成电子签名时本地产生的随机因子、用户输入口令的移动设备上的、特定于移动设备的设备因子,经基于分段模特性的SM2算法生成,并利用获取的用于对待验证电子签名进行加扰的干扰因子进行加扰的过程如步骤S310-S345所示。
待验证电子签名解扰装置602用于对所述待验证电子签名进行解扰。
在一个实施例中,所述待验证电子签名解扰装置602用于:在干扰因子是基于发送到移动设备盾插件的干扰公钥确定出的情况下,用干扰私钥对待验证电子签名进行解扰。
解扰后待验证电子签名发送装置603用于将解扰后的待验证电子签名发送给认证平台,以便与公钥验证结果进行比对验证。
将解扰后的待验证电子签名发送给认证平台后,如果解扰后的待验 证电子签名与生成电子签名时用户在认证平台登记的电子签名一致,则验证通过。反之,则验证不通过。
其中,根据本发明的方法通过包含于计算机设备中的装置来实现。所述计算机设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述计算机设备包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板、或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、PDA、游戏机、或IPTV等。其中,所述用户设备及网络设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备以及网络仅为举例,其他现有的或今后可能出现的用户设备、网络设备以及网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施 例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。
机译: 电子签名验证系统,电子签名装置,验证装置,电子签名验证方法,电子签名方法,验证方法,电子签名程序,验证程序
机译: 一种基于生物数据识别的电子文档验证方法和一种基于生物数据完整性的电子签名方法,该方法将电子文档的原始文本与标记,验证码和标记一起使用,并以此为目的进行验证,验证,确认服务器和计算机
机译: 满足标准语法和XML电子签名处理规则的基于WINDOWS的XML文档电子签名生成/验证系统