説明

データ処理装置、データ処理方法及びICカード

【課題】自己診断プログラムを実行するデータ処理装置において耐タンパ性を向上したデータ処理装置を提供する。
【解決手段】ICカード1は、暗号処理に用いられる情報を格納するフラッシュメモリ13と、暗号処理部15と、CPU11と、アクセス権取得制御レジスタ17と、コプロセッサ21と、バスコントローラ22とを有する。アクセス権取得制御レジスタ17は、有効及び無効の設定が可能であって、各回路へのアクセス権を設定するための複数のレジスタを含む。コプロセッサ21は、CPU11により制御され、アクセス権取得制御レジスタ17を有効に設定する処理を実行する。バスコントローラ22は、バスを制御し、かつアクセス権取得制御レジスタ17が有効に設定されないで複数の回路のいずれかに対するアクセス権の設定がされたときは、CPU11の動作を停止する停止処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データ処理装置、データ処理方法及びICカードに関する。
【背景技術】
【0002】
従来より、ICカード等から秘密情報を不正な手段により取得する技術がある。従って、ICカード等には、そのような不正な手段により内部の秘密情報を読み取られないようにする耐タンパ性が要求される。
例えば、その不正な手段の一つにパータベーションアタックによる故障解析がある。故障解析は、電子回路に局所的にレーザを照射することにより、電子回路を誤動作させ、その誤動作の結果得られるデータを解析することによって、秘密情報を推定して得ようとするものである。
【0003】
また、そのICカード等には、内部回路が正常に機能しているか否かを診断する自己診断機能が必要であり、その自己診断の方法には、ハードウエアによる方法と、ソフトウエアによる方法がある。ハードウエアによる方法は、自己診断のための回路が必要となるので、コスト、チップ面積等の面で問題がある。その点、ソフトウエアによる方法は、これらの問題はない。
【0004】
しかし、自己診断プログラムは、通常処理とは別のプログラムである。そのため、パータベーションアタック等により、CPUが一方のプログラムを実行しているときに、他方のプログラムに突然ジャンプして、他方のプログラムの途中から処理が続行されるような状態が発生し得る。例えば、CPUの処理が、通常処理の実行の途中で、自己診断プログラムの実行に切り替わってしまう、という状態が発生し得る。CPUの通常処理中は、RAM等に秘密情報が書き込まれている場合もあり、その状態で診断プログラムの実行に切り替わると、いわゆるセキュリティホールが発生する場合がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−163530号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本実施形態は、自己診断プログラムを実行するデータ処理装置において耐タンパ性を向上したデータ処理装置、データ処理方法及びICカードを提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態のデータ処理装置は、バスを介して接続された複数の回路を含むデータ処理装置であって、暗号処理に用いられる情報を格納する不揮発性メモリと、前記暗号処理を実行する暗号処理部と、制御部と、アクセス権取得制御レジスタと、設定回路と、バスコントローラとを有する。制御部は、前記複数の回路の少なくとも一部の自己診断を行う自己診断プログラムと、前記暗号処理部による前記暗号処理を含む処理プログラムとを実行可能であって、前記複数の回路内の各回路の動作の制御を行う。アクセス権取得制御レジスタは、有効及び無効の設定が可能であって、前記複数の回路の前記少なくとも一部へのアクセス権を設定するための複数のレジスタを含む。設定回路は、前記制御部により制御され、前記アクセス権取得制御レジスタを有効に設定する処理を実行する。バスコントローラは、前記バスを制御し、かつ前記アクセス権取得制御レジスタが前記有効に設定されないで前記複数の回路のいずれかに対するアクセス権の設定がされたときは、前記制御部の動作を停止する停止処理を実行する。
【図面の簡単な説明】
【0008】
【図1】本実施形態に係るデータ処理装置の構成を示すブロック図である。
【図2】本実施形態に係わるアクセス権取得制御レジスタ17の構成を示す図である。
【図3】本実施形態に係わるCPU11の全体的な処理の流れを示すフローチャートである。
【図4】本実施形態に係わる自己診断モード設定処理の流れを示すフローチャートである。
【図5】本実施形態に係わる通常モード設定処理の流れを示すフローチャートである。
【図6】本実施形態に係わる、UARTの送信処理を実行するときのCPU11の処理の流れの例を示すフローチャートである。
【図7】本実施形態に係わる、アクセス権設定要求があったときのバスコントローラ22の処理の流れの例を示すフローチャートである。
【図8】本実施形態に係わる、レジスタへのアクセスがあったときのバスコントローラ22の処理の流れの例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照して実施形態を説明する。
(構成)
まず、図1に基づき、本実施形態に係わるデータ処理装置の構成を説明する。図1は、本実施形態に係るデータ処理装置の構成を示すブロック図である。データ処理装置としては、例えば、ICカード、テレビジョン受像機等の暗号処理モジュールである。以下、データ処理装置を、ICカードを例として説明する。
【0010】
ICカードの場合、ICカードは、セキュリティ機能を有し、クレジットカード、プリペイドカード(いわゆる電子マネー)、健康保険証、SIM Card、ID、住民基本台帳カードといったものがその例として挙げられる。ICカードは、外部のホストとの通信機能を有し、ホストとの通信用の端子を直接カードに接触させるものを接触型、ホストとの通信に電波を用いるものを非接触型と呼び、一般にこれら2つのタイプに分類されている。その通信を通じて、ICカードは、ホストとの間で、相互認証処理、カードによる情報処理(対象とする情報の暗号/復号を含む情報処理)、情報のカードへの記録といった処理を実行する。なお、テレビジョン受像機等の暗号処理モジュール等も、同様の機能を有する。
【0011】
図1に示すように、ICカード1は、中央処理装置(以下、CPUという)11、プログラムが記録されたROM12、鍵情報等の秘密情報と、秘密情報以外のプログラム、データ等とが記録されたフラッシュメモリ13、作業用記憶領域としてのRAM14、暗号化及び復号化の処理を行う暗号処理部15、外部のホスト(図示せず)との通信を行う通信処理部16、アクセス権取得制御レジスタ17、及びバス18を含んで構成されている。ICカード1内の各回路は、バス18を介して接続されている。
【0012】
CPU11は、ホストからのコマンドに応じて、通常処理と自己診断処理を実行可能である。通常処理は、ICカード1のユーザがクレジットカード、電子マネー等の所望の機能に応じた処理である。通常処理では、秘密情報である鍵情報がフラッシュメモリ13から読み出されて、暗号化あるいは復号化の処理において使用される。
【0013】
自己診断処理は、ICカード1の工場出荷時の検査、市場に出回った後の故障検査、等のときに実行される処理である。通常処理と自己診断処理のプログラムは、それぞれROM12あるいはフラッシュメモリ13に記憶されており、CPU11は、ホストからのコマンドに応じて、いずれかの処理を実行する。
なお、本実施形態では、CPU11が、ICカード1内の各回路の動作を制御するが、CPU11は、プログラムを実行可能なシーケンサ等の回路でもよい。
【0014】
フラッシュメモリ13は、秘密情報を記憶する所定の記憶領域13a(斜線部)を含む。暗号処理が通常処理において実行され、その暗号処理において用いられる鍵情報は、不揮発性メモリであるフラッシュメモリ13中の所定の記憶領域に格納されている。記憶領域13aは、保護がかけられた記憶領域であり、CPU11により、保護をかけるあるいは保護を解除することが可能となっている。
【0015】
自己診断プログラムは、ICカード内の回路、モジュール、レジスタ等(以下、これらをまとめて回路ともいう)の全てのあるいは一部の回路が正常に機能するかを検査して自己診断するプログラムであり、CPU11が、通常処理において実行する操作手順あるいはコマンドを用いて、各回路の機能が検査される。自己診断プログラムは、種々のケースを想定した所定のコマンドを種々実行させて、得られた実行結果から、各回路が正常に動作するかを判定する。
CPU11は、自己診断プログラムと、暗号処理部15による暗号処理を含む処理プログラムである通常処理プログラムと、を実行可能であり、ICカード1内の各回路の動作を制御する制御部である。
【0016】
制御部としてのCPU11は、通常処理及び自己診断処理時には、RAM14を作業領域として用いながら、通常処理及び自己診断処理を実行する。特に、通常処理時には、通信処理部16の通信を遮断した状態で、RAM14に、例えばCPU11により復号化された鍵情報が一時的に書き込まれ、その鍵情報を用いて暗号処理部15が暗号処理を実行する。RAM14に書き込まれた鍵情報は、秘密情報なので、使用後、CPU11によって消去される。
【0017】
また、CPU11は、コプロセッサ21を含む。コプロセッサ21は、ハードウエアあるいはファームウエアであり、CPU11からのコマンドに応じて、アクセス権取得制御レジスタ17を有効に設定する処理を実行する設定回路である。すなわち、コプロセッサ21は、CPU11により制御され、アクセス権取得制御レジスタ17を有効にする設定をする処理を実行する設定回路である。
【0018】
暗号処理部15は、鍵情報を用いて所定の暗号化及び復号化の暗号処理を実行する。上述したように、CPU11は、通常処理時には、フラッシュメモリ13の所定の記憶領域13aから鍵情報KEYを読み出してRAM14に一時的に書き込み、暗号処理部15の所定のレジスタに設定する。暗号処理部15は、その鍵情報KEYを使用して暗号処理を実行し、暗号処理の結果データを、RAM14の所定の領域に書き込む。
【0019】
通常処理時には、鍵情報KEYが、RAM14の所定の記憶領域に書かれ、暗号処理が終了すると消去あるいは削除される。自己診断プログラムの実行時には、鍵情報KEYは、RAM14に書かれることはないが、パータベーションアタックにより通常処理の実行の途中で、プログラムが自己診断処理にジャンプして実行されると、鍵情報KEYがRAM14に残ったままとなるので、鍵情報KEYは、外部へ漏洩する虞があることになる。
【0020】
通信処理部16は、ホストとの通信、例えば無線通信、を実行する回路であり、制御レジスタ、送信バッファ、受信バッファ等のレジスタ回路を含む。通信処理部16は、通常処理時に暗号処理を実行するコマンドを外部から受信したときは、CPU11によって無効化され、外部からのICカード1の内部へのアクセスができないようにされる。これは、通常処理時には、RAM14に鍵情報が書き込まれるので、外部からの攻撃を受けないようにするためである。暗号処理が終了すると、通信処理部16は、CPU11によって有効化される。よって、CPU11は、ホストからの要求により復号化あるいは暗号化された情報を、コマンドの実行結果として、通信処理部16を介してホストへ送信可能となる。
【0021】
アクセス権取得制御レジスタ17は、アクセス権の設定を行うためのレジスタ群17aを含む。図2は、アクセス権取得制御レジスタ17の構成を示す図である。
図2に示すように、アクセス権取得制御レジスタ17は、複数のレジスタを含む。アクセス権取得制御レジスタ17は、ICカード1内の各回路へのアクセスを許可するか否か(あるいは禁止するか否か)の情報を設定すなわち格納するアクセス権設定用のレジスタ群17aと、アクセス権取得制御レジスタ17を有効あるいは無効に設定するための情報を格納するレジスタ17bとを含む。レジスタ群17aの各レジスタは、各回路と対応してアクセス権を設定するためのレジスタである。アクセス権取得制御レジスタ17は、レジスタ17bが有効に設定されると、アクセス権の設定を行うことができる。すなわち、アクセス権取得制御レジスタ17は、有効及び無効の設定が可能であって、ICカード1内の少なくとも一部の回路へのアクセス権を設定するための複数のレジスタ17aを含む。
【0022】
レジスタ17bは、コプロセッサ21のみが所定の情報を書き込むことができ、CPU11はデータを読み出すことはできるが書き込むことができないレジスタである。すなわち、自己診断コマンドを受信すると、CPU11は、特権モード下でコプロセッサ21を動作させて、レジスタ17bに所定の情報、例えばフラグ情報「1」を書き込む。
【0023】
レジスタ17bに所定の情報が書き込まれると、その所定の情報に応じて、アクセス権設定用のレジスタ群17aに対するデータの書き込み及び読み出しが可能となる。レジスタ17bに所定の情報が書き込まれていないと、アクセス権設定用のレジスタ群17aに対するデータの書き込み及び読み出しが不可能となる。すなわち、レジスタ17bは、アクセス権取得制御レジスタ17を有効にするか無効にするかを制御するレジスタである。
【0024】
バス18は、CPU11,ROM12等の各回路を接続するバスである。バス18は、バスコントローラ22を含む。
バスコントローラ22は、バス18に接続されたCPU11、ROM12等の回路間のデータの送受信を制御する。例えば、バスコントローラ22は、各回路のレジスタへのアクセスを制御する。
【0025】
特に、バスコントローラ22は、後述するように、自己診断モード時、自己診断の対象である回路へのアクセス前に、その回路へのアクセス権の設定を受け付ける(図6)。そして、バスコントローラ22は、そのアクセス権の設定が行われるときに、そのアクセス権の設定が適切な手順の下での設定であるか否かの判断を行う。さらに、バスコントローラ22は、各回路のレジスタ等へのアクセスが、適切な手順の下で実行されているか否かを判定する。
【0026】
具体的には、バスコントローラ22は、バス18を制御し、かつアクセス権取得制御レジスタ17が有効に設定されないで、いずれかの回路に対するアクセス権の設定がされたときは、CPU11の動作を強制的に停止する停止処理を実行する。さらに、バスコントローラ22は、自己診断プログラムの実行コマンドを受信した後に、アクセス権取得制御レジスタ17にアクセス権の設定がされないで、そのアクセス権の設定がされていない回路へのアクセスがあったときに、停止処理を実行する。
【0027】
(動作)
次に、CPU11の全体的な動作を説明する。
図3は、CPU11の全体的な処理の流れを示すフローチャートである。CPU11は、ホストからコマンドを受信すると、コマンドの受信処理を実行する(ステップ(以下、Sと略す)1)。そして、CPU11は、受信したコマンドが自己診断処理の実行を指示するコマンドであるか否かを判定する(S2)。
【0028】
コマンドが自己診断処理の実行を指示するコマンドでない場合(S2:NO)、受信したコマンドの処理、すなわち通常処理を実行する(S3)。通常処理は、上述したように、ICカードのユーザがクレジットカード、電子マネー等の所望の機能に応じた処理である。
コマンドが自己診断処理の実行を指示するコマンドである場合(S2:YES)、自己診断モード設定処理を実行する(S4)。自己診断モード設定処理は、図4に示す処理である。
【0029】
図4は、自己診断モード設定処理の流れを示すフローチャートである。
図4に示すように、CPU11は、まず、所定の例外処理を実行するために所定のシステムコールを発行する(S11)。この結果、CPU11の処理は、いわゆる特権モード下での処理となる。
【0030】
CPU11は、所定のシステムコールに対応するシステムコールハンドラを実行し(S12)、コプロセッサ21に対する所定の設定を実行する(S13)。この設定は、CPU11の動作モードを、通常処理を実行する通常モードから自己診断プログラムを実行する自己診断モードへ変更して、自己診断プログラムが適切な手順の下で実行できるようにするための設定である。
【0031】
コプロセッサ21は、その所定の設定がされると、所定の機能を実行する。具体的には、コプロセッサ21は、上記の所定の設定がされると、アクセス権取得制御レジスタ17内のレジスタ17bに、所定の情報を、例えばフラグ「1」を、書き込む処理を実行する。このレジスタ17bへの所定の情報の書き込みは、上述したように、コプロセッサ21のみが行うことができ、CPU11は行うことができない。
【0032】
レジスタ17bに所定の情報が、ここではフラグ「1」が書き込まれると、アクセス権取得制御レジスタ17aが使用可能になる。また、レジスタ17bにフラグ「1」が書き込まれているということは、CPU11の動作モードは、自己診断モードとなる。
【0033】
レジスタ17bに書かれた所定の情報は、この例外処理においてCPU11によりRAM14の所定の記憶領域に書かれる。その結果、CPU11及びバスコントローラ22は、そのRAM14に書かれた所定の情報を参照することによって、CPU11の動作モードが自己診断モードにあるいか否かを判定することができる。
【0034】
図3に戻り、CPU11は、S4の後に、自己診断処理プログラムを実行する自己診断コマンド処理を実行する(S5)。自己診断処理は、上述したように、通常処理において実行される操作手順あるいはコマンドがCPU11により実行されて各回路の機能を検査し、得られた実行結果から、各回路が正常に動作したかを判定する処理を実行する。レジスタ17bには所定の情報が書き込まれているのでアクセス権取得制御レジスタ17は有効となっている。CPU11は、各回路へのアクセスを行う前に、アクセス権取得制御レジスタ17の対応するレジスタ17aに所定の情報を設定することができる。よって、CPU11は、自己診断プログラムの実行時は、アクセスしようとする回路に対応するレジスタ17aの設定をした後に、その回路へのデータの書き込み等のアクセスを行う。
【0035】
すなわち、CPU11は、自己診断プログラムを実行する前に、コプロセッサ21を利用してアクセス権取得制御レジスタ17を有効にする。そして、CPU11は、自己診断モードにおいて、アクセスしようとする回路に対応するレジスタ17aにアクセス権を設定した後に、その回路へのアクセスを行う。自己診断モードにおいて、診断対象回路へのアクセス権を取得すなわち設定しないで、診断対象回路へのアクセスを行うことは、自己診断プログラムは、適切な手順の下で実行されていないことを意味する。
【0036】
自己診断コマンド処理(S5)が終了すると、CPU11は、通常モード設定処理を実行する(S6)。通常モード設定処理は、図5に示す処理である。
図5は、通常モード設定処理の流れを示すフローチャートである。
図5に示すように、CPU11は、まずシステムコールを発行する(S21)。この結果、CPU11の処理は、いわゆる特権モード下での処理となる。
【0037】
CPU11は、システムコールハンドラを実行し(S22)、コプロセッサ21に対する所定の設定を実行する(S23)。この設定は、CPU11を、自己診断プログラムを実行する自己診断モードから通常処理を実行する通常モードへ変更する設定である。その結果、CPU11は、通常モードとなる。
【0038】
このとき、コプロセッサ21は、アクセス権取得制御レジスタ17内のレジスタ17bに、所定の情報を、例えばフラグ「0」を、書き込む。コプロセッサ21のみが、この所定の情報の書き込みをすることができる。レジスタ17bにフラグ「0」が書き込まれているということは、通常処理のモードにあることを意味する。
【0039】
以上のように、CPU11は、自己診断コマンドを受信すると、コプロセッサ21に、アクセス権取得制御レジスタ17を使用可能状態にさせる処理を実行させる。そのアクセス権取得制御レジスタ17が使用可能状態であるか否かは、レジスタ17bのデータにより制御される。例えば、レジスタ17bが「1」であれば、アクセス権取得制御レジスタ17は使用可能状態すなわち有効であり、レジスタ17bが「0」であれば、アクセス権取得制御レジスタ17は使用可能状態にないすなわち無効である。
【0040】
(CPUの動作)
次に、CPU11の動作例を説明する。自己診断処理は、CPU11が自己診断プログラムを実行することによって行われる。自己診断プログラムは、ROM12あるいはフラッシュメモリ13に格納されており、自己診断コマンドを受信すると、CPU11はROM12あるいはフラッシュメモリ13から自己診断プログラムを読み出して実行する。自己診断プログラムは、通常処理において用いられるコマンドを利用して種々の実行パターンを実行させながら、ICカード1内の各回路が正しく動作するか否かの検査を行い、その実行結果を生成してRAM14に書き込む処理を行う。その書き込まれた実行結果のデータは、各回路の正常あるいは異常を示す。
【0041】
上述したように、自己診断プログラムの場合、各回路にアクセスするとき、CPU11によって自己診断対象の回路へのアクセス権の設定がされた後に、その回路へのアクセス、例えばデータの設定が行われる。これに対して、通常処理プログラムは、CPU11によって各回路へのアクセス権の取得は行われずに、各回路へのアクセスが行われる。
【0042】
以下、CPU11の動作を、ICカード1に含まれる複数の回路の中で、通信処理部16の送信処理の回路の例に説明する。通信処理部16は、ここではUARTであり、UART内の各レジスタ等にデータを設定する処理プログラムは、自己診断処理プログラムにも、通常処理プログラムにも含まれる。ここでは、通信処理部16の回路に対するアクセスの例を説明するが、他の回路についても同様であるので、説明は省略する。
【0043】
図6は、UARTの送信処理を実行するときのCPU11の処理の流れの例を示すフローチャートである。図6の処理は、CPU11が、UARTに対する送信コマンドを実行するときの処理である。
【0044】
CPU11は、UARTに対する送信コマンドを実行するとき、動作モードが自己診断モードであるか否かを判定する(S31)。この判定は、CPU11が、自己診断モードであるか否かの情報を記憶するRAM14の所定の記憶領域を参照することによって行われる。
なお、自己診断モードであるか否かの情報は、実行コマンドの関数の引数やその関数から参照可能なグローバル変数、に含ませるようにしてもよい。
【0045】
自己診断モードの場合(S31:YES)、CPU11は、UARTの送信処理関連のレジスタ群へのアクセス権を設定する処理を実行する(S32)。この処理は、CPU11が、アクセス権取得制御レジスタ17内のUARTの送信処理関連のレジスタ群に対応するアクセス権設定レジスタrUARTに所定の情報を、例えば、フラグ「1」を、設定する処理である。図2において、UARTの送信処理関連のレジスタ群へのアクセス権設定レジスタであるレジスタrUARTに、「1」が書き込まれる。
【0046】
なお、ここでは、UARTの送信処理関連のレジスタ群に対して、1つのアクセス権設定レジスタrUARTを設けているが、そのレジスタ群内のレジスタ毎に、アクセス権設定レジスタを設けてもよい。
【0047】
動作モードが自己診断モードでない場合(S31:NO)、及びS32の処理の後、CPU11は、UARTに送受信処理の実行を禁止させるために、UART内のUART制御レジスタにデータの送受信の禁止を指示する情報を設定するUART制御レジスタ設定処理を実行する(S33)。その結果、UARTは、送受信が禁止された状態となる。
【0048】
次に、CPU11は、RAM12中にある送信データの先頭アドレスを設定するレジスタに、その送信データの先頭アドレスを設定する送信バッファ設定処理を実行する(S34)。
さらに、CPU11は、RAM12中にある送信データの送信データのデータサイズを設定するレジスタに、その送信データのサイズを設定する送信データサイズ設定処理を実行する(S35)。
【0049】
そして、CPU11は、UARTに送受信処理の実行をさせるために、UART内のUART制御レジスタに送受信禁止状態から、送信処理開始の状態に変更するための情報を設定するUART制御レジスタ設定処理を実行する(S36)。
以上のようにして、CPU11によるUARTの送信処理が実行される。
【0050】
以上のように、CPU11は、いずれかの回路に対するアクセス命令があった場合に、その前に、自己診断プログラムの実行コマンドを受信した場合は、その回路についてのアクセス権の設定をアクセス権取得制御レジスタ17に行い、自己診断プログラムの実行コマンドを受信していない場合は、その回路についてのアクセス権の設定を行わない。
【0051】
アクセス権の設定は、バス18を介して自己診断モード時のみ実行される。よって、自己診断時にアクセス権設定要求があると、バスコントローラ22は、そのアクセス権設定要求は、自己診断モード時に要求されているものであるときは、そのアクセス権設定を許可する所定の情報の書き込みを許可する。しかし、バスコントローラ22は、そのアクセス権設定要求が自己診断モード時に要求されているものでないときは、所謂ミュート処理、すなわちシステムを強制的に停止する処理を実行する。これは、プログラムの実行処理が、通常処理中に自己診断処理へ突然ジャンプした可能性があるからである。
【0052】
(バスコントローラの動作)
図7は、アクセス権設定要求があったときのバスコントローラ22の処理の流れの例を示すフローチャートである。図7の処理は、CPU11からアクセス権設定要求、すなわち、アクセス権を設定するためのレジスタ17aへの書き込み要求があったときに実行される。なお、ここでは、この処理は、フローチャートで示しているが、ハードウエア回路で実現される。
【0053】
まず、バスコントローラ22は、何らかのアクセス権設定要求があると、そのときの動作モードが自己診断モードであるか否かを判定する(S41)。この判定は、バスコントローラ22がレジスタ17bを参照することによって、行われる。
【0054】
自己診断モードの場合(S41:YES)、バスコントローラ22は、要求されたアクセス権設定のための所定の設定を行う(S42)。例えば、通信処理部16の各レジスタに対するアクセス権設定要求であれば、バスコントローラ22は、通信処理部16の各レジスタに対応するレジスタ17aに対応するアクセス権設定レジスタrUARTに、所定の情報、例えば「1」を設定する。
【0055】
また、自己診断モードでない場合(S41:NO)、バスコントローラ22は、CPU11の動作を強制的に停止する停止処理を含むミュート処理を実行して(S43)、ICカード1のシステムの動作を停止させる。
【0056】
従って、アクセス権設定要求が、自己診断モードが適切に設定されてから、実行された場合には、アクセス権の設定処理が行われる。しかし、アクセス権設定要求が、自己診断モードが適切に設定されていないにも拘わらず、実行されようとする場合には、パータベーションアタック等により異常状態が発生している可能性があるので、ICカード1の動作を停止するように、バスコントローラ22は制御する。これにより、例えば、悪意のあるパータべーションアタックによる故障解析に対してICカードのシステムを停止させて、セキュリティを確保することができる。
【0057】
次に、各回路へのアクセスがあったときの処理について説明する。
【0058】
バスコントローラ22は、各回路の1又は2以上のレジスタへのアクセスがあったときに、自己診断モードであって、かつそのアクセスしようとするレジスタへのアクセス権がある場合にのみ、そのレジスタへのアクセスを実行する。バスコントローラ22は、各回路の1又は2以上のレジスタへのアクセスがあったときに、自己診断モードでないときは、そのレジスタへのアクセスを実行する。しかし、バスコントローラ22は、各回路の1又は2以上のレジスタへのアクセスがあったときに、自己診断モードであっても、そのアクセスしようとするレジスタへのアクセス権がない場合には、ミュート処理を実行させる。
【0059】
図8は、レジスタへのアクセスがあったときのバスコントローラ22の処理の流れの例を示すフローチャートである。図8の処理は、レジスタへのアクセスがあったときに実行される。なお、ここでは、この処理は、フローチャートで示しているが、ハードウエア回路で実現される。
【0060】
あるレジスタへのアクセスがあると、バスコントローラ22は、動作モードが自己診断モードであるか否かを判定する(S51)。この判定は、S41と同様の処理により行われる。
【0061】
そして、自己診断モードの場合(S51:YES)、バスコントローラ22は、そのアクセスしようとするレジスタに対してアクセス権が設定されているか否かを判定する(S52)。アクセス権が設定されている場合(S52:YES)、バスコントローラ22は、レジスタアクセスを実行する(S53)。
【0062】
自己診断モードでない場合(S51:NO)、通常処理のレジスタアクセスであるので、処理は、S53へ移行する。
【0063】
自己診断モードであって、アクセス権が設定されていない場合(S52:NO)、バスコントローラ22は、ミュート処理を実行して(S54)、ICカード1のシステムの動作を停止させる。
【0064】
従って、バスコントローラ22は、アクセス要求があったときに、自己診断モードであってアクセス権が設定されていれば、要求されたレジスタへのアクセスを行う。バスコントローラ22は、アクセス要求があったときに、自己診断モードであってもアクセス権が設定されていなければ、パータベーションアタック等により異常状態が発生している可能性があるので、ICカード1の動作を停止するように、バスコントローラ22は制御する。これにより、例えば、悪意のあるパータべーションアタックによる故障解析に対してICカードのシステムを停止させて、セキュリティを確保することができる。
【0065】
以上のように、上述した実施形態によれば、自己診断プログラムを実行するデータ処理装置において耐タンパ性を向上したデータ処理装置を提供することができる。
【0066】
以上は、ICカードを例に説明したが、テレビ受像機、放送番組を記録するレコーダ等に内蔵された暗号処理回路においても、適用可能である。例えば、テレビ受像機であれば、デジタル放送の記録等において暗号処理が、専用の回路、モジュール等において実行されるので、そのような専用の回路、モジュール等が、図1に示すデータ処理装置となる。
【0067】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【0068】
1 ICカード、11 CPU、12 ROM、13 フラッシュメモリ、14 RAM、15暗号処理部、16 通信処理部、17 アクセス権取得制御レジスタ、17a アクセス権設定レジスタ、17b 有効化レジスタ、18 バス、21 コプロセッサ、22 バスコントローラ

【特許請求の範囲】
【請求項1】
バスを介して接続された複数の回路を含むデータ処理装置であって、
暗号処理に用いられる情報を格納する不揮発性メモリと、
前記暗号処理を実行する暗号処理部と、
前記複数の回路の少なくとも一部の自己診断を行う自己診断プログラムと、前記暗号処理部による前記暗号処理を含む処理プログラムとを実行可能であって、前記複数の回路内の各回路の動作の制御を行う制御部と、
有効及び無効の設定が可能であって、前記複数の回路の前記少なくとも一部へのアクセス権を設定するための複数のレジスタを含むアクセス権取得制御レジスタと、
前記制御部により制御され、前記アクセス権取得制御レジスタを有効に設定する処理を実行する設定回路と、
前記バスを制御し、かつ前記アクセス権取得制御レジスタが前記有効に設定されないで前記複数の回路のいずれかに対するアクセス権の設定がされたときは、前記制御部の動作を停止する停止処理を実行するバスコントローラと、
を特徴とするデータ処理装置。
【請求項2】
前記バスコントローラは、前記自己診断プログラムの実行コマンドを受信した後に、前記アクセス権取得制御レジスタにアクセス権の設定がされないで、そのアクセス権の設定がされていない回路へのアクセスがあったときに、前記停止処理を実行することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
バスを介して互いに接続された、暗号処理に用いられる情報を格納する不揮発性メモリと、前記暗号処理を実行する暗号処理部と、制御部とを用いたデータ処理方法であって、
前記制御部により、前記複数の回路の少なくとも一部の自己診断を行う自己診断プログラムと、前記暗号処理部による前記暗号処理を含む処理プログラムとを実行すると共に、前記複数の回路内の各回路の動作の制御を行い、
前記制御部が、前記複数の回路の前記少なくとも一部へのアクセス権を設定するための複数のレジスタを含むアクセス権取得制御レジスタを有効に設定する処理を、設定回路により実行させ、
前記バスを制御するバスコントローラにより、前記アクセス権取得制御レジスタが前記有効に設定されないで前記複数の回路のいずれかに対するアクセス権の設定がされたときは、前記制御部の動作を停止する、
ことを特徴とするデータ処理方法。
【請求項4】
前記バスコントローラは、前記自己診断プログラムの実行コマンドを受信した後に、前記アクセス権取得制御レジスタにアクセス権の設定がされないで、そのアクセス権の設定がされていない回路へのアクセスがあったときに、前記停止処理を実行することを特徴とする請求項3に記載のデータ処理方法。
【請求項5】
請求項1に記載のデータ処理装置を有する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


【公開番号】特開2012−22627(P2012−22627A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−162001(P2010−162001)
【出願日】平成22年7月16日(2010.7.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】