存储设备辅助式内联加密和解密的制作方法
【专利说明】存储设备辅助式内联加密和解密
[0001]根据35 U.S.C.§ 119的优先权要求
[0002]本专利申请要求于2013年4月16日提交的题为“DEVICE ASSISTED INLINESTORAGE ENCRYPT1N(设备辅助式内联存储加密)”的临时申请N0.61/812,616的优先权,该临时申请已转让给本申请受让人并因此通过引用明确纳入于此。
[0003]背景
[0004]领域
[0005]本公开涉及与外部存储设备联用的主机存储控制器,尤其涉及数据的内联加密和解密。
【背景技术】
[0006]为了保护数据,此类数据通常在传输期间和/或在存储时被加密。在一个示例中,数据被存储于经由存储总线与主机片上系统(SoC)相连接的外部存储设备中。典型的SoC可包括应用处理电路和主机存储控制器,主机存储控制器是SoC的硬件元件。应用处理电路执行用于发起去往/来自外部存储设备的读/写事务的主机软件。例如,主机软件组件可命令主机存储控制器向外部存储设备发布读/写事务。主机存储控制器进而在存储总线上与外部存储设备通信以复制去往/来自该存储设备的数据,并且随后通知主机软件此类操作已完成。主机存储控制器还可经由单独的存储器总线来访问主机存储器。一般而言,主机存储器通常是被保护免受恶意攻击的较安全的存储器,而外部存储设备通常是易受此类攻击的不那么安全的片外存储器设备。因此,存储于外部存储设备中的数据可能需要加密,而存储于主机存储器中的数据通常不需要加密。加密过程可能需要对于主机存储控制器而言不可用的参数。在此类系统内,主机存储控制器通常作为具有有限命令解码(或者根本没有命令解码)的通道来操作。读/写操作(例如,命令生成/解码和访问优化)的复杂性驻留在主机软件中以及由存储设备执行的固件中。相应地,为了保护存储于外部存储设备中的数据,数据的加密/解密通常由主机软件和/或存储设备执行,而不是由主机存储控制器执行。
[0007]然而,需要改为准许由主机存储控制器进行高效内联加密/解密的解决方案。
[0008]概述
[0009]—种在主机存储控制器处操作的用于在向主机存储控制器外部的存储设备的写操作期间加密数据的方法,包括:从请求方主机软件组件获得要向所述存储设备写入数据的写命令;向所述存储设备发送所述写命令;从所述存储设备获得与所述数据相关联的参数;基于所述参数生成加密密钥;以及使用所述加密密钥来加密所述数据。
[0010]在另一方面,一种在主机存储控制器处操作的用于在从主机存储控制器外部的存储设备的读操作期间解密数据的方法,包括:从请求方主机软件组件获得要从所述存储设备读取数据的读命令;向所述存储设备发送所述读命令;从所述存储设备获得经加密数据以及与所述经加密数据相关联的参数;基于所述参数生成解密密钥;以及使用所述解密密钥来解密所述经加密数据。
[0011]在又一方面,一种设备包括用于存储数据的存储设备、以及耦合至所述存储设备的处理电路,该处理电路具有主机存储控制器,该主机存储控制器配置成:从请求方主机软件组件获得要向所述存储设备写入数据的写命令;向所述存储设备发送所述写命令;从所述存储设备获得与所述数据相关联的参数;基于所述参数生成加密密钥;以及使用所述加密密钥来加密所述数据。
[0012]在又一方面,一种设备包括用于存储数据的存储设备、以及耦合至所述存储设备的处理电路,该处理电路具有主机存储控制器,该主机存储控制器配置成:从请求方主机软件组件获得要从所述存储设备读取数据的读命令;向所述存储设备发送所述读命令;从所述存储设备获得经加密数据以及与所述经加密数据相关联的参数;基于所述参数生成解密密钥;以及使用所述解密密钥来解密所述经加密数据。
[0013]附图简述
[0014]在结合附图理解下面阐述的详细描述时,各种特征、本质和优点会变得明显,在附图中,相同的附图标记贯穿始终作相应标识。
[0015]图1解说具有内联加密/解密的示例性片上系统(SoC)。
[0016]图2解说示例性应用处理电路、主机存储控制器和外部存储设备以及在它们之间交换的信息。
[0017]图3更详细地解说示例性SoC,其中该SoC包括装备成用于存储设备辅助式内联加密/解密的主机存储控制器。
[0018]图4解说可由主机存储控制器协同片外存储设备执行的示例性内联加密/写操作。
[0019]图5解说在主机存储控制器与片外存储设备之间执行的示例性内联加密/写操作。
[0020]图6解说与用于存储设备辅助式内联加密/解密的通用闪存(UFS)实现的事务排队联用的示例性寄存器和主机存储器空间。
[0021]图7解说与图6的实现联用的示例性UFS传输请求描述符(UTRD),其中该UTRD包括密钥索引。
[0022]图8解说与图6的实现联用的示例性准备好传输(RTT) UFS协议信息单元(UPIU),其中该UPIU包括逻辑块地址(LBA)指示符和块计数指示符。
[0023]图9解说可由主机存储控制器协同片外存储设备执行的示例性内联解密/读操作。
[0024]图10解说在主机存储控制器与片外存储设备之间执行的示例性内联解密/读操作。
[0025]图11解说与图10的实现联用的示例性“数据输入’0JPIU,其中该UPIU包括LBA指示符和块计数指示符。
[0026]图12是解说采用可利用图1-11的系统、方法和装置的处理系统的装置的硬件实现的示例的框图。
[0027]图13是解说图12的处理电路的示例性组件的框图。
[0028]图14是解说图12的机器可读介质的示例性指令组件的框图。
[0029]图15解说在主机存储控制器处操作的用于在对存储设备的写操作期间加密数据的方法。
[0030]图16解说在主机存储控制器处操作的用于在从存储设备的读操作期间解密数据的方法。
[0031]图17解说在存储设备处操作的用于促成在写操作期间由主机存储控制器进行数据加密的方法。
[0032]图18解说在存储设备处操作的用于促成在读操作期间由主机存储控制器进行数据解密的方法。
[0033]图19解说在主机存储控制器处操作的用于在对存储设备的写操作期间加密数据的替换方法。
[0034]图20解说在主机存储控制器处操作的用于在从存储设备的读操作期间解密数据的替换方法。
[0035]详细描述
[0036]在以下描述中,给出了具体细节以提供对本公开的各方面的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践这些方面。例如,电路可能用框图示出以避免使这些方面煙没在不必要的细节中。在其他实例中,公知的电路、结构和技术可能不被详细示出以免模糊本公开的这些方面。
[0037]措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实现或方面不必被解释为优于或胜过本公开的其他方面。同样,术语“方面”不要求本公开的所有方面都包括所讨论的特征、优点或操作模式。
[0038]综览
[0039]若干新颖特征涉及存储设备辅助式内联加密和解密。在一个方面,通过将片外存储设备配置成提供参数以促成由片上系统(SoC)的主机存储控制器对数据进行内联加密/解密来执行内联读/写操作。在本文描述的各种示例中,由主机存储控制器从片外存储设备获得的参数提供标识符,该标识符对于特定数据块的读和写操作是相同的,但随数据块而不同。此类参数的具体示例是从存储设备获得的关于要加密/解密的数据的逻辑块地址(LBA) ο然而,作为LBA的补充或替换,可使用其他参数来提供增强安全性。为了提供本文中内联加密/解密规程的具体示例,以下描述中的一些描述针对使用LBA的实现,但应当理解,可使用其他参数作为LBA的补充或替换。
[0040]主机存储控制器使用从存储设备获得的参数来生成或以其他方式获得密钥以用于加密/解密数据,由此缓解使SoC的其他组件执行或控制此类功能的需求,从而提供更高效的内联加密/解密。在其中由主机存储控制器从存储设备获得LBA的示例中,LBA被用作在加密/解密中使用的初始向量(或初始化向量)。该规程不同于原本将从不同于片外存储设备的源获得初始向量(诸如通过尝试从接收自主机软件的读/写命令提取此类信息)的内联加密/解密系统。还应注意,通过将LBA用作初始向量,该初始向量对于写/加密操作和读/解密操作两者将会是相同的,由此允许主机存储控制器解密先前已被加密并存储于片外存储设备中的数据。此外,该初始向量对于每个数据块而言将会是不同的,由此为每个数据块提供唯一的初始值。再进一步,通过从片外存储设备获得LBA或其他合适的参数来用作初始向量,初始向量信息无需存储在片上存储器中,由此节省了宝贵的片上存储空间。还应注意,通常情况下,不向主机存储控制器提供由片外存储设备使用的实际存储地址,而是改为仅向主机存储控制器提供数据的主机存储器地址,主机存储器地址对于相同数据在读和写操作之间可以不同。因此,主机存储器地址通常不能被用于内联加密/解密。就此,由存储设备使用的地址(无论是物理的还是逻辑的)位于与由主机处理器使用的存储器地址不同的地址空间内。常规情况下,主机存储控制器不从片外存储设备接收(并因此不能使用)存储地址以在加密/解密中使用。
[0041]本文中描述的一些示例包括通常根据JEDEC固态技术联盟(原来称作电子器件工程联合委员会(JEDEC))的UFS主机控制器接口标准执行的读和写操作。例如,参见2012年6月的JESD220A和JESD223A标准文件。如下所述,JEDEC UFS读和写操作被修改以提供本文所公开的各种特征。然而,应当理解,本文中所描述的特征中的至少一些特征可在通常不遵循JEDEC标准的其他系统(包括专有的或其他系统)中实现。
[0042]具有内联写加密和读解密的示例性设备
[0043]图1宽泛地解说具有内联加密/解密的示例性片上系统100。简言之,SoClOO包括装备成执行主机软件或软件组件102的应用处理电路101并进一步包括主机存储控制器104。在该示例中,主机存储控制器104包括内联加密/解密模块105,该加密/解密模块105能够加密经由存储总线108写入外部存储设备106的数据和/或解密经由相同的存储总线从存储设备106读取的数据。这些操作可协同存储于经由存储器总线112访问的主机存储器110内的数据或其他参数来执行。为了促成由加密/解密模块105执行的操作,存储设备106被配置成在读和写操作期间向主机存储控制器104提供参数(诸如LBA值)。
[0044]图2提供了时序图200,其解说应用处理电路202、主机存储控制器204和外部存储设备206的示例性读和写操作并且具体解说了在它们之间交换的以供与内联加密/解密联用的信息。处理始于应用处理电路202(代表未具体示出的请求方主机软件组件)经由内部连接线向主机存储控制器204发送写命令208,其标识要被写入外部存储设备206的数据。数据可藉由主机存储器地址来标识(其中主机存储器设备未在图中具体示出以允许更清楚地解说其他组件)。主机存储控制器204通过经由存储总线(也未在图2中示出)向外部