CN1503144A - 用于进行代码验证的系统和方法 - Google Patents

用于进行代码验证的系统和方法 Download PDF

Info

Publication number
CN1503144A
CN1503144A CNA2003101033625A CN200310103362A CN1503144A CN 1503144 A CN1503144 A CN 1503144A CN A2003101033625 A CNA2003101033625 A CN A2003101033625A CN 200310103362 A CN200310103362 A CN 200310103362A CN 1503144 A CN1503144 A CN 1503144A
Authority
CN
China
Prior art keywords
hash
value
memory
computer code
input
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
Application number
CNA2003101033625A
Other languages
English (en)
Other versions
CN100356351C (zh
Inventor
D・J・克拉夫特
D·J·克拉夫特
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1503144A publication Critical patent/CN1503144A/zh
Application granted granted Critical
Publication of CN100356351C publication Critical patent/CN100356351C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Abstract

本发明用于验证代码,如引导代码。一存储器寻址引擎用来按步长值的函数选择存储器的一部分,作为第一输入散列值。此步长值允许对第二输入散列值(如先前的循环左移散列值)与多个存储器部分进行非交换累积散列处理。验证电路可用于对存储器的该部分和第二输入散列值执行散列处理。之后可应用比较电路对验证电路的输出和预期值进行比较。

Description

用于进行代码验证的系统和方法
技术领域
本发明一般涉及引导控制机构,更具体言之,本发明涉及采用硬件签名的引导控制机构。
背景技术
计算机系统中的安全是令人关心的。在计算技术系统中会发生代码或数据的非授权读取,或者是在计算机系统中代码或数据受到不小心或恶意的改变。
针对引导代码过程的安全的通常的解决方案是采用软件密码锁,也称为软件密码签名。一般,在遇到可疑引导代码时,软件密码锁或软件密码签名通过执行一个函数,如散列函数,对一段引导代码进行分析。如经过散列函数计算的值是正确的(即软件“签名”是正确的),就认为可疑代码是安全的并容许其访问系统。
然而,存在许多与软件散列系统相关联的问题。比如,对512位的块进行散列处理的计算复杂性可能很大。利用一台32位的RISC计算机,比如,一般可能要使用数千条指令对一个512位的输入数据决进行处理。结果,散列系统一般也就提供速度较低的验证过程。于是,需要一种至少能够克服通常的系统的一些缺陷的散列处理过程。
发明内容
本发明验证代码,如引导代码。一存储器寻址引擎按一步长值函数来选择存储器的一部分作为第一输入散列值。还提供第二输入散列值。可以应用验证电路来对所选择的存储器部分和第二输入散列值进行散列处理。也可应用比较电路来对验证电路的输出和预期值进行比较。
附图说明
为了更彻底的了解本发明及其优点,现在结合附图参考下面的详细描述,附图中:
图1示意地示出用于验证引导代码的散列系统。
图2A和图2B示出应用散列系统的方法的流程图。
图3示出应用散列逻辑硬件的方法的流程图。
具体实施方式
在下面的讨论中,提出多个具体细节供彻底了解本发明。然而,本领域人士可以理解,本发明无需这些具体细节也可以实现。在其他场合,公知的元件以示意图或框图形式示出,以避免以不需要的细节掩盖本发明。此外,对于大部分而言,涉及网络通信、电磁信令技术等等的细节,已经尽可能省略,只要这些细节未被认为是彻底了解本发明所必需并且被认为是相关技术界人士所了解的。
另外,还要注意,除非另有说明,此处所描述的所有功能既可以利用硬件或软件,也可以利用执行固件的微处理器,或其某种组合来完成。在一个实施方式中,采用的是用来完成这些功能的经过编码的专用集成逻辑电路。在另外一些实施方式中,完成这些功能利用的是处理器,如计算机或电子数据处理器,根据的是代码,如计算机程序代码,软件,和/或经过编程用来执行这种功能的集成电路,除非另有说明。
下面参考图1,图中示出的是散列系统100。此散列系统100包括一个主存储器110。此主存储器110分割为16个存储字,存储字0至存储字15。在示出的实施方式中,主存储器是512位,并且每个存储字是32位,虽然本专业人士可以理解,其他的主存储器110大小也在本发明的范围之内。
散列系统100包括一个非易失性存储器寄存器130。此存储器寄存器130包括初始化值INX(IN0至IN7),素数因子控制符,或“跳跃”值,SX(S0至S7),以及预期值EX(E0至E7)。这些数值即使在系统100断电时也存储于非易失性存储器寄存器130中,从而可以防止授权的个人企图改变这些数值和更改散列函数输出。
一般讲,INX值是一个输入到验证引擎150的种子值。在验证引擎150内INX值与散列函数中的字0组合。之后验证引擎150对两个输入执行散列处理。正如技术人士可以理解的那样,散列一般可以定义为对输入执行的非交换的累积组合数学函数,从而创建一个硬件引导代码签名(“签名”)。一个良好的累积组合函数应该是这样一个函数,其中来自函数的前一个迭代结果的全部的位与输入的全部的位相组合而产生一个新结果。此外,此结果的全部位应该以某种方式取决于输入和前一个结果值。非交换函数是以这样的方式进行运算的函数,即两个相继迭代的结果也取决于其处理两个输入值的次序。例如,加法函数是交换函数,因为(A+B)与(B+A)相同,但减法函数是非交换函数,因为(A-B)与(B-A)不同(除非A和B具有相同的值)。
在图1示出的实施方式中,由验证引擎150执行存储字的散列处理。一个散列结果160包括一个初始种子值和字0的函数。这产生一个输出到散列结果160的散列输出。之后,此输出通过反馈环路155反馈到散列函数的输入。实质上同时,第二个存储字也送入到验证引擎150的散列的输入,从而产生一个新的散列结果。
之后,一个SX值从非易失性存储器寄存器130输入到存储器寻址引擎120。通常,存储器寻址引擎120按SX值的函数从主存储器110选择字。之后此选择的字输入到散列函数150,每个散列一个。由存储器寻址引擎120每次进行的新字选择都发生于在验证引擎150完成一个新散列之时。比如,如果SX=1,由存储器寻址引擎120选择存储字的次序是存储字0、存储字1、存储字2等等,验证引擎150完成的每个散列各一个。如果SX=3,按存储字0、存储字3、存储字6等等装入存储字0,验证引擎150完成的每个散列各一个。在一个实施方式中,装入的第一字定义作字0。
在一个实施方式中,跳跃值相对待检测的存储器范围的数是素数。比如,在图1中,有16个待检测的存储字。16等于24。因此,在1和16之间的任何不是2的因数的数字都是可接受的素数并且可用作SX。存储字的选择顺序由存储器寻址引擎120通过从指定的存储器范围,如范围“0”,开始而进行。之后,加上SX值来确定下一个可接受的地址范围。
表1
    素数 存储字0-15的组合的次序
    SX=1 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
    SX=3 0,3,6,9,12,15,2,5,8,11,14,1,4,7,10,13
    SX=5 0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11
    SX=7 0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9
    SX=11 0,11,6,1,12,7,2,13,8,3,14,9,4,15,10,5
    SX=13 0,13,10,7,4,1,14,11,8,5,2,15,12,9,6,3
    SX=15 0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1
换言之,散列电路150在累积非交换的散列处理中使用由存储器寻址引擎120按跳跃值SX的函数选择的字。之后将每个非交换组合散列处理的结果回送到散列电路,以便与由存储器寻址引擎120选择的下一个字以非交换累积方式相组合。
比如,如SX=3,第一个存储字0将从存储器寻址引擎120与种子值INX一起送入散列函数。之后,由验证引擎150完成的散列的输出通过反馈环路155回送到验证引擎150的散列中。之后存储器寻址引擎将另一个字,3,输出到验证引擎。这些在验证引擎150中都重新一起进行散列处理。这一新散列的输出作为进一步的输入通过反馈环路155与由存储器寻址引擎选择的字6一起送入验证引擎150的散列,等等。这一散列处理过程一直继续到全部存储器范围经过检测为止。
在示出的实施方式中,散列电路150使用跳跃值SX一直到主存储器110中的所有的单元都被读出并且进行非交换组合。在示出的实施方式中,SX是素数,或是由不包含形成主存储器110的大小的素数因子构成。于是,对每个给定的SX存储器110的每个存储字都受到一次选择,如果SX的值由存储器寻址引擎120使用的次数等于主存储器110中的字数时。例如,如果SX=3,并且在存储器中有16个字,则当存储器寻址引擎120选择并传输字0、3、6、9等等16次时,主存储器110中所有的字都被存储器寻址引擎120选择并传输到验证引擎150进行散列处理。
在示出的实施方式中,一旦由存储器寻址引擎120选择的字高于包含在主存储器内的字的计数,计数“回绕”变为零。比如,如SX值是“3”,并且存储器寻址引擎120所选择的最后的字是字15,则下一个选择的字是字2、字5等等。在一个实施方式中,由存储器寻址引擎进行的字的选择一直继续到选择数等于主存储器110中的字数为止。
一旦所有的存储器范围都以给定的INX在组合中经受了检测时,就将给定的INX的最终散列值(FVX)输入到散列结果寄存器160。散列结果寄存器160将FVX与从非易失性存储器寄存器130接收到的预期值EX进行比较。如果两者相等,则主存储器110中的字顺利通过与该具体INX值相联系的检测。于是系统100开始检测下一个INX值,并且存储器寻址引擎120利用下一个相关联的SX进行下一轮的存储字选择。如果对散列不存在更多的INX值,则存储器信息,如引导代码,已经通过散列逻辑并且因此是“安全”的,即是没有更改的,而检测结束。然而,对于任何值INX,如果FVX不等于EX,则主存储器110中的字没有顺利通过与INX值相关联的检测,代码被认为“更改”过,此代码不能接受,并且检测结束。
在示出的实施方式中,增加用来生成与EX相比较的FVX的SX值的数目,通常会使得在比较散列结果与EX之际误将更改的代码当作未更改的机会减小。比如,虽然经过更改的代码对于给定的SX可以通过存储器的第一遍并从而产生一个正确`的FV1,但由存储器寻址引擎120使用新的SX值并且以验证引擎150使用的不同的次序第二遍通过存储器110通常会产生不同的FVX。随着计算出的每一个额外的FVX,更改的代码通过所有的FXX和INX之间的比较的几率减小。
在示于图1的实施方式中,验证引擎150使用的是累积的但是是非交换的过程组合字串和散列结果来构建散列值,或签名,以便与预期值EX进行比较,每个INX一个。本专业人士可以理解,非交换意味着散列结果,由散列电路150生成,并且取决于散列电路150处理输入值的次序以及输入值本身。
比如,一般讲,如果用来组合不同值的函数fC是交换函数,则(AfCB)与(BfCA)产生的结果相同。然而,在示出的实施方式中,由存储器寻址引擎120选择的字和散列结果160要在非交换累积散列电路150中组合,因为电路150使用的函数是非交换函数。因此,(AfnB)与(BfnA)产生的结果一般不同。
在一个实施方式中,验证引擎150利用一个循环左移1位(“rot1”)函数。一般,rot1采用的数据为存储器范围或种子值这样的数据,存储并擦除最高有效数字,将每个数字移动到下一个最高有效位置保持中,并将所存储的最高有效数字置于最低有效数字位置保持中。在一个实施方式中,使用循环右移函数。同样,也可使用其他函数来使逻辑组合变为非交换的。
在示出的实施方式中,验证引擎150使用至少两个值的组合,至少其中的一个经过更改而使此组合成为一般非交换累积函数。
1.新散列值=(老的散列反馈输出fnx)。
换言之,老的散列反馈输出是以非交换组合方式与存储器寻址引擎120选择的字SX组合的。对于存储字0,散列种子值INX代替老的散列输出。
在图1中,非交换累积函数fn包括利用一个“rot1”函数。在一个实施方式中,利用一个逻辑“与”函数将这些值组合。
2.新散列值=(-rot1,(R,1)+字x)。
换言之,使老的散列值循环左移1位(该值是来自散列结果150的反馈散列值)并与存储器寻址引擎120选择的字x相加而得到散列结果。在另一实施方式中,利用一个逻辑”异或,,函数将这些值组合。一般讲,在验证引擎150内使用非交换累积函数,如rot1函数,在系统100比较FVX和EX时可使更改的代码被当作未更改的代码的机会减小。
下面看图2A和2B,其中示出用于验证代码的方法200。一般,在方法200中,验证引擎150对输入值进行散列处理以产生一系列FVX。将这些FVX与预期值EX进行比较来确定主存储器110的字是否包含未更改的代码和/或数据,或者代码和/或数据是否被更改并因而是不可接受的。
在步骤210中,存储器寻址引擎120定义SX为S0。在步骤215中,设定INX为IN0。在步骤217中,设定EX为E0
在步骤220中,由预期结果比较器170从非易失性存储器寄存器130读出预期值EX。在步骤225中,由存储器寻址引擎120从非易失性存储器寄存器130读出步长值SX。一般,此值SX是素数或与等待验证的存储器,如主存储器110,有关系的素数的组合。在方法200中,为便于描述,S0=1,虽然S0的其他值也在本发明的范围之内。
在步骤230中,设定存储器计数值等于0。此存储器计数值一般可定义为值SX与开始值相加多少次。在一个实施方式中,开始值为零,与字零相对应。
在步骤240中,将INX值从非易失性存储器寄存器130输入到散列结果160中,该结果通过反馈环路155送入验证引擎150中。在另外一个实施方式中,INX直接输入到验证引擎150。
在步骤250中,从主存储器110中读出所选择的存储字,与乘以存储器计数值的SX相关联,从存储器寻址引擎120传输到验证引擎150。如果此存储器计数值大于存储器中的字数,就发生存储器环绕。
在步骤255中,对取自主存储器110的选择字利用种子值INX或先前的散列结果执行散列处理。此散列处理可为在方程(1)中公开的散列处理。
在步骤260中,存储器寻址引擎120确定对给定的SX是否所有存储器单元或部分已被读出。在一个实施方式中,这一点是通过比较存储器计数值和主存储器110中的字数完成的。如果主存储器110中的字尚未全部被选择,则执行步骤245。在步骤245中,利用反馈环路155将散列电路150的输出反馈到散列电路的输入端,如方程(1)所示。之后,在步骤265中,再一次执行累积非交换散列处理,并将存储器单元计数值加“1”。再次执行步骤250,并重复这一循环一直继续到对给定的SX全部字都读出为止。
然而,如果对给定的SX全部存储器单元都已经读出,则由步骤270确定散列电路150的最终值FVX是否等于存储于非易失性存储器寄存器130中的预期值EX。在步骤275中,如两者不相等,则主存储器110中的代码和数据已经更改,因而不可靠,而验证失败。于是,此方法在步骤277停止。
然而,如果对给定的SX最终散列值等于预期值EX,则主存储器110中的字已经通过对该SX和INX的值的组合的验证。于是,在步骤280中,方法200确定是否全部INX都已经检测。如果是,就是主存储器110中的字通过了验证,并且未更改。因此,此方法在步骤295停止。
然而,如果并非所有的INX都已经通过检测,则在步骤285中将所选择的INX加1从INX变为IN(X+1),如IN3变为IN4。另外,相应的SX也加1变为S(X+1),如S3变为S4。EX也加1变为E(X+1),如E3变为E4。之后,方法200再执行一次一直到全部INX都经过检测并通过检测为止,或者是一直到最终散列值FHVX不等于其相应的EX为止。
下面看图3,其中公开的是用于生成散列值的方法的流程图300,如在方法200的步骤255中执行的。在步骤310中,散列电路输入INX或来自步骤255的前一个调用中前一个散列输出。在步骤320中,将存储器寻址引擎120所选择的字也输入到散列电路。在步骤330中,将字或前一个值循环左移以产生循环移位输入散列值。最后,在步骤340中,将循环移位输入散列值与非循环移位散列值相加而得到散列结果。在一个实施方式中,前一个散列值是循环左移值。
可以理解,本发明可采用多种形式与实施方式。因此,在不脱离本发明的精神和范围的情况下可以有多种不同的实施形态实现本发明。在参考某些优选实施例对本发明进行上述描述之后,应该注意,此处公开的实施方式本质上是示例性的而非限制性的,并且可以预期在上述公开内容中可以有多种变化、改型、改变和替换,并且,在一些情况下,可以采用本发明的某些特点而不使用其另一些特点。根据对实施方式的上述描述的综述,本专业人士可能认为很多变化和改型是明显的和有益的。因此,下附的权利要求可以做广泛的解释并且与本发明的范围一致。

Claims (20)

1.一种用于代码验证的系统,包括:
一存储器寻址引擎,用来按步长值函数选择存储器的一部分,作为第一输入散列值;
一第二输入散列值;
一验证引擎,用来对存储器的该部分和第二输入散列值两者进行散列处理;以及
一比较电路,对验证引擎的输出和预期值进行比较。
2.如权利要求1的系统,其中验证引擎所使用的散列包括一非交换累积函数。
3.如权利要求2的系统,其中非交换累积函数还使用一个“与”函数对存储器的该部分和第二输入值进行散列处理。
4.如权利要求1的系统,其中步长值不包括存储器的大小的素数。
5.如权利要求1的系统,其中第二输入散列值包括初始种子值。
6.如权利要求1的系统,其中第二输入散列值包括一反馈散列值。
7.如权利要求1的系统,其中验证引擎使用“异或”函数来对存储器的该部分和第二输入值进行散列处理。
8.如权利要求1的系统,其中所选择的存储器的该部分是一个字。
9.如权利要求1的系统,其中存储器寻址引擎用来按步长值函数选择多个被选的存储器部分。
10.如权利要求1的系统,其中验证引擎使用多个初始种子值。
11.一种用于计算机代码序列验证的方法,包括:
读出所选择的第一存储器部分;
读出预期值;
读出第二散列输入值;
对所选择的存储器部分和第二散列输入值进行散列处理;
将散列结果反馈到第二散列输入;
读出所选择的第二存储器部分;
对所选择的第二存储器部分与反馈的散列结果进行散列处理;以及
将反馈散列结果的散列处理结果与预期值进行比较。
12.如权利要求11的方法,其中的散列处理步骤还包括使第二散列输入的最高有效数字循环左移。
13.如权利要求11的方法,其中的散列处理步骤还包括使用非交换累积组合。
14.如权利要求11的方法,还包括按步长值函数选择多个存储器部分。
15.如权利要求14的方法,还包括使用存储器环绕来选择多个存储器部分。
16.如权利要求11的方法,还包括将最终散列值传输到预期结果比较器。
17.如权利要求11的方法,还包括使用多个初始值。
18.如权利要求11的方法,还包括生成多个最终散列值。
19.一种用于计算机代码序列验证的计算机程序产品,此计算机程序产品具有其中嵌入有计算机程序的介质,此计算机程序包括:
用于读出所选择的第一存储器部分的计算机代码;
用于读出预期值的计算机代码;
用于读出第二散列输入值的计算机代码;
用于对所选择的存储器部分和第二散列输入值进行散列处理的计算机代码;
用于将散列结果反馈到第二散列输入的计算机代码;
用于读出所选择的第二存储器部分的计算机代码;
用于对所选择的第二存储器部分与反馈的散列结果进行散列处理的计算机代码;以及
用于将反馈散列结果的散列处理结果与预期值进行比较的计算机代码。
20.一种用于计算机代码序列验证的处理器,此处理器包含一计算机程序,其构成包括:
用于读出所选择的第一存储器部分的计算机代码;
用于读出预期值的计算机代码;
用于读出第二散列输入值的计算机代码;
用于对所选择的存储器部分和第二散列输入值进行散列处理的计算机代码;
用于将散列结果反馈到第二散列输入的计算机代码;
用于读出所选择的第二存储器部分的计算机代码;
用于对所选择的第二存储器部分与反馈的散列结果进行散列处理的计算机代码;以及
用于将反馈散列结果的散列处理结果与预期值进行比较的计算机代码。
CNB2003101033625A 2002-11-21 2003-10-29 用于进行代码验证的系统和方法 Expired - Fee Related CN100356351C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/302,447 US7194626B2 (en) 2002-11-21 2002-11-21 Hardware-based secure code authentication
US10/302,447 2002-11-21

Publications (2)

Publication Number Publication Date
CN1503144A true CN1503144A (zh) 2004-06-09
CN100356351C CN100356351C (zh) 2007-12-19

Family

ID=32324785

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101033625A Expired - Fee Related CN100356351C (zh) 2002-11-21 2003-10-29 用于进行代码验证的系统和方法

Country Status (2)

Country Link
US (1) US7194626B2 (zh)
CN (1) CN100356351C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101401351B (zh) * 2006-03-29 2012-02-01 Nds有限公司 密码保护
CN107969156A (zh) * 2015-09-01 2018-04-27 谷歌有限责任公司 用于处理图形数据的神经网络
CN113474772A (zh) * 2019-02-22 2021-10-01 美光科技公司 用于改进运行固件或有限状态机的组件或系统的安全性的方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140824B2 (en) * 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7171563B2 (en) * 2003-05-15 2007-01-30 International Business Machines Corporation Method and system for ensuring security of code in a system on a chip
US7836121B2 (en) * 2004-04-14 2010-11-16 Ipass Inc. Dynamic executable
US7920844B2 (en) * 2006-02-27 2011-04-05 Alcatel-Lucent Usa Inc. Method of providing context information for a mobile device
US8155674B2 (en) 2006-08-22 2012-04-10 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051115A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051114A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051110A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051112A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051116A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US20080051111A1 (en) * 2006-08-22 2008-02-28 Research In Motion Limited Apparatus, and associated method, for dynamically configuring a page message used to page an access terminal in a radio communication system
US8065530B2 (en) 2006-09-11 2011-11-22 Research In Motion Limited Apparatus, and associated method, for paging an access terminal in a radio communication system
US8458460B2 (en) * 2007-09-27 2013-06-04 Intel Corporation Digest generation from instruction op-codes
US7894440B2 (en) * 2009-03-13 2011-02-22 Freescale Semiconductor, Inc. Programmable hash-tuple generation with parallel rule implementation independence
US8638800B2 (en) * 2009-04-03 2014-01-28 Freescale Semiconductor, Inc. Technique for generating hash-tuple independent of precedence order of applied rules
JP2013511223A (ja) * 2009-11-16 2013-03-28 マーベル ワールド トレード リミテッド 反復解析及び分類
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10924282B2 (en) 2018-05-24 2021-02-16 Cyber Pack Ventures, Inc. System and method for measuring and reporting IoT boot integrity

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713753A (en) 1985-02-21 1987-12-15 Honeywell Inc. Secure data processing system architecture with format control
JPH01175057A (ja) 1987-12-28 1989-07-11 Toshiba Corp セキュリティの動的管理方法
JP2821306B2 (ja) 1992-03-06 1998-11-05 三菱電機株式会社 Icカードと端末機との間の認証方法およびそのシステム
US5692199A (en) 1993-10-28 1997-11-25 Elonex I.P. Holdings, Ltd. Personal digital assistant module having a host interconnect bus without an interrupt line and which handles interrupts as addresses associated with specific interrupts in memory
US5963142A (en) 1995-03-03 1999-10-05 Compaq Computer Corporation Security control for personal computer
US5724423A (en) 1995-09-18 1998-03-03 Telefonaktiebolaget Lm Ericsson Method and apparatus for user authentication
US5805880A (en) 1996-01-26 1998-09-08 Dell Usa, Lp Operating system independent method for avoiding operating system security for operations performed by essential utilities
US5648648A (en) 1996-02-05 1997-07-15 Finger Power, Inc. Personal identification system for use with fingerprint data in secured transactions
JPH09233068A (ja) 1996-02-23 1997-09-05 Digital Vision Lab:Kk 電子認証システム
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US6418533B2 (en) 1997-08-29 2002-07-09 Compaq Information Technologies Group, L.P. “J” system for securing a portable computer which optionally requires an entry of an invalid power on password (POP), by forcing an entry of a valid POP
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6009520A (en) 1997-12-10 1999-12-28 Phoenix Technologies, Ltd Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6226742B1 (en) 1998-04-20 2001-05-01 Microsoft Corporation Cryptographic technique that provides fast encryption and decryption and assures integrity of a ciphertext message through use of a message authentication code formed through cipher block chaining of the plaintext message
US6160903A (en) 1998-04-24 2000-12-12 Dew Engineering And Development Limited Method of providing secure user access
US6145085A (en) 1998-04-30 2000-11-07 Compaq Computer Corporation Method and apparatus for providing remote access to security features on a computer network
US6141752A (en) 1998-05-05 2000-10-31 Liberate Technologies Mechanism for facilitating secure storage and retrieval of information on a smart card by an internet service provider using various network computer client devices
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6263431B1 (en) 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
WO2001057657A1 (en) 2000-02-01 2001-08-09 Cirrus Logic, Inc. Methods and circuits for selectively operating a system in a secure environment
US6823463B1 (en) 2000-05-16 2004-11-23 International Business Machines Corporation Method for providing security to a computer on a computer network
US6918036B1 (en) * 2000-06-30 2005-07-12 Intel Corporation Protected platform identity for digital signing
US6892305B1 (en) 2000-10-12 2005-05-10 International Business Machines Corporation Method and system for booting up a computer system in a secure fashion
US7200761B1 (en) * 2000-11-09 2007-04-03 International Business Machines Corporation Method to use secure passwords in an unsecure program environment
AU2002218644A1 (en) * 2000-11-29 2002-06-11 Temasek Polytechnic Enhance authorization system and method for computer security
CN1215418C (zh) * 2001-01-09 2005-08-17 中兴通讯股份有限公司 一种防止在计算机中运行的应用系统被攻击或篡改的方法
US7191438B2 (en) 2001-02-23 2007-03-13 Lenovo (Singapore) Pte, Ltd. Computer functional architecture and a locked down environment in a client-server architecture
US7191464B2 (en) 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7171563B2 (en) 2003-05-15 2007-01-30 International Business Machines Corporation Method and system for ensuring security of code in a system on a chip

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101401351B (zh) * 2006-03-29 2012-02-01 Nds有限公司 密码保护
CN107969156A (zh) * 2015-09-01 2018-04-27 谷歌有限责任公司 用于处理图形数据的神经网络
US11663447B2 (en) 2015-09-01 2023-05-30 Google Llc Neural network for processing graph data
CN113474772A (zh) * 2019-02-22 2021-10-01 美光科技公司 用于改进运行固件或有限状态机的组件或系统的安全性的方法

Also Published As

Publication number Publication date
US7194626B2 (en) 2007-03-20
US20040103291A1 (en) 2004-05-27
CN100356351C (zh) 2007-12-19

Similar Documents

Publication Publication Date Title
CN1503144A (zh) 用于进行代码验证的系统和方法
US10650151B2 (en) Method of execution of a binary code of a secure function by a microprocessor
US8442218B2 (en) Method and apparatus for compound hashing via iteration
CN113065169B (zh) 一种文件存证方法、装置及设备
RU2580797C1 (ru) Способ мягкого декодирования блоковых кодов
JP6323338B2 (ja) ビット列照合システムと方法とプログラム
US20190265701A1 (en) Artificial neural network integrity verification
US20060277410A1 (en) Method and Apparatus for Watermarking Stream Data
US20220004621A1 (en) Data recovery through reversal of hash values using probabilistic data structures
US7353386B2 (en) Method and device for authenticating digital data by means of an authentication extension module
Javaheripi et al. Hashtag: Hash signatures for online detection of fault-injection attacks on deep neural networks
US8380991B2 (en) Hash function based on polymorphic code
US11356274B2 (en) Verifying a set of remotely stored data
CN1750411A (zh) 用于测试循环冗余码算法的测试数据模式
CN111147477B (zh) 一种基于区块链网络的验证方法及装置
CN107533500A (zh) 用于确保程序执行的方法
CN111159776A (zh) 一种自适应神经网络模型验证方法及系统
US10873462B1 (en) Verification of computation by untrusted source
CN113569225A (zh) 一种算法程序的验证方法及装置
CN114091121B (zh) 一种消息摘要存储方法、系统、存储介质及设备
Bartholomew et al. Error detection in a multi-user request system using enhanced CRC algorithm
CN117785859A (zh) 数据校验方法、装置、设备、介质和计算机程序产品
CN113946342A (zh) 一种基于软件多样化技术的系统安全性度量方法
CN115605869A (zh) 用于在安全元件中安全地处理数字信息的方法
CN116611096A (zh) 故障检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071219

CF01 Termination of patent right due to non-payment of annual fee