一种数据签名的方法、装置、电子设备及存储介质与流程

文档序号:22118873发布日期:2020-09-04 15:55阅读:140来源:国知局
一种数据签名的方法、装置、电子设备及存储介质与流程

本发明涉及信息安全技术领域,尤其涉及一种数据签名的方法、装置、电子设备及存储介质。



背景技术:

目前,为了保护用户隐私安全和业务的不可抵赖性,通常会使用到数据签名技术,数据签名技术已经成为保障信息安全的重要工具。现有的基于usbkey等硬件设备进行数据签名的方式,但这种方式的成本较高,并且,在移动设备对应的应用场景下,使用硬件设备进行数据签名较为不便。因此,如何在移动设备对应的应用场景中有效保障数据签名的安全是需要思考的问题。



技术实现要素:

本申请实施例提供了一种数据签名的方法、装置、电子设备及存储介质,用于提升数据签名的安全性。

第一方面,提供了一种数据签名的方法,应用于客户端,该方法包括:

根据获得的第一私钥对签名信息进行签名,得到中间签名值,其中,所述第一私钥是由服务端生成私钥后,分割所述私钥得到的第一部分私钥分量;

基于所述客户端的硬件信息以及当前所述第一私钥的使用次数,生成第一数据保护密钥;

利用所述第一数据保护密钥对所述中间签名值进行加密,获得加密签名值;

将所述加密签名值发送给所述服务端,使得所述服务端在对所述加密签名值进行解密后利用第二私钥对所述中间签名值进行签名以得到最终签名值;

获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值。

在一种可能设计中,在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值之后,所述方法还包括:

更新所述第一私钥的使用次数。

在一种可能设计中,在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值之前,所述方法还包括:

若所述服务端对所述最终签名值的验证失败,获得所述服务端发送的反馈信息;

根据所述反馈信息,生成提示信息,所述提示信息用于指示存在所述第一私钥泄露的情况。

在一种可能设计中,在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值之后,所述方法还包括:

在预定时长后,根据获得的所述服务端重新生成的私钥中的第一部分私钥分量,更新所述第一私钥,得到更新后的第一私钥。

第二方面,提供了一种数据签名方法,应用于服务端,所述方法包括:

获得客户端发送的加密签名值;

基于获取的所述客户端的硬件信息以及当前第二私钥的使用次数,生成第二数据保护密钥,其中,所述第二私钥是由服务端生成私钥后,分割所述私钥得到的第二部分私钥分量;

利用所述第二数据保护密钥对所述加密签名值进行解密,得到中间签名值;

利用所述第二私钥对所述中间签名值进行签名得到最终签名值,并在所述最终签名值验证通过后将所述最终签名值发送给所述客户端。

在一种可能设计中,在所述最终签名值验证通过后将所述最终签名值发送给所述客户端之后,所述方法还包括:

更新所述第二私钥的使用次数。

在一种可能设计中,若所述最终签名值验证失败,所述方法还包括:

向所述客户端发送反馈信息,使得所述客户端根据所述反馈信息生成提示信息,所述提示信息用于指示所述客户端存在所述第一私钥泄露的情况。

在一种可能设计中,所述在所述将所述最终签名值发送给所述客户端之后,所述方法还包括:

在预定时长后,根据获得的所述服务端重新生成的私钥中的第二部分私钥分量,更新所述第二私钥,得到更新后的第二私钥。

第三方面,提供了一种数据签名的装置,所述装置设置在客户端,所述装置包括:

第一签名模块,用于根据获得的第一私钥对签名信息进行签名,得到中间签名值,其中,所述第一私钥是由服务端生成私钥后,分割所述私钥得到的第一部分私钥分量;

第一生成模块,用于基于所述客户端的硬件信息以及当前所述第一私钥的使用次数,生成第一数据保护密钥;

加密模块,用于利用所述第一数据保护密钥对所述中间签名值进行加密,获得加密签名值;

第一发送模块,用于将所述加密签名值发送给所述服务端,使得所述服务端在对所述加密签名值进行解密后利用第二私钥对所述中间签名值进行签名以得到最终签名值;

第一获得模块,用于获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值。

在一种可能设计中,所述装置还包括第一更新模块,所述第一更新模块用于在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值之后,更新所述第一私钥的使用次数。

在一种可能设计中,所述第一获得模块还用于在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值之前,若所述服务端对所述最终签名值的验证失败,获得所述服务端发送的反馈信息;并根据所述反馈信息,生成提示信息,所述提示信息用于指示存在所述第一私钥泄露的情况。

在一种可能设计中,所述第一更新模块还用于在所述获得所述服务端在所述最终签名值验证通过后发送的所述最终签名值且满足预定时长后,根据获得的所述服务端重新生成的私钥中的第一部分私钥分量,更新所述第一私钥,得到更新后的第一私钥。

第四方面,提供了一种数据签名的装置,所述装置设置在服务端,所述装置包括:

第二获得模块,用于获得客户端发送的加密签名值;

第二生成模块,用于基于获取的所述客户端的硬件信息以及当前第二私钥的使用次数,生成第二数据保护密钥,其中,所述第二私钥是由服务端生成私钥后,分割所述私钥得到的第二部分私钥分量;

解密模块,用于利用所述第二数据保护密钥对所述加密签名值进行解密,得到中间签名值;

第二签名模块,用于利用所述第二私钥对所述中间签名值进行签名得到最终签名值,并在所述最终签名值验证通过后将所述最终签名值发送给所述客户端。

在一种可能设计中,所述装置还包括第二更新模块,所述第二更新模块用于在所述最终签名值验证通过后将所述最终签名值发送给所述客户端之后,更新所述第二私钥的使用次数。

在一种可能设计中,所述装置还包括反馈模块,所述反馈模块用于在所述最终签名值验证失败后,向所述客户端发送反馈信息,使得所述客户端根据所述反馈信息生成提示信息,所述提示信息用于指示所述客户端存在所述第一私钥泄露的情况。

在一种可能设计中,所述第二更新模块还用于在所述将所述最终签名值发送给所述客户端且满足预定时长之后,根据获得的所述服务端重新生成的私钥中的第二部分私钥分量,更新所述第二私钥,得到更新后的第二私钥。

第五方面,提供了一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的计算机存储介质;

其中,所述处理器被配置为执行所述指令,以实现第一和/或第二方面所述的数据签名的方法。

第六方面,提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行如第一和/或第二方面所述的数据签名的方法。

本申请的实施例提供的技术方案至少带来以下有益效果:

本申请提供了一种数据签名的方案,在该方案中,可以将数据签名使用的私钥分割成两个私钥分量(即第一私钥和第二私钥),分别保存客户端和服务端,那么在数据签名时,在客户端使用其保存的第一私钥对签名信息进行签名,得到中间签名值后,可以基于客户端的硬件信息和当前第一私钥的使用次数生成第一数据保护密钥,并利用第一数据保护密钥对中间签名值进行加密,得到加密签名值,进而可以将加密签名值发送到服务端,由服务端在利用基于该客户端的硬件信息和第二私钥的使用次数生成的第二数据保护密钥,对加密签名值进行解密后得到的中间签名后,再利用第二私钥对中间签名值进行签名,以得到最终签名值,并且服务端在利用公钥对该最终签名值验证通过后,将该最终签名值发送给客户端。

由于数据保护密钥是基于客户端的硬件信息和第一私钥或第二私钥使用次数生产的,每使用一次私钥,其使用次数会发生变化,所以,生成的数据保护密钥也会随之变化,使得每次加密使用的数据保护密钥都不相同。这样即使第一私钥被盗用,由于非法客户端无法获知第一私钥的使用次数和/或合法客户端的硬件信息,使得非法客户端使用的数据保护密钥与服务端使用的第二数据保护密钥不相同,那么服务端对生成的最终签名值的验证也会失败,从而无法完成本次数据签名。因此,可以提升数据签名的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1为本申请实施例提供的一种应用场景示意图;

图2为本申请实施例提供的一种数据签名的方法流程图;

图3为本申请实施例提供的一种数据签名的装置的结构示意图;

图4a为本申请实施例提供的另一种数据签名的装置的结构示意图;

图4b为本申请实施例提供的又一种数据签名的装置的结构示意图;

图5为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请实施例中,“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

如前文所述,现有的采用硬件设备进行数据签名的方式其成本较高,且在移动设备对应的签名环境下使用不方便,因此,现有技术中存在着如何在移动设备对应的应用场景中有效保障数据签名的安全的问题。

鉴于此,本申请提供了一种数据签名的方案,在该方案中,可以将数据签名使用的私钥分割成两个私钥分量(即第一私钥和第二私钥),分别保存在客户端和服务端,那么在进行数据签名时,客户端可以使用基于客户端的硬件信息和第一私钥的使用次数生成的第一数据保护密钥,对使用第一私钥签名之后得到的中间签名值进行加密,得到加密签名值,相应的,服务端可以利用基于客户端的硬件信息和第二私钥的使用次数生成的第二数据保护密钥,解密加密签名值,进而服务端再使用第二私钥签名以得到最终签名值,并在对最终签名值验证通过后,将最终签名值发送给客户端。

由于数据保护密钥是基于客户端的硬件信息和第一私钥或第二私钥使用次数生成的,且合法客户端进行数据签名时,该客户端与服务端中存储的第一私钥的使用次数与第二私钥的使用次数是一致的。每使用一次私钥,存储的第一私钥和第二私钥的使用次数会发生变化,所以,生成的数据保护密钥也会随之变化,使得每次加密使用的数据保护密钥都不相同。这样,即使第一私钥被盗用,由于非法客户端无法获知第一私钥的使用次数和/或合法客户端的硬件信息,所以非法客户端使用的数据保护密钥与服务端使用的第二数据保护密钥不相同,这样服务端解密得到的中间签名值与合法客户端生成的中间签名值不同,那么服务端对最终签名值的验证也会失败,从而无法完成本次数据签名。因此,可以提升数据签名的安全性。

下面简单介绍一些本申请实施例可以适用的应用场景,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。

请参见图1为本申请提供的一种应用场景图。图1中包括客户端101,服务端102。客户端101可以是便携式电脑,ipad,智能手机等移动终端,也可以是台式电脑等在使用过程中不能移动的终端。客户端101可以与服务端102之间通过网络进行通信。

具体地,本申请实施例中在进行数据签名时,用户可登录到客户端101,服务端102可以为该用户生成用于进行数据签名的密钥,进而服务端102可以将密钥中的私钥分成两个私钥分量,并将其中的一部分私钥分量发送给客户端保存。例如,客户端101中存储有第一私钥,服务端102中存储有第二私钥,从而可以利用客户端101和服务端102共同完成数据签名。并且,客户端101可以向服务器102进行注册,这样,服务端102可以从客户端101的注册信息中获取客户端101的硬件信息。

需要说明的是,在本申请实施例中,每个用户可以对应一对密钥,也就是说,当用户登录不同的客户端与服务端共同进行数据签名时,该用户对应的密钥可以是相同的。并且,根据用户登录的客户端不同,服务端可以根据对应的客户端将该用户对应的私钥重新进行分割,且本次分割的子私钥与前一次分割的子私钥不同。

例如,假设用户1对应的私钥为a,用户1登录客户端1后与服务端1共同进行数据签名,服务端1可以将私钥分割为a1和a2,进而将a1发送给客户端1存储,a2由服务端1自行存储。当用户1登录客户端2后与服务端1共同进行数据签名时,服务端1可以将私钥a重新分割为a3和a4,进而可以将a3发送给客户端2存储,a4由服务端1自行存储。其中,a1≠a2≠a3≠a4。

为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。

请参见图2,为本申请实施例提供的一种数据签名的方法的流程图,该方法可以用于图1所示的客户端101和服务端102中。下面对该方法的流程进行描述。

步骤201:客户端根据获得的第一私钥对签名信息进行签名,得到中间签名值,其中,第一私钥是由服务端生成私钥后,分割该私钥得到的第一部分私钥分量。

本申请实施例中,在需要对签名信息进行数据签名时,为了确保私钥的存储安全,与客户端对应的服务端可以将用于数据签名的私钥分割成两个私钥分量,并将这两个私钥分量分别存储在客户端和服务端,例如,将私钥分为第一部分私钥分量和第二部分私钥分量,第一部分私钥分量,即第一私钥,存储在客户端,第二部分私钥分量,即第二私钥,存储在服务端,客户端和服务端均无法得到完整的私钥,从而可以在一定程度上确保私钥存储的安全性。在进行签名运算时,需要服务端和客户端双方共同参与,才可以得到完整的签名。这样,即使其中一方保存的私钥被盗,也无法完成签名,所以可以确保私钥使用的安全性。

在本申请实施例中,进行数据签名时,客户端可以利用其拥有的第一私钥对需要进行数据签名的签名信息进行签名,从而可以得到中间签名值。

步骤202:客户端基于该客户端的硬件信息以及当前第一私钥的使用次数,生成第一数据保护密钥。

在本申请实施例中,在得到中间签名值后,客户端可以基于其自身的硬件信息和当前第一私钥的使用次数,生成第一数据保护密钥。其中,由于每个客户端的硬件信息不相同,且客户端存储的第一私钥的使用次数与其进行数据签名的次数是一致的,在客户端存储的第一私钥的次数随客户端数据签名的次数发生变化之后,客户端每次进行数据签名所生成的第一数据保护密钥均不相同。这样,即使其它客户端盗取了第一私钥,因其自身的硬件信息与向服务端注册过的客户端的硬件信息不相同,所以服务端最终生成的最终签名值也无法通过验证,从而可以在一定程度上提升数据签名的安全性。

步骤203:客户端利用第一数据保护密钥对中间签名值进行加密,获得加密签名值。

在本申请实施例中,客户端在生成第一数据保护密钥之后,可以利用第一数据保护密钥对中间签名值进行加密,获得加密签名值。由于加密使用的第一数据保护密钥是由客户端的硬件信息和客户端当前的第一私钥使用次数生成的,即使第一私钥被其它客户端盗取,例如,b客户端盗取了a客户端的第一私钥,想要冒充a客户端与服务端共同进行数据签名,但因b客户端的硬件信息和第一私钥的使用次数与a客户端的不相同,使得服务端最终生成的最终签名值也无法通过验证,从而可以在一定程度上提升数据签名的安全性。

步骤204:客户端将加密签名值发送给服务端,服务端接收到该加密签名值。

在本申请实施例中,客户端生成加密签名值后,可以将该加密签名值发送给服务端,以便服务端进行服务端部分的数据签名,从而得到完整的数据签名。

步骤205:服务端基于获取的客户端的硬件信息以及当前第二私钥的使用次数,生成第二数据保护密钥,其中,第二私钥是由服务端生成私钥后,分割所述私钥得到的第二部分私钥分量。

在本申请实施例中,如前文所述,客户端和服务端共同进行数据签名时,客户端需要向服务端注册,这样服务端在进行数据签名时,可以获取到客户端的硬件信息,从而可以基于客户端的硬件信息和第二私钥的使用次数生成第二数据保护密钥。其中,当合法客户端与服务端共同进行数据签名时,合法客户端中存储的第一私钥使用次数与服务端中存储的第二私钥的使用次数是相同的,所以客户端生成的第一数据保护密钥和服务端生成的第二保护密钥也是相同的。

步骤206:服务端利用第二数据保护密钥对加密签名值进行解密,得到中间签名值。

在本申请实施例中,服务端在接收到客户端发送的加密签名值后,可以利用前述生成的第二数据保护密钥对该加密签名值进行解密,从而可以得到中间签名值。针对合法客户端而言,其生成的第一数据保护密钥与服务端生成的第二数据保护密钥是相同的,即客户端加密使用的数据保护密钥和解密使用的数据保护密钥相同,那么解密得到的中间签名值也是相同的,所以可以在一定程度保证中间签名值的安全性和真实性。

步骤207:服务端利用第二私钥对中间签名值进行签名得到最终签名值。

在本申请实施例中,服务端在解密得到中间签名值后,可以利用其存储的第二私钥对中间签名值进行签名,以得到最终数据签名值。

步骤208:服务端对最终签名值进行验证,并在最终签名值验证通过后,将该最终签名值发送给客户端,则客户端接收到服务端发送的最终签名值。

在本申请实施例中,服务端在得到最终签名值后,可以利用服务器存储的公钥对该最终签名值进行验证,若验证通过,则表明数据签名完成,可以将最终签名值发送给客户端,以便客户端使用最终签名值;若验证失败,则表明数据签名失败,最终签名值无法使用。

作为一种可选的实施方式,本申请实施例中,在客户端接收到服务端发送的通过验证的最终签名值后,可以更新存储的第一私钥的使用次数,例如,接收到最终签名值之前存储的第一私钥使用次数为5次,接收最终签名值之后更新的第一私钥使用次数则为6次。

相应的,服务端在将最终签名值发送给客户端之后,也可以更新自身存储的第二私钥的使用次数。也即,客户端和服务端在共同完成数据签名后,可以更新第一私钥和第二私钥的使用次数,使得客户端和服务端存储的第一私钥的使用次数和第二私钥的使用次数一致,从而确保客户端生成的第一数据保护密钥和服务端生成的第二数据保护密钥相同,进而使得客户端加密的中间签名值和服务端解密得到的中间签名值相同,提升数据签名的安全性。

作为一种可选的实施方式,在本申请实施例中,若服务端对最终签名值的验证失败,服务端可以向客户端发送反馈信息,进而客户端在接收到该反馈信息,可以根据反馈信息生成提示信息,该提示信息可以用于指示客户端存在第一私钥泄露的情况,以便客户端改善对第一私钥存储的安全管理。

作为一种可选的实施方式,本申请实施例中,数据签名时客户端使用的第一私钥和服务端使用的第二私钥可以是固定不变的,也可以在使用第一私钥和第二私钥进行数据签名的预定时长之后,服务端可以重新生成新的用于进行数据签名的私钥和公钥,进而可以将新生成的私钥分割为新的第一部分私钥分量和新的第二部分私钥分量,以更新客户端中的第一私钥和更新服务端中的第二私钥,从而可以进一步地提升数据签名的安全性和可靠性。

基于同一发明构思,本申请实施例还提供了一种数据签名的装置,该数据签名的装置可以设置在图1所示的客户端101中,该数据签名的装置能够实现前述的数据签名的方法对应的功能。该数据签名的装置可以是硬件结构、软件模块、或硬件结构加软件模块。该数据签名的装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图3所示,该数据签名的装置包括第一签名模块301、第一生成模块302、加密模块303、第一发送模块304、第一获得模块305和第一更新模块306。其中:

第一签名模块301,用于根据获得的第一私钥对签名信息进行签名,得到中间签名值,其中,第一私钥是由服务端生成私钥后,分割该私钥得到的第一部分私钥分量;

第一生成模块302,用于基于客户端的硬件信息以及当前第一私钥的使用次数,生成第一数据保护密钥;

加密模块303,用于利用第一数据保护密钥对中间签名值进行加密,获得加密签名值;

第一发送模块304,用于将加密签名值发送给服务端,使得服务端在对加密签名值进行解密后利用第二私钥对中间签名值进行签名以得到最终签名值;

第一获得模块305,用于获得服务端在所述最终签名值验证通过后发送的所述最终签名值。

在一种可能选的实施方式中,图3所述装置中包括的第一更新模块306用于在所述获得所述服务端在所述最终签名值验证通过后发送的最终签名值之后,更新第一私钥的使用次数。

在一种可能选的实施方式中,第一获得模块305还用于在获得所述服务端在最终签名值验证通过后发送的最终签名值之前,若服务端对最终签名值的验证失败,获得服务端发送的反馈信息;并根据反馈信息,生成提示信息,该提示信息用于指示存在第一私钥泄露的情况。

在一种可能选的实施方式中,第一更新模块306还用于在获得所述服务端在最终签名值验证通过后发送的最终签名值且满足预定时长后,根据获得的服务端重新生成的私钥中的第一部分私钥分量,更新第一私钥,得到更新后的第一私钥。

基于同一发明构思,本申请实施例还提供了一种数据签名的装置,该数据签名的装置可以设置在图1所示的服务端102中,该数据签名的装置能够实现前述的数据签名的方法对应的功能。该数据签名的装置可以是硬件结构、软件模块、或硬件结构加软件模块。该数据签名的装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图4a所示,该数据签名的装置包括第二获得模块401、第二生成模块402、解密模块403和第二签名模块404。其中:

第二获得模块401,用于获得客户端发送的加密签名值;

第二生成模块402,用于基于获取的客户端的硬件信息以及当前第二私钥的使用次数,生成第二数据保护密钥,其中,第二私钥由服务端生成私钥后,分割该私钥得到的第二部分私钥分量;

解密模块403,用于利用第二数据保护密钥对加密签名值进行解密,得到中间签名值;

第二签名模块404,用于利用第二私钥对中间签名值进行签名得到最终签名值,并在最终签名值验证通过后将最终签名值发送给所述客户端。

在一种可能选的实施方式中,如图4b所示,图4b所示的装置还包括第二更新模块405,该第二更新模块405用于在最终签名值验证通过后将最终签名值发送给客户端之后,更新第二私钥的使用次数。

在一种可能选的实施方式中,图4b所示装置还包括反馈模块406,该反馈模块406用于在最终签名值验证失败后,向客户端发送反馈信息,使得客户端根据反馈信息生成提示信息,提示信息用于指示客户端存在第一私钥泄露的情况。

在一种可能选的实施方式中,第二更新模块405还用于在将最终签名值发送给客户端且满足预定时长之后,根据获得的服务端重新生成的私钥中的第二部分私钥分量,更新第二私钥,得到更新后的第二私钥。

前述的数据签名的方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明实施例中的数据签名的装置所对应的功能模块的功能描述,在此不再赘述。

本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

基于同一发明构思,本申请实施例中提供了一种电子设备,该电子设备可以是硬件结构、软件模块、或硬件结构加软件模块。该电子设备可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图5,本申请实施例中的电子设备包括至少一个处理器501,以及与至少一个处理器连接的存储器502,本申请实施例中不限定处理器501与存储器502之间的具体连接介质,图5中是以处理器501和存储器502之间通过总线500连接为例,总线500在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线500可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在本申请实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的数据签名的方法所包括的步骤。

其中,处理器501是计算的控制中心,可以利用各种接口和线路连接整个计算的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,处理器501主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器501可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

通信接口503是能够用于进行通信的传输接口,可以通过通信接口503接收数据或者发送数据。以电子设备为图1中客户端101为例,当利用第一私钥完成对签名消息的签名后,客户端101可以通过通信接口503向服务端102发送生成的中间签名值。

基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行数据签名的方法的步骤。

在一些可能的实施方式中,本申请实施例提供的数据签名的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机上运行时,所述程序代码用于使所述计算机执行前文述描述的根据本发明各种示例性实施方式的数据签名的方法包括的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1