CN118131984A - 具有经认证的存储器设备访问事务的方法、设备和系统 - Google Patents
具有经认证的存储器设备访问事务的方法、设备和系统 Download PDFInfo
- Publication number
- CN118131984A CN118131984A CN202311639073.0A CN202311639073A CN118131984A CN 118131984 A CN118131984 A CN 118131984A CN 202311639073 A CN202311639073 A CN 202311639073A CN 118131984 A CN118131984 A CN 118131984A
- Authority
- CN
- China
- Prior art keywords
- authentication
- data
- circuit
- tag
- retrieved data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 14
- 239000000758 substrate Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 49
- 238000011156 evaluation Methods 0.000 description 17
- CLVFWRBVFBUDQU-UHFFFAOYSA-N 1,4-bis(2-aminoethylamino)-5,8-dihydroxyanthracene-9,10-dione Chemical compound O=C1C2=C(O)C=CC(O)=C2C(=O)C2=C1C(NCCN)=CC=C2NCCN CLVFWRBVFBUDQU-UHFFFAOYSA-N 0.000 description 16
- 230000009466 transformation Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100206395 Caenorhabditis elegans tag-250 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002243 precursor Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 102100031102 C-C motif chemokine 4 Human genes 0.000 description 1
- 101100054773 Caenorhabditis elegans act-2 gene Proteins 0.000 description 1
- 101100150905 Caenorhabditis elegans ham-3 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
提供了具有经认证的存储器设备访问事务的方法、设备和系统。该方法可以包括:确定CS信号已经从无效转变为有效,以及在IC设备的总线接口处接收至少目标地址信息。响应于目标地址信息,检索存储在IC设备的对应存储位置处的数据。通过认证电路的操作,使用包括至少认证参数和所检索的数据的至少一个密码功能来生成认证值。认证值可以与所检索的数据一起从IC设备被传输。还公开了对应的设备和系统。
Description
相关申请的交叉引用
本申请要求于2022年12月2日提交的美国临时专利申请第63/429,621号的权益,该美国临时专利申请的全部内容通过引用并入本文中。
技术领域
本公开内容总体上涉及对存储器设备的认证,并且更具体地,涉及实现对存储器设备访问的每次事务认证,例如经认证的读取操作。
背景技术
目前,许多采用存储器存储设备的电子平台关注数据访问操作的安全性。包括一些汽车规范的许多规范要求由存储器设备存储的代码和数据在执行之前被认证。
常规地,系统可以采用“影子”存储器(“shadow”memory)来提高安全性。在这样的布置中,可以将用于执行的代码从非易失性存储器(NVM)传送到易失性存储器。主机(例如,将执行代码的设备)可以对已经被传送到易失性存储器的代码进行认证。影子存储器方法与就地执行(XiP)设计不兼容,在就地执行设计中,代码有利地直接从NVM执行,因为仅驻留在易失性存储器上的代码被认证。
希望找到与常规方法(例如使用影子存储器的常规方法)相比提高具有存储器设备的系统的安全性的一些方式。
发明内容
实施方式可以包括针对集成电路(IC)设备建立认证参数。响应于访问命令,例如读取命令,IC设备可以在由访问命令指示的地址处访问存储在一个或更多个阵列中的数据。响应于相同的读取命令,通过IC设备上的认证电路的操作,可以使用认证参数和所访问的读取数据来生成认证值。认证值可以与所访问的读取数据一起从IC设备被传输。在一些实施方式中,所访问的数据可以是用于由请求设备执行的代码,并且IC设备可以是非易失性存储器,以实现安全的就地执行操作。
附图说明
图1是示出根据实施方式的具有经认证的事务的系统的框图。
图2A、图2B、图2C、图2D、图2E、图2F和图2G是示出根据各种实施方式的系统认证电路的图。
图3A和图3B是示出根据实施方式的生成经截断的认证值的图。
图4A、图4B、图4C和图4D是示出根据实施方式的数据和对应的认证值的输出格式的图。
图5是示出根据实施方式的提供操作的框图。
图6是示出具有“虚拟”循环的常规读取操作的时序图。
图7A、图7B和图7C是示出根据实施方式的可以代替虚拟循环传输认证值的经认证的读取操作的图。
图8A、图8B、图8C、图8D和图8E是示出根据实施方式的实现经认证的事务的图。
图9A、图9B、图9C、图9D、图9E和图9F是示出根据实施方式的针对具有LPDDR兼容接口的存储器设备的经认证的读取和写入操作的图。
图10A和图10B是示出根据实施方式的用于具有设备认证和数据认证两者的事务的系统和操作的图。
图11是可以被包括在实施方式中的认证引擎的框图。
图12A和图12B是示出根据实施方式的设备认证操作以及分布式设备和数据认证操作的时序图。
图13是示出根据实施方式的各种认证/加密操作和对应延迟的表。
图14A和图14B是根据另一实施方式的具有设备认证和对应操作的系统的图。
图15是根据实施方式的可以被包括在认证电路中的密码反馈模式的框图。
图16和图17是示出根据实施方式的密码反馈操作的表。
图18A和图18B是示出根据实施方式的生成经加密的数据和认证标签的输出反馈模式以及对应的系统操作的图。
图19A和图19B是示出根据实施方式的具有Ascon AEAD加密的系统的图。图19C是可以被包括在实施方式中的Ascon型AEAD密码系统的框图。
图20A和图20B是可以被包括在实施方式中的存储器单元阵列的示意图。
图20C是根据实施方式的存储器集成电路(IC)设备的图。
图21A是根据实施方式的主机设备的框图。
图21B示出了根据实施方式的IC主机设备的图。
图22A、图22B和图22C是示出根据实施方式的具有主机加密的系统和操作的图。
图23A和图23B是示出根据实施方式的汽车系统的图。
图24是根据实施方式的方法的流程图。
图25是根据另一实施方式的方法的流程图。
图26是根据另一实施方式的方法的流程图。
图27是根据另一实施方式的方法的流程图。
具体实施方式
根据实施方式,存储器设备可以包括内置的每次事务认证。响应于访问请求(例如,命令和/或地址信息),存储器设备可以返回由访问请求的数据,以及一个或更多个认证值。认证值可以对所返回的数据和/或存储器设备本身进行认证。根据实施方式,存储器设备与另一设备(例如,主机设备)之间的任何合适的事务可以包括认证值,并且在适当的情况下,包括经加密的数据(例如,具有经加密的写入数据和对应认证值的写入/编程命令)。存储器设备可以接收对数据的请求,然后在单个事务中服务这样的请求。在一些实施方式中,这样的单个事务可以由针对存储器设备的芯片选择(CS)信号的断言来指示。
在一些实施方式中,存储器设备可以是具有每次事务认证的非易失性存储器(NVM)设备。这样的存储器设备可以实现安全的就地执行(XiP)操作。
在一些实施方式中,所访问的数据可以是针对认证而被加密的读取数据。
在一些实施方式中,可以在访问读取数据时生成设备认证值,并在经加密的读取数据之前输出设备认证值。
在一些实施方式中,可以用不重复的数字序列生成认证值来认证事务。
在一些实施方式中,存储器设备可以包括串行接口,该串行接口可以通过同一总线接收命令和地址数据。另外地或可替选地,存储器设备可以包括与数据总线分离的命令地址总线。
图1是根据实施方式的系统100的框图。系统100可以包括可以由主机(或控制器)设备104访问的存储器设备102。存储器设备102可以包括一个或更多个存储器单元阵列106、认证电路108、命令/地址解码器电路110、控制电路112、数据输出电路114-0、数据输入电路114-1和输入/输出(IO)电路116。存储器单元阵列106可以包括用于存储数据的存储器单元。这样的存储器单元可以具有任何合适的类型,包括非易失性或易失性存储器单元。在一些实施方式中,这样的存储器单元可以是用于存储必须在没有电力的情况下保留的系统数据(包括但不限于配置数据和/或固件)的NVM单元。由NVM单元形成的存储器单元阵列106可以实现采用本文中所描述的经认证的读取事务和等同物的XiP操作。在一些实施方式中,存储器设备102可以接收至少CS信号(CS)和地址信息(ADD),以访问所存储的数据并返回这样的数据(经加密的或未经加密的)与对应的认证值。
认证值生成器电路(称为认证电路)108可以生成用于在事务中输出的一个或更多个认证值。认证电路108可以根据认证参数122操作,该认证参数122可以通过与主机设备104的通信来知道或生成。认证值可以包括数据认证值和/或设备认证值。数据认证值可以在事务期间对由存储器设备102提供的数据进行认证。设备认证值可以在事务期间对存储器设备102本身进行认证。注意,这样的认证值对应于与存储器设备进行的事务,因此显著不同于响应于事件(例如,上电或复位)的对设备的一次性认证。如本文中将更详细描述的,认证值可以是经加密的读取数据和/或与读取数据一起被传输的一个或更多个值。
IO电路116可以从主机设备104接收命令/指令来发起事务。IO电路116可以与任何合适的接口(IF)兼容,包括诸如串行外设接口(SPI)的串行IF和并行IF。IO电路116还可以向主机设备104传输数据,包括事务数据和认证值。命令和地址解码器110可以对从主机设备104接收到的命令和地址进行解码。经解码的地址可以访问存储器单元阵列106内的存储器单元。
经解码的命令可以包括适合于访问存储器单元阵列106的任何命令,包括经认证的读取命令128。如本文中所描述的,经认证的读取命令128可以访问读取数据并返回一个或更多个认证值。如将在本文中更详细地描述的,经认证的读取命令128可以采取各种形式。在一些实施方式中,存储器设备102可以被配置成对所有读取事务进行认证。在这样的情况下,所有读取命令都可以是经认证的读取命令。另外地或可替选地,经认证的读取命令可以是与标准读取命令分开的命令。控制电路112可以响应于接收到的命令生成控制信号,包括经认证的读取控制信号130。在一些实施方式中,经认证的读取控制信号130可以访问存储器单元阵列106,但是随后也可以激活认证电路108。在一些实施方式中,存储器设备102可以响应于命令(例如,读取)与对应的地址来访问所存储的数据。然而,在其他实施方式中,存储器设备102可以在没有命令的情况下响应于地址数据访问所存储的数据(即,事务的类型由存储器设备的操作状态或模式隐含)。
数据输出电路114-0可以包括用于从存储器单元阵列提供输出数据的任何合适的电路,包括但不限于感测放大器、附加解码电路、错误码(例如,ECC)生成电路、掩蔽电路等(masking circuit)。数据输入电路114-1可以包括用于向存储器单元阵列提供输入数据的任何合适的电路,包括但不限于写入缓冲器、写入放大器、编程电路(用于NVM单元)和写入掩蔽电路。
主机设备104可以包括命令/地址(CMD/ADD)生成器电路118和认证电路120。响应于请求124,CMD/ADD生成器电路118可以生成命令,并且可选地,针对与存储器设备102进行的事务生成地址数据。这样的CMD/ADD值可以包括经认证的读取操作132。如本文中所理解的,在存储器设备102已经如此配置的情况下,经认证的读取操作132可以包括标准读取命令和对应的地址。然而,在其他实施方式中,经认证的读取操作132可以生成可以不同于标准读取命令(例如,与标准读取命令相比具有不同的比特值)的经认证的读取命令。
认证操作电路120可以使用接收到的认证值和认证参数122H来认证与存储器设备102进行的事务。认证参数122H可以与存储器设备102中的认证电路108的认证参数122对应。如本文中将要描述的,认证操作电路120可以基于接收到的认证值来执行任何合适的功能。这可以包括但不限于:对经加密的数据进行解密以及生成认证值以用于与从存储器设备102接收到的认证值进行比较。在一些实施方式中,认证操作电路120可以提供所请求的数据132,如果事务已经被认证,则所请求的数据132可以是未经加密的读取数据。
以这种方式,系统可以包括存储器设备,该存储器设备可以响应于经认证的读取命令来提供认证值。这样的认证值可以对被访问的读取数据和/或提供读取数据的存储器设备进行认证。
图2A至图2G是示出根据各种实施方式的系统的认证配置的图。图2A至图2G中的每个图示出了可以被包括在存储器设备中的认证电路,以及可以被包括在对应的主机设备中的对应认证操作电路。
图2A示出了通过对读取数据的加密而进行的认证。存储器设备的认证电路208A可以包括根据认证参数222操作的加密电路208-0。认证电路208A可以采取任何合适的形式,包括专用逻辑、由一个或更多个处理器执行的指令或其组合。响应于事务(例如,读取操作),加密电路208-0可以接收来自阵列的数据234,以生成经加密的数据236。这样的加密可以根据一个或更多个加密密钥222-0发生,加密密钥222-0可以被包括在认证参数222内。经加密的数据236可以以任何合适的方式(包括但不限于通过总线)被传输至主机设备。
仍然参照图2A,主机设备的认证操作(op)电路220A可以包括根据认证参数222H操作的解密电路220-0,认证参数222H可以包括与加密密钥222-0对应的解密密钥222-1。解密电路220-0可以采取如针对加密电路208-0所描述的任何合适的形式。解密电路220-0可以提供可以是读取数据的经解密的数据232。在一些实施方式中,读取数据可以包括对应的ECC码等。
以这种方式,经加密的读取数据可以用于认证与存储器设备进行的读取事务。
图2B示出了可以提供经加密的读取数据和对应的认证值(本文中称为“标签”)两者的认证配置。存储器设备的认证电路208B可以包括加密电路208-0和标签生成电路238B。加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。标签生成电路238B可以从标签数据240B生成标签242B。如本文中所描述的,标签数据240B可以采取各种形式。在一些实施方式中,标签数据240B可以包括来自阵列的数据234或与之相关,并且因此可以用于认证数据(例如,读取数据)。另外地或可替选地,标签数据240B可以包括可以用于认证存储器设备的设备数据。标签242B可以与经加密的数据236一起被传输至主机设备。
仍然参照图2B,对应的主机设备的认证op电路220B可以包括解密电路220-0和标签评估电路244B。解密电路220-0可以采取针对图2A所描述的解密电路或者等同物的形式。标签评估电路244B可以将接收到的标签242B与比较标签246B进行比较,以生成认证结果248。认证结果248可以用于认证事务。
以这种方式,存储器设备可以返回经加密的数据和认证标签来对读取事务进行认证。
图2C示出了使用经加密的读取数据以及可以对读取数据进行认证的标签的认证。存储器设备的认证电路208C可以包括加密电路208-0和标签生成电路238C。加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。标签生成电路238C可以利用来自阵列的数据234生成标签242C,并且因此用于对阵列数据234进行认证。标签242C可以与经加密的数据236一起被传输至主机设备。
仍然参照图2C,对应的主机设备的认证op电路220C可以包括解密电路220-0、标签评估电路244C和标签生成电路238C。解密电路220-0可以采取针对图2A所描述的解密电路或者等同物的形式。标签生成电路238C可以接收经解密的数据232并生成比较标签246C。标签评估电路244C可以将接收到的标签242C与比较标签246C进行比较,以得出认证结果248。认证结果248可以用于对事务数据(例如,读取数据)进行认证。
以这种方式,经加密的读取数据和标签可以在存储器设备事务中提供数据认证。
图2D示出了可以提供经加密的读取数据和可以认证存储器设备的对应标签的认证配置。认证电路208D可以包括加密电路208-0和标签生成电路238D,加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。标签生成电路238D可以利用设备标识数据240D生成标签242D,该设备标识数据240D可以是由对应的主机设备相互已知或得出的数据。标签242D可以与经加密的数据236一起被传输至主机设备。
仍然参照图2D,对应的主机设备的认证op电路220D可以包括解密电路220-0、标签评估电路244D和标签生成电路238D。解密电路220-0可以采取针对图2A所描述的解密电路或者等同物的形式。标签生成电路238D可以利用相互已知的设备标识数据240D生成比较标签246。标签评估电路244D可以将接收到的标签242D与比较标签246D进行比较,以得出认证结果248。认证结果248可以用于认证事务与预期存储器设备对应。
以这种方式,可以用经加密的数据和对存储器设备进行认证的标签来认证事务。
图2E示出了可以提供经加密的读取数据和经加密的标签的认证配置。认证电路208E可以包括加密电路208-0和标签生成电路238E。加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。然而,加密电路208-0可以对来自阵列的数据234以及标签242E进行加密。标签生成电路238E可以生成标签242E,该标签242E可以由加密电路208-0加密以生成经加密的标签250。经加密的标签250可以与经加密的数据236一起被传输至主机设备。
仍然参照图2E,对应的主机设备的认证op电路220E可以包括解密电路220-0、标签评估电路244E和标签生成电路238E。解密电路220-0可以采取针对图2A所描述的解密电路或者等同物的形式。然而,除了经加密的数据236之外,解密电路220-0还可以对经加密的标签250进行解密。标签生成电路238E可以以与认证电路208E内的方式相同的方式生成比较标签246E。标签评估电路244E可以将经解密的标签242E与比较标签246E进行比较,以得出认证结果248。认证结果248可以对读取数据、存储器设备或两者进行认证,这取决于标签242E是如何生成的。
以这种方式,可以利用经加密的数据和经加密的标签来认证事务,经加密的标签还可以对数据和/或设备进行认证。
图2F示出了可以提供可以认证事务的经加密的读取数据和标签的认证配置。认证电路208F可以包括加密电路208-0和标签生成电路238F,加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。标签生成电路238F可以从序列值252生成标签242F,该序列值252可以随每次事务而改变。序列值252值可以以任何合适的方式生成,包括但不限于单调计数器252-0或确定性随机比特生成器(DRBG)252-1。DRBG 252-1可以利用种子值252-2来启动序列。标签242F可以与经加密的数据236一起被传输至主机设备。
仍然参照图2F,对应的主机设备的认证op电路220F可以包括解密电路220-0和标签评估电路244F。标签评估电路244F可以对接收到的标签242F进行评估,以生成认证结果248。在一些实施方式中,这样的评估可以包括将标签值(例如,计数)与指示正确序列的一个或更多个极限(例如,比先前事务更高的计数)进行比较。可选地,认证op电路220F可以包括标签生成电路238F,该标签生成电路238F可以从以与认证电路208F相同的方式生成的序列252生成比较标签246F。
以这种方式,可以通过经加密的读取数据和用来自非重复序列的数字生成的标签来认证事务。
图2G示出了可以提供经加密的读取数据、可以认证事务的标签以及可以认证数据的标签的认证配置。加密电路208-0可以采取针对图2A所描述的加密电路或者等同物的形式。第一标签生成电路238-0可以从阵列数据生成标签242-0。第二标签生成电路238-1可以从设备信息生成标签242-1。标签242-0/242-1可以与经加密的数据236一起被传输至主机设备。
仍然参照图2G,对应的主机设备的认证op电路220G可以包括解密电路220-0、第一标签评估电路244-0、第二标签评估电路244-1、第一标签生成电路238-0和第二标签生成电路238-1。解密电路220-0可以向第一标签生成电路提供经解密的读取数据232,以生成第一比较标签246-0。第二标签生成电路238-1可以利用相互已知的设备数据240G生成第二比较标签246-1。第一标签评估电路244-0可以将接收到的第一标签与第一比较标签进行比较,以生成结果248-0,该结果248-0可以认证读取数据。第二标签评估电路244-1可以将接收到的第二标签与第二比较标签进行比较,以生成结果248-1,该结果248-1可以认证存储器设备。
以这种方式,可以利用经加密的读取数据、认证数据的第一标签和认证存储器设备的第二标签来认证事务。
应当理解,图2A至2G中所示的各种标签和认证值可以是每次事务值,而不是单事件时间认证值,例如在上电或复位时生成的值。此外,所示的各种认证方法可以混合(例如,未经加密的标签可以被加密,标签可以与未经加密的读取数据一起被传输)。还应当理解,图2A至图2G的各种认证配置是作为示例提供的,并且不应被解释为限制性的。
在一些实施方式中,本文中所描述的认证电路和系统可以生成特定大小(例如,比特数)的标签。然而,可能期望具有较小的标签大小,以减少事务中传输的比特数。在一些实施方式中,初始认证值可以被截断以生成用于传输的标签。图3A和图3B是示出根据实施方式的认证值截断的图。
图3A是根据实施方式的截断电路356A。截断电路356A可以包括认证电路308,认证电路308以如本文中所描述的任何合适的方式或者等效方式生成初始标签342I。这包括使用读取数据334和/或相互数据340或两者来生成初始标签值342I。初始标签342I可以具有“N”个比特的大小。N个比特可以被截断358为更小的比特值342(示为“M”个比特)。
图3B是根据另一实施方式的截断电路356B。截断电路356B可以包括认证电路308、循环冗余码(CRC)生成器358-0和异或(XOR)电路358-1。认证电路308可以在如图3A的情况下那样操作。CRC生成器358-0可以从读取数据334生成N比特的CRC 358-2,其中N>M。异或电路358-1可以对CRC 358-2和初始标签342I的M比特部分执行异或运算。初始标签342I的M比特部分可以是连续的或不连续的。异或门358-2的输出可以是经截断的标签值342。
截断大小可以是满足传输/安全要求的任何合适值。截断电路356A/356B可以采取任何合适的形式,包括逻辑电路、由处理器执行的指令或其组合。
以这种方式,每次事务认证标签可以是较大认证值的经截断版本。
在一些实施方式中,存储器设备可以在事务(例如,读取操作)中返回经加密的数据与单独的标签。图4A至图4D是示出根据实施方式的事务数据顺序的图。在图4A至图4D中,应当理解,标签442也可以是经加密的标签。此外,经加密的数据436也可以是未经加密的数据。
图4A示出了标签442如何能够跟在经加密的数据436之后。在一些实施方式中,当利用读取数据生成标签442以认证读取数据时,可以出现这样的布置。
图4B示出了标签442如何能够在经加密的数据436之前。在一些实施方式中,当不利用读取数据生成标签442时(例如,标签对设备进行认证),可以出现这样的布置。
图4C示出了标签如何能够与事务数据穿插。在所示的实施方式中,输出可以包括第一经加密数据部分436-0,接着是第一标签部分442-0,接着是第二经加密数据部分436-1,接着是第二标签部分442-1。然而,其他实施方式可以包括经加密的数据部分与标签(或标签部分)或标签部分与经加密的数据(或经加密的数据部分)的任何其他合适的穿插。
图4D示出了如何将不同的标签与经加密的数据一起输出。在所示的实施方式中,输出可以包括第一标签442-A,接着是经加密的数据436,接着是第二标签442-T。在一些实施方式中,第一标签442-A可以认证设备,而第二标签442-T可以认证经加密的数据。可替选实施方式可以包括任何其他合适的顺序,或者两个以上的标签。
以这种方式,实施方式可以包括不同顺序的事务数据和认证标签。
在一些实施方式中,在参与经认证的事务之前,主机设备和存储器设备可以在提供操作或相关操作中建立认证参数。图5是示出根据实施方式的系统500的提供操作的框图。系统500可以包括通过总线588通信的存储器设备502和主机设备504。存储器设备502可以包括控制器电路560、设备信息564、存储器单元阵列506和认证电路508。控制器560可以控制存储器设备502的操作。设备信息564可以识别存储器设备502,并且在一些实施方式中,可以由制造商存储在安全的存储位置中。存储器单元阵列506可以存储由主机设备504在安全事务中访问的数据。认证电路508可以采用本文中所描述的认证电路中的任何认证电路或等同物的形式,基于认证参数522生成认证值。认证参数522可以采用本文中所描述的认证参数中的任何认证参数或等同物的形式,包括但不限于加密密钥、密钥前体、计数器值、种子值或初始值。
主机设备504可以包括主机控制器562和认证op电路520。主机控制器562可以控制主机设备的操作。认证op电路520可以采用本文中所描述的认证op电路中的任何认证op电路或等同物的形式,包括利用与存储器设备502的参数对应的参数522H执行认证操作。
总线系统588可以包括一条或更多条信号线,包括单向和/或双向信号线。
在一些实施方式中,存储器设备502可以用证明操作566-0来识别自己。这样的动作可以包括存储器设备502在总线系统588上传输一个或更多个预定消息或信号。
在一些实施方式中,主机设备504和存储器设备502可以执行设备认证操作566-1。这样的动作可以包括主机设备504与存储器设备502交换数据。在一些实施方式中,主机控制器562可以访问公钥或私钥基础设施562-0。一旦主机设备504已经认证了存储器设备502,主机设备504和存储器设备502就可以通信以建立每次事务认证参数522/522H。
虽然图5示出了其中每次事务参数可以通过设备之间的通信来建立的操作,但是在其他实施方式中,这样的参数可以由制造商来建立。
以这种方式,存储器设备可以与另一设备一起执行提供步骤,以建立每次事务认证参数。
根据一些实施方式,认证值可以在与存储器单元访问时间对应的时间段(例如,虚拟循环(dummy cycle))内被传输。这样的操作对于不需要读取数据的设备认证值可能是有利的。
为了更好地理解实施方式的特征,将参照图6描述常规的存储器操作。图6是示出常规NOR存储器访问操作的时序图,并且包括时钟信号CK和命令-地址-数据总线(IO[7:0])的波形。
参照图6,在时间t0处,跟随有地址数据(A)的读取命令(C)可以由存储器设备经由总线接收。在时间t1处,由于由访问读取数据的时间导致的内置延迟,在读取数据被输出到总线上之前,可能会发生多个“虚拟”循环。这样的虚拟循环在图6中用“Du”表示。在某些设备中,虚拟循环的数量可以由配置寄存器建立,并且可以根据时钟速度而变化。然而,由于电路访问所存储的数据的时间,总是存在最小数量的虚拟循环。在时间t2处,可以输出对应于读取命令的读取数据,示出为D0至D31。
图7A是可以被包括在实施方式中的虚拟循环配置寄存器的图。虽然可以以常规方式建立多个虚拟循环768-1,但是寄存器也可以禁用虚拟循环768-0,以使得认证数据能够在这样的时间段内被传输。
图7B是可以被包括在实施方式中的认证配置寄存器的图。这样的寄存器可以控制认证数据是否可以在常规地针对虚拟循环保留的时间段内先于事务数据。在所示的实施方式中,寄存器设置770-0可以启用或禁用这样的认证值,并且寄存器设置770-1可以建立认证数据可以占用的循环数。
图7C是示出根据实施方式的代替虚拟循环被传输的认证数据的时序图。在时间t0之前,CS#信号可以转变为有效(在该实施方式中为低)。在时间t0处,可以在总线上接收跟随有地址数据(A)的读取命令(C)。在时间t1处,可以传输认证数据(标签)(示出为T0至T15)。如本文中指出的,在一些实施方式中,这样的标签可以是可以在接收到命令数据(C)时生成的设备认证值,因为生成该标签不需要读取地址和读取数据。在时间t2处,在认证标签之后,可以输出对应于读取命令的读取数据,示出为D0至D31。虽然图7C示出了标签值在紧接在最后一个地址值之后的循环中被传输,但是在其他实施方式中,在地址值(A)与第一标签值(T0)之间可以存在一个或更多个虚拟循环。注意,CS#可以在整个事务中保持有效。
以这种方式,实施方式可以在对应于读取延迟的时间段内传输事务认证值。
在一些实施方式中,可以在存储器设备中启用或禁用每次事务认证。在一些实施方式中,存储器设备可以被置于操作模式,在操作模式中,某些事务(例如,读取操作)总是被认证。可替选地,存储器设备可以解释命令集以区分标准(即,未经认证的)事务与经认证的事务。图8A至图8E是示出可以区分经认证的事务与未经认证的事务的存储器设备操作的图。
图8A是示出根据实施方式的存储器设备的认证电路808的框图。认证电路808可以从阵列834接收数据。无认证路径808B可以允许在没有任何认证值的情况下输出数据832。认证值生成器路径808A可以由启用信号872启用,并且作为响应,可以生成认证值(例如,经加密的数据和/或标签)。
图8B示出了根据实施方式的认证模式选择电路874B。电路874B可以包括配置寄存器876-0和配置数据解码器876-1。配置寄存器876-0可以包括用于配置存储器设备的各种操作的寄存器,包括认证寄存器876-2。配置数据解码器876-1可以响应于认证寄存器876-2中的数据生成启用信号872。
图8C是示出设备配置寄存器设置876-0的示例的表。寄存器设置876-0可以控制存储器设备的各种操作,并且可以在寄存器地址(XXXXh)处被访问。写入寄存器876-2的比特值可以建立用于认证操作的变量。
以这种方式,一旦认证寄存器已经被编程,所有特定类型的事务(例如,读取操作)都可以根据本文中所描述的技术中的任何技术被认证。
图8D示出了根据另一实施方式的认证模式选择电路874D。电路874D可以包括命令/地址缓冲器876-3、地址解码器810A和命令解码器810C。命令/地址缓冲器876-3可以在接口878处接收命令和/或地址数据以及CS信号。如果CS信号是有效的,则地址解码器810A可以对地址值进行解码以选择存储器单元(或寄存器)。命令解码器810C可以对命令进行解码,该命令包括用于经认证的操作的命令。在对包括认证的命令进行解码时,命令解码器810C可以激活认证启用指示872和用于认证操作(例如,认证电路)的控制信号880。
图8E是示出具有串行接口878的存储器设备如何处理标准命令的表,标准命令包括但不限于:读取命令(READ)、快速读取命令(FAST_READ)、页编程命令(PP)和扇区擦除命令(SE)。这样的标准命令可以具有对应的经认证的对应命令882-0至882-2,这可以使得针对本文中所描述的操作生成认证值。
以这种方式,响应于特定的接收到的命令,存储器设备可以认证对应的事务。
实施方式可以包括提供任何合适配置的每次事务认证的存储器设备。虽然这样的实施方式可以包括与可以承载命令、地址和数据值的总线兼容的设备,但是其他实施方式可以与具有与地址总线分离的数据总线的总线兼容。
图9A是根据另一实施方式的存储器设备902的框图。存储器设备902可以包括NVM单元阵列906、第一IF 978S和第二IF 978D。NVM单元阵列906可以包括用于存储可以在读取事务中被访问的数据的NVM单元。第一IF 978S可以是具有用于数据总线SPI_DQ的连接的串行接口,数据总线SPI_DQ可以承载命令、地址和数据。第一IF 978S还可以接收芯片选择信号SPI_CS和定时时钟SPI_CK。在一些实施方式中,第一IF 978S可以与一个或更多个SPI标准兼容。
第二IF 978D可以包括用于可以承载命令和地址值的命令地址(CA)总线的连接,以及用于可以传输数据(例如,读取数据、写入数据)的数据总线(DQ)的连接。CA总线可以是单向的。DQ总线可以是双向的。第二IF 978D还可以提供用于定时输出数据的数据选通信号DQS,并且接收芯片选择信号CS和时钟信号CK。第二IF 978D可以包括用于在数据总线DQ处提供认证值的认证电路以用于认证与存储器设备902进行的事务。在一些实施方式中,第二IF可以与一个或更多个LPDDR标准兼容。
图9B是示出与LPDDR4接口兼容的经认证的读取命令982的一个示例的表。这样的经认证的读取命令982可以由类似如图9A中的978D所示出的接口来处理。经认证的读取命令982可以包括在CS信号为高(H)的情况下以及在CS为低(L)的情况下所提供的比特。特定比特值(CA0至CA6)可以由命令解码器解码以指示经认证的读取操作。
图9C是根据实施方式的读取操作的时序图。这样的读取操作可以由类似图9A中所示出的存储器设备来执行。在时间t0处,可以接收激活命令(ACT1/ACT2),随后是经认证的读取命令982-0C,其随后可以是CAS命令982-1C。响应于这样的命令数据,在时间t1处,存储器设备可以输出认证值(T)。在一些实施方式中,可以在读取延迟981之后输出认证值。如果认证值(T)是设备认证值,则读取延迟981可以小于标准读取命令的读取延迟。然而,在其他实施方式中,认证值(T)可以不是单独的标签,而是经加密的读取数据本身。此外,可以在对应经加密的读取数据之后输出认证标签。
图9D是根据另一实施方式的读取操作的时序图。这样的读取操作可以由类似图9A中所示出的存储器设备来执行。在时间t0处,可以接收经快速认证的读取命令(NVM1A/NVM2A)。响应于这样的命令数据,存储器设备可以输出认证值(T)。这样的认证值的形式和定时可以以与图9C相同的方式变化。
图9E是示出与LPDDR4接口兼容的经认证的写入命令982W的一个示例的表。这样的经认证的写入命令982W可以由如针对图9B所描述的接口或等同物来处理。
图9F是根据实施方式的写入操作的时序图。这样的写入操作可以由用于类似图9A中所示出的存储器设备的主机设备来执行。在时间t0处,可以接收经认证的写入命令(写入/CAS2)。在时间t1处,可以接收写入数据(W),随后接收与写入操作对应的认证值(T)。这样的认证值的形式和定时可以以与图9C相同的方式变化。
应当理解,图9B至图9F中所示出的命令可以是在经认证的模式下发出的命令或者是可以与标准读取命令不同地被解码的经认证的命令。
以这种方式,存储器设备可以响应于在命令地址总线上接收到的命令来在数据总线上提供每次事务认证值。
图10A和图10B是示出根据另一实施方式的具有经认证的事务的系统和操作的图。图10A示出了包括通过SPI总线1088进行通信的存储器设备1002、主机设备1004的系统1000。存储器设备1002可以是包括用户阵列1006、认证电路1008和输出管道1090的NOR型NVM设备。用户阵列1006可以包括可通过地址访问的NOR型NVM单元。认证电路1008可以是利用相关联数据的认证加密(AEAD)引擎。
主机设备1004可以是具有用于控制存储器设备1002的存储器控制器功能的片上系统设备。主机设备1004可以包括输入缓冲器1092、认证op电路1020和评估电路1044。输入缓冲器1092可以从存储器设备1002接收经加密的读取数据和标签。认证op电路1020可以包括AEAD解密引擎。
现在将描述系统1000的操作。响应于来自主机设备1004的命令,存储器设备1002可以从用户阵列1006检索目标数据1034。在所示出的实施方式中,这样的目标数据可以是与主机设备1004的存储(例如,高速缓存行)对应的访问量,在所示出的实施方式中其可以是32字节。目标数据1034可以由AEAD引擎1008来处理,AEAD引擎1008可以生成对应于目标数据1034的认证标签1042。可选地,AEAD引擎1008可以生成经加密的数据(即,密码文本)1036。
在所示出的实施方式中,经加密的数据1036(或可选的,未经加密的数据)可以是256b值。对应的标签1042可以是128b值。在一些实施方式中,经加密的数据1036可以在标签值1042之前可获得。输出管道1090可以对经加密的(或未经加密的)数据1036和标签值1042进行组织以用于从NOR存储器1002输出。
(未)经加密的数据1036和标签1042可以在SPI总线1088上传输,并且由主机设备1004的输入缓冲器1092接收。AEAD解密引擎1020可以生成比较标签1146,并且可选地,对经加密的数据1036进行解密以提供输入数据1032。评估电路1044可以将所生成的标签1146与接收到的标签1042进行比较。如果这样的标签相等(==),则可以生成有效指示1048-0,并且可以将输入数据1032释放至其目的地(例如,处理器或高速缓存位置)。如果这样的标签不相等(!=),则可以生成错误指示1048-1,从而指示输入数据1032还未被认证。
图10B是示出与图10A中所示出的操作类似的操作的时序图。在大约时间t0处,可以激活芯片选择信号CS#,并且来自主机设备1004的命令和地址数据可以在SPI总线1088上传输。时间t1可以指示地址数据的最后一个时钟循环。在命令和地址数据的传输之后,在大约时间t2处,数据选通信号RWDS可以被激活。请注意,在图10A和其他附图以及其对应的描述中,SPI总线1088仅是用于说明本公开内容的一个实施方式的示例,而不应当被解释为限制。在其他实施方式中,可以使用其他类型的总线以在主机SoC 1004与NOR存储器1002之间传输数据。
大约在时间t3处,可以通过存储器设备1002传输用于事务的数据(其可以被加密)。在大约时间t4处,可以输出对应于数据的标签。在大约时间t5处,CS#信号可以返回至无效状态,从而结束事务。
在地址数据的最后一个时钟循环(t1)与SPI总线上存在读取数据(其可以被加密)之间可以存在延迟。在所示出的实施方式中,这样的延迟可以包括在200MHz的时钟速度下的20个时钟循环。数据(其可以被加密)可以在32个突发(burst)中通过16个时钟(即,以双倍数据速率)从NOR存储器1002输出。标签可以在16个突发中通过8个时钟传输。
以这种方式,系统可以提供明确的设备和数据认证,因为标签可以认证数据,并且用于生成标签的加密密钥可以认证存储器设备。
图11是可以被包括在实施方式中的AEAD加密引擎1108的框图。AEAD引擎1108可以包括预数据部分1108-0、数据部分1108-1和后数据部分1108-2。预数据部分1108-0可以在不需要读取(例如,事务)数据的情况下生成值。预数据部分1108-0可以以初始值1194-0开始,初始值1194-0可以由主机设备相互建立或以其他方式已知。可以将初始值1194-0应用于第一计数器1194-1,可以将第一计数器1194-1的输出应用于增量器1194-2/1194-4以及第二计数器1194-3和第三计数器1194-5。可以将来自第一计数器1194-1、第二计数器1194-3和第三计数器1194-5的输出应用于块密码电路1194-6/1194-7/1194-8,块密码电路1194-6/1194-7/1194-8可以根据密钥K对计数器值进行加密。
数据部分1108-1可以接收读取数据,读取数据可以被划分为两个部分1134-0/1134-1。读取数据的第一部分1134-0可以与第二块密码1194-7的输出进行异或1194-9,以创建经加密的数据的第一部分1136-0。读取数据的第二部分1134-1可以与第三密码块1194-8的输出进行异或1194-9。在一些实施方式中,经加密的数据1136-0/1136-1可以被转发以从存储器设备输出。
后数据部分1108-2可以包括利用密钥相关常数对第一经加密数据1136-0执行伽罗瓦乘法(Galois multiplication)(multH)1194-10。结果可以与第二经加密数据1136-1进行异或1194-9,并且该结果经受另一multH运算1194-10。multH运算1194-10的结果可以与经认证的数据的长度len(A)和经加密数据的长度len(E)连接的比特表示进行异或1194-9。结果可以经受另一multH运算1194-10,并且该结果可以与第一块密码1194-6的输出进行异或。结果可以是认证标签1142。
以这种方式,存储器设备可以在读取数据被访问之前或者在读取数据被访问的同时执行不需要数据的认证操作的部分。此外,如果认证标签的生成利用经加密的读取数据,则可以在生成认证标签之前或者在生成认证标签的同时输出这样的经加密的读取事务数据。
根据实施方式,可以针对事务生成认证标签,但认证标签可以对设备而不是数据进行认证。在这样的情况下,可以在事务的操作之前执行认证操作。
图12A是示出针对提供认证设备的标签的存储器设备的操作的时序图。所示出的实施方式可以包括类似图10B中所示出的项目。然而,标签(T0至T15)可以在读取延迟时间段(例如,在t1与t4之间)中输出。在图12A的实施方式中,标签可以在读取数据(D0至D15)紧之前,读取数据可以被加密也可以不被加密。
仍然参照图12A,可以使用接收主机设备已知的值和/或方法以任何合适的方法来生成认证标签(T0至T15)。在一些实施方式中,存储器设备可以包括基于哈希的消息认证码(HMAC)电路,HMAC电路可以对可以随着每个新事务而更新的相互已知的值(例如计数器或DRBG)进行操作。CS#信号确保所描述的操作发生在同一事务中。
以这种方式,存储器设备可以在读取数据被访问之前或在读取数据被访问的同时对设备数据执行认证操作。可以在读取数据延迟时间期间输出得到的认证标签。
图12B是示出针对提供与事务数据一起分布的不同标签类型的存储器设备的操作的时序图。所示出的实施方式可以包括类似图12A中所示出的项目。然而,除了在读取延迟时间段中输出的设备认证标签(A0至A15)之外,还可以在读取数据(D0至D15)之后在时间t5处输出数据认证标签(T0至T15)。
以这种方式,存储器设备可以在输出流中分发设备和数据认证值与事务数据。
实施方式可以使用任何合适的认证/加密技术来提供经认证的事务。技术的类型可以取决于生成结果的速度(例如,时钟)以及所期望的安全级别。图13是示出可以被包括在实施方式中的各种认证/加密技术的表。图13的表是以示例的方式提供的,并且不应当被解释为限制性的。
图13包括示出以下的列:密码技术的类型(加密)、事务数据是否被加密(数据经加密)、数据是否经认证(数据经认证)、设备是否经认证(设备认证)、是否存在添加至事务的初始延迟(初始延迟添加)以及添加的总延迟的示例(总延迟添加)。
仍然参照图13,加密/认证的类型可以包括:Ascon AEAD,其可以包括类似图19A至图19C中所示出的操作;以及AES-GCM,其可以包括类似针对图11所描述的操作或等同物。HMAC数据可以包括对事务数据的HMAC操作以生成标签。HMAC CRC可以包括对从事务数据生成的CRC的HMAC操作以生成标签。HMAC计数器可以包括对计数器值或其他序列值的HMAC操作以生成标签。经加密的CRC可以包括对从事务数据生成的CRC进行加密以生成标签。经加密的计数器可以包括对计数器值或其他序列值进行加密以生成标签。图13的各种方法和值是通过示例的方式提供的,而不应当被解释为限制性的。
以这种方式,认证操作可以根据所期望的安全级别和添加至事务的可接受延迟量,根据任何合适的方式来生成认证值。
图14A是根据另一实施方式的系统1400的框图。系统1400可以包括类似图10A的项目,并且这样的类似项目用相同的附图标记来指代,但是前导数字是“14”而不是“10”。
图14A可以以许多方式与图10A不同。首先,加密引擎和解密引擎可以不同。在NOR存储器1402中,认证电路1408可以是加密引擎1408,其除了接收读取数据1434之外,还接收密钥值、初始值、计数器值(CTR)和另一值(ID),该另一值(ID)可以是主机设备也已知的另一标识值,例如随机数。
在主机设备1404中,解密电路1420可以接收经加密的数据1436和经加密的标签1450,并且使用与NOR存储器1402所使用的相同的密钥值和IV来执行解密操作。解密引擎1420可以输出经解密的数据1432和经解密的标签1442。标签比较电路1444可以使用与NOR存储器1402相同的CTR值和ID值来生成比较标签,以用于与经解密的标签1442进行比较。结果可以是认证失败1448-1或认证成功1448-0。请注意,SPI总线1488仅是用于说明本公开内容的一个实施方式的示例,而不应当被解释为限制。在其他实施方式中,可以使用其他类型的总线来在主机SoC 1404与NOR存储器1402之间传输数据。
图14B是用于示出类似图14A的系统的操作的时序图。图14B包括类似图10B的项目,然而,事务数据(eD0至eD31)被加密,并且对应的标签(eT0至eT15)被加密。在所示出的实施方式中,所示出的操作可以发生在由有效CS#信号指示的单个事务中。
以这种方式,经认证的存储器设备事务可以利用加密引擎来生成经加密的数据和对应的标签。
图15是示出可以被包括在类似图14A的实施方式中的加密引擎1508的框图。加密引擎1508可以在密码反馈模式下操作,并且可以包括块密码操作1508-0/1508-1/1508-2和异或运算1594-9。在一些实施方式中,块密码操作1508-0/1508-1/1508-2可以是AES128块加密。
第一块密码操作1508-0可以使用密钥对IV进行加密。结果可以与第一数据部分D[15:0]进行异或1594-9以生成第一经加密数据1536-0。可以在第二密码块操作1508-1中使用密钥对第一经加密数据1536-0进行加密,并且结果与第二数据部分D[31:16]进行异或1594-9以生成第二经加密数据1536-1。可以在第三密码块操作1508-2中使用密钥对第二经加密数据1536-1进行加密,并且结果与相互认证值(CTR||ID)进行异或1594-9以生成经加密的标签(例如,经加密的计数器值)1550。相互认证值(CTR||ID)可以采用本文中所描述的相互认证值或等同物的形式。
图16是示出基于密钥大小的AES块密码操作中的次数或轮次的表。虽然实施方式可以使用任何合适大小的密钥,但是在一些实施方式中,可以选择较小的密钥大小(128比特)来减少处理时间。
图17是示出针对图15所示出的各种操作的处理时间量(即,时钟)的表。如所示出的,生成经加密的数据和经加密的标签可以在13个时钟循环内完成。应当理解,这样的定时仅是通过示例的方式提供的。在其他实施方式中,可以在以比用于对数据传输计时的时钟速度更快的时钟速度操作的存储器设备电路上执行认证操作。
以这种方式,存储器设备可以包括密码反馈模式以在经认证的事务中快速生成经加密的数据和对应的经加密的标签。
图18A是示出可以被包括在类似图14A的实施方式中的另一加密引擎1808的框图。加密引擎1808可以是输出反馈模式引擎,并且可以包括块密码操作1808-0/1808-1/1808-2/1808-3和异或运算1894-9。
第一块密码操作1808-0可以使用密钥对IV进行加密。结果可以与计数器值(CTR||ID)进行异或1894-9以生成经加密的计数器标签1850-1,并且与加密密钥一起被转发至第二块密码操作1808-1。来自第二块密码操作1808-1的结果可以与第一数据D[15:0]进行异或1894-9以生成经加密的数据1836的第一部分,并且与加密密钥一起被转发至第三块密码操作1808-2。来自第三块密码操作1808-2的结果可以与第二数据D[31:16]进行异或1894-9以生成经加密的数据1836的第二部分,并且与加密密钥一起被转发至第四块密码操作1808-3。来自第四块密码操作1808-3的结果可以与对应于与另一相互值(CTR||ID)连接的数据[31:0]的ECC码进行异或1894-9以生成ECC经加密的标签1850-0。
图18B是针对使用类似图18A所示出的加密的系统的时序图。图18B示出了类似图12B中所示出的操作。然而,在来自主机的命令和地址数据之后,存储器设备可以首先返回经加密的计数器标签(C0至C15),随后是经加密的数据(D0至D31),随后是经加密的ECC标签(E0至E15)。这样的顺序可以从由输出反馈模式引擎提供的执行顺序产生。
以这种方式,存储器设备可以包括输出反馈模式以在经认证的事务中快速生成经加密的数据和对应的标签。
图19A是根据另一实施方式的系统1900的框图。系统1900可以包括类似图14A的项目,并且这样的类似项目用相同的附图标记来指代,但是前导数字是“19”而不是“14”。
图19A与图14A的不同之处在于,加密引擎和解密引擎可以是Ascon AEAD型引擎。在NOR存储器1902中,认证电路1908可以是加密引擎1908,其除了接收读取数据1934之外,还接收密钥值、初始值(IV)和随机数值,这些对于主机设备来说也是已知的。请注意,SPI总线1988仅是说明本公开内容的一个实施方式的示例,并且不应当被解释为限制。在其他实施方式中,可以使用其他类型的总线以在主机SoC 1904与NOR存储器1902之间传输数据。
在主机设备1904中,解密电路1920可以接收经加密的数据1936和经加密的标签1950,并且使用与NOR存储器1902所使用的相同的密钥值、IV和随机数来执行解密操作。解密引擎1920可以输出经解密的数据1932。此外,解密引擎1920可以从经解密的数据、密钥、IV和随机数生成经加密的比较标签1946。标签比较电路1944可以将接收到的经加密的标签1950与由解密引擎1920生成的经加密的标签进行比较。结果可以是认证失败1948-1或认证成功1948-0。
图19B是用于示出针对类似图19A的系统的操作的时序图。图19B包括类似图14B的项目,然而,事务数据(eD0至eD31)可以在20个时钟(在200MHz下)之后可获得,随后是对应的经加密的标签(eT0至eT15)。
以这种方式,经认证的存储器设备事务可以利用Ascon AEAD加密引擎来生成经加密的数据和对应的经加密的标签。
图19C是示出可以被包括在类似图19A的实施方式中的Ascon AEAD加密引擎1908的框图。加密引擎1908可以接收两个16字节部分D[15:0]和D[31:16]的数据,并且生成对应的经加密数据部分:经加密的数据01936-0和经加密的数据1 1936-1,以及16字节的经加密的标签:经加密的标签1950。加密引擎1908可以包括变换操作1994-0/1994-1A/1994-1B/1994-2和异或运算1994-90至1994-96。变换操作(1994-0/1994-1A/1994-1B/1994-2)可以将变换功能“p”执行多轮(“a”或“b”)。如针对Ascon类型密码所理解的,这样的变换可以包括三个步骤,包括与常数进行异或、利用5比特“S盒”的逐位替换以及线性扩散。
加密引擎1908可以包括初始化部分1908-0、加密部分1908-1和标签生成部分1908-2。初始化部分1908-0可以接收通过连接64比特IV、128比特密钥和128比特随机数而形成的初始输入值。第一变换操作1994-0可以在输入值上执行12轮。得到的192比特输出值可以与经填充的密钥值(064||K128)进行异或1994-90,并且得到的值可以与值0191||1进行异或1994-91。加密部分1908-1可以将从初始化部分1908-0输出的第一128比特数据与输出(例如,读取数据)的第一部分D[15:0]进行异或1994-92来生成第一经加密数据:经加密数据0 1936-0。
第二变换操作1994-1A可以在经加密的数据(经加密的数据0 1936-0)和来自异或运算1994-91的192比特值上执行8轮。从第二变换功能1994-1A输出的第一128比特可以与输出数据的第二部分D[31:16]进行异或1994-93以生成第二经加密数据(经加密的数据11936-1)。第三变换操作1994-1B可以接收作为第一输入的第二经加密数据(经加密的数据1)和从第二变换操作1994-1A输出的192比特。从第三变换操作1994-1B输出的128比特可以与值1||0128进行异或1994-94。
标签生成部分1908-2可以接收异或运算1994-94的输出作为到第四变换操作1994-2的第一输入。从第三变换操作1994-1B输出的最后192比特可以与经填充的密钥值(K128||064)进行异或1994-95以生成到第四变换操作1994-2的第二输入。第四变换操作1994-2可以输出128比特值,该128比特值可以与密钥(K128)进行异或1994-96以生成经加密的标签(经加密的标签1950)。以这种方式,可以使用Ascon类型密码对单个事务存储器访问操作进行认证。
虽然实施方式可以包括任何合适的NVM阵列结构或NVM单元类型,但是一些实施方式可以包括1-晶体管(1T)NOR型阵列。图20A是可以被包括在实施方式中的1T NOR阵列2006A的示意图。阵列2006A可以包括被布置成行和列的多个存储器单元(一个存储器单元示出为2006-0A),其中同一行的存储器单元被连接到同一字线(一个字线示出为2006-2A),并且同一列的存储器单元被连接到同一位线(一个位线示出为2006-1A)。在一些实施方式中,存储器单元(2006-0A)可以由单个晶体管结构形成,在控制栅极与沟道之间具有电荷存储结构2006-3A。电荷存储结构2006-3A可以存储一个或更多个数据比特作为电荷(包括无电荷),而不需要电力来维护数据。电荷存储结构2006-3A可以采取任何合适的形式,包括但不限于:浮动栅极、电荷存储电介质(例如,替换栅极)或其组合。
在一些实施方式中,如本文中所描述的经认证的读取命令及等同物可以用于访问非易失性存储器单元,以实现从NOR存储器设备快速且安全地读取数据,包括XiP代码读取操作。
实施方式还可以包括任何合适的易失性阵列结构或易失性存储器单元类型。图20B是可以被包括在实施方式中的可能的易失性存储器单元阵列的示意图。图20B示出了阵列2006B,阵列2006B可以包括被布置成行和列并且连接至一个或更多个位线(例如,2006-1B)和字线(例如,2006-2B)的多个易失性存储器单元(一个易失性存储器单元示出为2006-0B)。易失性存储器单元(2006-0B)可以采用任何合适的形式,包括但不限于DRAM单元2006-0B1和/或SRAM单元2006-0B2。SRAM单元2006-0B2可以包括但不限于4-晶体管(4T)、6T和/或8T变型。
虽然实施方式可以包括具有各种互连部件的设备和系统,但是实施方式也可以包括可以执行本文中所描述的发起者和/或响应者设备功能的单一设备。在一些实施方式中,这样的单一设备可以有利地是紧凑的单个集成电路(即,芯片)。图20C示出了根据本文中所描述的其他实施方式的封装存储器IC设备2002,其可以响应于来自另一设备(例如,主机设备)的请求而执行每次事务认证。经加密的数据和/或认证值可以在一个或更多个外部总线连接(一个外部总线连接示出为2016-0)上输出。然而,根据实施方式的存储器设备可以包括任何其他合适的集成电路封装类型,以及设备芯片到电路板或衬底上的直接结合。
以这种方式,IC存储器设备可以通过传输经加密的数据和/或一个或更多个认证标签来认证事务,所述一个或更多个认证标签可以对被传输的数据和/或IC存储器设备本身进行认证。
虽然实施方式可以包括NVM设备,但是实施方式也可以包括可以通过与NVM设备兼容的接口针对经认证的事务生成命令和地址值的存储器控制器电路。这样的存储器控制器可以是主机设备的一部分。图21A示出了根据实施方式的存储器控制器2104M。
存储器控制器2104M可以包括命令队列2104-2、写入队列2104-3、读取队列2104-4、事务处理电路2104-0和IF电路2104-1。命令队列2104-2、写入队列2104-3和读取队列2104-4可以连接至控制器IF 2104-5,控制器IF 2104-5可以是较大主机设备的一部分,或者可以经由通信路径连接至主机设备。命令队列2104-2可以通过控制器IF 2104-5接收存储器请求以访问连接至总线2188的NVM设备。在一些实施方式中,命令可以区分经认证的事务和标准事务。然而,在其他实施方式中,不存在这样的区别,并且存储器控制器2104M可以生成适当的命令信号来指示经认证的事务。写入队列2104-3可以通过总线2188接收要被编程到NVM设备中的写入数据。读取队列2104-4可以通过总线2188输出从NVM设备接收到的读取数据。
事务处理电路2104-0可以包括经认证的读取命令生成电路2118,并且可选地可以包括认证操作电路2108。经认证的命令生成电路2118可以针对将被NVM设备识别为经认证的请求而不是标准请求的命令生成比特值。经认证的命令可以采用本文中所描述的经认证的命令中的任何或等同物的形式。认证操作电路2120可以执行如本文中所描述的用于认证事务数据的处理中的一些或全部处理或等同处理。然而,在替选实施方式中,这样的处理可以通过经由读取队列2104-4接收读取数据和/或经由写入队列2104-3提供写入数据的电路(未示出)来执行。
接口2104-1和对应的总线2188可以是任何合适的总线,包括但不限于双向串行总线和/或单向命令地址总线与双向并行数据总线。
以这种方式,存储器控制器可以生成经认证的事务命令以供存储器设备进行处理。
虽然实施方式可以包括具有结合主机设备操作的存储器设备的系统,但是实施方式还可以包括具有认证op电路的独立主机设备以及在单个IC封装中形成的一个或更多个存储器设备IF。在图21B中示出了这样的实施方式。图21B以透视俯视图2104T和仰视图2104B示出了封装的主机设备。主机设备2104T/2104B可以包括多个物理连接(例如,2116-0),其全部或一部分可以连接至本文中所描述的存储器设备IF。如本文中所描述的以及等同物,这样的IF可以接收经认证的事务以进行处理。在一些实施方式中,主机设备可以是片上系统(SoC)类型的设备。应当理解,主机设备可以包括任何其他合适的封装类型。
以这种方式,IC主机设备可以通过接收经加密的数据和/或一个或更多个认证标签来处理经认证的事务以对接收到的事务数据进行认证。
虽然实施方式可以包括具有可以将数据与认证值一起传输的存储器设备的系统,但是实施方式还可以包括可以将数据与认证值一起传输至存储器设备的主机设备。图22A示出了根据这样的实施方式的系统2200。
系统2200可以包括类似图19A中所示出的项目,并且这样的类似项目由相同的附图标记来指代,但是前导数字是“22”而不是“19”。在图22A中,主机设备2204可以包括类似图19A中的存储器设备1902的加密电路的加密电路。这样的加密电路可以利用AEAD引擎2208对写入/编程数据2234进行加密,并且生成经加密的标签2250和经加密的数据2236。经加密的标签2250和数据2236可以通过总线2288传输至存储器设备2202。这样的数据可以伴随有命令(例如,写入编程)或者在命令之前。
存储器设备2202可以包括类似图19A中的主机设备1904的解密电路的解密电路。可以在输入缓冲器2292处接收经加密的标签2250和数据2236。AEAD引擎2220可以对数据进行解密并生成经加密的标签2246,以用于在比较电路2244中与接收到的经加密的标签2250进行比较。另外,存储器设备2202可以包括访问控制电路2249,该访问控制电路2249可以控制经解密的数据2232是否被写入或编程到用户阵列2206中。
虽然图22A示出了具有特定类型(即,Ascon AEAD)的加密电路的主机设备2204,但是替选实施方式可以包括任何其他合适的加密电路。此外,主机设备2204可以包括如本文中所描述的解密电路和等同物。遵循同样的规则,虽然存储器设备2202包括特定类型的解密电路,但是替选实施方式可以包括任何其他合适的解密电路。此外,存储器设备2202可以包括如本文中所描述的加密电路和等同物。
图22B是示出根据实施方式的主机设备的认证操作的时序图。主机设备可以将CS#信号断言为有效,并且然后发出与数据相关的命令(2013B)和对应的地址值(A)。随后,可以由主机设备发送数据(W0至W31)与对应标签数据(T0至T15)。主机设备然后可以将CS#信号返回至无效电平。在一些实施方式中,命令2103B可以是写入命令或编程命令,并且数据(W0至W31)可以是写入/编程数据。虽然图22B示出了地址(A)与数据(W0至W31)之间的延迟,但是在其他实施方式中,这样的数据(W0至W31)可以直接跟随在地址数据之后。此外,标签数据(T0至T15)可以在数据(W0至W31)之前被传输,或者可以与数据(W0至W31)穿插被传输。
图22C是示出根据另一实施方式的主机设备的认证操作的时序图。主机设备可以发出非数据相关命令(2013C)与对应标签数据(T0至T15)。
以这种方式,主机设备可以发出具有或不具有对应数据的命令以及标签值。
实施方式可以包括任何需要快速、安全地访问存储数据的合适系统。然而,实施方式在从高可靠性、安全的存储器设备访问代码的系统例如汽车系统中可能是有利的。图23A示出了根据实施方式的汽车系统2300A。系统2300A可以包括第一NVM设备2302-0、第二NVM设备2302-1、SoC2304-0、汽车微控制器(MCU)2304-1、传感器2307-3、汽车控制2307-0、汽车通信系统2307-1和汽车电力系统2307-2,并且可选地可以包括动态随机存取存储器(DRAM)设备2397。
SoC 2304-0和第一NVM设备2302-0可以是根据本文中所示出的实施方式中的任何实施方式的主机设备和对应的NVM存储器设备。因此,使用经认证的事务,SoC 2304-0可以安全地从NVM设备2302-0就地执行代码,从而消除了在执行之前将这样的代码复制到“影子”易失性存储器以进行认证的需要。在一些实施方式中,SoC 2304-0可以配置NVM设备2302-0以用于经认证的事务。可替选地,SoC 2304-0可以拥有包括不同于标准命令的经认证的命令的命令集,其中,NMV设备2302-0理解这样的经认证的命令(即,可对这样的经认证的命令进行解码)。类似地,MCU 2304-1和第二NVM 2302-1可以是根据本文中所示出的实施方式中的任何实施方式的主机设备和对应的NVM设备或者等同物。
虽然可以包括DRAM设备2397,但是这样的设备可以用于除了对代码影子化(shadowing code)之外的目的,因为Soc 2304-0/MCU 2304-1可以从NVM设备2302-0/2302-1就地执行代码。
以这种方式,汽车控制系统可以包括控制设备与NVM设备之间的每次事务认证,包括通过这样的经认证的事务就地执行代码。
参照图23B,在图中示出了根据实施方式的汽车系统2398。汽车系统2398可以具有利用从NVM设备访问的固件进行操作的许多子系统(两个子系统示出为2300-0和2300-1)。这样的子系统(2300-0、2300-1)可以包括电子控制单元(ECU)和/或高级驾驶员辅助系统(ADAS)。然而,在其他实施方式中,这样的子系统可以包括仪表板显示/控制子系统和/或信息娱乐子系统,这只是众多可能示例中的两个。每个子系统(2300-0、2300-1)可以包括主机设备和一个或更多个NVM设备,并且通过如本文中所描述的每次事务认证或等同物来采用固件认证。
以这种方式,汽车可以通过经认证的事务来快速、安全地访问NVM设备。
虽然实施方式可以包括本文中参照各种操作、设备和系统描述的方法中的任何方法,但是现在将参照流程图描述其他方法。应当理解,所描述的方法的全部或部分可以彼此组合。
图24是根据实施方式的方法2499的流程图。可以由如本文中所描述的存储器设备的电路或等同物来执行方法2499。方法2499可以包括确定并存储认证参数2499-0a。这样的动作可以包括存储器设备与主机设备通信以建立用于每次事务认证的参数,包括但不限于:密钥、密钥前体、设备标识值、计数器值、种子值(例如,IV)、加密算法的标识以及密钥基础设施的标识。然而,如本文所述,认证参数的全部或一部分可以通过制造步骤(例如,编程到设备的安全存储器中的值)来建立。
方法2499可以确定CS信号是否有效2499-0b。如果CS信号不是有效的(来自2499-0b的“否”),则方法可以等待这样的指示。如果CS信号有效(来自2499-0b的“是”),则可以在总线连接处接收命令和地址2499-1。这样的动作可以包括接收与本文中所描述的总线IF中的任何总线IF兼容的命令和地址数据,所述总线IF包括但不限于:串行总线IF(例如,SPI型总线、CAN型总线、I2C型总线、USB型总线)以及并行总线IF(例如,DDR型总线,包括LPDDR型总线)。
方法2499可以确定是否已经接收到经认证的读取命令2499-2。这样的动作可以包括确定存储器设备是否处于特定模式以及/或者确定接收到的命令比特值是否对应于经认证的读取操作。如果还未接收到经认证的读取命令(来自2499-2的“否”),则可以相应地处理接收到的命令2499-3。如果已经接收到经认证的读取命令(来自2499-2的“是”),则可以在由读取命令所指示的地址处访问读取数据2499-4。这样的动作可以包括对接收到的地址值进行解码。
方法2499可以使用认证参数针对读取操作生成一个或更多个认证值2499-5。这样的动作可以包括本文中所描述的动作中的任何动作和等同动作,包括但不限于:对读取数据进行加密,从读取数据生成标签,以及根据存储器设备和命令发布设备(例如,主机)两者互相已知的数据来生成标签。
所生成的认证值可以从总线连接被传输2499-6。这样的动作可以包括本文中所描述的动作中的任何动作和等同动作,包括但不限于:传输经加密的读取数据,传输一个或更多个未经加密的标签,以及传输一个或更多个经加密的标签。所传输的标签可以在对应的读取数据之前被传输、在对应的读取数据之后被传输或者与读取数据穿插被传输。
以这种方式,响应于到存储器设备的经认证的读取命令来提供认证值。
图25是根据另一实施方式的方法2599的流程图。可以由本文中所描述的存储器设备的电路及等同电路来执行方法2599。方法2599可以包括与主机设备一起执行提供操作以建立包括读取数据加密密钥的认证参数2599-0。数据可以存储在NVM阵列中2599-1。在阵列中存储数据可以包括由主机或其他设备将数据编程到NVM阵列中。
如果CS信号有效(来自2599-2a的“是”),则可以在串行总线连接处接收命令和地址2599-2b。在一些实施方式中,这样的动作可以包括NOR NVM设备在SPI型总线上接收命令和地址。所接收的命令可以被解码2599-3。这样的动作可以包括存储器设备上的命令解码器电路的操作。
方法2599可以根据存储器设备的配置而变化。如果存储器设备被配置成区分经认证的读取命令与标准命令,则方法2599可以确定所接收到的命令是否是经认证的读取命令2599-4。如果还未接收到经认证的读取命令(来自2599-4的“否”),则方法可以确定是否已经接收到标准读取命令2599-5。如果还未接收到标准读取命令(来自2599-5的“否”),则可以处理(非读取)命令2599-6。
如果存储器设备未被配置成区分经认证的读取命令和标准命令,则方法2599可以跳过2599-4,并且确定所接收到的命令是否是读取命令2599-5。如果已经接收到读取命令(来自2599-5的“是”),则方法可以确定设备是否处于经认证的读取模式2599-7。这样的动作可以包括在存储器设备或其他这样的设备配置电路(例如,受保护的寄存器、熔断器、反熔丝等)中设置模式寄存器。
如果已经接收到经认证的读取命令(来自2599-4的“是”)或在经认证的读取模式下接收到读取命令(来自2599-7的“是”),则可以对对应地址进行解码2599-8。这样的动作可以包括存储器设备的地址解码器的操作。可以访问该地址处的读取数据2599-9。这样的动作可以包括任何合适的访问操作,包括访问预定大小的数据(例如,32B高速缓存行)。
可以使用加密密钥对读取数据进行加密2599-10。这样的动作可以包括任何合适的密码技术,包括但不限于通过存储器设备上的一个或更多个块密码电路。可以使用认证参数来生成认证标签2599-11。这样的动作可以包括本文中所描述的标签生成方法中的任何标签生成方法和等同方法。因此,所生成的标签可以是数据认证标签2599-12和/或设备认证标签2599-13。然后可以在串行总线连接处发送经加密的读取数据和认证标签2599-14。这样的动作可以包括根据本文中所描述的实施方式或等同物对标签与经加密的数据进行排序和/或将标签与经加密的数据进行穿插。
以这种方式,方法可以与主机设备一起执行提供操作以建立认证参数。响应于经加密的读取命令请求,可以对读取数据进行加密并且与认证标签一起输出,该认证标签可以认证读取数据,可以认证存储器设备,或者可以认证两者。
图26是根据另一实施方式的方法2699的流程图。可以由如本文中所描述的主机设备及等同物来执行方法2699。方法2699可以包括确定认证参数2699-0。这样的动作可以包括与存储器设备通信以建立用于如本文中所描述的每次事务认证的参数。此外,可以通过制造步骤来建立认证参数的全部或一部分。
CS信号可以被断言为有效2699-1a。然后可以在总线连接上发送读取命令和地址2699-1b。这样的动作可以包括发送标准读取命令(例如,不要求认证的读取命令)或经认证的读取指令。总线连接可以采用本文中所描述的总线连接中的任何总线连接的形式。
可以接收经认证的读取事务数据2699-2a。这样的动作可以包括接收单独的经加密的读取数据、经加密的读取数据与一个或更多个标签、或者未经加密的读取数据与一个或更多个标签。CS信号可以被断言为无效状态2699-2b。可以利用认证参数来认证该事务2699-3。这样的动作可以包括本文中所描述的各种主机认证操作或等同操作。
以这种方式,主机设备可以向存储器设备发出命令,并且认证所产生的与存储器设备进行的事务。
图27是根据另一实施方式的方法2799的流程图。可以由如本文中所描述的主机设备的电路和等同电路来执行方法2799。方法2799可以包括与存储器设备一起执行提供操作以确定包括读取数据加密密钥的认证参数2799-0。在一些实施方式中,在不存在经认证的读取命令的情况下,方法2799可以针对经认证的读取操作设置配置寄存器2799-1。这样的动作可以包括将预定值写入存储器设备中的配置寄存器。
方法2799可以接收读取数据请求2799-2。这样的动作可以包括由主机设备服务的应用请求存储在地址处的数据。这样的地址可以是物理地址,或者是可以被转换为物理地址的逻辑地址。
可以生成经认证的读取命令2799-3。在存储器设备被配置成将所有读取命令评估为经认证的读取命令的情况下,这样的动作可以包括发出标准读取命令。然而,在存储器设备可以区分经认证的读取命令和读取命令的情况下,这样的动作可以包括生成适当的比特值以标识经认证的读取命令。CS信号可以被断言为有效2799-4a,并且经认证的读取命令和地址可以在串行总线连接处被传输2799-4b。这样的动作可以包括本文中所描述的接口/标准中的任何接口/标准或等同物。
可以接收经加密的读取数据与一个或更多个认证标签2799-5a。这样的动作可以包括接收本文中所描述的各种格式和等同格式的经加密的读取数据和标签。CS信号可以被断言为无效2799-5b。可以使用读取数据加密密钥对读取数据进行解密2799-6。然后可以使用与经加密的读取数据一起接收的一个或更多个标签来对读取操作进行认证2799-7。这样的动作可以采用本文中所描述的形式中的任何形式或等同形式。这可以包括:针对对读取数据进行认证的标签,使用经解密的读取数据来评估认证标签2799-8;以及/或者针对对设备进行认证的标签,使用认证参数来评估认证标签2799-9。
如果认证标签指示事务无效(来自2799-10的“否”),则方法2799可以返回并等待接收另一读取数据请求2799-2。如果认证标签指示事务是有效的(来自2799-10的“是”),则经解密的读取数据可以被转发至请求者2799-11。方法2799然后可以返回并等待接收另一读取数据请求2799-2。
以这种方式,主机设备可以与存储器设备建立认证参数并发出经认证的读取命令。接收到的经加密的读取数据可以被解密,并且可以利用一个或更多个接收到的标签对读取操作进行认证。
实施方式可以包括方法、设备和系统,其包括:在集成电路(IC)设备处接收CS信号;确定CS信号已经从无效转变为有效;以及在IC设备的总线接口处接收至少目标地址信息。响应于目标地址信息,存储在IC设备的对应的存储位置处的数据可以被检索。通过IC设备的认证电路的操作,利用使用至少认证参数和所检索的数据的至少一个密码功能生成认证值。将认证值与所检索的数据一起从IC设备传输。接收目标地址、检索数据、生成认证值以及将认证值与所检索的数据一起传输都发生在CS信号从无效转变为有效之后保持有效时。
实施方式可以包括方法、设备和系统,其具有:存储电路,其被配置成存储认证参数和数据;控制电路,其被配置成,当芯片选择(CS)信号保持被断言为有效时,检索存储在设备中的由目标地址信息指示的位置处的数据;认证电路,其被配置成,当CS信号保持被断言为有效时,利用使用认证参数和所检索的数据的至少一个密码功能生成认证值;以及总线接口电路,其被配置成接收CS信号和目标地址信息,并且当CS信号保持被断言为有效时,将认证值与所检索的数据一起传输;其中,存储电路、控制电路、认证电路、IO电路和总线接口电路由同一IC衬底形成。
实施方式可以包括方法、设备和系统,其具有IC设备,IC设备包括:存储电路,其被配置成存储认证参数和数据;控制电路,其被配置成当芯片选择(CS)信号保持被断言为有效时,检索存储在设备中的由目标地址信息指示的位置处的数据;以及认证电路,其被配置成当CS信号保持被断言为有效时,利用使用至少认证参数和所检索的数据的至少一个密码功能生成认证值。总线系统可以被配置成,当CS信号保持被断言为有效时,向IC设备传输至少目标地址信息和CS信号,以及将认证值与所检索的数据一起从IC设备传输。
根据实施方式的方法、设备和系统还可以包括:通过认证电路的操作,对所检索的数据进行加密以生成经加密的数据;以及与认证值一起输出的所检索的数据是经加密的数据。
根据实施方式的方法、设备和系统还可以包括如下IC设备,所述IC设备包括至少一个存储器单元阵列;以及存储位置是存储器单元阵列中的多个存储位置中的至少一个存储位置。
根据实施方式的方法、设备和系统还可以包括如下IC设备,所述IC设备包括多个寄存器;以及存储位置是寄存器中的至少一个寄存器。
根据实施方式的方法、设备和系统还可以包括:在总线接口处接收命令与目标地址值,该命令标识要由IC设备执行的操作;以及在CS信号在最初从无效转变为有效之后保持有效时接收命令。
根据实施方式的方法、设备和系统还可以包括:从包括以下的组中选择将认证值与所检索的数据从IC设备一起传输:从总线接口传输以及通过不同于总线接口的数据输出端传输。
根据实施方式的方法、设备和系统还可以包括:通过主机设备的操作,将CS信号从无效转变为有效;从IC设备接收所检索的数据和认证值;使用至少认证参数和认证值来对所检索的数据进行认证;以及使用经认证的所检索的数据执行处理器功能。
根据实施方式的方法、设备和系统还可以包括:与所检索的数据一起输出的认证值具有从包括以下的组中选择的顺序:在所检索的数据之后输出,在所检索的数据之前输出,以及与所检索的数据穿插输出。
根据实施方式的方法、设备和系统还可以包括:总线接口电路还被配置成按照从包括以下的组中选择的顺序来相对于所检索的数据传输认证值:在所检索的数据之后输出,在所检索的数据之前输出,以及与所检索的数据穿插输出。
根据实施方式的方法、设备和系统还可以包括:主机设备,该主机设备耦接至总线系统并被配置成:将CS信号断言为有效;以及将至少目标地址信息传输至IC设备。
根据实施方式的方法、设备和系统还可以包括:具有主机认证电路的主机设备,该主机认证电路被配置成使用认证参数来对从IC设备接收到的所检索的数据进行认证。
根据实施方式的方法、设备和系统还可以包括:主机认证电路,该主机认证电路包括Ascon型经认证的密码。
根据实施方式的方法、设备和系统还可以包括:具有至少一个处理器的主机设备,该至少一个处理器被配置成使用由主机认证电路认证的所检索的数据来执行功能。
应当理解,贯穿本说明书对“一种实施方式”或“实施方式”的引用意味着结合该实施方式描述的特定特征、结构或特性被包括在本发明的至少一种实施方式中。因此,要强调并应当理解的是,在本说明书的各个部分中对“实施方式”或“一种实施方式”或“可替选的实施方式”的两个或更多个引用不一定都是指相同实施方式。此外,在本发明的一种或更多种实施方式中,特定的特征、结构或特性可以适当地组合。
类似地,应当理解,在本发明的示例性实施方式的前述描述中,出于简化本公开内容、帮助理解各种发明方面中的一个或更多个方面的目的,本发明的各种特征有时在单个实施方式、图或其描述中被组合在一起。然而,本公开内容的方法不应被解释为反映权利要求需要比每个权利要求中明确列举的特征更多的特征的意图。而是,发明方面在于少于单个前述公开实施方式的所有特征。因此,具体实施方式之后所附的权利要求特此明确地并入该具体实施方式中,其中每个权利要求独立地作为该发明的单独实施方式。
虽然已经参照说明性实施方式描述了本发明,但是该描述不旨在以限制意义进行解释。在参照了本说明书之后,对本领域技术人员而言,说明性实施方式的各种修改和组合以及本发明的其他实施方式将是明显的。因此,所附权利要求意在涵盖任何这样的改型或实施方式。
Claims (20)
1.一种认证方法,包括:
在集成电路IC设备处接收芯片选择CS信号;
确定所述CS信号已经从无效转变为有效;
在所述IC设备的总线接口处接收至少目标地址信息;
响应于所述目标地址信息,检索存储在所述IC设备的对应的存储位置处的数据;
通过所述IC设备的认证电路的操作,利用使用至少认证参数和所检索的数据的至少一个密码功能生成认证值;以及
将所述认证值与所检索的数据一起从所述IC设备传输;其中,
在接收所述目标地址信息、检索所述数据、生成所述认证值以及传输所述认证值和所检索的数据时,所述CS信号保持有效。
2.根据权利要求1所述的认证方法,还包括:
通过所述认证电路的操作,对所检索的数据进行加密以生成经加密的数据;以及
与所述认证值一起输出的所检索的数据是所述经加密的数据。
3.根据权利要求1所述的认证方法,其中:
所述IC设备包括至少一个存储器单元阵列;以及
所述存储位置是所述存储器单元阵列中的多个存储位置中的至少一个存储位置。
4.根据权利要求1所述的认证方法,其中:
所述IC设备包括多个寄存器;以及
所述存储位置是所述寄存器中的至少一个寄存器。
5.根据权利要求1所述的认证方法,还包括:
在所述总线接口处接收命令与所述目标地址信息,所述命令标识要由所述IC设备执行的操作;以及
在所述CS信号保持有效时接收所述命令。
6.根据权利要求1所述的认证方法,其中:
从包括以下的组中选择将所述认证值与所检索的数据一起从所述IC设备传输:从所述总线接口传输;以及通过不同于所述总线接口的数据输出端传输。
7.根据权利要求1所述的认证方法,还包括:
通过主机设备的操作,
将所述CS信号从无效转变为有效,
从所述IC设备接收所检索的数据和所述认证值,
使用至少所述认证参数和所述认证值来对所检索的数据进行认证,以及
使用经认证的所检索的数据来执行处理器功能。
8.根据权利要求1所述的认证方法,其中:
与所检索的数据一起输出的所述认证值具有从包括以下的组中选择的顺序:在所检索的数据之后输出;在所检索的数据之前输出;以及与所检索的数据穿插输出。
9.一种集成电路设备,包括:
存储电路,其被配置成存储认证参数和数据;
控制电路,其被配置成:当芯片选择CS信号保持被断言为有效时,检索存储在所述集成电路设备中的由目标地址信息指示的位置处的数据;
认证电路,其被配置成:当所述CS信号保持被断言为有效时,利用使用所述认证参数和所检索的数据的至少一个密码功能生成认证值;以及
总线接口电路,其被配置成:
接收所述CS信号和所述目标地址信息,以及
当所述CS信号保持被断言为有效时,将所述认证值与所检索的数据一起传输;其中,
所述存储电路、所述控制电路、所述认证电路和所述总线接口电路由同一集成电路衬底形成。
10.根据权利要求9所述的集成电路设备,其中:
所述认证电路还被配置成:当所述CS信号保持被断言为有效时,对所检索的数据进行加密以生成经加密的数据;以及
所述总线接口电路被配置成:当所述CS信号保持被断言为有效时,将所述认证值与所述经加密的数据一起传输。
11.根据权利要求9所述的集成电路设备,其中:
所述存储电路包括存储器单元阵列;以及
所述数据存储在所述存储器单元阵列中。
12.根据权利要求9所述的集成电路设备,其中:
所述存储电路包括多个寄存器;以及
所述数据存储在所述寄存器中的至少一个寄存器中。
13.根据权利要求9所述的集成电路设备,其中,所述总线接口还被配置成:在所述CS信号保持被断言为有效时,接收命令信息与所述目标地址信息。
14.根据权利要求9所述的集成电路设备,其中:
所述总线接口电路还被配置成按照从包括以下的组中选择的顺序来相对于所检索的数据传输所述认证值:在所检索的数据之后输出;在所检索的数据之前输出;以及与所检索的数据穿插输出。
15.一种认证系统,包括:
集成电路IC设备,其包括:
存储电路,其被配置成存储认证参数和数据,
控制电路,其被配置成:当芯片选择CS信号保持被断言为有效时,检索存储在所述IC设备中的由目标地址信息指示的位置处的数据,以及
认证电路,其被配置成:当所述CS信号保持被断言为有效时,利用使用至少所述认证参数和所检索的数据的至少一个密码功能生成认证值;以及
总线系统,其被配置成:当所述CS信号保持被断言为有效时,
将至少所述目标地址信息和所述CS信号传输至所述IC设备,以及
将所述认证值与所检索的数据一起从所述IC设备传输。
16.根据权利要求15所述的认证系统,其中:
所述认证电路还被配置成:当所述CS信号保持被断言为有效时,对所检索的数据进行加密以生成经加密的数据;以及
所述总线系统被配置成:当所述CS信号保持被断言为有效时,将所述认证值与所述经加密的数据一起传输。
17.根据权利要求15所述的认证系统,还包括:
主机设备,其耦接至所述总线系统并且被配置成:
将所述CS信号断言为有效,以及
将至少所述目标地址信息传输至所述IC设备。
18.根据权利要求17所述的认证系统,其中:
所述主机设备包括主机认证电路,所述主机认证电路被配置成使用所述认证参数来对从所述IC设备接收到的所检索的数据进行认证。
19.根据权利要求18所述的认证系统,其中:
所述主机认证电路包括Ascon型认证的密码。
20.根据权利要求17所述的认证系统,其中:
所述主机设备包括至少一个处理器,所述至少一个处理器被配置成使用由所述主机认证电路进行认证的所检索的数据来执行功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/429,621 | 2022-12-02 | ||
US18/144,013 US20240184875A1 (en) | 2022-12-02 | 2023-05-05 | Methods, devices and systems with authenticated memory device access transactions |
US18/144,013 | 2023-05-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118131984A true CN118131984A (zh) | 2024-06-04 |
Family
ID=91238418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311639073.0A Pending CN118131984A (zh) | 2022-12-02 | 2023-12-01 | 具有经认证的存储器设备访问事务的方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118131984A (zh) |
-
2023
- 2023-12-01 CN CN202311639073.0A patent/CN118131984A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10192062B2 (en) | Encryption for XIP and MMIO external memories | |
CN105279439B (zh) | 用于就地执行的存储器的加密方法 | |
KR102426619B1 (ko) | 영구 메모리 시스템 등을 위한 데이터 무결성 | |
US20070067644A1 (en) | Memory control unit implementing a rotating-key encryption algorithm | |
US10691838B2 (en) | Encryption for XIP and MMIO external memories | |
US7139890B2 (en) | Methods and arrangements to interface memory | |
US20070050642A1 (en) | Memory control unit with configurable memory encryption | |
EP1199724B1 (en) | Simply interfaced semiconductor integrated circuit device including logic circuitry and embedded memory circuitry | |
US9048834B2 (en) | Grouping of physically unclonable functions | |
US10749672B2 (en) | Computing system having an on-the-fly encryptor and an operating method thereof | |
JP2017518558A (ja) | アクセス保護スキームを確保するための装置及び方法 | |
CN111295645B (zh) | 一种SoC芯片及总线访问控制方法 | |
US20040247129A1 (en) | Method and system for secure access and processing of an encryption/decryption key | |
US20240004760A1 (en) | Apparatus for redundant array of independent disks | |
US20230325326A1 (en) | Memory encryption | |
CN116648688A (zh) | 包含使用认证逻辑产生用于存储器区的存取代码的实例的存储器系统和装置 | |
CN115858424A (zh) | 用于认证存储器模块的方法和装置 | |
CN112115076A (zh) | 使用者数据的加解密装置及方法 | |
CN116635853A (zh) | 包含存取存储器且使用经验证流密码来产生存取代码的实例的存储器系统和装置 | |
US11288406B1 (en) | Fast XOR interface with processor and memory | |
CN118131984A (zh) | 具有经认证的存储器设备访问事务的方法、设备和系统 | |
CN111276174A (zh) | 存储器装置和处理存储器装置的安全数据的方法 | |
US20240184875A1 (en) | Methods, devices and systems with authenticated memory device access transactions | |
US11487469B2 (en) | Apparatus and method for controlling access to memory module | |
US11636046B1 (en) | Latency free data encryption and decryption between processor and memory |
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 |