JP2010136066A - Apparatus and method of processing information, and program - Google Patents

Apparatus and method of processing information, and program Download PDF

Info

Publication number
JP2010136066A
JP2010136066A JP2008309576A JP2008309576A JP2010136066A JP 2010136066 A JP2010136066 A JP 2010136066A JP 2008309576 A JP2008309576 A JP 2008309576A JP 2008309576 A JP2008309576 A JP 2008309576A JP 2010136066 A JP2010136066 A JP 2010136066A
Authority
JP
Japan
Prior art keywords
memory
recursive function
executed
information processing
called
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
JP2008309576A
Other languages
Japanese (ja)
Inventor
Shigeru Moriya
繁 守屋
Takuya Ichikawa
琢也 市川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008309576A priority Critical patent/JP2010136066A/en
Publication of JP2010136066A publication Critical patent/JP2010136066A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the risk of leakage of secret information. <P>SOLUTION: An attack detector 52 proves the operation result of an operation part 51 to detect a fault-based attack. A caller 53 calls a recursive function which is called recursively by being executed. A supplying part 55 supplies a return address obtained by execution of the recursive function to a stack region 32a of a RAM 32 to which data including secret information is stored every time the recursive function called by the caller 53 is executed and called recursively. The invention can be applied to a non-contact IC card or an information processing apparatus such as a mobile telephone or the like having a function of the non-contact IC card. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、情報処理装置および方法、並びにプログラムに関し、特に、秘密情報が漏洩する危険性を低下させることができるようにする情報処理装置および方法、並びにプログラムに関する。   The present invention relates to an information processing apparatus and method, and a program, and more particularly, to an information processing apparatus and method, and a program that can reduce the risk of leakage of confidential information.

近年、暗号処理中の非接触IC(Integrated Circuit)カードに対して、悪意のある者(攻撃者)が、故意に、放射線を照射したり、高電圧を印加したり、また、クロック周波数や駆動電圧を瞬間的に変動させる等、物理的障害(エラー)を発生させ、その結果得られる、誤った演算結果と、正常な処理により得られる演算結果とを比較することで、秘密鍵等の秘密情報を入手する攻撃手法(以下、故障利用攻撃という)が脅威となっている。   In recent years, malicious persons (attackers) deliberately irradiate radiation, apply high voltage to non-contact IC (Integrated Circuit) cards undergoing cryptographic processing, and apply clock frequency and drive. A secret such as a secret key is obtained by comparing a calculation result obtained by normal processing with an incorrect calculation result obtained by causing a physical failure (error) such as instantaneous voltage fluctuation. Attack methods that obtain information (hereinafter referred to as failure use attacks) are threats.

故障利用攻撃は、上述した演算結果の検算やメモリに記憶されているデータのチェック等を行うことにより検出される。そこで、故障利用攻撃を検出したときに、ハードウェアリセットを行ったり、無限ループ処理を行ったりすることで、非接触ICカードの動作を停止させて、秘密情報の漏洩を防ぐことが考えられている。   The failure use attack is detected by performing the above-described calculation of the calculation result, checking the data stored in the memory, or the like. Therefore, it may be possible to stop the operation of the contactless IC card and prevent leakage of secret information by performing hardware reset or infinite loop processing when a failure use attack is detected. Yes.

しかしながら、上述した手法では、故障利用攻撃を受けたときの演算結果等、揮発性メモリに秘密情報が残っている可能性があり、その秘密情報が、攻撃者に入手される恐れがある。   However, in the above-described method, there is a possibility that secret information remains in the volatile memory, such as a calculation result when receiving a failure use attack, and the secret information may be obtained by an attacker.

ところで、所定のサービスの要求があり、そのサービスを実行する関数を呼び出す際に、その関数へのポインタが元々保持されているテーブルとは別の、一時的な記憶領域内のテーブルに、その関数へのポインタを保持させ、その別のテーブルのポインタから関数を呼び出すことで、システム全体の動作に影響を与えることなく、サービスの入れ替えをできるようにした技術がある(例えば、特許文献1参照)。   By the way, when there is a request for a predetermined service and a function for executing the service is called, the function is stored in a table in a temporary storage area different from the table in which the pointer to the function is originally held. There is a technique in which a service can be replaced without affecting the operation of the entire system by holding a pointer to and calling a function from a pointer in another table (see, for example, Patent Document 1). .

特開2000−137605号公報JP 2000-137605 A

上述のように、揮発性メモリなどの記憶領域に、一時的に情報を記憶させることは、演算処理の上では有用であるが、その情報が、外部に漏洩させてはならない秘密情報である場合、その情報を記憶していることは好ましくない。   As described above, temporarily storing information in a storage area such as a volatile memory is useful for arithmetic processing, but the information is confidential information that should not be leaked to the outside. It is not preferable to store the information.

本発明は、このような状況に鑑みてなされたものであり、秘密情報が漏洩する危険性を低下させることができるようにするものである。   The present invention has been made in view of such a situation, and is intended to reduce the risk of leakage of secret information.

本発明の一側面の情報処理装置は、秘密情報を含むデータを格納する、書き換え可能なメモリと、実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出し手段と、前記呼び出し手段により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給手段とを備える。   An information processing apparatus according to an aspect of the present invention is called by a rewritable memory that stores data including secret information, a calling unit that calls a recursive function that is recursively called when executed, and the calling unit. Supplying means for supplying data obtained by executing the recursive function to the memory each time the recursive function is executed and recursively called.

前記情報処理装置には、故障利用攻撃を検出する攻撃検出手段をさらに設け、前記呼び出し手段には、前記攻撃検出手段が故障利用攻撃を検出したときに、前記再帰関数を呼び出させることができる。   The information processing apparatus further includes attack detection means for detecting a failure use attack, and the calling means can call the recursive function when the attack detection means detects a failure use attack.

前記メモリは、揮発性メモリであり、前記供給手段には、前記再帰関数のリターンアドレスを、前記メモリのスタック領域に供給させることができる。   The memory is a volatile memory, and the supply means can supply the return address of the recursive function to the stack area of the memory.

前記情報処理装置には、所定の演算を行う演算手段をさらに設け、前記攻撃検出手段には、前記演算手段の演算結果の検算、または、前記メモリに格納されている前記データのチェックをすることで、故障利用攻撃を検出させることができる。   The information processing apparatus further includes a calculation unit that performs a predetermined calculation, and the attack detection unit checks a calculation result of the calculation unit or checks the data stored in the memory. Thus, a failure use attack can be detected.

前記情報処理装置には、外部の装置と非接触で通信を行う通信手段をさらに設け、前記メモリには、前記通信手段が行う通信に関わる秘密情報を含む前記データを格納させることができる。   The information processing apparatus may further include communication means for performing contactless communication with an external apparatus, and the memory may store the data including secret information related to communication performed by the communication means.

本発明の一側面の情報処理方法は、秘密情報を含むデータを格納する、書き換え可能なメモリを備える情報処理装置の情報処理方法であって、実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出しステップと、前記呼び出しステップの処理により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給ステップとを含む。   An information processing method according to one aspect of the present invention is an information processing method of an information processing apparatus including a rewritable memory that stores data including secret information, and calls a recursive function that is recursively called when executed. A calling step, and a supply step of supplying data obtained by the execution of the recursive function to the memory each time the recursive function called by the processing of the calling step is executed and recursively called.

本発明の一側面のプログラムは、秘密情報を含むデータを格納する、書き換え可能なメモリを備える情報処理装置の処理をコンピュータに実行させるプログラムであって、実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出しステップと、前記呼び出しステップの処理により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給ステップとを含む処理をコンピュータに実行させる。   A program according to one aspect of the present invention is a program for causing a computer to execute processing of an information processing apparatus including a rewritable memory that stores data including secret information and is recursively called by being executed. And a supply step of supplying data obtained by the execution of the recursive function to the memory every time the recursive function called by the processing of the calling step is executed and recursively called. Causes the computer to execute the processing that includes it.

本発明の一側面においては、実行されることにより再帰呼び出しされる再帰関数が呼び出され、呼び出された再帰関数が実行されて、再帰呼び出しされる毎に、再帰関数の実行により得られるデータが、メモリに供給される。   In one aspect of the present invention, a recursive function that is recursively called by being executed is called, and the recursive function that is called is executed. Supplied to the memory.

本発明の一側面によれば、秘密情報が漏洩する危険性を低下させるようにすることが可能となる。   According to one aspect of the present invention, it is possible to reduce the risk of leakage of secret information.

以下、本発明の実施の形態について図を参照して説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

[非接触ICカードの機能構成例]
図1は、本発明を適用した情報処理装置の一実施の形態としての非接触ICカードの機能構成例を示している。
[Functional configuration example of contactless IC card]
FIG. 1 shows an example of the functional configuration of a non-contact IC card as an embodiment of an information processing apparatus to which the present invention is applied.

図1の非接触ICカード11は、耐タンパ性を有し、無線通信の相手である外部の装置との間で、公開鍵暗号方式による相互認証を行う。非接触ICカード11は、外部の装置と無線通信を行うとき、例えば、RSA(R. Rivest、A. Shamir、L. Adelman)暗号等の公開鍵暗号方式による相互認証によって、公開鍵と秘密鍵を用いて、お互いが正当な機器であるか否かの認証を行う。   The non-contact IC card 11 of FIG. 1 has tamper resistance, and performs mutual authentication with an external device that is a counterpart of wireless communication by a public key cryptosystem. When wireless communication is performed with an external device, the contactless IC card 11 uses a public key and a private key by mutual authentication using a public key cryptosystem such as RSA (R. Rivest, A. Shamir, L. Adelman) cryptography. Is used to authenticate whether each other is a legitimate device.

図1の非接触ICカード11は、通信部31、RAM(Random Access Memory)32、NVRAM(Non Volatile RAM)33、ROM(Read Only Memory)34、および制御部35から構成される。   1 includes a communication unit 31, a RAM (Random Access Memory) 32, an NVRAM (Non Volatile RAM) 33, a ROM (Read Only Memory) 34, and a control unit 35.

通信部31は、電磁波を利用して非接触で、図示せぬR/W(リーダライタ)等の外部の装置と無線通信を行う。具体的には、例えば、通信部31は、図示せぬR/Wから送信されてくるコマンドと、コマンドとともに送信されてくるデータを制御部35に供給する。また、通信部31は、制御部35から供給されてくる、図示せぬR/Wからのコマンドに対するコマンドおよびデータを、図示せぬR/Wに送信する。   The communication unit 31 wirelessly communicates with an external device such as an R / W (reader / writer) (not shown) in a non-contact manner using electromagnetic waves. Specifically, for example, the communication unit 31 supplies a command transmitted from an unshown R / W and data transmitted together with the command to the control unit 35. In addition, the communication unit 31 transmits a command and data for a command from the R / W (not shown) supplied from the control unit 35 to the R / W (not shown).

RAM32は、書き換え可能な揮発性メモリであり、制御部35の処理の実行において適宜変化するパラメータや、上述した公開鍵や秘密鍵等の秘密情報を含むデータを格納する。また、RAM32は、スタック領域32aを有する。スタック領域32aは、例えば、制御部35の処理の実行において使用されるプログラムにおける関数やサブルーチンのコール時に必要なデータを一時記憶する。   The RAM 32 is a rewritable volatile memory, and stores data including parameters that change as appropriate during execution of the processing of the control unit 35 and secret information such as the public key and secret key described above. The RAM 32 has a stack area 32a. For example, the stack area 32a temporarily stores data necessary for calling a function or a subroutine in a program used in executing the process of the control unit 35.

NVRAM33は、書き換え可能な不揮発性メモリであり、通信部31から供給されたデータや、制御部35が各種の処理を実行するためのプログラム、相互認証において必要となる機器ID、暗号鍵等のデータを格納する。   The NVRAM 33 is a rewritable nonvolatile memory, data supplied from the communication unit 31, programs for the control unit 35 to execute various processes, data such as device IDs and encryption keys required for mutual authentication Is stored.

ROM34は、読み取り専用のメモリであり、制御部35が各種の処理を実行するためのプログラムや、演算用のパラメータのうち、基本的に固定のデータを格納する。   The ROM 34 is a read-only memory and stores basically fixed data among programs for the control unit 35 to execute various processes and calculation parameters.

制御部35は、NVRAM33またはROM34に格納されているプログラムを読み込み、読み込んだプログラムを実行し、非接触ICカード11全体を制御する。また、制御部35は、通信部31から供給された各種のコマンドに対応する処理を実行するとともに、対応するコマンドおよびデータを生成し、通信部31に供給する。   The control unit 35 reads a program stored in the NVRAM 33 or the ROM 34, executes the read program, and controls the non-contact IC card 11 as a whole. The control unit 35 executes processing corresponding to various commands supplied from the communication unit 31, generates corresponding commands and data, and supplies the commands and data to the communication unit 31.

制御部35は、演算部51、攻撃検出部52、呼び出し部53、実行部54、および供給部55を含むように構成される。   The control unit 35 is configured to include a calculation unit 51, an attack detection unit 52, a calling unit 53, an execution unit 54, and a supply unit 55.

演算部51は、通信部31から供給された各種のコマンドに応じて、コマンドに対応する処理を実行するためのプログラムをNVRAM33やROM34から読み込み、所定の演算を行う。具体的には、演算部51は、NVRAM33やROM34からプログラムを読み込み、そのプログラムにより指定される関数をRAM32から呼び出し、実行する。例えば、演算部51は、RSA暗号等の公開鍵暗号方式による相互認証を行う処理を実行するためのプログラムを読み込み、データの暗号化または復号を行う関数を呼び出し、実行する。   The computing unit 51 reads a program for executing processing corresponding to the command from the NVRAM 33 or the ROM 34 in accordance with various commands supplied from the communication unit 31, and performs a predetermined computation. Specifically, the calculation unit 51 reads a program from the NVRAM 33 or the ROM 34, calls a function specified by the program from the RAM 32, and executes it. For example, the calculation unit 51 reads a program for executing a process for performing mutual authentication using a public key cryptosystem such as RSA encryption, and calls and executes a function for encrypting or decrypting data.

攻撃検出部52は、演算部51の演算結果の検算(再計算)や、図示せぬプログラムカウンタに記憶されている、次に実行すべき命令(タスク)のアドレスの確認、RAM32およびNVRAM33に格納されているデータについてのチェックサムの算出や、CRC(Cyclic Redundancy Check:巡回冗長検査)の実行等、データのチェックを行うことで、故障利用攻撃を検出する。   The attack detection unit 52 verifies (recalculates) the calculation result of the calculation unit 51, confirms the address of an instruction (task) to be executed next, which is stored in a program counter (not shown), and stores it in the RAM 32 and the NVRAM 33. Failure check attacks are detected by checking the data, such as calculating the checksum for the data that has been processed, and executing CRC (Cyclic Redundancy Check).

呼び出し部53は、攻撃検出部52が故障利用攻撃を検出したときに、自分自身を呼び出す、すなわち再帰呼び出しをする再帰関数をRAM32から呼び出す。また、呼び出し部53は、再帰関数が実行されることにより、再帰呼び出しされる再帰関数をRAM32から呼び出す。   When the attack detection unit 52 detects a failure use attack, the calling unit 53 calls a recursive function that calls itself, that is, performs a recursive call, from the RAM 32. The calling unit 53 calls the recursive function to be recursively called from the RAM 32 by executing the recursive function.

実行部54は、呼び出し部53により呼び出された再帰関数を実行する。   The execution unit 54 executes the recursive function called by the calling unit 53.

供給部55は、演算部51および実行部54により実行された関数の戻り値や、サブルーチンがコールされたときのリターンアドレスを、RAM32のスタック領域32aに供給する。   The supply unit 55 supplies the return value of the function executed by the calculation unit 51 and the execution unit 54 and the return address when the subroutine is called to the stack area 32a of the RAM 32.

[非接触ICカードの状態遷移図]
ここで、図2を参照して、非接触ICカード11が外部からの物理的障害により故障利用攻撃を受けるときの、非接触ICカード11の状態遷移について説明する。
[State transition diagram of non-contact IC card]
Here, with reference to FIG. 2, the state transition of the non-contact IC card 11 when the non-contact IC card 11 receives a failure use attack due to a physical failure from the outside will be described.

図2の状態遷移図において、各状態は、1つの楕円により表される。すなわち、図2の状態遷移図においては、状態A,B,Cの3つの状態が示されている。   In the state transition diagram of FIG. 2, each state is represented by one ellipse. That is, in the state transition diagram of FIG. 2, three states A, B, and C are shown.

状態Aは、非接触ICカード11が正常状態、すなわち、外部の装置との間で、相互認証を行いながらコマンドの送受信を行い、データの暗号化または復号を行っている状態である。非接触ICカード11は、所定のタイミングで(例えば、所定時間経過後に)、状態Aから状態Bへと遷移する。   The state A is a state in which the non-contact IC card 11 is in a normal state, that is, a state where a command is transmitted / received while performing mutual authentication with an external device, and data is encrypted or decrypted. The non-contact IC card 11 transitions from the state A to the state B at a predetermined timing (for example, after a predetermined time elapses).

状態Bは、非接触ICカード11が故障利用攻撃を検出する状態(故障利用攻撃検出状態)である。状態Bにおいて、非接触ICカード11は、状態Aにおける演算結果の検算や、格納されているデータのチェックを行うことにより、故障利用攻撃があったことを検出すると、状態Cへと遷移する。また、故障利用攻撃があったことを検出しない場合(故障利用攻撃がない場合)には、状態Aへと戻る。   State B is a state in which the contactless IC card 11 detects a failure use attack (failure use attack detection state). In the state B, the contactless IC card 11 transits to the state C when it detects that there is a failure use attack by checking the calculation result in the state A and checking the stored data. Further, when it is not detected that there is a failure use attack (when there is no failure use attack), the state returns to state A.

状態Cは、非接触ICカード11が再帰関数を呼び出す処理を行う状態(再帰関数呼び出し処理状態)である。この再帰関数は、状態Aで実行される処理とは無関係の、全く無意味な戻り値を返す。状態Cにおいて、再帰関数が呼び出され、実行されると、その無意味な戻り値とともに、再帰呼び出しをする際のリターンアドレスが、RAM32のスタック領域32aに格納され、再び、この再帰関数が呼び出される(再帰呼び出しをする)。すなわち、状態Cにおいては、再帰関数の呼び出しが繰り返される。   The state C is a state (recursive function call processing state) in which the contactless IC card 11 performs a process of calling a recursive function. This recursive function returns a completely meaningless return value that is irrelevant to the process executed in state A. In state C, when the recursive function is called and executed, the return address for the recursive call together with the meaningless return value is stored in the stack area 32a of the RAM 32, and this recursive function is called again. (Recursive call). That is, in the state C, the recursive function call is repeated.

このようにして、非接触ICカード11は、故障利用攻撃を検出すると、再帰関数の呼び出しを繰り返す。これにより、RAM32のスタック領域32aには、再帰関数の戻り値とリターンアドレスとが次々と格納されるようになる。   In this way, the contactless IC card 11 repeats calling the recursive function when detecting a failure use attack. As a result, the return value and return address of the recursive function are stored one after another in the stack area 32a of the RAM 32.

[再帰関数呼び出し処理について]
次に、図3のフローチャートを参照して、非接触ICカード11による再帰関数呼び出し処理の詳細について説明する。
[Recursive function call processing]
Next, details of the recursive function call processing by the non-contact IC card 11 will be described with reference to the flowchart of FIG.

ステップS11において、攻撃検出部52は、故障利用攻撃を検出したか否かを判定する。より具体的には、攻撃検出部52は、演算部51の演算結果の検算や、図示せぬプログラムカウンタに記憶されている、次に実行すべき命令のアドレスの確認、RAM32およびNVRAM33に格納されているデータについてのチェックサムの算出や、CRCの実行等、データのチェックを行い、エラーが発生しているか否かを判定する。   In step S11, the attack detection unit 52 determines whether a failure use attack has been detected. More specifically, the attack detection unit 52 verifies the calculation result of the calculation unit 51, confirms the address of an instruction to be executed next, which is stored in a program counter (not shown), and is stored in the RAM 32 and the NVRAM 33. Check the data, such as calculating the checksum for the data being executed, executing the CRC, etc., and determine whether an error has occurred.

ステップS11において、故障利用攻撃を検出していないと判定された場合、すなわち、非接触ICカード11は正常状態(図2の状態A)であるので、故障利用攻撃が検出されるまで、ステップS11の処理が繰り返される。   If it is determined in step S11 that a failure use attack has not been detected, that is, the contactless IC card 11 is in a normal state (state A in FIG. 2), step S11 is performed until a failure use attack is detected. The process is repeated.

一方、ステップS11において、故障利用攻撃を検出したと判定された場合、処理は、ステップS12に進み、呼び出し部53は、再帰関数である関数fをRAM32から呼び出す。関数fは、演算部51により実行される処理とは無関係の、全く無意味な戻り値を返す。   On the other hand, if it is determined in step S11 that a failure use attack has been detected, the process proceeds to step S12, and the calling unit 53 calls the function f, which is a recursive function, from the RAM 32. The function f returns a completely meaningless return value that is irrelevant to the processing executed by the calculation unit 51.

ステップS13において、実行部54は、呼び出し部53により呼び出された関数fを実行する。これにより、関数fが再帰呼び出しされる。   In step S <b> 13, the execution unit 54 executes the function f called by the calling unit 53. As a result, the function f is recursively called.

ステップS14において、供給部55は、実行部54により実行された関数fの戻り値とともに、リターンアドレスを、RAM32のスタック領域32aに供給する。   In step S <b> 14, the supply unit 55 supplies the return address to the stack area 32 a of the RAM 32 along with the return value of the function f executed by the execution unit 54.

ステップS15において、呼び出し部53は、関数fが実行されることにより(ステップS13)、再帰呼び出しされる関数fをRAM32から呼び出す。   In step S15, the calling unit 53 calls the function f to be recursively called from the RAM 32 by executing the function f (step S13).

ステップS16において、実行部54は、呼び出し部53により呼び出された関数fを実行する。これにより、関数fが再帰呼び出しされる。   In step S <b> 16, the execution unit 54 executes the function f called by the calling unit 53. As a result, the function f is recursively called.

ステップS17において、供給部55は、実行部54により実行された関数fの戻り値とともに、リターンアドレスを、RAM32のスタック領域32aに供給する。処理は、ステップS15に戻り、ステップS15乃至S17の処理が繰り返される。   In step S <b> 17, the supply unit 55 supplies the return address to the stack area 32 a of the RAM 32 together with the return value of the function f executed by the execution unit 54. The process returns to step S15, and the processes of steps S15 to S17 are repeated.

以上の処理によれば、非接触ICカード11は、故障利用攻撃を検出すると、関数fの呼び出しを繰り返す。これにより、RAM32のスタック領域32aには、関数fの戻り値とリターンアドレスとが、関数fが呼び出される毎に、次々と格納されるようになる。   According to the above processing, when the contactless IC card 11 detects a failure use attack, the function f is repeatedly called. As a result, the return value and return address of the function f are successively stored in the stack area 32a of the RAM 32 each time the function f is called.

この結果、スタック領域32aはオーバーフローし、RAM32の他の領域もが侵食されて、元々、RAM32に格納されていたデータは書き換えられる。すなわち、RAM32には秘密情報が残っていない状態となるので、攻撃者は秘密情報を入手することが困難となり、秘密情報が漏洩する危険性を低下させるようにすることが可能となる。   As a result, the stack area 32a overflows, and other areas of the RAM 32 are eroded, so that the data originally stored in the RAM 32 is rewritten. That is, since there is no secret information remaining in the RAM 32, it is difficult for an attacker to obtain the secret information, and the risk of leakage of the secret information can be reduced.

以上においては、本発明を非接触ICカードに適用した実施の形態について説明したが、本発明は、非接触ICカードの機能を有する携帯電話機等の情報処理装置などに適用することができる。   In the above, an embodiment in which the present invention is applied to a non-contact IC card has been described. However, the present invention can be applied to an information processing apparatus such as a mobile phone having the function of a non-contact IC card.

上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。   The series of processes described above can be executed by hardware or can be executed by software. When a series of processing is executed by software, a program constituting the software may execute various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a program recording medium in a general-purpose personal computer or the like.

図4は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。   FIG. 4 is a block diagram illustrating an example of a hardware configuration of a computer that executes the above-described series of processes using a program.

コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。   In a computer, a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, and a RAM (Random Access Memory) 903 are connected to each other by a bus 904.

バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。   An input / output interface 905 is further connected to the bus 904. An input / output interface 905 includes an input unit 906 made up of a keyboard, mouse, microphone, etc., an output unit 907 made up of a display, a speaker, etc., a storage unit 908 made up of a hard disk, nonvolatile memory, etc., and a communication unit 909 made up of a network interface, etc. A drive 910 for driving a removable medium 911 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is connected.

以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。   In the computer configured as described above, the CPU 901 loads, for example, the program stored in the storage unit 908 to the RAM 903 via the input / output interface 905 and the bus 904, and executes the above-described series. Is performed.

コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。   The program executed by the computer (CPU 901) is, for example, a magnetic disk (including a flexible disk), an optical disk (CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc), etc.), a magneto-optical disk, or a semiconductor. It is recorded on a removable medium 911 which is a package medium composed of a memory or the like, or provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.

そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。   The program can be installed in the storage unit 908 via the input / output interface 905 by attaching the removable medium 911 to the drive 910. The program can be received by the communication unit 909 via a wired or wireless transmission medium and installed in the storage unit 908. In addition, the program can be installed in the ROM 902 or the storage unit 908 in advance.

なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。   The program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.

また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。   The embodiments of the present invention are not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention.

本発明を適用した情報処理装置の一実施の形態としての非接触ICカードの機能構成例を示すブロック図である。It is a block diagram which shows the function structural example of the non-contact IC card as one Embodiment of the information processing apparatus to which this invention is applied. 非接触ICカードの状態遷移を状態遷移図である。It is a state transition diagram showing the state transition of a contactless IC card. 再帰関数呼び出し処理について説明するフローチャートである。It is a flowchart explaining a recursive function call process. コンピュータのハードウェアの構成例を示すブロック図である。It is a block diagram which shows the structural example of the hardware of a computer.

符号の説明Explanation of symbols

11 非接触ICカード, 31 通信部, 32 RAM, 32a スタック領域, 33 NVRAM, 34 ROM, 35 制御部, 51 演算部, 52 攻撃検出部, 53 呼び出し部, 54 実行部, 55 供給部   11 contactless IC card, 31 communication unit, 32 RAM, 32a stack area, 33 NVRAM, 34 ROM, 35 control unit, 51 calculation unit, 52 attack detection unit, 53 calling unit, 54 execution unit, 55 supply unit

Claims (7)

秘密情報を含むデータを格納する、書き換え可能なメモリと、
実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出し手段と、
前記呼び出し手段により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給手段と
を備える情報処理装置。
A rewritable memory for storing data including confidential information;
A calling means for calling a recursive function that is recursively called when executed;
An information processing apparatus comprising: a supply unit that supplies data obtained by executing the recursive function to the memory each time the recursive function called by the calling unit is executed and recursively called.
故障利用攻撃を検出する攻撃検出手段をさらに備え、
前記呼び出し手段は、前記攻撃検出手段が故障利用攻撃を検出したときに、前記再帰関数を呼び出す
請求項1に記載の情報処理装置。
It further comprises attack detection means for detecting a failure use attack,
The information processing apparatus according to claim 1, wherein the calling unit calls the recursive function when the attack detection unit detects a failure use attack.
前記メモリは、揮発性メモリであり、
前記供給手段は、前記再帰関数のリターンアドレスを、前記メモリのスタック領域に供給する
請求項2に記載の情報処理装置。
The memory is a volatile memory;
The information processing apparatus according to claim 2, wherein the supply unit supplies a return address of the recursive function to a stack area of the memory.
所定の演算を行う演算手段をさらに備え、
前記攻撃検出手段は、前記演算手段の演算結果の検算、または、前記メモリに格納されている前記データのチェックをすることで、故障利用攻撃を検出する
請求項2に記載の情報処理装置。
It further comprises a calculation means for performing a predetermined calculation,
The information processing apparatus according to claim 2, wherein the attack detection unit detects a failure use attack by checking a calculation result of the calculation unit or checking the data stored in the memory.
外部の装置と非接触で通信を行う通信手段をさらに備え、
前記メモリは、前記通信手段が行う通信に関わる秘密情報を含む前記データを格納する
請求項2に記載の情報処理装置。
It further comprises a communication means for performing contactless communication with an external device,
The information processing apparatus according to claim 2, wherein the memory stores the data including secret information related to communication performed by the communication unit.
秘密情報を含むデータを格納する、書き換え可能なメモリを備える情報処理装置の情報処理方法において、
実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出しステップと、
前記呼び出しステップの処理により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給ステップと
を含む情報処理方法。
In an information processing method of an information processing apparatus having a rewritable memory for storing data including secret information,
A calling step that calls a recursive function that is recursively called when executed;
An information processing method comprising: a step of supplying data obtained by execution of the recursive function to the memory each time the recursive function called by the processing of the calling step is executed and recursively called.
秘密情報を含むデータを格納する、書き換え可能なメモリを備える情報処理装置の処理をコンピュータに実行させるプログラムにおいて、
実行されることにより再帰呼び出しされる再帰関数を呼び出す呼び出しステップと、
前記呼び出しステップの処理により呼び出された前記再帰関数が実行されて、再帰呼び出しされる毎に、前記再帰関数の実行により得られるデータを、前記メモリに供給する供給ステップと
を含む処理をコンピュータに実行させるプログラム。
In a program for causing a computer to execute processing of an information processing apparatus including a rewritable memory that stores data including confidential information,
A calling step that calls a recursive function that is recursively called when executed;
Each time the recursive function called by the process of the calling step is executed and recursively called, a process including a step of supplying data obtained by executing the recursive function to the memory is executed on the computer. Program to make.
JP2008309576A 2008-12-04 2008-12-04 Apparatus and method of processing information, and program Withdrawn JP2010136066A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008309576A JP2010136066A (en) 2008-12-04 2008-12-04 Apparatus and method of processing information, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008309576A JP2010136066A (en) 2008-12-04 2008-12-04 Apparatus and method of processing information, and program

Publications (1)

Publication Number Publication Date
JP2010136066A true JP2010136066A (en) 2010-06-17

Family

ID=42346909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008309576A Withdrawn JP2010136066A (en) 2008-12-04 2008-12-04 Apparatus and method of processing information, and program

Country Status (1)

Country Link
JP (1) JP2010136066A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010148036A (en) * 2008-12-22 2010-07-01 Fujitsu Ltd Device, method and program for arithmetically operating elliptic curve
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem
JP2020102210A (en) * 2018-12-21 2020-07-02 富士通株式会社 Discrimination of information leakage of computer-readable programs

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010148036A (en) * 2008-12-22 2010-07-01 Fujitsu Ltd Device, method and program for arithmetically operating elliptic curve
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem
JP2020102210A (en) * 2018-12-21 2020-07-02 富士通株式会社 Discrimination of information leakage of computer-readable programs
JP7331679B2 (en) 2018-12-21 2023-08-23 富士通株式会社 Determining Information Leakage in Computer Readable Programs

Similar Documents

Publication Publication Date Title
TWI488477B (en) Method and system for electronically securing an electronic device using physically unclonable functions
KR100692348B1 (en) Sleep protection
US8533492B2 (en) Electronic device, key generation program, recording medium, and key generation method
JP4912879B2 (en) Security protection method for access to protected resources of processor
KR100792287B1 (en) Method for security and the security apparatus thereof
US9866535B2 (en) Content reproduction system, information processing terminal, media server, secure device, and server secure device
KR102062073B1 (en) Information processing apparatus and method of controlling the apparatus
US20110044451A1 (en) Information processing apparatus and falsification verification method
JP2004280284A (en) Control processor, electronic equipment, and program starting method for electronic equipment, and system module updating method for electronic equipment
US20180204004A1 (en) Authentication method and apparatus for reinforced software
US20080178257A1 (en) Method for integrity metrics management
EP2503482A1 (en) Electronic device with flash memory component
CN110326266A (en) A kind of method and device of data processing
JP2005157930A (en) Confidential information processing system and lsi
EP2701101B1 (en) Information processing devices and information processing methods
JP2010136066A (en) Apparatus and method of processing information, and program
KR20070059891A (en) Application authentication security system and method thereof
JP2007288254A (en) Communication system, communication apparatus and method, and program
WO2012126483A1 (en) Data protection using distributed security key
KR101630462B1 (en) Apparatus and Method for Securing a Keyboard
CN106650329A (en) Individual authorization method of data export equipment
WO2006046484A1 (en) Authentication method
KR101350438B1 (en) Digital signature system for using se(secure element) inside mobile unit and method therefor
KR20160111798A (en) Security service apparatus and method based mtm
KR20190046724A (en) Method and apparatus for verification of integrity of application program

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: 20120207