(57)【要約】【課題】起動処理を煩雑にすることなく、起動処理を完了させること。【解決手段】リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードは、前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理部、を備える。【選択図】図２
2018151695.tif 000002
【特許請求の範囲】
【請求項１】
リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードであって、
前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理部、
を備えることを特徴するＩＣカード。
【請求項２】
前記起動処理は、メモリにおける異常の有無についての確認処理、またはプログラムにおける改ざんの有無についての確認処理、暗号演算用ハードウェアの動作における異常の有無についての確認処理、および乱数発生器の動作における異常の有無についての確認処理のうち少なくとも１つを含む
ことを特徴する請求項１に記載のＩＣカード。
【請求項３】
リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードの起動処理方法であって、
起動処理部が、前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理ステップ、
を有することを特徴するＩＣカードの起動処理方法。
【請求項４】
リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードのコンピュータに、
前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理ステップ、
を実行させるためのＩＣカードの起動処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカード、ＩＣカードの起動処理方法、およびＩＣカードの起動処理プログラムに関する。
【背景技術】
【０００２】
ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；集積回路）カードは、リーダライタとの情報のやりとりの方式により、接触型と非接触型とに分類される。これらのいずれのタイプのＩＣカードにおいても、リーダライタからの電源投入、リセット信号などのＩＣカード起動要求に対して、ＩＣカードが初期応答を返すまでの時間範囲（応答時間）が規定されている。
例えば接触型ＩＣカードの場合、ＩＣカードは、リセット信号を受信すると、初期設定として通信関係のパラメータ設定を行い、初期応答としてＡＴＲ（Ａｎｓｗｅｒ  ｔｏ  ｒｅｓｅｔ）をレスポンスする。このＡＴＲのレスポンスは、リーダライタからのリセット信号に対して、規定時間内になされる必要がある。
【０００３】
この起動処理は、実際には、例えば４００クロックサイクルから４００００クロックサイクル程度の非常に短い応答時間になされるように規定されているため、規定の応答時間内にＩＣカードの起動処理を間に合わせるべく、短い時間で実施可能な起動処理のみが行なわれる。すなわち、通常のＩＣカードの起動処理では、ＩＣカードの動作において最低限必要な設定のみが行われるだけであって、処理時間がかかるチェックは上記の応答時間内には行えない。そのため、上記従来の起動処理方法では、ＩＣカードからの初期応答を規定時間内に収めるべく必要最低限の設定やチェックしか行なうことができないため、ＩＣカードの一部に何らかの異常があった場合でも、その異常を検知することが困難であった。
【０００４】
リーダライタは、起動したＩＣカードを制御するために、制御内容を格納したコマンドＡＰＤＵ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を送信している。ＩＣカードは、このコマンドＡＰＤＵを受け取ると、受け取ったコマンドＡＰＤＵの内容に応じたＡＰＤＵ処理を行い、応答として規定時間内にレスポンスＡＰＤＵを返信する。そして、リーダライタは、このレスポンスＡＰＤＵを確認することで、制御が成功したか否かなどを特定している。このように、従来の起動処理方法では、起動時に検知できなかった異常がその後も検知されないままＡＰＤＵ処理が開始されるため、ＡＰＤＵ処理の動作中にエラーが発生したり、不正な動作が行われたりする可能性があった。
【０００５】
上記のようなＡＰＤＵ処理の動作中のエラーや不正な動作は、悪意のある攻撃者にとってＩＣカード内の秘密のデータを取り出す手がかりとなるなど、ＩＣカードにとって致命的な欠陥となり得るという問題がある。例えば、メモリチェックが行われなかった場合、チェックされていないメモリが悪意のある攻撃にさらされると、フラッシュメモリ、ＥＥＰＲＯＭやＲＡＭが書き換えられてしまい、ＩＣカードが誤動作するという問題がある。
とくに近年、ソフトウェアのセキュリティ基準がより厳格になってきているため、セキュリティ面での問題を発生させないための完全なチェックがなされる必要がある。
【０００６】
これに対し、特許文献１に記載のＩＣカードは、リセット動作中に、当該ＩＣカードの機能を実行させるカード機能部が起動するまでの間、リセット応答の各バイトに所定の割合で誤りを発生させて当該リセット応答を再送させることによって、意図的に遅延を発生させてトランザクションを維持する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−９１２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のＩＣカードは、上述したように、意図的に誤りを発生させてリセット応答（初期応答（ＡＴＲ））を再送させる処理を行うため、リセット動作（起動処理）が煩雑になるという課題がある。これに伴い、例えば、ＩＣカードの設計や製造に係るコストが大きくなるなどの問題が生じる。
【０００９】
本発明は上記の点に鑑みてなされたものであり、起動処理を煩雑にすることなく、起動処理を完了させることができるＩＣカード、ＩＣカードの起動処理方法、およびＩＣカードの起動処理プログラムを提供する。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードであって、前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理部、を備えることを特徴するＩＣカードである。
【００１１】
また、本発明の一態様としては、上記のＩＣカードであって、前記起動処理は、メモリにおける異常の有無についての確認処理、またはプログラムにおける改ざんの有無についての確認処理、暗号演算用ハードウェアの動作における異常の有無についての確認処理、および乱数発生器の動作における異常の有無についての確認処理のうち少なくとも１つを含むことを特徴する。
【００１２】
また、本発明の一態様としては、リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードの起動処理方法であって、起動処理部が、前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理ステップ、を有することを特徴するＩＣカードの起動処理方法である。
【００１３】
また、本発明の一態様としては、リーダライタからの起動要求信号に対して規定時間内に初期応答を行うＩＣカードのコンピュータに、前記起動要求信号を受信してから初期応答を開始するまでの間に起動処理を実行し、前記初期応答における最初のキャラクタの送信までに前記起動処理が完了していない場合には、前記キャラクタを送信してから次の前記キャラクタを送信するまでの期間に未完の前記起動処理を実行する起動処理ステップ、を実行させるためのＩＣカードの起動処理プログラムである。
【発明の効果】
【００１４】
本発明によれば、起動処理を煩雑にすることなく、起動処理を完了させることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るＩＣカードのハードウェア構成を示すブロックである。
【図２】本発明の実施形態に係るＩＣカードの機能構成を示すブロック図である。
【図３】本発明の実施形態に係るＩＣカード１が初期応答を行うタイミングを示す概略図である。
【図４】本発明の実施形態に係るＩＣカード１が行う初期応答（ＡＴＲ）の構成の一例を示す概略図である。
【図５】本発明の実施形態に係るＩＣカード１が行う初期応答（ＡＴＲ）のキャラクタ構成を示す概略図である。
【図６】本発明の実施形態に係るＩＣカード１とリーダライタ１０との間で行われる通信の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
＜実施形態＞
本発明は、起動時にハードウェアやソフトウェアの初期処理が必要なＩＣカードにおいて、規格（ＩＳＯ７８１６−３）上で規定された規定時間内に全ての処理を行わずに、分割して初期処理を行うことができるようにする方法に関するものである。ここで言う規定時間とは、リーダライタから送信されたリセット信号（起動要求信号）をＩＣカードが受信してから、ＩＣカードがリーダライタへの初期応答（ＡＴＲ）の送信を開始するまでの時間である。
【００１７】
具体的には、まず、ＩＣカードは、規格（ＩＳＯ７８１６−３）上で規定された規定時間内に、最低限必要となる初期処理を行う。そして、ＩＣカードは、残りの（未完の）初期処理を、初期応答（ＡＴＲ）においてキャラクタ（バイト）単位でリーダライタへデータを送信する際の、各キャラクタとキャラクタとの期間（以下、「Ｐａｕｓｅ期間」と言う）に行う。
【００１８】
以下、本実施形態にかかるＩＣカード１およびＩＣカード１の起動処理方法について、詳細に説明する。
【００１９】
［ＩＣカードのハードウェア構成］
以下、ＩＣカード１のハードウェア構成について、図面を参照しながら説明する。
図１は、本発明の実施形態に係るＩＣカード１のハードウェア構成を示すブロックである。
【００２０】
ＩＣカード１は、ＩＳＯ７８１６−３に準じたシリアルインターフェースを備えたＩＣカードである。図１に図示するように、ＩＣカード１は、ＣＰＵ１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）と、コプロセッサ１２と、乱数発生器１３と、Ｉ／Ｏ１４（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ；入出力部）と、ＲＯＭ１５（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；読み出し専用メモリ）と、ＲＡＭ１６（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；読み書き可能なメモリ）と、ＥＥＰＲＯＭ１７（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；イーイーピーロム）と、を備えている。
なお、ＲＯＭ１５、およびＥＥＰＲＯＭ１７の代わりに、他の不揮発性メモリ、例えばフラッシュメモリが用いられた構成であっても構わない。  また、ＣＰＵ１１と、コプロセッサ１２と、乱数発生器１３と、Ｉ／Ｏ１４と、ＲＯＭ１５と、ＲＡＭ１６と、ＥＥＰＲＯＭ１７とは、バスを介して相互に通信接続されている。
【００２１】
ＣＰＵ１１は、ＩＣカード１全体を制御する制御部として機能する。ＣＰＵ１１は、ＲＯＭ１５やＥＥＰＲＯＭ１７に記憶されている制御プログラムや制御データに基づいて、各種の処理を実行する。例えば、ＣＰＵ１１は、リーダライタ１０から受信した信号やコマンドに応じて様々な処理を実行し、処理結果としての初期応答（ＡＴＲ）およびレスポンスＡＰＤＵなどのデータの生成を行う。
【００２２】
コプロセッサ１２は、暗号演算専用の処理装置として機能する。コプロセッサ１２は、リーダライタ１０から送信されたコマンドＡＰＤＵなどに基づいて、ＣＰＵ１１に制御され、暗号化および復号などの必要な暗号演算を行い、演算の結果をＣＰＵ１１へ送信する。
【００２３】
乱数発生器１３は、乱数発生専用の処理装置として機能する。乱数発生器１３は、リーダライタからのコマンドＡＰＤＵなどに基づいて、ＣＰＵ１１に制御され、乱数の生成処理を行う。例えば、ＩＣカード１が相互認証コマンドを受信した場合、乱数発生器１３は、乱数を生成し、生成した乱数をＣＰＵ１１へ送信する。
【００２４】
Ｉ／Ｏ１４は、リーダライタ１０と通信接続するための接触通信インターフェースであり、ＩＳＯ７８１６−３に準じたシリアルインターフェースである。
【００２５】
ＲＯＭ１５は、予め制御用のプログラムや制御データなどを記憶する、不揮発性のメモリである。ＲＯＭ１５は、製造段階において制御プログラムや制御データなどを記憶した状態でＩＣカード１内に組み込まれる。すなわち、ＲＯＭ１５に記憶される制御プログラムや制御データは、予めＩＣカード１の仕様に応じて組み込まれる。
なお上述したように、ＲＯＭ１５の代わりに、他の不揮発性メモリ、例えばフラッシュメモリが用いられた構成であっても構わない。
【００２６】
ＲＡＭ１６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１６は、ＣＰＵ１１やコプロセッサ１２において処理中のデータなどを一時的に格納する。
【００２７】
ＥＥＰＲＯＭ１７は、データの書き込み及び書き換えが可能な不揮発性メモリである。ＥＥＰＲＯＭ１７は、例えば、制御用のプログラム、制御データ、アプリケーション、個人情報、暗号鍵などのセキュリティ情報、アプリケーションに用いられるデータなどを記憶することができる。
なお上述したように、ＥＥＰＲＯＭ１７の代わりに、他の不揮発性メモリ、例えばフラッシュメモリが用いられた構成であっても構わない。
【００２８】
［ＩＣカードの機能構成］
以下、リーダライタ１０と通信するＩＣカード１の機能構成について、図面を参照しながら説明する。
図２は、本発明の実施形態に係るＩＣカード１の機能構成を示すブロック図である。
【００２９】
図示するように、実施形態に係るＩＣカード１は、リセット信号受信部２１と、起動処理部２２と、データ受信部２３と、データ送信部２４と、コマンド処理部２５と、を備えている。また、コマンド処理部２５は、ＡＰＤＵ処理部２６と、レスポンス処理部２７と、を備えている。
【００３０】
リセット信号受信部２１は、リーダライタ１０から送信されるリセット信号（起動要求信号）を受信する。
起動処理部２２は、リセット信号受信部２１がリセット信号（起動要求信号）を受信したことをトリガとして、ＩＣカード１の起動処理を実行する。
データ受信部２３は、リーダライタ１０から送信されるコマンドＡＰＤＵを受信する。
データ送信部２４は、後述するレスポンス処理部２７によって生成されたレスポンスＡＰＤＵをリーダライタ１０へ送信する。
【００３１】
コマンド処理部２５は、取得したコマンドＡＰＤＵに基づいてコマンドＡＰＤＵ処理を実行し、実行した結果に基づくレスポンスＡＰＤＵを生成する。
ＡＰＤＵ処理部２６は、データ送信部２４によって受信されたコマンドＡＰＤＵに基づいてコマンドＡＰＤＵ処理を実行する。
レスポンス処理部２７は、ＡＰＤＵ処理部２６によって実行されたＡＰＤＵ処理の実行結果に基づいて、リーダライタ１０に対して応答をするためのレスポンスＡＰＤＵを生成する。
【００３２】
起動処理部２２が実行する、ＩＣカード１の起動処理について、以下に更に詳しく説明する。
起動処理部２２は、リセット信号受信部２１によって受信される、リーダライタ１０から送信されたリセット信号（起動要求信号）に基づく起動要求にしたがってＩＣカード１を起動する起動処理を実行する。起動処理としては、例えば、前回のＩＣカード１の動作時において、ＥＥＰＲＯＭ１７への書き込み処理中に電源オフ（ＯＦＦ）となった場合にデータを復旧する処理などが実行され、メモリが壊れていないかどうかなどをチェックすることができる。また、起動処理部２２は、ＲＯＭ１５およびＥＥＰＲＯＭ１７の完全性チェックや、プログラムコードのチェックを実行することにより、プログラム自体が改ざんされていないかをチェックすることができる。
【００３３】
さらに、起動処理部２２は、サンプルデータで暗号演算を行い、正しい結果が出力されるかを確認することにより、コプロセッサ１２などの暗号演算用ハードウェアが正常に動作しているかをチェックすることができる、また、起動処理部２２は、乱数発生器１３によって複数乱数を発生させ、乱数性をチェックすることにより、乱数発生器１３が正常に動作しているかをチェックすることができる。
【００３４】
本実施形態に係るＩＣカード１のような接触型のＩＣカードにおいては、リーダライタ１０からのリセット信号（起動要求信号）を受信したことをトリガとして、起動処理部２２が、起動処理である通信パラメータの設定などを行う。
一般的に、リセット信号（起動要求信号）を受信してから初期応答を開始するまでの間（後述する図３、期間ｔｃ）にＩＣカードが実行する起動処理は、上述したように一部の限られた（必要最低限の）処理のみとなることが多い。これは、コールドリセット待ち状態でクロック信号の供給が開始されてから少なくとも４００クロックサイクルの間に受け取るリセット信号の受信から、４００００クロックサイクル以内に開始される初期応答（ＡＴＲ）までの間に、起動処理が実行される必要があるからである。
【００３５】
本実施形態の起動処理部２２は、リセット信号（起動要求信号）を受信してから初期応答（ＡＴＲ）を開始するまでの間に起動処理を実行し、初期応答（ＡＴＲ）における最初のキャラクタの送信までに起動処理が完了していない場合には、キャラクタ（バイト）単位で送信される初期応答（ＡＴＲ）の各キャラクタ（バイト）を送信完了してから次のキャラクタ（バイト）を送信するまでの期間（Ｐａｕｓｅ期間）に、残りの起動処理を実行する。このように、起動処理部２２は、各Ｐａｕｓｅ期間に未完の初期処理を行うことによって、起動処理を完了させることができる。
【００３６】
また、上述したように、コマンド処理部２５は、リーダライタ１０からのコマンドＡＰＤＵを実行処理するＡＰＤＵ処理部２６と、コマンドＡＰＤＵに対するレスポンスとして、当該コマンドＡＰＤＵの実行処理の結果であるレスポンスＡＰＤＵを生成するレスポンス処理部２７と、を備える。例えば、ＡＰＤＵ処理部２６は、コマンドＡＰＤＵとしてｓｅｌｅｃｔコマンドを、データ受信部２３を介して取得した場合にはコマンドＡＰＤＵ処理としてｓｅｌｅｃｔ処理を実行し、レスポンス処理部２７は、当該ｓｅｌｅｃｔ処理の実行に対するレスポンス処理として、レスポンスＡＰＤＵを生成する。生成されたレスポンスＡＰＤＵは、データ送信部２４によりリーダライタ１０へ送信される。
【００３７】
［起動処理方法の詳細］
以下、ＩＣカード１の起動処理方法の詳細について、図面を参照しながら説明する。
図３は、本発明の実施形態に係るＩＣカード１が初期応答を行うタイミングを示す概略図である。
【００３８】
図３に示す、「ＶＣＣ」、「ＣＬＫ」、「ＲＳＴ」、および「Ｉ／Ｏ」は、それぞれＩＣカード１に備えられた端子を表す。具体的には、ＶＣＣ端子はＩＣカード１に電源を供給するための電源端子、ＣＬＫ端子はＩＣカード１にクロック信号を供給するためのクロック端子、ＲＳＴ端子はＩＣカード１にリセット信号を供給するためのリセット端子（リセット信号受信部２１）、およびＩ／Ｏ端子（データ受信部２３およびデータ送信部２４）はシリアル形式で各種信号の入出力を可能とする入出力端子である。
また、図３の横軸は時間を表す。
【００３９】
図３に図示するように、まず、リーダライタ１０から、電源電圧がＩＣカード１のＶＣＣ端子に供給された後、時刻Ｔａにクロック信号がＣＬＫ端子に供給される。そして、時刻Ｔａ以後の期間ｔａ（２００クロックサイクル以内）に、Ｉ／Ｏ信号の回線が所定の状態とされ、時刻Ｔａ以後の期間ｔｂ（４００クロックサイクル以内）の間、リセット信号がＬｏｗ（ロー）の状態に保たれ、リセット信号の立ち上がり（Ｌｏｗ→Ｈｉｇｈ（ハイ））が検出されると、ＩＣカードはリセットされる（時刻Ｔｂ）。そして、期間ｔｃ（４００〜４００００クロックサイクル）の経過後、初期応答（ＡＴＲ）がＩ／Ｏ端子からリーダライタ１０へ送り出される。
【００４０】
従来のＩＣカードにおいては、この期間ｔｃに、最低限必要な初期処理（例えば、通信関係のパラメータ設定など）のみが行われる。
【００４１】
図４は、本発明の実施形態に係るＩＣカード１が行う初期応答（ＡＴＲ）の構成の一例を示す概略図である。
図４に示す例においては、初期応答（ＡＴＲ）は、複数のキャラクタ、すなわち、イニシャルバイト（Ｉｎｉｔｉａｌ  Ｂｙｔｅ）であるＴＳと、フォーマットバイト（Ｆｏｒｍａｔ  Ｂｙｔｅ）であるＴ０と、ｉ＝１、２、３、・・・として、インターフェースバイツ（Ｉｎｔｅｒｆａｃｅ  Ｂｙｔｅｓ）であるＴＡ（ｉ）、ＴＢ（ｉ）、ＴＣ（ｉ）、ＴＤ（ｉ）と、ｍａｘｋ＝１５として、情報管理に関するヒストリカルバイツ（Ｈｉｓｔｏｒｉｃａｌ  Ｂｙｔｅｓ）であるＴ１〜ＴＫと、チェックパラメータであるＴＣＫとが並べて配置されたデータである。
したがって、初期応答（ＡＴＲ）には、当該初期応答（ＡＴＲ）を構成するキャラクタの個数−１個のＰａｕｓｅ期間が存在する。なお、Ｔ０からＴＣＫまでのデータバイトは、最大で３２バイトである。
【００４２】
図５は、本発明の実施形態に係るＩＣカード１が行う初期応答（ＡＴＲ）のキャラクタ構成を示す概略図である。
図示するように、初期応答（ＡＴＲ）においてＩ／Ｏ端子から送信される全てのキャラクタは１０ビットで構成される。キャラクタの最初のビットはスタートビットと呼ばれ、常にＬｏｗの状態になる。スタートビットよりも前の時点では、Ｈｉｇｈの状態に維持されている。キャラクタの最後のビットはパリティビットであり、キャラクタに含まれる、値が「１」であるビット数が偶数になるように、当該パリティビットがＨｉｇｈまたはＬｏｗに決定される。
【００４３】
また、図示するように、キャラクタの最後のビット（パリティビット）の後には、Ｐａｕｓｅ期間が設けられている。なお、Ｐａｕｓｅ期間の長さは、上限値と下限値とが予め規定されており、規定の範囲内であれば、ＩＣカード１は、任意のタイミングで次のキャラクタの送信を行うことができる。なお、ＩＣカード１とリーダライタ１０との間のデータ通信には、二つの通信機器の間でデータの伝送を交互に行う半二重通信方式が利用されている。すなわち、一方がデータを送信するときは他方はデータを受信することとなり、双方が同時にデータを送信することはできない。そこで、データの受信または送信開始からの経過時間を計時し、その経過時間が一定時間を経過してからでないと次のデータを送受信しないガードタイム（Ｐａｕｓｅ期間）が必要となる。
【００４４】
上述したように、本発明は、起動時にハードウェアやソフトウェアの初期処理が必要なＩＣカード１において、規格（ＩＳＯ７８１６−３）上で規定された規定時間内に全ての処理を行わずに、分割して初期処理を行うことができるようにする方法に関するものである。具体的には、ＩＣカード１は、規格（ＩＳＯ７８１６−３）上で規定された規定時間内に、最低限必要となる初期処理を行う。そして、ＩＣカード１は、残りの（未完の）初期処理を、初期応答（ＡＴＲ）に含まれる各Ｐａｕｓｅ期間に行う。
【００４５】
なお、上述したように、最低限必要となる初期処理には、例えば、通信関係のパラメータ設定などが含まれ、それ以外の初期処理には、例えば、メモリにおける異常の有無についての確認処理、またはプログラムにおける改ざんの有無についての確認処理、暗号演算用ハードウェアの動作における異常の有無についての確認処理、および乱数発生器の動作における異常の有無についての確認処理などが含まれる。
【００４６】
［起動処理の流れ］
以下、起動処理においてＩＣカード１とリーダライタ１０との間で行われる通信の流れについて、図面を参照しながら説明する。
図６は、本発明の実施形態に係るＩＣカード１とリーダライタ１０との間で行われる通信の一例を示すシーケンス図である。
【００４７】
まず、ＩＣカード１が、リーダライタ１０に挿入されると（リーダライタ１０と接触すると）、リーダライタ１０は、ＩＣカード１へリセット信号（起動要求信号）を送信する（図６、Ｓ００１）。
ＩＣカード１は、リセット信号（起動要求信号）を受信すると、期間ｔｃに、（期間ｔｃの間に完了させることが可能な）最低限必要な初期処理（例えば、通信関係のパラメータ設定など）を実行する（図６、Ｓ００２）。最低限必要な初期処理が完了すると、リーダライタ１０は、イニシャルバイト（ＴＳ）をリーダライタ１０へ送信する（図６、Ｓ００３）。
リーダライタ１０は、イニシャルバイト（ＴＳ）を受信する。
【００４８】
ＩＣカード１は、イニシャルバイト（ＴＳ）の送信が完了してから、次のキャラクタ（すなわち、フォーマットバイト（Ｔ０））を送信するまでの期間であるＰａｕｓｅ期間に、残りの初期処理（例えば、メモリのチェックなど）を実行する（図６、Ｓ００４）。残りの初期処理が完了した場合、または、Ｐａｕｓｅ期間の上限に達した場合、リーダライタ１０は、フォーマットバイト（Ｔ０）をリーダライタ１０へ送信する（図６、Ｓ００５）。
リーダライタ１０は、フォーマットバイト（Ｔ０）を受信する。
【００４９】
初期処理が未完の場合には、ＩＣカード１は、フォーマットバイト（Ｔ０）の送信が完了してから、次のキャラクタ（すなわち、インターフェースバイト（ＴＡ（１）））を送信するまでの期間であるＰａｕｓｅ期間に、残りの初期処理を実行する（図６、Ｓ００６）。残りの初期処理が完了した場合、または、Ｐａｕｓｅ期間の上限に達した場合、リーダライタ１０は、インターフェースバイト（ＴＡ（１））をリーダライタ１０へ送信する（図６、Ｓ００７）。
リーダライタ１０は、インターフェースバイト（ＴＡ（１））を受信する。
【００５０】
その後も同様に、ＩＣカード１は、初期処理が未完の場合には、Ｐａｕｓｅ期間に残りの初期処理を実行しながら、初期応答（ＡＴＲ）を構成する各キャラクタを順にリーダライタ１０へ送信する。
【００５１】
そして、ＩＣカード１が、最後のキャラクタ（すなわち、チェックパラメータ（ＴＣＫ））をリーダライタ１０へ送信すると（図６、Ｓ００９）、初期応答（ＡＴＲ）の送信が完了する。
リーダライタ１０は、チェックパラメータ（ＴＣＫ）を受信すると、コマンドＡＰＤＵ
をＩＣカード１へ送信する（図６、Ｓ０１０）。
ＩＣカード１は、コマンドＡＰＤＵを受信する。
【００５２】
以上説明したように、本発明は、起動時にハードウェアやソフトウェアの初期処理が必要なＩＣカード１において、規格（ＩＳＯ７８１６−３）上で規定された時間内に全ての処理を行わずに、分割して初期処理を行うことができるようにする方法に関するものである。具体的には、ＩＣカード１は、規格（ＩＳＯ７８１６−３）上で規定された規定時間内に、最低限必要となる初期処理を行う。そして、ＩＣカード１は、残りの（未完の）初期処理を、初期応答（ＡＴＲ）に含まれる各Ｐａｕｓｅ期間に行う。
これにより、本発明の実施形態に係るＩＣカード１は、起動処理を煩雑にすることなく、起動処理を完了させることができる。
【００５３】
以上、この発明の実施形態について詳しく説明をしてきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更などをすることが可能である。
【００５４】
なお、上述した実施形態におけるＩＣカード１の一部または全部を当該ＩＣカード１のコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
なお、ここでいう「コンピュータシステム」とは、ＩＣカード１に内蔵されたコンピュータシステムであって、ＯＳなどを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【００５５】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【００５６】
１・・・ＩＣカード、１０・・・リーダライタ、１１・・・ＣＰＵ、１２・・・コプロセッサ、１３・・・乱数発生器、１４・・・Ｉ／Ｏ、１５・・・ＲＯＭ、１６・・・ＲＡＭ、１７・・・ＥＥＰＲＯＭ、２１・・・リセット信号受信部、２２・・・起動処理部、２３・・・データ受信部、２４・・・データ送信部、２５・・・コマンド処理部、２６・・・ＡＰＤＵ処理部、２７・・・レスポンス処理部
【図１】
2018151695.tif 000003
【図２】
2018151695.tif 000004
【図３】
2018151695.tif 000005
【図４】
2018151695.tif 000006
【図５】
2018151695.tif 000007
【図６】
2018151695.tif 000008