(57)【要約】【課題】  本発明は、ＩＣカードの種類毎に夫々機能モジュールをインストールする手間を無くし、汎用性の向上を図る。【解決手段】  共通機能インタフェース部２１が、アプリケーションソフトウェア部２の処理の実行に応じて受けたコマンドに基づいて、コマンドの修飾部分の内容をパラメータで指定したパラメータ部と、コマンドの命令部分を示す命令部とからなる共通コマンドを生成し、共通機能モジュール部２２が、この共通コマンドに基づいてＩＣカード３０にアクセスし、このアクセスに応じてＩＣカード３０から受けた機能実行結果をアプリケーションソフトウェア部２に対して送出するＩＣカード利用装置、ＩＣカード及び記憶媒体。【選択図】  図１
2006236376.tif 000002
【特許請求の範囲】
【請求項１】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置において、
前記アプリケーションソフトウェア部の処理の実行に応じて命令部分と修飾部分とからなるコマンドを受けたとき、このコマンドの解釈により、前記修飾部分の内容をパラメータで指定したパラメータ部と前記命令部分を示す命令部とからなる共通命令を生成し、この共通命令に基づいて前記ＩＣカードにアクセスし、このアクセスに応じて前記ＩＣカードから受けた機能実行結果を前記アプリケーションソフトウェア部に対して送出する共通機能モジュール部
を備えたことを特徴とするＩＣカード利用装置。
【請求項２】
請求項１に記載のＩＣカード利用装置において、
前記共通機能モジュール部は、前記アプリケーションソフトウェア部の処理の実行に応じて受けるコマンド毎に、前記アクセスのときにＩＣカード向けに送出する１以上の共通命令からなる命令セットが記述されていることを特徴とするＩＣカード利用装置。
【請求項３】
請求項２に記載のＩＣカード利用装置に用いられるＩＣカードにおいて、
複数の機能を個別に実行するための共通のカードＯＳと、
前記カードＯＳに制御され、前記共通機能モジュール部により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行する命令セット実行手段とを備えたことを特徴とするＩＣカード。
【請求項４】
請求項３に記載のＩＣカードにおいて、
前記共通命令内のパラメータ部のパラメータのうち、利用可能なパラメータが記述されたオプションリスト部を有し、
前記命令セット実行手段は、前記共通機能モジュール部により与えられた共通命令内のパラメータが前記オプションリスト部内のパラメータに整合する旨を確認し、前記処理を実行することを特徴とするＩＣカード。
【請求項５】
請求項４に記載のＩＣカードにおいて、
前記命令セット実行手段は、少なくとも前記オプションリスト部を読出すための共通命令を受けたとき、前記オプションリスト部の記述内容を送出する処理を実行することを特徴とするＩＣカード。
【請求項６】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ＩＣカード利用装置内のコンピュータに、
前記アプリケーションソフトウェア部の処理の実行に応じて命令部分と修飾部分とからなるコマンドを受けたとき、このコマンドの解釈により、前記修飾部分の内容をパラメータで指定したパラメータ部と前記命令部分を示す命令部とからなる共通命令を生成し、この共通命令に基づいて前記ＩＣカードにアクセスし、このアクセスに応じて前記ＩＣカードから受けた機能実行結果を前記アプリケーションソフトウェア部に対して送出する共通機能モジュール部、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項７】
請求項６に記載のコンピュータ読み取り可能な記憶媒体であって、
前記共通機能モジュール部は、前記アプリケーションソフトウェア部の処理の実行に応じて受けるコマンド毎に、前記アクセスのときにＩＣカード向けに送出する１以上の共通命令からなる命令セットが記述されているコンピュータ読み取り可能な記憶媒体。
【請求項８】
請求項７に記載のコンピュータ読み取り可能な記憶媒体であって、
前記ＩＣカード内のコンピュータに、
複数の機能を個別に実行するための共通のカードＯＳと、
前記カードＯＳに制御され、前記共通機能モジュール部により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行する命令セット実行手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項９】
請求項８に記載のコンピュータ読み取り可能な記憶媒体であって、
前記共通命令内のパラメータ部のパラメータのうち、利用可能なパラメータが記述されたオプションリスト部を有し、
前記命令セット実行手段は、前記共通機能モジュール部により与えられた共通命令内のパラメータが前記オプションリスト部内のパラメータに整合する旨を確認し、前記処理を実行するコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項９に記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令セット実行手段は、少なくとも前記オプションリスト部を読出すための共通命令を受けたとき、前記オプションリスト部の記述内容を送出する処理を実行するコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードの機能を利用しながら処理を実行するＩＣカード利用装置、ＩＣカード及び記憶媒体に係り、特に、ＩＣカードの複数の機能とアプリケーションとの間のインタフェースを共通化し得るＩＣカード利用装置、ＩＣカード及び記憶媒体に関する。
【背景技術】
【０００２】
近年、金融、流通、通信及び医療等といった様々な分野に関し、データや手続きを記憶可能なＩＣチップを搭載し、固有の機能を実行するＩＣカードの開発が進められている。また、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置が知られている。
【０００３】
さて通常、ＩＣカードは、発行後の機能変更が不可能であるため、各機能の組合せ（ラインナップ）別に発行される。また、発行元（ベンダ）の異なる各ＩＣカードは、同一機能又は同一ラインナップであっても、各ベンダ毎に異なるソフトウェアが書込まれている。
【０００４】
これに伴い、ＩＣカード利用装置側では、各ＩＣカードを対象として、上位アプリケーション向けの共通インタフェース（機能アクセス方法）を実現するには、各ベンダ毎及び各ラインナップ毎に、夫々対応する機能モジュール部がインストールされている必要がある。
【０００５】
例えばＩＣカードがＰＫＣＳ＃１１（ＰＫＣＳ＃１１は、ＲＳＡ社の商標）というソフトウェアをもつ場合、ＩＣカード利用装置側には、ＰＫＣＳ＃１１モジュールがインストールされる必要がある（なお、ＰＫＣＳ＃１１は、ＩＣカードのようなセキュリティトークンのインタフェースを決めたものであり、デジタル署名や鍵生成などの機能を有している）。
【０００６】
同様に、ＩＣカードが例えばOpenCard Framework（OpenCard Frameworkは、オープンカードコンソーシアムの商標）におけるSignatureCardService（SignatureCardServiceは、オープンカードコンソーシアムの商標）というソフトウェアをもつ場合、ＩＣカード利用装置側では例えばＩＣカードのラインナップがMFC4.0のとき、MFC40SignatureCardService（MFC40SignatureCardServiceは、オープンカードコンソーシアムの商標）という機能モジュール部がＩＣカード利用装置にインストールされる必要がある。
【０００７】
図２２はこの種のＩＣカード利用装置及びＩＣカードの構成を示すブロック図である。このＩＣカード利用装置は、例えば磁気ディスク等の記憶媒体に記憶されたアプリケーションソフトウェア及び機能モジュールがインストールされ、これらアプリケーションソフトウェア及び機能モジュールによって動作が制御されるコンピュータによって実現される。
【０００８】
なお、ＩＣカードとしては、あるベンダＶ１に提供されてＲＳＡ(Rivest Shamir Adleman)方式の署名機能を利用可能な第１のＩＣカードと、他のベンダＶ２に提供されて同じＲＳＡ方式の署名機能を利用可能な第２のＩＣカードとを例に挙げて述べる。
【０００９】
すなわち、第１及び第２のＩＣカードは、同じＲＳＡ方式の署名を実行する点で一致するが、異なるベンダＶ１，Ｖ２からの提供により、例えばＩＣカード利用装置から入力されるコマンドの体系（コマンドの記述方式など）が互いに異なるので、互いに異なる機能Ａ，ＢのＩＣカードとして取扱われる。
【００１０】
具体的には図２２中において、ＩＣカード利用装置１は、アプリケーションソフトウェア部２、ベンダＶ１の機能インタフェース部３Ａ、ベンダＶ１のＲＳＡ対応の機能モジュール部４Ａ、Ｒ／Ｗドライバ部５Ａ及びカードＲ／Ｗ部６Ａと、ベンダＶ２の共通機能インタフェース部３Ｂ、ベンダＶ２のＲＳＡ対応の機能モジュール部４Ｂ、Ｒ／Ｗドライバ部５Ｂ及びカードＲ／Ｗ部６Ｂを備えている。すなわち、機能インタフェース部３Ａ，３Ｂ〜カードＲ／Ｗ部６Ａ，６Ｂは、同じＲＳＡ署名機能であっても、ベンダＶ１，Ｖ２毎に設けられている。また、ベンダＶ１の機能インタフェース部３Ａ〜カードＲ／Ｗ部６Ａと、ベンダＶ２の機能インタフェース部３Ｂ〜カードＲ／Ｗ部６Ｂとは、ベンダＶ１，Ｖ２の違いによるコマンド体系の違い以外は互いに同一構成なので、以下の説明は主にベンダＶ１に関する構成要素３Ａ〜６Ａを代表させて述べる。
【００１１】
ここで、アプリケーションソフトウェア部２は、ＩＣカード１１，１２の署名機能を利用する内容のプログラムが記述されたソフトウェアである。このアプリケーションソフトウェア部２の処理の実行に応じ、ＲＳＡ方式の署名機能の実行を要求するコマンドが機能インタフェース部３Ａを介して機能モジュール部４Ａに与えられる。なお、機能インタフェース部３Ａは、アプリケーションソフトウェア部２の処理とベンダＶ１による処理（のコマンド体系（コマンドの定義や記述方式）など）との境界を示す概念であり、実際の処理は行わない。
【００１２】
機能モジュール部４Ａは、このコマンドを受けると、このコマンドに基づいてベンダＶ１のコマンド体系に応じたＲＳＡ署名コマンドを生成し、Ｒ／Ｗドライバ部５Ａ及びカードＲ／Ｗ部６Ａを介して第１のＩＣカード１１にアクセスし、ＲＳＡ署名コマンドを第１のＩＣカード１１に与える。
【００１３】
なお、Ｒ／Ｗドライバ部５Ａは、カードＲ／Ｗ部６Ａを駆動する周知のＩＣカードリーダライタドライバであり、ネイティブコードのソフトウェアにて実現されている。また、カードＲ／Ｗ部６Ａは、ＩＣカード１１内の情報を読出／書込可能な装置であり、具体的には、周知のＩＣカードリーダライタである。
【００１４】
第１のＩＣカード１１は、ベンダＶ１のＲＳＡ署名機能のプログラム１３を実行可能なＩＣチップが埋込まれたカードであり、第２のＩＣカード１２は、ベンダＶ２のＲＳＡ署名機能のプログラム１４を実行可能なＩＣチップが埋込まれたカードであって、夫々ＩＳＯ７８１６の規格に準拠していて、情報を安全に保管する観点からＩＣチップが外からのアクセスを制御している。
【００１５】
さて、第１のＩＣカード１１は、ＲＳＡ署名コマンドを受けると、ＲＳＡ署名機能のプログラム１３を起動する。続いて第１のＩＣカード１１は、機能モジュール部４Ａから同様な経路でデータが与えられると、このデータに対してＲＳＡ署名機能を実行し、機能実行結果をカードＲ／Ｗ部６Ａ及びＲ／Ｗドライバ部５Ａを介して機能モジュール部４Ａに返す。
【００１６】
機能モジュール部４Ａは、この機能実行結果を機能インタフェース部３Ａを介してアプリケーションソフトウェア部２に与える。
【００１７】
このように、アプリケーションソフトウェア部２の処理は、第１のＩＣカード１１のＲＳＡ署名機能を利用して実行される。なお、ベンダＶ２のＲＳＡ署名機能のプログラム１４も同様に実行されるが、このとき、アプリケーションソフトウェア部２と第２のＩＣカード１２との間の経路は、他方の機能インタフェース部３Ｂ、機能モジュール部４Ｂ、Ｒ／Ｗドライバ部５Ｂ及びカードＲ／Ｗ部６Ｂが使用される。
【００１８】
このように、ＩＣカード利用装置１は、同じＲＳＡ署名機能を利用するにも関わらず、各ＩＣカード１１，１２を提供するベンダＶ１，Ｖ２毎に、夫々対応する別の機能モジュール部４Ａ，４Ｂを用い、アプリケーションソフトウェア部２の処理を実行している。
【００１９】
次に、ＩＣカード利用装置において、多くの機能インタフェース部や機能モジュール部を必要とする別の場合について説明する。
【００２０】
すなわち、図２３に示すように、同じベンダＶ１製であっても、例えばＲＳＡとＤＳＡ(Digital Signature Algorithm)のように別々の方式による別々の機能Ａ，Ｃを利用可能な場合である。この場合も前述同様に、ＩＣカード利用装置１は、ＩＣカード１１内のＲＳＡ機能のプログラム１２に対応して機能インタフェース部３Ａ〜カードＲ／Ｗ部６Ａを有し、ＩＣカード１５内のＤＳＡ機能のプログラム１６に対応して機能インタフェース部３Ｃ〜カードＲ／Ｗ部６Ｃを有する。
【００２１】
従って、ＩＣカード利用装置１は、同じベンダＶ１製であっても、各ＩＣカード１１，１５の機能毎に、夫々対応する別の機能モジュール部４Ａ，４Ｃを用い、アプリケーションソフトウェア部２の処理を実行している。
【００２２】
ところで、最近、Java（登録商標）カードと呼ばれ、複数の機能を選択的に実行可能であり、且つ発行後に内部の機能を柔軟に変更可能なＩＣカードが知られている。具体的には図２４の下方に示すように、このＩＣカード１７は、JavaカードＯＳ１８上で、選択的に動作可能に複数のプログラム１３，１６を含むカードアプレット（ソースコードをJava言語で記述可能なアプリケーションソフトウェア）１９を動作可能であり、カード発行後にカードアプレットを追加／削除可能となっている。ここで、カードアプレット１９としては、例えば前述したＲＳＡ機能とＤＳＡ機能とを実現可能である。
【００２３】
しかしながら、このJavaカードの如き、複数の機能を選択的に実行可能なＩＣカード１７であっても同様に、ＩＣカード利用装置１側では、ＩＣカード１７の選択された機能に対応した機能モジュール部４Ａ，４Ｃがインストールされる必要がある。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
以上説明したように従来のＩＣカード利用装置１は、どのようなＩＣカード１１，１２，１５，１７であってもその機能を利用するとき、ＩＣカード１１，１２，１５，１７内の機能に応じた個別の機能モジュール部４Ａ〜４Ｃが予めインストールされている必要がある。
【００２５】
すなわち、各ＩＣカード１１，１２，１５，１７…を対象として、上位アプリケーション向けの共通インタフェースを実現するには、各ベンダ毎、各ラインナップ毎及び機能変更毎に、夫々対応する機能モジュール部４Ａ，４Ｂ，４Ｃ，…がインストールされている必要がある。
【００２６】
しかしながら、ＩＣカード１１，１２，１５，１７，…の各ベンダ、各ラインナップ及び機能変更毎に夫々対応する機能モジュール部４Ａ，４Ｂ，４Ｃ，…をインストールする作業は、利用者にとって手間がかかる。
【００２７】
また、各ベンダにとっても、一々各ラインナップや機能変更毎に、対応する機能モジュール部４Ａ，４Ｂ，４Ｃ，…を開発するという手間がかかっている。
【００２８】
換言すると、ＩＣカード利用装置１は、各ベンダ、各ラインナップ及び機能変更毎に夫々個別の機能モジュール部４Ａ，４Ｂ，４Ｃ，…を用意する必要があり、汎用性の低いものとなっている。
【００２９】
本発明は上記実情を考慮してなされたもので、ＩＣカードの種類毎に夫々機能モジュールをインストールする手間を無くし、汎用性を向上し得るＩＣカード利用装置、ＩＣカード及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００３０】
請求項１に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置において、前記アプリケーションソフトウェア部の処理の実行に応じて命令部分と修飾部分とからなるコマンドを受けたとき、このコマンドの解釈により、前記修飾部分の内容をパラメータで指定したパラメータ部と前記命令部分を示す命令部とからなる共通命令を生成し、この共通命令に基づいて前記ＩＣカードにアクセスし、このアクセスに応じて前記ＩＣカードから受けた機能実行結果を前記アプリケーションソフトウェア部に対して送出する共通機能モジュール部を備えたＩＣカード利用装置である。
【００３１】
また、請求項２に対応する発明は、請求項１にＩＣカード利用装置において、前記共通機能モジュール部は、前記アプリケーションソフトウェア部の処理の実行に応じて受けるコマンド毎に、前記アクセスのときにＩＣカード向けに送出する１以上の共通命令からなる命令セットが記述されていることを特徴とするＩＣカード利用装置である。
【００３２】
さらに、請求項３に対応する発明は、請求項２に対応するＩＣカード利用装置に用いられるＩＣカードにおいて、複数の機能を個別に実行するための共通のカードＯＳと、前記カードＯＳに制御され、前記共通機能モジュール部により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行する命令セット実行手段とを備えたＩＣカードである。
【００３３】
また、請求項４に対応する発明は、請求項３に対応するＩＣカードにおいて、前記共通命令内のパラメータ部のパラメータのうち、利用可能なパラメータが記述されたオプションリスト部を有し、前記命令セット実行手段としては、前記共通機能モジュール部により与えられた共通命令内のパラメータが前記オプションリスト部内のパラメータに整合する旨を確認し、前記処理を実行するＩＣカードである。
【００３４】
さらに、請求項５に対応する発明は、請求項４に対応するＩＣカードにおいて、前記命令セット実行手段としては、少なくとも前記オプションリスト部を読出すための共通命令を受けたとき、前記オプションリスト部の記述内容を送出する処理を実行するＩＣカードである。
【００３５】
さらに、請求項６に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、前記ＩＣカード利用装置内のコンピュータに、前記アプリケーションソフトウェア部の処理の実行に応じて命令部分と修飾部分とからなるコマンドを受けたとき、このコマンドの解釈により、前記修飾部分の内容をパラメータで指定したパラメータ部と前記命令部分を示す命令部とからなる共通命令を生成し、この共通命令に基づいて前記ＩＣカードにアクセスし、このアクセスに応じて前記ＩＣカードから受けた機能実行結果を前記アプリケーションソフトウェア部に対して送出する共通機能モジュール部、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３６】
また、請求項７に対応する発明は、請求項６に対応するコンピュータ読み取り可能な記憶媒体であって、前記共通機能モジュール部としては、前記アプリケーションソフトウェア部の処理の実行に応じて受けるコマンド毎に、前記アクセスのときにＩＣカード向けに送出する１以上の共通命令からなる命令セットが記述されているコンピュータ読み取り可能な記憶媒体である。
【００３７】
また、請求項８に対応する発明は、請求項７に対応するコンピュータ読み取り可能な記憶媒体であって、前記ＩＣカード内のコンピュータに、複数の機能を個別に実行するための共通のカードＯＳと、前記カードＯＳに制御され、前記共通機能モジュール部により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行する命令セット実行手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３８】
さらに、請求項９に対応する発明は、請求項８に対応するコンピュータ読み取り可能な記憶媒体であって、前記共通命令内のパラメータ部のパラメータのうち、利用可能なパラメータが記述されたオプションリスト部を有し、前記命令セット実行手段は、前記共通機能モジュール部により与えられた共通命令内のパラメータが前記オプションリスト部内のパラメータに整合する旨を確認し、前記処理を実行するコンピュータ読み取り可能な記憶媒体である。
【００３９】
また、請求項１０に対応する発明は、請求項９に対応するコンピュータ読み取り可能な記憶媒体であって、前記命令セット実行手段としては、少なくとも前記オプションリスト部を読出すための共通命令を受けたとき、前記オプションリスト部の記述内容を送出する処理を実行するコンピュータ読み取り可能な記憶媒体である。
【００４０】
（作用）
また、請求項１，６に対応する発明は、共通機能モジュール部が、アプリケーションソフトウェア部の処理の実行に応じて命令部分と修飾部分とからなるコマンドを受けたとき、このコマンドの解釈により、修飾部分の内容をパラメータで指定したパラメータ部と命令部分を示す命令部とからなる共通コマンドを生成し、この共通コマンドに基づいてＩＣカードにアクセスし、このアクセスに応じてＩＣカードから受けた機能実行結果をアプリケーションソフトウェア部に対して送出するので、同一の共通機能に属する他の機能のＩＣカードを使用する際に、ＩＣカードの種類毎に夫々機能モジュールをインストールする手間を無くし、汎用性を向上させることができる。
【００４１】
さらに、請求項２，７に対応する発明は、共通機能モジュール部としては、アプリケーションソフトウェア部の処理の実行に応じて受けるコマンド毎に、アクセスのときにＩＣカード向けに送出する１以上の共通命令からなる命令セットが記述されたことにより、請求項１，６に対応する作用に加え、コマンド毎に共通機能モジュール部の仕様を決定できるので、ＩＣカードの種類毎に夫々機能モジュールを要した従来とは異なり、ＩＣカードの種類とは無関係に、ＩＣカード利用装置の環境を設定することができる。
【００４２】
さらに、請求項３，８に対応する発明は、複数の機能を個別に実行するための共通のカードＯＳを有し、命令セット実行手段が、カードＯＳに制御され、共通機能モジュール部により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行するので、請求項２，７に対応する作用を用意且つ確実に奏することができる。
【００４３】
また、請求項４，９に対応する発明は、共通命令内のパラメータ部のパラメータのうち、利用可能なパラメータが記述されたオプションリスト部を有し、命令セット実行手段としては、共通機能モジュール部により与えられた共通命令内のパラメータがオプションリスト部内のパラメータに整合する旨を確認し、処理を実行するので、請求項３，８に対応する作用に加え、ＩＣカード側ではパラメータで指定可能な任意の機能を実装でき、ＩＣカード利用装置側ではその任意の機能を共通命令で実行させることができる。
【００４４】
さらに、請求項５，１０に対応する発明は、命令セット実行手段としては、少なくともオプションリスト部を読出すための共通命令を受けたとき、オプションリスト部の記述内容を送出する処理を実行するので、請求項４，９に対応する作用に加え、ＩＣカードのサポート内容を示すオプションリストがＩＣカード利用装置側に読み出されることにより、ＩＣカードがサポートする機能を確認してからＩＣカードにアクセスでき、アクセス動作の無駄を省略することができる。また、ＩＣカードがオプションリストの読出し命令を確実にサポートするので、このオプションリストによる作用を確実に奏することができる。
【発明の効果】
【００４５】
以上説明したように本発明によれば、ＩＣカードの種類毎に夫々機能モジュールをインストールする手間を無くし、汎用性を向上できるＩＣカード利用装置、ＩＣカード及び記憶媒体を提供できる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の各実施形態について図面を参照して説明する。  
（第１の実施形態）
図１及び図２は本発明の第１の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図であり、前述した図面と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態についても同様にして重複した説明を省略する。  
すなわち、本実施形態は、図１に示すように、図２２に示した構成（にカードＲ／Ｗ部６Ｄを付加した構成）の変形構成であり、異なる種類の複数のＲ／Ｗドライバ部５Ａ，５Ｂを用いるＩＣカード利用装置２０において、各機能モジュール部４Ａ，４Ｂと複数のＲ／Ｗドライバ部５Ａ，５Ｂとの間に、Ｒ／Ｗドライバ部５Ａ，５Ｂの違いを吸収するためのカード共通アクセス手法５０が適用されている。
【００４７】
具体的には、カード共通アクセス手法５０は、図２に示すように、ドライバ共通インタフェース部５１、第１及び第２のドライバ制御部５２ａ，５２ｂ、ドライバ制御部管理部５３から構成されている。各機能モジュール部４Ａ，４Ｂは、ドライバ共通インタフェース部５１及び第１のドライバ制御部５２ａを介してＲ／Ｗドライバ部５Ａに接続されている。また、ドライバ共通インタフェース部５１は、第２のドライバ制御部５１ｂを介して第２のＲ／Ｗドライバ部５Ｂに接続されている。第２のＲ／Ｗドライバ部５Ｂは、２つのカードＲ／Ｗ部６Ｂ，６Ｄに接続されている。また、ドライバ共通インタフェース部５１は、ドライバ制御部管理部５３に接続されている。
【００４８】
ここで、ドライバ共通インタフェース部５１は、機能モジュール部４Ｂ（又は４Ａ）から受けたＩＣカード１２（又は１１）向けのアクセス内容をドライバ制御部管理部５３に伝え、ドライバ制御部５２ｂ（又は５２ａ）から受ける機能モジュール部４Ｂ（又は４Ａ）向けの応答を機能モジュール部４Ｂ（又は４Ａ）に伝えるものである。
【００４９】
ドライバ制御部管理部５３は、アプリケーションソフトウェア部２の処理の実行に応じてドライバ共通インタフェース部５０からＩＣカード１２へのアクセス内容を受けたとき、共通の手順により各Ｒ／Ｗドライバ部５Ａ，５Ｂを個別に介してＩＣカード１２の機能へのアクセスを試み、このアクセスに成功したＲ／Ｗドライバ部５Ｂ（又は５Ａ）を使用するものである。
【００５０】
具体的には、ドライバ制御部管理部５３は、予め各ドライバ制御部５２ａ，５２ｂが登録され、機能モジュール部４Ｂ（又は４Ａ）からドライバ共通インタフェース部５１を介して最初にＩＣカード１２向けのアクセス内容を受けると、各ドライバ制御部５２ａ，５２ｂに対してＩＣカードの（挿入の）有無を問合せる機能と、ＩＣカード有と応答したドライバ制御部５２ｂ（又は５２ａ）に対し、そのＩＣカード１２に関して機能モジュール部４Ｂ（又は４Ａ）の機能をサポートしているか否かを問合せる機能と、サポートする旨を応答したドライバ制御部５２ｂ（又は５２Ａ）に対して今回及び次回以降のＩＣカード１２向けのアクセス内容を与える機能とをもっている。
【００５１】
次に、以上のように構成されたＩＣカード利用装置の動作を説明する。  
いま、ＩＣカード１２がカードＲ／Ｗ部６Ｂに挿入されているとする。また前述同様に、アプリケーションソフトウェア部２の処理の実行に伴い、機能モジュール部４Ｂがアクセス要求をＩＣカード１２に向けて送出したとする。
【００５２】
ドライバ共通インタフェース部５１は、機能モジュール部４Ｂから受けたアクセス要求をドライバ制御部管理部５３に伝える。
【００５３】
ドライバ制御部管理部５３は、アクセス要求を受けると、各ドライバ制御部５２ａ，５２ｂに対してＩＣカード１２の有無を問合せると共に、ＩＣカード１２有と応答したドライバ制御部５２ｂに対し、そのＩＣカード１２に関して機能モジュール部４Ｂの機能をサポートしているか否かを問合せ、サポートする旨を応答したドライバ制御部５２ｂに対して今回のアクセス要求を与える。なお、ドライバ制御部管理部５３は、このサポートする旨を応答したドライバ制御部５２ｂに対し、次回以降に、ドライバ共通インタフェース部５１から受けるＩＣカード３０への各コマンドも与える。
【００５４】
さて、アクセス要求は、ドライバ制御部５２ｂ、Ｒ／Ｗドライバ部５Ｂ及びカードＲ／Ｗ部６Ｂを介してＩＣカード１２に入力される。ＩＣカード１２は、前述した通り、アクセス要求に対する応答（機能実行結果）を機能モジュール部４Ｂ向けに送出する。この機能実行結果は、カードＲ／Ｗ部６Ｂ、Ｒ／Ｗドライバ部５Ｂ、ドライバ制御部５２ｂ及びドライバ共通インタフェース部５１を介して機能モジュール部４Ｂに与えられる。
【００５５】
以下、機能モジュール部４Ｂからのコマンドは、ドライバ制御部管理部５３に与えられると、ドライバ制御部管理部５３を介してドライバ制御部５２ｂに与えられる。よって、以後、ＩＣカード利用装置２０及びＩＣカード１２は、Ｒ／Ｗドライバ部５ａ、５Ｂの機能の違いを気にせずに動作することができる。
【００５６】
上述したように本実施形態によれば、複数種類のＲ／Ｗドライバ部５Ａ，５Ｂ及びカードＲ／Ｗ部６Ａ，６Ｂ，６Ｄがあっても、ドライバ制御部管理部５３が、共通の手順により各Ｒ／Ｗドライバ部５Ａ，５Ｂを個別に介してＩＣカード１２の機能へのアクセスを試み、このアクセスに成功したＲ／Ｗドライバ部５Ｂを使用するので、Ｒ／Ｗドライバ部５Ａ，５Ｂの種類に応じて機能モジュール部を増加させるといった無駄を無くすことができる。
【００５７】
補足すると、機能アクセス方法に対応する機能モジュールが複数になる要因には、ＩＣカードの種類の違いだけではなく、Ｒ／Ｗドライバ部５Ａ，５Ｂの種類の違いがある。
【００５８】
そこで、本実施形態では、ＩＣカード１２にアクセスするためのＲ／Ｗドライバ部５Ａ，５Ｂのインタフェースを統合する共通カードアクセス方法５０を設け、機能モジュール部４Ａ，４Ｂが、その共通カードアクセス方法５０を通じてＲ／Ｗドライバ部５Ａ，５Ｂを利用することができるようにした。
【００５９】
これにより、Ｒ／Ｗドライバ部５Ａ，５Ｂの種類が複数あっても、１つの機能モジュール部４Ａ（又は４Ｂ）だけで対応でき、もって、汎用性を向上させることができる。
【００６０】
（第２の実施形態）
図３は本発明の第２の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図である。  
すなわち、本実施形態は、第１の実施形態によるＲ／Ｗドライバ部５Ａ，５Ｂの違いの吸収に加え、複数の機能に対応する各機能モジュール部４Ａ，４Ｂを共通化することにより、ＩＣカードの種類毎に各機能モジュール部４Ａ，４Ｂを用意する手間を無くすものである。
【００６１】
具体的には、ＩＣカード利用装置２０ａにおいては、各機能インタフェース部３Ａ，３Ｂ及び各機能モジュール部４Ａ，４Ｂに代えて、共通機能インタフェース部２１及び共通機能モジュール部２２を設けている。
【００６２】
また、共通機能モジュール部２２側では、各ＩＣカード１１ｘ，１２ｘへ入力する各共通命令（コマンド）及びその入力順序を規定した命令セットが記述され、各ＩＣカード１１ｘ，１２ｘ側では、その命令セット内の共通命令をサポートするようにプログラムが記述されている。
【００６３】
なお、各Ｒ／Ｗドライバ部５Ａ，５Ｂの違いは吸収されているので、説明の簡略化のため、カード共通アクセス方法５０の図示を省略し、且つ各Ｒ／Ｗドライバ部５Ａ，５Ｂ及び各カードＲ／Ｗ部６Ａ，６Ｂを夫々１つのＲ／Ｗドライバ部５及び各カードＲ／Ｗ部６として示す。また、この構成は、初めから１つのＲ／Ｗドライバ部５及び各カードＲ／Ｗ部６のみを用いる場合をも包含する。また、本実施形態では、従来のＩＣカード１１，１２を命令セットの各共通命令に対応する構成に変更したのでＩＣカード１１ｘ，１２ｘと表記する。また、各ＩＣカード１１ｘ，１２ｘは、図中で並記されるが、同時には使用されない。
【００６４】
ここで、共通機能インタフェース部（＝共通機能アクセス方法）２１は、共通機能が署名機能である場合、ＩＣカード１１ｘ，１２ｘ内の鍵で署名するというＩＣカード１１ｘ，１２ｘの機能にアクセスするためのミドルウェアであり、Java言語のインタフェースとして定義される。
【００６５】
また、共通機能モジュール部２２は、Javaクラスライブラリであり、複数の機能のうちで互いに同一命令に属する各機能が統合されてなる共通機能毎に設けられ、アプリケーションソフトウェア部２の処理の実行に応じて命令部分（署名する）と修飾部分（ＲＳＡにより）とからなるコマンドを受けたとき、このコマンドの解釈により、このコマンド毎に予め設定された命令セットを用い、命令セット内の各共通命令を送出する方式により、Ｒ／Ｗドライバ部５及びカードＲ／Ｗ部６を介してＩＣカード３０にアクセスし、このアクセスに応じてＩＣカード３０からカードＲ／Ｗ部６及びＲ／Ｗドライバ部５を介して受けた機能実行結果をアプリケーションソフトウェア部２に向けて共通インタフェース部２１に送出する機能をもっている。
【００６６】
ここで、アプリケーションソフトウェア部２が送出するコマンドは、例えば署名のためのSignメソッド実行要求の場合、図４の形式中、命令部分が“sign”に相当し、修飾部分がかっこ内の“keyNum”に相当する。
【００６７】
命令セット内の共通命令（以下、共通コマンドともいう）は、アプリケーションソフトウェア部２からのコマンドの修飾部分の内容をパラメータで指定したパラメータ部と命令部分を示す命令部とからなるコマンド体系が使用されている。
【００６８】
命令セットは、共通機能インタフェース部２１から受けるコマンドに対応して予め共通機能モジュール部２２に設定された１以上の命令のセット（集合）であり、図５に示すように、例えばアプリケーションソフトウェア部２のsignメソッドの実行に伴って共通機能インタフェース部２１から受ける署名機能用のコマンドに対し、ＩＣカード３０に与える「署名生成要求コマンド」「署名のバイト長取得コマンド」「署名取得コマンド」といった各共通命令がＩＣカード１１ｘ，１２ｘへの入力順序と共に予め設定されたものである。なお、各共通命令とその応答は、例えば図６〜図８に示す形式を持っている。以下、簡単に説明する。
【００６９】
署名生成要求コマンドは、図６に示すように、ＩＣカード１１ｘ，１２ｘに署名の生成を要求する命令のバイト列（コマンドAPDU）である。この応答（レスポンスAPDU）としては、成功／失敗を示すバイト列がＩＣカード１１ｘ，１２ｘから出力される。
【００７０】
具体的には署名生成要求コマンドは、署名生成を要求する命令部と、署名生成の具体的な方式を指定するためのパラメータ部とからなる。パラメータ部は、複数の鍵のうちの具体的な鍵の指定β（ｉ番目（ｉ；１以上の任意の自然数））、データ片のバイト長ｍ、このバイト長の次のバイト長γ（＝ｎ＋１の２進値）、データ片の位置δ（最初／最後／それ以外）、データ片の順番を示す番号εｘ（ｘバイト目（ｘ；１以上の任意の自然数））といった定数β、γ、δ、ε１、ε２、…、εｎからなる。
【００７１】
バイト長取得コマンドは、図７に示すように、ＩＣカード１１ｘ，１２ｘに署名全体のバイト長を要求する命令のバイト列である。応答としては、成功のとき、署名全体のバイト長を示すデータと成功を示すデータとのバイト列がＩＣカード１１ｘ，１２ｘから出力され、失敗のとき、失敗を示すデータのバイト列が出力される。
【００７２】
署名取得コマンドは、図８に示すように、ＩＣカード１１ｘ，１２ｘに対し、署名されたデータ全体のうち、所定バイト長の署名片を要求する命令のバイト列であり、署名したデータを要求する命令部と、署名片のバイト長を指定するパラメータ部とから構成される。応答としては、成功のとき、指定されたバイト長の署名片と成功を示すデータとのバイト列がＩＣカード１１ｘ，１２ｘから出力され、失敗のとき、失敗を示すデータのバイト列がＩＣカード１１ｘ，１２ｘから出力される。
【００７３】
また、共通機能モジュール部２２は、図４にメソッド実行結果として示す如き、Ｒ／Ｗドライバ部５から受けたＩＣカード１１ｘ，１２ｘの機能実行結果をアプリケーションソフトウェア部２に送出する機能をもっている。
【００７４】
ＩＣカード１１ｘ，１２ｘは、図３に示すように、従来のＲＳＡ機能を実現するための各プログラム１３ｘ，１４ｘが、カードＲ／Ｗ部６から受ける命令セット内の共通命令に基づいて、ＲＳＡ機能に応じた処理を実行するものとなっている。
【００７５】
次に、以上のように構成されたＩＣカード利用装置の動作を説明する。  
まず、利用者により、ＩＣカード１１ｘがＩＣカード利用装置２０のカードＲ／Ｗ部６に挿入される。
【００７６】
続いて、アプリケーションソフトウェア部２の実行により、アプリケーションソフトウェア部２が署名のためのＳｉｇｎメソッドに移行したとする。
【００７７】
このとき、図９に示すように、アプリケーションソフトウェア部２の処理の実行に伴い、図４中の形式の言語でデータ、鍵番号（何番目の鍵か）を指定したＳｉｇｎメソッド実行要求のコマンドが共通機能インタフェース部２１を介して共通機能モジュール部２２に送出される。
【００７８】
共通機能モジュール部２２は、このコマンド毎に、図５に示した如き予め設定された命令セットを参照し、命令セットの各共通命令のうち、順序が“１番目”の署名生成要求コマンドを送出するための処理に移行する。すなわち、図１０に示すように、コマンドとして受けたデータを分割し、ｍバイトのバイト長をもつｐ個のデータ片ｄ１〜ｄｐを作成する。
【００７９】
続いて、共通機能モジュール部２２は、図６に示す如き、鍵の指定及びデータ片ｄｉ（ｉは１〜ｐまでの任意の数）を含む署名生成要求コマンドｒｉを順次ＩＣカード１１ｘ向けにＲ／Ｗドライバ部５に送出する。この署名生成要求コマンドｒｉは、Ｒ／Ｗドライバ部５からカードＲ／Ｗ部６を介してＩＣカード１１ｘに送出される。なお、以下の説明は、記載の簡略のため、共通機能モジュール部２２とＩＣカード３０との間の通信において、Ｒ／Ｗドライバ部５及びカードＲ／Ｗ部６を介する旨を省略して述べる。
【００８０】
また、共通機能モジュール部２２は、この署名生成要求コマンドの送出毎にＩＣカード１１ｘからＡＣＫを受ける。この署名生成要求コマンドｒｉがｐ回送出されることにより、ｐ個のデータ片ｄ１〜ｄｐの全てがＩＣカード１１ｘに届けられる。
【００８１】
一方、ＩＣカード１１ｘでは、署名生成要求コマンド中のβ（鍵の指定）に基づいて、ＲＳＡ機能のプログラム１３ｘが起動され、以下の署名（Signメソッド）に関する処理が実行される。
【００８２】
すなわち、ＩＣカード１１ｘは、プログラム１３ｘの実行により、署名生成要求コマンドｒ１中の“δ”が“０１（最初）”のとき、最初のデータ片ｄ１をバッファに記憶させ、以下、コマンドｒ２〜ｒ(p-1)中の“δ”が“００（中間）”のとき、中間のデータ片ｄ２〜ｄ(p-1)を順次バッファに記憶させ、コマンドｒｐ中の“δ”が“０２（最後）”のとき、最後のデータ片ｄｐをバッファに記憶させる。
【００８３】
また、ＩＣカード１１ｘは、最後のデータ片ｄｐの記憶後、バッファ内の連結されたデータを、署名生成要求コマンド中のβで指定された鍵及び暗号方式で暗号化し、得られた署名を署名バッファに記憶させる。
【００８４】
次に、共通機能モジュール部２２は、最後のデータ片ｄｐを送出すると、命令セット内の２番目のコマンドとして、図７に示す如き、署名バイト長取得コマンドをＩＣカード１１ｘ向けに送出する。
【００８５】
ＩＣカード１１ｘは、この署名バイト長取得コマンドを受けると、署名バッファに記憶された署名全体のバイト長を、図７に示す形式により、共通機能モジュール部２２向けに応答する。
【００８６】
共通機能モジュール部２２は、署名全体のバイト長を取得すると、命令セット内の３番目のコマンドとして、図８に示す如き、署名を所定バイト長ｎの署名片Ｓｊ（ｊは１〜ｑまでの任意の数）毎に取得するための署名取得コマンドＲｊをＩＣカード１１ｘ向けに送出する。
【００８７】
ＩＣカード１１ｘは、この署名取得コマンドＲｊを受けると、署名バッファ内の署名のうち、先頭から所定バイト長ｎまでの署名片Ｓｊを共通機能モジュール部２２向けに送出する。
【００８８】
共通機能モジュール部２２は、ＩＣカード１１ｘから署名片Ｓｊを受けると、その署名片Ｓｊを先頭から連結するようにバッファ内に記憶させる。また、共通機能モジュール部２２は、署名取得コマンドＲｊで指定したバイト長ｎを署名取得コマンドＲｊの送出毎にカウントし、カウント結果が署名全体のバイト長となるまで、前述した署名取得コマンドＲｊの送出から署名片Ｓｊの記憶までの署名取得処理を継続する。
【００８９】
また、共通機能モジュール部２２は、カウント結果が署名全体のバイト長となり、署名取得処理が完了すると、バッファ内の署名を図４の下方に示すメソッド実行結果として共通機能インタフェース部２１を介してアプリケーションソフトウェア部２に送出する。アプリケーションソフトウェア部２は、メソッド実行結果を得ると、ＩＣカード１１ｘの機能を利用するSignメソッドから復帰する。
【００９０】
また、機能モジュール部２２とＩＣカード１１ｘ，１２ｘとの間の命令セットが予め設定されているので、ＩＣカード利用装置２０ａは、ベンダＶ２のＩＣカード１２ｘについても、前述同様にその機能を利用してアプリケーションソフトウェア部２の処理を実行することができる。
【００９１】
上述したように本実施形態によれば、共通機能モジュール部２２が、アプリケーションソフトウェア部２の処理の実行に応じてコマンドを受けると、このコマンド及び所定の命令セットに基づいて、コマンドの修飾部分の内容をパラメータで指定したパラメータ部と、コマンドの命令部分を示す命令部とからなる共通命令を生成し、この共通命令に基づいてＩＣカード１１ｘにアクセスし、このアクセスに応じてＩＣカード１１ｘから受けた機能実行結果をアプリケーションソフトウェア部２に対して送出するので、同一の共通機能に属する他の機能のＩＣカードを使用する際に、ＩＣカードの種類毎に夫々機能モジュールをインストールする手間を無くし、汎用性を向上させることができる。
【００９２】
また、共通機能モジュール部２２としては、アプリケーションソフトウェア部２の処理の実行に応じて受けるコマンド毎に、アクセスのときにＩＣカード３０向けに送出する１以上の共通命令からなる命令セットが記述されたことにより、コマンド毎に共通機能モジュール部２２の仕様を決定できるので、ＩＣカードの種類毎に夫々機能モジュール部４Ａ，４Ｂを要した従来とは異なり、ＩＣカードの種類とは無関係に、ＩＣカード利用装置の環境を構築することができる。
【００９３】
また、ＩＣカードの機能が豊富になっても、各機能が共通機能の１形態である限り、１つの共通機能モジュール部２１を開発すればよいため、カード発行者やカードアプリケーション（又はカードアプレット）提供者にとっては、ＩＣカード毎に個別の機能モジュールを開発する労力と、開発した個別の機能モジュールを配布する手間とを無くすことができる。
【００９４】
一方、ＩＣカード１１ｘは、プログラム１３ｘが、共通機能モジュール部２２により与えられた命令セット内の共通命令に基づいて、機能に応じた処理を実行するので、上の効果を用意且つ確実に得ることができる。
【００９５】
なお、本実施形態は、署名生成要求を例に挙げて説明したが、同様の動作により、暗号生成要求や復号要求を行なうことができる。
【００９６】
（第３の実施形態）
図１１は本発明の第３の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図である。
【００９７】
すなわち、本実施形態は、第２の実施形態による同じＲＳＡ機能のベンダＶ１，Ｖ２の違いの吸収に加え、互いに異なるＲＳＡ機能，ＤＳＡ機能の違いの吸収を図るものである。
【００９８】
具体的には、ＩＣカード利用装置２０ｂにおいては、共通機能モジュール部２２の命令セット内において、図１２に示すように、入力順序の１番目に「オプションリスト取得」コマンドが記述されている。なお、これに対応するＩＣカード３０の構成は後述する。
【００９９】
ここで、オプションリスト取得コマンドは、図１３に示すように、ＩＣカード３０へオプションリスト（サポートする命令内のパラメータ一覧）を要求する命令のバイト列（コマンドAPDU）である。この応答（レスポンスAPDU）としては、オプションリストと成功／失敗を示すデータとのバイト列がＩＣカード３０から出力される。なお、オプションリストは、共通機能モジュール部２２がＩＣカード３０にアクセス可能となったとき、一度だけ取得され、以後、今回のSignメソッドが終了しても継続的に共通機能モジュール部２２に保存される。
【０１００】
ＩＣカード３０は、図１１に示すように、ＩＣカード利用装置２０ｂ側にて共通化された例えばＲＳＡ機能及びＤＳＡ機能を個別に実行するための共通のカードＯＳ３１と、共通機能毎に、サポートする命令内のパラメータの記述された図１２のＫ１Ｋ２に示した如きオプションリストを保持するオプションリスト部３２と、カードＯＳ３１に制御され、共通機能モジュール部２２からＲ／Ｗドライバ部５及びカードＲ／Ｗ部６を介して与えられた命令セット内の共通命令とオプションリスト部３２内のパラメータに基づいて、ＲＳＡ機能又はＤＳＡ機能に応じた処理を実行するための２つのアプレットクラス３３，３４と、アプレットクラス３３，３４により夫々処理データが一時記憶される署名バッファ３３ａ，３４ａと、これらオプションリスト部３２、アプレットクラス３３，３４及び署名バッファ３３ａ，３４ａを包含するカードアプレット３５と、カードＯＳ３１及びカードアプレット３５に基づいて動作するＣＰＵ（図示せず）とを備えたＩＣチップが搭載されている。
【０１０１】
なお、カードアプレット３５は、オプションリストの読出動作をサポートする観点から、オプションリスト部３２を読出す命令（オプションリスト取得コマンド）に対応するオプションリストの送出処理が記述されている。
【０１０２】
次に、以上のように構成されたＩＣカード利用装置の動作を説明する。  
まず、利用者により、ＩＣカード３０がＩＣカード利用装置２０ｂのカードＲ／Ｗ部６に挿入される。
【０１０３】
続いて、アプリケーションソフトウェア部２の実行により、アプリケーションソフトウェア部２が署名のためのＳｉｇｎメソッドに移行したとする。
【０１０４】
このとき、図１４に示すように、アプリケーションソフトウェア部２の処理の実行に伴い、図４中の形式の言語でデータ、鍵種類及び鍵番号（何番目の鍵か）を指定したＳｉｇｎメソッド実行要求が共通機能インタフェース部２１を介して共通機能モジュール部２２に送出される。
【０１０５】
共通機能モジュール部２２は、このコマンド毎に、図１２に示した如き予め設定された命令セットを参照し、命令セットの各命令のうち、順序が“１番目”のオプションリスト取得コマンドをＩＣカード３０に向けて送出する。
【０１０６】
このオプションリスト取得コマンドは、図１３に示した形式を有し、Ｒ／Ｗドライバ部５及びカードＲ／Ｗ部６を介してＩＣカード３０に与えられる。
【０１０７】
ＩＣカード３０は、このオプションリスト取得コマンドを受けると、このオプションリスト取得コマンドが自己のオプションリスト部３２に設定済であることを確認し、オプションリストをカードＲ／Ｗ部６に送出する。このオプションリストは、図１３に示した形式で、カードＲ／Ｗ部６及びＲ／Ｗドライバ部５を介して共通機能モジュール部２２に与えられる。
【０１０８】
共通機能モジュール部２２は、オプションリストを受けると、命令セットの内容（特に、指定された鍵の種類等のパラメータ）がオプションリストに設定済であるか否かを判定し、設定済でないときには図４の下方に示す如き“null”をメソッド実行結果としてアプリケーションソフトウェア部２向けに共通機能インタフェース部２１に送出して処理を終了する。
【０１０９】
ここでは、命令セットの内容がオプションリストに設定済であるので、共通機能モジュール部２２は、署名生成要求コマンドを送出するための処理に移行する。以下、前述同様に、ＩＣカード利用装置２０ｂ及びＩＣカード３０は、図１５に示すように、処理を実行する。  
上述したように本実施形態によれば、第２の実施形態の効果に加え、アプレットクラス３３，３４としては、命令セット内の各命令と各命令に対応するパラメータ部のパラメータとのうち、予め設定された命令及びパラメータに基づいて処理を実行するので、ＩＣカード３０側ではパラメータ（及び／又は命令）で指定可能な任意の機能を実装でき、ＩＣカード利用装置２０側ではその任意の機能を共通コマンドで実行させることができる。このため、命令やパラメータのサポートの範囲が多少異なる複数種類（ＲＳＡ／ＤＳＡなど）のＩＣカードを共通コマンドで取り扱うことができる。
【０１１０】
さらに、ＩＣカード３０は、サポートする命令内のパラメータの記述されたオプションリスト部３２を有し、サポートする命令がオプションリスト部３２を読出す命令を必ず含むので、ＩＣカードのサポート内容を示すオプションリストがＩＣカード利用装置２０側に読出されることにより、ＩＣカード３０がサポートする機能を確認してからＩＣカード３０にアクセスでき、アクセス動作の無駄を省略することができる。また、ＩＣカード３０がオプションリストの読出し命令を確実にサポートするので、このオプションリストによる効果を確実に得ることができる。
【０１１１】
なお、変形例としては、オプションリスト部３２に代えて、サポート不可能な命令に対してサポート不可能を示すリターン値を返答してもよい。しかし、一般に、ＩＣカード３０との通信が低速である上、ＩＣカード３０側に余計な機能（サポート不可能な命令に対する返答機能）を作成する必要があるので、本実施形態に比べ、非効率的である。
【０１１２】
また、ＩＣカード３０内の各共通機能毎にオプションリストを持たせたので、ＩＣカード３０内の機能を柔軟に決定することができる。
【０１１３】
例えば図１６に示すように、前述した署名（ＲＳＡ及びＤＳＡ）に関する共通機能を「Ｘ」と呼び、他の処理（例えば複数方式の電子マネーの演算機能）に関する共通機能を「Ｙ」と呼び、ＩＣカード利用装置２０がＸに関する共通機能インタフェース部２１Ｘ及び共通機能モジュール部２２Ｘと、Ｙに関する共通機能インタフェース部２１Ｙ及び共通機能モジュール２２Ｙとを夫々備えているとする。
【０１１４】
このとき、当然であるが、共通機能Ｘに対応するオプションリストをもつ前述したＩＣカード３０は共通機能Ｘを実行可能である。  
次に、このＩＣカード３０に対し、共通機能Ｙに対応するカードアプレット３６を付加するとき、同時にこの共通機能Ｙに対応するオプションリストを含むオプションリスト部３７を付加すればよい。これにより、ＩＣカード３０は、共通機能Ｘに加え、共通機能Ｙに対応する命令及びパラメータをサポートすることになり、共通機能Ｘ，Ｙを夫々実行可能となる。
【０１１５】
また、共通機能ＸのみをサポートするＩＣカード３０であっても、楕円ＤＳＡ暗号等の他の署名機能に対応するカードアプレットを付加する場合、同時に共通機能Ｘのオプションリスト内に楕円ＤＳＡ暗号を示すパラメータ（例、Ｋ３：０４（４つの鍵の場合））を付加すればよい。
【０１１６】
これにより、このＩＣカード３０は、共通機能Ｘのオプションリストにおいて、新たに楕円ＤＳＡ暗号をサポートすることを示し、楕円ＤＳＡ暗号を実行可能となる（なお、ＩＣカード利用装置２０内の命令セットには、予め楕円ＤＳＡ暗号に対応するパラメータ（例、βの左側のコード“００”をαとし、αの値により鍵種類を示す。α＝０２；楕円ＤＳＡ暗号鍵。また、α＝００；ＲＳＡ暗号鍵、α＝０１；ＤＳＡ暗号鍵）が規定されているものとする。但し、命令セット内に楕円ＤＳＡ暗号のパラメータが無ければ新たに規定すればよい）。
【０１１７】
さらに、共通機能Ｘのうちのある機能又は共通機能Ｙ全体などをＩＣカード３０から削除する場合、該当するカードアプレットクラス３３，３４又はカードアプレット３５，３６を削除すると共に、それに対応するオプションリスト内のパラメータＫｉ（共通機能Ｋ１〜Ｋ３のうちのある機能Ｋｉ）又はオプションリスト部３２，３７自体（共通機能全体）を削除すればよい。
【０１１８】
（第４の実施形態）
図１７は本発明の第４の実施形態に係るＩＣカード利用システムの構成を示すブロック図である。  
すなわち、本実施形態は、インストール作業の手間の省略を図るものであり、具体的には、アプリケーションソフトウェア部２及び共通機能モジュール部２２が記憶されたアプリケーションサーバ装置（又はソフトウェア記憶装置）４０がＩＣカード利用装置２０ｃと夫々各装置２０ａ，４０の通信部２３，４１を介して接続された構成となっている。
【０１１９】
ここで、ＩＣカード利用装置２０ｃは、前述した構成に加え、動的ロード部２４及び通信部２３を介してネットワーク上のアプリケーションサーバ装置４０内のアプリケーションソフトウェア部２及び共通機能モジュール部２２をロードする機能をもっている。
【０１２０】
動的ロード部２４は、ＩＣカード３０を保持したとき、このＩＣカード３０内の機能（カードアプレット３３，３４，３６又はオプションリスト部３２，３７等）を参照し、対応するアプリケーションソフトウェア部２と共通機能モジュール部２２との両ソフトウェアを動的にロードする機能をもったソフトウェアである。
【０１２１】
以上のような構成により、第１の実施形態の動作の前に、カードＲ／Ｗ部６がＩＣカード３０を保持したとき、動的ロード部２４が、このＩＣカード３０内の機能を参照して対応するアプリケーションソフトウェア部２及び共通機能モジュール部２２をアプリケーションサーバ装置４０からロードするので、第１の実施形態の効果に加え、利用者のインストール作業の手間を省略することができる。
【０１２２】
また、アプリケーションサーバ装置４０を管理する上位アプリケーション提供者としては、ＩＣカードの各機能毎にソフトウェアを準備するのではなく、共通機能のソフトウェアのみを準備して提供すればよいので、ソフトウェアを準備する労力を激減させることができる。
【０１２３】
なお、本実施形態は、図１８に示すように変形してもよい。すなわち、動的ロード部２４と通信部２３との間に設けられ、ＩＣカード３０の着脱とは無関係にＩＣカード利用装置２０ｄの立上げの際に、予め所定のアプリケーションソフトウェア部２と共通機能モジュール部２２との両ソフトウェアを静的にロードするための静的ロード部２５を付加してもよい。
【０１２４】
この変形例によれば、静的ロード部２５がＩＣカード利用装置２０ｄの立上げの際にアプリケーションソフトウェア部２及び共通機能モジュール部２２をアプリケーションサーバ装置４０から静的にロードし、カードＲ／Ｗ部６がＩＣカード３０を保持したとき、動的ロード部２４が、静的ロード部２５によってロード済のアプリケーションソフトウェア部２及び共通機能モジュール部２２を動的にロードするので、ネットワーク上に異常があっても、確実に必要なソフトウェアを動的にロードすることができる。
【０１２５】
（第５の実施形態）
図１９は本発明の第５の実施形態に係るＩＣカード利用システム及びＩＣカードの構成を示すブロック図である。
【０１２６】
すなわち、本実施形態は、第１〜第４の実施形態を組合せた構成を市販品にて実現した一例であり、アプリケーションサーバ装置４０とＩＣカード利用装置２０ｅとが互いにネットワークを介して接続されている。
【０１２７】
ここで、アプリケーションサーバ装置４０は、ＷＷＷサーバ（プログラム）４２、タイムスタンプアプレット４３及びカード署名機能モジュール４４、タイムスタンプサーバ４５という各ソフトウェアを有し、ＩＣカード利用装置２０ｅからＷＷＷサーバ４２への要求により、タイムスタンプアプレット４３及びカード署名機能モジュール４４を通信部４１を介してＩＣカード利用装置２０ｅへ提供可能としている。
【０１２８】
一方、ＩＣカード利用装置２０ｅは、ＷＷＷブラウザ（プログラム）６０、共通機能インタフェース部２２、ドライバ共通インタフェース部５１、Ｒ／Ｗドライバマネージャ５３ａ、ＰＣ／ＳＣ制御部６１、ＰＣ／ＳＣリソースマネージャ５２ｒ、ＰＣ／ＳＣ用Ｒ／Ｗドライバ部５ａ，５ｂ及びカードＲ／Ｗ部６ａ，６ｂを備えている。
【０１２９】
ＷＷＷブラウザ６０は、アプリケーションソフトウェア装置４０のＷＷＷサーバ４２にアクセスしてタイムスタンプアプレット４３及びカード署名機能モジュール４４をダウンロードする機能をもっている。このＷＷＷブラウザ６０としては、例えばInternet Explorer（Internet Explorerは、米マイクロソフト社の商標）が使用可能となっている。また、ＷＷＷブラウザ６０にJava実行環境を外付けするためのソフトウェアとして、例えばJava Plug-inが使用されており、ＷＷＷブラウザの違いによらないJava実行環境を構築可能としている。
【０１３０】
タイムスタンプアプレット４３は、利用者の要求に応じ、ＷＷＷサーバ４２からネットワークを介してＩＣカード利用装置２０ｅに動的にダウンロードされ、利用者へのタイムスタンプサービスの提供用のユーザインタフェースとして動作し、タイムスタンプサーバ４５と通信してタイムスタンプサービスを実現するクライアントアプリケーションであり、Javaアプレットとして実装される。
【０１３１】
共通機能インタフェース部（＝署名機能アクセス方法）２２は、論理的にタイムスタンプアプレット４３と署名機能モジュール４４との間に配置され、タイムスタンプアプレット４３の処理の実行に伴って署名機能モジュール４４を介し、予め保持する鍵で署名するというＩＣカード３０の機能にアクセスするためのミドルウェアであり、Java言語のインタフェースとして定義される。
【０１３２】
署名機能モジュール４４は、論理的に共通機能インタフェース部２２の下段にJavaクラスライブラリとして実装された機能モジュールであり、共通機能インタフェース部２２から要求されるメソッドを実行するための命令セットを有し、ドライバ共通インタフェース５０〜カードＲ／Ｗ部６ａ（又は６ｂ）を介してＩＣカード３０ａ又は３０ｂにアクセスする機能をもっている。
【０１３３】
カードＲ／Ｗドライバマネージャ５３ａは、前述したドライバ制御部管理部５３と同様の機能を実現するためのソフトウェアである。
【０１３４】
ＰＣ／ＳＣ制御部６１は、ドライバ共通インタフェース５０とＰＣ／ＳＣリソースマネージャ５２ｒのインタフェースとをつなぐソフトウェアであり、JavaクラスライブラリとＰＣ／ＳＣリソースマネージャ５２ｒにアクセスするＤＬＬファイルとから構成されている。なお、ＤＬＬ(Dynamic Link Library)は、プログラム実行時に動的にリンクされる実行モジュールであり、Microsoft Windows（登録商標）環境で動作可能となっている。また、ＰＣ／ＳＣは、Microsoft Windows上でＩＣカードにアクセスするための仕組みである。
【０１３５】
ＰＣ／ＳＣリソースマネージャ５２ｒは、ＰＣ／ＳＣ用の各Ｒ／Ｗドライバ部５ａ，５ｂを一括管理するためのソフトウェアであり、ＰＣ／ＳＣ制御部６１とＲ／Ｗドライバ部５ａ（又は５ｂ）とを接続する機能をもっている。
【０１３６】
Ｒ／Ｗドライバ部５ａ，５ｂは、ここではＰＣ／ＳＣ用ＦＹ−１３００ドライバ（ＦＹ−１３００は、（株）東芝の商標）及びLitronic210ドライバ（Litronic210は、リトロニック社の商標）が使用されている。
【０１３７】
カードＲ／Ｗ部６ａ，６ｂは、ここではＦＹ−１３００及びLitronic210が使用されている。
【０１３８】
ＩＣカード３０ａ，３０ｂとしては、例えばJavaカードＯＳの搭載されたJavaカードが使用可能であり、Javaカードとしては、例えば、JMAGIC（JMAGICは、（株）東芝の商標）又はCyberflex Open 16k（Cyberflex Open 16kは、シュルンベルジェ社の商標）などが使用可能となっている。
【０１３９】
カード署名アプレット３０ａｐ，３０ｂｐは、Javaカードに保持され、JavaカードＯＳにより制御されて署名機能用の命令セットを実行するカードアプレットである。
【０１４０】
次に、以上のように構成されたＩＣカード利用装置の動作を説明する。  
いま、ＩＣカード利用装置２０ｅにおいては、利用者の要求により、ＷＷＷブラウザ６０がタイムスタンプアプレット４３をアプリケーションサーバ装置４０からダウンロードする。
【０１４１】
このタイムスタンプアプレット４３は、共通機能インタフェース部２２を介して例えばＩＣカード３０ａにその鍵による電子署名をさせようとする。このとき、Java実行環境により、署名機能モジュール４４がアプリケーションサーバ装置４０から動的にダウンロードされる。
【０１４２】
以下、第２又は第３の実施形態と同様に、タイムスタンプアプレット４３の処理の実行に応じ、署名機能モジュール４４がＲ／Ｗドライバ部５ａ等を介してＩＣカード３０ａに署名を行わせる。このとき、複数のＲ／Ｗドライバ部５ａ，５ｂがあるが、第３の実施形態と同様に、ドライバ共通インタフェース部５１を介してアクセス可能なＩＣカード３０ａを保持するＲ／Ｗドライバ部５ａが選択されて処理が実行される。
【０１４３】
上述したように本実施形態によれば、第１〜第４の実施形態を市販品により実現でき、同様の効果を得ることができる。
【０１４４】
また、利用者は、例えばタイムスタンプサービスを受ける際に、ＩＣカード３０ａｐをカードＲ／Ｗ部６ａに挿入することにより、ＩＣカード利用装置２０ｅが、タイムスタンプサービスのために必要な（残りの）ソフトウェア４３，４４をネットワークからダウンロードするので、直ぐにタイムスタンプサービスを受けることができる。
【０１４５】
（第６の実施形態）
図２０は本発明の第６の実施形態に係るＩＣカード利用装置の構成を示すブロック図である。
【０１４６】
すなわち、本実施形態は、複数の共通機能モジュール部２２，…の管理を図るものであり、具体的には、ＩＣカード利用装置２０ｆが、管理テーブル部７１及び機能モジュール管理部７２を備えている。
【０１４７】
ここで、管理テーブル部７１は、複数の共通機能モジュール部２２，…の夫々のJava実行環境名（クラス名：例、jp. co. kaisyamei,….Wallet. class.）と機能名（文字列：例、“Wallet”）との組が記憶されたものである。なお、機能名の文字列は、Java実行環境名（クラス名）から取出されて作成されている。
【０１４８】
機能モジュール管理部７２は、共通機能モジュール部２２，…の実行環境名を指定した登録要求（例、add(実行環境名)）を受けたとき、この実行環境名に基づいて機能名を作成し（例、getName(実行環境名)）、得られた機能名と指定された実行環境名との組を管理テーブル部７１に登録する登録機能と、アプリケーションソフトウェア部２の処理の実行に応じて機能名を受けたとき（例、connect(機能名)）、管理テーブル部７１を参照しながら機能名に該当する共通機能モジュール部２２とＩＣカード３０との接続処理を実行する接続機能とをもっている。
【０１４９】
次に、以上のように構成されたＩＣカード利用装置の動作を説明する。  
（登録動作）
新規の共通機能モジュール部２２ｉが図示しない動的ロード部により、ネットワーク上からダウンロードされ、アクセス可能なクラスパスのどこかに位置したとき、管理テーブル部７１への追加登録対象となる。
【０１５０】
機能モジュール管理部７２は、共通機能モジュール部２２ｉのクラス名“….Wallet. class.”を指定した登録要求add(….Wallet. class.)をアプリケーションソフトウェア部２から受けたとき、このクラスが共通機能モジュール部２２に必要とされるインタフェース（本実施形態では、getName, getAID）を有するか否かを確認し、当該インタフェースを有するとき、このクラス名に基づいてコマンドgetName(….Wallet. class.)によって機能名“Wallet”を作成し、得られた機能名と指定されたクラス名との組を管理テーブル部７１に登録する。
【０１５１】
これにより、以後、機能名を指定すると、機能名に対応する共通機能モジュール部２２ｉがＩＣカード３０ｉに接続されて動作可能となる。なお、機能名にはＲ／Ｗドライバ部５の名前、ＩＣカード３０ｉの名前を付加してもよい。また、共通機能モジュール部２２ｉの登録を削除するには、機能名を指定した削除要求remove(Wallet)が入力されると、機能モジュール管理部７２が、管理テーブル部７１内の該当する機能名とクラス名との組を削除する。  
（接続動作）
機能モジュール管理部７２は、アプリケーションソフトウェア部２の処理の実行に応じ、機能名を指定した接続要求connect(機能名)を受けたとき、管理テーブル部７１を参照しながら機能名に該当するクラス名を検索する。
【０１５２】
また、機能モジュール管理部７２は、得られたクラス名から、コマンドgetAID()により、ＩＣカード３０，３０ｉ内のカードアプレットを特定するアプレットＩＤのバイト列（ＡＩＤバイト列）を得る。なお、ＡＩＤは、ＩＳＯ７８１６に規定されたアプレットＩＤである。
【０１５３】
次に、機能モジュール管理部７２は、第１の実施形態で述べたカード共通アクセス方法５０により、共通機能モジュール部２２ｉとＩＣカード３０，３０ｉとの接続を試みる。すなわち、ＩＣカード３０，３０ｉの有無を調べ、ＩＣカード有のＲ／Ｗドライバ部５を介し、そのＩＣカード３０，３０ｉ内に、ＡＩＤに対応するアプレットの有無を調べ、アプレット有のとき、JavaカードのSelectAppletというコマンドにより、そのアプレットの属するＩＣカード３０ｉと、指定されたクラス名の共通機能モジュール部２２ｉとの接続を確立する。
【０１５４】
続いて、機能モジュール管理部７２は、その共通機能モジュール部２２ｉをセットアップし、共通機能モジュール部２２ｉのオブジェクトをリターンして共通機能モジュール部２２ｉとアプリケーションソフトウェア部２とを接続する。
【０１５５】
上述したように本実施形態によれば、複数の共通機能モジュール部２２，…の夫々の実行環境名と機能名との組が記憶されたモジュール管理テーブル部７１を設け、機能モジュール管理部７２が、アプリケーションソフトウェア部２の処理の実行に応じて機能名を受けたとき、管理テーブル部７１を参照しながら機能名に該当する共通機能モジュール部２２ｉとＩＣカード３０ｉとの接続処理を実行するので、第１〜第５の実施形態の効果に加え、実行環境名を与えずに機能名を与えるだけで、該当する共通機能モジュール部２２ｉを使用できるため、直感的なイメージで様々なＩＣカードの機能を利用することができる。
【０１５６】
さらに、機能モジュール管理部７２が、共通機能モジュール部２２ｉの実行環境名を指定した登録要求を受けたとき、この実行環境名に基づいて機能名を作成し、得られた機能名と指定された実行環境名との組を管理テーブル部７１に登録するので、登録の手間を必要最小限とすることができる。
【０１５７】
（第７の実施形態）
図２１は本発明の第７の実施形態に係るＩＣカード利用装置の構成を示すブロック図である。
【０１５８】
すなわち、本実施形態は、前述した各実施形態の具体例であり、ここでは、前述した共通機能モジュール部２２の署名機能（暗号化・復号機能を含む）に加え、特に、ＩＣカード３０ｅを対象とし、公開鍵証明書に関する取出要求／検証要求／データ切出し要求を実行するための共通機能モジュール部２２ｅを備えている。
【０１５９】
ＩＣカード３０ｅは、前述したＩＣカード３０の署名機能に加え、特に、共通機能モジュール部２２ｅの命令セットに対応し、公開鍵証明書の読出要求／検証要求／データ切出し要求をサポートする機能を有し、具体的には、公開鍵証明書（例、X509.バージョン3）を保持した構成となっている。
【０１６０】
すなわち、ＩＣカード３０ｅは、鍵種類（例、ＲＳＡ512bit、ＲＳＡ1024bit、ＤＳＡ1024bit）毎に、例えば夫々３つの鍵番号１〜３を有し、各鍵番号毎に、公開鍵と秘密鍵のペア及び公開鍵証明書を保持している。
【０１６１】
次に、このような構成のＩＣカード利用装置及びＩＣカードの動作を説明する。  
（公開鍵証明書の取出し）
前述同様に、アプリケーションソフトウェア部２の処理の実行に応じて共通機能モジュール部２２ｅが、公開鍵証明書の指定（公開鍵の種類と鍵番号）を含む公開鍵証明書の取出要求を受けると、指定された公開鍵証明書の有無をオプションリストにより確認し、公開鍵証明書が有のとき、受けた取出要求に応じてコマンドをＩＣカード３０ｅ向けに送出する。
【０１６２】
ＩＣカード３０ｅは、このコマンドに応じて該当する公開鍵証明書のオブジェクトを共通機能モジュール部２２ｅ向けに送出する。共通機能モジュール部２２ｅは、この公開鍵証明書のオブジェクトをアプリケーションソフトウェア部２向けに送出する。
【０１６３】
これにより、アプリケーションソフトウェア部２は、指定した鍵に対応する公開鍵証明書のオブジェクトを得る。また、得られた公開鍵証明書のオブジェクトは、適宜、サーバ等への検証依頼や、所望部分のデータ切出しが実行される。なお、データ切出しは、ＡＳＮ．１(Abstract Syntax Notation One)に規定される手順で実行される。
【０１６４】
また、ＩＣカード利用装置は、鍵の指定を含む鍵の取出要求コマンドをＩＣカード３０ｅに入力することにより、同様にしてＩＣカード３０ｅから鍵のオブジェクトを取り出すことができる。但し、公開鍵は取出可能であるが、秘密鍵は取出不可である。
【０１６５】
（公開鍵証明書の署名検証）
これは、上述したＩＣカード３０ｅから得た公開鍵証明書ではなく、他から得た公開鍵証明書のオブジェクトに関する署名検証である。  
いま、アプリケーションソフトウェア部では、公開鍵証明書のオブジェクトが署名部分とデータ部分とに分けられ、このデータ部分がハッシュやパディング等により、署名部分のデータ長と等しいデータ長に整えられる。
【０１６６】
続いて、アプリケーションソフトウェア部から、これら互いに等しいデータ長のデータ部分及び署名部分と、鍵の指定（鍵種類及び鍵番号）とを含む検証要求が、共通機能インタフェース部２１を介して共通機能モジュール部２２ｅに与えられる。
【０１６７】
共通機能モジュール部２２ｅは、この検証要求に基づいて、前述同様にオプションリストにより鍵のサポートの有無を確認し、鍵のサポート有のとき、データ部分及び署名部分と鍵の指定とを含む検証要求コマンドを複数回に分けてＩＣカード３０ｅ向けに送出する。なお、検証要求コマンドは、前述した署名生成要求コマンドと同様のフォーマットで形成されている（先頭４バイトの００４ａに代えて“検証要求”を意味するコードを用いる）。
【０１６８】
ＩＣカード３０ｅでは、検証要求コマンドにより、最後のデータ（パラメータδ＝０２のとき）を受けると、この署名部分とデータ部分とからなる公開鍵証明書のオブジェクトを、指定された鍵を用いて検証し、結果を保持する。
【０１６９】
続いて、共通機能モジュール部２２ｅは、検証結果取得コマンドをＩＣカード３０ｅ向けに送出する。この検証結果取得コマンドは、前述した署名バイト長取得コマンドと同様のフォーマットで形成されている（先頭４バイトの００２４に代えて“検証結果取得”を意味するコードを用いる）。
【０１７０】
ＩＣカード３０ｅでは、検証結果取得コマンドを受けると、“正当”又は“不正”を示す検証結果を共通機能モジュール部２２ｅ向けに送出する。
【０１７１】
共通機能モジュール部２２ｅは、この検証結果を共通機能インタフェース部を介してアプリケーションソフトウェア部に与える。
【０１７２】
これにより、アプリケーションソフトウェア部２は、ＩＣカード３０ｅ内の鍵による、公開鍵証明書の検証結果を得る。また、以上は、外部の公開鍵証明書をＩＣカード３０ｅ内の鍵を用いて検証する場合を述べたが、これに限らず、外部の鍵オブジェクトをＩＣカード３０ｅに与え、この鍵オブジェクトをＩＣカード３０ｅ内の公開鍵証明書を用いて検証してもよい。あるいは、外部の公開鍵証明書と外部の鍵オブジェクトをＩＣカード３０ｅに与え、この公開鍵証明書をこの鍵オブジェクトを用いて検証してもよい。いずれにしても、ＩＣカード利用装置２０ｆは、公開鍵証明書と鍵とを指定することにより、ＩＣカード３０ｅのもつ検証機能を利用してＩＣカード３０ｅに検証機能を実行させ、その機能実行結果を得ることができる。
【０１７３】
（公開鍵証明書のデータ切出し）
いま、アプリケーションソフトウェア部では、処理の実行に伴い、公開鍵証明書のオブジェクトと、切り出したい項目の指定とを含むデータ切出し要求が、共通機能インタフェース部２１を介して共通機能モジュール部２２ｅに与えられる。
【０１７４】
共通機能モジュール部２２ｅは、このデータ切出し要求に基づいて、公開鍵証明書のオブジェクトと、切り出したい項目の指定とを含む切出し要求コマンドを複数回に分けてＩＣカード３０ｅ向けに送出する。なお、切出し要求コマンドは、前述した署名生成要求コマンドと同様のフォーマットで形成されている（先頭４バイトの００４ａに代えて“切出し要求”を意味するコードを用い、且つ鍵の指定のβに代えて、“切り出したい項目”の内容を示すパラメータを用いる）。
【０１７５】
ＩＣカード３０ｅでは、切出し要求コマンドにより、最後のデータ（パラメータδ＝０２のとき）を受けると、公開鍵証明書のオブジェクトから、指定された項目のデータをＡＳＮ．１に規定される手順で切り出し、得られたデータを保持する。
【０１７６】
続いて、共通機能モジュール部２２ｅは、切出し結果取得コマンドをＩＣカード３０ｅ向けに送出する。この切出し結果取得コマンドは、前述した署名バイト長取得コマンドと同様のフォーマットで形成されている（先頭４バイトの００２４に代えて“切出し結果取得”を意味するコードを用いる）。
【０１７７】
ＩＣカード３０ｅでは、切出し結果取得コマンドを受けると、切出し結果を共通機能モジュール部２２ｅ向けに送出する。
【０１７８】
共通機能モジュール部２２ｅは、この切出し結果の内容を共通機能インタフェース部を介してアプリケーションソフトウェア部に与える。
【０１７９】
これにより、アプリケーションソフトウェア部２は、指定された項目の公開鍵証明書のデータ内容を得る。このように、ＩＣカード利用装置２０ｆは、公開鍵証明書と切出し項目とを指定することにより、ＩＣカード３０ｅのもつデータ切出し機能を利用してＩＣカード３０ｅに切出し機能を実行させ、その機能実行結果を得ることができる。
【０１８０】
上述したように本実施形態によれば、共通機能モジュール部２２ｅが、ＩＣカード３０ｅを対象とし、暗号生成要求、署名生成要求、及び公開鍵証明書の取出要求を適宜、実行するので、特に暗号系の処理に関し、第１〜第６の実施形態の効果と同様の効果を得ることができる。
【０１８１】
（他の実施形態）
なお、上記実施形態では、別機能の例として「ＲＳＡにより署名する」機能と「ＤＳＡにより署名する」機能とを挙げ、これらを「署名する（命令部）、ＲＳＡ／ＤＳＡにより（パラメータ部）」という共通コマンドを用いて共通機能に統合した場合を説明したが、この例に限らず、従来複数とされた他の各機能であっても、コマンドの命令部分が共通であれば、コマンド体系を統合して共通機能にまとめることができ、同様の効果を得ることができる。
【０１８２】
また、実施形態に説明したＩＣカード利用装置及びＩＣカードは、記憶媒体に格納したプログラムを夫々のコンピュータに読み込ませることで実現させることができる。
【０１８３】
ここで、記憶媒体に格納したプログラムとは、ＩＣカード利用装置の場合、共通機能インタフェース部２１、共通機能モジュール部２２、動的ロード部２４、静的ロード部２５、カード共通アクセス方法５０、ドライバ共通インタフェース部５１、ドライバ制御部５２ａ，５２ｂ及びドライバ制御部管理部５３であり、ＩＣカードの場合、オプションリスト部３１，３７と命令セットとに対応したカードアプレット３３，３４，３６である。
【０１８４】
尚、本発明における記憶媒体としては、磁気ディスク、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１８５】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０１８６】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１８７】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１８８】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１８９】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１９０】
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【図面の簡単な説明】
【０１９１】
【図１】本発明の第１の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図２】同実施形態におけるＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図３】本発明の第２の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図４】同実施形態におけるコマンド及びその結果を説明するための模式図
【図５】同実施形態における命令セットを説明するための模式図
【図６】同実施形態におけるコマンド及びその応答を説明するための模式図
【図７】同実施形態におけるコマンド及びその応答を説明するための模式図
【図８】同実施形態におけるコマンド及びその応答を説明するための模式図
【図９】同実施形態における動作を説明するためのシーケンス図
【図１０】同実施形態における動作を説明するためのシーケンス図
【図１１】本発明の第３の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図１２】同実施形態における命令セットを説明するための模式図
【図１３】同実施形態におけるオプションリスト取得コマンド及びオプションリストを説明するための模式図
【図１４】同実施形態における動作を説明するためのシーケンス図
【図１５】同実施形態における動作を説明するためのシーケンス図
【図１６】同実施形態における変形例を示すブロック図
【図１７】本発明の第４の実施形態に係るＩＣカード利用システムの構成を示すブロック図
【図１８】同実施形態における変形例を示すブロック図
【図１９】本発明の第５の実施形態に係るＩＣカード利用システム及びＩＣカードの構成を示すブロック図
【図２０】本発明の第６の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図２１】本発明の第７の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図２２】従来のＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図２３】従来のＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【図２４】従来のＩＣカード利用装置及びＩＣカードの構成を示すブロック図
【符号の説明】
【０１９２】
２…アプリケーションソフトウェア部、５，５Ａ，５Ｂ…Ｒ／Ｗドライバ部、６，６Ａ，６Ｂ…カードＲ／Ｗ部、２０，２０ａ〜２０ｇ…ＩＣカード利用装置、２１…共通機能インタフェース部、２２，２２ｅ…共通機能モジュール部、２３，４１…通信部、２４…動的ロード部、２５…静的ロード部、３０，３０ｅ…ＩＣカード、３１…カードＯＳ、３２，３７…オプションリスト部、３３，３４，３５，３６…カードアプレット、３３ａ，３４ａ…署名バッファ、４０…アプリケーションサーバ装置、４２…ＷＷＷサーバ、４３…タイムスタンプアプレット、４４…カード署名機能モジュール、４５…タイムスタンプサーバ、５０…カード共通アクセス方法、５１…ドライバ共通インタフェース部、５２ａ，５２ｂ…ドライバ制御部、５３…ドライバ制御部管理部、６０…ＷＷＷブラウザ、６１…ＰＣ／ＳＣ制御部、７１…管理テーブル部、７２…機能モジュール管理部。
【図１】
2006236376.tif 000003
【図２】
2006236376.tif 000004
【図３】
2006236376.tif 000005
【図４】
2006236376.tif 000006
【図５】
2006236376.tif 000007
【図６】
2006236376.tif 000008
【図７】
2006236376.tif 000009
【図８】
2006236376.tif 000010
【図９】
2006236376.tif 000011
【図１０】
2006236376.tif 000012
【図１１】
2006236376.tif 000013
【図１２】
2006236376.tif 000014
【図１３】
2006236376.tif 000015
【図１４】
2006236376.tif 000016
【図１５】
2006236376.tif 000017
【図１６】
2006236376.tif 000018
【図１７】
2006236376.tif 000019
【図１８】
2006236376.tif 000020
【図１９】
2006236376.tif 000021
【図２０】
2006236376.tif 000022
【図２１】
2006236376.tif 000023
【図２２】
2006236376.tif 000024
【図２３】
2006236376.tif 000025
【図２４】
2006236376.tif 000026