CN212411195U - 一种单调计数器 - Google Patents

一种单调计数器 Download PDF

Info

Publication number
CN212411195U
CN212411195U CN202022986807.0U CN202022986807U CN212411195U CN 212411195 U CN212411195 U CN 212411195U CN 202022986807 U CN202022986807 U CN 202022986807U CN 212411195 U CN212411195 U CN 212411195U
Authority
CN
China
Prior art keywords
key
data
count value
register
logic unit
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.)
Active
Application number
CN202022986807.0U
Other languages
English (en)
Inventor
管小进
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.)
Wuhan Xinxin Integrated Circuit Co ltd
Original Assignee
Wuhan Xinxin Semiconductor Manufacturing Co Ltd
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 Wuhan Xinxin Semiconductor Manufacturing Co Ltd filed Critical Wuhan Xinxin Semiconductor Manufacturing Co Ltd
Priority to CN202022986807.0U priority Critical patent/CN212411195U/zh
Application granted granted Critical
Publication of CN212411195U publication Critical patent/CN212411195U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了一种单调计数器,通过设置二个多任务选择器以及二个寄存器,让加密引擎的签章入口,可以选择根密钥与密钥数据进行签章运算,或是选择HAMC密钥与计数值进行签章运算;其中,根密钥与HMAC密钥利用同一选择器来作选择,密钥数据与计数值用另一选择器来作选择,以完成二组不同数据的二次签章运算。本申请实现采用同一电路,进行计数值更新与HMAC密钥更新中两组不同数据的两次签章运算操作,节省了电路实现所需要的器件数量,简化了电路设计,从而节省电路制作及验证成本。

Description

一种单调计数器
技术领域
本申请涉及存储技术领域,尤其涉及一种单调计数器。
背景技术
在计算机系统中,需要使用密钥来控制对代码或数据的访问。这些密钥通常需要通过一些介质传递,这就会导致密钥存在被盗取的风险。在安全系统中,基于根密钥来生成各种密钥和其它的安全机制。通常将安全系统内的密钥存储在非易失性存储器中,例如闪存(Flash)、只读存储器(ROM)等存储器中。尽管如此,生成和编程密钥或根密钥的过程不可避免地会把密钥暴露给一个或多个机器、传送工具、用户,这就使得密钥存在被盗取的风险。
应答保护单调计数器(Replay Protection Monotonic Counter,简称RPMC)是指具有单调的计数功能的计数器,在其中计入数据后,只会随着计数值的变化单调递增或单调递减。通常应答保护单调计数器是与闪存相结合,用于在数据存储过程中来保证读写数据的机密性和完整性。因此,如何对单调计数器进行认证、以保证准确的计数就至关重要。
现有技术中,对于RPMC的认证,需要进行哈希消息认证码(Hash-based MessageAuthentication Code,简称HMAC)密钥的更新,以及需要进行计数值的更新。HMAC密钥的更新以及计数值的更新都需要进行签章(Signature)运算操作。现有芯片中需要分别采用相应的电路,以实现两组不同数据的两次签章运算操作。电路实现所需要的器件数量较多,电路设计较为复杂,增加了电路制作及验证成本。
实用新型内容
本申请的目的在于,针对现有技术存在的问题,提供一种单调计数器,可以采用较少器件数量的简单电路,实现RPMC认证中两组不同数据的两次签章运算操作,节省电路制作及验证成本。
为实现上述目的,本申请一实施例提供了一种单调计数器,包括:第一多任务选择器、第二多任务选择器、第一寄存器、第二寄存器、加密引擎以及比较引擎;所述第一多任务选择器与所述第一寄存器相连,用于根据第一控制信号选择将第一密钥输出至所述第一寄存器,或根据第二控制信号选择将第二密钥输出至所述第一寄存器;所述第二多任务选择器与所述第二寄存器相连,用于根据所述第一控制信号选择将第一数据输出至所述第二寄存器,或根据所述第二控制信号选择将第二数据输出至所述第二寄存器;所述加密引擎分别与所述第一寄存器、所述第二寄存器相连,用于接收所述第一寄存器与所述第二寄存器中暂存的数据,并输出加密信息;所述比较引擎与所述加密引擎相连,用于接收所述加密信息,并将所述加密信息与预定比较基准进行比较后,输出比较结果。
进一步优选地,所述单调计数器进一步包括第一逻辑单元以及随机存储单元;所述第一逻辑单元,用于接收所述第一控制信号、所述第一数据并读取所述第一密钥,或接收所述第二控制信号、所述第二数据并读取所述第二密钥;所述随机存储单元与所述第一逻辑单元相连,用于接收并暂存所述第一数据,或接收并暂存所述第二数据;所述第一多任务选择器进一步分别与所述第一逻辑单元以及所述随机存储单元相连;所述第二多任务选择器进一步与所述随机存储单元相连,并耦接至所述第一逻辑单元。
进一步优选地,所述单调计数器进一步包括非易失性存储阵列,所述非易失性存储阵列中包括用于存储第一密钥的密钥存储区;所述第一逻辑单元进一步与所述非易失性存储阵列相连,用于根据所述第一控制信号从所述密钥存储区读取所述第一密钥。
进一步优选地,所述单调计数器进一步包括非易失性存储阵列,所述非易失性存储阵列中包括用于存储当前计数值的计数值存储区;所述第一逻辑单元进一步与所述非易失性存储阵列相连,用于根据所述第二控制信号从所述计数值存储区读取所述当前计数值。
进一步优选地,所述单调计数器进一步包括:计数值存储单元,用于暂存所述第一逻辑单元从所述计数值存储区获取的所述当前计数值。
进一步优选地,所述单调计数器进一步包括:与所述第一逻辑单元相连的扩展状态寄存器。
本申请的优点在于:通过设置二个多任务选择器以及二个寄存器,让加密引擎的签章入口,可以选择根密钥与密钥数据进行签章运算,或是选择HAMC密钥与计数值进行签章运算;其中,根密钥与HMAC密钥利用同一选择器来作选择,密钥数据与计数值用另一选择器来作选择,以完成二组不同数据的二次签章运算。本申请实现采用同一电路,进行计数值更新与密钥更新中两组不同数据的两次签章运算操作,节省了电路实现所需要的器件数量,简化了电路设计,从而节省电路制作及验证成本;通过准确的单调计数,可以为其它芯片的读写数据次数提供一个完整的数据记录,以及在数据发送过程中保证数据的不重复性;实现在数据存储过程中保证读写数据的机密性和完整性,提升了数据发送的机密性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据本申请第一实施例提供的单调计数器的内部连接架构图;
图2为根据本申请第二实施例提供的单调计数器的内部连接架构图;
图3为图2所示单调计数器进行HMAC密钥更新的一实施例的信号波形示意图;
图4为图2所示单调计数器进行计数值更新的一实施例的信号波形示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。实施例中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
请参阅图1,根据本申请第一实施例提供的单调计数器的内部连接架构图。如图1所示,在本实施例中,所述单调计数器10包括第一多任务选择器121、第二多任务选择器122、第一寄存器123、第二寄存器124、加密引擎125以及比较引擎126。
所述第一多任务选择器121与所述第一寄存器123相连,用于根据第一控制信号选择将第一密钥输出至所述第一寄存器123,或根据第二控制信号选择将第二密钥输出至所述第一寄存器123。即,通过所述第一多任务选择器121可以选择不同的密钥输出至所述第一寄存器123。
所述第二多任务选择器122与所述第二寄存器124相连,用于根据所述第一控制信号选择将第一数据输出至所述第二寄存器124,或根据所述第二控制信号选择将第二数据输出至所述第二寄存器124。即,通过所述第二多任务选择器122可以选择不同的数据输出至所述第二寄存器124。
所述加密引擎125分别与所述第一寄存器123、所述第二寄存器124相连,用于接收所述第一寄存器123与所述第二寄存器124中暂存的数据,并输出加密信息。具体地,所述加密引擎125可用于对所述第一密钥、所述第一数据进行HMAC运算(例如采用HMAC-sha256进行计算,或采用其它哈希算法进行运算),获取第一目标签章信息作为加密信息输出;以及用于对所述第二密钥、所述第二数据进行HMAC运算,获取第二目标签章信息作为加密信息输出。通过HMAC运算,可以提高运算过程的保密性。
所述比较引擎126与所述加密引擎125相连,用于接收所述加密信息,并将所述加密信息与预定比较基准进行比较后,输出比较结果。具体地,所述比较引擎126可用于将所述加密引擎125获取的第一目标签章信息与作为预定比较基准的第一输入签章信息进行比较;以及用于将所述加密引擎125获取的第二目标签章信息与作为预定比较基准的第二输入签章信息进行比较。若获取的比较结果为一致,则签章认证通过;若比较结果为不一致,则说明指令代码错误,需要结束当前指令,然后等待下一次指令。
进一步的实施例中,所述单调计数器10还包括第一逻辑单元127以及随机存储单元128。
所述第一逻辑单元127用于接收所述第一控制信号、所述第一数据并读取所述第一密钥,或接收所述第二控制信号、所述第二数据并读取所述第二密钥。具体地,所述第一逻辑单元127可用于接收第一输入指令以及读取所述第一密钥;其中,所述第一输入指令中包含第一控制信号、第一数据(第一命令数据、密钥数据以及第一输入签章信息)。所述第一逻辑单元127还可用于接收第二输入指令以及读取所述第二密钥;其中,所述第二输入指令中包含第二控制信号、第二数据(第二命令数据、输入单调计数值以及第二输入签章信息)。
所述随机存储单元128与所述第一逻辑单元127相连,用于接收并暂存所述第一数据,或接收并暂存所述第二数据。具体地,所述随机存储单元128用于从所述第一逻辑单元127接收并暂存所述第一输入指令对应的第一数据,或接收并暂存所述第二输入指令对应的第二数据。其中,所述第一数据包括第一命令数据、密钥数据以及第一输入签章信息;所述第二数据中包含第二命令数据、输入单调计数值以及第二输入签章信息。即,通过设置所述随机存储单元128用以保存来自外部输入指令中的签章,以与密钥更新过程的认证签章或计数值更新过程的认证签章作比较。其中,所述比较引擎126获取的比较结果也可以暂存在所述随机存储单元128中,进而由所述第一逻辑单元127再从所述随机存储单元128获取相应的比较结果。
相应的,所述第一多任务选择器121进一步分别与所述第一逻辑单元127以及所述随机存储单元128相连。即,所述第一多任务选择器121可以从所述第一逻辑单元127、所述随机存储单元128中获取数据。
相应的,所述第二多任务选择器122进一步与所述随机存储单元128相连,并耦接至所述第一逻辑单元127。即,所述第二多任务选择器122可以从所述第一逻辑单元127、所述随机存储单元128中获取数据。
进一步的实施例中,所述第二多任务选择器122进一步用于根据所述第一控制信号选择将所述第一数据中的密钥数据输出至所述第二寄存器124;所述加密引擎125进一步用于接收所述第一密钥(例如根密钥)以及所述密钥数据,并输出临时密钥;所述第一多任务选择器121进一步用于根据所述第一控制信号选择将所述临时密钥输出至所述第一寄存器123;所述第二多任务选择器122进一步用于根据所述第一控制信号选择将所述第一数据中的第一命令数据以及所述密钥数据输出至所述第二寄存器124;所述加密引擎125进一步用于接收所述临时密钥、所述第一命令数据以及所述密钥数据,并输出第一目标签章信息;所述比较引擎126进一步用于接收所述第一目标签章信息,并将所述第一目标签章信息与所述第一数据中的第一输入签章信息进行比较后,输出比较结果。即,所述第一多任务选择器121可以从所述第一逻辑单元127、所述随机存储单元128中获取密钥更新所需数据;所述第二多任务选择器122可以从所述第一逻辑单元127、所述随机存储单元128中获取密钥更新所需数据;从而所述加密引擎125的签章入口可以选择根密钥与密钥数据的这组数据进行签章运算,以产生新的HMAC密钥。
进一步的实施例中,所述单调计数器10包括非易失性存储阵列11,所述非易失性存储阵列11中包括用于存储第一密钥(例如根密钥)的密钥存储区111;所述第一逻辑单元127进一步与所述非易失性存储阵列11相连,用于根据所述第一控制信号从所述密钥存储区111读取所述第一密钥。
进一步的实施例中,所述单调计数器10包括非易失性存储阵列11,所述非易失性存储阵列11中包括用于存储当前计数值的计数值存储区112;所述第一逻辑单元127进一步与所述非易失性存储阵列11相连,用于根据所述第二控制信号从所述计数值存储区112读取所述当前计数值。
进一步的实施例中,所述单调计数器10还包括:计数值存储单元131;所述计数值存储单元131用于暂存所述第一逻辑单元127从所述计数值存储区112获取的所述当前计数值。即,所述计数值存储单元131中存储有一个易失性的计数值,该易失性的计数值对应于所述计数值存储区112存储的当前计数值。具体地,所述第一逻辑单元127读取所述计数值存储区112里存储的计数值数据,获取当前计数值,然后写入所述计数值存储单元131中,以作为与输入单调计数值进行比较的基础。
进一步的实施例中,所述比较引擎126进一步分别与所述随机存储单元128以及所述计数值存储单元131相连,用于接收所述随机存储单元128暂存的所述第二数据中的输入单调计数值与所述计数值存储单元131暂存的所述当前计数值,并进行比较后,输出比较结果。通过所述比较引擎126对相应的计数值进行比较,以判断计数值的一致性:若计数值一致,则指令继续执行;若计数值不一致,则说明指令代码错误,需要结束当前指令,然后等待下一次指令,从而保证计数值的准确性。在其它实施例中,也可以采用不同的比较引擎,分别进行计数值的比较以及签章信息的比较。例如,采用第一比较引擎比较输入单调计数值与当前计数值;采用第二比较引擎比较第二目标签章信息与第二输入签章信息。通过采用两个比较引擎分别进行相应计数值的比较以及相应签章信息的比较,可以简化对比较结果的逻辑处理操作,提高判断流程的操作效率。采用所述当前计数值进行签章信息的获取,可以保证数据的纯净性。需要说明的是,在输入单调计数值与当前计数值一致时,也可以直接采用输入单调计数值进行签章信息的获取。
综上,所述比较引擎126还用于对输入单调计数值与当前计数值进行比较,获取比较结果。所述第一多任务选择器121进一步用于根据第二控制信号选择将所述第二密钥(HMAC密钥)输出至所述第一寄存器123;所述第二多任务选择器122进一步用于根据所述第二控制信号选择将所述第二数据中的第二命令数据以及当前计数值输出至所述第二寄存器124;所述加密引擎125进一步用于接收所述第二密钥、所述第二命令数据以及所述当前计数值,并输出第二目标签章信息;所述比较引擎126进一步用于接收所述第二目标签章信息,并将所述第二目标签章信息与所述第二数据中的第二输入签章信息进行比较后,输出比较结果。即,所述第一多任务选择器121可以从所述第一逻辑单元127、所述随机存储单元128中获取计数值更新所需数据;所述第二多任务选择器122可以从所述第一逻辑单元127、所述随机存储单元128中获取计数值更新所需数据;从而所述加密引擎125的签章入口可以选择HMAC密钥与计数值数据的这组数据进行签章运算,以产生计数值更新认证用的签章。
进一步的实施例中,所述外围控制电路进一步包括:与所述第一逻辑单元127相连的扩展状态寄存器132。所述扩展状态寄存器132用于在所述比较引擎126获取的比较结果为不一致时,从所述第一逻辑单元127接收控制信号进行状态位更新。即,在所述比较引擎126获取的比较结果为不一致时,可以通过更新相应的状态位,以表征错误,然后结束当前指令。
本实施例通过设置二个多任务选择器以及二个寄存器,让加密引擎的签章入口,可以选择根密钥与密钥数据进行签章运算,或是选择HAMC密钥与计数值进行签章运算;其中,根密钥与HMAC密钥利用同一选择器来作选择,密钥数据与计数值用另一选择器来作选择,以完成二组不同数据的二次签章运算。本实施例可以实现采用同一电路,进行计数值更新与密钥更新中两组不同数据的两次签章运算操作;节省了电路实现所需要的器件数量,简化了电路设计,从而节省电路制作及验证成本。通过准确的单调计数,可以为其它芯片(例如Flash芯片)的读写数据次数提供一个完整的数据记录,以及在数据发送过程中保证数据的不重复性;实现在数据存储过程中保证读写数据的机密性和完整性,提升了数据发送的机密性。
需要说明的是,在本实施例的描述中,组件之间的连接应做广义理解,例如,可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连。
请一并参阅图2-图4,其中,图2为根据本申请第二实施例提供的单调计数器的内部连接架构图,图3为图2所示单调计数器进行HMAC密钥更新的一实施例的信号波形示意图,图4为图2所示单调计数器进行计数值更新的一实施例的信号波形示意图。
如图2所示,相比于图1所示实施例,在本实施例中,所述第一多任务选择器121为密钥选择器(Key MUX)221,所述第二多任务选择器122为信息选择器(Message MUX)222,所述第一寄存器123为密钥寄存器(Key Register)223,所述第二寄存器124为信息寄存器(Message Register)224,所述第一逻辑单元127为RPMC逻辑单元(RPMC Logic)227,所述随机存储单元128为RPMC随机存储单元(RPMC SRAM)228;所述比较引擎126包括第一比较引擎(Compare Engine 1)220与第二比较引擎(Compare Engine 2)226。
在本实施例中,所述单调计数器20在实现存储功能的同时,加入单调递增计数功能,以对需要安全存储的数据实现重放保护。所述单调计数器20包括非易失性存储阵列21以及外围控制电路。所述非易失性存储阵列21中包括用于存储根密钥的根密钥存储区(Root Key Flash)211以及用于存储当前计数值的单调计数值存储区(Monotonic CounterFlash)212。所述外围控制电路包括增设的密钥选择器221、信息选择器222、密钥寄存器223、信息寄存器224、第一比较引擎220、加密引擎(Security Engine)225、第二比较引擎226、RPMC逻辑单元227、RPMC随机存储单元228、计数值存储单元231以及扩展状态寄存器(Extended Status Register)232。本实施例单调计数器20的实现单调计数方式主要包括HMAC密钥更新以及计数值更新。需要说明的是,所述第一比较引擎220与第二比较引擎226也可以采用同一个比较引擎实现,以节省外围电路所需组件、减少布局所占空间。
所述外围控制电路还包括基础的IO缓存器241、指令解析器(Command Decoder)242以及控制逻辑单元(Control Logic)243。也即,本实施例所述单调计数器20在实现存储功能的基础上,集成了应答保护单调计数功能。需要说明的是,所述外围控制电路还包括其它实现存储的基础组件,例如带隙基准源、高压产生器、地址计数器、页面缓存器、感测放大器、行解码器、列解码器等;为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的结构,而省略了与本申请关系不大的其它细节。关于所述单调计数器20的电路的额外细节可参考现有技术,此处不再赘述。
在此,还需要说明的是,具体地,HMAC密钥更新的工作原理为:1)通过所述RPMC逻辑单元227将输入指令的相应指令数据写入所述RPMC随机存储单元228进行暂存;相应指令数据包括命令数据(OP1指令代码、命令类型、计数器地址等)、密钥数据以及签章信息等。2)通过所述RPMC逻辑单元227从所述根密钥存储区211中读出根密钥,并通过所述密钥选择器221选择根密钥输出至所述密钥寄存器223。3)通过所述信息选择器222选择所述RPMC随机存储单元228中暂存的密钥数据,输出至所述信息寄存器224。4)通过所述加密引擎225将所述密钥寄存器223与所述信息寄存器224中的数据进行HMAC计算,得到临时密钥(可以暂存在所述RPMC随机存储单元228中)。5)通过所述密钥选择器221选择所述临时密钥输出至所述密钥寄存器223,通过所述信息选择器222选择所述RPMC随机存储单元228中的命令数据、密钥数据输出至所述信息寄存器224。6)通过所述加密引擎225将所述密钥寄存器223与所述信息寄存器224中的数据进行HMAC计算,得到签章信息。7)通过所述第二比较引擎226比较所述加密引擎225计算得到的签章信息与所述RPMC随机存储单元228中暂存的签章信息;比较结果反馈至所述RPMC逻辑单元227。8)若比较结果为签章信息一致,则签章认证通过,由所述RPMC逻辑单元227将所述临时密钥设定为HMAC密钥;若不一致,则结束当前指令、并等待下一次指令。
进一步的实施例中,在通过所述第二比较引擎226获取的比较结果为不一致时,可以在所述RPMC逻辑单元227的控制下,更新扩展状态寄存器232的状态位,以表征错误;然后结束当前指令、并等待下一次指令。
RPMC随机存储单元228通过所述RPMC逻辑单元227接收并暂存的HMAC密钥更新相关指令数据包括:命令数据、密钥数据以及签章信息。命令数据包括指令信息(Instruction)、命令类型(CMD type)、以及HMAC密钥更新操作相关的一些数据(例如,计数器地址Counter Addr等)。指令信息的指令头用以指示该指令为某一芯片的特有指令;例如,OP1指令代码用以指示该指令为RPMC芯片的特有指令。HMAC密钥更新的一实施例的信号波形图如图3所示。
具体地,计数值更新的工作原理为:1)通过所述RPMC逻辑单元227将输入指令的相应指令数据写入所述RPMC随机存储单元228进行暂存;相应指令数据包括命令数据(OP1指令代码、命令类型、计数器地址等)、单调计数值以及签章信息等。2)通过所述RPMC逻辑单元227从所述单调计数值存储区212中读出当前计数值,并写入所述计数值存储单元231进行暂存。3)通过第一比较引擎220比较RPMC随机存储单元228暂存的单调计数值以及所述计数值存储单元231存储的当前计数值;比较结果反馈至所述RPMC逻辑单元227。4)若比较结果为计数值一致,则继续执行指令,若不一致,则结束当前指令、并等待下一次指令。继续执行指令为:5)通过所述密钥选择器221选择HMAC密钥输出至所述密钥寄存器223。6)通过所述信息选择器222选择所述RPMC随机存储单元228中暂存的命令数据,以及选择所述计数值存储单元231存储的当前计数值,并输出至所述信息寄存器224。7)通过所述加密引擎225将所述密钥寄存器223与所述信息寄存器224中的数据进行HMAC计算,得到签章信息。8)通过所述第二比较引擎226比较所述加密引擎225计算得到的签章信息与所述RPMC随机存储单元228中暂存的签章信息;比较结果反馈至所述RPMC逻辑单元227。9)若比较结果为签章信息一致,则签章认证通过,由所述RPMC逻辑单元227控制,最终使得单调计数值存储区212中存储的当前计数值加1;若不一致,则结束当前指令、并等待下一次指令。需要说明的是,由于RPMC随机存储单元228中的单调计数值与计数值存储单元231中的当前计数值一致;因此,也可以直接采用RPMC随机存储单元228中的单调计数值进行签章信息的获取。
具体地,所述计数值存储单元231采用易失性单调计数器。即,单调计数值存储区212会有一个对应的易失性的计数值,这个易失性的计数值存储在计数值存储单元231中。具体地,RPMC逻辑单元227读取单调计数值存储区212里存储的计数值数据,再通过相应的算法算出当前计数值,然后写入计数值存储单元231中,以作为比较基础。
进一步的实施例中,在通过第一比较引擎220和/或所述第二比较引擎226获取的比较结果为不一致时,可以在所述RPMC逻辑单元227的控制下,更新扩展状态寄存器232的状态位,以表征错误;然后结束当前指令、并等待下一次指令。
RPMC随机存储单元228接收并暂存的计数值更新相关指令数据包括:命令数据、单调计数值以及签章信息。命令数据包括指令信息(Instruction)、命令类型(CMD type)、以及计数值更新相关的一些数据(例如,计数器地址Counter Addr等)。指令信息的指令头用以指示该指令为某一芯片的特有指令;例如,OP1指令代码用以指示该指令为RPMC芯片的特有指令。计数值更新的一实施例的信号波形图如图4所示。
进一步的实施例中,所述控制逻辑单元243通过所述指令解析器242、所述IO缓存器241,进而接收外部指令,并将RPMC相关的输入指令传送至所述RPMC逻辑单元227;所述RPMC逻辑单元227再将输入指令的相应指令数据写入RPMC随机存储单元228进行暂存。RPMC相关的指令包括但不限于HMAC密钥更新指令、计数值更新指令等。
进一步的实施例中,所述RPMC随机存储单元228中配置有输入缓存器2281以及输出缓存器2282,可以用于对输入/输出 RPMC随机存储单元228的数据进行缓存。其中,所述第一比较引擎220和/或所述第二比较引擎226获取的比较结果也可以暂存在所述RPMC随机存储单元228中,由所述RPMC逻辑单元227再从所述RPMC随机存储单元228获取相应的比较结果。RPMC随机存储单元228中还配置有用于暂存临时密钥、HMAC密钥的HMAC密钥区2283。
进一步的实施例中,所述非易失性存储阵列21中进一步包括用于存储非易失性闪存数据的主存储区213,从而实现单调计数功能与存储功能集成。所述主存储区213可根据需要进行设置,在不需要大容量存储时,为了节省成本,主存储区213可以被省略。
所述IO缓存器241与外部引脚相连,可以用于对输入/输出数据进行缓存。具体地,在本实施例中,所述外部引脚包括:时钟信号引脚CLK、片选引脚/CS、输入引脚DI、输出引脚DO、写保护引脚/WP、屏蔽外部指令引脚/HOLD或重置引脚/RST。使用输入引脚DI写入指令、地址或数据,使用输出引脚DO读取数据或状态。所述指令解析器242可以用于对输入的指令进行解析,进而通过所述控制逻辑单元243进行逻辑控制。
本实施例可以实现采用同一电路,进行计数值更新与HAMC密钥更新中两组不同数据的两次签章运算操作;节省了电路实现所需要的器件数量,简化了电路设计,从而节省电路制作及验证成本。通过更新HMAC密钥,以及签章认证,保证了单调计数准确性。在实现单调计数器的存储功能的同时,加入单调递增计数,以对需要安全存储的数据实现重放保护。利用根密钥和HMAC密钥对各个部件创建安全的执行环境,实现在数据存储过程中保证读写数据的机密性和完整性,提升了数据发送的机密性。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。

Claims (10)

1.一种单调计数器,其特征在于,包括:第一多任务选择器、第二多任务选择器、第一寄存器、第二寄存器、加密引擎以及比较引擎;
所述第一多任务选择器与所述第一寄存器相连,用于根据第一控制信号选择将第一密钥输出至所述第一寄存器,或根据第二控制信号选择将第二密钥输出至所述第一寄存器;
所述第二多任务选择器与所述第二寄存器相连,用于根据所述第一控制信号选择将第一数据输出至所述第二寄存器,或根据所述第二控制信号选择将第二数据输出至所述第二寄存器;
所述加密引擎分别与所述第一寄存器、所述第二寄存器相连,用于接收所述第一寄存器与所述第二寄存器中暂存的数据,并输出加密信息;
所述比较引擎与所述加密引擎相连,用于接收所述加密信息,并将所述加密信息与预定比较基准进行比较后,输出比较结果。
2.如权利要求1所述的单调计数器,其特征在于,所述单调计数器进一步包括第一逻辑单元以及随机存储单元;
所述第一逻辑单元,用于接收所述第一控制信号、所述第一数据并读取所述第一密钥,或接收所述第二控制信号、所述第二数据并读取所述第二密钥;
所述随机存储单元与所述第一逻辑单元相连,用于接收并暂存所述第一数据,或接收并暂存所述第二数据;
所述第一多任务选择器进一步分别与所述第一逻辑单元以及所述随机存储单元相连;
所述第二多任务选择器进一步与所述随机存储单元相连,并耦接至所述第一逻辑单元。
3.如权利要求2所述的单调计数器,其特征在于,
所述第二多任务选择器进一步用于根据所述第一控制信号选择将所述第一数据中的密钥数据输出至所述第二寄存器;
所述加密引擎进一步用于接收所述第一密钥以及所述密钥数据,并输出临时密钥;
所述第一多任务选择器进一步用于根据所述第一控制信号选择将所述临时密钥输出至所述第一寄存器;
所述第二多任务选择器进一步用于根据所述第一控制信号选择将所述第一数据中的第一命令数据以及所述密钥数据输出至所述第二寄存器;
所述加密引擎进一步用于接收所述临时密钥、所述第一命令数据以及所述密钥数据,并输出第一目标签章信息;
所述比较引擎进一步用于接收所述第一目标签章信息,并将所述第一目标签章信息与所述第一数据中的第一输入签章信息进行比较后,输出第一比较结果。
4.如权利要求2所述的单调计数器,其特征在于,所述单调计数器进一步包括非易失性存储阵列,所述非易失性存储阵列中包括用于存储第一密钥的密钥存储区;
所述第一逻辑单元进一步与所述非易失性存储阵列相连,用于根据所述第一控制信号从所述密钥存储区读取所述第一密钥。
5.如权利要求2所述的单调计数器,其特征在于,所述单调计数器进一步包括非易失性存储阵列,所述非易失性存储阵列中包括用于存储当前计数值的计数值存储区;
所述第一逻辑单元进一步与所述非易失性存储阵列相连,用于根据所述第二控制信号从所述计数值存储区读取所述当前计数值。
6.如权利要求5所述的单调计数器,其特征在于,所述单调计数器进一步包括:计数值存储单元,用于暂存所述第一逻辑单元从所述计数值存储区获取的所述当前计数值。
7.如权利要求6所述的单调计数器,其特征在于,
所述比较引擎进一步分别与所述随机存储单元以及所述计数值存储单元相连,用于接收所述随机存储单元暂存的所述第二数据中的输入单调计数值与所述计数值存储单元暂存的所述当前计数值,并进行比较后,输出第二比较结果。
8.如权利要求2所述的单调计数器,其特征在于,所述单调计数器进一步包括:与所述第一逻辑单元相连的扩展状态寄存器。
9.如权利要求2所述的单调计数器,其特征在于,所述第一逻辑单元为RPMC逻辑单元,所述随机存储单元为RPMC随机存储单元,所述第一多任务选择器为密钥选择器,所述第二多任务选择器为信息选择器,所述第一寄存器为密钥寄存器,所述第二寄存器为信息寄存器。
10.如权利要求1所述的单调计数器,其特征在于,所述单调计数器进一步包括非易失性存储阵列,所述非易失性存储阵列中包括用于存储非易失性闪存数据的主存储区。
CN202022986807.0U 2020-12-14 2020-12-14 一种单调计数器 Active CN212411195U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202022986807.0U CN212411195U (zh) 2020-12-14 2020-12-14 一种单调计数器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202022986807.0U CN212411195U (zh) 2020-12-14 2020-12-14 一种单调计数器

Publications (1)

Publication Number Publication Date
CN212411195U true CN212411195U (zh) 2021-01-26

Family

ID=74375340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202022986807.0U Active CN212411195U (zh) 2020-12-14 2020-12-14 一种单调计数器

Country Status (1)

Country Link
CN (1) CN212411195U (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704791A (zh) * 2021-09-01 2021-11-26 北京兆芯电子科技有限公司 处理器、以及哈希信息认证码编码方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704791A (zh) * 2021-09-01 2021-11-26 北京兆芯电子科技有限公司 处理器、以及哈希信息认证码编码方法
CN113704791B (zh) * 2021-09-01 2024-03-15 北京兆芯电子科技有限公司 处理器、以及哈希信息认证码编码方法

Similar Documents

Publication Publication Date Title
US11347898B2 (en) Data protection device and method and storage controller
JP4550439B2 (ja) Ecc制御装置
US6457126B1 (en) Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory
KR940002754B1 (ko) 반도체 집적회로 장치의 제어방법
JP4901285B2 (ja) 読み出し性能を向上させることができるメモリカード
KR940004404B1 (ko) 불휘발성 반도체 메모리장치
US20070050642A1 (en) Memory control unit with configurable memory encryption
KR20090080032A (ko) 저장 장치들에 대한 보안을 제공하는 방법 및 시스템
JP4663274B2 (ja) メモリコントローラとそれを備えるスマートカード、およびメモリのデータ読出し動作制御方法
US8015416B2 (en) Memory information protection system and methods
KR100449401B1 (ko) 반도체 기억 장치
CN212411195U (zh) 一种单调计数器
CN112231777A (zh) 一种单调计数器及其单调计数方法
CN112887077A (zh) 一种ssd主控芯片随机缓存保密方法和电路
US7590027B2 (en) Nonvolatile semiconductor memory device
JP3656876B2 (ja) マクロ命令機能を有する同期式半導体メモリ装置とマクロ命令の格納及び実行方法
CN213876729U (zh) 一种ssd主控芯片随机缓存保密电路
JP4064703B2 (ja) 半導体記憶装置
JP4323527B2 (ja) 半導体記憶装置
JP2000181802A (ja) 半導体記憶装置
JP2000029790A (ja) データセキュリティシステム
CN102110038B (zh) 一种安全类芯片的测试电路
CN114510753B (zh) 存储器数据保护方法、装置、电子设备及存储介质
US20240126709A1 (en) Direct memory access controller
US20240184875A1 (en) Methods, devices and systems with authenticated memory device access transactions

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 430205 No.18, Gaoxin 4th Road, Donghu Development Zone, Wuhan City, Hubei Province

Patentee after: Wuhan Xinxin Integrated Circuit Co.,Ltd.

Country or region after: China

Address before: 430205 No.18, Gaoxin 4th Road, Donghu Development Zone, Wuhan City, Hubei Province

Patentee before: Wuhan Xinxin Semiconductor Manufacturing Co.,Ltd.

Country or region before: China