CN113841129A - 存储器中的数据证明 - Google Patents

存储器中的数据证明 Download PDF

Info

Publication number
CN113841129A
CN113841129A CN202080029448.XA CN202080029448A CN113841129A CN 113841129 A CN113841129 A CN 113841129A CN 202080029448 A CN202080029448 A CN 202080029448A CN 113841129 A CN113841129 A CN 113841129A
Authority
CN
China
Prior art keywords
memory
cryptographic hash
data
host
counter
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
CN202080029448.XA
Other languages
English (en)
Inventor
A·特罗亚
A·蒙代洛
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 CN113841129A publication Critical patent/CN113841129A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/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
    • 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
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开包含用于存储器中的数据证明的设备、方法及系统。实施例包含存储器及电路系统,所述电路系统经配置以:检测所述设备的断电;产生运行时密码散列;及响应于检测到所述断电将所述运行时密码散列与密码散列作比较,其中所述密码散列经存储在所述存储器的一部分中。

Description

存储器中的数据证明
技术领域
本公开大体上涉及半导体存储器及方法,且更特定来说,涉及存储器中的数据证明。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路及/或外部可移除装置。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可能需要电力来维持其数据,并且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等。非易失性存储器可通过在未经供电时保留所存储数据而提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)等。
存储器装置可组合在一起以形成固态驱动器(SSD)、嵌入式多媒体卡(e.MMC)及/或通用快闪存储(UFS)装置。SSD、e.MMC及/或UFS装置可包含非易失性存储器(例如NAND快闪存储器及/或NOR快闪存储器),及/或可包含易失性存储器(例如DRAM及/或SDRAM)以及各种其它类型的非易失性及易失性存储器。非易失性存储器可用于各种各样的电子应用中,例如个人计算机、便携式记忆棒、数码相机、蜂窝电话、例如MP3播放器的便携式音乐播放器、电影播放器等。
例如,快闪存储器装置可包含将数据存储于例如浮动门的电荷存储结构中的存储器单元。快闪存储器装置通常使用允许高存储器密度、高可靠性及低功耗的单晶体管存储器单元。电阻可变存储器装置可包含可基于存储元件(例如具有可变电阻的电阻存储器元件)的电阻状态存储数据的电阻存储器单元。
存储器单元可经布置成阵列,且阵列架构中的存储器单元可经编程到目标(例如所期望)状态。例如,电荷可经放置于快闪存储器单元的电荷存储结构(例如浮动门)上或从所述电荷存储结构移除以将单元编程到特定数据状态。存储于所述单元的电荷存储结构上的电荷可指示所述单元的阈值电压(Vt)。快闪存储器单元的状态可通过感测存储于所述单元的电荷存储结构上的电荷(例如Vt)来确定。
存储器装置可在通电之后执行特定功能。一些存储器装置可经编程以在例如通电时检查数据完整性(例如数据证明)。数据证明可增加装置准备好以供用户使用所花费的时间。此延时可不利地影响用户体验。
附图说明
图1说明根据本公开的实施例的具有数个物理块的存储器阵列的一部分的图。
图2是根据本公开的实施例的包含主机及呈存储器装置形式的设备的计算系统的框图。
图3是根据本公开的实施例的实例数据证明过程的框图。
图4是根据本公开的实施例的包含主机及存储器装置的实例系统的框图。
图5是根据本公开的实施例的用于确定数个参数的实例过程的框图。
图6是根据本公开的实施例的用于确定数个参数的实例过程的框图。
图7是根据本公开的实施例的用于验证证书的实例过程的框图。
图8是根据本公开的实施例的用于验证签名的实例过程的框图。
图9是根据本公开的实施例的实例存储器装置的框图。
具体实施方式
本公开包含用于存储器中的数据证明的设备、方法及系统。实施例包含存储器及电路系统,所述电路系统经配置以:检测所述设备的断电;产生运行时密码散列;及响应于检测到所述断电将所述运行时密码散列与密码散列作比较,其中所述密码散列经存储于所述存储器的一部分中。在一些实例中,检测断电可包含(但不限于)接收使所述设备断电的指令(例如命令)。
许多威胁会影响存储器中(例如,存储器装置中)存储的数据。举例来说,在存储器的阵列及/或电路系统中会发生故障,其可导致在数据中发生错误。作为额外实例,黑客或其它恶意用户可尝试执行活动以出于恶意目的对数据作出未经授权改变。例如,恶意用户可尝试更改存储器中存储的数据以便不利地影响正在使用存储器执行的商业交易(例如,使所述商业交易的流程转向)(例如,以通过跳过验证支付的代码而虚假地指示已经对所提供的服务进行了支付)、正在对存储器执行的软件许可检查(例如,以通过跳过验证许可的代码而虚假地指示存储器的软件被正确许可)或正在使用存储器执行的汽车控制(例如,以跳过对零件的真实性的检查、环境检查或故障警报的检查)以及其它类型的黑客攻击活动。此类黑客攻击活动(例如攻击)可致使显著经济损失及/或可呈现显著安全及/或安全性问题。
因而,为了确保安全的存储器系统,重要的是确认(例如认证及/或证明)存储于存储器中的数据是真实的(例如,与原始编程的相同),且尚未被黑客攻击活动或其它未经授权变化更改。然而,确认存储于存储器中的数据是真实的会在存储器装置启动时产生延时。确认数据完整性可增加存储器装置准备好以供用户使用所花费的时间。此延时可不利地影响用户体验。
本公开的实施例可在装置断电时及/或在主机空闲时执行数据证明以减小及/或消除启动时的延时且改进存储器装置的整体用户体验。例如,本公开的实施例可检测断电及/或空闲主机及响应于检测到断电及/或空闲主机将运行时密码散列与存储于存储器的一部分中的密码散列作比较。在一些实例中,检测断电可包含从主机接收断电命令,且检测空闲包含在特定时段内未从主机接收到命令。
如本文中使用,“一(a/an)”或“数个”可指一或多个事物,且“多个”可指两个或更多个此类事物。举例来说,存储器装置可指一或多个存储器装置,且多个存储器装置可指两个或更多个存储器装置。另外,特定来说,本文中关于图中的元件符号所使用的标示符“R”、“B”、“S”及“N”指示如此标示的数个特定特征可被包含于本公开的数个实施例内。标示之间的数字可相同或不同。
本文的图遵循编号惯例,其中第一数字或前几个数字对应于图号且剩余数字识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,101可引用图1中的元件“01”,且类似元件可被引用为图2中的201。
图1说明根据本公开的实施例的具有数个物理块的存储器阵列101的一部分的图。存储器阵列101可为例如快闪存储器阵列,例如NAND快闪存储器阵列。作为额外实例,存储器阵列101可为电阻可变存储器阵列,例如PCRAM、RRAM、MMRAM或自旋力矩转移(STT)阵列等。然而,本公开的实施例不限于特定类型的存储器阵列。此外,存储器阵列101可为安全存储器阵列,如将在本文中进一步描述。此外,尽管图1中未展示,存储器阵列101可与和其操作相关联的各种外围电路系统一起经定位于特定半导体裸片上。
如图1中展示,存储器阵列101具有存储器单元的数个物理块107-0(块0)、107-1(块1)、…、107-B(块B)。存储器单元可为单电平单元及/或多电平单元,例如(举例来说)两电平单元、三电平单元(TLC)或四电平单元(QLC)。作为实例,存储器阵列101中的物理块的数目可为128块、512块或1,024块,但实施例不限于2的特定幂或存储器阵列101中的任何特定数目的物理块。
存储器单元的数个物理块(例如块107-0、107-1、…、107-B)可包含于存储器单元的平面中,且存储器单元的数个平面可包含于裸片上。例如,在图1中展示的实例中,每一物理块107-0、107-1、…、107-B可为单个裸片的部分。即,图1中说明的存储器阵列101的部分可为存储器单元的裸片。
如图1中展示,每一物理块107-0、107-1、…、107-B包含耦合到存取线(例如字线)的数个物理行(例如103-0、103-1、…、103-R)的存储器单元。每一物理块中的行(例如字线)的数目可为32,但实施例不限于每物理块特定数目个行103-0、103-1、…、103-R。此外,尽管图1中未展示,但存储器单元可经耦合到若干列的感测线(例如数据线及/或数字线)。
所属领域的一般技术人员应了解,每一行103-0、103-1、…、103-R可包含数页存储器单元(例如物理页)。物理页指编程及/或感测单位(例如,一起编程及/或感测为功能群组的数个存储器单元)。在图1中展示的实施例中,每一行103-0、103-1、…、103-R包括一个物理页的存储器单元。然而,本公开的实施例不限于此。例如,在实施例中,每一行可包括多个物理页的存储器单元(例如,耦合到偶数数据线的一或多个偶数页存储器单元及耦合到奇数数据线的一或多个奇数页存储器单元)。另外,针对包含多电平单元的实施例,一物理页存储器单元可存储多页(例如逻辑页)的数据(例如,上一页数据及下一页数据,其中物理页中的每一单元向上一页数据存储一或多个位且向下一页数据存储一或多个位)。
如图1中展示,一页存储器单元可包括数个物理扇区105-0、105-1、…、105-S(例如,存储器单元的子集)。每一物理扇区105-01、105-1、…、105-S的单元可存储数个逻辑扇区的数据。另外,每一逻辑扇区的数据可对应于特定页数据的一部分。作为实例,存储于特定物理扇区中的第一逻辑扇区的数据可对应于对应于第一页数据的逻辑扇区,且存储于特定物理扇区中的第二逻辑扇区的数据可对应于第二页数据。每一物理扇区105-0、105-1、…、105-S可存储系统及/或用户数据,及/或可包含开销数据,例如错误校正代码(ECC)数据、逻辑块地址(LBA)数据及元数据。
逻辑块寻址是可由主机用于识别数据逻辑扇区的方案。举例来说,每一逻辑扇区可对应于唯一逻辑块地址(LBA)。另外,LBA还可对应于(例如,动态映射到)物理地址,例如物理块地址(PBA),其可指示那个数据逻辑扇区在存储器中的物理位置。数据逻辑扇区可为数个字节的数据(例如256个字节、512个字节、1,024个字节或4,096个字节)。然而,实施例不限于这些实例。
应注意,用于物理块107-0、107-1、…、107-B、行103-0、103-1、…、103-R、扇区105-0、105-1、…、105-S及页的其它配置是可能的。举例来说,物理块107-0、107-1、…、107-B的行103-0、103-1、…、103-R可各自存储对应于可包含例如多于或少于512个字节的数据的单个逻辑扇区的数据。
图2是根据本公开的实施例的包含主机202及呈存储器装置206形式的设备的计算系统200的框图。如本文中使用,“设备”可指(但不限于)各种结构或结构的组合中的任何者,例如(举例来说)电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。此外,在实施例中,计算系统200可包含类似于存储器装置206的数个存储器装置。
在图2中说明的实施例中,存储器装置206可包含具有存储器阵列201的存储器216。存储器阵列201可类似于先前结合图1描述的存储器阵列101。此外,存储器阵列201可为安全阵列,如将在本文中进一步描述。尽管在图2中说明一个存储器阵列201,但存储器216可包含类似于存储器阵列201的任何数目的存储器阵列。
如图2中说明,主机202可经由接口204耦合到存储器装置206。主机202及存储器装置206可在接口204上通信(例如,发送命令及/或数据)。主机202及/或存储器装置206可为以下者或其部分:膝上型计算机、个人计算机、数字相机、数字记录及重放装置、移动电话、PDA、存储卡读取器、接口集线器或物联网(IoT)启用装置(例如(举例来说)汽车(例如车载及/或运输基础设施)IoT启用装置或医疗(例如可植入及/或健康监测)IoT启用装置)以及其它主机系统,且可包含存储器存取装置(例如处理器)。所属领域的一般技术人员应了解,“处理器”可意指一或多个处理器,例如并行处理系统、数个协处理器等。
接口204可呈标准化物理接口形式。举例来说,当存储器装置206在计算系统200中用于信息存储时,接口204可为串行高级技术附接(SATA)物理接口、外围组件互连高速(PCIe)物理接口、通用串行总线(USB)物理接口或小型计算机系统接口(SCSI)以及其它物理连接器及/或接口。然而,一般来说,接口204可提供用于在存储器装置206与具有接口204可兼容接收器的主机(例如主机202)之间传递控制、地址、信息(例如数据)及其它信号的接口。
存储器装置206包含与主机202及存储器216(例如存储器阵列201)通信的控制器208。例如,控制器208可发送命令以对存储器阵列201执行操作,所述操作包含用于感测(例如读取)、编程(例如写入)、移动及/或擦除数据的操作以及其它操作。
控制器208可经包含于与存储器216相同的物理装置(例如相同裸片)上。替代地,控制器208可包含于通信地耦合到包含存储器216的物理装置的单独物理装置上。在实施例中,控制器208的组件可作为分布式控制器经散布遍及多个物理装置(例如,一些组件在与存储器相同的裸片上,而一些组件在不同裸片、模块或板上)。
主机202可包含与存储器装置206通信的主机控制器(图2中未展示)。主机控制器可经由接口204将命令发送到存储器装置206。主机控制器可与存储器装置206及/或存储器装置206上的控制器208通信以读取、写入及/或擦除数据以及进行其它操作。此外,在实施例中,主机202可为如先前在本文中所描述的具有IoT通信能力的IoT启用装置。
存储器装置206上的控制器208及/或主机202上的主机控制器可包含控制电路系统及/或逻辑(例如硬件及固件)。在实施例中,存储器装置206上的控制器208及/或主机202上的主机控制器可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。而且,存储器装置206及/或主机202可包含易失性及/或非易失性存储器的缓冲器及一或多个寄存器。
举例来说,如图2中展示,存储器装置可包含电路系统210。在图2中说明的实施例中,电路系统210包含于控制器208中。然而,本公开的实施例不限于此。例如,在实施例中,电路系统210可包含于存储器216中(例如,而非控制器208中)(例如,在与存储器216相同的裸片上)。电路系统210可包括例如硬件、固件及/或软件。
电路系统210可产生用于确认(例如认证及/或证明)存储于存储器216中(例如,存储器阵列201中)的数据的运行时密码散列241。如本文中使用,确认存储于存储器阵列201中的数据可包含及/或指认证及/或证明数据是真实的(例如,与原始编程的相同),且尚未因黑客攻击活动或其它未经授权变化而更改。存储于存储器阵列201中的数据的运行时密码散列241可包括例如SHA-256密码散列。此外,存储于存储器阵列201中的数据的运行时密码散列241可包括256个字节的数据。
存储于存储器阵列201中的数据的运行时密码散列241可例如由电路系统210产生(例如计算)。在此实例中,所存储的数据的运行时密码散列241可由存储器装置206内部产生,无需外部数据在接口204移动。作为额外实例,数据的运行时密码散列241可从外部实体传递。例如,主机202可产生存储于存储器阵列201中的数据的运行时密码散列241,及将所产生的运行时密码散列241发送到存储器装置206(例如,电路系统210可从主机202接收存储于存储器阵列201中的数据的运行时密码散列241)。
运行时密码散列241可例如由电路系统210基于(例如响应于)外部命令(例如从主机202接收到的命令)而产生(例如计算)。例如,运行时密码散列241可通过读取存储于存储器阵列201中的数据及使用散列函数将数据散列而产生。作为额外实例,主机202可产生运行时密码散列241,及将所产生的运行时密码散列241发送(例如提供)到存储器装置206(例如,电路系统210可从主机202接收运行时密码散列241)。
如图2中展示,运行时密码散列241可经存储于存储器阵列201中。举例来说,运行时密码散列241可经存储于存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分中(例如,在存储器阵列201的“隐藏”区域中)。
在实施例中,存储器阵列201(例如阵列201的子集或整个阵列201)可为安全阵列(例如,将保持在控制下的存储器216的区)。在一些实例中,用户无法存取(例如写入、读取或擦除)安全阵列。举例来说,存储于存储器阵列201中的数据可包含敏感(例如非用户)数据,例如将执行用于敏感应用的主机固件及/或代码。在此实施例中,一对非易失性寄存器可用于定义安全阵列。举例来说,在图2中说明的实施例中,电路系统210包含可用于定义安全阵列的寄存器214-1及214-2。例如,寄存器214-1可定义安全阵列的地址(例如,数据的起始LBA),且寄存器214-2可定义安全阵列的大小(例如,数据的结束LBA)。一旦安全阵列已定义,电路系统210就可使用经认证及反重播受保护命令产生(例如计算)与安全阵列相关联的密码散列243(其在本文中可称为黄金散列243)(例如,使得仅存储器装置206知道黄金散列243,且仅存储器装置206能够产生及更新黄金散列243)。黄金散列243可经存储于存储器阵列201的不可存取部分中,且可在确认安全阵列的数据的过程期间使用,如将在本文中进一步描述。
存储器装置206(例如电路系统210)可确认存储于存储器阵列201中的数据。举例来说,电路系统210可响应于存储器装置206的供电(例如通电及/或加电)在使存储器装置206断电之前及/或在主机202空闲(例如,主机202没有向存储器装置206发送命令)时确认存储于阵列201中的数据。因而,存储于存储器阵列201中的数据的确认可在存储器装置206供电之后、使存储器装置206断电之前及/或在主机202空闲时启动(例如自动启动)。
作为额外实例,电路系统210可启动存储于存储器阵列201中的数据的确认。例如,主机202可发送命令到存储器装置206(例如电路系统210)以启动存储于存储器阵列201中的数据的确认。
在其中存储器阵列201是安全阵列的实施例中,先前在本文中描述的黄金散列243也可用于确认存储于存储器阵列201中的数据。举例来说,运行时密码散列241可被产生(例如计算)且与黄金散列243作比较。如果比较指示运行时密码散列241与黄金散列243匹配(例如相等),那么可确定安全阵列尚未被更改,且因此其中存储的数据是有效的。然而,如果比较指示运行时密码散列241与黄金散列243不匹配,那么此可指示存储于安全阵列中的数据已发生变化(例如,由于黑客或存储器中的故障),且可将此报告给主机202。
运行时密码散列241可响应于电路系统210检测到计算系统200断电而产生及/或与黄金散列243作比较。举例来说,电路系统210可通过控制器208从主机202接收到断电命令而检测到断电。在一些实例中,运行时密码散列241可响应于电路系统210检测到主机202空闲而产生及/或与黄金散列243作比较。在一些实例中,电路系统210可在控制器208没有来自主机202的未决命令时确定主机202是空闲的。
如图2中展示,断电计数器245及/或通电计数器247可(但不限于)存储于存储器阵列201中。在一些实例中,断电计数器245、由断电计数器245计数的断电数、通电计数器247及/或由通电计数器247计数的通电数可经存储于存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分中(例如,在存储器阵列201的“隐藏”区域中)。举例来说,由断电计数器245计数的断电数及/或由通电计数器247计数的通电数可经存储于存储器阵列201的隐藏区域中以防止主机202修改由断电计数器245计数的数及/或由通电计数器245计数的数。在一些实例中,断电计数器245及/或通电计数器247可为单调计数器。每一次计算系统200断电,断电计数器245都可递增,且每一次计算系统200通电,通电计数器247都可递增。举例来说,断电计数器可在计算系统200断电之前(例如,在存储器装置206从主机202接收到断电命令时)及/或响应于运行时密码散列与密码散列相等时递增。
在一些实施例中,阵列201及/或阵列201的一部分可响应于使断电计数器245递增及/或在使计算系统200断电之前经设置到只读模式。举例来说,存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分(例如,存储器阵列201的“隐藏”区域)可经设置到只读模式。将存储器阵列201及/或存储器阵列201的一部分调整到只读可防止存储器阵列201及/或存储器阵列201的一部分被损坏。
通电计数器247可响应于使计算系统200通电而递增。举例来说,通电计数器247可响应于计算系统200接收到通电命令而递增。响应于使通电计数器247递增及/或在使计算系统200通电之后,断电计数器245可与通电计数器247作比较。在一些实例中,存储器阵列201可响应于通电计数器245与断电计数器247相等而经设置到读取及写入模式。
如图2中展示,错误旗标249可经存储于存储器阵列201中。举例来说,错误旗标249可经存储于存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分中(例如,在存储器阵列201的“隐藏”区域中)。错误旗标249可响应于阵列201的数据被损坏而提供。举例来说,通电计数器247与断电计数器245不相等指示阵列201的数据被损坏。在一些实例中,数据可响应于通电计数器247与断电计数器245不相等而在阵列201中恢复以取代受损数据。
在一些实例中,确认旗标251可经存储于存储器阵列201中。确认旗标251可经存储于存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分中(例如,在存储器阵列201的“隐藏”区域中)。确认旗标251可指示阵列201的数据已被确认。确认旗标251还可指示阵列201的数据由于经确认而未被修改,且因而阵列201的数据不需要确认。因此,确认旗标251可响应于运行时密码散列241与密码散列243相等而触发。包含存储器216的计算系统200可响应于因为阵列201的数据已经确认而触发确认旗标251而被断电。在一些实例中,确认旗标251可响应于在使计算系统200断电之前阵列201中的写入操作而移除。如果阵列201中的写入操作在使计算系统断电之前发生,那么阵列201的数据在使计算系统200断电之前可能需要确认以防止启动时的延时。在一些实例中,确认旗标251可响应于使计算系统200通电而被清除(例如,移除)使得阵列201的数据可在使计算系统200断电之前被确认。
图2中说明的实施例可包含未说明的额外电路系统、逻辑及/或组件以便不模糊本公开的实施例。举例来说,存储器装置206可包含用于锁存通过I/O电路系统经由I/O连接器提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取存储器阵列201。此外,存储器装置206可包含与存储器阵列201分离及/或除了存储器阵列201外的主存储器,例如(举例来说)DRAM或SDRAM。进一步说明存储器装置206的额外电路系统、逻辑及/或组件的实例将在本文中进一步描述(例如,结合图9)。
图3是根据本公开的实施例的实例数据证明过程361的框图。数据证明过程361可包含产生用于确认(例如认证及/或证明)存储于存储器316中(例如,存储器阵列301中)的数据363的运行时密码散列341。如本文中使用,确认存储于存储器阵列301中的数据363可包含及/或指认证及/或证明数据363是真实的(例如,与原始编程的相同),且尚未被黑客攻击活动或其它未经授权变化更改。运行时密码散列341可通过读取存储于存储器阵列301中的数据363及使用密码散列函数365将数据363散列来产生。在一些实例中,密码散列函数365可为SHA-256密码散列函数。
如图2中展示,运行时密码散列341(例如图2中的运行时密码散列241)可经存储于存储器阵列301(例如图2中的存储器阵列201)中。举例来说,运行时密码散列341可经存储于存储器阵列301的对存储器装置(例如图2中的存储器装置206)及/或主机(例如图2中的主机202)的用户不可存取的一部分中。
在实施例中,存储器阵列301(例如阵列301的子集或整个阵列301)可为安全阵列(例如,将保持在控制下的存储器316的区)。举例来说,存储于存储器阵列301中的数据可包含敏感(例如非用户)数据,例如将执行用于敏感应用的主机固件及/或代码。在此实施例中,一对非易失性寄存器可用于定义安全阵列。举例来说,在图2中说明的实施例中,电路系统210包含可用于定义安全阵列的寄存器214-1及214-2。一旦安全阵列已定义,电路系统就可使用经认证及反重播受保护命令产生(例如计算)与安全阵列相关联的密码散列343(其在本文中可称为黄金散列343)(例如,使得仅存储器装置知道黄金散列343,且仅存储器装置能够产生及更新黄金散列343)。黄金散列343可经存储于存储器阵列301的不可存取部分中,且可在确认安全阵列的数据的过程期间使用。
数据证明过程361可响应于存储器装置(例如图2中的存储器装置206)的供电(例如通电及/或加电)在使存储器装置断电之前及/或在主机(例如图2中的主机202)空闲时开始。因而,存储于存储器阵列301中的数据363的确认可在存储器装置供电之后、使存储器装置断电之前及/或在主机空闲时启动(例如自动启动)。作为额外实例,数据证明过程361可响应于从主机接收到启动存储于存储器阵列301中的数据363的确认的命令来启动。
运行时密码散列341可被产生(例如计算)且与黄金散列343作比较。如果比较367指示运行时密码散列341与黄金散列343匹配(例如相等),那么可确定安全阵列301尚未被更改,且因此其中存储的数据363是有效的369且数据证明过程361可完成。在一些实例中,确认旗标(例如图2中的确认旗标251)可响应于运行时密码散列341与黄金散列343匹配而触发。确认旗标可指示安全阵列301的数据363已被确认,如先前在本文中描述(例如,结合图2)。然而,如果比较367指示运行时密码散列341与黄金散列343不匹配,那么此可指示存储于安全阵列301中的数据363已被损坏371(例如,由于黑客或存储器中的故障)。安全阵列301的数据363的损坏可被报告给主机(例如图2中的主机202)。在一些实例中,安全阵列301的数据363可被重新存储。
运行时密码散列341可响应于检测到计算系统(例如图2中的计算系统200)断电而产生及/或与黄金散列343作比较。在一些实例中,运行时密码散列341可响应于检测到主机(例如图2中的主机202)空闲而产生及/或与黄金散列343作比较。在一些实例中,主机可在没有来自主机的未决命令时是空闲的。
图4是根据本公开的实施例的包含主机402及存储器装置406的实例系统的框图。主机402及存储器装置406可例如分别为先前结合图2描述的主机202及存储器装置206。
计算装置可使用层分阶段启动,其中每一层确认并加载后续层且在每一层处提供越来越复杂的运行时服务。一层可由前一层服务且服务于后一层,借此创建建立在较低层上且服务于较高阶层的层的互连网络。如图4中说明,层0(“L0”)451及层1(“L1”)453在主机内。层0 451可将固件衍生秘密(FDS)密钥452提供到层1 453。FDS密钥452可描述层1 453的代码的标识及其它安全性相关数据。在实例中,特定协议(例如稳健物联网(RIOT)核心协议)可使用FDS 452确认其加载的层1 453的代码。在实例中,特定协议可包含装置标识合成引擎(DICE)及/或RIOT核心协议。作为实例,FDS可包含层1固件图像、以密码方式识别经授权层1固件的清单、在安全启动实施方案的背景下的经签名固件的固件版本号及/或装置的安全性关键配置设置。装置秘密458可用于创建FDS 452且经存储于主机402的存储器中。
主机可将数据传输到存储器装置406,如由箭头454说明。所传输的数据可包含公共的外部标识、证书(例如外部标识证书)及/或外部公共密钥。存储器装置406的层2(“L2”)455可接收所传输的数据及在操作系统(“OS”)457的操作中且在第一应用程序459-1及第二应用程序459-2上执行数据。
在实例操作中,主机402可读取装置秘密458、将层1 453的标识散列及执行包含以下的计算:
KL1=KDF[Fs(s),Hash(“immutable information(不变信息)”)]
其中KL1是外部公共密钥,KDF(例如,美国国家标准与技术研究院(NIST)特别出版物(National Institute of Standards and Technology(NIST)Special Publication)800-108中所定义的KDF)是密钥导出函数,且Fs(s)是装置秘密558。FDS 552可通过执行以下确定:
FDS=HMAC-SHA256[Fs(s),SHA256(“immutable information”)]
同样地,存储器装置406可将数据传输到主机402,如由箭头456说明。
图5是根据本公开的实施例的用于确定数个参数的实例过程的框图。图5是确定包含接着被发送(由箭头554指示)到存储器装置(例如图4中的406)的层2(例如层2 455)的外部公共标识、外部证书及外部公共密钥的参数的实例。图5中的层0(“L0”)551对应于图4中的层0 451,且同样地,FDS 552对应于FDS 452,层1 553对应于层1 453,且箭头554及556分别对应于箭头545及456。
来自层0 551的FDS 552被发送到层1 553且由不对称ID产生器561用于产生公共标识(“IDlk公共”)565及私密标识567。在缩写“IDlk公共”中,“lk”指示层k(在此实例中是层1),且“公共”指示标识被公开共享。公共标识565被说明为由延伸到主机的层1 553的右侧及外部的箭头共享。所产生的私密标识567用作输入到加密器573中的密钥。加密器573可为用于对数据加密的任何处理器、计算装置等。
主机的层1 553可包含不对称密钥产生器563。在至少一个实例中,随机数产生器(RND)536可任选地将随机数输入到不对称密钥产生器563。不对称密钥产生器563可产生与主机(例如图4中的主机402)相关联的公共密钥(“KLk公共”)569(称为外部公共密钥)及私密密钥(“KLK私密”)571(称为外部私密密钥)。外部公共密钥569可为到加密器573中的输入(作为“数据”)。加密器573可使用外部私密标识567及外部公共密钥569的输入产生结果K'575。外部私密密钥571及结果K'575可经输入到额外加密器577中,从而产生输出K”579。输出K”579是传输到层2(图4的455)的外部证书(“IDL1证书”)581。外部证书581可提供验证及/或认证从装置发送的数据的源的能力。作为实例,从主机发送的数据可通过验证证书而与主机的标识相关联,如将与图7相关联地进一步描述。此外,外部公共密钥(“KL1公共秘钥”)583可经传输到层2。因此,主机的公共标识565、证书581及外部公共密钥583可经传输到存储器装置的层2。
图6是根据本公开的实施例的用于确定数个参数的实例过程的框图。图6说明产生装置标识(“IDL2公共”)666、装置证书(“IDL2证书”)682及装置公共密钥(“KL2公共秘钥”)684的存储器装置(例如图4中的存储器装置406)的层2 655。
从主机的层1传输到存储器装置的层2 655的外部公共密钥(“KL1公共秘钥”)683(如图5中描述)由存储器装置的不对称ID产生器662用于产生存储器装置的公共标识(“IDlk公共”)666及私密标识668。在缩写“IDlk公共”中,“lk”指示层k(在此实例中是层2),且“公共”指示标识被公开共享。公共标识666被说明为由延伸到层2 655的右侧及外部的箭头共享。所产生的私密标识668用作输入到加密器674中的密钥。
存储器装置的层2 655可包含不对称密钥产生器664。在至少一个实例中,随机数产生器(RND)638可任选地将随机数输入到不对称密钥产生器664。不对称密钥产生器664可产生与存储器装置(例如图4中的存储器装置406)相关联的公共密钥(“KLk公共”)670(称为装置公共密钥)及私密密钥(“KLK私密”)672(称为装置私密密钥)。装置公共密钥670可为到加密器674中的输入(作为“数据”)。加密器674可使用装置私密标识668及装置公共密钥670的输入产生结果K'676。装置私密密钥672及结果K'676可经输入到额外加密器678中,从而产生输出K”680。输出K”680是传输回到层1(例如图4中的层1 453)的装置证书(“IDL2证书”)682。装置证书682可提供验证及/或认证从装置发送的数据的源的能力。作为实例,从存储器装置发送的数据可通过验证证书而与存储器装置的标识相关联,如将与图7相关联地进一步描述。此外,装置公共密钥(“KL2公共秘钥”)684可经传输到层1。因此,存储器装置的公共标识666、证书682及装置公共密钥684可经传输到主机的层1。
在实例中,响应于主机从存储器装置接收到公共密钥,主机可使用装置公共密钥对将发送到存储器装置的数据进行加密。反之亦然,存储器装置可使用外部公共密钥对将发送到主机的数据进行加密。响应于存储器装置接收到使用装置公共密钥加密的数据,存储器装置可使用其自身装置私密密钥对数据解密。同样地,响应于主机接收到使用外部公共密钥加密的数据,主机可使用其自身外部私密密钥对数据解密。由于装置私密密钥不与存储器装置外部的另一装置共享且外部私密密钥不与主机外部的另一装置共享,所以发送到存储器装置及主机的数据保持安全。
图7是根据本公开的实施例的用于验证证书的实例过程的框图。在图7所说明的实例中,公共密钥783、证书781及公共标识765从主机(例如,从图4中的主机402的层1 453)提供。证书781及外部公共密钥783的数据可用作到解密器785中的输入。解密器785可为用于对数据解密的任何处理器、计算装置等。证书781及外部公共密钥783的解密结果可与公共标识一起用作到次级解密器787中的输入,产生一输出。外部公共密钥783及来自解密器787的输出可指示(如在789处说明)证书是否被验证,从而产生是或否791作为输出。响应于证书被验证,从被验证的装置接收到的数据可被接受、解密及处理。响应于证书未被验证,从被验证的装置接收到的数据可被丢弃、移除及/或忽略。以此方式,可检测及避免发送恶意数据的恶意装置。作为实例,发送将被处理的数据的黑客可被识别且黑客攻击数据不会被处理。
图8是根据本公开的实施例的用于验证签名的实例过程的框图。在其中装置正发送可被验证以便避免后续否认的数据的例子中,可产生签名且签名可与数据一起发送。作为实例,第一装置可向第二装置作出请求且一旦第二装置执行所述请求,第一装置就可指示第一装置从不作出此请求。例如使用签名的防否认方法可避免被第一装置否认且确保第二装置可在没有后续困难的情况下执行所请求的任务。
存储器装置806(例如图2中的存储器装置206)可将数据890发送到主机(例如图2中的主机202)。存储器装置806可在894处使用装置私密密钥871产生签名896。签名896可经传输到主机802。主机802可在898处使用先前接收到的数据892及外部公共密钥869验证签名。以此方式,签名使用私密密钥产生且使用公共密钥验证。以此方式,用于产生唯一签名的私密密钥可对发送签名的装置保持私密同时允许接收装置能够使用发送装置的公共密钥对签名解密以进行验证。此与由发送装置使用接收装置的公共密钥进行加密且由接收装置使用接收器的私密密钥进行解密的数据的加密/解密形成对比。在至少一个实例中,装置可通过使用内部加密过程(例如椭圆曲线数字签名(ECDSA)或类似过程验证数字签名。
图9是根据本公开的实施例的实例存储器装置906的框图。存储器阵装置906可为例如先前结合图2描述的存储器装置206。
如图9中展示,存储器装置906可包含数个存储器阵列901-1到901-7。存储器阵列901-1到901-7可类似于先前结合图1描述的存储器阵列101。此外,在图9中说明的实例中,存储器阵列901-3是安全阵列,存储器阵列901-6的子集911包括安全阵列,且存储器阵列901-7的子集913及915包括安全阵列。子集911、913及915可各自包含例如4千字节的数据。然而,本公开的实施例不限于特定数目或布置的存储器阵列或安全阵列。
如图9中展示,存储器装置906可包含补救(例如恢复)块917。在存储器装置906操作期间可能发生错误(例如失配)的情况中补救块917可用作数据源。补救块917可在可由主机寻址的存储器装置906的区之外。
如图9中展示,存储器装置906可包含串行外围接口(SPI)904及控制器908。存储器装置906可使用SPI 904及控制器908以与主机及存储器阵列901-1到901-7通信,如先前在本文中描述(例如,结合图2)。
如图9中展示,存储器装置906可包含用于管理存储器装置906的安全性的安全寄存器919。举例来说,安全寄存器919可配置应用控制器且与应用控制器外部通信。此外,安全寄存器919可由认证命令修改。
如图9中展示,存储器装置906可包含密钥921。例如,存储器装置906可包含八个不同槽来存储密钥,例如根密钥、DICE-RIOT密钥及/或其它外部会话密钥。
如图9中展示,存储器装置906可包含电可擦除可编程只读存储器(EEPROM)923。EEPROM 923可提供主机可用的安全非易失性区,其中个别数据字节可被擦除及编程。
如图9中展示,存储器装置906可包含计数器(例如单调计数器)925。计数器925可用作用于从主机接收到及/或发送到主机的命令(例如,用于对命令组或序列签名)的反重播机构(例如鲜度产生器)。例如,存储器装置906可包含六个不同单调计数器,其中两者可由存储器装置906用于经认证命令,且其中四者可由主机使用。
如图9中展示,存储器装置906可包含SHA-256密码散列函数927及/或HMAC-SHA256密码散列函数929。SHA-256及/或HMAC-SHA256密码散列函数927及929可由存储器装置906用于产生用于确认存储器阵列901-1到901-7中存储的数据的密码散列及/或黄金散列,如先前在本文中描述。此外,存储器装置906可支持DICE-RIOT 931的L0及L1。
尽管本文已说明及描述特定实施例,所属领域的一般技术人员应了解,实现相同结果计算的布置可代替展示的特定实施例。本公开希望涵盖本公开的数个实施例的调试或变化。应理解,以说明性方式且非限制性方式进行上文描述。所属领域的一般技术人员在检阅上文描述之后应明白上文实施例的组合及本文未明确描述的其它实施例。本公开的数个实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求以及此类权利要求赋予的等效物的全部范围确定本公开的数个实施例的范围。
在前述具体实施方式中,出于简化本公开的目的,一些特征被一起分组在单个实施例中。本公开的此方法不应被解译为反映本公开的所公开实施例必须使用比每一权利要求中明确所述的更多的特征的意图。实情是,如以下权利要求书反映,发明主题在于少于所公开单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每一权利要求独立地作为单独的实施例。

Claims (20)

1.一种设备,其包括:
存储器;及
电路系统,其经配置以:
检测所述设备的断电;
产生运行时密码散列;及
响应于检测到所述断电而比较所述运行时密码散列与密码散列,其中所述密码散列经存储于所述存储器的一部分中。
2.根据权利要求1所述的设备,其中所述电路系统经配置以通过读取存储于所述存储器的所述部分中的数据及使用散列函数来将所述数据散列而产生所述运行时密码散列。
3.根据权利要求1所述的设备,其中所述存储器的所述部分是所述存储器的安全部分。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述存储器的所述部分由一或多个寄存器定义。
5.根据权利要求1所述的设备,其进一步包括第一计数器及第二计数器。
6.根据权利要求5所述的设备,其中所述第一计数器针对所述设备的每一通电递增,且所述第二计数器针对所述设备的每一断电递增。
7.根据权利要求4到6中任一权利要求所述的设备,其中所述第一计数器及所述第二计数器是单调计数器。
8.一种存储器中的数据证明的方法,其包括:
检测所述存储器的断电;
产生运行时密码散列;
响应于检测到所述断电确定所述运行时密码散列是否等于密码散列,其中所述密码散列经存储于所述存储器的一部分中;及
响应于所述运行时密码散列与所述密码散列相等而使断电计数器递增。
9.根据权利要求8所述的方法,其进一步包括:
响应于使所述断电计数器递增且在使所述设备断电之前将所述存储器的所述部分设置到只读模式。
10.根据权利要求8到9中任一权利要求所述的方法,其进一步包括:
响应于将所述设备通电,使通电计数器递增。
11.根据权利要求10所述的方法,其进一步包括:
响应于使所述通电计数器递增而确定所述通电计数器是否等于所述断电计数器。
12.根据权利要求11所述的方法,其进一步包括:
响应于所述通电计数器与所述断电计数器相等而将所述存储器的所述部分设置到读取及写入模式。
13.根据权利要求11到12中任一权利要求所述的方法,其进一步包括:
响应于所述通电计数器与所述断电计数器不相等而提供错误旗标。
14.一种存储器中的数据证明的方法,其包括:
检测主机是空闲的;
从存储于耦合到所述主机的存储器的一部分中的数据产生运行时密码散列;及
响应于检测到所述主机是空闲的而比较所述运行时密码散列与密码散列,其中所述密码散列经存储于所述存储器的所述部分中。
15.根据权利要求14所述的方法,其中存储于所述存储器的所述部分中的所述数据的所述密码散列包括SHA-256密码散列。
16.根据权利要求14所述的方法,其进一步包括:
响应于所述运行时密码散列与所述密码散列相等而触发确认旗标。
17.根据权利要求14所述的方法,其进一步包括:
将所述存储器通电。
18.根据权利要求17所述的方法,其进一步包括:
响应于将所述存储器通电而清除所述确认旗标。
19.一种系统,其包括:
主机;
存储器;及
电路系统,其经配置以:
检测所述主机何时空闲;
通过响应于检测到所述主机是空闲的读取存储于所述存储器的部分中的数据及使用散列函数将所述数据散列而产生运行时密码散列;及
响应于产生所述运行时密码散列而比较所述运行时密码散列与密码散列,其中所述密码散列存储于所述存储器的所述部分中。
20.根据权利要求19所述的系统,其中确认旗标响应于在使所述系统断电之前对所述存储器的所述部分进行的写入操作被移除。
CN202080029448.XA 2019-03-25 2020-03-16 存储器中的数据证明 Pending CN113841129A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/362,916 2019-03-25
US16/362,916 US11163912B2 (en) 2019-03-25 2019-03-25 Data attestation in memory
PCT/US2020/022943 WO2020197824A1 (en) 2019-03-25 2020-03-16 Data attestation in memory

Publications (1)

Publication Number Publication Date
CN113841129A true CN113841129A (zh) 2021-12-24

Family

ID=72606188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080029448.XA Pending CN113841129A (zh) 2019-03-25 2020-03-16 存储器中的数据证明

Country Status (6)

Country Link
US (2) US11163912B2 (zh)
EP (1) EP3948551A4 (zh)
JP (1) JP7101318B2 (zh)
KR (1) KR20210132723A (zh)
CN (1) CN113841129A (zh)
WO (1) WO2020197824A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001557B2 (en) * 2019-12-31 2024-06-04 Renesas Electronics America Inc. Method and system for continuously verifying integrity of secure instructions during runtime
US11782610B2 (en) * 2020-01-30 2023-10-10 Seagate Technology Llc Write and compare only data storage
US20210397363A1 (en) * 2020-06-17 2021-12-23 Micron Technology, Inc. Operational monitoring for memory devices
US20220200807A1 (en) * 2020-12-17 2022-06-23 Nxp B.V. Device attestation
US11455388B1 (en) * 2021-04-26 2022-09-27 Weeve.Network System and method for end-to-end data trust management with real-time attestation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034594A (zh) * 2011-09-30 2013-04-10 群联电子股份有限公司 存储器储存装置及其存储器控制器与密码验证方法
US20140281354A1 (en) * 2013-03-15 2014-09-18 Thomas E. Tkacik Continuous run-time integrity checking for virtual memory
US20160246736A1 (en) * 2009-01-16 2016-08-25 Teleputers, Llc System and Method for Processor-Based Security
CN107667374A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于存储器保密性、完整性和重放保护的技术
CN108475237A (zh) * 2016-01-12 2018-08-31 超威半导体公司 存储器操作加密
EP3384425A1 (en) * 2016-03-08 2018-10-10 Hewlett-Packard Development Company, L.P. Securing data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US8112618B2 (en) 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
JP5085287B2 (ja) 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
US9317708B2 (en) 2008-08-14 2016-04-19 Teleputers, Llc Hardware trust anchors in SP-enabled processors
JP2010257340A (ja) * 2009-04-27 2010-11-11 Toshiba Corp 情報処理装置、情報処理方法及びプログラム
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
TW201241618A (en) * 2011-04-13 2012-10-16 Hon Hai Prec Ind Co Ltd Apparatus and method for testing turn on/off of hard disk array
CN103999161B (zh) * 2011-12-20 2016-09-28 英特尔公司 用于相变存储器漂移管理的设备和方法
WO2013101083A1 (en) * 2011-12-29 2013-07-04 Intel Corporation An apparatus for hardware accelerated runtime integrity measurement
FR3006768B1 (fr) * 2013-06-06 2017-05-26 Continental Automotive France Procede de surveillance d'un organe fonctionnel d'un vehicule automobile
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246736A1 (en) * 2009-01-16 2016-08-25 Teleputers, Llc System and Method for Processor-Based Security
CN103034594A (zh) * 2011-09-30 2013-04-10 群联电子股份有限公司 存储器储存装置及其存储器控制器与密码验证方法
US20140281354A1 (en) * 2013-03-15 2014-09-18 Thomas E. Tkacik Continuous run-time integrity checking for virtual memory
CN107667374A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于存储器保密性、完整性和重放保护的技术
CN108475237A (zh) * 2016-01-12 2018-08-31 超威半导体公司 存储器操作加密
EP3384425A1 (en) * 2016-03-08 2018-10-10 Hewlett-Packard Development Company, L.P. Securing data

Also Published As

Publication number Publication date
US11163912B2 (en) 2021-11-02
WO2020197824A1 (en) 2020-10-01
JP2022519926A (ja) 2022-03-25
US20220058293A1 (en) 2022-02-24
US11960632B2 (en) 2024-04-16
EP3948551A1 (en) 2022-02-09
US20200311314A1 (en) 2020-10-01
JP7101318B2 (ja) 2022-07-14
KR20210132723A (ko) 2021-11-04
EP3948551A4 (en) 2022-12-21

Similar Documents

Publication Publication Date Title
US11960632B2 (en) Data attestation in memory
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
US11755406B2 (en) Error identification in executed code
CN113632084B (zh) 运行时代码执行验证方法、设备及系统
US11669643B2 (en) Block chain based validation of memory commands
CN113796045A (zh) 确认车辆的电子控制单元
US11228443B2 (en) Using memory as a block in a block chain
CN113826071A (zh) 空中更新确认
US20220138114A1 (en) Using memory as a block in a block chain
CN113632413B (zh) 使用存储器作为区块链中的块

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20230825

AD01 Patent right deemed abandoned