首页 / 专利库 / 银行与财务事项 / 比特币钱包 / 用于信息的安全交换的公共秘密的确定和层级确定性密钥

用于信息的安全交换的公共秘密的确定和层级确定性密钥

阅读:948发布:2020-05-17

专利汇可以提供用于信息的安全交换的公共秘密的确定和层级确定性密钥专利检索,专利查询,专利分析的服务。并且本 发明 提供一种确定用于两个 节点 (3、7)的公共秘密的方法(300)和系统(1)。每一节点(3、7)具有相应的非对称密码对,每一个密码对包括主私钥和主公钥。可以基于所述主私钥、主公钥和确定性密钥,确定相应的第二私钥和第二公钥。可以基于所述第二私钥和第二公钥,在所述节点的每一个中确定公共秘密。在一个实例中,节点(3、7)可以基于:(i)以所述节点自身的主私钥和所述确定性密钥为 基础 的第二私钥;和(ii)以其它节点的主公钥和所述确定性密钥为基础的第二公钥,确定所述公共秘密。本发明可以适用于,但不限于,与数字钱包、 区 块 链 (例如, 比特币 )技术和个人装置安全性一起使用。,下面是用于信息的安全交换的公共秘密的确定和层级确定性密钥专利的具体信息内容。

1.一种在第一节点(C)确定公共秘密(CS)的计算机实施方法,所述公共秘密(CS)由所述第一节点(C)与第二节点(S)共用,其中所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联,且所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,其中所述方法包括:
至少基于所述第一节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C);
至少基于所述第二节点主公钥(P1S)和所述确定性密钥(DK),确定第二节点第二公钥(P2S);以及
基于所述第一节点第二私钥(V2C)和所述第二节点第二公钥(P2S),确定所述公共秘密(CS),
其中所述第二节点(S)具有基于第一节点第二公钥(P2C)和第二节点第二私钥(V2S)的相同的公共秘密(S),其中:
所述第一节点第二公钥(P2C)至少是基于所述第一节点主公钥(P1C)和所述确定性密钥(DK)的;且
所述第二节点第二私钥(V2S)至少是基于所述第二节点主私钥(V1S)和所述确定性密钥(DK)的。
2.根据权利要求1所述的方法,其中所述确定性密钥(DK)是基于消息(M)的。
3.根据权利要求2所述的方法,其进一步包括:
基于所述消息(M)和所述第一节点第二私钥(V2C),生成第一签名消息(SM1);
以及
通过通信网络将所述第一签名消息(SM1)发送给所述第二节点(S),
其中所述第一签名消息(SM1)用所述第一节点第二公钥(P2C)验证,以认证所述第一节点(C)。
4.根据任一权利要求2或3所述的方法,其进一步包括:
通过通信网络从所述第二节点(S)接收第二签名消息(SM2);
用所述第二节点第二公钥(P2S)验证所述第二签名消息(SM2);以及
基于验证所述第二签名消息(SM2)的结果,认证所述第二节点(S),
其中所述第二签名消息(SM2)是基于所述消息(M)或第二消息(M2)和所述第二节点第二私钥(V2S)生成的。
5.根据权利要求2到4中任一项所述的方法,其进一步包括:
生成消息(M);以及
通过通信网络将所述消息(M)发送给所述第二节点(S)。
6.根据权利要求2到4中任一项所述的方法,其进一步包括:
通过所述通信网络从所述第二节点(S)接收所述消息(M)。
7.根据权利要求2到4中任一项所述的方法,其进一步包括:
通过所述通信网络从另一节点接收所述消息(M)。
8.根据权利要求2到4中任一项所述的方法,其进一步包括:
从与所述第一节点(C)相关联的数据存储装置和/或输入接口接收所述消息(M)。
9.根据前述权利要求中任一项所述的方法,其中所述第一节点主公钥(P1C)是以相应的第一节点主私钥(V1C)与生成器(G)的椭圆曲线点乘为基础的,所述第二节点主公钥(P1S)是以相应的第二节点主私钥(V1S)与生成器(G)的椭圆曲线点乘为基础的。
10.根据前述权利要求中任一项所述的方法,其进一步包括以下步骤:
通过所述通信网络接收所述第二节点主公钥(P1S);以及
将所述第二节点主公钥(P1S)存储在与所述第一节点(C)相关联的数据存储装置中。
11.根据任一前述权利要求所述的方法,其进一步包括以下步骤:
在第一节点(C)生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C);
通过所述通信网络将所述第一节点主公钥(P1C)发送给所述第二节点(S)和/或其它节点;以及
将所述第一节点主私钥(V1C)存储在与所述第一节点(C)相关联的第一数据存储装置中。
12.根据权利要求11所述的方法,其进一步包括:
通过所述通信网络发送通知给所述第二节点,所述通知指示对于确定公共秘密(CS)的所述方法所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G),且
其中所述生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C)的步骤包括:
基于在所述公共ECC系统中指定的可允许范围中的随机整数,生成所述第一节点主私钥(V1C);以及
基于所述第一节点主私钥(V1C)与所述公共生成器(G)的椭圆曲线点乘,根据以下公式确定所述第一节点主公钥(P1C):
P1C=V1C x G。
13.根据权利要求12所述的方法,其进一步包括:
基于对所述消息(M)的散列的确定,确定所述确定性密钥(DK),且
其中所述确定第一节点第二私钥(V2C)的步骤是基于所述第一节点主私钥(V1C)与所述确定性密钥(DK)的标量相加,根据以下公式得到:
V2C=V1C+DK,且
其中所述确定第二节点第二公钥(P2S)的步骤是基于所述第二节点主公钥(P1S)椭圆曲线点加到所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:
P2S=P1S+DK x G。
14.根据前述权利要求中任一项所述的方法,其中所述确定性密钥(DK)是以对前一个确定性密钥的散列的确定为基础的。
15.根据前述权利要求中任一项所述的方法,其中所述第一非对称密码对是以相应的前一个第一非对称密码对的函数为基础的,所述第二非对称密码对是以相应的前一个第二非对称密码对的函数为基础的。
16.一种用对称密钥算法在第一节点与第二节点之间进行安全通信的方法,其中所述方法包括:
根据前述权利要求中任一项所述的方法所确定的所述公共秘密,确定对称密钥;
用所述对称密钥将第一通信消息加密成已加密的第一通信消息;以及
将所述已加密的第一通信消息通过通信网络从所述第一节点(C)发送到所述第二节点(S)。
17.根据权利要求16所述的方法,其中所述方法进一步包括:
通过通信网络从所述第二节点(S)接收已加密的第二通信消息;以及
用所述对称密钥将所述已加密的第二通信消息解密成第二通信消息。
18.一种在第一节点与第二节点之间执行线上交易的方法,其中所述方法包括:
根据权利要求1到15中任一项所述的方法所确定的所述公共秘密,确定对称密钥;
用所述对称密钥将第一交易消息加密成已加密的第一交易消息;
将所述已加密的第一交易消息通过通信网络从所述第一节点(C)发送到所述第二节点(S);
通过通信网络从所述第二节点(S)接收已加密的第二交易消息;以及
用所述对称密钥将所述已加密的第二交易消息解密成第二交易消息。
19.一种用于在第一节点(C)确定与第二节点(S)共用的公共秘密(CS)的装置,其中所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联,且所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,其中所述装置包括第一处理装置,其执行如前述权利要求中任一项所述的方法以确定所述公共秘密。
20.一种用于在第一节点与第二节点之间进行安全通信或安全线上交易的装置,其中所述装置包括第一处理装置,所述第一处理装置用于:
执行如权利要求16到18中任一项所述的方法。
21.根据权利要求19或20所述的装置,其进一步包括用于存储所述第一节点主私钥(V1C)中的一个或多个的第一数据存储装置。
22.根据权利要求21所述的装置,其中所述第一数据存储装置进一步存储所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)和所述消息(M)中的一个或多个。
23.根据权利要求19到22中任一项所述的装置,其进一步包括通信模,所述通信模块用于通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)、指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的所述通知中的一个或多个。
24.一种用于确定第一节点(C)与第二节点(S)之间的公共秘密的系统,其中:
所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联;且
所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,且所述系统包括:
第一处理装置,其与所述第一节点(C)相关联,用于:
至少基于所述第一节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C);
至少基于所述第二节点主公钥(P1S)和所述确定性密钥(DK),确定第二节点第二公钥(P2S);以及
基于所述第一节点第二私钥(V2C)和所述第二节点第二公钥(P2S),确定所述公共秘密(CS);以及
第二处理装置,其与所述第二节点(S)相关联,用于:
至少基于所述第一节点主公钥(P1C)和所述确定性密钥(DK),确定第一节点第二公钥(P2C);以及
至少基于所述第二节点主私钥(V1S)和所述确定性密钥(DK),确定第二节点第二私钥(V2S);以及
基于所述第一节点第二公钥(P2C)和第二节点第二私钥(V2S),确定所述公共秘密,其中所述第一处理装置和所述第二处理装置确定相同的公共秘密。
25.根据权利要求24所述的系统,其中所述确定性密钥(DK)是基于消息(M)的,且所述第一处理装置还用于:
基于所述消息(M)和所述第一节点第二私钥(V2C),生成第一签名消息(SM1);
以及
通过通信网络将所述第一签名消息(SM1)发送到所述第二节点(S),
其中所述第二处理装置还用于:
接收所述第一签名消息(SM1);
用所述第一节点第二公钥(P2C)验证所述第一签名消息(SM1);以及
基于所述经验证的第一签名消息(SM1)的结果,认证所述第一节点(C)。
26.根据权利要求25所述的系统,其中所述第二处理装置还用于:
基于所述消息(M)或第二消息(M2)和所述第二节点第二私钥(V2S),生成第二签名消息(SM2);以及
将所述第二签名消息(SM2)发送到所述第一节点(C),
其中所述第一处理装置还用于:
接收所述第二签名消息(SM2);
用所述第二节点第二公钥(P2S)验证所述第二签名消息(SM2);以及
基于所述经验证的第二签名消息(SM2)的结果,认证所述第二节点(S)。
27.根据权利要求25或26所述的系统,其中所述第一处理装置还用于:
生成所述消息(M);以及
发送所述消息(M),
其中所述第二处理装置还用于:
接收所述消息(M)。
28.根据权利要求25或26所述的系统,其中所述消息由另一节点生成,其中所述第一处理装置还用于:
接收所述消息(M),
其中所述第二处理装置还用于:
接收所述消息(M)。
29.根据权利要求25到28中任一项所述的系统,其进一步包括系统数据存储装置和/或输入接口,其中所述第一处理装置和第二处理装置从所述系统数据存储装置和/或输入接口接收所述消息(M)或所述第二消息(M2)。
30.根据权利要求29所述的系统,其中所述第一处理装置从所述系统数据存储装置和/或输入装置接收所述第二节点主公钥(P1S),且所述第二处理装置从所述系统数据存储装置和/或输入装置接收所述第一节点主公钥(P1C)。
31.根据权利要求24到30中任一项所述的系统,其中所述第一节点主公钥(P1C)是以相应的第一节点主私钥(V1C)与生成器(G)的椭圆曲线点乘为基础的,所述第二节点主公钥(P1S)是以相应的第二节点主私钥(V1S)与生成器(G)的椭圆曲线点乘为基础的。
32.根据权利要求24到31中任一项所述的系统,其进一步包括:
第一数据存储装置,其与所述第一节点(C)相关联,用于存储所述第一节点主私钥(V1C);以及
第二数据存储装置,其与所述第二节点(S)相关联,用于存储所述第二节点主私钥(V1S)。
33.根据权利要求32所述的系统,其中所述第一处理装置还用于:
生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C);
发送所述第一节点主公钥(P1C);以及
将所述第一节点主私钥(V1C)存储在所述第一数据存储装置中,
其中所述第二处理装置还用于:
生成所述第二节点主私钥(V1S)和所述第二节点主公钥(P1S);
发送所述第二节点主公钥(P1S);以及
将所述第二节点主私钥(V1S)存储在所述第二数据存储装置中。
34.根据权利要求32或33所述的系统,其中:
所述第一数据存储装置接收并存储所述第二节点主公钥(P1S);且
所述第二数据存储装置接收并存储所述第一节点主公钥(P1C)。
35.根据权利要求24到34中任一项所述的系统,其中所述第一处理装置还用于:
基于在公共椭圆曲线密码学(ECC)系统中指定的可允许范围中的随机整数,生成所述第一节点主私钥(V1C);以及
基于所述第一节点主私钥(V1C)与公共生成器(G)的椭圆曲线点乘,根据以下公式确定所述第一节点主公钥(P1C):
P1C=V1C x G
且其中所述第二处理装置还用于:
基于在所述公共ECC系统中指定的所述可允许范围中的随机整数,生成所述第二节点主私钥(V1S);以及
基于所述第二节点主私钥(V1S)与所述公共生成器(G)的椭圆曲线点乘,根据以下公式确定所述第二节点主公钥(P1S):
P1S=V1S X G。
36.根据权利要求25到35中任一项所述的系统,其中所述第一处理装置还用于:
基于所述消息(M)的散列,确定所述确定性密钥(DK),且其中:
所述第一节点第二私钥(V2C)是基于所述第一节点主私钥(V1C)与所述确定性密钥(DK)的标量相加,根据以下公式得到:
V2C=V1C+DK;且
所述第二节点公钥(P2S)是基于所述第二节点主公钥(P1S)椭圆曲线点加到所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:
P2S=P1S+DK x G
且其中所述第二处理装置还用于:
基于所述消息(M)的散列,确定所述确定性密钥(DK),且其中:
所述第二节点第二私钥(V2S)是基于所述第二节点主私钥(V1S)与所述确定性密钥(DK)的标量相加,根据以下公式得到:
V2S=V1C+DK;且
所述第一节点公钥(P2C)是基于所述第一节点主公钥(P1C)椭圆曲线点加到所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:
P2C=P1C+DK x G。
37.根据权利要求24到36中任一项所述的系统,其进一步包括:
第一通信模块,其与所述第一处理装置相关联,用于通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)和指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的通知中的一个或多个;以及
第二通信模块,其与所述第二处理装置相关联,以通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)和指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的所述通知中的一个或多个。
38.根据权利要求24到37中任一项所述的系统,其中所述确定性密钥(DK)是以对前一个确定性密钥的散列的确定为基础的。
39.根据权利要求24到38中任一项所述的方法,其中所述第一非对称密码对是以相应的前一个第一非对称密码对的函数为基础的,所述第二非对称密码对是以相应的前一个第二非对称密码对的函数为基础的。
40.一种用对称密钥算法在第一节点与第二节点之间进行安全通信的系统,其中所述系统包括:
如权利要求24到39中任一项所述的系统,其采用所述第一处理装置和所述第二处理装置确定公共秘密,其中所述第一处理装置还用于:
基于所述公共秘密确定对称密钥;
用所述对称密钥将第一通信消息加密成已加密的第一通信消息;以及
发送所述已加密的第一通信消息;
其中所述第二处理装置还用于:
基于所述公共秘密,确定相同的对称密钥;
接收所述已加密的第一通信消息;以及
用所述对称密钥将所述已加密的第一通信消息解密成所述第一通信消息。
41.一种用对称密钥算法在第一节点与第二节点之间进行安全通信的系统,其中第二处理装置还用于:
用所述对称密钥将第二通信消息加密成已加密的第二通信消息;以及
发送所述已加密的第二通信消息;
其中第一处理装置还用于:
接收所述已加密的第二通信消息;
用所述对称密钥将所述已加密的第二通信消息解密成所述第二通信消息。
42.根据权利要求40或41所述的系统,其中第一通信消息和第二通信消息是用于所述第一节点与所述第二节点之间的线上交易的在所述第一节点与第二节点之间的交易消息。
43.一种包括机器可读指令的计算机程序,所述机器可读指令使得处理装置实施根据权利要求1到18中任一项所述的方法。

说明书全文

用于信息的安全交换的公共秘密的确定和层级确定性密钥

技术领域

[0001] 本发明涉及用于两个节点的公共秘密的确定。在一些应用中,公共秘密可以用于密码学以实现两个节点之间的安全通信。本发明可以适用于,但不限于,与数字钱包、链(例如,比特币)技术和个人装置安全性一起使用。

背景技术

[0002] 密码学涉及用于两个或更多节点之间的安全通信的技术。节点可以包括移动通信装置、平板计算机、笔记本电脑、台式计算机、其它形式的计算装置和通信装置、网络中的服务器装置、网络中的客户端装置、分布式网络中的一个或多个节点等。节点可以与自然人、一群人例如公司员工、一系统例如行系统的等相关联。
[0003] 在一些情况下,两个或更多节点可以由不安全的通信网络连接。举例来说,两个节点可以由第三方可能能够窃听节点之间的通信的通信网络连接。因此,节点之间所发送的消息会以加密形式来发送,且当在此情况下接收到消息后,预期的接收端可以用对应的解密密钥(或其它解密方法)来解密消息。因此,此类通信的安全性可以取决于是否能阻止第三方判断出对应的解密密钥。
[0004] 一种密码学方法包括使用对称密钥算法。密钥是对称的,其意味着,同一对称密钥既用于明文消息的加密又用于密文的解密。使用对称密钥算法的一个考虑因素是如何将对称密钥以安全方式传输到两个节点,以防止窃听者获取对称密钥。这可以包括,例如将对称密钥实体传送到(经授权的)节点,使得对称密钥永远不会在不安全的通信网络上传送。然而,并非永远都可以选择实体传送。因此,此类加密系统的问题在于通过不安全的网络在节点之间建立对称密钥(其可以基于公共秘密)。近来,情势的发展使得密钥的传送通常是以电子方式在通信系统,如互联网上,完成的方式是让人想要的。因此,提供共享秘密(例如,对称密钥)的此步骤可能存在严重漏洞。由于对称密钥算法(和协议)简单且被广泛使用,因此需要两个节点具有跨越不安全的网络安全地确定公共秘密密钥的能
[0005] 其它现有加密方法包括使用非对称密钥。这些非对称密钥可以用于公钥加密中,其中所述非对称密钥包括私钥和对应的公钥。公钥可以是被公开可获取的,而私钥,如其名称所暗示的一样,是私密的。这些非对称密钥可以用于公钥加密和用于其他事物间的数字签名。现有的协议包括迪菲-赫尔曼密钥交换(Diffie-Hellman Key Exchange)和三通协议(Three Pass Protocol),其能够在不安全的网络上安全分享秘密。然而,这些方法在一些情况下计算成本较高,例如在需要连续生成并共享新秘密的情况下。
[0006] 另一种可选择的非对称密钥分层(例如比特币开发者指南中所描述的)依赖于随机种子和索引结构,从而造成不佳的密钥管理。相对地,本发明的实施例可以包括使用有意义的‘消息’(M)以便不仅生成非对称密钥,且还生成可证明与特定数据相关联的确定性的分层共享秘密。
[0007] 不应该由于对已包括在本发明说明书中的文件、法令、材料、装置、物品等的任何论述在本申请案的每一权利要求优先权日之前便已存在,而承认这些内容中的任一个或全部形成现有技术基础的部分,或是与本发明相关的领域中的公知常识。
[0008] 在本说明书的全文中,词语“包括”或其变化形式将被理解为暗示包括所陈述的元件、整数或步骤,或元件、整数或步骤的群组,但不排除任何其它元件、整数或步骤,或元件、整数或步骤的群组。

发明内容

[0009] 根据本发明的一个方面,提供一种在第一节点(C)处确定公共秘密(CS)的计算机实施方法,所述公共秘密(CS)由所述第一节点(C)与第二节点(S)共用,其中所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联,且所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,其中所述方法包括:-至少基于所述第一节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C);
-至少基于所述第二节点主公钥(P1S)和所述确定性密钥(DK),确定第二节点第二公钥(P2S);以及
-基于所述第一节点第二私钥(V2C)和所述第二节点第二公钥(P2S),确定所述公共秘密(CS),
其中所述第二节点(S)具有基于第一节点第二公钥(P2C)和第二节点第二私钥(V2S)的相同的公共秘密(CS),其中:所述第一节点第二公钥(P2C)至少是基于所述第一节点主公钥(P1C)和所述确定性密钥(DK)的;且所述第二节点第二私钥(V2S)至少是基于所述第二节点主私钥(V1S)和所述确定性密钥(DK)的。
[0010] 这带来了以下优点:使得第二公钥能够在每一节点独立地获得,从而增加安全性,同时还能使得机器自动生成子密钥。还带来了无法跟踪匹配交易输入的优点,这是因为第三方无法确定公钥之间的关系。因此,这能实现更高匿名程度,从而提高安全性。
[0011] 所述确定性密钥(DK)可以是基于消息(M)的。所述方法可以进一步包括:基于所述消息(M)和所述第一节点第二私钥(V2C),生成第一签名消息(SM1);以及将所述第一签名消息(SM1)通过所述通信网络发送给所述第二节点(S),其中所述第一签名消息(SM1)可以用第一节点第二公钥(P2C)验证,以认证所述第一节点(C)。
[0012] 所述方法还可以包括:通过所述通信网络从所述第二节点(S)接收第二签名消息(SM2);用所述第二节点第二公钥(P2S)验证所述第二签名消息(SM2);以及基于验证所述第二签名消息(SM2)的结果,认证所述第二节点(S),其中所述第二签名消息(SM2)是基于所述消息(M)或第二消息(M2)和所述第二节点第二私钥(V2S)生成的。
[0013] 所述方法可以进一步包括:生成消息(M);以及将所述消息(M)通过通信网络发送给所述第二节点(S)。可选地,所述方法可以包括通过所述通信网络从所述第二节点(S)接收所述消息(M)。在另一可选方案中,所述方法可以包括通过所述通信网络从另一节点接收所述消息(M)。在另一可选方案中,所述方法可以包括从与所述第一节点(C)相关联的数据存储装置和/或输入接口接收所述消息(M)。
[0014] 所述第一节点主公钥(P1C)是以相应的第一节点主私钥(V1C)与生成器(G)的椭圆曲线点乘为基础的,所述第二节点主公钥(P1S)是以相应的第二节点主私钥(V1S)与生成器(G)的椭圆曲线点乘为基础的。
[0015] 所述方法可以进一步包括以下步骤:通过所述通信网络接收所述第二节点主公钥(P1S);以及将所述第二节点主公钥(P1S)存储在与所述第一节点(C)相关联的数据存储装置中。
[0016] 所述方法可以进一步包括以下步骤:在第一节点(C)生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C);将所述第一节点主公钥(P1C)通过所述通信网络发送给所述第二节点(S)和/或其它节点;以及将所述第一节点主私钥(V1C)存储在与所述第一节点(C)相关联的第一数据存储装置中。
[0017] 所述方法还可以包括:通过所述通信网络发送通知给所述第二节点,所述通知指示用于确定公共秘密(CS)的所述方法所使用的公共椭圆曲线密码学(elliptic curve cryptography,简称ECC)系统与公共生成器(G)。所述生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C)的步骤可以包括:基于在所述公共ECC系统中指定的可允许范围中的随机整数,生成所述第一节点主私钥(V1C);以及基于所述第一节点主私钥(V1C)与所述公共生成器(G)的椭圆曲线点乘(elliptic curve point multiplication),根据以下公式确定所述第一节点主公钥(P1C):P1C=V1C x G
[0018] 所述方法可以进一步包括:基于对所述消息(M)的散列(hash)的确定,确定所述确定性密钥(DK),其中所述确定第一节点第二私钥(V2C)的步骤是基于所述第一节点主私钥(V1C)与所述确定性密钥(DK)的标量相加(scalar addition),根据以下公式得到:V2C=V1C+DK
[0019] 所述确定第二节点第二公钥(P2S)的步骤可以是基于所述第二节点主公钥(P1S)椭圆曲线点加到(elliptic curve point addition to)所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:P2S=P1S+DK x G。
[0020] 所述确定性密钥(DK)可以是以对前一个确定性密钥的散列的确定为基础的。
[0021] 所述第一非对称密码对是以相应的前一个第一非对称密码对的函数为基础的,所述第二非对称密码对是以相应的前一个第二非对称密码对的函数为基础的。
[0022] 根据本发明的另一方面,提供一种用对称密钥算法在第一节点与第二节点之间进行安全通信的方法,其中所述方法包括:-根据上述所描述的方法所确定的公共秘密,确定对称密钥;
-用所述对称密钥将第一通信消息加密成已加密的第一通信消息;以及
-将所述已加密的第一通信消息通过通信网络从所述第一节点(C)发送到所述第二节点(S)。
[0023] 所述方法可以进一步包括:通过通信网络从所述第二节点(S)接收已加密的第二通信消息;以及用所述对称密钥将所述已加密的第二通信消息解密成第二通信消息。
[0024] 根据本发明的另一方面,提供一种在第一节点与第二节点之间进行线上交易的方法,其中所述方法包括:根据上述所描述方法的方法所述确定的公共秘密,确定对称密钥;用所述对称密钥将第一交易消息加密成已加密的第一交易消息;将所述已加密的第一交易消息通过通信网络从所述第一节点(C)发送到所述第二节点(S);通过通信网络从所述第二节点(S)接收已加密的第二交易消息;以及用所述对称密钥将所述已加密的第二交易消息解密成第二交易消息。
[0025] 根据本发明的另一方面,提供一种用于在第一节点(C)确定与第二节点(S)共用的公共秘密(CS)的装置,其中所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联,且所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,其中所述装置包括第一处理装置,其执行如上所述的方法以确定所述公共秘密。
[0026] 根据本发明的另一方面,提供一种用于在第一节点与第二节点之间进行安全通信或安全线上交易的装置,其中所述装置包括第一处理装置,所述第一处理装置用于执行如上所述的安全通信或安全线上交易方法。
[0027] 所述装置可以包括用于存储所述第一节点主私钥(V1C)中的一个或多个的第一数据存储装置。所述第一数据存储装置还可以存储所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)和所述消息(M)中的一个或多个。
[0028] 所述装置可以进一步包括通信模块,其用于通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)、指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的所述通知中的一个或多个。
[0029] 根据本发明的另一方面,提供一种用于确定第一节点(C)与第二节点(S)之间的公共秘密的系统,其中:所述第一节点(C)与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联;且
-所述第二节点(S)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联,且所述系统包括:
-第一处理装置,与所述第一节点(C)相关联,用于:
-至少基于所述第一节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C);
-至少基于所述第二节点主公钥(P1S)和所述确定性密钥(DK),确定第二节点第二公钥(P2S);以及
-基于所述第一节点第二私钥(V2C)和所述第二节点第二公钥(P2S),确定所述公共秘密(CS);以及
-第二处理装置,与所述第二节点(S)相关联,用于:
-至少基于所述第一节点主公钥(P1C)和所述确定性密钥(DK),确定第一节点第二公钥(P2C);以及
-至少基于所述第二节点主私钥(V1S)和所述确定性密钥(DK),确定第二节点第二私钥(V2S);以及
-基于所述第一节点第二公钥(P2C)和第二节点第二私钥(V2S),确定所述公共秘密,其中所述第一处理装置和所述第二处理装置确定相同的公共秘密(CS)。
[0030] 在所述系统中,所述确定性密钥(DK)是基于消息(M)的,且所述第一处理装置还用于:基于所述消息(M)和所述第一节点第二私钥(V2C),生成第一签名消息(SM1);以及将所述第一签名消息(SM1)通过通信网络发送给所述第二节点(S)。所述第二处理装置还用于:接收所述第一签名消息(SM1);用所述第一节点第二公钥(P2C)验证所述第一签名消息(SM1);以及基于所述经验证的第一签名消息(SM1)的结果,认证所述第一节点(C)。
[0031] 在所述系统中,所述第二处理装置还用于:基于所述消息(M)或第二消息(M2)和所述第二节点第二私钥(V2S),生成第二签名消息(SM2);将所述第二签名消息(SM2)发送到所述第一节点(C),其中所述第一处理装置还用于:接收所述第二签名消息(SM2);用所述第二节点第二公钥(P2S)验证所述第二签名消息(SM2);基于所述经验证的第二签名消息(SM2)的结果,认证所述第二节点(S)。
[0032] 在所述系统中,所述第一处理装置还用于:生成所述消息(M);以及发送所述消息(M),其中所述第二处理装置还用于:接收所述消息(M)。在一个可选方案中,所述消息由另一节点生成,其中所述第一处理装置用于:接收所述消息(M),且其中所述第二处理装置用于接收所述消息(M)。
[0033] 在另一可选方案中,所述系统包括系统数据存储装置和/或输入接口,其中所述第一处理装置和第二处理装置从所述系统数据存储装置和/或输入接口接收所述消息(M)或所述第二消息(M2)。
[0034] 所述第一处理装置可以从所述系统数据存储装置和/或输入装置接收所述第二节点主公钥(P1S),且所述第二处理装置可以从所述系统数据存储装置和/或输入装置接收所述第一节点主公钥(P1C)。
[0035] 所述第一节点主公钥(P1C)是以相应的第一节点主私钥(V1C)与生成器(G)的椭圆曲线点乘为基础的,所述第二节点主公钥(P1S)是以相应的第二节点主私钥(V1S)与生成器(G)的椭圆曲线点乘为基础的。
[0036] 所述系统可以进一步包括:与所述第一节点(C)相关联的第一数据存储装置,用于存储所述第一节点主私钥(V1C);以及与所述第二节点(S)相关联的第二数据存储装置,用于存储所述第二节点主私钥(V1S)。
[0037] 在所述系统中,所述第一处理装置可以用于:生成所述第一节点主私钥(V1C)和所述第一节点主公钥(P1C);发送所述第一节点主公钥(P1C);以及将所述第一节点主私钥(V1C)存储在所述第一数据存储装置中,其中所述第二处理装置用于:生成所述第二节点主私钥(V1S)和所述第二节点主公钥(P1S);发送所述第二节点主公钥(P1S);以及将所述第二节点主私钥(V1S)存储在所述第二数据存储装置中。
[0038] 在所述系统中,所述第一数据存储装置可以接收并存储所述第二节点主公钥(P1S);且所述第二数据存储装置可以接收并存储所述第一节点主公钥(P1C)。
[0039] 在所述系统中,所述第一处理装置还可以用于:基于在公共(ECC)系统中指定的可允许范围中的随机整数,生成所述第一节点主私钥(V1C);以及基于所述第一节点主私钥(V1C)与公共生成器(G)的椭圆曲线点乘,根据以下公式确定所述第一节点主公钥(P1C):P1C=V1C x G
[0040] 所述第二处理装置还可以用于:基于在所述公共ECC系统中指定的所述可允许范围中的随机整数,生成所述第二节点主私钥(V1S);以及基于所述第二节点主私钥(V1S)与所述公共生成器(G)的椭圆曲线点乘,根据以下公式确定所述第二节点主公钥(P1S):P1S=V1S X G。
[0041] 在所述系统中,所述第一处理装置可以用于:基于所述消息(M)的散列,确定所述确定性密钥(DK),且其中:所述第一节点第二私钥(V2C)是基于所述第一节点主私钥(V1C)与所述确定性密钥(DK)的标量相加,根据以下公式得到:V2C=V1C+DK
且所述第二节点第二公钥(P2S)是基于所述第二节点主公钥(P1S)椭圆曲线点加到所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:
P2S=P1S+DK x G
所述第二处理装置还可以用于:基于所述消息(M)的散列,确定所述确定性密钥(DK),且其中所述第二节点第二私钥(V2S)是基于所述第二节点主私钥(V1S)与所述确定性密钥(DK)的标量相加,根据以下公式得到:
V2S=V1C+DK
且所述第一节点第二公钥(P2C)是基于所述第一节点主公钥(P1C)椭圆曲线点加到所述确定性密钥(DK)与所述公共生成器(G)的所述椭圆曲线点乘,根据以下公式得到:
P2C=P1C+DK x G
[0042] 所述系统可以进一步包括:与所述第一处理装置相关联的第一通信模块,用于通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)和指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的通知中的一个或多个;以及与所述第二处理装置相关联的第二通信模块,用于通过通信网络发送和/或接收所述消息(M)、所述第一节点主公钥(P1C)、所述第二节点主公钥(P1S)、所述第一签名消息(SM1)、所述第二签名消息(SM2)和指示所使用的公共椭圆曲线密码学(ECC)系统与公共生成器(G)的所述通知中的一个或多个。
[0043] 在所述系统中,所述确定性密钥(DK)可以是以对前一个确定性密钥的散列的确定为基础的。
[0044] 在所述系统中,所述第一非对称密码对是以相应的前一个第一非对称密码对的函数为基础的,所述第二非对称密码对是以相应的前一个第二非对称密码对的函数为基础的。
[0045] 根据本发明的另一方面,提供一种用对称密钥算法在第一节点与第二节点之间进行安全通信的系统,其中所述系统包括如上所述的系统,以采用所述第一处理装置和所述第二处理装置确定公共秘密,其中所述第一处理装置用于:基于所述公共秘密确定对称密钥;用所述对称密钥将第一通信消息加密成已加密的第一通信消息;以及发送所述已加密的第一通信消息。所述第二处理装置用于:基于所述公共秘密,确定相同的对称密钥;接收所述已加密的第一通信消息;以及用所述对称密钥将所述已加密的第一通信消息解密成所述第一通信消息。
[0046] 在所述用于安全通信的系统中,所述第二处理装置还可以用于:用所述对称密钥将第二通信消息加密成已加密的第二通信消息;以及发送所述已加密的第二通信消息。所述第一处理装置还可以用于:接收所述已加密的第二通信消息;用所述对称密钥将所述已加密的第二通信消息解密成所述第二通信消息。
[0047] 在如上所述的系统中,第一和第二通信消息可以是用于所述第一节点与所述第二节点之间的线上交易的在所述第一节点与第二节点之间的交易消息。
[0048] 根据本发明的另一方面,提供一种包括机器可读指令的计算机程序,所述机器可读指令使得处理装置实施如上所述的方法中的任一个。附图说明
[0049] 本发明的实例将参考以下图式进行说明:
[0050] 图1是确定用于第一节点和第二节点的公共秘密的实例系统的示意图;
[0051] 图2是用于确定公共秘密的计算机实施方法的流程图
[0052] 图3是注册第一节点和第二节点的计算机实施方法的流程图;
[0053] 图4是用于确定公共秘密的计算机实施方法的另一流程图;
[0054] 图5是第一节点与第二节点之间的安全通信的计算机实施方法的流程图;
[0055] 图6是用于电子资源租赁的实例系统的示意图;
[0056] 图7是应用于口令替换方法的实例系统的示意图;
[0057] 图8是认证第一节点和第二节点的计算机实施方法的流程图;
[0058] 图9是用于不同用途的不同密钥的树状结构的实例;
[0059] 图10是使用主密钥派生方法的树状结构的实例;以及
[0060] 图11说明实例处理装置的示意图。

具体实施方式

综述
[0061] 现将说明确定第一节点(C)的公共秘密(CS)的方法、装置和系统,所述公共秘密与第二节点(S)的公共秘密相同。图1说明系统1,其包括通过通信网络5与第二节点7通信的第一节点3。第一节点3具有相关联的第一处理装置23,且第二节点5具有相关联的第二处理装置27。第一节点3和第二节点7可以包括电子装置,例如计算机、平板计算机、移动通信装置、计算机服务器等。在一个实例中,第一节点3可以是客户端装置,且第二节点7可以是服务器。
[0062] 第一节点3与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联。第二节点(7)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联。用于相应的第一节点3和第二节点7的第一非对称密码对和第二非对称密码对可以在注册期间生成。下文将参考图3进一步详细说明由第一节点3和第二节点7执行的注册方法100、200。每一节点的公钥可以例如通过通信网络5公开共享。
[0063] 为了确定第一节点3和第二节点7的公共秘密(CS),节点3、7执行相应方法300、400的步骤,而不通过通信网络5传输私钥。
[0064] 由第一节点3执行的方法300包括步骤330,至少基于第一节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C)。确定性密钥可以是基于在第一节点与第二节点之间共享的消息(M)的,所述消息的共享可以包括通过通信网络5共享消息,如下文进一步详细说明。方法300还包括步骤370,至少基于第二节点主公钥(P1S)和确定性密钥(DK),确定第二节点第二公钥(P2S)。方法300包括步骤380,基于第一节点第二私钥(V2C)和第二节点第二公钥(P2S),确定公共秘密(CS)。
[0065] 重要的是,相同的公共秘密(CS)也可以通过方法400在第二节点7确定。方法400包括步骤430,基于第一节点主公钥(P1C)和确定性密钥(DK),确定第一节点第二公钥(P2C)。方法400还包括步骤470,基于第二节点主私钥(V1S)和确定性密钥(DK),确定第二节点第二私钥(V2S)。方法400包括步骤480,基于第二节点第二私钥(V2S)和第一节点第二公钥(P2C),确定公共秘密(CS)。
[0066] 通信网络5可以包括局域网、广域网、蜂窝网络、无线通信网络、因特网等。当数据通过例如电线、光纤的通信媒体传输,或以无线方式传输时,这些网络可能易于遭受窃听,例如被窃听器11的窃听。方法300、400可以允许第一节点3和第二节点7皆独立地确定公共秘密,而无需通过通信网络5传输所述公共秘密。因此,一个优点是每一节点可以安全地确定公共秘密(CS),而不必通过可能不安全的通信网络5传输私钥。继而,公共秘密可以被用作用于第一节点3与第二节点7之间通过通信网络5的加密通信的秘密密钥(或用作秘密密钥的基础)。
[0067] 方法300、400可以包括额外步骤。方法300可以包括步骤350,在第一节点3,基于消息(M)和第一节点第二私钥(V2C),生成签名消息(SM1)。方法300进一步包括步骤360,将第一签名消息(SM1)通过通信网络发送到第二节点7。继而,第二节点7可以执行接收第一签名消息(SM1)的步骤440。方法400还包括以下步骤:步骤450,用第一节点第二公钥(P2C)验证第一签名消息(SM1);和步骤460,基于验证第一签名消息(SM1)的结果,认证第一节点3。有利的是,这允许第二节点7认证声称的第一节点(其中生成第一签名消息)是第一节点3。这是基于仅第一节点3可以访问第一节点主私钥(V1C)的假设,且因此仅第一节点3可以确定第一节点第二私钥(V2C)以用于生成第一签名消息(SM1)。应了解,类似地,可以在第二节点7处生成第二签名消息(SM2)且将其发送到第一节点3,使得第一节点3可以在例如点对点场景中认证第二节点7。
[0068] 在第一节点与第二节点之间共享消息(M)可以通过多种方式实现。在一个实例中,消息可以在第一节点3处生成,接着通过通信网络5发送到第二节点7。可选地,消息可以在第二节点7处生成,且接着通过通信网络5发送到第二节点7。在另一实例中,消息可以在第三节点9处生成,且发送到第一节点3和第二节点7。在另一可选方案中,用户可以通过用户接口15输入待第一节点3和第二节点7接收的消息。在另一实例中,消息(M)可以从数据存储装置19中取回且发送到第一节点3和第二节点7。在一些实例中,消息(M)可以是公用的,且因此可以通过不安全网络5传输。
[0069] 在其它实例中,一个或多个消息(M)可以存储在数据存储装置13、17、19中,其中消息可以与第一节点3与第二节点7之间的会话、交易等相关联。因此,消息(M)可以被取回,并用于在相应的第一节点3和第二节点7处重新创建与会话或交易相关联的公共秘密(CS)。有利的是,允许重新产生公共秘密(CS)的记录可被保存,而不必单独地私密存储或安全传输记录。在第一节点3和第二节点7处执行数个交易的情况下,这种情形可以是有利的,且将所有消息(M)存储在节点自身处是不切实际的做法。注册方法100、200
[0070] 将参考图3说明注册方法100、200的实例,其中方法100由第一节点3执行且方法200由第二节点7执行。这包括建立用于相应的第一节点3和第二节点7的第一非对称密码对和第二非对称密码对。
[0071] 非对称密码对包括相关联的私钥和公钥,例如用于公钥加密的那些私钥和公钥。在此实例中,使用椭圆曲线密码学(ECC)和椭圆曲线运算的性质来生成非对称密码对。
[0072] ECC标准可以包括例如用于高效密码学小组的标准(Standards for Efficient Cryptography Group,www.sceg.org)所描述的那些标准的已知标准。椭圆曲线密码学也在美国专利US 5,600,725、US 5,761,305、US 5889,865、US 5,896,455、US 5,933,504、US 6,122,736、US 6,141,420、US 6,618,483、US 6,704,870、US 6,785,813、US 6,078,667、US 
6,792,530中进行了说明。
[0073] 在方法100、200中,这包括步骤110,210,第一节点和第二节点安置到使用公共生成器(G)的公共ECC系统。在一个实例中,公共ECC系统可基于secp256K1,其是由比特币使用的ECC系统。公共生成器(G)可以被选择、随机被生成或被指定。
[0074] 现在转向第一节点3,方法100包括步骤110,安置到公共ECC系统和公共生成器(G)。这可以包括从第二节点7或第三节点9接收公共ECC系统和公共生成器。可选地,用户接口15可以与第一节点3相关联,借此用户可以选择性地提供公共ECC系统和/或公共生成器(G)。在另一可选方案中,可以由第一节点3随机选择公共ECC系统和/或公共生成器(G)中的一个或两个。第一节点3可以通过通信网络5将指示使用公共ECC系统与公共生成器(G)的通知发送到第二节点7。继而,在步骤210中,第二节点7可以通过发送指示确认使用公共ECC系统和公共生成器(G)的通知而进行安置。
[0075] 方法100还包括步骤120,第一节点3生成第一非对称密码对,第一非对称密码对包括第一节点主私钥(V1C)和第一节点主公钥(P1C)。这包括至少部分地基于在公共ECC系统中指定的可允许范围中的随机整数,生成第一节点主私钥(V1C)。这还包括基于第一节点主私钥(V1C)与公共生成器(G)的椭圆曲线点乘,根据以下公式确定第一节点主公钥(P1C):P1C=V1C x G   (公式1)
[0076] 因此,第一非对称密码对包括:V1C:第一节点主私钥,其由第一节点保密。
P1C:第一节点主公钥,其是公开已知的。
[0077] 第一节点3可以将第一节点主私钥(V1C)和第一节点主公钥(P1C)存储在与第一节点3相关联的第一数据存储装置13中。为了安全起见,可以将第一节点主私钥(V1C)存储在第一数据存储装置13的安全部分中,以确保密钥保持私密。
[0078] 方法100进一步包括步骤130,将第一节点主公钥(P1C)通过通信网络5发送到第二节点7。在步骤220中,第二节点7可以接收第一节点主公钥(P1C);在步骤230中,将第一节点主公钥(P1C)存储在与第二节点7相关联的第二数据存储装置17中。
[0079] 类似于第一节点3,第二节点7的方法200包括步骤240,生成第二非对称密码对,第二非对称密码对包括第二节点主私钥(V1S)和第二节点主公钥(P1S)。第二节点主私钥(V1S)也是在可允许范围内的随机整数。继而,第二节点主公钥(P1S)通过以下公式来确定:P1S=V1S x G   (公式2)
[0080] 因此,第二非对称密码对包括:V1S:第二节点主私钥,其由第二节点保密的。
P1S:第二节点主公钥,其是公开已知的。
[0081] 第二节点7可以将第二非对称密码对存储在第二数据存储装置17中。方法200进一步包括步骤250将第二节点主公钥(P1S)发送到第一节点3。继而,在步骤140中,第一节点3可以接收第二节点主公钥(P1S),并在步骤150中,存储第二节点主公钥(P1S)。
[0082] 应理解的是,在一些可选方案中,相应的主公钥可以被接收并被存储在与第三节点9(例如可信的第三方)相关联的第三数据存储装置19处。这可以包括作为公用目录的第三方,例如凭证授权单位。因此,在一些实例中,仅在确定需要公共秘密(CS)时,才可由第二节点7请求并接收第一节点主公钥(P1C)(且反之亦然)。
[0083] 注册步骤可以作为初始设置而仅发生一次。之后,主密钥可被以安全方式重新使用,以生成依赖于(特别是)确定性密钥(DK)的公共秘密。会话初始化并由第一节点3确定公共秘密
[0084] 现将参考图4说明确定公共秘密(CS)的实例。公共秘密(CS)可以用于第一节点3与第二节点7之间的特定会话、时间、交易或其它用途,且使用相同的公共秘密(CS)可能不合乎需要或不安全。因此,公共秘密(CS)可以在不同会话、时间、交易等之间变换。生成消息(M)310
[0085] 在此实例中,由第一节点3执行的方法300包括步骤310,生成消息(M)。消息(M)可以是随机、伪随机或用户界定的。在一个实例中,消息(M)基于Unix时间(Unix Time)和随机数(nonce)(以及任意值)。举例来说,消息(M)可以为:消息(M)=Unix Time+nonce   (公式3)
[0086] 在一些实例中,消息(M)为任意值。然而,应理解的是,消息(M)可以具有选择值(例如Unix时间等),其在一些应用中可能是有用的。
[0087] 方法300包括步骤315,将消息(M)通过通信网络3发送到第二节点7。消息(M)可以通过不安全网络发送,这是因为消息(M)并不包括关于私钥的信息。确定确定性密钥320
[0088] 方法300进一步包括基于消息(M),确定确定性密钥(DK)的步骤320。在此实例中,这包括确定消息的密码散列。密码散列算法的实例包括产生256位确定性密钥(DK)的SHA-256。也就是说:
DK=SHA-256(M)   (公式4)
[0089] 应理解的是,可以使用其它散列算法。这可以包括安全散列算法(Secure Hash Algorithm,简称SHA)系列中的其它散列算法。一些特定实例包括SHA-3子集中的例子,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256。其它散列算法可以包括原始RACE完整性校验消息摘要(RACE Integrity Primitives Evaluation Message Digest,简称RIPEMD)系列中的那些算法。特定实例可以包括RIPEMD-160。其它散列函数可以包括基于Zémor-Tillich散列函数和渐缩式散列函数(knapsack-based hash functions)的系列。确定第一节点第二私钥330
[0090] 方法300接着包括基于第二节点主私钥(V1C)和确定性密钥(DK),确定第一节点第二私钥(V2C)的步骤330。这可以是基于第一节点主私钥(V1C)和确定性密钥(DK)的标量相加,根据以下公式得到:V2C=V1C+DK   (公式5)
[0091] 因此,第一节点第二私钥(V2C)不是随机值,而是实际上从第一节点主私钥确定性地求得的。密码对中的对应公钥,即,第一节点第二公钥(P2C),具有以下关系:P2C=V2C x G   (公式6)
[0092] 将来自公式5的V2C代入公式6中会得到:P2C=(V1C+DK)x G   (公式7)
[0093] 其中‘+’运算符是指表示标量相加,且‘x’运算符表示是指椭圆曲线点乘。应注意的是,椭圆曲线密码学代数是分布性的,公式7也可表示为:P2C=V1C x G+DK x G   (公式8)
[0094] 最后,可以将公式1代入公式7,从而得到:P2C=P1C+DK x G   (公式9.1)
P2C=P1C+SHA-256(M)x G   (公式9.2)
[0095] 在公式8到9.2中,‘+’运算符表示是指椭圆曲线点加。因此,在已知第一节点主公钥(P1C)和消息(M)的情况下,可以求得对应的第一节点第二公钥(P2C)。第二节点7可以具有此类知识,以独立地确定第一节点第二公钥(P2C),下文将关于方法400进一步详细说明。基于消息和第一节点第二私钥,生成第一签名消息(SM1)350
[0096] 方法300进一步包括步骤350,基于消息(M)和所确定的第一节点二私钥(V2C),生成第一签名消息(SM1)。生成签名消息包括应用数字签名算法来以数字方式签署消息(M)。在一个实例中,这包括以椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,简称ECDSA)将第一节点第二私钥(V2C)应用到消息,以获得第一签名消息(SM1)。
[0097] ECDSA的实例包括基于ECC系统与secp256k1、secp256r1、secp384r1、se3cp521r1的那些ECDSA。
[0098] 第一签名消息(SM1)可以在第二节点7处应用对应的第一节点第二公钥(P2C)检验。对第一签名消息(SM1)的这一检验可由第二节点7用来认证第一节点3,下文将在方法400中加以说明。
确定第二节点第二公钥370’
[0099] 在步骤370'中,第一节点3可以接着确定第二节点第二公钥(P2S)。如上文所述,第二节点第二公钥(P2S)可以至少是以第二节点主公钥(P1S)和确定性密钥(DK)为基础的。在此实例中,由于在步骤370'中将公钥确定为私钥与生成器(G)的椭圆曲线点乘,因此可以与公式6类似的方式将第二节点第二公钥(P2S)表示为:P2S=V2S x G   (公式10.1)
P2S=P1S+DK x G   (公式10.2)
[0100] 针对公式10.2的数学证明与上文对第一节点第二公钥(P2C)所描述的用于求得公式9.1的数学证明相同。应理解的是,在步骤370中,第一节点3可以独立于第二节点7确定第二节点第二公钥。在第一节点3确定公共秘密380
[0101] 第一节点3接着可以基于所确定的第一节点第二私钥(V2C)和所确定的第二节点第二公钥(P2S),确定公共秘密(CS)。公共秘密(CS)可以由第一节点3通过以下公式确定:S=V2C x P2S   (公式11)
在第二节点7执行的方法400
[0102] 现说明在第二节点7执行的对应方法400。应理解的是,这些步骤中的某些步骤与上文所述的由第一节点3执行的那些步骤类似。
[0103] 方法400包括步骤410,通过通信网络5从第一节点3接收消息(M)。这可以包括步骤315,第一节点3发送的消息(M)。在步骤420中,第二节点7接着基于消息(M),确定确定性密钥(DK)。第二节点7确定确定性密钥(DK)的步骤420与上文所述的第一节点执行的步骤320类似。在此实例中,第二节点7独立于第一节点3执行此确定步骤420。
[0104] 下一步骤包括步骤430,基于第一节点主公钥(P1C)和确定性密钥(DK),确定第一节点第二公钥(P2C)。在此实例中,由于在步骤430'中将公钥确定为私钥与生成器(G)的椭圆曲线点乘,因此可以采用与公式9类似的方式将第一节点第二公钥(P2C)表示为:P2C=V2C x G   (公式12.1)
P2C=P1C+DK x G   (公式12.2)
[0105] 对公式12.1和12.2的数学证明与上文对公式10.1和10.2所论述的那些数学证明相同。第二节点7认证第一节点3
[0106] 方法400可以包括由第二节点7执行,以认证宣称为第一节点3是第一节点3的步骤。如前所述,这包括步骤440,从第一节点3接收第一签名消息(SM1)。接着,在步骤450中,第二节点7可以用在步骤430确定的第一节点第二公钥(P2C)来验证第一签名消息(SM1)上的签名。
[0107] 可以根据上文所述的椭圆曲线数字签名算法(ECDSA)进行对数字签名的验证。重要的是,用第一节点第二私钥(V2C)签署的第一签名消息(SM1)应仅能用对应的第一节点第二公钥(P2C)来正确地验证,这是因为V2C和P2C形成密码对。由于这些密钥对于在注册第一节点3时生成的第一节点主私钥(V1C)和第一节点主公钥(P1C)来说是确定性的,因此可以验证第一签名消息(SM1)可用作认证发送第一签名消息(SM1)的宣称第一节点是注册期间的同一第一节点3的基础。因此,第二节点7可以进一步执行基于步骤450的验证第一签名消息的结果,认证第一节点3的步骤460。
[0108] 上述认证可以适于两个节点中的一个是可信任节点且仅节点中的一个需要进行认证的场景。举例来说,第一节点3可以是客户端,且第二节点7可以是客户端所信任的服务器。因此,服务器(即第二节点7)可能需要认证客户端(即第一节点3)的证书,以便允许客户端访问服务器系统。服务器可能并不需要认证服务器到客户端的证书。然而,在一些场景中,可能需要两节点进行彼此认证,例如下文在另一实例中将说明的点到点场景。第二节点7确定公共秘密
[0109] 方法400可进一步包括步骤470,第二节点7基于第二节点主私钥(V1S)和确定性密钥(DK),确定第二节点第二私钥(V2S)。类似于第一节点3执行的步骤330,第二节点第二私钥(V2S)可以是基于第二节点主私钥(V1S)和确定性密钥(DK)的标量相加,根据以下公式得到:V2S=V1S+DK   (公式13.1)
V2S=V1S+SHA-256(M)   (公式13.2)
[0110] 接着,在步骤480中,第二节点7可以,独立于第一节点3,基于第二节点第二私钥(V2S)和第一节点第二公钥(P2C),确定公共秘密(CS),基于以下公式得到:S=V2S x P2C   (公式14)
证明第一节点3和第二节点7确定的公共秘密(CS)
[0111] 由第一节点3确定的公共秘密(CS)与在第二节点7确定的公共秘密(CS)相同。现说明公式11和公式14提供相同的公共秘密(CS)的数学证明。
[0112] 转向由第一节点3所确定的公共秘密(CS),可以将公式10.1代入如下的公式11中:S=V2C x P2S   (公式11)
S=V2C x(V2S x G)
S=(V2C x V2S)x G   (公式15)
[0113] 转向由第二节点7所确定的公共秘密(CS),可以将公式12.1代入如下公式14中:S=V2S x P2C   (公式14)
S=V2S x(V2C x G)
S=(V2S x V2C)x G   (公式16)
[0114] 由于ECC代数是可交换的,因此公式15与公式16是相等的,这是因为:S=(V2C x V2S)x G=(V2S x V2C)x G   (公式17)
公共秘密(CS)和秘密密钥
[0115] 公共秘密(CS)可以用作用于第一节点3与第二节点7之间的安全通信的对称密钥算法中的秘密密钥,或用作秘密密钥的基础。
[0116] 公共秘密(CS)可以呈椭圆曲线点(xS,yS)的形式。可以使用由节点3、7商定的标准公开已知运算来将所述形式转换成标准密钥格式。举例来说,xS值可以是可用于AES256加密的密钥的256位整数。xS值也可以使用RIPEMD160转换成160位整数,以用于需要这种长度的密钥的任何应用。
[0117] 公共秘密(CS)可以根据需要确定。重要的是,第一节点3并不需要存储公共秘密(CS),这是因为可以基于消息(M)重新确定公共秘密(CS)。在一些实例中,所使用的消息(M)可以在不具有与主私钥所需的安全性等级相同的安全性等级的情况下,存储在数据存储装置13、17、19(或其它数据存储装置)中。在一些实例中,消息(M)可以是公开可得的。
[0118] 然而,取决于一些应用,如果公共秘密(CS)需要被保存得与第一节点主私钥(V1C)一样安全,那么公共秘密(CS)可被存储在与第一节点相关联的第一数据存储装置(X)中。
[0119] 此外,所公开的系统可以允许基于单个主密钥密码对,确定可以对应于多个安全秘密密钥的多个公共秘密。其优点可以通过以下实例加以说明。
[0120] 在存在多个会话,并且每一会话与多个相应的公共秘密(CS)相关联的情况下,可能需要具有与那些多个会话相关联的记录,从而使得将来可以重新确定相应的公共秘密(CS)。在已知系统中,这可能需要将多个秘密密钥存储在安全数据存储装置中,这可能较昂贵或不便于维持。相对地,本系统将主私钥安全地保存在相应的第一和第二节点,但可以安全或不安全地存储其它确定性密钥或消息(M)。尽管不安全地存储确定性密钥(DK)或消息(M),但多个公共秘密(CS)仍可得到安全地保存,这是因为确定公共秘密所需的主私钥仍是安全的。
[0121] 所述方法也可以用于生成用于临时通信链路,例如用于安全地传输登录口令的“会话密钥”。实例应用
[0122] 本发明的方法、装置和系统可以具有数个应用,包括,但不限于,如下所述的那些应用。消息加密
[0123] 本发明可以用于促进安全通信,特别是在第一节点3与第二节点7之间通过可能不安全的通信网络5发送和接收通信消息。这可以通过将公共秘密(CS)用作对称密钥的基础来实现。与已知的公钥加密方法相比,确定公共秘密(CS)并将对称密钥用于加密和解密通信消息的此方法在计算上可能更加高效。
[0124] 现参考图5说明第一节点3与第二节点7之间的安全通信方法500、600。在步骤510中,第一节点3基于在上述方法中确定的公共秘密(CS),确定对称密钥。这可以包括将公共秘密(CS)转换成标准密钥格式。类似地,在步骤610中,第二节点7也可以基于公共秘密(CS)确定对称密钥。
[0125] 为通过通信网络将第一通信消息从第一节点3安全地发送到第二节点,第一通信消息需要加密。因此,在步骤520中,对称密钥由第一节点用来加密第一通信消息,以形成已加密的第一通信消息。接着,在步骤530中,所述已加密消息通过通信网络5发送到第二节点7。继而,在步骤620中,第二节点7接收已加密的第一通信消息620,并在步骤630中,用对称密钥将已加密的第一通信消息解密成第一通信消息。
[0126] 类似地,在步骤640中,第二节点7可以用对称密钥将第二通信消息加密成已加密的第二通信消息。接着,在步骤650中,所述已加密的消息被发送到第一节点3。在步骤540中,第一节点3可以接收已加密的第二通信消息,并在步骤550中,将已加密的第二通信消息解密成第二通信消息。加密货币钱包
[0127] 在另一实例中,所述方法可以用于生成并管理公共秘密(CS),例如用于加密货币交易的秘密密钥。加密货币密钥,例如用于比特币交易的那些的加密货币密钥,一般与可以交换以获取价值的资金和资产相关联。电子资源租赁
[0128] 参考图6说明使用所述方法和系统来促进电子资源租赁的实例。图6示出了系统701,其中第一节点3与客户端703相关联,且第二节点7与电子资源,例如超级计算机设施
707,相关联。因此,客户端504可能想要使用设置在远端的超级计算机设施707来处理大量保密数据。
[0129] 超级计算机设施707可以每个时间和/或每个中央处理器(CPU)周期为基础向外出租超级计算机CPU时间。客户端703可以通过存放其公钥,例如在步骤130中通过通信网络5将第一节点主公钥(P1C)发送到第二节点7,而注册超级计算机设施。
[0130] 超级计算机设施707接着可以向客户端703提供软件,以执行例如使用AES加密建立安全连接的后台进程,且用于促进上述方法300中的步骤。
[0131] 当执行方法300时,在步骤360中,第一节点3可以发送第一签名消息(SM1),所述第一签名消息部分基于包括与随机数(nonce)串接再一起的Unix时间的消息(M)。
[0132] 在步骤440中,第二节点7可以接收第一签名消息(SM1)。第二节点7可以进一步执行判断消息(M)中的Unix时间是否在Unix时间的允许值内的步骤。例如,可以根据在客户端703与超级计算机设施707之间协定的条款和条件(Terms and Conditions)来设定Unix时间的允许值。例如,在步骤440中,当超级计算机设施接收第一签名消息(SM1)时,(消息的)Unix时间可能需要设定在一预定的周期(例如,300秒)内。如果消息(M)中的Unix时间在允许时间外,那么将不能接受对保密数据的交换。
[0133] 上述步骤可以确保稍后无法再现基于步骤380、480确定公共秘密(CS)的所得会话密钥,且所述会话密钥对于正建立的会话是唯一的。接着可以使用协议来建立在会话的持续时间内使用的对称会话密钥,例如,AES加密/解密密钥。会话密钥用于第一节点3与第二节点7之间在会话持续时间内的所有通信。这允许客户端加密代码和/或大量数据,将这些代码和/或数据发送到超级计算机设施707以进行处理,并从超级计算机设施707接收已加密的结果。口令替换、补充或选择
[0134] 所述系统和方法也可以用作口令替换、补充或选择。参看图7,提供包括与用户相关联的第一节点3和多个额外节点7'、7”、7”'的系统。多个额外节点可以各自与参与相同协议的相应的机构相关联。例如,所述机构可以包括银行、服务提供商、政府服务、保险公司、电信提供商、零售商等。
[0135] 用户803可能希望以安全方式与这些机构通信以访问服务。在已知系统中,这可能需要用户具有多个口令以登录每一个相应的机构。出于安全性原因,使用同一口令来登录多个机构并不合乎需要。
[0136] 在此实例中,用户和多个机构协定使用相同的协议。这可以包括协定ECC系统(例如基于secp256k1、secp256r1、secp384r1、secp521r1的那些ECC系统)和生成器(G)。用户接着可以与多个机构和相关联的额外节点7'、7”、7”'注册并共享第一节点主公钥(P1C)。额外节点7'、7”、7”'可以各自执行类似于如上所述的第二节点7的方法的步骤。
[0137] 在用户803每次希望登录到参与机构的网站中的一个中时,其不需要使用口令。实际上,所述协议替换了每一机构的口令需要。在第一节点3所需要的是:始终可得的机构公钥(Institution’s Public Key),和用户在改机构的注册(包括向机构注册第一节点主公钥(P1C))。由于用户向机构注册是使用基于网络的服务的通常惯例,因此这对用户803来说并不成为负担。一旦已完成注册,公共秘密(CS)可以代替口令确定、使用并重新使用。例如,在每个会话的一开始,在步骤310中第一节点3可以生成发送到所述会话涉及的额外节点7'、7”、7”'的消息(M)。在步骤320,410中,消息(M)用于确定对应的确定性密钥,所述确定性密钥接着由第一节点3和额外节点7'、7”、7”'使用,以确定上述方法中所描述的公共秘密(CS)。可选地,可以从额外节点7'、7”、7”'生成或接收消息(M)。在另一可选方案中,消息(M)可以是存储在可由第一节点3和/或额外节点7'、7”、7”'访问的数据存储装置13、17、19中的预定消息。
[0138] 此技术卸去了机构上的重要安全性负担。具体来说,机构不再需要保存口令文件(口令或口令散列的秘密记录),这是因为可以从非秘密信息重新计算公共秘密。确切地说,机构仅需要安全地保存其自身的主私钥。此外,用户并不需要记住或安全地存储许多口令(每一机构一个口令),只要其可以安全地保存其第一节点主私钥(V1C)即可。变化形式
[0139] 现将用以下实例说明一些变化形式。点对点认证
[0140] 在点对点场景中,第一节点3和第二节点7可能需要认证彼此的证书。现参考图8说明此实例。在此实例中,基于已验证的第一签名消息(SM1)认证第一节点3的方法300、400步骤与上述的那些步骤类似。
[0141] 然而,由第二节点7执行的方法400进一步包括步骤462,基于消息(M)和第二节点私钥(V2S),生成第二签名消息(SM2)。在一些可选方案中,第二签名消息(SM2)可以是基于第二消息(M2)和第二节点私钥(V2S)的,其中与第一节点3共享第二消息(M2)。方法400进一步包括步骤464,通过通信网络5将第二签名消息(SM2)发送到第一节点3。
[0142] 在第一节点3,方法300包括从第二节点7接收第二签名消息(SM2)。所述方法包括步骤374,用在步骤370中确定的第二节点第二公钥(P2S)验证第二签名消息(SM2)上的签名。方法300接着可以包括步骤376,基于验证第二签名消息(SM2)的结果,认证第二节点7。这能实现第一节点3和第二节点7进行彼此认证。
确定性密钥的层级
[0143] 在一个实例中,可以确定一系列连续确定性密钥,其中可以基于前一个确定性密钥确定每一后续密钥。
[0144] 举例来说,并非重复步骤310到370和410到470以生成连续单用途密钥,而是根据节点之间的先前协定,可以由两方反复地重新散列先前使用的确定性密钥(DK)来建立确定性密钥层级。实际上,基于消息(M)的散列的确定性密钥可以是用于下一代确定性密钥(DK')的下一代消息(M')。这样做允许计算出连续几代共享秘密,而不需要进行其它协议建立传输,特别是传输用于每一代公共秘密的多个消息。可以采用如下运算来计算下一代公共秘密(CS')。
[0145] 首先,第一节点3和第二节点7独立地确定下一代确定性密钥(DK')。这类似于步骤320和420,但采用以下列公式进行调整:
M'=SHA-256(M)   (公式18)
DK'=SHA-256(M')   (公式19.1)
DK'=SHA-256(SHA-256(M))   (公式19.2)
[0146] 第一节点3接着可以与上述的步骤370和330类似地确定下一代第二节点第二公钥(P2S')和下一代第一节点第二私钥(V2C'),但采用以下公式进行调整:P2S'=P1S+DK'x G   (公式20.1)
V2C'=V1C+DK'   (公式20.2)
[0147] 第二节点7接着可以与上述的步骤430和470类似地确定下一代第一节点第二公钥(P2C')和下一代第二节点第二私钥(V2S'),但采用以下公式进行调整:P2C'=P1C+DK'x G   (公式21.1)
V2S'=V1S+DK'   (公式21.2)
[0148] 第一节点3和第二节点7接着可以各自确定下一代公共秘密(CS')。
[0149] 具体来说,第一节点3用以下公式确定下一代公共秘密(CS'):CS'=V2C'x P2S'   (公式22)
[0150] 第二节点7用以下公式确定下一代公共秘密(CS'):CS'=V2S'x P2C'   (公式23)
[0151] 可以相同方式计算出下几代(CS”、CS”'等)以产生链式层级。此技术需要第一节点3和第二节点7跟踪原始消息(M)或最初计算出的确定性密钥(DK)和与其相关的节点。由于这是公开已知的信息,因此不存在关于保存此信息的安全性问题。因此,此信息可以保存在‘散列表’(将散列值链接到公钥)中并自由地分布再网络5上(例如使用Torrent)。此外,在层级中的任何个别公共秘密(CS)曾经受损的情况下,只要私钥V1C、V1S保持安全,那么这并不会影响层级中的任何其它公共秘密的安全性。
密钥的树状结构
[0152] 除如上述的链式(线性)层级外,可以产生呈树状结构形式的层级。
[0153] 采用树状结构,可以确定用于不同用途的多种密钥,例如认证密钥、加密密钥、签名密钥、支付密钥等,借此这些密钥全部链接到单个安全地维持的主密钥。图9中最好地说明此情况,图9示出了具有多种不同密钥的树状结构901。这些密钥中的每一个可以用于与另一方产生共享的秘密。
[0154] 树状分支可以采用多种方式实现,下文描述其中的三种方式。(i)主密钥派生
[0155] 在链式层级中,每一新‘链接’(公/私密钥对)通过向原始主密钥添加多重重新散列消息来产生。举例来说,(为了清楚起见,仅示出第一节点3的私钥):V2C=V1C+SHA-256(M)   (公式24)
V2C'=V1C+SHA-256(SHA-256(M))   (公式25)
V2C”=V1C+SHA-256(SHA-256(SHA-256(M)))   (公式26)
……等等。
[0156] 为产生分支,可以将任何密钥用作子主密钥。举例来说,V2C'可通过添加散列用作子主密钥(V3C),正如通过对正规主密钥的处理方式一般,:V3C=V2C'+SHA-256(M)   (公式27)
[0157] 子主密钥(V3C)自身可以具有下一代密钥(V3C'),例如:V3C'=V2C'+SHA-256(SHA-256(M))   (公式28)
[0158] 这样就提供了使用主密钥派生方法的树状结构903,如图10所示。(ii)逻辑关联
[0159] 在此方法中,树(公/私密钥对)中的所有节点以链式(或以任何其它方式)生成,且通过表格维护树中的节点之间的逻辑关系,在所述表格中,树中的每一节点简单地使用指针与其在树中的父节点相关联。因此,指针可以用于确定相关公/私密钥对,从而确定用于会话的公共秘密密钥(CS)。(iii)消息多样性
[0160] 可以通过在链或树中的任一点处引入新消息而生成新的私/公钥对。消息自身可以是任意的,或可以携带一些含义或功能(例如,其可能与‘真实的’银行账号等相关)。可能需要安全地保存此类用于形成新私/公钥对的新消息。处理装置
[0161] 如上文所提到的,第一节点3和第二节点7可以是电子装置,例如计算机、平板计算机、移动通信装置、计算机服务器等。电子装置可以包括处理装置23、27、数据存储装置13、17和用户接口15。
[0162] 图11是处理装置23、27的实例。处理装置23、27可以用在第一节点3、第二节点7或其它节点9。处理装置23、27包括通过总线1530彼此通信的处理器1510、存储器1520和接口装置1540。存储器1520存储用于实施上述方法100、200、300、400的指令和数据,且处理器1510执行来自存储器1520的指令以实施方法100、200、300、400。接口装置1540可以包括通信模块,其促进与通信网络5的通信,且在一些实例中,促进与用户接口15和例如数据存储装置13、17、19的外围装置的通信。应注意,尽管处理装置1501可以是独立的网络元件,但处理装置501也可以是另一网络元件的一部分。此外,处理装置1501执行的一些功能可以分布在多个网络元件之间。例如,第一节点3可以具有多个处理装置23,以在与第一节点3相关联的安全局域网中执行方法100、300。
[0163] 在本发明中描述的用户、发布者、商家、提供商或其它实体执行特定动作(包括签名、发布、确定、计算、发送、接收、创建等)的情况下,此措辞是为了清楚起见而使用的。应理解的是,这些动作是由这些实体操作的计算装置执行的。
[0164] 签名可以包括执行加密功能。加密功能具有明文输入和例如私钥的密钥输入。处理器可以执行所述功能,以计算出可以用作签名的数字或字串。接着签名连同明文一起提供,以提供已签名文本。如果消息文本或密钥改变一个比特(a single bit),那么签名将完全改变。虽然计算签名需要极少计算功率,但重新产生具有给定签名的消息实际上是不可能的。这样一来,仅能在私钥可以获得的情况下改变明文,并使其具有有效的签名。此外,其它实体可以使用公开可得的公钥容易地检验签名。
[0165] 在大部分情形中,加密和解密包括处理器执行加密功能,以计算分别表示已加密消息或明文消息的输出字串。
[0166] 密钥、令牌(tokens)、元数据、交易、报价、合约、签名、脚本(scripts)、元数据、邀请等是指表示为存储在数据存储器上的数字、文本或字串的数据,例如“字串”或“整数”类型或其它类型的程序代码中的变量或文本文件。
[0167] 点对点账本(peer-to-peer ledger)的实例是比特币区块链(bitcoin Blockchain)。比特币货币中的转账资金或支付费用包括在比特币区块链上创建交易,其中从所述交易输出资金或费用。比特币交易的实例包括输入交易散列、交易量、一个或多个目的地、一个或多个收款人的公钥,以及通过使用输入交易作为输入消息和用以计算签名的支付方的私钥产生的签名。可以通过检查到输入交易散列存在于比特币区块链的复本中,且使用公钥检查到签名是正确的来验证交易。为确保同一输入交易散列尚未在别处被使用,交易被广播到计算节点(‘矿工’)的网络。仅当输入交易散列尚未连接且签名有效时,矿工才在区块链上接受并记录交易。如果输入交易散列已链接到不同交易,那么矿工拒绝所述交易。
[0168] 为令牌分配密码货币包括产生使用所分配的密码货币的交易,以及在交易中的元数据字段中表示的令牌。
[0169] 当两个项目相关联时,这表示这些项目之间存在逻辑连接。例如,在数据库中,用于两个项目的识别符可以存储在相同记录中,以使所述两个项目彼此相关联。在交易中,用于两个项目的识别符可以包括在交易字串中,以使所述两个项目彼此相关联。
[0170] 使用比特币协议,恢复脚本(redeeming a script)和/或解令牌(unlocking a token)包括使用私钥计算脚本和/或交易的签名字串。脚本可能需要从不同私钥或其它条件导出的多于一个签名。接着此交易的输出被提供给矿工。
[0171] 授权另一实体可以包括使用私钥计算交易的签名字串,并将签名字串提供给实体以允许所述实体使用签名来检验交易。
[0172] 具有另一个实体的账户的用户可以包括存储关于用户的信息的实体,例如电子邮件地址、姓名和可能的公钥。举例来说,实体可以维护数据库,例如SQL、OrientDB、MongoDB或其他数据库。在一些实例中,实体还可以存储用户的私钥中的一个或多个。
[0173] 本领域技术人员将了解,本发明提供优于现有技术的众多技术益处和优点。举例来说,BIP32协议(例如,如比特币开发者指南(Bitcoin developer’s guide)中所描述)使用随机种子来生成子密钥。这导致需要维护索引数据库。然而,根据本发明,使用有意义的消息M来生成子密钥(且因此也生成子共享秘密)。有利的是,这避免了对索引数据库的需求,且因此提供了就其执行所需的计算资源来说更高效的更简单的安全性技术。另外,能实现将有意义的信息与子密钥相关联。举例来说,可重新使用的子密钥可以用于表示特定银行账户或客户端代码等。可选地,可以基于散列特定发票或电影(或其它数据)文件等而生成仅使用一次的子密钥。
[0174] 所属领域的技术人员将了解,可以在不脱离如由所附权利要求书界定的本发明的广泛一般范围的情况下,对上文所描述的实施例作出众多变化和/或修改。因此,本发明的实施例应被视为在所有方面都是说明性的而非限制性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈