生成加密密钥的多驱动器协作.pdf

上传人:li****8 文档编号:4039608 上传时间:2018-08-12 格式:PDF 页数:22 大小:1.41MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380050193.5

申请日:

2013.09.25

公开号:

CN104704504A

公开日:

2015.06.10

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 21/60申请日:20130925|||公开

IPC分类号:

G06F21/60; H04L9/08

主分类号:

G06F21/60

申请人:

净睿存储股份有限公司

发明人:

E·米勒; J·科尔格洛夫; J·海耶斯

地址:

美国加利福尼亚

优先权:

13/627,444 2012.09.26 US

专利代理机构:

中国国际贸易促进委员会专利商标事务所11038

代理人:

郑宗玉

PDF下载: PDF下载
内容摘要

一种用于使用秘密共享方案来保护一组存储设备的系统、方法和计算机可读存储介质。利用密钥来加密每个存储设备的数据,以及基于共享的秘密和特定于设备的值来加密密钥。每个存储设备存储份额及其经加密的密钥,如果有阈值以上数量的存储设备可用,则可以从份额重构共享的秘密,并且将其用于解密经加密的密钥。否则,如果有小于阈值数量的存储设备可访问,则无法重构秘密,并且存储设备上的数据将不可读。

权利要求书

权利要求书
1.  一种包括多个存储设备的计算系统,其中,所述计算系统被配 置成:
使用设备密钥来加密所述多个存储设备中的每个存储设备上的 数据,其中,每个存储设备使用单独的设备密钥;
使用主秘密来加密每个设备密钥;
从所述主秘密生成多个份额;以及
将所述多个份额中的单独的份额存储在所述多个存储设备中的 每个存储设备上。

2.  如权利要求1所述的计算系统,其中,所述多个份额是与在任 何给定存储设备上被加密的数据独立地从所述主秘密生成的。

3.  如权利要求2所述的计算系统,其中,所述计算系统还被配置 成:
使用所述主秘密和所述多个存储设备中的相应的存储设备所特 有的值来加密每个设备密钥;以及
将每个经加密的密钥存储在所述相应的存储设备上。

4.  如权利要求3所述的计算系统,其中,所述计算系统还被配置 成:
使用所述多个份额中的给定数量的份额来重构所述主秘密,以及 使用所述主秘密来解密经加密的设备密钥,以生成经解密的设备密钥;
将所述经解密的设备密钥存储在易失性存储器中;以及
使用所述经解密的设备密钥来执行对一个或多个存储设备的多 次访问。

5.  如权利要求1所述的计算系统,其中,重构所述主秘密所需的 份额的数量大于与存储设备的任何单个物理分组相关联的份额的数量。

6.  如权利要求5所述的计算系统,其中,响应于检测到发生故障 的存储设备,所述计算系统还被配置成:
生成新的主秘密;
使用所述新的主秘密来加密每个设备密钥;
从所述新的主秘密生成多个新份额;以及
将所述多个新份额中的单独的新份额存储在所述多个存储设备 中的每个存储设备上。

7.  如权利要求1所述的计算系统,其中,所述计算系统还被配置 成:
按预定的时间表周期性地生成新的主秘密;
使用所述新的主秘密来加密每个设备密钥;
从所述新的主秘密生成多个新份额;以及
将所述多个新份额中的单独的新份额存储在所述多个存储设备 中的每个存储设备上,其中,每个新份额替换存储在每个存储设备上 的以前的份额。

8.  一种方法,包括:
使用设备密钥来加密多个存储设备中的每个存储设备上的数据, 其中,每个存储设备使用单独的设备密钥;以及
使用主秘密来加密每个设备密钥;
从所述主秘密生成多个份额;以及
将所述多个份额中的单独的份额存储在所述多个存储设备中的 每个存储设备上。

9.  如权利要求8所述的方法,其中,所述多个份额是与在任何给 定存储设备上被加密的数据独立地从所述主秘密生成的。

10.  如权利要求9所述的方法,还包括:
使用所述主秘密和所述多个存储设备中的相应的存储设备所特 有的值来加密每个设备密钥;以及
将每个经加密的密钥存储在所述相应的存储设备上。

11.  如权利要求10所述的方法,还包括:
使用所述多个份额中的给定数量的份额来重构所述主秘密,以及 使用所述主秘密来解密经加密的设备密钥,以生成经解密的设备密钥;
将所述经解密的设备密钥存储在易失性存储器中;以及
使用所述经解密的设备密钥来执行对一个或多个存储设备的多 次访问。

12.  如权利要求8所述的方法,其中,重构所述主秘密所需的份 额的数量大于与存储设备的任何单个物理分组相关联的份额的数量。

13.  如权利要求12所述的方法,其中,响应于检测到发生故障的 存储设备,所述方法还包括:
生成新的主秘密;
使用所述新的主秘密来加密每个设备密钥;
从所述新的主秘密生成多个新份额;以及
将所述多个新份额中的单独的新份额存储在所述多个存储设备 中的每个存储设备上。

14.  如权利要求8所述的方法,还包括:
按预定的时间表周期性地生成新的主秘密;
使用所述新的主秘密来加密每个设备密钥;
从所述新的主秘密生成多个新份额;以及
将所述多个新份额中的单独的新份额存储在所述多个存储设备 中的每个存储设备上,其中,每个新份额替换存储在每个存储设备上 的以前的份额。

15.  一种包括程序指令的非暂态计算机可读存储介质,其中所述 程序指令可执行以:
使用设备密钥来加密多个存储设备中的每个存储设备上的数据, 其中,每个存储设备使用单独的设备密钥;以及
使用主秘密来加密每个设备密钥;
从所述主秘密生成多个份额;以及
将所述多个份额中的单独的份额存储在所述多个存储设备中的 每一存储设备上。

16.  如权利要求15所述的非暂态计算机可读存储介质,其中,所 述多个份额是与在任何给定存储设备上被加密的数据独立地从所述主 秘密生成的。

17.  如权利要求16所述的非暂态计算机可读存储介质,其中,所 述程序指令还可执行以:
使用所述主秘密和所述多个存储设备中的相应的存储设备所特 有的值来加密每个设备密钥;以及
将每个经加密的密钥存储在所述相应的存储设备上。

18.  如权利要求17所述的非暂态计算机可读存储介质,其中,所 述程序指令还可执行以:
使用所述多个份额中的给定数量的份额来重构所述主秘密,以及 使用所述主秘密来解密经加密的设备密钥,以生成经解密的设备密钥;
将所述经解密的设备密钥存储在易失性存储器中;以及
使用所述经解密的设备密钥来执行对一个或多个存储设备的多 次访问。

19.  如权利要求15所述的非暂态计算机可读存储介质,其中,重 构所述主秘密所需的份额的数量大于与存储设备的任何单个物理分组 相关联的份额的数量。

20.  如权利要求15所述的非暂态计算机可读存储介质,其中,所 述程序指令还可执行以:
按预定的时间表周期性地生成新的主秘密;
使用所述新的主秘密来加密每个设备密钥;
从所述新的主秘密生成多个新份额;以及
将所述多个新份额中的单独的新份额存储在所述多个存储设备 中的每个存储设备上,其中,每个新份额替换存储在每个存储设备上 的以前的份额。

说明书

说明书生成加密密钥的多驱动器协作
背景
技术领域
本发明涉及存储系统,更具体地,涉及用于保护数据以防止未经 授权的访问的系统。
对相关技术的描述
存储系统常常使用大量的存储设备来存储数据。存储在存储设备 上的数据通常是敏感的,因此需要防止由未经授权的用户对敏感数据 的访问。这在各种情况下证明是具有挑战性的。例如,当存储设备在 多个位置之间运送时,难以防止丢失的或被盗窃的存储设备上的数据 被访问。
丢失数据的其他情况也是可能的,并希望被避免。例如,未经授 权的人可能拥有存储设备并访问该存储设备上的数据。用于防止这种 情况的一种常见的方法是通过要求密码来访问设备上的数据。然而, 由于种种原因,这种解决方案不太理想。密码通常存储在存储系统中 的某处,并且密码可能被盗窃。替选地,密码可能会丢失,从而妨碍 被授权的用户访问存储设备上的数据。用于防止对数据的未经授权的 访问的其他常见的解决方案存在各种缺点。因此,希望有用于保护一 组存储设备上的数据的更好的解决方案。
鉴于上面的内容,希望有用于防止对一组存储设备的访问的改进 的系统和方法。
发明内容
构思了用于防止对一组存储设备中的任何存储设备的未经授权 的访问的系统和方法的各种实施例。在一个实施例中,存储系统可以 使用秘密共享方案来保护用于一组存储设备的密钥。实际上,秘密共 享方案提供一种获取多个单独的物理存储设备并且逻辑地将它们统一 为整体的方式。因此,任何单个存储设备独自地将不会具有任何可读 取的数据。但是,如果存在大于阈值数量的存储设备,则可以检索存 储设备上的数据,而不要求任何其他访问机制(例如,管理员密码、 USB密钥、硬件加密狗)。
在一个实施例中,只有在阈值数量的一组存储设备可用的情况下, 才可以准许对该组存储设备的访问。在一个实施例中,可以选择阈值 数量的存储设备,使得阈值大于存储设备的总数的一半。在此实施例 中,存储系统可以被均匀地拆分为两个架子的存储设备,以及两个架 子可以分开地运送到另一个位置。因此,由于阈值大于存储设备的总 数的一半,如果架子中的一个架子丢失,则丢失的架子的存储设备上 的数据将无法访问。在另一个实施例中,存储系统可包括大于两个架 子的存储设备。在此实施例中,阈值可以被设置为除1以外的全部架 子。替选地,对于此实施例,阈值可以被设置为其他值。
为防止对存储系统中的一个或多个存储设备的未经授权的访问, 可以使用秘密共享方案。秘密共享方案可以涉及将秘密拆分为份额的 集合,以便拥有足够数量的份额能够恢复秘密,但是拥有不足够数量 的份额很少或不提供有关秘密的信息。可以为系统的每个存储设备生 成一个或多个份额,然后可以将份额存储在它们的对应的存储设备上。 如果存在足够的存储设备,则可以从存储在这些存储设备上的份额重 构秘密。
在一个实施例中,可以利用密钥对每个存储设备上的数据进行加 密,并且每个存储设备可以使用单独的、唯一密钥对存储设备上的数 据进行加密。可以使用各种加密方法中的任何一种来使用密钥对存储 设备上的数据进行加密。在一个实施例中,在给定存储设备上,可以 使用主秘密和特定于给定存储设备的第二值对密钥进行加密。在一个 实施例中,第二值可以是给定存储设备的序列号。因此,为解密该组 存储设备中的任何一个存储设备上的数据,必须首先从适当数量的份 额重构主秘密。在重构主秘密之后,可以使用主秘密和第二值来解密 经加密的密钥。然后,可以使用密钥来解密对应的存储设备上的数据。
在考虑下面的描述和附图之后,这些及其他实施例将变得明显。
附图说明
图1是示出存储系统的一个实施例的一般化框图。
图2是存储系统的另一个实施例的一般化框图。
图3是分布式系统的一个实施例的一般化框图。
图4是分布式系统的另一个实施例的一般化框图。
图5是示出用于使一组存储设备统一的方法的一个实施例的一般 化流程图。
图6是示出用于使用秘密共享方案来解密存储系统中的数据的方 法的一个实施例的一般化流程图。
图7是示出经加密的密钥和份额的生成的一个实施例的一般化框 图。
尽管本发明可以具有各种修改和替代形式,但是这里将通过附图 中的示例来示出具体实施例并且进行详细描述。然而,应当理解,附 图及其详细描述不是旨在将本发明局限于所公开的特定形式,而是相 反地,本发明将涵盖落入如所附权利要求所定义的本发明的精神和范 围内的所有修改、等效内容和替代方案。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本发明的透彻理解。 然而,本领域的技术人员应该认识到,本发明也可以在没有这些具体 细节的情况下实施。在某些情况下,没有详细示出已知的电路、结构、 信号、计算机程序指令和技术,以避免使本发明变得模糊。可以理解, 为说明简单和清楚起见,图中所示出的元件不一定是按比例绘制的。 例如,某些元件的尺寸可以相对于其他元件而放大。
本说明书包括对“一个实施例”的引用。在不同的上下文中出现短 语“在一个实施例中”不一定都是指同一个实施例。根据本公开内容, 特定特征、结构或特性可以以任何合适的方式组合起来。此外,如在 本申请全篇中所使用的,词语“可以”用于容许的意义(即,表示具有 可能性做某事),而不是强制性的意义(即,表示必须)。类似地, 词语“包括”表示、但不仅限于包括。
术语。下面的段落提供了在本公开内容(包括所附权利要求书) 中发现的术语的定义和/或上下文:
“包括”。此术语是开放的。如在所附权利要求书中所使用的,此 术语不排除额外的结构或步骤。考虑下列权利要求:“包括多个存储设 备的计算系统…”。这样的权利要求不排除计算系统包括额外的组件 (例如,网络接口、一个或多个处理器、存储器控制器)。
“被配置成”。各种单元、电路、或其他组件可被描述为或请求保 护为“被配置成”执行一个或多个任务。在这样的上下文中,“被配置成” 用于通过指示单元/电路/组件包括在操作期间执行一个或多个任务的 结构(例如,电路)来暗示结构。如此,单元/电路/组件可以被说成 是被配置成即使在指定的单元/电路/组件当前不运行(例如,没有接 通)的情况下也执行任务。与“被配置成”语言一起使用的单元/电路/ 组件包括硬件——例如,电路、存储用以实现操作的可执行程序指令 的存储器等等。记载单元/电路/组件“被配置成”执行一个或多个任务 明确地旨在对于该单元/电路/组件不援引35U.S.C.§112第六段。另外, “被配置成”可包括由软件和/或固件(例如,执行软件的FPGA或通用 处理器)操纵以便以能够执行所涉及的任务的方式来进行操作的一般 结构(例如,一般电路)。“被配置成”也可以包括修改制造过程(例 如,半导体制造设施)以制造适于实现或执行一个或多个任务的设备 (例如,集成电路)。
“基于”。如此处所使用的,此术语用于描述影响确定的一个或多 个因素。此术语不排除可能会影响确定的额外因素。即,确定可以只 基于那些因素、或至少部分地基于那些因素。考虑短语“基于B确定A”。 尽管B可能是影响对A的确定的因素,但是这样的短语不排除对A 的确定也基于C。在其他情况下,可以只基于B来确定A。
参考图1,示出了存储系统100的一个实施例的一般化框图。存 储系统100可包括存储器控制器110和被包括在架子140和145内的 存储设备150A-N。存储器控制器110可以实现秘密共享算法以防止对 存储设备150A-N的未经授权的访问。被描述为包括在存储器控制器 110内或由存储器控制器110实现的逻辑、算法和机制可以包括硬件 和/或软件。
在一个实施例中,可以使用Shamir(沙米尔)秘密共享来保护 存储系统100中的数据。然而,值得注意的是,在其他实施例中,也 可以使用其他秘密共享方案。例如,在其他实施例中,可以使用诸如 布莱克利(Blakley)、克拉夫奇克(Krawczyk)、或中国剩余定理 的其他秘密共享方案。尽管描述的其余部分可能是特定于沙米尔秘密 共享的,但是可以理解,这不排除使用其他秘密共享方案。
存储器控制器110可包括秘密生成单元115。在一个实施例中, 对于沙米尔秘密共享方案,单元115可以被配置成在有限(伽罗瓦) 域或GF(2m)空间中生成多项式,其中,m是正整数。可以生成多 项式,并且主秘密120可以是多项式中的一个项。值得注意的是,在 整个本公开内容中,术语“主秘密”和“共享的秘密”可以可互换地使用。 在一个实施例中,可以使用下列格式的多项式:f(x)=A0+A1x+A2x2+A3x3+….+Ak-1xk-1。
在一个实施例中,共享的秘密可以是多项式f(x)的常数项'A0', 而常数项'A0'可以随机地选择。在其他实施例中,秘密可以是多项式 的其他项中的一个(例如,A1,A2)或来自该多项式的两个或更多个 项的组合。多项式的次数可以确定存储设备的总数'n'中的用来重构秘 密所需的份额的数量'k'。例如,如果多项式是四次多项式,其中最高 阶项是X4项,那么用来重构秘密所需的份额的数量'k'将是五个。
在一个实施例中,份额生成单元125可以生成与存储系统中的存 储设备的数量相等的份额的数量'n'。由份额生成单元125生成的每个 份额135A-N可以是值的对,并且该对可以是多项式的输入和多项式 的结果(x,f(x))。在一个实施例中,每个份额可以通过将'x'设置为整数 值来生成。例如,可以通过将'x'设置为整数值1,2,….,N然后计算 对应的f(x)值来构建'N'个份额。在另一个实施例中,可以生成额外的 份额,并且将它们存储在一个或多个份额服务器中。此外,在又一个 实施例中,可以为替换发生故障的驱动器的新驱动器生成新份额。
每个份额135A-N可以被分布到对应的存储设备150A-N中,并 存储在其中。存储系统100的存储设备150A-N被示出为分离成两个 相等大小的架子140和145。然而,在其他实施例中,可以在存储系 统中使用其他数量的架子,另外,每个架子可以大小不同。例如,在 另一个实施例中,存储设备150A-N可以被分离并且被存储在四个架 子内。一般而言,“架子”可以指的是将存储设备分组为单个单元的任 何物理分组。在一个实施例中,可以选择用于重构主秘密所需的份额 的数量,以使得所需的数量大于架子中的存储设备的数量。换言之, 当存储设备在物理上一起分组到的单个位置可能不安全(如在物理运 输期间)时,重构主秘密所需的份额的数量应该大于在物理上一起分 组在单个位置的存储设备的任何数量。
虽然秘密生成单元115、份额生成单元125和密钥加密单元130 被示出为存储器控制器110内的单独的实体,但是,可以理解,在其 他实施例中,这些单元可以被合并成单个单元。还要注意,存储器控 制器110可包括图1中未示出的其他组件和逻辑。此外,在某些实施 例中,单元115、125和130可以是从在存储器控制器110的一个或多 个处理器(未示出)上执行的程序调用的软件例程。
应该理解,为说明性目的示出了图1中所示出的功能的分布,而 其他实施例可以具有组件之间的功能的不同的布局。例如,在另一个 实施例中,单元115、125和130中的一个或多个可以位于架子140、 架子145、任何存储设备150A-N内,或位于另一个计算设备中。在某 些实施例中,如果用于生成份额和秘密和/或对密钥进行加密的逻辑位 于架子或存储设备内,那么份额、秘密和/或经加密的密钥可以不从存 储器控制器传递到存储设备150A-N,如图1中所示。相反,在生成份 额、秘密和/或经加密的密钥之后,可以在它们的相应的存储设备处本 地使用它们。
在各个实施例中,存储设备150A-N中的每个存储设备可以使用 各种类型的数据存储技术中的任何一种。例如,在一个实施例中,存 储设备150A-N中的一个或多个存储设备可包括存储永久性数据的存 储器,包括固态存储器。在其他实施例中,存储设备150A-N中的一 个或多个存储器可包括使用其他技术的存储器,诸如旋转扭矩转移技 术、磁阻随机存取存储器(MRAM)技术、瓦式盘(shingled disk)、 忆阻器、相变存储器、或其他存储器技术。在一个实施例中,所包括 的固态存储器可以包括固态驱动器(SSD)技术。值得注意的是,固 态驱动器(SSD)也可以被称为固态盘。
每个存储设备150A-N可以生成并使用用于加密存储在设备上的 数据的密钥。每个存储设备150A-N可包括使用用于加密存储在设备 上的数据的密钥的硬件加密机制。可替选地,由存储设备150A-N使 用的密钥可以由存储器控制器110或其他单元生成。在一个实施例中, 为了添加额外保护级别,存储设备150A-N上的硬件可以被配置成加 密这些密钥。每个密钥可以被每个存储设备150A-N上的硬件独立地 并且与其他密钥分开地加密。可替选地,在另一个实施例中,存储器 控制器110的密钥加密单元130可以被配置成对密钥进行加密。此外, 每个密钥可被独立地并且与经加密并存储在每个存储设备上的数据分 开地加密。可以使用主秘密120和特定于对应的存储设备的第二值来 加密用于每个存储设备的密钥。例如,在一个实施例中,第二值可以 是存储设备的序列号。在另一个实施例中,第二值可以是存储在存储 设备的头部中的标识(ID)或ID的一部分。在其他实施例中,第二 值可以基于给定存储设备固有的其他信息。在其他实施例中,可以使 用特定于多个设备的值对密钥进行加密。此外,在某些实施例中,可 以只使用主秘密120对密钥进行加密。
还要注意,在另一个实施例中,两个或更多个存储设备可以使用 相同密钥,以及密钥加密单元130可以加密该密钥,并且将加密的密 钥传递给使用该密钥的存储设备。可替选地,在又一个实施例中,主 秘密120可以是用来加密每个存储设备150A-N上的数据的密钥。在 该实施例中,每个存储设备150A-N可以存储份额135和经加密的数 据170以及头部160中的任何其他特定于设备的数据。为了解密数据, 可以使用足够数量的存储设备150A-N的份额来重构主秘密120,然后 可以使用主秘密120来解密经加密的密钥155A-N,然后可以使用密钥 来解密经加密的数据170。
在一个实施例中,可以使用散列函数作为加密处理的一部分。可 以利用给定存储设备150的序列号对共享的主秘密120进行哈希以生 成中间值。然后,可以通过中间值来加密用于加密给定存储设备150 上的数据的原始密钥的值。该加密阶段的输出可以是存储在给定存储 设备150上的经加密的密钥155。在各个实施例中,可以使用任何类 型的散列函数(例如,MD5,SHA-1)。在其他实施例中,可以使用 其他加密技术来使用主秘密120和特定于设备的值,生成经加密的密 钥155。
在一个实施例中,可以在存储系统100的配置和安装期间执行共 享的主秘密120、份额135A-N和经加密的密钥155A-N的生成。另外, 可以周期性地反复生成这些值,以便为存储系统100提供更好的安全 性。例如,在一个实施例中,秘密生成单元115可以每天生成新的主 秘密120。然后,单元115可以从新的主秘密120生成新的份额135A-N, 并且将这些新的份额135A-N分发到存储设备150A-N。此外,单元130 可以从新的主秘密120生成经加密的密钥155A-N,并且将这些经加密 的密钥155A-N分发到它们的对应的存储设备150A-N。
在其他实施例中,可以使用其他时间表来更新共享的秘密120、 份额135A-N和经加密的密钥155A-N。此外,在其他实施例中,在秘 密和密钥的生成期间使用的步骤可能不同,以及可以在秘密共享方案 的更新中包含其他步骤。例如,在另一个实施例中,取代只是重新加 密原始密钥以产生新的经加密的密钥155,每个存储设备150上的经 加密的数据可以被解密,并且利用新密钥重新加密。此外,在又一个 实施例中,用于加密存储在存储设备150A-N中的每个存储设备上的 数据的原始密钥可以由密钥生成单元130生成,而不是由每个存储设 备生成。
在图1中扩展存储设备150N以示出其单独的数据组件。在一个 实施例中,存储设备150N可包括序列号165N、份额135N、经加密 的密钥155N和经加密的数据170N。序列号165N、份额135N和经加 密的密钥155N可以是头部160N的一部分。可替选地,在另一个实施 例中,经加密的密钥155N可以存储在位于最终用户难以访问的区域 中的存储设备150N上。在此实施例中,加密的密钥155N只能经由解 锁命令来访问。头部160N也可以包括图1中未示出的其他信息。值 得注意的是,在其他实施例中,可以以不同的方式格式化存储设备 150N。另外,存储设备150N可包括用于执行加密的逻辑(未示出)。
如图1中所示的存储设备150N的格式是存储在非易失性存储器 (例如,固态存储器、盘驱动器、或任何其他合适的存储设备)中的 数据的格式。虽然在图1中未示出,但是存储设备150N也可以包括 易失性存储器,用于存储可以用来执行读和写的已解密的密钥。一般 而言,存储设备150N可以在读取数据并将数据写入到存储设备150N 期间使用已解密的密钥。当存储设备150N被通电时,可以有初始化 处理以使存储设备150N进入运行的状态。此运行的状态可以允许经 加密的数据170N被解密,以及还允许新的数据被加密并被写入到存 储设备150N。在通电时,存储设备150N可以保留经加密的密钥155N, 该经加密的密钥155N是不可使用的,直到它被解密以重新创建用于 加密存储在设备150N上的数据(经加密的数据170N)的原始密钥为 止。将参考图2更详细地描述此处理。
份额135N可以由份额生成单元125生成。份额135N的生成可 以独立地并与实际数据(经加密的数据170N)的加密分开地执行。换 言之,在份额135N的生成中不使用存储在存储设备150N上的用户数 据。在一个实施例中,份额135N可以是对多项式的输入和对于该特 定输入的多项式的结果。在某些实施例中,份额135N也可以包括额 外的信息。例如,在一个实施例中,份额135N可包括'k'的值,该值 指示用来重构共享的秘密120所需的份额的数量。
在一个实施例中,存储在存储设备上的数据可以利用存储设备所 特有的密钥来加密。存储设备150N的经加密的数据由经加密的数据 170N来表示。为了实现秘密共享方案,可以将密钥和特定于存储设备 的其他值一起从每个存储设备150传递到密钥加密单元130。例如, 在一个实施例中,存储器控制器110可以从每个存储设备150接收密 钥和序列号165N。密钥加密单元130可以利用密钥、序列号165N和 主秘密120来生成用于特定存储设备150的经加密的密钥155。在另 一个实施例中,每个存储设备可以被配置成本地加密其相应的密钥, 因此在此实施例中,将主秘密120与序列号165N相组合的结果可以 被传输到每个存储设备。对密钥进行加密的位置和方法的其他变型也 是可以的并且可被想到。
现在参考图2,示出了存储系统200的另一个实施例的框图。存 储系统200包括存储器控制器205,以及用于实现存储器控制器205 中示出的单元的实际逻辑可以取决于实施例而不同。在各个实施例中, 可使用硬件、软件或其组合来实现存储器控制器205。例如,在一个 实施例中,单元210和220可以表示由存储器控制器205的一个或多 个处理器(未示出)执行的软件。此外,在其他实施例中,存储器控 制器205中示出的逻辑可以位于架子240和245、或存储设备250A-N 内。
存储器控制器205可以耦合到包括存储设备250A-N的架子240 和245。在图2中存储设备250N被扩展,以示出头部255N和经加密 的数据275N。头部255N可包括序列号260N、份额265N和经加密的 密钥270N。存储器控制器205也可以耦合到随机存取存储器(RAM) 230。
存储器控制器205可包括主秘密重构单元210。单元210可以被 配置成从存储设备250A-N接收份额。只要有足够的存储设备存在并 可被访问,单元210就可以从自这些存储设备中获得的份额重构主秘 密215。在从足够数量的份额重构了主秘密215之后,密钥解密单元 220可以访问并使用用于解密经加密的密钥的主秘密215。重构主秘密 215并解密经加密的密钥270的这些操作可以在存储系统200启动时 单次执行。在经加密的密钥270被解密之后,它们可以存储在易失性 存储器(RAM 230)中,并多次用于对存储设备250A-N的访问。值 得注意的是,这是存储系统200的有利的特征,该特征允许主秘密215 被单次重构并且经加密的密钥270被单次解密,然后被多次重复使用。
密钥解密单元220可以被配置成解密存储设备250A-N的经加密 的密钥。单元220可以从存储设备250A-N中的每个存储设备接收经 加密的密钥和序列号。单元220可以使用来自特定存储设备的主秘密 215和序列号,以反转用于对密钥进行加密的加密处理。密钥225是 可以被用来解密存储在存储设备250A-N上的经加密的数据275的经 解密的密钥的代表。每个存储设备250A-N可以具有用于对存储在单 个设备上的数据进行加密的单独的密钥。
取决于实施例,密钥225可以存储在各种位置。虽然密钥225被 示出为存储在存储器控制器205中,但是在另一个实施例中,密钥225 可以存储在RAM 230中。另外,虽然RAM 230被示出为与存储器控 制器205分开的单元,但是在另一个实施例中,RAM 230可以被包括 在存储器控制器205内。
RAM 230可以是任何类型的易失性存储器,以便当RAM 230断 电时,密钥将不会被保存。这帮助在密钥被解密之后防止未经授权的 用户访问密钥。每个存储设备250A-N可以从RAM 230中检索对应的 密钥,以及使用此密钥在从存储设备中读和写期间对数据进行加密和 解密。可替选地,每个存储设备250A-N可包括易失性存储器的一部 分,以及密钥可以存储在对应的存储设备上的此易失性存储器中。用 于存储经解密的密钥的位置的其他可能性也是可以的并且可被想到。 在一个实施例中,密钥解密处理可以完全地在每个存储设备250A-N 上发生。在此实施例中,存储器控制器205可以提供用于对每个设备 的经加密的密钥270进行解密的密钥。
在各个实施例中,存储设备250A-N中的一个或多个可能会在整 体存储系统200的操作期间发生故障。响应于这样的故障,存储器控 制器205可以被配置成为替换发生故障的存储设备的新的存储设备生 成新份额。作为生成新份额的处理的一部分,存储器控制器205可以 收集用来恢复主秘密的足够的份额。例如,在一个实施例中,当从多 项式导出主秘密215时,可以使用所需数量的份额来求解多项式的所 有系数。然后,可以在不同的点评估多项式,以便为新的存储设备生 成新份额。对于其他类型的秘密共享方案,可以使用合适的处理来为 替换发生故障的存储设备的新的存储设备生成新份额。在另一个实施 例中,存储器控制器205可以被配置成每当成员改变时,诸如当现有 的存储设备发生故障时或当向系统中添加新的存储设备时,都生成新 的主秘密。然后,可以使用新的主秘密来刷新所有存储设备上的经加 密的密钥和份额。
在其他实施例中,存储器控制器205也可以包括用于执行其他任 务的许多其他单元和其他逻辑。例如,存储器控制器205也可以包括 在图2中未示出的其他逻辑,诸如图1的存储器控制器110中示出的 逻辑。
现在转向图3,示出了分布式系统的一个实施例的框图。系统300 包括两个份额服务器305和310,当少量设备不足以重构主秘密时, 这两个份额服务器305和310可被各种存储器控制器用来促进对该少 量存储设备的访问。在其他实施例中,其他系统可以具有其他数量的 本地或远程份额服务器。值得注意的是,服务器305和310是可以被 配置成存储各种数量的份额的任何数量和类型的网络设备的代表。
如图3中所示,系统300包括远程份额服务器305和本地份额服 务器310。存储器控制器315可以经由网络320耦合到远程份额服务 器305,而存储器控制器315也可以耦合到本地份额服务器310。网络 320可以是任何类型的网络,包括无线连接、直接局域网(LAN)连 接、诸如因特网之类的广域网(WAN)连接、路由器、存储区域网络、 以太网及其他。在一个实施例中,存储器控制器315可以是服务器或 计算设备的一部分,而存储器控制器315可包括硬件(例如,电路、 专用逻辑、可编程逻辑、微代码)、软件(例如,可执行程序指令), 或其组合。
存储器控制器315可以耦合到存储设备325A-N,存储设备 325A-N是任何数量和类型的存储设备(例如,基于闪存的存储器、固 态驱动器(SSD)、盘)的代表。存储在存储设备325A-N中的每个 存储设备上的数据可以利用特定于设备的密钥来加密,然后可以如上 所述地使用主密钥和秘密共享方案来加密每个特定于设备的密钥。结 果,只有在有足够的份额可用来重构共享的(主)秘密的情况下,才 可以解密存储在存储设备325A-N中的任何一个存储设备上的数据。 在系统300所示出的实施例中,远程份额服务器305和本地份额服务 器310可以分别具有等于(N/2)+2的份额数量。对于此示例,重构 秘密所需的份额的数量可以假定为(N/2)+3。因此,如果存储器控 制器315只连接到单个存储设备325,但是可以访问任一份额服务器, 那么存储器控制器315可能能够访问单个存储设备325上的数据。
在其他实施例中,存储在每个份额服务器上的份额的数量可以不 同。此外,重构共享的秘密所需的份额的数量也在不同实施例之间变 化。在其他实施例中,系统300可以以各种不同的方式来组织,以便 如果存储器控制器315可以访问一个份额服务器,那么取决于实施例, 存储器控制器315可能需要来自不同阈值数量的存储设备的份额。例 如,在另一个实施例中,重构共享的秘密所需的份额的数量可以是N/2。 每个份额服务器可以包括(N/2)-3个份额,以便存储器控制器315 可能需要访问三个单独的存储设备及其份额才能重构共享的秘密。在 其他实施例中,重构秘密所需的份额数量和每个份额服务器的份额的 数量的其他变型也是可以的。
图3所示出的布置的优点是,存储器控制器315可能也能够通过 连接到任一份额服务器来访问单个存储设备325上的数据。例如,如 果存储器控制器315只耦合到单个存储设备325,或者如果只有一个 存储设备325可被访问或可运行,那么存储器控制器315将仍能够利 用系统300的布置来访问该单个存储设备325上的数据。
值得注意的是,在其他实施例中,存储设备325A-N可以按照每 个设备存储一个以上的份额。存储器控制器315可以按照每个存储设 备生成多个份额,然后每个存储设备325A-N可以存储一个或多个份 额。此方案也可以适用于图1和图2所示出的存储器控制器和存储设 备。可以相应地调整重构主秘密所需的份额的数量,以便重构主密钥 所需的份额的最小数量大于存储在位于单个物理位置处的任何存储设 备组上的份额的数量。另外,重构主密钥所需的份额的数量也可以大 于存储在可以在单个装运中一起装运的任何存储设备组中的份额的数 量。以此方式,万一特定设备组(例如,架子)在传送中丢失,将不 存在足够数量的份额来恢复主密钥并访问丢失的设备组上的数据。
现在参考图4,示出了存储设备的分布式系统400的一个实施例 的框图。系统400可以实现用于一组分布式存储设备的秘密共享方案。 换言之,使用秘密共享方案的存储设备不必位于单个位置。图4中所 描述的方案的类型与前面参考图1所描述的方案的类型相同。然而, 在图4中,存储设备跨网络而连接,而在图1中,存储设备位于单个 位置。
存储器控制器415可以直接耦合到存储设备405C,存储设备 405C是任意数量的存储设备的代表。存储设备405A-N可以位于多个 位置,以及存储器控制器415可以经由网络410耦合到存储设备 405A-N。网络410是任意类型和数量的网络的代表。
在一个实施例中,存储设备405A-N可以使用类似于参考图1所 描述的方案的秘密共享方案,以防止对存储在存储设备405A-N上的 数据的未经授权的访问。因此,存储器控制器415可能不能读取存储 设备405A-N中的任何一个存储设备上的数据,除非至少可访问的存 储设备405A-N的数量在阈值以上。实际上,多个存储设备405A-N可 以通过秘密共享方案来统一。任何单个存储设备405本身可能没有任 何可读取的数据,但是,如果有足够数量的存储设备405A-N可用于 存储器控制器415,那么存储器控制器415可以访问任何可用的存储 设备上的数据,而无需密码或其他安全设备。此外,值得注意的是, 一旦主秘密被重构并且单个密钥被解密,就可以执行对存储设备 405A-N的多次访问,而无需在每次访问之前重构主秘密。这与要求每 当对存储设备405A-N进行访问时都要求重构主秘密并解密密钥的其 他方案不同。
现在转向图5,示出了用于使一组存储设备统一的方法的一个实 施例。为了讨论的目的,按先后顺序示出了此实施例中的步骤。应该 注意的是,在下面所描述的方法的各个实施例中,所描述的要素中的 一个或多个要素可以同时地执行,以与所示出的顺序不同的顺序来执 行,或者可以完全省略。也可以根据需要来执行其他附加的要素。
在一个实施例中,方法500可以开始于存储设备组中的每个存储 设备生成密钥(块505)。在一个实施例中,每个存储设备可以与其 他存储设备独立地生成密钥,以及密钥可以是随机生成的数字。此外, 在一个实施例中,每个存储设备可以执行密钥生成,而无需来自存储 器控制器或中央管理单元的任何输入或控制。当向存储设备写入数据 时,密钥可以被每个存储设备用来加密数据。每个存储设备可以包括 被配置成使用密钥来加密数据的硬件。当从存储设备中读取数据时, 密钥也可以被用来解密数据。在另一个实施例中,密钥可以在别处(例 如,存储器控制器)生成,并被传输到每个存储设备。
接下来,存储器控制器可以从每个存储设备中检索密钥和其他值 (块510)。其他值可以是特定存储设备所特有的任何值。例如,在 一个实施例中,其他值可以是存储设备的序列号。存储器控制器可以 是被配置成管理存储设备组和/或控制对存储设备组的访问的任何类 型的集中式管理单元。在各个实施例中,存储器控制器可以包括硬件 和/或软件。例如,在一个实施例中,存储器控制器可以是在计算设备 的一个或多个处理器上执行的软件。
存储器控制器可以生成用于整个组的单个主秘密和用于每个存 储设备的份额(块515)。值得注意的是,在某些实施例中,在从每 个存储设备检索随机密钥和其他值之前,存储器控制器可以生成用于 每个存储设备的主秘密和份额。存储器控制器可以使用各种秘密共享 方案中的任何一种来生成主秘密和份额。例如,在一个实施例中,存 储器控制器可以使用沙米尔的秘密共享方案来生成主秘密和单个份额。
对于每个存储设备,存储器控制器可以使用主秘密和其他值来加 密存储设备的密钥(块520)。在一个实施例中,第二值可以是存储 设备的序列号。在一个实施例中,可以将主秘密和序列号散列在一起, 然后可以使用该值来加密存储设备的密钥。在其他实施例中,可以使 用其他加密方案来基于主秘密和特定于设备的值对密钥进行加密。然 后,存储器控制器可以将对应的经加密的密钥和份额传递到存储设备 组中的每个存储设备(块525)。份额和经加密的密钥可以存储在存 储设备上(块530)。在一个实施例中,份额可以存储在存储设备的 头部中,而经加密的密钥可以存储在最终用户难以访问的区域中的存 储设备上。在此实施例中,经加密的密钥只能经由解锁命令来访问。 在块530之后,方法500可以结束。
在存储设备中的每个存储设备接收到份额和经加密的密钥并将 它们存储到设备上之后,存储设备实际上已经统一。如果其他存储设 备不可访问,则任何单个存储设备上的数据都不可读。只有在有阈值 数量的存储设备可用的情况下,存储设备中的任何一个存储设备上的 数据才能够被解密和被读取。
现在转向图6,示出了用于使用秘密共享方案来解密存储系统中 的数据的方法的一个实施例。为了讨论的目的,按先后顺序示出了此 实施例中的步骤。应该指出的是,在下面所描述的方法的各个实施例 中,所描述的要素中的一个或多个要素可以同时地执行,以与所示出 的顺序不同的顺序来执行,或者可以完全省略。也可以根据需要来执 行其他附加的要素。
方法600可以开始于从存储系统的至少阈值数量的存储设备中检 索份额(块605)。可以通过生成主秘密的方式确定阈值的值。例如, 在一个实施例中,主秘密可以基于多项式,以及阈值可以等于比多项 式的次数大1。在一个实施例中,可以选择阈值,以使得它大于存储 设备的数量的一半。接下来,可以从检索到的份额重构主秘密(块610)。 在一个实施例中,可以使用多项式内插法来重构主秘密。更具体而言, 作为用于重构主秘密的内插处理的一部分,可以从份额计算拉格朗日 基本多项式。
在块610之后,可以使用主秘密来解密存储系统的存储设备的经 加密的密钥(块615)。对于给定存储设备,解密经加密的密钥也可 以要求特定于给定存储设备的值。在一个实施例中,该特定于设备的 值可以是给定存储设备的序列号。在其他实施例中,特定于设备的值 可以是给定存储设备的不同的属性(或者以别的方式与存储设备相关 联的值),诸如存储在存储设备头部中的一些数据。在又一个实施例 中,特定于设备的值可以基于诸如设备ID的值、存储在设备的头部 中的一个或多个值、和任何其他合适的值的组合。
在块615之后,经解密的密钥可以用于解密存储系统的存储设备 上的数据(块620)。经解密的密钥也可以用于加密向存储设备写入 的数据。经解密的密钥可以存储在易失性存储器中,以便当系统断电 时,经解密的密钥可以丢失。在重新启动时,系统可以再次重复方法 600,以解密存储系统中的存储设备的经加密的密钥。
现在参考图7,示出了经加密的密钥和份额的生成的一个实施例 的框图。框图示出了用于整体存储系统(未示出)的每个存储设备(未 示出)的经加密的密钥和份额的生成。特定于设备的密钥705是用于 加密存储在特定存储设备上的数据的密钥的代表。特定于设备的值 710是特定存储设备所特有的任何值或值的组合的代表。主秘密715 是秘密共享方案中的共享的秘密的代表。
特定于设备的值710和主秘密715可以被输入到散列阶段720, 以及可以从这两个输入生成散列值。散列阶段720可以使用任何类型 的散列函数将值710和主秘密715散列在一起。来自散列阶段720的 输出可以作为输入而耦合到加密阶段725。密钥705也可以作为输入 而耦合到加密阶段725,以及加密阶段725可以使用散列阶段720的 输出来加密原始密钥705。加密阶段725的输出可以是经加密的密钥 735。加密阶段725可以使用任何合适类型的加密来生成经加密的密钥 735。
份额生成器730可以被配置成从主秘密715生成份额740。在某 些实施例中,份额生成器730可以被配置成生成用于单个存储设备的 多个份额740。在一个实施例中,份额生成器730可以生成多项式上 的点,以及该点可以是份额740。在其他实施例中,可以使用其他技 术来生成份额740。图7中所示出的图示出了可以对单个存储设备执 行的操作。对于具有多个存储设备的存储系统,可以对于系统中的每 个存储设备重复这些操作。可以为每个存储设备生成经加密的密钥 735和份额740,然后可以将经加密的密钥735和份额740两者都存储 在它们的对应的存储设备上。单独的密钥705和单独的特定于设备的 值710可以用于每个单独的存储设备,但是相同的主秘密715可以用 于系统中的全部存储设备。
可以理解,图7仅仅示出了用于存储设备的份额和经加密的密钥 的生成的一个可能的实施例。在其他实施例中,可以使用用于生成份 额和经加密的密钥的其他合适的机制或方法。
值得注意的是,上述实施例可以包括软件。在这样的实施例中, 用来实现方法和/或机制的程序指令可以利用非暂态计算机可读介质 传输或存储。有很多被配置为存储程序指令的介质类型可用,并且它 们包括硬盘、软盘、CD-ROM、DVD、闪速存储器、可编程ROM (PROM)、随机存取存储器(RAM)和各种其他形式的易失性或非易失 性存储器。
在各个实施例中,此处所描述的方法和机制的一个或多个部分可 以构成云计算环境的一部分。在这样的实施例中,可以根据一个或多 个不同的模型通过因特网提供资源作为服务。这样的模型可包括基础 设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 在IaaS中,将计算机基础设施作为服务来提供。在这样的情况下,计 算设备一般由服务提供商拥有并运营。在PaaS模型中,开发人员用 来开发软件解决方案的软件工具和底层设备可被提供为服务,并由服 务提供商托管。SaaS通常包括服务提供商按需来授权软件作为服务。 服务提供商可以托管软件,或者可以将软件部署给消费者达给定的时 间段。上面的模型的很多组合都是可以的并且可被想到。
虽然已经非常详细地描述了上面的实施例,但是对于那些本领域 的技术人员来说,一旦完全理解了上面的公开内容,很多变型和修改 方案将变得明显。下面的权利要求应被解释为涵盖所有这样的变型和 修改方案。

生成加密密钥的多驱动器协作.pdf_第1页
第1页 / 共22页
生成加密密钥的多驱动器协作.pdf_第2页
第2页 / 共22页
生成加密密钥的多驱动器协作.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《生成加密密钥的多驱动器协作.pdf》由会员分享,可在线阅读,更多相关《生成加密密钥的多驱动器协作.pdf(22页珍藏版)》请在专利查询网上搜索。

一种用于使用秘密共享方案来保护一组存储设备的系统、方法和计算机可读存储介质。利用密钥来加密每个存储设备的数据,以及基于共享的秘密和特定于设备的值来加密密钥。每个存储设备存储份额及其经加密的密钥,如果有阈值以上数量的存储设备可用,则可以从份额重构共享的秘密,并且将其用于解密经加密的密钥。否则,如果有小于阈值数量的存储设备可访问,则无法重构秘密,并且存储设备上的数据将不可读。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1