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

从备份存储器中恢复分布式密钥的制作方法

2022-11-23 11:30:09 来源:中国专利 TAG:


1.本发明涉及用于从备份存储器中恢复分布式秘密密钥的方法。根据本发明的方法允许以安全的方式恢复秘密密钥,即使分布式秘密密钥自创建备份以来已被多次刷新。


背景技术:

2.在阈值加密方案或阈值签名方案中,秘密密钥可以在两个或更多个服务器之间分配,其方式为每个服务器持有秘密密钥的至少一个份额,并且没有服务器可以访问所有的份额,从而访问完整的秘密密钥。在使用密钥执行加密、解密或签名时,至少预定数量的服务器的子集需要参与,以使交易有效。攻击者因此需要破坏多个服务器才能获取访问足够数量的密钥份额来创建满足阈值标准的欺诈性的签名、加密或解密。
3.每个服务器通常都希望以合适的时间间隔创建其秘密密钥的份额的备份。备份是独立的,即服务器不必在同一时间创建备份。如果其中一个服务器以某种方式发生故障,要求从备份中恢复其内容(包括其秘密密钥的份额),则该服务器将会被恢复,但其他服务器不会受到影响。
4.对于长期秘密密钥,例如在很长一段时间间隔内秘密共享的秘密密钥,攻击者可能会逐渐获取对足够数量的密钥份额的访问以能够以欺诈方式使用该秘密密钥。为了避免这种情况,可以不时刷新秘密密钥,从而刷新密钥份额。因此,攻击者不仅需要获取对足够数量的密钥份额的访问。他还需要在两次秘密密钥的刷新之间的同一时间窗口内获取对密钥份额的访问。这有时被称为“主动秘密共享”。
5.然而,在秘密密钥从创建备份的时间点直到有必要从备份中恢复密钥份额的时间点已被刷新一次或多次的情况下,则来自备份中可用的密钥份额与当前适用的密钥份额不同,因此其不再有效。


技术实现要素:

6.本发明的实施例的目的是提供用于从备份存储器中恢复分布式秘密密钥的方法,所述方法允许在不损害秘密密钥的保密性的情况下恢复刷新的秘密密钥。
7.本发明的实施例的另一个目的是提供用于从备份存储器中恢复分布式秘密密钥的方法,所述方法允许在维持主动保密的同时恢复刷新的秘密密钥。
8.本发明提供用于从备份存储器中恢复分布式秘密密钥的方法,所述方法包括以下步骤:
9.生成原始秘密密钥并且在两个或更多个服务器之间分配所述原始秘密密钥,每个服务器因此持有所述原始秘密密钥的份额并且没有服务器持有所述原始秘密密钥的所有份额,
10.第一服务器创建备份,所述备份至少包含由所述第一服务器持有的所述原始秘密密钥的所述份额,
11.服务器至少刷新一次原始秘密密钥,其中每次刷新包括以下步骤:
12.服务器生成刷新的分布式秘密密钥以及之前的秘密密钥与刷新的秘密密钥之间的分布式差异,每个服务器持有所述差异的份额,以及所述差异构成零共享(sharing of zero),并且服务器丢弃它们之前的秘密密钥的份额,
13.每个服务器生成其所述差异的份额的秘密版本并且与至少一些其他服务器共享所述秘密版本,以及
14.每个服务器基于接收到的所述差异的份额的秘密版本和之前的累积秘密版本,生成从其他服务器接收到的所述差异的份额的累积秘密版本,
15.所述第一服务器从备份中恢复其原始秘密密钥的份额并且向其他服务器请求其所述差异的份额的累积秘密版本,
16.至少一些其他服务器向所述第一服务器提供第一服务器的所述差异的份额的累积秘密版本,以及
17.所述第一服务器从接收到的累积秘密版本和恢复的原始秘密密钥的份额中恢复其最新刷新的秘密密钥的份额。
18.因此,根据本发明的方法是用于从备份存储器中恢复分布式秘密密钥的方法。秘密密钥可以例如是秘密加密/解密密钥或秘密签名密钥,即用于生成数字签名的秘密密钥。
19.根据所述方法,生成了原始秘密密钥并在两个或更多个服务器之间分配,其方式为每个服务器持有原始秘密密钥的份额并且没有一个服务器持有所述秘密密钥的所有份额。因此,没有一个服务器能够重构完整的原始秘密密钥,从而至少预定数量的服务器的子集需要参与以便使用原始秘密密钥。可以先生成秘密密钥,然后在服务器之间分配,或者服务器可以合作以分布式形式直接生成秘密密钥(例如使用秘密共享)。
20.服务器可以是物理上彼此分离的独立硬件服务器。作为替代,服务器可以是以虚拟服务器的形式,所述虚拟服务器可以不必布置在独立的硬件上。然而,在任何情况下,服务器都是相互分离的,即没有服务器可以获取对存储在任何其他服务器上的内容的访问。
21.在生成原始秘密密钥之后,第一服务器创建了备份。由于第一服务器持有原始秘密密钥的第一份额,因此创建的备份包含所述原始秘密密钥的所述第一份额。第一服务器的备份独立于其他服务器的相应备份执行。
22.在创建备份后的某时间点,服务器至少刷新一次原始秘密密钥。每次刷新都以下述方式执行。
23.最初,服务器生成刷新的分布式秘密密钥以及之前的秘密密钥和刷新的秘密密钥之间的分布式差异。可以以与生成原始秘密密钥的方式类似的方式生成刷新的分布式秘密密钥和/或分布式差异。这将在下面更详细地描述。在任何情况下,每个服务器现在都持有刷新的秘密密钥的份额以及分布式差异的份额。此外,没有服务器持有刷新的秘密密钥的所有份额并且没有服务器持有分布式差异的所有份额。因此,没有服务器能够自行重构完整的刷新的秘密密钥或者完整的分布式差异。
24.在本文中,术语“之前的秘密密钥”应被解释为表示在执行刷新的时间点有效的分布式秘密密钥。因此,当执行第一次刷新时,之前的秘密密钥是原始秘钥。当执行第二次刷新时,之前的秘密密钥是在秘密密钥的第一次刷新期间生成的刷新的秘密密钥,以此类推。
25.分布式差异构成零共享。因此,刷新的秘密密钥与之前的秘密密钥相同,从而与原始秘密密钥相同,即在分布式秘密密钥之间的差异总和为零。然而,密钥刷新后服务器持有
的秘密密钥的份额与密钥刷新前服务器持有的秘密密钥的份额不相同。
26.一旦生成了刷新的秘密密钥并且在服务器之间分配,服务器就会丢弃它们各自之前的秘密密钥的份额。因此之前的秘密密钥被丢弃,并且刷新的分布式秘密密钥是有效的版本直到执行下一次刷新。此外,不再可能获取对之前的秘密密钥的任何份额的访问,因此,不可能构造之前的完整秘密密钥。
27.此外,每个服务器生成其差异的份额的秘密版本,并且与至少一些其他服务器共享该秘密版本。秘密版本可以例如是差异的份额的加密版本。服务器可以备选地或附加地在其他服务器之间分配其差异份额的份额,在这种情况下秘密版本可以是秘密共享份额的形式。在任何情况下,服务器只向其他服务器透露其差异的份额的秘密版本,并且只有指定的服务器能够从秘密版本重构其差异的份额。因此,没有服务器能够基于接收到的秘密版本获得其他服务器持有的实际的差异的份额的任何知识。因此,已获得对分布式秘密密钥的之前份额和差异的份额的秘密版本的访问的攻击者将无法重构刷新的分布式密钥的对应份额。
28.最后,每个服务器基于接收到的差异的份额的秘密版本和之前的累积秘密版本,生成从其他服务器接收的差异的份额的累积秘密版本。因此,差异的份额的累积秘密版本表示原始分布式秘密密钥的份额和刷新的秘密密钥的当前有效份额之间各自的差异。可以以各种方式生成累积秘密版本。这将在下文中进一步详细地描述。
29.当分布式秘密密钥以上述方式被多次刷新时,第一服务器发生事故,要求恢复第一服务器,从而恢复第一服务器持有的分布式秘密密钥的份额。然而,存储在备份存储器中的分布式密钥的份额是原始分布式秘密密钥的份额,并且由于分布式秘密密钥自创建备份后至少被刷新一次,原始秘密密钥不再有效,并且第一服务器持有的当前有效的秘密密钥的份额不能立即从备份中直接恢复。
30.替代地,第一服务器从备份中恢复其原始秘密密钥的份额,即实际可用的份额,并向其他服务器请求其差异的份额的累积秘密版本。
31.响应于所述请求,至少一些其他服务器向第一服务器提供第一服务器的差异的份额的累积秘密版本。在一些实施例中,只有一个其他服务器可以提供累积秘密版本,在其他实施例中,两个或更多个其他服务器可以提供累积秘密版本。因此,第一服务器现在拥有其原始秘密密钥的份额以及第一服务器的原始秘密密钥的份额与第一服务器的当前有效的秘密密钥的份额之间差异的秘密表示。然而,由于只有累积秘密版本被提供给第一服务器,所以没有服务器拥有关于第一服务器的刷新的秘密密钥的任何中间版本的份额。
32.最终,第一服务器从接收到的累积秘密版本和恢复的原始秘密密钥的份额中恢复其最新刷新的秘密密钥(即当前有效的秘密密钥)的份额。如上所述,累积秘密版本表示第一服务器的原始秘密密钥的份额与第一服务器的当前有效的秘密密钥或最新刷新的秘密密钥的份额之间的差异。因此,第一服务器能够从接收到的累积秘密版本中得到所述差异,从而第一服务器可以容易地从原始的份额和得到的差异重构其最新刷新的秘密密钥的份额。
33.因此,根据本发明的方法允许阈值密钥系统的秘密密钥的份额进行独立备份,并且允许频繁刷新分布式秘密密钥,同时维持高安全性,即秘密密钥泄露的风险低,并且允许从备份中可靠地恢复密钥份额。
34.特别地,由于密钥份额的恢复只恢复了密钥份额的最新刷新版本,而不是任何潜在的中间刷新版本,因此攻击者不可能获得对此类中间刷新版本的访问。从而防止攻击者在刷新时段到期后收集属于同一次刷新的足够数量的密钥份额。
35.因此,根据本发明的方法允许服务器从包括服务器密钥份额的过时版本的备份和服务器从一个或多个其他服务器接收到的秘密累积差异恢复其当前秘密密钥的份额。特别地,所述方法允许恢复第一服务器的份额,而不授予其他服务器恢复第一服务器的秘密密钥的份额的能力。
36.每个服务器生成其差异的份额的秘密版本的步骤可以通过加法同态方案来执行,并且每个服务器生成累积秘密版本的步骤可以包括每个服务器将接收到的差异的份额的秘密版本与各自之前的累积秘密版本相加,并丢弃之前的累积秘密版本。
37.加法同态方案是可以在加密域中执行加法的方案,即e(d1 d2)=e(d1) e(d2),其中e表示加密。因此,当应用加法同态方案来生成差异的份额的秘密版本时,各服务器可以加密它们的份额di,并将加密版本e(di)转发给其他服务器。其他服务器接着可以简单地通过添加加密版本来获得差异的份额总和的加密版本。
38.因此,根据所述实施例,所述方法可以以下列方式执行。为了简单起见,将从第一服务器的角度描述该方法,即仅描述由第一服务器持有的份额。然而,应当注意,其他服务器也可以执行类似的步骤。
39.当执行第一次刷新时,第一服务器生成其原始秘密密钥与第一次刷新的秘密密钥之间的差异的份额d1。差异的所述份额d1对应于第一服务器的原始秘密密钥的份额与第一服务器的第一次刷新的秘密密钥的份额之间的差异。第一服务器接着使用加法同态方案对其份额d1进行加密,从而获得所述份额d1的秘密版本e(d1)。所述秘密版本e(d1)接着被转发给其他服务器中的至少一个服务器。所述份额d1的秘密版本构成了第一累积秘密版本,即a1=e(d1)。
40.当执行第二次刷新时,第一服务器类似地生成其在第一次刷新的秘密密钥和在第二次刷新的秘密密钥之间的差异的份额d2。因此,第一服务器的原始秘密密钥的份额与第一服务器的第二次刷新的秘密密钥的份额之间的差异为d1 d2。
41.第一服务器接着使用加法同态方案解密其份额d2,从而获得份额d2的秘密版本e(d2)。然后将秘密版本e(d2)转发给其他服务器中的至少一个服务器。响应于接收到第二份额的秘密版本e(d2),其他服务器通过将最新接收到的秘密版本e(d2)与之前接收到的秘密版本e(d1)相加,生成第一服务器在原始秘密密钥和第二次刷新的秘密密钥之间的差异的份额d1 d2的第二累积秘密版本a2,从而获得a2=e(d1) e(d2)=a1 e(d2)。由于e代表加法同态加密方案,因此累积秘密版本实际上是累积差异的秘密版本,即a2=e(d1) e(d2)=e(d1 d2)。一旦生成了第二累积秘密版本a2,服务器就会丢弃第一累积秘密版本a1。
42.当执行第三次刷新时,重复以上描述的步骤,并且生成第三累积秘密版本a3,其中a3=a2 e(d3)=e(d1 d2 d3),并且丢弃之前的累积秘密版本a2。
43.对于每次刷新,重复此操作,因此服务器在任何时间都持有累积秘密版本的最新版本an=e(d1 d2

dn),但没有累积秘密版本的之前版本。
44.当需要第一服务器的备份时,第一服务器从备份存储器中检索其原始秘密密钥的份额,并向其他服务器请求差异的累积秘密版本。其他服务器中的至少一个服务器接着向
第一服务器提供累积秘密版本an的当前有效版本。第一服务器接着能够解密接收到的累积秘密版本an,从而获得第一服务器的原始秘密密钥的份额和第一服务器的当前有效的刷新的秘密密钥的份额之间的实际差异d1 d2

dn。因此,第一服务器可以通过将累积的差异与恢复的原始秘密密钥的份额相加来恢复其当前有效的刷新秘密密钥的份额。因此,恢复当前有效的刷新的秘密密钥的份额不会透露任何中间份额。
45.加法同态方案的一个示例是pallier的公钥加密方案。
46.加法同态方案可以是公钥加密方案,并且第一服务器创建备份的步骤可以包括将私有解密密钥存储为备份的一部分。根据该实施例,当第一服务器需要解密从其他服务器接收到的累积秘密版本时,需要私有解密密钥,但对于其他情况则不一定。通过将私有解密密钥存储为备份的一部分,可以确保攻击者难以获得对私有加密密钥的访问,因为只有在有必要从备份中恢复第一服务器时才能访问备份存储器。另一方面,当这种情况发生时,第一服务器检索包括私有解密密钥的备份存储器的内容,因此私有解密密钥可供第一服务器用于解密接收到的累积秘密版本作为恢复当前有效的秘密密钥的份额的一部分。当创建备份时,一旦私有解密密钥被存储在备份存储器中,第一服务器可以进一步从第一服务器删除私有解密密钥。类似地,当恢复备份时,一旦第一服务器已使用私有解密密钥来解密接收到的差异的秘密累积版本,第一服务器就可以从第一服务器删除私有解密密钥。这将会提高安全性,因为它会限制破坏第一服务器的攻击者能够获得对私有解密密钥的访问的时间范围。
47.到目前为止,描述了以加法共享的形式描述的本发明,其中秘密密钥s的份额满足s=s1 s2 ... sn,并且其中在刷新过程中产生的差异是加法零共享的形式,其通过每个服务器在本地将其秘密的共享与它的零共享相加而被添加到秘密的共享中。在替代的实施例中,秘密的共享可以是乘法的,即秘密s的份额满足s=s1*s2*...*sn,并且刷新秘密共享的步骤包括生成乘法随机的一共享(sharing of one)并通过每个服务器在本地将其一的份额与其秘密份额相乘而将其乘以现有的秘密共享以产生刷新的共享。在这种情况下,可以通过乘法同态方案来执行差异的份额的秘密版本的生成。这可以是乘法同态公钥加密方案,诸如elgamal加密方案。
48.在下文中,我们继续使用加法符号,即,我们表明通过添加零共享以生成总和d1 d2

dn来刷新秘密的共享。然而,该方法在乘法共享的情况下类似地工作,其中通过乘以一共享以生成累积d1*d2*

*dn的秘密版本来刷新秘密的共享。
49.作为替代,可以单独存储私有解密密钥,如存储在诸如冷存储器、硬件安全模型(hsm)的外部存储器中,和/或它可以通过加密密钥解密或受密码保护,这在第一服务器上不容易获得。例如,加密密钥或密码可由管理员管理。在这种情况下,私有加密密钥必须在从备份恢复期间单独获取,例如通过向冷存储器请求私有解密密钥或者请求管理员解密私有解密密钥或执行累积秘密版本的解密。
50.每个服务器生成其差异的份额的秘密版本的步骤可以包括每个服务器创建其差异的份额的共享并且在至少一些其他服务器之间分配该份额。所述共享可以例如是秘密共享的形式。根据该实施例,差异份额的秘密版本是创建共享的形式。因此,其他服务器都不会拥有差异的所有份额。根据该实施例,当服务器接收到第一服务器的下一个分布式差异份额的份额时,它将其添加到其第一服务器的分布式差异的份额的之前的份额,以获得第
一服务器的分布式差异的份额的新累积份额,并丢弃其旧份额。以这种方式创建共享可以用作上述公钥加密方案的替代。作为替代,这两种方法可以结合起来,即被分配到其他服务器的份额可以另外加密。
51.每一次刷新可以包括以下步骤:
52.服务器创建零共享,并且每个服务器将其零共享的份额添加到其之前的秘密密钥的份额,从而创建在服务器之间分配的刷新的秘密密钥,并丢弃它们之前的秘密密钥的份额,所述零共享构成分布式差异,以及
53.每个服务器生成其零共享的份额的秘密版本,并与至少一些其他服务器共享所述秘密版本。
54.根据该实施例,刷新的秘密密钥由在其中生成零共享(诸如秘密零共享)的服务器生成,并随后将所述零共享添加到之前的秘密密钥。这是通过每个服务器将其零共享的份额添加到其之前的秘密密钥的份额来完成的。此外,根据该实施例,服务器持有的分布式差异的份额是由各自服务器持有的零共享的份额。
55.作为替代,服务器可以通过创建之前的秘密密钥的新共享来生成刷新的秘密密钥,并从它们各自的新刷新的秘密密钥和之前刷新的秘密密钥的份额中得到分布式差异。
56.所述方法还可以包括将备份存储在离线存储器中的步骤。根据该实施例,备份无法在线访问,攻击者因此需要物理侵入离线存储器以获得对备份的访问。离线存储器例如可以是便携式存储介质(诸如usb存储器或磁盘)的形式,其可以被锁在保险箱或另一受限区域中。离线存储器的位置可能与服务器的位置不同,在这种情况下,有必要在创建备份时的位置以及需要恢复备份时的位置之间物理传输备份。这使得创建备份很麻烦,因此可能不会频繁地创建备份。这使得本发明的方法非常有价值,因为因此可以预计,在两次备份之间将执行大量的秘密密钥刷新。
57.每次刷新秘密密钥的步骤可以还包括每个服务器通过验证零知识证明来验证接收到的差异的份额的秘密版本的正确性的步骤。
58.除了试图获得对秘密密钥的未经授权的访问外,攻击者还可能尝试通过向诚实方(即诚实的服务器)提供虚假信息来积极破坏系统。例如,攻击者可能会破坏其中一个服务器,如第一服务器。在这种情况下,由其他服务器接收并源自第一服务器的差异的份额可能被破坏。因此,可能需要能够检测其中一方是否偏离了规定的协议。根据该实施例,这是通过验证零知识证明来完成的。
59.在本上下文中,术语“零知识证明”应被解释为表示一种方法,在所述方法中一方向另一方证明他知道秘密而不透露有关秘密的任何细节。因此,根据该实施例,第一服务器证明转发给其他服务器的差异的份额的秘密版本确实是实际份额的秘密版本。第一服务器在零知识情况下完成这些,即不透露有关实际份额的任何细节。其他服务器接着验证所述证明,并且如果结果为所述证明无效,则其他服务器将知道第一服务器已损坏,并且它们可能会使刷新协议中止。
60.可替代地或附加地,所述方法还可以包括第一服务器通过验证零知识证明来验证接收到的累积秘密版本的正确性的步骤。
61.这与以上描述的实施例类似。然而,在这种情况下,正是第一服务器确保其在从备份恢复期间接收到的累积秘密版本实际上是正确的。因此,第一服务器有可能检测其他服
务器中的一个或多个是否损坏和/或偏离规定的协议。如果是这种情况,第一服务器可能会使恢复过程中止。
62.可替代地或附加地,每次刷新秘密的步骤还可以包括每个服务器验证其持有与其他服务器相同的秘密差异的步骤,例如通过广播和比较差异或者差异的哈希摘要。在服务器不认同它们持有相同的秘密差异的情况下,刷新过程可能被中止。
63.分布式秘密密钥可以是秘密签名密钥。根据该实施例,所述系统被用于使用分布式秘密密钥提供数字签名。
64.此外,根据该实施例,差异的秘密份额和/或累积秘密版本的正确性可以通过服务器生成测试签名(如阈值签名)来保证,并且各方可以验证该测试签名是有效和正确的。
65.作为替代,分布式秘密密钥可以是秘密加密密钥。根据该实施例,所述系统被用于使用分布式秘密密钥提供数据的加密和解密。
66.在只有两个服务器的特殊情况下,第二服务器已经知道第一服务器的份额的值为零,因为它知道自己份额的值并且知道两个份额之和为零。在这种情况下,如果秘密的秘密版本和零份额是使用加密生成的,则没必要使用零知识证明。第二服务器反而可以通过自己对第一服务器的零份额执行加密并将其与从第一服务器接收到的秘密版本进行比较来验证所接收的秘密零份额的正确性。这可以通过使用确定性加密方案来完成,或者可替代地通过让第一服务器向第二服务器透露它用来加密其零份额的随机性来完成。
67.所述方法还可以包括第一服务器创建新备份的步骤,以及重复服务器至少刷新一次原始秘密密钥的步骤,并且第一服务器恢复其原始秘密密钥的份额的步骤可以包括恢复与新备份一起存储的秘密密钥的份额。
68.根据该实施例,每次创建新备份时都重复以上描述的过程,并且当需要从备份恢复时使用最新的可用备份。因此,在创建新备份时有效的分布式秘密密钥可以例如在要求保护的方法意义上被视为原始秘密密钥。
69.可替代地或附加地,每次刷新还可以包括第一服务器生成其差异的份额的累积秘密版本并且将累积秘密版本存储在第一服务器处的步骤,其中差异的份额的秘密版本形成新备份的一部分,并且第一服务器恢复其最新刷新的秘密密钥的份额的步骤是基于形成新备份的一部分的秘密密钥的恢复份额、形成新备份的一部分的累积差异的秘密版本以及从至少一些其他服务器中接收到的累积秘密版本来执行的。
70.在某些情况下,服务器备份可以作为独立自主的过程执行,并且与分布式秘密密钥的生成无关。因此,包含在给定备份中的秘密密钥的份额可能不一定与其他服务器持有的累积差异的份额的秘密版本一致,即第一服务器的最新刷新的密钥份额不能轻易地基于包含在备份中的份额和从其他服务器接收到的累积秘密版本进行恢复。根据该实施例,这可以以下述方式处理。
71.在每次刷新期间,第一服务器不仅生成其差异的份额的累积秘密版本并将其发送给其他服务器,它自身还会保留它自己的累积差异的份额的累积秘密版本,将它与其在当时有效的刷新的秘密密钥的份额一起存储,并删除之前的版本。差异的累积秘密版本应当优选地是一种不轻易允许得到累积差异的个体差异的类型。例如,这可能要求差异的累积秘密版本基于同态公钥加密,第一服务器无法对其进行解密,例如解密密钥可能存储在冷存储器或硬件安全模块(hsm)中。
72.当创建新备份时,在当时有效的刷新的秘密密钥的份额以及在当时有效的累积差异的秘密版本形成新备份的一部分,即它们作为新备份的一部分被存储。
73.在稍后的时间点,当有必要从备份中恢复秘密密钥的份额时,第一服务器从备份中恢复不再有效的刷新的份额和累积差异的秘密版本。第一服务器还接收来自至少一些其他服务器的累积差异的秘密版本。利用加密的同态属性,第一服务器接着将来自备份的累积差异的秘密版本和从至少一些其他服务器接收到的累积差异的秘密版本相加。这产生了组合的累积差异的秘密版本,所述组合的累积差异是来自备份的不再有效的刷新的份额与第一服务器想要恢复的最新刷新的份额之间的累积差异。
74.第一服务器接着解密该组合的秘密累积差异,例如通过向冷存储器请求私有解密密钥、通过将组合的秘密累积差异发送到硬件安全模块(hsm)等。第一服务器接着将解密的累积差异添加到其来自备份的不再有效的份额中来恢复其份额的最新刷新版本(添加来自备份的累积差异使份额回到其创建的时间,以及添加来自其他服务器的累积差异使份额从其创建的时间直到当前时间的份额)。
75.因此,恢复原始秘密密钥的份额的步骤和恢复最新刷新的秘密密钥的份额的步骤可以如上所述在单个步骤中执行。可替代地,它们可以作为单独的步骤执行,在这种情况下,第一服务器原始秘密密钥的份额可以通过形成备份的一部分的累积差异来恢复,并且最新刷新的秘密密钥的份额可以随后以上述方式基于恢复的原始份额和接收到的累积秘密版本来恢复。
附图说明
76.现在参考附图更详细地描述本发明,其中
77.图1是图示现有技术方法的图,以及
78.图2-8是图示根据本发明的七个不同实施例的方法的图。
具体实施方式
79.图1是图示用于从备份存储器中恢复分布式秘密密钥的现有技术方法的图。在图1图示的示例中,原始秘密密钥s分布在三个服务器中,即服务器1、服务器2和服务器3。因此,每个服务器都持有秘密密钥的一份额,并且没有服务器拥有所有份额从而拥有完整的密钥。因此,服务器1持有份额s1^1,服务器2持有份额s2^1,服务器3持有份额s3^1。应当注意的是,秘密密钥可以可替代地分布在两个服务器中或者分布在四个或更多个服务器中,并且图1中三个服务器的呈现仅仅是说明性的。
80.在时间t^1,其可能是在原始秘密密钥刚刚在服务器之间分配之后,服务器1将备份存储在冷存储器中。所述备份包括服务器1的原始秘密密钥的份额s1^1。
81.在时间t^2,服务器刷新分布式秘密密钥,并且每个服务器现在持有刷新的秘密密钥的一份额。因此,服务器1持有份额s1^2,服务器2持有份额s2^2,服务器3持有份额s3^2,并且之前的份额不再有效,因此已被删除。
82.在时间t^3以类似的方式执行分布式秘密密钥的另一次刷新。因此,服务器1现在持有份额s1^3,服务器2持有份额s2^3,服务器3持有份额s3^3。应当注意的是,刷新过程可以重复多次。
83.服务器1经历了需要从备份中恢复的数据丢失,而密钥份额s1^3、s2^3和s3^3有效。然而,与备份一起存储的密钥份额是不再有效的s1^1,而不是当前有效的密钥份额s1^3。服务器1因此不能够从备份中恢复其当前有效的秘密密钥的份额。
84.图2是图示根据本发明第一实施例的方法的图。在图2中,为了简单起见仅图示了两个服务器,即服务器1和服务器2。然而,应当注意的是,可以可替代地应用三个或更多个服务器。
85.类似于上面参考图1描述的现有技术方法,秘密密钥分布在两个服务器之间,并且服务器1将其份额s1^1的备份存储在冷存储中。然而,服务器1还创建了具有私钥sk和公钥pk的密钥对,并且私钥sk与备份一起存储在冷存储中。所述密钥对构成加法同态加密方案。
86.也类似于上面参考图1描述的现有技术方法,分布式秘密密钥被刷新多次。在图2所图示的方法中,分布式秘密密钥的每次刷新以如下方式执行。
87.以标准方式刷新分布式秘密密钥,从而生成刷新的分布式秘密密钥以及刷新的秘密密钥与之前的秘密密钥之间的差异,该差异构成服务器之间的零共享。这可以以至少两种方式完成。服务器可以生成零共享,并且每个服务器可以将其零共享的份额添加到其之前的秘密密钥的份额,从而获得其刷新的密钥份额。作为替代,服务器可以例如通过创建之前密钥的新共享生成刷新的密钥,并且每个服务器可以得出其零共享的份额,作为其之前秘密密钥的份额与其刷新的秘密密钥的份额之间的差异。
88.在任何情况下,在第一次刷新秘密密钥后,在时间t^2,第一服务器持有刷新的秘密密钥的份额s1^2,并且s1^2=s1^1 d1^1,其中d1^1是服务器1的零共享的份额。
89.服务器1接着使用之前生成的密钥对中的公钥来加密其零共享的份额d1^1,从而获得d^1=enc
pk
(d1^1),并将d^1提供给其他服务器,包括服务器2。服务器1进一步删除s1^1、d1^1和sk,sk因此仅被存储在备份存储器中。
90.在收到d^1后,服务器2生成接收到的零共享的加密份额的累积版本。由于d^1与第一次刷新有关,它也是服务器2接收到的第一个加密份额,因此累积版本在这种情况下为a^1=d^1。
91.在下次刷新期间,服务器1提供加密的份额d^2=enc
pk
(d1^2)给服务器2,并且服务器2生成新累积版本a^2=a^1 d^2=d^1 d^2,并删除a^1。此外,对于后续的每次刷新,服务器2都会生成新累积版本a^n=a^(n-1) d^n=d^1 d^2

d^(n-1) d^n,并删除之前的累积版本a^(n-1)。由于用于零共享的份额的加密是使用加法同态加密方案来执行的,因此加密版本的总和等于总和的加密版本,即enc
pk
(d1^1 d1^2)=enc
pk
(d1^1) enc
pk
(d1^2)=d^1 d^2。因此,服务器2持有的累积版本对应于服务器1的与自备份创建以来执行的每次刷新相关联的零共享份额总和的加密版本。
92.在图2所图示的方法中,服务器1经历了需要从备份中恢复的数据丢失,而秘密密钥的份额s1^4是有效的。因此,服务器1从备份中恢复其原始分布式秘密密钥的份额(即s1^1)和私钥sk。此外,服务器1向其他服务器请求当前有效的累积版本a^4,并且至少服务器2将a^4返回给服务器1。
93.服务器1接着使用恢复的私钥sk解密a^4,从而获得所有差异的总和,其已与服务器1的原始分布式秘密密钥的份额相加。换句话说:
94.dec
sk
(a^4)=dec
sk
(d^1 d^2 d^3)
95.=dec
sk
(d^1) dec
sk
(d^2) dec
sk
(d^3)
96.=d1^1 d1^2 d1^3
97.因此,服务器1可以通过将解密的累积版本dec
sk
(a^4)与恢复的原始份额s1^1相加来恢复其有效的分布式密钥份额s1^4,因为s1^4=s1^1 d1^1 d1^2 d1^3=s1^1 dec
sk
(a^4)。
98.此外,恢复了有效的份额而不会向服务器1透露关于任何中间刷新的密钥份额s1^2和s1^3的任何信息。
99.图3是图示根据本发明第二实施例的方法的图。该方法与图2中所图示的方法非常类似,因此在此不再赘述。然而,在图3所图示的方法中,分布式秘密密钥的刷新以下列方式执行。
100.服务器1以上面参考图2描述的方式获得刷新的秘密密钥的份额和构成刷新的密钥与之前的密钥之间的差异的零共享的份额。然后创建了在第一次刷新中服务器1差异的份额d1^1的秘密共享,并且每个其他服务器都会接收一个份额。例如,服务器2接收份额a2^1。
101.包括服务器2的其他服务器通过在每次刷新期间将新接收到的份额与之前的累积版本a2^(n-1)相加,随后删除之前累积的版本a2^(n-1),来生成差异的累积版本a2^n。
102.服务器1经历了需要从备份中恢复的数据丢失,而秘密密钥份额s1^4是有效的。因此,服务器1从备份中恢复其原始分布式秘密密钥的份额s1^1,并向其他服务器请求累积版本。其他服务器将其累积版本提供给服务器1。例如,服务器2提供a2^4并且服务器i提供ai^4。服务器1接着能够通过重新组合从其他服务器接收到的累积版本来恢复与每次刷新相关联的差异的总和,并且通过将恢复的总和与恢复的原始份额s1^1相加,得到有效份额s1^4。并且在该实施例中,有关任何中间刷新的密钥份额s1^2和s1^3都不会被透露。
103.图4是图示根据本发明第三实施例的方法的图。图4中所图示的方法与图2和图3中所图示的方法非常类似,因此在此不再赘述。然而,在图4的实施例中,服务器1差异的份额d1^1如上文参考图3所述是秘密共享的,并且秘密份额在提供给相应的其他服务器之前,如上文参考图2所述使用加法同态加密方案进行加密。因此,图4的实施例可以被认为是图2的实施例和图3的实施例的组合。这为系统增加了额外的安全性。
104.图5是图示根据本发明第四实施例的方法的图。图5的方法与图2中所图示的方法非常类似,因此在此不再赘述。
105.在图5中所图示的方法中,服务器1在每次刷新期间生成零知识证明zkp,并将其连同其零共享的份额的加密版本一起转发给其他服务器。其他服务器接着验证该零知识证明。如果至少一个服务器发现零知识证明无效,则刷新过程中止。
106.图6是图示根据本发明第五实施例的方法的图。图6的方法与图2中所图示的方法非常类似,因此在此不再赘述。然而,在图6中所图示的方法中,服务器通过将它们的版本发送到所有其他服务器并且每个服务器比较接收到的版本,来比较它们在每次刷新期间累积的版本。在至少一个服务器接收到并不完全相同的累积版本的情况下,刷新过程中止。
107.图7是图示根据本发明第六实施例的方法的图。图7的方法与图3中所图示的方法非常类似,因此在此不再赘述。然而,在图7的实施例中,每次刷新包括在生成刷新的秘密密钥和零共享之前执行的附加验证步骤。
108.分布式秘密密钥在这种情况下是用于生成数字阈值签名的签名密钥,并且每个服务器都拥有一个公共验证密钥vk。在附加验证步骤中,服务器就随机消息m^1达成一致,然后它们使用其各自的分布式密钥份额对随机消息进行签名,从而生成签名sig^1。生成的签名提供给每个服务器,并且每个服务器通过公共验证密钥vk验证签名。如果至少一个服务器不能够验证签名,则刷新过程中止。
109.应当注意的是,尽管图4-7仅图示了分布式秘密密钥的刷新,应该理解,也可以基本上以上述参考图2或图3的方式执行来自备份的恢复。
110.图8是图示根据本发明第七实施例的方法的图。图8的方法与图2所图示的方法非常相似,因此在此不再赘述。
111.类似于图7的实施例,图8所图示的方法使用了阈值签名方案,但与图7的实施例相反,在图8的方法中,分布式秘密密钥不必与阈值签名方案的分布式密钥相同。在图8的实施例中,阈值签名方案的公共验证密钥(vk)存储在备份中。
112.在图8的实施例中,服务器使用分布式签名密钥对差异的加密份额d^1进行签名,从而生成签名sig^1。每个服务器都存储sig^1以及差异的累积版本。
113.当需要恢复时,服务器1因此向其他服务器请求累积版本,其他服务器也提供当前有效的签名,在图8的示例中为sig^2。服务器1接着验证签名sig^2,如果它不能这样做,则恢复过程中止。
114.可选地,可以包括时间戳,在这种情况下,服务器1还会验证t^2实际上代表数据刚刚丢失前的时间。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献