CN112992249A - 用于验证暂存器内容完整性的系统及其方法 - Google Patents
用于验证暂存器内容完整性的系统及其方法 Download PDFInfo
- Publication number
- CN112992249A CN112992249A CN202011404094.0A CN202011404094A CN112992249A CN 112992249 A CN112992249 A CN 112992249A CN 202011404094 A CN202011404094 A CN 202011404094A CN 112992249 A CN112992249 A CN 112992249A
- Authority
- CN
- China
- Prior art keywords
- register
- content
- hash value
- registers
- scratchpad
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012795 verification Methods 0.000 claims abstract description 84
- 230000009471 action Effects 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 22
- 238000013461 design Methods 0.000 description 6
- 230000000737 periodic effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/032—Protect output to user by software means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0405—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals comprising complete test loop
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Hardware Redundancy (AREA)
- Shift Register Type Memory (AREA)
Abstract
本发明提供了一种用于验证暂存器内容完整性的系统及其方法,此系统与集成电路一起操作,集成电路包括至少一存储器、至少一处理器、以及多个暂存器。此系统包括暂存器内容验证逻辑,在称为“学习模式”的第一模式下,其读取至少一些暂存器的内容、计算关于内容的第一杂凑值、以及储存第一杂凑值藉以提供最新的一参考杂凑值,以及在称为“验证模式”的第二模式下,其计算关于内容的第二杂凑值、比较第二杂凑值与参考杂凑值、且因此提供一内容验证输出(称为“错误检测”输出)以指示参考杂凑值与第二杂凑值是否相等。
Description
技术领域
本发明有关于维持储存在集成电路的内容完整性。
背景技术
集成电路存储器内容的验证,即存储器保护、错误检测、或错误校正,被认为是重要的目标。因此,集成电路可包括一存储器阵列和即时存储器错误检测/校正功能,例如,同位或错误校正编码(error correction code,ECC)电路。然而,ECC对于大型存储器而言非常昂贵,并且不如密码存储器验证那么强大。因此,通常使用例如可实现于韧体或专用硬件的“摘要-重做-比较(digest-redo-compare)”技术来实现密码存储器验证,其中,存储器内容可以被摘要一次以产生参考摘要。然后,有时(例如,定期)会重做摘要,且每次会进行比较以验证新摘要是否与参考摘要相同。例如,存储器空间可以被划分或分割为多个“区块(chunk)”。然后,处理器计算并存储每个区块的杂凑值(hash),通常储存一密钥在晶片上。当处理器从存储器中的区块C读取一个资料块时,处理器可以读取或载入整个区块C,重新计算已载入区块的杂凑值,然后将最近重新计算的杂凑值与存储在存储器中关于区块C的杂凑值进行比较。如果该比较表示没有差异,存储器内容没有问题,但是如果最近重新计算的杂凑值与储存的杂凑值不同,那么假设已知存储器阵列的物理和电气完整性是完整的,则表明存储器内容已被篡改。
在美国专利编号US 8,146,028中描述了传统的暂存器加倍/复制,这是一种现有的暂存器内容的验证方法。通常,给定一个包括多个并联组合的正反器的暂存器,其被认为包括了加倍的存储器正反器藉以产出多个正反器,这维持了所有的正反器,并且有时或定期(例如连续地)比较多个正反器之间的值,以检测复制的实例之间的不匹配,如果检测到,则表明存在篡改。通常,实现加倍时,暂存器之间没有依赖关系或互连关系,这是因为每个暂存器都有自己的影子(shadow)和比较逻辑。
在Bertacco的美国专利编号US 8,341,473中描述了可以与在此显示和描述的任何实施例结合使用的逻辑元件的完整性检查(但不是其内容的完整性)。Bertacco在https://patents.google.com/patent/US8341473B2/zh-cn描述了一种方法,通过该方法“可以使用四阶段分割交易(split-transaction)测试程序来检查暂存器组的完整性”。
发明内容
改善集成电路的安全性是集成电路产业中一直关注的问题。提高安全性的一种方法是更好地保护集成电路上暂存器的内容。保护暂存器的内容通常可以确保,在暂存器所在的装置的正常操作期间,除了有意进行的修改以外,暂存器的内容保持完整。
某些实施例提供一种用于维持集成电路的配置以及/或控制设置的完整性的系统或方法。
某些实施例提供一种用于检查集成电路上的至少一个寄存器的内容的完整性的系统或方法。
客观地说,与对集成电路的存储器的内容验证相比,对集成电路的暂存器的内容验证,在文献中得到的重视要少得多。当完全讨论暂存器的内容验证时,通常是通过例如加倍(例如,复制)来实现的。少数暂存器(在现代集成电路中可能提供的数千个暂存器中的少数暂存器,并且数量正在增加)可能被认为需要内容验证,然后可以为这些暂存器实现专用的保护硬件。
本文中的某些实施例试图为大量暂存器(例如,在现代集成电路上的所有数千个暂存器)提供广泛的保护(内容验证)。
本文中的某些实施例试图提供基于摘要的暂存器的内容完整性验证,当集成电路上存在数千个或更多暂存器时,就芯片面积而言其更为有效(需要更少的芯片面积)。
某些实施例试图提供一种对集成电路的暂存器(例如暂存器组)的内容进行完整性检查的硬件,其方式为对于集成电路的正常功能是通透的或者不破坏集成电路的正常功能。可以使用在硬件、软体、或韧体中实现的逻辑来计算用于IC存储器内容验证的杂凑值,这通常取决于设计人员对最简单选项或就硬件而言成本最低的选项的选择。在验证存储器内容时和在验证暂存器内容时,可以类似地或相同地执行杂凑,但是,通常在计算存储器的杂凑值时不能使用或存取存储器,而可以获得暂存器值却不会引起任何中断。
以下术语可以根据在现有技术文献中出现的任何定义或根据说明书来解释,或者在其各自的范围内包括以下内容:
暂存器组(register file):通常意旨在单个集成电路上包括一组暂存器。在Wikipedia的“暂存器组”条目中描述了常规的暂存器组。根据一个实施例,一集成电路包括一个或多个暂存器组,并且针对一给定暂存器组或一组暂存器组中的所有暂存器计算一个摘要。根据一个实施例,一集成电路包括一个或多个暂存器库(register bank),并且针对一给定暂存器库或一组暂存器组库中的所有暂存器计算一个摘要。但是,应当理解,图1和本文其他地方所指的暂存器组包括至少一组或更一般地包括在单一集成电路上的任何多个暂存器,例如,”暂存器库”,其包括多个暂存器组或任何其他的暂存器群组。
认证(Auth):意旨在包括摘要。
“摘要(digest)”,也称为“摘要功能”:将任意大小的资料映射到固定大小的位串的计算算法或逻辑;作为摘要功能的输出的该位串有时被称为“摘要”。如本文所使用的术语”摘要”包括密码摘要,于其中通过诸如密码杂凑函数的密码功能来映射资料。但是,并非所有摘要都是加密的,并且更一般地,例如取决于IC设计人员所希望的强度,可以采用任何合适的摘要。例如,摘要可以包括核对和摘要,在这种情况下,资料通常按固定大小的总和进行映射。
快照(snapshot):集成电路的暂存器的当前内容的杂凑值,储存集成电路中。通常,储存作为快照的杂凑值不会加上时间戳,这是因为通常仅知道储存的杂凑值是最新的就足够了。例如取决于是否储存了一个完整摘要,或者取决于是否如本文所述的步进式实施例存储了几个部分摘要,而可以有一个或多个当前有效的快照。
因此,至少提供以下实施例:
实施例1:一种验证暂存器内容完整性的系统,此系统与一集成电路一起操作,此集成电路包括至少一存储器、以及/或至少一处理器、以及/或多个暂存器。此系统包括:一暂存器内容验证逻辑,当或仅当在称为”学习模式”的第一模式下,暂存器内容验证逻辑经设置以读取至少一些暂存器的内容、以及/或计算第一认证或摘要(例如,关于内容的杂凑值)、以及/或储存第一杂凑值以提供最新的一参考杂凑值,以及当或仅当在称为”验证模式”的第二模式下,暂存器内容验证逻辑计算关于内容的至少一第二认证或摘要(例如,关于内容的杂凑值)、以及/或比较第二杂凑值与参考杂凑值、且因此提供一内容验证输出(称为检测”错误检测”输出)以指示参考杂凑值与第二杂凑值是否相等。
通常,当两个杂凑值不相等时会检测到错误。
内容验证输出(也称为“错误检测”输出)(如图1所示)通常包括两个杂凑值不相等且可以由硬件接收的指示,该硬件可以响应地执行某些动作。以及/或者,“错误检测”输出可以包括发出至到韧体的旗标/中断,该旗标/中断可以响应地触发(或给予一指令以执行)某些动作。响应于“错误检测”输出,可以由硬件以及/或由韧体执行的任何适当的动作,诸如但不限于重置和重新启动,停止直到电源重启,或永远停止。
如本文所述的暂存器的内容验证的特别优点在于,与存储器相对的暂存器总是可用于获得它们的值(以便摘要和比较它们)。不必为了识别暂存器内容以用于摘要/比较目的而“拥有”或接管暂存器的介面接口。相反地,当按常规方式验证存储器内容时,当存储器被仲裁或接管以进行存储器验证,存储器的常规操作中断,经验证然后释放,并且一旦接管了存储器,该存储器变为无法用于任何其他操作,直到释放为止。
本文中实施例的另一特定优点在于克服以下问题:如本领域中已知的,加倍主要用于仅试图保护少量暂存器的暂存器内容验证。这个适度的目标可能是因为集成电路上仅一暂存器子集被正确或错误地认为是需要保护的,以及/或是因为一开始只有少量暂存器存在于集成电路上-与早期的集成电路一样,但现在不再如此。因此,无论出于何种原因,从历史上看,使用加倍(double)进行暂存器的内容验证所产生的成本负担都不大。当前,相信许多或大多数集成电路将从数以千计的暂存器的保护中受益,但是通过使用常规加倍来提供这种保护将即使在今天也引起大的成本负担,并且随着集成电路设计为包括越来越多的暂存器,这种成本负担可望变得更大。因此,虽然当每个集成电路仅包括几个暂存器时加倍可能已经足够有效,但是每个集成电路被设计为具有更多的暂存器时,其变得越来越不令人满意,并且实际上每个晶片的暂存器数量不断增长。本文所示和所述的实施例提供了更高的效率。
应当理解,在实践中,假设存在相对大量的正反器,此处的实施例添加少于加倍的单元。
可以理解的是,只要集成电路具有一定数量的暂存器,这里的系统就变得具有成本效益:在该集成电路上实现摘要和验证逻辑变得适当(比使用倍增更有效),因为一旦超过一定数量的暂存器,摘要比加倍变得更有效率,例如,因为加倍需要逻辑来比较每对摘要,以确保每对都是相同的;在此描述的摘要和验证逻辑中,不需要/避免使用此逻辑。
即使在现有的集成电路中,也存在使系统具有成本效益的暂存器数目,更不用说每个集成电路的暂存器数目多年来一直在增加的事实。
一般而言,第一杂凑值和第二杂凑值分别包含以下群组中的一个杂凑值:MD5、SHA-1、SHA-2、NTLM、和LANMAN.MD。通常,必须使用相同的算法来计算第一杂凑值和第二杂凑值,否则比较第一杂凑值和第二杂凑值将没有任何意义(没有比较依据)。
实施例2:在前述任一实施例的系统中,当发生一暂存器内容合法修改(也称为,暂存器值修改)且暂存器内容验证逻辑处于学习模式时,学习模式的操作中止,以及当该暂存器内容合法修改结束时,该暂存器内容验证逻辑重新启动该学习模式且以一新计算出的第一杂凑值来取代先前储存的该参考杂凑值。
任何暂存器写入(例如,对“受监视的暂存器”的暂存器写入)都可以被认为是合法的暂存器修改(这随后通过本文的实施例而有助于硬件篡改的检测或防止),而如果认为写入是合法的,则恶意韧体写入暂存器可能是不可检测的。
本文的逻辑可以采用任何合适的方法来确定何时合法暂存器修改结束,而逻辑可以在该时间点切换模式并计算新的杂凑值/摘要。例如,暂存器写入通常需要一个已知的最大IC时脉周期数c。因此,逻辑可以计数c个时脉,然后逻辑可以安全地(假设暂存器现在保存新值并)计算新的杂凑值/摘要。
实施例3:在前述任一实施例的系统中,当发生一暂存器内容合法修改且暂存器内容验证逻辑非处于该学习模式时,暂存器内容验证逻辑在暂存器内容合法修改结束之后且在验证模式被使能之前,使能学习模式。
实施例4:在前述任一实施例的系统中,当发生一暂存器内容合法修改且暂存器内容验证逻辑处于验证模式时,中止验证模式的操作,以及当暂存器内容合法修改结束时,暂存器内容验证逻辑在返回至验证模式之前先返回学习模式。
实施例5:一种用于检查至少一暂存器的多个内容完整性的方法,包括:对一暂存器的内容(又称为,数值)进行摘要,以产生一摘要;以及藉由比较此摘要与一参考以验证内容的完整性。
实施例6:在前述任一实施例的系统中,当暂存器内容验证逻辑在验证模式下,连续地对暂存器进行杂凑与比较,藉以提供频繁的多个内容验证输出。
实施例7:在前述任一实施例的系统中,每当参考杂凑值与第二杂凑值不相等,内容验证输出被以下至少一者接收,从而导致执行至少一动作:
响应地触发上述动作的一韧体;以及
执行上述动作的一硬件。
实施例8:在前述任一实施例的系统中,上述至少一动作包括重置包括集成电路的装置。
实施例9:在前述任一实施例的系统中,当参考杂凑值与第二杂凑值不相等,内容验证输出可包括发出至韧体的旗标或中断,用于警告更高层级的软件。
实施例10:在前述任一实施例的系统中,上述动作包括对集成电路的所有硬件的一完整硬件重置。
此命令可能是“从硬件到硬件”。通常,硬件中的信号会触发完全或部分/选择性的IC重置。
实施例11:在前述任一实施例的系统中,上述动作包括一系统重置,例如,再次初始化。
实施例12:在前述任一实施例的系统中,上述动作包括中止包含集成电路的一装置,直到此装置的电源关闭且并重新开启为止。
作为实施例7至实施例12的替代或补充,暂存器内容验证逻辑可以触发适当的输出信息给工程师,建议此IC永远停止或报废。暂存器内容验证逻辑可宣告某些输出信号,或者可以指示处于这种停止状态的方式来响应某些存取。
实施例13:在前述任一实施例的方法中,上述参考包括在上述暂存器中的内容进行验证之前预先对暂存器的内容计算出的一摘要。
实施例14:在前述任一实施例的系统中,上述的多个杂凑值中的每一者是在包括多个暂存器的一暂存器组上计算的。
实施例15:在前述任一实施例的系统中,上述集成电路包括一或多个暂存器组,且上述的多个杂凑值中的每一者是上述一或多个暂存器组中的在一给定暂存器组的所有暂存器上计算的。
实施例16:在前述任一实施例的系统中,上述集成电路包括一或多个暂存器库,且上述的多个杂凑值中的每一者是在一给定暂存器库中的所有暂存器上计算的。
实施例17:在前述任一实施例的系统中,其中,暂存器内容验证逻辑设置在集成电路上。
实施例18:在前述任一实施例的方法中,上述暂存器包括至少一暂存器组。
实施例19:在前述任一实施例的方法中,上述摘要包括一杂凑值。
实施例20:在前述任一实施例的系统中,上述集成电路包括一处理器,具有一入口点(entry point),其包括将在重置后执行的一第一指令,其中,当参考杂凑值与第二杂凑值不相等时,内容验证输出触发一硬件重置信号,使处理器回复到该入口点。
实施例21:在前述任一实施例的系统中,上述暂存器内容验证逻辑实现于存在于上述集成电路的硬件上。
出现在文本或附图中的任何商标均为其所有者的财产,在本文中出现的商标仅用于解释或说明如何实施本发明的一个示范例。
除非另有特别说明,否则从以下讨论中可以明显得知,应理解在整个说明书讨论中,利用诸如“处理”、“推算”、“估计”、“选择”、“排序”、“评分”、“计算”、“判断”、“产生”、“在评价”、“分类”、“生成”、“立体匹配”、“暂存”、“检测”、“关联”、“迭加”、“获得”等用语,是指运用以及/或转换在计算系统的暂存器以及/或存储器内表示为物理量的资料的至少一个或多个计算机,或计算系统,或处理器或类似的电子计算装置的动作以及和/或过程。上述的转换,是指将表示为物理量的资料转换为在计算系统的存储器、暂存器、或其他资讯储存、传送、或显示装置内类似地表示为物理量的其他资料。术语“计算机”应被广义地解释为包括具有资料处理能力的任何种类的电子装置,包括但不限于个人电脑、服务器、嵌入式核心、计算系统、通信装置、处理器(例如,数位信号处理器(DSP)、微控制器、现场可程式化逻辑闸阵列(FPGA)、特殊应用集成电路(ASIC)等)、和其他电子计算装置。
本文单独列出的元件不必是不同的组件,并且或者可以是相同的结构。可能存在元件或特征的陈述意指包括(a)元件或特征存在的实施例;(b)元件或特征不存在的实施方式;(c)元件或特征选择性地存在于其中的实施例,例如,使用者可以配置或选择元件或特征是否存在。
附图说明
图1是根据某些实施例的系统的简化框图。所示方块的所有或任何子集可经提供而以如图所示的适当方式相互关联。
图2是根据某些实施例的方法的简化流程图。所示操作的所有或任何子集可经提供而以如图所示的适当顺序排序。
附图标记:
1:系统
10:暂存器/暂存器组
11:暂存器内容验证逻辑
12:处理器
13:快照
14:比较器
15~18:解码器/多工器
S20~S25:步骤
LW:指示(合法写入)
OCV:内容认证输出(错误检测输出)
具体实施方式
应当理解,除非本文另外明确阐明,否则在不同图式中显示出的元件以及/或描述中的元件仍可以组合成单个实施例。
在本发明范围内的方法和系统可包括在具体示出的实施方式中的一些(例如,任何合适的子集)或所有功能块,其等以任何适当的顺序排序。
本文描述和图示的计算、功能、或逻辑组件可以各种形式实现,例如,作为硬件电路,例如但不限于客定VLSI电路或逻辑闸阵列,或作为可编程硬件装置设备,例如但不限于FPGA,或作为软体程式码,其存储在至少一种有形或无形电脑可读媒体中并且可由至少一个处理器或其任何合适的组合来执行。特定功能组件可以由一个多的特定的软体代码序列所组成,这些软体代码可按照本文所讨论的功能组件而共同发挥作用或表现。举例来说,该组件可以分布在几个代码序列上,例如物件、过程、功能、例程、和程序,但不以前述为限,并且可以源自通常协同运行的多个电脑档案。
如果适当的话,本文描述的任何逻辑功能可以被实现为即时应用,并且可以采用任何适当的架构选项,例如ASIC或DSP或其任何适当的组合,但不以此为限。实际上,本文提到的任何硬件组件可以包括一个或多个硬件设备,例如可位于同一地点或彼此远离的晶片。
认证通常应用保留于储存器(例如存储器)中的代码和/或资料区块。通常,此存储器在读取上需要指定存取。
在集成电路中的暂存器,例如配置/控制暂存器,通常储存集成电路的配置以及/或控制设定。因此,集成电路的暂存器通常例如通过设定集成电路操作的各种模式来配置和控制IC,例如IC如何执行各种功能。IC配置的例子包括设定时脉频率、使能/禁能某些功能、选择IO端子的功能等等。因此,骇客可能有动机去侵入配置/控制暂存器以窃取资料,以及/或导致IC或嵌入IC的装置发生故障。配置和控制存储器通常是高度分布的,其等出现在分别耦合到多个不同逻辑功能/方块的多个逻辑区块中。
一些实施例可用于将认证应用于暂存器。
根据一些实施例,藉由使用通常用于提供存储器的内容验证的方法来提供暂存器的内容验证,包括摘要一次内容以产生参考摘要,然后定期重做摘要以产生新的摘要,以及在每个这样的周期中确认新摘要与参考摘要相同。例如,可以提供一种用于检查至少一个暂存器组的内容完整性的设备,并且该设备可以被配置为至少一次执行包括以下操作的周期:摘要暂存器组的内容(也就是暂存器组中的值)从而产生摘要,并验证该摘要。
不像读取存储器时通常需要指定存取,获取暂存器的内容一般而言不需要指定存取。存储在暂存器中的配置和控制设定值通常可由周边硬件的设计者来决定是否可用或“公开”,以供周边IC硬件查看和/或使用。这通常是因为,尽管暂存器可以指用于储存的任何物理结构,但更典型的是,每个暂存器都包含多个并联组合的正反器,每个正反器都具有输出,其对于任何周边硬件而言通常是“可使用”。相反地,通常在功能要求以及获得储存在给定储存单元中的值的合格性或授权条件方面,标准存储器以要求进行交易的方式构建。
可以理解,如本文所述的对一暂存器组进行摘要是费时的,并且持续摘要是不切实际的。但是,应该理解,由于暂存器组(例如,配置和控制暂存器组)比存储器更为静态,因此通常将不需要连续摘要。相对于存储器,一旦在重置后对配置和控制暂存器在重置进行初始化,配置和控制暂存器通常很少更改。由于对暂存器内容的更改很少或甚至不存在,因此可以相对不频繁地探查暂存器组(可以验证其内容,包括此处所述的摘要)。与快速更改的情况相反,更多的存储器特性需要始终进行下述更改,这可能使此处的摘要不切实际。由于可能随时发生黑客侵入,因此可以由管理集成电路安全性问题的工程师自行决定探查的频率
现在参考图1,其表示本发明一实施例的系统1的简化方块图,本发明可提供所示方块的所有或任何子集。图1的装置通常全部设置在单个集成电路上。图1的系统1通常包括以硬件或韧体/软体实现的暂存器内容验证逻辑11,用于连续(典型地)对暂存器组内容进行完整性检查(或称暂存器内容验证)。图1的系统1也包括一个或多个暂存器10(例如,一或多个暂存器组)。
暂存器内容完整性检查例如可以在一个或多个暂存器10上循环,暂存器内容通常(假定是)大部分是静态的,例如重置后初始化,然后保持几乎不变。在每个周期中,图1的暂存器内容验证逻辑11通常会对内容进行摘要,并在不中断系统正常运行的情况下验证暂存器10中值的摘要。图1的系统1包括暂存器内容验证逻辑11,此暂存器内容验证逻辑11对暂存器组10内容执行完整性检查并且例如可存在于硬件中。
替代地或另外地,图1的暂存器内容验证逻辑11可以以软体或韧体来实现,例如通过分别使用软体或固体读取所有相关暂存器10并对其进行摘要/认证。如果这些操作不会不适当地加重本主题系统(例如,集成电路)的性能,那么前述是合适的。
硬件实现的一个特定优点是,无需为了暂存器内容验证逻辑11而捆绑或占用汇流排和暂存器存取路径,而是可以不受干扰或不间断地继续其正常操作。例如,硬件实现避免了通过IC汇流排存取每个暂存器的任何需要。前述是有利的,这是因为如果通过IC汇流排存取暂存器,则那些IC汇流排所供应的其他功能可能至少部分被中断,例如延迟,这可能会对这些IC汇流排所供应的其他功能所贡献的全部IC功能产生不利影响。
通常,正反器输出(例如,在受保护的暂存器内并联正反器所输出逻辑信号)被路由到任何合适的附加目的地。例如:
1.目的地可能包括给定的IC“区块”,例如,当到达信号为“1”时,该区块可被使能;当到达信号为“0”时,该区块可被禁能。
2.目的地可能包括用以选择要使用哪个时脉的逻辑,其中,该逻辑用以选择时脉A(例如,当到达信号为“1”时)或选择时脉B(到达当信号为“0”时)。
因此,由于摘要功能的增加以及/或由于为此目的而提供的附加布线,专用于暂存器的芯片面积可能会增加。
在图1中,这四个梯形方块表示根据某些实施例提供的各个解码器/多工器15~18,其从多个暂存器10收集输入并且基于控制信号传递子集。例如,多个暂存器10的输出可以经过一组选择器和解码器以产生存储在暂存器中的位子集,与没有存储在该暂存器中的位不同,该暂存器的子集是受到关注的。
图2显示了暂存器内容完整性验证方法。此方法将通过图1-图2来说明。此方法可以包括以下操作中以适当顺序排序的所有或任何子集。
操作a:设计阶段(步骤S20):IC的设计人员确保IC的结构能够实现此处的实施例。通常,在设计阶段期间,从集成电路上的多个暂存器中选择一组特定的暂存器。此选择通常发生在设计阶段期间,其确定哪一组暂存器(例如,可能是在集成电路上的所有暂存器,或者在集成电路上的某一组暂存器)接受由此处显示和描述的完整性检查功能所实施的完整性监控。
该组暂存器可以包括对于监视资料完整性(例如,识别由外部硬件进行的任何不必要更改)特别重要的一组暂存器组。
图1的装置中所示的暂存器10可代表该组暂存器。
此外,设计人员可以在设计阶段选择一种杂凑方法(例如,以下方法之一:MD5、SHA-1、SHA-2、NTLM、以及LANMAN.MD),并且可仅包括在集成电路上的一种类型的引擎(仅执行此选择的杂凑方法的引擎),因为每个额外的引擎都会在芯片面积方面产生不必要的成本。
在设计阶段之后,例如图1装置可以开始正常操作,且该操作方法可以包括以下操作的全部或任何子集。
操作b(步骤S21):暂存器被重置,例如,IC硬件将其设置为特定的固定默认值。
操作c(步骤S22):通常将暂存器初始化为构成IC常规操作的正常事件序列的一部分。此暂存器初始化通常由韧体执行。
操作d(步骤S23):使能图1的装置(例如,图1的暂存器内容验证逻辑11)。图1的暂存器内容验证逻辑11的状态机最初将系统置于“学习模式(study mode)”。
在学习模式下,系统从暂存器10(例如,暂存器组)中获取暂存器值,并使用,例如图1所示,可以硬件或韧体/软体实施的适当摘要功能来对获取的暂存器值进行摘要或杂凑值(或对捕获的暂存器实施任何其他的认证),从而产生期望值,亦称为可储存在如图1所示的”快照(snapshot)”13的期望摘要。在此实施例中,实施适当摘要功能的硬件例如可以是图1的处理器12。
如果在学习模式期间的任何时候,暂存器内容验证逻辑11的系统状态机接收到一个指示LW(又称为“合法写入(legit write)”),表明正在进行合法的暂存器值修改,则状态机将中止图1的系统1的操作,并且例如在等待足以确保现已完成修改的适当数量的时脉周期后,再次开始学习程序,重新捕获暂存器以产生更新的摘要。
“合法写入”通常来自IC的主处理器,通常结合所有受保护暂存器的的写入指示。
通常,当集成电路的主处理器(例如)发出暂存器写入时,处理器通常会提交一组地址和资料,然后其等伴随用来指示写入交易的控制信号。然后,为了IC逻辑将地址解码,以确定要写入的暂存器。
因此,由系统的状态机接收到的指示LW可以包括有效目标位址与指示一写入交易的一控制信号的逻辑组合,此目标位置将被解码以指向本文所述被监控或保护的暂存器组内的一暂存器。
此指示LW通常包括常规集成电路用于执行暂存器写入的指示。
重新获取时,获取暂存器的顺序通常会有所不同,以致于无法在“学习模式(studymode)”和“验证模式(verify mode)”下对攻击进行计时。应当理解,摘要可以被认为是涉及依序处理或“求和”二进制值。通常,每次完成摘要时,例如,于每一周期,以不同的顺序进行处理,或者以不同的顺序“加总”“和”。举一个简化的例子来说,也许某个集成电路只有3个暂存器-A、B、和C。因此,例如:在一周期n中初次对这些暂存器进行摘要时,可以遵循以下顺序:暂存器A然后是暂存器C然后是暂存器B,即首先摘要暂存器A,接着是暂存器C,然后是暂存器B。在下一次,例如在周期n+1中,顺序可以是暂存器C然后是暂存器A然后是暂存器B,即首先是摘要暂存器C,接着是暂存器A,然后是暂存器B。下一次,摘要的顺序可以是暂存器B然后是暂存器C然后是暂存器A,依此类推。在每个周期中对暂存器进行摘要的顺序可以例如是由图1的状态机来随机确定的,或者可以遵循例如可以储存在图1的状态机中的设置模式。例如,如果一个周期使用暂存器A然后使用暂存器C然后使用暂存器B,则下一个周期始终使用暂存器C然后使用暂存器A然后使用暂存器B,再下一个周期使用暂存器B然后使用暂存器C然后使用暂存器A,然后下一个周期回到使用暂存器A然后使用暂存器C然后使用暂存器B,依此类推。
上述是有利的,因为如果获取暂存器的顺序发生变化,则很难或不可能对本文所示和所述的完整性检查功能的攻击计时。这是因为成功的攻击通常需要在学习模式被使能的学习阶段期间与”验证模式”(如下文的参考操作e)被使能的验证阶段期间都攻击相同的暂存器。
如果每个周期每次都始终以相同的顺序使用暂存器,则更容易分辨出随时都在对哪一暂存器进行摘要以及/或更容易相应地正确对攻击计时。相反地,例如,如上所述,如果在不同的周期中使用不同的顺序,对成功的攻击计时变得更加困难,甚至不可能。
操作e(步骤S24).当对所有暂存器进行摘要时,状态机将图1的系统切换到“验证模式”,在该模式中,图1的暂存器内容验证逻辑11至少一次,并且通常至少多次(例如连续地),执行以下检验周期。
周期操作I:使用图1的摘要功能(例如,通过图1的处理器12)来对图1的暂存器的内容进行摘要。
周期操作II:例如,通过图1的比较器14对被摘要的内容与在“学习模式”期间获得的预期摘要(也称为“快照”)进行比较,从而验证(或未验证)摘要的内容。根据比较结果,产生一内容认证输出OCV,又称为检测”错误检测”输出。
关于周期操作I,可以使用任何合适的摘要操作,例如MD5、SHA-1、SHA-2、NTLM、和LANMAN.MD),以在周期操作I中对暂存器内容进行摘要(并且每当相关的暂存器值中的改变撤销了当前摘要时,相同的摘要可用于重新计算一摘要)。
通常,为多个暂存器的内容计算一个摘要,而不是为每个暂存器计算一个摘要。损益平衡点通常为几千个暂存器位。换句话说,就芯片面积而言,在例如几千个暂存器位的“损益平衡点”处,本文示出和描述的通过摘要方法的完整性检查变得比加倍更有效。可以理解,即使在今天,许多或大多数常见的集成电路具有至少1K个暂存器(即8K个暂存器位),有时甚至更多。为了计算损益平衡点,考虑到例如SHA1的示例摘要,并判断例如按照常规可能需要多少逻辑单元来实现,合成构成摘要引擎的逻辑,从而判断通过本文所示且所述在硬件中的摘要方法来实现完整性检查所需的单元数。
合成操作例如可以由EDA工具来执行,并且可包括在RTL中获取多个逻辑方程式并将其等合并到合适的VLSI技术的多个逻辑闸中,然后可以将其等放置在IC布局中并进行制造。
单元数,例如大约为5,000个的逻辑单元,可以被认为是暂存器位数量的范围,相对于复制,该范围将通过本文所示和所述的摘要方法来证明完整性检查是合理的。这产生了损益平衡数量的暂存器(例如,假设每个位有8个暂存器,则5k个暂存器位对应于5k/8个战存器)。应当理解,损益平衡点尤其取决于为其计算单一摘要时的暂存器的数量。如果为更多暂存器计算摘要,则需要更多硬件来计算摘要,这会增加损益平衡点。
在周期操作II中,对某些暂存器内容的摘要(即暂存器内容的“参考摘要结果”)的验证通常包括重新摘要相同的暂存器内容,从而产生第二摘要结果,并将第二摘要结果与参考摘要结果进行比较,以产生内容认证输出OCV;如果两者之间没有差异,则认为摘要已被“验证”。在操作f(步骤S25)中,如所描述的,如果在任何学习或验证期间的任何时候,接收到用于合法暂存器值修改(也称为“合法写入”)的指示LW,则图1的暂存器内容验证逻辑11将中止验证并返回为学习模式,从而重新获取暂存器以产生更新的期望值,也就是期望摘要。通常,在这一点上,先前存储的过期的预期摘要,又称为快照,其被丢弃,例如替换为新近更新的预期摘要。
可以理解的是,每次执行此方法时,上述操作c、d、e、I、II都不必全部执行,举例来说,此处所述的方法可以在每次启动IC时执行,或有时可以在启动IC时执行。发生这种情况时,可以初始化暂存器(一次;如果重置或重启动IC,初始化可能会再次发生,在这种情况下,通常该方法可回溯到最开始)。通常接着(在暂存器初始化之后)进入学习模式,以计算摘要。然后,操作模式可以切换到验证模式。然后可以不时地、周期性地、或连续地重新计算摘要,并且通常每次都将其与原始摘要进行比较。这可能会永远持续下去,例如直到被以下事件阻止:检测到错误(例如,因为重新计算的摘要与原始摘要之间的比较失败)、或者写入受监视的暂存器(在这种情况下,操作模式通常会返回学习模式以再次进行摘要)、或者电源关闭或IC重置,在这种情况下,该方法通常回复至重置和初始化。
图1的暂存器内容完验证逻辑11(例如上述操作方法)的速度以及/或周期性以及/或重复频率的决定通常与正常的IC活动无关,因此,验证周期可在任何速度下发生或周期性的发生,这通常取决于设计人员对安全性和功率消耗的考虑。根据一个实施例,暂存器被连续地扫描和摘要,并且非常频繁地进行摘要与适当的参考之间的比较。但是,如果认为较低的安全性是已足够的以及/或功率消耗是重要的设计考虑因素,则扫描、摘要、和比较则不需要连续进行,而可不那么频繁地进行,例如,仅偶尔,或例如周期性地进行。在完整性检查硬件(例如,图1除暂存器组10本身之外的所有元件)的功率消耗与暂存器内容安全性之间需要权衡。因此,在某种程度上,安全性较为重要而功率消耗不太重要,因此,扫描、摘要、和比较会频繁执行,而在安全性不太重要而功率消耗较为重要的使用案例中,扫描、摘要、和比较不会那么频繁地进行。
步进操作(stepping),也称为步进式完整性检查
根据某些实施例,完整性检查是在多个步骤中执行或分批执行,而不是一次执行全部。考虑一个集成电路,例如,板上有N=500个暂存器。根据某些实施例,可以将暂存器分部或划分为例如S=5个集合或部分,并且可以不针对每个暂存器而是针对每个N:S=100个暂存器来计算并保持摘要(例如,作为快照)。这样一来,人们可能会更早地知道(在执行了多个步骤中的某些之后,而不是在执行了全部之后)某个暂存器是否损坏。通常,对于每个s,在计算部分s+1的摘要之前(通常作为条件),将针对部分s(s=1…S)而计算出的摘要与部分s的先前存储的摘要进行比较。该步进式实施例使得可以较早地(相对于非步进式实施例)检测到暂存器已损坏,这尤其有利,因为这消除了从多个步骤中执行剩余步骤的需要(如果损坏的暂存器包括在最后一部分以外的其他部分中)。例如,如果第一部分的摘要失败(通过比较发现其不等于第一部分的先前存储的摘要),则不再需要计算第二、第三、和第四部分的摘要。
在此描述的每个元件可以具有在此述或所示的所有属性,或者根据其他实施例,可以具有在此描述的属性的任何子集。
如果韧体用于实现本文中的某些实施例,则可以将其保存在非挥发存储器中,例如快闪存储器或ROM。
二者择一地,本文描述的某些实施例可以部分地或排他地(即,没有韧体)在硬件中实现,在这种情况下,本文描述的一些或全部变量、参数、连续操作、和计算可以在硬件中。
应当理解,诸如“强制性”、“要求”、“需要”、和“必须”之类的术语是指为了清楚起见而在本文描述的特定实施方式或应用的背景下做出的实施选择,并且无意进行限制,因为,在一替代实施方式中,相同的元件可能被定义为非强制性和非必需的,甚至可能被完全排除。
系统实施例包括相应的处理实施例,反之亦然。特征也可以与本领域中已知的特征相结合,尤其是不限于在先前技术一节或其中提到的出版物中描述的那些特征。
应当理解,为清楚起见,在本文分开的实施例的上下文中描述的的任何特征、特性、逻辑、模组、操作方块、操作、或功能,也可以在单个实施例中结合,除非说明书或一般性知识特别表明某些教示是相互矛盾的而不能结合。本文所示和所述的任何系统可以用于实现或结合本文所示和所述的任何操作或方法。
相反,为简洁起见,在本文单个实施例的上下文中描述的的任何模组、操作方块、操作、或功能,可单独提供,或者可通过包括本领域已知的特征(特别是,尽管不限于在先前技术一节或其中提到的出版物中描述的内容)的任何合适的子结合来提供,或者可以其他顺序排序的方式来提供。
用语“例如”,是用于表示一示例,而无意于进行限制。每一方法可以包括图示或描述的适当排序的一些或全部操作,如本文所示或所述。
Claims (21)
1.一种用于验证暂存器内容完整性的系统,其特征在于,该系统与一集成电路一起操作,该集成电路包括至少一存储器、至少一处理器、以及多个暂存器,包括:
一暂存器内容验证逻辑,其中,在一学习模式下,该暂存器内容验证逻辑读取所述多个暂存器中至少一些暂存器的一内容、计算关于该内容的一第一杂凑值、且储存该第一杂凑值以提供最新的一参考杂凑值,以及在一验证模式下,该暂存器内容验证逻辑计算关于该内容的一第二杂凑值、比较该第二杂凑值与该参考杂凑值、且提供一内容验证输出以指示该参考杂凑值与该第二杂凑值是否相等。
2.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于:
当发生一暂存器内容合法修改且该暂存器内容验证逻辑处于该学习模式时,该学习模式的操作中止;以及
当该暂存器内容合法修改结束时,该暂存器内容验证逻辑重新启动该学习模式,且以一新计算出的第一杂凑值来取代先前储存的该参考杂凑值。
3.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,当发生一暂存器内容合法修改且该暂存器内容验证逻辑非处于该学习模式时,该暂存器内容验证逻辑在该暂存器内容合法修改结束之后且在该验证模式被使能之前,使能该学习模式。
4.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于:
当发生一暂存器内容合法修改且该暂存器内容验证逻辑处于该验证模式时,中止该验证模式的操作;以及
当该暂存器内容合法修改结束时,该暂存器内容验证逻辑在返回至该验证模式之前先返回该学习模式。
5.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,当该暂存器内容验证逻辑在该验证模式下,连续地对所述多个暂存器进行杂凑与比较,藉以提供多个该内容验证输出。
6.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,每当该参考杂凑值与该第二杂凑值不相等,该内容验证输出被以下至少一者接收,从而导致执行至少一动作:
响应地触发该至少一动作的一韧体;以及
执行该至少一动作的一硬件。
7.如权利要求6所述的用于验证暂存器内容完整性的系统,其特征在于,该至少一动作包括重置包括该集成电路的一装置。
8.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,当该参考杂凑值与该第二杂凑值不相等,该内容验证输出可包括发出至一韧体的一旗标或一中断用于警告更高层级的软件。
9.如权利要求6所述的用于验证暂存器内容完整性的系统,其特征在于,该动作包括对该集成电路的所有硬件的一完整硬件重置。
10.如权利要求6所述的用于验证暂存器内容完整性的系统,其特征在于,该动作包括一系统重置。
11.如权利要求6所述的用于验证暂存器内容完整性的系统,其特征在于,该动作包括中止包含该集成电路的一装置,直到该装置的电源关闭且并重新开启为止。
12.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,所述多个杂凑值中的每一者是在包括多个暂存器的一暂存器组上计算的。
13.如权利要求12所述的用于验证暂存器内容完整性的系统,其特征在于,该集成电路包括一或多个暂存器组,且所述多个杂凑值中的每一者是在该一或多个暂存器组中的一给定暂存器组的所有暂存器上计算的。
14.如权利要求12所述的用于验证暂存器内容完整性的系统,其特征在于,该集成电路包括一或多个暂存器库,且所述多个杂凑值中的每一者是在一给定暂存器库中的所有暂存器上计算的。
15.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,该暂存器内容验证逻辑设置在该集成电路上。
16.如权利要求15所述的用于验证暂存器内容完整性的系统,其特征在于,该集成电路包括:
一处理器,具有一入口点,其包括将在重置后执行的一第一指令;
其中,当该参考杂凑值与该第二杂凑值不相等时,该内容验证输出触发一硬件重置信号,使该处理器回复到该入口点。
17.如权利要求1所述的用于验证暂存器内容完整性的系统,其特征在于,该暂存器内容验证逻辑实现于存在于该集成电路的一硬件上。
18.一种用于验证暂存器内容完整性的方法,其特征在于,包括:
对一暂存器的内容进行摘要,以产生一摘要;以及
藉由比较该摘要与一参考以验证多个内容的完整性。
19.如权利要求18所述的用于验证暂存器内容完整性的方法,其特征在于,该参考包括在该暂存器中的所述多个内容进行验证之前预先对该暂存器的内容计算出的一摘要。
20.如权利要求18所述的用于验证暂存器内容完整性的方法,其特征在于,该暂存器包括至少一暂存器组。
21.如权利要求18所述的用于验证暂存器内容完整性的方法,其特征在于,该摘要包括一杂凑值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/717,473 | 2019-12-17 | ||
US16/717,473 US11386234B2 (en) | 2019-12-17 | 2019-12-17 | Security systems and methods for integrated circuits |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112992249A true CN112992249A (zh) | 2021-06-18 |
CN112992249B CN112992249B (zh) | 2023-12-05 |
Family
ID=76317563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011404094.0A Active CN112992249B (zh) | 2019-12-17 | 2020-12-04 | 用于验证暂存器内容完整性的系统及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11386234B2 (zh) |
JP (1) | JP7038185B2 (zh) |
CN (1) | CN112992249B (zh) |
TW (1) | TWI772988B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2592437B (en) | 2020-02-28 | 2022-03-02 | Imagination Tech Ltd | Critical workload check |
GB2592436B (en) * | 2020-02-28 | 2022-02-23 | Imagination Tech Ltd | Critical workload check |
TWI829138B (zh) * | 2022-04-08 | 2024-01-11 | 信驊科技股份有限公司 | 電子裝置以及其資料傳輸的保護裝置 |
US20230418954A1 (en) * | 2022-06-27 | 2023-12-28 | Micron Technology, Inc. | Detecting information modification in a memory system |
CN118571297A (zh) * | 2024-07-17 | 2024-08-30 | 深圳鲲云信息科技有限公司 | 一种存储电路的验证方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348562A (zh) * | 1999-04-23 | 2002-05-08 | 德国捷德有限公司 | 保护计算机的核心免受外部窜改 |
US20030188231A1 (en) * | 2002-04-01 | 2003-10-02 | Cronce Paul A. | Method for runtime code integrity validation using code block checksums |
CN101405740A (zh) * | 2006-01-30 | 2009-04-08 | 晨星半导体新加坡有限公司 | 用以维持储存于存储器的软件完整性的方法 |
CN101527631A (zh) * | 2008-03-04 | 2009-09-09 | 财团法人工业技术研究院 | 基于单向杂凑函数的记录系统与方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968460B1 (en) * | 2001-05-10 | 2005-11-22 | Advanced Micro Devices, Inc. | Cryptographic randomness register for computer system security |
US7028149B2 (en) * | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
US7216369B2 (en) * | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
US8140824B2 (en) * | 2002-11-21 | 2012-03-20 | International Business Machines Corporation | Secure code authentication |
US7921300B2 (en) * | 2003-10-10 | 2011-04-05 | Via Technologies, Inc. | Apparatus and method for secure hash algorithm |
KR100823738B1 (ko) * | 2006-09-29 | 2008-04-21 | 한국전자통신연구원 | 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 |
US7853804B2 (en) * | 2007-09-10 | 2010-12-14 | Lenovo (Singapore) Pte. Ltd. | System and method for secure data disposal |
US7966538B2 (en) | 2007-10-18 | 2011-06-21 | The Regents Of The University Of Michigan | Microprocessor and method for detecting faults therein |
US9613215B2 (en) * | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8146028B1 (en) | 2008-11-19 | 2012-03-27 | Xilinx, Inc. | Duplicate design flow for mitigation of soft errors in IC operation |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
JP5335634B2 (ja) * | 2009-09-29 | 2013-11-06 | レノボ・シンガポール・プライベート・リミテッド | システム管理モードの特権レベルを保護するコンピュータ |
EP2611070A1 (en) * | 2011-12-28 | 2013-07-03 | Gemalto SA | Method for establishing secure card history and audit for property hand-over |
US8971144B2 (en) * | 2012-01-19 | 2015-03-03 | Quixant Plc | Hardware write-protection |
US9396359B2 (en) * | 2013-09-09 | 2016-07-19 | Whitecanyon Software, Inc. | System and method for encrypted disk drive sanitizing |
JP6244759B2 (ja) * | 2013-09-10 | 2017-12-13 | 株式会社ソシオネクスト | セキュアブート方法、半導体装置、及び、セキュアブートプログラム |
US9583218B1 (en) * | 2014-01-24 | 2017-02-28 | Altera Corporation | Configurable register circuitry for error detection and recovery |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
US10248814B2 (en) * | 2017-01-25 | 2019-04-02 | Hewlett Packard Enterprise Development Lp | Memory integrity monitoring |
US10116436B1 (en) * | 2017-09-26 | 2018-10-30 | Intel Corporation | Techniques for preventing memory timing attacks |
-
2019
- 2019-12-17 US US16/717,473 patent/US11386234B2/en active Active
-
2020
- 2020-12-01 TW TW109142153A patent/TWI772988B/zh active
- 2020-12-04 CN CN202011404094.0A patent/CN112992249B/zh active Active
- 2020-12-11 JP JP2020205761A patent/JP7038185B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348562A (zh) * | 1999-04-23 | 2002-05-08 | 德国捷德有限公司 | 保护计算机的核心免受外部窜改 |
US6959391B1 (en) * | 1999-04-23 | 2005-10-25 | Giesecke & Devrient Gmbh | Protection of the core part of computer against external manipulation |
US20030188231A1 (en) * | 2002-04-01 | 2003-10-02 | Cronce Paul A. | Method for runtime code integrity validation using code block checksums |
CN101405740A (zh) * | 2006-01-30 | 2009-04-08 | 晨星半导体新加坡有限公司 | 用以维持储存于存储器的软件完整性的方法 |
CN101527631A (zh) * | 2008-03-04 | 2009-09-09 | 财团法人工业技术研究院 | 基于单向杂凑函数的记录系统与方法 |
Non-Patent Citations (1)
Title |
---|
姜欣宁: ""计算机组成与设计"实验教材-基于设计方法、VHDL及例程", 西安交通大学出版社, pages: 12 - 16 * |
Also Published As
Publication number | Publication date |
---|---|
TWI772988B (zh) | 2022-08-01 |
JP7038185B2 (ja) | 2022-03-17 |
TW202125525A (zh) | 2021-07-01 |
JP2021096852A (ja) | 2021-06-24 |
US20210182432A1 (en) | 2021-06-17 |
CN112992249B (zh) | 2023-12-05 |
US11386234B2 (en) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112992249B (zh) | 用于验证暂存器内容完整性的系统及其方法 | |
CN108573144B (zh) | 安全的执行上下文数据 | |
US9762399B2 (en) | System and method for validating program execution at run-time using control flow signatures | |
EP2729896B1 (en) | Bios flash attack protection and notification | |
US8943491B2 (en) | Systems and methods for maintaining CRTM code | |
US20080034350A1 (en) | System and Method for Checking the Integrity of Computer Program Code | |
WO2005091757A2 (en) | Autonomous memory checker for runtime security assurance and method therfore | |
US10776493B2 (en) | Secure management and execution of computing code including firmware | |
US20110145919A1 (en) | Method and apparatus for ensuring consistent system configuration in secure applications | |
CN101276389A (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
CN110069361A (zh) | 用于tpm故障切换的方法和装置 | |
EP1843250B1 (en) | System and method for checking the integrity of computer program code | |
JP7160860B2 (ja) | メモリエラーを訂正するためのシステム及び方法 | |
JP7097407B2 (ja) | ビットエラー修正の試行錯誤を優先順位付けるためのシステムおよび方法 | |
US20130091324A1 (en) | Data processing apparatus and validity verification method | |
CN113971276B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |