数据存储方法、数据读取方法、电子设备和程序产品与流程

未命名 08-01 阅读:102 评论:0


1.本公开的实施例总体上涉及计算机技术,具体地涉及数据存储方法、数据读取方法、电子设备和计算机程序产品,可用于多云架构以及局域网环境。


背景技术:

2.如今,一切都是数字化的,例如个人简历、财务报告、病历、家庭照片和视频、证书和钥匙,以及针对不同网站的大量不同社交媒体帐户。早在2014年时,某专业机构经就过统计得出了美国用户平均拥有130个帐户的统计结果。管理如此多的数据是一个日益严重的问题,因为这些信息对每个人都非常敏感。它会告诉别人我们是谁,我们是什么样的人,有些事情我们只是不让别人知道。但是,如果不是安全专家,如何做到保密和安全,这远远超出了普通人的能力范围。因此,信息隐私和勒索软件变得越来越敏感。
3.在多云架构中存储副本可以解决本地存储故障的问题,但是在当今的零信任网络环境中引入了单点问题。此外,加密存储也有其问题,例如密钥管理和重新密钥。传统的秘密共享可以在具有机密性和完整性的前提下解决上述问题,但存在可用性问题,因为如果共享部分被远程第存储在多云中,则很难重建秘密。因此,目前行业中并没有能够对输入数据进行高效的保护,并且可以保证输入数据的机密性和完整性的可信数据网络实现方式。


技术实现要素:

4.本公开的实施例提供了数据存储方法、数据读取方法、电子设备和计算机程序产品。
5.在本公开的第一方面中,提供了一种数据存储方法。该方法包括:获取预定数目的可信节点的标识符,预定数目与待使用的秘密共享方案相关联;通过使用标识符分别作为秘密共享方案的参数,来从输入数据生成预定数目的共享部分集合;以及按照预定数目的共享部分集合与预定数目的可信节点的对应关系,将预定数目的共享部分集合分别存储在预定数目的可信节点中。
6.在本公开的第二方面中,提供了一种数据存储方法。该方法包括:获取输入数据;以及将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点,以用于由预定数目的可信节点中的每个可信节点,通过使用可信节点的标识符作为秘密共享方案的参数,来从输入数据生成共享部分集合。
7.在本公开的第三方面中,提供了一种数据读取方法。该方法包括:从预定数目的可信节点分别获取至少另一预定数目的共享部分集合,预定数目和另一预定数目与针对输入数据生成另一预定数目的共享部分集合时所使用的秘密共享方案相关联,并且预定数目大于等于另一预定数目;以及基于秘密共享方案,通过使用另一预定数目的可信节点的标识符,来从另一预定数目的共享部分集合生成输入数据,另一预定数目的共享部分集合分别从另一预定数目的可信节点而被获取。
8.在本公开的第四方面中,提供了一种电子设备。该电子设备包括:至少一个处理单
元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:获取预定数目的可信节点的标识符,预定数目与待使用的秘密共享方案相关联;通过使用标识符分别作为秘密共享方案的参数,来从输入数据生成预定数目的共享部分集合;以及按照预定数目的共享部分集合与预定数目的可信节点的对应关系,将预定数目的共享部分集合分别存储在预定数目的可信节点中。
9.在本公开的第五方面中,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:获取输入数据;以及将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点,以用于由预定数目的可信节点中的每个可信节点,通过使用可信节点的标识符作为秘密共享方案的参数,来从输入数据生成共享部分集合。
10.在本公开的第六方面中,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:从预定数目的可信节点分别获取至少另一预定数目的共享部分集合,预定数目和另一预定数目与针对输入数据生成另一预定数目的共享部分集合时所使用的秘密共享方案相关联,并且预定数目大于等于另一预定数目;以及基于秘密共享方案,通过使用另一预定数目的可信节点的标识符,来从另一预定数目的共享部分集合生成输入数据,另一预定数目的共享部分集合分别从另一预定数目的可信节点而被获取。
11.在本公开的第七方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
12.在本公开的第八方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行使得机器执行根据本公开的第二方面所描述的方法的任意步骤。
13.在本公开的第九方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行使得机器执行根据本公开的第三方面所描述的方法的任意步骤。
14.提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的实施例的关键特征或必要特征,也无意限制本公开的实施例的范围。
附图说明
15.通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开的示例性实施例中,相同的参考标号通常代表相同部件。
16.图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的可信数据网络100的示意图;
17.图2示出了根据本公开的实施例的数据存储方法200的流程图;
18.图3示出了根据本公开的实施例的数据存储方法300的流程图;
19.图4示出了根据本公开的实施例的数据读取方法400的流程图;以及
20.图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。
21.在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
22.下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以按照各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
23.在本文中使用的术语“包括”及其变形表示开放性包括,例如,“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
24.如以上在背景技术中所描述的,目前行业中并没有能够对输入数据进行高效的保护,并且可以保证输入数据的机密性和完整性的可信数据网络实现方式。具体而言,大多数人保护此类敏感信息的常用方法是将其保存为不同的数字文件到一个专门的目录中,或者然后对目录进行加密,并且寄希望于他们不会忘记加密密钥,并且有时他们会收集各种加密密钥到另一个文件并加密此文件。然而,这种解决方案有它的不便之处。首先,为保证加密目录/文件的安全,用户必须定期更改加密密钥,由于攻击者会选择使用明文攻击,长时间使用同一密钥会危及密钥。同时,如果用户定期更改密钥,用户记住当前密钥是一种负担,因为最佳密钥是随机生成的位串,事实上,这样的密钥本身就会变得敏感。此外,每次更改密钥时,用户必须先用旧密钥解密目录/文件,然后用新密钥重新加密,这对于大的目录/文件非常耗时,尤其是目录/文件被远程存储在公有云中时。最后,众所周知,人们经常在多个站点上频繁重复使用相同的密码,从而会导致一些可怕的连锁攻击。
25.上述解决方案的另一个风险是可能的本地存储介质故障。因此,人们通常会在不同的云存储中保存许多数据目录/文件的副本,无论是加密还是未加密的。然而,当今网络防御会采取零信任假设,从而假设攻击者会存在于所使用的网络内部,因此一切都可能容易受到攻击。
26.为了解决这个问题,秘密共享和多重计算成为当今学术界非常热门的研究点,它将秘密分成两个或多个站点之间的多个共享,它们之间具有很强的分离性,永远不会在任何一个点上、在任何时间暴露所有秘密共享。而后,可以使用多重计算对共享进行操作,而无需将它们组合在一起。这种“秘密共享方案”的特性是,如果不将足够数量的共享组合在一起,攻击者就什么也学不到,从而迫使他们破坏多个站点,从而可以避免单点故障。
27.秘密共享,也被称为秘密拆分,是指将秘密拆分成共享部分并且分配给n个参与者的方法,每个参与者被分配一份或多份共享部分,就像公司的股票一样。只有当t个共享部分合并时,才能重建秘密;仅得到小于t个的共享部分无法重建秘密。这样的系统称为(t,n)
方案。
28.阿迪
·
萨莫尔(adi shamir)是用多项式实现(t,n)秘密共享方案的流行算法之一。以下示出如何使用二阶多项式f(xi)=ax2+bx+m来实现(3,5)秘密共享方案:
29.假设随机选择a=8并且b=7,需要保护的秘密m的数值为11,并且选择比m大的质数p,13。此时,f(x)=(7x2+8x+11)mod 13,并且5个共享部分分别是:
[0030]-k1=f(1)=7+8+11=0(mod 13)
[0031]-k2=f(2)=28+16+11=3(mod 13)
[0032]-k3=f(3)=63+24+11=7(mod 13)
[0033]-k4=f(4)=112+32+11=12(mod 13)
[0034]-k5=f(5)=175+40+11=5(mod 13)
[0035]
为了从这些共享部分中的3个共享部分重构秘密m,例如使用k2、k3和k5来求解线性方程集合:
[0036]-f(2)=a
·22
+b
·
2+m=3(mod 13)
[0037]-f(3)=a
·
32+b
·
3+m=7(mod 13)
[0038]-f(5)=a
·
52+b
·
5+m=5(mod 13)
[0039]
通过求解上述线性方程集合可以得到a=8、b=7并且m=11,因此秘密m的值被成功得出。
[0040]
采取秘密共享方案可以对各种类型的数据进行共享保护。例如,需要保护的秘密可以是图像或者照片。此时,针对该原始图像可以生成多个作为共享部分的子图像,子图像的尺寸可能与原始图像相同,但任何子图像由于每个像素点都包括与原始图像对应像素点不同的数值而与原始图像完全不同,并且只有获得了所采用的秘密共享方案所需数目的子图像,才能够恢复出原始图像。
[0041]
在通过获得足够数目的共享部分重构原始秘密的过程中,可以使用多方计算(mpc)方案。
[0042]
在秘密共享方案中,可以不使用任何密钥或密码来保护秘密,因为秘密隐藏在共享部分中,因此可以无需额外的加密。
[0043]
如前所述,可以利用秘密共享和多方计算来保护敏感信息和通过多云存储装置中的多个共享部分来重构敏感信息。然而,迄今为止,这还只是学术界的一个想法,因为多方计算的实现存在很多限制。
[0044]
例如,多方计算的实现可以包括乱码电路、线性秘密共享、全同态加密和同态秘密共享。然而,乱码电路和线性秘密共享方案基于乱码电路、gmw或bgw实现。在这样的实现中,对于每个乘法门(add),对于进入该门的每个输入位,如果有n个参与者参与该计算,则将有n
×
(n-1)次通信。例如,一个高级加密标准(aes)实现将导致几个吉比特的流量。这在局域网(lan)环境中不会是一个非常严重的问题,但是对于多云秘密共享应用程序来说,它变得不可能。对于全同态加密和同态秘密共享,它们是学术界非常感兴趣和热门的研究课题,但目前还不能在实际应用中使用,即使在单主机计算环境中也是如此。
[0045]
由此可见,虽然秘密共享结合多方计算方案非常新颖,但它仍然只是学术界一个有趣且热门的研究领域,并且在业界没有任何实现或概念验证(poc)。
[0046]
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,本公开
的实施例提出了一种新颖的解决方案,其不仅可以优化多方计算以保护共享部分,而且可以为最终用户提供完整且易于使用的解决方案,即使这些用户并不是安全专家。
[0047]
根据本公开的实施例,采用了可以被称为可信节点的可信执行环境(tee)。
[0048]
可信执行环境可以使用硬件辅助功能实现,应用可以使用可信执行环境来填充飞地(enclave)内受保护的用户代码和数据。一旦激活,可信执行环境就会保护飞地中的代码和数据免受外部访问和修改。
[0049]
具体而言,可信执行环境可以提供以下功能:
[0050]
·
隔离计算环境:这一环境可以被称为飞地,用于保护代码和数据不被其他方访问和修改,例如操作系统/管理程序本身或其他应用程序。
[0051]
·
认证服务:该服务将对客户提供的软件进行认证以加载到飞地中。一般来说,这项服务让客户确信:
[0052]
a)低层硬件平台可信:如中央处理单元为正品,固件和微码安全,不受第三方恶意篡改。
[0053]
b)例如代码或数据的应用软件是可信的,即,软件的代码或数据没有被其他恶意方篡改或修改。
[0054]
c)软件的安装过程是可信任的,即,软件被安装到平台中时完全按照定义的方式安装,没有被其他恶意方更改或篡改。
[0055]
有了这三个方面的信任,客户就可以放心,他们的应用是安全的并且不会被恶意利用。
[0056]
·
供应服务:该服务将通过在运行时向飞地供应秘密来为软件提供机密性。在客户证明或验证软件后,客户可以确信有关应用、硬件或软件的所有内容都是安全的,然后他们可以将他们的秘密或敏感数据提供给在飞地内运行的应用程序。
[0057]
·
其他服务,例如密封、迁移和撤销。
[0058]
图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的可信数据网络100的示意性框图。根据本公开的实施例,可信数据网络100可以是云环境。
[0059]
如图1中所示,可信数据网络100包括计算设备110,多个可信节点130-1、130-2
……
130-n(以下被统称为可信节点130),以及网络140。计算设备110可以与用户120进行交互以从用户120获取指令、输入数据、输入参数等数据,并且可以通过网络140与可信节点130进行交互以传输数据。根据本公开的实施例,计算设备110也可以是可信节点或者可以位于可信节点130中。因此,根据本公开的一些实施例,计算设备110仅用于与用户120和可信节点130进行交互;而根据本公开的另一些实施例,计算设备110不仅可以用于与用户120和可信节点130进行交互,也可以作为可信节点130进行操作。因此,计算设备110可以位于一个可信节点中,或者每隔可信节点中均可以包括与计算设备110功能相同或类似的计算设备。
[0060]
可信节点130可以用于存储由计算设备110根据从用户120接收的输入数据、使用秘密共享方案而生成的共享部分集合,也可以用于从计算设备110接收输入数据并且而后生成共享部分集合,共享部分集合中可以包括一个或多个共享部分。根据本公开的实施例,可信节点130可以是可信执行环境。
[0061]
根据本公开的实施例,网络130可以包括虚拟专用网络或者因特网协议安全
(ipsec)连接等任何网络连接形式,本公开的保护范围并不限于此。
[0062]
图2示出了根据本公开的实施例的数据存储方法200的流程图。方法200可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,数据存储方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
[0063]
在框202,计算设备110获取预定数目的可信节点的标识符。根据本公开的实施例,预定数目与待使用的秘密共享方案相关联。例如,计算设备110可以从用户120接收用于指定要使用的秘密共享方案的指令,并且该指令中还可以指示与要使用的秘密共享方案相关联的、要使用的可信节点的数目。此外,计算设备110还可以绑定有默认的秘密共享方案,从而使得可以针对接收的秘密直接使用默认的秘密共享方案。
[0064]
根据本公开的实施例,可信节点的标识符可以是数字或者可以被体现为数字形式,从而使得在使用秘密共享方案时可以容易地引入不同可信节点的不同的标识符以用于计算。
[0065]
根据本公开的实施例,计算设备110可以响应于来自用户120的指示或者自动地,为预定数目的可信节点中的每个可信节点确定标识符。应当理解,不同可信节点的标识符是不同的,从而使得当在使用秘密共享方案并且引用不同可信节点的标识符进行计算时,所得到的共享部分集合也是不同的。
[0066]
在框204,计算设备110通过使用在框202获得的标识符分别作为秘密共享方案的参数,来从输入数据生成预定数目的共享部分集合。
[0067]
根据本公开的实施例,计算设备110可以从用户120或者其他数据源获取输入数据。输入数据可以包括各种数据,例如,文本数据、图像数据、音频数据、视频数据等。在获取了输入数据之后,计算设备110可以例如按照之前描述过的阿迪
·
萨莫尔秘密共享方案来从输入数据生成预定数目的共享部分集合。在从输入数据生成预定数目的共享部分集合时,对于所使用的秘密共享方案中的随机参数,计算设备110可以从用户120处接收对随机参数数值的指示,也可以按照默认数据来确定随机参数数值。
[0068]
根据本公开的一些实施例,计算设备110在从输入数据生成预定数目的共享部分集合时,可以首先将输入数据分成多个输入数据部分,并且而后通过使用在框202获得的标识符中的一个标识符作为秘密共享方案的参数,来从多个输入数据部分中的每个输入数据部分生成针对与一个标识符对应的共享部分集合中的每个共享部分。例如,计算设备110可以按照每一个字节、每两个字节、每四个字节或者任意选择的字节数目来划分输入数据以得到多个输入数据部分,并且使用秘密共享方案进行计算,以得到对应的共享部分集合中的每个共享部分。需要指出的是,优选地可以按照逐字节的形式来对输入数据进行计算,从而使得可以采用精细的粒度来对输入数据进行更高等级的保护。
[0069]
根据本公开的另一些实施例,计算设备110在从输入数据生成预定数目的共享部分集合时,可以首先将输入数据分成多个输入数据部分。而后,计算设备110可以通过使用预定数目的标识符中的一个标识符作为秘密共享方案的参数,来从多个输入数据部分中的一个输入数据部分生成针对与一个标识符对应的共享部分集合中的一个共享部分。此时,计算设备110在查找表中存储一个输入数据部分与一个共享部分之间的对应关系。最后,计算设备110可以在从多个输入数据部分中的另一输入数据部分生成共享部分集合中的另一
共享部分时,如果另一输入数据部分与一个输入数据部分相同,则通过查找表确定一个共享部分,作为另一共享部分。
[0070]
采用这种方式,可以避免对输入数据中的相同输入数据部分进行重复计算,从而可以节省使用秘密共享方案的计算量,并且因而可以加速计算过程。在这些实施例中,同样优选地可以按照逐字节的形式来对输入数据进行计算,从而使得可以最大程度下减少相同内容,即,相同字节,的计算次数。
[0071]
例如,以之前描述的阿迪
·
萨莫尔秘密共享方案为例,一旦确定了a、b和x(可信节点标识符),就可以确定每个不同m的f(x)。因此,对于输入数据,在以字节为单位时,可以计算所有不同m,即0~255,的所有f(x),并且将这些m以及对应的共享部分之间的对应关系保存在查找表中。在这种情况下,可以只需要进行256次计算,而后通过查找,就可以从输入数据生成共享部分集合。
[0072]
在框206,计算设备110按照预定数目的共享部分集合与预定数目的可信节点的对应关系,将预定数目的共享部分集合分别存储在预定数目的可信节点中。根据本公开的实施例,当计算设备110在框204从输入数据生成预定数目的共享部分集合后,由于可信节点、可信节点的标识符以及生成的共享部分集合是一一对应关系,因此计算设备110可以按照这一对应关系,通过网络140将预定数目的共享部分集合分别发送给预定数目的可信节点,并且由这些可信节点分别存储接收到的共享部分集合。
[0073]
在数据存储方法200中,计算设备110本身也可以是一个可信节点,此时,计算设备110可以将自身作为可信节点来针对自身计算对应的共享部分集合,并且可以存储这一共享部分集合。
[0074]
此外,数据存储方法200中,使用秘密共享方案从输入数据计算共享部分集合的操作由计算设备110进行,因此计算设备110的处理压力较大。根据本公开的另一些实施例,前述计算过程也可以由可信节点130来进行,从而可以缓解计算设备110的处理压力。以下结合图3来具体描述这些实施例。
[0075]
图3示出了根据本公开的实施例的数据存储方法300的流程图。方法300可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,数据存储方法300还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
[0076]
在框302,计算设备110获取输入数据。如前所述,根据本公开的实施例,计算设备110可以从用户120或者其他数据源获取输入数据。
[0077]
在框304,计算设备110将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点,以用于由预定数目的可信节点中的每个可信节点,通过使用可信节点的标识符作为秘密共享方案的参数,来从输入数据生成共享部分集合。
[0078]
根据本公开的实施例,计算设备110可以响应于来自用户120的指示或者自动地,为预定数目的可信节点中的每个可信节点确定标识符。
[0079]
根据本公开的一些实施例,计算设备110将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点可以包括:将输入数据发送给预定数目的可信节点,以用于由预定数目的可信节点中的每个可信节点:将输入数据分成多个输入数据部分;以及通过使用标识符作为秘密共享方案的参数,来从多个输入数据部分中的每个输入数据部分
生成共享部分集合中的每个共享部分。例如,计算设备110可以按照每一个字节、每两个字节、每四个字节或者任意选择的字节数目来划分输入数据以得到多个输入数据部分,并且使用秘密共享方案进行计算,以得到对应的共享部分集合中的每个共享部分。需要指出的是,优选地可以按照逐字节的形式来对输入数据进行计算,从而使得可以采用精细的粒度来对输入数据进行更高等级的保护。
[0080]
在上述过程中所涉及的具体操作与以上参照数据存储方法200所描述的操作类似,在此不再赘述。
[0081]
根据本公开的另一些实施例,计算设备110将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点可以包括:将输入数据发送给预定数目的可信节点,以用于由预定数目的可信节点中的每个可信节点:将输入数据分成多个输入数据部分;以及通过使用标识符作为秘密共享方案的参数,来从多个输入数据部分中的一个输入数据部分生成共享部分集合中的一个共享部分;在查找表中存储一个输入数据与一个共享部分之间的对应关系;以及在从多个输入数据部分中的另一输入数据部分生成共享部分集合中的另一共享部分时,如果另一输入数据部分与一个输入数据部分相同,则通过查找表确定一个共享部分,作为另一共享部分。
[0082]
采用这种方式,可以避免对输入数据中的相同输入数据部分进行重复计算,从而可以节省使用秘密共享方案的计算量,并且因而可以加速计算过程。在这些实施例中,同样优选地可以按照逐字节的形式来对输入数据进行计算,从而使得可以最大程度下减少相同内容,即,相同字节,的计算次数。
[0083]
在上述过程中所涉及的具体操作与以上参照数据存储方法200所描述的操作类似,在此不再赘述。
[0084]
当在可信节点130中分别存储了共享部分集合之后,可以在需要使用或者获取输入数据时,通过从可信节点130读取共享部分集合来恢复输入数据。以下结合图4来对这一过程进行具体描述。
[0085]
图4示出了根据本公开的实施例的数据读取方法400的流程图。方法400可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,数据读取方法400还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
[0086]
在框402,计算设备110从预定数目的可信节点分别获取至少另一预定数目的共享部分集合。根据本公开的实施例,预定数目和另一预定数目与针对输入数据生成另一预定数目的共享部分集合时所使用的秘密共享方案相关联,并且预定数目大于等于另一预定数目。
[0087]
根据本公开的实施例,在需要使用或者获取输入数据时,计算设备110可以向所有存储了对应的共享部分集合的预定数目的可信节点均发送共享部分集合读取请求。以之前描述过的阿迪
·
萨莫尔秘密共享方案为例,由于其采取多项式实现(t,n),因此所有存储了对应的共享部分集合的预定数目的可信节点的数目为n。
[0088]
根据本公开的实施例,计算设备110从不同可信节点130接收共享部分集合的时间延迟可能是未知的,并且计算设备110并不知道从可信节点130接收共享部分集合的时间顺序。按照阿迪
·
萨莫尔秘密共享方案,当获取的t个共享部分集合之后,计算设备100即可以
恢复出输入数据。因此,计算设备110可以在接收到t个共享部分集合之后,不再继续接收来自其他可信节点的共享部分集合。
[0089]
在框404,计算设备110基于秘密共享方案,通过使用另一预定数目的可信节点的标识符,来从前述另一预定数目的共享部分集合生成输入数据,该另一预定数目的共享部分集合分别从前述另一预定数目的可信节点而被获取。
[0090]
根据本公开的一些实施例,以之前描述过的阿迪
·
萨莫尔秘密共享方案为例,计算设备110在接收到t个共享部分集合之后,可以使用这些共享部分集合,通过求解线性方程集合的方式来生成输入数据。
[0091]
根据本公开的一些实施例,数据存储方法200、数据存储方法300和数据读取方法400可以按照如下的方式而被实现。例如,其可以被集成到操作系统提供的用户界面中。具体而言,在windows中,数据存储方法200、数据存储方法300和数据读取方法400可以被命名为“秘密分享”,作为命令windows扩展应用编程接口被集成到windows资源管理器的文件/目录的右键菜单中。在android移动设备中,可以在应用用户界面中增加对应的“秘密分享”操作。
[0092]
根据本公开的一些实施例,如果数据存储方法200、数据存储方法300和数据读取方法400在移动设备上运行,也可以集成其他安全保护措施,例如,快速在线识别(fido)生物特征认证,诸如指纹、面部、虹膜等。
[0093]
根据本公开的一些实施例,可信节点可以使用不同的可信执行环境技术实现,只要这些实现都符合请求注解(rfc)中定义的远程证明程序架构。
[0094]
根据本公开的一些实施例,可信节点130也可以作为计算设备110进行操作。换言之,可信节点130也可以作为数据存储方法200、数据存储方法300和数据读取方法400的发起方,并且可以例如通过与用户120交互来发起这些方法步骤的执行,只要这些可信节点130可以例如通过公共因特网协议地址进行寻址。
[0095]
根据本公开的一些实施例,在数据存储方法200、数据存储方法300和数据读取方法400的具体步骤的执行前,可以包括一些准备步骤。
[0096]
首先,可信节点130被部署在可信数据网络100中。而后,用户120可以通过计算设备110来配置可信节点130。例如,用户可以配置用于登录、使用每个可信节点130的用户名和口令,以及可以配置要使用的秘密共享方案中的参数,例如,(t,n)秘密共享方案中的t和n。通常,n是用户租用的云存储装置的总数,t≥2。t越大,作为秘密的输入数据就越安全,但延迟可能更长,开销也更大。此外,用户120可以配置每个可信节点130的因特网协议地址或者端口号,这些因特网协议地址或者端口号可以用于远程证明,并且不同的可信执行环境之间通过协商后可以自动建立传输层安全(tls)通道。进一步地,用户120可以如前所述为每个可信节点130配置标识符,并且可以配置如果某个可信节点空闲则休眠或者关闭这一可信节点的时间阈值。
[0097]
而后,在用户120通过计算设备110发起数据存储方法200、数据存储方法300或数据读取方法400时,计算设备110可以从可信数据网络100的配置中读取需要使用的可信节点130的因特网协议地址或者端口号,并根据请求注解(rfc)中定义的远程证明过程架构向每个可信节点启动证明过程。
[0098]
此后,计算设备110与每个可信节点130建立传输层安全(tls)连接,并且数据存储
方法200、数据存储方法300和数据读取方法400的具体步骤可以开始执行。
[0099]
以上参考图1至图4描述了根据本公开的实施例的设备和/或方法可以在其中被实施的可信数据网络100、根据本公开的实施例的数据存储方法200、根据本公开的实施例的数据存储方法300以及根据本公开的实施例的数据读取方法400。应当理解,上述描述是为了更好地展示本公开的实施例中所记载的内容,而不是以任何方式进行限制。
[0100]
应当理解,本公开的实施例以及各个附图中所采用的各种元件的数目和物理量的大小仅为举例,而并不是对本公开的实施例的保护范围的限制。上述数目和大小可以根据需要而被任意设置,而不会对本公开的实施例的正常实施产生影响。
[0101]
通过以上参考图1到图4的描述,根据本公开的实施例的技术方案,可以通过使用秘密共享方案,利用可信节点来对输入数据进行高效的保护,并且可以保证输入数据的机密性和完整性。
[0102]
具体而言,根据本公开的实施例的技术方案可以具有以下有益效果:
[0103]
根据本公开的实施例的技术方案可以避免单点故障问题,因为其在零信任网络环境中将不同的共享部分集合存储在多云存储装置中。
[0104]
根据本公开的实施例的技术方案由于是从n个共享部分集合中的t个共享部分集合重建原始秘密,因此如果某些共享部分集合无法访问或出现故障,仍然可以恢复初始秘密。
[0105]
根据本公开的实施例的技术方案使用可信执行环境代替多方计算乱码电路或同态加密来在不同站点之间交换秘密,从而使得可以在多云广域网(wan)环境中实际使用。
[0106]
根据本公开的实施例的技术方案可以在不同云的不同机密计算环境中利用不同的可信执行环境而被实现。例如,可以使用微软公司支持的intel sgx,google cloud支持的amd sev,并且可以利用移动电话中的trustzone作为本地计算设备来实现。
[0107]
根据本公开的实施例的技术方案提出了对秘密共享实现的优化,即专门用于具有查找表的文件,从而可以更快捷地实现秘密共享。
[0108]
根据本公开的实施例的技术方案可以被轻松地集成到windows、linux或android等不同的操作系统中,并且可以容易地供非安全专家的普通人使用。
[0109]
根据本公开的实施例的技术方案使用秘密共享而不是加密/解密来节省密钥管理的麻烦和重新密钥的工作,从而避免用旧密钥解密文件并用新密钥再次加密的复杂过程。
[0110]
根据本公开的实施例的技术方案可以被客户轻松地扩展自行实施密钥管理服务(kms),从而使得可以对秘密进行再进一步的保护。
[0111]
图5图示出了可以用来实施本公开的实施例的示例设备500的示意性框图。根据本公开的实施例,图1中的计算设备110可以由设备500来实施。如图所示,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令,来执行各种适当的动作和处理。在ram 503中,还可以存储设备500操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0112]
设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0113]
上文所描述的例如方法200、300和400的各个过程和处理可由处理单元501执行。例如,在一些实施例中,方法200、300和400可以被实现为计算机软件程序,其被有形地包含于例如存储单元508的机器可读介质中。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到ram 503并由cpu 501执行时,可以执行上文描述的方法200、300和400的一个或多个动作。
[0114]
本公开的实施例可以涉及方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的实施例的各个方面的计算机可读程序指令。
[0115]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是、但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的作为非穷举的列表的更具体的示例包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、例如通过光纤电缆的光脉冲的通过波导或其他传输媒介传播的电磁波、或者通过电线传输的电信号。
[0116]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0117]
用于执行本公开的实施例的操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以例如利用因特网服务提供方来通过因特网连接连接到外部计算机。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的实施例的各个方面。
[0118]
这里参照根据本公开的实施例的方法、设备/系统和计算机程序产品的流程图和/或框图描述了本公开的实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流
程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0119]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0120]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0121]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0122]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:
1.一种数据存储方法,包括:获取预定数目的可信节点的标识符,所述预定数目与待使用的秘密共享方案相关联;通过使用所述标识符分别作为所述秘密共享方案的参数,来从输入数据生成所述预定数目的共享部分集合;以及按照所述预定数目的共享部分集合与所述预定数目的可信节点的对应关系,将所述预定数目的共享部分集合分别存储在所述预定数目的可信节点中。2.根据权利要求1所述的方法,其中获取所述标识符包括:为所述预定数目的可信节点中的每个可信节点确定标识符。3.根据权利要求1所述的方法,其中生成所述预定数目的共享部分集合包括:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符中的一个标识符作为所述秘密共享方案的参数,来从所述多个输入数据部分中的每个输入数据部分生成针对与所述一个标识符对应的共享部分集合中的每个共享部分。4.根据权利要求3所述的方法,其中每个输入数据部分的大小为一字节。5.根据权利要求1所述的方法,其中生成所述预定数目的共享部分集合包括:将所述输入数据分成多个输入数据部分;以及通过使用所述预定数目的标识符中的一个标识符作为所述秘密共享方案的参数,来从所述多个输入数据部分中的一个输入数据部分生成针对与所述一个标识符对应的共享部分集合中的一个共享部分;在查找表中存储所述一个输入数据部分与所述一个共享部分之间的对应关系;以及在从所述多个输入数据部分中的另一输入数据部分生成所述共享部分集合中的另一共享部分时,如果所述另一输入数据部分与所述一个输入数据部分相同,则通过所述查找表确定所述一个共享部分,作为所述另一共享部分。6.一种数据存储方法,包括:获取输入数据;以及将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点,通过使用所述可信节点的标识符作为所述秘密共享方案的参数,来从所述输入数据生成共享部分集合。7.根据权利要求6所述的方法,还包括:为所述可信节点确定所述标识符。8.根据权利要求6所述的方法,其中将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点包括:将所述输入数据发送给所述预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符作为所述秘密共享方案的所述参数,来从所述多个输入数据部分中的每个输入数据部分生成所述共享部分集合中的每个共享部分。9.根据权利要求8所述的方法,其中每个输入数据部分的大小为一字节。10.根据权利要求6所述的方法,其中将输入数据发送给与待使用的秘密共享方案相关
联的预定数目的可信节点包括:将所述输入数据发送给所述预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符作为所述秘密共享方案的所述参数,来从所述多个输入数据部分中的一个输入数据部分生成所述共享部分集合中的一个共享部分;在查找表中存储所述一个输入数据与所述一个共享部分之间的对应关系;以及在从所述多个输入数据部分中的另一输入数据部分生成所述共享部分集合中的另一共享部分时,如果所述另一输入数据部分与所述一个输入数据部分相同,则通过所述查找表确定所述一个共享部分,作为所述另一共享部分。11.一种数据读取方法,包括:从预定数目的可信节点分别获取至少另一预定数目的共享部分集合,所述预定数目和所述另一预定数目与针对输入数据生成所述另一预定数目的共享部分集合时所使用的秘密共享方案相关联,并且所述预定数目大于等于所述另一预定数目;以及基于所述秘密共享方案,通过使用所述另一预定数目的可信节点的标识符,来从所述另一预定数目的共享部分集合生成所述输入数据,所述另一预定数目的共享部分集合分别从所述另一预定数目的可信节点而被获取。12.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:获取预定数目的可信节点的标识符,所述预定数目与待使用的秘密共享方案相关联;通过使用所述标识符分别作为所述秘密共享方案的参数,来从输入数据生成所述预定数目的共享部分集合;以及按照所述预定数目的共享部分集合与所述预定数目的可信节点的对应关系,将所述预定数目的共享部分集合分别存储在所述预定数目的可信节点中。13.根据权利要求12所述的电子设备,其中获取所述标识符包括:为所述预定数目的可信节点中的每个可信节点确定标识符。14.根据权利要求12所述的电子设备,其中生成所述预定数目的共享部分集合包括:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符中的一个标识符作为所述秘密共享方案的参数,来从所述多个输入数据部分中的每个输入数据部分生成针对与所述一个标识符对应的共享部分集合中的每个共享部分。15.根据权利要求14所述的电子设备,其中每个输入数据部分的大小为一字节。16.根据权利要求12所述的电子设备,其中生成所述预定数目的共享部分集合包括:将所述输入数据分成多个输入数据部分;以及通过使用所述预定数目的标识符中的一个标识符作为所述秘密共享方案的参数,来从所述多个输入数据部分中的一个输入数据部分生成针对与所述一个标识符对应的共享部
分集合中的一个共享部分;在查找表中存储所述一个输入数据部分与所述一个共享部分之间的对应关系;以及在从所述多个输入数据部分中的另一输入数据部分生成所述共享部分集合中的另一共享部分时,如果所述另一输入数据部分与所述一个输入数据部分相同,则通过所述查找表确定所述一个共享部分,作为所述另一共享部分。17.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:获取输入数据;以及将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点,通过使用所述可信节点的标识符作为所述秘密共享方案的参数,来从所述输入数据生成共享部分集合。18.根据权利要求17所述的电子设备,其中所述动作还包括:为所述可信节点确定所述标识符。19.根据权利要求17所述的电子设备,其中将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点包括:将所述输入数据发送给所述预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符作为所述秘密共享方案的所述参数,来从所述多个输入数据部分中的每个输入数据部分生成所述共享部分集合中的每个共享部分。20.根据权利要求19所述的电子设备,其中每个输入数据部分的大小为一字节。21.根据权利要求17所述的电子设备,其中将输入数据发送给与待使用的秘密共享方案相关联的预定数目的可信节点包括:将所述输入数据发送给所述预定数目的可信节点,以用于由所述预定数目的可信节点中的每个可信节点:将所述输入数据分成多个输入数据部分;以及通过使用所述标识符作为所述秘密共享方案的所述参数,来从所述多个输入数据部分中的一个输入数据部分生成所述共享部分集合中的一个共享部分;在查找表中存储所述一个输入数据与所述一个共享部分之间的对应关系;以及在从所述多个输入数据部分中的另一输入数据部分生成所述共享部分集合中的另一共享部分时,如果所述另一输入数据部分与所述一个输入数据部分相同,则通过所述查找表确定所述一个共享部分,作为所述另一共享部分。22.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得
所述设备执行动作,所述动作包括:从预定数目的可信节点分别获取至少另一预定数目的共享部分集合,所述预定数目和所述另一预定数目与针对输入数据生成所述另一预定数目的共享部分集合时所使用的秘密共享方案相关联,并且所述预定数目大于等于所述另一预定数目;以及基于所述秘密共享方案,通过使用所述另一预定数目的可信节点的标识符,来从所述另一预定数目的共享部分集合生成所述输入数据,所述另一预定数目的共享部分集合分别从所述另一预定数目的可信节点而被获取。23.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求1至5中的任一项所述的方法的步骤。24.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求6至10中的任一项所述的方法的步骤。25.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求11所述的方法的步骤。

技术总结
本公开的实施例涉及数据存储方法、数据读取方法、电子设备和计算机程序产品。该数据存储方法包括:获取预定数目的可信节点的标识符,预定数目与待使用的秘密共享方案相关联;通过使用标识符分别作为秘密共享方案的参数,来从输入数据生成预定数目的共享部分集合;以及按照预定数目的共享部分集合与预定数目的可信节点的对应关系,将预定数目的共享部分集合分别存储在预定数目的可信节点中。使用本公开的技术方案,可以通过使用秘密共享方案,利用可信节点来对输入数据进行高效的保护,并且可以保证输入数据的机密性和完整性。可以保证输入数据的机密性和完整性。可以保证输入数据的机密性和完整性。


技术研发人员:刘金鹏 陈超 石勇军 贾真
受保护的技术使用者:戴尔产品有限公司
技术研发日:2022.01.21
技术公布日:2023/7/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐