存储装置哈希生成转让专利
申请号 : CN201880028611.3
文献号 : CN110574002B
文献日 : 2021-04-23
发明人 : L·W·多弗
申请人 : 美光科技公司
摘要 :
权利要求 :
1.一种包含哈希生成组件的存储装置,所述存储装置包括:哈希引擎;
接口,其用于读取和写入存储数据,且对于经由去除所述哈希引擎而与所述存储装置不同的存储装置是标准化的;
解码器,其用于:
解析来自外部实体的第一数据传输且在所述接口处接收到的第一命令、一组输入识别及输出识别,其中所述一组输入识别及所述输出识别对应于所述存储装置中的数据的地址,所述外部实体能够通过对所述存储装置使用标准读取或写入操作而存取所述存储装置;及
解析来自第二数据传输的第二命令及地址,所述第二命令是用于所述存储装置的标准读取命令,所述地址对应于所述输出识别;以及控制器,其用于:
响应于接收到所述第一命令,收集所述一组输入识别的成员以生成输入集;
指示所述哈希引擎从所述输入集生成哈希乘积;
将所述哈希乘积写入于对应于所述输出识别的所述存储装置的一部分中;以及响应于接收到所述第二命令,从对应于所述地址的所述存储装置的所述一部分发送所述哈希乘积。
2.根据权利要求1所述的存储装置,其中所述一组输入识别定义所述存储装置的第二部分的地址范围。
3.根据权利要求2所述的存储装置,其中所述一组输入识别的两个成员定义所述地址范围。
4.根据权利要求1所述的存储装置,其中所述存储装置是块可寻址的。
5.根据权利要求1所述的存储装置,其中所述一组输入识别的成员识别所述第一数据传输的一部分。
6.根据权利要求5所述的存储装置,其中所述第一数据传输的所述部分通过字段识别。
7.根据权利要求5所述的存储装置,其中所述第一数据传输的所述部分通过偏移识别。
8.根据权利要求7所述的存储装置,其中所述第一数据传输的所述部分也通过长度识别。
9.根据权利要求1所述的存储装置,其中所述一组输入识别的成员识别所述存储装置的隐蔽内容。
10.根据权利要求9所述的存储装置,其中所述隐蔽内容是所述存储装置的当前会话密钥。
11.根据权利要求1所述的存储装置,其中所述哈希乘积是密钥哈希消息认证代码HMAC。
12.根据权利要求11所述的存储装置,其中所述一组输入识别的子集识别隐蔽内容,其中所述隐蔽内容用作用于所述HMAC的密钥。
13.根据权利要求1所述的存储装置,其中所述哈希引擎实施加密哈希。
14.根据权利要求13所述的存储装置,其中所述加密哈希是安全哈希算法SHA。
15.根据权利要求14所述的存储装置,其中所述哈希引擎生成256位哈希。
16.一种包括用于存储装置哈希生成的指令的至少一个非易失性机器可读介质,所述指令被处理电路执行时致使所述处理电路执行以下操作:解码在所述存储装置的接口处接收到的来自外部实体的第一数据传输,所述第一数据传输包含第一命令、一组输入识别及输出识别,所述命令对应于哈希运算,所述接口用于读取和写入存储数据,且对于经由去除哈希引擎而与所述存储装置不同的存储装置是标准化的,所述一组输入识别及所述输出识别对应于所述存储装置中的数据的地址,所述外部实体能够通过对所述存储装置使用标准读取或写入操作而存取所述存储装置;
响应于解码所述第一命令,整理所述一组输入识别的成员以生成输入集;
对所述输入集调用所述存储装置的所述哈希引擎以生成哈希乘积;
将所述哈希乘积存储于对应于所述输出识别的所述存储装置的一部分中;
解码在所述接口处接收到的来自所述外部实体的第二数据传输,所述第二数据传输包含第二命令及地址,所述第二命令是用于所述存储装置的标准读取命令,所述地址对应于所述输出识别;以及
响应于解码所述第二命令,从对应于所述地址的所述存储装置的所述一部分发送所述哈希乘积。
17.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述一组输入识别定义所述存储装置的第二部分的地址范围。
18.根据权利要求17所述的至少一个非易失性机器可读介质,其中所述一组输入识别的两个成员定义所述地址范围。
19.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述存储装置是块可寻址的。
20.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述一组输入识别的成员识别所述第一数据传输的一部分。
21.根据权利要求20所述的至少一个非易失性机器可读介质,其中所述第一数据传输的所述部分通过字段识别。
22.根据权利要求20所述的至少一个非易失性机器可读介质,其中所述第一数据传输的所述部分通过偏移识别。
23.根据权利要求22所述的至少一个非易失性机器可读介质,其中所述第一数据传输的所述部分也通过长度识别。
24.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述一组输入识别的成员识别所述存储装置的隐蔽内容。
25.根据权利要求24所述的至少一个非易失性机器可读介质,其中所述隐蔽内容是所述存储装置的当前会话密钥。
26.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述哈希乘积是密钥哈希消息认证代码HMAC。
27.根据权利要求26所述的至少一个非易失性机器可读介质,其中所述一组输入识别的子集识别隐蔽内容,其中所述隐蔽内容用作用于所述HMAC的密钥。
28.根据权利要求16所述的至少一个非易失性机器可读介质,其中所述哈希引擎实施加密哈希。
29.根据权利要求28所述的至少一个非易失性机器可读介质,其中所述加密哈希是安全哈希算法SHA。
30.根据权利要求29所述的至少一个非易失性机器可读介质,其中所述哈希引擎生成
256位哈希。
说明书 :
存储装置哈希生成
请案的优先权权益,所述美国申请案全部特此以引用方式并入本文中。
技术领域
背景技术
接口,所述接口有利于查询所述数据且在具有写入能力的存储装置中写入数据。
附图说明
过限制说明本文献中论述的各种实施例。
具体实施方式
商品中都发现了存储装置。这些商品的计算机化可能会随着时间的推移而完成,且可能难
以改变。举例来说,汽车控制器局域网(CAN)总线是车辆通信标准,其允许链接各种控制器。
然而,由于车辆可长期使用,所以这些系统在标准化时可能会存在未知的漏洞或弱点,这些
漏洞或弱点修复起来非常困难或昂贵。此外,可创建许多昂贵的制造过程来实施一个标准,
例如,即使新的车辆也可包含过时或不安全的标准以便维持与各种供应商的控制器的兼容
性。
统的安全性通常落后于更通用的计算装置的安全性。然而,即使在一般的计算装置中,设计
包含额外安全硬件的新的主板(例如母板)也可能受成本过高限制。需要可与通用或嵌入式
计算机系统中的其它计算组件介接而无需修改其它硬件组件的增强安全性硬件。
行的哈希运算。额外命令以类似于由外部实体提供到存储装置的其它命令的方式操作,例
如数据读取或写入。因此,存储装置到系统的硬件接口仍保持相同,从而允许存储装置被包
含(无需修改)到现存系统。然而,现存系统的软件可经修改以调用哈希运算命令且因此获
得存储装置的加密组件的益处。此布置准许系统(包含嵌入式系统)的加密增强而无需重新
设计这些系统的制造过程。下文描述额外实例及细节。
驾驶车辆的车辆(如展示)、家电、家具、结构、传感器、衣服或系统140可包含(例如嵌入)于
其中的其它物品。创造“智能”物品或向先前在无通信能力的情况下操作的商品(例如许多
家电(例如冰箱、洗衣机等)或传感器)添加此类能力的近期趋势可称为创建IoT,参与商品
被变换成IoT装置。
的装置(例如电话、个人音乐播放器、平板计算机等)接收内容。所述系统还可包含一或多个
处理器(例如中央处理单元、低功率处理器、数字信号处理器、图形处理单元等),且一或多
个存储装置(例如大容量存储装置、存储器、静态存储器等)包含存储装置105。
寄存器库135(例如,包括一或多个寄存器)。存储装置105的全部这些组件经实施于计算机
硬件(例如处理电路)中。
机存取存储器(RAM)装置。
(eMMC)接口或非易失性存储器主机控制器接口规范(NVMHCI)接口中的至少一者。在实例
中,存储装置105是快闪存储器装置。在实例中,存储装置105是NOR快闪或NAND快闪中的至
少一者(例如,存储部分130是NOR或NAND快闪)。在实例中,存储装置105是硬盘驱动器
(HDD)。
写入命令。在实例中,解码器115是控制器120的部分(例如,集成到控制器120中)。
不同输入数据从哈希生成不同输出。当两个不同输入数据生成相同输出时,称为冲突。加密
哈希与其它哈希的不同之处可在于:单向。即,难以仅从哈希的输出生成输入数据。
分。因此,在快闪装置的典型操作中,例如,存储部分130用于保持外部实体经由到存储装置
105的经由接口110进行的命令读取及写入的数据。相比之下,寄存器库135通常无法由这些
外部实体经由接口110存取但可由控制器120(或存储装置105的其它部分)用于内部目的。
在实例中,存储装置的第二部分是块可寻址的,例如NAND快闪装置或硬盘驱动器。
之前从非字节可寻址存储装置(例如块可寻址存储装置)检索到字节可寻址存储装置中。实
例字节可寻址媒体可包含寄存器、RAM变体(例如静态RAM(SRAM)、动态RAM(DRAM)等)、核心
存储器、NOR快闪等。在实例中,存储装置的第二部分是寄存器(例如,在寄存器库135中)。在
实例中,存储装置的第二部分是非易失性存储媒体,例如NOR快闪。在实例中,外部实体无法
经由到存储装置的接口存取存储装置的第二部分,例如寄存器库135。
储部分130(其是RAM)中的一组字节可寻址地址。在实例中,一组输入识别的两个成员定义
地址范围。此实例准许识别存储部分130的连续部分例如以减少信令开销。在实例中,两个
成员的第一成员定义范围的起始,且两个成员的第二成员定义范围的结束。在实例中,两个
成员的第一成员定义范围的起始,且两个成员的第二成员定义包含于所述范围中的若干单
元。
在实例中,数据传输的部分通过字段识别。在实例中,数据传输的部分通过偏移识别。在实
例中,数据传输的部分也通过长度识别。因此,给定这最后几个实例,传输中的新的数据可
使用多种技术指定额外数据。
它数据)的真实性的一者或两者。在实例中,一组输入识别的子集识别秘密。此处,秘密用作
用于HMAC的密钥。在实例中,一组输入识别的成员识别存储装置的当前会话密钥。在此实例
中,存储装置105可能先前已进入与外部实体的加密通信。作为建立这些通信的部分,会话
密钥可能已建立于存储装置105与外部实体之间。存储装置105可针对数个通信或针对设置
时间周期维持相同会话密钥或所述会话密钥的派生物。存储装置105可内部地维持会话密
钥,例如在寄存器库135(或其它内部存储器)中或在存储部分130的受保护部分中。
据(例如秘密)。收集允许使用存储装置105中先前管理(例如,存储)的待用于哈希运算的数
据。因此,输入集包含数据而非对数据的参考。
施加密哈希。在实例中,加密哈希是安全哈希算法(SHA)。在实例中,哈希引擎125经布置以
生成256位哈希。
希乘积本身的能力完整。因此,外部实体可把待哈希的数据写入到存储装置105,就像其在
以其它方式存储数据时通常将进行的那样。接着,外部实体可经由命令调用哈希运算且针
对结果指定存储装置105内部的响应。接着,外部实体可以其将以其它方式从存储装置检索
数据(例如通过读取命令)相同的方式检索哈希乘积。此布置提供若干益处。举例来说,因为
接口110符合其它接口标准或所述类型的存储装置的类型,所以存储装置可添加到经配置
以接受相同类型的存储装置的任何系统140。另外,写入、哈希、读取指令循环向程序员提供
熟悉且灵活的哈希设施,这是因为数据的写入及哈希乘积的读取以其它存储装置所熟悉的
方式发生。以此方式,安全性功能,例如HMAC收发消息或其它升级,可添加到现存系统而原
始设备制造商无额外制造花费,且因此进一步将系统渗透到制品中。
字段(例如,标记语言(例如eXtensible标记语言(XML))中的标签或类似物)或通过惯例标
示(例如,前八个位指定命令,次第八个位指定输入标头等)。此外,图2到5中说明的消息具
有特定部分顺序(例如,命令、输入标头、输入地址及输出地址),但变化可包含这些组件的
重新布置(例如无输入标头、输出地址、输入地址及接着命令)。
定大小。举例来说,如果存储装置的接口是SCSI,那么前八位字节是命令部分205。输入标头
210是任选的,且可用于描述输入地址部分215中的数据类型。举例来说,如果输入地址部分
215针对两个地址设定大小,那么输入标头210可指定是否将输入地址部分215视作两个不
同地址或一范围(例如起始及结束地址或起始地址及扩展)。输出地址220如上文描述指定
在哈希引擎执行来自命令部分205的命令的哈希运算时生成的哈希乘积的目的地。
用作到HMAC的密钥的秘密。此处,秘密325存储密钥的实际值。
分425保持到存储装置内的可寻址位置的地址,例如内部NAND或NOR快闪块、寄存器、存储器
等,使用秘密地址部分425准许使用比在给定特定存储接口标准的约束的情况下原本可能
的更大的秘密。外部实体可在前一操作中将秘密写入到存储装置的一或多个块,且接着经
由秘密地址部分425参考秘密。
分525包含到存储装置的指定如何获得秘密的指示。实例指示可包含检索存储装置的当前
会话密钥或使用诊断组件测量存储装置的质量。秘密命令提供额外灵活性以利用甚至更复
杂的存储装置硬件。
例如在输入标头中指定。
制器可通过请求对应于来自存储部分的一组输入识别的数据整理来自一组输入识别的数
据(操作610)及接收如由存储部分所提供的输入集数据(操作615)。
结果(例如,哈希乘积)提供回到控制器(操作630)。接着,控制器将哈希结果存储于输入消
息(例如输出地址)中所指定的存储部分中(操作635)。
上实施。
块可寻址的。
实例中,存储装置的第二部分是非易失性存储媒体。
成员的第二成员定义范围的结束。在实例中,两个成员的第一成员定义范围的起始,且两个
成员的第二成员定义包含于所述范围中的若干单元。
通过长度识别。
装置的当前会话密钥。
(NVMHCI)接口中的至少一者。在实例中,存储装置是快闪存储器装置。在实例中,快闪存储
器装置是NOR快闪或NAND快闪中的至少一者。在实例中,存储装置是硬盘驱动器(HDD)。
于一组输入识别的地址的数据以包含于输入集中。
256位哈希或512位哈希。
逻辑或数个组件或机器800中的机构操作。电路(例如处理电路)是实施于包含硬件(例如简
单电路、门、逻辑等)的机器800的有形实体中的电路集合。电路成员关系随着时间的推移可
为灵活的。电路包含可在操作时单独或以组合执行指定操作的构件。在实例中,电路的硬件
可不变地经设计以实施特定操作(例如,硬接线)。在实例中,电路的硬件可包含可变连接的
物理组件(例如执行单元、晶体管、简单电路等),其包含物理地经修改(例如机械地、电地、
不变质量的颗粒的可移动置放等)以编码特定操作的指令的机器可读媒体。在连接物理组
件时,硬件成分的潜在电性质例如从绝缘体变为导体,或反之亦然。指令启用嵌入式硬件
(例如执行单元或加载机构)以经由可变连接在硬件中创建电路的成员以在处于操作中时
实施特定操作的部分。因此,在实例中,机器可读媒体元件是电路的部分,或在装置正操作
时通信地耦合到电路的其它组件。在实例中,物理组件中的任何者可用于一个以上电路的
一个以上成员中。举例来说,在操作下,执行单元可在一时间点用于第一电路系统的第一电
路中,且在不同时间由第一电路系统中的第二电路或由第二电路系统中的第三电路再次使
用。以下是关于机器800的这些组件的额外实例。
者中的容量中。在实例中,机器800可在对等(P2P)(或其它分布式)网络环境中用作对等机
器。机器800可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网
络设备、网络路由器、交换机或桥或能够执行指定将由所述机器采取的动作的指令(循序或
以其它方式)的任何机器。此外,虽然仅说明单个机器,但术语“机器”也应被理解为包含个
别地或共同地执行一组(或多组)指令以执行本文论述的方法中的任何一或多者的任何机
器集合,例如云计算、软件即服务(SaaS)、其它计算机集群配置。
件、微代码、基本输入-输出(BIOS)、统一可扩展固件接口(UERI)等的存储器或存储装置)
806及大容量存储装置821(例如硬驱动、磁带驱动、快闪存储装置或其它块装置),其部分或
全部可经由互链(例如,总线)808与彼此通信。主存储器804通常通过为字节可寻址而非允
许其数据直接由处理器802消耗的块可寻址来与大容量存储装置821区分。此外,主存储器
804由处理器802使用以存储当前(例如现场)状态信息而非在电源开启与电源关闭循环之
间维持的信息。静态存储器806通常用于直接修改或配置硬件,例如在电源开启时发生,或
校正机器指令(例如,经由微代码)。
814可为触摸屏显示器。机器800可另外包含存储装置(例如驱动单元)816、信号生成装置
818(例如扬声器)、网络接口820及一或多个传感器821,例如全球定位系统(GPS)传感器、指
南针、加速度计或其它传感器。机器800可包含输出控制器828,例如与一或多个外围装置
(例如打印机、卡读取器等)通信或控制所述一或多个外围装置的串行(例如通用串行总线
(USB)、并行或其它有线或无线(例如红外(IR)、近场通信(NFC)等)连接。
或由所述任何一或多者利用的一或多组数据结构或指令824(例如软件)可存储在机器可读
媒体822上。指令824还可在其由机器800执行期间完全或至少部分驻存在处理器802、主存
储器804、静态存储器806或大容量存储装置816的寄存器中的任何者内。在实例中,硬件处
理器802、主存储器804、静态存储器806或大容量存储装置816中的一者或任何组合可构成
机器可读媒体802。虽然将机器可读媒体822说明为单个媒体,但术语“机器可读媒体”可包
含经配置以存储一或多个指令824的单个媒体或多个媒体(例如集中式或分布式数据库及/
或相关联的高速缓冲存储器及服务器)。
指令使用或与此类指令相关联的数据结构。非限制性机器可读媒体实例可包含固态存储
器、光学媒体、磁性媒体及信号(例如射频信号、其它基于光子的信号、声音信号等)。在实例
中,非暂时性机器可读媒体包括具有含不变(例如剩余)质量的多个颗粒的机器可读媒体,
且因此是物质组合物。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读
媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置
(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器
装置;磁盘,例如内部硬盘及可卸除盘;磁光盘;及CD-ROM及DVD-ROM盘。
协议(HTTP)等)中的任一者进一步发射或接收。实例通信网络可包含局域网(LAN)、广域网
(WAN)、包数据网络(例如因特网)、移动电话网络(例如蜂窝网络)、普通老式电话(POTS)网
络及无线数据网络(例如称为 的电气与电子工程师协会(IEEE)802.11系列标准、称
为 的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例
中,网络接口装置820可包含连接到通信网络826的一或多个物理插口(例如以太网、同轴或
电话插口)或一或多个天线。在实例中,网络接口装置820可包含使用单输入多输出(SIMO)、
多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者无线地通信的多个天线。术
语“传输媒体”应被理解为包含任何无形媒体,其能够存储、编码或实施供机器800执行的指
令,且包含数字或模拟通信信号或有利于此软件的通信的其它无形媒体。传输媒体是机器
可读媒体。
器,其用于:收集所述一组输入识别的成员以生成输入集;指示所述哈希引擎从所述输入集
生成哈希乘积;及将所述哈希乘积写入于对应于所述输出识别的所述存储装置的一部分
中。
干单元。
据。
系统接口(SCSI)接口、通用快闪存储(UFS)接口、嵌入式多媒体卡(eMMC)接口或非易失性存
储器主机控制器接口规范(NVMHCI)接口中的至少一者。
出识别,所述命令对应于哈希运算;整理所述一组输入识别的成员以生成输入集;对所述输
入集调用所述存储装置的哈希引擎以生成哈希乘积;及将所述哈希乘积存储于对应于所述
输出识别的所述存储装置的一部分中。
的若干单元。
机系统接口(SCSI)接口、通用快闪存储(UFS)接口、嵌入式多媒体卡(eMMC)接口或非易失性
存储器主机控制器接口规范(NVMHCI)接口中的至少一者。
于所述一组输入识别中。
据传输包含命令、一组输入识别及输出识别,所述命令对应于哈希运算;整理所述一组输入
识别的成员以生成输入集;对所述输入集调用所述存储装置的哈希引擎以生成哈希乘积;
及将所述哈希乘积存储于对应于所述输出识别的所述存储装置的一部分中。
的若干单元。
机系统接口(SCSI)接口、通用快闪存储(UFS)接口、嵌入式多媒体卡(eMMC)接口或非易失性
存储器主机控制器接口规范(NVMHCI)接口中的至少一者。
入识别及输出识别,所述命令对应于哈希运算;用于整理所述一组输入识别的成员以生成
输入集的构件;用于对所述输入集调用所述存储装置的哈希引擎以生成哈希乘积的构件;
及用于将所述哈希乘积存储于对应于所述输出识别的所述存储装置的一部分中的构件。
的若干单元。
算机系统接口(SCSI)接口、通用快闪存储(UFS)接口、嵌入式多媒体卡(eMMC)接口或非易失
性存储器主机控制器接口规范(NVMHCI)接口中的至少一者。
元件的元件。然而,本发明者还预期其中仅提供展示或描述的那些元件的实例。此外,本发
明者还预期使用关于特定实例(或其一或多个方面)或关于本文展示或描述的其它实例(或
其一或多个方面)展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
况下,并入的参考案中的使用应被认为是此文献的使用的补充;对于不可调和的不一致性,
以此文献中的使用为准。
非排他性或使得“A或B”包含“A而非B”、“B而非A”及“A及B”,除非另外指示。在所附权利要求
书中,术语“包含”及“其中(in which)”用作相应术语“包括”及“其中(wherein)”的简洁英
语等效物。而且,在所附权利要求书中,术语“包含”及“包括”是开放式的,即,包含除了权利
要求书中在此术语之后所列的元件之外的元件的系统、装置、物品或过程仍被认为落于所
述权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”及“第三”等仅用作
标记,且不希望对其对象施加数字要求。
用。说明书摘要允许读者快速地确定技术揭示内容的性质,且在理解不会将其用于解释或
限制权利要求的范围或含义的情况下提交。而且,在上文详细描述中,可将各种特征组合在
一起以简化本发明。这不应该被解释为未主张的揭示特征意在对任何权利要求是必不可
少。确切来说,发明标的物可在于少于特定揭示实施例的所有特征。因此,所附权利要求特
此并入到详细描述中,其中每个权利要求独立地作为单独的实施例。实施例的范围应参考
所附权利要求以及此类权利要求所赋予的等同物的全部范围来确定。