加密系统级数据结构的制作方法

文档序号:13532578阅读:298来源:国知局
加密系统级数据结构的制作方法

本公开涉及用于加密系统级数据结构的方法和系统。



背景技术:



技术实现要素:

本公开涉及用于加密系统级数据结构的方法和系统。在一些实施方案中,加密系统级数据结构可通过限制二次数据泄漏来提高数据安全性。在一些情况下,本公开可描述用于有效载荷标头加密进而使系统功耗和电子部件所使用的面积降低的系统和方法。

描述了用于加密系统级数据结构的存储系统。在一个实施方案中,存储系统可包括存储驱动器和存储驱动器的控制器。在一些实施方案中,控制器可被配置为识别被分配用于存储在存储驱动器上的用户数据、加密用户数据、识别生成的与用户数据相关的系统数据结构,以及加密系统数据结构。在一些情况下,数据结构可包括关于用户数据的元数据、系统数据和数据封装中的至少一者。在一些实施方案中,可利用在存储驱动器上编程的一个或多个加密密钥来加密用户数据和数据结构。

在一个实施方案中,控制器可被配置为生成数据包以封装用户数据。数据包可包括多个区域,其可包括有效载荷区域和/或标头区域。在一些实施方案中,控制器可被配置为将加密的用户数据放入数据包的有效载荷区域中。

在一个实施方案中,控制器可被配置为识别与用户数据和数据包中的至少一者相关联的标头数据。在一些实施方案中,控制器可被配置为利用用于加密用户数据的加密密钥来加密标头数据。另选地,控制器可使用与用于加密用户数据的加密密钥不同的加密密钥来加密标头数据。在一些实施方案中,控制器可被配置为将加密的标头数据放入数据包的标头区域中。

在一些实施方案中,控制器可被配置为生成与用户数据相关的元数据。在一些情况下,元数据可包括描述用户数据的数据。在一个实施方案中,可由存储驱动器和/或存储驱动器的用户生成元数据。在一些实施方案中,控制器可被配置为利用用于加密用户数据的加密密钥来加密元数据。另选地,控制器可使用与用于加密用户数据的加密密钥不同的加密密钥来加密元数据。

在一些实施方案中,控制器可被配置为生成与用户数据相关的系统数据。在一些情况下,系统数据可包括使存储驱动器能够执行涉及用户数据的操作的数据。在一个配置中,系统数据可由存储驱动器生成。在一些实施方案中,控制器可被配置为利用用于加密用户数据的加密密钥来加密系统数据。另选地,控制器可使用与用于加密用户数据的加密密钥不同的加密密钥来加密系统数据。

还描述了用于加密系统级数据结构的装置。在一个实施方案中,该装置可包括处理器、与处理器电子通信的存储器以及存储在存储器中的指令,该指令可由处理器执行以进行以下步骤:生成数据包以封装用户数据,将加密的用户数据放入数据包的有效载荷区域中,识别与用户数据和数据包中的至少一者相关联的标头数据,利用用于加密用户数据的加密密钥来加密标头数据,以及将加密的标头数据放入数据包的标头区域中。

还描述了用于加密系统级数据结构的方法。在一个实施方案中,该方法可包括:生成数据包以封装用户数据,将加密的用户数据放入数据包的有效载荷区域中,识别与用户数据和数据包中的至少一者相关联的标头数据,利用用于加密用户数据的加密密钥来加密标头数据,以及将加密的标头数据放入数据包的标头区域中。

前文已经相当广泛地概述了根据本公开的示例的特征结构和技术优点,使得可以更好地理解以下具体实施方式。下面将描述其他特征结构和优点。本发明所公开的概念和具体示例可以容易地用作修改或设计用于实施本公开的相同目的的其他结构的基础。此类等同的结构仍然属于所附权利要求的范围。当结合附图考虑时,从下面的具体实施方式可以更好地理解本文所公开的概念的特征(包括其组织和操作方法),以及相关优点。每个附图仅用于例示和描述的目的,并不作为对权利要求限制的定义。

附图说明

参考以下附图可以进一步理解本公开的性质和优点。在附图中,类似的部件或特征结构可以具有相同的参考标号。此外,同一类型的各种部件可以通过在第一参考标号后面加上短划线和可以区分相似部件的第二标号来进行区分。然而,针对各种部件讨论的特征结构,包括具有短划线和第二参考标号的部件,适用于其他类似部件。如果在说明书中仅使用第一参考标号,则该描述适用于具有相同的第一参考标号的任何一个类似部件,而与第二参考标号无关。

图1是根据各种实施方案的系统示例的框图;

图2示出了根据本公开的各个方面的设备的框图;

图3示出了根据本公开的各个方面的一个或多个模块的框图;

图4示出了根据本公开的各个方面的系统的示意图;

图5示出了根据本公开的各个方面的环境的一个实施方案;

图6是示出根据本公开的各个方面的方法示例的流程图;并且

图7是示出根据本公开的各个方面的方法示例的流程图。

具体实施方式

以下通常涉及加密系统级数据结构以防止数据泄漏并改善功耗和电子部件面积使用率。

在一些实施方案中,可以基于数据包的分层协议为基础来存储数据。基于数据包的分层协议可包括事务层、数据链路层和物理层。事务层可处理数据的封包和解包。数据链路层可对这些事务层数据包进行排序,并确保数据包被可靠地传送到端点或存储位置。物理层可包括用于在传输之前处理数据包的逻辑门,并且包括用于数据包的物理通信的差分驱动器和接收器。数据包可包括标头和数据有效载荷。事务层可基于从应用软件层接收的数据来组装该部分。可选的端到端循环冗余校验(ecrc)字段可以附加到数据包以检查标头部分和数据有效载荷部分内的错误。可以附加序列标识符,并用本地crc(lcrc)字段来保护该序列标识符。可将所得数据包转发到物理层,该物理层将各1字节的开始和结束成帧字符分别连接到数据包的前端和末端。然后可将数据包编码并差分地传输到永久存储器。

数据包的标头可包括中等特定标头字段、标头版本字段、保留空间字段、目的地端点标识符、源端点标识符、消息标签、数据包序列号、消息字段的结尾、消息字段的开始的任何组合。在一些实施方案中,两个或更多个数据包可组合成消息。类似于数据包,消息可包括用于用户数据的有效载荷区域和标头。消息的标头可包括保留空间字段、指示消息是响应还是请求的响应或请求字段、消息类型字段、命令时隙标识符字段和完整性校验字段的任何组合。

当前解决方案的问题涉及通过系统数据、元数据和提供有关用户数据的信息的任何数据的数据泄漏。作为一个示例,一些数据可以被压缩。通过了解压缩比,可以推断出关于压缩数据的信息。当前的解决方案可加密用户数据,将加密的数据放入数据包中,然后加密所加密数据的数据包,从而导致至少部分数据被加密两次,进而导致为了读取用户数据将数据解密两次。

恶意软件可能会在存储系统上执行。例如,恶意软件可能会感染驱动器固件和/或感染存储在存储驱动器上的应用程序。恶意软件可能会访问标头数据。标头中的数据可显示关于加密的用户数据的信息,诸如数据类型、数据大小、与用户数据相关联的压缩比、数据是以相对高的压缩比还是以相对低的压缩比被压缩,或它们的任何组合。在本发明的一个实施方案中,系统和方法提供了导致功率降低的加密解决方案。

例如,存储系统可使用更多功率来加密整个数据包,而不是在将它们添加到数据包之前加密标头数据和用户数据。类似地,在将标头和用户数据添加到数据包之前加密标头和用户数据可能需要与用于执行整个数据包的加密所需加密引擎相比更少的加密引擎和/或不那么大的加密引擎。加密引擎可包括处理器、存储控制器、专用集成电路(asic)、现场可编程门阵列(fpga)和片上系统(soc)的任何组合。因此,存储系统的加密引擎的减少可包括存储系统上的处理器、控制器、asic、fpga、soc或它们的任何组合的大小和/或数量减少。作为一个示例,被配置为加密整个数据包的常规系统可使用至少20个加密引擎来加密整个数据包,而目前公开的系统和方法可采用10个或更少的加密引擎来分别加密标头和用户数据,从而导致降低的功耗和芯片面积消耗。

在一个实施方案中,用户数据可被添加到数据包和/或包括标头的消息。在一些实施方案中,可在第一加密操作中加密用户数据,并且可在独立且不同于第一加密操作的第二加密操作中加密标头的数据。在一些配置中,加密的用户数据可被添加到数据包的有效载荷区域,并且加密的标头数据可被添加到数据包的标头或消息的标头。在一些实施方案中,一个加密引擎可用于所有数据信道。另选地,每个数据信道可包括专用于加密与存储驱动器的特定数据信道相关联的用户数据和/或标头的加密引擎。

系统数据结构可包括系统数据和元数据的任何组合。可在存储系统运行时动态地创建和使用系统数据和元数据。在某些情况下,可将系统数据结构的增量快照或完整副本存储到非易失性存储介质。例如,日志文件可以每小时保存一次,日志文件达到一定大小后保存日志,并且错误率和/或有关错误的信息可以定期保存和/或在发生错误时保存。通过使用存储系统加密密钥来加密所有数据,可以防止二次泄漏。

系统数据和元数据可包括关于用户数据存储在存储系统中的位置的信息、逻辑块地址(lba)信息、映射信息、用于加密用户数据的加密类型、被写入的位置的频率、写入数据的时间、写入数据的顺序、数据的大小、用户数据中是否存在压缩、用户数据的压缩比率或它们的任何组合。

在一个实施方案中,系统数据可包括存储系统生成的与存储系统的操作相关的数据。在一些实施方案中,系统数据可描述关于存储系统的数据,而元数据描述关于存储系统的用户的数据。在一些情况下,系统数据可包括存储系统用于描述和/或执行一个或多个操作的数据。例如,系统数据可包括内部数据帧、诊断信息、数据泄漏日志、数据计数器、存储器/存储装置的状态、可用存储空间或它们的任何组合。在一些实施方案中,系统数据可描述驱动器行为,诸如列出由存储设备执行的操作的日志文件和/或被调度以由存储设备执行的操作。系统数据可包括由计算系统生成的任何数据。在一些情况下,系统数据可包括由于用户数据被创建、写入、读取、修改等而生成的数据。在一些配置中,系统数据可包括由存储系统生成并被存储系统用于执行由存储系统提供的一个或多个功能的数据。在一些实施方案中,系统数据可从存储系统的用户隐藏,并且仅由存储系统访问,而由存储系统和/或存储系统的用户生成的元数据可对于存储系统和存储系统的用户均为可见的。

在一些实施方案中,元数据可描述关于存储系统的用户的数据。作为一个示例,元数据可包括关于存储系统的用户的用户数据的文件名、文件大小、读取/写入/修改属性以及其他类似属性,而系统数据可描述文件在物理上位于存储系统上的位置、从存储系统的主机的角度看的数据的虚拟位置与物理存储用户数据的物理位置之间的映射、用户数据的年龄值、用户数据的访问频率或它们的任何组合。例如,网页可包括指定页面以哪种语言写入的元数据,用于创建页面的工具,以及在哪里可以找到关于该主题的更多信息。元数据还有助于组织电子资源,提供数字识别,并有助于支持资源的归档和保存。元数据通过允许按相关标准找到诸如通信、处理、存储器和/或存储资源的资源、识别资源、将相似的资源集中在一起、区分不同的资源以及提供资源位置信息来辅助资源发现。

元数据可被定义为提供关于用户数据的一个或多个方面的信息的数据。元数据可用于总结关于数据的基本信息,以简化跟踪和处理特定数据。一些示例包括创建数据的手段、数据的目的、创建的时间和日期、数据的创建者或作者、在设备和/或计算机网络上创建数据的位置、与数据相关地使用的标准以及文件大小。作为示例,数字图像可包括描述图像多大、色彩深度、图像分辨率、创建图像的时间的元数据以及其他相关数据。文本文档的元数据可包含有关文档有多长、字符数、字数、页数、作者是谁、何时写入文档以及文档的简短摘要的信息。网页中的元数据可包含页面内容的描述以及与内容有关的关键词。网页可包括元标签形式的元数据。元标签中的描述和关键词可用于描述网页的内容。元元素还指定页面描述、关键词、文档的作者以及最后一次修改文档的时间。与消息内容相反,有关电话通话的时间、来源和目的地的信息,电子消息,即时消息和其他通信模式可以是另一种形式的元数据。元数据可与视频一起使用,其中关于视频内容的信息诸如会话的抄本和场景的文本描述。元数据可与数据库和应用服务器一起用于数据虚拟化服务器或企业基础架构组件。元数据可内部存储在与数据(嵌入式元数据)相同的文件或结构中,也可外部存储在与所描述的数据不同的文件或字段中。数据储存库可存储从数据分离的元数据,但是可被设计为支持嵌入式元数据方法。元数据可以人可读形式或二进制形式存储。

非易失性存储器驱动器诸如闪存存储驱动器上的数据可被垃圾回收并因此被重写到存储驱动器上的一个或多个位置。因此,存储驱动器上可能存在多个数据副本。与此数据相关联的元数据可使恶意软件能够定位数据的一个或多个副本,包括陈旧数据。作为一个示例,可创建文档并将其存储在存储驱动器的第一位置处。随后,可编辑文档。编辑的文档可存储在第二位置处。同样,可编辑文档,并且该文档的该版本可存储在第三位置处。与该文档相关联的元数据可使恶意软件能够基于由第一位置、第二位置和第三位置处的文档的每个版本的元数据提供的信息来定位文档的每个版本并检测文档上的变化。

在用户数据被加密的存储系统中,关于用户数据的信息可通过用于管理用户数据的数据结构泄露,诸如映射表、数据位置、数据的陈旧副本、压缩数据大小等。本发明的系统和方法可通过确保在将数据提交给永久存储器之前使用驱动器加密密钥来加密可潜在地泄漏该二次信息的系统数据和元数据来防止这种数据泄漏。

本发明的系统和方法通过加密系统数据结构来减少数据泄漏。在一些实施方案中,该系统和方法包括加密有效载荷标头信息。在某些情况下,加密系统数据可导致存储系统的功耗降低和/或用于在存储系统上加密的物理区域减少。即使添加到数据包的数据中的至少一些已被加密,常规系统也可被配置为加密整个数据包。例如,在向数据包添加了意图用于数据包的所有数据之后,常规系统可以对整个数据包进行加密。相反,本发明的系统和方法可被配置为加密用户数据和意图用于数据包的其他数据的至少一部分,然后再将其添加到数据包,同时保持整个数据包未被加密。与在将数据添加到数据包之前加密数据,然后绕过对整个数据包的加密相比,加密整个数据包可能会使用更多的加密芯片空间并消耗更多的系统功率。

在一些实施方案中,用户数据可在存储系统上封包化并以封包化形式存储在存储系统的存储介质上。在一种配置中,数据包可包括标头。在某些情况下,即使数据本身被加密,标头也可能会泄漏关于该数据包中包含的数据的信息。防止访问此标头信息的一种解决方案是加密包含用户数据和标头两者的整个数据包。然而,加密整个数据包比加密数据包的各个部分需要更多的加密带宽。例如,数据包的一部分可包括用户数据,另一部分包括标头数据等,并且加密具有其各部分的全体的整个数据包与加密各个部分并将其添加到数据包相比具有更多的加密带宽。在本公开的一个实施方案中,加密带宽描述了用于加密数据的加密处理器的数量,由给定数量的加密处理器消耗的印刷电路板的芯片空间和/或面积,以及加密处理器所消耗的功率。因此,在一些实施方案中,本发明的系统和方法可选择封包化数据的至少一部分,或被指定添加到数据包的数据,并至少加密该部分。在某些情况下,本发明的系统和方法可使用驱动器专用加密密钥来加密该数据。在一些情况下,本发明的系统和方法的加密带宽可至少部分地基于给定数据包的标头开销量。例如,2048字节数据包中的8字节标头仅使用加密整个数据包所需的加密带宽的4%。

图1是示出可以在其中实现本发明的系统和方法的环境100的一个实施方案的框图。该环境可以包括设备105和存储设备110。存储设备110可以包括硬盘驱动器、固态驱动器和包括硬盘驱动器和固态驱动器两者的混合驱动器的任何组合。在一些实施方案中,本文所述的系统和方法可在单个设备(诸如,设备105)上执行。在一些情况下,本文所述的方法可以在多个存储设备或存储设备网络上执行。设备105的示例包括存储服务器、存储机柜、存储控制器、分布式存储系统中的存储驱动器、云存储系统上的存储驱动器、个人计算设备上的存储设备、服务器上的存储设备,或它们的任何组合。在一些配置中,设备105可包括数据管理模块130。在一个示例中,设备105可以耦合到存储设备110。在一些实施方案中,设备105和存储设备110可以是闪存或固态驱动器的部件。另选地,设备105可以是存储设备110的主机的部件,诸如操作系统、主机硬件系统或它们的任何组合。

在一个实施方案中,设备105可以是具有一个或多个处理器、存储器和/或一个或多个存储设备的计算设备。在一些情况下,设备105可以包括无线存储设备。在一些实施方案中,设备105可以包括用于家庭或办公室环境的云驱动器。在一个实施方案中,设备105可以包括网络设备,诸如交换机、路由器、接入点,或它们的任何组合。在一个示例中,设备105可以可操作地用于接收数据流,存储和/或处理数据,以及/或者从/向一个或多个本地和/或远程计算设备传输数据,或与一个或多个本地和/或远程计算设备结合来传输数据。

设备105可以包括数据库。在一些情况下,数据库可能在设备105的内部。在一些实施方案中,存储设备110可包括数据库。另外或另选地,数据库可以包括到有线和/或无线数据库的连接。另外,如本文进一步详细描述的,可以在设备105的处理器上运行软件和/或固件(例如,存储在存储器中)。在处理器上运行的此类软件和/或固件可以可操作地用于使设备105监视、处理、汇总、呈现和/或发送与本文所述操作相关联的信号。

在一些实施方案中,存储设备110可以经由一个或多个网络连接到设备105。网络的示例包括云网络、局域网(lan)、广域网(wan)、虚拟专用网络(vpn)、个人区域网络、近场通信(nfc)、电信网络、无线网络(例如使用802.11)和蜂窝网络(例如使用3g和/或lte),或它们的任何组合。在一些配置中,网络可以包括因特网和/或内部网。设备105可以经由无线通信链路通过网络接收和/或发送信号。在一些实施方案中,用户可以经由本地计算设备、远程计算设备和/或网络设备来访问设备105的功能。例如,在一些实施方案中,设备105可以包括与用户交互的应用程序。在一些情况下,设备105可以包括与网络设备、远程计算设备和/或本地计算设备的一个或多个功能交互的应用程序。

在一个实施方案中,存储设备110可以在设备105的内部。作为一个示例,设备105可包括与存储设备110的存储介质交接的存储控制器。数据管理模块130可被配置为加密系统级数据结构,以提高数据安全性并提高存储系统效率。在一个实施方案中,系统级数据结构可包括由存储系统生成的系统数据和由存储系统和/或存储系统的用户生成的元数据。

图2示出了根据本公开的各个方面的用于电子通信的装置205的框图200。装置205可以是参考图1描述的设备105的一个或多个方面的示例。装置205可以包括驱动器控制器210、系统缓冲器215、主机接口逻辑220、驱动器介质225、纠错码(ecc)单元245和数据管理模块130-a。这些部件中的每个部件可以直接和/或间接地彼此连通并且/或者与其他部件连通。

可以使用适于在硬件中执行一些或全部可应用功能的一个或多个专用集成电路(asic)来单独或共同地实现装置205的一个或多个部件。另选地,功能可以由一个或多个集成电路上的一个或多个其他处理单元(或芯)执行。在其他示例中,可以使用其他类型的集成电路(诸如,结构化/平台asic、现场可编程门阵列(fpga)和其他定制ic),这些集成电路可以本领域中已知的任何方式进行编程。每个模块的功能也可以全部或部分地用包含在存储器中的、被格式化为由一个或多个通用和/或专用处理器执行的指令来实现。

在一个实施方案中,驱动器控制器210可包括处理器230、缓冲器管理器235、介质控制器240以及一个或多个加密密钥270。驱动器控制器210可经由处理器230,与主机接口逻辑220、装置205与装置205的主机之间的接口结合来处理读取和写入请求。系统缓冲器215可暂时保存用于装置205的内部操作的数据。例如,主机可以向装置205发送数据,以及将数据存储在驱动器介质225上的请求。驱动器介质225可包括一个或多个盘片、闪存、任何其他形式的非易失性存储器或它们的任何组合。驱动器控制器210可以处理该请求并将接收到的数据存储在驱动器介质225中。在一些情况下,存储在驱动器介质225中的一部分数据可被复制到系统缓冲器215,并且处理器230可处理或修改该数据副本并且/或者执行与临时保留在系统缓冲器215中的该数据副本相关的操作。在一些情况下,ecc单元245可对存储在驱动器介质225中的数据和/或从驱动器介质225读取的数据进行纠错。

尽管是示出在驱动器控制器210的外部,但是在一些实施方案中,数据管理模块130-a可以包括位于驱动器控制器210内的软件、固件和/或硬件。例如,数据管理模块130-a可包括处理器230、缓冲器管理器235、介质控制器240和/或一个或多个加密密钥270的至少一部分。在一个示例中,数据管理模块130-a可包括由处理器230、缓冲器管理器235、介质控制器240和/或一个或多个加密密钥270执行的一个或多个指令。数据管理模块130-a可被配置为识别从存储驱动器的主机接收的数据,并且使用与装置205相关联的一个或多个加密密钥(诸如一个或多个加密密钥270)来加密所接收的数据。在一个实施方案中,一个或多个加密密钥270可由装置205的制造商和/或装置205的终端用户编程到驱动器控制器210中。

如图所示,驱动器介质225可包括用户数据250、系统数据结构255和数据包260。在一个实施方案中,数据管理模块130-a可被配置为加密用户数据250并将加密的用户数据250存储在驱动器介质225上。在一些实施方案中,数据管理模块130-a可被配置为加密系统数据结构255并将加密的系统数据结构255存储在驱动器介质225上。在一些实施方案中,数据管理模块130-a可被配置为将封包化的用户数据存储在驱动器介质225上。因此,数据管理模块130-a可被配置为在数据包260中存储用户数据250的加密版本。另外或另选地,数据管理模块130-a可被配置为在数据包260中存储系统数据结构255的加密版本。

在一个实施方案中,加密数据的加密和恢复可由数据管理模块130-a执行。例如,数据管理模块130-a可以解密存储在驱动器介质225中的加密的用户数据,诸如用户数据250。在解密用户数据之后,驱动器控制器210可确定解密的用户数据包括一个或多个错误。因此,ecc单元245可进行一个或多个纠错操作来纠正解密的用户数据中的错误。

图3示出数据管理模块130-b的框图。数据管理模块130-b可包括一个或多个处理器、存储器和/或一个或多个存储设备。数据管理模块130-b可包括数据模块305、加密模块310和数据包模块315。数据管理模块130-b可以是图1和/或图2中的数据管理模块130的一个示例。这些部件中的每个部件可以彼此连通。在一些实施方案中,数据管理模块130-b和/或数据管理模块130-b的模块可与存储驱动器和/或存储驱动器的控制器结合来执行一个或多个操作。

在一个实施方案中,数据模块305可被配置为识别被分配用于存储在存储驱动器上的用户数据。例如,存储驱动器的主机可向存储驱动器提供数据。数据模块305可分析数据以确定数据是否包括用户数据。在一些情况下,数据模块305可分析数据以识别用户数据以及与用户数据相关联的系统数据结构、元数据和/或系统数据。在一些实施方案中,在识别从主机接收到的用户数据时,数据模块305可生成系统数据结构,诸如系统数据和/或元数据。

在一些实施方案中,系统数据结构可包括关于用户数据的元数据、系统数据和数据封装中的至少一者。在一些配置中,数据模块305可被配置为识别生成的与用户数据相关的系统数据结构。系统数据结构可包括系统数据和元数据的任何组合。在一个实施方案中,系统数据可包括由存储系统生成的与涉及用户数据的存储系统的一个或多个操作相关的数据。在一个实施方案中,系统数据可由存储系统生成,而元数据可由存储系统和/或存储系统的用户生成。例如,存储系统可生成与用户数据的主机逻辑块地址(lba)与用户数据存储在存储系统的存储介质上的物理位置之间的映射相关的系统数据。

在一些实施方案中,数据模块305可被配置为生成与用户数据相关的元数据。在一些情况下,元数据可包括描述用户数据的数据。在一些实施方案中,可由存储驱动器和/或存储驱动器的用户生成元数据。例如,第一元数据可包括由存储驱动器生成的数据,第二元数据可包括由存储驱动器的用户生成的数据,并且第三元数据可包括由存储驱动器和存储驱动器的用户生成的数据。

在一些实施方案中,加密模块310可被配置为加密用户数据。另外或另选地,加密模块310可被配置为加密与用户数据相关联的系统数据结构。在一些实施方案中,加密模块310可被配置为利用用于加密用户数据的加密密钥来加密元数据。在某些情况下,加密模块可利用与用于加密用户数据的加密密钥不同的加密密钥来加密元数据。

在一些实施方案中,数据模块305可被配置为生成与用户数据相关的系统数据。在一些情况下,系统数据可包括使存储驱动器能够执行操作而生成的数据。例如,系统数据可包括使存储驱动器能够执行涉及用户数据的操作而生成的数据,所述操作诸如确定用户数据在物理上位于存储驱动器上的位置、从其在存储驱动器上的物理位置读取数据、确定存储驱动器上可存储数据的可用物理位置、将数据写入存储驱动器,或它们的任何组合。在某些情况下,系统数据可由存储驱动器生成。在某些情况下,数据模块305可被配置为仅使存储驱动器能够生成系统数据,同时使存储驱动器和/或存储驱动器的用户能够生成元数据。

在一些实施方案中,加密模块310可被配置为利用用于加密用户数据的加密密钥来加密系统数据。在某些情况下,加密模块可利用与用于加密用户数据的加密密钥不同的加密密钥来加密系统数据。在一些情况下,可利用在存储驱动器上编程的加密密钥来加密用户数据和/或系统数据结构。在一些实施方案中,用户数据和/或系统数据结构可利用由主机提供的加密密钥来加密。例如,在一个实施方案中,加密模块310用于加密用户数据的加密密钥可与用户数据一起发送。

在一些实施方案中,数据包模块315可被配置为生成数据包以封装用户数据。在一些实施方案中,数据包模块315可被配置为将加密的用户数据放入数据包的有效载荷区域中。在一些实施方案中,数据模块305可被配置为识别与用户数据和数据包中的至少一者相关联的标头数据。在一些情况下,系统数据结构可包括与用户数据和/或数据包相关联的标头数据。在一些实施方案中,加密模块310可被配置为利用用于加密用户数据的加密密钥来加密标头数据。在某些情况下,加密模块可利用与用于加密用户数据的加密密钥不同的加密密钥来加密标头数据。在一些实施方案中,数据包模块315可被配置为将加密的标头数据放入数据包的标头区域中。

图4示出了根据各种示例的用于加密系统级数据结构的系统400。系统400可以包括装置445,其可以是图1的设备105和/或图2的设备205中的任一者的示例。

装置445可包括用于双向语音通信和双向数据通信的部件,其包括用于传输通信的部件和用于接收通信的部件。例如,装置445可以与一个或多个存储设备和/或客户端系统双向通信。该双向通信可以是直接的(例如,装置445直接与存储系统通信)和/或间接的(例如,装置445通过服务器间接地与客户端设备通信)。

装置445还可以包括处理器模块405、存储器410(包括软件/固件代码(sw)415)、输入/输出控制器模块420、用户接口模块425、网络适配器430和存储适配器435。软件/固件代码415可为在装置445上执行的软件应用程序的一个示例。网络适配器430可以经由一个或多个有线链路和/或无线链路双向地与一个或多个网络和/或客户端设备进行通信。在一些实施方案中,网络适配器430可以经由凭借pop(接入点)而连接到因特网的直接网络链路来提供到客户端设备的直接连接。在一些实施方案中,装置445的网络适配器430可以使用包括以下各项的无线技术来提供连接:数字蜂窝电话连接、蜂窝数字分组数据(cdpd)连接、数字卫星数据连接和/或另一种连接。装置445可包括数据管理模块130-c,其可执行上文针对图1、图2和/或图3的数据管理模块130所述的功能。

与系统400相关联的信号可以包括无线通信信号,诸如射频、电磁、局域网(lan)、广域网(wan)、虚拟专用网(vpn)、无线网络(例如使用802.11)、蜂窝网络(例如使用3g和/或lte),和/或其他信号。网络适配器430可以启用wwan(gsm,cdma和wcdma)、wlan(包括和wi-fi)、wman(wimax)中的一者或多者用于移动通信,启用天线用于无线个人区域网(wpan)应用(包括rfid和uwb),或它们的任何组合。

一个或多个总线440可允许在装置445的一个或多个元件(诸如,处理器模块405、存储器410、i/o控制器模块420、用户接口模块425、网络适配器430和存储适配器435,或它们的任何组合)之间进行数据通信。

存储器410可以包括随机存取存储器(ram)、只读存储器(rom)、闪存ram和/或其他类型。存储器410可以存储计算机可读的、计算机可执行的软件/固件代码415,其包括在被执行时使处理器模块405执行本公开中描述的各种功能的指令。另选地,软件/固件代码415可不由处理器模块405直接执行,但是(例如,当被编译和执行时)可能导致计算机执行本文所述的功能。另选地,计算机可读的、计算机可执行的软件/固件代码415可不由处理器模块405直接执行,但是可被配置为(例如,当被编译和执行时)使得计算机执行本文所述的功能。处理器模块405可包括智能硬件设备,例如,中央处理单元(cpu)、微控制器、专用集成电路(asic)或它们的任何组合。

在一些实施方案中,存储器410可以包含基本输入-输出系统(bios),该系统可以控制基本硬件和/或软件操作,诸如与外围组件或设备的交互。例如,数据管理模块130-c的至少一部分可存储在系统存储器410内以实现本发明的系统和方法。驻留在系统400中的应用通常存储在非暂态计算机可读介质(诸如硬盘驱动器或其他存储介质)上,并经由该介质而被访问。此外,当经由网络接口(诸如,网络适配器430)访问时,应用可以呈根据该应用和数据通信技术而调制的电子信号的形式。

许多其他设备和/或子系统可以连接到系统400的一个或多个元件(例如,个人计算设备、移动计算设备、智能电话、服务器、因特网连接设备、蜂窝无线电模块,或它们的任何组合),或者可以作为该系统的一个或多个元件被包括在内。在一些实施方案中,要实践本发明的系统和方法,图4所示的所有元件并不需要都存在。设备和子系统可按不同于图4所示的方式进行互连。在一些实施方案中,系统(例如图4所示的系统)的某些操作的一个方面在本领域中可以是容易知道的,并且在本申请中未详细讨论。用于实现本公开的代码可以存储在非暂态计算机可读介质中,诸如系统存储器410或其他存储器中的一者或多者。i/o控制器模块420上提供的操作系统可以是移动设备操作系统、台式/膝上型操作系统或其他已知的操作系统。

i/o控制器模块420可以与网络适配器430和/或存储适配器435一起操作。作为一个示例,网络适配器430可以使装置445具有通过与设备105相关联的网络来与客户端设备(诸如,图1的设备105)和/或其他设备通信的能力。网络适配器430可以提供有线和/或无线网络连接。在一些情况下,网络适配器430可以包括以太网适配器或光纤信道适配器。存储适配器435可使装置445能够访问一个或多个数据存储设备(诸如,存储设备110)。一个或多个数据存储设备可以各自包括两个或更多个数据层。存储适配器可以包括以太网适配器、光纤信道适配器、光纤信道协议(fcp)适配器、scsi适配器和iscsi协议适配器中的一者或多者。

图5示出了根据各种示例的用于加密系统级数据结构的环境500。环境500的至少一个方面可以结合图1中的设备105、图2中的装置205,和/或图1、图2、图3和/或图4中所示的数据管理模块130来实现。在一个实施方案中,环境500可包括被配置用于存储用户数据和/或系统数据的存储系统。

如图所示,环境500可包括数据包505。数据包505可以是图2的数据包260的一个示例。如图所示,数据包505可包括标头区域510和有效载荷区域515。在一些情况下,数据包505可包括在标头区域510之前、在标头区域510和有效载荷区域515之间和/或在有效载荷区域515之后的附加区域或字段。在一个实施方案中,数据包模块315(图3)可生成数据包505。在一些实施方案中,数据模块305可从存储驱动器的主机接收数据。数据模块305可识别接收到的数据中的用户数据。在一些实施方案中,数据模块305可识别与识别用户数据相关的标头数据。例如,标头数据的至少一部分可被包括在从主机接收的数据中。在一些情况下,数据模块305可至少部分地基于识别用户数据来生成标头数据。在一些配置中,数据模块305可生成与生成数据包505的数据包模块315相关的标头数据。

在一些实施方案中,加密模块310可加密来自存储驱动器的主机的用户数据以生成加密的用户数据525。在一些情况下,加密模块310可加密标头数据以生成加密的标头数据520。在一些实施方案中,加密模块310可使用相同的加密密钥来加密用户数据和标头数据。另选地,在一些实施方案中,加密模块310可使用第一加密密钥来加密用户数据并且使用与第一加密密钥不同的第二加密密钥来加密标头数据。在一些实施方案中,数据包模块305可将加密的用户数据520放入数据包505的有效载荷区域515中。另外,数据包模块315可将加密的标头数据525放入数据包505的标头区域510中。常规的数据包可包括加密的用户数据,并且数据的其余部分(诸如标头数据等)可保持未加密,但是一旦将所有数据都添加到数据包,则可加密整个数据包。相反,加密模块310可加密用户数据以及添加到数据包505的所有其他数据的至少一部分,然后加密模块310可在完成数据包505之后或在数据包模块315结束数据包505之后绕过和/或块加密整个数据包505,数据包模块315结束数据包505可包括向数据包505添加旨在用于数据包505的所有数据。

图6是示出根据本公开的各个方面的用于加密系统级数据结构的方法600的示例的流程图。方法600的一个或多个方面可以结合图1中的设备105、图2中的装置205,和/或图1、图2、图3和/或图4中所示的数据管理模块130来实现。在一些示例中,后端服务器、计算设备和/或存储设备可执行一组或多组代码以控制后端服务器、计算设备和/或存储设备的功能元件以执行下文所述的一个或多个功能。另外或另选地,后端服务器、计算设备和/或存储设备可使用专用硬件来执行下文描述的一个或多个功能。

在框605处,方法600可包括从存储驱动器的主机接收数据。在某些情况下,数据可由主机发送以存储在存储驱动器上。在一些配置中,存储驱动器的主机可包括与存储驱动器相关联的计算机系统的操作系统和/或一个或多个硬件部件。在框610处,方法600可包括确定所接收的数据是否包括用户数据。在确定接收到的数据不包括用户数据时,方法600可在框605处继续监视所接收的数据。在一些情况下,方法600可包括确定所接收的数据是否包括与用户数据相关联的系统数据结构。

在框615处,方法600可包括在确定接收的数据包括用户数据时加密用户数据。在一些情况下,加密的用户数据可以被封装在数据包中。在框620处,方法600可包括识别与用户数据相关联的系统数据结构。在框625处,方法600可包括与加密用户数据分开加密系统数据结构。在一些情况下,加密的系统数据结构可被添加到具有加密的用户数据的数据包。在一些实施方案中,方法600可至少部分地基于在被封装在数据包之前被加密的用户数据和系统数据结构而绕过加密整个数据包。

框605至框625的一个或多个操作可使用参照图1至图4描述的数据管理模块130和/或另一模块来执行。因此,方法600可用于加密与加密系统级数据结构相关的系统级数据结构。应当注意,方法600仅仅是一个实施方式,并且可重新排列、省略和/或以其他方式修改方法600的操作,使得其他实施方式也是可能的并且可设想其他实施方式。

图7是示出根据本公开的各个方面的用于加密系统级数据结构的方法700的示例的流程图。方法700的一个或多个方面可以结合图1中的设备105、图2中的装置205,和/或图1、图2、图3和/或图4中所示的数据管理模块130来实现。在一些示例中,后端服务器、计算设备和/或存储设备可执行一组或多组代码以控制后端服务器、计算设备和/或存储设备的功能元件以执行下文所述的一个或多个功能。另外或另选地,后端服务器、计算设备和/或存储设备可使用专用硬件来执行下文描述的一个或多个功能。

在框705处,方法700可包括加密被分配用于存储在存储系统上的用户数据。在框710处,方法700可包括生成用于封装用户数据的数据包。在框715处,方法700可包括将加密的用户数据放入数据包的有效载荷区域中。在框720处,方法700可包括确定是否加密生成的与用户数据相关的标头数据。在一些情况下,标头数据可与用户数据和用于封装用户数据而生成的数据包中的至少一者相关联。

在确定加密标头数据时,方法700可包括如框725所示加密标头数据。在一些情况下,标头数据可利用用于加密用户数据的加密密钥来加密。在框730处,方法700可包括将加密的标头数据放入数据包的标头区域中。在框735处,方法700可包括利用加密的用户数据和加密的标头数据来处理数据包。在确定不加密标头数据时,方法700可包括如框740所示将未加密的标头数据放入数据包的标头区域中。在框745处,方法700可包括利用加密的用户数据和未加密的标头数据来处理数据包。在一些实施方案中,处理数据包可包括将数据包存储在存储系统的存储介质上和/或向远程存储系统发送数据包。

框705至框745处的操作可使用参照图1至图4描述的数据管理模块130和/或另一模块来执行。因此,方法700可用于加密与加密系统级数据结构相关的系统级数据结构。应当注意,方法700仅仅是一个实施方式,并且可重新排列、省略和/或以其他方式修改方法700的操作,使得其他实施方式也是可能的并且可以设想其他实施方式。

在一些示例中,方法600和700中的两个或更多个方面可以组合和/或分隔。应当注意,方法600和700仅仅是示例性实施方式,并且可重新排列或以其他方式修改方法600和700的操作,使得其他实施方式也是可能的。

上文陈述的具体实施方式结合附图描述了一些示例,但并不表示这些示例是可以被实现的全部实例或者权利要求范围内的全部实例。当在本说明书中使用时,术语“示例”和“示例性”表示“用作示例、实例或说明”,而不是“优选”或“优于其他示例”。具体实施方式包括具体细节,其目的在于提供对所述技术的理解。然而,这些技术可以在没有这些具体细节的情况下实施。在一些情况下,已知的构造和装置示出于框图中,以避免模糊所述示例的概念。

可以使用各种不同技术中的任何一种来代表信息和信号。例如,可用电压、电流、电磁波、磁场或粒子、光场或粒子或它们的任何组合来代表可以在上述说明中被引用的数据、指令、命令、信息、信号、比特、符号和芯片。

可以使用通用处理器、数字信号处理器(dsp)、asic、fpga或其他可编程逻辑器件、离散的栅极或晶体管逻辑、离散的硬件部件来实现或执行与本公开相关的各种示例性块和部件。通用处理器可以是微处理器,但是另选地,该处理器可以是任何常规的处理器、控制器、微控制器和/或状态机。处理器还可以被实现为计算设备的组合,例如,dsp和微处理器、多个微处理器的组合,与dsp芯结合的一个或多个微处理器和/或它们的任何组合。

这里描述的功能可以以硬件、由处理器执行的软件、固件或它们的任何组合的形式来实现。如果以由处理器执行的软件的形式实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。其他示例和实施方式均在本公开和所附权利要求的范围和实质内。例如,由于软件的性质,可以使用由处理器执行的软件、硬件、固件、硬连线或它们的任何组合来实现上述功能。特征实现功能还可以物理性地位于各种位置,包括被分布使得部分功能在不同的物理位置处实现。

如本文所用,在权利要求书中,当术语“和/或”用于两个或更多个项目的列表中时,表示可单独采用所列项目中的任何一个,或者可采用两个或更多个所列的项目。例如,如果组合物被描述为包含组分a、b和/或c,组合物可以包括单独的a;单独的b;单独的c;a和b的组合;a和c的组合;b和c的组合;或a、b和c的组合。此外,如本文所用,在权利要求书中,当“或”用于项目列表时(例如,以短语诸如“至少一个”或“一个或多个”开头的项目列表)指示分离的列表,使得例如列表“a、b或c中的至少一个”表示a或b或c或ab或ac或bc或abc(即a和b和c)。

此外,包含在其他部件中或与其他部件分开的部件的任何公开均应被认为是示例性的,因为可以潜在地实施多个其他体系结构以实现相同的功能,包括将所有、绝大部分和/或某些元件作为一个或多个统一的结构和/或单独的结构并入。

计算机可读介质包括计算机存储介质和通信介质,包括有助于将计算机程序从一个地方传输到另一个地方的任何介质。存储介质可以是可由通用或专用计算机访问的任何可用介质。以示例而非限制的方式,计算机可读介质可包括ram、rom、eeprom、闪存、cd-rom、dvd或其他光盘存储器、磁盘存储器或其他磁存储设备或任何其它介质,所述的其他介质可以用于以指令或数据结构的形式携带或存储期望的程序编码方式,并且可以由通用或专用计算机或通用或专用处理器访问。而且,任何连接均被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(dsl)或无线技术(诸如红外、无线电和微波,或它们的任何组合)从网站、服务器或其他远程来源传输软件,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电和/或微波)包括在介质的定义中。如本文所使用的磁盘和光盘包括激光唱片(cd)、激光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘的任何组合,其中磁盘通常以磁的方式再现数据,而光盘用激光以光学方式再现数据。上述组合也包括在计算机可读介质的范围内。

提供本公开的上述说明以使本领域的技术人员能够制作或使用本公开。本公开的各种修改对于本领域的技术人员将是显而易见的,并且在不脱离本公开的范围的情况下,本文定义的一般原理可以应用于其它变型。因此,本公开不限于本文所述的示例和设计,而是符合与所公开的原理和新颖特征一致的最广泛的范围。

本公开可特别适用于安全系统应用。本公开可特别适用于存储系统应用。在一些实施方案中,概念、技术说明、特征、方法、想法和/或说明可特别适用于存储和/或数据安全系统应用。根据本公开,针对这些具体应用的系统的独特优点是显而易见的。

在本公开中描述和/或示出的过程参数、行为和步骤仅以示例的方式给出,并且可根据需要更改。例如,尽管可以特定顺序示出或论述所示和/或描述的步骤,但是这些步骤不一定需要按照所示或论述的顺序执行。本文描述和/或示出的各种示例性方法还可以省略在此描述或示出的一个或多个步骤,或者包括除了所公开的步骤之外的其他步骤。

此外,尽管在全功能计算系统的上下文中已经描述和/或示出了多种实施方案,但是这些示例性实施方案中的一个或多个可以作为各种形式的程序产品分配,无论用于实际执行分发的计算机可读介质的具体类型为何。本文公开的实施方案还可以使用执行某些任务的软件模块来实现。这些软件模块可包括可以存储在计算机可读存储介质上或计算系统中的脚本、批处理或其他可执行文件。在一些实施方案中,这些软件模块可以允许和/或指示计算系统执行这里公开的一个或多个示例性实施方案。

为了说明的目的,已经参考具体实施方案描述了该描述。然而,上述的说明性讨论并非旨在穷举或将本系统和方法限制为所讨论的具体形式。根据上述教导内容可以对本公开进行许多修改和改变。选择和描述实施方案是为了解释本系统和方法及其实际应用的原理,以使本领域技术人员能够利用本发明的系统、装置和方法以及具有各种修改形式、适用于各种预期的特定用途的各种实施方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1