CN116057530A - 存储器的安全和保全 - Google Patents

存储器的安全和保全 Download PDF

Info

Publication number
CN116057530A
CN116057530A CN202180051380.XA CN202180051380A CN116057530A CN 116057530 A CN116057530 A CN 116057530A CN 202180051380 A CN202180051380 A CN 202180051380A CN 116057530 A CN116057530 A CN 116057530A
Authority
CN
China
Prior art keywords
data
hash
host device
memory
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180051380.XA
Other languages
English (en)
Inventor
A·P·贝姆
L·W·多弗
S·布赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN116057530A publication Critical patent/CN116057530A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

描述了用于存储器的安全和保全的方法、***和装置。在一些实例中,与存储器装置相关联的数据可在相关联操作执行之前经认证。所述数据可在其在易失性存储器处执行之前经认证。所述数据可与散列(例如,第一散列)相关联且可从所述存储器装置传达到主机装置。在所述主机装置处,所述数据和所述第一散列可写入(例如,存储)到暂时性存储装置,例如高速缓存器。一旦存储到所述高速缓存器,所述主机装置便可使用不可由所述存储器装置存取的密钥来产生与所述数据相关的额外散列(例如,第二散列)。如果所述第一散列和所述第二散列匹配,则所述数据可经认证,并且一或多个操作可经执行。

Description

存储器的安全和保全
交叉引用
本专利申请要求勃姆(BOEHM)等人在2021年8月6日提交的标题为“存储器的安全和保全(SAFETY AND SECURITY FOR MEMORY)”的第17/396,531号美国专利申请以及勃姆等人在2020年8月20日提交的标题为“存储器的安全和保全(SAFETY AND SECURITY FORMEMORY)”的第63/068,046号美国临时专利申请的优先权,所述申请中的每一个均转让给本受让人,并且所述申请中的每一个明确地以全文引用的方式并入本文中。
背景技术
下文大体上涉及用于存储器的一或多个***,且更具体地涉及存储器的安全(safety)和保全(security)。
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可被编程为两个支持状态中的一个,常常由逻辑1或逻辑0来标示。在一些实例中,单个存储器单元可支持多于两个状态,所述多于两个状态中的任一个可被存储。为了存取所存储信息,组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可在存储器装置中写入状态或对状态进行编程。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫族化物存储器技艺等。存储器单元可为易失性或非易失性的。例如FeRAM的非易失性存储器即使在不存在外部电源的情况下仍可维持其所存储逻辑状态达很长一段时间。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失其所存储状态。
附图说明
图1示出根据如本文中所公开的实例的支持存储器的安全和保全的***的实例。
图2示出根据如本文中所公开的实例的支持存储器的安全和保全的***的实例。
图3示出根据如本文中所公开的实例的支持存储器的安全和保全的过程流程图的实例。
图4展示根据本公开的方面的支持存储器的安全和保全的主机装置的框图。
图5展示根据本公开的方面的支持存储器的安全和保全的存储器装置的框图。
图6和7展示示出根据如本文中所公开的实例的支持存储器的安全和保全的一或多种方法的流程图。
具体实施方式
根据本文中所公开的实例的存储器***可包含一或多个存储器装置和与一或多个存储器装置耦合的主机装置。一或多个存储器装置可包含不同存储器技艺,例如易失性存储器(例如,动态随机存取存储器(DRAM))和非易失性存储器(例如,快闪存储器)。一些应用,例如车辆安全***、自主车辆***或其它安全关键***,可具有相对较高的可靠性和严格时间约束,或可以其它方式设计成失效的概率相对较低。因此,存储到易失性存储器和/或非易失性存储器的数据可在与所述数据相关联的任何操作执行以增加安全且防止对所存储的数据的攻击之前经认证。
在一些存储器***中,写入(例如,存储)到存储器装置的数据可在启动***后(例如,在发动车辆后)便使用例如循环冗余检查(CRC)等方法来进行认证。为了使用CRC来认证数据,主机装置可首先计算二进制序列(例如,第一检查值)。一旦第一检查值已产生,数据(例如,一行数据)便可从存储器装置传达到主机装置,并且主机装置可使用所述数据来计算二进制序列(例如,第二检查值)。如果第一检查值和第二检查值匹配,则数据可经认证。在启动序列期间,存储器装置的每一行数据可传达到主机装置以供认证,这可能是耗时的。由于与各种***,例如车辆安全***、自主车辆***或其它安全关键***相关联的高可靠性和严格时间约束,可能需要可靠地认证***的数据,同时减少***的启动序列的总体定时,以及其它操作。
本文中所描述的技术可以可靠地认证与存储器装置相关联的数据,同时减少存储器装置的总体操作时间,例如启动时间或在存储器装置退出低功率状态时(例如,在存储器装置退出暂停到RAM模式时)。如本文中所描述,***可包含与存储器装置耦合的主机装置。可为汽车***的实例的***可在与数据相关联的操作执行之前认证数据。为了认证数据,***可产生散列(例如,密码散列、第一散列、键控散列)和/或将所述散列分配到每一行(例如,每一行数据)。在与数据相关联的一或多个操作执行之前,主机装置可将对数据和/或第一散列的请求传输到存储器装置。数据和第一散列可响应于请求而存储到主机装置的暂时性存储装置(例如,高速缓存器)。除非另外明确地指出,否则如本文中所使用,“散列”包含可用于认证的散列(而不是仅可用于检查完整性的散列),并且“散列”的实例还可为“键控散列”、MAC或HMAC,如本文中其它地方所提及。
一旦数据和第一散列存储到暂时性存储装置(例如,高速缓存器),主机装置便可使用密钥和/或保全消息认证码(MAC)算法(例如基于散列的消息认证码(HMAC))来产生数据的额外散列(例如,第二散列、第二键控散列)。尽管密钥可为与用于产生第一散列的密钥相同类型的密钥,但用于产生第二散列的密钥可为仅可由主机装置存取(且不可由一或多个存储器装置存取)。因此,如果数据未更改,则第一散列将与所产生的第二散列匹配。因此,为了认证数据,主机装置可比较第一散列和第二散列,并且确定散列是否匹配。如本文中所描述,如果散列匹配,则数据可经认证。如果散列不匹配,则主机装置可被配置成执行一或多个额外步骤或操作以认证数据或确保存储器装置是安全且保全的。在一些实例中,在认证数据后,可与一或多个操作相关联的数据便可从高速缓存器直接执行(例如,而不是从存储器装置执行),这可最小化主机装置与存储器装置之间的通信的数量且因此可改进***的总体定时。此外,通过在执行相关联操作之前认证数据,数据可在运行中认证,因此减少相关联***的总体启动时间。
首先在如参考图1和2所描述的***和裸片的上下文中描述本公开的特征。在如参考图3所描述的过程流程图的上下文中描述本公开的特征。参考涉及如参考图4-7所描述的存储器的安全和保全的设备图和流程图进一步示出且描述本公开的这些和其它特征。
图1示出根据如本文中所公开的实例的支持存储器的安全和保全的***100的实例。***100可包含主机装置105、存储器装置110以及将主机装置105与存储器装置110耦合的多个信道115。***100可包含一或多个存储器装置110,但一或多个存储器装置110的方面可在单个存储器装置(例如,存储器装置110)的上下文中进行描述。
***100可包含电子装置的部分,例如计算装置、移动计算装置、无线装置、图形处理装置、车辆或其它***。举例来说,***100可示出计算机、笔记本计算机、平板计算机、智能手机、蜂窝电话、可穿戴装置、联网装置、车辆控制器等的方面。存储器装置110可为可操作以存储用于***100的一或多个其它组件的数据的***的组件。
***100的至少部分可为主机装置105的实例。主机装置105可为使用存储器来执行例如计算装置、移动计算装置、无线装置、图形处理装置、计算机、笔记本计算机、平板计算机、智能手机、蜂窝电话、可穿戴装置、联网装置、车辆控制器、芯片上***(SoC)或某一其它固定或便携式电子装置内的过程的装置内的处理器或其它电路***的实例,以及其它实例。在一些实例中,主机装置105可指实施外部存储器控制器120的功能的硬件、固件、软件或其组合。在一些实例中,外部存储器控制器120可被称作主机或主机装置105。
主机装置105还可包含本地存储器(未展示)。在一些情况下,本地存储器可包含只读存储器(ROM)或可存储可由外部存储器控制器120执行以执行本文中归于外部存储器控制器120的功能的操作码(例如,可执行指令)的其它存储器。在一些情况下,本地存储器可另外或替代地包含静态随机存取存储器(SRAM)或可由外部存储器控制器120使用以用于例如与本文中归于外部存储器控制器120的功能相关的内部存储或计算的其它存储器。另外或替代地,本地存储器可充当用于外部存储器控制器120的高速缓存器。举例来说,本地存储器可被配置成存储从存储器装置110接收的数据和散列(例如,密码散列),并且可被配置成使用本文中所描述的方法来认证数据。在一些实例中,如果数据经认证,则数据可从本地存储器执行。在其它实例中,数据可在从存储器装置130或存储器装置140读取或写入到存储器装置130或存储器装置140时存储到本地存储器,并且可在本地存储器内可用以供主机***105根据高速缓存策略进行后续检索或操控(例如,更新)(例如,相对于存储器装置130或存储器装置140具有减少的时延)。
存储器装置110可为可操作以提供可供***100使用或参考的物理存储器地址/空间的独立装置或组件。在一些实例中,存储器装置110可为可配置的以与一或多个不同类型的主机装置一起工作。主机装置105与存储器装置110之间的信令可为可操作以支持以下中的一或多个:用以调制信号的调制方案、用于传达信号的各种引脚配置、用于主机装置105和存储器装置110的物理封装的各种形状因数、主机装置105与存储器装置110之间的时钟信令和同步、定时惯例,或其它因素。
存储器装置110可为可操作以存储用于主机装置105的组件的数据。在一些实例中,存储器装置110可充当主机装置105的从属型装置(例如,响应于且执行由主机装置105通过外部存储器控制器120提供的命令)。此类命令可包含用于写入操作的写入命令、用于读取操作的读取命令、用于刷新操作的刷新命令或其它命令中的一或多个。
主机装置105可包含外部存储器控制器120、处理器125、基本输入/输出***(BIOS)组件130或者例如一或多个***组件或一或多个输入/输出控制器的其它组件中的一或多个。主机装置105的组件可使用总线135彼此耦合。
外部存储器控制器120可为如本文中所描述的微控制器的实例。另外或替代地,主机装置105可包含被配置成认证从存储器装置110接收的数据的其它组件。举例来说,主机装置105可包含用于使用可由主机装置105存取的密钥来产生数据的一或多个散列的散列组件(未展示)。主机装置105还可包含用于基于数据经认证(或未经认证)而执行一或多个操作的安全组件(未展示)。散列组件和安全组件的操作可由每一相应组件执行,或在其它实例中,可由外部存储器控制器120执行。
处理器125可为可操作以针对***100的至少部分或主机装置105的至少部分提供控制或其它功能性。处理器125可为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或这些组件的组合。在此类实例中,处理器125可为中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或SoC的实例,以及其它实例。在一些实例中,外部存储器控制器120可由处理器125实施或为所述处理器的部分。
BIOS组件130可为包含操作为固件的BIOS的软件组件,其可初始化且运行***100或主机装置105的各种硬件组件。BIOS组件130还可管理处理器125与***100或主机装置105的各种组件之间的数据流。BIOS组件130可包含存储在只读存储器(ROM)、快闪存储器或另一非易失性存储器中的一或多个中的程序或软件。
存储器装置110可包含装置存储器控制器155和一或多个存储器裸片160(例如,存储器芯片)以支持用于数据存储的期望容量或指定容量。每一存储器裸片160可包含本地存储器控制器165(例如,本地存储器控制器165-a、本地存储器控制器165-b、本地存储器控制器165-N)和存储器阵列170(例如,存储器阵列170-a、存储器阵列170-b、存储器阵列170-N)。存储器阵列170可为存储器单元的集合(例如,一或多个网格、一或多个排组、一或多个平铺块、一或多个区段),其中每一存储器单元可操作以存储至少一个位的数据。包含两个或更多个存储器裸片的存储器装置110可被称作多裸片存储器或多裸片封装,或多芯片存储器或多芯片封装。
存储器装置110可包含存储器裸片160,所述存储器裸片包含不同类型的存储器单元。举例来说,存储器裸片160-a的存储器阵列170-a可包含一或多个易失性存储器单元。存储器阵列170-a可包含一或多个易失性存储器单元,例如动态随机存取存储器(DRAM)单元、同步动态随机存取存储器(SDRAM)单元、双数据速率同步DRAM(DDR SDRAM)单元、图形DDRSDRAM(GDDR SDRAM)和/或静态随机存取存储器(SRAM)。存储器阵列170-a的易失性存储器单元可被配置成从存储器装置110的其它存储器阵列(例如,其它存储器裸片的存储器阵列)接收数据。
存储器装置110可包含非易失性存储器单元的一或多个阵列。举例来说,存储器裸片160-b的存储器阵列170-b可包含一或多个非易失性存储器单元。存储器阵列170-b可包含一或多个非易失性存储器单元,例如NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋力矩转移(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。存储器阵列170-b的非易失性存储器单元可被配置成经由一或多个信号路径(未展示)将数据传达到存储器阵列170-a的易失性存储器。
装置存储器控制器155可包含可操作以控制存储器装置110的操作的电路、逻辑或组件。装置存储器控制器155可包含使得存储器装置110能够执行各种操作且可为可操作以接收、传输或执行与存储器装置110的组件相关的命令、数据或控制信息的硬件、固件或指令。装置存储器控制器155可为可操作以与外部存储器控制器120、一或多个存储器裸片160或处理器125中的一或多个通信。在一些实例中,装置存储器控制器155可结合存储器裸片160的本地存储器控制器165控制本文中所描述的存储器装置110的操作。
存储器装置110可从主机装置105接收数据或命令或这两者。举例来说,存储器装置110可接收指示存储器装置110要存储用于主机装置105的数据的写入命令或指示存储器装置110要将存储在存储器裸片160中的数据提供到主机装置105的读取命令。存储器装置110可接收对数据的请求(例如,读取命令),并且数据可由主机装置认证(或未认证)。存储器装置110可从主机装置105接收涉及如本文中所描述的数据的认证的其它通知、命令或请求。
本地存储器控制器165(例如,对于存储器裸片160来说是本地的)可包含可操作以控制存储器裸片160的操作的电路、逻辑或组件。本地存储器控制器165可为可操作以与装置存储器控制器155通信(例如,接收或传输数据或命令或这两者)。在一些实例中,存储器装置110可不包含装置存储器控制器155,并且本地存储器控制器165或外部存储器控制器120可执行本文中所描述的各种功能。因此,本地存储器控制器165可为可操作以与装置存储器控制器155、与其它本地存储器控制器165,或直接与外部存储器控制器120或处理器125或其组合通信。可包含在装置存储器控制器155或本地存储器控制器165或这两者中的组件的实例可包含用于(例如,从外部存储器控制器120)接收信号的接收器、用于传输信号(例如,到外部存储器控制器120)的传输器、用于对所接收信号进行解码或解调的解码器、用于编码或调制要传输的信号的编码器,或可操作以用于支持装置存储器控制器155或本地存储器控制器165或这两者的所描述操作的各种其它电路或控制器。
外部存储器控制器120可为可操作以启用***100或主机装置105(例如,处理器125)的组件与存储器装置110之间信息、数据或命令中的一或多个的通信。外部存储器控制器120可对主机装置105的组件与存储器装置110之间交换的通信进行转换或翻译。在一些实例中,外部存储器控制器120或者***100或主机装置105的其它组件,或本文中所描述的其功能,可由处理器125实施。举例来说,外部存储器控制器120可为由处理器125或者***100或主机装置105的其它组件实施的硬件、固件或软件或其某一组合。虽然将外部存储器控制器120描绘为在存储器装置110外部,但在一些实例中,外部存储器控制器120或本文中所描述的其功能可由存储器装置110的一或多个组件(例如,装置存储器控制器155、本地存储器控制器165)实施,反之亦然。
主机装置105的组件可使用一或多个信道115与存储器装置110交换信息。信道115可为可操作以支持外部存储器控制器120与存储器装置110之间的通信。每一信道115可为在主机装置105与存储器装置之间载送信息的传输媒体的实例。每一信道115可包含与***100的组件相关联的端子之间的一或多个信号路径或传输媒体(例如,导体)。信号路径可为可操作以载送信号的导电路径的实例。举例来说,信道115可包含第一端子,其包含在主机装置105处的一或多个引脚或衬垫以及在存储器装置110处的一或多个引脚或衬垫。引脚可为***100的装置的导电输入或输出点的实例,并且引脚可为可操作以充当信道的部分。
信道115(和相关联的信号路径和端子)可专用于传达一或多个类型的信息。举例来说,信道115可包含一或多个命令和地址(CA)信道186、一或多个时钟信号(CK)信道188、一或多个数据(DQ)信道190、一或多个其它信道192,或其组合。在一些实例中,可使用单数据速率(SDR)信令或双数据速率(DDR)信令经由信道115传达信令。在SDR信令中,可针对(例如,在时钟信号的上升或下降沿上的)每一时钟循环登记信号的一个调制符号(例如,信号电平)。在DDR信令中,可针对(例如,在时钟信号的上升沿和下降沿两者上的)每一时钟循环登记信号的两个调制符号(例如,信号电平)。
***100可为用于汽车应用的***100的实例。举例来说,主机装置105和存储器装置110(例如,存储器装置110的不同存储器裸片160)可控制车辆的不同应用和操作。因为车辆经常通电和断电,所以存储器装置110可包含易失性存储器以处理数据并包含非易失性存储器以在***100断电或处于功率降低状态时存储数据。此外,车辆可受制于严格定时约束,并且因此可能需要减少执行某些操作所花费的时间。举例来说,通过在执行与数据相关联的操作之前认证存储器装置的数据(例如,而不是在启动***100后便认证所有数据),***100的总体启动时间(例如,发动车辆所需的时间)可减少。
为了认证与存储器装置110相关联的数据,数据和对应散列可从存储器阵列170-b的非易失性存储器传达(例如,传送)到存储器阵列170-a的易失性存储器。可被称作第一散列的散列可供主机装置105用于认证数据。数据和散列可在不同情境中传送到存储器阵列170-a的易失性存储器。举例来说,在一个情境中,数据可在***100启动(例如,通电)时传送。一旦存储在存储器阵列170-a的易失性存储器中,主机装置105可将对数据和/或散列的请求传输到存储器装置110,并且数据和散列可经由一或多个信道115传达到主机装置。
在主机装置105处,数据和对应散列可例如存储到本地存储器。如本文中所描述,外部存储器控制器120可包含被配置为高速缓存存储装置的本地存储器。一旦存储到高速缓存器,外部存储器控制器120(或其它组件,例如散列组件(未展示))便可产生数据的第二散列。第二散列可使用仅可由主机装置105存取(且因此不可由存储器装置110存取)的密钥和/或安全MAC算法(例如HMAC)来产生。如果第二散列与第一散列匹配,则数据可经认证且因此可直接从高速缓存器执行(例如,与数据相关联的操作可执行)。通过在主机装置处执行与数据相关联的操作之前认证数据而不一定在存储器裸片160中的一或多个处认证数据,与启动***100相关联的定时或在退出低功率状态,例如暂停到RAM模式时的定时可减少。
在其它实例中,如果第二散列与第一散列不匹配,则数据可能不经认证。为了最大化***100的安全和保全,未经认证数据可能不执行,并且主机装置105可执行一或多个额外步骤和/或操作以认证数据或以安全方式操作存储器装置110,例如额外时间请求数据。因此,除减少与启动***100相关联的定时之外,如本文中所描述的用于认证数据的方法还可允许汽车***(例如,***100)安全地和保全地操作。
图2示出根据如本文中所公开的实例的支持存储器的安全和保全的***200的实例。***200可包含主机装置205和存储器装置210。主机装置205可为主机装置105的实例,并且存储器装置210可为如参考图1所描述的存储器装置110的实例。存储器装置210可包含易失性存储器215和/或非易失性存储器220,并且主机装置205可分别经由信号路径275和信号路径280与易失性存储器215和非易失性存储器220通信。在一些实例中,易失性存储器215或非易失性存储器220中的每一个可包含在不同存储器装置110中。主机装置205可以更高效且有效的方式认证与存储器装置210相关联的数据,这可减少总体启动时间或与退出存储器***200的低功率状态,例如暂停到RAM模式相关联的定时。
主机装置205可包含被配置成认证与存储器装置210相关联的数据的组件。与存储器装置210相关联的数据可包含例如程序代码或其它类型的数据。在一些实例中,主机装置205可包含被配置成与存储器装置的易失性存储器215和/或非易失性存储器220通信的控制器225(例如,微控制器225)。控制器225可包含高速缓存器230(例如,高速缓存存储装置230)(或可与所述高速缓存器耦合或至少部分地配置为所述高速缓存器),所述高速缓存器被配置成在认证操作期间存储与易失性存储器215相关联的数据,以及其它。在一些实例中,高速缓存器230还可存储与数据相关联的一或多个散列(例如,密码散列)。主机装置205还可包含控制器235(例如,微控制器235),所述控制器可包含高速缓存器240(例如,高速缓存存储装置240)。高速缓存器240可被配置成存储与非易失性存储器220相关联的数据。
主机装置205可包含散列组件245和安全组件250。散列组件245可被称作第一电路,并且可被配置成在一或多个操作,例如认证操作期间产生一或多个散列(例如,密码散列、键控散列)。散列组件245可存取(例如,存储或写入)可用于产生一或多个散列的密钥(例如,秘密密钥、仅可由主机装置205存取的密钥、不可由一或多个存储器装置210存取的密钥)和/或安全MAC算法,例如HMAC。散列组件245可包含被配置成存储密钥的存储装置,或在其它实例中,可将密钥分配(例如,存储)到高速缓存器230或从一或多个存储器装置210接收密钥。
如本文中所描述,存储器装置210可包含易失性存储器215和非易失性存储器220。易失性存储器215可包含一或多个存储器单元,例如动态随机存取存储器(DRAM)单元。非易失性存储器220可包含一或多个存储器单元,例如快闪(例如,NAND)存储器单元和/或FeRAM存储器单元。在一些实例中,易失性存储器215可经由信号路径270与非易失性存储器220通信。
尽管图2将易失性存储器215和非易失性存储器220示出为同一存储器装置(例如,存储器装置210)的部分,但易失性存储器215和非易失性存储器220可被包含为部分分开的存储器装置(例如,分开的存储器装置210)或可以其它方式彼此分开。举例来说,易失性存储器215可包含在第一存储器装置210(未展示)中,并且非易失性存储器220可包含在第二存储器装置210(例如,不同存储器装置,未展示)中。第一存储器装置和第二存储器装置可经由信号路径,例如信号路径270通信。
在***200关断(例如,掉电)时,数据可存储到非易失性存储器220。在***200通电时(例如,在***启动时),数据可从非易失性存储器220传达(例如,传送)到易失性存储器215。在一些实例中,数据可经由信号路径270传达。在其它实例中,数据可经由主机装置205从非易失性存储器220传达到易失性存储器215。举例来说,数据可经由信号路径280传达,并且可由控制器260(例如,非易失性存储器控制器260)接收。数据可经由总线265传达到控制器255(例如,易失性存储器控制器255)且经由信号路径275传达到易失性存储器215。一旦数据存储到易失性存储器215和/或在主机装置205中,所述数据便可在相关联操作执行之前由主机装置205认证。在执行相关联操作之前认证数据可允许存储器***200选择性地认证数据,而不是在单个操作中(例如,在启动***时或在退出低功率模式时)认证易失性存储器215的所有数据。通过在执行相关联操作之前选择性地认证数据,***200的总体启动时间和在退出低功率模式,例如暂停到RAM模式时的定时可减少。
在其它实例中,在存储器装置210退出低功率模式(例如,暂停模式、暂停到RAM模式)时,数据可从存储器装置210传达到主机装置205。在一些实例中,存储器装置210可进入暂停到RAM模式。在暂停到RAM模式期间,存储器装置210可在较低功率状态下操作,并且关于***配置、开放应用和活动文件的信息可存储在易失性存储器215中,而存储器***200的其它组件断电。在一些实例中,在存储器装置210退出暂停到RAM模式时(例如,在存储器装置改变其操作模式时),在存储器装置处于低功率状态时存储在易失性存储器215处的数据中的一些或全部可经认证。在数据经认证时,所述数据可直接从存储器装置210的易失性存储器215传达以经认证。也就是说,数据可已存储到易失性存储器,并且因此在经认证之前可能不需要从非易失性存储器220传达到易失性存储器215。
为了认证与存储器装置210相关联的数据,传达到易失性存储器215的数据可与相应散列(例如,相应密码散列、相应键控散列、MAC,例如HMAC)相关联。散列可使用密码散列函数,例如SHA-256来产生。在一些实例中,与数据相关联的散列可为完全散列(例如,密码散列的完全版本),或可为散列的截断版本(例如,短于完整散列的长度的散列的版本)。为了产生截断散列,可产生完全散列。完全散列可为第一长度(例如,64位或256位)。完全散列可接着被截断到短于第一长度的长度。举例来说,截断散列可包含64位完整散列的6或8位,或可包含256位完整散列的64(或更少)位,以及其它实例。
举例来说,散列的截断版本可包含完全散列的部分(例如,子集)(例如,完全散列的64或更少字节)。如本文中所描述,数据可使用完全散列或散列的截断版本来认证。另外或替代地,在***200启动时(例如,在数据传达到易失性存储器215)之前,散列可产生并分配到所述数据。在其它实例中,数据和相应散列可存储到非易失性存储器220,并且可在***200启动时传达到易失性存储器215。
主机装置205可利用基于散列的消息认证码(HMAC)来认证与存储器装置210相关联的数据。为了使用HMAC来认证数据,数据和相关联散列(例如,键控散列)可从易失性存储器215传达到主机装置205。主机装置205可将对数据的请求传输到易失性存储器215,并且数据和散列可传达到主机装置205。在一些实例中,从易失性存储器215传达到主机装置的散列和/或由散列组件245产生的散列可为或可被称作键控散列。通过传达和/或产生键控散列,除数据经认证之外,相关联数据的完整性还可经校验。另外或替代地,散列可使用例如HMAC等MAC算法来产生,这可进一步确保数据的完整性和/或可靠性。
数据可由控制器225接收,并且在一些实例中,数据和相关联散列可由控制器225写入到高速缓存器230(例如,写入到高速缓存器230的一或多个线)。举例来说,数据和散列可作为32字节的数据或64字节的数据(例如,32或64字节的程序代码)和8字节的散列写入到高速缓存器230。高速缓存器230可包含被配置成存储数据和相关联散列的多个部分(例如,线集合)。在一些实例中,高速缓存器线集合中的每一高速缓存器线可被分配有要认证的数据和相关联散列。如本文中所描述,在经认证后,数据便可直接从高速缓存器线执行。
在执行与数据相关联的操作之前,散列组件245可使用密钥和/或例如不可由存储器装置210存取的HMAC等安全MAC算法来产生数据的散列(例如,第二散列)。在一些实例中,所产生散列的大小可对应于存储到高速缓存器230的散列的大小,而在其它实例中,所产生散列的大小可不同于存储到高速缓存器230的散列的大小。举例来说,如果存储到高速缓存器230的散列是截断散列(例如,6或8字节),则散列组件245可产生截断散列。在其它实例中,如果存储到高速缓存器230的散列是完全散列(例如,完整散列),则散列组件245可产生完全散列。所产生散列可与从易失性存储器215接收且存储到高速缓存器230的散列进行比较。如果散列匹配,则数据可从高速缓存器230(例如,从高速缓存器230的线)执行。如果散列不匹配,则数据可能已更改(例如,由恶意攻击者),并且安全组件250可起始如本文中所描述的一或多个操作。
在一些实例中,散列组件245可通过使用不可由一或多个存储器装置210存取的密钥来产生数据的散列而认证数据。举例来说,可被称作秘密密钥或私用密钥的密钥和/或例如HMAC等安全MAC算法可为不可由易失性存储器215和非易失性存储器220两者存取。在一些实例中,秘密密钥可为仅可由主机装置205存取(例如,由主机装置205的散列组件245存取)。在一些实例中,密钥可由散列组件245基于要认证的数据的一或多个特性而选择。在其它实例中,密钥可特定针对散列组件245(例如,密钥可为由散列组件使用的唯一密钥),并且可与用于对存储到非易失性存储器220和/或易失性存储器215的数据进行散列的密钥相同。密钥可存储到散列组件245,或在一些实例中,可存储到主机装置205的不同部分(例如,存储到主机装置205的嵌入式受信任平台模块(TPM))。
与不同数据(例如,第二数据)相关联的一或多个操作可在从存储器装置210传输到主机装置205的数据经认证之前或与其同时执行。举例来说,在散列组件245正认证存储到高速缓存器230的数据时,控制器225可执行与存储到易失性存储器215的数据相关联的操作。
在其它实例中,控制器225可在散列组件245认证存储到高速缓存器230的数据(例如,第一数据)之前对存储到易失性存储器215的数据(例如,第二数据)执行一定数量的操作。对存储到易失性存储器215的第二数据执行操作(可被称作流水线化)可允许在其它数据经认证之前执行第二数据。在一些实例中,第一数据可基于一或多次触发的发生而经认证。举例来说,在阈值数量的操作由控制器225执行后、在第一数据已存储到高速缓存器230达阈值时间之后,或其它情况下,第一数据可经认证。
在一些实例中,主机装置205可使用消息认证码(MAC)来认证与存储器装置210相关联的数据。为了使用MAC来认证数据,数据和散列可连同标签(例如,密钥)传达到主机装置205。标签可用于认证从既定发送方(例如,从存储器装置210)接收到消息。因此,主机装置205可校验标签,并且在校验所述标签后,便可尝试认证数据。为了认证数据,数据和相关联散列可由控制器225写入到高速缓存器230(例如,写入到高速缓存器230的线)。在执行与数据相关联的操作之前,散列组件245可使用秘密密钥或私用密钥来产生数据的散列,并且所产生散列可与从易失性存储器215接收的散列进行比较。如果散列匹配,则数据可从高速缓存器230(例如,从高速缓存器230的线)执行。
基于认证数据(或不认证数据,即认证数据失败),散列组件245可经由信号路径285与安全组件250通信。可被称作第二电路的安全组件250可被配置成(例如,从控制器225和/或散列组件245)接收关于数据是否经认证的信息。举例来说,在数据未经认证时,安全组件250可丢弃所述数据,可起始对要从存储器装置210重新传输以供认证的数据的请求,和/或可更新存储器装置210的操作模式。
散列组件245可将指示数据是否经认证的通知传达到安全组件250。如果数据经认证,则安全组件250可产生指示数据经认证的要传输到存储器装置210的通知。然而,如果数据未经认证,则安全组件250可执行一或多个操作以尝试认证数据或保护存储器装置210免受恶意攻击(例如,由于数据未经认证)。举例来说,安全组件250可指导控制器225避免执行数据,并且可起始存储到存储器装置210的数据的备份操作,或可起始对来自一或多个其它组件(例如,易失性存储器215、非易失性存储器220)的数据的请求。在一些实例中,安全组件可通过将指示传输到控制器来指导控制器执行此类操作。指示可包含或可指代指示要执行的具体操作(例如,执行存储到存储器装置210的数据的备份操作)的一或多个位。
如果安全组件250接收到数据未经认证的通知,则主机装置205可第二次尝试认证数据(例如,可重新尝试认证数据)。举例来说,安全组件250可产生对要从易失性存储器215传达(例如,重新传达)到主机装置205的数据和散列的请求。请求可从安全组件250或从例如控制器225等另一组件传输到存储器装置210。除产生请求之外,安全组件250还可被配置成丢弃存储到高速缓存器230的未经认证的数据(和散列)。在接收到从易失性存储器215重新传达的数据和散列后,散列组件245便可尝试使用本文中所描述的认证程序来第二次认证数据。如果数据第二次未经认证,则安全组件250可继续产生对要从易失性存储器215传达(例如,重新传达)到主机装置205的数据和散列的请求。在一些实例中,数据和散列可重新传达,直到数据经认证。
在一些实例中,安全组件250可被配置成基于数据未经认证而改变存储器装置210的操作模式,以及其它实例。因为未经认证的数据可指示对存储器装置210的恶意攻击,所以存储器装置210可能需要在安全状态中操作。如本文中所使用,安全状态可指具有减少的功能性的存储器装置210。举例来说,存储器装置210可在处于安全状态时在只读模式中操作。为了改变存储器装置210的操作模式,安全组件250可产生命令,所述命令可从安全组件250或从例如控制器225等另一组件传输到存储器装置210。在一些实例中,为了改变存储器装置210的操作模式,安全组件250可将指示发送到例如控制器225等另一组件,以促进产生可从主机装置205传输到存储器装置210的命令。
在认证从存储器装置210接收的数据后,控制器225或散列组件245便可执行存储到高速缓存器230的数据。通过在使用MAC或HMAC来认证数据之后,以及其它实例,例如在以其它方式认证易失性存储器215和/或非易失性存储器220处的数据之前执行来自高速缓存器230的数据,主机装置205与存储器装置210之间的通信数量可减少,并且认证数据所需的时间和操作可简化。另外,通过在数据执行之前认证所述数据,而不是每当***200启动时认证所述数据,***200的总体启动时间可减少。
图3示出根据如本文中所公开的实例的支持存储器的安全和保全的过程流程图300的实例。过程流程图300可示出在主机装置305、易失性存储器315和非易失性存储器320处执行或由所述主机装置、所述易失性存储器和所述非易失性存储器执行的操作。易失性存储器315和非易失性存储器320可包含在单个存储器装置310中,或可各自包含在可彼此耦合的单独存储器装置310中。主机装置、存储器装置310、易失性存储器315和非易失性存储器320可为如参考图2所描述的主机装置205、存储器装置210、易失性存储器215和非易失性存储器220的实例。主机装置305可被配置成在执行与数据相关联的操作之前认证与存储器装置310相关联的数据,这可减少相关联存储器***的总体启动时间。
过程流程图300可示出数据在与所述数据相关联的一或多个操作(例如,阈值数量的操作)执行之前由主机装置305认证。如参考图2所描述,要认证的数据可包含例如程序代码或其它类型的数据。另外或替代地,存储器装置310可包含易失性存储器315和非易失性存储器320。易失性存储器315可包含一或多个存储器单元,例如DRAM单元,并且非易失性存储器320可包含一或多个存储器单元,例如FeRAM存储器单元或快闪(例如,NAND)存储器单元。易失性存储器315和非易失性存储器可位于例如存储器装置310等存储器装置内,或可为单独的存储器装置。在任一情况下,存储到易失性存储器315的数据可在相关联操作执行之前传达到主机装置305以供认证。
在325处,数据和相关联散列(例如,密码散列)可任选地存储到非易失性存储器320。如参考图2所描述,相关联散列可为完全散列或可截断(例如,相对于完全散列截断)。在相关联***断电的情况下,数据和相关联散列可存储到非易失性存储器。在***通电(例如,启动)时,数据可传达到易失性存储器315和/或主机装置305以经认证。
在330处,易失性存储器315和非易失性存储器320可任选地启动(例如,通电)。在汽车上下文中,例如,启动序列可表示车辆发动。在一些实例中,存储到存储器装置310的数据可在启动序列的至少部分之后且在相关联操作执行之前经认证。通过在启动序列之后认证数据,启动相关联***(例如,存储器装置310)所需的时间可减少,但通过使用MAC的密码表示,数据可另外正确地经认证。在一些实例中,MAC的密码表示可指消息认证码(MAC)的散列(例如,密码散列)。MAC可使用例如SHA-256等散列算法来进行散列。在一些实例中,数据可使用HMAC的密码表示来认证。在任一实例中,散列可为完整散列(例如,完全散列),或可为包含完整散列的子集的截断散列。举例来说,截断散列可包含完全散列的位的子集,例如8位。
在335处,存储到非易失性存储器320的数据和相应散列可任选地传达到易失性存储器315。在存储器装置310已经供电的情况下(例如,在退出低功率模式时),数据和相关联散列可能无法从非易失性存储器320传达到易失性存储器315。然而,由于易失性存储器315的操作特性,可例如在启动相关联***(例如,存储器装置310)后便将数据和相关联散列从非易失性存储器320传达到易失性存储器315。数据和相关联散列可直接从非易失性存储器320传达到易失性存储器315(例如,如图3中所展示)或借助于主机装置305(未展示)。
在340处,主机装置305可任选地将对数据的请求传输到易失性存储器315。请求可针对存储到易失性存储器315的数据的子集,所述子集可被称作第一数据。第一数据可与要用于认证数据的散列(例如,第一散列)相关联。
在345处,第一数据和第一散列可从易失性存储器315传达到主机装置305。数据可在例如主机装置305的控制器(例如,如参考图2所描述的控制器225)处经接收。
在350处,主机装置305可将第一数据和第一散列写入(例如,存储)到高速缓存器。举例来说,主机装置可将第一数据和第一散列写入到高速缓存器中的线。如参考图2所描述,高速缓存器可为被配置为暂时性存储装置的控制器的部分(例如,可被配置为高速缓存器的存储部分)。在第一数据和第一散列写入到高速缓存器时,主机装置305的组件可在第一数据执行之前尝试认证第一数据。
在355处,主机装置305(例如,如参考图2所描述的散列组件245)可使用秘密密钥或私用密钥来产生第一数据的第二散列。秘密密钥或私用密钥可仅对主机装置305为已知的和/或可存取的,并且可对易失性存储器315或非易失性存储器320为未知的。秘密密钥或私用密钥可对应于用于对第一数据进行散列的密钥和/或例如HMAC等安全MAC算法(例如,用于产生第一散列的密钥),但可为私用的,以便可靠地认证第一数据。
在360处,主机装置305(例如,如参考图2所描述的散列组件245)可任选地将第二散列分配(例如,存储)到高速缓存器。第二散列可分配到高速缓存器中与第一数据和第一散列相同的线。在365处,主机装置305(例如,如参考图2所描述的散列组件245)可将第一散列与第二散列进行比较。基于比较,主机装置305可确定第一散列与第二散列是否匹配。
在370处,主机装置305可任选地在认证第一数据之前执行与额外数据(例如,第二数据)相关联的一或多个操作。术语第二数据可指除第一数据之外存储到易失性存储器315的任何数据。主机装置305可在认证第一数据之前或与其同时执行此类操作。主机装置305可包含每当第二数据执行时可递增的计数器。在计数器满足阈值时(例如,在与第二数据相关联的阈值数量的操作执行时),第一数据可经认证。
在375处,主机装置305(例如,如参考图2所描述的散列组件245)可认证第一数据。认证可基于第一散列和第二散列的比较。举例来说,如果第一散列与第二散列匹配,则第一数据可经认证且可最终执行。然而,如果第一散列与第二散列不匹配,则第一数据可能已修改且因此不可由主机装置305认证。
在380处,如果第一数据经认证(例如,在375处),则与第一数据相关联的操作可执行。第一数据可从其先前存储(例如,在350处)在的高速缓存器线执行。通过从高速缓存器线执行数据,主机装置305无需与易失性存储器315通信以执行数据,因此减少执行第一数据的总体时间。
在385处,如果第一数据未经认证(例如,在375处),则主机装置305(例如,如参考图2所描述的安全组件250)可任选地丢弃第一数据。也就是说,在第一数据未经认证时,第一数据可能已更改或修改。因为不希望执行经修改数据,所以主机装置305可丢弃第一数据且尝试认证(例如,重新认证)存储到易失性存储器315的第一数据。
在390处,主机装置305(例如,如参考图2所描述的安全组件250)可任选地产生要传达到易失性存储器315的消息(例如,通知、指令、请求等)。消息可指示第一数据经认证(例如,在375处)和/或执行(例如,在380处)或者第一数据未经认证(例如,在375处)。如果数据未经认证,则消息可请求将第一数据从易失性存储器315重新传输到主机装置305以供认证。另外地或可替代地,如果数据未经认证,则消息可指导易失性存储器315在例如只读模式等安全状态(例如,安全模式)中操作,直到第一数据经认证。
在393处,易失性存储器315可任选地基于消息(例如,在390处传输)而改变模式。在一些实例(未展示)中,存储器装置310可改变模式。易失性存储器315可将模式改变为安全状态(例如,安全模式),直到第一数据经认证或直到符合另一条件。如本文中所描述,安全状态可包含只读模式。
在395处,易失性存储器315可任选地基于消息(例如,在390处传输)而传输(例如,重新传输)第一数据和第一散列。第一数据和第一散列可基于第一数据未经认证(例如,在375处)而重新传输。尽管图3中未展示,但第一数据和第一散列可写入到高速缓存器,第二散列可产生,第二散列可分配(例如,重新分配)到高速缓存器,和/或第二散列可在第一数据执行之前与第一散列进行比较。
在397处,主机装置305(例如,如参考图2所描述的散列组件245)可任选地尝试认证重新传输的第一数据。认证操作可与375处的操作相同,并且可继续发生,直到第一数据经认证。在对第一数据执行后续认证操作的情况下,步骤380、385、390、393和395处的操作可任选地在每一认证操作之间发生。一旦第一数据经认证,相关联操作便可执行。因此,通过在数据执行之前认证所述数据,而不是每当存储器装置310启动时认证所述数据,相关联***的总体启动时间可减少。
图4展示根据如本文中所公开的实例的支持存储器的安全和保全的主机装置405的框图400。主机装置405可为如参考图2和3所描述的主机装置的方面的实例。主机装置405可包含接收组件410、写入组件415、产生组件420、认证组件425、传输组件430、比较组件435、确定组件440、截断组件445、分配组件450和执行组件455。这些模块中的每一个可直接地或间接地(例如,经由一或多个总线)彼此通信。
接收组件410可通过主机装置从易失性存储器接收数据和与数据相关联的第一散列。
写入组件415可通过主机装置将数据和第一散列写入到主机装置的高速缓存器。
产生组件420可通过主机装置使用可由主机装置存取且不可由易失性存储器存取的密钥来产生与数据相关联的第二散列,第二散列包含消息认证码的密码构造。产生组件420可使用数据和可由主机装置存取且不可由易失性存储器存取的密钥来产生第三散列。在一些情况下,与数据相关联的第二散列是在数据和第一散列写入到主机装置的高速缓存器之后产生。
认证组件425可通过主机装置且在执行与数据相关联的操作之前使用从易失性存储器接收的第一散列和由主机装置产生的第二散列来认证数据。
传输组件430可通过主机装置将对数据的请求传输到易失性存储器,其中接收数据和与数据相关联的第一散列是基于传输请求。传输组件430可基于避免执行与数据相关联的一或多个操作而将备份数据的指示传输到主机装置的电路。
比较组件435可基于产生第二散列而将写入到主机装置的高速缓存器的第一散列的至少部分与第二散列的至少部分进行比较。
确定组件440可基于比较而确定写入到主机装置的高速缓存器的第一散列的部分与第二散列的部分是否匹配。确定组件440可基于确定第一散列的部分与第二散列的部分不匹配而确定数据是无效的。确定组件440可基于高速缓存器的其中写入数据和第一散列的部分而确定用于产生第二散列的密钥,其中产生第二散列是基于确定密钥。
截断组件445可截断第三散列以产生第二散列。在一些情况下,消息认证码的密码构造包含基于散列的消息认证码(HMAC)。在一些情况下,第一散列包含密钥。
分配组件450可将第二散列分配到主机装置的高速缓存器中的线,其中数据是基于将第二散列分配到主机装置的高速缓存器中的线而经认证。
执行组件455可在使用第一散列和第二散列来认证数据之前通过主机装置执行与数据相关联的至少一个操作。执行组件455可与使用第一散列和第二散列来认证数据同时通过主机装置执行与第二数据相关联的一定数量的操作,其中通过主机装置使用第一散列和第二散列来认证数据是基于执行与数据相关联的至少一个操作,或执行与第二数据相关联的一定数量的操作,或这两者。
图5展示根据如本文中所公开的实例的支持存储器的安全和保全的存储器装置505的框图500。存储器装置505可为如参考图2和3所描述的存储器装置的方面的实例。存储器装置505可包含接收组件510、传输组件515、执行组件520和散列组件525。这些模块中的每一个可直接地或间接地(例如,经由一或多个总线)彼此通信。
接收组件510可在易失性存储器处从非易失性存储器接收数据和与数据相关联的散列。接收组件510可在易失性存储器处从主机装置接收对数据的请求。在一些实例中,接收组件510可基于将数据和散列传输到主机装置而从主机装置接收数据经认证的指示。
传输组件515可基于接收到对数据的请求而将数据和散列传输到主机装置。
执行组件520可在将数据和散列传输到主机装置之后且在数据经认证之前执行与数据相关联的至少一个操作。执行组件520可执行与不同于所述数据的第二数据相关联的至少一个操作,其中与所述数据或第二数据相关联的阈值数量的操作在所述数据在易失性存储器处经认证之前执行。在一些实例中,执行组件520可在数据由主机装置认证之前执行从主机装置的高速缓存器线接收的数据。
在一些情况下,散列包含基于散列的消息认证码(HMAC),并且其中数据和散列传输到主机装置以供使用不可由易失性存储器和非易失性存储器存取的密钥进行认证。在一些情况下,数据和散列在于易失性存储器处经接收之前存储在非易失性存储器处,其中在与包含易失性存储器的存储器装置相关联的启动序列期间,数据和与数据相关联的散列在易失性存储器处经接收。在一些情况下,数据和与数据相关联的散列基于包含易失性存储器的存储器装置的操作模式的改变而传输到主机装置。
在一些情况下,非易失性存储器存储与数据相关联的完整散列,并且其中由易失性存储器接收的散列包含完整散列。在一些情况下,在从非易失性存储器接收数据和散列之前接收对数据的请求。在一些情况下,易失性存储器位于不同于包含非易失性存储器的第二存储器装置的第一存储器装置中。在一些情况下,与数据相关联的散列包含密钥。
图6展示示出根据本公开的方面的支持存储器的安全和保全的一或多种方法600的流程图。方法600的操作可由如本文中所描述的主机装置或其组件实施。举例来说,方法600的操作可由如参考图4所描述的主机装置执行。在一些实例中,主机装置可执行指令集以控制主机装置的功能元件执行所描述功能。另外或替代地,主机装置可使用专用硬件来执行所描述功能的方面。
在605处,主机装置可从易失性存储器接收数据和与数据相关联的第一散列。605的操作可根据本文中所描述的方法来执行。在一些实例中,605的操作的方面可由如参考图4所描述的接收组件执行。
在610处,主机装置可将数据和第一散列写入到主机装置的高速缓存器。610的操作可根据本文中所描述的方法来执行。在一些实例中,610的操作的方面可由如参考图4所描述的写入组件执行。
在615处,主机装置可使用可由主机装置存取且不可由易失性存储器存取的密钥来产生与数据相关联的第二散列,第二散列包含消息认证码的密码构造。615的操作可根据本文中所描述的方法来执行。在一些实例中,615的操作的方面可由如参考图4所描述的产生组件执行。
在620处,在执行与数据相关联的操作之前,主机装置可使用从易失性存储器接收的第一散列和由主机装置产生的第二散列来认证数据。620的操作可根据本文中所描述的方法来执行。在一些实例中,620的操作的方面可由如参考图4所描述的认证组件执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法600。设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):通过主机装置从易失性存储器接收数据和与数据相关联的第一散列,通过主机装置将数据和第一散列写入到主机装置的高速缓存器,通过主机装置使用可由主机装置存取且不可由易失性存储器存取的密钥来产生与数据相关联的第二散列,第二散列包含消息认证码的密码构造,以及通过主机装置且在执行与数据相关联的操作之前使用从易失性存储器接收的第一散列和由主机装置产生的第二散列来认证数据。
方法600和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:通过主机装置将对数据的请求传输到易失性存储器,其中接收数据和与数据相关联的第一散列可基于传输请求。
在方法600和本文中所描述的设备的一些实例中,认证数据可包含用于以下的操作、特征、构件或指令:基于产生第二散列而将写入到主机装置的高速缓存器的第一散列的至少部分与第二散列的至少部分进行比较,并且基于比较而确定写入到主机装置的高速缓存器的第一散列的部分与第二散列的部分是否匹配。
方法600和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于确定第一散列的部分与第二散列的部分不匹配而确定数据可为无效的,并且基于避免执行与数据相关联的一或多个操作而将备份数据的指示传输到主机装置的电路。
在方法600和本文中所描述的设备的一些实例中,产生第二散列可包含用于以下的操作、特征、构件或指令:使用数据和可为可由主机装置存取且不可由易失性存储器存取的密钥来产生第三散列,以及截断第三散列以产生第二散列。
方法600和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:将第二散列分配到主机装置的高速缓存器中的线,其中数据可基于将第二散列分配到主机装置的高速缓存器中的线而经认证。
方法600和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:在使用第一散列和第二散列来认证数据之前通过主机装置执行与数据相关联的至少一个操作;以及与使用第一散列和第二散列来认证数据同时通过主机装置执行与第二数据相关联的一定数量的操作,其中通过主机装置使用第一散列和第二散列来认证数据可基于执行与数据相关联的至少一个操作,或执行与第二数据相关联的一定数量的操作,或这两者。
在方法600和本文中所描述的设备的一些实例中,消息认证码的密码构造包含基于散列的消息认证码(HMAC)。
方法600和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于高速缓存器的其中可写入数据和第一散列的部分而确定用于产生第二散列的密钥,其中产生第二散列可基于确定密钥。
在方法600和本文中所描述的设备的一些实例中,与数据相关联的第二散列可在数据之后产生,并且第一散列可写入到主机装置的高速缓存器。
在方法600和本文中所描述的设备的一些实例中,第一散列包含密钥。
图7展示示出根据本公开的方面的支持存储器的安全和保全的一或多种方法700的流程图。方法700的操作可由如本文中所描述的存储器装置或其组件实施。举例来说,方法700的操作可由如参考图5所描述的存储器装置执行。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件执行所描述功能。另外或替代地,存储器装置可使用专用硬件来执行所描述功能的方面。
在705处,存储器装置可在易失性存储器处从非易失性存储器接收数据和与数据相关联的散列。705的操作可根据本文中所描述的方法来执行。在一些实例中,705的操作的方面可由如参考图5所描述的接收组件来执行。
在710处,存储器装置可在易失性存储器处从主机装置接收对数据的请求。710的操作可根据本文中所描述的方法来执行。在一些实例中,710的操作的方面可由如参考图5所描述的接收组件来执行。
在715处,存储器装置可基于接收到对数据的请求而将数据和散列传输到主机装置。715的操作可根据本文中所描述的方法来执行。在一些实例中,715的操作的方面可由如参考图5所描述的传输组件执行。
在720处,存储器装置可在将数据和散列传输到主机装置之后且在数据经认证之前执行与数据相关联的至少一个操作。720的操作可根据本文中所描述的方法来执行。在一些实例中,720的操作的方面可由如参考图5所描述的执行组件执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在易失性存储器处从非易失性存储器接收数据和与数据相关联的散列,在易失性存储器处从主机装置接收对数据的请求,基于接收到对数据的请求而将数据和散列传输到主机装置,以及在将数据和散列传输到主机装置之后且在数据经认证之前执行与数据相关联的至少一个操作。
方法700和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:执行与不同于所述数据的第二数据相关联的至少一个操作,其中与所述数据或第二数据相关联的阈值数量的操作可在所述数据可在易失性存储器处经认证之前执行。
方法700和本文中所描述的设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于将数据和散列传输到主机装置而从主机装置接收数据经认证的指示。
在方法700和本文中所描述的设备的一些实例中,散列包含基于散列的消息认证码(HMAC),并且其中数据和散列可传输到主机装置以供使用不可由易失性存储器和非易失性存储器存取的密钥进行认证。
在方法700和本文中所描述的设备的一些实例中,数据和散列可在于易失性存储器处经接收之前存储在非易失性存储器处,其中在与包含易失性存储器的存储器装置相关联的启动序列期间,数据和与数据相关联的散列可在易失性存储器处经接收。
在方法700和本文中所描述的设备的一些实例中,数据和与数据相关联的散列可基于包含易失性存储器的存储器装置的操作模式的改变而传输到主机装置。
在方法700和本文中所描述的设备的一些实例中,非易失性存储器存储与数据相关联的完整散列,并且其中由易失性存储器接收的散列包含完整散列。
在方法700和本文中所描述的设备的一些实例中,可在可从非易失性存储器接收数据和散列之前接收对数据的请求。
在方法700和本文中所描述的设备的一些实例中,易失性存储器可位于不同于包含非易失性存储器的第二存储器装置的第一存储器装置中。
在方法700和本文中所描述的设备的一些实例中,与数据相关联的散列包含密钥。
在方法700和本文中所描述的设备的一些实例中,执行至少一个操作可包含用于以下的操作、特征、构件或指令:在数据可由主机装置认证之前执行从主机装置的高速缓存器线接收的数据。
应注意,本文中所描述的方法描述可能的实施方案,并且操作和步骤可重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自方法的两个或更多个的部分。
本文描述了一种设备。所述设备可包含:控制器,其包含被配置为高速缓存器的存储器,其中控制器被配置成从易失性存储器接收包含第一散列的数据且存储数据和第一散列;第一电路,其与控制器耦合,并且被配置成产生与数据相关联的第二散列,且在执行与数据相关联的阈值数量的操作之前基于第一散列和第二散列而认证数据,第二散列包含消息认证码的密码构造;以及第二电路,其与第一电路耦合且被配置成从第一电路接收关于数据是否可经认证的通知。
在一些实例中,第一电路可被配置成存储不可由易失性存储器存取的密钥,并且使用密钥来产生第二散列。
在一些实例中,第一电路可被配置成基于高速缓存器的其中可存储数据和第一散列的部分而确定用于产生第二散列的密钥且基于确定密钥而产生第二散列。
在一些实例中,第二散列包含基于散列的消息认证码,并且其中第一电路可被配置成通过将第一散列的至少部分与第二散列的至少部分进行比较来认证数据。
在一些实例中,通知包含数据未经认证的指示,或其中第二电路可被配置成基于指示数据未经认证的通知而丢弃数据和第一散列;并且其中控制器可被配置成基于通知而从易失性存储器传输对与第一散列相关联的第二数据的请求。
本文描述了一种设备。所述设备可包含:主机装置,其被配置成与非易失性存储器和易失性存储器耦合,主机装置包含被配置成致使设备进行以下操作的控制器:将数据和第一散列写入到主机装置的高速缓存器,使用可由主机装置存取且不可由易失性存储器存取的密钥来产生与数据相关联的第二散列,第二散列包含消息认证码的密码构造,以及在使用第一散列和第二散列来执行与数据相关联的操作之前认证数据。
所述设备的一些实例可包含:第一存储器装置,其与主机装置耦合,其中第一存储器装置包含非易失性存储器;以及第二存储器装置,其与第一存储器装置和主机装置耦合,其中第二存储器装置包含易失性存储器。
一些实例可进一步包含将对数据的请求从主机装置传输到易失性存储器,其中接收数据和与数据相关联的第一散列可基于传输请求。
一些实例可进一步包含:使用数据和可由主机装置存取且不可由易失性存储器存取的密钥来产生第三散列,以及截断第三散列以产生第二散列。
一些实例可进一步包含将第二散列分配到高速缓存器中的线,其中数据可基于将第二散列分配到高速缓存器中的线而经认证。
一些实例可进一步包含:在使用第一散列和第二散列来认证数据之前执行与数据相关联的至少一个操作;在使用第一散列和第二散列来认证数据之前执行与第二数据相关联的至少一个操作,以及基于执行与数据相关联的阈值数量的操作、与第二数据相关联的阈值数量的操作或这两者而使用第一散列和第二散列来认证数据。
一些实例可进一步包含基于高速缓存器的其中可写入数据和第一散列的部分而确定用于产生第二散列的密钥,其中产生第二散列可基于确定密钥。
本文描述了一种设备。所述设备可包含:非易失性存储器;易失性存储器,其与非易失性存储器耦合;控制器,其与易失性存储器和非易失性存储器耦合,其中控制器被配置成致使所述设备进行以下操作:在易失性存储器处接收对数据的请求,基于接收对数据的请求而传输数据和散列,以及在传输数据和散列之后且在数据经认证之前执行与数据相关联的至少一个操作。
一些实例可进一步包含执行与不同于所述数据的第二数据相关联的至少一个操作,其中与所述数据或第二数据相关联的阈值数量的操作可在所述数据可在易失性存储器处经认证之前执行。
一些实例可进一步包含基于传输数据和散列而接收数据经认证的指示,其中在数据可在易失性存储器处经认证之前执行与数据相关联的至少一个操作可基于传输数据和散列。
可使用多种不同技艺和技术中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可示出信号作为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中总线可具有多种位宽度。
术语“电子通信”、“导电接触”、“连接”和“耦合”可指支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则认为组件彼此电子通信(或彼此导电接触、或彼此连接、或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子通信(或彼此导电接触、或彼此连接、或彼此耦合)的组件之间的导电路径可为开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在所述开路关系中,信号当前无法经由导电路径在组件之间传达,在所述闭路关系中,信号能够经由导电路径在组件之间传达。在例如控制器等组件将其它组件耦合在一起时,组件起始允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指其中信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位于两个组件之间的开关隔离的所述组件在开关断开时彼此隔离。在控制器隔离两个组件时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
包含存储器阵列的本文中所论述的装置可形成在例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷等各种化学物种的掺杂来控制衬底或衬底的子区的电导率。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法来执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端子装置。端子可通过例如金属的导电材料连接到其它电子元件。源极和漏极可为导电的,并且可包括重度掺杂(例如,简并)的半导体区。源极和漏极可通过轻度掺杂的半导体区或沟道分离。如果沟道是n型(即,大部分载流子为电子),则FET可被称作n型FET。如果沟道为p型(即,大部分载流子为空穴),则FET可被称作p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道电导率。举例来说,将正电压或负电压相应地施加到n型FET或p型FET可致使沟道变为导电的。在大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“接通”或“激活”。在小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“解除激活”。
本文中结合附图所阐述的描述内容描述了实例配置,并且并不表示可实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”意味着“充当实例、例子或说明”,并且不“优选于”或“优于其它实例”。具体实施方式包含提供对所描述技术的理解的具体细节。然而,可在无这些具体细节的情况下实践这些技术。在一些例子中,以框图形式展示众所周知的结构和装置以免混淆所描述实例的概念。
在附图中,类似的组件或特征可具有相同的参考标记。此外,可通过在参考标记之后跟着的短划线和在类似组件之间进行区分的第二标记来区分为相同类型的各种组件。如果在说明书中仅使用第一参考标记,则描述内容可适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一个。
可使用多种不同技艺和技术中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
可用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其被设计成执行本文中所描述的功能的任何组合来实施或执行结合本文中的本公开而描述的各种说明性块和模块。通用处理器可为微处理器,但在替代性方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置)。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果以由处理器执行的软件实施,则功能可作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。其它实例和实施方案在本公开和所附权利要求书的范围内。举例来说,由于软件的本质,本文中所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的各部分在不同物理位置处实施。而且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一个”或“中的一或多个”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得例如,A、B或C中的至少一个的列表意味着A或B或C或者AB或AC或BC或者ABC(即,A和B和C)。而且,如本文中所使用,短语“基于”不应被解释为指代封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应以相同方式解释为短语“至少部分地基于”。
提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。本公开的各种修改将对所属领域的技术人员显而易见,且本文中所定义的一般原理可在不脱离本公开的范围的情况下应用于其它变化形式。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文中所公开的原理和新颖特征一致的最宽范围。

Claims (27)

1.一种方法,其包括:
通过主机装置从易失性存储器接收数据和与所述数据相关联的第一散列;
通过所述主机装置将所述数据和所述第一散列写入到所述主机装置的高速缓存器;
通过所述主机装置使用能够由所述主机装置存取且不能够由所述易失性存储器存取的密钥来产生与所述数据相关联的第二散列,所述第二散列包括消息认证码的密码构造;以及
通过所述主机装置且在执行与所述数据相关联的操作之前使用从所述易失性存储器接收的所述第一散列和由所述主机装置产生的所述第二散列来认证所述数据。
2.根据权利要求1所述的方法,其进一步包括:
通过所述主机装置将对所述数据的请求传输到所述易失性存储器,其中接收所述数据和与所述数据相关联的所述第一散列是至少部分地基于传输所述请求。
3.根据权利要求1所述的方法,其中认证所述数据包括:
至少部分地基于产生所述第二散列而将写入到所述主机装置的所述高速缓存器的所述第一散列的至少部分与所述第二散列的至少部分进行比较;以及
至少部分地基于所述比较而确定写入到所述主机装置的所述高速缓存器的所述第一散列的所述部分与所述第二散列的所述部分是否匹配。
4.根据权利要求3所述的方法,其进一步包括:
至少部分地基于确定所述第一散列的所述部分与所述第二散列的所述部分不匹配而确定所述数据是无效的;以及
至少部分地基于避免执行与所述数据相关联的一或多个操作而将备份所述数据的指示传输到所述主机装置的电路。
5.根据权利要求1所述的方法,其中产生所述第二散列包括:
使用所述数据和能够由所述主机装置存取且不能够由所述易失性存储器存取的所述密钥来产生第三散列;以及
截断所述第三散列以产生所述第二散列。
6.根据权利要求5所述的方法,其进一步包括:
将所述第二散列分配到所述主机装置的所述高速缓存器中的线,其中所述数据是至少部分地基于将所述第二散列分配到所述主机装置的所述高速缓存器中的所述线而经认证。
7.根据权利要求1所述的方法,其进一步包括:
在使用所述第一散列和所述第二散列来认证所述数据之前通过所述主机装置执行与所述数据相关联的至少一个操作;或;以及
与使用所述第一散列和所述第二散列来认证所述数据同时通过所述主机装置执行与第二数据相关联的一定数量的操作,其中通过所述主机装置使用所述第一散列和所述第二散列来认证所述数据是至少部分地基于执行与所述数据相关联的所述至少一个操作,或执行与第二数据相关联的所述一定数量的操作,或这两者。
8.根据权利要求1所述的方法,其中所述消息认证码的所述密码构造包括基于散列的消息认证码(HMAC)。
9.根据权利要求1所述的方法,其进一步包括:
至少部分地基于所述高速缓存器的其中写入所述数据和所述第一散列的部分而确定用于产生所述第二散列的所述密钥,其中产生所述第二散列是至少部分地基于确定所述密钥。
10.根据权利要求1所述的方法,其中与所述数据相关联的所述第二散列是在所述数据和所述第一散列写入到所述主机装置的所述高速缓存器之后产生。
11.根据权利要求1所述的方法,其中所述第一散列包括密钥。
12.一种方法,其包括:
在易失性存储器处从非易失性存储器接收数据和与所述数据相关联的散列;
在所述易失性存储器处从主机装置接收对所述数据的请求;
至少部分地基于接收到对数据的所述请求而将所述数据和所述散列传输到所述主机装置;以及
在将所述数据和所述散列传输到所述主机装置之后且在所述数据经认证之前执行与所述数据相关联的至少一个操作。
13.根据权利要求12所述的方法,其进一步包括:
执行与不同于所述数据的第二数据相关联的至少一个操作,其中与所述数据或所述第二数据相关联的阈值数量的操作在所述数据在所述易失性存储器处经认证之前执行。
14.根据权利要求12所述的方法,其进一步包括:
至少部分地基于将所述数据和所述散列传输到所述主机装置而从所述主机装置接收所述数据经认证的指示。
15.根据权利要求12所述的方法,其中所述散列包括基于散列的消息认证码(HMAC),
并且其中所述数据和所述散列传输到所述主机装置以供使用不能够由所述易失性存储器和所述非易失性存储器存取的密钥进行认证。
16.根据权利要求12所述的方法,其中所述数据和所述散列在于所述易失性存储器处经接收之前存储在所述非易失性存储器处,其中在与包括所述易失性存储器的存储器装置相关联的启动序列期间,所述数据和与所述数据相关联的所述散列在所述易失性存储器处经接收。
17.根据权利要求12所述的方法,其中所述数据和与所述数据相关联的所述散列至少部分地基于包括所述易失性存储器的存储器装置的操作模式的改变而传输到所述主机装置。
18.根据权利要求12所述的方法,其中所述非易失性存储器存储与所述数据相关联的完整散列,并且其中由所述易失性存储器接收的所述散列包括所述完整散列。
19.根据权利要求12所述的方法,其中在从所述非易失性存储器接收所述数据和所述散列之前接收对数据的所述请求。
20.根据权利要求12所述的方法,其中所述易失性存储器位于不同于包括所述非易失性存储器的第二存储器装置的第一存储器装置中。
21.根据权利要求12所述的方法,其中与所述数据相关联的所述散列包括密钥。
22.根据权利要求12所述的方法,其中执行所述至少一个操作包括:
在所述数据由所述主机装置认证之前执行从所述主机装置的高速缓存器线接收的数据。
23.一种设备,其包括:
控制器,其包括被配置为高速缓存器的存储器,其中所述控制器被配置成从易失性存储器接收包括第一散列的数据且存储所述数据和所述第一散列;
第一电路,其与所述控制器耦合,并且被配置成产生与所述数据相关联的第二散列,且在执行与所述数据相关联的阈值数量的操作之前至少部分地基于所述第一散列和所述第二散列而认证所述数据,所述第二散列包括消息认证码的密码构造;以及
第二电路,其与所述第一电路耦合且被配置成从所述第一电路接收关于所述数据是否能够经认证的通知。
24.根据权利要求23所述的设备,其中所述第一电路被配置成存储不能够由所述易失性存储器存取的密钥,并且使用所述密钥来产生所述第二散列。
25.根据权利要求24所述的设备,其中所述第一电路被配置成至少部分地基于所述高速缓存器中存储所述数据和所述第一散列的部分而确定用于产生所述第二散列的所述密钥,并且至少部分地基于确定所述密钥而产生所述第二散列。
26.根据权利要求23所述的设备,其中所述第二散列包括基于散列的消息认证码,并且其中所述第一电路被配置成通过将所述第一散列的至少部分与所述第二散列的至少部分进行比较来认证所述数据。
27.根据权利要求23所述的设备,其中所述通知包括所述数据未经认证的指示,或其中所述第二电路被配置成至少部分地基于指示所述数据未经认证的所述通知而丢弃所述数据和所述第一散列;并且其中所述控制器被配置成至少部分地基于所述通知而从所述易失性存储器传输对与所述第一散列相关联的第二数据的请求。
CN202180051380.XA 2020-08-20 2021-08-10 存储器的安全和保全 Pending CN116057530A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063068046P 2020-08-20 2020-08-20
US63/068,046 2020-08-20
US17/396,531 2021-08-06
US17/396,531 US20220058295A1 (en) 2020-08-20 2021-08-06 Safety and security for memory
PCT/US2021/045413 WO2022039981A1 (en) 2020-08-20 2021-08-10 Safety and security for memory

Publications (1)

Publication Number Publication Date
CN116057530A true CN116057530A (zh) 2023-05-02

Family

ID=80270788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180051380.XA Pending CN116057530A (zh) 2020-08-20 2021-08-10 存储器的安全和保全

Country Status (3)

Country Link
US (1) US20220058295A1 (zh)
CN (1) CN116057530A (zh)
WO (1) WO2022039981A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743963B (zh) * 2020-08-25 2021-10-21 瑞昱半導體股份有限公司 電腦系統及其具有安全開機機制的電子裝置及運作狀態還原方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2703255B2 (ja) * 1988-03-15 1998-01-26 株式会社東芝 キャッシュメモリ書込み装置
JPH076117A (ja) * 1993-06-18 1995-01-10 Juki Corp データ転送方式及びデータ転送装置
JP2004056620A (ja) * 2002-07-23 2004-02-19 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7712675B2 (en) * 2003-01-15 2010-05-11 Hewlett-Packard Development Company, L.P. Physical items for holding data securely, and methods and apparatus for publishing and reading them
CN100476847C (zh) * 2006-01-18 2009-04-08 株式会社Pfu 用于处理信息的方法和设备以及计算机程序产品
US20090328218A1 (en) * 2006-08-28 2009-12-31 Mitsubishi Electric Corporation Data processing system, data processing method, and program
US20080244244A1 (en) * 2007-03-30 2008-10-02 Advanced Micro Devices, Inc. Parallel instruction processing and operand integrity verification
JP4687703B2 (ja) * 2007-10-02 2011-05-25 ソニー株式会社 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
JP5398845B2 (ja) * 2009-11-24 2014-01-29 三菱電機株式会社 情報処理装置及びプログラム
US8595510B2 (en) * 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
KR20130050696A (ko) * 2011-11-08 2013-05-16 삼성전자주식회사 메모리 시스템
US8788468B2 (en) * 2012-05-24 2014-07-22 International Business Machines Corporation Data depulication using short term history
US9189409B2 (en) * 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
US20150095661A1 (en) * 2013-09-30 2015-04-02 Microsoft Corporation Flexible Memory Addressing For Data Security
EP2860660A1 (fr) * 2013-10-11 2015-04-15 Nagravision S.A. Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé
US11030122B2 (en) * 2014-04-08 2021-06-08 Micron Technology, Inc. Apparatuses and methods for securing an access protection scheme
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
EP2955660B1 (en) * 2014-06-12 2017-08-09 Nagravision S.A. System and method for secure loading data in a cache memory
US9916436B2 (en) * 2014-10-24 2018-03-13 Physio-Control, Inc. Intelligent accessories for medical devices
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US9742568B2 (en) * 2015-09-23 2017-08-22 Dell Products, L.P. Trusted support processor authentication of host BIOS/UEFI
US10346071B2 (en) * 2016-12-29 2019-07-09 Western Digital Technologies, Inc. Validating firmware for data storage devices
US10204229B2 (en) * 2017-03-21 2019-02-12 Nxp B.V. Method and system for operating a cache in a trusted execution environment
KR102501776B1 (ko) * 2018-01-31 2023-02-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
WO2019159690A1 (ja) * 2018-02-13 2019-08-22 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び、電子機器
JP2020021385A (ja) * 2018-08-03 2020-02-06 キオクシア株式会社 メモリシステム
US11803644B2 (en) * 2019-07-23 2023-10-31 SDG Logic Inc. Security hardened processing device
US11487908B2 (en) * 2019-08-16 2022-11-01 Macronix International Co., Ltd. Secure memory

Also Published As

Publication number Publication date
US20220058295A1 (en) 2022-02-24
WO2022039981A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
CN112149189B (zh) 公钥保护技术
US11416621B2 (en) Authenticating software images
US11997212B2 (en) Payload validation for a memory system
CN113364581A (zh) 虚拟化鉴认装置
US12001707B2 (en) Host verification for a memory device
US20220058295A1 (en) Safety and security for memory
US11984155B2 (en) Updating program files of a memory device using a differential write operation
US20220083640A1 (en) Authenticating software images
US20230367575A1 (en) Techniques for managing offline identity upgrades
US20220350511A1 (en) Host identification for a memory system
US11727127B2 (en) Secure storage device verification with multiple computing devices
CN113380284B (zh) 存储器存取栅极
US12034860B2 (en) Memory write access control
US12047352B2 (en) Security configurations for zonal computing architecture
US20240070089A1 (en) Measurement command for memory systems
US20230325507A1 (en) Secure operating system update
US20220057945A1 (en) Security techniques for low power mode of memory device
US20240073002A1 (en) Generating a shared secret for an electronic system
US20240061963A1 (en) Partitioned cryptographic protection for a memory system
CN117313079A (zh) 检测存储器***中的信息修改

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20230502