(57)【要約】【課題】本発明は、レーザー攻撃を受けた場合であっても、自身が管理する範囲外のデータをアクセスすることを防止することが可能な半導体装置等を提供することを目的とする。【解決手段】アプリケーションプログラムが選択される選択手段（１３１）と、記憶領域情報を取得する記憶領域情報取得手段（１３２）と、記憶領域情報が前記半導体装置（１０１）の前記記憶領域内か否かを判断し、記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断手段（１３３）と、記憶領域情報が前記半導体装置（１０１）の記憶領域内であって、記憶領域情報が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、チェック情報を追加し、アプリケーションプログラムに対応する記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定手段（１３４）と、を備える構成である。【選択図】図２
2010128571.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置において、
前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択手段と、
前記選択手段によって選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得手段と、
前記記憶領域情報によって示される記憶領域が前記半導体装置の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断手段と、
前記記憶領域情報判断手段によって、前記記憶領域情報によって示される前記記憶領域が前記半導体装置の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定手段と、
を備えることを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置おいて、
前記記憶領域情報取得手段が、前記選択手段によって選択された前記アプリケーションプログラムから読み出し記憶領域情報を取得した場合に、前記記憶領域情報設定手段によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックする設定記憶領域情報チェック手段と、
前記設定記憶領域情報チェック手段によって前記設定記憶領域情報が書き換えられていないことがチェックされた場合に、前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるかを判定する読み出し記憶領域情報チェック手段と、
前記読み出し記憶領域情報チェック手段によって、前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれていると判定された場合に、前記読み出し記憶領域情報に対応する記憶領域のデータ情報を読み出すデータ情報読出手段と、
を更に備えることを特徴とする半導体装置。
【請求項３】
請求項１に記載の半導体装置おいて、
前記記憶領域情報取得手段が、前記選択手段によって選択された前記アプリケーションプログラムから更新記憶領域情報を取得した場合に、前記記憶領域情報設定手段によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックする設定記憶領域情報チェック手段と、
前記設定記憶領域情報チェック手段によって前記設定記憶領域情報が書き換えられていないことがチェックされた場合に、前記更新記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるかを判定する更新記憶領域情報チェック手段と、
前記更新記憶領域情報チェック手段によって、前記更新記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれていると判定された場合に、前記更新記憶領域情報に対応する前記記憶領域の前記データ情報を更新するデータ情報更新手段と、
を更に備えることを特徴とする半導体装置。
【請求項４】
請求項２に記載の半導体装置おいて、
前記データ情報読出手段が前記データ情報をバイト単位で読み出す毎に、前記設定記憶領域情報チェック手段は、前記記憶領域情報設定手段によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックし、前記読み出し記憶領域情報チェック手段は前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるか否かを判定することを特徴とする半導体装置。
【請求項５】
請求項３に記載の半導体装置おいて、
前記データ情報更新手段が前記データ情報をバイト単位で更新する毎に、前記設定記憶領域情報チェック手段は、前記記憶領域情報設定手段によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックし、前記更新記憶領域情報チェック手段は前記更新記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるか否かを判定することを特徴とする半導体装置。
【請求項６】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置の制御方法において、
前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択工程と、
前記選択行程において選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得工程と、
前記記憶領域情報によって示される記憶領域が前記半導体装置の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断工程と、
前記記憶領域情報判断工程において、前記記憶領域情報によって示される前記記憶領域が前記半導体装置の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定工程と、
を備えることを特徴とする半導体装置の制御方法。
【請求項７】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置に含まれるコンピュータを、
前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択手段、
前記選択手段によって選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得手段、
前記記憶領域情報によって示される記憶領域が前記半導体装置の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断手段、
前記記憶領域情報判断手段によって、前記記憶領域情報によって示される前記記憶領域が前記半導体装置の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定手段、
として機能させることを特徴とする半導体装置の制御プログラム。
【請求項８】
請求項１乃至４の何れか一項に記載の前記半導体装置はＩＣ（Ｉｎｔｅｇｒａｔｅ  Ｃｉｒｃｕｉｔ）チップを搭載したＩＣカードであることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびＣＰＵ（セントラル・プロセッシング・ユニット）などの制御素子を有するＩＣ（集積回路）チップを内蔵し、外部装置から入力されるコマンド（命令）に基づき、各種処理を実行するＩＣカードなどの半導体装置、半導体装置の制御方法および半導体装置の制御プログラムに関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、不揮発性メモリとしてのＥＥＰＲＯＭ、揮発性メモリとしてのＲＡＭ、これらのメモリに対してアクセス（データの読出しおよびまたは書込み等）を行なう制御素子としてのＣＰＵ、および、ＣＰＵの動作用プログラム等を格納したＲＯＭを有し、外部から供給されるコマンド（命令）に基づきデータの書込みや読出し等を行なう手段を備えたＩＣチップを内蔵したＩＣカードが各産業方面で利用されている。
【０００３】
一般に、この種のＩＣカードは、外部装置（ＩＣカードリーダ・ライタ）からのデータ
書込みコマンドを受信すると、当該コマンドに付加されたデータを不揮発性メモリのコマ
ンドで指定された領域に書込むようになっている。
【０００４】
また、外部装置からのデータ読出しコマンドを受信すると、対象となるデータを不揮発
性メモリから検索し、該当したデータが存在する場合、当該データをその先頭からデータ
長分、読出すようになっている。
【０００５】
近年、クレジットカード、キャッシュカードなど、高いセキュリティが必要とされる分
野を対象に、磁気カードに変わってＩＣチップを搭載したＩＣカードの普及が始まっている。このようなＩＣチップを搭載したＩＣカードは、外部の機器と接触もしくは非接触でデータの読み書きをするようになされる。また、データの授受を第３者に読み取られた際に解読を困難にするため、外部の機器とデータの読み書きする際にデータを暗号化して読み書きするようになされる。
【０００６】
しかし、放射、フラッシュ、光、レーザー、グリッチ、またはそれ以外による攻撃によりプログラム命令の実行が妨げられる事態が発生している。こうした攻撃は、実行される命令を変更し、結果としてプログラムの特定部分の不実行または不正確な実行を生じる。
【０００７】
プログラムを実行すると、たとえばレーザー、グリッチ、または電磁放射による攻撃が、プロセッサによって実行される命令コードを変更し、たとえばどの命令ｃｏｄｏｐも、ｃｏｄｏｐ  ００ｈ（６８０５ではＢＲＳＥＴ０、８０５１およびＡＶＲではＮＯＰ）にコンバートする。すなわち、プログラム命令は、動作不能な命令で置き換えられる。したがって、コードの特定のセクションは、実行に失敗し、または不規則に実行し、たとえばスマートカード向けのオペレーティングシステムにおけるセキュリティ処理シーケンスではなく、動作不能な命令の実行となる。攻撃は、プロセッサ動作を妨げ、プログラムメモリ内での時機を失したジャンプを引き起こす場合がある。
【０００８】
そこで、最近、ＩＣカードの偽造や改竄のために内部の不揮発性メモリのデータを不
正に読出すなどのいわゆる、タンパ攻撃への対策のため様々な対応策（耐タンパ対策）が
考えられている。その中で、不揮発性メモリに書込まれるデータを二重化することで、デ
ータが改竄されたことを検知する手法がある（たとえば、特許文献１参照）。
【０００９】
また、命令コードそのものに対するチェックを実施する方法がある（たとえば、特許文献２参照）。
【特許文献１】特開平４−３３９６１４号公報
【特許文献２】特表２００７−５１３４２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、攻撃技術の進歩によりコード自体は正常であるにも関わらず、メモリアクセスのタイミングで読み書きの対象アドレスを変化させる攻撃を行うことが可能となっている(レーザー攻撃)。
【００１１】
したがって、データの読み書きを行う際に悪意のある第三者が外部からアドレスを攻撃しアドレスを変化させた場合、自身が管理する範囲外のデータをアクセスする可能性がある。
【００１２】
そこで、本発明は、レーザー攻撃を受けた場合であっても、データへアクセスする場合にデータを管理するメモリ管理処理を経由すること、さらにメモリ管理処理がデータへアクセスする際に、指定されたアドレスがアクセス可能な領域であることを確認することにより、自身が管理する範囲外のデータをアクセスすることを防止することが可能な半導体装置、半導体装置の制御方法および半導体装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明は次のような構成を採用する。
【００１４】
すなわち、請求項１に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１０１）において、前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択手段（１３１）と、前記選択手段（１３１）によって選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得手段（１３２）と、前記記憶領域情報によって示される記憶領域が前記半導体装置（１０１）の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断手段（１３３）と、前記記憶領域情報判断手段（１３３）によって、前記記憶領域情報によって示される前記記憶領域が前記半導体装置（１０１）の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定手段（１３４）と、を備えることを特徴とする。
【００１５】
また、請求項２に係る発明は、請求項１に記載の半導体装置（１０１）おいて、前記記憶領域情報取得手段（１３２）が、前記選択手段（１３１）によって選択された前記アプリケーションプログラムから読み出し記憶領域情報を取得した場合に、前記記憶領域情報設定手段（１３４）によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックする設定記憶領域情報チェック手段（１３５）と、前記設定記憶領域情報チェック手段（１３５）によって前記設定記憶領域情報が書き換えられていないことがチェックされた場合に、前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段（１３１）によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるかを判定する読み出し記憶領域情報チェック手段（１３６）と、前記読み出し記憶領域情報チェック手段（１３６）によって、前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段（１３１）によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれていると判定された場合に、前記読み出し記憶領域情報に対応する記憶領域のデータ情報を読み出すデータ情報読出手段（１３７）と、を更に備えることを特徴とする。
【００１６】
さらに、請求項３に係る発明は、請求項１に記載の半導体装置（１０１）おいて、前記記憶領域情報取得手段（１３４）が、前記選択手段（１３１）によって選択された前記アプリケーションプログラムから更新記憶領域情報を取得した場合に、前記記憶領域情報設定手段（１３４）によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックする設定記憶領域情報チェック手段（１３５）と、前記設定記憶領域情報チェック手段（１３５）によって前記設定記憶領域情報が書き換えられていないことがチェックされた場合に、前記更新記憶領域情報によって示される前記記憶領域が前記選択手段（１３１）によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるかを判定する更新記憶領域情報チェック手段（１３８）と、前記更新記憶領域情報チェック手段（１３８）によって、前記更新記憶領域情報によって示される前記記憶領域が前記選択手段によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれていると判定された場合に、前記更新記憶領域情報に対応する前記記憶領域の前記データ情報を更新するデータ情報更新手段（１３９）と、を更に備えることを特徴とする。
【００１７】
さらに、請求項４に係る発明は、請求項２に記載の半導体装置（１０１）おいて、前記データ情報読出手段（１３７）が前記データ情報をバイト単位で読み出す毎に、前記設定記憶領域情報チェック手段（１３５）は、前記記憶領域情報設定手段（１３４）によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックし、前記読み出し記憶領域情報チェック手段（１３６）は前記読み出し記憶領域情報によって示される前記記憶領域が前記選択手段（１３１）によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるか否かを判定することを特徴とする。
【００１８】
さらに、請求項５に係る発明は、請求項３に記載の半導体装置（１０１）おいて、前記データ情報更新手段（１３９）が前記データ情報をバイト単位で更新する毎に、前記設定記憶領域情報チェック手段（１３５）は、前記記憶領域情報設定手段（１３４）によって設定された前記設定記憶領域情報に追加された前記チェック情報を用いて前記設定記憶領域情報が書き換えられていないかをチェックし、前記更新記憶領域情報チェック手段（１３８）は前記更新記憶領域情報によって示される前記記憶領域が前記選択手段（１３１）によって選択された前記アプリケーションプログラムに対応する前記設定記憶領域情報によって示される前記記憶領域に含まれるか否かを判定することを特徴とする。
【００１９】
さらに、請求項６に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１０１）の制御方法において、前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択工程（１３１）と、前記選択工程（１３１）において選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得工程（１３２）と、前記記憶領域情報によって示される記憶領域が前記半導体装置（１０１）の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断工程（１３３）と、前記記憶領域情報判断工程（１３３）において、前記記憶領域情報によって示される前記記憶領域が前記半導体装置（１０１）の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定工程（１３４）と、を備えることを特徴とする。
【００２０】
さらに、請求項７に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１０１）に含まれるコンピュータを、前記アプリケーションプログラムの選択情報に基づいて前記アプリケーションプログラムが選択される選択手段（１３１）、前記選択手段（１３１）によって選択された前記アプリケーションプログラムから記憶領域情報を取得する記憶領域情報取得手段（１３２）、前記記憶領域情報によって示される記憶領域が前記半導体装置（１０１）の前記記憶領域内か否かを判断し、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する記憶領域情報判断手段（１３３）、前記記憶領域情報判断手段（１３３）によって、前記記憶領域情報によって示される前記記憶領域が前記半導体装置（１０１）の前記記憶領域内であって、前記記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する記憶領域情報設定手段（１３４）として機能させることを特徴とする。
【００２１】
さらに、請求項８に係わる発明では、請求項１乃至４の何れか一項に記載の前記半導体装置（１０１）はＩＣ（Ｉｎｔｅｇｒａｔｅ  Ｃｉｒｃｕｉｔ）チップ（１０２）を搭載したＩＣカード（１０１）であることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、アプリケーションプログラム毎のアクセス可能領域を示す情報に対してレーザー攻撃をされた場合であっても、アクセス可能領域を示す情報にチェック情報が付加されており、チェック情報が正当でない場合にはアクセス可能領域を設定しないので、レーザー攻撃による誤動作を回避することが可能になる。
【００２３】
また、本発明によれば、データアクセスアドレスに対してレーザー攻撃をされた場合であっても、そのレーザー攻撃を検知することが可能となり、重要なデータを読み出されることなくプログラムが正常に動作するので、レーザー攻撃による重要なデータの読み出し動作を回避することが可能になる。
【００２４】
さらに、本発明によれば、データアクセスアドレスに対してレーザー攻撃をされた場合であっても、そのレーザー攻撃を検知することが可能となり、重要なデータを更新される（書き換えられる）ことなくプログラムが正常に動作するので、レーザー攻撃による重要なデータの更新（書き換え）動作を回避することが可能になる。
【００２５】
さらに、本発明によれば、データアクセスアドレスに対してレーザー攻撃をされた場合であっても、より確実にそのレーザー攻撃を検知することが可能となり、重要なデータを読み出される（あるいは書き換えられる）ことなくプログラムが正常に動作し、安全性が高まるので、レーザー攻撃による重要なデータの読み出し（書き換え）動作を確実に回避することが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明を実施するための最良の形態について説明する。
【００２７】
但し、本発明は多くの異なる態様で実施することが可能であり、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本実施の形態の記載内容に限定して解釈されるものではない。なお、実施の形態を説明するための全図において、同一部分又は同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【００２８】
（実施形態）
本実施の形態では、本発明におけるレーザー攻撃を阻止する機能を実現するための装置構成及び、フローチャートについて説明する。
【００２９】
図１に本発明におけるレーザー攻撃を阻止する機能を搭載する対象であるデータ情報を処理する半導体装置であるＩＣチップを含むＩＣカードのブロック図を示す。
【００３０】
図１において、ＩＣカード１０１は、演算回路１０６、アナログ部１１５を有する。演算回路１０６は、ＣＰＵ１０２（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央処理装置ともいう。またＭＰＵ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）ともいう。）、ＲＯＭ１０３（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；読み出し専用メモリともいう）、ＲＡＭ１０４（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；ランダムアクセスメモリともいう）、補助演算装置１２４、フラッシュメモリ等の不揮発性メモリ１２５、コントローラ１０５を有する。また、アナログ部１１５は、アンテナ１０７、共振回路１０８、電源回路１０９、リセット回路１１０、クロック生成回路１１１、復調回路１１２、変調回路１１３、電源管理回路１１４を有する。また、コントローラ１０５は、ＣＰＵインターフェース１１６（ＣＰＵＩＦ）、制御レジスタ１１７、コード抽出回路１１８、符号化回路１１９より構成される。なお、図１では、説明の簡略化のため通信信号として、受信信号１２０と送信信号１２１とに分けて示したが、実際には両者は重ね合わされており、ＩＣカード１０１及びリーダライタ装置の間で同時に送受信される。受信信号１２０は、アンテナ１０７と共振回路１０８とで受信された後、復調回路１１２により復調される。また、送信信号１２１は、変調回路１１３により変調された後、アンテナ１０７より送信される。なお、受信信号及び送信信号とは、ＩＣカード側を主体とした表現であり、ＩＣカードが外部からの信号を受信、外部に信号を送信するものであることを付記する。本明細書においては、リーダライタよりＩＣカードが受信する信号、換言すればリーダライタが送信する信号のことを外部からの信号といい、外部からの信号をＩＣカードが受信及びリーダライタが送信することを外部からの信号の送受信という。
【００３１】
なお、図１は非接触の場合について説明しているが、「アナログ部（１１５）＋コード抽出回路（１１８）＋符号化回路（１１９）」を「入出力部」と考えれば、図１の全体は接触ＩＣカードと考えることができる。このように、本実施形態は非接触ＩＣカードとしてだけではなく接触ＩＣカードの実施形態と考えることもできる。
【００３２】
また、ＲＯＭ１０３は、リーダライタから受信した受信データを処理する際に機能するプログラム（レーザー攻撃阻止プログラムである本実施形態に係わるメモリ管理処理プログラム、プログラムＡ、プログラムＢおよびプログラムＣ）が格納され、ＲＡＭ１０４にはプログラムが機能した際の処理データが格納される。ＲＯＭ１０３にはマスクＲＯＭ等があり、ＲＡＭ１０４にはスタティック型メモリ（ＳＲＡＭ）やダイナミック型メモリ（ＤＲＡＭ）等があり、不揮発性メモリ１２５にはＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ等のフラッシュメモリがある。不揮発性メモリ１２５には、履歴等のデータ、暗証番号等の情報が記憶され、レーザー攻撃の対象となり得るデータが記憶（格納）されている。
【００３３】
また、リーダライタから受信した受信データを処理する際に機能するプログラム（レーザー攻撃阻止プログラムである本実施形態に係わるメモリ管理処理プログラム、プログラムＡ１５０、プログラムＢ１５１およびプログラムＣ１５２）が不揮発性メモリ１２５に格納されていてもよい（本実施形態ではこの場合について説明する）。
【００３４】
さらに、記憶領域に設けられるべきＲＯＭ１０３および／またはＲＡＭ１０４の代わりに記憶領域を不揮発性メモリ１２５で構成することも可能である。
【００３５】
例えば、レーザー攻撃から情報を保護する本実施形態に係わるメモリ管理処理プログラム、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２に不具合が発生した場合には外部からいつでも自由にメモリ管理処理プログラム、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２を書き換え可能に構成することができる。
【００３６】
また図２には、ＲＯＭ１０３または不揮発性メモリ１２５に記憶されている、メモリ管理処理プログラム、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２のブロック図を示す。メモリ管理処理プログラム、はＣＰＵ１０２上で実行されるので、図２には、ＣＰＵ１０２上に展開された選択部１３１、記憶領域情報取得部１３２、記憶領域情報判断部１３３、記憶領域情報設定部１３４、設定記憶領域情報チェック部１３５、読み出し記憶領域情報チェック部１３６、データ情報読出部１３７、更新記憶領域情報チェック部１３８、データ情報更新部１３９、としてのメモリ管理処理プログラムの各機能ブロックを示した。
【００３７】
メモリ管理処理プログラム、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２の動作については、後述するフローチャートでさらに詳細に説明することにする。
【００３８】
また、後述するフローチャートで説明される不揮発性メモリ１２５領域に記憶されるレーザー攻撃の対象となるデータ情報（履歴等）と暗証番号情報等の情報は図２においてアプリケーションプログラムＡデータ１５０ｄ、アプリケーションプログラムＢ１５１ｄデータおよびアプリケーションプログラムＣデータ１５２ｄとして示した。
【００３９】
ＲＡＭ１０４は、送信データレジスタ２０３、受信データレジスタ２０４を有する。送信データレジスタ２０３は、ＩＣカードが送信するデータを格納する機能を有する。受信データレジスタ２０４は、ＩＣカードが受信したデータを格納する機能を有する。ＲＡＭ１０４は、ＲＯＭ１０３に比べて情報量が少ないため、その面積は小さい。
【００４０】
また、リーダライタからＩＣカードに送信される信号、換言するとＩＣカードが受信する信号の構成の一例について説明する。受信信号は、ＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ；フレームの開始）、フラグ、コマンド、データ、ＣＲＣ（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ、巡回冗長検査ともいう）、ＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ；フレームの終了）を有する信号である。ＳＯＦ，ＥＯＦは単に信号の開始と終了を示すものである。フラグはＡＳＫ、ＦＳＫ等の変調の種類の情報を有する。データには、暗号解読するデータが含まれる。ＣＲＣはデータの誤認を防止するためにデータより生成される固有のコードの情報を有する。
【００４１】
なお、本発明でいうコンピュータとは、記憶部、制御部等を備えた情報処理装置をいい、ＩＣカード１０１では、ＣＰＵ１０２、不揮発性メモリ１２５等を備えて構成される。
【００４２】
また、本発明に係るＩＣカード１０１は、上述のような構成を有することにより、処理されるべきプログラムであるアプリケーションプログラムを選択し、アプリケーションプログラムがアクセスすべき記憶領域情報を取得し、記憶領域情報がＩＣカード１０１上のメモリ空間であり他のアプリケーションプログラムがアクセスする範囲と重複しない場合には、記憶領域情報に記憶領域情報の改竄を判定するためのチェック情報を追加して設定記憶領域情報としてアプリケーションプログラムのデータアクセス範囲を設定する。
【００４３】
また、アプリケーションプログラムがそのアプリケーションプログラムの設定記憶領域情報をアクセスする場合には、設定記憶領域情報が改竄されていなかをチェックし、更にアプリケーションプログラムがアクセスしようとする記憶領域情報（読み出し記憶領域情報、更新記憶領域情報）が、そのアプリケーションプログラムの設定記憶領域情報の範囲内か否かをチェックしてから、アプリケーションプログラムのアクセスを許可する機能を有している。
【００４４】
ここで、当該機能を発揮するための構成について、図２に示す機能ブロック図を用いて説明する。本発明におけるレーザー攻撃を阻止する機能を搭載する対象であるデータ情報を処理する半導体装置であるＩＣチップを含むＩＣカード１０１は、選択部１３１、記憶領域情報取得部１３２、記憶領域情報判断部１３３、記憶領域情報設定部１３３、設定記憶領域情報チェック部１３４、読み出し記憶領域情報チェック部１３６、データ情報読出部１３７、更新記憶領域情報チェック部１３８、データ情報更新部１３９、を含んで構成される。
【００４５】
選択部１３１は、アプリケーションプログラムの選択情報に基づいてアプリケーションプログラムが選択される機能を有する。
【００４６】
アプリケーションプログラムの選択情報は、上位の関数から与えられ、または受信信号１２０、およびＩＣカード１０１のアンテナを介して入力されてもよい。
【００４７】
また、アプリケーションプログラムとはＩＣカード１０１上で記憶されているアプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２を示し、アプリケーションプログラムの選択情報に基づき、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２の何れかが実行される場合と、複数のアプリケーションプログラムが選択され、時分割的に実行される場合とがある。
【００４８】
記憶領域情報取得部１３２は、選択部１３１によって選択された前記アプリケーションプログラムから記憶領域情報を取得する機能を有する。
【００４９】
この実施形態におけるアプリケーションプログラムは、処理の対象となるアプリケーションプログラムデータの読み出し、または更新をするプログラムであるので、処理の対象となるアプリケーションプログラムデータのアドレス範囲情報を示す記憶領域情報を取得する。
【００５０】
記憶領域情報判断部１３３は、記憶領域情報によって示される記憶領域（アドレス範囲）が半導体装置であるＩＣカード１０１の記憶領域内（ＲＯＭ１０３、ＲＡＭ１０４、不揮発メモリ１２５のデータを示すアドレス範囲内）か否かを判断し、記憶領域情報によって示される前記記憶領域が他のアプリケーションの前記記憶領域を含んでいるか否かを判断する。
【００５１】
ＩＣカード１０１の記憶領域内（ＲＯＭ１０３、ＲＡＭ１０４、不揮発メモリ１２５のデータを示すアドレス範囲内）であるか否かを判断するのは、ＩＣカード１０１の記憶領域外を記憶領域情報が示す場合には、プログラムが（故意、悪意等によって改竄され）暴走する可能性があるため、暴走を未然に防ぐ目的がある。
【００５２】
記憶領域情報によって示される記憶領域が他のアプリケーションの記憶領域を含んでいるか否かを判断するのは、例えば、アプリケーションプログラムＡ１５０のデータ領域はアプリケーションプログラムＡデータ１５０ｄであり、アプリケーションプログラムＡ１５０はアプリケーションプログラムＡデータ１５０ｄしかアクセスできないことになっているからである。
【００５３】
アプリケーションプログラムＡ１５０から記憶領域情報取得部１３２が取得した記憶領域情報がアプリケーションプログラムＡデータ１５０ｄ以外のアプリケーションプログラムＢデータ１５１ｄまたはアプリケーションプログラムＣデータ１５２ｄ等のデータ領域をアクセスするものである場合には、記憶領域情報が改竄されている可能性があるので範囲外へのアクセスを防ぐために、他のアプリケーションの前記記憶領域を含んでいるか否かを判断する。
【００５４】
記憶領域情報設定部１３４は、記憶領域情報判断部１３３によって、記憶領域情報によって示される記憶領域が半導体装置の記憶領域内であって、記憶領域情報によって示される記憶領域が他のアプリケーションの記憶領域を含んでいないと判断された場合には、前記記憶領域情報にチェック情報を追加し、前記アプリケーションプログラムに対応する前記記憶領域情報を設定記憶領域情報として設定する機能を有する。
【００５５】
すなわち、記憶領域情報設定部１３４は、記憶領域情報がＩＣカード１０１の記憶領域内（ＲＯＭ１０３、ＲＡＭ１０４、不揮発メモリ１２５のデータを示すアドレス範囲内）であり、他のアプリケーションの記憶領域を含んでいないと判断された場合には、記憶領域情報が改竄されておらず、正当であると判断し、記憶領域情報をそのアプリケーションプログラムの設定記憶領域情報として設定し、設定記憶領域情報に基づいて以降のアプリケーションプログラムのアクセス範囲をチェックする。
【００５６】
また、アプリケーションプログラムは、処理の対象となるアプリケーションプログラムデータの読み出し、または更新をするプログラムであるので、改竄されないように処理の対象となるアプリケーションプログラムデータのアドレス範囲情報を示す取得した記憶領域情報にチェックサム方式やＣＲＣ方式(Cyclic Redundancy Check)、パリティチェック方式等によるチェック情報を付加する。
【００５７】
これらのチェック情報は、アプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２のそれぞれのアプリケーションプログラム毎に設定されたアプリケーションプログラムＡデータ１５０ｄのアドレス範囲である設定記憶領域情報、アプリケーションプログラムＢ１５１ｄデータのアドレス範囲である設定記憶領域情報およびアプリケーションプログラムＣデータ１５２ｄのアドレス範囲である設定記憶領域情報が改竄されたか否かをチェックするために用いられる。
【００５８】
設定記憶領域情報チェック部１３５は、記憶領域情報取得部１３２が、選択部１３１によって選択されたアプリケーションプログラムから読み出し記憶領域情報を取得した場合に、記憶領域情報設定部１３４によって設定された設定記憶領域情報に追加されたチェック情報を用いて設定記憶領域情報が書き換えられていないかをチェックする機能を有する。
【００５９】
このように設定記憶領域情報チェック部１３５は、アプリケーションプログラムからデータ領域へのアクセスがある度に、チェック情報を用いて設定記憶領域情報が書き換えられていないかをチェックし、設定記憶領域情報の改竄を事前に察知し、重要な他のデータ領域のデータ情報が読み出し、または、更新されないようにしている。
【００６０】
読み出し記憶領域情報チェック部１３６は、設定記憶領域情報チェック部１３５によって設定記憶領域情報が書き換えられていないことがチェックされた場合に、読み出し記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれるか否かを判定する機能を有する。
【００６１】
このように、読み出し記憶領域情報チェック部１３６は、読み出し記憶領域情報によって示される記憶領域が、その選択されたアプリケーションプログラムがアクセスすることが許容されている記憶領域（設定記憶領域情報）内のデータをアクセスするものか否かを判定し、読み出し記憶領域情報がアクセスすることが許容されている記憶領域（設定記憶領域情報）内の場合にのみ、そのアクセスを許容する。
【００６２】
例えば、アプリケーションプログラムＡ１５０の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＡデータ１５０ｄであり、アプリケーションプログラムＢ１５１の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＢデータ１５１ｄであり、アプリケーションプログラムＣ１５２の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＣデータ１５２ｄである。
【００６３】
データ情報読出部１３７は、読み出し記憶領域情報チェック部１３６によって、読み出し記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される前記記憶領域に含まれていると判定された場合に、前記読み出し記憶領域情報に対応する記憶領域のデータ情報を読み出す機能を有する。
【００６４】
更新記憶領域情報チェック部１３８は、設定記憶領域情報チェック部１３５によって設定記憶領域情報が書き換えられていないことがチェックされた場合に、更新記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれるかを判定する機能を有する。
【００６５】
このように、更新設定記憶領域情報チェック部１３８は、更新記憶領域情報によって示される記憶領域が、その選択されたアプリケーションプログラムがアクセスすることが許容されている記憶領域（設定記憶領域情報）内のデータをアクセスするものか否かを判定し、更新記憶領域情報がアクセスすることが許容されている記憶領域（設定記憶領域情報）内の場合にのみ、そのアクセスを許容する。
【００６６】
例えば、アプリケーションプログラムＡ１５０の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＡデータ１５０ｄであり、アプリケーションプログラムＢ１５１の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＢデータ１５１ｄであり、アプリケーションプログラムＣ１５２の設定記憶領域情報が示す設定記憶領域のデータはアプリケーションプログラムＣデータ１５２ｄであり、それぞれのデータが、それぞれのアプリケーションプログラムのアクセス許容範囲である。
【００６７】
データ情報更新部１３９は、更新記憶領域情報チェック部１３８によって、更新記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれていると判定された場合に、更新記憶領域情報に対応する記憶領域のデータ情報を更新する（書き換える）機能を有する。
【００６８】
［実施例１］
次に、図２におけるＣＰＵ１０２でのレーザー攻撃を阻止する機能をもつメモリ管理処理プログラムの動作の一部を、図３のフローチャートと対応させながら説明する。
【００６９】
図３は、本実施形態のメモリ管理処理プログラムの一部であるアプリケーションプログラムが設定記憶領域情報によって示される記憶領域を設定する動作を示すフローチャートである。
【００７０】
より、具体的には、処理されるべきプログラムであるアプリケーションプログラムを選択し、アプリケーションプログラムがアクセスすべき記憶領域情報を取得し、記憶領域情報がＩＣカード１０１上のメモリ空間であり他のアプリケーションプログラムがアクセスする範囲と重複しない場合には、記憶領域情報に記憶領域情報の改竄を判定するためのチェック情報を追加して設定記憶領域情報としてアプリケーションプログラムのデータアクセス範囲を設定する処理について説明する。
【００７１】
ステップＳ１において、ＩＣカード１０１上のメモリ空間にあるアプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１およびアプリケーションプログラムＣ１５２の何れかの実行が指示される。
【００７２】
ステップＳ２において、メモリ管理処理プログラムにおいて実現される機能である選択部１３１は、アプリケーションプログラムの選択情報に基づいてアプリケーションプログラムを選択する。
【００７３】
ステップＳ３において、記憶領域情報取得部１３２は、選択部１３１によって選択されたアプリケーションプログラムから記憶領域情報を取得する。
【００７４】
ステップＳ４において、記憶領域情報判断部１３３は、ステップＳ３において取得した記憶領域情報によって示される記憶領域（アドレス範囲）がＩＣカード１０１の記憶領域内（ＲＯＭ１０３、ＲＡＭ１０４、不揮発メモリ１２５のデータを示すアドレス範囲内）であるか否かを判断するとともに、記憶領域が他のアプリケーションプログラムの記憶領域を含んでいるか否かを判断する。
【００７５】
記憶領域情報によって示される記憶領域が、ＩＣカード１０１の記憶領域内であるとともに、他のアプリケーションプログラムの記憶領域を含んでいない場合（ステップＳ４：ＹＥＳ）にはステップＳ５に進み、記憶領域情報によって示される記憶領域が、ＩＣカード１０１の記憶領域内でないか、または、他のアプリケーションプログラムの記憶領域を含んでいる場合（ステップＳ４：ＮＯ）にはステップＳ７に進む。
【００７６】
ステップＳ５において、記憶領域情報設定部１３４は、記憶領域情報にチェック情報を追加するとともに、ステップ３において取得したアプリケーションプログラムの記憶領域情報に基づいて設定記憶領域を設定する。
【００７７】
ステップＳ６において、メモリ管理処理プログラムは、記憶領域情報が異常であることを、メモリ管理処理プログラムを呼び出したアプリケーションプログラムに通知する。
【００７８】
このように図３に関わる動作によれば、アプリケーションプログラムのアクセス可能範囲である設定記憶領域の改竄を防止することが可能になる。また、記憶領域情報が異常であることを、メモリ管理処理プログラムを呼び出したプログラムに通知することが可能になる。
【００７９】
［実施例２］
次に、図２におけるＣＰＵ１０２でのレーザー攻撃を阻止する機能をもつメモリ管理処理プログラムの動作の一例を、図４のフローチャートと対応させながら説明する。
【００８０】
図４は、本実施形態のメモリ管理処理プログラムの一部であるアプリケーションプログラムの読み出し記憶領域情報がアクセス可能な範囲にあるか否かをチェックする動作を示すフローチャートである。
【００８１】
具体的には、アプリケーションプログラムがそのアプリケーションプログラムの設定記憶領域情報をアクセスする場合には、設定記憶領域情報が改竄されていなかをチェックし、更にアプリケーションプログラムがアクセスしようとする記憶領域情報（読み出し記憶領域情報）が、そのアプリケーションプログラムの設定記憶領域情報の範囲内か否かをチェックしてから、アプリケーションプログラムのアクセスを許可する機能を有している。
【００８２】
ステップＳ１０において、ＩＣカード１０１上のメモリ空間にあるアプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１またはアプリケーションプログラムＣ１５２によってデータ情報の読み出し処理が指示される。
【００８３】
ステップＳ１１において、選択部１３１は、アプリケーションプログラムの選択情報に基づいてアプリケーションプログラムを選択し、記憶領域情報取得部１３２は、選択部１３１によって選択されたアプリケーションプログラムから読み出し記憶領域情報を取得する。
【００８４】
ステップＳ１２において、設定記憶領域情報チェック部１３５は、記憶領域情報設定部１３４によって設定された設定記憶領域情報に追加されたチェック情報を用いて設定記憶領域情報が書き換えられていないかをチェックする。
【００８５】
設定記憶領域情報が書き換えられていない場合（ステップＳ１２：ＹＥＳ）にはステップＳ１３に進み、設定記憶領域情報が書き換えられている場合（ステップＳ１２：ＮＯ）にはステップＳ１７に進む。
【００８６】
ステップＳ１３において、読み出し記憶領域情報チェック部１３６は、読み出し記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれるか否かを判定する。
【００８７】
読み出し記憶領域情報によって示される記憶領域が選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれる場合（ステップＳ１３：ＹＥＳ）の場合にはステップＳ１４に進み、読み出し記憶領域情報によって示される記憶領域が選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれない場合（ステップＳ１３：ＮＯ）の場合にはステップＳ１７に進む。
【００８８】
ステップＳ１４において、データ情報読出部１３７は、読み出し記憶領域情報に対応する記憶領域のデータ情報を読み出す。
【００８９】
ステップＳ１５において、データ情報読出部１３７は、ステップＳ１４で読み出したデータ情報をステップＳ１２で選択されたアプリケーションプログラムに通知する。
【００９０】
ステップＳ１６において、メモリ管理処理プログラムはデータの読み出し処理を終了する。
【００９１】
ステップＳ１７において、メモリ管理処理プログラムは、設定記憶領域情報の異常（改竄されている）、または、読み出し記憶領域情報が異常（アクセスが許可された範囲外をアクスしようとしている）であることを、メモリ管理処理プログラムを呼び出したアプリケーションプログラムに通知する。
【００９２】
このように図４に関わる動作によれば、アプリケーションプログラムのアクセス可能範囲である設定記憶領域の改竄を察知することが可能になる。また、読み出し記憶領域情報が異常であることを、メモリ管理処理プログラムを呼び出したプログラムに通知することが可能になる。
【００９３】
［実施例３］
次に、図２におけるＣＰＵ１０２でのレーザー攻撃を阻止する機能をもつメモリ管理処理プログラムの動作の一例を、図５のフローチャートと対応させながら説明する。
【００９４】
図５は、本実施形態のメモリ管理処理プログラムの一部であるアプリケーションプログラムの更新記憶領域情報がアクセス可能な範囲にあるか否かをチェックする動作を示すフローチャートである。
【００９５】
具体的には、アプリケーションプログラムがそのアプリケーションプログラムの設定記憶領域情報をアクセスする場合には、設定記憶領域情報が改竄されていなかをチェックし、更にアプリケーションプログラムがアクセスしようとする記憶領域情報（更新記憶領域情報）が、そのアプリケーションプログラムの設定記憶領域情報の範囲内か否かをチェックしてから、アプリケーションプログラムのアクセスを許可する機能を有している。
【００９６】
ステップＳ２０において、ＩＣカード１０１上のメモリ空間にあるアプリケーションプログラムＡ１５０、アプリケーションプログラムＢ１５１またはアプリケーションプログラムＣ１５２によってデータ情報の更新処理が指示される。
【００９７】
ステップＳ２１において、選択部１３１は、アプリケーションプログラムの選択情報に基づいてアプリケーションプログラムを選択し、記憶領域情報取得部１３２は、選択部１３１によって選択されたアプリケーションプログラムから更新記憶領域情報を取得する。
【００９８】
ステップＳ２２において、設定記憶領域情報チェック部１３５は、記憶領域情報設定部１３４によって設定された設定記憶領域情報に追加されたチェック情報を用いて設定記憶領域情報が書き換えられていないかをチェックする。
【００９９】
設定記憶領域情報が書き換えられていない場合（ステップＳ２２：ＹＥＳ）にはステップＳ２３に進み、設定記憶領域情報が書き換えられている場合（ステップＳ２２：ＮＯ）にはステップＳ２７に進む。
【０１００】
ステップＳ２３において、更新記憶領域情報チェック部１３８は、更新記憶領域情報によって示される記憶領域が選択部１３１によって選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれるか否かを判定する。
【０１０１】
更新記憶領域情報によって示される記憶領域が選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれる場合（ステップＳ２３：ＹＥＳ）の場合にはステップＳ２４に進み、更新記憶領域情報によって示される記憶領域が選択されたアプリケーションプログラムに対応する設定記憶領域情報によって示される記憶領域に含まれない場合（ステップＳ２３：ＮＯ）の場合にはステップＳ２６に進む。
【０１０２】
ステップＳ２４において、データ情報更新部１３９は、更新記憶領域情報に対応する記憶領域のデータ情報を更新する。
【０１０３】
また、データ情報更新部１３９は、ステップＳ２４で読み出したデータ情報をステップＳ２２で選択されたアプリケーションプログラムに通知し、アプリケーションプログラムにおいて更新したデータ情報が正しいかをチェックしてもよい。
【０１０４】
ステップＳ２５において、メモリ管理処理プログラムはデータ情報の更新処理を終了する。
【０１０５】
ステップＳ２６において、メモリ管理処理プログラムは、設定記憶領域情報の異常（改竄されている）、または、更新記憶領域情報が異常（アクセスが許可された範囲外をアクスしようとしている）であることを、メモリ管理処理プログラムを呼び出したアプリケーションプログラムに通知する。
【０１０６】
このように図５に関わる動作によれば、アプリケーションプログラムのアクセス可能範囲である設定記憶領域の改竄を察知することが可能になる。また、更新記憶領域情報が異常であることを、メモリ管理処理プログラムを呼び出したプログラムに通知することが可能になる。
【０１０７】
なお、本実施例は、本明細書中の他の実施の形態の記載とも適宜組み合わせて実施することが可能である。
【０１０８】
［本実施形態の概念の説明］
図６を用いて、本実施形態の概念について説明する。
（１）アプリケーション選択後にアプリケーションプログラムＡは、自身が管理するアプリケーションプログラムＡデータのメモリ範囲情報をメモリ管理処理へ通知する。そしてメモリ範囲情報にはチェックコード等の改竄を判定できるような情報を付加しておく。
【０１０９】
（２）アクセス可能範囲の設定
メモリ管理処理は、指定されたメモリ範囲情報（チェックコード等のチェック情報を含む）をアクセス可能範囲として内部へ保持する。
【０１１０】
（３）データ読み出し（またはデータの更新）
アプリケーションプログラムＡは、読み出す（または更新する）データのアドレスを指定しメモリ管理処理を経由しデータへアクセスする。
【０１１１】
（４）アクセス可能範囲判定
メモリ管理処理は、内部で保持しているアクセス可能範囲が改竄されていないことを確認する。続いて指定されたアドレスがアクセス可能範囲内であるかを判定する。
ここでアクセス可能範囲が改竄されているか、またはアドレスがアクセス可能範囲外であることを確認した場合は次のステップへ進まず異常動作として異常動作情報をアプリケーションプログラムＡ通知する。
【０１１２】
（５）データアクセス
指定されたアドレスからデータの読み出し、または更新を行う。
【０１１３】
（６）読み出しデータ取得
（３）にてデータ読み出しを指定した場合は、読み出したデータをアプリケーションに通知する。
【０１１４】
本発明によれば、レーザー攻撃を阻止する機能を有するＩＣチップを備えたＩＣカードにおいて、メモリ管理処理を備えることにより、レーザー攻撃によって内部情報を取り出すことが殆ど不可能になり、セキュリティを高めることが出来る。また、レーザー攻撃を阻止する機能を有するＩＣチップにおいて、レーザー攻撃を阻止する方法が変更になることに伴う仕様の変更があった場合にも、ＩＣチップのマスク設計の段階から作り直す必要がない。そのため、製造コストの削減及び製造時間の短縮ができる。また、マスク設計の変更によって再度作り直したＩＣチップに不具合が生じているといった懸念もない。
【０１１５】
さらに、従来においては、レーザー攻撃を阻止する機能を有するＩＣチップを製造する際においては、レーザー攻撃を阻止する回路を搭載することもあった。しかしながら、本発明を採用することで、レーザー攻撃を阻止する機能を読み出し専用メモリまたは不揮発性メモリにプログラムとして格納することにより、別途レーザー攻撃を阻止する機能を備えた回路を設ける場合より、ＩＣチップを小型化することができる。そのため、ＩＣチップの軽量化、１枚の基板から作製できるＩＣチップの数の増加に伴うコストの削減、またレーザー攻撃を阻止する機能を備えた回路の分だけ、トランジスタ数が減少することによる歩留まりの向上に貢献することができる。
【０１１６】
以上のように、本発明の半導体装置は物品であればどのようなものにでも設けて使用し
てもよく、ほかにも免許証、保険証、定期券、キャッシュカード、クレジットカード、電
子キー、電子マネー等に使用することができる。
【０１１７】
なお、図３乃至図５における動作手順を、ハードディスク等の記録媒体に予め記録しておき、或いはインターネット等のネットワークを介して予め記録しておき、これを汎用のマイクロコンピュータ等により読み出して実行することにより、当該汎用のマイクロコンピュータ等を実施形態に係わるＣＰＵとして機能させることも可能である。
【０１１８】
さらに、本発明は上記実施例に限定されるものではなく、本発明の要旨の範囲内において種々変更可能である。
【０１１９】
さらに、本明細書に記載および図示されている実施形態は具体例としてのものであるに過ぎず、本発明の範囲を限定するものと考えるべきではないと理解すべきである。本発明の精神および範囲にしたがって上述以外の変更および修正を施すことも可能である。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施形態に係る半導体装置（１０１）の全体を示すブロック図である。
【図２】本発明の実施形態に係るメモリ管理処理の機能概要を示す図である。
【図３】本発明の実施形態に係るメモリ管理処理の実施例１の動作を示すフローチャートである。
【図４】本発明の実施形態１に係るメモリ管理処理の実施例２の動作を示すフローチャートである。
【図５】本発明の実施形態１に係るメモリ管理処理の実施例３の動作を示すフローチャートである。
【図６】本発明に係わる実施形態の概念を示す図である。
【符号の説明】
【０１２１】
１０１  ＩＣカード
１０２  ＣＰＵ１０２
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  コントローラ
１０６  演算回路
１０７  アンテナ
１０８  共振回路
１０９  電源回路
１１２  復調回路
１１３  変調回路
１１４  電源管理回路
１１５  アナログ部
１２５  フラッシュメモリ等の不揮発性メモリ
１３１  選択部
１３２  記憶領域情報取得部
１３３  記憶領域情報判断部
１３４  記憶領域情報設定部
１３５  設定記憶領域情報チェック部
１３６  読み出し記憶領域情報チェック部
１３７  データ情報読出部
１３８  更新記憶領域情報チェック部
１３９  データ情報更新部
【図１】
2010128571.tif 000003
【図２】
2010128571.tif 000004
【図３】
2010128571.tif 000005
【図４】
2010128571.tif 000006
【図５】
2010128571.tif 000007
【図６】
2010128571.tif 000008