(57)【要約】【課題】レーザ照射による攻撃を行う攻撃者がＩＣチップ等の電子情報記憶媒体上の記憶領域において、要求されるセキュリティレベルが高いデータが記憶されている位置を容易に特定することができない電子情報記憶媒体等を提供する。【解決手段】通常の記憶領域と、要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、通常の記憶領域にチェック用データを記憶させておき、セキュリティ記憶領域と、チェック用データが記憶されている記憶領域に対する改竄チェックを行い、改竄が検出された場合に処理を行う。【選択図】図２
2018163446.tif 000002
【特許請求の範囲】
【請求項１】
通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段と、
前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック手段と、
前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記通常の記憶領域には、複数の前記チェック用データが分散して記憶されていることを特徴とする電子情報記憶媒体。
【請求項３】
請求項１又は２に記載の電子情報記憶媒体であって、
前記セキュリティデータを使用するセキュリティ処理を実行するセキュリティ処理実行手段を更に備え、
前記チェック手段は、前記チェック用データが記憶されている記憶領域に対する改竄チェックを、前記セキュリティ処理の実行前、実行中又は実行後の少なくとも何れかの時期に行うことを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、
前記チェック手段は、前記セキュリティ記憶領域に対する改竄チェックを行う時期と同じ時期に、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うことを特徴とする電子情報記憶媒体。
【請求項５】
請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、
前記チェック用データは固定長の所定値からなるデータであり、
前記記憶手段は、前記チェック用データと同じ固定長の所定値からなる比較用データを更に記憶し、
前記チェック手段は、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行う場合、前記チェック用データと前記比較用データを比較することを特徴とする電子情報記憶媒体。
【請求項６】
請求項１乃至５の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項７】
通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段を備える電子情報記憶媒体における改竄チェック方法であって、
前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック工程と、
前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理工程と、
を含むことを特徴とする改竄チェック方法。
【請求項８】
通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、
前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック手段、
前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理手段、
として機能させることを特徴とする改竄チェック用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣカードは、クレジットカード、銀行キャッシュカード、ＥＴＣ（登録商標）（Electronic Toll Collection System）カード、ＳＩＭ（Subscriber Identity Module Card）カードなどに用いられており、その用途の特性上、高いセキュリティが求められている。
【０００３】
ＩＣカードに搭載されるＩＣチップは、認証のための演算や、鍵の保存などを実施しており、それらの情報を不正に入手するために様々な外部からの攻撃にさらされる。その攻撃の代表的なものには、ＳＰＡ（Simple Power Analysis）攻撃やＤＰＡ(Differential Power Analysis)攻撃といった消費電力解析攻撃、ＤＦＡ(Differential Fault Analysis)攻撃、レーザ照射によるデータ改竄などがある。
【０００４】
消費電力解析攻撃は、ＩＣカードの消費電力が処理内容と相関があることに着目して、消費電力を測定して統計処理することにより情報を不正に入手するものである。これに対して特許文献１には、消費電力解析攻撃への対策技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３２２０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方で、レーザ照射による攻撃は、ＩＣチップに対してレーザを照射してＩＣチップに記憶されているデータを改竄することにより、ＩＣチップに記憶されている情報を不正に入手したり、ＩＣチップの不正処理(誤った鍵を用いた認証処理で正常終了するなど)を誘発したりする目的で実施される。
【０００７】
従来、レーザ照射による攻撃への対策として、重要なデータについてデータの二重化や誤り検出用のデータ(ＣＲＣ（Cyclic Redundancy Check）など)による検証が行われており、不正行為が検出された場合、ＩＣチップの機能を停止するなどのエラー処理を行っている。ここで、攻撃者がレーザ照射による攻撃を実施する場合、ＩＣチップ上のどこに目的のデータが格納されているか(もしくは、どこに目的の処理の実行プログラムが格納されているか)は、ＩＣチップの外観から知ることができない。そのため攻撃手法の一つとして、ＩＣチップ上の複数の場所にレーザを照射し、その際のＩＣチップの挙動（エラー処理が行われたかなど）を確認しながら攻撃対象を絞っていく方法がある。このとき、攻撃者は攻撃が成功するまで大量のＩＣカードに対して攻撃を繰り返すことになるが、攻撃者にどれだけの枚数のＩＣカードを消費させるかが、そのＩＣカードのセキュリティ評価の指標の一つとなる。
【０００８】
そこで、本発明は、レーザ照射による攻撃を行う攻撃者がＩＣチップ等の電子情報記憶媒体上の記憶領域において、要求されるセキュリティレベルが高いデータ（例えば、秘密鍵やＰＩＮ（Personal Idendification Number）等）が記憶されている位置を容易に特定することができない電子情報記憶媒体等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段と、前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック手段と、前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理手段と、を備えることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記通常の記憶領域には、複数の前記チェック用データが分散して記憶されていることを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の電子情報記憶媒体であって、前記セキュリティデータを使用するセキュリティ処理を実行するセキュリティ処理実行手段を更に備え、前記チェック手段は、前記チェック用データが記憶されている記憶領域に対する改竄チェックを、前記セキュリティ処理の実行前、実行中又は実行後の少なくとも何れかの時期に行うことを特徴とする。
【００１２】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、前記チェック手段は、前記セキュリティ記憶領域に対する改竄チェックを行う時期と同じ時期に、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うことを特徴とする。
【００１３】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、前記チェック用データは固定長の所定値からなるデータであり、前記記憶手段は、前記チェック用データと同じ固定長の所定値からなる比較用データを更に記憶し、前記チェック手段は、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行う場合、前記チェック用データと前記比較用データを比較することを特徴とする。
【００１４】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１５】
請求項７に記載の発明は、通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段を備える電子情報記憶媒体における改竄チェック方法であって、前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック工程と、前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理工程と、を含むことを特徴とする。
【００１６】
請求項８に記載の発明は、通常の記憶領域と、当該通常の記憶領域に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ記憶領域とを有し、前記通常の記憶領域にチェック用データを記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、前記セキュリティ記憶領域と、前記チェック用データが記憶されている記憶領域に対する改竄チェックを行うチェック手段、前記改竄チェックの結果、改竄が検出された場合にエラー処理を行うエラー処理手段、として機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、セキュリティ記憶領域と通常の記憶領域について改竄チェックを行い、セキュリティ記憶領域が改竄された場合に限らず通常の記憶領域におけるチェック用データが改竄された場合にもエラー処理を行うことから、攻撃者によるチェック用データが攻撃された場合にエラー処理が行われることにより、当該チェック用データの部分にセキュリティデータが記憶されていると攻撃者を勘違いさせることができる。したがって、攻撃者は、要求されるセキュリティレベルが高いセキュリティデータが記憶されている位置を容易に特定することができない。
【図面の簡単な説明】
【００１８】
【図１】本実施形態におけるＩＣカード１に搭載されたＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】本実施形態におけるフラッシュメモリ１３の記憶領域の構造例を示す図である。
【図３】本実施形態におけるチェック用データ格納位置テーブルＴの構成例を示す図である。
【図４】本実施形態におけるＣＰＵ１０の動作例を示すフローチャートである。
【図５】変形例におけるチェック用データ格納位置テーブルＴ２の構成例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態について詳細に説明する。まず、図１等を参照して、ＩＣカード１に搭載されたＩＣチップ１ａの概要構成及び機能について説明する。図１は、ＩＣチップ１ａのハードウェア構成例を示す図である。なお、ＩＣカード１は、クレジットカード、銀行キャッシュカード、ＥＴＣカード、電子マネーカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは本発明における電子情報記憶媒体を構成するが、この電子情報記憶媒体は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００２０】
［１．ＩＣチップ１ａの概要構成及び機能］
図１に示すように、ＩＣチップ１ａは、ＣＰＵ１０、ＲＯＭ（Read Only Memory）１１、データを一時的に記憶するための揮発性メモリであるＲＡＭ（Random Access Memory）１２、不揮発性メモリであるフラッシュメモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」を採用しても構わない。
【００２１】
Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、ＩＣリーダ・ライタを備える外部端末との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部端末には通信機器の機能を担う制御部が該当する。
【００２２】
ＲＡＭ１２は、例えばＯＳ、ミドルウェア、各種アプリケーションが機能するうえで一時的に必要となるデータが記憶される。
【００２３】
フラッシュメモリ１３には、ＯＳ、ミドルウェア及びアプリケーション等のプログラムや、各種データを記憶する。
【００２４】
ここで、図２を用いて、フラッシュメモリ１３が形成する記憶領域の構造について説明する。フラッシュメモリ１３が形成する記憶領域は、セキュリティ領域１３１と、ノーマル領域１３２とを含んで構成される。セキュリティ領域１３１は、例えば、秘密鍵、電話機能の認証鍵或いはJava（登録商標）のKeyクラスのオブジェクトといった鍵データ、電話機能のＰＩＮ（Personal Identification Number）や、暗号演算や比較演算などのセキュリティに関わる処理のプログラムコードなど、ノーマル領域１３２に記憶されるデータと比較して要求されるセキュリティレベルが高いセキュリティデータを記憶する。
【００２５】
ノーマル領域１３２は、各種プログラムや、セキュリティ領域１３１に記憶しないデータを記憶する。また、ノーマル領域１３２は、ＩＣチップ１ａを対象とする攻撃者によるレーザ攻撃（データの改竄）が行われていないかをチェックするためのチェック用データＣを記憶する。このとき、ノーマル領域１３２全域を満遍なくチェックするために、複数のチェック用データＣを物理的に分散して記憶しておくことが好ましい。また、本実施形態のチェック用データＣは固定長（例えば、１バイト）の所定値からなる。なお、ノーマル領域１３２全体に占めるチェック用データＣを記憶する合算領域の大きさは、他に記憶しなければならないデータの量などを考慮して設計者が予め設定してもよいし、ＯＳが他に記憶しなければならないデータの量等に応じて適宜変更する構成としてもよい。
【００２６】
図３は、ノーマル領域１３２においてチェック用データＣが記憶（格納）されている位置を特定する際に用いられるチェック用データ格納位置テーブルＴの構成例を示す図である。チェック用データ格納位置テーブルＴはフラッシュメモリ１３に記憶される。チェック用データ格納位置テーブルＴには、チェック用データＣ毎に、ＩＮＤＥＸとアドレスを示す情報が記述される。アドレスは、ノーマル領域１３２においてチェック用データＣが格納されている位置を示す情報が記述される。記述方式は、絶対アドレス指定方式でも相対アドレス指定方式でも良い。
【００２７】
ＣＰＵ１０は、コンピュータの一例であり、フラッシュメモリ１３に記憶された各種プログラムを実行する演算装置である。各種プログラムには、仮想マシンプログラム、Ｊａｖａ等のプログラム言語で記述されるアプリが含まれる。ＯＳ、及び仮想マシンプログラムは、複数のネイティブコード（実行コード群）で記述される。ＯＳは、ＩＣチップ１ａの動作を直接コントロールするソフトウェアである。ＯＳ、及び仮想マシンプログラムは、ＲＯＭ１１に記憶されてもよい。なお、以下、ＯＳを主語として処理の説明をする場合、実際には、ＣＰＵ１０がＯＳを実行することにより処理が行われる。
【００２８】
ＯＳは、ＩＣチップ１ａを対象とする攻撃者によるレーザ攻撃（データの改竄）が行われていないかを改竄チェックを行う。ＯＳは、ノーマル領域１３２に対するレーザ攻撃に対しては、ノーマル領域１３２に格納されている複数のチェック用データＣのうち一部又は全てを検査対象のチェック用データＣとして改竄チェックを行う。具体的には、ＯＳは、固定長の所定値からなるチェック用データＣ値と同一の値を持つ比較用データをフラッシュメモリ１３（又はＲＡＭ１２）に保持しておき、この値が検査対象のチェック用データＣと一致するか否かにより改竄チェックを行う。なお、ＯＳは、セキュリティ領域１３１についても改竄チェックを行う。セキュリティ領域１３１についての改竄チェックは、従来公知の手法（例えば、ＣＲＣ等）を採用してもよいし、ノーマル領域１３２と同様にセキュリティ領域１３１についてもチェック用データＣによるチェックを行っても良い。
【００２９】
ＯＳは、セキュリティ領域１３１又はノーマル領域１３２に対する改竄チェックにより改竄が検出された場合に、エラー処理を行う。エラー処理としては従来公知の処理（例えば、ＩＣチップ１ａの機能停止など）を行う。
【００３０】
［２．ＣＰＵ１０（ＯＳ）の動作］
次に、図４を用いてＣＰＵ１０（ＯＳ）によるノーマル領域１３２の改竄チェック処理について説明する。図４は、ノーマル領域１３２の改竄チェック処理の一例を示すフローチャートである。
【００３１】
まず、ＯＳ（を実行するＣＰＵ１０）は、ノーマル領域１３２の改竄チェックを行うチェック時期であるか否かを判定する（ステップＳ１０１）。チェック時期は、予め設定しておくこととし、例えば、以下（１）−（３）の時期を設定することができる。
（１）セキュリティ領域１３１に格納されたデータ（鍵データや制御データ）を用いた処理（「セキュリティ処理」の一例）の処理前、処理中又は処理後
（２）リーダ・ライタからの信号によりＩＣチップ１ａが処理を開始する前
（３）ＩＣチップ１ａが外部にデータを送信する前
但し、改竄チェックであるので、上記（１）−（３）の時期以外の時期に行っても良い。また、ノーマル領域１３２の改竄チェック処理ではチェック用データＣを検査対象とする改竄チェックを行うが、セキュリティ領域１３１についての改竄チェックを行う時期（上記（１）−（３）の時期や、その他従来公知の時期など）と同じ時期に行っても良いし、異なる時期に行っても良い。
【００３２】
ＯＳは、改竄チェックのチェック時期ではないと判定した場合には（ステップＳ１０１：ＮＯ）、再度、ステップＳ１０１の処理を行う。一方、ＯＳは、改竄チェックのチェック時期であると判定した場合には、（ステップＳ１０１：ＹＥＳ）、チェック用データ格納位置テーブルＴを参照し、ＩＮＤＥＸをランダムに抽出する（ステップＳ１０２）。例えば、ＯＳは、チェック用データ格納位置テーブルＴに記述されているＩＮＤＥＸのうち、所定数（ＣＰＵ１０の処理性能と改竄チェック処理に許容される処理時間に応じて設定される）のＩＮＤＥＸをランダム（例えば、乱数値を用いる）に抽出する。
【００３３】
次に、ＯＳは、ステップＳ１０２の処理で抽出した一のＩＮＤＥＸに対応するアドレスを特定する（ステップＳ１０３）。次いで、ＯＳは、ステップＳ１０３の処理で特定したアドレスに記憶されているチェック用データＣを検査対象として改竄チェックを行う（ステップＳ１０４）。具体的には、ＯＳは、検査対象のチェック用データＣと、フラッシュメモリ１３（又はＲＡＭ１２）に保持しておいた比較用データを比較する。
【００３４】
次に、ＯＳは、ステップＳ１０４の改竄チェックの結果、改竄されているか否かを判定する（ステップＳ１０５）。このとき、ＯＳは、改竄されている（チェック用データＣと比較用データが一致しない）と判定した場合には（ステップＳ１０５：ＹＥＳ）、エラー処理を行い（ステップＳ１０６）、改竄チェック処理を終了する。一方、ＯＳは、改竄されていない（チェック用データＣと比較用データが一致する）と判定した場合には（ステップＳ１０５：ＮＯ）、次いで、ステップＳ１０２の処理で抽出したＩＮＤＥＸの件数分の改竄チェックを行ったか否かを判定する（ステップＳ１０７）。
【００３５】
ＯＳは、ステップＳ１０２の処理で抽出したＩＮＤＥＸの件数分の改竄チェックを行っていないと判定した場合には（ステップＳ１０７：ＮＯ）、ステップＳ１０３の処理に移行する。すなわち、ＯＳは、ステップＳ１０２の処理で抽出したＩＮＤＥＸに対応するアドレスに記憶されている全てのチェック用データＣについて改竄チェックを行うまで、ステップＳ１０３からステップＳ１０７のループ処理を繰り返す。ＯＳは、ループ処理中のステップＳ１０３の処理において、ステップＳ１０２の処理で抽出したＩＮＤＥＸに対応するアドレスのうち、それまでのループ処理中に特定していない一のＩＮＤＥＸに対応するアドレスを特定することとする。
【００３６】
一方、ＯＳは、ステップＳ１０２の処理で抽出したＩＮＤＥＸの件数分の改竄チェックを行ったと判定した場合には（ステップＳ１０７：ＹＥＳ）、改竄チェック処理を終了する。
【００３７】
以上説明した本実施形態のＩＣチップ１ａは、フラッシュメモリ１３（「記憶手段」の一例）が、ノーマル領域１３２（「通常の記憶領域」の一例）と、ノーマル領域１３２に記録されるデータより要求されるセキュリティレベルの高いセキュリティデータを記憶するセキュリティ領域１３１（「セキュリティ記憶領域」の一例）とを有し、ノーマル領域１３２にチェック用データＣを記憶し、ＣＰＵ１０（「チェック手段」、「エラー処理手段」の一例）が、セキュリティ領域１３１と、チェック用データＣが記憶されている記憶領域に対する改竄チェックを行い、改竄チェックの結果、改竄が検出された場合にエラー処理を行う。
【００３８】
したがって、本実施形態のＩＣチップ１ａによれば、セキュリティ領域１３１とノーマル領域１３２について改竄チェックを行い、セキュリティ領域１３１が改竄された場合に限らずノーマル領域１３２におけるチェック用データＣが改竄されていた場合にもエラー処理を行うことから、攻撃者によるチェック用データＣが攻撃された場合にエラー処理が行われることにより、チェック用データＣの部分にセキュリティデータが記憶されていると攻撃者を勘違いさせることができる。したがって、攻撃者は、要求されるセキュリティレベルが高いセキュリティデータが記憶されている位置を容易に特定することができない。
【００３９】
また、本実施形態のＩＣチップ１ａは、ノーマル領域１３２には、複数のチェック用データＣが分散して記憶されている。これにより、ノーマル領域１３２を広く改竄チェックを行うことができ、改竄が行われていた場合にはエラー処理が行われることから、攻撃者に対してセキュリティデータが記憶されている位置を特定しづらくさせることができる。
【００４０】
更に、本実施形態のＩＣチップ１ａは、ＣＰＵ１０（「セキュリティ処理実行手段」の一例）が、セキュリティデータを使用するセキュリティ処理を実行し、チェック用データＣが記憶されている記憶領域に対する改竄チェックを、セキュリティ処理の実行前、実行中又は実行後の少なくとも何れかの時期に行う場合がある。攻撃者は、レーザ攻撃により改竄したデータに基づいてセキュリティ処理を実行させることによりデータを漏洩させようとすることから、この場合、セキュリティ処理の実行前、実行中又は実行後の少なくとも何れかの時期に改竄チェックを行い改竄が行われていた場合にはエラー処理を行うことにより、セキュリティ領域１３１の物理的な位置を攻撃者に推測され難くすることができる。
【００４１】
更にまた、本実施形態のＩＣチップ１ａは、ＣＰＵ１０が、セキュリティ領域１３１に対する改竄チェックを行う時期と同じ時期に、チェック用データＣが記憶されている記憶領域に対する改竄チェックを行ってもよい。この場合、ノーマル領域１３２へのレーザ攻撃であったとしても、セキュリティ領域１３１への攻撃と同じエラー処理を同じ時期に実施することで、攻撃者にノーマル領域１３２をセキュリティ領域１３１と誤認させ、セキュリティ領域１３１への攻撃を減らすことができ、延いてはセキュリティデータが漏洩する可能性が減少させることができる。
【００４２】
また、本実施形態のＩＣチップ１ａは、チェック用データＣは固定長の所定値からなるデータであり、フラッシュメモリ１３（又はＲＡＭ１２）（「記憶手段」の一例）は、チェック用データＣと同じ固定長の所定値からなる比較用データを更に記憶し、ＣＰＵ１０は、チェック用データＣが記憶されている記憶領域に対する改竄チェックを行う場合、チェック用データＣと比較用データを比較する。したがって、各チェック用データＣを長さと値が異なるデータとした場合と比較して、フラッシュメモリ１３（又はＲＡＭ１２）を有効活用することができ（チェック用データＣ毎に比較用データを記憶しておく必要がない）、改竄チェック処理におけるＣＰＵ１０の処理負荷も軽減することができる。
【００４３】
［３．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
【００４４】
［３．１．変形例１］
図２では、プログラム中にチェック用データＣが含まれていないが、プログラム中にチェック用データＣを配置してもよい。例えば、プログラムのコードの中で、チェック用データＣを処理には使わないダミーデータとして定義する。当該ダミーデータは当該プログラムの処理では使用しないが、外部から参照可能に定義しておくことで、ＯＳはダミーデータがフラッシュメモリ１３のどの位置に記憶されているかを把握することができるので、チェック用データ格納位置テーブルＴのアドレス欄に記述することとする。これにより、フラッシュメモリ１３のプログラムが記憶されている領域中にチェック用データＣをダミーデータとして記憶させることができる。
【００４５】
［３．２．変形例２］
上記実施形態では、チェック用データＣを固定長の所定値からなるデータとしたが、チェック用データＣ毎に長さ（Length)又は値の少なくとも何れか一方を異ならせてもよい。この場合、図５に示すように、チェック用データ格納位置テーブルＴ２には、ＩＮＤＥＸ及びアドレスに加えて、チェック用データＣの長さ（Length)と値を記述しておくこととする。そして、改竄チェック処理時には、チェック用データ格納位置テーブルＴ２に記述された「アドレス」から「長さ（Length）」分のチェック用データＣを特定し、当該チェック用データＣと、チェック用データ格納位置テーブルＴ２に記述された「値」を比較する。
【００４６】
［３．３．変形例３］
上記実施形態では、固定長の所定値からなるチェック用データＣをノーマル領域１３２に格納することとしたが、既にノーマル領域１３２において任意の位置、長さ（Length)、値で記憶されているビット列をチェック用データＣとしてもよい。本変形例３の場合も変形例２の場合と同様のチェック用データ格納位置テーブルＴ２を用いることができる。本変形例によれば、固定長の所定値からなるチェック用データＣをノーマル領域１３２に格納しなくてすむことから、ノーマル領域１３２の空き領域を多く確保することができる。但し、正常なプログラムの実行等により値が変わるビット列をチェック用データＣとすると値が変わる度にチェック用データ格納位置テーブルＴ２の値を書き換える必要がありＣＰＵ１０の処理負担が大きくなることから、値が変わることのないビット列を特定してチェック用データＣとするのが好ましい。
【００４７】
［３．４．変形例４］
チェック用データＣを記憶させる位置（アドレス位置）をＩＣカード１（ＩＣチップ１ａ）毎に異ならせても良い。一般的に攻撃者は同じ種類のカードを大量に入手して、１枚ずつレーザを照射する位置を変更しながらセキュリティデータが記憶されている位置を推測するため、本変形例のように、チェック用データＣの位置をＩＣカード１（ＩＣチップ１ａ）毎に異ならせておくことにより、セキュリティデータが記憶されている位置の特定をより困難にさせることができる。
【符号の説明】
【００４８】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  フラッシュメモリ
１３１  セキュリティ領域
１３２  ノーマル領域
１４  Ｉ／Ｏ回路
Ｃ  チェック用データ
【図１】
2018163446.tif 000003
【図２】
2018163446.tif 000004
【図３】
2018163446.tif 000005
【図４】
2018163446.tif 000006
【図５】
2018163446.tif 000007