签名方法、终端设备及网络设备转让专利

申请号 : CN202010113302.5

文献号 : CN113300846B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱殿宏杨艳江胡瑞丰蒋飞虎

申请人 : 华为技术有限公司

摘要 :

本申请实施例公开了信息安全技术领域的签名方法、终端设备及网络设备,该方法包括:终端设备利用用户口令,生成第一私钥分片;该终端设备接收来自网络设备的第一签名和第一中间结果;该第一中间结果为该网络设备根据第二私钥分片和该第一签名计算得到的变量,该第二私钥分片来自于该终端设备且由该第一私钥分片和目标私钥得到,该第一签名为该网络设备确定的待签名信息的部分签名;该终端设备根据该第一私钥分片、该第一签名以及该第一中间结果,生成目标签名;该目标签名为该待签名信息的签名且包含该第一签名。终端设备不需要将私钥托管给服务端,在签名过程中能够保证私钥的安全性,无私钥泄漏风险。

权利要求 :

1.一种签名方法,其特征在于,包括:

终端设备利用用户口令,生成第一私钥分片;

所述终端设备接收来自网络设备的第一签名和第一中间结果;所述第一中间结果为所述网络设备根据第二私钥分片和所述第一签名计算得到的变量,所述第二私钥分片来自于所述终端设备且由所述第一私钥分片和目标私钥得到,所述第一签名为所述网络设备确定的待签名信息的部分签名;

所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名;所述目标签名为所述待签名信息的签名且包含所述第一签名;

所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名包括:所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成第二签名;

所述终端设备根据所述第一签名和所述第二签名,生成所述目标签名。

2.根据权利要求1所述的方法,其特征在于,所述终端设备利用用户口令,生成第一私钥分片之后,所述方法还包括:所述终端设备根据所述第一私钥分片,生成第二中间结果;

所述终端设备向所述网络设备发送所述第二中间结果和消息摘要;所述消息摘要为所述待签名信息的摘要,所述第二中间结果和所述消息摘要用于生成所述第一签名。

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述终端设备根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片;

所述终端设备向所述网络设备发送所述第二私钥分片。

4.根据权利要求1或2所述的方法,其特征在于,所述终端设备利用用户口令,生成第一私钥分片包括:所述终端设备根据所述用户口令、来自所述网络设备的盐值以及计算次数,生成所述第一私钥分片。

5.一种签名方法,其特征在于,包括:

网络设备接收来自终端设备的第二中间结果和消息摘要,所述消息摘要为待签名信息的摘要;

所述网络设备根据第二私钥分片、所述第二中间结果以及所述消息摘要,生成第一签名和第一中间结果;所述第二私钥分片来自于所述终端设备;

所述网络设备向所述终端设备发送所述第一签名和所述第一中间结果;所述第一签名和所述第一中间结果用于所述终端设备生成所述待签名信息的目标签名,所述目标签名包含所述第一签名;

所述网络设备根据第二私钥分片、所述第二中间结果以及所述消息摘要,生成第一签名和第一中间结果包括:所述网络设备根据所述第二私钥分片、所述第二中间结果以及所述消息摘要,生成所述第一签名;

所述网络设备根据所述第一签名和所述第二私钥分片,生成所述第一中间结果。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:所述网络设备接收来自所述终端设备的所述第二私钥分片;

所述网络设备存储所述第二私钥分片。

7.一种终端设备,其特征在于,包括:

生成单元,用于利用用户口令,生成第一私钥分片;

接收单元,用于接收来自网络设备的第一签名和第一中间结果;所述第一中间结果为所述网络设备根据第二私钥分片和所述第一签名计算得到的变量,所述第二私钥分片来自于终端设备且由所述第一私钥分片和目标私钥得到,所述第一签名为所述网络设备确定的待签名信息的部分签名;

所述生成单元,还用于根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名;所述目标签名为所述待签名信息的签名且包含所述第一签名;

所述生成单元,具体用于根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成第二签名;根据所述第一签名和所述第二签名,生成所述目标签名。

8.根据权利要求7所述的终端设备,其特征在于,

所述生成单元,还用于根据所述第一私钥分片,生成第二中间结果;所述终端设备还包括:第一发送单元,用于向所述网络设备发送所述第二中间结果和消息摘要;所述消息摘要为所述待签名信息的摘要,所述第二中间结果和所述消息摘要用于生成所述第一签名。

9.根据权利要求7或8所述的终端设备,其特征在于,所述生成单元,还用于根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片;所述终端设备还包括:第二发送单元,用于向所述网络设备发送所述第二私钥分片。

10.根据权利要求7或8所述的终端设备,其特征在于,所述生成单元,具体用于根据所述用户口令、来自所述网络设备的盐值以及计算次数,生成所述第一私钥分片。

11.一种网络设备,其特征在于,包括:

接收单元,用于接收来自终端设备的第二中间结果和消息摘要,所述消息摘要为待签名信息的摘要;

生成单元,用于根据第二私钥分片、所述第二中间结果以及所述消息摘要,生成第一签名和第一中间结果;所述第二私钥分片来自于所述终端设备;

发送单元,用于向所述终端设备发送所述第一签名和所述第一中间结果;所述第一签名和所述第一中间结果用于所述终端设备生成所述待签名信息的目标签名,所述目标签名包含所述第一签名‘所述生成单元,用于具体用于根据所述第二私钥分片、所述第二中间结果以及所述消息摘要,生成所述第一签名;根据所述第一签名和所述第二私钥分片,生成所述第一中间结果。

12.根据权利要求11所述的网络设备,其特征在于,所述接收单元,还用于接收来自所述终端设备的所述第二私钥分片;所述网络设备还包括:存储单元,用于存储所述第二私钥分片。

13.一种终端设备,其特征在于,包括存储器和处理器;所述存储器,用于存储程序;所述处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至4任一项所述的方法。

14.一种网络设备,其特征在于,包括存储器和处理器;所述存储器,用于存储程序;所述处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求5至6任一项所述的方法。

15.一种终端设备,其特征在于,包括处理器和接口电路;

所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如权利要求1至4任一项所述的方法。

16.一种网络设备,其特征在于,包括处理器和接口电路;

所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如权利要求5至6任一项所述的方法。

17.一种可读存储介质,用于存储指令,当所述指令被执行时,使如权利要求1至4任一项所述的方法被实现。

18.一种可读存储介质,用于存储指令,当所述指令被执行时,使如权利要求5至6任一项所述的方法被实现。

19.一种签名系统,其特征在于,所述签名系统包括终端设备和网络设备,所述终端设备用于执行如权利要求1至4任一项所述的方法,所述网络设备用于执行如权利要求5或6所述的方法。

说明书 :

签名方法、终端设备及网络设备

技术领域

[0001] 本申请涉及信息安全技术领域,尤其涉及一种签名方法、终端设备及网络设备。

背景技术

[0002] 在当下网络交易过程中,数字签名已经成为了一个非常常见的概念,一般是用来证实数据内容的完整性和来源。以比特币的数字签名为例,它是由比特币转账的转出方生成的一段防伪造的字符串,可以用来验证签字者的身份和签字内容,从而证实被签信息是否真实正确。
[0003] 数字签名是只有信息的发送者才能产生的一段数字串(即别人无法伪造),这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的。数字签名是非对称密钥加密技术与数字摘要技术的一种应用。当前,通常采用的数字签名方案中,发送方首先对发送文件采用哈希算法,得到一个固定长度的消息摘要(message digest);再用自己的私钥(secret key,SK)对消息摘要进行签名,形成发送方的数字签名;将数字签名和原文一起发送给接收方;接收方首先用发送方的公钥对数字签名进行解密得到发送方的数字摘要,然后用相同的哈希函数对原文进行哈希计算,得到一个新的消息摘要,最后将哈希计算得到的消息摘要与解密得到的消息摘要做比较。
[0004] 数字签名有两种功效:一是能确定消息确实是由发送方签名并发送出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。也就是说,不同的文件将得到不同的数字摘要。一次数字签名涉及到哈希函数、签名所用私钥及其私钥对应的公钥。在使用第三方提供的区块链服务的场景中,当用户发起交易时,需要使用用户个人的私钥对交易进行签名,然后才能发送到区块链上。在使用第三方提供的区块链服务时,如果将私钥完全托管给第三方进行签名操作,存在私钥被泄露的风险。因此,需要研究不将私钥完全托管给第三方进行签名操作的签名方法。

发明内容

[0005] 本申请实施例公开了一种签名方法、终端设备及网络设备,不需要将私钥托管给服务端,在签名过程中保证用户私钥的安全性,无私钥泄漏风险。
[0006] 第一方面,本申请实施例提供了一种签名方法,该方法包括:终端设备利用用户口令,生成第一私钥分片;所述终端设备接收来自网络设备的第一签名和第一中间结果;所述第一中间结果为所述网络设备根据第二私钥分片和所述第一签名计算得到的变量,所述第二私钥分片来自于所述终端设备且由所述第一私钥分片和目标私钥得到,所述第一签名为所述网络设备确定的待签名信息的部分签名;所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名;所述目标签名为所述待签名信息的签名且包含所述第一签名。
[0007] 可选的,所述终端设备可以根据所述第一私钥分片和所述目标私钥分片得到所述第二私钥分片,并将所述第二私钥分片发送给所述网络设备。所述目标私钥可以理解为一个完整的私钥。终端设备在签名的过程中,利用用户口令生成第一私钥分片;网络设备利用其存储的来自终端设备的第二私钥分片,生成第一签名和第一中间结果;终端设备利用该第一私钥分片、该第一签名以及该第一中间结果,生成目标签名。该目标签名为待签名信息的完整签名。可以理解,在本申请实施例提供的签名方法中,网络设备(对应于第三方)仅存储有第二私钥分片,即未将私钥完全托管网络设备,不存在私钥被泄露的风险。
[0008] 本申请实施例中,终端设备不需要将私钥托管给服务端,在签名过程中能够保证私钥的安全性,无私钥泄漏风险。
[0009] 在一个可选的实现方式中,所述终端设备利用用户口令,生成第一私钥分片之后,所述方法还包括:所述终端设备根据所述第一私钥分片,生成第二中间结果;所述终端设备向所述网络设备发送所述第二中间结果和消息摘要;所述消息摘要为所述待签名信息的摘要,所述第二中间结果和所述消息摘要用于生成所述第一签名。
[0010] 示例性的,终端设备根据所述第一私钥分片,生成第二中间结果可以是:所述终端设备产生第一随机数k1;根据所述第一私钥分片sk1和所述第一随机数k1,生成所述第二中‑1间结果G1=[sk1 k1]G;其中,G表示椭圆曲线的基点。所述消息摘要可以是所述终端设备采用任一种哈希算法对所述待签名信息进行处理得到的摘要。
[0011] 在该实现方式中,终端设备根据第一私钥分片生成第二中间结果,并向网络设备发送该第二中间结果和消息摘要,以便于接收到来自该网络设备的部分签名,进而完成签名操作,能够保证签名的安全性。
[0012] 在一个可选的实现方式中,所述方法还包括:所述终端设备利用所述用户口令,生成所述第一私钥分片;所述终端设备根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片;所述终端设备向所述网络设备发送所述第二私钥分片。
[0013] 举例来说,目标私钥(即原始完整私钥)为sk;终端设备利用用户口令,生成第一私钥分片sk1;根据第一私钥分片sk1和该目标私钥sk计算得到第二私钥分片sk2。其中,sk2=(sk/sk1)mod n,mod n表示对n取模,n是椭圆曲线G点的阶数。第一私钥分片可以理解为目标私钥的客户端(对应于终端设备)分片,第二私钥分片可以理解为该目标私钥的服务端(对应于网络设备)分片。
[0014] 在该实现方式中,终端设备利用第一私钥分片和目标私钥,生成第二私钥分片,并发送给网络设备;以便于该网络设备利用第二私钥分片生成部分签名,并且避免该网络设备存储有该目标私钥。
[0015] 在一个可选的实现方式中,所述终端设备根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片之后,所述方法还包括:删除所述目标私钥。
[0016] 删除所述目标私钥可以是清除或者丢弃所述目标私钥,即不保留所述目标私钥。也就是说,终端设备根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片之后,所述终端设备是未存储有所述目标私钥的。由于终端设备在某些场景下不具备存储私钥的条件,需要允许终端设备在不存储私钥的条件下仍然可以使用区块链服务。本申请实施例提供的签名方法中,终端设备在向网络设备发送第二私钥分片之后,不需要存储目标私钥(即完整原始私钥),仅需在签名时利用用户口令生成第一私钥分片。也就是说,本申请实施例提供的签名方法中,终端设备不需要具备存储私钥的条件,适用场景广。
[0017] 在一个可选的实现方式中,所述终端设备利用用户口令,生成第一私钥分片包括:所述终端设备根据所述用户口令、来自所述网络设备的盐值以及计算次数,生成所述第一私钥分片。
[0018] 示例性的,当终端设备需要对交易进行签名时,可以根据用户口令、网络设备发送的盐值以及计算次数k作为输入参数,采用任一哈希算法重复计算k次得到第一私钥分片sk1。可选的,所述终端设备根据所述用户口令、来自所述网络设备的盐值以及计算次数,生成所述第一私钥分片之前,接收来自所述网络设备的盐值以及计算次数。
[0019] 在该实现方式中,可以快速的生成第一私钥分片。
[0020] 在一个可选的实现方式中,所述终端设备利用用户口令,生成第一私钥分片之前,所述方法还包括:接收用户输入的所述用户口令。所述用户口令可以是一组字符串,也可以是语音口令,还可以是其他类型的口令。
[0021] 在一个可选的实现方式中,所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名包括:所述终端设备根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成第二签名;所述终端设备根据所述第一签名和所述第二签名,生成所述目标签名。示例性的,合并所述第一签名和所述第二签名以得到所述目标签名。
[0022] 第二方面,本申请实施例提供了一种签名方法,该方法包括:网络设备接收来自终端设备的第二中间结果和消息摘要,所述消息摘要为待签名信息的摘要;所述网络设备根据第二私钥分片、所述第二中间结果以及所述消息摘要,生成第一签名和第一中间结果;所述第二私钥分片来自于所述终端设备;所述网络设备向所述终端设备发送所述第一签名和所述第一中间结果;所述第一签名和所述第一中间结果用于所述终端设备生成所述待签名信息的目标签名,所述目标签名包含所述第一签名。
[0023] 本申请实施例中,网络设备利用来自终端设备的第二私钥分片、第二中间结果以及消息摘要,生成第一签名和第一中间结果;不需要执行生成第二私钥分片的操作,签名效率高。
[0024] 在一个可选的实现方式中,所述方法还包括:所述网络设备接收来自所述终端设备的所述第二私钥分片;所述网络设备存储所述第二私钥分片。
[0025] 在该实现方式中,网络设备接收并存储来自终端设备的第二私钥分片,直接利用该第二私钥分片就能够生成部分签名,而不需要执行生成私钥分片的操作,签名效率高。
[0026] 在一个可选的实现方式中,所述方法还包括:所述网络设备向所述终端设备发送盐值和计算次数,所述盐值和所述计算次数用于所述终端设备生成所述第一私钥分片。
[0027] 第三方面,本申请实施例提供了一种终端设备,包括:生成单元,用于利用用户口令,生成第一私钥分片;接收单元,用于接收来自网络设备的第一签名和第一中间结果;所述第一中间结果为所述网络设备根据第二私钥分片和所述第一签名计算得到的变量,所述第二私钥分片来自于终端设备且由所述第一私钥分片和目标私钥得到,所述第一签名为所述网络设备确定的待签名信息的部分签名;所述生成单元,还用于根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成目标签名;所述目标签名为所述待签名信息的签名且包含所述第一签名。
[0028] 在一个可选的实现方式中,所述生成单元,还用于根据所述第一私钥分片,生成第二中间结果;所述终端设备还包括:第一发送单元,用于向所述网络设备发送所述第二中间结果和消息摘要;所述消息摘要为所述待签名信息的摘要,所述第二中间结果和所述消息摘要用于生成所述第一签名。
[0029] 在一个可选的实现方式中,所述生成单元,还用于根据所述目标私钥和所述第一私钥分片,生成所述第二私钥分片;所述终端设备还包括:第二发送单元,用于向所述网络设备发送所述第二私钥分片。
[0030] 在一个可选的实现方式中,所述生成单元,具体用于根据所述用户口令、来自所述网络设备的盐值以及计算次数,生成所述第一私钥分片。
[0031] 在一个可选的实现方式中,所述终端设备还包括:删除单元,用于所述目标私钥。
[0032] 示例性的,所述删除单元,具体用于在所述生成单元生成所述第二私钥分片之后,删除所述目标私钥。
[0033] 在一个可选的实现方式中,所述终端设备还包括:输入单元,用于接收用户输入的所述用户口令。所述用户口令可以是一组字符串,也可以是语音口令,还可以是其他类型的口令。
[0034] 在一个可选的实现方式中,所述生成单元,具体用于根据所述第一私钥分片、所述第一签名以及所述第一中间结果,生成第二签名;根据所述第一签名和所述第二签名,生成所述目标签名。示例性的,合并所述第一签名和所述第二签名以得到所述目标签名。
[0035] 第四方面,本申请实施例提供了一种网络设备,包括:接收单元,用于接收来自终端设备的第二中间结果和消息摘要,所述消息摘要为待签名信息的摘要;生成单元,用于根据第二私钥分片、所述第二中间结果以及所述消息摘要,生成第一签名和第一中间结果;所述第二私钥分片来自于所述终端设备;发送单元,用于向所述终端设备发送所述第一签名和所述第一中间结果;所述第一签名和所述第一中间结果用于所述终端设备生成所述待签名信息的目标签名,所述目标签名包含所述第一签名。
[0036] 在一个可选的实现方式中,所述接收单元,还用于接收来自所述终端设备的所述第二私钥分片;所述网络设备还包括:存储单元,用于存储所述第二私钥分片。
[0037] 第五方面,本申请实施例提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器用于存储程序;所述处理器用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行上述第一方面所述的签名方法。
[0038] 第六方面,本申请实施例提供一种终端设备,所述终端设备包括处理器和接口电路,所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如上述第一方面所述的签名方法。
[0039] 第七方面,本申请实施例提供一种网络设备,所述网络设备包括处理器和存储器,所述存储器用于存储程序;所述处理器用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行上述第二方面所述的签名方法。
[0040] 第八方面,本申请实施例提供一种网络设备,所述网络设备包括处理器和接口电路,所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如上述第二方面所述的签名方法。
[0041] 第九方面,本申请实施例提供一种签名系统,所述签名系统包括终端设备和网络设备,所述终端设备可用于执行如第一方面所述的方法,所述网络设备用于执行如第二方面所述的方法。
[0042] 第十方面,本申请实施例提供一种可读存储介质,所述可读存储介质用于存储指令,当所述指令被执行时,使得上述第一方面所述的方法被实现。
[0043] 第十一方面,本申请实施例提供一种可读存储介质,所述可读存储介质用于存储指令,当所述指令被执行时,使得上述第二方面所述的方法被实现。
[0044] 第十二方面,本申请实施例提供一种包括指令的计算机程序产品,当所述指令被执行时,使得上述第一方面所述的方法被实现。
[0045] 第十三方面,本申请实施例提供一种包括指令的计算机程序产品,当所述指令被执行时,使得上述第二方面所述的方法被实现。

附图说明

[0046] 为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
[0047] 图1A为本申请实施例提供的一种签名过程示意图;
[0048] 图1B为本申请实施例提供的一种签名系统的网络架构示意图;
[0049] 图2为本申请实施例提供的一种签名方法流程图;
[0050] 图3为本申请实施例提供的另一种签名方法流程图;
[0051] 图4A为本申请实施例提供的一种生成第一私钥分片的过程示意图;
[0052] 图4B为本申请实施例提供的一种生成第二私钥分片的过程示意图;
[0053] 图5为本申请实施例提供的另一种签名方法流程图;
[0054] 图6为本申请实施例提供的一种签名交互流程图;
[0055] 图7为本申请实施例提供的另一种签名交互流程图;
[0056] 图8为本申请实施例提供的一种终端设备的结构示意图;
[0057] 图9为本申请实施例提供的一种网络设备的结构示意图;
[0058] 图10为本申请实施例提供的另一种网络设备的结构示意图;
[0059] 图11为本申请实施例提供的一种终端设备1100的结构示意图。

具体实施方式

[0060] 本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。“和/或”用于表示在其所连接的两个对象之间选择一个或全部。
[0061] 如背景技术所述,需要研究不将私钥完全托管给第三方(即服务端)进行签名操作的签名方法。本申请实施例公开的签名方法、终端设备及网络设备,未将私钥完全托管给服务端,能够保证私钥不被泄漏。另外,本申请实施例公开的签名方法、终端设备及网络设备还能够解决终端设备(即客户端)在某些场景不能够存储私钥的问题。也就是说,在采用本申请实施例公开的签名方法进行签名的过程中,终端设备不需要存储有私钥。应理解,本申请实施例公开的签名方法适用于终端设备(即客户端)无法存储私钥,网络设备(即服务端)无法保证私钥安全性的场景。下面先整体描述一下本申请实施例提供的签名方案。
[0062] 图1A为本申请实施例提供的一种签名过程示意图。如图1A所示,当终端设备(即客户端)需要进行签名时,接收用户输入的用户口令;然后,终端设备发送根据该用户口令生成的相关结果给网络设备(即服务端);网络设备利用自身的私钥分片(对应于第二私钥分片)生成一部分签名(对应于第一签名),然后发送给终端设备;终端设备再完成另一部分的签名(对应于第二签名),最终得到消息的完整签名(对应于目标签名)。
[0063] 下面介绍本申请实施例公开的签名方法所适用的签名系统的网络架构。
[0064] 图1B为本申请实施例提供的一种签名系统的网络架构示意图。如图1B所示,该签名系统包括终端设备和网络设备。下面结合图1B来介绍实现签名的部分流程:101、终端设备根据用户输入的用户口令,生成第一私钥分片。102、终端设备根据该第一私钥分片,生成第二中间结果,并向网络设备发送消息摘要和该第二中间结果。该消息摘要是利用待签名信息得到的。103、网络设备根据消息摘要、第二中间结果以及来自于终端设备的第二私钥分片,生成第一签名和第一中间结果,并将该第一签名和该第一中间结果发送给终端设备。104、终端设备根据第一私钥分片、第一签名以及第一中间结果,生成目标签名(即图1A中的完整签名)。105、终端设备将待签名信息和目标签名发送给网络设备。后续在详述图1B中各步骤的实现方式,这里先不作详述。
[0065] 下面先介绍终端设备执行的签名流程,即客户端执行的签名流程。
[0066] 图2为本申请实施例提供的一种签名方法流程图。如图2所示,该方法可包括:
[0067] 201、终端设备利用用户口令,生成第一私钥分片。
[0068] 终端设备可以是手机、平板电脑、笔记本电脑、可穿戴设备等可执行签名操作的电子设备。可选的,终端设备在执行步骤201之前,可接收用户输入的上述用户口令。举例来说,终端设备在对待签名信息进行签名之前,显示输入界面,通过该输入界面接收用户输入的用户口令,例如一组字符串。可选的,终端设备利用用户口令,生成第一私钥分片可以是:终端设备利用用户口令、盐值以及计算次数,采用哈希算法生成上述第一私钥分片。哈希(hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值(即哈希值)。示例性的,终端设备根据用户口令、来自网络设备的盐值以及计算次数,生成第一私钥分片。在一些实施例中,终端设备利用基于密码的密钥派生函数(Password‑Based Key Derivation Function,PBKDF)2算法将用户口令、服务端发送的盐值以及计算次数k作为输入参数,重复计算k次哈希(hash)运算得到第一私钥分片。PBKDF2算法的原理是通过用户口令(对应于password)和盐值(salt)进行哈希计算,然后将得到的结果作为新的盐值再与用户口令进行哈希计算,多次重复此过程,生成第一私钥分片。此过程可能达到上千次,逆向破解的难度太大,破解一个密码的时间可能需要几百年,所以PBKDF2算法是安全的。
[0069] 202、终端设备接收来自网络设备的第一签名和第一中间结果。
[0070] 上述第一中间结果为上述网络设备根据第二私钥分片和上述第一签名计算得到的变量,上述第二私钥分片来自于上述终端设备且由上述第一私钥分片和目标私钥得到,上述第一签名为上述网络设备确定的待签名信息的部分签名。可选的,目标私钥为一个完整的私钥。
[0071] 终端设备在执行步骤201之后,可以执行如下操作:上述终端设备根据上述第一私钥分片,生成第二中间结果;上述终端设备向上述网络设备发送上述第二中间结果和消息摘要;上述消息摘要为上述待签名信息的摘要,上述第二中间结果和上述消息摘要用于生成上述第一签名。示例性的,终端设备根据上述第一私钥分片,生成第二中间结果可以是:上述终端设备产生第一随机数k1;根据上述第一私钥分片sk1和上述第一随机数k1,生成上‑1 ‑1
述第二中间结果G1;其中,G1=[sk1 k1]G,G表示椭圆曲线的基点。[sk1 k1]G表示椭圆曲线‑1
上的标量乘法,等价于G+G+…+G,即sk1 k1个G进行椭圆曲线加法。上述消息摘要可以是上述终端设备采用任一种哈希算法对上述待签名信息进行处理得到的摘要。假定待签名信息为M,则该待签名信息的摘要为e=hash(M),hash(M)表示对待签名信息进行哈希计算,hash()表示哈希函数。哈希函数是一个数学方程式,它可用文本(如待签名信息)来生成称为信息摘要的代码。应理解,终端设备向网络设备发送第二中间结果和消息摘要之后,该网络设备可利用该第二中间结果、该消息摘要以及其存储的来自于该终端设备的第二私钥分片,生成第一签名和第一中间结果,并发送给该终端设备(对应于步骤202)。
[0072] 203、终端设备根据第一私钥分片、第一签名以及第一中间结果,生成目标签名。
[0073] 上述目标签名为上述待签名信息的签名且包含上述第一签名。终端设备根据第一私钥分片、第一签名以及第一中间结果,生成目标签名的一种实现方式如下:上述终端设备根据上述第一私钥分片、上述第一签名以及上述第一中间结果,生成第二签名;上述终端设备根据上述第一签名和上述第二签名,生成上述目标签名。示例性的,终端设备合并上述第一签名和上述第二签名以得到上述目标签名。例如,第一签名为r,第二签名为s,目标签名为(r,s)。
[0074] 终端设备在执行步骤203之后,还可以执行如下操作:向网络设备发送上述目标签名和待签名信息。
[0075] 本申请实施例中,终端设备不需要将私钥托管给服务端,在签名过程中能够保证私钥的安全性,无私钥泄漏风险。
[0076] 图2描述了客户端(即终端设备)执行的签名流程。在实际应用中,终端设备在执行图2的签名方法流程之前,需要生成并向网络设备发送第二私钥分片。下面介绍终端设备生成并向网络设备发送第二私钥分片的方法流程。
[0077] 图3为本申请实施例提供的另一种签名方法流程图。如图3所示,该方法可包括:
[0078] 301、终端设备利用用户口令,生成第一私钥分片。
[0079] 示例性的,终端设备根据用户口令、来自网络设备的盐值以及计算次数,生成第一私钥分片。在一些实施例中,终端设备将用户口令(对应于password)和盐值(salt)进行哈希计算,然后将得到的结果作为新的盐值再与该用户口令进行哈希计算,多次重复此过程,生成第一私钥分片。盐值(salt)在密码学中,是指在散列之前将散列内容(例如密码)的任意固定位置插入特定的字符串。这个在散列中加入字符串的方式称为“加盐”,其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。图4A为本申请实施例提供的一种生成第一私钥分片的过程示意图。如图4A所示,输入参数包括用户口令、盐值以及计算次数,终端设备采用PBKDF2算法,根据输入参数执行多次重复计算得到第一私钥分片。在一些实施例中,终端设备在执行步骤301之前可接收来自网络设备的盐值和计算次数,进而利用用户口令、来自网络设备的盐值以及计算次数生成第一私钥分片。在一些实施例中,终端设备可存储有利用用户口令生成第一私钥分片所需的盐值和计算次数,该终端设备接收到用户输入的用户口令之后,可利用该用户口令、其存储的盐值和计算次数,生成第一私钥分片。
[0080] 302、终端设备根据目标私钥和上述第一私钥分片,生成第二私钥分片。
[0081] 上述目标私钥可以理解为原始完整私钥。示例性的,目标私钥为sk,第一私钥分片为sk1,终端设备可执行如下计算公式来根据目标私钥和上述第一私钥分片生成第二私钥分片:sk2=(sk/sk1)mod n;其中,sk2表示第二私钥分片,mod n表示对n取模,n是椭圆曲线G点的阶数,sk/sk1表示sk除以sk1。图4B为本申请实施例提供的一种生成第二私钥分片的过程示意图。如图4B所示,输入参数包括用户口令、盐值以及计算次数,终端设备先采用PBKDF2算法,根据输入参数执行多次重复计算得到第一私钥分片;然后,根据目标私钥和上述第一私钥分片,生成第二私钥分片。
[0082] 可选的,终端设备在根据上述目标私钥和上述第一私钥分片,生成上述第二私钥分片之后,删除上述目标私钥。删除上述目标私钥可以是清除或者丢弃上述目标私钥,即不保留上述目标私钥。也就是说,终端设备根据上述目标私钥和上述第一私钥分片,生成上述第二私钥分片之后,上述终端设备是未存储有上述目标私钥的。由于终端设备在某些场景下不具备存储私钥的条件,需要允许终端设备在不存储私钥的条件下仍然可以使用区块链服务。本申请实施例提供的签名方法中,终端设备在向网络设备发送第二私钥分片之后,不需要存储目标私钥(即完整原始私钥),仅需在签名时利用用户口令生成第一私钥分片。也就是说,本申请实施例提供的签名方法中,终端设备不需要具备存储私钥的条件,适用场景更广。
[0083] 303、终端设备向网络设备发送上述第二私钥分片。
[0084] 本申请实施例中,终端设备利用第一私钥分片和目标私钥,生成第二私钥分片,并发送给网络设备;以便于该网络设备利用第二私钥分片生成部分签名,并且避免该网络设备存储有该目标私钥。
[0085] 图2描述了客户端执行的签名流程。下面介绍服务端(即终端设备)执行的签名方法流程。
[0086] 图5为本申请实施例提供的另一种签名方法流程图。如图5所示,该方法包括:
[0087] 501、网络设备接收来自终端设备的第二中间结果和消息摘要。
[0088] 上述消息摘要为待签名信息的摘要。上述网络设备可以是服务器,也可以是区块链节点,还可以是其他设备。
[0089] 502、网络设备根据第二私钥分片、上述第二中间结果以及上述消息摘要,生成第一签名和第一中间结果。
[0090] 上述第二私钥分片来自于上述终端设备。在一些实施例中,网络设备在执行步骤502之前,可接收来自终端设备的上述第二私钥分片,并存储上述第二私钥分片。也就是说,网络设备存储有来自终端设备的上述第二私钥分片,该网络设备在签名过程中不需要生成上述第二私钥分片。可选的,网络设备根据第二私钥分片、上述第二中间结果以及上述消息摘要,生成第一签名和第一中间结果的一种实现方式如下:网络设备生成第二随机数k2;采用如下计算公式计算椭圆曲线上的某个点的坐标(即椭圆曲线中的倍点运算结果):(x1,y1)‑1 ‑1
=[sk2 k2]G+[sk2 ]G1,其中,sk2表示第二私钥分片、G1表示第二中间结果、G表示椭圆曲线的基点、k2表示第二随机数;采用如下计算公式计算第一签名:r=(x1+e)mod n,其中,r表示第一签名,e表示消息摘要,mod n表示对n取模,n表示椭圆曲线的基点的阶数;采用如下计算公式计算第一中间结果:t=sk2*r+k2,其中,sk2表示第二私钥分片、r表示第一签名、k2表示第二随机数。
[0091] 503、网络设备向上述终端设备发送上述第一签名和上述第一中间结果。
[0092] 上述第一签名和上述第一中间结果用于上述终端设备生成上述待签名信息的目标签名,上述目标签名包含上述第一签名。
[0093] 本申请实施例中,网络设备利用来自终端设备的第二私钥分片、第二中间结果以及消息摘要,生成第一签名和第一中间结果;不需要执行生成第二私钥分片的操作,签名效率高。
[0094] 图2描述了客户端执行的签名流程,图5描述了服务端执行的签名流程。本申请实施例提供的签名方法需要终端设备(即客户端)和网络设备(即服务端)共同实现。下面介绍终端设备和网络设备实现签名方法的交互流程。
[0095] 图6为本申请实施例提供的一种签名交互流程图。如图6所示,该方法可包括:
[0096] 601、终端设备对待签名信息进行哈希计算,得到消息摘要。
[0097] 602、终端设备利用用户口令,生成第一私钥分片。
[0098] 可选的,终端设备在执行步骤602之前,可接收用户输入的用户口令。举例来说,终端设备在对待签名信息进行签名之前,显示输入界面,通过该输入界面接收用户输入的用户口令,例如一组字符串。步骤602的实现方式可与步骤301的实现方式类似。
[0099] 603、终端设备根据第一私钥分片,生成第二中间结果。
[0100] 示例性的,终端设备根据上述第一私钥分片,生成第二中间结果可以是:终端设备产生第一随机数k1;根据上述第一私钥分片sk1和上述第一随机数k1,生成上述第二中间结‑1果G1;其中,G1=[sk1 k1]G,G表示椭圆曲线的基点。可选的,终端设备存储有椭圆曲线、该椭圆曲线的基点以及该基点的阶数等信息,以便于利用这些信息生成第二中间结果。
[0101] 终端设备在执行步骤604之前,需要执行步骤601以得到待签名信息的消息摘要。但是,终端设备可先执行步骤601,再先后执行步骤602和步骤603;也可以先后执行步骤
602、步骤603、步骤601;还可以先后执行步骤602、步骤601、步骤603。
[0102] 604、终端设备向网络设备发送消息摘要和第二中间结果。
[0103] 上述消息摘要和上述第二中间结果用于网络设备生成第一签名。
[0104] 605、网络设备根据第二私钥分片和第二中间结果,生成临时结果。
[0105] 可选的,网络设备根据第二私钥分片和第二中间结果,生成临时结果的一种实现‑方式如下:网络设备生成第二随机数k2;采用如下计算公式计算临时结果:(x1,y1)=[sk2
1 ‑1
k2]G+[sk2 ]G1,其中,(x1,y1)表示临时结果,sk2表示第二私钥分片、G1表示第二中间结果、G表示椭圆曲线的基点、k2表示第二随机数。网络设备可存储有椭圆曲线的基点G以及该基点G的阶数。
[0106] 606、网络设备根据临时结果,生成第一签名。
[0107] 网络设备根据临时结果,生成第一签名的一种实现方式如下:采用如下计算公式计算第一签名:r=(x1+e)mod n,其中,r表示第一签名,e表示消息摘要,mod n表示对n取模,n表示椭圆曲线的基点的阶数。
[0108] 607、网络设备根据第一签名和第二私钥分片,生成第一中间结果。
[0109] 可选的,网络设备采用如下计算公式计算第一中间结果:t=sk2*r+k2,其中,t表示第一中间结果,sk2表示第二私钥分片、r表示第一签名、k2表示第二随机数。
[0110] 608、网络设备向终端设备发送第一签名和第一中间结果。
[0111] 609、终端设备生成第二签名。
[0112] 终端设备生成第二签名可以是:终端设备根据第一私钥分片、第一签名、第一随机数k1以及第一中间结果,采用如下计算公式生成第二签名:s=sk1*t+k1‑r,其中,s表示第二签名,sk1表示第一私钥分片,k1表示第一随机数,t表示第一中间结果,r表示第一签名。
[0113] 610、终端设备根据第一签名和第二签名,得到目标签名。
[0114] 示例性的,合并上述第一签名和上述第二签名以得到上述目标签名。举例来说,r表示第一签名,s表示第二签名,目标签名为(r,s)。
[0115] 611、终端设备向网络设备发送目标签名和待签名信息。
[0116] 在图6中的签名方法流程中,终端设备和网络设备均不需要存储有完整的私钥,网络设备仅需存储私钥分片,既使得终端设备(即客户端)不需要本地存储私钥,也不需要将完整的私钥托管给网络设备(即服务端)。应理解,采用图6中的签名方法流程实现了签名过程中保证用户私钥的安全性,无私钥泄漏风险。
[0117] 在实际应用中,终端设备在执行图2的签名方法流程之前,需要生成并向网络设备发送第二私钥分片。下面介绍终端设备生成并向网络设备发送第二私钥分片的方法流程。
[0118] 图6介绍了终端设备和网络设备实现签名方法的交互流程。在实际的应用场景中,终端设备和网络设备实现图6中的签名方法之前,终端设备需要生成并向网络设备发送第二私钥分片。下面介绍另一种终端设备和网络设备实现签名方法的交互流程。
[0119] 图7为本申请实施例提供的另一种签名交互流程图。图7中的交互流程是对图6中的交互流程的进一步完善,即增加了实现图6中的签名流程之前,所需完成的准备工作。如图7所示,该方法可包括:
[0120] 701、终端设备利用用户口令,生成第二私钥分片。
[0121] 在一些实施例中,终端设备利用用户口令,生成第二私钥分片可以是:先利用用户口令,生成第一私钥分片;在根据目标私钥和该第一私钥分片,生成第二私钥。终端设备利用用户口令,生成第一私钥分片的方式可以与步骤301的实现方式相同,这里不再赘述。上述目标私钥可以理解为原始完整私钥。示例性的,目标私钥为sk,第一私钥分片为sk1,终端设备可执行如下计算公式来根据目标私钥和上述第一私钥分片生成第二私钥分片:sk2=(sk/sk1)mod n;其中,sk2表示第二私钥分片,sk表示目标私钥,sk1表示第一私钥分片,n表示椭圆曲线的基点的阶数。可选的,终端设备在根据目标私钥和该第一私钥分片,生成第二私钥之前,可删除该目标私钥,以避免该目标私钥被泄露。
[0122] 702、终端设备将第二私钥分片发送至网络设备。
[0123] 703、终端设备对待签名信息进行哈希计算,得到消息摘要。
[0124] 704、终端设备利用用户口令,生成第一私钥分片。
[0125] 705、终端设备根据第一私钥分片,生成第二中间结果。
[0126] 706、终端设备向网络设备发送消息摘要和第二中间结果。
[0127] 上述消息摘要和上述第二中间结果用于网络设备生成第一签名。
[0128] 707、网络设备根据第二私钥分片和第二中间结果,生成临时结果。
[0129] 708、网络设备根据临时结果,生成第一签名。
[0130] 709、网络设备根据第一签名和第二私钥分片,生成第一中间结果。
[0131] 710、网络设备向终端设备发送第一签名和第一中间结果。
[0132] 711、终端设备生成第二签名。
[0133] 712、终端设备根据第一签名和第二签名,得到目标签名。
[0134] 示例性的,合并上述第一签名和上述第二签名以得到上述目标签名。举例来说,r表示第一签名,s表示第二签名,目标签名为(r,s)。
[0135] 713、终端设备向网络设备发送目标签名和待签名信息
[0136] 图7中的步骤703至步骤713依次对应于图6中的步骤601至步骤611。也就是说,步骤703的实现方式与步骤601的实现方式相同,步骤704的实现方式与步骤602的实现方式相同,以此类推。
[0137] 前述多个实施例涉及到生成第一私钥分片和第二私钥分片的操作。图4A和图4B也分别描述了生成第一私钥分片和生成第二私钥分片的过程。下面介绍生成第二私钥分片的一个举例以及生成第二私钥分片的代码举例。
[0138] 可选的,终端设备调用pbkdf2(password,salt,iterations,keylen,digest)函数来生成第二私钥分片,其中参数password表示用户输入的用户口令,参数salt表示指定的盐值,参数iterations表示哈希计算的计算次数,参数keylen表示输出第二私钥分片的长度,参数digest表示指定的哈希算法。在一些实施例中,终端设备在调用pbkdf2(password,salt,iterations,keylen,digest)函数来生成第二私钥分片之前,可接收用户输入的用户口令,并获取盐值salt、计算次数iterations、第二私钥分片的长度keylen以及指定的哈希算法digest。可选的,终端设备配置有盐值salt、计算次数iterations、第二私钥分片的长度keylen以及指定的哈希算法digest。可选的,终端设备从网络设备获取盐值salt、计算次数iterations、第二私钥分片的长度keylen以及指定的哈希算法digest。可选的,终端设备配置有盐值salt、计算次数iterations、第二私钥分片的长度keylen以及指定的哈希算法digest中的一部分参数,从网络设备获取另一部分参数,例如盐值salt和计算次数iterations。
[0139] 可选的,pbkdf2(password,salt,iterations,keylen,digest)函数的代码如下:
[0140]
[0141]
[0142] 终端设备调用pbkdf2(password,salt,iterations,keylen,digest)可利用用户口令,生成指定长度的第二私钥分片,安全性高。
[0143] 前述实施例介绍终端设备和网络设备实现签名所执行的方法流程。下面介绍本申请实施例提供的签名方法适用的几种应用场景。
[0144] 场景1
[0145] 在准备阶段,终端设备指示用户设置用户口令;该终端设备利用该用户口令,生成第二私钥分片;该终端设备将该第二私钥分片发送给网络设备。在签名方法应用阶段,终端设备在需要对待签名信息进行签名的情况下,提示用户输入用户口令,例如显示口令输入界面以接收用户输入的用户口令;该终端设备和网络设备执行前述实施例中的签名流程以完成签名操作。该待签名信息可以是付款信息、转账信息等,本申请不作限定。示例性的,终端设备指示用户设置用户口令可以是该终端设备指示用户设置付款或转账的交易密码,即用户口令。例如用户口令是一个6位的数字密码。又例如用户口令是一个8位的字符串。
[0146] 场景2
[0147] 在准备阶段,终端设备指示用户设置用户口令;该终端设备利用与该用户口令相对应的目标口令,生成第二私钥分片;该终端设备将该第二私钥分片发送给网络设备。在签名方法应用阶段,终端设备在需要对待签名信息进行签名的情况下,提示用户输入用户口令,例如显示口令输入界面以接收用户输入的用户口令;该终端设备在验证用户口令正确的情况下,该终端设备利用目标口令完成签名操作。可选的,用户口令可以是用户输入的指纹、语音等非字符型的口令,目标口令为与该用户口令对应的一组字符串。应理解,终端设备利用目标口令完成签名操作的方式与前述实施例中利用用户口令完成签名操作的方式类似,即由目标口令替换用户口令,这里不再详述。该待签名信息可以是付款信息、转账信息等,本申请不作限定。示例性的,终端设备指示用户设置用户口令可以是该终端设备指示用户设置付款或转账的交易密码,即用户口令。例如用户口令是一个6位的数字密码。又例如用户口令是一个8为的字符串。
[0148] 前述实施例介绍终端设备和网络设备实现签名所执行的方法流程。下面分别介绍本申请实施例提供的终端设备的结构和网络设备的结构。
[0149] 图8为本申请实施例提供的一种终端设备的结构示意图。如图8所示,该终端设备包括:
[0150] 生成单元801,用于利用用户口令,生成第一私钥分片;
[0151] 接收单元802,用于接收来自网络设备的第一签名和第一中间结果;上述第一中间结果为上述网络设备根据第二私钥分片和上述第一签名计算得到的变量,上述第二私钥分片来自于终端设备且由上述第一私钥分片和目标私钥得到,上述第一签名为上述网络设备确定的待签名信息的部分签名;
[0152] 生成单元801,还用于根据上述第一私钥分片、上述第一签名以及上述第一中间结果,生成目标签名;上述目标签名为上述待签名信息的签名且包含上述第一签名。
[0153] 在一个可选的实现方式中,生成单元801,还用于根据上述第一私钥分片,生成第二中间结果;上述终端设备还包括:
[0154] 第一发送单元803,用于向上述网络设备发送上述第二中间结果和消息摘要;上述消息摘要为上述待签名信息的摘要,上述第二中间结果和上述消息摘要用于生成上述第一签名。
[0155] 在一个可选的实现方式中,生成单元801,还用于根据上述目标私钥和上述第一私钥分片,生成上述第二私钥分片;上述终端设备还包括:
[0156] 第二发送单元804,用于向上述网络设备发送上述第二私钥分片。
[0157] 第一发送单元803和第二发送单元804可以是同一个单元,也可以是不同的单元。
[0158] 在一个可选的实现方式中,生成单元801,具体用于根据上述用户口令、来自上述网络设备的盐值以及计算次数,生成上述第一私钥分片。
[0159] 在一个可选的实现方式中,上述终端设备还包括:删除单元805,用于上述目标私钥。
[0160] 在一个可选的实现方式中,上述终端设备还包括:输入单元806,用于接收用户输入的上述用户口令。上述用户口令可以是一组字符串,也可以是语音口令,还可以是其他类型的口令。
[0161] 在一个可选的实现方式中,生成单元801,具体用于根据上述第一私钥分片、上述第一签名以及上述第一中间结果,生成第二签名;根据上述第一签名和上述第二签名,生成上述目标签名。
[0162] 图9为本申请实施例提供的一种网络设备的结构示意图。如图9所示,该网络设备包括:
[0163] 接收单元901,用于接收来自终端设备的第二中间结果和消息摘要,上述消息摘要为待签名信息的摘要;
[0164] 生成单元902,用于根据第二私钥分片、上述第二中间结果以及上述消息摘要,生成第一签名和第一中间结果;上述第二私钥分片来自于上述终端设备;
[0165] 发送单元903,用于向上述终端设备发送上述第一签名和上述第一中间结果;上述第一签名和上述第一中间结果用于上述终端设备生成上述待签名信息的目标签名,上述目标签名包含上述第一签名。
[0166] 可选的,接收单元901,还用于接收来自上述终端设备的上述第二私钥分片;上述网络设备还包括:
[0167] 存储单元904,用于存储上述第二私钥分片。
[0168] 应理解以上网络设备和终端设备中的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成在终端的某一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如网络处理器或中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application‑specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digital signal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field‑programmable gate array,简称:FPGA)等。
[0169] 图10示出了上述实施例中所涉及的网络设备,尤其是基站的一种可能的结构示意图。所示网络设备包括收发器1001,控制器/处理器1002。该收发器1001可以用于支持网络设备与上述实施例中的终端设备(例如UE)之间收发信息,以及支持该网络设备与其它网络设备之间进行无线电通信。该控制器/处理器1002可以用于控制收发器1001来与UE或其他网络设备通信的功能。在上行链路,来自该UE的上行链路信号经由天线接收,由收发器1001进行调解,并进一步由控制器/处理器1002进行处理来恢复UE所发送到业务数据和信令信息。在下行链路上,业务数据和信令消息由控制器/处理器1002进行处理,并由收发器1001进行调解来产生下行链路信号,并经由天线发射给UE。该控制器/处理器1002还用于执行如上述实施例描述的签名方法。该控制器/处理器1002具体执行如图5中的步骤501至步骤503以及图6中的步骤605至步骤608。该网络设备还可以包括存储器1003,可以用于存储网络设备的程序代码和数据。存储器1003可用于存储上述第二私钥分片。该网络设备还可以包括通信单元1004,用于支持网络设备与其他网络实体进行通信。收发器1001可实现图9中的接收单元901和发送单元903的功能。控制器/处理器1002可实现图9中生成单元902的功能。存储器1003可实现图9中存储单元904的功能。
[0170] 可以理解的是,图10仅仅示出了网络设备的简化设计。在实际应用中,网络设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本发明的网络设备都在本发明的保护范围之内。
[0171] 图11为本申请实施例提供的一种终端设备1100的结构示意图。该终端设备可执行如图2、图3、图6以及图7中终端设备执行的操作。
[0172] 为了便于说明,图11仅示出了终端设备的主要部件。如图11所示,终端设备1100包括处理器、存储器、射频电路、天线以及输入输出装置。处理器主要用于对通信协议以及通信数据进行处理,以及对整个终端设备进行控制,执行软件程序,处理软件程序的数据,例如用于支持终端设备执行如图2、图3、图6以及图7中终端设备执行的操作。存储器主要用于存储软件程序和数据。射频电路主要用于基带信号与射频信号的转换以及对射频信号的处理。天线主要用于收发电磁波形式的射频信号。终端设备1100还可以包括输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据(例如用户口令)以及对用户输出数据。需要说明的是,有些种类的终端设备可以不具有输入输出装置。
[0173] 当终端设备开机后,处理器可以读取存储单元中的软件程序,解释并执行软件程序的,处理软件程序的数据。当需要通过无线发送数据时,处理器对待发送的数据进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行射频处理后将射频信号通过天线以电磁波的形式向外发送。当有数据发送到终端设备时,射频电路通过天线接收到射频信号,将射频信号转换为基带信号,并将基带信号输出至处理器,处理器将基带信号转换为数据并对该数据进行处理。
[0174] 本领域技术人员可以理解,为了便于说明,图11仅示出了一个存储器和处理器。在实际的终端设备中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。
[0175] 作为一种可选的实现方式,处理器可以包括基带处理器和中央处理器(central processing unit,CPU),基带处理器主要用于对通信协议以及通信数据进行处理,CPU主要用于对整个终端设备进行控制,执行软件程序,处理软件程序的数据。可选的,该处理器还可以是网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application‑specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field‑programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read‑only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
[0176] 示例性的,在本申请实施例中,可以将具有收发功能的天线和射频电路视为终端设备1100的收发单元1101,将具有处理功能的处理器视为终端设备1100的处理单元1102。
[0177] 如图11所示,终端设备1100可以包括收发单元1101和处理单元1102。收发单元也可以称为收发器、收发机、收发装置等。可选的,可以将收发单元1101中用于实现接收功能的器件视为接收单元,将收发单元1101中用于实现发送功能的器件视为发送单元,即收发单元1101包括接收单元和发送单元。示例性的,接收单元也可以称为接收机、接收器、接收电路等,发送单元可以称为发射机、发射器或者发射电路等。
[0178] 在一些实施例中,收发单元1101、处理单元1102可能集成为一个器件,也可以分离为不同的器件,此外,处理器与存储器也可以集成为一个器件,或分立为不同器件。
[0179] 可理解,收发单元1101可用于执行上述方法实施例中终端设备的发送操作和接收操作,处理单元1102用于执行上述方法实施例中终端设备除了收发操作之外的其他操作。
[0180] 例如,收发单元1101可用于执行图2中203的接收操作以及图3中303的发送操作以及图6中的406的发送操作,处理单元1202可用于执行图2中201和203所示的操作,以及还可用于执行图3中301和302所示的操作。图8中的终端设备均可以采用图11中的结构。图8中的接收单元802、第一发送单元803以及第二发送单元804的功能均由收发单元1101实现,生成单元801和删除单元805的功能可由处理单元1202实现。输入单元806的功能可由输入输出装置实现。
[0181] 可理解的是,本申请实施例中的终端设备的实现方式,具体可参考前述各个实施例,这里不再详述。
[0182] 本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述实施例所提供的签名方法。
[0183] 可选地,上述指令在计算机上运行时可实现:利用用户口令,生成第一私钥分片;获取来自网络设备的第一签名和第一中间结果;上述第一中间结果为上述网络设备根据第二私钥分片和上述第一签名计算得到的变量,上述第二私钥分片来自于终端设备且由上述第一私钥分片和目标私钥得到,上述第一签名为上述网络设备确定的待签名信息的部分签名;根据上述第一私钥分片、上述第一签名以及上述第一中间结果,生成目标签名;上述目标签名为上述待签名信息的签名且包含上述第一签名。
[0184] 可选地,上述指令在计算机上运行时可实现:网络设备接收来自终端设备的第二中间结果和消息摘要,上述消息摘要为待签名信息的摘要;上述网络设备根据第二私钥分片、上述第二中间结果以及上述消息摘要,生成第一签名和第一中间结果;上述第二私钥分片来自于上述终端设备;上述网络设备向上述终端设备发送上述第一签名和上述第一中间结果;上述第一签名和上述第一中间结果用于上述终端设备生成上述待签名信息的目标签名,上述目标签名包含上述第一签名。
[0185] 本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例所提供的签名方法。
[0186] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。