利用迭代加密/解密密钥更新的指令加密/解密设备和方法

文档序号:6367832阅读:206来源:国知局
专利名称:利用迭代加密/解密密钥更新的指令加密/解密设备和方法
技术领域
本发明的实施方式涉及一种指令解密设备,例如,其可连同从存储器接收加密的指令的计算单元一起使用。本发明的另一实施方式涉及一种用于解密所加密的指令的方法。本发明的又一实施方式涉及一种计算机可读数字存储介质,其上存储有计算机程序,该计算机程序具有当在计算机上运行时执行解密用于计算单元的指令的方法的程序代码。
背景技术
随着影响每个人的个人生活以及公司和政府机构的大多数方面的数据处理系统的广泛使用,存在固有的滥用机密信息的危险。在信息安全领域已做了很大的努力来改进信息的机密性、完整性和可用性。信息安全领域涉及保护信息和信息系统不受到未授权的访问、审查、泄露、记录、使用、细读、更改、中断或破坏。典型地,可编程计算单元被设计为处理一系列指令以执行某一任务。这系列指令也可称为程序代码。典型地,程序代码储存在存储器中,并在运行时将其提供给计算单元。考虑到信息安全,可能希望在将指令储存在存储器中或将其从存储器发送至计算单元的同时保护指令不受到分析。另一方面,如果到达计算单元的指令与所需指令不同,那么在执行程序代码的过程中可能出现错误。由计算单元实际处理的指令和所需指令之间的差异可能具有随机原因或可由入侵者故意引起。无论如何,应及早检测由改变的指令所导致的错误。

发明内容
本文公开的教导的实施方式提供了一种指令解密设备,其包括输入接口、解密密钥更新器和指令解密器。输入接口被配置为接收加密的指令。解密密钥更新器被配置为输出解密密钥。指令解密器包括连接至输入接口的第一输入端和连接至解密密钥更新器的第二输入端。指令解密器被配置为利用解密密钥解密加密的指令并提供解密的指令。解密密钥更新器被配置为利用加密的指令和解密的指令中的至少一个来更新解密密钥。本文公开的教导的实施方式提供了一种指令解密设备,其包括密钥流模块和指令解密器。密钥流模块被配置为迭代地(重复地,iteratively)确定与用于计算单元的当前指令相对应的密钥状态。指令解密器被配置为接收加密的指令(其与当前指令相关)并利用密钥状态解密加密的指令,以提供解密的指令。本文公开的教导的实施方式提供了一种指令解密设备,其包括用于接收加密的指令的装置、用于更新解密密钥的装置以及利用解密密钥解密加密的指令并提供相应的解密的指令的装置。用于更新解密密钥的装置被配置为利用加密的指令和解密的指令中的至少一个来更新解密密钥。所公开的教导的实施方式提供了一种指令加密设备,其包括被配置为接收明码指令的输入接口、被配置为输出加密密钥的加密密钥更新器以及指令加密器。指令加密器包括连接至输入接口的第一输入端和连接至加密密钥更新器的第二输入端。指令加密器被配、置为利用加密密钥加密明码指令并提供加密的指令。加密密钥更新器还被配置为利用明码指令和加密的指令中的至少一个来更新加密密钥。本文公开的教导的实施方式提供了一种解密用于计算单元的指令的方法,该方法包括接收加密的指令;获得解密密钥;将解密密钥与加密的指令组合以生成解密的指令;并通过利用加密的指令和解密的指令中的至少一个来更新解密密钥。本文公开的教导的实施方式提供了一种解密用于计算单元的指令的方法,该方法包括迭代地确定与用于计算单元的当前指令相对应的密钥状态;并且解密与当前指令相关的加密的指令,其中,密钥状态用于解密加密的指令以提供解密的指令。本文公开的教导的实施方式提供了一种加密用于计算单元的指令的方法,该方法包括接收明码指令;获得加密密钥;将加密密钥与明码指令组合以生成加密的指令;并且通过利用明码指令和加密的指令中的至少一个来更新加密密钥。本文公开的教导的实施方式提供了一种加密用于计算单元的指令的方法,该方法 包括接收明码指令;获得加密密钥;将加密密钥与明码指令组合以生成加密的指令;并且通过利用明码指令和加密的指令中的至少一个来更新加密密钥。本文公开的教导的实施方式提供了一种计算机可读的数字存储介质,其上存储有计算机程序,该计算机程序具有当在计算机上运行时执行上述解密用于计算单元的指令的方法之一的程序代码。


图I示出了根据本文公开的教导的第一可行构造的指令解密设备的示意性框图;图2示出了根据本文公开的教导的第二可行构造的指令解密设备的示意性框图;图3示出了根据本文公开的教导的第三可行构造的指令解密设备的示意性框图;图4示出了根据本文公开的教导的第四可行构造的指令解密设备的示意性框图;图5示出了根据本文公开的教导的第五可行构造的指令解密设备的示意性框图;图6示出了基于根据本文公开的教导的第一可行构造的解密用于计算单元的指令的方法的示意性流程图;图7示出了基于根据本文公开的教导的第二可行构造的解密用于计算单元的指令的方法的示意性流程图;图8示出了根据本文公开的教导的指令加密设备的示意性框图。
具体实施例方式在将用附图更详细地说明本发明的实施方式之前,应指出,将对相同元件或具有相同功能的元件提供相同的参考标号,并省略了具有相同参考标号的元件的重复描述。因此,具有相同参考标号的元件的描述是可互换的。图I示出了根据本文公开的教导的第一可行构造的指令解密设备100的示意性框图。指令解密设备100被配置为经由输入接口 101将加密的指令12 (Cx)接收为输入。指令解密设备100进一步被配置为在输出接口 105提供解密的指令14 (Ix)。通过在图I中标为“修改器函数M(Cx,Sx) ”的指令解密器102执行实际的解密,其中,SX表示解密密钥114。指令解密器102将加密的指令12和解密密钥Sx接收为输入。指令解密器102根据预定的计算规则将解密密钥Sx与加密的指令12组合。例如,可用XOR函数将加密的指令12和解密密钥Sx组合。也可使用更复杂的用于将加密的指令12和解密密钥Sx组合的规则。典型地,解密密钥Sx是用于指令解密设备的内部使用的秘密值。通常,并不打算使指令解密设备100外部知道解密密钥Sx。通常,对从指令解密设备100提取解密密钥Sx的尝试可能需要相当大的努力,特别是对指令解密设备100的物理攻击,例如用机械方式打开指令解密设备100的壳体。在将加密的指令发送至指令解密设备100之前的一些时间点,已用加密密钥加密了将由指令解密设备100解密的指令,该加密密钥可以与解密密钥Sx相同(对称加密)或与解密密钥Sx不同(不对称加密)。特别地,可将指令以加密的格式储存在存储器中,使得从存储器提取加密的指令通常是无用的,因为通常解密密钥Sx对于入侵者来说是未知的。指令解密设备100包括解密密钥更新器,其具有迭代解密密钥计算器110,该计算器Iio依次包括更新函数112和例如储存于寄存器或存储元件114中的解密密钥Sx。可将解密密钥Sx当作解密处理的状态。根据本文公开的教导,此状态Sx并不是简单地储存,而是被供应至指令解密器102和修改器函数M (Cx,Ix)以解密加密的指令12。还将修改器函 数M(CX,Ix)的结果与状态Sx (即解密密钥)一起供应至更新函数112U(IX,Sx) 0更新函数112基于先前的状态Sx(先前的解密密钥)和解密的指令14(IX)对状态Sx+1(即解密密钥114)确定新的值。此确定可以是迭代的,因为通过将先前的值Sx作为确定的起点来确定状态Sx+1的新的值。换句话说,一次迭代的结果用作下一次迭代的起点。可将这一系列的密钥状态或解密密钥当作密钥流。作为加密/解密的指令的一个替代方式,指令解密设备可被配置为处理分配给指令的加密/解密的控制信号。在此情况下,可将指令解密设备100当作控制信号解密设备,但是其基本结构可以是相似的。在此情况下,控制信号解密设备将在指令解码器的下游,或实际上可与指令解码器集成。根据本文公开的教导,可保护程序代码及其执行不受到物理攻击和/或逻辑攻击。特别地,解决了两个方面程序代码的机密性在执行指令的计算单元的存储器和处理器中,一直到指令解码器内的一个点,程序代码专门以加密形式存在。程序代码在计算单元的大部分中专门以加密形式存在提供了有力的保护以免于受到大量被动的(可观察的)攻击,如功率分析、探测等。程序执行的整体保护在执行过程中,如果一直到指令发生时在控制流中仍未发生错误,那么仅以正确的方式解密命令或指令。控制流中的每个错误(例如,指令的操作、非法跳转...)在发生错误后紧接着具有这样的效果仅执行伪随机的或加密的代码。然后,用相应的机制来检测伪随机的或加密的代码的执行。到目前为止,通常分别地处理机密性和完整性保护的方面。关于程序代码的机密性,基本机制是-存储器加密(例如,存储器加密/解密装置)-伪装通常,通过冗余度和传感器来实现程序执行的完整性保护。示例为-硬件的模块冗余度-防止植入错误的机制的传感器
-硬件的与编码相关的措施(奇偶性、错误检测代码)-指令签名-软件的冗余度措施(例如,软件开发者将遵循的安全性准则)通过签名验证方法对完整性保护的方面提供了一种选择。签名方法与程序代码的执行并行地计算签名,然后将该签名与代码中的特定点处的参考值核对。代码中的特定点处的签名值取决于此点处的指令,并取决于此点前回到签名初始化时的所有指令。为了确保签名核对是可行的,并且为了对验证点确定参考值,在编译所保护的程序的过程中,在代码中插入起始值、结束更新值和更新值。对于程序中的每个点以及由此对于每个指令,正好只存在一个定义的签名值。换句话说,对于代码的每个指令,精确地预先确定在执行指令时的哪个签名值应存在于签名寄存器中作为中间结果。程序代码通常包含也可被当作条件跳转的分支点。在分支点后,该程序可沿着两·个或多个可能的分支继续,直到到达这两个或多个分支合并的接合点为止。在程序运行的过程中,通过评估条件来做出该程序在这两个或多个可能的分支中的哪个上继续的决定。在程序运行过程中计算的签名值取决于已采取的分支。为了能够在当前签名值和对此点有效的参考签名值之间执行比较,通常必须使这两个或多个分支内的签名彼此对准。这可通过将签名设置为分支内的特定值来实现,使得当从所述分支出现时接合点处的签名等同于当从另一分支出现时接合点处的签名。为此,在一个或多个分支中插入更新指令。更新指令通常通过直接重写先前的签名值或通过对先前的签名值增加更新值来修改签名。对于本文公开的教导,密钥状态具有与指令签名方案中的签名类似的特性。特别地,认为对于代码的每个指令,精确地定义在执行指令时哪个密钥状态Sx应存在于密钥状态中。例如,可通过增加相应的更新指令或通过对代码施加其他变换,来确保存在正确密钥状态的事实。为了程序执行的完整性保护,以下观察是重要的如果在指令流中出现错误,那么状态Sx与供应至指令解密器102的加密的指令不对应。该错误的原因可能是操作码的修改或错误跳转。不管该错误的原因是什么,在指令流中出现错误的情况下,加密的指令Cx与状态Sx不再对应。因此,修改器函数M(CX,Sx)不再正确地解密该加密的指令Cx。此外,对于对下一指令计算下一状态Sx+1也考虑供应至指令解密器的指令。结果是,随着错误的发生,也对所有后续指令破坏了状态Sx。加密的指令Cx与其相应的状态Sx之间的联系被持续地破坏。以在指令流中发生单个错误开始,所有后续指令都被错误地解密并将仅执行伪随机指令。因此,暗中地提供了完整性保护。仅当未发生错误时执行该程序。在已发生错误后,不再执行该程序的代码,因为不再正确地进行解密。如上所述,在指令流中发生单个错误后,便错误地解密所有后续指令。错误解密也将影响与签名验证相关的指令在出现错误后,将不再正确地解密用于与参考值核对签名值的指令。实际上,错误的解密通常导致与核对签名无关的明显不同的指令,或甚至导致无效指令。结果,仅当未出现错误时才正确地执行签名核对指令。因此,签名核对指令的结果当正确地解密并执行时始终是“正确的”,因为否则将不会执行签名核对指令。除了程序执行的完整性保护之外,本文公开的教导还支持所执行的代码机密性。本文公开的教导同时解决了机密性和完整性保护的方面。对于机密性的保护程度基本上通过修改器函数M(CX,SX)的选择来确定。在简单的情况下,修改器函数由状态Sx和加密的指令Cx之间的简单XOR构成。在此情况下,状态Sx的初始值代表n位机密。图2示出了根据所公开的教导下的第二可行构造的指令解密设备200的示意性框图。解密密钥更新器(具体地说,迭代解密密钥计算器210)包括更新函数212和解密密钥214。与图I所示的结构不同,更新函数212将加密的指令12 (Cx)接收为其一个输入,即Sx+1=u(Cx, Sx)。对于更新函数212的另一输入是状态Sx (即解密密钥214),如图I所示的构造的情况一样。为了加强完整性保护,可选择更复杂的修改器函数。此外,可引入附加的密钥材料。图3示出了根据所公开的教导的第三可行构造的指令解密设备300的示意性框图。指令解密设备300的基本结构与图I所示的一个指令解密设备100非常相似。除了指令解密设备100的功能以外,指令解密设备300的修改器函数302还被配置为从密钥存储器320接收附加密钥K,M(Cx, Sx, K)。解密的指令12 (Cx)的解密也使用该附加密钥K。此外,该附加密钥K还影响后续解密密钥114或状态Sx的计算,因为更新函数112将解密的指令14 (Ix)接收为其一个输入。 该附加密钥K可以是取决于地址的。例如,该附加密钥K可取决于加密的指令的存储地址。作为取决于地址的替代方式或除了取决于地址以外,该附加密钥K可以是静态密钥或准静态密钥。准静态密钥可以是这样的密钥,其原则上随着时间是恒定的,但是在某些条件下可修改或更换。例如,可将准静态密钥分配给某一用户。作为另一选择,可将准静态密钥分配给由计算单元执行的某一程序。可以从用户接口(如键盘)读取该附加密钥,使得需要用户键入个人身份号码(PIN),该附加密钥K来自该个人身份号码。又一选择是将该附加密钥储存在个人芯片卡或类似装置上。图4示出了根据所公开的教导下的又一可行构造的指令解密设备400的示意性框图。指令解密设备400的示意性框图的上部与图I中的指令解密设备100的示意性框图相同。指令监控器442连接至指令解密器102的输出端。指令监控器的输出端提供解密的指令14 (Ix)。通常,指令监控器442不改变解密的指令14,但是检查该解密的指令14是允许的指令还是非法的指令。为此目的,指令监控器442可从数据库444 (如存储元件、存储器或电路)检索和/或接收信息。数据库可能包含与允许的指令、允许的存储器存取等相关的信息。如果,例如解密的指令14的特征是某一位模式,那么指令监控器442可询问数据库444是否该特定的位模式存在于数据库中以及其是与允许的指令相对应还是与非法的指令相对应。可以以相似的方式验证存储器存取的可允许性。指令监控器442被配置为生成表示已经检测到非法指令的信号。响应于指令监控器442所生成的信号,可中止或改变运行程序的执行,以防止任何严重的故障。为了检测处理器或计算单元是否已仅执行伪随机指令,以下机制是可行的(非穷举)-通过非法操作码的发生来检测-通过非法存储器存取的发生来检测-“警惕特征(Dead man feature) ”:定义在计算装置上运行的软件所必须遵循的规则。如果不遵循该规则,那么发出警报。规则的示例重复(定期和/或以规则的方式)对预定寄存器的存取、在条件跳转之前或之后立即强制发生签名更新指令、…图5示出了根据本文公开的教导下的又一可行构造的指令解密设备500的示意性框图,其与图I所示的构造类似。除了根据图I的构造的元件以外,根据图5的构造示出了 特定的解密的指令14可用来利 用更新指令明确地更新密钥状态Sx。当已发生条件跳转时,可能需要更新密钥状态寄存器,使得执行至少两个可能的分支中的一个分支。该至少两个可能的分支从分支点延伸至程序流内的接合点。一旦到达接合点,则必须确保正确地解密接合点之后的指令,而不管用哪个分支到达接合点。正确解密需要储存于密钥状态寄存器中的密钥状态Sx(解密密钥)与加密的指令相对应。因此,密钥状态通常需要在至少一个分支中被更新,使得在到达接合点时,在一个分支内计算出的密钥状态等于在另一分支内计算出的密钥状态。如图5所示,解密密钥更新器的密钥状态寄存器514,特别是迭代解密密钥计算器510,包括被配置为接收包含于更新指令中的更新解密密钥值的输入端。迭代解密密钥计算器110进一步被配置为利用更新解密密钥值来重新确定解密密钥。解密密钥的重新确定可以包括密钥状态寄存器的当前内容的重写。重新确定的另一选择可以是,将更新解密密钥值与密钥状态寄存器的当前内容组合。图6示出了根据本文公开的教导的解密用于计算单元的指令的方法的示意性流程图。因此,在602接收加密的指令。还如操作604所指示地检索和/或获得解密状态(即解密密钥)。为了解密加密的指令,将解密密钥应用于加密的指令,如可在对应于操作606的方框中所看到的。特别地,将解密密钥与加密的指令组合,以生成解密的指令。该组合可以基于逻辑组合。在608,利用加密的指令和解密的指令中的至少一个来更新解密密钥或状态。然后,可对下一个加密的指令重复该方法。在解密第一指令前,可以初始化解密状态SJ即解密密钥114、224)。该初始化可以简单地是诸如“0”的预定值,或者该初始化可以是储存于解密设备100、200、300、400中的或从外部实体提供给解密设备的秘密值。图7示出了根据本文公开的教导的解密用于计算单元的指令的另一方法的示意性流程图。在702,确定与当前指令相对应的密钥状态。如标有“迭代”的循环箭头所指示的,该确定通常被迭代地执行,即,将一次迭代的结果用作下一次迭代的起点。特别地,通过将用于先前的指令的密钥状态用作起点然后将先前的密钥状态与来自当前指令的值组合(例如,增加、相乘、相除等),来计算用于当前指令的密钥状态。在704,使用密钥状态来解密加密的指令12 (Cx)。然后,该方法可以返回至操作602,以对后续指令执行另一次迭代。图8示出了根据本文公开的教导的指令加密设备800的示意性框图。指令加密设备800被配置为在输入接口 801接收明码指令10 (Ix)。指令加密设备800进一步被配置为在输出接口 805提供加密的指令12 (Cx)。通过在图8中标有“反修改器函数N(IX,Sx) ”的指令加密器802执行实际的加密,因为可将其理解为是图I所示的修改器函数M(CX,Sx) 102(或是图2至图5所示的构造中的类似的修改器函数)的反函数。在图8的环境中,Sx表示加密密钥或密钥状态。指令加密器将明码指令10和加密密钥Sx接收为输入。指令加密器802根据预定的计算规则将加密密钥Sx与明码指令10组合。例如,可利用XOR函数将明码指令10与加密密钥Sx组合。还可使用更复杂的用于组合明码指令10和加密密钥Sx的规则。指令加密设备800包括加密密钥更新器,其具有迭代加密密钥计算器110,该计算器依次包括更新函数812和例如储存于寄存器或存储元件814中的加密密钥Sx。可将加密密钥Sx当作加密过程的状态。根据本文公开的教导,该状态Sx并不是简单地被储存,而是被供应至指令加密器802和反修改器函数N(IX,Sx),以加密明码指令10。还将反修改器函数N(IX,Sx)的结果与状态Sx (即解密密钥)一起供应至更新函数812U(CX,Sx) 0更新函数812基于先前的状态Sx (先前的加密密钥)和加密的指令12 (Ix)对状态Sx+1 (即加密密钥114)确定新的值。该确定可以是迭代的,因为通过采用先前的值Sx作为确定的起点,来确定状态Sx+1的新的值。换句话说,一次迭代的结果用作下一次迭代的起点。可将这一系列的密钥状态或加密密钥认为是密钥流。作为明码/加密的指令的一个替代方式,指令加密设备可被配置为处理分配给指令的明码/加密的控制信号。在此情况下,可将指令加密设备800当作控制信号加密设备,但是其基本结构可以是类似的。在此情况下,控制信号加密设备将在指令编码器的下游,或实际上可与指令编码器集成。可以与图I所示的指令解密设备100相似的方式修改和/或扩展指令加密设备、800。特别地,指令加密设备800可包括结合图2至图5示出和讨论的一个或多个特征(可能在适于在指令加密设备800内使用后)。根据所公开的教导的用于加密明码指令的方法基本上以与指令加密设备800类似的方式起作用。还参考以上在图6和图7的环境中提供的用于解密指令的方法的功能的说明。可通过与解密的方法、指令解密设备和/或指令加密设备相似或类似的特征扩展该用于加密明码指令的方法。该用于加密明码指令的方法可以计算机程序或软件的形式实现。可在从源码(例如软件开发工具包(SDK)或程序设计环境)生成二进制码或机器语言码的环境中使用计算机程序。部分用于生成二进制码或机器语言码的典型部件是编译器、连接器、后处理工具和调试器。可在一个或多个这些部件内执行此用于加密明码指令的方法,使得生成加密的二进制码或加密的机器语言码。虽然在设备的上下文中已经描述了一些方面,但是显而易见的是,这些方面还代表相应方法的描述,其中,块或装置对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面还代表相应的块或项或相应设备的特征的描述。可通过(或使用)硬件设备(例如微处理器、可编程计算机或电路)等执行部分或所有方法步骤。在一些实施方式中,可通过这样的设备来执行最重要的方法步骤中的某一个或多个。根据某些实现要求,可以硬件或软件实现本发明的实施方式。可利用数字存储介质(例如软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或闪存)执行此实现,其具有储存于其上的电可读控制信号,其与可编程计算机系统配合(或能够与其配合),使得执行相应的方法。因此,数字存储介质可以是计算机可读的。根据本发明的部分实施方式包括具有电可读控制信号的数据载体,该电可读控制信号能够与可编程计算机系统配合,使得执行本文描述的方法之一。通常,可用程序代码将本发明的实施方式实现为计算机程序产品,当该计算机程序产品在计算机上运行时,该程序代码用来执行上述方法之一。例如,可将程序代码储存在机器可读的载体上。其他实施方式包括用于执行本文描述的方法之一的计算机程序,其储存于机器可读的载体上。换句话说,因此,本发明方法的一个实施方式是具有这样的程序代码的计算机程序,当该计算机程序在计算机上运行时,该程序代码用于执行本文描述的方法之一。因此,发明方法的另一实施方式是数据载体(或数字存储介质,或计算机可读的介质),其包括记录于其上的用于执行本文描述的方法之一的计算机程序。数据载体、数字存储介质或所记录的介质通常是有形的和/或非暂时性的。另一实施方式包括处理装置,例如计算机,或可编程逻辑装置,被配置为适于执行本文描述的方法之一。另一实施方式包括具有安装于其上的用于执行本文描述的方法之一的计算机程序的计算机。在一些实施方式中,可编程逻辑装置(例如现场可编程门阵列)可用来执行本文描述的方法的部分或所有功能。在一些实施方式 中,现场可编程门阵列可与微处理器配合,以执行本文描述的方法之一。通常,这些方法优选地由任何硬件设备执行。上述实施方式仅例示了本发明的原理。应理解,对于本领域的技术人员来说,本文描述的设备的修改和变形以及细节将是显而易见的。因此,目的是仅通过所附的专利权利要求的范围进行限制,而不是通过本文的实施方式的描述和说明给出的具体细节进行限制。
权利要求
1.ー种指令解密设备,包括 输入接ロ,被配置为接收加密的指令; 解密密钥更新器,被配置为输出解密密钥;以及 指令解密器,包括连接至所述输入接ロ的第一输入端和连接至所述解密密钥更新器的第二输入端,并被配置为利用所述解密密钥解密所述加密的指令并提供解密的指令; 其中,所述解密密钥更新器被配置为利用所述加密的指令和所述解密的指令中的至少ー个来更新所述解密密钥。
2.根据权利要求I所述的指令解密设备,其中,所述解密密钥更新器包括迭代解密密钥计算器、连接至所述指令解密器的输出端的输入端、以及基于通过所述迭代解密密钥计算器提供的先前的解密密钥和基于通过所述输入端提供的所述解密的指令来计算更新的解密密钥的组合器。
3.根据权利要求I所述的指令解密设备,其中,所述解密密钥更新器包括迭代解密密钥计算器、连接至所述输入接ロ的输入端、以及基于通过所述迭代解密密钥计算器提供的先前的解密密钥和基于通过所述输入端提供的所述加密的指令来计算更新的解密密钥的组合器。
4.根据权利要求I所述的指令解密设备,其中,所述指令解密器进一歩被配置为还通过利用附加解密密钥来解密所述加密的指令。
5.根据权利要求4所述的指令解密设备,其中,所述附加解密密钥取决于所述加密的指令的存储地址。
6.根据权利要求4所述的指令解密设备,其中,所述附加解密密钥是静态密钥或准静态密钥。
7.根据权利要求I所述的指令解密设备,其中,所述加密的指令包括用于利用所述解密的指令的计算单元的加密的控制信号,并且其中,所述解密的指令包括用于所述计算单元的解密的控制信号。
8.根据权利要求I所述的指令解密设备,进一歩包括指令监控器,其被配置为检测非法的解密的指令并在检测到非法的解密的指令时生成相应的信号。
9.根据权利要求I所述的指令解密设备,进一歩包括存储器存取监控器,其被配置为检测计算单元的非法的存储器存取并在检测到非法的存储器存取时生成相应的信号。
10.根据权利要求I所述的指令解密设备,进一歩包括准则监控器,其被配置为监控与要由指令序列执行的至少ー个准则的一致性并在检测到违反所述至少ー个准则时生成相应的信号。
11.根据权利要求10所述的指令解密设备,其中,所述准则相关于以下中的至少ー个 对计算単元的特定寄存器的存取,所述存取符合某ー进度或频率;以及 在指令序列中的条件跳转之前或之后发生密钥状态的強制更新。
12.根据权利要求I所述的指令解密设备,其中,所述解密密钥更新器包括被配置为接收更新解密密钥值的输入端,并且其中,所述解密密钥更新器被进ー步配置为利用所述更新解密密钥值重新确定所述解密密钥。
13.根据权利要求12所述的指令解密设备,其中,所述解密密钥更新器进ー步包括可写入的密钥状态寄存器,所述密钥状态寄存器被配置为经由对所述密钥状态寄存器的写入指令来接收所述更新解密密钥。
14.ー种指令加密设备,包括 输入接ロ,被配置为接收明码指令; 加密密钥更新器,被配置为输出加密密钥;以及 指令加密器,包括连接至所述输入接ロ的第一输入端和连接至所述加密密钥更新器的第二输入端,并被配置为利用所述加密密钥加密所述明码指令并提供加密的指令; 其中,所述加密密钥更新器被配置为利用所述明码指令和所述加密的指令中的至少ー个来更新所述加密密钥。
15.根据权利要求14所述的指令加密设备,其中,所述加密密钥更新器包括迭代加密 密钥计算器、连接至所述指令加密器的输出端的输入端、以及基于通过所述迭代加密密钥计算器提供的先前的加密密钥和基于通过所述输入端提供的所述加密的指令来计算更新的加密密钥的组合器。
16.根据权利要求14所述的指令加密设备,其中,所述加密密钥更新器包括迭代加密密钥计算器、连接至所述输入接ロ的输入端、以及基于通过所述迭代加密密钥计算器提供的先前的加密密钥和基于通过所述输入端提供的所述明码指令来计算更新的加密密钥的组合器。
17.根据权利要求I所述的指令加密设备,其中,将所述指令加密器进一歩被配置为还通过使用附加加密密钥来加密所述明码指令。
18.根据权利要求14所述的指令解密设备,其中,所述明码指令包括用于利用所述解密的指令的计算单元的明码控制信号,并且其中,所述加密的指令包括用于所述计算单元的加密的控制信号。
19.根据权利要求14所述的指令加密设备,进一歩包括准则实现器,其被配置为实现与要由指令序列执行的至少ー个准则的一致性。
20.根据权利要求19所述的指令解密设备,其中,所述准则相关于以下中的至少ー个 对计算単元的特定寄存器的存取,所述存取符合某ー进度或频率;以及 在指令序列中的条件跳转之前或之后插入密钥状态的强制更新指令。
21.一种指令解S设备,包括 密钥流模块,被配置为迭代地确定与用于计算単元的当前指令相对应的密钥状态;以及 指令解密器,被配置为接收加密的指令并用所述密钥状态来解密所述加密的指令,以提供解密的指令。
22.根据权利要求21所述的指令解密设备,其中,所述密钥流模块包括被配置为组合先前的密钥状态和所述当前指令以获得与所述当前指令相对应的密钥状态的组合器。
23.根据权利要求21所述的指令解密设备,进一歩包括用于存储附加解密密钥的密钥存储器,其中,将所述密钥存储器连接至所述指令解密器,并且所述指令解密器进一歩被配置为还通过使用附加解密密钥来解密所述加密的指令。
24.根据权利要求21所述的指令解密设备,进一歩包括指令监控器,其被配置为检测非法的解密的指令并在检测到非法的解密的指令时生成相应的信号。
25.根据权利要求21所述的指令解密设备,进一歩包括存储器存取监控器,其被配置为检测由所述解密的指令导致的所述计算単元的非法的存储器存取,并在检测到非法的存储器存取时生成相应的信号。
26.根据权利要求21所述的指令解密设备,进一歩包括准则监控器,其被配置为监控与要由指令序列实现的至少ー个准则的一致性并在检测到违反所述至少ー个准则时生成相应的信号。
27.根据权利要求26所述的指令解密设备,其中,所述准则相关于以下中的至少ー个 对计算単元的特定寄存器的存取,所述存取符合某ー进度或频率;以及 在指令序列中的条件跳转之前或之后发生密钥状态更新指令。
28.ー种指令解密设备,包括 用于接收加密的指令的装置; 用于更新解密密钥的装置,以及 利用所述解密密钥解密所述加密的指令并提供相应的解密的指令的装置; 其中,所述用于更新解密密钥的装置被配置为利用所述加密的指令和所述解密的指令中的至少ー个来更新所述解密密钥。
29.一种解密用于计算单元的指令的方法,所述方法包括 接收加密的指令; 获得解密密钥; 将所述解密密钥与所述加密的指令组合以生成解密的指令;并且 通过利用所述加密的指令和所述解密的指令中的至少ー个来更新所述解密密钥。
30.一种解密用于计算单元的指令的方法,所述方法包括 迭代地确定与用于计算単元的当前指令相对应的密钥状态;并且解密与所述当前指令相关的加密的指令,其中,所述密钥状态用于解密所述加密的指令以提供解密的指令。
31.一种计算机可读的数字存储介质,其上存储有计算机程序,所述计算机程序具有当在计算机上运行时执行解密用于计算单元的指令的方法的程序代码,所述方法包括 接收加密的指令; 获得解密密钥; 将所述解密密钥与所述加密的指令组合以生成解密的指令;并且 通过利用所述加密的指令和所述解密的指令中的至少ー个来更新所述解密密钥。
32.—种加密用于计算单元的指令的方法,所述方法包括 接收明码指令; 获得加密密钥; 将所述加密密钥与所述明码指令组合以生成加密的指令;并且 通过使用所述明码指令和所述加密的指令中的至少ー个来更新所述加密密钥。
33.一种计算机可读的数字存储介质,其上存储有计算机程序,所述计算机程序具有当在计算机上运行时执行加密用于计算单元的指令的方法的程序代码,所述方法包括 接收明码指令; 获得加密密钥; 将所述加密密钥与所述明码指令组合以生成加密的指令;并且通过使用所述明码指令和所述加密的指令中的至少ー个来更新所述加密密钥 。
全文摘要
本发明提供了指令加密/解密设备和方法,其中,指令解密设备包括被配置为接收加密的指令的输入接口、被配置为输出解密密钥的解密密钥更新器和指令解密器,该指令解密器包括连接至输入接口的第一输入端和连接至解密密钥更新器的第二输入端,并被配置为用解密密钥来解密加密的指令且提供解密的指令。解密密钥更新器被配置为用加密的指令和解密的指令中的至少一个来更新解密密钥。可选的指令解密设备包括被配置为迭代确定与用于计算单元的当前指令相对应的密钥状态的密钥流模块、以及被配置为接收与当前指令相关的加密的指令并用密钥状态解密加密的指令以提供解密的指令的指令解密器。本发明还公开了相应的计算机可读的数字存储介质。
文档编号G06F21/22GK102737202SQ20121010213
公开日2012年10月17日 申请日期2012年4月9日 优先权日2011年4月8日
发明者斯特凡·曼格德 申请人:英飞凌科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1