JP2009288908A - Method of detecting failure attack for alterating content of memory, security device, and computer program - Google Patents

Method of detecting failure attack for alterating content of memory, security device, and computer program Download PDF

Info

Publication number
JP2009288908A
JP2009288908A JP2008138837A JP2008138837A JP2009288908A JP 2009288908 A JP2009288908 A JP 2009288908A JP 2008138837 A JP2008138837 A JP 2008138837A JP 2008138837 A JP2008138837 A JP 2008138837A JP 2009288908 A JP2009288908 A JP 2009288908A
Authority
JP
Japan
Prior art keywords
opcode
execution
security device
designated
operation code
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.)
Granted
Application number
JP2008138837A
Other languages
Japanese (ja)
Other versions
JP5200664B2 (en
Inventor
Tetsuo Jinriki
哲夫 神力
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2008138837A priority Critical patent/JP5200664B2/en
Publication of JP2009288908A publication Critical patent/JP2009288908A/en
Application granted granted Critical
Publication of JP5200664B2 publication Critical patent/JP5200664B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a security device capable of detecting that an instruction stored in a memory changes to such an instruction specified in advance in the security device (for example, NOP instruction) when an IC chip mounted on the security device is irradiated with laser beam as failure attack to the security device. <P>SOLUTION: A VM10 mounted on an IC card 1 which is a security device comprises a fetching means 100 which fetches an execution operation code from an EEPROM22, a specified operation code detecting means 101 which detects that the fetching means 100 has fetched the operation code of an instruction specified in advance in the IC card 1 (for example, operation code of NOP instruction), and an execution operation code validation means 102 which validates the validity of execution operation code when the specified operation code is fetched. The VM10 executes a process for stopping an operation of VM10 if validating the validity of the execution operation code fails. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、半導体集積回路を実装したセキュリティデバイス(例えば、ICカード)に関し、更に詳しくは、レーザー光などを用い、メモリの内容を変化させる故障攻撃に対して耐タンパー性をセキュリティデバイスに持たせるための技術に関する。   The present invention relates to a security device (for example, an IC card) mounted with a semiconductor integrated circuit. More specifically, the security device is provided with tamper resistance against a failure attack that changes the contents of a memory using a laser beam or the like. For technology.

近年、ICカードなどを代表とする機密情報を格納した組み込み機器に対するセキュリティデバイスへの攻撃が多く研究され、その成果が報告されている。セキュリティデバイスに対する攻撃方法の1つとしては、電力消費量や電磁波などのサイドチャネルを観測することで、セキュリティデバイスに格納されたDESの秘密鍵を解読するサイドチャネル攻撃が有名で、例えば、特許文献1など様々な公知文献で、サイドチャネル攻撃に対して耐タンパー性をセキュリティデバイスに持たせる技術が開示されている。   In recent years, many attacks on security devices against embedded devices storing confidential information such as IC cards have been studied and the results have been reported. As one of the attack methods against the security device, a side channel attack that decrypts the DES secret key stored in the security device by observing the side channel such as power consumption and electromagnetic waves is well known. Various known documents such as No. 1 disclose a technique for providing a security device with tamper resistance against side channel attacks.

しかし、セキュリティデバイスに対する攻撃方法は、上述したサイドチャネル攻撃に限らず、サイドチャネル攻撃以外の攻撃としては、セキュリティデバイスに実装された半導体集積回路(ICチップ)にレーザー光を照射し、メモリの内容を変化させ、故意的に誤動作を誘発させ、ICチップの誤動作を足掛かりとして、DESの秘密鍵を解読する故障攻撃(Fault Analysis)がある。   However, the attack method for the security device is not limited to the above-mentioned side channel attack, and as an attack other than the side channel attack, the semiconductor integrated circuit (IC chip) mounted on the security device is irradiated with laser light, and the contents of the memory There is a failure analysis (Fault Analysis) that decrypts the DES secret key by deliberately inducing a malfunction and using the malfunction of the IC chip as a starting point.

サイドチャネル攻撃の対策手法が、レーザー光などを利用した故障攻撃に対しても有効であればよいが、攻撃手法が異なるため、サイドチャネル攻撃の対策手法は、レーザー光を用いた故障攻撃に対して有効ではない。   Although it is sufficient that the side channel attack countermeasure method is effective against failure attacks using laser light, etc., since the attack method is different, the side channel attack countermeasure method is against laser beam failure attacks. Is not effective.

故障攻撃によるICチップの誤動作を検知する手法として、特許文献2などに記述されているようなウォッチドッグタイマと呼ばれる手法を用いることも考えられる。確かに、レーザー光がセキュリティデバイスに照射されて、プログラムコードが格納されている箇所のメモリの内容が変化した場合は、セキュリティデバイスのICチップが暴走するため、ウォッチドックタイマによって暴走を検知できる可能性はある。   As a technique for detecting a malfunction of an IC chip due to a failure attack, a technique called a watch dog timer as described in Patent Document 2 may be used. Certainly, when the security device is irradiated with laser light and the contents of the memory where the program code is stored change, the IC chip of the security device runs away, so the runaway can be detected by the watchdog timer. There is sex.

しかし、ICチップが暴走は、ICチップに記憶された秘密情報を解読する足掛かりになり得るし、更に、レーザー光の照射などの故障攻撃をメモリが受けたときに、メモリが変化する内容によっては、ICチップは暴走せずに誤動作してしまうケースがある。このようなケースでは、ウォッチドックタイマによってこの誤動作を検知できない。例えば、メモリに記憶された命令が、レーザー光の照射などによって、ICチップのCPUに何の動作も実行させないNOP命令に変化した場合、ICチップは暴走せずに誤動作してしまう可能性が高い。   However, the runaway of the IC chip can be a starting point for decrypting the secret information stored in the IC chip. Furthermore, depending on the contents of the memory when the memory is subjected to a failure attack such as laser light irradiation. In some cases, the IC chip malfunctions without running away. In such a case, this malfunction cannot be detected by the watchdog timer. For example, when an instruction stored in the memory changes to a NOP instruction that causes the CPU of the IC chip to perform no operation due to laser light irradiation or the like, the IC chip is likely to malfunction without running away. .

特開2002−74245号公報JP 2002-74245 A 特開平5−224999号公報JP-A-5-224999

そこで、本発明は、ICカードに代表されるセキュリティデバイスに対し、レーザー光などを利用した故障攻撃が行われ、メモリに格納されたオペコードが、前記セキュリティデバイスに予め指定されている命令(例えば、NOP命令)のオペコードに変化したことを検知できる方法、この方法を実行するためにセキュリティデバイスに組み込まれるコンピュータプログラム、及び、このコンピュータプログラムが実装されたセキュリティデバイスを提供することを目的とする。   Therefore, the present invention performs a failure attack using a laser beam or the like on a security device typified by an IC card, and an operation code stored in a memory is a command (for example, specified in advance in the security device). It is an object of the present invention to provide a method capable of detecting a change to an operation code of a NOP instruction), a computer program incorporated in a security device to execute the method, and a security device in which the computer program is mounted.

更に、第1の発明は、メモリの内容を改竄する故障攻撃を検知する方法であって、セキュリティデバイスに実装されたバーチャルマシンが、前記セキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするステップa、前記バーチャルマシンが、前記ステップaでフェッチした前記実行オペコードと、前記バーチャルマシンに予め指定されている命令のオペコード(指定オペコード)が一致するか確認することで、前記指定オペコードをフェッチしたことを検出する処理を実行するステップb、前記バーチャルマシンが、前記ステップbにおいて、前記指定オペコードをフェッチしたことを検出したとき、前記実行オペコードの正当性を検証する処理を実行するステップc、前記バーチャルマシンが、前記ステップcで前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するステップd、を含むことを特徴とする。   Furthermore, the first invention is a method for detecting a failure attack that alters the contents of a memory, and a command executed by a virtual machine mounted on a security device from a byte code stored in the memory of the security device. The operation code fetched in step a, and the virtual machine confirms whether the execution opcode fetched in step a matches the operation code (designated opcode) of the instruction specified in advance in the virtual machine. Step b for executing the process of detecting that the designated opcode is fetched, and verifying the validity of the execution opcode when the virtual machine detects that the designated opcode is fetched in step b. Step c for executing the processing to Serial virtual machine, wherein when the validation fails the validity of the execution opcode in step c, characterized in that it comprises a step d, to execute a process to deal with the fault attack.

第1の発明によれば、レーザー光などを用い、故障攻撃を受けてメモリの内容が改竄されたときに、メモリの内容が変換され易い値と同じ値であるオペコードや、誤変換されて実行されるとセキュリティ的に問題が発生する可能性のあるオペコードに前記指定オペコードを指定し、前記バーチャルマシンが、前記実行オペコードが前記指定オペコードであって、かつ、前記実行オペコードの正当性の検証に失敗したときに、故障攻撃に対処する処理として、前記バーチャルマシンの動作を停止する処理などを実行することで、メモリの内容を改竄する故障攻撃によって前記セキュリティデバイスが誤動作するリスクを軽減することができる。   According to the first invention, when the contents of the memory are tampered with using a laser beam or the like and the contents of the memory are tampered with, the operation code having the same value as the value that is easily converted is executed. The designated operation code is specified as an operation code that may cause a security problem, and the virtual machine is used to verify the validity of the execution operation code when the execution operation code is the specified operation code. When a failure occurs, a process for stopping the operation of the virtual machine is executed as a process for dealing with a failure attack, thereby reducing the risk that the security device malfunctions due to a failure attack that alters the contents of the memory. it can.

特に、前記バーチャルマシンのバイトコードで用意されているNOP命令(NOP: No Operation)は、前記セキュリティデバイスのCPUに何の動作も実行させない命令で、故障攻撃によって、NOP命令以外の命令のオペコードがNOP命令のオペコードに変換され、CPUが何の処理も実行しないと、前記セキュリティデバイスに記憶された機密情報(例えば、暗号鍵)を解読する際の足掛かりに利用され易いため、前記指定オペコードはNOP命令のオペコードとすることが好適である。例えば、分岐命令がNOP命令に変換されてしまうと、ユーザ認証処理(例えば、PIN照合処理)が実行されずに、前記セキュリティデバイスに記憶された機密情報が解読、或いは、前記セキュリティデバイスが悪用されてしまう。   In particular, the NOP instruction (NOP: No Operation) prepared by the byte code of the virtual machine is an instruction that does not cause the CPU of the security device to execute any operation. If the operation code is converted into a NOP instruction opcode and the CPU does not execute any processing, it is easily used as a starting point when decrypting confidential information (for example, an encryption key) stored in the security device. It is preferable to use an instruction opcode. For example, if a branch instruction is converted into a NOP instruction, confidential information stored in the security device is decrypted or the security device is abused without executing user authentication processing (for example, PIN verification processing). End up.

第1の発明のステップcにおいて実行される処理、すなわち、前記実行オペコードの正当性を検証する処理は、前記実行オペコードの正当性できれば任意の処理であってよい。例えば、前記ステップcにおいて、前記実行オペコードと同一のメモリアドレスから、再度、オペコードを読み出し、前記ステップaでフェッチした前記実行オペコードと、前記ステップcで読み出したオペコードが一致するか確認することで、前記実行オペコードの正当性を検証することができる。   The process executed in step c of the first invention, that is, the process for verifying the validity of the execution opcode may be any process as long as the execution opcode can be validated. For example, in the step c, the operation code is read again from the same memory address as the execution opcode, and by confirming whether the execution opcode fetched in the step a matches the operation code read in the step c, The validity of the execution opcode can be verified.

また、前記実行オペコードの正当性を検証する他の手法としては、前記指定オペコードをバイトコードに記述する際に、予め、前記指定オペコードの正当性を検証するため検証用コード(例えば、エラー検出コード)を前記バイトコードに含ませておき、前記ステップcにおいて、この検出用コードを用いて、前記実行オペコードの正当性を検証してもよい。   Further, as another method for verifying the validity of the execution opcode, a verification code (for example, an error detection code) is used to verify the validity of the specified opcode in advance when the specified opcode is described in a byte code. ) May be included in the byte code, and in step c, the validity of the execution opcode may be verified using the detection code.

なお、本発明において、前記セキュリティデバイスとは、図外のターミナルとデータ通信する機能と、ターミナルから送信されたコマンドを実行する機能を備え、その内部に秘密情報(例えば、暗号鍵)を記憶したデバイスを意味し、具体的には、ICカードやUSBキーなどのデバイスである。   In the present invention, the security device has a function for data communication with a terminal (not shown) and a function for executing a command transmitted from the terminal, and stores secret information (for example, an encryption key) therein. A device means a device such as an IC card or a USB key.

更に、第2の発明は、第1の発明に係わる方法が適用され、ICチップが実装されたセキュリティデバイスであって、前記セキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするフェッチ手段と、前記フェッチ手段がフェッチした前記実行オペコードと、前記セキュリティデバイスに予め指定されている命令のオペコード(指定オペコード)とが一致するか確認することで、前記指定オペコードをフェッチしたことを検出する処理を実行する指定オペコード検出手段、前記実行オペコードが前記指定オペコードであるとき、前記実行オペコードの正当性を検証する処理を実行する実行オペコード検証手段を備え、フェッチした前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するバーチャルマシンが前記ICチップに実装されていることを特徴とする。   Further, the second invention is a security device to which the method according to the first invention is applied and an IC chip is mounted, and an operation code (instruction code) to be executed from the bytecode stored in the memory of the security device. A fetch unit that fetches an execution opcode), and the execution opcode fetched by the fetch unit matches the operation code (designated opcode) of an instruction preliminarily designated in the security device, thereby specifying the designated opcode A designated opcode detecting means for executing a process for detecting that the fetched operation code has been fetched, and an execution opcode verifying means for executing a process for verifying the validity of the execution opcode when the execution opcode is the designated opcode. Failed to verify the validity of the execution opcode When, wherein the virtual machine running the process to deal with the fault attack is mounted on the IC chip.

第2の発明において、前記セキュリティデバイスの前記バーチャルマシンに備えられた前記実行オペコード検証手段としては、前記実行オペコードと同一のメモリアドレスから、再度、オペコードを読み出し、前記実行オペコードと、読み出したオペコードが一致するか確認することで、前記実行オペコードの正当性を検証する手段や、前記指定オペコードが前記バイトコードに含まれている際に、前記指定オペコードの正当性を検証するため検証用コード(例えば,エラー検出コード)をも前記バイトコードに含ませておき、この前記検出用コードを用いて、前記実行オペコードの正当性を検証する手段を利用できる。   In the second invention, as the execution opcode verification means provided in the virtual machine of the security device, the operation code is read again from the same memory address as the execution opcode, and the execution opcode and the read opcode are A means for verifying the correctness of the execution opcode by confirming whether they match, or a verification code (for example, for verifying the correctness of the specified opcode when the specified opcode is included in the bytecode) , Error detection code) can also be included in the byte code, and a means for verifying the validity of the execution opcode using the detection code can be used.

なお、第2の発明においても、第1の発明と同様に、前記指定オペコードをNOP命令とすることが好適である。   In the second invention as well, as in the first invention, it is preferable that the designated opcode is a NOP instruction.

更に、第3の発明は、第1の発明に係わる方法をセキュリティデバイスに実行させるためのコンピュータプログラムで、セキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするステップa、前記実行オペコーが、前記セキュリティデバイスに予め指定されている命令のオペコード(指定オペコード)と一致するか確認することで、前記指定オペコードをフェッチしたことを検出する処理を実行するステップb、前記ステップbにおいて、前記指定オペコードをフェッチしたことを検出したとき、前記実行オペコードの正当性を検証する処理を実行するステップc、前記ステップcで前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するステップdを、前記セキュリティデバイスに実行させるためのコンピュータプログラムである。   Further, a third invention is a computer program for causing a security device to execute the method according to the first invention, and fetches an operation code (execution operation code) of an instruction to be executed from a bytecode stored in a memory of the security device. A step of executing a process of detecting that the designated opcode is fetched by confirming whether or not the execution opcode matches an opcode (designated opcode) of an instruction designated in advance in the security device. When it is detected in step b that the designated opcode is fetched, step c is executed to verify the validity of the execution opcode, and when the validity of the execution opcode is failed in step c , Execute processing to deal with failure attacks The-up d, is a computer program to be executed by the security device.

なお、第3の発明においても、第1の発明と同様に、前記指定オペコードをNOP命令とすることが好適である。   In the third invention as well, as in the first invention, it is preferable that the designated opcode is a NOP instruction.

このように、上述した本発明によれば、ICカードに代表されるセキュリティデバイスに対し、レーザー光などを利用した故障攻撃が行われ、メモリに格納されたオペコードが、前記セキュリティデバイスに予め指定されている命令(例えば、NOP命令)のオペコードに変化したことを検知できる方法、この方法を実行するためにセキュリティデバイスに組み込まれるコンピュータプログラム、及び、このコンピュータプログラムが実装されたセキュリティデバイスを提供できる。   As described above, according to the present invention described above, a failure attack using a laser beam or the like is performed on a security device represented by an IC card, and an operation code stored in a memory is designated in advance in the security device. It is possible to provide a method capable of detecting a change to an operation code of a certain instruction (for example, a NOP instruction), a computer program incorporated in a security device to execute the method, and a security device in which the computer program is implemented.

ここから、セキュリティデバイスをICカード1としたときの実施形態について、図を参照しながら詳細に説明する。図1は、本実施形態に係わるICカード1の外観図、図2は、ICカード1に実装されるICチップ2の回路ブロック図、図3は、ICカード1のソフトウェアブロック図である。   From here, an embodiment when the security device is the IC card 1 will be described in detail with reference to the drawings. FIG. 1 is an external view of an IC card 1 according to the present embodiment, FIG. 2 is a circuit block diagram of an IC chip 2 mounted on the IC card 1, and FIG. 3 is a software block diagram of the IC card 1.

図1に示したICカード1は、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードで、ICカード1には、ICチップ2がモールドされたICモジュール2aが実装されている。   The IC card 1 shown in FIG. 1 is a plastic card having the same size as a cash card or credit card, and an IC module 2a in which an IC chip 2 is molded is mounted on the IC card 1.

図1においては、ICカード1を接触ICカードとして図示しているが、ICカード1は、図外のターミナルと無線通信する非接触ICカード、または、接触通信と無線通信の2つの通信機能を備えたデュアルインターフェースICカードであってもよい。   In FIG. 1, the IC card 1 is illustrated as a contact IC card. However, the IC card 1 has a non-contact IC card for wireless communication with a terminal outside the figure, or two communication functions of contact communication and wireless communication. It may be a dual interface IC card provided.

加えて、ICカード1の形状は問わず、ICカード1はキャッシュカードと同じ形状でなく、ICモジュール2aの近辺を短冊状に切り取った形状をしているSIM(Subscriber Identity Module)或いはUIM(Universal Subscriber Identity Module)であってもよい。   In addition, the shape of the IC card 1 is not limited, and the IC card 1 is not the same shape as the cash card, but is a SIM (Subscriber Identity Module) or UIM (Universal) that is formed by cutting the vicinity of the IC module 2a into a strip shape. Subscriber Identity Module).

図2に図示したように、ICチップ2には、演算機能およびICチップ2の回路やメモリを制御する機能を備えた中央演算装置20(CPU:Central Processing Unit)、高速読み取り可能なメモリであるキャッシュ26(Cache)、揮発性メモリとしてランダムアクセスメモリ21(RAM:Random Access Memory)、読み出し専用の不揮発性メモリ23(ROM:Read Only Memory、)、電気的に書換え可能な不揮発性メモリとしてEEPROM22(EEPROM:Electrically Erasable Programmable Read-Only Memoryの略)、および、I/O回路25を制御し、図外のターミナルと所定の伝送プログラムで通信(例えば、ISO/IEC7816に準じた通信)するためのUART24を備えている。   As shown in FIG. 2, the IC chip 2 includes a central processing unit 20 (CPU: Central Processing Unit) having a calculation function and a function of controlling the circuit and memory of the IC chip 2, and a memory capable of high-speed reading. Cache 26 (Cache), random access memory 21 (RAM: Random Access Memory) as volatile memory, read-only nonvolatile memory 23 (ROM: Read Only Memory), EEPROM 22 (electrically rewritable nonvolatile memory) EEPROM: Electrically Erasable Programmable Read-Only Memory), and UART 24 for controlling the I / O circuit 25 and communicating with a terminal (not shown) using a predetermined transmission program (for example, communication conforming to ISO / IEC7816). It has.

ICチップ2のROM23およびEEPROM22は、ICチップ2を動作させるコンピュータプログラムやデータを記憶するメモリで、RAM21やキャッシュ26は、CPU20がコンピュータプログラムを実行するときに利用するデータを一時的に記憶するメモリである。   The ROM 23 and the EEPROM 22 of the IC chip 2 are memories for storing computer programs and data for operating the IC chip 2, and the RAM 21 and the cache 26 are memories for temporarily storing data used when the CPU 20 executes the computer programs. It is.

ICチップ2のROM23には、コンピュータプログラムとして、ICチップ2のCPU20の命令コードを解釈し、CPU20に所定の処理を実行させるカードオペレーティングシステム12(COS: Card Operating System)と、Java Card(登録商標)やMULTOS(登録商標)のバーチャルマシン10(VM: Virtual Machine)が実装され、VM10はCOS12上に構築されている。   The ROM 23 of the IC chip 2 interprets an instruction code of the CPU 20 of the IC chip 2 as a computer program, and causes the CPU 20 to execute predetermined processing, and a Java Card (registered trademark). ) And a MULTIS (registered trademark) virtual machine 10 (VM: Virtual Machine) are mounted, and the VM 10 is constructed on the COS 12.

ICチップ2のEEPROM22には、ICチップ2のROM23に構築されるJava Card(登録商標)の実行環境で動作するアプリケーション11が実装される。このアプリケーション11は、ROM23に実装されるVM10に対応したバイトコードで記述され、例えば、ROM23に実装されるVM10がJAVA Card(登録商標)のVM10ならば、EEPROM22に実装されるアプリケーション11は、JAVA Card(登録商標)のバイトコードで記述されたアプレット(Applet)になる。   The EEPROM 22 of the IC chip 2 is mounted with an application 11 that operates in the execution environment of Java Card (registered trademark) built in the ROM 23 of the IC chip 2. The application 11 is described in byte codes corresponding to the VM 10 mounted on the ROM 23. For example, if the VM 10 mounted on the ROM 23 is a JAVA Card (registered trademark) VM 10, the application 11 mounted on the EEPROM 22 is It becomes an applet (Applet) written in Card (registered trademark) byte code.

VM10が、EEPROM22に実装されたアプリケーション11の処理を実行するとき、VM10は、アプリケーション11のバイトコードから、1バイトのバイナリ形式で記述され、実行する命令のオペコード(opcode)をフェッチする。   When the VM 10 executes the process of the application 11 mounted on the EEPROM 22, the VM 10 is described in a 1-byte binary format from the byte code of the application 11, and fetches an opcode of an instruction to be executed.

また、オペランド(operand)を伴うオペコードの場合は、オペコードに引き続き記述されているオペランドをフェッチする。そして、VM10は、フェッチしたオペレーションコード(オペランドがある場合はオペランドも)を、COS12に対応したネイティブコードに変換し、COS12はVM10から受け渡されたネイティブコードを実行する。   In the case of an operation code accompanied by an operand, an operand described in the operation code is fetched. Then, the VM 10 converts the fetched operation code (when there is an operand, the operand) into a native code corresponding to the COS 12, and the COS 12 executes the native code delivered from the VM 10.

レーザー光の照射など、メモリの内容を改竄する故障攻撃をICカード1が受けなければ、上述した手順でICカード1は正常に動作するが、ICカード1が動作している時に、レーザー光がICチップ2に照射されると、例えば、EEPROM22の内容が改竄されてしまい、VM10は、フェッチしたオペコードが正しいオペコードでなくなるため、ICカード1が誤動作してしまう可能性がある。   If the IC card 1 does not receive a failure attack that alters the contents of the memory, such as laser light irradiation, the IC card 1 operates normally according to the procedure described above, but when the IC card 1 is operating, When the IC chip 2 is irradiated, for example, the contents of the EEPROM 22 are falsified, and the VM 10 may cause the IC card 1 to malfunction because the fetched opcode is not a correct one.

特に、VM10に対応したバイトコードの命令には、NOP命令(NOP: No Operation)と呼ばれ、CPU20に何の処理も実行させない命令が一般的に用意されているため、レーザー光の照射などによって、NOP命令以外のオペコードが、NOP命令のオペコードに変化した場合、本来実行しなければならない命令が実行されないため、暗号鍵などを解読する故障攻撃の足掛かりにされ易い。   In particular, a byte code instruction corresponding to the VM 10 is called a NOP instruction (NOP: No Operation), and an instruction that does not cause the CPU 20 to execute any processing is generally prepared. When the operation code other than the NOP instruction is changed to the operation code of the NOP instruction, the instruction that should be executed is not executed.

例えば、分岐命令がNOP命令に変換されてしまうと、ユーザ認証処理(例えば、PIN照合処理)が実行されずに、前記セキュリティデバイスに記憶された機密情報が解読、或いは、前記セキュリティデバイスが悪用されてしまう。   For example, if a branch instruction is converted into a NOP instruction, confidential information stored in the security device is decrypted or the security device is abused without executing user authentication processing (for example, PIN verification processing). End up.

そこで、本発明に係わるICカード1に実装されるVM10には、実行する命令のオペコード(以下、「実行オペコード」と記す。)が、ICカード1に予め指定されている命令(例えば、NOP命令)のオペコード(以下、「指定オペコード」と記す。)であるか確認することで、指定オペコードをフェッチしたことを検出する機能と、指定オペコードをフェッチした時に、実行オペコードの正当性を検証する機能が備えられている。   Therefore, in the VM 10 mounted on the IC card 1 according to the present invention, an operation code of an instruction to be executed (hereinafter referred to as “execution operation code”) is an instruction (for example, a NOP instruction) designated in advance in the IC card 1. ) Operation code (hereinafter referred to as “designated opcode”), a function that detects that the specified opcode is fetched, and a function that verifies the validity of the execution opcode when the specified opcode is fetched Is provided.

図4は、ICカード1の機能ブロック図で、図5は、ICカード1に実装されたVM10の動作手順を示したフロー図である。   FIG. 4 is a functional block diagram of the IC card 1, and FIG. 5 is a flowchart showing an operation procedure of the VM 10 mounted on the IC card 1.

図4に図示したように、ICカード1にはVM10と少なくとも一つのアプリケーションが実装され、VM10には、EEPROM22から実行オペコードをフェッチするフェッチ手段100と、フェッチ手段100が指定オペコードをフェッチしたことを検出する指定オペコード検出手段101と、指定オペコードをフェッチした時に、実行オペコードの正当性を検証する実行オペコード検証手段102が備えられている。   As shown in FIG. 4, the VM 10 and at least one application are mounted on the IC card 1. The VM 10 fetches the execution opcode from the EEPROM 22, and the fetch means 100 fetches the specified opcode. A designated opcode detection unit 101 to detect and an execution opcode verification unit 102 to verify the validity of the execution opcode when the designated opcode is fetched are provided.

なお、図4で図示した各手段は、ICカード1のICチップ2を各手段として機能させるためのコンピュータプログラムで実現され、このコンピュータプログラムは、VM10の本体、或いは、VM10を利用するためのライブラリの集まりであるフレームワークに組み込まれる。   4 is realized by a computer program for causing the IC chip 2 of the IC card 1 to function as each means. This computer program is a main body of the VM 10 or a library for using the VM 10. Embedded in a framework that is a collection of

ここから、図5で図示したフローを用いながら、ICカード1のVM10に備えられた各手段について説明する。VM10が、EEPROM22に実装されたアプリケーションの処理を実行するとき、VM10のフェッチ手段100は、EEPROM22に記憶されたアプリケーションのバイトコードから実行オペコードを読み出し、実行オペコードをCPU20のレジスタに格納することで、1バイトの実行オペコードをフェッチする(S1)。   From here, each means with which VM10 of IC card 1 was equipped is demonstrated using the flow illustrated in FIG. When the VM 10 executes the processing of the application mounted on the EEPROM 22, the fetch unit 100 of the VM 10 reads the execution opcode from the bytecode of the application stored in the EEPROM 22 and stores the execution opcode in the register of the CPU 20. A 1-byte execution opcode is fetched (S1).

VM10のフェッチ手段が、1バイトの実行オペコードをフェッチすると、VM10の指定オペコード検出手段101が作動し、VM10の指定オペコード検出手段101は、CPU20のレジスタにフェッチした実行オペコードと指定オペコードを比較演算するなどして、指定オペコードをフェッチしたか否かを確認する(S2)。   When the fetch means of the VM 10 fetches a 1-byte execution opcode, the designated opcode detection means 101 of the VM 10 operates, and the designated opcode detection means 101 of the VM 10 compares the execution opcode fetched into the register of the CPU 20 with the designated opcode. Thus, it is confirmed whether or not the designated operation code has been fetched (S2).

VM10の指定オペコード検出手段101は、フェッチ手段100がフェッチしたオペコードが指定オペコードでなければ、フェッチ手段100がフェッチした実行オペコードに対応する命令を実行する処理を継続し(S3)、フェッチした実行オペコードが指定オペコードであれば、VM10の実行オペコード検証手段102を呼び出し、S1でフェッチした実行オペコードの正当性を検証する(S2_1)。   If the operation code fetched by the fetch unit 100 is not the specified operation code, the designated opcode detection unit 101 of the VM 10 continues the process of executing the instruction corresponding to the execution opcode fetched by the fetch unit 100 (S3), and the fetched execution opcode Is the designated opcode, the execution opcode verification means 102 of the VM 10 is called to verify the validity of the execution opcode fetched in S1 (S2_1).

実行オペコード検証手段102が、フェッチした実行オペコードの正当性する手法は任意でよい。例えば、フェッチ手段100が実行オペコードをフェッチしたEEPROM22の同じアドレスから、再度、オペコードを読み出し、読み出したオペコードとS1でフェッチした実行オペコードとが一致することを確認するための演算を行い、それぞれのオペコードが一致することを確認することで、フェッチした実行オペコードの正当性を検証することができる。   The execution opcode verification means 102 may use any method for validating the fetched execution opcode. For example, the fetch means 100 reads the operation code again from the same address of the EEPROM 22 from which the execution opcode is fetched, performs an operation to confirm that the read opcode and the execution opcode fetched in S1 match, and each opcode By confirming that they match, the validity of the fetched operation opcode can be verified.

また、アプリケーションのバイトコードに指定オペコードを含ませるときは、指定オペコードの正当性を検証するために利用するEDC(EDC: Error Detection Code)を、指定オペコードの近傍に記述されているバイトコードから算出し、アプリケーションのバイトコードにこのEDCを含ませておき、実行オペコード検証手段102は、フェッチした実行オペコードの正当性を、このEDCを利用して検証することもできる。   When the specified opcode is included in the application bytecode, the EDC (EDC: Error Detection Code) used to verify the validity of the specified opcode is calculated from the bytecode written near the specified opcode. Then, the EDC is included in the byte code of the application, and the execution opcode verification unit 102 can verify the validity of the fetched execution opcode by using the EDC.

実行オペコード検証手段102は、フェッチした実行オペコードの正当性の検証に成功すると、S3に進み、フェッチした実行オペコードに対応する命令を実行する処理を継続する。   When the execution opcode verification means 102 succeeds in verifying the validity of the fetched execution opcode, the execution opcode verification means 102 proceeds to S3 and continues the process of executing the instruction corresponding to the fetched execution opcode.

また、実行オペコード検証手段102は、フェッチした実行オペコードの正当性の検証に失敗すると、メモリの内容を改竄する故障攻撃をICカード1が受けたと判断し、S2−2に進み、VM10は、メモリの内容を改竄する故障攻撃をICカード1が受けた時に実行するエラー処理(例えば、VM10の動作を停止する処理)を実行する。   Further, if the validity of the fetched execution opcode fails, the execution opcode verification means 102 determines that the IC card 1 has received a failure attack that falsifies the contents of the memory, and proceeds to S2-2. The VM 10 An error process (for example, a process for stopping the operation of the VM 10) is executed when the IC card 1 receives a failure attack that alters the contents of.

なお、本発明は、これまで説明した実施の形態に限定されることなく、種々の変形や変更が可能である。例えば、本実施形態では、セキュリティデバイスをICカードとしているが、ICカード以外のセキュリティデバイス(例えば、USBキー)にも本発明を適用できる。また、本実施形態では、指定された命令はNOP命令以外の命令であっても構わない。   The present invention is not limited to the embodiments described so far, and various modifications and changes can be made. For example, in this embodiment, the security device is an IC card, but the present invention can also be applied to a security device other than the IC card (for example, a USB key). In the present embodiment, the designated instruction may be an instruction other than the NOP instruction.

更に、ICカードに実装されるICチップの構成は、図2で図示した構成に限定されることはなく、例えば、キャッシュが備えられていないICチップであっても構わない。   Furthermore, the configuration of the IC chip mounted on the IC card is not limited to the configuration illustrated in FIG. 2, and may be, for example, an IC chip without a cache.

本実施形態に係わるICカードの外観図。1 is an external view of an IC card according to the present embodiment. ICカードに実装されるICチップの回路ブロック図。The circuit block diagram of the IC chip mounted in an IC card. ICカードのソフトウェアブロック図。The software block diagram of an IC card. ICカードの機能ブロック図。The functional block diagram of an IC card. ICカードに実装されたVMの動作手順を示したフロー図。The flowchart which showed the operation | movement procedure of VM mounted in the IC card.

符号の説明Explanation of symbols

1 ICカード
10 バーチャルマシン(VM)
100 フェッチ手段
101 指定オペコード検出手段
102 実行オペコード検証手段
11 アプリケーション
2 ICチップ
20 CPU
22 EEPROM
23 ROM
1 IC card 10 Virtual machine (VM)
100 fetch means 101 designated opcode detection means 102 execution opcode verification means 11 application 2 IC chip 20 CPU
22 EEPROM
23 ROM

Claims (6)

メモリの内容を改竄する故障攻撃を検知する方法であって、セキュリティデバイスに実装されたバーチャルマシンが、前記セキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするステップa、
前記バーチャルマシンが、前記ステップaでフェッチした前記実行オペコードと、前記バーチャルマシンに予め指定されている命令のオペコード(指定オペコード)が一致するか確認し、前記指定オペコードをフェッチしたことを検出する処理を実行するステップb、
前記バーチャルマシンが、前記ステップbにおいて、前記指定オペコードをフェッチしたことを検出したとき、前記実行オペコードの正当性を検証する処理を実行するステップc、
前記バーチャルマシンが、前記ステップcで前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するステップd、
を含むことを特徴とする故障攻撃の検知方法。
A method for detecting a failure attack that alters the contents of a memory, wherein a virtual machine installed in a security device fetches an operation code (execution operation code) of an instruction to be executed from a bytecode stored in the memory of the security device Step a,
A process in which the virtual machine confirms whether the execution opcode fetched in the step a matches an opcode (designated opcode) of an instruction designated in advance in the virtual machine, and detects that the designated opcode has been fetched Performing step b,
A step c for executing a process of verifying the validity of the execution opcode when the virtual machine detects that the designated opcode is fetched in the step b;
When the virtual machine fails to verify the validity of the execution opcode in the step c, the step d executes a process for dealing with a failure attack;
A failure attack detection method comprising:
請求項1に記載の故障攻撃の検知方法において、前記指定オペコードをNOP命令(NOP: No Operation)のオペコードことを特徴とする故障攻撃の検知方法。   The failure attack detection method according to claim 1, wherein the specified operation code is an operation code of a NOP instruction (NOP: No Operation). ICチップが実装されたセキュリティデバイスであって、
前記セキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするフェッチ手段と、
前記フェッチ手段がフェッチした前記実行オペコードと、前記バーチャルマシンに予め指定されている命令のオペコード(指定オペコード)が一致するか確認し、前記指定オペコードをフェッチしたことを検出する処理を実行する指定オペコード検出手段と、
前記実行オペコードが前記指定オペコードであるとき、前記実行オペコードの正当性を検証する処理を実行する実行オペコード検証手段を、備え、
フェッチした前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するバーチャルマシンが前記ICチップに実装されていることを特徴とするセキュリティデバイス。
A security device on which an IC chip is mounted,
Fetch means for fetching an opcode of an instruction to be executed (execution opcode) from the bytecode stored in the memory of the security device;
A designated opcode that executes processing for confirming whether the execution opcode fetched by the fetch means matches an opcode (designated opcode) of an instruction designated in advance in the virtual machine, and detecting that the designated opcode has been fetched. Detection means;
When the execution opcode is the designated opcode, an execution opcode verification means for executing processing for verifying the validity of the execution opcode is provided,
A security device, wherein a virtual machine that executes processing to cope with a failure attack when verification of the validity of the fetched operation opcode fails is mounted on the IC chip.
請求項3に記載のICチップが実装されたセキュリティデバイスであって、前記指定オペコードをNOP命令(NOP: No Operation)のオペコードであることを特徴とするセキュリティデバイス。   4. A security device on which the IC chip according to claim 3 is mounted, wherein the designated operation code is an operation code of a NOP instruction (NOP: No Operation). ICチップが実装されたセキュリティデバイスのメモリに記憶されたバイトコードから、実行する命令のオペコード(実行オペコード)をフェッチするステップa、
前記実行オペコードと、前記セキュリティデバイスに予め指定されている命令のオペコード(指定オペコード)が一致するか確認し、前記指定オペコードをフェッチしたことを検出する処理を実行するステップb、
前記ステップbにおいて、前記指定オペコードをフェッチしたことを検出したとき、前記実行オペコードの正当性を検証する処理を実行するステップc、
前記ステップcで前記実行オペコードの正当性の検証に失敗した時、故障攻撃に対処する処理を実行するステップdを、
前記セキュリティデバイスに実行させるためのコンピュータプログラム。
A step of fetching an operation code (execution operation code) of an instruction to be executed from a byte code stored in a memory of a security device mounted with an IC chip;
A step of confirming whether the execution opcode and an opcode (designated opcode) of an instruction designated in advance in the security device match, and executing a process of detecting that the designated opcode is fetched; b
A step c for executing a process of verifying the validity of the execution opcode when it is detected in step b that the designated opcode is fetched;
When the verification of the validity of the execution opcode fails in the step c, a step d for executing a process for dealing with a failure attack is performed.
A computer program for causing the security device to execute.
請求項5に記載のコンピュータプログラムであって、前記指定オペコードをNOP命令(NOP: No Operation)のオペコードであることを特徴とするコンピュータプログラム。
6. The computer program according to claim 5, wherein the designated operation code is an operation code of a NOP instruction (NOP: No Operation).
JP2008138837A 2008-05-28 2008-05-28 Fault attack detection method, security device, and computer program for falsifying memory contents Active JP5200664B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008138837A JP5200664B2 (en) 2008-05-28 2008-05-28 Fault attack detection method, security device, and computer program for falsifying memory contents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008138837A JP5200664B2 (en) 2008-05-28 2008-05-28 Fault attack detection method, security device, and computer program for falsifying memory contents

Publications (2)

Publication Number Publication Date
JP2009288908A true JP2009288908A (en) 2009-12-10
JP5200664B2 JP5200664B2 (en) 2013-06-05

Family

ID=41458085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008138837A Active JP5200664B2 (en) 2008-05-28 2008-05-28 Fault attack detection method, security device, and computer program for falsifying memory contents

Country Status (1)

Country Link
JP (1) JP5200664B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011181049A (en) * 2010-03-04 2011-09-15 Dainippon Printing Co Ltd Method and program for controlling ic chip and ic card
JP2014215979A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2015041349A (en) * 2013-08-23 2015-03-02 大日本印刷株式会社 Information storage medium, byte code execution method, and program for information storage medium
JP2015082233A (en) * 2013-10-23 2015-04-27 大日本印刷株式会社 Security token and handler routine execution method
JP2016126696A (en) * 2015-01-08 2016-07-11 大日本印刷株式会社 Electronic information storage medium, abnormality detection method, and program
US11216717B2 (en) 2017-04-04 2022-01-04 Hailo Technologies Ltd. Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11237894B1 (en) * 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
JP2022105981A (en) * 2021-01-05 2022-07-15 新唐科技股▲ふん▼有限公司 Processor with in-band fault-injection detection function
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539523A (en) * 1999-03-09 2002-11-19 ジェムプリュス How to monitor program execution
JP2004178250A (en) * 2002-11-27 2004-06-24 Le Tekku:Kk Microprocessor
EP1450232A1 (en) * 2003-02-18 2004-08-25 SCHLUMBERGER Systèmes Method for code secure execution against attacks
JP2007513422A (en) * 2003-12-04 2007-05-24 アクサルト・エス・アー A method for ensuring the execution of a program against attacks by radiation or otherwise
JP2009187438A (en) * 2008-02-08 2009-08-20 Dainippon Printing Co Ltd Method for detecting attack on ic card, ic card, and program for ic card

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539523A (en) * 1999-03-09 2002-11-19 ジェムプリュス How to monitor program execution
JP2004178250A (en) * 2002-11-27 2004-06-24 Le Tekku:Kk Microprocessor
EP1450232A1 (en) * 2003-02-18 2004-08-25 SCHLUMBERGER Systèmes Method for code secure execution against attacks
JP2007513422A (en) * 2003-12-04 2007-05-24 アクサルト・エス・アー A method for ensuring the execution of a program against attacks by radiation or otherwise
JP2009187438A (en) * 2008-02-08 2009-08-20 Dainippon Printing Co Ltd Method for detecting attack on ic card, ic card, and program for ic card

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011181049A (en) * 2010-03-04 2011-09-15 Dainippon Printing Co Ltd Method and program for controlling ic chip and ic card
JP2014215979A (en) * 2013-04-30 2014-11-17 大日本印刷株式会社 Information storage medium and bytecode execution method
JP2015041349A (en) * 2013-08-23 2015-03-02 大日本印刷株式会社 Information storage medium, byte code execution method, and program for information storage medium
JP2015082233A (en) * 2013-10-23 2015-04-27 大日本印刷株式会社 Security token and handler routine execution method
JP2016126696A (en) * 2015-01-08 2016-07-11 大日本印刷株式会社 Electronic information storage medium, abnormality detection method, and program
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11461615B2 (en) 2017-04-04 2022-10-04 Hailo Technologies Ltd. System and method of memory access of multi-dimensional data
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11675693B2 (en) 2017-04-04 2023-06-13 Hailo Technologies Ltd. Neural network processor incorporating inter-device connectivity
US11238331B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method for augmenting an existing artificial neural network
US11263512B2 (en) 2017-04-04 2022-03-01 Hailo Technologies Ltd. Neural network processor incorporating separate control and data fabric
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11354563B2 (en) 2017-04-04 2022-06-07 Hallo Technologies Ltd. Configurable and programmable sliding window based memory access in a neural network processor
US11216717B2 (en) 2017-04-04 2022-01-04 Hailo Technologies Ltd. Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11461614B2 (en) 2017-04-04 2022-10-04 Hailo Technologies Ltd. Data driven quantization optimization of weights and input data in an artificial neural network
US11514291B2 (en) 2017-04-04 2022-11-29 Hailo Technologies Ltd. Neural network processing element incorporating compute and local memory elements
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11237894B1 (en) * 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
JP2022105981A (en) * 2021-01-05 2022-07-15 新唐科技股▲ふん▼有限公司 Processor with in-band fault-injection detection function
JP7413335B2 (en) 2021-01-05 2024-01-15 新唐科技股▲ふん▼有限公司 Processor with in-band fault injection detection

Also Published As

Publication number Publication date
JP5200664B2 (en) 2013-06-05

Similar Documents

Publication Publication Date Title
JP5200664B2 (en) Fault attack detection method, security device, and computer program for falsifying memory contents
EP2519908B1 (en) Jcvm bytecode execution protection against fault attacks
CN110990084A (en) Chip secure starting method and device, storage medium and terminal
US20130055025A1 (en) Microprocessor protected against memory dump
JP2018169694A (en) Security device having tamper resistance against failure utilization attack
US20060289656A1 (en) Portable electronic apparatus and data output method therefor
JP2018508063A (en) Secure element
JP5050893B2 (en) IC card attack detection method, IC card and IC card program
JP2009259126A (en) Method for detecting fault attack and security device
EP1739519A1 (en) Method to secure the execution of a program against attacks by radiation or other
US20150333903A1 (en) Method for Operating a Portable Data Carrier, and Such a Portable Data Carrier
JP6424633B2 (en) Electronic information storage medium, abnormality detection method, and program
JP2009289104A (en) Security device with function for detecting trouble attack
JP6769265B2 (en) Electronic information storage medium, IC card, data abnormality confirmation method, and data abnormality confirmation program
US8528081B2 (en) Memory system
JP6828548B2 (en) Electronic information storage medium, IC card, tampering check method and tampering check program
JP2008204085A (en) Semiconductor memory
JP6175882B2 (en) Information storage medium, IC card, and bytecode execution method
JP6610002B2 (en) Arithmetic apparatus, arithmetic method, and arithmetic processing program
JP5949357B2 (en) Security token, data falsification detection method, and computer program
JP7247638B2 (en) Electronic information storage medium, IC card, falsification check method, and program
JP5082782B2 (en) Data processing method, IC card, and IC card program
JP6136541B2 (en) Information storage medium and bytecode execution method
JP6493672B2 (en) Electronic information storage medium, abnormality detection method, abnormality detection program, and IC card
JP2015082233A (en) Security token and handler routine execution method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

R150 Certificate of patent or registration of utility model

Ref document number: 5200664

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3