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