(57)【要約】【課題】  補助演算用のコプロセッサを内蔵したＩＣカードにおいて、低消費電力でコプロセッサ演算処理を行い、通信プロトコルの高効率化を図る。【解決手段】  主たる演算処理装置５以外に補助演算用のコプロセッサ３を内蔵したＩＣカード１７であって、フレーム待ち時間より短い設定時間の経過後に割り込み要求信号８を出力するインターバルタイマ４と、割り込み要求信号８の出力に応じてコプロセッサ３への動作クロック１６の供給を停止し、外部装置１４からの所定の応答入力に応じて動作クロック１６の供給を再開して、コプロセッサ３の動作を制御するコプロセッサ制御手段１，２，５を備える。外部装置１４からのコマンドを受信すると、コマンドの内容を判定し、フレーム待ち時間より短い設定時間をインターバルタイマ４に設定し、インターバルタイマ４を起動する。【選択図】  図３
2005222194.tif 000002
【特許請求の範囲】
【請求項１】
主たる演算処理装置以外に補助演算用のコプロセッサを内蔵したＩＣカードであって、
フレーム待ち時間より短い設定時間の経過後に割り込み要求信号を出力するインターバルタイマと、
前記割り込み要求信号の出力に応じて前記コプロセッサへの動作クロックの供給を停止し、外部装置からの所定の応答入力に応じて前記動作クロックの供給を再開して、前記コプロセッサの動作を制御するコプロセッサ制御手段と、を備えてなるＩＣカード。
【請求項２】
前記外部装置からのコマンドを受信すると、前記コマンドの内容を判定し、前記フレーム待ち時間より短い設定時間を前記インターバルタイマに設定し、前記インターバルタイマを起動するインターバルタイマ設定手段を備えることを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記インターバルタイマ設定手段の処理は、前記演算処理装置によって実行されることを特徴とする請求項２に記載のＩＣカード。
【請求項４】
前記コプロセッサ制御手段は、
前記コプロセッサへの動作クロックの供給を停止及び再開を制御するための制御フラグと、
前記制御フラグの状態に応じて前記コプロセッサへの動作クロックの供給の停止及び再開を制御する動作クロック制御手段と、
前記割り込み要求信号の出力を受け付けて、前記制御フラグの状態を動作停止状態に設定し、前記応答入力を受け付けて、前記制御フラグの状態を動作再開状態に設定する制御フラグ設定手段と、
を備えてなることを特徴とする請求項１〜３の何れか１項に記載のＩＣカード。
【請求項５】
前記制御フラグ設定手段の処理は、前記演算処理装置によって実行されることを特徴とする請求項４に記載のＩＣカード。
【請求項６】
前記演算処理装置は、前記コプロセッサへの動作クロックの供給が停止すると、前記外部装置へフレーム待ち時間延長要求を出力し、前記外部装置からその応答入力を受け付けると、前記制御フラグの状態を動作再開状態に設定することを特徴とする請求項５に記載のＩＣカード。
【請求項７】
通常処理用のプログラムを格納する不揮発性メモリと、前記不揮発性メモリより低動作消費電力の第２のメモリを備え、
少なくとも前記コプロセッサの動作時において、前記コプロセッサが処理するプログラムが前記第２のメモリに格納されることを特徴とする請求項１〜６の何れか１項に記載のＩＣカード。
【請求項８】
前記コプロセッサの動作時において、前記不揮発性メモリに対するアクセスが禁止されることを特徴とする請求項７に記載のＩＣカード。
【請求項９】
前記外部装置との通信用に、非接触インタフェース及び接触インタフェースの少なくとも何れか一方を備えることを特徴とする請求項１〜８の何れか１項に記載のＩＣカード。
【請求項１０】
主たる演算処理装置以外に補助演算用のコプロセッサを内蔵したＩＣカードの制御方法であって、
フレーム待ち時間より短い設定時間の経過後に割り込み要求信号を出力するように割り込み許可の設定を行い、
前記割り込み許可の設定後に、前記コプロセッサの演算処理を開始し、
前記コプロセッサの演算処理中に、前記割り込み要求信号が出力されると、割り込み処理に分岐し、
前記割り込み処理において、前記コプロセッサへの動作クロックの供給を停止し、外部装置からの所定の応答入力を受け付けると、前記動作クロックの供給を再開することを特徴とするＩＣカードの制御方法。
【請求項１１】
前記外部装置からのコマンドを受信すると、前記コマンドが前記コプロセッサの実行コマンドであるか否かを判定し、前記コプロセッサの実行コマンドである場合に、前記割り込み許可の設定を行うことを特徴とする請求項１０に記載のＩＣカードの制御方法。
【請求項１２】
前記割り込み処理において、前記コプロセッサへの動作クロックの供給を停止した後に、前記外部装置へフレーム待ち時間延長要求を出力し、前記外部装置からその応答入力を受け付けると、前記動作クロックの供給を再開することを特徴とする請求項１０または１１に記載のＩＣカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理等の補助演算用のコプロセッサを内蔵したＩＣカードに関し、より詳細には、ＩＣカードと外部装置間の通信プロトコルの効率を改善するための、非接触型、接触型、及び、コンビ型の何れのＩＣカードにも利用可能な技術に関する。
【背景技術】
【０００２】
プラスチック製のカードに不揮発性メモリ、ＣＰＵ、暗号用コプロセッサ等のＩＣチップ（半導体集積回路装置）を実装したＩＣカードは、現在広く利用されている磁気カードに比べ、より大量のデータを扱うこと、セキュリティに優れていることから、様々な用途で普及し始めている。ＩＣカードは、その表面に金属製の端子を設けたＩＣカードを外部のリーダライタ装置に差し込むことで、その端子を介して電力の供給とデータの授受を行う接触型ＩＣカードと、電磁誘導技術を用いてリーダライタ装置が発生する磁場の中にアンテナコイルを進入させることでリーダライタ装置と電波（例えば、数ＭＨｚ〜数十ＭＨｚ程度のキャリア周波数）で電力の供給やデータの授受を行う非接触型ＩＣカード、また、接触型と非接触型両方のインタフェースを備えたコンビ型ＩＣカード等がある。近年では非接触型ＩＣカードが、その操作の利便性のために普及し始めている。
【０００３】
〈非接触型ＩＣカードにおける電力供給上の問題〉
ところで、非接触型ＩＣカード或いはコンビ型ＩＣカードにおける非接触通信ではリーダライタ装置から電磁誘導による給電を行うために、ＩＣカードに大容量の電力を駆動できず、小容量の電源となっている。従って、非接触型ＩＣカードは、極力消費電流を抑制する必要がある。現在のＩＣカードでは、不揮発性メモリの読出し、書込み、消去、また、前述した暗号演算用のコプロセッサで消費される電流が大きいため、非接触での電力供給に問題がある。
【０００４】
〈非接触型ＩＣカードにおける通信上の問題〉
近接型非接触型ＩＣカードの通信方式は、例えばＩＳＯ１４４４３ｔｙｐｅＢ規格（ＡＳＫ１０％）で規格化されており、低深度変調となっている。ここで低深度変調とは、通信に使用される信号の最大幅Ａｍａｘと最小幅Ａｍｉｎから以下の数１に示す式で定義された比率を変調率と呼び、１０％のような低い変調率の通信を低深度変調と呼ぶ。
【０００５】
（数１）
変調率＝（Ａｍａｘ−Ａｍｉｎ）／（Ａｍａｘ＋Ａｍｉｎ）
【０００６】
低深度変調においては、僅かな電圧変動が通信品質に影響を与える。従って通信中には、消費電流を抑制することが不可欠であり、従来は通信中に、演算用コプロセッサの動作、不揮発性メモリの書き込み、消去、読み出し等の動作を行うことは困難であった。
【０００７】
〈フレーム待ち時間設定上の問題〉
非接触型ＩＣカードとリーダライタ装置間の通信における初期応答は、ＩＳＯ１４４４３‐３（非特許文献１）によって規格化されている。その非接触型ＩＣカードの処理フローチャートを図１に示す。
【０００８】
また、初期応答後の、非接触型ＩＣカードとリーダライタ装置間の通信におけるプロトコルは、ＩＳＯ１４４４３‐４（非特許文献２）によって規格化されている。
【０００９】
初期応答は、電源ＯＦＦ状態にある非接触型ＩＣカードがリーダライタ装置からエネルギーを受けたとき、電源が立ち上がり、ＲＥＱＢコマンドがリーダライタ装置からＩＣカードに送信されることで開始される。ＲＥＱＢコマンドは、非接触型ＩＣカードの準備要求コマンドであり、そのコマンド内には、用途分野識別子（ＡＦＩ）、 属性情報パラメータ（ＰＡＲＭ）、巡回冗長検査符号（ＣＲＣ）などの情報が含まれる。
【００１０】
準備要求ＲＥＱＢコマンドを受信した非接触型ＩＣカードは、ＲＥＱＢコマンド中の用途分野識別子（ＡＦＩ）の一致検出、属性情報（ＰＡＲＭ）から非接触型ＩＣカードの枚数の上限値（実施例では、Ｎ＝１枚）の判断を経て、リーダライタ装置にＡＴＱＢ応答を返信することになる。ＡＴＱＢ応答は、ＲＥＱＢコマンドに対するリクエスト応答信号であり、擬似固有識別子（ＰＵＰＩ）、アプリケーション情報（Application data）、プロトコル情報(Protocol information)、巡回冗長検査符号（ＣＲＣ）等の情報が含まれる。ＡＴＱＢ応答をリーダライタ装置が受信することで、リーダライタ装置はそれらの情報を得る。
【００１１】
非接触型ＩＣカードがＡＴＱＢ応答を返却し、更に、ＡＴＴＲＩＢコマンドの受信とＡＴＴＲＩＢ応答を行うと初期応答は完了し、非接触型ＩＣカードは、アクティブ状態へ移行する。
【００１２】
その後、非接触型ＩＣカードとリーダライタ装置は、ＩＳＯ１４４４３‐４で規格化されたプロトコルで通信を実施する。
【００１３】
通常、リーダライタ装置と非接触型ＩＣカードは、上記のプロトコルを用いてリーダライタ装置から非接触型ＩＣカードへコマンドを送信し、非接触型ＩＣカードは受信コマンドに応じた処理を実行してコマンドの実行結果をリーダライタ装置へ送信する。リーダライタ装置からＳブロックによるＤＥＳＥＬＥＣＴコマンドを非接触型ＩＣカードが受信したとき、非接触型ＩＣカードはホルト（ＨＡＬＴ）状態に移行する。非接触型ＩＣカードがホルト状態にあるとき、リーダライタ装置からのＷＵＰＢコマンドのみ受信可能である。ＷＵＰＢコマンドによって、非接触型ＩＣカードは、再び初期応答動作のうちＡＦＩの一致検出から動作を行う。
【００１４】
初期応答時のＲＥＱＢコマンドに対するＡＴＱＢ応答内に含まれるプロトコル情報(Protocol information)には、非接触型ＩＣカードが通信に要望するパラメータとしてビット伝送速度、最大フレームサイズ等が含まれており、その中には、リーダライタ装置がフレーム待ち時間を設定するためのパラメータＦＷＩがある。リーダライタ装置はＦＷＩを受信後、以下の数２に示す計算を行いフレーム待ち時間ＦＷＴを設定する。
【００１５】
（数２）
ＦＷＴ＝（２５６×１６／ｆｃ）×２ＦＷＩ
【００１６】
上記の数２において、ｆｃはリーダライタ装置が発生する搬送波周波数であり、規格では１３．５６ＭＨｚとなっている。規格では、ＦＷＩには０〜１４の値(約３０２μｓ〜約４９４９ｍｓのＦＷＴに対応)が割り当てられている。ＦＷＩにどの値を採用するかは、非接触型ＩＣカード側で決められており、非接触型ＩＣカードはリーダライタ装置へ送信したＦＷＩに応じた時間内に非接触型ＩＣカード内の処理を完了させる必要がある。この時間内に非接触型ＩＣカード内の処理が完了しなかった場合、リーダライタ装置はタイムアウトエラーとして処理して良いことになっている。ＩＳＯ１４４４３‐４のプロトコル通信適用中において、リーダライタ装置のフレーム待ち時間内に非接触型ＩＣカード側の処理が終わらない場合は、非接触型ＩＣカードはリーダライタ装置へフレーム待ち時間延長要求を行いリーダライタ装置側のタイムアウトエラー判定時間を延ばす必要がある。フレーム待ち時間延長のためのリーダライタ装置と非接触型ＩＣカードの通信コマンドは、ＩＳＯ１４４４３‐４のプロトコル規格で定められている。現在、非接触型ＩＣカード内で長い処理が必要な処理は、コプロセッサ演算を必要とする各種暗号化／復号化のための算術演算等がある。
【００１７】
初期応答においてＦＷＩを、例えば、ＦＷＩ＝１４のような大きな値に設定した場合、リーダライタ装置側でタイムアウトエラー判定の時間が常に長く設定されることになる。そのため、時間延長の必要がない他のコマンドにおいて、非接触型ＩＣカード内の処理や通信において異常が発生し、リーダライタ装置からのコマンドに対する非接触型ＩＣカードの応答をリーダライタ装置が正しく受信できなかった場合に、リーダライタ装置は、タイムアウトエラーの異常判定に必要以上の時間がかかってしまいパフォーマンスを落とすという問題がある。初期応答でのＦＷＩ設定は、ＩＣカードシステム全体のパフォーマンスを考慮してなるべく小さな値を設定することが望ましい。
【００１８】
しかしながら、ＩＣカードシステムのパフォーマンスを考慮して、ＦＷＩを例えばＦＷＩ＝４のような小さな値に設定すると、一部のコプロセッサ演算においては、リーダライタ装置のフレーム待ち時間を越えてしまう演算時間が必要になる場合がある。
【００１９】
かかるフレーム待ち時間設定上の問題を解決するために、コプロセッサ演算中にタイマ割り込み機能などを利用して、フレーム待ち時間延長のためのリーダライタ装置と非接触型ＩＣカード間の通信を行う方法も考えられるが、コプロセッサ演算中にフレーム待ち時間延長要求（通信）を行うことは、本来の演算処理に通信処理が加わるため、消費電力の増大につながり非接触型ＩＣカードの通信において、通信距離が短くなる、或いは、通信の安定性が低下する等、当該方法により効率を上げることは困難となる。
【００２０】
また、コプロセッサ演算において、演算用コプロセッサが実施する演算種類及び演算用コプロセッサへ与えるパラメータによって処理時間が異なっている。現在では、複数の暗号処理、また１つの暗号処理内でも複数のパラメータ処理が必要となっており、事前に処理時間をテーブル化してフレーム待ち時間延長が必要であるかどうかを予測することは困難となっている。従って、現状の非接触型ＩＣカードにおいては、全てのコプロセッサ演算を実施する前にフレーム待ち時間延長のための通信を行い、フレーム待ち時間の延長設定をリーダライタ装置に対して行う処理を行っている。リーダライタ装置に対してのフレーム待ち時間延長は、一時的なものであり、非接触型ＩＣカードの一回のコマンド処理が完了(コマンドに対する応答をリーダライタ装置へ送信)後は、リーダライタ装置のフレーム待ち時間は初期値に戻る。
【００２１】
次に、従来のフレーム待ち時間の設定に関する実施例を図２に示す。図２に示す従来例によれば、リーダライタ装置と非接触型ＩＣカードは、ＩＳＯ１４４４３‐４プロトコルに従って、以下のように動作する。尚、図２中のＲ／Ｗは、リーダライタ装置を、ＩＣＣは非接触型ＩＣカードを示す。
【００２２】
（１）  リーダライタ装置は、Ｉブロックによって非接触型ＩＣカードへコマンドを送信する。非接触型ＩＣカードは、そのコマンドを受信しコマンドの種別を判定する。
（２）  （１）における受信コマンドが演算用コプロセッサの動作を伴うコマンドであれば、非接触型ＩＣカードはコプロセッサ演算開始前に、フレーム待ち時間延長要求(ＳブロックのＷＴＸ要求)をリーダライタ装置へ送信する。
（３）  リーダライタ装置は、ＳブロックのＷＴＸ要求に従って、フレーム待ち時間を延長させる。リーダライタ装置は、フレーム待ち時間延長応答(ＳブロックのＷＴＸ応答)を非接触型ＩＣカードへ送信する。
（４）  非接触型ＩＣカードは、コマンドの実行処理(コプロセッサ演算処理)を行う。
（５）  非接触型ＩＣカードは、コマンドの実行処理が完了するとリーダライタ装置へコマンドに対する実行結果をＩブロックによってリーダライタ装置へ送信する。
【非特許文献１】ＩＳＯ１４４４３‐３
【非特許文献２】ＩＳＯ１４４４３‐４
【非特許文献３】ＩＳＯ７８１６‐３
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記従来例におけるフレーム待ち時間設定方式は、少なくとも以下の２つ課題を有している。即ち、第１に、フレーム待ち時間延長が必要のない(処理時間の短い)コプロセッサ演算においても、フレーム待ち時間延長のための通信が行われるため、その送受信のための時間的な無駄が発生し、リーダライタ装置と非接触型ＩＣカードの通信の効率が低下する。第２に、コプロセッサ演算処理前にフレーム待ち時間延長のための通信を行うため、その通信をトリガとして攻撃者に対し暗号化演算や復号化演算の鍵情報などの解析ポイントを知らしめることになり、セキュリティ上問題になる可能性がある。
【００２４】
本発明は、上記問題点に鑑みてなされたもので、主として非接触型ＩＣカードにおける電力供給上の問題、通信上の問題、及び、フレーム待ち時間設定上の問題を解消し、低消費電力で高効率通信が可能なＩＣカード及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するための本発明に係るＩＣカードは、主たる演算処理装置以外に補助演算用のコプロセッサを内蔵したＩＣカードであって、フレーム待ち時間より短い設定時間の経過後に割り込み要求信号を出力するインターバルタイマと、前記割り込み要求信号の出力に応じて前記コプロセッサへの動作クロックの供給を停止し、外部装置からの所定の応答入力に応じて前記動作クロックの供給を再開して、前記コプロセッサの動作を制御するコプロセッサ制御手段と、を備えてなることを第１の特徴とする。
【００２６】
上記第１の特徴の本発明に係るＩＣカードによれば、コプロセッサの演算処理が、フレーム待ち時間より短い設定時間を超過する場合に、コプロセッサの演算処理を中断して、例えばリーダライタ装置等の外部装置に対して、通信条件の変更要求（例えば、フレーム待ち時間延長要求）を送信することで、外部装置の通信条件を変更し、その変更確認応答入力の受信を待って、中断したコプロセッサの演算処理を再開させることができる。この結果、コプロセッサの演算処理と外部装置間の通信を同時に行うことによる非接触型ＩＣカードにおける電力供給上の問題、及び、通信上の問題を回避して、コプロセッサの演算処理中に外部装置に対してフレーム待ち時間延長要求が行え、不用意なタイムアウトエラーの発生を回避できる。また、コプロセッサの演算処理が、前記設定時間の経過する前に完了する場合は、外部装置に対して通信条件の変更要求を行うという無駄が省け、通信効率及び処理効率の向上が図れる。また、外部装置に対して通信条件の変更要求が、コプロセッサの演算処理開始後の上記設定時間経過後に行われるので、当該通信をトリガとする攻撃者に対するセキュリティが向上する。
【００２７】
また、好ましくは、上記第１の特徴の本発明に係るＩＣカードにおいて、前記外部装置からのコマンドを受信すると、前記コマンドの内容を判定し、前記フレーム待ち時間より短い設定時間を前記インターバルタイマに設定し、前記インターバルタイマを起動するインターバルタイマ設定手段を備えることを第２の特徴とする。ここで、前記インターバルタイマ設定手段の処理は、前記演算処理装置によって実行されるのも好ましい。この第２の特徴によれば、外部装置からの受信コマンドの内容に応じて設定時間を調整できるため、通信効率及び処理効率の向上がより効果的に図れる。
【００２８】
更に好ましくは、上記何れかの特徴の本発明に係るＩＣカードにおいて、前記コプロセッサ制御手段が、前記コプロセッサへの動作クロックの供給を停止及び再開を制御するための制御フラグと、前記制御フラグの状態に応じて前記コプロセッサへの動作クロックの供給の停止及び再開を制御する動作クロック制御手段と、前記割り込み要求信号の出力を受け付けて、前記制御フラグの状態を動作停止状態に設定し、前記応答入力を受け付けて、前記制御フラグの状態を動作再開状態に設定する制御フラグ設定手段と、を備えてなることを第３の特徴とする。ここで、前記制御フラグ設定手段の処理は、前記演算処理装置によって実行されるのも好ましい。この第３の特徴によれば、前記コプロセッサ制御手段が具体的に実現され、上記第１または第２の特徴のＩＣカードの作用効果を奏することができる。
【００２９】
更に好ましくは、上記第３の特徴の本発明に係るＩＣカードにおいて、前記演算処理装置は、前記コプロセッサへの動作クロックの供給が停止すると、前記外部装置へフレーム待ち時間延長要求を出力し、前記外部装置からその応答入力を受け付けると、前記制御フラグの状態を動作再開状態に設定することを第４の特徴とする。ここで、前記制御フラグ設定手段の処理は、前記演算処理装置によって実行される。この第４の特徴によれば、前記コプロセッサの演算処理中断中に、フレーム待ち時間延長要求のための外部装置との通信が実行されるので、電力供給不足になるのを回避してフレーム待ち時間延長が可能となり、上記第１または第２の特徴のＩＣカードの作用効果を奏することができる。
【００３０】
更に好ましくは、上記何れかの特徴の本発明に係るＩＣカードにおいて、通常処理用のプログラムを格納する不揮発性メモリと、前記不揮発性メモリより低動作消費電力の第２のメモリを備え、少なくとも前記コプロセッサの動作時において、前記コプロセッサが処理するプログラムが前記第２のメモリに格納されることを第５の特徴とする。更に、前記コプロセッサの動作時において、前記不揮発性メモリに対するアクセスが禁止されるのが好ましい。この第５の特徴によれば、前記コプロセッサの演算処理時における消費電力の低減が図れ、特に、非接触型ＩＣカードにおける電力供給上の問題の解消がより効果的に図れる。
【００３１】
更に好ましくは、上記何れかの特徴の本発明に係るＩＣカードにおいて、前記外部装置との通信用に、非接触インタフェース及び接触インタフェースの少なくとも何れか一方を備えることを特徴とする。つまり、上記各特徴のＩＣカードの作用効果は、通信インタフェースが非接触、接触の何れかに拘らず奏することができる。
【００３２】
上記目的を達成するための本発明に係るＩＣカードの制御方法は、主たる演算処理装置以外に補助演算用のコプロセッサを内蔵したＩＣカードの制御方法であって、フレーム待ち時間より短い設定時間の経過後に割り込み要求信号を出力するように割り込み許可の設定を行い、前記割り込み許可の設定後に、前記コプロセッサの演算処理を開始し、前記コプロセッサの演算処理中に、前記割り込み要求信号が出力されると、割り込み処理に分岐し、前記割り込み処理において、前記コプロセッサへの動作クロックの供給を停止し、外部装置からの所定の応答入力を受け付けると、前記動作クロックの供給を再開することを特徴とする。
【００３３】
また、上記特徴の本発明に係るＩＣカードの制御方法において、前記外部装置からのコマンドを受信すると、前記コマンドが前記コプロセッサの実行コマンドであるか否かを判定し、前記コプロセッサの実行コマンドである場合に、前記割り込み許可の設定を行うことが好ましい。更に、前記割り込み処理において、前記コプロセッサへの動作クロックの供給を停止した後に、前記外部装置へフレーム待ち時間延長要求を出力し、前記外部装置からその応答入力を受け付けると、前記動作クロックの供給を再開することが好ましい。
【発明を実施するための最良の形態】
【００３４】
本発明に係るＩＣカードの一実施の形態につき、図面に基づいて説明する。
【００３５】
〈第１実施形態〉
先ず、本発明に係るＩＣカードのハードウェア構成について、図３のシステム構成図を参照して説明する。本第１実施形態では、非接触型ＩＣカードを想定して説明する。
【００３６】
本発明に係る非接触型ＩＣカード１７は、主たる演算処理装置としてのＣＰＵ５と、ＣＰＵ５以外の暗号処理等の補助演算用のコプロセッサ３を内蔵したＩＣカードであって、コプロセッサ３へ供給されるコプロセッサ動作クロックの供給停止及び供給再開を行う動作クロック制御フラグ１と、コプロセッサの動作クロックの供給停止及び供給再開を制御する動作クロック制御回路２と、インターバルタイマ４を備えている。また、外部装置であるリーダライタ装置１４から発生した信号を送信／受信するためのアンテナ１５、アンテナ１５に接続されるＲＦ回路１３、ＲＦ回路１３に接続される通信インタフェース９、ＲＦ回路１３に接続される動作クロック生成回路１０を備える。更に、本構成のＩＣカードに対する制御をＣＰＵ５の処理により実行するための制御用プログラムを格納するために、フラッシュメモリ等の不揮発性メモリ１２、及び、スタティックＲＡＭ等のＲＡＭ１１を備える。
【００３７】
ＲＦ回路１３は、リーダライタ装置１４から受信した信号を復調して、データを通信インタフェース９へ伝送する。また、通信インタフェース９から伝送されたデータを、アンテナ１５を通じて、リーダライタ装置１４へ送信する。更に、リーダライタ装置１４から受信した信号からクロックを抽出して、動作クロック生成回路１０へクロックを供給する。
【００３８】
動作クロック生成回路１０では、非接触型ＩＣカード１７内の各種回路を動作させるために動作クロック１６を生成し、動作クロック制御回路２、ＣＰＵ５、インターバルタイマ４、通信インタフェース９等へ動作クロック１６を供給する。
【００３９】
動作クロック制御フラグ１、コプロセッサ３、インターバルタイマ４、ＣＰＵ５、通信インタフェース９、不揮発性メモリ１２、及び、ＲＡＭ１１は、互いにデータバス６で接続されて構成されるとともに、ＣＰＵ５から出力される制御信号群７が、動作クロック制御フラグ１、コプロセッサ３、インターバルタイマ４、通信インタフェース９、不揮発性メモリ１２、及び、ＲＡＭ１１に入力される。この制御信号群７は、例えば、アドレス信号、読み出し信号、書き込み信号等で構成される。また、インターバルタイマ４から出力される割り込み要求信号８がＣＰＵ５に入力される。
【００４０】
ＣＰＵ５は、データバス６と制御信号群７を用いて、動作クロック制御フラグ１、コプロセッサ３、インターバルタイマ４、通信インタフェース９、不揮発性メモリ１２、及び、ＲＡＭ１１の動作を、上記制御用プログラムを実行するにより制御することができる。例えば、ＣＰＵ５は、インターバルタイマ４に対してデータバス６を介して、任意のアドレス信号や書き込み信号から構成される制御信号群７によって任意のデータを書き込むことによって、任意のカウント動作を行わせることができる。ＣＰＵ５によって、起動されたインターバルタイマ４は、指定された設定時間が経過すると割り込み要求信号８をＣＰＵ５へ出力し、ＣＰＵ５はその割り込み要求信号８を受け取ることによって、割り込み処理を行いフレーム待ち時間が経過することを認識することができる。割り込み処理用のプログラムは、不揮発性メモリ１２またはＲＡＭ１１内に格納され、この処理の中でフレーム待ち時間延長のための送受信処理を、通信インタフェース９を用いて、リーダライタ装置１４との間で実施することができる。
【００４１】
また、ＣＰＵ５は、動作クロック制御フラグ１に対して任意のアドレス信号や書き込み信号から構成される制御信号群７によって、データ“０”またはデータ“１”を、データバス６を介して書き込むことができ、動作クロック制御フラグ１の内容を、任意のアドレス信号や読み出し信号から構成される制御信号群７によってデータバス６を介して読み出すこともできる。
【００４２】
また、ＣＰＵ５は、コプロセッサ３に対して任意のアドレス信号や書き込み信号から構成される制御信号群７によって任意のデータを、データバス６を介して書き込み、任意の演算を行わせることができる。コプロセッサ３は、動作クロック生成回路１０から動作クロック１６が供給されている時のみ動作可能であり、動作クロック生成回路１０から動作クロック１６が供給されていない時は演算処理を停止する。
【００４３】
コプロセッサ３の動作クロックの停止及び再開を制御する動作クロック制御回路２は、動作クロック生成回路１０で生成された動作クロック１６と動作クロック制御フラグ１の状態が入力される。動作クロック制御回路２は、例えば、論理和回路で構成され、コプロセッサ３に動作クロックを供給するか否かを制御する。この場合、動作クロック制御フラグ１の内容がデータ“０”の場合、動作クロック制御回路２は動作クロック生成回路１０から供給された動作クロック１６をコプロセッサ３に供給する。動作クロック制御フラグ１の内容がデータ“１”の場合、動作クロック制御回路２は動作クロック生成回路１０から供給された動作クロック１６をコプロセッサ３に供給しない。
【００４４】
上記ハードウェア構成において、動作クロック制御フラグ１、動作クロック制御回路２、及び、ＣＰＵ５による動作クロック制御フラグ１に対するデータ“０”または“１”を設定する手段によって、インターバルタイマ４からの割り込み要求信号８の出力に応じてコプロセッサ３への動作クロックの供給を停止し、外部装置からの所定の応答入力に応じて動作クロックの供給を再開して、コプロセッサの動作を制御するコプロセッサ制御手段が提供される。
【００４５】
上記ハードウェア構成により、ＣＰＵ５は、動作クロック制御フラグ１を制御することによって、コプロセッサ３の動作の中断、再開を制御することができる。
【００４６】
次に、上記ハードウェア構成を利用して、非接触型ＩＣカード１７とリーダライタ装置１４間における、フレーム待ち時間延長に係る一連の制御手順について、図３、図４及び図５を参照して説明する。尚、非接触型ＩＣカード１７とリーダライタ装置１４間の通信プロトコルは、ＩＳＯ１４４４３‐３及びＩＳＯ１４４４３‐４に準拠するものとする。
【００４７】
上記フレーム待ち時間延長に係る制御手段は、ＣＰＵ５が実行する制御用プログラムとして、不揮発性メモリ１２に格納される。上記制御手順は、ＣＰＵ５により上記の周辺ハードウェアを利用してソフトウェア的に処理される。
【００４８】
図４は、非接触型ＩＣカード１７のコマンド実行中（コプロセッサ３の演算処理実行中）に、フレーム待ち時間延長用タイマとして利用するインターバルタイマ４がオーバーフローするために、Ｓ‐ＷＴＸ要求送受信が発生する場合の動作例である。以下の（１）〜（９）の処理が実施される。
【００４９】
図５は、非接触型ＩＣカード１７のコマンド実行中(コプロセッサ３の演算処理実行中)にフレーム待ち時間延長用タイマとして利用するインターバルタイマ４がオーバーフローせず、Ｓ‐ＷＴＸ要求送受信が発生しない場合の動作例である。この場合、以下の（１）〜（３）及び（９）の処理が実施される。
【００５０】
本実施形態では、コプロセッサ３の動作と、リーダライタ装置１４と非接触型ＩＣカード１７の通信が同時に行われないように構成している。
【００５１】
処理（１）：リーダライタ装置１４は、ＩブロックによってＩＣカードへ任意のコマンドを送信する。非接触型ＩＣカード１７に内蔵されたＣＰＵ５は、そのコマンドを受信しコマンドの内容を判定する。そして、インターバルタイマ４にフレーム待ち時間が経過する前にタイマ割り込みが発生するカウント値を設定後、タイマ割り込みを許可してフレーム待ち時間延長用のインターバルタイマ４を起動する。
【００５２】
処理（２）：ＣＰＵ５は、コマンドの実行処理（コプロセッサ演算処理）を行う。
【００５３】
処理（３）：ＣＰＵ５は、コプロセッサ３の演算処理終了をモニターし、演算処理終了を検出したら、下記の処理（９）を実行する。
【００５４】
処理（４）：上記処理（３）中に、演算処理終了を検出する前にフレーム待ち時間延長用のインターバルタイマ４がオーバーフローした場合、割り込み要求信号８が発生することによって非接触型ＩＣカード１７の割り込み起動ルーチンへ分岐し、処理（５）〜（８）を実行する。
【００５５】
処理（５）：ＣＰＵ５は、動作クロック制御フラグ１にデータ“１”をセットし、動作クロック制御回路２によって動作クロック１６をコプロセッサ３へ供給することを停止する。これにより、コプロセッサ３の動作は一時停止(Suspend)状態になる。
【００５６】
処理（６）：ＣＰＵ５は、Ｓ‐ＷＴＸ要求送受信処理を呼び出す。この処理の中で、ＣＰＵ５は、フレーム待ち時間延長要求(Ｓ‐ＷＴＸ要求)をリーダライタ装置１４へ送信する。尚、Ｓ‐ＷＴＸ要求は、Ｓブロック（ＩＳＯ１４４４３‐４プロトコルの管理ブロック）のコマンドによるフレーム待ち時間延長要求である。
【００５７】
処理（７）：リーダライタ装置１４は、Ｓ‐ＷＴＸ要求に従って、タイムアウト時間を延長させる。リーダライタ装置１４は、フレーム待ち時間延長応答(Ｓ‐ＷＴＸ応答)を非接触型ＩＣカード１７へ送信する。尚、Ｓ‐ＷＴＸ応答は、Ｓ‐ＷＴＸ要求に対するＳブロックコマンドによるリーダライタ装置１４の応答である。
【００５８】
処理（８）：ＣＰＵ５は、動作クロック制御フラグ１にデータ“０”をセットし、動作クロック制御回路２によって動作クロック１６をコプロセッサ３へ供給することを再開する。これにより、コプロセッサ３の動作は再開(Resume)状態になる。非接触型ＩＣカード１７は、割り込みリターンし、処理（３）へ戻る。
【００５９】
処理（９）：ＣＰＵ５は、コマンドの実行処理が完了すると、リーダライタ装置１４へ、コマンド実行結果をＩブロック（ＩＳＯ１４４４３‐４プロトコルの情報ブロック）によって送信する。
【００６０】
以上の制御手順により、コプロセッサ３の演算処理実行中に、インターバルタイマ４による割り込み要求信号８が発生したときのみ、ＣＰＵ５による割り込み処理が起動され、コプロセッサ３の動作（演算処理）を一時停止し、リーダライタ装置１４に対してフレーム待ち時間を延長した上でコプロセッサ３の動作を再開することができるため、フレーム待ち時間の送受信をトリガとして攻撃者に対し解析ポイントを知られることなく実施でき、セキュリティ上有利となる。また、インターバルタイマ４による割り込み要求が発生する前にコプロセッサ３の演算が終了した場合は、フレーム待ち時間延長のための通信が発生することなく、コマンド処理を完了することができるため、通信の効率が改善できる。
【００６１】
〈第２実施形態〉
上記第１実施形態では、コプロセッサ３が動作中にリーダライタ装置１４と非接触型ＩＣカード１７の通信が同時に行われないように構成した例を示した。ここで、コプロセッサ３が処理するプログラムは、不揮発性メモリ１２内に格納されている場合を例示した。しかし、コプロセッサ３の動作は不揮発性メモリ１２内に格納されたプログラムを実行するよりも、ＲＡＭ１１等のより消費電力の少ないメモリ上で実行し、割り込み発生時の処理もコプロセッサ３の動作が一時停止するまでは、ＲＡＭ１１上で実行して、不揮発性メモリ１２へのアクセスを禁止した方が、コプロセッサ３の動作時における消費電力を低減できる。
【００６２】
また、フレーム待ち時間延長時に発生するリーダライタ装置１４と非接触型ＩＣカード１７の通信処理プログラムも、同様にＲＡＭ１１上に配置した方が消費電力の低減が図れる。
【００６３】
以下、コプロセッサ処理プログラム、及び、フレーム待ち時間延長時に発生するリーダライタ装置１４と非接触型ＩＣカード１７間の通信処理プログラムをＲＡＭ１１上で実行し、コプロセッサ処理プログラム実行中は、不揮発性メモリ１２へのアクセスを禁止する第２実施形態について、図３のハードウェア構成図、及び、図６〜図１０のフローチャートを参照して説明する。尚、非接触型ＩＣカード１７のハードウェア構成は、第１実施形態と同じものを想定する。また、非接触型ＩＣカード１７の制御手段は、ＣＰＵ５が実行する制御用プログラムとして、不揮発性メモリ１２に格納される。
【００６４】
先ず、図６に示すように、リーダライタ装置１４から電波により非接触型ＩＣカード１７に電力供給が開始すると、非接触型ＩＣカード１７の動作が開始する（ステップＳ１）。
【００６５】
次に、非接触型ＩＣカード１７は初期化処理（ステップＳ２）を実行する。ステップＳ２の初期化処理は、例えば、図７に示すように、初期化処理のサブルーチンとして構成されており、この処理の中で、データ送信／受信処理（ステップＳ２１）、割り込み処理（ステップＳ２２）、コプロセッサ演算処理（ステップＳ２３）の各プログラムを、不揮発性メモリ１２からＲＡＭ１１へ転送する。
【００６６】
次に、ステップＳ３において、図１に示した初期応答動作を、非接触型ＩＣカード１７とリーダライタ装置１４間で行い、非接触型ＩＣカード１７はＩＳＯ１４４４３‐４プロトコルにおいて通信可能な状態(アクティブ状態)となる。
【００６７】
非接触型ＩＣカード１７は、ステップＳ４において、ステップＳ２でＲＡＭ１１に転送されたデータ受信処理に分岐し、リーダライタ装置１４から送信されるコマンド(Ｉブロックコマンド)を待つ。
【００６８】
ステップＳ４において、非接触型ＩＣカード１７は、リーダライタ装置１４からのコマンド(Ｉブロック コマンド)を受信したとき、ステップＳ５に移行し、コマンドがコプロセッサ３の実行を含むコマンドであるか否かを判定する。受信コマンドが、コプロセッサ３の実行を含むコマンドであると判定された場合、ステップＳ６に移行し、インターバルタイマ４にフレーム待ち時間が経過する前にタイマ割り込みが発生するカウント値を設定後、タイマ割り込みを許可してインターバルタイマ４を起動する。受信コマンドが、コプロセッサの実行を含まないコマンドであると判定された場合、ステップＳ７へ移行し、その他の処理を実行する。
【００６９】
ステップＳ６において、インターバルタイマ４が起動した後、非接触型ＩＣカード１７はステップＳ２でＲＡＭ１１に格納されたコプロセッサ演算処理（ステップＳ８）へ分岐する。
【００７０】
ステップＳ８に分岐すると、図８に示すように、非接触型ＩＣカード１７は、ＲＡＭ１１内からコプロセッサ演算をスタートし(ステップＳ８１)、ステップＳ８２においてコプロセッサ３の演算処理の終了を待つ。もし、ステップＳ８２においてインターバルタイマ４がオーバーフローした時、割り込み要求信号８が発生して割り込み処理が起動する。割り込み処理が起動したとき、非接触型ＩＣカード１７は、ステップＳ２でＲＡＭ１１に格納したステップＳ８内の割り込み処理に分岐する。ステップＳ８２においてインターバルタイマ４がオーバーフローすることなく、コプロセッサ３の演算処理が終了した場合は、非接触型ＩＣカード１７はステップＳ８のコプロセッサ演算処理を終了する。
【００７１】
ステップＳ８内の割り込み処理は、図９に示すように、ステップＳＩｎｔ１において、非接触型ＩＣカード１７がインターバルタイマ４の動作を停止する。次に、ステップＳＩｎｔ２において、動作クロック制御フラグ１にデータ“１”をセットし、動作クロック制御回路２によって動作クロック１６のコプロセッサ３への供給を停止する。これにより、コプロセッサ３の動作は一時停止(Suspend)状態になる。次に、ステップＳＩｎｔ３において、図１０に示すように、非接触型ＩＣカード１７はフレーム待ち時間をリーダライタ装置１４に対して延長するために、ステップＳＩｎｔ３１でＳ‐ＷＴＸ要求をリーダライタ装置１４へ送信する。そして、ステップＳＩｎｔ３２でリーダライタ装置１４からＳ‐ＷＴＸ 応答の送信を待つ。このとき、リーダライタ装置１４はフレーム待ちのタイムアウト時間を延長する。非接触型ＩＣカード１７は、リーダライタ装置からＳ‐ＷＴＸ応答を受信すると、ステップＳＩｎｔ４に移行する。
【００７２】
図９に示すように、ステップＳＩｎｔ４において、非接触型ＩＣカード１７は、動作クロック制御フラグ１にデータ“０”をセットし、動作クロック制御回路２によって動作クロック１６のコプロセッサ３への供給を再開する。これによりコプロセッサ３の動作は再開(Resume)状態になる。次に、ステップＳＩｎｔ５において、インターバルタイマ４の動作を再開し、割り込み処理を終了する。
【００７３】
割り込み処理の終了後、非接触型ＩＣカード１７は再びステップＳ８２（図８参照）に戻り、コプロセッサ３の演算処理の終了を待つ。コプロセッサ演算が終了すると、ステップＳ８のコプロセッサ処理が終了し、非接触型ＩＣカード１７はステップＳ９において、インターバルタイマ４動作の停止とタイマ割り込みを禁止する。
【００７４】
非接触型ＩＣカード１７は、コプロセッサ３の演算処理を含むコマンドの処理がすべて終了したとき、ステップＳ１０において、リーダライタ装置１４へコマンド実行結果をＩブロックによって送信する。これは、ステップＳ１０においてステップＳ２でＲＡＭ１１に転送されたデータ送信処理に分岐して実行される。
【００７５】
以上の制御手順により、コプロセッサ３の動作と、リーダライタ装置１４と非接触型ＩＣカード１７の通信が同時に実行されず、コプロセッサ処理プログラムをＲＡＭ１１上で実行し、不揮発性メモリ１２へのアクセスを禁止する非接触型ＩＣカードの制御が実行される。
【００７６】
〈別実施形態〉
上記各実施形態では、非接触インタフェースを備えた非接触型ＩＣカードについて説明したが、本発明に係る制御手順及びその手段を接触インタフェースを備えた接触型ＩＣカードに適用することもできる。
【００７７】
この場合、ＩＣカードは、図６に示すフローチャートのステップＳ３の初期応答ルーチンで、図１１に示す接触型ＩＣカードの初期応答処理に従って動作する。電源ＯＦＦ状態（ステップＳ１００）から、リーダライタ装置によるＩＣカード活性化動作により接触型ＩＣカードは、電源ＯＮ、クロック供給、リセットされる（ステップＳ１０１）。次に、接触型ＩＣカードは、リセット応答をリーダライタ装置へ送信する（ステップＳ１０２）。その後、外部端子付きＩＣカードの電気信号及び伝送プロトコル規格ＩＳＯ７８１６‐３で規定される、例えば、Ｔ＝１プロトコルでリーダライタ装置と接触型ＩＣカードの通信が行われる（ステップＳ１０３）。
【００７８】
図６に示すフローチャートにおいて、ステップＳ３以降の動作は、非接触インタフェースを備えた非接触型ＩＣカードと同様である。
【図面の簡単な説明】
【００７９】
【図１】ＩＳＯ１４４４３に規定された非接触型ＩＣカード或いはコンビ型ＩＣカードの非接触動作時における初期応答例を示すフローチャート
【図２】従来のＩＣカードにおいてコプロセッサ演算前にフレーム待ち時間延長処理を行う場合の処理手順を示す説明図
【図３】本発明に係るＩＣカードのハードウェア構成の一例を示すシステム構成図
【図４】本発明に係るＩＣカードにおいてフレーム待ち時間延長用割り込みが発生してフレーム待ち時間延長処理を行う場合の処理手順を示す説明図
【図５】本発明に係るＩＣカードにおいてフレーム待ち時間延長用割り込みが発生せずにフレーム待ち時間延長処理を行わない場合の処理手順を示す説明図
【図６】本発明に係るＩＣカードの制御処理手順の一例を示すフローチャート
【図７】図６に示すフローチャートの初期化処理（ステップＳ２）のサブルーチンを示すフローチャート
【図８】図６に示すフローチャートのコプロセッサ演算処理（ステップＳ８）のサブルーチンを示すフローチャート
【図９】図６に示すフローチャートのステップＳ８内の割り込み処理のサブルーチンを示すフローチャート
【図１０】図９に示すフローチャートのＳ‐ＷＴＸ要求送受信処理（ステップＳＩｎｔ３）のサブルーチンを示すフローチャート
【図１１】ＩＳＯ７８１６‐３に規定された接触型ＩＣカードの接触動作時における初期応答例を示すフローチャート
【符号の説明】
【００８０】
１．  動作クロック制御フラグ
２．  動作クロック制御回路
３．  コプロセッサ
４．  インターバルタイマ
５．  ＣＰＵ
６．  データバス
７．  制御信号群
８．  割り込み要求信号
９．  通信インタフェース
１０．  動作クロック生成回路
１１．  ＲＡＭ
１２．  不揮発性メモリ
１３．  ＲＦ回路
１４．  リーダライタ装置
１５．  アンテナ
１６．  動作クロック
１７．  非接触型ＩＣカード（本発明に係るＩＣカード）
【図１】
2005222194.tif 000003
【図２】
2005222194.tif 000004
【図３】
2005222194.tif 000005
【図４】
2005222194.tif 000006
【図５】
2005222194.tif 000007
【図６】
2005222194.tif 000008
【図７】
2005222194.tif 000009
【図８】
2005222194.tif 000010
【図９】
2005222194.tif 000011
【図１０】
2005222194.tif 000012
【図１１】
2005222194.tif 000013