运算装置、方法与系统的制作方法

文档序号:6541003阅读:117来源:国知局
运算装置、方法与系统的制作方法【专利摘要】本发明提供一种运算装置、方法与系统,该运算装置包括一输入桥接器(inputbridge)、一输出桥接器、一处理核心以及一验证逻辑。该输入桥接器接收具有多个数据项的一序列,该序列是该运算装置在一程序的执行中所使用。该处理核心,耦接以接收来自输入桥接器的该等数据项且执行该程序,以使得该输出桥接器输出对应该序列中的一给定数据项的一信号。该验证逻辑,当该处理核心执行该程序时,耦接以接收并验证该等数据项,并在该给定数据项被该验证逻辑验证前,禁止该输出桥接器输出该信号。通过本发明,在确认所有验证成功后才继续数据的处理过程,在确保数据通信过程的安全性的同时,保障了数据通信及验证过程的完整性。【专利说明】运算装置、方法与系统【
技术领域
】[0001]本发明关于一种运算系统,特别是在用以安全执行储存(securedexecut1n)在外部装置的程序的方法与系统。【
背景技术
】[0002]在安全运算系统(securedcomputingsystems)中,一安全运算装置(securedcomputingdevice)通常会与一个或多个外部装置进行沟通。一外部装置一般包含至少一个存储装置,以储存多个程序指令(programinstruct1ns),该等程序指令是被该运算装置内的一处理核心(processingcore)所执行。在一些例子中,运算装置与外部装置之间的通信连结并不安全,这使得安全运算装置通常需要去验证从该通信连结接收到的数据的完整性与真伪。真伪验证(authenticityvalidat1n)指的是一接收装置(如一安全运算装置),可以确认接收到的数据是从一个合法来源(如一被授权的存储装置)所传送。数据的完整性是指这些数据在被输入到接收装置前并没有被修改。在下文与权利要求书的描述中,“验证”(authenticat1n)指的是可以用来确定数据的完整性、真伪或两者的技术。[0003]用来验证储存在计算机环境外的外部装置的程序码(code)与数据是已知的技术。举例来说,美国专利申请号2010/0070779,其揭露内容被合并在本申请书并作为参考(incorporatedhereinbyreference),已经揭露了一种方法,用以保护被一加密演算法加密的数据的完整性,该加密演算法提供至少一个中介状态(intermediarystate),其在加密动作与解密动作是相同的。这个中介状态在加密动作中被取样以产生一签章。该专利申请文件的揭露内容特别是应用在保护被认为是安全的一集成电路外的存储器所储存的内容的隐私、完整性与真伪。[0004]美国专利号8108941的揭露内容被合并在本申请书并作为参考(incorporatedhereinbyreference)。该专利描述了一处理器,连接到一非易失性存储器,储存第一存储器验证信息,其用以验证该非易失性存储器。该处理器包括一运算单元,一验证存储器、一验证信息取得单元、一存储器验证单元以及一存储器存取控制单元。该运算单元利用储存在该非易失性存储器的信息进行一运作。该验证存储器与该运算单元被整合形成一体,且该验证存储器储存第二存储器验证信息以验证该非易失性存储器。验证信息取得单元用以自该非易失性存储器取得第一存储器验证信息。存储器验证单元比较第一存储器验证信息与第二存储器验证信息以验证该非易失性存储器。当存储器验证单元成功验证后,存储器存取控制单元允许对该非易失性存储器的一存取动作。[0005]美国专利号8140824的揭露内容被合并在本申请书并作为参考(incorporatedhereinbyreference)。该专利描述了一计算机程序产品,包括一可供计算机使用的媒体,其储存有一计算机可读取程序,用以验证程序码,如启动程序码(bootcode)0一存储器定址引擎被应用来选择一存储器的一部分,作为一程序的一步骤值(stepvalue),与作为一第一输入杂凑值(hashvalue)。该步骤值则允许以一第二输入杂凑值对多个存储器部分做非交换(non-commutative)累积性的杂凑计算,如将前一个杂凑值左移(rotatedleft)。一验证电路被应用以根据该第二杂凑值与该存储器的该部分执行一杂凑运算。一比较电路则比较验证电路的输出与一预期值。[0006]在上述现有技术中对于通信数据的验证中,任何关于数据讯息的改变,如改变数据的完整性,都会导致在接收端的验证失败,难以保证数据通信及验证过程的完整性。【
发明内容】[0007]本发明实施例的主要目的在于提供一种运算装置、方法与系统,以解决现有技术中存在的上述问题。[0008]为了实现上述目的,本发明的一实施例提供一种运算装置,包括一输入桥接器(inputbridge)、一输出桥接器、一处理核心以及一验证逻辑。该输入桥接器接收具有多个数据项的一序列,该序列是该运算装置在一程序的执行中所使用。该处理核心,耦接以接收来自输入桥接器的该等数据项且执行该程序,以使得该输出桥接器输出对应该序列中的一给定数据项的一信号。该验证逻辑,当该处理核心执行该程序时,耦接以接收并验证该等数据项,并在该给定数据项被该验证逻辑验证前,禁止该输出桥接器输出该信号。[0009]在一些实施例中,该数据项包括多个程序指令,且该给定数据项,包括一输出指令。该处理核心通过执行包括该输出指令在内的该等程序指令,以被配置以执行该程序。在另一些实施例中,该验证逻辑验证该等数据项的动作与该处理核心执行该程序的过程是非同步的。在另一些实施例中,在程序执行中,当该被给定数据项已经被该处理核心使用过后,该验证逻辑才验证该被给定数据项,且延迟该输出桥接器输出该信号,直到该验证逻辑完成该被给定数据项的验证。[0010]在另一实施例中,该验证逻辑通过计算该等数据项的一个或多个数字签章,并分别比对该运算装置通过该输入桥接器所接收到的多个原始签章与该等计算到的签章的方式,以验证该等数据项。在另一实施例中,如果至少一个计算的签章与对应的原始签章不符合的话,该验证逻辑产生一警示信号。在另一实施例中,该输入桥接器通过接收具有多个数据项的第一与第二区块的方式接收该等数据项,其中当该第一区块内的所有数据项都被验证后,该输入桥接器才接收该第二区块。[0011]此外,根据本发明的另一实施例,一种运算方法也被提出。该方法包括在一运算装置内通过一输入桥接器接收有多个数据项的一序列,该序列是该运算装置的一处理核心在一程序的执行中所使用;该处理核心执行该程序,以使得该运算装置输出对应该序列中的一给定数据项的一信号;以及当该处理核心执行该程序时,使用一验证逻辑以认为该等数据项,并在该给定数据项被该验证逻辑验证前,禁止该输出桥接器输出该信号。[0012]本发明的另一实施例更提供一种运算系统,包括一外部装置与一运算装置。该外部装置,用以提供具有多个数据项的一序列。该运算装置,包括一输入桥接器(inputbridge)、一输出桥接器、一处理核心以及一验证逻辑。该输入桥接器接收具有多个数据项的一序列,该序列是该运算装置在一程序的执行中所使用。该处理核心,耦接以接收来自输入桥接器的该等数据项且执行该程序,以使得该输出桥接器输出对应该序列中的一给定数据项的一信号。该验证逻辑,当该处理核心执行该程序时,耦接以接收并验证该等数据项,并在该给定数据项被该验证逻辑验证前,禁止该输出桥接器输出该信号。[0013]本发明的有益效果在于,利用基于分享金钥生成的签章对通信数据进行验证的过程,在确认所有验证成功后才继续数据的处理过程,在确保数据通信过程的安全性的同时,保障了数据通信及验证过程的完整性。[0014]关于本发明的详细内容可参考下文中实施例的描述并参酌对应的图示,此一领域内的普通技术人员当可更清楚本发明的内容。【专利附图】【附图说明】[0015]图1为根据本发明的一安全运算装置的一实施例的功能方块示意图;[0016]图2为根据本发明的一实施例的一安全运算系统20的一方块不意图;[0017]图3为根据本发明的一实施例的一安全状态机的示意图;[0018]图4为根据本发明的一实施例的一验证方法的流程示意图。[0019]附图标记[0020]24?安全运算装置;[0021]26?安全外部装置;[0022]28?非安全外部装置;[0023]42?分享金钥;[0024]44?输入桥接器;[0025]48?处理核心;[0026]56?签章引擎;[0027]40?外部签章引擎;[0028]36A、36B?接口;[0029]32A、32B?存储器;[0030]DATAITEM?数据项;[0031]SIGNATURE?签章;[0032]ALERT?警示信号;[0033]STALLOUTPUT?停止输出;[0034]STALLCOREINPUT?停止核心输入;[0035]OUTREQUEST?输出请求;[0036]52?验证逻辑;[0037]Ctr/Adr?控制/地址;[0038]58?签章缓冲器;[0039]56?签章引擎;[0040]KEY?金钥;[0041]60?输出桥接器;[0042]48?处理核心;[0043]44?输入桥接器;[0044]50?缓存;[0045]Ctr/Adr/DATA?控制/地址/数据;[0046]DATA?数据;[0047]64?安全系统输出;[0048]30?安全系统输入;[0049]80?安全状态;[0050]84?不安全状态;[0051]88?验证状态。【具体实施方式】[0052]有关本发明的上述及其他技术内容、特点与功效,在以下配合参考图式的一较佳实施例的详细说明中,将可清楚的呈现。以下实施例中所提到的方向用语,例如:上、下、左、右、前或后等,仅是参考附加图式的方向。因此,使用的方向用语是用来说明并非用来限制本发明。[0053]安全运算系统从一外部装置接收数据(或是一信息)时,通常会在使用数据前去验证数据的完整性(integrity)与真伪(authenticity)。本文中提到的多个实施例是通过使用数字签章(digitalsignature)来做数据的验证。一个数字签章通常包括一位串(bit-string),其通常与数据储存在一起或是在传送端(senderside),如一存储装置,即时产生,并被与数据一同被传送给接收端(receiptside),如一安全运算装置,以供进行验证。接收端会计算接收到的数据的一签章,并且将计算到的签章与传送端的原始签章进行比对。如果两个签章符合,则接收端就可以假定接收到的数据是真实(authentic),且没有被任何未授权方(unauthorizedparty)修改过。[0054]在很多例子中,签章的产生与验证是根据数据讯息以及一私钥。产生签章的演算法通常被设计使得未授权方无法在不得知私钥的情况下产生合法的签章。此外,任何关于数据讯息的改变,如改变数据的完整性,都会导致在接收端的签章验证失败。[0055]使用私钥来产生签章的验证的多种方法已经是普通技术人员所熟知。举例来说,一个传送者可以使用一个私钥来产生一签章,其中接收者使用一公钥来验证该签章。在另一个例子中,传送者与接收者会分享一个共用金钥(commonkey),该共用金钥是传送者与接收者之间是保密的。在现有的技术中,关于在传送者与接收者之间交换金钥的方法是被普通技术人员熟知的。在验证完对应一数据的一签章后(假设该金钥的保密并未被破坏),安全运算装置便可以安全地处理接收到的数据。举例来说,当数据包含了多个计算机程序指令时,该运算装置就可以安全第执行被验证过的程序,而不用冒着让安全或加密信息被曝露的风险。[0056]在安全方面,可能会影响运算装置内部处理的未被验证的程序指令与其他数据项(dataterm),根据本发明实施例的目的,可以被分为两类。处理第一类(firstcategory)的未验证数据项并不会曝露任何安全或加密信息,且在该类型的数据项因此被认为是中性指令或是中性数据项。另一方面来说,处理第二类(secondcategory)的未验证数据项可能造成安全或私密信息被直接或间接的被曝露。第二类型的数据项因此被认为是输出指令。[0057]关于本发明的多个实施例在本文中会被描述,这些实施例提供了关于改进安全运算装置内的验证动作的方法与系统。在一实施例中,在一运算装置内的一处理核心会通过一输入桥接器(inputbridge)接收来自外部装置的指令并执行,外部装置可能是一存储器。这些指令都被一数字签章所签署。该些指令中的一部分,如输出指令,可能会使得处理核心通过一输出桥接器(outputbridge),输出信息。上文中所指的输入桥接器(inputbridge)与输出桥接器(outputbridge)是一种上位说法,泛指运算装置可以用以接收信号或传送信号的所有连接。而在说明书与权利要求书中,信号这一词泛指的是进入该运算装置,或离开该运算装置中,任何携带信息的通道(channel),不管是不是通过一实体信号的连接。关于非实体信号通道(non-physical)的例子,包括了有条件地执行重置操作的多个信号,这些信号可能是从侧信道攻击(side-channelattacks)捡取到的信号(如电源线上的电压模式(voltagepattern))、电磁福射的改变(electro-magneticemiss1n)以及可能被曝露给攻击者的安全信息(securedinformat1n)?[0058]通过输入桥接器接收的多个指令会被运算装置内专门的验证逻辑所验证。验证动作通常是与该程序的部分被处理核心所执行时,平行地被实现。当处理核心遭遇到一输出指令,且该输出指令尚未被验证时,该验证逻辑会抑制输出桥接器,并延迟信号的实际输出,直到该输出指令与所以在该输出指令前的所有指令都被验证。因此,在避免私密信息被无意地曝露的同时,也可避免不必要的执行延迟(delayofexecut1n),让效能得以最大化。[0059]在一实施例中,该外部装置包括一非安全存储装置(unsecuredmemorydevice)。该存储装置的容量的一部分被用来储存对应存储器区块的多个签章。该运算装置从该存储装置接收数据与对应的签章,并验证多个信号区块。接收到的数据可以先被储存在一缓存(cache),或是同时被处理核心所执行,一旦发生一缓存失效(cachemiss)事件,则会再自外部装置重新抓取(re-fetching)数据。运算装置会运行在一模式下,在该模式下,一旦抓取多个数据区快,多个签章就会被抓取、储存以及验证,而不是让运算装置运作在单一区块的抓取-验证(fetch-authenticate)周期。这样的运作模式可增强运算装置的效率。[0060]在另一实施例中,外部装置包括一安全存储装置(securedmemorydevice),并与一签章引擎(equippedwith)配备在一起。安全存储装置分享一密钥(secretkey)给运算装置,安全存储装置可以产生、维持以及传送数据签章给该运算装置。该数据签章的产生可能是借着计算在该装置接口上传送的一个或多个数据项(或是一个区块的数据项)、且/或地址、且/或控制信号上的一信息文摘(messagedigest),来产生该数据签章。一密钥可以被用来作为一种子(seed),以产生一随机乱数序列(pseudo-randomsequence),且该随机乱数序列会用以与该信息文摘混合。或者该信息文摘可以被一适当的密钥进行加密以产生该签章。用以送出多个数据签章到运算装置的排程选择(schedulingalternatives)包括:即时传送(sendingexhaustively,当签章一产生就马上传送)、周期性传送、根据要求时才传送,或是根据其他任何的排程方法,如将多个排程方法集合起来并且同时运作。运算装置自存储装置接收数据与对应的签章,并使用该签章验证接收到的数据。同样例,对于使用非安全存储装置的实施例来说,接收到的数据会先被储存在一缓存(cache),或是同时被处理核心所执行。一旦发生一缓存失效(cachemiss)事件,则会再自外部装置重新抓取(re-fetching)数据。[0061]图1为根据本发明的一实施例的一安全运算系统20的一方块示意图。在图1的例子中,一安全运算装置24与一安全外部装置26以及一非安全外部装置28沟通。安全外部装置26以及非安全外部装置28分别包括存储器32A与32B,存储器32A与32B以数据项为基本单位储存数据(数据项也可以被视为是数据区块)。数据项的数字签章被计算后储存在非安全外部装置28内的存储器32B。安全外部装置26同样也可以储存计算到的签章并储存在存储器32A(图上未绘出)。安全外部装置26可以通过计算与安全运算装置24传送的信号,如数据、地址、且/或控制信号,来产生签章。详细动作请参考以下说明。[0062]下文以及权利要求书中的“数据项”,指的可能是储存在存储装置(如安全外部装置26以及非安全外部装置28)内的数据,且/或在一安全存储装置(如安全外部装置26)与一运算装置(如安全运算装置24)之间沟通的数据、地址且/或控制信号。举例来说,一个被储存的数据项可能包括一程序指令或一数据字(dataword)。此外,一个被储存的数据项可能包括多个程序指令或多个数据字。[0063]安全运算装置24可用以处理由安全外部装置26以及非安全外部装置28分别通过接口36A与36B传送的多个数据项。安全运算装置24通过一输入桥接器(inputbridge)44接收指令,并执行对应的程序。[0064]在一些实施例中,安全外部装置26以及非安全外部装置28分别会在存储器32A与存储器32B中储存一个或多个数据项与一个或多个签章。在一些实施例中,安全外部装置26以及非安全外部装置28内的签章会预先被计算并储存。这些签章可以来自所有的数据项或是部分的数据项。举例来说,一个签章可能被计算到,以对一群数据项签署,该等数据项包括了一个计算机程序的子程序(subroutine)。此外,签章也可能从多个数据项组成的适当大小的区块所计算得到。在一些实施例中,所有的数据项都被使用单一金钥所签署。在其他例子中,该等数据项的多个子集合可能被用不同的金钥所签署。[0065]用以计算签章的金钥可以被编程(programmed)或以现有的多种方法,如(但非以此为限)使用一非易失性存储器、一次性可编程(onetimeprogrammable)非易失性存储器、电子熔丝、实体不可预测功能(physicalunpredictablefunct1n,PUF,或是可简称为实体不可被复制功能(physicalunclonablefunct1n)),储存在安全运算装置24且/或安全外部装置26内。此外,通过在一安全环境中,分别以一适当的分享金钥对安全外部装置26可以与安全运算装置24编程使得安全外部装置26可以与安全运算装置24配对,或是通过已知的金钥交换方法来让安全外部装置26可以与安全运算装置24配对。[0066]当安全运算装置24与安全外部装置26沟通时,安全外部装置26内的一签章引擎40,可以对通过接口36A的多个程序指令、数据、控制信号且/或地址信号产生一签章。此夕卜,签章引擎40针对储存在存储器32A内的多个数据项计算一个或多个签章。由签章引擎40计算的多个数字签章可以被储存在存储器32A内,并根据要求传送或是其他的排程方法传送给安全运算装置24。[0067]在一些实施例中,在安全外部装置26以及非安全外部装置28内的全部或部分数据项是被加密的。在这些实施例中,签章引擎40可能更包括一加密装置(encryptingcipher),且安全运算装置24会包括一解密装置(decryptingcipher)。解密装置会被提供一种金钥,以对加密的数据项解密。解密的动作会早于一处理核心48的执行动作。[0068]输入桥接器44被作为是安全外部装置26以及安全运算装置24之间的双向通信接口,并传送接收到的数据项给处理核心48。处理核心48—般来说包括安全系统20的主中央处理器(CPU),可能还包括其他额外的处理器以及汇流排主控(busmaster),以协调核心的内部与输入/输出活动。[0069]安全运算装置24内的签章引擎会从接收到的数据项(且/或其他数据、地址、且/或控制信号)计算签章,并用以验证接收到的数据项的真伪。如果验证失败,安全运算装置24会采取适当的方法以避免秘密数据(secretinformat1n)流出或被曝露。安全运算装置24的结构与详细功能请参考图2与对应的说明。[0070]在一些实施例中,在通过签章引擎56或40计算签章前,要被签署的数据的长度会被调整,使其符合做签章计算的输入数据的特定长度。[0071]图2为根据本发明的一实施例的安全运算系统20的一方块示意图。在图2中,安全运算装置24与一外部装置沟通,该外部装置在图上被以安全系统输入30的方块所表示。安全系统输入30,举例来说,可能包括图1的安全外部装置26以及非安全外部装置28、一存储装置或是其他数据项与签章的适当来源。在后文中的说明中,“安全系统输入”与“外部装置”这两个名词是可以互换。[0072]安全运算装置24产生地址信号与控制信号,并通过输入桥接器44发送,以存取储存在外部装置的存储器中的数据。处理核心48产生地址信号与控制信号,并通过输入桥接器44发送,以从外部装置读取数据项,如程序指令。输入桥接器44接受并传送数据项给处理核心48,以做进一步的执行动作。在一些实施例中,数据项会在传送给处理核心48前(或同时),先被缓存储存在一本地缓存存储器50内。[0073]接收的数据项也会被输入到验证逻辑52以及签章引擎56。验证逻辑52以及签章引擎56可能会跟处理核心48同时运作或是不同步(asynchronously)运作。验证逻辑52更会通过产生适当的控制信号与地址信号,并通过输入桥接器44发送到外部装置,以读取储存在外部装置或由外部装置所产生的该等数据项的原始签章。或者是这些签章可能会与数据一起被安全系统输入30传送给输入桥接器44。使用接收到的数据项与对应的金钥,签章引擎56计算该等数据项的一签章,并将该签章传送给验证逻辑52作为验证使用。验证逻辑52通过比对由签章引擎56计算的签章与原始签章,来验证接收到的数据项的真伪与完整性。在一些实施例中,验证逻辑52可能会在使能输入桥接器44以接收后续的数据项之前,先将储存在签章暂存器58内的所有签章验证完。另外一种的签章验证方法请参考下文。[0074]输出桥接器60连接处理核心48至安全系统输出(securedsystemoutput)64,也可以被视为是输出通道。安全系统输出64包括任何地址空间(addressspace)到通过处理核心48的一写入或读取操作,这可能会直接或间接地暴露安全信息,以及其它种类的接收器可能接收来自输出桥接器60的信号。除此之外,这些位置空间,或该些位置空间的一部分可能会根据安全系统20的配置或状态的变化而被动态地改变。[0075]在下文与权利要求书中,一数据项或一程序指令在输出桥接器60(可被安全系统输出64接收或感测)产生的结果,被视为是一输出指令。在一些实施例中,当执行到一输出指令时,处理核心48发送一输出请求(OUTREQUEST)信号给验证逻辑52。随之而来的,当被使能了,输出桥接器60对一输出指令的回应被视为是输出一信号。多个输出指令的例子的执行可能会让安全数据暴露到安全系统输出64,包括:[0076]写入一非易失性存储器(non-volatilememory,NVM),且/或一单次编程(one-timeprogrammable)存储器;[0077]写入一外部界面,如该系统内的另一个芯片,存储装置或是通用输入/输出信号;[0078]存取锁定位(lock-bits),测试模式,时钟脉冲组态(clockconfigurat1n)与重置暂存器(resetregister);[0079]存取安全加速模块(这边指的是可以执行安全功能的模块,安全功能如计算AES、SHA1、SHA256、RSA或ECC值)的控制且/或组态暂存器),可能会将私密信息与金钥暴露给使用侧信道攻击(side-channelattacks)技术的攻击者,该技术如电源分析或电磁干扰分析。[0080]输入桥接器44可作为验证逻辑52与处理核心48之间的仲裁器。在初始状态,处理核心48得到较高的优先权限去从外部装置130抓取数据项。当被要求时,然而(位于如图3的一验证状态),验证逻辑52可以停止输入桥接器44不要在抓取后续的数据项,或是通过激活一停止核心输入(STALLCOREINPUT)阻挡数据项,并接管输入桥接器44以读取外部储存或产生的签章。在一些实施例中,必须要等到先前抓取得所有数据项都被验证后,才可以让后续的数据项被输入。此外,验证逻辑52可以停止输出桥接器60,并且通过激活一停止输出(STALLOUTPUT)信号的方式,禁止任何对安全输出64的存取。安全运算装置24的功能性,特别是使用在避免私密数据被暴露的停止功能的使用上,则在图3的叙述中有更清楚地描述。[0081]虽然上述的签章验证技术是通过比较由签章引擎56计算的签章与通过输入桥接器44接收到的签章的方式达成,但在其它例子中,签章验证的动作可以根据杂凑讯息摘要hashmessagedigests)的比较结果来判断。用以计算签章的演算法有时会使用杂凑功能或加密功能。[0082]在一实施例中,运算安全运算装置24与一安全外部装置26进行沟通,对应某些数据的一签章包含一信息摘要(messagedigest),该信息摘要是使用一杂凑功能(hashfunct1n)对该些数据计算得来。该信息摘要可以从在接口36A传送的一个或多个数据项、且/或数据、地址、且/或控制信号所计算得到。该信息摘要可能会通过安全运算装置24与26对飞的数据作及时地更新与计算。[0083]安全外部装置26可以被排程,且即时地、周期性地或是根据安全运算装置24的要求,传送信息摘要签章给安全运算装置24。一旦接收到更新的信息摘要,验证控制逻辑会比较由安全外部装置26计算的信息摘要与一内部计算得到的信息摘要,内部计算得到的信息摘要是由签章引擎56针对接收到的数据所求得。接着验证该被签署的数据的真伪。在安全运算装置24与26之间分享的密钥42,可以被作为一种子,以产生一随机乱数序列(pseudo-randomsequence),该序列接着会被与信息摘要数据一起被混合。[0084]在其他例子中,取代将信息摘要与根据一密钥产生的一序列混合的方式,一加密演算法使用一密钥对该信息摘要加密,并产生一签章。接收端,如安全运算装置24,接收数据与签章,并使用一特定钥匙对接收到的签章解密,恢复原始未加密的信息摘要以及根据接收到的信息重新计算该信息摘要。如果原始的信息摘要与重新计算的信息摘要相符,该数据则会被暂时认定已经验证。多个杂凑与加密功能的例子,该例子包括安全杂凑演算法(securehashalgorithm)SHA-1、与进阶力口密演算法(advancedencrypt1nalgorithm,AES)。[0085]图1、图2中的运算安全运算装置24、外部安全外部装置26与28的配置都只是举例说明,非将本发明限制于此。在其他实施例中,任何适合的配置都可以被使用。运算安全运算装置24、外部安全外部装置26与28内的不同元件可以改用任何适合的硬件来实现,如特殊应用集成电路(Applicat1n-specificintegratedcircuit,ASIC)或是现场可程序化栅阵列(Field-programmablegatearray,FPGA)。在一些实施例中,运算安全运算装置24、外部装设26与28的部分元件可被用软件实现,或是使用软件与硬件结合的方式来实现。举例来说,在本实施例中,签章引擎56与验证逻辑52可以被专门的硬件模块所实现。在另一实施方式中,签章计算以及加密/解密功能可以由具有签章引擎56与40的硬件所实现,或是由被处理核心48执行的软件所实现,或是由软件与硬件的结合来实现。[0086]一般来说,运算安全运算装置24内的处理核心48包括至少一个通用计算机处理器,可用以执行软件的方式实现上述的功能。举例来说,软件可能是通过网络,从运算安全运算装置24所下载,又或是被提供且/或储存在非暂态的有形媒体(non-transitorytangiblemedia),如磁性、光学或电子式的存储器。[0087]图3为根据本发明的一实施例的一安全状态机的示意图。安全运算装置24的一些安全方面与运作模式是从状态机的三个状态与状态间定义的转换规则(transit1nrule)衍生而来。在安全状态80,通过输入桥接器44,一数据项与指令正被执行,以及先前被执行过的数据项,都是已经被验证逻辑52所验证过。安全状态80是三个状态中的唯一一个状态,在该状态内,安全运算装置24可被允许存取安全系统输出64。在状态80的期间,安全运算装置24也被允许通过输入桥接器44接收多个数据项。一旦接收到数据项,状态机就会过渡到不安全状态84。[0088]在不安全状态84时,至少有一部分刚接收到的数据项的真伪并没有被确认,且此时安全运算装置24不被允许存取安全系统输出。当处理核心48遭遇到一输出指令时,实际去存取输出通道的动作会被延迟,换句话说,输出桥接器60输出的输出信号会被延迟,直到输出指令被验证为止。在不安全状态84时,处理核心48仍继续处理中性数据项,中性数据项指的是没有要求要存取系统输出64的数据项,即便这些中性数据项也还没有被验证。[0089]从不安全状态84到一验证状态88的转变是否会发生,端看验证逻辑52是否有接收到一验证请求(AUTHENTICAT1NREQUEST)信号。在验证状态88内,验证逻辑停止输入桥接器44接收新的数据项,并且接管从输入桥接器44到外部装置30内的原始签章。验证逻辑52比较了原始签章与由签章引擎56计算得到的签章,以验证数据。如先前所提到的,验证逻辑52验证数据项的动作可能与处理核心48执行的数据项不同步。[0090]多种的触发可以产生一验证请求信号,这使得状态机的状态被转换到验证状态88。一些触发的例子提供作为参考:[0091]当处理核心48试图要得到安全系统输出64的存取权限,且该装置并不是在安全状态80时,该输出请求信号(OUTREQUEST)被激活。[0092]周期性地或是在前一次访问验证状态后一预定超时时间(timeout)后,激活该输出请求信号。[0093]当被配置给作验证的签章的一存储器空间满了。举例来说,如具有一非安全存储器的一实施例,其验证多个等待中的签章,详细动作请参考下文。[0094]当输入桥接器44并没有被传送数据项的动作所占领,也因此验证逻辑52可以通过输入桥接器,去取得除存在安全系统输入30的签章。[0095]当数据项在状态88被验证为真实时,状态机转换回安全状态80。否则,当验证失败时,验证逻辑52就会发出一警示信号。[0096]当警告信号产生时,安全运算装置24可以采用很多种手段以维持在一高度安全的等级。一些安全运算装置24可以根据警示信号,采用的对应动作如下:[0097]重设该安全环境;[0098]抹除秘密数据,如密钥;[0099]强制安全运算装置24暂时中止所有的运作,如处理/验证数据项,且额外的去停止输入与输出桥接器;[0100]回应的程度可以依据验证失败的事件的数量。举例来说,安全运算装置24可以在确认一定数量的验证失败事件后,重新启动运作,且更积极地会赢,如删除安全信息或再有一验证失败发生就终止所有活动。[0101]本文目前描述的是安全系统20的一实施例,其中该外部装置包括一不安全存储器非安全外部装置28,如现成(off-the-shelf)的一非易失性的储存装置。在本例子中,该存储装置储存多个数据项,该等数据项包括了多个计算机程序指令(且可能包括相关数据),要被安全运算装置24所执行。非安全外部装置28可以配置适当比例的储存空间以储存签章。举例来说,75%的储存空间会用来储存使用者数据,而25%的空间用来储存签章。签章可能是根据多个区块的多个数据项所计算得到(在存储装置之外)。举例来说,每一256位的存储区块可能被签署一64位的签章。[0102]假定在本例子中,安全运算装置24是配备有缓存存储器50,其具有一256位大小的缓存线(cacheline)。通过输入桥接器44被读取的数据项先被储存在缓存,或是同时被传送给处理核心48处理。在一缓存失效(cachemiss)事件上,运安全运算装置24会抓取新的数据项到缓存中。每256位区块中,由处理核心48执行程序指令的动作以及由签章引擎56计算签章的动作是同时被实现的。安全运算装置24可以储存多个签章在签章缓冲器58内,这样就可以在实际执行真伪验证前,使能多个数据提取(datafetch)0根据验证请求(AUTHENTICAT1NREQUEST),处理核心48会暂停,且验证逻辑会自外部存储非安全外部装置28读取对应的原始签章,并且比较原始签章与计算得到的签章。当所有等待中的签章都被验证后,处理核心48恢复执行的动作。[0103]上述实施例的配置(configurat1n)都只是一例子说明而已,非将本发明限制于此。任何适合的输入与存储元件的配置都可以被使用。举例来说,其他的数据区块大小或签章大小都是可行的。在另一个例子中,任何适合的签章缓冲器的大小也可以被使用。在另一实施例中,32位的签章也可以自128位的区块所计算得到。这些数据区块被储存在具有一128位缓存线的缓存存储器内,且高达5个未验证签章可以被储存在一160位签章缓冲器内。[0104]图3中的状态机的配置只是一个范例配置,仅是发明人提供作为说明,非将本发明限制于此。在其他实施例中,任何适合数量的状态以及任何状态间适合的转换规则(transit1nrule)都可以被使用。[0105]图4为根据本发明的一实施例的一验证方法的流程示意图,该方法可以被安全运算装置24所实现。在一程序码接收步骤100中,安全运算装置24接收要被处理核心执行的计算机程序指令。一旦通过输入桥接器44接收到程序指令,安全运算装置24转换到不安全状态84。安全运算装置24在请求确认步骤104中,先确认是否有一等待中的验证请求。如果步骤104中没有需要执行任何验证,处理核心在执行步骤108中执行接收到的程序指令。除此之外,安全运算装置24会继续到一验证步骤116(下文有说明)。[0106]当该等指令的执行已经被实现,安全运算装置24在指令确认步骤112中,会确认是否处理核心48正在处理一中性指令,或是处理须要存取安全系统输出64的指令。一旦处理核心48正在处理的是中性指令,安全运算装置24回到步骤104。否则,则可以假定处理核心48正在执行一尚未被验证过的输出指令,且处理核心试图得到安全系统输出64的存取权。安全运算装置24接着继续到验证步骤116,在该步骤时,安全运算装置24的状态被转换成验证状态88。在这个状态下,验证控制逻辑52停止处理核心48的执行,并通过激活一停止输出(STALLOUTPUT)信号来抑制输出桥接器60,接着通过如上述比较计算到的签章的方式来执行验证(authenticat1nvalidat1n)。[0107]在验证步骤120中,安全运算装置24会确认在步骤116是否有发现签章比对成功的情形。如果签章比对成功,则安全运算装置24在安全状态转换步骤124中,被转换到安全状态80,且处理核心48恢复执行。在安全状态80中,安全运算装置24被允取去从外部存储器抓取程序指令,并且可以安全地存取安全系统输出64。如果在步骤120的验证失败,验证逻辑52在一警示步骤132产生一警示信号,并回到步骤100以抓取额外的程序指令。安全运算装置24可能会以上述的回应方式进行回应。[0108]在检查步骤128中,安全运算装置24检查是否所有抓取的指令都已经被执行。如果都已经执行完毕,安全运算装置24会回到步骤100以抓取子程序指令。除此之外,安全运算装置24会回到步骤104去检查是否还有一等待中的验证请求。[0109]上述图4的方法只是一个例子说明,并非将本发明限制于此。在本发明的范畴内,可以完成本方法目的的其它方法都可以被使用。举例来说,在步骤116中暂停处理核心的动作可以被替换,让该处理核心可以继续执行中性指令且/或延迟实际上要存取安全系统输出64的动作,直到所有的指令都被验证完毕。[0110]综上所述,通过本发明的运算装置、方法与系统,利用基于分享金钥生成的签章对通信数据进行验证的过程,在确认所有验证成功后才继续数据的处理过程,在确保数据通信过程的安全性的同时,保障了数据通信及验证过程的完整性。[0111]惟以上所述的,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明权利要求书及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或权利要求不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。【权利要求】1.一种运算装置,其特征在于,所述运算装置包括:一输入桥接器,其耦接以接收具有多个数据项的一序列,所述序列是所述运算装置在一程序的执行中所使用;一输出桥接器;一处理核心,耦接以接收来自输入桥接器的所述多个数据项且执行所述程序,以使得所述输出桥接器输出对应所述序列中的一给定数据项的一信号;以及一验证逻辑,当所述处理核心执行所述程序时,耦接以接收并验证所述多个数据项,并在所述给定数据项被所述验证逻辑验证前,禁止所述输出桥接器输出所述信号。2.根据权利要求1所述的运算装置,其特征在于,所述数据项包括多个程序指令,且所述给定数据项包括一输出指令,且所述处理核心通过执行包括所述输出指令在内的所述多个程序指令,以被配置为执行所述程序。3.根据权利要求1所述的运算装置,其特征在于,所述验证逻辑验证所述多个数据项的动作与所述处理核心执行所述程序的过程是非同步的。4.根据权利要求1所述的运算装置,其特征在于,在所述处理核心执行所述程序的过程中,已经使用所述给定数据项之后,所述验证逻辑才验证所述给定数据项,且延迟所述输出桥接器输出所述信号,直到所述验证逻辑完成所述给定数据项的验证。5.根据权利要求1所述的运算装置,其特征在于,所述验证逻辑通过计算所述多个数据项的一个或多个数字签章,并分别比对所述运算装置通过所述输入桥接器所接收到的多个原始签章与计算到的所述数字签章的方式,以验证所述多个数据项。6.根据权利要求5所述的运算装置,其特征在于,如果至少一个计算的签章与对应的原始签章不符合的话,所述验证逻辑产生一警示信号。7.根据权利要求5所述的运算装置,其特征在于,所述输入桥接器通过接收具有多个数据项的第一区块与第二区块的方式接收所述多个数据项,其中当所述第一区块内的所有数据项都被验证后,所述输入桥接器才接收所述第二区块。8.—种运算方法,其特征在于,所述运算方法包括:在一运算装置内通过一输入桥接器接收有多个数据项的一序列,所述序列是所述运算装置的一处理核心在一程序的执行中所使用;所述处理核心执行所述程序,以使得所述运算装置输出对应所述序列中的一给定数据项的一信号;以及当所述处理核心执行所述程序时,使用一验证逻辑以验证所述多个数据项,并在所述给定数据项被所述验证逻辑验证前,禁止所述输出桥接器输出所述信号。9.根据权利要求8所述的运算方法,其特征在于,所述数据项包括多个程序指令,且所述给定数据项包括一输出指令,且所述处理核心通过执行包括所述输出指令在内的所述多个程序指令,以被配置为执行所述程序。10.根据权利要求8所述的运算方法,其特征在于,验证所述多个数据项的动作包括以与所述处理核心执行所述程序的过程非同步的方式验证所述多个数据项。11.根据权利要求8所述的运算方法,其特征在于,验证所述多个数据项的动作包括在所述处理核心执行所述程序的过程中,已经使用所述给定数据项之后,所述验证逻辑才验证所述给定数据项,且延迟输出所述信号,直到所述给定数据项完成验证。12.根据权利要求8所述的运算方法,其特征在于,验证所述多个数据项的动作包括计算所述多个数据项的一个或多个数字签章,并分别比对所述运算装置通过所述输入桥接器所接收到的多个原始签章与计算到的所述数字签章。13.根据权利要求12所述的运算方法,其特征在于,验证所述多个数据项的动作包括当至少一个计算的签章与对应的原始签章不符合的话,产生一警示信号。14.根据权利要求12所述的运算方法,其特征在于,接收储存有多个数据项的一序列的动作包括接收第一区块与第二区块的多个数据项,其中当所述第一区块内的所有数据项都被验证后,接收所述第二区块的动作才被使能。15.一种运算系统,其特征在于,所述运算系统包括:一外部装置,用以提供具有多个数据项的一序列;以及一运算装置,包括:一输入桥接器,其耦接以接收具有多个数据项的一序列,所述序列是所述运算装置在一程序的执行中所使用;一输出桥接器;一处理核心,耦接以接收来自输入桥接器的所述多个数据项且执行所述程序,以使得所述输出桥接器输出对应所述序列中的一给定数据项的一信号;以及一验证逻辑,当所述处理核心执行所述程序时,耦接以接收并验证所述多个数据项,并在所述给定数据项被所述验证逻辑验证前,禁止所述信号从所述输出桥接器被输出。16.根据权利要求15所述的运算系统,其特征在于,所述外部装置包括一存储装置,用以储存所述多个数据项与验证信息,且所述运算装置更包括一签章引擎,用以产生至少一些所述验证信息。17.根据权利要求15所述的运算系统,其特征在于,所述外部装置包括一加密存储装置,用以产生至少一些所述验证信息。18.根据权利要求17所述的运算系统,其特征在于,所述加密存储装置针对由所述加密存储装置传送给所述运算装置的一些数据项,产生验证信息,且所述验证逻辑使用所述验证信息验证所述多个数据项。19.根据权利要求17所述的运算系统,其特征在于,所述加密存储装置包含一非易失性存储器。【文档编号】G06F21/71GK104376277SQ201410101468【公开日】2015年2月25日申请日期:2014年3月18日优先权日:2013年8月13日【发明者】西夫·荷许曼,瓦勒利·特波,蒙旭·爱伦申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1