首页 / 专利库 / 银行与财务事项 / 比特币钱包 / 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移

用于基于链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移

阅读:357发布:2020-05-16

专利汇可以提供用于基于链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移专利检索,专利查询,专利分析的服务。并且本 发明 提供一种用于控制对例如数字钱包的计算机相关资源的 访问 的计算机实施解决方案。在一个或多个 实施例 中,可以使 用例 如 比特币 区 块 链 的区块链来实施所述钱包,但本发明在这个方面不受限制。在所述钱包的初始设置期间使用本发明可实现后续操作,例如欲以安全方式在例如因特网的不安全信道上处置的钱包交易。根据本发明的实施例的方法可以包括以下步骤:将验证要素(例如非对称密码对中的专用密钥)拆分成多个份额;确定网络中的两个或多个 节点 处的公共秘密;以及使用所述公共秘密在所述两个或多个节点之间传输所述验证要素的至少一个份额。所述份额可以进行拆分,以使得任何一个份额自身都无法实现所述验证要素。这意味着没有一方会存储整个专用密钥,从而增强所述密钥的安全性。需要两个或多个份额来恢复所述密钥。将所述份额存储在单独的 位置 ,所述单独的位置中的一个是独立的备份或安全存储位置。如果其它份额中的一个变得不可用,那么可以根据备份取回所述份额以确保所述密钥(且因此,受控资源)仍可以访问。为了确保所述份额的安全传输,在两个彼此独立的不同节点处产生所述公共秘密,且接着使用所述公共秘密来产生加密密钥。可以使用加密密钥来加密验证要素的至少一个份额或包括所述至少一个份额的消息,从而确保安全地传输所述份额。,下面是用于基于链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移专利的具体信息内容。

1.一种控制资源访问的计算机实施方法,其特征在于,所述方法包括以下步骤:
-将验证要素拆分成多个份额;
-确定网络中的两个或多个节点处的公共秘密;
-使用所述公共秘密在所述两个或多个节点之间传输所述验证要素的至少一个份额。
2.根据权利要求1所述的方法,其特征在于,所述验证要素是加密密钥、加密密钥的代表、或能够用以访问、计算或取回所述加密密钥的某要素。
3.根据权利要求1或2所述的方法,其特征在于,还包括使用所述公共秘密来产生加密密钥的步骤,优选地,其中所述加密密钥用于加密所述验证要素的至少一个份额、或用于加密包括所述至少一个份额或与所述至少一个份额相关的消息。
4.根据前述权利要求中任一项所述的方法,其特征在于,还包括以下步骤:
-将所述验证要素的至少三个份额存储在彼此不同的位置
优选地,其中所述三个份额中的至少一个存储在备份或安全存储设施中或存储在备份或安全存储设施上,所述备用或安全存储设施与至少其他两个位置是单独的、独立的和/或不同的。
5.根据前述权利要求中任一项所述的方法,其特征在于,所述资源是数字钱包或某一形式的货币相关的其它资源。
6.根据前述权利要求中任一项所述的方法,其特征在于,将所述验证要素拆分成多个份额,使得所述验证要素能够从所述份额中的两个或多个份额恢复或再生;
优选地,其中使用沙米尔秘密共享方案来将所述验证要素拆分成多个份额。
7.根据前述权利要求中任一项所述的方法,其特征在于,所述公共秘密是:
i)在彼此独立的所述至少两个节点处进行确定,使得所述公共秘密不需要在所述节点之间的通信信道上传输;和/或
ii)仅由所述至少两个节点共享。
8.根据前述权利要求中任一项所述的方法,其特征在于,包括设置、创建或注册数字钱包的步骤,其中所述验证要素与所述数字钱包相关联。
9.根据前述权利要求中任一项所述的方法,其特征在于,通过所述网络中的第一节点(C)和第二节点(S)来确定所述公共秘密,其中所述第一节点(C)与具有第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)的第一非对称密码对相关联,所述第二节点(S)与具有第二节点主专用密钥(V1S)和第二节点主公用密钥(P1S)的第二非对称密码对相关联;
其中所述方法还包括以下步骤:
-至少基于所述第一节点主专用密钥(V1C)和产生器值(GV)而确定第一节点次专用密钥(V2C);
-至少基于所述第二节点主公用密钥(P1S)和所述产生器值(GV)而确定第二节点次公用密钥(P2S);和
-基于所述第一节点次专用密钥(V2C)和所述第二节点次公用密钥(P2S)而确定所述公共秘密(CS),
其中基于第一节点次公用密钥(P2C)和第二节点次专用密钥(V2S),所述第二节点(S)具有相同的公共秘密(S),其中:
-所述第一节点次公用密钥(P2C)至少基于所述第一节点主公用密钥(P1C)和所述产生器值(GV);且
-所述第二节点次专用密钥(V2S)至少基于所述第二节点主专用密钥(V1S)和所述产生器值(GV)。
10.根据权利要求9所述的方法,其特征在于,所述产生器值(GV)是基于消息(M)。
11.根据权利要求10所述的方法,其特征在于,还包括以下步骤:
-基于所述消息(M)和所述第一节点次专用密钥(V2C)而产生第一签名消息(SM1);

-经由通信网络将所述第一签名消息(SM1)发送到所述第二节点(S),
其中所述第一签名消息(SM1)能够利用第一节点次公用密钥(P2C)来验证,从而认证所述第一节点(C)。
12.根据权利要求10或11所述的方法,其特征在于,还包括:
-经由所述通信网络从所述第二节点(S)接收第二签名消息(SM2);
-利用所述第二节点次公用密钥(P2S)确认所述第二签名消息(SM2);和
-基于验证所述第二签名消息(SM2)的结果,认证所述第二节点(S),
其中基于所述消息(M)或第二消息(M2)和所述第二节点次专用密钥(V2S)来产生所述第二签名消息(SM2)。
13.根据权利要求9到12中任一项所述的方法,其特征在于,还包括:
-产生消息(M);和
-经由通信网络将所述消息(M)发送到所述第二节点(S)。
14.根据权利要求10到13中任一项所述的方法,其特征在于,还包括:
经由所述通信网络从所述第二节点(S)接收所述消息(M)。
15.根据权利要求10到14中任一项所述的方法,其特征在于,还包括:
经由所述通信网络从另一节点接收所述消息(M)。
16.根据权利要求9到15中任一项所述的方法,其特征在于,所述第一节点主公用密钥(P1C)基于第一节点主专用密钥(V1C)和基点(G)的椭圆曲线点乘,第二节点主公用密钥(P1S)基于第二节点主专用密钥(V1S)和基点(G)的椭圆曲线点乘。
17.根据权利要求9到16中任一项所述的方法,其特征在于,还包括以下步骤:
-经由所述通信网络接收所述第二节点主公用密钥(P1S);和
-将所述第二节点主公用密钥(P1S)存储在与所述第一节点(C)相关联的数据存储装置处。
18.根据权利要求9到17中任一项所述的方法,其特征在于,还包括以下步骤:
-在第一节点(C)处产生所述第一节点主专用密钥(V1C)和所述第一节点主公用密钥(P1C);
-经由所述通信网络将所述第一节点主公用密钥(P1C)发送到所述第二节点(S)和/或其它节点;以及
-将所述第一节点主专用密钥(V1C)存储在与所述第一节点(C)相关联的第一数据存储装置中。
19.根据权利要求9到18中任一项所述的方法,其特征在于,所述产生器值(GV)是基于确定前一个产生器值(GV)的散列。
20.根据权利要求9到19中任一项所述的方法,其特征在于,所述第一非对称密码对基于前一个第一非对称密码的函数,所述第二非对称密码对基于前一个第二非对称密码对的函数。
21.一种基于计算机的系统,其特征在于,其经配置以执行根据前述权利要求中任一项所述的步骤。
22.根据权利要求21所述的系统,其特征在于,
所述资源是数字钱包、或某一形式的货币相关的其它资源。
23.根据权利要求20到22所述的系统,其特征在于,所述系统包括经配置以实现设置、创建或注册数字钱包的软件,其中所述验证要素与所述数字钱包相关联。
24.一种计算机实施系统,其经配置以控制访问数字钱包,其特征在于,所述系统用于:
-至少基于第一实体主专用密钥和产生器值而确定第一实体次专用密钥;
-至少基于第二实体主专用密钥和所述产生器值而确定第二实体次专用密钥;
-基于所述第一实体次专用密钥和第二实体次公用密钥而确定所述第一实体处的公共秘密(CS),且基于所述第二实体次专用密钥和第一实体次公用密钥而确定所述第二实体处的公共秘密(CS);且
其中:
所述第一实体次公用密钥和所述第二实体次公用密钥分别至少基于所述第一/第二实体主密钥和所述产生器值。
25.一种控制访问数字钱包的方法,其特征在于,所述方法包括以下步骤:
-至少基于第一实体主专用密钥和产生器值而确定第一实体次专用密钥;
-至少基于第二实体主专用密钥和所述产生器值而确定第二实体次专用密钥;
-基于所述第一实体次专用密钥和第二实体次公用密钥而确定所述第一实体处的公共秘密(CS),且基于所述第二实体次专用密钥和第一实体次公用密钥而确定所述第二实体处的公共秘密(CS);且
其中:
所述第一实体次公用密钥和所述第二实体次公用密钥分别至少基于所述第一/第二实体主密钥和所述产生器值。

说明书全文

用于基于链的系统结合钱包管理系统的安全多方防遗失

存储和加密密钥转移

技术领域

[0001] 本发明大体上涉及计算机和数据安全,且更具体地说,涉及对例如加密密钥的高度敏感数据项进行的安全处理。本发明提供一种访问控制机制。本发明特别适合于但不限于与数字(软件)钱包一起使用。这可包括例如比特币(Bitcoin)的密码货币相关使用的钱包。本发明提供一种有利的访问控制机制。

背景技术

[0002] 密码术涉及对敏感数据进行安全存储以及敏感数据在网络中的两个或多个节点之间通信的技术。节点可以包括:移动通信装置、平板计算机、膝上型计算机、台式计算机、其它形式的计算装置和通信装置、网络中的服务器装置、网络中的客户端装置、分布式网络中的一个或多个节点等等。举例来说,节点可以与自然人、例如公司雇员的一群人、例如行系统的系统或分布式点对点账簿(即,区块链(blockchain))相关联。
[0003] 两个或多个节点可以通过通信网络链接,通信网络不安全且易受未经授权的第三方的窃听或拦截。因此,常常以加密形式来发送在节点之间发送的消息。在接收后,既定接收方即刻运用对应的解密密钥或其它解密方法来解密消息。因此,此类通信的安全性可以取决于防止第三方确定对应的解密密钥。
[0004] 一种已知的加密方法包括使用对称密钥算法。在将同一对称密钥用于加密明文消息和解密密文消息的意义上,密钥是对称。然而,必须以安全方式将对称密钥传输到两个节点,从而防止对对称密钥进行未经授权的访问。这可包括例如将对称密钥物理传递到(经授权的)节点,使得对称密钥永不经由不安全通信网络进行传输。然而,物理传递并不总是切实可行的选择方案。因此,此类密码系统的问题在于:在透过不安全电子网络(例如因特网)的节点之间建立对称密钥(其可基于公共秘密)。因此,提供对称密钥(公共秘密)的这个步骤可能是灾难性漏洞。因为对称密钥算法和协议简单且被广泛使用,所以两个节点需要在不安全网络中,确定基于公共秘密的对称密钥。
[0005] 使用非对称密钥(亦称为公用密钥密码术)会在某一程度上缓解这种问题。当专用密钥被保密,其对应的公用密钥可以公开可用。专用密钥在网络上的拦截不具灾难性。现有协议包括迪菲-赫尔曼密钥交换(Diffie-Hellman Key Exchange)和三通协议(Three Pass Protocol)。
[0006] 然而,专用密钥的存储引起大量安全性关注。举例来说,考虑例如比特币钱包的数字钱包。数字钱包包括使用户能够与其它节点连接以便执行与其电子资产交易的软件,例如使用比特币资金来购买商品和服务。常常使用公用密钥密码术来保护此类连接和交易所需的重要信息。通过安装在用户装置(“客户端侧”)上的钱包或通过钱包服务提供商(“服务器侧”)来存储专用密钥。然而,如果专用密钥仅存储在客户端侧处,那么专用密钥可能经由对用户的硬件(例如计算机、移动电话等等)发生的偷窃、丢失或损坏而丢失。相似地,如果用户死亡或丧失能,那么对专用密钥的了解或对专用密钥的获得可能会丢失,且因此,与钱包相关联的资金变得不可获得。虽然对专用密钥的服务器侧存储可以克服这些问题,但用户必须愿意信任服务提供商使其专用密钥保持安全。服务器侧处的安全漏洞是真实且显著的险。

发明内容

[0007] 因此,需要提供实现对秘密进行安全处理的解决方案。这种秘密可以是加密密钥和/或可提供对密钥的访问的某物。现在已设计了此类改进型解决方案。根据本发明,提供一种如所附权利要求书中所界定的改进型解决方案。
[0008] 本发明可提供一种计算机实施方法。所述计算机实施方法可实现控制对资源的访问。所述方法可以被称为验证或认证方法。所述方法可被称作加密密钥管理解决方案。所述资源可以是任何类型的物理或电子资源。在一个实施例中,所述资源是数字钱包或其它与货币形式相关的资源。所述资源可以是比特币钱包或其它用于管理加密货币资源的钱包。本发明可以提供一种控制对数字钱包(和对应系统)的访问的方法。
[0009] 本发明可以在经由不安全通信信道(例如因特网)设置、注册或创建数字钱包期间使用,从而实现后续钱包相关操作,例如待处理、通信和/或创建的交易以安全方式进行。
[0010] 本发明的一个或多个实施例可以包括从现有加密密钥对导出加密密钥的步骤。这可以包括以下步骤:至少基于第一实体主专用(private)密钥和产生器值而确定第一实体次专用密钥;
至少基于第二实体主专用密钥和所述产生器值而确定第二实体次专用密钥;
基于所述第一实体次专用密钥和第二实体次公用(public)密钥而确定所述第一实体处的公共秘密(CS),且基于所述第二实体次专用密钥和第一实体次公用密钥而确定所述第二实体处的公共秘密(CS);且
其中:
所述第一实体次公用密钥和所述第二实体次公用密钥分别基于至少所述第一/第二实体主密钥和所述产生器值。
[0011] 另外或替代地,本发明可以包括一种控制对数字钱包的访问的方法,所述方法包括以下步骤:至少基于第一实体主专用密钥和产生器值而确定第一实体次专用密钥;
至少基于第二实体主专用密钥和所述产生器值而确定第二实体次专用密钥;
基于所述第一实体次专用密钥和第二实体次公用密钥而确定所述第一实体处的公共秘密(CS),且基于所述第二实体次专用密钥和第一实体次公用密钥而确定所述第二实体处的公共秘密(CS);且
其中:
所述第一实体次公用密钥和所述第二实体次公用密钥分别基于至少所述第一/第二实体主密钥和所述产生器值。
[0012] 另外或替代地,所述方法可以包括以下步骤:将验证要素拆分成多个份额(share);
确定网络中的两个或多个节点处或两个或多个节点上的公共秘密;
使用所述公共秘密将所述验证要素的至少一个份额从所述网络中的一个节点传输到至少一个其它节点。
[0013] 所述验证要素可以是加密密钥。所述验证要素可以是非对称密码对中的专用密钥。另外或替代地,所述验证要素可以表现为加密密钥,或可用以访问、计算、导出或检索加密密钥的某项目。所述验证要素可以是可用于验证过程中的某秘密或数值,例如助记符或种子
[0014] 因此,本发明的一个方面可涉及将秘密,例如专用密钥,拆分成(独一无二)多个份额。所述验证要素可以拆分成多个份额,使得所述验证要素可以从所述多个份额中的两个或多个中恢复或再生。可以使用沙米尔秘密共享方案(Shamir's Secret Sharing Scheme)来将验证要素拆分成多个份额。
[0015] 所述份额可以被拆分,使得任何份额自身不具有数值,这意味着份额不可用于达成所述(原始的、非拆分的)验证要素。可以执行所述拆分,使得所述验证要素可仅在预定数目个份额组合后恢复。在一个实施例中,任意两个份额可足以恢复所述验证要素。
[0016] 本发明的另一方面可涉及各自份额的安全处理或存储。所述份额可以发送到不同方并由不同方存储。这些方中的一些或全部可以是所述网络上的节点。在一个实施例中,所述方法可以包括将所述验证要素的至少三个份额存储在彼此不同的位置的步骤。
[0017] 可以将至少一个所述份额存储在备份或“安全存储”设施中或存储在备份或“安全存储”设施上。所述备份或“安全存储”设施可以是单独的、独立的和/或与存储份额的任何其它位置不同。这会提供重要优点,这是因为这种方式能够在其它份额中的一个变得不可用的情况下实现验证要素的恢复。在此情形下,可以从安全存储设施得到所述份额。
[0018] 可以在验证要素的恢复之前使用份额来执行验证过程。验证过程可以包括验证预先确定的或指定的个体身份和/或计算资源。
[0019] 本发明的另一方面可涉及所述份额中的一个或多个的安全分布。所述方法可以包括使用公共秘密产生加密密钥的步骤,其中所述加密密钥用以加密所述验证要素的至少一个份额或包括所述至少一个份额的消息。
[0020] 可以在彼此独立的至少两个节点处确定公共秘密。因此,每一节点可以确定或产生自己的秘密,而无需从其它节点或另一方输入或与其它节点或另一方通信。这意味着所述公共秘密可能不需要在通信信道上传输。这会增强安全性,这是因为公共秘密不会被未经授权方拦截。所述公共秘密可以仅被该至少两个节点共用(亦即,被该至少两个节点共享)。可以接着使用公共秘密来产生加密密钥,且所述加密密钥可以用于份额的安全传输。还可以使用加密密钥来传输其它数据。
[0021] 所述方法可以包括确定第一节点(C)处的所述第一节点(C)与第二节点(S)共用的公共秘密(CS)的步骤,其中所述第一节点(C)与具有第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)的第一非对称密码对相关联,且所述第二节点(S)与具有第二节点主专用密钥(V1S)和第二节点主公用密钥(P1S)的第二非对称密码对相关联,其中所述方法包括:-至少基于所述第一节点主专用密钥(V1C)和产生器值(GV)而确定第一节点次专用密钥(V2C);
-至少基于所述第二节点主公用密钥(P1S)和所述产生器值(GV)而确定第二节点次公用密钥(P2S);和
-基于所述第一节点次专用密钥(V2C)和所述第二节点次公用密钥(P2S)而确定所述公共秘密(CS),
其中基于第一节点次公用密钥(P2C)和第二节点次专用密钥(V2S),所述第二节点(S)具有相同的公共秘密(S),其中:所述第一节点次公用密钥(P2C)至少基于所述第一节点主公用密钥(P1C)和所述产生器值(GV);且所述第二节点次专用密钥(V2S)至少基于所述第二节点主专用密钥(V1S)和所述产生器值(GV)。
[0022] 所述产生器值(GV)可基于消息(M)。所述方法可以进一步包括:基于所述消息(M)和所述第一节点次专用密钥(V2C)而产生第一签名消息(SM1);和经由所述通信网络将所述第一签名消息(SM1)发送到所述第二节点(S),其中可以利用第一节点次公用密钥(P2C)来确认所述第一签名消息(SM1),从而认证所述第一节点(C)。
[0023] 所述方法还可包括:经由所述通信网络从所述第二节点(S)接收第二签名消息(SM2);利用所述第二节点次公用密钥(P2S)确认所述第二签名消息(SM2);和基于确认所述第二签名消息(SM2)的结果,认证所述第二节点(S),其中基于所述消息(M)或第二消息(M2)和所述第二节点次专用密钥(V2S)来产生所述第二签名消息(SM2)。
[0024] 所述方法可以进一步包括产生消息(M);和经由通信网络将所述消息(M)发送到所述第二节点(S)。替代地,所述方法可以包括经由所述通信网络从所述第二节点(S)接收所述消息(M)。在又一替代方案中,所述方法可以包括经由所述通信网络从另一节点接收所述消息(M)。在又一替代方案中,所述方法可以包括从数据存储装置和/或与所述第一节点(C)相关联的输入界面接收所述消息(M)。
[0025] 所述第一节点主公用密钥(P1C)、第二节点主公用密钥(P1S)可基于第一节点主专用密钥(V1C)和第二节点主专用密钥(V1S)分别与产生器(G)的椭圆曲线点乘。
[0026] 所述方法可以进一步包括以下步骤:经由所述通信网络接收所述第二节点主公用密钥(P1S);和将所述第二节点主公用密钥(P1S)存储在与所述第一节点(C)相关联的数据存储装置处。
[0027] 所述方法可以进一步包括以下步骤:在第一节点(C)处产生所述第一节点主专用密钥(V1C)和所述第一节点主公用密钥(P1C);经由所述通信网络将所述第一节点主公用密钥(P1C)发送到所述第二节点(S)和/或其它节点;以及将所述第一节点主专用密钥(V1C)存储在与所述第一节点(C)相关联的第一数据存储装置中。
[0028] 所述方法还可包括:经由所述通信网络将通知发送到所述第二节点,所述通知指示针对确定公共秘密(CS)的方法利用常见的椭圆曲线密码术(ECC)系统以及基点(G)。产生所述第一节点主专用密钥(V1C)和所述第一节点主公用密钥(P1C)的步骤可以包括:基于常见ECC系统中指定的可允许范围内的随机整数而产生第一节点主专用密钥(V1C);和根据以下公式,基于第一节点主专用密钥(V1C)与基点(G)的椭圆曲线点乘而确定第一节点主公用密钥(P1C):P1C=V1C x G
[0029] 所述方法可以进一步包括:基于确定消息(M)的散列(hash)而确定产生器值(GV),其中确定第一节点次专用密钥(V2C)的步骤是根据以下公式基于第一节点主专用密钥(V1C)与产生器值(GV)的标量加法:V2C=V1C+GV
[0030] 确定第二节点次公用密钥(P2S)的步骤可根据以下公式基于第二节点主公用密钥(P1S)椭圆曲线点加到产生器值(GV)与基点(G)的椭圆曲线点乘:P2S=P1S+GV x G。
[0031] 产生器值(GV)可基于前一个产生器值(GV)的散列确定。
[0032] 所述第一非对称密码对和所述第二非对称密码对可分别基于前一个第一非对称密码对与前一个第二非对称密码对的函数。
[0033] 换句话说,本发明可以提供一种方法,所述方法包括以下步骤:将验证要素拆分成多个份额;
基于第一主非对称密钥对,在第一节点处产生得到的(或第二)专用加密密钥;
使用所述得到的专用密钥来加密所述验证要素的至少一个份额和/或对所述验证要素的至少一个份额进行安全传输。
[0034] 所述方法还可包括在第二节点处产生相同的得到的专用密钥的步骤,所述得到的专用密钥独立于第一节点且基于第二主非对称密钥对而产生。
[0035] 得到的专用密钥可以是包括专用密钥和公用密钥的非对称密钥对的一部分。第一和/或第二节点可使用椭圆曲线密码术(ECC)来产生专用密钥(和其对应的公用密钥)。
[0036] 所述方法可以包括以下步骤:●使用基点(G)而在第一节点与第二节点之间商定标准ECC系统;和/或
●使用商定的标准ECC系统在第一和/或第二节点处产生公用/专用密钥对和公布公用密钥;这可意味着使公用密钥公开可用;和/或
●在第二节点或另一位置处注册第一节点的主公用密钥(PMC);和/或在第一节点或另一位置处注册第二节点的主公用密钥(PMC);和/或
●将消息(M)从第一节点发送到第二节点,和/或反之亦然,以及创建消息的散列;可以使用得到的专用密钥来对消息签名;这个步骤可表示1)建立节点之间的共享秘密和2)发起节点之间的安全通信会话,所需的唯一传输。第一或第二节点可以使用接收到的消息M来产生其自身得到的(次)公用/专用密钥对。这可允许所述节点计算其它节点得到的公用密钥;
和/或
●接收消息且独立地计算消息M的散列(例如,SHA-256(M));和/或
●计算可从主密钥(PMC)得到的公用密钥(P2C);和/或
●针对所计算的P2C确认签名(Sig-V2C)
[0037] 可以确定性地从第一或第二节点的主公用密钥得到所得到的专用密钥。
[0038] 本发明还可包括一种计算机实施系统,所述计算机实施系统被布置和配置成实施上文所描述的方法的任何实施例。所述系统可以包括或利用区块链网络或平台。另外或替代地,所述系统可以包括数字钱包提供商或管理系统。
[0039] 上文关于本发明的一个方面或实施例所描述的任何特征还可以相对于任何其它方面或实施例予以使用。举例来说,而且,关于方法所描述的特征可适用于所述系统,且反之亦然。
[0040] 本发明的这些方面和其它方面将从本文中描述的实施例显而易见,且参考本文中描述的实施例进行阐明。附图说明
[0041] 现在将参看附图示例性描述本发明的实施例,在附图中:
[0042] 图1是用以确定第一节点和第二节点的公共秘密的示例系统的示意图,根据本发明,该示例系统可以用于例如专用密钥的份额的高度敏感信息的安全传输;
[0043] 图2是用于确定公共秘密的计算机实施方法的流程图,根据本发明,该计算机实施方法可以用于例如专用密钥的份额的高度敏感信息的安全传输;
[0044] 图3是用以注册第一和第二节点的计算机实施方法的流程图;
[0045] 图4是用于确定公共秘密的计算机实施方法的另一流程图,根据本发明,该计算机实施方法可以用于例如专用密钥的份额的高度敏感信息的安全传输;
[0046] 图5是第一节点与第二节点之间的安全通信的计算机实施方法的流程图。

具体实施方式

[0047] 如上文所解释,需要增强对例如加密密钥的秘密或可用以产生密钥的秘密的存储和/或交换。秘密可以是钱包助记符的种子或其它安全有关项目。本发明提供此类解决方案。下文描述的实施例是出于说明的目的,且实施例利用在区块链上实施的数字钱包的研究范围。然而,本发明不限于此类实施方案,且可针对任何计算机实施网络或系统实施本发明。
[0048] 如上所述,常常针对数字钱包使用公用密钥密码术。如果终端用户(我们可将其称作“客户端”或简言之“用户”)负责存储其专用密钥,那么当用户或其硬件变得不可用时,可能会产生如下问题:这会致使专用密钥和因此钱包资金不可访问。然而,将密钥存储在钱包提供商的终端(我们将其称作“服务器侧”)处需要一定程度地信任所述提供商和其安全机构。因此,需要存储专用密钥使得专用密钥不可由未经授权方获得,但专用密钥还可在必要时重制。术语“用户”可以是人类用户或计算机实施资源。
[0049] 一种已知的加密算法(被称为“沙米尔秘密共享方案”(4S))教示将秘密拆分成独一无二的部分或份额,接着将所述部分或份额分布给不同方。此后可以使用这些份额来重建构秘密。每一独立份额不具有任何值或自行使用,直到其与一个或多个其它份额组合。重建构秘密所需的份额数目可以根据情形需要而变化。在一些状况下,可能需要所有份额,而在其它状况下,仅仅需要足够数目的份额。这被称为阈值方案,其中任意k个份额足以重建构原始秘密。
[0050] 在该说明性实施例中,利用4S将例如专用密钥或助记符种子的秘密拆分成数个部分。接着还利用4S从一定数目个部分再生密钥或助记符种子。助记符与数字钱包结合的使用是已知的。助记符是可以转成二元种子以用于产生钱包或数据的人类友好的代码或字组群。
[0051] 在本文中,会使用以下术语。●“秘密”(S)是需要各方之间安全共享的秘密(例如,数或值)。
●“份额”是秘密的一个片段份。将秘密划分成多个片段,且每一片段被称为份额。根据给定秘密计算份额。为了恢复秘密,个体必须获得一定数目个份额。
●“阈值”(k)是个体需要用来再生或恢复秘密的最小数目个份额。仅当你具有>=k个份额时,秘密才可以再生。
●“质数”(p)是随机质数。
[0052] 从广义方面来看,说明性实施例可以包括如下方法。在该实例中,我们使用“2-of-3”方案(亦即,k=2):
●用户向钱包提供商注册,以产生并设置与所述用户相关联的新钱包。在该实例中,钱包是利用区块链的比特币钱包
●产生公用-专用密钥对且使其与用户的钱包相关联;
●使用4S将专用密钥拆分成多个份额
●经由安全传输发送专用密钥的一个份额到用户
●专用密钥的另一份额通过服务提供商来存留并存储在服务器上
●经由安全传输发送另一份额到远程位置以供安全存储。术语“远程”并不暗示任何特定地理距离或位置。替代的是,在本文中使用“远程”意味着份额保存在某意义上独立于钱包提供商或用户(优选为二者)的安全存储设施或资源处(或上),安全存储设施或资源。“独立”可以包括物理独立、逻辑独立、财务独立、政治独立和/或组织独立。举例来说,安全存储可以外包给提供收费的安全存储服务的商业实体;或安全存储可以由用户代理人或某一其它选择(并可信)方保存,其负责存储份额并在需要时在请求后提供所述份额;
●钱包提供商可以摧毁完整专用密钥的任何或所有复本,这是因为所述复本不再被需要。当后续用户授权需要专用密钥(例如,由于用户现在希望进行交易)时,可以根据用户的份额和钱包提供商的份额重建构密钥,在需要时,用户将密钥提供给钱包提供商。
[0053] 这种情况的优点在于:即使钱包提供商的安全性被破坏,未经授权方也无法获得用户的专用密钥,这是因为用户的专用密钥并未存储在钱包提供商系统上的任何地方,且钱包提供商系统单独不包括足够份额以允许重建构专用密钥。这个优点同样适用于客户的安全性被破坏的情形。
[0054] 另一优点在于:通过将一份额存储在安全存储位置,可以通过从安全存储装置取回所述份额并将所述份额与钱包提供商的份额组合来重建构专用密钥。因此,如果用户死亡或丧失能力,或如果用户的硬件(和因此份额)丢失、损坏或被盗,那么钱包中的资金仍可以访问。在此情形下,将会验证用户的身份。在一些状况下,将会验证经证实的可信方(例如财产的遗嘱执行人或代理人)的身份。举例来说,在提供例如死亡凭证、护照、合法文件或其它形式的鉴定的证明后实现这种验证。在验证经授权身份后,将从安全存储装置取回秘密的份额。因此,安全存储装置充当可在特殊情形或预定情形下使用的一种类型的备份设施。
[0055] 因此,本发明提供增强型系统/数据安全加上便利性的有利组合。本发明提供一种用于访问控制的简单、有效并安全的解决方案。
[0056] 应注意,在以上实例中,通过钱包服务提供商来产生专用密钥,且将各部分发送到用户和安全存储资源。然而,在其它实施例中,情况可能并非如此。还重要的是,应注意,必须以安全方式执行在各方(其可被称作“节点”)之间传输各部分,这是因为对多个份额的未经授权拦截可能使得拦截器能够重建构秘密(例如,助记符或密钥)。还通过本发明来解决这种安全交换问题,如下文所描述。
[0057] 现在出于说明的目的描述本发明的较详细方面。应注意,沙米尔秘密共享方案是所属领域中已知的技术,且所属领域的技术人员将会意识到、理解并能够使用沙米尔秘密共享方案。因此,仅出于完整性的目的而提供以下内容。
[0058] 将秘密拆分成多个份额
[0059] 给定秘密S、数个参与方n、阈值数目k和某一质数p,我们以恒定项S建构以下多项式:y=f(x)of degree k-1(modulo our prime p)
[0060] 接下来,我们选择1与p-1之间的n个独一无二的随机整数(包括端值),并评估那些n个点处的多项式。向n个参与方中的每一个赋予(x,y)对。这可通过以下步骤实现:
[0061] 1.转换成整数对于4S算法,秘密需要是整数。因此,如果秘密呈某一其它格式(例如,字串、16进位数等等),那么秘密必须首先转换成整数。如果秘密已经是整数,那么可以省略这个步骤。对于此实例,假设S=1234。
[0062] 2.决定份额数目(n)和阈值(k)应注意,将会需要k个部分来再生秘密。因此,选择S和k使得当恢复秘密是,可始终获得k个部分。对于此实例,假设n=6,k=3。
[0063] 3.创建多项式
[0064] 我们需要创建以下形式的多项式:y=f(x)mod pi.确定恒定项和多项式次数
2 3 k-1
f(x)=a0+a1x+a2x+a3x+…+ak-1x
-恒定项a0=S
-多项式次数=k-1
因此,对于k=3和S=1234,我们需要用次数2和a0=1234构建多项式
f(x)=1234+a1x+a2x2
ii.确定系数
选择k-1个随机数(使用随机(或伪随机)数产生器),使得:
0假设a1=166;a2=94
因此,f(x)=1234+166x+94x2
iii.选择随机质数
选择随机质数(p),使得:
p>max(S,n)
假设p=1613
iv.最终多项式
y=f(x)mod p
y=(1234+166x+94x2)mod1613
[0065] 创建份额
[0066] 为了将秘密划分成n个份额,我们需要使用以下多项式来建构n个点(份额):y=(1234+166x+94x2)mod 1613
因为对于此实例,n=6,所以我们将具有6个点。应注意,我们以x=1开始而非x=0开始。
对于x=1到6,6个点如下:
(1,1494);(2,329);(3,965);(4,176);(5,1188);(6,775)
从这些n(6)个点,可以使用任何k(3)个点来再生秘密密钥。
[0067] 根据给定数目个份额重建构秘密i.得到秘密整数
为了重建构秘密,我们需要以下信息:
n=6,k=3,p=1613,
k个份额:
(x0,y0)=(1,1494);(x1,y1)=(2,329);(x2,y2)=(3,965)
一旦我们具有以上信息,我们就可以使用所属领域中已知且所属领域的技术人员易于了解的例如拉格朗日内插法(Lagrange Interpolation)的技术。在使用这种技术的情况下,我们可以重建全部多项式。可以根据以下公式计算系数:
ai(x)=[∑k-1i=0yiΠ0<=j<=k-1,j≠i(x-xj)/(xi-xj)]modp
但因为S=a0,所以我们仅需要找到a0=a0(0)
其中xi-xj≠0
所属领域的技术人员应理解,在上文中,指数-1表示取乘法逆。大多数编程语言包括用以执行数学运算(例如乘法逆)的内置数据包。
ii.将整数转换成所希望的格式
如果执行步骤1以将特定格式转换成整数,那么我们会遵循逆向程序以将整数转换回成所希望的格式。
[0068] 份额的安全传输
[0069] 如上文所提及,重要的是,以安全方式将秘密的份额传输到各接收方,以便防止未经授权方能够重建构秘密。在一个优选实施例中,可以如下文所描述来实现安全传输。
[0070] 可以在两方之间建立公共秘密(CS),且接着利用公共秘密(CS)来产生安全加密密钥以供传输所述份额中的一个或多个。这个公共秘密(CS)不要与上文所提及的秘密(S)混淆。产生公共秘密(CS),且利用公共秘密(CS)来实现例如密钥或其份额的秘密(S)的安全交换。
[0071] 两方可以是钱包服务提供商、用户、安全存储资源或其它合法方中的两个。以下,为方便起见,所述两方将被称作第一节点(C)、第二节点(S)。目的是产生两个节点知晓的公共秘密(CS),而无需经由通信信道发送所述公共秘密,因此消除对其未经授权发现的可能性。秘密拆分加上安全存储技术以及例如下文所描述的安全传输技术会提供安全密钥管理解决方案。
[0072] 本发明的安全传输技术涉及以独立方式在传输的每一端处产生CS,使得当两个节点都知晓CS,CS无需通过潜在的不安全的通信信道移动。一旦已在两端处建立所述CS,就可以利用所述CS来产生两个节点此后都可以用于通信的安全加密密钥。这在钱包注册过程期间,对于拆分的专用密钥从一方传输到另一方尤其有利。
[0073] 图1示出系统1,其包括经由通信网络5而与第二节点7通信的第一节点3。第一节点3具有相关联的第一处理装置23,且第二节点5具有相关联的第二处理装置27。第一节点3和第二节点7可以包括例如计算机、电话、平板计算机、移动通信装置、计算机服务器等等的电子装置。在一个实例中,第一节点3可以是客户端(用户)装置,且第二节点7可以是服务器。
服务器可以是数字钱包提供商的服务器。
[0074] 第一节点3与具有第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)的第一非对称密码对相关联。第二节点(7)与具有第二节点主专用密钥(V1S)和第二节点主公用密钥(P1S)的第二非对称密码对相关联。换句话说,第一和第二节点各自拥有各自的公用-专用密钥对。
[0075] 可以在注册过程(例如钱包注册)期间分别产生用于第一节点3的第一非对称密码对和第二节点7的第二非对称密码对。用于每一节点的公用密钥可以被(例如经由通信网络5)公开共享。
[0076] 为了确定第一节点3和第二节点7处的公共秘密(CS),节点3、7会分别执行方法300、400的步骤,而不经由通信网络5传递专用密钥。
[0077] 由第一节点3执行的方法300包括至少基于第一节点主专用密钥(V1C)和产生器值(GV)来确定第一节点次专用密钥(V2C)330。产生器值可基于在第一节点与第二节点之间共享的消息(M),其可以包括经由通信网络5共享消息,如下文进一步详细描述。方法300还包括至少基于第二节点主公用密钥(P1S)和产生器值(GV)来确定第二节点次公用密钥(P2S)370。方法300包括基于第一节点次专用密钥(V2C)和第二节点次公用密钥(P2S)来确定公共秘密(CS)380。
[0078] 重要的是,还可通过方法400在第二节点7处确定相同的公共秘密(CS)。方法400包括基于第一节点主公用密钥(P1C)和产生器值(GV)来确定第一节点次公用密钥(P2C)430。方法400进一步包括基于第二节点主专用密钥(V1S)和产生器值(GV)来确定第二节点次专用密钥(V2S)470。方法400包括基于第二节点次专用密钥(V2S)和第一节点次公用密钥(P2C)来确定公共秘密(CS)480。
[0079] 通信网络5可以包括局域网、广域网、蜂窝式网络、无线电通信网络、因特网等等。这些网络(其中可以经由例如电线、光纤的通信媒体传输数据,或以无线方式传输数据)可能易受窃听影响,例如通过窃听器11。方法300、400可允许第一节点3和第二节点7独立地确定公共秘密而不经由通信网络5传输所述公共秘密。
[0080] 因此,一个优点在于:可以通过每一节点来安全地并独立地确定公共秘密(CS),而不必经由潜在的不安全的通信网络5传输专用密钥。继而,可以将公共秘密用作秘密密钥(或用作秘密密钥的基础),用于经由通信网络5而在第一节点3与第二节点7之间进行加密通信。
[0081] 方法300、400可以包括额外步骤。方法300可以包括基于消息(M)和第一节点次专用密钥(V2C)而在第一节点3处产生签名消息(SM1)。方法300进一步包括经由通信网络而将第一签名消息(SM1)发送到第二节点7,360。继而,第二节点7可执行接收第一签名消息(SM1)440的步骤。方法400还包括以下步骤:利用第一节点次公用密钥(P2C)确认第一签名消息(SM2)450;和基于确认第一签名消息(SM1)的结果,认证第一节点3,460。有利地,这允许第二节点7认证声称的第一节点(其中产生第一签名消息)是第一节点3。这是基于仅第一节点3可以访问第一节点主专用密钥(V1C)的假设,且因此,仅第一节点3可以确定第一节点次专用密钥(V2C)从而产生第一签名消息(SM1)。应了解,相似地,可以在第二节点7处产生第二签名消息(SM2)且将第二签名消息(SM2)发送到第一节点3,使得第一节点3可以在例如点对点场景下认证第二节点7。
[0082] 可以通过多种方式实现在第一节点与第二节点之间共享消息(M)。在一个实例中,可以在第一节点3处产生消息,接着经由通信网络5而将所述消息发送到第二节点7。替代地,可以在第二节点7处产生消息,且接着经由通信网络5而将所述消息发送到第二节点7。在又另一实例中,可以在第三节点9处产生消息,且将所述消息发送到第一节点3和第二节点7。在又另一替代方案中,用户可经由用户界面15输入待由第一节点3和第二节点7接收的消息。在又另一实例中,可以从数据存储装置19取回消息(M)且将所述消息(M)发送到第一节点3和第二节点7。在一些实例中,消息(M)可以是公用的,且因此,可以经由不安全网络5传输所述消息(M)。
[0083] 在其它实例中,可以将一个或多个消息(M)存储在数据存储装置13、17、19中,其中消息可以与某一实体(例如数字钱包)相关联,或者与第一节点3与第二节点7之间建立的通信会话相关联。因此,可以取回消息(M),且使用所述消息(M)分别在第一节点3和第二节点7处重建与所述钱包或会话相关联的公共秘密(CS)。
[0084] 有利地,可以保存允许重建公共秘密(CS)的记录,该记录本身无需私密地存储或安全地传输。在第一节点3和第二节点7处执行众多交易的情况下,这种情形可以是有利的,且将所有消息(M)单独存储在节点本身处是不切实际的。
[0085] 注册方法100、200
[0086] 将参看图3描述注册方法100、200的实例,其中通过第一节点3来执行方法100,且通过第二节点7来执行方法200。这包括分别针对第一节点3和第二节点7建立第一和第二非对称密码对。
[0087] 非对称密码对包括相关联的专用密钥和公用密钥,例如用于公用密钥加密的专用密钥和公用密钥。在这个实例中,利用椭圆曲线密码术(ECC)和椭圆曲线运算的特性来产生非对称密码对。
[0088] ECC标准可以包括已知标准,例如高效密码术小组标准所描述的标准(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中描述了椭圆曲线密码术。
[0089] 在方法100、200中,这包括了第一节点和第二节点商定公共ECC系统且使用基点(G)110、210。(应注意:基点可被称作公共产生器,但使用术语“基点”用于避免与产生器值(GV混淆)。在一个实例中,公共ECC系统可基于secp256K1,其是由比特币使用的ECC系统。可以选择、随机产生或指派基点(G)。
[0090] 现在转而参看第一节点3,方法100包括选定公共ECC系统和基点(G)110。这可以包括从第二节点7或第三节点9接收公共ECC系统和基点。替代地,用户界面15可以与第一节点3相关联,由此用户可选择性地提供公共ECC系统和/或基点(G)。在又另一替代方案中,可以通过第一节点3来随机选择公共ECC系统和/或基点(G)中的一个或两个。第一节点3可经由通信网络5而将指示使用公共ECC系统与基点(G)的通知发送到第二节点7。继而,第二节点7可通过发送指示应答使用公共ECC系统和基点(G)的通知来安排210。
[0091] 方法100还包括第一节点3产生第一非对称密码对120,第一非对称密码对包括第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)。这包括至少部分地基于在公共ECC系统中指定的可允许范围内的随机整数而产生第一主专用密钥(V1C)。这还包括根据以下公式基于第一节点主专用密钥(P1C)与基点(G)的椭圆曲线点乘而确定第一节点主公用密钥(P1C):P1C=V1C x G  (等式1)
[0092] 因此,第一非对称密码对包括:V1C:通过第一节点来保密的第一节点主专用密钥。
P1C:变得公开已知的第一节点主公用密钥。
[0093] 第一节点3可将第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)存储在与第一节点3相关联的第一数据存储装置13中。为了安全,可以将第一节点主专用密钥(V1C)存储在第一数据存储装置13的安全部分中,从而确保密钥保持私密。
[0094] 方法100进一步包括经由通信网络5而将第一节点主公用密钥(P1C)发送到第二节点7,130。在接收到第一节点主公用密钥(P1C)220后,第二节点7就可以将第一节点主公用密钥(P1C)存储在与第二节点7相关联的第二数据存储装置17中230。
[0095] 类似于第一节点3,第二节点7的方法200包括产生第二非对称密码对240,第二非对称密码对包括第二节点主专用密钥(V1S)和第二节点主公用密钥(P1S)。第二节点主专用密钥(V1S)还是在可允许范围内的随机整数。继而,通过以下公式来确定第二节点主公用密钥(P1S):P1S=V1S x G  (等式2)
[0096] 因此,第二非对称密码对包括:V1S:通过第二节点来保密的第二节点主专用密钥。
P1S:变得公开已知的第二节点主公用密钥。
[0097] 第二节点7可将第二非对称密码对存储在第二数据存储装置17中。方法200进一步包括将第二节点主公用密钥(P1S)发送到第一节点3,250。继而,第一节点3可接收第二节点主公用密钥(P1S)140并存储第二节点主公用密钥(P1S)150。
[0098] 应了解,在一些替代方案中,可以接收各自的公用主密钥并将所述公用主密钥存储在与第三节点9相关联的第三数据存储装置19(例如可信的第三方)处。这可以包括充当公用目录的第三方,例如凭证授权单位。因此,在一些实例中,仅在确定需要公共秘密(CS)时,可由第二节点7请求和接收第一节点主公用密钥(P1C)(且反之亦然)。
[0099] 注册步骤可仅需要进行一次以作为例如数字钱包的初始设置。
[0100] 会话起始并通过第一节点3来确定公共秘密
[0101] 现在将参考图4描述确定公共秘密(CS)的实例。公共秘密(CS)可以用于第一节点3与第二节点7之间的特定会话、时间、交易或其它用途,且使用相同的公共秘密(CS)是不希望的或不安全的。因此,公共秘密(CS)可以在不同会话、时间、交易等等之间发生改变。
[0102] 为了说明上文已描述的安全传输技术,提供以下内容。
[0103] 产生消息(M)310
[0104] 在这个实例中,通过第一节点3来执行的方法300包括产生310消息(M)。消息(M)可以是随机、伪随机或用户定义的。在一个实例中,消息(M)是基于Unix时间和临时值(nonce)(以及任意值)。举例来说,可以将消息(M)提供为:Message(M)=UnixTime+nonce  (等式3)
[0105] 在一些实例中,消息(M)是任意的。然而,应了解,消息(M)可具有选择性值(例如Unix时间等等),所述值可以用于一些应用。
[0106] 方法300包括经由通信网络3而将消息(M)发送到第二节点7,315。可以经由不安全网络发送消息(M),这是因为消息(M)并不包括关于专用密钥的信息。
[0107] 确定产生器值(GV)320
[0108] 方法300进一步包括基于消息(M)确定产生器值(GV)320的步骤。在这个实例中,这包括确定消息的密码散列。密码散列算法的实例包括创建256位产生器值(GV)的SHA-256。即:
GV=SHA-256(M)  (等式4)
[0109] 应了解,可以使用其它散列算法。这可以包括安全散列算法(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)散列函数的系列。
[0110] 确定第一节点次专用密钥330
[0111] 方法300接着包括基于第二节点主专用密钥(V1C)和产生器值(GV)确定第一节点次专用密钥(V2C)的步骤330。根据以下公式,这可以基于第一节点主专用密钥(V1C)与产生器值(GV)的标量加法:V2C=V1C+GV  (等式5)
[0112] 因此,第一节点次专用密钥(V2C)不是随机值,而是从第一节点主专用密钥确定性地导出。密码对中的对应公用密钥(即,第一节点次公用密钥(P2C))具有以下关系:P2C=V2C x G  (等式6)
[0113] 将来自等式5的V2C替代到等式6中会得到:P2C=(V1C+GV)x G  (等式7)
[0114] 其中“+”运算符指代椭圆曲线点加。应注意,椭圆曲线密码术代数是分布性的,等式7可如下表达:P2C=V1C x G+GV x G  (等式8)
[0115] 最终,可以将等式1替换到等式7中,从而得到:P2C=P1C+GV x G  (等式9.1)
P2C=P1C+SHA-256(M)x G  (等式9.2)
[0116] 因此,在获知第一节点主公用密钥(P1C)和消息(M)的情况下,可以得到对应的第一节点次公用密钥(P2C)。第二节点7可具有此知识,从而独立地确定第一节点次公用密钥(P2C),如将在下文关于方法400进一步详细论述。
[0117] 基于消息和第一节点次专用密钥产生第一签名消息(SM1)350
[0118] 方法300进一步包括基于消息(M)和确定的第一节点次专用密钥(V2C)而产生第一签名消息(SM1)350。产生签名消息包括应用数字签名算法而以数字方式签署消息(M)。在一个实例中,这包括以椭圆曲线数字签名算法(ECDSA)将第一节点次专用密钥(V2C)应用于消息,从而获得第一签名消息(SM1)。
[0119] ECDSA的实例包括基于ECC系统与secp256k1、secp256r1、secp384r1、se3cp521r1的ECDSA。
[0120] 第一签名消息(SM1)可以利用对应的在第二节点7处的第一节点次公用密钥(P2C)验证。第一签名消息(SM1)的这种验证可以由第二节点7使用来认证第一节点3,将在下文在方法400中进行论述。
[0121] 确定第二节点次公用密钥370'
[0122] 第一节点3可以接着确定第二节点次公用密钥(P2S),370。如上文所论述,第二节点次公用密钥(P2S)可以至少基于第二节点主公用密钥(P1S)和产生器值(GV)。在这个实例中,因为公用密钥是利用专用密钥与基点(G)的椭圆曲线点乘而将确定370',所以可以按与等式6相似的方式如下表达第二节点次公用密钥(P2S):P2S=V2S x G  (等式10.1)
P2S=P1S+GV x G  (等式10.2)
[0123] 针对等式10.2的数学证明与上文针对第一节点次公用密钥(P2C)所描述的用于导出等式9.1的数学证明相同。应了解,第一节点3可以独立于第二节点7确定第二节点次公用密钥370。
[0124] 在第一节点3处确定公共秘密380
[0125] 第一节点3可以接着基于确定的第一节点次专用密钥(V2C)和确定的第二节点次公用密钥(P2S)而确定公共秘密(CS)380。可以通过以下公式通过第一节点3来确定公共秘密(CS):S=V2C x P2S  (等式11)
[0126] 在第二节点7处执行的方法400
[0127] 现在将描述在第二节点7处执行的对应方法400。应了解,这些步骤中的其中一些与上文所论述的由第一节点3执行的步骤相似。
[0128] 方法400包括经由通信网络5从第一节点3接收消息(M)410。该消息可以包括在步骤315处由第一节点3发送的消息(M)。第二节点7接着基于消息(M)而确定产生器值(GV)420。通过第二节点7来确定产生器值(GV)的步骤420与通过上文所描述的第一节点执行的步骤320相似。在这个实例中,第二节点7独立于第一节点3执行这个确定步骤420。
[0129] 下一步骤包括基于第一节点主公用密钥(P1C)和产生器值(GV)来确定第一节点次公用密钥(P2C)430。在这个实例中,因为公用密钥是利用专用密钥与基点(G)的椭圆曲线点乘而确定430',所以可以按与等式9相似的方式如下表达第一节点次公用密钥(P2C):P2C=V2C x G  (等式12.1)
P2C=P1C+GV x G  (等式12.2)
[0130] 针对等式12.1和12.2的数学证明与上文针对等式10.1和10.2所论述的数学证明相同。
[0131] 第二节点7认证第一节点3
[0132] 方法400可以包括由第二节点7执行以认证所声称的第一节点3是第一节点3的步骤。如先前所论述,这包括从第一节点3接收第一签名消息(SM1)440。第二节点7可接着利用在步骤430处确定的第一节点次公用密钥(P2C)来确认第一签名消息(SM1)上的签名450。
[0133] 可以根据如上文所论述的椭圆曲线数字签名算法(ECDSA)来验证数字签名。重要的是,利用第一节点次专用密钥(V2C)签署的第一签名消息(SM1)应仅仅利用对应的第一节点次公用密钥(P2C)来正确地验证,这是因为V2C和P2C形成密码对。因为这些密钥针对在注册第一节点3时产生的第一节点主专用密钥(V1C)和第一节点主公用密钥(P1C)是确定性的,所以可将验证第一签名消息(SM1)用作认证发送第一签名消息(SM1)的所声称的第一节点是在注册期间相同的第一节点3的基础。因此,第二节点7可进一步执行基于确认(450)第一签名消息的结果而认证(460)第一节点3的步骤。
[0134] 以上认证可以适于两个节点中的一个是可信节点且仅节点中的一个需要进行认证的场景。举例来说,第一节点3可以是客户端,且第二节点7可以是例如钱包提供商的客户端可信的服务器。因此,服务器(第二节点7)可需要认证客户端(第一节点3)的证书,以便允许客户端访问服务器系统。服务器可能不需要认证服务器的证书给客户端。然而,在一些场景中,可能需要两个节点彼此认证,例如在点对点(peer-to-peer)场景中。
[0135] 第二节点7确定公共秘密
[0136] 方法400可以进一步包括:第二节点7基于第二节点主专用密钥(V1S)和产生器值(GV)而确定第二节点次专用密钥(V2S)470。类似于由第一节点3执行的步骤330,根据以下公式,第二节点次专用密钥(V2S)可以基于第二节点主专用密钥(V1S)与产生器值(GV)的标量加法:V2S=V1S+GV  (等式13.1)
V2S=V1S+SHA-256(M)  (等式13.2)
[0137] 第二节点7可接着基于以下式子,独立于第一节点3,基于第二节点次专用密钥(V2S)和第一节点次公用密钥(P2C)而确定公共秘密(CS)480:S=V2S x P2C  (等式14)
[0138] 公共秘密(CS)由第一节点3和第二节点7来确定的证明
[0139] 通过第一节点3来确定的公共秘密(CS)与在第二节点7处确定的公共秘密(CS)相同。现在将描述等式11和等式14提供相同的公共秘密(CS)的数学证明。
[0140] 转而参看通过第一节点3来确定的公共秘密(CS),等式10.1可以如下替换成等式11:S=V2C x P2S  (等式11)
S=V2C x(V2S x G)
S=(V2C x V2S)x G  (等式15)
[0141] 转而参看通过第二节点7来确定的公共秘密(CS),等式12.1可以如下替换成等式14:S=V2S x P2C  (等式14)
S=V2S x(V2C x G)
S=(V2S x V2C)x G  (等式16)
[0142] 因为ECC代数是可交换的,所以等式15和等式16是等效的,这是因为:S=(V2C x V2S)x G=(V2S x V2C)x G  (等式17)
[0143] 公共秘密(CS)和秘密密钥
[0144] 现在可以将公共秘密(CS)用作秘密密钥,或用作对称密钥算法中的秘密密钥在第一节点3与第二节点7之间进行安全通信的基础。这个通信可用以传达专用密钥的一部分、专用密钥的代表或识别符、或专用密钥的助记符。因此,一旦已在例如数字钱包或其它受控资源的设置期间使用本发明,接下来就可以执行各方之间的安全通信。
[0145] 公共秘密(CS)可呈椭圆曲线点(xS,yS)的形式。可以使用由节点3、7商定的标准公开已知的运算来将所述形式转换成标准密钥格式。举例来说,xS值可以是256位整数,可用作为AES256加密的密钥。xS值还可以使用RIPEMD160来转换成160位整数,以用于任何需要这种长度的密钥的应用中。
[0146] 可以根据需要确定公共秘密(CS)。重要的是,第一节点3并不需要存储公共秘密(CS),这是因为可以基于消息(M)重新确定公共秘密(CS)。在一些实例中,可以将所使用的消息(M)存储在数据存储装置13、17、19(或其它数据存储装置)中,而无需如主专用密钥所需要的相同的安全性等级。在一些实例中,消息(M)可以是公开可用的。然而,取决于某一应用,假如公共秘密(CS)如同第一节点主专用密钥(V1C)一样安全地保存,那么可以将公共秘密(CS)存储在与第一节点相关联的第一数据存储装置(X)中。
[0147] 应注意,上文提及的实施例说明本发明而非限制本发明,且所属领域的技术人员将能够在不脱离如由所附权利要求书所界定的本发明的范围的情况下设计许多替代实施例。在权利要求书中,放置在圆括号内的任何附图标记不应被解释为限制权利要求。整体上,词语“包括”等并不排除存在除了任何权利要求或说明书中列出的元件或步骤以外的元件或步骤。在本说明书中,“包括”意味着“包括或由…组成”。元件的单数引用并不排除对此类元件的复数引用,且反之亦然。可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机实施本发明。在列出若干构件的装置权利要求中,这些构件中的若干个可以通过一个硬件及相同项目的硬件来实施。在彼此不同的附属权利要求项中叙述某些措施这一单纯事实,并不代表不能使用这些措施的组合来获得优势。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈