説明

情報記憶媒体

【課題】不正防止に優れた情報記憶媒体を提供すること。
【解決手段】情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置と通信する通信手段と、鍵データを記憶する記憶手段と、前記鍵データに基づきデータを暗号化する暗号化手段と、前記通信手段を介して受信された外部装置からのリセット信号に基づき再起動を制御するとともに、この再起動の後続のタイミングで前記暗号化手段に対して前記鍵データを設定する制御手段とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPU、ROM、RAM、EEPROMなどを有するIC(集積回路)チップを内蔵するICカードと称される情報記憶媒体に関し、特にICカードの耐タンパ技術の改良に関する。
【背景技術】
【0002】
IC(Integrated Circuit)カードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ICカードは、CPU、ROM、RAM、EEPROMなどを有するICを備えることにより、様々な機能が実現可能となったこと、さらには偽造が難しいためセキュリティの面でも大きく向上したことが要因である。
【0003】
非特許文献1には、ICカードの構成が開示されている。例えば、ICカードは、個人情報など重要な情報を格納する。セキュリティを確保するために、ICカードに格納される重要な情報は暗号化され、またICカードユーザに対して認証を要求する。
【0004】
しかし、ICカードに供給される電源やクロックにノイズを加えたり、ICチップ自体に光を印加することにより、CPUが誤作動することがあり、このような誤動作を意図的に引き起こさせようとする不正行為対策が望まれている。これに対して、LSI自体にノイズの影響を除去するフィルタを搭載するといった対策が講じられているものもある。しかし、それだけでCPUの誤動作を十分に防ぐことはできない。
【0005】
また、特許文献1には、誤動作を検出し、誤動作の種類に応じて適切に処理を継続もしくは停止する技術が開示されている。
【非特許文献1】ISO/IEC 7816-1part1,2
【特許文献1】特開2005−285133
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記したように、カード動作中に供給電源やクロックにノイズを加えたり、ICチップ内の回路に光を印加することで、CPUの命令がジャンプし、不正な処理や出力をする可能性がある。上記した従来技術だけでCPUの誤動作を十分に防ぐことはできない。また、誤動作検出のアルゴリズムが見破られてしまうと、不正を許すことになる。
【0007】
この発明の目的は、上記の問題を解決するためになされたものであり、不正防止に優れた情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0008】
この発明の一実施形態に係る情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置と通信する通信手段と、鍵データを記憶する記憶手段と、前記鍵データに基づきデータを暗号化する暗号化手段と、前記通信手段を介して受信された外部装置からのリセット信号に基づき再起動を制御するとともに、この再起動の後続のタイミングで前記暗号化手段に対して前記鍵データを設定する制御手段とを備えている。
【0009】
この発明の一実施形態に係る情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置と通信する通信手段と、鍵データを記憶する記憶手段と、前記鍵データに基づきデータを暗号化する暗号化手段と、前記通信手段を介して受信された外部装置からのアプリケーション選択信号に基づくアプリケーション選択処理において、前記暗号化手段に対して前記鍵データを設定する制御手段とを備えている。
【0010】
この発明の一実施形態に係る情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置と通信する通信手段と、鍵データを記憶する記憶手段と、前記鍵データに基づきデータを暗号化する暗号化手段と、前記暗号化手段に対して、前記鍵データを構成する複数の分割鍵データを複数のタイミングに分けて設定する制御手段とを備えている。
【0011】
この発明の一実施形態に係る情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置と通信する通信手段と、鍵データを記憶する記憶手段と、前記鍵データに基づきデータを暗号化する暗号化手段と、前記暗号化手段に対して、前記鍵データを生成するための複数の鍵生成データを複数のタイミングに分けて設定する制御手段とを備え、前記暗号化手段は、前記複数のタイミングに分けて設定された前記複数の鍵生成データに基づき前記鍵データを生成する。
【発明の効果】
【0012】
本発明によれば、不正防止に優れた情報記憶媒体を提供できる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照し、本発明の実施形態について説明する。
【0014】
本実施形態で説明するICカードは、内部にデータを保持して、外部装置からの指示に応じて処理を実施し、処理結果を出力するものである。このICカードは、暗号化処理を高速に実施するためのアクセラレータ回路(後述のコプロセッサ8)を持つ。以下、ICカードの構成、及びアクセラレータ回路に鍵を設定する処理の詳細について順に説明する。
【0015】
図1は、本実施形態に係る情報記憶媒体の概観を示す図である。図1に示すように、情報記憶媒体はカード本体2により構成され、カード本体2はICチップ1(モジュール)を備えている。
【0016】
図2は、ICチップ1の概略構成を示す図である。図2に示すように、CPU3、RAM4、ROM5、EEPROM6、I/O7、コプロセッサ8、及びデータバス9を備えている。
【0017】
ROM5は、ICカードの各種プログラム(データ処理ルーチン、サブルーチン、メインルーチン)を格納する。CPU3は、ROM5に格納されている各種プログラムを実行する。CPU3は、ROM5に格納された鍵設定プログラムに基づきDES鍵(鍵データ)を設定する。詳細は、後に詳しく説明する。RAM4及びEEPROM6は、CPU3による各種プログラム実行時に必要なデータを格納する。EEPROM6は、DES鍵を1又は複数個記憶する。I/O7は、ICカードリーダライタなどの外部装置からコマンドを受け取り、また処理結果をレスポンスとして出力する。コプロセッサ8は、例えばDES鍵レジスタを備えたDES(Data Encryption Standard)回路であり、DES鍵に基づき各種データを暗号化する。なお、DES鍵に基づく暗号化は、一例であり、本発明はDES鍵に基づく暗号化だけに限定されるものではなく、共通鍵暗号であれば他の暗号化であってもよい。データバス9は、CPU3、RAM4、ROM5、EEPROM6、I/O7、及びコプロセッサ8の間でデータを転送するためのバスである。
【0018】
ICカードは、個人情報など重要な情報を格納する。セキュリティを確保するために、ICカードに格納される重要な情報は暗号化され、またICカードユーザに対して認証を要求する。しかし、ICカードに供給される電力やクロックにノイズを加えたり、ICチップ自体に光を印加することにより、CPUが誤作動することがある。
【0019】
そのために、ICカードのソフトウェア側で、本来の処理が正しく行われているか(外乱によりCPUの命令が不正に飛ばされていないか)を確認したり、ハードウェア機能が正しく動いているかどうかを毎回確認したりという方法が考えられる。本実施形態では、ハードウェア機能のうちHWDES回路(ハードウェア実装によるDES回路)に設定する暗号化・復号鍵をセキュアに設定することが可能なICカードについて説明する。本実施形態のICカードは、HWDES回路への鍵の設定をHWDES回路起動直前ではなく、別のタイミングで行う。つまりHWDES回路に対して暗号化処理を実行させるための暗号化処理コマンドを受信した後に鍵を設定するのではなく、暗号化処理コマンドを受信する前のタイミングで予め鍵を設定する。これにより、鍵設定のタイミングが特定されないようにし、鍵情報の漏洩を防ぐ。
【0020】
以下に、その詳細を説明する。なお、暗号化の一例としてDES暗号を、誤り訂正符号の一例としてCRCを挙げて説明する。
【0021】
図3は、ICカードにおける処理の一例を示すフローチャートである。外部装置からのリセット信号がI/O7を介して受信されると、CPU3はこのリセット信号に基づきリセット(再起動)を指示し(ST101)、ハードウェアコンフィグレーションを指示する(ST102)。さらに、CPU3はATR(answer to reset)送信を指示し(ST103)、外部装置から送信されるコマンドの受信を待つ(ST104)。外部装置からのコマンドがI/O7を介して受信されると(ST105)、CPU3は受信したコマンドを解釈し(ST106)、CPUはコマンドに基づく処理を実行し(ST107)、処理結果をレスポンスとする出力を指示する(ST108)。
【0022】
以下に説明する第1実施形態では、不正を防止のために、以下のようなタイミングでDES鍵の鍵レジスタへの設定とDES回路起動を実行する。
【0023】
例えば、ハードウェアコンフィギュレーション(ST102)のタイミングでハードウェアにてDES鍵を設定する。具体的には、EEPROM6上の特定の領域に書かれているDES鍵をDES鍵レジスタに設定する。DES鍵の鍵長サイズは、回路構成に依存するが、例えば、本実施形態では、8バイト(SINGLE DES)、16バイト(TRIPLE DES 2KEY)、24バイト(TRIPLE DES 3KEY)のいずれかが採用されるものとする。DES鍵レジスタは、データの書き込みのみ許可されており、データの読み込みはできない。しかし、DES鍵レジスタに設定されているDES鍵の誤り訂正符号(ここではCRCを想定)のデータは、読み込める。
【0024】
例えば、CPU3は、カード内に複数のDES鍵が記憶されている場合には、各DES鍵の利用頻度を管理し、利用頻度に基づきDES鍵を選択する。具体的には、CPU3は、一番利用頻度の高いDES鍵を設定する。
【0025】
ソフトウェアは、コマンド処理(ST107)において、DES暗号回路を起動する直前に、DES鍵レジスタにセットされているデータのCRCを読み出して、鍵の完全性が保たれているかを確認した後に、DES暗号回路を起動し、演算を行う。ICカードが複数のDES鍵を記憶している場合にも、DES鍵レジスタにセットされているデータのCRCをチェックすることにより、これから利用するDES鍵が設定されているか否かを確認することができる。もし違うDES鍵を利用する場合には、CRCチェックの後のタイミングで、DES鍵レジスタに違うDES鍵を再設定することもできる。また、例えばICカードのEEPROM6に3つのDES鍵が記憶されており、EEPROM6に記憶された3つのDES鍵の3つのCRCと鍵レジスタにセットされているデータの1つのCRCデータをチェックして、CRCの一致が得られなかった場合は、LSIに問題が発生したと認識してエラーを出力したり、CPU3の処理を停止したりすることが可能である。
【0026】
上記第1実施形態の説明では、ハードウェアコンフィギュレーション(ST102)のタイミングでハードウェアにてDES鍵を設定するケースについて説明した。これに対して、第2実施形態では、例えば、103のATR送信(ST103)前のタイミングでソフトウェアにてDES鍵を設定する。タイミング以外は、上記説明した第1実施形態と同様である。
【0027】
続いて説明する第3実施形態では、コマンド処理(ST107)のタイミングでソフトウェアにてDES鍵を設定する。ただし、DES暗号を実行するコマンド(暗号化処理コマンド)によるコマンド処理内ではなく、これからトランザクションを行うアプリケーションを選択するSELECTコマンドによるコマンド処理内で実施する。例外もあるが、通常DES暗号を実行するコマンドは、いきなり実行されるのではなく、カード内アプリケーションの選択、アクセス権の確認、取引データの確認などの複数のコマンド処理を経た上で、最後に実行される。よって、ここでは最初にアプリケーションを選択するSELECTコマンドのタイミングで、これから利用されるDES鍵を設定する。その他の処理に関しては、上記説明した第1実施形態と同様である。
【0028】
続いて説明する第3実施形態では、第2及び第3実施形態として記述したソフトウェアによるDES鍵設定を、一度のタイミングで行うのではなく、複数のタイミングに分けて設定する。つまり、図4に示すように、CPU3は、DES鍵を構成する複数の分割DES鍵を複数のタイミングに分けてDES回路のDES鍵レジスタへ設定し、DES回路は、複数のタイミングに分けて設定された複数の分割DES鍵により構成される元のDES鍵のCRCをチェックして、元のDES鍵の生成を完了し、生成されたDES鍵に基づきデータを暗号化する。
【0029】
具体的には、図4に示すように、8バイト(SINGLE DESを想定)のDES鍵を想定する。DES暗号が実行されるコマンド処理C(ST204)までの間に、複数のコマンド処理やその他の処理にて(ST201〜ST203)、複数に分割されたDES鍵を複数回に分けて設定する。1回のタイミングで、1バイト分の分割DES鍵を設定するようにしてもよいし、複数バイト分の分割DES鍵を設定するようにしてもよい。コマンド処理C(ST204)では、複数に分割されて設定されたDES鍵レジスタ内データのCRCをチェックして、DES鍵レジスタ内に正しいDES鍵が設定されていることを確認し、DES回路を起動する。
【0030】
或いは、図5に示すように、CPU3は、DES鍵を生成するための複数の鍵生成データを複数のタイミングに分けてDES回路のDES鍵レジスタへ設定し、DES回路は、複数のタイミングに分けて設定された複数の分割DES鍵に基づき元のDES鍵を生成し、元のDES鍵のCRCをチェックして、元のDES鍵の生成を完了し、生成されたDES鍵に基づきデータを暗号化する。
【0031】
具体的には、図5に示すように、1回のタイミングで、DES鍵のデータサイズ分を設定するが(ST301〜ST303)、これは正しいDES鍵ではなく、正しいDES鍵を生成するための鍵生成データである。鍵生成データの演算及び設定をn回繰り返すことにより、正しいDES鍵が得られる。図5では便宜上、n−1回目とn回目など複数回の演算(ここでは排他的論理和)をしてからDES鍵レジスタに設定するように記載しているが、実際には各回毎に演算してDES鍵レジスタに設定という処理をn回繰り返す。ここでソフトウェアはDES鍵レジスタにテンポラリなDES鍵生成のための値(n回目の設定に使う鍵サイズと同じ値)を設定するだけであり、演算はハードウェア内部で行う。コマンド処理C(ST304)では、複数の鍵生成データから生成されたDES鍵、つまりDES鍵レジスタ内のデータのCRCをチェックして、DES鍵レジスタ内に正しいDES鍵が設定されていることを確認し、DES回路を起動する。その他の処理に関しては、第1実施形態と同様である。
【0032】
以下、本実施形態についてまとめる。
【0033】
(1)DES回路起動直前にDES回路内のDES鍵レジスタに対してDES鍵を設定せずに、ICカードのリセット直後に特定のメモリエリア(EEPROM6)に書かれているデータ(鍵)をハードウェアがDES回路内のDES鍵レジスタに設定する。ICカード内に何種類かのDES鍵が記憶されている場合は、一番利用頻度の高いDES鍵を設定する。その他のDES鍵は、利用するタイミングもしくはその他のタイミングでソフトウェアによりそれぞれDES鍵レジスタに設定する。またDES鍵レジスタに対してはデータの書き込みのみ許可されており、DES鍵レジスタからデータを読み込むことはできない。しかし、DES鍵レジスタから、セットされたデータの誤り訂正符号(ここではCRCを想定)を読み込むことはできる。DES回路起動直前では、この誤り訂正符号をチェックすることで正しいデータがセットされていることを確認し、DES回路を起動する。
【0034】
(2)DES回路起動直前にDES回路内のDES鍵レジスタに対してDES鍵を設定せずに、ICカードのリセット直後のタイミングでソフトウェアがDES回路内のDES鍵レジスタに設定する。ICカード内に何種類かのDES鍵が記憶されている場合は、一番利用頻度の高いDES鍵を設定する。その他のDES鍵は、利用するタイミングもしくはその他のタイミングでソフトウェアによりそれぞれDES鍵レジスタに設定する。またDES鍵レジスタに対してはデータの書き込みのみ許可されており、DES鍵レジスタからデータを読み込むことはできない。しかし、DES鍵レジスタから、セットされたデータの誤り訂正符号(ここではCRCを想定)を読み込むことはできる。DES回路起動直前では、この誤り訂正符号をチェックすることで正しいデータがセットされていることを確認し、回路を起動する。
【0035】
(3)DES回路起動直前にDES回路内のDES鍵レジスタに対してDES鍵を設定せずに、SELECTコマンド内において、これから利用されるアプリケーションが選択された時点で、その選択されたアプリケーションで利用するDES鍵をソフトウェアにてDES回路内の鍵レジスタに設定する。また鍵レジスタに対してはデータの書き込みのみ許可されており、DES鍵レジスタからデータを読み込むことはできない。しかし、DES鍵レジスタから、セットされたデータの誤り訂正符号(ここではCRCを想定)を読み込むことはできる。DES回路起動直前では、この誤り訂正符号をチェックすることで正しいデータがセットされていることを確認し、回路を起動する。
【0036】
(4)DES回路起動直前の一度のタイミングでDES回路内のDES鍵レジスタに対してDES鍵を設定せずに、複数回のタイミングに分けてDES鍵レジスタに対して分割されたDES鍵を格納する。つまり、鍵の単位である8バイト(SINGLE DES)、16バイト(TRIPLE DES 2KEY)、24バイト(TRIPLE DES 3KEY)を一度のタイミングでDES回路内のDES鍵レジスタに対してDES鍵を設定せずに、複数回のタイミングに分けてDES鍵レジスタに対して分割された1バイト(或いは2バイト或いは3バイトなど)のDES鍵を順に格納する。また鍵レジスタに対してはデータの書き込みのみ許可されており、DES鍵レジスタからデータを読み込むことはできない。しかし、DES鍵レジスタから、セットされたデータの誤り訂正符号(ここではCRCを想定)を読み込むことはできる。DES回路起動直前では、この誤り訂正符号をチェックすることで正しいデータがセットされていることを確認し、回路を起動する。
【0037】
従来は、HWDES回路起動直前のカードの消費電力波形を詳細に調べることで、HWDES回路にDES鍵を設定するタイミングが特定され、鍵情報の漏洩につながる可能性があった。
【0038】
これに対して、上記した本実施形態の適用により、HWDES回路へのDES鍵の設定をDES回路起動直前ではなく、別のタイミングで行うことにより、DES鍵設定のタイミングを特定され難くし、DES鍵情報の漏洩を防ぐことができる。
【0039】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【0040】
【図1】本実施形態に係る情報記憶媒体の概観を示す図である。
【図2】ICチップの概略構成を示す図である。
【図3】ICカードにおける処理の一例を示すフローチャートである。
【図4】分割されたDES鍵を利用したDES鍵の設定の一例を示す図である。
【図5】論理演算によるDES鍵の設定処理の一例を示す図である。
【符号の説明】
【0041】
1…ICチップ、2…カード本体、3…CPU、4…RAM、5…ROM、6…EEPROM、7…I/O、8…コプロセッサ、9…データバス

【特許請求の範囲】
【請求項1】
モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置と通信する通信手段と、
鍵データを記憶する記憶手段と、
前記鍵データに基づきデータを暗号化する暗号化手段と、
前記通信手段を介して受信された外部装置からのリセット信号に基づき再起動を制御するとともに、この再起動の後続のタイミングで前記暗号化手段に対して前記鍵データを設定する制御手段と、
を備えた情報記憶媒体。
【請求項2】
前記暗号化手段は、前記外部装置からの暗号化処理コマンドの受信に基づき暗号化処理を実行し、
前記制御手段は、前記暗号化処理コマンドの受信前のタイミングで予め前記暗号化手段に対して前記鍵データを設定する請求項1に記載の情報記憶媒体。
【請求項3】
前記制御手段は、ソフトウェアの初動処理において前記暗号化手段に対して前記鍵データを設定する請求項1に記載の情報記憶媒体。
【請求項4】
前記制御手段は、ハードウェアコンフィグレーションにおいて前記暗号化手段に対して前記鍵データを設定する請求項1に記載の情報記憶媒体。
【請求項5】
モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置と通信する通信手段と、
鍵データを記憶する記憶手段と、
前記鍵データに基づきデータを暗号化する暗号化手段と、
前記通信手段を介して受信された外部装置からのアプリケーション選択信号に基づくアプリケーション選択処理において、前記暗号化手段に対して前記鍵データを設定する制御手段と、
を備えた情報記憶媒体。
【請求項6】
モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置と通信する通信手段と、
鍵データを記憶する記憶手段と、
前記鍵データに基づきデータを暗号化する暗号化手段と、
前記暗号化手段に対して、前記鍵データを構成する複数の分割鍵データを複数のタイミングに分けて設定する制御手段と、
を備えた情報記憶媒体。
【請求項7】
モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置と通信する通信手段と、
鍵データを記憶する記憶手段と、
前記鍵データに基づきデータを暗号化する暗号化手段と、
前記暗号化手段に対して、前記鍵データを生成するための複数の鍵生成データを複数のタイミングに分けて設定する制御手段と、
を備え、
前記暗号化手段は、前記複数のタイミングに分けて設定された前記複数の鍵生成データに基づき前記鍵データを生成する情報記憶媒体。
【請求項8】
前記記憶手段は、複数の鍵データを記憶し、
前記制御手段は、各鍵データの利用頻度に基づき前記複数の鍵データの中から一つの鍵データを選択し、選択した鍵データを前記暗号化手段へ設定する請求項1乃至7のいずれか一つに記載の情報記憶媒体。
【請求項9】
前記記憶手段は、前記鍵データの誤り訂正符号を記憶し、
前記暗号化手段は、前記鍵データの誤り訂正符合を読み出し、
前記制御手段は、前記記憶された誤り訂正符号と前記読み出された誤り訂正符合とを照合し、前記暗号化手段に設定された前記鍵データの正当性を確認する請求項1乃至7のいずれか一つに記載の情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−15651(P2009−15651A)
【公開日】平成21年1月22日(2009.1.22)
【国際特許分類】
【出願番号】特願2007−177572(P2007−177572)
【出願日】平成19年7月5日(2007.7.5)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】