Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INFORMATION MEMORY MEDIUM
Document Type and Number:
WIPO Patent Application WO/2008/126491
Kind Code:
A1
Abstract:
An information memory medium is comprised of a card main body in which modules are embedded. The module is provided with a communication means for receiving a command from external devices; a memory means for storing data processing routines including a plurality of check points; and a data processing means that executes the processing that corresponds to the command in accordance with the data processing routines, stores a plurality of check flags with the same value changeable in value in accordance with routes of the plurality of the check points included in the data processing routine, and confirms the justification of the data processing based on the plurality of the stores check flags.

Inventors:
TOMOEDA YUUKI (JP)
Application Number:
PCT/JP2008/053427
Publication Date:
October 23, 2008
Filing Date:
February 27, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TOSHIBA KK (JP)
TOMOEDA YUUKI (JP)
International Classes:
G06F11/36; G06F21/10; G06F21/75; G06K19/073
Foreign References:
JP2002334317A2002-11-22
JPH09160808A1997-06-20
JP2007004456A2007-01-11
JP2005509936A2005-04-14
JPH05158745A1993-06-25
JP2005285133A2005-10-13
Attorney, Agent or Firm:
SUZUYE, Takehiko et al. (1-12-9 Toranomon, Minato-ku, Tokyo 01, JP)
Download PDF:
Claims:
 情報記憶媒体は、モジュールが埋め込まれたカード本体により構成され、
 前記モジュールは、
 外部装置からの命令を受信する通信手段と、
 複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、
 前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
 を備える。
 情報記憶媒体は、モジュールが埋め込まれたカード本体により構成され、
 前記モジュールは、
 外部装置からの命令を受信する通信手段と、
 少なくとも一つのチェックポイントを含むデータ処理ルーチンを複数記憶する記憶手段と、
 前記複数のデータ処理ルーチンに従い前記命令に対応する処理を実行するとともに、夫々のデータ処理ルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
 を備える。
 請求項2に記載の情報記憶媒体であって、
 前記記憶手段は、少なくとも一つのチェックポイントを含むサブルーチン、及び前記サブルーチンを含み且つ少なくとも一つのチェックポイントを含むメインルーチンを記憶し、
 前記データ処理手段は、前記サブルーチン及びメインルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記サブルーチン及びメインルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認する。
 請求項2に記載の情報記憶媒体であって、
 前記データ処理手段は、前記チェックポイントの経由に対応して、1以外の倍数値で更新される前記チェックフラグを格納する。
 請求項2に記載の情報記憶媒体であって、
 前記データ処理手段は、前記チェックポイントの経由に対応して、予め保持されたランダムな値で更新される前記チェックフラグを格納する。
 請求項2に記載の情報記憶媒体であって、
 前記データ処理手段は、前記チェックポイントの経由に対応して、データ処理回数に応じて変化する規則に従った値で更新される前記チェックフラグを格納する。
 請求項2に記載の情報記憶媒体であって、
 前記データ処理手段は、データ処理の正当性が確認できない場合に、エラー処理を実行する。
 請求項2に記載の情報記憶媒体であって、
 前記記憶手段は、ループ処理を含む前記データ処理ルーチンを記憶し、
 前記データ処理手段は、前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記ループ処理に含まれるチェックポイントの経由に対応して値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認する。
 請求項2に記載の情報記憶媒体であって、
 前記記憶手段は、最下層のサブルーチン、前記最下層のサブルーチンを含む中層のサブルーチン、及び前記中層のサブルーチンを含むメインルーチンを記憶し、
 前記データ処理手段は、前記メインルーチン、前記中層のサブルーチン、及び前記最下層のサブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認する。
 請求項2に記載の情報記憶媒体であって、
 前記記憶手段は、複数のサブルーチン及びこれら複数のサブルーチンを含むメインルーチンを記憶し、
 前記データ処理手段は、前記メインルーチン及び前記サブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記複数のサブルーチンの夫々のコールにより値が変化する複数のチェックフラグを格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認する。
 請求項10に記載の情報記憶媒体であって、
 前記データ処理手段は、一つのサブルーチンのコールにより値が変化する同一値のチェックフラグを複数格納し、格納された同一値のチェックフラグに基づきデータ処理の正当性を確認する。
 請求項10に記載の情報記憶媒体であって、
 前記データ処理手段は、サブルーチン群毎に異なるチェックフラグを割り当て、これらチェックフラグを異なる格納場所に格納する。
 情報記憶媒体は、モジュールが埋め込まれたカード本体により構成され、
 前記モジュールは、
 外部装置からの命令を受信する通信手段と、
 ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、
 前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、このデータ処理に含まれる前記ループ処理の回数に応じて所定の規則に従い変化するループ処理回数値を格納し、ループ処理回数値に基づきデータ処理の正当性を確認するデータ処理手段と、
 を備える。
 請求項13に記載の情報記憶媒体であって、
 前記データ処理手段は、前記ループ処理の回数に応じて、1以外の倍数値で更新されるループ処理回数値を格納する。
 請求項13に記載の情報記憶媒体であって、
 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の数列から選択される数列で更新されるループ処理回数値を格納する。
 請求項13に記載の情報記憶媒体であって、
 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の変数から選択される変数で更新されるループ処理回数値を格納する。
Description:
情報記憶媒体

 本発明は、CPU、ROM、RAM、EEPROMなどを有す IC(集積回路)チップを内蔵するICカードと称 れる情報記憶媒体に関し、特にICカードの タンパ技術の改良に関する。

 IC(Integrated Circuit)カードは、クレジット ード、定期券、その他の商取引の決済に使 れるだけでなく、社員証、会員証、保険証 どのIDカードとしても様々な分野で使われる ようになっている。これは、従来の磁気カー ドに比べ、ICカードは、CPU、ROM、RAM、EEPROMな を有するICを備えることにより、様々な機 が実現可能となったこと、さらには偽造が しいためセキュリティの面でも大きく向上 たことが要因である。

 ISO/IEC 7816-1part1,2には、ICカードの構成が 示されている。例えば、ICカードは、個人 報など重要な情報を格納する。セキュリテ を確保するために、ICカードに格納される重 要な情報は暗号化され、またICカードユーザ 対して認証を要求する。

 しかし、ICカードに供給される電源やク ックにノイズを加えたり、ICチップ自体に光 を印加することにより、CPUが誤作動すること があり、このような誤動作を意図的に引き起 こさせようとする不正行為対策が望まれてい る。これに対して、LSI自体にノイズの影響を 除去するフィルタを搭載するといった対策が 講じられているものもある。しかし、それだ けでCPUの誤動作を十分に防ぐことはできない 。

 また、特開2005-285133には、誤動作を検出 、誤動作の種類に応じて適切に処理を継続 しくは停止する技術が開示されている。

 上記したように、カード動作中に供給電 やクロックにノイズを加えたり、ICチップ の回路に光を印加することで、CPUの命令が ャンプし、不正な処理や出力をする可能性 ある。上記した従来技術だけでCPUの誤動作 十分に防ぐことはできない。また、誤動作 出のアルゴリズムが見破られてしまうと、 正を許すことになる。

 この発明の目的は、不正防止に優れた情 記憶媒体を提供することにある。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 数のチェックポイントを含むデータ処理ル チンを記憶する記憶手段と、前記データ処 ルーチンに従い前記命令に対応する処理を 行するとともに、前記データ処理ルーチン 含まれる前記複数のチェックポイントの経 に対応して値が変化する同一値のチェック ラグを複数格納し、格納された複数のチェ クフラグに基づきデータ処理の正当性を確 するデータ処理手段とを備えている。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 なくとも一つのチェックポイントを含むデ タ処理ルーチンを複数記憶する記憶手段と 前記複数のデータ処理ルーチンに従い前記 令に対応する処理を実行するとともに、夫 のデータ処理ルーチンに含まれる夫々のチ ックポイントの経由に対応して値が変化す 夫々のチェックフラグを格納し、格納され 夫々のチェックフラグに基づきデータ処理 正当性を確認するデータ処理手段とを備え いる。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 なくとも一つのチェックポイントを含むサ ルーチン、及び前記サブルーチンを含み且 少なくとも一つのチェックポイントを含む インルーチンを記憶する記憶手段と、前記 ブルーチン及びメインルーチンに従い前記 令に対応するデータ処理を実行するととも 、前記サブルーチン及びメインルーチンに まれる夫々のチェックポイントの経由に対 して値が変化する夫々のチェックフラグを 納し、格納された夫々のチェックフラグに づきデータ処理の正当性を確認するデータ 理手段とを備えている。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 ープ処理を含むデータ処理ルーチンを記憶 る記憶手段と、前記データ処理ルーチンに い前記命令に対応するデータ処理を実行す とともに、このデータ処理に含まれる前記 ープ処理の回数に応じて所定の規則に従い 化するループ処理回数値を格納し、ループ 理回数値に基づきデータ処理の正当性を確 するデータ処理手段とを備えている。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 ープ処理を含むデータ処理ルーチンを記憶 る記憶手段と、前記データ処理ルーチンに い前記命令に対応するデータ処理を実行す とともに、前記ループ処理に含まれるチェ クポイントの経由に対応して値が変化する ェックフラグを格納し、格納されたチェッ フラグに基づきデータ処理の正当性を確認 るデータ処理手段とを備えている。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 下層のサブルーチン、前記最下層のサブル チンを含む中層のサブルーチン、及び前記 層のサブルーチンを含むメインルーチンを 憶する記憶手段と、前記メインルーチン、 記中層のサブルーチン、及び前記最下層の ブルーチンに従い前記命令に対応するデー 処理を実行するとともに、前記最下層のサ ルーチンのコールにより値が変化するチェ クフラグを格納し、格納されたチェックフ グに基づきデータ処理の正当性を確認する ータ処理手段とを備えている。

 この発明の情報記憶媒体は、モジュール 埋め込まれたカード本体により構成される 報記憶媒体であって、前記モジュールは、 部装置からの命令を受信する通信手段と、 数のサブルーチン及びこれら複数のサブル チンを含むメインルーチンを記憶する記憶 段と、前記メインルーチン及び前記サブル チンに従い前記命令に対応するデータ処理 実行するとともに、前記複数のサブルーチ の夫々のコールにより値が変化する複数の ェックフラグを格納し、格納された複数の ェックフラグに基づきデータ処理の正当性 確認するデータ処理手段とを備えている。

図1は、本実施形態に係る情報記憶媒体 の概観を示す図である。 図2は、ICチップの概略構成を示す図で る。 図3は、チェックポイント処理の一例を 説明するためのフローチャートである。 図4は、ループ処理中のチェックポイン ト処理の一例を説明するためのフローチャー トである。 図5は、入れ子構造のサブルーチンにお けるチェックポイント処理の一例を説明する ためのフローチャートである。

 以下、図面を参照し、本発明の実施形態 ついて説明する。

 図1は、本実施形態に係る情報記憶媒体の 概観を示す図である。図1に示すように、情 記憶媒体はカード本体2により構成され、カ ド本体2はICチップ1(モジュール)を備えてい 。

 図2は、ICチップ1の概略構成を示す図であ る。図2に示すように、CPU3、RAM4、ROM5、EEPROM6 I/O7、コプロセッサ8、及びデータバス9を備 ている。

 ROM5は、ICカードの各種プログラム(データ 処理ルーチン、サブルーチン、メインルーチ ン)を格納する。CPU3は、ROM5に格納されている 各種プログラムを実行し、各種プログラムが 正しく実行されたか否かをチェックする。CPU 3による動作チェックの詳細は後述する。RAM4 びEEPROM6は、CPU3による各種プログラム実行 に必要なデータを格納する。I/O7は、ICカー リーダライタなどの外部装置からコマンド 受け取り、また処理結果をレスポンスとし 出力する。データバス9は、CPU3、RAM4、ROM5、E EPROM6、I/O7、及びコプロセッサ8の間でデータ 転送するためのバスである。

 ICカードは、個人情報など重要な情報を 納する。セキュリティを確保するために、IC カードに格納される重要な情報は暗号化され 、またICカードユーザに対して認証を要求す 。しかし、ICカードに供給される電力やク ックにノイズを加えたり、ICチップ自体に光 を印加することにより、CPUが誤作動すること がある。

 そのために、本実施形態のICカードは、 フトウェア側で、本来の処理が正しく行わ ているか(外乱によりCPUの命令が不正に飛ば れていないか)を確認する。例えば、データ 処理ルーチンの各所にチェックポイントを設 け、チェックポイントに対応するチェックフ ラグを格納し、データ処理の途中(随時)もし はデータ処理の最後にチェックフラグをチ ックし、本来の処理が正しく行なわれてい ことを確認した上で処理結果を出力する。 た、チェックポイントの配置及びチェック ラグを示す値(データ)に工夫を凝らすこと より、データ処理の信頼性をより強固なも にすることができる。

 以下、具体例を挙げて説明する。

 1.ICカードのROM5は、複数のチェックポイ トを含むデータ処理ルーチンを格納してお 、I/O7は、外部装置からの命令を受信し、CPU3 は、データ処理ルーチンに従って外部装置か らの命令に対応するデータ処理を実行する。 ここで、CPU3は、本来の正しいデータ処理ル チンに従ってデータ処理が実行されている を確認する。つまり、CPU3は、データ処理の 行に応じて(チェックポイントの経由に対応 して)値が変化するチェックフラグを格納し データ処理の途中又は最後でそのチェック ラグの値が期待値と一致するかどうかを確 し、一致することを条件として処理結果を 力する。

 さらに、以下により、データ処理の信頼 をより強固なものにする。

 1-1.データ処理ルーチンにおけるチェック ポイントを一箇所ではなく、複数箇所に分散 配置する。これら複数のチェックポイントの 経由に対応して値が変化する同一値のチェッ クフラグを複数格納し、格納された複数のチ ェックフラグに基づきデータ処理の正当性を 確認する。つまり、複数のチェックフラグの 値が同一になっているか否かをチェックする (ミラーリング)。

 1-2.データ処理ルーチンの処理内容毎にチ ェックポイントを設ける。夫々のデータ処理 ルーチンに含まれる夫々のチェックポイント の経由に対応して値が変化する夫々のチェッ クフラグを格納し、格納された夫々のチェッ クフラグに基づきデータ処理の正当性を確認 する。

 1-3.サブルーチン及びサブルーチンを含む メインルーチンの夫々にチェックポイントを 設ける。夫々のルーチンに含まれる夫々のチ ェックポイントの経由に対応して値が変化す る夫々のチェックフラグを格納し、格納され た夫々のチェックフラグに基づきデータ処理 の正当性を確認する。

 1-4.チェックポイントの経由に対応して、 チェックフラグの値をインクリメントもしく はデクリメントさせることで、チェックフラ グを増減させ、最終的にチェックフラグの値 の合計値から、データ処理の信憑性を確認す る。或いは、チェックポイントの経由に対応 して、1以外の倍数値で更新されるチェック ラグを格納する。例えば、倍数に限らず一 的な数列で更新されるチェックフラグを格 するようにしてもよい。

 1-5.或いは、チェックポイントの経由に対 応して、ランダムに選ばれた固定値(事前に ーブル等により準備された値)で更新される ェックフラグを格納する。

 1-6.或いは、チェックポイントの経由に対 応して、静的な乱数ではなく、データ処理の 進行に応じて毎回変動するような動的な乱数 値で更新されるチェックフラグを格納する。

 1-7.チェックポイントの経由に対応して、 チェックフラグを更新し、データ処理の最後 に全てのチェックフラグを確認する。或いは 、チェックポイントの経由に対応して、先に チェックフラグを確認した後にチェックフラ グを更新する。

 2.ICカードのROM5は、ループ処理を含むデ タ処理ルーチンを格納しており、I/O7は、外 装置からの命令を受信し、CPU3は、データ処 理ルーチンに従って外部装置からの命令に対 応するデータ処理を実行する。また、CPU3は ループ処理の実行に応じて、ループ処理の ウント値をインクリメント、デクリメント る。

 さらに、以下により、データ処理の信頼 をより強固なものにする。

 2-1.ループ処理の実行に応じて(ループ処 の回数に応じて)、ループ処理の回数値を単 インクリメント、デクリメントするのでは く、所定の規則に従い変化するループ処理 数値を格納し、ループ処理回数値に基づき ータ処理の正当性を確認する。例えば、ル プ処理の回数に応じて、1以外の倍数値で更 新されるループ処理回数値を格納する。

 2-2.複数の数列をテーブルとして持ってお き、毎回違う数列を選択することにより、ル ープ処理の回数に応じて、選択される数列で 更新されるループ処理回数値を格納する。

 2-3.複数の変数をテーブルとして持ってお き、毎回違う変数を選択することにより、ル ープ処理の回数に応じて、選択される数列で 更新されるループ処理回数値を格納する。

 2-4.2-3の条件に対して、2-1または2-2、もし くは2-1と2-2の両方の機能を持たせる。

 3.ICカードのROM5は、データ処理ルーチン 格納しており、I/O7は、外部装置からの命令 受信し、CPU3は、データ処理ルーチンに従っ て外部装置からの命令に対応するデータ処理 を実行する。ここで、CPU3は、階層型のサブ ーチンコールで最下層のサブルーチンまで しく処理を行ったかどうかをコールした最 位部分で確認する。

 3-1.最下層のサブルーチンのコールにより 値が変化するチェックフラグを格納し、この チェックフラグに基づきデータ処理の正当性 を確認する。例えば、最下層のサブルーチン 、この最下層のサブルーチンを含む中層のサ ブルーチン、及びこの中層のサブルーチンを 含むメインルーチンを定義し、最下層のサブ ルーチンのコールにより値が変化するチェッ クフラグを格納し、このチェックフラグに基 づきデータ処理の正当性を確認する。

 3-2.複数のサブルーチンの夫々のコールに より値が変化する複数のチェックフラグを格 納し、格納された複数のチェックフラグに基 づきデータ処理の正当性を確認する。つまり 、全てのサブルーチンがコールされたか否か がチェック可能となる(コールされたサブル チンとコールされていないサブルーチンが 別可能となる)。

 3-3.チェックフラグの値を、複数箇所に分 散させて格納する(ミラーリング)。つまり、 つのサブルーチンのコールにより値が変化 る同一値のチェックフラグを複数格納し、 納された同一値のチェックフラグに基づき ータ処理の正当性を確認する。

 3-4.使用するサブルーチンコール群毎にチ ェックフラグを別にし、格納場所を変える。

 3-5.サブルーチンのコールに対応して、単 なるインクリメントやデクリメントで更新さ れる値のチェックフラグではなく、1以外の 数値(倍数に限らず一般的な数列)で更新され るチェックフラグを格納する。

 3-6.サブルーチンのコールに対応して、ラ ンダムに選ばれた固定値(事前にテーブルか かで準備しておいたような値)で更新される ェックフラグを格納する。

 3-7.サブルーチンのコールに対応して、静 的な乱数ではなく、カードの処理毎に毎回変 動するような動的な乱数値で更新されるチェ ックフラグを格納する。

 3-8.サブルーチンのコールに対応して、ス タックポインタの値もしくはその一部で更新 されるチェックフラグを格納する。

 以下、図3~図5に示すフローチャートを参 して、チェックフラグの運用例を説明する

 図3に示すように、カード本来の処理フロ ーの中の重要な部分にチェックポイント処理 を入れる。メインルーチンにおけるチェック ポイント#1(101)、チェックポイント#2(102)にて RAM4に確保された1バイトのチェックフラグ 更新(例えばインクリメントもしくはデクリ ント)する。同様に、サブルーチンにおける チェックポイント#3(105)、チェックポイント#4 (106)にて、RAM4に確保された1バイトのチェッ フラグを更新(例えばインクリメントもしく デクリメント)する。

 メインルーチンの最後のチェックポイン #LAST(104)にて、チェックフラグの値を確認す る。本来の処理ルートを通っていれば、チェ ックフラグの値と期待値とが一致し、本来の 処理ルートを通っていなければ、チェックフ ラグの値と期待値とが一致しない。一致しな い場合は、エラーを返したり、CPU3の処理を 止したりする。

 ここで、上記したチェックフラグを複数 所に分散格納するようにしてもよい。つま 、RAM4にチェックフラグを複数置くようにし てもよいし、レジスタ、EEPROM6など別メモリ 同時に格納するようにしてもよい。また、 ェックポイント処理を複数にわけ(モジュー ごとなど)、それぞれのチェックフラグを別 の領域に格納するようにしてもよい。さらに 、チェックフラグの値を単にインクリメント もしくはデクリメントするのではなく、チェ ックフラグの値を何らかの倍数値で増減させ るようにしてもよい。また、上記の通り、最 後のチェックポイント#LAST(104)にて、チェッ フラグのチェックを行ったが、各チェック イント#1(101)、#2(102)、#3(103)、#4(104)でチェッ するようにしてもよい。その場合は、各チ ックポイントで期待値が必要になるが、こ 場合、チェックフラグを規則的に変化させ のではなく、ある決まった不規則な値を持 せることで、より強固なチェックができる またこの不規則な値を固定にせず、乱数値 用いて、毎回変化させるようにしてもよい

 図4に示すように、ループ処理中にチェッ クポイント(203)を配置する。ループ処理回数 応じて(チェックポイントの経由に応じて) チェックフラグの値を更新(例えばインクリ ントもしくはデクリメント)する。或いは、 チェックポイントの値を1以外の倍数値で増 させる。これによりループ処理の内部で、 ェックポイントの値が設定どおりの値の倍 になっているかどうかチェックし、チェッ ポイントの値が正しいか否か確認する。ま ループ処理毎にこの増減値を毎回変化させ ことも有効である。さらに増減値の変数を つではなく、複数持つことでループ回数の ざんをより強固に回避できる。複数の変数 対して、上記の方法を組み合わせることも きる。

 図5に示すように、最上位のメインルーチ ン(301~303)、中層のサブルーチン(304)、最下層 サブルーチン(305)が存在するとする。最下 のサブルーチンのコールに対応して(最下層 サブルーチンのチェックポイントAにおいて )、専用のチェックフラグが格納される。最 位のメインルーチンに戻った後(最上位のメ ンルーチンのチェックポイントBにおいて) 専用のチェックフラグをチェックし、最下 のサブルーチンがコールされたか否かをチ ックする。

 或いは、複数のサブルーチンの夫々に対 てチェックポイントを持たせ、これら複数 サブルーチンの夫々がコールされることに 応してチェックフラグの値を変化させる。 上位のメインルーチンに戻った後、チェッ フラグの値をチェックし、期待値と一致す かチェックする。さらに、チェックフラグ 格納場所を一箇所ではなく、複数箇所にす ようにしてもよい。またこのような連続し サブルーチンコール群ごとに異なるチェッ フラグを別々に用意するようにしてもよい さらにこのチェックフラグをインクリメン 、デクリメントで増減させるのではなく、 らかの別の規則的な値にするようにしても い。または、規則的な値ではなく不規則な を用いるようにしてもよい。最下層のモジ ールまで行ったかどうかの確認をチェック ラグではなく、スタックポインタの値で代 するようにしてもよい。

 以下に、本実施形態をまとめる。

 (1)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックフラグ を複数個所に分散格納(ミラーリング)する。

 (2)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックフラグ をカードの処理全体で1つではなく、処理内 によって個別に持ち、それぞれを別領域に 納する。

 (3)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックフラグ の値の増減(変化)値としてインクリメント、 クリメントだけではなく、1以外の倍数(倍 に限らず一般的な数列)を用いる。

 (4)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックフラグ の値の増減(変化)値を事前にランダムに選ば 、カード内部に保持された固定値(事前にテ ーブルか何かで準備しておいたような値)を いる。

 (5)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックフラグ の値の増減(変化)値をカードの処理ごとに毎 変動させる。

 (6)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、外部からの要求を満たす 果を求めるための正しい処理フローに従っ 処理したかを確認するために、処理フロー 各所にチェックポイント処理部を持ち、そ チェックポイント処理部で処理フローの正 性を確認するためのチェックフラグの値を 化させ、処理の最後でそのチェックフラグ 最終結果を確認し処理の正当性を確認する 能を持つICカードにおいて、チェックポイン ト処理部でチェックフラグの値を変化させる だけでなく、チェックフラグの値の確認をも 行い、必要に応じてエラー処理を行う。

 (7)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、繰り返し処理を行うため ループ処理の回数カウント用増減値として インクリメント、デクリメントだけなく、1 外の倍数値(倍数に限らず一般的な数列)を いる。

 (8)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、繰り返し処理を行うため ループ処理の回数カウント用増減値を、毎 同じではなく、事前にカード内部に保持さ た複数の数列から選択することにより毎回 う値を利用する。

 (9)内部にデータを保持して、外部からの 令に応じて処理を実施し、結果を出力するI Cカードにおいて、繰り返し処理を行うため ループ処理の回数カウント用増減のための 数を複数持ち、すべての変数で所定の回数 満たすことで、ループ処理を終える。

 (10)内部にデータを保持して、外部からの 命令に応じて処理を実施し、結果を出力する ICカードにおいて、繰り返し処理を行うため ループ処理内部に、ループ回数の正当性を 認するためのチェックフラグを変化させる ェックポイント処理部を持ち、最終的にル プ処理の終了後に、正しい回数だけループ 理がされたかをカード内部に保持されたチ ックフラグの値で確認する。

 (11)内部にデータを保持して、外部からの 命令に応じて処理を実施し、結果を出力する ICカードにおいて、サブルーチンコールが入 子構造になっている処理部に対して、最下 のサブルーチンまで正しく処理が行われた を確認するために、最下層のサブルーチン に当該サブルーチンがコールされたことを 認するためのチェックフラグを変化させる ェックポイント処理部を持ち、最上位の処 で当該チェックフラグの値を確認する機能 有する。

 (12)内部にデータを保持して、外部からの 命令に応じて処理を実施し、結果を出力する ICカードにおいて、サブルーチンコールが入 子構造になっている処理部に対して、最下 のサブルーチンまで正しく処理が行われた を確認するために、各階層のサブルーチン に各サブルーチンがコールされたことを確 するためのチェックフラグを変化させるチ ックポイント処理部を持ち、最上位の処理 最終的なチェックフラグの値を確認する機 を有する。

 (13)上記(11)もしくは(12)に記載のICカード おいて、チェックフラグの値の格納場所を 数個所にわけ、ミラーリングする。

 (14)上記(11)もしくは(12)に記載のICカード おいて、階層型のサブルーチン群毎に別々 チェックフラグを持ち、その格納場所を別 に分ける。

 (15)上記(11)もしくは(12)に記載のICカード おいて、チェックフラグの値の増減(変化)値 として、インクリメント、デクリメントだけ ではなく、1以外の倍数(倍数に限らず一般的 数列)を用いる。

 (16)上記(11)もしくは(12)に記載のICカード おいて、チェックフラグの値の増減(変化)値 を事前にランダムに選ばれ、カード内部に保 持された固定値(事前にテーブルか何かで準 しておいたような値)を用いる。

 (17)上記(11)もしくは(12)に記載のICカード おいて、チェックフラグの値の増減(変化)値 をカードの処理ごとに毎回変動させる。

 (18)上記(11)に記載のICカードにおいて、チ ェックフラグの値の増減(変化)値として、ス ックポインタの値もしくはその一部を利用 る。

 なお、本願発明は、上記実施形態に限定 れるものではなく、実施段階ではその要旨 逸脱しない範囲で種々に変形することが可 である。また、各実施形態は可能な限り適 組み合わせて実施してもよく、その場合組 合わせた効果が得られる。更に、上記実施 態には種々の段階の発明が含まれており、 示される複数の構成要件における適当な組 合わせにより種々の発明が抽出され得る。 えば、実施形態に示される全構成要件から くつかの構成要件が削除されても、発明が 決しようとする課題の欄で述べた課題が解 でき、発明の効果の欄で述べられている効 が得られる場合には、この構成要件が削除 れた構成が発明として抽出され得る。

 本発明によれば、不正防止に優れた情報 憶媒体を提供できる。