一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

签名实现、验签方法以及签名终端、验签终端和存储介质与流程

2021-10-29 07:48:00 来源:中国专利 TAG:
签名实现、验签方法以及签名终端、验签终端和存储介质与流程

本发明涉及移动安全技术领域,尤指一种签名实现、验签方法以及签名终端、验签终端和存储介质。

背景技术

随着电子商务的发展,电子签名可以确保信息的真实和可靠,因此电子签名越来越重要。为了规范电子签名,专门制定了电子签名的国家标准,将SM2椭圆曲线密码算法标准作为国家标准。

在应用中SM2的签名私钥的保存十分重要,需要用安全的方式加以保存,安全保存时一般采用安全硬件保存的方式,例如加密机、IC卡等物理硬件进行保存。

随着移动互联网、物联网的发展,如智能手机、笔记本、平板等签名终端、物联网终端和传感器的广泛使用,在这些场景下也大量需要使用SM2电子签名,如果在移动环境下仍采用传统的独立硬件保存私钥的方式,就会存在使用不便、体验差等问题,直接影响了使用的体验和效果。

在移动环境下,采用SM2等椭圆曲线加密算法进行签名,如何安全保存签名私钥就变的十分重要。因此市场迫切需要一种新的安全存储签名私钥的方法,为SM2等椭圆曲线加密算法在移动环境下的使用保驾护航。这种安全存储方法既能满足安全保存签名私钥,同时还需不影响SM2 等椭圆曲线加密算法的正常应用。



技术实现要素:

本发明的目的是提供一种签名实现、验签方法以及签名终端、验签终端和存储介质,实现降低签名私钥泄露风险,无需专业的安全硬件保持签名私钥,提升签名终端的信息安全,且在移动环境下正常使用SM2等椭圆曲线加密算法进行签名,大大提升了用户使用体验。

本发明提供的技术方案如下:

本发明提供一种签名实现方法,应用于签名终端,包括步骤:

根据签名私钥、一次性加密因子和预设加密函数进行运算得到加密私钥;所述一次性加密因子符合随机分布;

根据所述加密私钥和椭圆曲线算法对消息进行加密处理生成对应的用户数字签名。

本发明还提供一种签名验证方法,应用于验签终端,包括步骤:

获取验签公钥、用户数字签名以及消息,并对消息进行计算得到消息摘要;所述消息和用户数字签名从签名终端处获取;所述验签公钥从第三方可信机构获取;

根据所述验签公钥和消息摘要验证所述用户数字签名,验证通过时确定消息完整且未被篡改。

本发明还提供一种签名终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的运算机程序,所述处理器,用于执行所述存储器上所存放的运算机程序,实现如所述的签名实现方法所执行的操作。

本发明还提供一种验签终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的运算机程序,所述处理器,用于执行所述存储器上所存放的运算机程序,实现如所述的签名验证方法所执行的操作。

本发明还提供一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如所述的签名实现方法所执行的操作。

本发明还提供一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如所述的签名验证方法所执行的操作。

通过本发明提供的一种签名实现、验签方法以及签名终端、验签终端和存储介质,能够实现降低签名私钥泄露风险,无需专业的安全硬件保存签名私钥,提升签名终端的信息安全,且在移动环境下正常使用SM2等椭圆曲线加密算法进行签名,大大提升了用户使用体验。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对一种签名实现、验签方法以及签名终端、验签终端和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。

图1是本发明一种签名实现方法的一个实施例的流程图;

图2是本发明一种签名实现方法的另一个实施例的流程图;

图3是本发明一种签名验证方法的一个实施例的流程图;

图4是本发明一种签名验证方法的一个实施例的流程图;

图5是本发明一种终端设备的一个实施例的结构示意图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

椭圆曲线加密算法属于非对称加密算法,其中非对称加密算法需要密钥对,密钥对包括签名私钥dA和签名公钥PA,其中,签名公钥PA是根据签名私钥dA生成的。

本发明的一个实施例,如图1所示,一种签名实现方法,包括:

S100根据签名私钥dA、一次性加密因子u和预设加密函数进行运算得到加密私钥d′A;一次性加密因子u符合随机分布;

S200根据加密私钥d′A和椭圆曲线算法对消息摘要e进行加密处理生成对应的用户数字签名。

具体的,签名终端获取用户的签名私钥dA,通过设计一个预设加密函数,将签名私钥dA和一次性加密因子u代入到预设加密函数中进行计算得到加密私钥d′A。然后,签名终端再根据加密私钥d′A和椭圆曲线算法对消息摘要e进行加密处理生成对应的用户数字签名。签名终端将签名私钥dA进行加密隐藏,使用加密私钥d′A参与数字签名实现流程,不仅导致攻击者无法获取签名私钥 dA,使得用户可以在移动环境下使用椭圆曲线密码算法进行数字签名,大大提升了用户使用体验的同时,还能够降低签名私钥dA泄露风险,无需专业的安全硬件保存签名私钥dA,提升签名终端的信息安全。

本发明的一个实施例,如图2所示,一种签名实现方法,包括:

S111接收第三方可信机构发送的一次性加密因子u;所述一次性加密因子的数据位u与所述签名私钥dA的数据位在相同字节数范围内;

具体的,签名终端和第三方可信机构可事先约定基本的工作规范,从而使得签名终端从第三方可信机构获取一次性加密因子u,例如双方都采用同一个行业标准等。当然,签名终端还可以发送签名私钥dA的数据位至第三方可信机构,并接收第三方可信机构发送的一次性加密因子u。第三方可信机构根据约定或从签名终端获取签名私钥dA的数据位,然后第三方可信机构通过随机数发生器生成一次性加密因子u,其中签名终端的特征如ID等可以参与一次性加密因子u的生成。一次性加密因子u的数据位与签名私钥dA同级别的一次性加密因子u,即一次性加密因子u的数据位与签名私钥dA的数据位在相同字节数范围内,且其中一次性加密因子u为大整数。第三方可信机构可随时重新生成每个签名终端所使用的用户的一次性加密因子u,同时实时通知签名终端进行更新。

S121将签名私钥dA和一次性加密因子u代入至预设加密函数运算得到加密私钥d′A;

具体的,签名终端和第三方可信机构的服务器的通信经过加密和双向的身份认证,保证签名终端与第三方可信机构之间保持安全可靠的通信。例如通过证书认证体系(TLS1.0协议),非对称加密算法(如RSA或SM2的密钥交换等),使得可以签名终端与第三方可信机构之间建立起安全的通信。签名终端通过上述安全通信方式从第三方可信机构获取到一次性加密因子u 后,根据密码学原理,由于一次性加密因子u是与签名私钥dA同级别的一个互不相关的,且由第三方可信机构不断更新的数据,通过预设加密函数能够将签名私钥dA均匀的映射到(0,n)之间的大整数中得到一个加密私钥d′A,其中,n为素数。G点(xG,yG)是预设椭圆曲线上的基点G,n为G点的阶,且n属于素数。

由于第三方可信机构生成的一次性加密因子u的取值在统计学上表现是随机的,因此在一次性加密因子u不断更新变化使得加密私钥d′A也会不断变化,这样即使非法分子非法获取的加密私钥d′A也会很快过时失效,从而达到了保护签名私钥dA的目的。在移动环境下,可以采用软件加密的方式对签名私钥d′A进行加密,然后存储加密后的结果,签名时直接用加密私钥d′A进行签名,而无须采用签名私钥dA,很好地完成了对签名私钥dA的保护。

示例性的,本实施例可选用可逆函数f(x,y)=y x mod n(n是素数) 作为预设加密函数,通过该预设加密函数获取加密私钥d′A,其中,dA作为x, u作为y代入至可逆函数f(x,y),将计算结果作为加密私钥d′A,即d′A=f (dA,u)=u dA mod n。这个函数计算简单,同时符合密码学安全要求。

S210根据杂凑算法对消息M进行运算获取消息摘要e,并通过随机数发生器生成符合预设条件的随机数k;

杂凑算法是通过选定的杂凑函数将要检索的内容与用来检索的索引关联起来,此处根据选定的杂凑函数(包括但是不限于HAVAL函数、MD5函数、 SHA-2函数)将任意长度的消息M变换为固定长度(为了安全考虑至少为 128bits长度)的消息摘要e,由于根据杂凑算法对消息M所计算出来的消息摘要e即杂凑值具有不可逆性质,可以用来后续识别数字签名是否有被篡改的风险,提升签名终端数据安全性。

随机数k产生器一般分为真随机和伪随机。真随机则是不可预测的,伪随机则依靠随机数k种子和随机算法,是可能被预测的。真随机数发生器(例如random),不断收集非确定性、物理性随机的设备事件,即装载有真随机数发生器的签名终端运行环境中产生的设备事件来作为种子。比如说:时钟,虚拟键盘敲击时间,鼠标位置变化,虚拟键盘敲击位置变化,甚至周围WIFI 信号的信号强度等等都可能被用来作为种子来生成符合预设条件的随机数k,其中,预设条件为随机数k∈[1,n-1]。

S220根据预设椭圆曲线、从预设椭圆曲线获取的基点G和随机数k运算得到曲线点Q;

具体的,预设椭圆曲线的方程可以写成:y2=x3 ax2 bx c。其中,常数a, b和c为决定预设椭圆曲线形状的参数,将基点G、参数a、b、c和随机数k 代入至预设椭圆曲线的方程中,预设椭圆曲线的方程的所有解不是连续的,而是离散的,解的值满足有限域的限制,通过预设椭圆曲线的方程的所有解构成预设椭圆曲线。

由于有限域椭圆曲线上所有其他的点都可以通过G点的倍乘运算计算得到,即PA=[dA]G,dA也是属于有限域,dA的最大值为素数n。由于G点是已知的,通过dA计算P点很容易,但是通过PA点倒推dA是计算上难以实现的,因此,以dA为签名私钥,预设椭圆曲线上对应于dA的PA点(xp,yp)为签名公钥。

本实施例中由于选定了预设椭圆曲线以及基点G,因此,可以将基点G,随机数发生器生成的随机数k代入至预设椭圆曲线对应的方程中求解得到在预设椭圆曲线上的曲线点Q=(xq,yq)=[k]G。

S230根据曲线点Q、消息摘要e和第一预设运算公式进行运算得到对应的第一签名因子r;

S240根据加密私钥d′A、随机数k、第一签名因子r和第二预设运算公式运算得到对应的第二签名因子s;

其中,椭圆曲线算法包括SM2国密算法中计算得到第一签名因子r和第二签名因子s的两个运算公式,分别是第一预设运算公式和第二预设运算公式。第一预设运算公式可包括上述示例的可逆函数f(x,y)=y x mod n(n 是素数),其中,曲线点Q的x轴坐标xq作为x,消息摘要e作为y代入至可逆函数f(x,y),将计算结果作为第一签名因子r,则第一签名因子r可包括下列第一预设运算公式:

r=f(xq,e)=e xq mod n。

注意,需要设定第一签名因子r对应的第一重置条件,其中第一重置条件包括:如果第一签名因子r等于零(即r=0),或者第一签名因子r与随机数发生器产生的随机数k的和值等于G点的阶(即r k=n)。签名终端如果计算得到第一签名因子r符合上述第一重置条件中的任意一种情况时,均控制随机数发生器重新产生新的随机数k,并计算获取新的曲线点Q,直至计算得到的第一签名因子r不符合第一重置条件为止,才进入第二签名因子s的计算流程。

第二预设运算公式符合上述示例的可逆函数f(x,y)=xy mod n(n是素数),其中,加密私钥d′A与1的和值后的倒数(即(1 d′A)-1)作为x,第一签名因子r和加密私钥d′A进行乘积运算,随机数发生器产生的随机数k与乘积运算结果的差值(即(k-rd′A)作为y代入至可逆函数f(x,y),将计算结果作为第二签名因子s,则第二签名因子s符合下列第二预设运算公式:

s=f((1 d′A)-1),(k-rd′A))=(1 d′A)-1(k-rd′A)mod n。

注意,需要设定第二签名因子s对应的第二重置条件,其中第二重置条件包括:如果第二签名因子s等于零(即s=0)。签名终端如果计算得到第二签名因子s符合上述第二重置条件的情况时,控制随机数发生器重新产生新的随机数k,并计算获取新的曲线点Q,直至计算得到的第二签名因子s不符合第二重置条件为止,才进入输出用户数字签名的流程。

S250根据第一签名因子r和第二签名因子s得到用户数字签名。

具体的,在上述签名过程中,可以看出整个签名过程中,均未采用签名私钥dA进行计算,而是采用对签名私钥dA进行映射隐藏的加密私钥d′A参与数字签名流程的,因此,整个签名过程中签名私钥dA是处于保密状态中的,减少了签名私钥dA出现概率,进而大大提升了数据安全性。

本实施例中签名终端将签名私钥dA进行加密隐藏,全程使用加密私钥d′A参与数字签名实现流程,不仅仅导致攻击者无法获取签名私钥dA,使得用户可以在移动环境下使用SM2算法进行数字签名,在移动环境下可采用软件方式存储加密私钥d′A,由于一次性加密因子u由第三方可信机构产生,而且不断更新变化,第三方可信机构和签名终端之间安全传递u。在u是安全的情况下,即使d′A泄露了,也不会逆推破解得到签名私钥dA,这样不仅仅降低签名私钥dA泄露风险,能够提升签名终端的信息安全,此外,无需用户在使用签名终端进行数字签名的情景下还额外携带专业的安全硬件保存签名私钥dA,大大增强了用户的使用体验。

最后,本实施例一次性加密因子由u第三方可信机构或是由第三方可信机构根据终端的特征,产生每个终端彼此不同的一次性加密因子产生算法,由签名终端执行而在签名终端内产生u。由第三方可信机构产生一次性加密因子 u对签名终端的运行更友好,不需要签名终端本地安装运行加密因子发生器对应的代码程序,由于减少内存占用使得签名终端生成对应的数字签名更加快速高效,减少生成数字签名的等待时间,进而大大提升用户使用体验。如果应用确实需要由签名终端执行第三方可信机构生成的加密因子发生器对应的代码程序,那么第三方可信机构必须能够复现每一个终端所产生的u。

本发明的一个实施例,如图3所示,一种签名验证方法,包括:

S300获取验签公钥P′A、用户数字签名以及消息M,,并对消息M进行计算得到消息摘要e;消息M和用户数字签名从签名终端处获取,验签公钥P′A从第三方可信机构获取;

S400根据验签公钥P′A和消息摘要e验证用户数字签名,验证通过时确定消息完整且未被篡改。

具体的,验签终端获取验签公钥P′A、用户数字签名以及消息M,计算消息摘要e,其中,验签公钥P′A从第三方可信机构获取。消息摘要e由验签终端对消息M根据杂凑算法进行运算得到,而用户数字签名由签名终端根据签名私钥dA、一次性加密因子u、预设加密函数和椭圆曲线算法对消息M进行加密处理得到,具体计算流程参见上述签名实现方法对应的实施例,在此不再一一赘述。

本实施例中,验签终端获取到验签公钥P′A、用户数字签名以及消息M,根据消息M计算消息摘要e后,根据验签公钥P′A和消息摘要e计算验证用户数字签名是否是合法的,如果是则验证通过表明消息完整且未被篡改即用户数字签名正确,且消息是完整的。此外,验签终端直接使用验签公钥P′A和消息摘要e进行验证计算,方便易行。

本发明的一个实施例,一种签名验证方法,包括:

S300获取验签公钥P′A、用户数字签名以及消息M,并对消息M进行计算得到消息摘要e;消息M和用户数字签名从签名终端处获取;验签公钥P′A从第三方可信机构获取;

S410判断用户数字签名的签名因子是否符合预设条件,若符合运算获取待验证数据R;

S420将待验证数据R与用户数字签名中的第一签名因子r进行比较是否相同;

S430若待验证数据R与第一签名因子r相同时,验证通过时确定消息完整且未被篡改;

S440若用户数字签名不符合预设条件,或待验证数据R与第一签名因子 r不相同时,验证失败并终止此次验签流程。

具体的,预设条件包括用户数字签名的第一签名因子r在预设数值范围内,即第一签名因子r∈[1,n-1],且用户数字签名的第二签名因子s在预设数值范围内,即第二签名因子s∈[1,n-1]。如果用户数字签名的签名因子符合预设条件,验签终端才会进一步根据验签公钥P′A、一次性加密因子u和消息摘要e计算得到待验证数据R。验签终端获取到待验证数据R后,将待验证数据R与第一签名因子r进行比较两者是否相同或一致,如果相同则确定验证该数字签名通过。如果验签终端确定用户数字签名不符合预设条件,以及待验证数据R与第一签名因子r不相同时中符合任意一种情况时则验证失败。

本实施例中,验签终端获取到验签公钥P′A、用户数字签名以及消息摘要 e后,根据验签公钥P′A、消息摘要e计算验证用户数字签名是否是合法的。验签终端直接使用验签公钥P′A、一次性加密因子u和消息摘要e进行验证计算。此外,一旦确定从签名终端处获取的用户数字签名中的第一签名因子r和第二签名因子s在预设数值范围外时就确定验签失败结束整个验签流程。

本发明的一个实施例,一种签名验证方法,包括:

S310向第三方可信机构发起请求,并从第三方可信机构获取的验签公钥 P′A;验签公钥P′A根据基点G、签名公钥PA、一次性加密因子u和第三预设运算公式运算得到;所述一次性加密因子u符合随机分布;

S320从签名终端获取用户数字签名以及消息M,并对消息M进行计算得到消息摘要e;消息摘要e由验签终端对消息M根据杂凑算法进行运算得到,用户数字签名由签名终端根据签名私钥dA、一次性加密因子u、预设加密函数和椭圆曲线算法对消息M进行加密处理得到;所述一次性加密因子e的数据位与所述签名私钥dA的数据位在相同字节数范围内;

具体的,在用户数字签名的签名因子符合预设条件后,验签终端向第三方可信机构发起请求,第三方可信机构获取到验签终端发起的请求后,根据获取的基点G、签名公钥PA和一次性加密因子u代入至第三预设运算公式中,进行计算得到验签公钥P′A,其中,第三预设运算公式如下所示:P′A=uG PA。然后,第三方可信机构将计算获取的验签公钥P′A反馈给验证终端。

S410判断用户数字签名的签名因子是否符合预设条件,若符合运算获取待验证数据R;

S420将待验证数据R与用户数字签名中的第一签名因子r进行比较是否相同;

S430若待验证数据R与第一签名因子r相同时,验证通过时确定消息完整且未被篡改;

S440若用户数字签名不符合预设条件,或待验证数据R与第一签名因子 r不相同时,验证失败并终止此次验签流程。

具体的,验签终端获取到待验证数据R后,将待验证数据R与第一签名因子r进行比较两者是否相同或一致,如果相同则确定验证该数字签名通过,从而能够获取签名终端的消息M。如果验签终端确定用户数字签名不符合预设条件,以及待验证数据R与第一签名因子r不相同时中符合任意一种情况时则验证失败。

本实施例中,验签终端获取到验签公钥P′A、用户数字签名以及消息摘要 e后,根据验签公钥P′A、消息摘要e计算验证用户数字签名是否是合法的,如果是则验证通过。验签终端直接使用验签公钥P′A、消息摘要e进行验证计算。

本发明的一个实施例,如图4所示,一种签名验证方法,包括:

S310向第三方可信机构发起请求,并从第三方可信机构获取的验签公钥 P′A;验签公钥P′A根据基点G、签名公钥PA、一次性加密因子u和第三预设运算公式运算得到;所述一次性加密因子u符合随机分布;

S320从签名终端获取用户数字签名以及消息M,并对消息M进行计算得到消息摘要e;消息摘要e由验签终端对消息M根据杂凑算法进行运算得到,用户数字签名由签名终端根据签名私钥dA、一次性加密因子u、预设加密函数和椭圆曲线算法对消息M进行加密处理得到;所述一次性加密因子e的数据位与所述签名私钥dA的数据位在相同字节数范围内;

具体的,在用户数字签名的签名因子符合预设条件后,验签终端向第三方可信机构发起请求,第三方可信机构获取到验签终端发起的请求后,根据获取的基点G、签名公钥PA和一次性加密因子u代入至第三预设运算公式中,进行计算得到验签公钥P′A,其中,第三预设运算公式如下所示:P′A=uG PA。然后,第三方可信机构将计算获取的验签公钥P′A反馈给验证终端。

S411判断用户数字签名的签名因子是否符合预设条件,若符合根据用户数字签名中的第一签名因子r、第二签名因子s和第一预设运算公式运算得到第二验证因子t;

具体的,第一预设运算公式符合上述示例的可逆函数f(x,y)=y x mod n(n是素数),其中,用户数字签名中的第二签名因子s作为x,用户数字签名中的第一签名因子r作为y代入至可逆函数f(x,y),将计算结果作为第二验证因子t,则第二验证因子t符合下列第一预设运算公式:

t=f(s,r)=r s mod n。

S412根据预设椭圆曲线、验签公钥P′A、第二验证因子t、基点G、第二签名因子s以及第四预设运算公式运算得到验证点W;

具体的,预设椭圆曲线的方程可以写成:y2=x3 ax2 bx c。其中,常数a, b和c为决定预设椭圆曲线形状的参数。验签终端根据常数a,b,c以及基点 G对应的数值,计算获取签名终端采用的预设椭圆曲线,从而再将验签公钥P ′A、第二验证因子t、基点G、第二签名因子s代入至第四预设运算公式进行计算得到计算结果,将计算结果代入至预设椭圆曲线的方程中计算求出验证点W对应的坐标数据W(xw,yw),即验证点W的坐标数据符合下列第四预设运算公式:

(xw,yw)=[s]G [t]P′A

S413根据验证点、消息摘要e和第一预设运算公式运算得到待验证数据 R;

验签终端求出验证点后,根据验证点W对应的x轴坐标、从签名终端处获取的消息摘要e代入至第一预设运算公式中进行计算得到对应的待验证数据R,其中,验证点W的x轴坐标xw作为x,消息摘要e作为y代入至可逆函数f(x,y),将计算结果作为待验证数据R,则待验证数据R符合下列第一预设运算公式:

R=f(xw,e)=e xwmodn。

S420将待验证数据R与用户数字签名中的第一签名因子r进行比较是否相同;

S430若待验证数据R与第一签名因子r相同时,验证通过时确定消息完整且未被篡改;

S440若用户数字签名不符合预设条件,或待验证数据R与第一签名因子 r不相同时,验证失败并终止此次验签流程。

本实施例中,验签终端获取到验签公钥P′A、用户数字签名以及消息摘要 e后,根据验签公钥P′A、一次性加密因子u和消息摘要e计算验证用户数字签名是否是合法的,如果是则验证通过并解密获取签名终端的消息M。验签终端直接使用验签公钥P′A、方便易行。

在整个验签过程中,是采用对验签公钥P′A参与验签流程的,因此,不会使用签名私钥dA,进而提升了数据安全性。

以上签名验证原理说明如下

[s]G [r s]P′A

=[s]G [s]P′A [r]P′A

=[s]G [s](PA uG) [r](PA uG)

=[s]G [s]PA [su]G [r]PA [ru]G

=[s]G [sdA]G [su]G [rdA]G [ru]G

=[s(1 u dA)]G [r(u dA)]G

=[(1 u dA)-1(k-r(u dA))(1 u dA)]G [r(u dA)G

=[k-r(u dA)]G [r (u dA)]G

=[k]G

本发明提出的签名实现方法和签名验证方法,与SM2普通签名方案相比较,而在签名实现方面计算量相同,因而两者的数字签名速度与效率是相同的,而在签名验证方面,除本发明需要第三方可信机构传送一个对签名公钥 PA进行加密后的验签公钥P′A外,两者算法的流程与计算量相同,两者签名验证的计算效率是相同的。从安全性方面来说,本发明相当于对签名密钥dA进行了“一次一密”的加密,并且加密中使用的数据是不断变化的,而非一成不变,对于攻击者而言,无法通过攻击签名终端获取签名私钥dA,总体上看在安全性方面,安全性大大提升,而且在实施便利性和体验方面,本发明签名实现方式无需额外的硬件开销,软件占用资源很小,便于推广普及,能够实现降低签名私钥泄露风险,无需专业的安全硬件保持签名私钥,提升签名终端的信息安全,且在移动环境下正常使用椭圆曲线算法进行签名,大大提升了用户使用体验。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的程序模块完成,即将所述装置的内部结构划分成不同的程序单元或模块,以完成以上描述的全部或者部分功能。实施例中的各程序模块可以集成在一个处理单元中,也可是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序单元的形式实现。另外,各程序模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

本发明的一个实施例,一种签名终端,包括处理器、存储器,其中,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,实现上述所对应方法实施例中的签名实现方法。

本发明的一个实施例,一种验签终端,包括处理器、存储器,其中,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,实现上述所对应方法实施例中的签名实现方法。

其中,签名终端和验签终端均可以是可移动的终端设备,如图5所示,终端设备100可以为桌上型计算机、笔记本、掌上电脑、平板型计算机、手机、人机交互屏等设备。所述终端设备100可包括,但不仅限于处理器110、存储器120。本领域技术人员可以理解,图5仅仅是终端设备100的示例,并不构成对终端设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如:终端设备100还可以包括输入/输出接口、显示设备、网络接入设备、通信总线、通信接口等。通信接口和通信总线,还可以包括输入/输出接口,其中,处理器110、存储器120、输入/输出接口和通信接口通过通信总线完成相互间的通信。该存储器120存储有计算机程序,该处理器110用于执行存储器120上所存放的计算机程序。

所述处理器110可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器120可以是所述终端设备100的内部存储单元,例如:终端设备的硬盘或内存。所述存储器也可以是所述终端设备的外部存储设备,例如:所述终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器120还可以既包括所述终端设备100的内部存储单元也包括外部存储设备。所述存储器120用于存储所述计算机程序以及所述终端设备100所需要的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

通信总线是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器110通过通信总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器120可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(Application Programming Interface,API)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口转发用户通过输入/输出接口(例如感应器、键盘、触摸屏)输入的命令或数据。通信接口将该终端设备100与其它网络设备、用户设备、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统 (GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线 (USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。终端设备100可以通过通信接口连接网络,终端设备100和其它网络设备通信所用的协议可以被应用、应用程序编程接口(API)、中间件、内核和通信接口至少一个支持。

本发明的一个实施例,一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述所对应方法实施例中的签名实现方法所执行的操作。例如,计算机可读存储介质可以是只读内存(ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。

本发明的一个实施例,一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述所对应方法实施例中的签名验证方法所执行的操作。例如,计算机可读存储介质可以是只读内存(ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。

它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序发送指令给相关的硬件完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括:计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如:在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜