CN103425459B - 用于数据处理的方法和装置 - Google Patents
用于数据处理的方法和装置 Download PDFInfo
- Publication number
- CN103425459B CN103425459B CN201310193999.1A CN201310193999A CN103425459B CN 103425459 B CN103425459 B CN 103425459B CN 201310193999 A CN201310193999 A CN 201310193999A CN 103425459 B CN103425459 B CN 103425459B
- Authority
- CN
- China
- Prior art keywords
- signature
- value
- work sequence
- instruction
- signature value
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明涉及一种用于在处理器2中处理程序的指令的工作序列的方法,其中,每个指令由所分配的指令码来代表,该指令码包括一个能由处理器2处理的实施步骤或多个能依次地由处理器处理的实施步骤i1...ix...in,该方法具有以下步骤:计算实际签名值ISSx,该实际签名值被分配给代表工作序列的指令的指令码的实施步骤的当前实施步骤ix;根据地址值VAx计算被分配给当前实施步骤ix的额定签名值Ca(VAx);以及如果实际签名值ISSx与额定签名值Ca(VAx)不一致,则放弃至少一个等待直接实施的和/或等待间接实施的实施步骤。
Description
技术领域
本发明涉及:一种用于处理数据的方法,该方法包括针对不正确的实施行为的保护;一种用于执行第一方法的第一计算机程序;一种用于提供指令码的方法;一种用于生成计算机程序的编译产品;以及还涉及一种电路,该电路设置用于在应用针对不正确的实施行为的保护的情况下处理数据。
背景技术
DE 198 34 486 A1公开了一种保证安全地执行指令的方法,在该方法中,将位于程序运行的预先给定的位置处的签名寄存器的内容与包含在程序的指令中的预先给定的值相比较。
Namjoo(“VLSI处理器运行的同时测试技术”,IEEE测试会议,1982,461-468)公开了一种用于识别处理器所处理的程序的运行中的错误的方法,在该方法中,对与处理器的处理步骤的运行的或类型的变化相关的路径签名(“path signature”)进行分析。
发明内容
本发明改进了处理器对主动攻击的抵抗能力。
本发明基于以下想法:一种被执行以满足预先给定的函数的方法,倘若该方法没有按照预计那般执行,则添加至少一个额外的步骤。按照可能的方式,该额外的步骤在此本身并不为满足方法的函数做出任何贡献。在将该方法作为计算机程序在计算机中实施的情况下,例如,利用该方法的每个步骤对寄存器进行更新并且在执行额外的步骤时将寄存器的实际值与按预计地执行方法的情况下所期望得到的值进行比较。
下面在不同方面阐述本发明。描述了本发明的实施方式。只要说明书中没有另行指出,那么本发明的不同的实施方式的特征是可以相互组合的
在一方面,本发明包括用于在处理器中处理程序的指令的工作序列的方法。每个指令由所分配的指令码(也称操作码或短操作码)来代表。例如,通过汇编语言或机器语言来表达指令并且通过字节码来代表。在一种实施方式中,将在处理工作序列时所执行的操作分配给一个指令。在一种实施方式中,将被实施用来执行操作的多个指令分配给操作。在一种实施方式中,指令码包括一个或多个能依次地由处理器处理的实施步骤。该方法包括计算实际签名值。实际签名值被分配给代表工作序列的指令的指令码的实施步骤的当前实施步骤。当前实施步骤将当前指令定义为一个指令,该指令的指令码包括当前实施步骤。该方法还包括:根据地址值计算额定签名值。该额定签名值被分配给当前实施步骤。
根据地址值计算额定签名值意味着,地址值会影响额定签名值。例如,额定签名值相应于地址值。例如,额定签名值相应于二进制数,该二进制数的位置相应于每个被挑选出来的地址位置。额定签名值的计算可能要额外地考虑一个或多个其它的相关性。
在一种实施方式中,借助额定签名函数通过映射(Abbildung)地址值来计算额定签名值。在这个实施方式中,该方法将额定签名函数应用于例如被分配给当前指令的地址,从而计算被分配给当前指令的额定签名的值。由此那些地址确定存储了代表指令的代码的额定签名的值。
该方法的一个实施方式包括:如果实际签名值与额定签名值不一致,则放弃至少一个等待直接实施的和/或间接实施的实施步骤。倘若要使等待直接实施的实施步骤得到实施的话,那么在此期间在不实施其它实施步骤的情况下,在当前实施步骤之后进行该实施步骤。倘若要是等待间接实施的实施步骤得到实施的话,那么最早在实施完当前实施步骤之后,然后在实施完等待直接实施的实施步骤之后再进行该实施步骤。
该方法的一种实施方式包括:只要满足了预先给定的条件便执行等待直接实施的实施步骤。该预先给定的条件例如在实际签名值与被分配给当前实施步骤的额定签名值相一致的情况下成立。
该方法的一种实施方式包括:将实际签名值与额定签名值相互比较,从而确定是否满足预先给定的条件。在一种实施方式中以隐含的方式实现了比较,为此,如果未满足预先给定的条件,那么根据实际签名值对存储寄存器进行访问,尤其是直接的访问将导致运行中止和/或运行中断。
在该方法的一种实施方式中,当前实施步骤本身构成等待实施的实施步骤。在另一种实施方式中,直接跟在当前实施步骤之后的实施步骤构成了等待实施的实施步骤。在一种实施方式中,一个或多个指令的实施步骤例如在一个所谓的相位管(Phasenpipeline)中被布置成能连续地处理的实施步骤,并且由此在一定程度上被排成一行。假如在一种实施方式中在相位管中存在当前实施步骤,那么由此例如,直接跟在相位管中的当前实施步骤之后的实施步骤构成等待实施的实施步骤。在一种实施方式中,从当前实施步骤开始,根据预先给定的规则所确定的实施步骤构成了等待实施的实施步骤。
在一种实施方式中,根据签名变化值计算实际签名值。该签名变化值可以是固定地预先给定的。根据签名变化值计算实际签名值意味着,签名变化值会影响实际签名值。
根据本发明的方法的一种实施方式包括:如果实际签名值与额定签名值不一致,则设置据此中断或中止工作序列的处理的信号。该信号在本发明的一个实施方式中的作用在于:在不将处理器置于不受限制的状态下尽可能迅速地中断工作序列的处理。尤其是在本发明的一个实施方式中,信号使得工作序列的处理被中断。例如,程序运行包括直接在实施当前指令之后跳跃到一个使得处理器回到预先给定的初始状态中的子程序中。一种实施方式包括:如果满足预先给定的条件,则设置据此继续进行工作序列的处理的信号。
在根据本发明的方法的一个实施方式中,与代表指令的指令码的实施步骤的数量无关地,为每个指令仅仅计算一个实际签名值。在一种实施方式中,对于与代表指令的指令码的实施步骤的数量无关的指令而言,仅仅将实际签名值与额定签名值进行一次比较。
在一种实施方式中,该方法具有至少一个签名实施步骤。如果当前实施步骤被评定为签名实施步骤,则仅仅将实际签名值与额定签名值相互比较。一种实施方式包括一次检验,尤其是一次预检,检验当前实施步骤是否被评定为签名实施步骤。
在一种实施方式中,根据本发明的方法包括将被分配给工作序列的指令的指令码存储在存储器中,尤其是存储在程序存储器中。在一种实施方式中,代表当前指令的指令码已被和/或正被写入到位于具有地址值的地址处的存储器中。在一种实施方式中,代表当前指令的指令码已被和/或正被存储在位于具有地址值的地址处的存储器中。在根据本发明的方法的一个实施方式中,直接为实体存储器(也称“物理存储器”)写地址。实体存储器的地址与已被和/或正被存储的当前实施步骤或当前指令的指令码在实体存储器中的位置相符。在根据本发明的方法的一个实施方式中,使用了逻辑存储器(也称“虚拟存储器”)。例如,分配函数将逻辑存储器的地址映射到实体存储器的地址上。
在根据本发明的方法的一种实施方式中,在实施指令时计算实际签名值。在一种实施方式中,代表了指令的代码确定出实际签名值。例如,该方法将实际签名函数应用于当前指令,从而计算从属于当前指令的指令签名的值。在一种实施方式中,通过指令所触发的控制信号确定了实际签名值的值。
在一种实施方式中,借助实际签名函数通过映射计算实际签名值。在一种实施方式中,实际签名函数考虑到了已经计算出的实际签名值。例如,在应用工作序列签名函数的情况下增量地和/或递归地计算实际签名值。已经计算出的实际签名值、尤其是上一次计算出的实际签名值将被投入到例如实际签名值的计算中。
在一种实施方式中,工作序列具有子工作序列(Unterarbeitssequenz)。在这种实施方式中,该方法包括一个或多个以下步骤:
-从实际签名寄存器中读取实际签名值;
-在第一签名值存储器地址处写入实际签名值;
-处理子工作序列;以及
-在第一签名值存储器地址处读取值并且将所读出的值写入到实际签名寄存器中。
在这个实施方式中,实际签名寄存器在处理完子工作序列之后具有实际签名值,该实际签名值与子工作序列的处理相互关联。
在一种实施方式中,将子工作序列签名变化值分配给子工作序列。根据子工作序列签名变化值计算实际签名值。在一种实施方式中,被分配给子工作序列的第一指令的实际签名值仅仅取决于子工作序列签名变化值。在这种实施方式中,实际签名值在处理完子工作序列之后与其它的工作序列部分无关。
在一种实施方式中,被分配给子工作序列的第一指令的实际签名值既取决于子工作序列签名变化值,又取决于被分配给上一次实施的指令的实际签名值。在这种实施方式中,可以如此选择子工作序列签名变化值,使得能在子工作序列的地址的基础上计算要调用的工作序列的实际签名值。
一种根据本发明的方法的实施方式包括以下步骤:
-以如下方式改变以信号传递第一运行模式的模式信号,使得模式信号以信号传递第二运行模式;
-处理该子工作序列;以及
-以如下方式改变以信号传递第二运行模式的模式信号,使得模式信号以信号传递第一运行模式。
这种实施方式的一个变型尤其包括以下额外的步骤:
-当以如下方式改变以信号传递第一运行模式的模式信号,使得模式信号以信号传递第二运行模式时,则将实际签名值写入第二签名值存储器地址处;以及
-当以如下方式改变以信号传递第二运行模式的模式信号,使得模式信号以信号传递第一运行模式时,则在第二签名值存储器地址处读取该值并且将所读出的值写入到实际签名寄存器中。
在一种实施方式中,或仅当以信号传递第一运行模式时,或仅当以信号传递第二运行模式时,才实现实际签名值的计算。在这种实施方式中,程序运行可以在受保护的状态和不受保护的状态之间来回切换,例如,从第一运行模式切换到第二运行模式中以及重新返回到第一运行模式中。
在一种实施方式中,或仅当以信号传递第一运行模式时,或仅当以信号传递第二运行模式时,才实现实际签名值的计算。在这个实施方式中,如果实际上并未计算实际签名值,则程序运行从受保护的状态到不受保护的状态的切换是能确定的。
根据本发明的方法的一种实施方式包括:将代表预先给定的路径的路径信号值写入到指令码的签名区域中。一种实施方式包括:将代表签名变化的签名变化值写入到签名区域中。
一种实施方式包括:在与预先给定的地址值相应的地址处写入代表当前指令或直接在当前指令之前的指令的指令码。
根据本发明的方法的一种实施方式包括执行“实际签名更新激活”(InstructionStream Signature Activate)操作的签名操作ISSA。在执行完签名操作ISSA之后,按照根据本发明的方法将持续地更新实际签名值。一种实施方式使用寄存器作为模式寄存器并且以如下方式设置其值,即,该值代表持续的签名更新。
根据本发明的方法的一种实施方式包括执行“设置签名变化值”(InstructionStream Signature Write)操作的签名操作ISSW。在这个操作中,将实际签名寄存器设置为签名变化值。在一种实施方式中,在被分配给签名操作ISSW的签名指令的指令码的签名区域中存储该签名变化值。在实施完这个签名指令之后实施的这种指令的实际签名值与在实施完这个签名指令之前实施的那些指令的实际签名值无关联。
根据本发明的方法的一种实施方式包括执行“开始受保护的工作序列”(Instruction Stream Signature Initialisation)操作的签名操作ISSI。签名操作ISSI将签名操作ISSA与签名操作ISSW相互结合。
根据本发明的方法的一种实施方式包括执行“签名检验”(Instruction StreamSignature Check)操作的签名操作ISSC。操作“签名检验”是一个比较操作,该操作将额定签名值与实际签名值相互比较。
根据本发明的方法的一种实施方式包括执行“停止更新实际签名”(InstructionStream Signature Deactivate)操作的签名操作ISSD。在实施完签名操作ISSD之后将不再计算被分配给后续的实施步骤的实际签名值。一种实施方式使用寄存器作为模式寄存器并且将模式寄存器设置为代表签名检验停止的值。
根据本发明的方法的一种实施方式包括执行“结束受保护的子工作序列”(Instruction Stream Signature Exit)操作的签名操作ISSE。“结束受保护的子工作序列”的操作将签名操作ISSC与签名操作ISSD相互结合。
根据本发明的方法的一种实施方式包括执行“更新具有预先给定的值的实际签名”(Instruction Stream Signature Update)操作的签名操作ISSU。在执行这个操作时,利用签名变化值来更新实际签名寄存器。与签名操作ISSW不同,不是绝对地,而是相对地实现这种更新。在执行完签名操作ISSU之后,实际签名值由此既取决于在执行签名操作ISSU之前刚刚计算的实际签名值,又取决于签名变化值。在一种实施方式中,将签名变化值存储在指令码的签名区域中,该指令码代表了被分配给签名操作ISSU的签名指令。
根据本发明的方法的一种实施方式包括执行“签名验证和更新”(InstructionStream Signature Check and Update)操作的签名操作ISSCU。“签名检验和更新”操作将签名操作ISSC与签名操作ISSU相互结合。
根据本发明的方法的一种实施方式包括执行“根据预先给定的数值更新实际签名”(Instruction Stream Signature Update Conditional)操作的签名操作ISSUC。在这个实施方式中,预先给出了第一实施路径,其中,工作序列的运行可以在分支处与预先规定发生偏差,以便经过第二实施路径。例如,当在与预先规定发生偏差的情况下第二路径从分支处开始经过部分工作序列时,该预先规定使得在不跳跃到部分工作序列中的情况下分支处的预先给定的第一实施路径足够使用。如果在将被分配给跳跃指令的签名值纳入考虑范围的情况下,运行与预先规定相符,以及如果在将被分配给跳跃指令的签名值以及被分配给部分工作序列的签名变化值纳入考虑范围的情况下,运行与预先规定不相符,则根据分支处的工作序列的运行实现实际签名寄存器的更新。假设适当地预先给出了签名变化值的话,那么一旦工作序列的运行与预先给定的运行不符的话,那么在处理完与实际的签名值的相符的部分工作序列之后,实际的签名值则被用于使得运行与预先规定相符的情况。
根据本发明的方法的一种实施方式包括执行“初始化具有当前地址的实际签名寄存器”(Instruction Stream Signature Write Current Address)操作的签名操作ISSWCA。在执行“初始化具有当前地址的实际签名”操作时,将实际签名寄存器设置为与一个或多个指令码的地址相关的值,该指令码代表被分配给签名操作ISSWCA的签名指令。在一种实施方式中,例如,将实际签名值设置为与用于指令码的额定签名值相符的值,该指令码代表被分配给签名操作ISSWCA的签名指令。
根据本发明的方法的一种实施方式包括执行“初始化具有地址的实际签名寄存器”(Instruction Stream Signature Write Address)操作的签名操作ISSWA。在执行“初始化具有地址的实际签名寄存器”操作时,将实际签名寄存器设置为与地址相关的值。在一种实施方式中例如将实际签名寄存器设置为与用于更新指令的跳跃目标的额定签名值相符的值。
在一种实施方式中,该方法具有至少一个签名实施步骤。实际签名值和额定签名值仅在当前实施步骤被评定为签名实施步骤时才被相互比较。每个包含签名实施步骤的指令均被称为签名指令。
在根据本发明的方法的一种实施方式中,间接的跳跃指令包括至少一个签名实施步骤。在一个实施方式中,尤其是每个间接的跳跃指令均包括一个签名实施步骤。
在根据本发明的方法的一种实施方式中,源于子工作序列的回跳指令包括至少一个签名实施步骤。
在根据本发明的方法的一种实施方式中,存在用于执行一个或多个签名操作的显式的指令。
在一方面,本发明包括设置用于执行根据本发明的方法的计算机程序。该计算机程序在一种实施方式中设置用于在多个处理器中分散地执行根据本发明的方法。
在一方面,本发明包括一种用于提供代表计算机程序的工作序列的一个或多个指令的指令码的方法(编译方法)。每个代表了指令的指令码均包括至少一个能由处理器实施的实施步骤。在一种实施方式中,代表各一个指令的指令码包括多个能依次地由处理器实施的实施步骤。
根据本发明的编译方法设计用于在至少一个处理器(编译处理器)中执行。该编译方法包括将代表了工作序列的程序文本(源代码、源文本、源程序)转换、尤其是翻译成代表了工作序列的指令的指令码。概念编译能理解成一个或多个以下措施:将由计算机高级语言构成的程序文本或程序文本部分描述和/或翻译成目标语言、尤其是机器语言,提供代表了被翻译的程序文本的指令的指令码,将程序文本的部分彼此之间和/或与其它计算机程序部分相互地结合或联系起来。程序文本例如被书写成计算机高级语言,诸如,Java或C++。
根据本发明的编译方法还包括定义(Definieren)指令码中的被分配给工作序列的插入实施步骤(Einsatzausfürungsschritt)。在一种实施方式中,该编译方法包括将签名变化值分派给该插入实施步骤。
在一种实施方式中,在对设置用于按照根据本发明的方法工作的计算机程序进行编译的同时,实现插入与根据本发明的方法的步骤之一相关的数据区和/或程序指令的步骤。
在一种实施方式中,该编译方法隐含地通过以下方式定义插入实施步骤,例如,将工作序列的指令之一定义为插入指令,据此在应用预先给定的规则的情况下,代表了指令的指令码的实施步骤之一构成了插入实施步骤。例如,预先给定的规则指出:指令码的第一个实施步骤构成插入实施步骤,或预先给定的规则例如指出:指令码的最后一个实施步骤构成插入实施步骤。
在一方面,本发明包括一种编译产品,该编译产品设置用于在对代表工作序列的程序文本进行编译的情况下生成根据本发明的计算机程序,以便提供代表工作序列的指令码。编译产品的一种实施方式设置用于,定义被分配给工作序列的插入实施步骤并且将签名变化值分派给该插入实施步骤。根据本发明的编译产品的一种实施方式设置用于,根据预先给定的额定签名值计算签名变化值。在本发明的一种实施方式中,该编译产品应用了Reed-Solomon算法,以便计算签名变化值。根据本发明的编译产品的一种实施方式设置用于,在对程序运行路径进行追溯的情况下计算签名变化值。在此,程序运行路径例如以插入实施步骤为开始并且例如以在被分配给签名指令或签名实施步骤的地址处被写入到存储器中的实施步骤的指令码为结束。
在编译产品的一种实施方式中,从被分配给签名指令或签名实施步骤的地址出发,在逆转地应用映射函数的情况下计算签名变化值,根据预先给定的规则在运行程序时应用该映射函数。
在一方面,本发明包括一种电路,该电路具有实际签名寄存器,该实际签名寄存器设置用于接收实际签名值。该电路在一种实施方式中至少部分地设计为集成的。
根据本发明的电路的一种实施方式具有额定签名寄存器,该额定签名寄存器设置用于接收额定签名值。
在一种实施方式中,该电路具有比较装置,该比较装置设置用于,将实际签名寄存器中的值与额定签名值相互比较,以及如果实际签名寄存器中的值与额定签名值相互一致,则设置相同信号,并且如果实际签名寄存器中的值与额定签名值不相一致,则设置不同信号。
附图说明
下面根据附图说明本发明的实施例,图中示出:
图1示出了示例性的计算机的示意图,该计算机设置用于,执行根据本发明的方法的一个实施例;
图2示出了图1中的实施例的一个部分的示意图;
图3示出了根据本发明的方法的第一个实施例的示意图;
图4示出了根据本发明的方法的第二个实施例的示意图;
图5示出了根据本发明的方法的第三个实施例的示意图;以及
图6示出了通过指令码代表工作序列的一个部分的示意图。
具体实施方式
根据本发明的装置的实施例具有计算机。该计算机包括处理器2和存储器(Memories)4。处理器2包括:高速缓冲存储器14;设置用于对指令码进行解码的指令解码器(instruction decoder)15;寄存器(register file寄存器堆)16;算术逻辑单元(ALU)11;以及微处理器单元和存储器管理单元(MPU/MMU)12。
高速缓冲存储器14借助存储器总线7与存储器4相连接,以用于对存储器4进行写入访问和读取访问。高速缓冲存储器14一方面借助指令总线21与指令解码器15以这种方式相连接,使得存储在高速缓冲存储器14中的指令码被指令解码器15所读取;另一方面该高速缓冲存储器14借助寄存器总线22与寄存器16相连接,以用于对高速缓冲存储器14进行写入访问和读取访问。
算术逻辑单元(ALU)11借助第一ALU总线17与寄存器16相连接从而进行写入访问和读取访问。另外,算术逻辑单元(ALU)11借助第二ALU总线18与微处理器和存储器管理单元12相连接,以便从算术逻辑单元(ALU)11侧进行写入访问。
微处理器单元和存储器管理单元12自身又借助写入总线19与高速缓冲存储器14相连接,以便从微处理器单元和存储器管理单元12侧进行写入访问。
指令解码器15借助控制总线26与寄存器16相连接,使得在寄存器16处指令解码器15能接收控制信号。指令解码器15借助控制总线21与算术逻辑单元11以这种方式相连接,使得算术逻辑单元能接收指令解码器15的控制信号。
指令解码器15(图2)包括:传统的解码装置(Decoder)151;映射装置152;以及具有实际签名寄存器154的签名装置(Code Signature Function代码签名函数)153。指令解码器15还包括功能电路156以及检验装置155,该检验装置与签名寄存器154和功能电路156相连接。
解码装置151设置用于,从高速缓冲存储器14中读出被分配给计算机程序的工作序列的指令i1,i2,…,in(图6)的指令码(n表示实施例的工作序列的指令的数量)。解码装置151还设置用于,为每个指令计算一个或在可能的情况下多个控制信号s1.1,s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”(m,m’,m”表示指令码所包括的控制信号的数量,该指令码代表了实施例的工作序列的各个指令)并且将其输出至映射装置152。可以将控制信号s1.1,s1.2,...,s1.m;s2.1,s2.2,...,s2.m'分配给各个指令i1或i2的一个或多个实施步骤。
映射装置152设置用于,读取由解码装置151输出的控制信号s1.1,s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”,并且为每个指令i1,i2,...,in根据被分配给指令的映射规定CI将各个指令的控制信号s1.2,...,s1.m;s2.1,s2.2,...,s2.m';...,sn.1,sn.2,...,sn.m”映射成被分配给指令ix=i1,i2,...,in的指令签名值CI(i1),CI(i2),...,CI(in)。在该实施例的一个变型(未示出)中,映射装置152设置用于,根据被分配给实施步骤的映射规则CI'将被分配给各个单独的实施步骤的控制信号s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”映射成被分配给各个实施步骤的实施步骤签名值CI'(i1.1),CI'(i1.2),...,CI'(in.m")。
另外,映射装置152设置用于,将各个指令签名值CI(i1),CI(i2),...,CI(in)发出至签名装置153。
签名装置153包括实际签名寄存器154并且设置用于,在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下为每个指令签名值CI(ix)计算被分配给指令ix的实际签名值ISSx,并且将该实际签名值ISSx写入到实际签名寄存器154中。工作序列签名函数M(ISSx-1,CI(ix))将指令签名值CI(ix)以及前一次计算的、由工作序列签名函数M(ISSx-1,CI(ix))从实际签名寄存器154中读出的实际签名值ISSx-1纳入到考虑范围以内。
功能电路156设置用于,根据预先给定的规定Ca计算额定签名值Ca(VAx)。
检验装置155设置用于,将签名寄存器154中的值(实际签名值)与由功能电路156输出的值(额定签名值)相互比较并且根据比较结果输出报警信号。
根据本发明的方法的第一个实施例:
根据第一个实施例的方法是以根据本发明的、设置用于在根据本发明的装置的实施例的计算机上运行的计算机程序的实施例的指令(图3)的工作序列为基础的。工作序列设置用于,通过依次地(“线性地”)处理工作序列的指令i1,i2,...,i6的方法来在计算机的处理器2和/或多个处理器中进行处理。根据本发明尤其是要针对可能无法察觉地和/或成功地进行的、不被允许的对工作序列的干预来对工作序列进行保护。
分别通过代码来代表指令,该代码具有32个比特,其中,例如,代表了操作的所谓的操作码具有16比特,并且另外的16比特代表操作的自变量(Argument)。
工作序列具有第一签名指令ISSI,该第一签名指令执行第一签名操作“开始受保护的工作序列”(Instruction Stream Signature Initialisation)。第一签名指令ISSI还包括自变量SIG,该自变量包括第一签名变化值mISSI和路径信号值f,然而该路径信号值在第一个实施例中没有任何意义。第一签名变化值mISSI由15比特长的代码来表示并且路径信号值f由1比特长的代码来表示(图6)。在存储器4中将第一签名指令ISSI存储于地址VA1。
工作序列还具有第二签名指令ISSCU,该第二签名指令执行第二签名操作“检验和更新签名”(Instruction Stream Signature Check and Update)。第二签名指令ISSCU还包括自变量SIG,该自变量包括第二签名变化值mISSCU和路径信号值f。第二签名变化值mISSCU由15比特长的代码来代表。在存储器4中将第二签名指令ISSCU存储于地址VA2,以便紧接着工作序列的第三指令i3且在工作序列的第四指令i4之前执行该第二签名指令。
工作序列还具有第三签名指令ISSE,该第三签名指令实施第三签名操作“结束受保护的工作序列”(Instruction Stream Signature Exit)。与第一签名指令ISSI和第二签名指令ISSCU不同,第三签名指令ISSE没有自变量SIG。在存储器4中将第三签名指令ISSE存储于地址VA3,以便紧接着工作序列的第六指令i6执行该第三签名指令。
在第一实施例中,分别仅仅通过签名指令ISSI,ISSCU或ISSE来实施这三个签名操作。在该实施例的一个变型中,分别不仅通过一个指令、而且通过指令序列来实施签名操作。这个变型的一个实例是,通过例如在多个寄存器中依次地写入不同的值或在那里读取这些值来实施签名操作。
下面将描述的是第一个实施例的工作序列的运行。
首先利用第一签名指令ISSI实施第一签名操作“开始受保护的工作序列”。在这个操作中,解码装置151读取第一签名指令ISSI的自变量SIG并且在实际签名寄存器154中写入签名变化值mISSI。该实施例的一种变型额外地使用了预先给定的寄存器作为模式寄存器并且以如下方式设置其值,即该值代表了签名检验的激活并且由此代表了签名检验的应用。然后,处理器2对工作序列的第一批三个指令i1,i2,i3进行处理。对于每个指令而言,签名装置153同时在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下计算各一个被分配给指令i1,i2和i3的实际签名值ISS1,ISS2或ISS3。工作序列签名函数M(ISSx-1,CI(ix))在此分别将指令签名值CI(i1),CI(i2)或CI(i3)以及分别上一次计算的实际签名值ISSISSI,ISS1或ISS2纳入到考虑范围内。
然后利用第二签名指令ISSCU实施第二签名操作“检验和更新签名”。第二签名操作将在地址VA2处分配给签名指令的实际签名值ISSISSCU与基于地址VA2而计算的额定签名值Ca(VA2)相互比较。如果实际签名值ISSISSCU与额定签名值Ca(VA2)相一致的话,那么处理器2继续对工作序列进行处理。如果实际签名值ISSISSCU反之与额定签名值Ca(VA2)不符的话,则设置错误信号。在该实施例的一个变型中,错误信号被存储在寄存器中。在该实施例的另一个变型中,处理器2将中断工作序列的运行。
在将实施第二签名指令ISSCU之前刚刚计算的实际签名值ISS3以及实际签名值ISSVA2上的签名变化值mISSCU纳入到考虑范围内的情况下,第二签名操作“检验和更新签名”进一步对实际签名寄存器154进行更新。
如果处理器2继续推进工作序列运行的话,那么处理器2将对工作序列的下一批三个指令i4,i5,i6进行处理。对于每个指令而言,签名装置153同时在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下计算被分配给指令i4,i5和i6的实际签名值ISS4,ISS5或ISS6。在此,工作序列签名函数M(ISSx-1,CI(ix))分别将指令签名值CI(i4),CI(i5)或CI(i6)以及分别上一次所计算的实际签名值ISSVA2,ISS4或ISS5纳入到考虑范围内。
第三签名操作“结束受保护的工作序列”借助比较装置155将在地址VA3处被分配给签名指令ISSE且被写入到实际签名值寄存器154中的实际签名值ISSISSE与基于地址VA3由功能电路156所计算的额定签名值Ca(VA3)相比较。如果实际签名值ISSISSE与额定签名值Ca(VA3)相一致的话,那么处理器2将在安全模式下按计划地结束运行。如果与此相反地,实际签名值ISSISSE与额定签名值Ca(VA3)不一致的话,则设置错误信号,该错误信号由检验装置155作为例如报警信号输出。在一个变型中,在寄存器中存储该信号。在该实施例的另一个变型中,处理器2将中断工作序列的运行。
根据本发明的方法的第二个实施例:
如第一个实施例的方法的情况那样,根据第二个实施例的方法是以根据本发明的、设置用于在根据本发明的装置的实施例的计算机上运行的计算机程序的第二个实施例的指令i1,i2,...,i6(图4)的工作序列为基础的。通过处理工作序列的指令i1,i2,...,i6来在计算机的一个处理器2和/或多个处理器中处理该工作序列i1,i2,...,i6。
第二个实施例的计算机程序与第一个实施例的计算机程序的区别在于视情况而定的跳跃指令JCOND。由于视情况而定的跳跃指令JCOND,计算机程序包括具有指令的第一工作序列i1,i2,i3,i4,i5,i6和具有指令的第二工作序列i1,i2,i5,i6。是否执行第二工作序列取决于视情况而定的跳跃指令并且由此取决于视情况而定的跳跃指令的条件的满足。
具体地,第二个实施例的计算机程序具有第一签名指令ISSI,该第一签名指令与第一个实施例的第一签名指令ISSI相同并且设计用于在第一指令i1之前实施。
计算机程序具有第二签名指令JCOND,该第二签名指令实施第二签名操作“根据预先给定的值更新实际签名”(Instruction Stream Signature Update Conditional,缩写ISSUC)。另外,第二签名指令JCOND包括自变量SIG,该自变量包括第一签名变化值mjcond和路径信号值f。通过15比特长的代码来代表第二签名变化值mjcond并且通过1比特长的代码代表路径信号值f。路径信号值f以信号通知,是否在处理第一工作序列的情况下或在处理第二工作序列的情况下将签名变化值mjcond纳入到考虑范围内。在地址VA2处将第二签名指令JCOND存储在存储器4中,紧接着第一工作序列中的第二指令i2,但在第一工作序列的第三指令i3之前以及在第二工作序列的第三指令i5之前存储该第二签名指令。
计算机程序具有指令i5,该指令既作为第五指令被布置在第一工作序列中,又作为第三指令被布置在第二工作序列中。指令i5设计用于直接在第一工作序列中的第四指令i4之后执行。另外,第二工作序列中的第五指令i5设计用于直接在第二签名指令JCOND之后执行。
计算机程序另外具有第三签名指令ISSE,该第三签名指令执行第三签名操作“结束受保护的工作序列”(Instruction Stream Signature Exit)。第三签名指令ISSE与第一签名指令ISSI和第二签名指令JCOND的区别在于没有自变量SIG。在地址VA4处将第三签名指令ISSE存储在存储器4中,紧接着第一工作序列的第六指令i6或第二工作序列的第四指令i6执行该第三签名指令。
下面将描述第二个实施例的第一和第二工作序列的运行。
如第一个实施例中那样,首先利用第一签名指令ISSI实施第一签名操作“开始受保护的工作序列”。然后,处理器2对工作序列的第一批两个指令i1,i2进行处理。对于每个指令而言,签名装置153同时在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下计算各一个被分配给指令i1和i2的实际签名值ISS1或ISS2。工作序列签名函数M(ISSx-1,CI(ix))在此分别将指令签名值CI(i1)或CI(i2)以及分别上一次计算的实际签名值ISSISSI或ISS1纳入到考虑范围内。
然后利用第二签名指令JCOND执行第二签名操作“根据预先给定的值更新实际签名”。第二签名操作包括读取签名变化值mjcond以及路径信号值f。在当前的第二个实施例中,路径信号值f可能等于零。第二签名操作还包括读取在此未详细示出的跳跃信号,该跳跃信号决定是否应该继续处理第一工作序列或第二工作序列。在当前的第二实施例中,跳跃信号可能为零,如果不应实施跳跃的话,则对第一工作序列进行处理,并且跳跃信号可能为1,如果应该实施跳跃的话,则对第二工作序列进行处理。
在对第一工作序列进行处理的情况下,在将工作序列签名函数M(ISS2,CI(jcond))应用在实际签名值ISSVA2上且在将第二签名指令JCOND的指令签名值CI(jcond)纳入到考虑范围内的情况下实现实际签名寄存器的更新。
然后,处理器2对第一工作序列的指令i3,i4,i5和i6进行处理。对于每个指令而言,签名装置153同时在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下计算被分配给指令i3,i4,i5和i6的实际签名值ISS3,ISS4,ISS5或ISS6。在此,工作序列签名函数M(ISSx-1,CI(ix))分别将指令签名值CI(i3),CI(i4),CI(i5)或CI(i6)以及分别上一次所计算的实际签名值ISSVA2,ISS3,ISS4或ISS5纳入到考虑范围内。
在对第二工作序列进行处理的情况下,在实施第二签名指令JCOND时,将实际签名寄存器154更新为实际签名值ISSVA2。正如处理第一工作序列的情况那样,在将上一次所计算的实际签名值ISS2纳入到考虑范围内的情况下实现该更新。在处理第二工作序列的情况下,在进行更新时然而也还额外地考虑到了第二签名变化值mjcond。然后,处理器2直接处理第二工作序列的指令i5和i6。对于每个指令i5,i6而言,签名装置153同时在应用工作序列签名函数M(ISSx-1,CI(ix))的情况下计算了被分配给指令i5和i6的实际签名值ISS5或ISS6。工作序列签名函数M(ISSx-1,CI(ix))在此分别将指令签名值CI(i5)或CI(i6)以及分别上一次计算的实际签名值ISSVA2或ISS5纳入到考虑范围内。
如第二工作序列的情况那样,在第一工作序列的情况下,第三签名操作“结束受保护的工作序列”将在地址VA4处被分配给签名指令的实际签名值ISSISSE与基于地址VA4所计算的额定签名值Ca(VA4)相比较。如果实际签名值ISSISSE与额定签名值Ca(VA4)相一致的话,那么处理器2将在安全模式中按计划地结束运行。如果与此相反地,实际签名值ISSISSE与额定签名值Ca(VA4)不一致的话,则设置错误信号。在一个变型中将该信号存储在寄存器中。在该实施例的另一个变型中,处理器2中断工作序列的运行。
根据本发明的方法的第三个实施例:
正如第一个实施例的方法和第二个实施例的方法的情况那样,根据第三个实施例的方法是以根据本发明的、设置用于在根据本发明的装置的实施例的计算机上运行的计算机程序的第三个实施例的指令(图5)的工作序列为基础的。通过处理工作序列的指令i1,...,i11,...,i12,...,i2,...来在计算机的一个处理器2和/或多个处理器中处理该工作序列。
第三实施例的计算机程序具有主程序和子程序。子程序能由主程序调用。与此相应地,工作序列包括具有指令i1,...,i2,...的主程序以及具有指令i11,...,i12,...的子程序。
具体地,第三个实施例的计算机程序具有第一签名指令ISSI,该第一签名指令与第一实施例的第一签名指令ISSI相同并且设计用于在第一指令i1之前执行。
计算机程序还具有第六签名指令ISSE,该第六签名指令执行第六签名操作“结束受保护的工作序列”(Instruction Stream Signature Exit)。在地址VA7处将第六签名指令ISSE存储在存储器4中,紧接着该工作序列的主要部分的上一个指令执行该第六签名指令。
在工作序列的主程序中,计算机程序还具有第二签名指令CALL(调用),在工作序列的主要部分的第二指令i2之前,将第二签名指令存储在地址VA6处。
直接跟随指令CALL,工作序列具有第三签名指令ISSU(利用预先给定的值更新工作序列寄存器)。在第三个实施例中,第三签名指令ISSU将进入点(Einsprungpunkt)标记在计算机程序的子程序中。在第三签名指令ISSU之后紧跟着的是工作序列的子部分的指令i11。
计算机程序还具有第四签名指令ISSC(签名检验),将该第四签名指令存储在工作序列的子程序的另一个指令i12之前。
计算机程序具有第五签名指令ISSret(签名返回),该第五签名指令设计用于在工作序列的子程序的最后一个命令之后执行。在工作序列的运行中,在地址VA6处第二指令i2紧跟着指令ISSret。
下面将描述第三个实施例的计算机程序的运行。
如第一个实施例中那样,首先实施第一签名指令ISSI并且然后处理器2对工作序列的第一指令i1,...进行处理,并且签名装置15同时计算了所分配的签名值ISS1,ISS...。
然后实施第二签名指令CALL。调用操作包括:将签名指令的地址VA6作为回跳地址存储在寄存器16的地址链接寄存器中。另外,调用操作包括:计算调用操作的签名值ISSCALL。然后将实际签名寄存器的值ISSCALL写入到签名链接寄存器中。然后,执行操作“初始化具有地址的实际签名寄存器”(Instruction Stream Signature Write Address,缩写:ISSWA),也就是说,基于地址VA3计算签名值Ca(VA3)并且写入到实际签名寄存器中。然后,在第三签名指令ISSU的地址VA3处跳入到子程序中。
子程序的运行包括:从第三签名指令ISSU中提取出签名区域的签名变化值mISSU;以及读取实际签名值ISSISSU。随后在考虑了签名变化值mISSU的情况下将实际签名寄存器更新为实际签名值ISSVA3。由此,在更新了实际签名寄存器的情况下对子程序的指令i11,...进行处理。在此可以像例如在地址VA4处设有第四签名指令那样地实现检验。
位于地址VA5处的第五签名指令ISSret(签名返回)包括:更新实际签名寄存器154。然后,将更新的实际签名值ISSISSret与用于第五签名指令ISSret的地址VA5的额定签名值ca(VA5)相互比较。如果实际签名值ISSISSret与额定签名值ca(VA5)不一致的话,则设置错误信号。如果实际签名值ISSISSret与额定签名值ca(VA5)一致的话,那么就将寄存器16中的签名链接寄存器的值ISSCALL写入到实际签名寄存器154中,该实际签名寄存器从地址链接寄存器中读取地址VA6并且在地址VA6处执行到第二指令i2处的主程序中的回跳。
从地址VA6处的第二指令i2开始,处理器2继续推进工作序列的运行并且在计算分别所分配的签名值的情况下对工作序列的后续的指令进行处理。
最后,利用第六签名指令ISSE,正如已经借助第一和第二实施例所描述地那样,执行最终签名检验。
Claims (32)
1.一种用于在处理器(2)中处理程序的指令的工作序列的方法,其中,每个指令由所分配的指令码来代表,所述指令码包括一个能由所述处理器(2)处理的实施步骤或多个能依次地由所述处理器处理的实施步骤(i1...ix...in),所述方法具有以下步骤:
-计算实际签名值(ISSx),所述实际签名值被分配给代表所述工作序列的所述指令的所述指令码的所述实施步骤的当前实施步骤(ix);
-根据地址值(VAx)计算被分配给所述当前实施步骤(ix)的额定签名值(Ca(VAx));
-如果所述实际签名值(ISSx)与所述额定签名值(Ca(VAx))不一致,则放弃至少一个等待直接实施的和/或等待间接实施的实施步骤;
-检验当前指令(ISSC)和/或所述当前实施步骤是否被评定为签名指令或签名实施步骤,以及
-如果所述当前指令(ISSC)和/或所述当前实施步骤被评定,则执行实际签名值(ISSISSC)与额定签名值(Ca(VA4))的比较。
2.根据权利要求1所述的方法,其特征在于:
-仅当所述实际签名值(ISSx)与所述额定签名值(Ca(VAx))一致时,才实施所述等待直接实施的实施步骤。
3.根据权利要求1或2所述的方法,其特征在于,所述地址值(VAx)相应于所述当前实施步骤的地址,并且所述额定签名值的计算包括:
-确定所述当前实施步骤(ix)的地址。
4.根据权利要求1或2所述的方法,其特征在于,根据签名变化值(mISSI)计算所述实际签名值(ISSx)。
5.根据权利要求3所述的方法,其特征在于,根据签名变化值(mISSI)计算所述实际签名值(ISSx)。
6.根据权利要求1或2所述的方法,其特征在于:
-如果所述实际签名值(ISSx)与所述额定签名值(Ca(VAx))不一致,则设置据此中断所述工作序列的处理的信号,或设置据此中止所述工作序列的处理的信号。
7.根据权利要求5所述的方法,其特征在于:
-如果所述实际签名值(ISSx)与所述额定签名值(Ca(VAx))不一致,则设置据此中断所述工作序列的处理的信号,或设置据此中止所述工作序列的处理的信号。
8.根据权利要求1或2所述的方法,其特征在于,与代表所述指令的所述指令码的所述实施步骤(i1...ix...in)的数量(n)无关地,为每个指令仅仅计算一个唯一的额定签名值(Ca(VAx))。
9.根据权利要求7所述的方法,其特征在于,与代表所述指令的所述指令码的所述实施步骤(i1...ix...in)的数量(n)无关地,为每个指令仅仅计算一个唯一的额定签名值(Ca(VAx))。
10.根据权利要求1或2所述的方法,其特征在于,与代表所述指令的所述指令码的所述实施步骤(i1...ix...in)的数量(n)无关地,为每个指令最多进行唯一一次实际签名值(ISSx)与额定签名值(Ca(VAx))的比较。
11.根据权利要求9所述的方法,其特征在于,与代表所述指令的所述指令码的所述实施步骤(i1...ix...in)的数量(n)无关地,为每个指令最多进行唯一一次实际签名值(ISSx)与额定签名值(Ca(VAx))的比较。
12.根据权利要求1或2所述的方法,其特征在于:
-在借助地址值识别的地址处从存储器(4)中读出代表所述当前指令的指令码。
13.根据权利要求11所述的方法,其特征在于:
-在借助地址值识别的地址处从存储器(4)中读出代表所述当前指令的指令码。
14.根据权利要求1或2所述的方法,其特征在于,借助工作序列签名函数(M)通过映射计算所述实际签名值(ISSx)。
15.根据权利要求13所述的方法,其特征在于,借助工作序列签名函数(M)通过映射计算所述实际签名值(ISSx)。
16.根据权利要求15所述的方法,其特征在于,所述映射(M)考虑到了已经计算出的实际签名值(ISSx-1)。
17.根据权利要求1或2所述的方法,其中,所述工作序列具有子工作序列(ISSU...i11...ISSC...i12...),其特征在于:
-从实际签名寄存器中读取实际签名值(ISSCALL);
-在第一签名值存储器地址处写入所述实际签名值(ISSCALL);
-实施所述子工作序列(ISSU...i11...ISSC...i12...);以及
-在所述第一签名值存储器地址处读取所述实际签名值(ISSCALL)并且将所述实际签名值写入到所述实际签名寄存器中。
18.根据权利要求16所述的方法,其中,所述工作序列具有子工作序列(ISSU...i11...ISSC...i12...),其特征在于:
-从实际签名寄存器中读取实际签名值(ISSCALL);
-在第一签名值存储器地址处写入所述实际签名值(ISSCALL);
-实施所述子工作序列(ISSU...i11...ISSC...i12...);以及
-在所述第一签名值存储器地址处读取所述实际签名值(ISSCALL)并且将所述实际签名值写入到所述实际签名寄存器中。
19.根据权利要求1或2所述的方法,其特征在于,将子工作序列签名变化值(mISSU)分配给所述工作序列的子工作序列(ISSU...i11...ISSC...i12...)并且仅仅根据所述子工作序列签名变化值(mISSU)计算所述子工作序列(ISSU...i11...ISSC...i12...)的第一实际签名值(ISSISSU)。
20.根据权利要求18所述的方法,其特征在于,将子工作序列签名变化值(mISSU)分配给所述子工作序列(ISSU...i11...ISSC...i12...)并且仅仅根据所述子工作序列签名变化值(mISSU)计算所述子工作序列(ISSU...i11...ISSC...i12...)的第一实际签名值(ISSISSU)。
21.根据权利要求1或2所述的方法,其特征在于:
当所述工作序列具有待处理的子工作序列时,
-以如下方式改变以信号传递第一运行模式的模式信号,即所述模式信号以信号传递第二运行模式;
-实施所述工作序列的子工作序列(ISSU...i11...ISSC...i12...);以及
-改变以信号传递所述第二运行模式的所述模式信号,使得所述模式信号以信号传递所述第一运行模式。
22.根据权利要求20所述的方法,其特征在于:
当所述工作序列具有待处理的所述子工作序列时,
-以如下方式改变以信号传递第一运行模式的模式信号,即所述模式信号以信号传递第二运行模式;
-实施所述子工作序列(ISSU...i11...ISSC...i12...);以及
-改变以信号传递所述第二运行模式的所述模式信号,使得所述模式信号以信号传递所述第一运行模式。
23.根据权利要求22所述的方法,具有以下步骤:
-当改变以信号传递所述第一运行模式的所述模式信号,使得所述模式信号以信号传递所述第二运行模式时,则将所述实际签名值(ISSx)写入第二签名值存储器地址处;以及
-当改变以信号传递所述第二运行模式的所述模式信号,使得所述模式信号以信号传递所述第一运行模式时,则在所述第二签名值存储器地址处读取所述值并且将所读出的所述值写入到所述实际签名寄存器中。
24.根据权利要求22所述的方法,其特征在于,或仅当以信号传递所述第一运行模式时,或仅当以信号传递所述第二运行模式时,才实现所述实际签名值(ISSx)的计算。
25.根据权利要求23所述的方法,其特征在于,或仅当以信号传递所述第一运行模式时,或仅当以信号传递所述第二运行模式时,才实现所述实际签名值(ISSx)的计算。
26.一种电路,其特征在于:实际签名寄存器,所述实际签名寄存器设置用于接收签名装置(153)的实际签名值(ISSx);额定签名寄存器,所述额定签名寄存器设置用于接收额定签名值(Ca(VAx)),其中,根据地址值确定所述额定签名值;具有信号发出部分(155)的比较装置(154),所述比较装置设置用于,在所述信号发出部分(155)处以信号传递所述实际签名寄存器中的所述实际签名值(ISSx)与所述额定签名寄存器中的所述额定签名值(Ca(VAx))的比较结果;以及包括所述比较装置的处理器,所述处理器被装配用于对该处理器中的程序的指令的工作序列进行处理的方法,其中,每个指令由所分配的指令码来代表,所述指令码包括一个能由所述处理器处理的实施步骤或多个能依次地由所述处理器处理的实施步骤,所述方法包括:如果所述实际签名值与所述额定签名值不一致,则放弃至少一个等待直接实施的和/或等待间接实施的实施步骤,检验当前指令(ISSC)和/或当前实施步骤是否被评定为签名指令或签名实施步骤,以及如果所述当前指令(ISSC)和/或所述当前实施步骤被评定,则执行实际签名值(ISSISSC)与额定签名值(Ca(VA4))的比较。
27.根据权利要求26所述的电路,其特征在于,所述额定签名寄存器以如下方式设置,即,从在存储有指令(ix)的地址(VAx)中推导出所述额定签名寄存器中的值(Ca(VAx)),根据所述指令将所述实际签名值(ISSx)与所述额定签名值(Ca(VAx))进行比较。
28.根据权利要求26或27所述的电路,其特征在于,所述额定签名寄存器设计为地址值寄存器,所述地址值寄存器具有所述指令的地址值(VAx)。
29.根据权利要求26或27所述的电路,设置用于执行根据权利要求1至26中任一项所述的方法。
30.根据权利要求28所述的电路,设置用于执行根据权利要求1至26中任一项所述的方法。
31.根据权利要求26或27所述的电路,其特征在于,所述电路以如下方式设计为能停止工作的,即,如果所述电路停止工作,则所述签名装置的所述实际签名寄存器不再接收任何值。
32.根据权利要求30所述的电路,其特征在于,所述电路以如下方式设计为能停止工作的,即,如果所述电路停止工作,则所述签名装置的所述实际签名寄存器不再接收任何值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510604793.2A CN105117201B (zh) | 2012-05-22 | 2013-05-22 | 用于提供指令码的方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012010102A DE102012010102A1 (de) | 2012-05-22 | 2012-05-22 | Verfahren und Vorrichtung zur Datenverarbeitung |
DE102012010102.3 | 2012-05-22 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510604793.2A Division CN105117201B (zh) | 2012-05-22 | 2013-05-22 | 用于提供指令码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425459A CN103425459A (zh) | 2013-12-04 |
CN103425459B true CN103425459B (zh) | 2017-03-01 |
Family
ID=49546796
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510604793.2A Expired - Fee Related CN105117201B (zh) | 2012-05-22 | 2013-05-22 | 用于提供指令码的方法 |
CN201310193999.1A Expired - Fee Related CN103425459B (zh) | 2012-05-22 | 2013-05-22 | 用于数据处理的方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510604793.2A Expired - Fee Related CN105117201B (zh) | 2012-05-22 | 2013-05-22 | 用于提供指令码的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9003198B2 (zh) |
CN (2) | CN105117201B (zh) |
DE (1) | DE102012010102A1 (zh) |
FR (2) | FR2991071B1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11029997B2 (en) * | 2013-07-15 | 2021-06-08 | Texas Instruments Incorporated | Entering protected pipeline mode without annulling pending instructions |
DE102015203319A1 (de) * | 2015-02-24 | 2016-08-25 | Infineon Technologies Ag | Schaltungsanordnung und Verfahren für Befehlsstromschutz |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026455A (zh) * | 2006-02-22 | 2007-08-29 | 富士通株式会社 | 安全处理器 |
CN101339519A (zh) * | 2008-08-13 | 2009-01-07 | 哈尔滨工程大学 | 面向嵌入式微处理器的软硬结合控制流检测方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19834486A1 (de) | 1998-07-31 | 2000-02-03 | Philips Corp Intellectual Pty | Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen |
JP2002099312A (ja) * | 2000-09-22 | 2002-04-05 | Mitsubishi Electric Corp | プログラマブルコントローラおよび制御プログラム開発支援装置 |
FR2849226B1 (fr) * | 2002-12-20 | 2005-12-02 | Oberthur Card Syst Sa | Procede et dispositif de securisation de l'execution d'un programme informatique. |
US20050028036A1 (en) * | 2003-07-30 | 2005-02-03 | Kohsaku Shibata | Program debug apparatus, program debug method and program |
GB2447427B (en) * | 2007-03-12 | 2011-05-11 | Advanced Risc Mach Ltd | Address calculation within data processing systems |
GB2474521B (en) * | 2009-10-19 | 2014-10-15 | Ublox Ag | Program flow control |
GB2484489A (en) * | 2010-10-12 | 2012-04-18 | Advanced Risc Mach Ltd | Instruction decoder using an instruction set identifier to determine the decode rules to use. |
US20130055033A1 (en) * | 2011-08-22 | 2013-02-28 | International Business Machines Corporation | Hardware-assisted program trace collection with selectable call-signature capture |
JP5840014B2 (ja) * | 2012-02-01 | 2016-01-06 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンパイル方法、プログラムおよび情報処理装置 |
-
2012
- 2012-05-22 DE DE102012010102A patent/DE102012010102A1/de not_active Withdrawn
-
2013
- 2013-05-17 FR FR1301146A patent/FR2991071B1/fr not_active Expired - Fee Related
- 2013-05-22 CN CN201510604793.2A patent/CN105117201B/zh not_active Expired - Fee Related
- 2013-05-22 US US13/899,655 patent/US9003198B2/en active Active
- 2013-05-22 CN CN201310193999.1A patent/CN103425459B/zh not_active Expired - Fee Related
-
2014
- 2014-08-12 FR FR1401843A patent/FR3008504A1/fr not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026455A (zh) * | 2006-02-22 | 2007-08-29 | 富士通株式会社 | 安全处理器 |
CN101339519A (zh) * | 2008-08-13 | 2009-01-07 | 哈尔滨工程大学 | 面向嵌入式微处理器的软硬结合控制流检测方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130318327A1 (en) | 2013-11-28 |
CN105117201B (zh) | 2018-01-16 |
CN105117201A (zh) | 2015-12-02 |
FR3008504A1 (fr) | 2015-01-16 |
US9003198B2 (en) | 2015-04-07 |
FR2991071A1 (fr) | 2013-11-29 |
FR2991071B1 (fr) | 2016-05-20 |
DE102012010102A1 (de) | 2013-11-28 |
CN103425459A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1559012B1 (en) | Method and apparatus for performing validation of program code conversion | |
CN104823161B (zh) | 生成无运算符代码的编译器 | |
TWI424354B (zh) | 程式碼轉換期間之執行控制 | |
JP5077605B2 (ja) | コンピュータ・システムにおいて例外信号を処理するための装置及び方法 | |
JP4958103B2 (ja) | プログラムコード変換においてコードのパーティショニングを行う方法及び装置 | |
JP2022505340A (ja) | データ引数を動的に識別し、ソースコードを計装するためのシステムと方法 | |
CN107548492B (zh) | 具有增强指令集的中央处理单元 | |
CN109101237A (zh) | 代码的加密编译方法及装置 | |
CN105260659A (zh) | 一种基于qemu的内核级代码重用型攻击检测方法 | |
CN105373411B (zh) | 一种用于星载数字信号处理器的在轨编程系统及设计方法 | |
JP2007517299A5 (zh) | ||
CN105975816A (zh) | 移动终端下基于虚拟技术的代码保护方法及系统 | |
US10853076B2 (en) | Performing at least two branch predictions for non-contiguous instruction blocks at the same time using a prediction mapping | |
CN110245467A (zh) | 基于Dex2C与LLVM的Android应用程序保护方法 | |
CN103425459B (zh) | 用于数据处理的方法和装置 | |
CN103955354B (zh) | 重定位方法和装置 | |
CN109739824A (zh) | 日志获取方法及设备 | |
CN105373414B (zh) | 支持MIPS平台的Java虚拟机实现方法及装置 | |
US6643800B1 (en) | Method and apparatus for testing microarchitectural features by using tests written in microcode | |
CN115328772A (zh) | 激励组合与模块相关性的学习方法与测试脚本产生方法 | |
CN102411534B (zh) | 一种断点调试方法和断点调试装置 | |
Schmaltz | Towards the pervasive formal verification of multi-core operating systems and hypervisors implemented in C | |
CN105988811B (zh) | 获取操作系统的内核控制流程图的方法和装置 | |
Beuche et al. | Managing flexibility: Modeling binding-times in simulink | |
US20110231179A1 (en) | Methods for converting instructions with base register-relative addressing in an emulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 Termination date: 20210522 |