説明

半導体装置、半導体装置の制御方法および半導体装置の制御プログラム

【課題】本発明は、レーザー攻撃による誤動作を回避するコトが可能な半導体装置、半導体装置の制御方法および半導体装置の制御プログラムを提供することを目的とする。
【解決手段】データ情報を処理する半導体装置(101)において、データ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理手段(102a)と、前記データ情報を前記半導体装置(101)から読み込む、データ情報読み込み手段(102b)と、を備え、前記データ情報読み込みコマンド処理手段(102a)は、前記データ情報読み込みコマンドの引数を前記半導体装置(101)の前記データ情報のアドレス情報に変換する引数変換手段(S2、S20)と、前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み手段(102b)に入力する引数入力手段(S3)とを備えることを特徴とする構成である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびCPU(セントラル・プロセッシング・ユニット)などの制御素子を有するIC(集積回路)チップを内蔵し、外部装置から入力されるコマンド(命令)に基づき、各種処理を実行するICカードなどの半導体装置、半導体装置の制御方法および半導体装置の制御プログラムに関する。
【背景技術】
【0002】
最近、携帯可能電子装置として、不揮発性メモリとしてのEEPROM、揮発性メモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム等を格納したROMを有し、外部から供給されるコマンド(命令)に基づきデータの書込みや読出し等を行なう手段を備えたICチップを内蔵したICカードが産業各方面で利用されている。
【0003】
一般に、この種のICカードは、外部装置(ICカードリーダ・ライタ)からのデータ
書込みコマンドを受信すると、当該コマンドに付加されたデータを不揮発性メモリのコマ
ンドで指定された領域に書込むようになっている。
【0004】
また、外部装置からのデータ読出しコマンドを受信すると、対象となるデータを不揮発
性メモリから検索し、該当したデータが存在する場合、当該データをその先頭からデータ
長分、読出すようになっている。
【0005】
近年、クレジットカード、キャッシュカードなど、高いセキュリティが必要とされる分
野を対象に、磁気カードに変わってICチップを搭載したICカードの普及が始まっている。このようなICチップを搭載したICカードは、外部の機器と接触もしくは非接触でデータの読み書きをするようになされる。また、データの授受を第3者に読み取られた際に解読を困難にするため、外部の機器とデータの読み書きする際にデータを暗号化して読み書きするようになされる。
【0006】
しかし、放射、フラッシュ、光、レーザー、グリッチ、またはそれ以外による攻撃によりプログラム命令の実行を妨げる攻撃が発生している。こうした攻撃は、実行される命令を変更し、結果としてプログラムの特定の部分の不実行または不正確な実行を生じる。
【0007】
プログラムを実行すると、たとえばレーザー、グリッチ、または電磁放射による攻撃が、プロセッサによって実行される命令コードを変更し、たとえばどの命令codopも、codop 00h(6805ではBRSET0、8051およびAVRではNOP)にコンバートする。すなわち、プログラム命令は、動作不能な命令で置き換えられる。したがって、コードの特定のセクションは、実行に失敗し、または不規則に実行し、たとえばスマートカード向けのオペレーティングシステムにおけるセキュリティ処理シーケンスではなく、動作不能な命令の実行となる。攻撃は、プロセッサ動作を妨げ、プログラムメモリ内での時機を失したジャンプを引き起こす場合がある。
【0008】
そこで、最近、ICカードの偽造や改竄のために内部の不揮発性メモリのデータを不
正に読出すなどのいわゆる、タンパ攻撃への対策のため様々な対応策(耐タンパ対策)が
考えられている。その中で、不揮発性メモリに書込まれるデータを二重化することで、デ
ータが改竄されたことを検知する手法がある(たとえば、特許文献1参照)。
【0009】
また、命令コードそのものに対するチェックを実施する方法がある(たとえば、特許文献2参照)。
【特許文献1】特開平4−339614号公報
【特許文献2】特表2007−513422号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかし、これまでは、命令コードそのものに対するチェックは実施をしていたが、命令を実行する値に関してのチェックは行われていなかった。
【0011】
例えば、関数Aから関数Bを呼び出す瞬間にレーザー攻撃を受けた場合に、関数Bの引数aがレーザー攻撃によって変更された場合には、これまでは関数Bは誤動作を引き起こしていた(図9参照)。
【0012】
関数BがICカード内のあるデータを出力する機能を有する場合には、レーザー攻撃を受けた場合に、重要なデータをICカード外部に出力してしまう可能性があった。
【0013】
そこで、本発明は、レーザー攻撃を受けた場合であっても、引数の2重化、またチェックコードを関数間で生成してチェックすることによってレーザー攻撃による誤動作を回避することが可能な半導体装置、半導体装置の制御方法および半導体装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するため、本発明は次のような構成を採用する。
【0015】
すなわち、請求項1に係る発明は、データ情報を処理する半導体装置(101)において、前記データ情報が前記半導体装置(101)から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理手段(102a)と、前記データ情報読み込みコマンド処理手段(102a)からの要求に応じて前記データ情報を前記半導体装置(101)から読み込む、データ情報読み込み手段(102b)と、を備え、前記データ情報読み込みコマンド処理手段(102a)は、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置(101)の前記データ情報のアドレス情報に変換する引数変換手段(S2、S20)と、前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み手段(102b)に入力する引数入力手段(S3)とを備え、前記データ情報読み込み手段(102b)は、入力された前記引数が同じ場合には前記引数で示される前記半導体装置(101)の前記アドレス情報から前記データ情報を読み出し(S8)、前記データ情報読み込みコマンド処理手段(102a)へ前記データ情報を出力し(S9)、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理手段(102a)へ出力する出力手段(S11)と、を備えることを特徴とする。
【0016】
また、請求項2に係る発明は、請求項1に記載の半導体装置(101)おいて、前記データ情報読み込みコマンドは前記データ情報として暗証情報を読み込むことを要求するコマンドであって、前記データ情報読み込みコマンド処理手段(102a)には、前記データ情報読み込み手段(102b)が出力した前記データ情報が入力され(S14)、前記暗証情報と入力された前記データ情報とが一致しない場合には前記データ情報読み込みコマンド処理手段(102a)を呼び出した処理手段へ前記異常情報を出力する(S18)ことを特徴とする。
【0017】
さらに、請求項3に係る発明は、請求項1に記載の半導体装置(101)おいて、前記データ情報読み込みコマンド処理手段(102a)は前記アドレス情報に基づいてチェックコード情報を生成し(S21)、前記引数入力手段は少なくとも一つ以上の前記チェックコード情報および前記アドレス情報を引数として、前記データ情報読み込み手段(102b)に入力し(S22)、前記データ情報読み込み手段(102b)は、前記アドレス情報に基づいて前記チェックコード情報を生成し(S26)、前記チェックコード情報と前記引数として入力された前記チェックコード情報とが異なる場合には、前記出力手段は、前記異常情報を前記データ情報読み込みコマンド処理手段(102a)へ出力する(S31)ことを特徴とする。
【0018】
さらに、請求項4に係る発明は、請求項1に記載の半導体装置(101)おいて、前記データ情報読み込みコマンドは前記データ情報として暗証情報を読み込むことを要求するコマンドであって(S33)、前記データ情報読み込みコマンド処理手段(102a)は前記暗証情報が記憶されているアドレス情報に基づいてチェックコード情報を生成し(S34)、前記引数入力手段は少なくとも一つ以上の前記チェックコード情報および前記暗証情報が記憶されている前記アドレス情報を引数として、前記データ情報読み込み手段(102b)に入力し(S35)、前記データ情報読み込みコマンド処理手段(102a)には、前記データ情報読み込み手段(102b)が出力した前記データ情報が入力され(S35)、前記暗証情報と入力された前記データ情報とが一致しない場合には(S36)前記データ情報読み込みコマンド処理手段(102a)を呼び出した処理手段へ前記異常情報を出力する(S39)ことを特徴とする。
【0019】
さらに、請求項5に係る発明は、データ情報を処理する半導体装置(101)の制御方法において、前記データ情報が前記半導体装置(101)から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理工程(102a)と、前記データ情報読み込みコマンド処理工程(102a)における要求に応じて前記データ情報を前記半導体装置(101)から読み込む、読み込みデータ情報読み込み工程(102b)と、を備え、前記データ情報読み込みコマンド処理工程(102a)において、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置(101)の前記データ情報のアドレス情報に変換する引数変換工程(S2、S20)と、前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み工程(102b)に対して入力する引数入力工程(S3)とを備え、前記データ情報読み込み工程(102b)において、入力された前記引数が同じ場合には前記引数で示される前記半導体装置(101)の前記アドレス情報から前記データ情報を読み出し(S8)、前記データ情報読み込みコマンド処理手段(102a)へ前記データ情報を出力(S9)し、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理工程へ出力する出力工程(S11)と、を備えることを特徴とする。
【0020】
さらに、請求項6に係る発明は、データ情報を処理する半導体装置(101)に含まれるコンピュータを、前記データ情報が前記半導体装置(101)から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理手段(102a)、前記データ情報読み込みコマンド処理手段(102a)からの要求に応じて前記データ情報を前記半導体装置(101)から読み込む、読み込みデータ情報読み込み手段(102b)、として機能させ、前記データ情報読み込みコマンド処理手段(102a)は、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置(101)の前記データ情報のアドレス情報に変換する引数変換手段(S2、S20)と、前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み手段(102b)に入力する引数入力手段(S3)として機能させ、前記データ情報読み込み手段(102b)は、入力された前記引数が同じ場合には前記引数で示される前記半導体装置(101)の前記アドレス情報から前記データ情報を読み出し(S8)、前記データ情報読み込みコマンド処理手段(102a)へ前記データ情報を出力し(S9)、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理手段(102a)へ出力する出力手段(S11)、として機能させることを特徴とする。
【0021】
さらに、請求項7に係る発明では、請求項1乃至4の何れか一項に記載の前記半導体装置(101)はIC(Integrate Circuit)チップ(102)を搭載したICカード(101)であることを特徴とする。
【発明の効果】
【0022】
本発明によれば、引数に対してレーザー攻撃をされた場合であっても、引数を二重化しており二つの引数が等しい場合にのみデータ情報を読み出す正常動作をするので、レーザー攻撃による誤動作を回避することが可能になる。
【0023】
また、本発明によれば、引数に対してレーザー攻撃をされた場合であっても、引数を二重化しており二つの引数が等しい場合にのみデータ情報を読み出す正常動作をするので、レーザー攻撃による誤動作を回避することが可能になる。
【0024】
さらに、本発明によれば、引数に対してレーザー攻撃をされた場合であっても、関数を呼び出す側の処理において(関数を含む)引数はチェックコードを用いて異常動作検出を実行することが可能になっており、関数を呼び出す側の処理において(関数を含む)チェックコードが等しい場合にのみデータ情報を読み出す正常動作をするので、レーザー攻撃を検知することが可能になる。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照して本発明を実施するための最良の形態について説明する。
【0026】
但し、本発明は多くの異なる態様で実施することが可能であり、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本実施の形態の記載内容に限定して解釈されるものではない。なお、実施の形態を説明するための全図において、同一部分又は同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【0027】
(実施の形態1)
本実施の形態では、本発明におけるレーザー攻撃を阻止する機能を実現するための装置構成及び、フローチャートについて説明する。
【0028】
図1に本発明におけるレーザー攻撃を阻止する機能を搭載する対象であるICチップを含むICカードのブロック図を示す。
【0029】
図1において、ICカード101は、演算回路106、アナログ部115を有する。演算回路106は、CPU102(Central Processing Unit;中央処理装置ともいう。またMPU(microprocessor)ともいう。)、ROM103(Read Only Memory;読み出し専用メモリともいう)、RAM104(Random Access Memory;ランダムアクセスメモリともいう)、補助演算装置124、フラッシュメモリ等の不揮発性メモリ125、コントローラ105を有する。また、アナログ部115は、アンテナ107、共振回路108、電源回路109、リセット回路110、クロック生成回路111、復調回路112、変調回路113、電源管理回路114を有する。また、コントローラ105は、CPUインターフェース116(CPUIF)、制御レジスタ117、コード抽出回路118、符号化回路119より構成される。なお、図1では、説明の簡略化のため通信信号として、受信信号120と送信信号121とに分けて示したが、実際には両者は重ね合わされており、ICカード101及びリーダライタ装置の間で同時に送受信される。受信信号120は、アンテナ107と共振回路108とで受信された後、復調回路112により復調される。また、送信信号121は、変調回路113により変調された後、アンテナ107より送信される。なお、受信信号及び送信信号とは、ICカード側を主体とした表現であり、ICカードが外部からの信号を受信、外部に信号を送信するものであることを付記する。本明細書においては、リーダライタよりICカードが受信する信号、換言すればリーダライタが送信する信号のことを外部からの信号といい、外部からの信号をICカードが受信及びリーダライタが送信することを外部からの信号の送受信という。
【0030】
なお、図1は非接触の場合について説明しているが、「アナログ部(115)+コード抽出回路(118)+符号化回路(119)」を「入出力部」と考えれば、図1の全体は接触ICカードと考えることができる。このように、本実施形態は非接触ICカードとしてだけではなく接触ICカードの実施形態と考えることもできる。
【0031】
また、ROM103は、リーダライタから受信した受信データを処理する際に機能するプログラム(レーザー攻撃阻止プログラムである本実施形態に係わるデータ情報読み込みコマンド処理手段(102a)の一部である関数A、データ情報読み込み処理手段としての関数B、データ情報読み込みコマンド処理手段(102a)の一部である関数C)が格納され、RAM104にはプログラムが機能した際の処理データが格納される。ROM103にはマスクROM等があり、RAM104にはスタティック型メモリ(SRAM)やダイナミック型メモリ(DRAM)等があり、不揮発性メモリ125にはNAND型フラッシュメモリ、NOR型フラッシュメモリ等のフラッシュメモリがある。不揮発性メモリ125には、履歴等のデータ、暗証番号等の情報が記憶され、レーザー攻撃の対象となり得るデータが記憶(格納)されている。
【0032】
また、記憶領域に設けられるべきROM103および/またはRAM104の代わりに記憶領域を不揮発性メモリ125で構成することも可能である。
【0033】
例えば、レーザー攻撃から情報を保護する本実施形態に係わる関数A、関数B、関数Cを不揮発性メモリ125に記憶し、関数A、関数B、関数Cに不具合が発生した場合には外部からいつでも自由に関数A、関数B、関数Cを書き換え可能に構成することができる。
【0034】
また図2には、ROM103に記憶されている、RAM104のアドレス空間を示す。ROM103にはレーザー攻撃阻止プログラムである本実施形態に係わるデータ情報読み込みコマンド処理手段(102a)の一部である関数A、データ情報読み込み処理手段としての関数B、データ情報読み込みコマンド処理手段(102a)の一部である関数Cが記憶されているが、これらの関数はCPU102上で実行されるので、図2には、CPU102上に展開されたデータ情報読み込みコマンド処理手段(102a)およびデータ情報読み込み処理手段(102b)としての関数A,関数B、関数Cを示した。
【0035】
これらの関数A,関数B、関数Cの動作については、後述するフローチャートでさらに詳細に説明することにする。
【0036】
また、後述するフローチャートで説明される不揮発性メモリ125領域に記憶されるレーザー攻撃の対象となるデータ(履歴等)と暗証番号情報をアドレスと共に示した。
【0037】
RAM104は、送信データレジスタ203、受信データレジスタ204を有する。送信データレジスタ203は、ICカードが送信するデータを格納する機能を有する。受信データレジスタ204は、ICカードが受信したデータを格納する機能を有する。RAM104は、ROM103に比べて情報量が少ないため、その面積は小さい。
【0038】
また、リーダライタからICカードに送信される信号、換言するとICカードが受信する信号の構成の一例について説明する。受信信号は、SOF(Start Of Frame;フレームの開始)、フラグ、コマンド、データ、CRC(cyclic redundancy check、巡回冗長検査ともいう)、EOF(End Of Frame;フレームの終了)を有する信号である。SOF,EOFは単に信号の開始と終了を示すものである。フラグはASK、FSK等の変調の種類の情報を有する。データには、暗号解読するデータが含まれる。CRCはデータの誤認を防止するためにデータより生成される固有のコードの情報を有する。
【0039】
[実施形態1]
次に、図2におけるCPU102でのレーザー攻撃を阻止する機能をもつプログラムの動作を、図3乃至図6のフローチャートと対応させながら説明する。
【0040】
図3は、本実施形態のデータ情報読み込みコマンド処理手段の一部である関数Aの動作を示すフローチャートである。関数Aは、データ読み込みコマンドを処理する関数であり、引数として読み込みたいファイル名を持つ。
【0041】
ステップS1において、データ情報読み込みコマンド処理手段としての関数Aは、データ読み込みコマンドから引数として読み込みたいファイル名を取得し、データの読み込み動作を開始する。
【0042】
ステップS2において、データ情報読み込みコマンド処理手段としての関数Aは、読み込みたいファイル名を不揮発性メモリ125のアドレス(100)へ変換する。
【0043】
ステップS3において、引数A=100、引数B=100を設定し、データ情報読み込み処理手段としての関数Bを呼び出す。
【0044】
ステップS4において、データ情報読み込み処理手段としての関数Bからデータ情報を取得し、取得したデータを出力し、出力処理を実行する。
【0045】
ステップS4において、データ読み込みコマンドにCPU102の動作を移す。
【0046】
図4は、引数を二重化した本実施形態のデータ情報読み込み処理手段である関数Bの動作を示すフローチャートである。関数Bは、二重化した引数がレーザー攻撃を受けて変化していた場合には異常終了する機能を有する。
【0047】
ステップS6において、データ情報読み込み処理手段としての関数Bは、データ情報読み込みコマンド処理手段である関数Aまたは関数Cから呼び出され、引数Aおよび引数Bを取得する。
【0048】
ステップS7において、データ情報読み込み処理手段としての関数Bは、取得した引数Aの値および引数Bの値を比較する。引数Aの値および引数Bの値が一致した場合(ステップS7:YES)にはステップS8に進み、引数Aの値および引数Bの値が一致しない場合(ステップS7:NO)にはステップS10に進む。
【0049】
ステップS8において、データ情報読み込み処理手段としての関数Bは引数で指定されたアドレス(100)からデータ情報を読み込む。
【0050】
ステップS9において、データ情報読み込み処理手段としての関数Bは、ステップS8において読み込んだデータ情報をデータ情報読み込み処理コマンド手段としての関数Aまたは関数Cへ出力(返却)する出力(返却)処理を実行する。
【0051】
ステップS10において、データ情報読み込み処理コマンド手段としての関数Aまたは関数CへCPU102の動作を移す。
【0052】
ステップS11において、データ情報読み込み処理手段としての関数Bは、異常情報をデータ情報読み込み処理コマンド手段としての関数Aまたは関数Cへ出力する出力処理を実行する。
【0053】
図5は、本実施形態のデータ情報読み込みコマンド処理手段の一部であり、暗証番号情報を比較する暗証番号情報比較関数としての関数Cの動作を示すフローチャートである。関数Cは、読み出した二重化された暗証番号情報がレーザー攻撃を受けて変化していた場合には異常終了する機能を有する。
【0054】
ステップS12において、データ情報読み込みコマンド処理手段としての関数Cは、データ読み込みコマンドから暗証番号情報の照会処理の実行命令を取得する。
【0055】
ステップS13において、データ読み込みコマンドから暗証番号情報を取得する。
【0056】
ステップS14において、引数A=200、引数B=200を設定し、データ情報読み込み処理手段としての関数Bを呼び出す。
【0057】
ステップS15において、データ情報読み込みコマンド処理手段としての関数CはステップS13において取得した暗証番号情報と、ステップS14において、データ情報読み込み処理手段としての関数Bから取得した暗証番号情報としての暗証番号情報とが一致するか否かを判断する。ステップS13において取得した暗証番号情報と、ステップS14において、データ情報読み込み処理手段としての関数Bから取得した暗証番号情報としての暗証番号情報とが一致する場合(ステップS15:YES)にはステップS16に進み、一致しない場合(ステップS15:NO)にはステップS18に進む。
【0058】
ステップS16において、ステップS12においてデータ情報読み込みコマンド処理手段としての関数Cを呼び出したデータ読み込みコマンド処理へ暗証番号情報が一致した(暗証番号情報の照会が成功した)情報を返却する。
【0059】
ステップS17において、ステップS12においてデータ情報読み込みコマンド処理手段としての関数Cを呼び出したデータ読み込みコマンドにCPU102の動作を移す。
【0060】
ステップS18において、データ情報読み込みコマンド処理手段としての関数Cは、異常情報(暗証番号情報が一致しないことを示す情報)をデータ読み込みコマンド処理へ出力する出力処理を実行する。
【0061】
なお、本実施の形態は、本明細書中の他の実施の形態の記載とも適宜組み合わせて実施することが可能である。
【0062】
[実施形態2]
次に、図2におけるCPU102でのレーザー攻撃を阻止する機能をもつプログラムの動作の中でチェックコードを付与した場合の動作を、実施形態2として図6乃至図9のフローチャートと対応させながら説明する。
【0063】
図6は、本実施形態のデータ情報読み込みコマンド処理手段の一部である関数Aにおいてチェックコードを付与する場合の動作を示すフローチャートである。関数Aは、データ読み込みコマンドを処理する関数であり、引数として読み込みたいファイル名を持つとともにチェックコードを算出する。
【0064】
ステップS19において、データ情報読み込みコマンド処理手段としての関数Aは、データ読み込みコマンドから引数として読み込みたいファイル名を取得し、データの読み込み動作を開始する。
【0065】
ステップS20において、データ情報読み込みコマンド処理手段としての関数Aは、読み込みたいファイル名を不揮発性メモリ125のアドレス(100)へ変換する。
【0066】
ステップS21において、データ情報読み込みコマンド処理手段としての関数Aは、アドレス(100)のチェックコードを算出(生成)する。
【0067】
ステップS22において、引数A=100、引数B=(ステップS21において算出したチェックコード)を設定し、データ情報読み込み処理手段としての関数Bを呼び出す。
【0068】
ステップS23において、データ情報読み込み処理手段としての関数Bからデータ情報を取得し、取得したデータを出力し、出力処理を実行する。
【0069】
ステップS24において、データ読み込みコマンドにCPU102の動作を移す。
【0070】
図7は、チェックコードを付与した本実施形態のデータ情報読み込み処理手段である関数Bの動作を示すフローチャートである。関数Bは、チェックコードがレーザー攻撃を受けて変化していた場合には異常終了する機能を有する。
【0071】
ステップS25において、データ情報読み込み処理手段としての関数Bは、データ情報読み込みコマンド処理手段である関数Aまたは関数Cから呼び出され、引数Aおよび引数Bを取得する。
【0072】
ステップS26において、データ情報読み込み処理手段としての関数Bは、アドレス(100)のチェックコードを算出(生成)する。
【0073】
ステップS27において、データ情報読み込み処理手段としての関数Bは、ステップS25において算出したチェックコードと引数Bの値(ステップS25において取得したチェックコード)とを比較する。ステップS25において算出したチェックコードと引数Bの値が一致した場合(ステップS27:YES)にはステップS28に進み、ステップS25において算出したチェックコードと引数Bの値が一致しない場合(ステップS27:NO)にはステップS31に進む。
【0074】
ステップS28において、データ情報読み込み処理手段としての関数Bは引数で指定されたアドレス(100)からデータ情報を読み込む。
【0075】
ステップS29において、データ情報読み込み処理手段としての関数Bは、ステップS28において読み込んだデータ情報をデータ情報読み込み処理コマンド手段としての関数Aまたは関数Cへ出力(返却)する出力(返却)処理を実行する。
【0076】
ステップS30において、データ情報読み込み処理コマンド手段としての関数Aまたは関数CへCPU102の動作を移す。
【0077】
ステップS31において、データ情報読み込み処理手段としての関数Bは、異常情報をデータ情報読み込み処理コマンド手段としての関数Aまたは関数Cへ出力する出力処理を実行する。
【0078】
図8は、本実施形態のデータ情報読み込みコマンド処理手段の一部であり、暗証番号情報を比較する暗証番号情報比較関数としての関数Cの動作であってチェックコードを付与した場合を示すフローチャートである。関数Cは、読み出したチェックコードがレーザー攻撃を受けて変化していた場合には異常終了する機能を有する。
【0079】
ステップS32において、データ情報読み込みコマンド処理手段としての関数Cは、データ読み込みコマンドから暗証番号情報の照会処理の実行命令を取得する。
【0080】
ステップS33において、データ読み込みコマンドから暗証番号情報を取得する。
【0081】
ステップS34において、データ情報読み込みコマンド処理手段としての関数Cは、アドレス(200)のチェックコードを算出(生成)する。
【0082】
ステップS35において、引数A=200、引数B=アドレス(200)のチェックコードを設定し、データ情報読み込み処理手段としての関数Bを呼び出す。
【0083】
ステップS36において、データ情報読み込みコマンド処理手段としての関数CはステップS33において取得した暗証番号情報と、ステップS35において、データ情報読み込み処理手段としての関数Bから取得した暗証番号情報とが一致するか否かを判断する。ステップS33において取得した暗証番号情報と、ステップS35において、データ情報読み込み処理手段としての関数Bから取得した暗証番号情報とが一致する場合(ステップS36:YES)にはステップS37に進み、一致しない場合(ステップS36:NO)にはステップS39に進む。
【0084】
ステップS37において、ステップS32においてデータ情報読み込みコマンド処理手段としての関数Cを呼び出したデータ読み込みコマンド処理へ暗証番号情報が一致した(暗証番号情報の照会が成功した)情報を返却する。
【0085】
ステップS38において、ステップS32においてデータ情報読み込みコマンド処理手段としての関数Cを呼び出したデータ読み込みコマンドにCPU102の動作を移す。
【0086】
ステップS39において、データ情報読み込みコマンド処理手段としての関数Cは、異常情報(暗証番号情報が一致しないことを示す情報)をデータ読み込みコマンド処理へ出力する出力処理を実行する。
【0087】
なお、本実施の形態は、本明細書中の他の実施の形態の記載とも適宜組み合わせて実施することが可能である。
【0088】
以上のように、本発明のレーザー攻撃を阻止する機能を有するICチップにおいて、レーザー攻撃を阻止する方法が変更になることに伴う仕様の変更により、ICチップのマスク設計の段階から作り直す必要がなくなった。そのために、製造コストの削減及び製造時間の短縮ができる。また、マスク設計の変更によって再度作り直したICチップに不具合が生じているといった懸念もない。
【0089】
さらに、従来においては、レーザー攻撃を阻止する機能を有するICチップを製造する際においては、レーザー攻撃を阻止する回路を搭載することもあった。しかしながら、本発明を採用することで、レーザー攻撃を阻止する機能を読み出し専用メモリまたは不揮発性メモリにプログラムとして格納することにより、別途レーザー攻撃を阻止する機能を備えた回路を設ける場合より、ICチップを小型化することができる。そのため、ICチップの軽量化、1枚の基板から作製できるICチップの数の増加に伴うコストの削減、またレーザー攻撃を阻止する機能を備えた回路の分だけ、トランジスタ数が減少することによる歩留まりの向上に貢献することができる。
【0090】
以上のように、本発明の半導体装置は物品であればどのようなものにでも設けて使用し
てもよく、ほかにも免許証、保険証、定期券、キャッシュカード、クレジットカード、電
子キー、電子マネー等に使用することができる。
【0091】
なお、図3乃至図8における動作手順を、ハードディスク等の記録媒体に予め記録しておき、或いはインターネット等のネットワークを介して予め記録しておき、これを汎用のマイクロコンピュータ等により読み出して実行することにより、当該汎用のマイクロコンピュータ等を実施形態に係わるCPUとして機能させることも可能である。
【0092】
さらに、本発明は上記実施の形態1及び2に限定されるものではなく、本発明の要旨の範囲内において種々変更可能である。
【0093】
さらに、本明細書に記載および図示されている実施形態は具体例としてのものであるに過ぎず、本発明の範囲を限定するものと考えるべきではないと理解すべきである。本発明の精神および範囲にしたがって上述以外の変更および修正を施すことも可能である。
【図面の簡単な説明】
【0094】
【図1】本発明の実施形態に係る半導体装置(101)の全体を示すブロック図である。
【図2】本発明の実施形態に係る関数の機能概要を示す図である。
【図3】本発明の実施形態1に係る関数Aの動作を示すフローチャートである。
【図4】本発明の実施形態1に係る関数B動作を示すフローチャートである。
【図5】本発明の実施形態1に係る関数Cの動作を示すフローチャートである。
【図6】本発明の実施形態2に係る関数Aの動作を示すフローチャートである。
【図7】本発明の実施形態2に係る関数B動作を示すフローチャートである。
【図8】本発明の実施形態2に係る関数Cの動作を示すフローチャートである。
【図9】本発明に係わるレーザー攻撃の概念を示す図である。
【符号の説明】
【0095】
101 ICカード
106 演算回路
102 CPU102
103 ROM
104 RAM
105 コントローラ
107 アンテナ
108 共振回路
109 電源回路
112 復調回路
113 変調回路
114 電源管理回路
115 アナログ部
125 フラッシュメモリ等の不揮発性メモリ

【特許請求の範囲】
【請求項1】
データ情報を処理する半導体装置において、
前記データ情報が前記半導体装置から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理手段と、
前記データ情報読み込みコマンド処理手段からの要求に応じて前記データ情報を前記半導体装置から読み込む、データ情報読み込み手段と、を備え、
前記データ情報読み込みコマンド処理手段は、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置の前記データ情報のアドレス情報に変換する引数変換手段と、
前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み手段に入力する引数入力手段とを備え、
前記データ情報読み込み手段は、入力された前記引数が同じ場合には前記引数で示される前記半導体装置の前記アドレス情報から前記データ情報を読み出し、前記データ情報読み込みコマンド処理手段へ前記データ情報を出力し、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理手段へ出力する出力手段と、
を備えることを特徴とする半導体装置。
【請求項2】
請求項1に記載の半導体装置おいて、
前記データ情報読み込みコマンドは前記データ情報として暗証情報を読み込むことを要求するコマンドであって、前記データ情報読み込みコマンド処理手段には、前記データ情報読み込み手段が出力した前記データ情報が入力され、前記暗証情報と入力された前記データ情報とが一致しない場合には前記データ情報読み込みコマンド処理手段を呼び出した処理手段へ前記異常情報を出力することを特徴とする半導体装置。
【請求項3】
請求項1に記載の半導体装置おいて、
前記データ情報読み込みコマンド処理手段は前記アドレス情報に基づいてチェックコード情報を生成し、前記引数入力手段は少なくとも一つ以上の前記チェックコード情報および前記アドレス情報を引数として、前記データ情報読み込み手段に入力し、前記データ情報読み込み手段は、前記アドレス情報に基づいて前記チェックコード情報を生成し、前記チェックコード情報と前記引数として入力された前記チェックコード情報とが異なる場合には、前記出力手段は、前記異常情報を前記データ情報読み込みコマンド処理手段へ出力することを特徴とする半導体装置。
【請求項4】
請求項1に記載の半導体装置おいて、
前記データ情報読み込みコマンドは前記データ情報として暗証情報を読み込むことを要求するコマンドであって、前記データ情報読み込みコマンド処理手段は前記暗証情報が記憶されているアドレス情報に基づいてチェックコード情報を生成し、前記引数入力手段は少なくとも一つ以上の前記チェックコード情報および前記暗証情報が記憶されている前記アドレス情報を引数として、前記データ情報読み込み手段に入力し、前記データ情報読み込みコマンド処理手段には、前記データ情報読み込み手段が出力した前記データ情報が入力され、前記暗証情報と入力された前記データ情報とが一致しない場合には前記データ情報読み込みコマンド処理手段を呼び出した処理手段へ前記異常情報を出力することを特徴とする半導体装置。
【請求項5】
データ情報を処理する半導体装置の制御方法において、
前記データ情報が前記半導体装置から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理工程と、
前記データ情報読み込みコマンド処理工程における要求に応じて前記データ情報を前記半導体装置から読み込む、読み込みデータ情報読み込み工程と、を備え、
前記データ情報読み込みコマンド処理工程において、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置の前記データ情報のアドレス情報に変換する引数変換工程と、
前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み工程に対して入力する引数入力工程とを備え、
前記データ情報読み込み工程において、入力された前記引数が同じ場合には前記引数で示される前記半導体装置の前記アドレス情報から前記データ情報を読み出し、前記データ情報読み込みコマンド処理工程に対して前記データ情報を出力し、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理工程へ出力する出力工程と、
を備えることを特徴とする半導体装置の制御方法。
【請求項6】
データ情報を処理する半導体装置に含まれるコンピュータを、
前記データ情報が前記半導体装置から読み込まれるべきコマンドであるデータ情報読み込みコマンドを処理するデータ情報読み込みコマンド処理手段、
前記データ情報読み込みコマンド処理手段からの要求に応じて前記データ情報を前記半導体装置から読み込む、読み込みデータ情報読み込み手段、として機能させ、
前記データ情報読み込みコマンド処理手段は、前記データ情報読み込みコマンドを受け付けると前記データ情報読み込みコマンドの引数を前記半導体装置の前記データ情報のアドレス情報に変換する引数変換手段と、
前記アドレス情報と同じ値を少なくとも二つ以上の引数として、前記データ情報読み込み手段に入力する引数入力手段として機能させ、
前記データ情報読み込み手段は、入力された前記引数が同じ場合には前記引数で示される前記半導体装置の前記アドレス情報から前記データ情報を読み出し、前記データ情報読み込みコマンド処理手段へ前記データ情報を出力し、前記引数が異なる場合には異常情報を前記データ情報読み込みコマンド処理手段へ出力する出力手段、
として機能させることを特徴とする半導体装置の制御プログラム。
【請求項7】
請求項1乃至4の何れか一項に記載の前記半導体装置はIC(Integrate Circuit)チップを搭載したICカードであることを特徴とする半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−128570(P2010−128570A)
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願番号】特願2008−299696(P2008−299696)
【出願日】平成20年11月25日(2008.11.25)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】