(57)【要約】【課題】ＩＣカード製造会社などが発行パターンを容易に作成することができるＩＣカード発行装置を提供する。【解決手段】ＩＣカード発行装置１はスクリプト言語で記述された発行スクリプト１５を記憶している。ＩＣカード２を発行するとき、ＩＣカード発行装置１は、テストスクリプト１５に含まれるステートメントを逐次解釈し、解釈した処理をＩＣカード２に実行させることで、ＩＣカード２を発行する。例えば、ＩＣカード発行装置１は、スクリプト言語で記述された発行スクリプトから、ＩＣカード２のプログラムインターフェース仕様に従い、１６進数のキャラクターで記述されたコマンドＡＰＤＵを生成し、生成したコマンドＡＰＤＵを用いてＩＣカード２を発行する。【選択図】図２
2007317093.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードに実装されるコンピュータプログラムを利用して、前記ＩＣカードを発行するＩＣカード発行装置であって、ＩＣカード発行装置は、前記ＩＣカード発行装置用のスクリプト言語で記述された発行スクリプトを記憶し、更に、ＩＣカード発行装置は、前記ＩＣカード装置とデータ通信するためのリーダライタと、前記リーダライタを用いて前記ＩＣカード装置とデータ通信するための前記伝送制御手段と、前記発行スクリプトを解釈し、前記ＩＣカード装置に解釈した処理を実行させるＩＣカード発行手段と、を備えていることを特徴とするＩＣカード発行装置。
【請求項２】
請求項１に記載のＩＣカード発行装置であって、前記ＩＣカード発行手段は、前記ＩＣカードプログラムのプログラムインターフェース仕様に基づき、前記ＩＣカード装置に実行させるコマンドＡＰＤＵを前記発行スクリプトから生成するコマンドＡＰＤＵ生成部を備え、前記ＩＣカード発行手段は、少なくとも、前記コマンドＡＰＤＵ生成部が生成した前記コマンドＡＰＤＵを前記ＩＣカード装置に送信し、前記ＩＣカード装置から受信したレスポンスＡＰＤＵを処理することを特徴とするＩＣカード発行装置。
【請求項３】
ＩＣカードに実装されるコンピュータプログラムであるＩＣカードプログラムを発行するＩＣカード発行方法であって、ＩＣカード発行方法は、
ステップ１）前記ＩＣカード発行装置用のスクリプト言語で記述された発行スクリプトを解釈するステップ、
ステップ２）前記ＩＣカードプログラムを実行するＩＣカード装置に、前記ステップ１）で解釈した処理を実行させるステップ、
を備え、ステップ１）およびステップ２）を繰り返し実行することで、前記ＩＣカードを発行することを特徴とするＩＣカード発行方法。
【請求項４】
請求項３に記載のＩＣカード発行方法であって、前記ＩＣカード発行方法に備えられた前記ステップ１）では、前記ＩＣカードプログラムのプログラムインターフェース仕様に基づき、前記ＩＣカード装置に実行させるコマンドＡＰＤＵを前記発行スクリプトから生成し、生成した前記コマンドＡＰＤＵを前記ＩＣカード装置に伝送する処理が実行され、前記ステップ２）では、前記ステップ１）で伝送した前記コマンドＡＰＤＵに対するレスポンスＡＰＤＵを前記ＩＣカード装置から受信し、前記レスポンスＡＰＤＵを判定する処理が実行されることを特徴とするＩＣカード発行方法。
【請求項５】
請求項４に記載のＩＣカード発行方法であって、前記ステップ２）では、前記レスポンスＡＰＤＵの判定結果に従って、前記ＩＣカードの発行処理を分岐させることを特徴とするＩＣカード発行方法。
【請求項６】
請求項３から請求項５のいずれかに記載のＩＣカード発行方法に含まれる各ステップを実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードを発行するＩＣカード発行装置およびＩＣカード発行方法に関する。
【背景技術】
【０００２】
クレジットカードやＰＫＩ（Public Key Infrastructure）のハードウェアトークンとして利用されているＩＣカードのプログラムインターフェースは、非特許文献１または非特許文献２で定義されているように、１６進数のキャラクター（０〜９、Ａ〜Ｆ）を用いて表記される。
【０００３】
このようなＩＣカードを発行するとき、ＩＣカードを発行するために、ＩＣカード製造会社は、ＩＣカードのプログラムインターフェースに従い、１６進数のキャラクターで記述した発行スクリプトを作成する。
【非特許文献１】ＪＩＣＳＡＰ  外部端子付きＩＣカード仕様（第１.１版）                      ＩＣカードシステム利用促進協議会
【非特許文献２】ＥＭＶ規格（BOOK1） Version 4.1 May 2004
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＣカード製造会社が発行スクリプトを作成するときは、非特許文献１や非特許文献２などを参照しながら１６進数のキャラクターで発行スクリプトを記述しなければならないため、発行スクリプトの作成に時間が費やされてしまっていた。更に、発行スクリプトに作成ミスがあると、当然のことながら発行スクリプトの作成ミスに起因するエラーが発生し、ＩＣカード発行の阻害要因にもなってしまう。
【０００５】
そこで、本発明は、ＩＣカード製造会社が発行パターンを容易に作成することができ、更に、発行パターンの作成ミスが生じにくいＩＣカード発行装置、ＩＣカード発行方法およびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決する第１の発明は、ＩＣカードに実装されるコンピュータプログラムを利用して、前記ＩＣカードを発行するＩＣカード発行装置であって、ＩＣカード発行装置は、前記ＩＣカード発行装置用のスクリプト言語で記述された発行スクリプトを記憶し、更に、ＩＣカード発行装置は、前記ＩＣカード装置とデータ通信するためのリーダライタと、前記リーダライタを用いて前記ＩＣカード装置とデータ通信するための前記伝送制御手段と、前記発行スクリプトを解釈し、前記ＩＣカード装置に解釈した処理を実行させるＩＣカード発行手段と、を備えていることを特徴とする。
【０００７】
更に、第２の発明は、第１の発明に記載のＩＣカード発行装置であって、前記ＩＣカード発行手段は、前記ＩＣカードプログラムのプログラムインターフェース仕様に基づき、前記ＩＣカード装置に実行させるコマンドＡＰＤＵを前記発行スクリプトから生成するコマンドＡＰＤＵ生成部を備え、前記ＩＣカード発行手段は、少なくとも、前記コマンドＡＰＤＵ生成部が生成した前記コマンドＡＰＤＵを前記ＩＣカード装置に送信し、前記ＩＣカード装置から受信したレスポンスＡＰＤＵを処理することを特徴とする。
【０００８】
更に、第３の発明は、ＩＣカードに実装されるコンピュータプログラムであるＩＣカードプログラムを発行するＩＣカード発行方法であって、ＩＣカード発行方法は、
ステップ１）前記ＩＣカード発行装置用のスクリプト言語で記述された発行スクリプトを解釈するステップ、
ステップ２）前記ＩＣカードプログラムを実行するＩＣカード装置に、前記ステップ１）で解釈した処理を実行させるステップ、
を備え、ステップ１）およびステップ２）を繰り返し実行することで、前記ＩＣカードを発行することを特徴とする。
【０００９】
更に、第４の発明は、第３の発明に記載のＩＣカード発行方法であって、前記ＩＣカード発行方法に備えられた前記ステップ１）では、前記ＩＣカードプログラムのプログラムインターフェース仕様に基づき、前記ＩＣカード装置に実行させるコマンドＡＰＤＵを前記発行スクリプトから生成し、生成した前記コマンドＡＰＤＵを前記ＩＣカード装置に伝送する処理が実行され、前記ステップ２）では、前記ステップ１）で伝送した前記コマンドＡＰＤＵに対するレスポンスＡＰＤＵを前記ＩＣカード装置から受信し、前記レスポンスＡＰＤＵを判定する処理が実行されることを特徴とする。
【００１０】
更に、第５の発明は、第４の発明に記載のＩＣカード発行方法であって、前記ステップ２）では、前記レスポンスＡＰＤＵの判定結果に従って、前記ＩＣカードの発行処理を分岐させることを特徴とする。
【００１１】
更に、第６の発明は、第３の発明から第５の発明のいずれかに記載のＩＣカード発行方法に含まれる各ステップを実行させるためのコンピュータプログラムである。
【発明の効果】
【００１２】
上述した本発明によれば、前記スクリプト言語は１６進のキャラクターよりも遥かに扱いやすいため、発行スクリプトを記述するときにスクリプト言語を利用できることで、ＩＣカード製造会社が発行スクリプトを容易に作成することができばかりか、発行スクリプトの作成ミスも生じにくくなる。更に、前記レスポンスＡＰＤＵの判定結果に従って前記発行スクリプトの処理を分岐させることで、様々なケースに対応した発行を一つの発行スクリプトで実行できるようになる。
【発明を実施するための最良の形態】
【００１３】
ここから本発明に係るＩＣカード発行装置１について、図を参照しながら詳細に説明する。図１は、ＩＣカード発行装置の利用形態を説明する図で、ＩＣカード発行装置１には、リーダライタ３を介してＩＣカード２が接続されている。
【００１４】
ＩＣカード発行装置１は、ＩＣカード２を発行するための発行スクリプトをファイル形式で記憶している。一般的にＩＣカード用の発行スクリプトは、ＩＣカード２のプログラムインターフェースの内容に従い１６進数で記述されるが、本発明の発行スクリプトはスクリプト言語で記述されている。
【００１５】
ＩＣカード２を発行するとき、ＩＣカード発行装置１は、指定された発行スクリプトに含まれるステートメントを逐次解釈し、解釈した処理をＩＣカード２に実行させることで、ＩＣカード２を発行する。詳しくは、ＩＣカード発行装置１は、スクリプト言語で記述された発行スクリプトから、ＩＣカードのプログラムインターフェースに従い、１６進数のキャラクターで記述されたコマンドＡＰＤＵ（ＡＰＤＵ：Ａｐｐｌｉｃａｉｔｏｎ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を生成し、生成したコマンドＡＰＤＵを用いてＩＣカード２を発行する。
【００１６】
スクリプト言語は１６進数のキャラクターよりも遥かに扱いやすいため、発行スクリプトを記述するときにスクリプト言語を利用できることで、ＩＣカード製造会社が発行スクリプトを容易に作成することができばかりか、発行スクリプトの作成ミスも生じにくくなる。
【００１７】
図２は、図１で図示したＩＣカード発行装置１のブロック図である。図２に示したように、ＩＣカード発行装置１は、ＩＣカード２用の発行スクリプト１５を記憶するためのデータ記憶手段１４と、発行スクリプト１５を解釈実行するＩＣカード発行モジュール１０と、ＩＣカード２のプログラムインターフェース仕様に従い、発行スクリプト１５に含まれるステートメントを解釈し、ＩＣカード２が実行可能なコマンドＡＰＤＵにコンパイルするコンパイルモジュール１１と、ＩＣカード２とデータ通信するための伝送制御モジュール１２と、ＩＣカード２と通信するためのリーダライタ１３を備える。
【００１８】
図３は、ＩＣカード発行装置１に記憶される発行スクリプト１５を説明する図である。図３に示したように発行スクリプトには複数のステートメント１５０が記述されている。
【００１９】
図４は、ステートメント１５０の構造を説明する図である。一つのステートメント１５０は、スクリプトの内容を示すスクリプトＩＤ１５１に加え、少なくとも１つの宣言ブロック１５２が記述され、複数の宣言ブロック１５２は｛｝で括られている。ステートメント１５０に含まれる一つの宣言ブロック１５２は、宣言ブロック１５２の属性とその値を有し、宣言ブロック１５２の属性とその値は「：」で区切られる。
【００２０】
図３において、Ｐｒｏｔｏｃｏｌ｛｝は伝送制御プロトコルを示すステートメント１５０で、ＩＣカード２とデータ通信するときの伝送制御プロトコル１５０を示す宣言ブロック１５２が含まれる。
【００２１】
図３のＡＴＲ｛｝はＩＣカードを活性化することを示すステートメント１５０で、ＡＴＲの期待値は、属性が「Ｅｘｐｅｃｔａｉｏｎ」である宣言ブロックの値として記述される。
【００２２】
図３のＣ−ＡＰＤＵ｛｝は、ＩＣカード２に伝送するコマンドＡＰＤＵを示すステートメント１５０で、コマンドＡＰＤＵに変換するために必要な少なくとも一つの宣言ブロック１５２が記述される。属性が「Ｃｈａｎｎｅｌ」である宣言ブロック１５２の値ではコマンドが実行される論理チャネルの番号が宣言され、属性が「Ｎａｍｅ」である宣言ブロック１５２の値ではコマンド名が宣言され、例えば、その値が「Select」ならば、非特許文献１のＳｌｅｃｔコマンドを示す。また、属性が「Ｐａｒａｍｅｔｅｒ」の宣言ブロック１５２ではコマンド実行時の様々なパラメータが記述される。
【００２３】
図３のＲ−ＡＰＤＵ｛｝は、ＩＣカード２から受信したレスポンスＡＰＤＵの処理を示すステートメント１５０である。Ｃ−ＡＰＤＵ｛｝と同じく、Ｒ−ＡＰＤＵ｛｝には複数の宣言ブロック１５２が記述され、属性が「Ｃｏｍｐａｒｅ」である宣言ブロック１５２はレスポンスＡＰＤＵと期待値とのコンペア実行の有無が宣言される。また、レスポンスＡＰＤＵの期待値は、属性が「ＳＷ」の宣言ブロック１５２および属性が「Ｅｘｐｅｃｔａｔｉｎ属性」の宣言ブロック１５２の値として記述される。
【００２４】
また、ＩＦ｛｝は、Ｒ−ＡＰＤＵ｛｝の処理結果に基づき条件分岐を示すステートメント１５０である。ＩＦ｛｝は直前のＲ―ＡＰＤＵ｛｝に対して有効であり、ＩＦ｛｝のステートメントに記述され、属性が「Ｆｌａｇ」である宣言ブロック１５２は分岐の条件を示す。図３においては、直前のレスポンスＡＰＤＵのコンペア結果が「Ｆａｌｓｅ」（一致しない）の場合は、＃Ｓｅｓｓｉｏｎ１の行にジャンプする。
【００２５】
ＩＣカード発行装置１に備えられたコンパイルモジュール１１は、プログラムインターフェース（コマンドＡＰＤＵおよびレスポンスＡＰＤＵ）の仕様を記憶し、Ｃ−ＡＰＤＵ｛｝のステートメント１５０をこの定義内容に従ってコマンドＡＰＤＵにコンパイルする。
【００２６】
図５は、プログラムインターフェースで定義されているコマンドＡＰＤＵの一例で、図５はＳｅｌｅｃｔコマンドのコマンドＡＰＤＵを示している。
【００２７】
図５に示したように、ＳｅｌｅｃｔコマンドのコマンドＡＰＤＵは、非特許文献１で定義されているケース３のコマンド構造に準拠し、ＣＬＡ、ＩＮＳ、Ｐ１、Ｐ２、ＬｃおよびＤａｔａから構成されている。ＩＮＳはコマンドを識別するためのデータで、Ｓｅｌｅｃｔコマンドでは「Ａ４ｈ」（ｈは１６進表記）である。また、Ｐ１、Ｐ２はコマンド実行時のパラメータを示し、Ｌｃはデータ長を示し、Ｄａｔａでは選択するファイルのファイル番号が示される。
【００２８】
コンパイルモジュールがＣ−ＡＰＤＵ｛｝をコマンドＡＰＤＵに変換するときは、属性が「Ｃｈａｎｎｅｌ」である宣言ブロック１５２の値がＣＬＡに変換され、ここでは「００ｈ」である。また、属性が「Ｎａｍｅ」の宣言ブロック１５２の値からコマンドＡＰＤＵのＩＮＳを抽出する。例えば、属性が「Ｎａｍｅ」の宣言ブロックの値が「Ｓｅｌｅｃｔ」である場合は、ＳｌｅｃｌｔコマンドのＩＮＳである「Ａ４ｈ」が抽出される。また、Ｃ−ＡＰＤＵ｛｝のパラメータを示す宣言ブロック１５２から、コマンドＡＰＤＵのパラメータ（Ｐ１，Ｐ２，Ｌｃ、Ｄａｔａ）が変換される。
【００２９】
ここから、ＩＣカード発行装置１の動作手順について説明する。図６は、ＩＣカード発行装置１の動作手順を示したフロー図である。ＩＣカード発行装置１がＩＣカードプログラムの発行を開始するとき、ＩＣカード発行モジュール１０は発行スクリプト１５の先頭から順にステートメント１５０を読出し、読み出したステートメント１５０に対応した処理を実行する。
【００３０】
この手順の最初のステップＳ１は、ＩＣカード２とのデータ通信で利用する伝送制御プロトコルを設定するステップである。このステップでは、ＩＣカード２の発行を開始すると、ＩＣカード発行装置１のＩＣカード発行モジュール１０は、発行スクリプト１５からＰｒｏｔｏｃｏｌ｛｝のステートメント１５０を読出し、Ｐｒｏｔｏｃｏｌ｛｝で示される伝送制御プロトコルに設定する。
【００３１】
次のステップＳ２は、ＩＣカード２を活性化するステップである。このステップでは、データスクリプト１５からＡＴＲ｛｝のステートメント１５０を読出し、ステップＳ１で設定した伝送制御プロトコルに準拠した手順で、ＩＣカード２を活性化し、例えば、ＩＣカード２から受信したＡＴＲの返信と期待値とを比較する。
【００３２】
次のステップＳ３は、ＩＣカード２に送信するコマンドＡＰＤＵを生成し、ＩＣカード２に送信するステップである。このステップでは、ＩＣカード発行モジュール１０は、発行スクリプト１５からＣ−ＡＰＵＤ｛｝のステートメント１５０を読出し、読み出したＣ−ＡＰＵＤ｛｝をコンパイラモジュール１１に処理させる。コンパイラモジュール１１は、プログラムインターフェースの定義内容を参照して、Ｃ−ＡＰＤＵ｛｝に含まれる宣言ブロック１５２からコマンドＡＰＤＵを作成する。
【００３３】
次のステップＳ４は、ステップＳ３で生成したコマンドＡＰＤＵをＩＣカード２に送信するステップである。このステップでは、ＩＣカード発行モジュール１０は、コマンドＡＰＤＵを伝送制御モジュール１２に送り、伝送制御モジュール１２はコマンドＡＰＤＵにＴＰＤＵ（Transmission Protocol Data Unit）を付加し、通信インターフェース１３を介してＩＣカード２にコマンドＡＰＤＵを送信し、送信したコマンドＡＰＤＵはＩＣカード２で処理される。
【００３４】
次のステップＳ５は、ＩＣカード２からレスポンスＡＰＤＵを受信し、受信したレスポンスＡＤＰＵを処理するステップである。このステップでは、ＩＣカード発行モジュール１０は、レスポンスＡＰＤＵを受信すると、発行スクリプト１５からＲ−ＡＰＤＵ｛｝を読み取り、レスポンスＡＰＤＵに含まれるＳＷの期待値や、データがある場合はデータの期待値をコンペアなどして、読取ったＲ−ＡＰＤＵ｛｝を処理する。
【００３５】
次のステップＳ６は、次のステートメント１５０を読取るステップである。このステップで、ＩＣカード発行モジュール１０は、レスポンスＡＰＤＵの次のステートメント１５０を読み取り、読取ったステートメント１５０がＩＦ｛｝属性のステートメント１５０ならばステップＳ７に進み、Ｃ−ＡＰＤＵ｛｝属性のステートメント１５０ならばステップＳ３に戻り、Ｅｎｄ属性のステートメント１５０ならばこの手順を終了する。
【００３６】
ステップＳ７ではＩＦ｛｝に含まれる宣言ブロック１５２に対応した処理を実行する。例えば、条件付きのジャンプした後、ステップＳ６に戻る。
【図面の簡単な説明】
【００３７】
【図１】ＩＣカード発行装置の利用形態を説明する図。
【図２】ＩＣカード発行装置のブロック図。
【図３】発行スクリプトを説明する図。
【図４】ステートメントの構造を説明する図。
【図５】コマンドＡＰＤＵの一例を示した図。
【図６】ＩＣカード発行装置の動作手順を示したフロー図。
【符号の説明】
【００３８】
１  ＩＣカード発行装置
１０  ＩＣカード発行モジュール
１１  コンパイルモジュール
１２  伝送制御モジュール
１３  通信インターフェース回路
１４  データ記憶手段
１５  発行スクリプト
１５０  ステートメント
１５１  スクリプトＩＤ
１５２  宣言ブロック
２  ＩＣカード
【図１】
2007317093.tif 000003
【図２】
2007317093.tif 000004
【図３】
2007317093.tif 000005
【図４】
2007317093.tif 000006
【図５】
2007317093.tif 000007
【図６】
2007317093.tif 000008