用于提供指令码的方法

文档序号:9396667阅读:600来源:国知局
用于提供指令码的方法
【专利说明】用于提供指令码的方法
[0001]本申请是基于2013年5月22日所提交的申请号为201310193999.1、发明名称为“用于数据处理的方法和装置”的发明的分案申请。
技术领域
[0002]本发明涉及:一种用于处理数据的方法,该方法包括针对不正确的实施行为的保护;一种用于执行第一方法的第一计算机程序;一种用于提供指令码的方法;一种用于生成计算机程序的编译产品;以及还涉及一种电路,该电路设置用于在应用针对不正确的实施行为的保护的情况下处理数据。
【背景技术】
[0003]DE 198 34 486A1公开了一种保证安全地执行指令的方法,在该方法中,将位于程序运行的预先给定的位置处的签名寄存器的内容与包含在程序的指令中的预先给定的值相比较。
[0004]Namjoo ( “VLSI处理器运行的同时测试技术”,IEEE测试会议,1982,461-468)公开了一种用于识别处理器所处理的程序的运行中的错误的方法,在该方法中,对与处理器的处理步骤的运行的或类型的变化相关的路径签名(“path signature”)进行分析。

【发明内容】

[0005]本发明改进了处理器对主动攻击的抵抗能力。
[0006]本发明基于以下想法:一种被执行以满足预先给定的函数的方法,倘若该方法没有按照预计那般执行,则添加至少一个额外的步骤。按照可能的方式,该额外的步骤在此本身并不为满足方法的函数做出任何贡献。在将该方法作为计算机程序在计算机中实施的情况下,例如,利用该方法的每个步骤对寄存器进行更新并且在执行额外的步骤时将寄存器的实际值与按预计地执行方法的情况下所期望得到的值进行比较。
[0007]下面在不同方面阐述本发明。描述了本发明的实施方式。只要说明书中没有另行指出,那么本发明的不同的实施方式的特征是可以相互组合的。
[0008]在一方面,本发明包括用于在处理器中处理程序的指令的工作序列的方法。每个指令由所分配的指令码(也称操作码或短操作码)来代表。例如,通过汇编语言或机器语言来表达指令并且通过字节码来代表。在一种实施方式中,将在处理工作序列时所执行的操作分配给一个指令。在一种实施方式中,将被实施用来执行操作的多个指令分配给操作。在一种实施方式中,指令码包括一个或多个能依次地由处理器处理的实施步骤。该方法包括计算实际签名值。实际签名值被分配给代表工作序列的指令的指令码的实施步骤的当前实施步骤。当前实施步骤将当前指令定义为一个指令,该指令的指令码包括当前实施步骤。该方法还包括:根据地址值计算额定签名值。该额定签名值被分配给当前实施步骤。
[0009]根据地址值计算额定签名值意味着,地址值会影响额定签名值。例如,额定签名值相应于地址值。例如,额定签名值相应于二进制数,该二进制数的位置相应于每个被挑选出来的地址位置。额定签名值的计算可能要额外地考虑一个或多个其它的相关性。
[0010]在一种实施方式中,借助额定签名函数通过映射(Abbildung)地址值来计算额定签名值。在这个实施方式中,该方法将额定签名函数应用于例如被分配给当前指令的地址,从而计算被分配给当前指令的额定签名的值。由此那些地址确定存储了代表指令的代码的额定签名的值。
[0011]该方法的一个实施方式包括:如果实际签名值与额定签名值不一致,则放弃至少一个等待直接实施的和/或间接实施的实施步骤。倘若要使等待直接实施的实施步骤得到实施的话,那么在此期间在不实施其它实施步骤的情况下,在当前实施步骤之后进行该实施步骤。倘若要是等待间接实施的实施步骤得到实施的话,那么最早在实施完当前实施步骤之后,然后在实施完等待直接实施的实施步骤之后再进行该实施步骤。
[0012]该方法的一种实施方式包括:只要满足了预先给定的条件便执行等待直接实施的实施步骤。该预先给定的条件例如在实际签名值与被分配给当前实施步骤的额定签名值相一致的情况下成立。
[0013]该方法的一种实施方式包括:将实际签名值与额定签名值相互比较,从而确定是否满足预先给定的条件。在一种实施方式中以隐含的方式实现了比较,为此,如果未满足预先给定的条件,那么根据实际签名值对存储寄存器进行访问,尤其是直接的访问将导致运行中止和/或运行中断。
[0014]在该方法的一种实施方式中,当前实施步骤本身构成等待实施的实施步骤。在另一种实施方式中,直接跟在当前实施步骤之后的实施步骤构成了等待实施的实施步骤。在一种实施方式中,一个或多个指令的实施步骤例如在一个所谓的相位管(Phasenpipeline)中被布置成能连续地处理的实施步骤,并且由此在一定程度上被排成一行。假如在一种实施方式中在相位管中存在当前实施步骤,那么由此例如,直接跟在相位管中的当前实施步骤之后的实施步骤构成等待实施的实施步骤。在一种实施方式中,从当前实施步骤开始,根据预先给定的规则所确定的实施步骤构成了等待实施的实施步骤。
[0015]在一种实施方式中,根据签名变化值计算实际签名值。该签名变化值可以是固定地预先给定的。根据签名变化值计算实际签名值意味着,签名变化值会影响实际签名值。
[0016]根据本发明的方法的一种实施方式包括:如果实际签名值与额定签名值不一致,则设置据此中断或中止工作序列的处理的信号。该信号在本发明的一个实施方式中的作用在于:在不将处理器置于不受限制的状态下尽可能迅速地中断工作序列的处理。尤其是在本发明的一个实施方式中,信号使得工作序列的处理被中断。例如,程序运行包括直接在实施当前指令之后跳跃到一个使得处理器回到预先给定的初始状态中的子程序中。一种实施方式包括:如果满足预先给定的条件,则设置据此继续进行工作序列的处理的信号。
[0017]在根据本发明的方法的一个实施方式中,与代表指令的指令码的实施步骤的数量无关地,为每个指令仅仅计算一个实际签名值。在一种实施方式中,对于与代表指令的指令码的实施步骤的数量无关的指令而言,仅仅将实际签名值与额定签名值进行一次比较。
[0018]在一种实施方式中,该方法具有至少一个签名实施步骤。如果当前实施步骤被评定为签名实施步骤,则仅仅将实际签名值与额定签名值相互比较。一种实施方式包括一次检验,尤其是一次预检,检验当前实施步骤是否被评定为签名实施步骤。
[0019]在一种实施方式中,根据本发明的方法包括将被分配给工作序列的指令的指令码存储在存储器中,尤其是存储在程序存储器中。在一种实施方式中,代表当前指令的指令码已被和/或正被写入到位于具有地址值的地址处的存储器中。在一种实施方式中,代表当前指令的指令码已被和/或正被存储在位于具有地址值的地址处的存储器中。在根据本发明的方法的一个实施方式中,直接为实体存储器(也称“物理存储器”)写地址。实体存储器的地址与已被和/或正被存储的当前实施步骤或当前指令的指令码在实体存储器中的位置相符。在根据本发明的方法的一个实施方式中,使用了逻辑存储器(也称“虚拟存储器”)。例如,分配函数将逻辑存储器的地址映射到实体存储器的地址上。
[0020]在根据本发明的方法的一种实施方式中,在实施指令时计算实际签名值。在一种实施方式中,代表了指令的代码确定出实际签名值。例如,该方法将实际签名函数应用于当前指令,从而计算从属于当前指令的指令签名的值。在一种实施方式中,通过指令所触发的控制信号确定了实际签名值的值。
[0021]在一种实施方式中,借助实际签名函数通过映射计算实际签名值。在一种实施方式中,实际签名函数考虑到了已经计算出的实际签名值。例如,在应用工作序列签名函数的情况下增量地和/或递归地计算实际签名值。已经计算出的实际签名值、尤其是上一次计算出的实际签名值将被投入到例如实际签名值的计算中。
[0022]在一种实施方式中,工作序列具有子工作序列(Unterarbeitssequenz)。在这种实施方式中,该方法包括一个或多个以下步骤:
[0023]-从实际签名寄存器中读取实际签名值;
[0024]-在第一签名值存储器地址处写入实际签名值;
[0025]-处理子工作序列;以及
[0026]-在第一签名值存储器地址处读取值并且将所读出的值写入到实际签名寄存器中。
[0027]在这个实施方式中,实际签名寄存器在处理完子工作序列之后具有实际签名值,该实际签名值与子工作序列的处理相互关联。
[0028]在一种实施方式中,将子工作序列签名变化值分配给子工作序列。根据子工作序列签名变化值计算实际签名值。在一种实施方式中,被分配给子工作序列的第一指令的实际签名值仅仅取决于子工作序列签名变化值。在这种实施方式中,实际签名值在处理完子工作序列之后与其它的工作序列部分无关。
[0029]在一种实施方式中,被分配给子工作序列的第一指令的实际签名值既取决于子工作序列签名变化值,又取决于被分配给上一次实施的指令的实际签名值。在这种实施方式中,可以如此选择子工作序列签名变化值,使得能在子工作序列的地
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1