[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008287449A - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
JP2008287449A
JP2008287449A JP2007131107A JP2007131107A JP2008287449A JP 2008287449 A JP2008287449 A JP 2008287449A JP 2007131107 A JP2007131107 A JP 2007131107A JP 2007131107 A JP2007131107 A JP 2007131107A JP 2008287449 A JP2008287449 A JP 2008287449A
Authority
JP
Japan
Prior art keywords
instruction
data processor
address
sum value
section
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.)
Withdrawn
Application number
JP2007131107A
Other languages
Japanese (ja)
Inventor
Takashi Endo
隆 遠藤
Yuichiro Nariyoshi
雄一郎 成吉
Taku Tsukamoto
卓 塚元
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007131107A priority Critical patent/JP2008287449A/en
Publication of JP2008287449A publication Critical patent/JP2008287449A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To detect abnormality of an instruction while reading and executing the instruction. <P>SOLUTION: This data processor (1) is provided with: a CPU (2) for reading and executing an instruction. The CPU is provided with an instruction register (5) for fetching an instruction; an instruction decoder (6) for decoding the fetched instruction; an integrated arithmetic circuit (7); a first register (8); and a control circuit (9) for controlling them based on the decoded instruction. The integrated arithmetic circuit starts an arithmetic operation to acquire the sum value of instruction to be executed in sections A to C of an instruction flow according to a control signal c1. The CPU executes an instruction to add adjustment values A to C to the sum value of each of sections A to C. The control circuit decides whether or not a value obtained by adding the adjustment value to the sum value is matched with a preliminarily set expected value, and when the both values are not matched, the control circuit makes the CPU stop the execution of the instructions on and after that. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、データプロセッサに係り、特にセキュリティ機能を有するICカード用マイコンとされるデータプロセッサに適用して有効な技術に関する。   The present invention relates to a data processor, and more particularly, to a technique effective when applied to a data processor which is a microcomputer for an IC card having a security function.

ICカード用マイコンのセキュリティ機能としては、例えば暗号鍵を用いて秘密情報を暗号化するものが知られている。ところが、この暗号鍵を物理的な破壊をせずに推定する攻撃方法があり、その1つとして誤動作アタックがある。誤動作アタックとは、ICカード用マイコンの中央処理装置(CPU)に対して、外部から異常な電圧、クロック、データを供給したり、異常な温度、電磁波等を与えることによって、ICカード用マイコンを誤動作させる、というものである。誤動作アタックは、数十万回も繰返され、例えば正常動作時と誤動作時でのCPUによる演算結果の差分を検証することで、暗号鍵を推定する。このような現状の下、セキュリティ機能を高めた各種装置が知られている。   As a security function of an IC card microcomputer, for example, a function for encrypting secret information using an encryption key is known. However, there is an attack method that estimates this encryption key without physically destroying it, and one of them is a malfunction attack. Malfunction attack means that the IC card microcomputer is connected to the central processing unit (CPU) of the IC card microcomputer by supplying abnormal voltage, clock, data from the outside, or supplying abnormal temperature, electromagnetic waves, etc. It is to make it malfunction. The malfunction attack is repeated hundreds of thousands of times. For example, the encryption key is estimated by verifying the difference in the calculation result by the CPU between the normal operation and the malfunction. Under such circumstances, various devices with improved security functions are known.

特許文献1には、ゲームカートリッジのプログラムデータが外部に読み出されるとき、読み出し手順によってチェックサムの値が異なることに着目し、ゲームカートリッジにセキュリティチップを組み込んだプログラム保護装置が開示されている。セキュリティチップは、プログラムデータが正規の手順で読み出されているか否かを判定し、正規の手順であるときのみ、ゲーム機のプロセッサ要求に応答する。これにより、プログラムデータが例えばゲーム機以外の外部機器に読み出され、不正コピーされてしまうことを防止できる。特許文献2には、ゲームプログラムから抽出した分岐命令と、非分岐命令と、非分岐命令のチェックサムとを圧縮し、この圧縮データを暗号化してプログラムメモリに格納する暗号プログラム生成装置が開示されている。この技術では、チェックサムを用いることでゲームプログラムが改竄されたか否かを判定でき、圧縮データを暗号化することでセキュリティ機能を高めることができる。   Patent Document 1 discloses a program protection device in which a security chip is incorporated in a game cartridge, paying attention to the fact that the checksum value varies depending on the reading procedure when the program data of the game cartridge is read to the outside. The security chip determines whether or not the program data has been read out in a regular procedure, and responds to the processor request of the game machine only when the program data is in a regular procedure. Thereby, it is possible to prevent the program data from being read and illegally copied to an external device other than the game machine, for example. Patent Document 2 discloses an encryption program generation device that compresses a branch instruction extracted from a game program, a non-branch instruction, and a checksum of the non-branch instruction, encrypts the compressed data, and stores it in a program memory. ing. In this technique, it is possible to determine whether or not the game program has been tampered with by using the checksum, and it is possible to enhance the security function by encrypting the compressed data.

特許文献3には、命令コードを読み込んだとき、命令コードを予め一定の計算方法で生成した第一の暗号コードを、命令コードが格納されている領域とは別の領域に格納し、上記一定の計算方法で再計算した第二の暗号コードと、第一の暗号コードとを比較し、一致すれば命令を実行するデータプロセッサが開示されている。この技術では、第一の暗号コードと第二の暗号コードを比較することで、不正に改竄されたプログラムが実行されることを防止できる。特許文献4には、第2保護手段を有するプログラム実行装置が開示されている。第2保護手段は、第1コンピュータプログラムを含む処理プログラムが生成されたときに少なくとも一部に基づいて生成される第1改竄検出値を取得し、処理手段が第1コンピュータプログラムを実行する前に、処理プログラムの少なくとも一部に基づいて第2改竄検出値を生成する。そして、第2保護手段は、第1改竄検出値と第2改竄検出値とが異なる場合に、処理手段が第1コンピュータプログラムに従って動作することを抑制するので、不正に改竄された第1コンピュータプログラムが実行されることを防止できる。   In Patent Document 3, when an instruction code is read, the first encryption code generated in advance by a certain calculation method is stored in an area different from the area where the instruction code is stored, and the above-mentioned certain code is stored. A data processor is disclosed in which the second encryption code recalculated by the calculation method is compared with the first encryption code, and an instruction is executed if they match. In this technique, it is possible to prevent an illegally tampered program from being executed by comparing the first encryption code and the second encryption code. Patent Document 4 discloses a program execution device having second protection means. The second protection means acquires a first falsification detection value generated based on at least a part when a processing program including the first computer program is generated, and before the processing means executes the first computer program. The second falsification detection value is generated based on at least a part of the processing program. Since the second protection means suppresses the processing means from operating according to the first computer program when the first falsification detection value and the second falsification detection value are different, the first computer program illegally falsified Can be prevented from being executed.

特開平09−282156号公報JP 09-282156 A 特開2005−166070号公報JP 2005-166070 A 特開2004−178250号公報JP 2004-178250 A 特開2005−100378号公報Japanese Patent Laid-Open No. 2005-100378

本発明者は、ICカード用マイコンが誤動作アタックによって本来の命令フローと異なる動作を行うことを確認し、その原因について考察した。本発明者は、誤動作アタックによる現象として、メモリやレジスタの値が変化すること、分岐命令等で命令実行がスキップされること、演算結果を間違うこと、プログラムカウンタ(PC)の値が意図しない値に変化すること等を確認した。そして、上記現象が、ICカード用マイコンのCPUに読込まれ実行される命令が不正に変化したことに起因することを見出し、命令の異常を検出することの重要性を認識した。   The inventor confirmed that the IC card microcomputer performs an operation different from the original instruction flow due to the malfunction attack, and considered the cause. As a phenomenon caused by a malfunction attack, the present inventor has found that the value of a memory or register changes, instruction execution is skipped by a branch instruction, an operation result is incorrect, and the value of a program counter (PC) is an unintended value. It was confirmed that it changed to. The inventors have found that the above phenomenon is caused by an illegal change in the instruction read and executed by the CPU of the IC card microcomputer, and recognized the importance of detecting the abnormality of the instruction.

特許文献1は、ゲーム機のプロセッサからの読み出しアクセスのアドレスの正当性をチェックすることで、不正な読み出しを阻止するものであり、セキュリティチップで正規の手順であると判定された後に、プロセッサとバスの間で命令が不正に変化した場合には、その命令の異常は検出できない。特許文献2は、プログラムメモリに格納された命令が改竄されたことは検出できるが、命令が実行されているときには、命令の異常を検出できない。特許文献3は、ある種のエラー検出コードを暗号コードと称して命令毎に付与しているから、個々の命令が改竄されたことは検出できるが、PCの値が意図しない値となり命令の実行順序が変化した場合には、その異常を検出できない。特許文献4は、処理手段が処理プログラムを実行する前であれば、第1コンピュータプログラムが改竄されているか否かを検出できるが、処理プログラムの実行後では、命令が不正に変化したことを検出できない。   Patent Document 1 prevents illegal reading by checking the validity of the address of the read access from the processor of the game machine. After the security chip determines that it is a legitimate procedure, If an instruction changes illegally between buses, the abnormality of the instruction cannot be detected. Patent Document 2 can detect that the instruction stored in the program memory has been tampered with, but cannot detect abnormality of the instruction when the instruction is being executed. Since Patent Document 3 assigns a certain type of error detection code to each instruction as an encryption code, it can detect that each instruction has been tampered with, but the value of the PC becomes an unintended value and execution of the instruction is performed. If the order changes, the abnormality cannot be detected. Patent Document 4 can detect whether or not the first computer program has been tampered with before the processing means executes the processing program, but can detect that the instruction has been illegally changed after the processing program is executed. Can not.

また、命令フローのチェックをソフトウエアによる実装で行うことも考えられるが、これは、ソフトウエアを構成する命令に異常がないことが前提となっている。このため、命令の異常を検出するために二重チェック等、複数回のソフト対策が必要とされ、CPUのパフォーマンスを低下させてしまうという問題がある。   It is also conceivable that the instruction flow is checked by software implementation, but this is based on the premise that there is no abnormality in the instructions constituting the software. For this reason, in order to detect an abnormality in an instruction, a plurality of software measures such as a double check are required, and there is a problem that the performance of the CPU is lowered.

本発明の目的は、命令を読込んで実行しながら命令の異常を検出し、セキュリティ機能を高めることができるデータプロセッサを提供することにある。   An object of the present invention is to provide a data processor capable of detecting an abnormality in an instruction while reading and executing the instruction and enhancing a security function.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。   A representative one of the inventions disclosed in the present application will be briefly described as follows.

即ち、データプロセッサは、命令フローの所定区間毎に、区間に含まれる命令に対するサム値を演算し、同一区間において前回の演算で得られたサム値と今回の演算で得られたサム値とが不一致であれば、命令の実行を停止、又は命令の実行順序を強制的に変更する。これにより、中央処理装置が命令を読込んで実行しながら、所定区間での命令の異常を検出でき、セキュリティ機能を高めることができる。   In other words, the data processor calculates the sum value for the instruction included in the interval for each predetermined interval of the instruction flow, and the sum value obtained by the previous operation and the sum value obtained by the current operation in the same interval are obtained. If they do not match, the instruction execution is stopped or the instruction execution order is forcibly changed. Thereby, while the central processing unit reads and executes the instruction, it is possible to detect an abnormality of the instruction in a predetermined section, and to enhance the security function.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、命令を読込んで実行しながら命令の異常を検出し、セキュリティ機能を高めることができる。   That is, it is possible to detect an abnormality in the instruction while reading and executing the instruction, thereby enhancing the security function.

1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. Representative Embodiment First, an outline of a typical embodiment of the invention disclosed in the present application will be described. The reference numerals in the drawings referred to with parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕本発明の代表的な実施の形態に係るデータプロセッサ(2A)は、命令を読込んで実行する。このデータプロセッサは、命令フローの所定区間(A1,B1,C1)毎に、前記区間に含まれる前記命令に対するサム値を演算し、同一区間において前回の前記演算で得られたサム値と今回の前記演算で得られたサム値とが不一致であれば、前記命令の実行を停止、又は前記命令の実行順序を強制的に変更する。   [1] The data processor (2A) according to the representative embodiment of the present invention reads and executes an instruction. This data processor calculates the sum value for the instruction included in the section for each predetermined section (A1, B1, C1) of the instruction flow, and the sum value obtained by the previous calculation in the same section If the sum value obtained by the calculation does not match, the execution of the instructions is stopped or the execution order of the instructions is forcibly changed.

上記より、データプロセッサが命令フローの所定区間に含まれる命令を繰返して実行する毎にサム値を演算するから、命令を読込んで実行しながら、同一区間における命令が不正に変化したことをサム値の不一致により検出できる。そして、命令が不正に変化したことを検出したデータプロセッサは、命令の実行を停止して例えばデータプロセッサをリセットしたり、それ以降の命令の実行順序を変更するから、誤動作アタックにより暗号鍵が推定されることを困難とし、セキュリティ機能を高めることができる。   From the above, every time the data processor repeatedly executes an instruction included in a predetermined section of the instruction flow, the sum value is calculated. Therefore, the sum value indicates that the instruction in the same section has illegally changed while reading and executing the instruction. It can be detected by mismatch. The data processor that detects that the instruction has been illegally changed stops the execution of the instruction and resets the data processor, for example, or changes the execution order of the subsequent instructions. Therefore, the encryption key is estimated by a malfunction attack. Security functions can be enhanced.

具体的な一つの形態として、前記区間は、レジスタ(20,21)に設定されたアドレスにより規定され、前記アドレスは、前記演算を開始及び終了する命令の命令アドレスである。上記より、データプロセッサに読込まれ実行される命令がROM等に格納されており、区間を規定する命令を書込めないような場合でも、命令アドレスを指定することで演算を行う区間を容易に規定できる。   As a specific form, the section is defined by an address set in the register (20, 21), and the address is an instruction address of an instruction for starting and ending the operation. From the above, even if the instruction that is read and executed by the data processor is stored in ROM etc., and the instruction that defines the section cannot be written, the section where the operation is performed can be easily specified by specifying the instruction address it can.

別の形態として、前記アドレス(31a)と、前記アドレスをタグとするサム値(31b)が格納されるキャッシュテーブル(31)を含むキャッシュメモリ(30)をさらに有する。前記キャッシュメモリは、リードアクセス要求を受けて前記キャッシュテーブルをアクセスし、前記リードアクセス要求より与えられたアドレスと、前記キャッシュテーブルに格納された前記アドレスとを比較し、一致すれば前記サム値を読み出す。上記より、データプロセッサは、同一区間について先にキャッシュメモリに格納されているサム値を比較対象として用いることができる。   As another form, it further has a cache memory (30) including a cache table (31) in which the address (31a) and a sum value (31b) with the address as a tag are stored. The cache memory accesses the cache table in response to a read access request, compares the address given by the read access request with the address stored in the cache table, and if they match, the sum value is read out. As described above, the data processor can use the sum value previously stored in the cache memory for the same section as a comparison target.

更に別の形態として、前記データプロセッサ(2C)は、今回実行した命令のアドレスと前回実行した命令のアドレスとの差分値が1つの命令の命令語長よりも大きいとき、前記演算を開始する。上記より、今回実行した命令は、例えば分岐命令、ジャンプ命令、サブルーチンコール命令のそれぞれの飛び先で実行された命令と判定できるから、この命令のアドレスを、命令が不正に変化しない限りサム値が一定となる区間の開始アドレスとすることができる。   As another form, the data processor (2C) starts the operation when the difference value between the address of the instruction executed this time and the address of the instruction executed last time is larger than the instruction word length of one instruction. From the above, since the instruction executed this time can be determined as an instruction executed at each jump destination of a branch instruction, a jump instruction, and a subroutine call instruction, for example, the sum value of the instruction address is changed unless the instruction changes illegally. It can be the start address of a certain interval.

更に別の形態として、前記区間は、前記演算の開始を指示するオペコードを含む第1命令と、前記演算の終了を指示するオペコードを含む第2命令とから規定される。上記より、区間を規定する命令のビット数は、区間を規定するアドレスのビット数よりも小さいから、区間を規定するために要する容量を小さくできる。   As yet another form, the section is defined by a first instruction including an operation code instructing the start of the operation and a second instruction including an operation code instructing the end of the operation. From the above, since the number of bits of the instruction that defines the section is smaller than the number of bits of the address that defines the section, the capacity required to define the section can be reduced.

更に別の形態として、前記第1命令は、前記命令フローでの分岐命令、ジャンプ命令、サブルーチンコール命令のそれぞれの飛び先で実行される命令であり、前記第2命令は、前記分岐命令、前記ジャンプ命令、サブルーチンリターン命令である。上記より、命令が不正に変化しない限りサム値が一定となる区間が規定される。   As yet another form, the first instruction is an instruction executed at each of a branch instruction, a jump instruction, and a subroutine call instruction in the instruction flow, and the second instruction is the branch instruction, Jump instruction, subroutine return instruction. From the above, the interval in which the sum value is constant unless the instruction changes illegally is defined.

〔2〕別の観点によれば、命令を読込んで実行するデータプロセッサ(2)は、命令フローの所定区間(A,B,C)毎に、前記区間に含まれる前記命令に対するサム値を演算し、前記区間で前記演算によって得られる前記サム値に所定値の加算を指示する命令を実行する。データプロセッサは、前記区間において前記演算で得られた前記サム値に前記所定値を加算した値が、予め設定された期待値と不一致であれば、前記命令の実行を停止、又は前記命令の実行順序を強制的に変更する。   [2] According to another aspect, the data processor (2) that reads and executes an instruction calculates a sum value for the instruction included in the section for each predetermined section (A, B, C) of the instruction flow. Then, an instruction for instructing addition of a predetermined value to the sum value obtained by the calculation in the interval is executed. If the value obtained by adding the predetermined value to the sum value obtained by the calculation in the interval does not match a preset expected value, the data processor stops the execution of the instruction or executes the instruction Forcibly change the order.

上記より、データプロセッサが命令フローの所定区間に含まれる命令を繰返して実行する毎にサム値と所定値を加算した値を演算するから、命令を読込んで実行しながら、同一区間における命令が不正に変化したことを上記値と期待値の不一致により検出できる。そして、データプロセッサは、上記〔1〕のデータプロセッサと同様にして誤動作アタックにより暗号鍵が推定されることを困難とし、セキュリティ機能を高めることができる。   From the above, every time the data processor repeatedly executes an instruction included in a predetermined section of the instruction flow, it calculates the sum of the sum value and the predetermined value, so the instruction in the same section is illegal while reading and executing the instruction. It can be detected by the mismatch between the above value and the expected value. The data processor makes it difficult for the encryption key to be estimated by a malfunction attack in the same manner as the data processor of [1], and can enhance the security function.

2.実施の形態の説明
次に、実施の形態について更に詳述する。
2. Next, the embodiment will be described in more detail.

《実施形態1》
図1には本発明に係るデータプロセッサの一例が示される。同図に示されるデータプロセッサ2はデータバス3からバッファレジスタ4を介して命令レジスタ5に命令をフェッチし、フェッチした命令を命令デコーダ6が解読する。解読結果が与えられる制御回路9は命令実行を制御する。命令を実行するための実行部として、代表的に示されたレジスタ回路12、演算回路13及びプログラムカウンタ11を有する。レジスタ回路12は例えば汎用レジスタR0〜R7を有する。プログラムカウンタ11は実行すべき命令アドレスを保有する。データプロセッサ2は不正なアタックを検出するための演算回路として、減算回路7とアキュムレータ8を有する。減算回路7は命令レジスタ5が保有する命令コードをアキュムレータ8が保有する値から減算し、減算結果をアキュムレータ8に戻す。減算回路7は減算結果がゼロになったとき、ゼロフラグZFLGをセットして制御回路9に供給する。制御回路9は、所定の命令実行区間において、セット状態のゼロフラグZFLGを検出すると、命令実行を停止し、或いは特定の無限ループに入って、本来のプログラム実行を停止する。所定の命令実行区間において、減算回路7及びアキュムレータ8の動作は命令レジスタ5にフェッチした命令の実行に並行して行われる。
Embodiment 1
FIG. 1 shows an example of a data processor according to the present invention. The data processor 2 shown in the figure fetches an instruction from the data bus 3 to the instruction register 5 via the buffer register 4, and the instruction decoder 6 decodes the fetched instruction. The control circuit 9 to which the decoding result is given controls instruction execution. As an execution unit for executing an instruction, a register circuit 12, an arithmetic circuit 13, and a program counter 11 which are representatively shown are included. The register circuit 12 includes, for example, general purpose registers R0 to R7. The program counter 11 holds an instruction address to be executed. The data processor 2 includes a subtraction circuit 7 and an accumulator 8 as an arithmetic circuit for detecting an illegal attack. The subtraction circuit 7 subtracts the instruction code held in the instruction register 5 from the value held in the accumulator 8 and returns the subtraction result to the accumulator 8. When the subtraction result becomes zero, the subtraction circuit 7 sets a zero flag ZFLG and supplies it to the control circuit 9. When the control circuit 9 detects the set zero flag ZFLG in a predetermined instruction execution section, the control circuit 9 stops the instruction execution or enters a specific infinite loop to stop the original program execution. In a predetermined instruction execution section, the operations of the subtraction circuit 7 and the accumulator 8 are performed in parallel with the execution of the instruction fetched into the instruction register 5.

所定の命令実行区間の始点は特定の命令ADDSUM.Bを実行するステップである。特定の命令ADDSUM.Bは、例えばサブルーチンの開始点、分岐命令の次、及び分岐先命令の直前に挿入される。前記特定の命令ADDSUM.Bはアキュムレータ8に調整値をプリセットし、以降の命令実行毎に減算回路7を用いた減算を1回づつ行う動作を指定する。調整値とは、前記特定の命令ADDSUM.Bの次の命令から所定の命令実行区間の終点の命令までの各命令の命令コードを加算した値(サム値)とされる。したがって、正規の命令実行フローに従って命令が実行されれば、前記所定の命令実行区間の終点において減算回路の値はゼロになり、ゼロフラグはセット状態にされる。前記所定の命令実行区間の終点は、条件分岐命令を実行するステップ、リターン命令を実行するステップ、及び分岐命令による分岐先命令の直前の命令の実行ステップである。分岐命令、リターン命令、及び分岐先命令の直前の命令には拡張コードが付加される。命令デコーダ6はこの拡張コードをデコードすることにより、制御回路9にゼロフラグZFLGを判別させ、セット状態であれば、その後の本来の命令実行を停止し、リセット状態であれば減算回路7及びアキュムレータ8による動作を停止させる。尚、ソースプログラムに対して前記特定の命令を挿入し、また、拡張コードを付加する箇所はコンパイルの段階で決定されている。   The start point of a predetermined instruction execution section is a specific instruction ADDSUM. Step B is executed. The specific instruction ADDSUM. B is inserted, for example, immediately before a subroutine start point, a branch instruction, and a branch destination instruction. The specific instruction ADDSUM. B presets an adjustment value in the accumulator 8 and designates an operation in which subtraction using the subtraction circuit 7 is performed once for each subsequent instruction execution. The adjustment value is the specific instruction ADDSUM. A value (sum value) is obtained by adding the instruction codes of each instruction from the instruction next to B to the instruction at the end point of the predetermined instruction execution section. Therefore, if the instruction is executed according to the normal instruction execution flow, the value of the subtraction circuit becomes zero at the end point of the predetermined instruction execution section, and the zero flag is set. The end points of the predetermined instruction execution section are a step of executing a conditional branch instruction, a step of executing a return instruction, and an execution step of an instruction immediately before the branch destination instruction by the branch instruction. An extension code is added to the instruction immediately before the branch instruction, the return instruction, and the branch destination instruction. The instruction decoder 6 decodes the extension code to cause the control circuit 9 to determine the zero flag ZFLG. If it is in the set state, it stops the subsequent original instruction execution, and if it is in the reset state, it subtracts the circuit 7 and the accumulator 8. The operation by is stopped. Note that the location where the specific instruction is inserted into the source program and the extension code is added is determined at the compilation stage.

図2には図1のデータプロセッサ2による命令実行フローが例示される。図2には一つのサブルーチンを例示する。ソースプログラムで指定された処理に対応するステップはS2,S3,S5,S6,S7,S9,S10である。ここではA,B,Cのそれぞれが前記所定の命令実行区間であり、その先頭の特定命令ADDSUM.Bは夫々の区間に固有の調整値を有する。例えばステップS1で調整値Aがアキュムレータ8にプリセットされ、S2,S3で夫々の命令コードがアキュムレータ8から順次減算される。S3において拡張コードの解読結果に応答してゼロフラグZFLGはセット状態であることが検出されれば、それ以降本来の命令実行が停止される。そうでなければ命令実行はステップS4に続く。区間B,Cにおいても同様に機能される。   FIG. 2 illustrates an instruction execution flow by the data processor 2 of FIG. FIG. 2 illustrates one subroutine. The steps corresponding to the process specified by the source program are S2, S3, S5, S6, S7, S9, and S10. Here, each of A, B, and C is the predetermined instruction execution section, and a specific instruction ADDSUM. B has an adjustment value unique to each section. For example, the adjustment value A is preset in the accumulator 8 at step S1, and the respective instruction codes are sequentially subtracted from the accumulator 8 at S2 and S3. If it is detected in S3 that the zero flag ZFLG is in a set state in response to the result of decoding the extension code, the original instruction execution is stopped thereafter. Otherwise, instruction execution continues to step S4. It functions similarly in the sections B and C.

このようにして、データプロセッサ2では、命令フローの区間A〜Cに含まれる命令を読込んで実行しながら、命令の異常を検出できる。さらにデータプロセッサ2では、命令の異常を検出したら、それ以降の命令の実行を停止するから、誤動作アタック等による暗号鍵の推定を困難とし、セキュリティ機能を高めることができる。   In this way, the data processor 2 can detect an abnormality in an instruction while reading and executing the instruction included in the instruction flow sections A to C. Further, when the data processor 2 detects an abnormality in the instruction, the execution of the subsequent instructions is stopped. Therefore, it is difficult to estimate the encryption key due to a malfunction attack or the like, and the security function can be enhanced.

《実施形態2》
図3には本発明の実施形態2に係るデータプロセッサの概略構成が例示される。図1との相違は、誤動作アタックに対して命令実行を停止させる制御に特別な命令や拡張コードを挿入したりせず、その制御を行う命令実行区間を命令アドレスの区間によって規定しようとするものである。その区間を規定するのに、スタートアドレスレジスタ20及びエンドアドレスレジスタ21を有し、それらの値は逐次プログラムカウンタ(PC)11の値とアドレスコンパレータ(CMP)22によって比較される。スタートアドレスレジスタ20及びエンドアドレスレジスタ21に対する初期値設定は例えばデータプロセッサ2Aのパワーオンリセット時に図示を省略する不揮発性メモリから内部転送されて行われる。そのアドレス区間は、間に分岐命令及び分岐先命令を含まない区間である。制御回路9はコントロールフラグCFLGを有し、コントロールフラグCFLGはデータプロセッサ2Aのリセット解除後にリセット状態に初期化される。アドレスコンパレータ22は、PC11が出力する命令実行アドレスがスタートアドレスレジスタ20のスタートアドレスに一致することを検出すると、一致検出信号φSを制御回路9Aに与え、また、PC11が出力する命令実行アドレスがエンドアドレスレジスタ21のエンドアドレスに一致することを検出すると、一致検出信号φEを制御回路9Aに与える。制御回路9Aは一致検出信号φSに応答して、実行命令毎に加減算回路7Aとアキュムレータ8を用いてにIR5が保有する命令コードを累積加算演算させる。この累積加算演算は一致検出信号φEが一致レベルにされたとき終了され、このとき、制御フラグがリセット状態であれば、それによって得られた累積加算値(サム値)を期待値レジスタ23に内部転送させ、その後制御フラグをセット状態に反転させて、一連の累積加算演算処理を終了する。一方、一致検出信号φEが一致レベルにされたとき、制御フラグCFLGがセット状態であれば、それによって得られた累積加算値(サム値)から期待値レジスタ23が保有する累積加算値を減算する。減算結果がゼロであるか否かがゼロフラグZFLGによって制御回路9Aに与えられる。制御回路はゼロフラグがゼロであれば後続の命令を可能とし、ゼロで無ければ其の後の本来の命令実行を停止する。
<< Embodiment 2 >>
FIG. 3 illustrates a schematic configuration of a data processor according to the second embodiment of the present invention. The difference from FIG. 1 is that the instruction execution section for performing the control is to be defined by the section of the instruction address without inserting a special instruction or extension code in the control for stopping the instruction execution for the malfunction attack. It is. In order to define the interval, a start address register 20 and an end address register 21 are provided, and their values are sequentially compared with the value of the program counter (PC) 11 by the address comparator (CMP) 22. Initial value settings for the start address register 20 and the end address register 21 are performed by, for example, internal transfer from a nonvolatile memory (not shown) at the time of power-on reset of the data processor 2A. The address section is a section that does not include a branch instruction and a branch destination instruction. The control circuit 9 has a control flag CFLG, and the control flag CFLG is initialized to a reset state after releasing the reset of the data processor 2A. When the address comparator 22 detects that the instruction execution address output from the PC 11 matches the start address of the start address register 20, the address comparator 22 provides a coincidence detection signal φS to the control circuit 9A, and the instruction execution address output from the PC 11 ends. When a match with the end address of the address register 21 is detected, a match detection signal φE is supplied to the control circuit 9A. In response to the coincidence detection signal φS, the control circuit 9A uses the adder / subtractor circuit 7A and the accumulator 8 for each execution instruction to cause the instruction code held by the IR 5 to be cumulatively added. This cumulative addition operation is terminated when the coincidence detection signal φE is set to the coincidence level. At this time, if the control flag is in the reset state, the cumulative addition value (sum value) obtained thereby is stored in the expected value register 23. Then, the control flag is inverted to the set state, and the series of cumulative addition calculation processing is completed. On the other hand, when the coincidence detection signal φE is set to the coincidence level, if the control flag CFLG is in the set state, the accumulated addition value held in the expected value register 23 is subtracted from the accumulated addition value (sum value) obtained thereby. . Whether or not the subtraction result is zero is given to the control circuit 9A by the zero flag ZFLG. If the zero flag is zero, the control circuit allows the subsequent instruction, and if it is not zero, the control circuit stops executing the subsequent original instruction.

したがってデータプロセッサ2Aは、誤動作アタックに対して命令実行を停止させる制御に特別な命令や拡張コードを挿入したりせず、その制御を行う命令実行区間を命令アドレスの区間によって規定することができる。命令コードに空きが無いような場合にも、不正アタックに対するセキュリティを高めることができる。   Therefore, the data processor 2A can define the instruction execution section for performing the control by the section of the instruction address without inserting a special instruction or an extension code in the control for stopping the instruction execution for the malfunction attack. Even when there is no vacancy in the instruction code, security against illegal attacks can be increased.

スタートアドレスとエンドアドレスのペアを複数設定する場合には当該ペア毎に比較回路22と期待値レジスタ23と制御フラグCFLGを設ければよい。   When a plurality of start address and end address pairs are set, the comparison circuit 22, the expected value register 23, and the control flag CFLG may be provided for each pair.

《実施形態3》
図4には、本発明の実施形態3に係るデータプロセッサの概略構成が例示される。同図に示されるデータプロセッサ2Bは、図3の期待値レジスタ23と制御フラグCFLGに代えてキャッシュメモリ(CACHE)30を有する。アドレスバッファはプログラムカウンタ11の値に従って命令をフェッチするときその命令アドレスをアドレスバス33に出力する。命令アドレスがエンドアドレスレジスタ21の命令アドレスに一致して信号φEがアクティブになったとき、制御部9Bは、当該命令アドレスをアドレスバッファ31からキャッシュメモリ30に供給する。これによって、キャッシュメモリ30はその命令アドレスを用いてインデックス動作を行い、インデックスされたタグアドレスを参照してキャッシュヒットか否かの判定を行い、その結果が制御部9Bに与えられる。制御部9Bは、キャッシュミスの場合、アキュムレータ8の累積加算されたサム値と当該キャッシュミスに係るキャッシュタグをアドレスをそのキャッシュエントリにフィルする。この後、再び、前記スタートアドレスからエンドアドレスまでの命令が実行された時は、一致信号φEのイネーブルに応答してキャッシュメモリ30はキャッシュヒットとされる。制御回路9Bはキャッシュヒットの場合、キャッメモリから読み出されたキャッシュヒットに係るサム値をアキュムレータ8が保持するサム値から減算させ、その結果がゼロか否かをゼロフラグZFLGを参照して判別する。ゼロであれば、以降の正規の命令実行を継続させ、ゼロで無ければ正規のプログラムの実行を停止する。図5にはキャッシュメモリのキャッシュエントリが例示される。キャッシュエントリCE0〜CEiは、アドレスタグフィールドTAG、データフィールドDAT、管理フィールドVLDを有する。アドレスタグフィールドTAGには所定の命令実行区間のエンドアドレスが格納され、データフィールドにはその命令実行区間に対応される命令コードのサム値が格納され、管理フィールドには当該キャッシュエントリの有効又は無効を示すバリッドフラグが格納される。
<< Embodiment 3 >>
FIG. 4 illustrates a schematic configuration of a data processor according to the third embodiment of the present invention. The data processor 2B shown in the figure has a cache memory (CACHE) 30 instead of the expected value register 23 and the control flag CFLG shown in FIG. The address buffer outputs the instruction address to the address bus 33 when fetching an instruction according to the value of the program counter 11. When the instruction address matches the instruction address of the end address register 21 and the signal φE becomes active, the control unit 9B supplies the instruction address from the address buffer 31 to the cache memory 30. As a result, the cache memory 30 performs an index operation using the instruction address, determines whether or not there is a cache hit with reference to the indexed tag address, and gives the result to the control unit 9B. In the case of a cache miss, the control unit 9B fills the cache entry with the address of the accumulated sum value of the accumulator 8 and the cache tag related to the cache miss. Thereafter, when an instruction from the start address to the end address is executed again, the cache memory 30 is regarded as a cache hit in response to the enable of the coincidence signal φE. In the case of a cache hit, the control circuit 9B subtracts the sum value related to the cache hit read from the cache memory from the sum value held by the accumulator 8, and determines whether or not the result is zero with reference to the zero flag ZFLG. . If it is zero, the subsequent regular instruction execution is continued, and if it is not zero, the regular program execution is stopped. FIG. 5 illustrates a cache entry of the cache memory. The cache entries CE0 to CEi have an address tag field TAG, a data field DAT, and a management field VLD. The address tag field TAG stores the end address of a predetermined instruction execution section, the data field stores the sum value of the instruction code corresponding to the instruction execution section, and the management field indicates whether the cache entry is valid or invalid. Is stored.

このように、データプロセッサ2Bでは、同一区間において先にキャッシュメモリ30に格納されていたサム値を比較対象として用いることができ、命令を実行しながら、1回目の演算によるサム値と2回目以降の演算によるサム値とを区別できる。   As described above, in the data processor 2B, the sum value previously stored in the cache memory 30 in the same section can be used as a comparison target, and the sum value obtained by the first calculation and the second and subsequent times while executing the instruction. It can be distinguished from the sum value obtained by the operation.

スタートアドレスとエンドアドレスのペアを複数設定する場合には当該ペア毎に比較回路22を設けると共に、キャッシュメモリ30はそのペアの数分だけキャッシュエントリを保有できればよい。   When a plurality of pairs of start address and end address are set, the comparison circuit 22 is provided for each pair, and the cache memory 30 only needs to have as many cache entries as the number of the pairs.

《実施形態4》
図6には、本発明の実施形態4に係るデータプロセッサの概略構成が例示される。データプロセッサ2Cは、プログラムカウンタ11が1命令実行サイクル前に保有していた命令アドレスを保有するレジスタ(PC−1)34をアドレスレジスタ20、21に代えて採用する。比較回路(CMP)35はレジスタ34が保有する命令アドレスと、プログラムカウンタ11が保有する命令アドレスとに命令の最大語長よりも大きな差があるかを判別する。例えば最大命令語長を4バイトとし、アドレスをバイトアドレスとすると、下位3ビットに5以上の差があるとき、検出信号φDをアサートする。これにより、制御部9CのイネーブルフラグEFLGがセットされ、制御部9Cは、イネーブルフラグEFLGがリセットされるまで命令実行サイクル毎に前記サム値の累積加算を行う。この後、再び検出信号φDがアサートされると、制御部9CはイネーブルフラグEFLGをリセットし、前記サム値の累積加算を終了して前記キャッシュメモリ30のインデックス動作等を制御して図4と同様に動作制御する。前記出信号φDがアサートされるのは、その条件より明らかなように、条件分岐やサブルーチン分岐、リターン命令を実行するときのように、命令実行順序が変更される区間の始点と終点において、検出信号φDがアサートされる。この区間が所定の命令実行区間とされ、上記同様に、最初にその区間の命令が実行されることによってサム値が取得され、第2回目以降で取得されるサム値が最初に取得されたサム値と一致しているときは正規のプログラム実行が継続されるが、一旦不一致になると、それ以降正規のプログラム実行が停止される。
<< Embodiment 4 >>
FIG. 6 illustrates a schematic configuration of a data processor according to the fourth embodiment of the present invention. The data processor 2C employs a register (PC-1) 34 that holds an instruction address held by the program counter 11 before one instruction execution cycle in place of the address registers 20 and 21. The comparison circuit (CMP) 35 determines whether there is a difference between the instruction address held by the register 34 and the instruction address held by the program counter 11 larger than the maximum word length of the instruction. For example, assuming that the maximum instruction word length is 4 bytes and the address is a byte address, the detection signal φD is asserted when there is a difference of 5 or more in the lower 3 bits. As a result, the enable flag EFLG of the control unit 9C is set, and the control unit 9C performs cumulative addition of the sum value every instruction execution cycle until the enable flag EFLG is reset. Thereafter, when the detection signal φD is asserted again, the control unit 9C resets the enable flag EFLG, finishes the cumulative addition of the sum value, and controls the index operation of the cache memory 30 and the like, as in FIG. Control the operation. The output signal φD is asserted at the start and end points of the section in which the instruction execution order is changed, such as when executing a conditional branch, subroutine branch, or return instruction, as is clear from the condition. Signal φD is asserted. This interval is set as a predetermined instruction execution interval. Similarly to the above, the sum value is acquired by executing the instruction of the interval first, and the sum value acquired after the second time is the first acquired sum value. When the values match, the regular program execution is continued. Once the values do not match, the regular program execution is stopped.

《実施形態5》
図7には、本発明の実施形態5に係るデータプロセッサの概略構成が例示される。データプロセッサ2Dは、図4に対して、サム値の累積加算演算を行う区間を規定するのにスタートアドレスレジスタ及びエンドアドレスレジスタを用いず、サム値の累積加算演算開始を指示する累積加算演算開始命令と、累積加算演算停止命令を用いる。それら命令はソースプログラムのコンパイル時にサブルーチン区間や、分岐による命令実行区間の先頭と終点に追加される。累積加算演算開始命令を命令デコーダ6Aでデコードした時の制御動作は、図4で説明したPC11による実行命令アドレスがスタートアドレスレジスタのアドレスに一致した場合と同じであり、累積加算演算停止命令をデコードした時の制御動作は、図4で説明したPC11による実行命令アドレスがエンドアドレスレジスタのアドレスに一致した場合と同じである。その他の構成は図4と同じであるからその詳細な説明は省略する。この実施の形態によれば、累積加算演算開始命令及び累積加算演算停止命令に割り当て空き命令コードを要するが、アドレスレジスタ及び比較回路等のハードウェアを縮小することができる。
<< Embodiment 5 >>
FIG. 7 illustrates a schematic configuration of a data processor according to the fifth embodiment of the present invention. The data processor 2D does not use the start address register and the end address register to define the interval for performing the sum addition operation of the sum value with respect to FIG. 4, but starts the accumulation addition operation instructing the start of the sum addition operation of the sum value. An instruction and a cumulative addition operation stop instruction are used. These instructions are added to the beginning and end of a subroutine section or an instruction execution section by branching when compiling the source program. The control operation when the cumulative addition calculation start instruction is decoded by the instruction decoder 6A is the same as when the execution instruction address by the PC 11 described in FIG. 4 matches the address of the start address register, and the cumulative addition calculation stop instruction is decoded. The control operation at this time is the same as when the execution instruction address by the PC 11 described in FIG. 4 matches the address of the end address register. Since other configurations are the same as those in FIG. 4, a detailed description thereof will be omitted. According to this embodiment, although an empty instruction code is required for the cumulative addition calculation start instruction and the cumulative addition calculation stop instruction, hardware such as an address register and a comparison circuit can be reduced.

以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   As mentioned above, although the invention made by this inventor was concretely demonstrated based on embodiment, it cannot be overemphasized that this invention is not limited to it and can be variously changed in the range which does not deviate from the summary.

正規の命令実行停止の形態は、命令実行それ自体を完全停止する場合に限定されない。無意味な無限ループを構成する命令実行、若しくはNOP命令を連続的に実行するプログラムフローにはいってもよい。或いは強制的にリセット処理ルーチンに入ってもよい。何れにしても正規のプログラム実行が抑制されればよい。   The form of regular instruction execution stop is not limited to the case where instruction execution itself is completely stopped. You may enter into the program flow which performs the command execution which comprises a meaningless infinite loop, or the NOP command continuously. Alternatively, the reset processing routine may be forcibly entered. In any case, it is sufficient that the regular program execution is suppressed.

さらに、上記処理は、命令を読込んで実行しながら命令の異常を検出するから、ソフトウェア的に更に別のチェック法を採用しても、データプロセッサのパフォーマンスの低下を抑制して、誤動作アタックに対するセキュリティ機能を高めることができる。   Furthermore, since the above process detects an abnormality of the instruction while reading and executing the instruction, even if another check method is adopted in terms of software, the deterioration of the performance of the data processor is suppressed, and the security against the malfunction attack. Function can be enhanced.

本発明の実施形態1に係るデータプロセッサの概略構成を例示する図である。It is a figure which illustrates schematic structure of the data processor which concerns on Embodiment 1 of this invention. 図1に示すデータプロセッサで実行される命令フローを例示するフローチャートである。2 is a flowchart illustrating an instruction flow executed by the data processor shown in FIG. 1. 本発明の実施形態2に係るデータプロセッサの概略構成を例示する図である。It is a figure which illustrates schematic structure of the data processor which concerns on Embodiment 2 of this invention. 本発明の実施形態3に係るデータプロセッサの概略構成を例示する図である。It is a figure which illustrates schematic structure of the data processor which concerns on Embodiment 3 of this invention. キャッシュメモリに含まれるキャッシュテーブルを例示する説明図である。It is explanatory drawing which illustrates the cache table contained in a cache memory. 本発明の実施形態4に係るデータプロセッサの概略構成を例示する図である。It is a figure which illustrates schematic structure of the data processor which concerns on Embodiment 4 of this invention. 本発明の実施形態5に係るデータプロセッサの概略構成を例示する図である。It is a figure which illustrates schematic structure of the data processor which concerns on Embodiment 5 of this invention.

符号の説明Explanation of symbols

2,2A〜2C データプロセッサ
3 データバス
4 データバッファレジスタ
5 命令レジスタ
6,6A 命令デコーダ
7 減算回路
7A 加減算回路
8 アキュムレータ
9,9A,9B,9C,9D 制御回路
10 内部バス
11 プログラムカウンタ
12 汎用レジスタ回路
20 スタートアドレスレジスタ
21 エンドアドレスレジスタ
22 コンパレータ
23 期待値レジスタ
25 アドレスバス
30 キャッシュメモリ
34 レジスタ
35 コンパレータ
2, 2A to 2C Data processor 3 Data bus 4 Data buffer register 5 Instruction register 6, 6A Instruction decoder 7 Subtraction circuit 7A Addition / subtraction circuit 8 Accumulator 9, 9A, 9B, 9C, 9D Control circuit 10 Internal bus 11 Program counter 12 General purpose register Circuit 20 Start address register 21 End address register 22 Comparator 23 Expected value register 25 Address bus 30 Cache memory 34 Register 35 Comparator

Claims (8)

命令を読込んで実行するデータプロセッサであって、
命令フローの所定区間毎に、前記区間に含まれる前記命令に対するサム値を演算し、
同一区間において前回の前記演算で得られたサム値と今回の前記演算で得られたサム値とが不一致であれば、前記命令の実行を停止、又は前記命令の実行順序を強制的に変更するデータプロセッサ。
A data processor that reads and executes instructions,
For each predetermined section of the instruction flow, calculate a sum value for the instruction included in the section,
If the sum value obtained by the previous operation does not match the sum value obtained by the current operation in the same section, the execution of the instructions is stopped or the execution order of the instructions is forcibly changed. Data processor.
前記区間は、レジスタに設定されたアドレスにより規定され、
前記アドレスは、前記演算を開始及び終了する命令の命令アドレスである請求項1記載のデータプロセッサ。
The section is defined by the address set in the register,
The data processor according to claim 1, wherein the address is an instruction address of an instruction that starts and ends the operation.
前記アドレスと、前記アドレスをタグとするサム値が格納されるキャッシュテーブルを含むキャッシュメモリをさらに有し、
前記キャッシュメモリは、リードアクセス要求を受けて前記キャッシュテーブルをアクセスし、前記リードアクセス要求より与えられたアドレスと、前記キャッシュテーブルに格納された前記アドレスとを比較し、一致すれば前記サム値を読み出す請求項2記載のデータプロセッサ。
A cache memory including a cache table in which the address and a sum value with the address as a tag are stored;
The cache memory accesses the cache table in response to a read access request, compares the address given by the read access request with the address stored in the cache table, and if they match, the sum value is The data processor according to claim 2, wherein the data processor reads the data processor.
今回実行した命令のアドレスと前回実行した命令のアドレスとの差分値が1つの命令の命令語長よりも大きいとき、前記演算を開始する請求項1記載のデータプロセッサ。   2. The data processor according to claim 1, wherein the operation is started when a difference value between an address of an instruction executed this time and an address of an instruction executed last time is larger than an instruction word length of one instruction. 前記区間は、前記演算の開始を指示するオペコードを含む第1命令と、前記演算の終了を指示するオペコードを含む第2命令とから規定される請求項1記載のデータプロセッサ。   2. The data processor according to claim 1, wherein the section is defined by a first instruction including an operation code instructing the start of the operation and a second instruction including an operation code instructing the end of the operation. 前記第1命令は、前記命令フローでの分岐命令、ジャンプ命令、サブルーチンコール命令のそれぞれの飛び先で実行される命令であり、
前記第2命令は、前記分岐命令、前記ジャンプ命令、サブルーチンリターン命令である請求項5記載のマイクロコンピュータ。
The first instruction is an instruction that is executed at each jump destination of a branch instruction, a jump instruction, and a subroutine call instruction in the instruction flow;
6. The microcomputer according to claim 5, wherein the second instruction is the branch instruction, the jump instruction, or a subroutine return instruction.
命令を読込んで実行するデータプロセッサであって、
命令フローの所定区間毎に、前記区間に含まれる前記命令に対するサム値を演算し、
前記区間で前記演算によって得られる前記サム値に所定値の加算を指示する命令を実行し、前記区間において前記演算で得られた前記サム値に前記所定値を加算した値が、予め設定された期待値と不一致であれば、前記命令の実行を停止、又は前記命令の実行順序を強制的に変更するデータプロセッサ。
A data processor that reads and executes instructions,
For each predetermined section of the instruction flow, calculate a sum value for the instruction included in the section,
A command for instructing addition of a predetermined value to the sum value obtained by the operation in the interval is executed, and a value obtained by adding the predetermined value to the sum value obtained by the operation in the interval is set in advance. A data processor that stops execution of the instructions or forcibly changes the execution order of the instructions if they do not match the expected value.
前記予め設定された期待値が0である請求項7記載のデータプロセッサ。   The data processor according to claim 7, wherein the preset expected value is zero.
JP2007131107A 2007-05-17 2007-05-17 Data processor Withdrawn JP2008287449A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007131107A JP2008287449A (en) 2007-05-17 2007-05-17 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007131107A JP2008287449A (en) 2007-05-17 2007-05-17 Data processor

Publications (1)

Publication Number Publication Date
JP2008287449A true JP2008287449A (en) 2008-11-27

Family

ID=40147112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007131107A Withdrawn JP2008287449A (en) 2007-05-17 2007-05-17 Data processor

Country Status (1)

Country Link
JP (1) JP2008287449A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140858B2 (en) 2008-04-10 2012-03-20 Renesas Electronics Corporation Data processing apparatus
JP2014215981A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2014215979A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2018057978A (en) * 2018-01-23 2018-04-12 株式会社ユニバーサルエンターテインメント Game machine

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140858B2 (en) 2008-04-10 2012-03-20 Renesas Electronics Corporation Data processing apparatus
US9092619B2 (en) 2008-04-10 2015-07-28 Renesas Electronics Corporation Data processing apparatus
JP2014215981A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2014215979A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2018057978A (en) * 2018-01-23 2018-04-12 株式会社ユニバーサルエンターテインメント Game machine

Similar Documents

Publication Publication Date Title
US11113384B2 (en) Stack overflow protection by monitoring addresses of a stack of multi-bit protection codes
US7757098B2 (en) Method and apparatus for verifying authenticity of initial boot code
US8327100B2 (en) Execute only access rights on a Von Neuman architectures
JP4708414B2 (en) Autonomous memory checker for runtime security assurance
US7917753B2 (en) Transferring control between programs of different security levels
US20150058979A1 (en) Processing system
TWI431526B (en) Hardware flow control monitor
US20180189496A1 (en) Hardware assisted fault injection detection
US10223117B2 (en) Execution flow protection in microcontrollers
TW202227971A (en) Processor, apparatus for protecting the processor, and method for protecting the processor
US7774587B2 (en) Dynamic redundancy checker against fault injection
JP2008287449A (en) Data processor
US7624442B2 (en) Memory security device for flexible software environment
US20090125728A1 (en) Security method of system by encoding instructions
CN111104662B (en) Method for authenticating a program and corresponding integrated circuit
EP1745340B1 (en) Intrusion detection during program execution in a computer
TW200805147A (en) Securised microprocessor with jump verification
EP4248340A1 (en) Code flow protection with error propagation
US8528081B2 (en) Memory system
JP2013114621A (en) Information processing apparatus and program verification method for information processing apparatus
US20230401313A1 (en) Processor with In-Band Fault-Injection Detection in the Presence of Exceptions
CN117093435A (en) Processor verification method and device
CN117642741A (en) Apparatus and method for pointer authentication
JP2002055725A (en) Bios chip for managing code and method for managing the same code
JP2004220296A (en) Semiconductor device and method for controlling same

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100803