(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024139134
(43)【公開日】2024-10-09
(54)【発明の名称】電子情報記憶媒体、ICチップ、発行データの書き込み方法、及びプログラム
(51)【国際特許分類】
G06F 8/654 20180101AFI20241002BHJP
【FI】
G06F8/654
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023049943
(22)【出願日】2023-03-27
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】工藤 隆史
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA16
5B376CA43
5B376CA51
5B376CA88
(57)【要約】
【課題】アプリケーションが複数のバージョンに対応可能とし、当該アプリケーションの搭載に要するメモリ容量を低減することが可能な電子情報記憶媒体、ICチップ、発行データの書き込み方法、及びプログラムを提供する。
【解決手段】ICチップ1は、外部装置2から発行データ及び当該発行データの識別子を含むインストールコマンドを受信すると、当該インストールコマンドに含まれる識別子と発行データ識別子リストとに基づいて、当該インストールコマンドに含まれる発行データに対応するバージョンを特定し、当該特定されたバージョンと対応バージョンフラグとに基づいて、当該インストールコマンド発行データの書き込み処理を実行する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体であって、
前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、
外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、
前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、
前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
前記処理手段は、前記特定手段により特定されたバージョンと前記設定情報において有効化されたバージョンとが一致する場合、前記発行データの書き込み処理を実行することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記処理手段は、前記特定手段により特定されたバージョンと前記設定情報において有効化されたバージョンとが一致しない場合、エラー処理を実行することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項4】
前記処理手段は、前記設定情報において有効化されたバージョンがない場合、前記特定手段により特定されたバージョンを前記設定情報において有効化し、前記発行データの書き込み処理を実行することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項5】
前記受信手段は、前記コマンドを受信する前に、前記外部装置から前記バージョンを示すパラメータを含むインストールコマンドを受信し、
前記処理手段は、前記パラメータに示されるバージョンを前記設定情報において有効化することを特徴とする請求項1乃至3の何れか一項に記載の電子情報記憶媒体。
【請求項6】
前記処理手段は、前記パラメータのフォーマットが不正である場合、エラー処理を実行することを特徴とする請求項5に記載の電子情報記憶媒体。
【請求項7】
複数のバージョンに対応可能なアプリケーションが搭載されるICチップであって、
前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、
外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、
前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、
前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段と、
を備えることを特徴とするICチップ。
【請求項8】
複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体により実行される発行データの書き込み方法であって、
前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを前記電子情報記憶媒体に記憶するステップと、
外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信するステップと、
前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定するステップと、
前記特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行するステップと、
を含むこと特徴とする発行データの書き込み方法。
【請求項9】
複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体に含まれるコンピュータを、
前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、
外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、
前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、
前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションが搭載されるICカード等の技術分野に関する。
【背景技術】
【0002】
近年、複数のアプリケーションを搭載可能なICカードが知られている。例えば、特許文献1には、ICカードの発行元等のサーバで、ICカードに搭載可能な各種アプリケーションやその発行情報を一括管理することで、当該ICカードへのアプリケーションの追加を実現するシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、例えば決済用ICカードを処理する決済システムにおいて、システムごとに準拠する仕様バージョンが異なることがあり、決済用ICカードはそのシステムに対応した仕様に従って動作しなければならない。複数のバージョンに対応するICカードを作成する際、バージョンごとに個々のアプリケーションを作成しICカードに搭載する方法があるが、バージョン間の差異が僅かな場合は処理が重複することが多い。それぞれのバージョンに対応するアプリケーションをICカードに搭載すると、重複する処理だけICカード内のメモリを圧迫してしまうという問題がある。
【0005】
そこで、本発明は、このような点等に鑑みてなされたものであり、アプリケーションが複数のバージョンに対応可能とし、当該アプリケーションの搭載に要するメモリ容量を低減することが可能な電子情報記憶媒体、ICチップ、発行データの書き込み方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体であって、前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記処理手段は、前記特定手段により特定されたバージョンと前記設定情報において有効化されたバージョンとが一致する場合、前記発行データの書き込み処理を実行することを特徴とする。
【0008】
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記処理手段は、前記特定手段により特定されたバージョンと前記設定情報において有効化されたバージョンとが一致しない場合、エラー処理を実行することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記処理手段は、前記設定情報において有効化されたバージョンがない場合、前記特定手段により特定されたバージョンを前記設定情報において有効化し、前記発行データの書き込み処理を実行することを特徴とする。
【0010】
請求項5に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体において、前記受信手段は、前記コマンドを受信する前に、前記外部装置から前記バージョンを示すパラメータを含むインストールコマンドを受信し、前記処理手段は、前記パラメータに示されるバージョンを前記設定情報において有効化することを特徴とする。
【0011】
請求項6に記載の発明は、請求項5に記載の電子情報記憶媒体において、前記処理手段は、前記パラメータのフォーマットが不正である場合、エラー処理を実行することを特徴とする。
【0012】
請求項7に記載の発明は、複数のバージョンに対応可能なアプリケーションが搭載されるICチップであって、前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段と、を備えることを特徴とする。
【0013】
請求項8に記載の発明は、複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体により実行される発行データの書き込み方法であって、前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを前記電子情報記憶媒体に記憶するステップと、外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信するステップと、前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定するステップと、前記特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行するステップと、を含むこと特徴とする。
【0014】
請求項9に記載の発明は、複数のバージョンに対応可能なアプリケーションが搭載される電子情報記憶媒体に含まれるコンピュータを、前記バージョンと前記アプリケーションの実行に必要な発行データの識別子とを前記バージョンごとに対応付ける対応付け情報と、前記アプリケーションが対応可能なバージョンを有効化するための設定情報とを記憶する記憶手段と、外部装置から前記発行データ及び当該発行データの識別子を含むコマンドを受信する受信手段と、前記コマンドに含まれる前記識別子と前記対応付け情報とに基づいて、前記コマンドに含まれる前記発行データに対応する前記バージョンを特定する特定手段と、前記特定手段により特定されたバージョンと前記設定情報とに基づいて、前記コマンドに含まれる前記発行データの書き込み処理を実行する処理手段として機能させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、アプリケーションが複数のバージョンに対応可能とし、当該アプリケーションの搭載に要するメモリ容量を低減することができる。
【図面の簡単な説明】
【0016】
【
図1】ICチップ1のハードウェア構成例を示す図である。
【
図2】ICチップ1のソフトウェア構成例を示す図である。
【
図3】発行データ識別子リストの一例を示す図である。
【
図4】対応バージョンフラグの一例を示す図である。
【
図5】CPU15により実行されるインストール処理の一例を示すフローチャートである。
【
図6】CPU15により実行される発行処理の一例を示すフローチャートである。
【
図7】CPU15により実行される運用処理の一例を示すフローチャートである。
【0017】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施形態は、複数のバージョンに対応可能なアプリケーションが搭載されるICチップに対して本発明を適用した場合の実施の形態である。
【0018】
[1.ICチップ1の構成及び機能]
先ず、
図1を参照して、本実施形態に係るICチップ1の構成及び機能について説明する。ICチップ1は、本発明の電子情報記憶媒体の一例である。ICチップ1は、例えば、クレジットカード、キャッシュカード、またはマイナンバーカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、ICチップ1は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
【0019】
図1は、ICチップ1のハードウェア構成例を示す図である。ICチップ1は、
図1に示すように、I/O回路11、RAM(Random Access Memory)12、NVM(Nonvolatile Memory)13、ROM(Read Only Memory)14、CPU(Central Processing Unit)15(コンピュータの一例)、及び暗号演算等を行うコプロセッサ16等を備える。I/O回路11は、外部装置2との間のインターフェースを担う。なお、ICチップ1と外部装置2との間の通信は、非接触通信であってもよいし、接触通信であってもよい。非接触通信の場合、例えばICカードまたはモバイルデバイスに搭載されたアンテナ(図示せず)を介してICチップ1と外部装置2との通信が行われる。なお、外部装置2の例として、工場におけるICチップ発行装置(発行端末)や、店舗における取引装置(取引端末)などが挙げられる。
【0020】
NVM13(記憶手段の一例)は、フラッシュメモリ、または、Electrically Erasable Programmable Read-Only Memoryなどの不揮発性メモリである。NVM13またはROM14には、オペレーティングシステム(以下、「OS」という)、プラットフォーム、及び複数のバージョンに対応可能なアプリケーション等のプログラム(本発明のプログラムを含む)、及びデータが記憶される。これらのプログラムは、CPU15により実行されることでICチップ1に搭載されるソフトウェア(ソフトウェアモジュール)として機能し、本発明における受信手段、特定手段、及び処理手段等として機能する。
図2は、ICチップ1のソフトウェア構成例を示す図である。プラットフォームは、アプリケーションを管理し、例えばGlobal Platform(登録商標)に基づいて構成され、OS上で動作する。プラットフォームには、例えば、ISD(Issuer Security Domain)及びAPI(Application Program Interface)などが含まれる。
【0021】
ISDは、インストール処理を実行する管理アプリケーションである。ここで、インストール処理とは、外部装置2からのインストールコマンドに応じて、NVM13に記録されているロードファイル(アプリケーションプログラム)を、複数のバージョンに対応可能なアプリケーションとして実行可能な状態にインスタンス化(活性化)する処理をいう。かかるアプリケーションの実行は、インスタンス化されたプログラムコードを実行する処理ということができる。アプリケーションは、APIを使用して種々の処理を実行することができる。なお、アプリケーションの一例として、取引用アプリケーションが挙げられる。
【0022】
また、アプリケーションは、外部装置2からの発行コマンド(例えば、STORE DATAコマンド)に応じて、当該アプリケーションの実行に必要な種々の発行データ等をNVM13に格納する発行処理(書き込み処理を含む)を実行する。かかる発行処理により、NVM13には、アプリケーションに対応したDF(Dedicated File)と、発行データ及び内部制御用のデータを記憶するEF(Elementary File)とが構築(確保)される。発行データは、1つのデータ単位としてみなされるデータ要素である。発行データの例として、アプリケーションの動作を決定するような設定データ、及びデータの暗号演算や復号演算に必要な鍵データなどが挙げられる。
【0023】
発行データは、異なる複数のバージョン間で基本的には共通するが、バージョンごとに異なる場合もある。例えば、バージョンV1.0に対応するアプリケーションではRSA(Rivest-Shamir-Adleman)暗号演算方式が利用されるため、RSA用の鍵データが発行データとして格納される。一方、バージョンV1.1に対応するアプリケーションではECC(Elliptic Curve Cryptography)暗号演算方式が利用されるため、ECC用の鍵データが発行データとして格納される。本実施形態に係るアプリケーションがバージョンV1.0に対応する場合、バージョンV1.0に対応する鍵データが格納されることになる。
【0024】
また、NVM13には、発行データ識別子リスト(対応付け情報の一例)が予め記憶される。発行データ識別子リストは、バージョン(バージョン番号)と発行データの識別子とをバージョンごとに対応付けるバージョン識別用リストである。
図3は、発行データ識別子リストの一例を示す図である。
図3の例では、バージョンV1.0に対応する発行データの識別子として、“A001(h)”,“A002(h)”,“B001(h)”が示されており、バージョンV1.1に対応する発行データの識別子として、“A003(h)”,“B002(h)”,“3F01(h)”が示されている。これらの識別子は、例えば、DGIやTLV(Tag Length Value)のタグで表される。なお、
図3の例では、1つのアプリケーションに2つのバージョンがある場合の例であるが、1つのアプリケーションに3つ以上のバージョンがあってもよい。この場合、発行データ識別子リストにおいて、3つ以上のバージョンそれぞれに対して発行データの識別子が対応付けられる。
【0025】
さらに、NVM13には、アプリケーションが対応可能なバージョンを有効化するための対応バージョンフラグ(設定情報の一例)が記憶される。
図4は、対応バージョンフラグの一例を示す図である。
図4(A)の例では、対応バージョンフラグは8ビットからなり、“10000000”はバージョンV1.0が有効化(設定)されていることを示す。一方、
図4(B)の例では、対応バージョンフラグは8ビットからなり、“01000000”はバージョンV1.1が有効化されていることを示す。つまり、8ビットのうち“1”が立つビット(例えば、
図4の例では、b8またはb7)の位置によってバージョンが特定される。なお、対応バージョンフラグが“00000000”のみである場合、双方のバージョンが未設定であることを示す。すなわち、
図4の例では、対応バージョンフラグは、“00000000”、“10000000”、及び“01000000”のうち何れか1つが設定される。
【0026】
ISDは、外部装置2からバージョンを示すパラメータを含むインストールコマンドを、OSを介して受信すると、上述したインストール処理中に、当該パラメータに示されるバージョンを対応バージョンフラグにおいて有効化する。なお、当該パラメータのフォーマットが不正である場合、エラー処理が行われる。そして、アプリケーションは、インストール処理後に、外部装置2から発行データ及び当該発行データの識別子を含む発行コマンドを、OSを介して受信すると、当該発行コマンドに含まれる識別子と、発行データ識別子リストとに基づいて、当該発行コマンドに含まれる発行データに対応するバージョンを特定し、特定されたバージョンと対応バージョンフラグとに基づいて、当該発行コマンドに含まれる発行データの書き込み(つまり、NVM13のEFに発行データを格納する)処理を実行する。
【0027】
ここで、アプリケーションは、上記特定されたバージョンと対応バージョンフラグにおいて有効化されたバージョンとが一致する場合、当該発行データの書き込み処理を実行する。一方、アプリケーションは、上記特定されたバージョンと対応バージョンフラグにおいて有効化されたバージョンとが一致しない場合、エラー処理を実行する。一方、アプリケーションは、対応バージョンフラグにおいて有効化されたバージョンがない場合(例えば、対応バージョンフラグが“00000000”である場合)、上記特定されたバージョンを、対応バージョンフラグにおいて有効化し、当該発行データの書き込み処理を実行する。
【0028】
なお、上述したインストールコマンド及び発行コマンドは、例えば、ISO/IEC 7816-4に規定されたコマンドAPDU(Application Protocol Data Unit)である。コマンドAPDUは、ヘッダ部及びボディ部を含む。ヘッダ部は、CLA(命令クラス)、INS(命令コード)、P1及びP2から構成される。ボディ部は、例えば、Lc、Data、及びLeから構成される。LcはDataの長さ(データ長)を示し、LeはレスポンスAPDU内のDATAに期待される最大長を示す。Dataには、発行データなどが含まれる。
【0029】
[2.ICチップ1の動作]
次に、ICチップ1の動作について説明する。
【0030】
(2.1 インストールコマンド受信時の処理)
先ず、
図5を参照して、ICチップ1がインストールコマンドを受信した時に実行されるインストール処理について説明する。
図5は、CPU15により実行されるインストール処理の一例を示すフローチャートである。例えばICチップ1が発行される工場において、ICチップ1が外部装置2であるICチップ発行装置からインストールコマンドを受信すると、
図5に示す処理が開始される。なお、インストールコマンドが受信される前に、ICチップ発行装置からのSELECTコマンドによりICチップ1においてISDが選択されているものとする。また、
図5に示すインストール処理において、上述したように、ロードファイルをアプリケーションとして実行可能な状態にインスタンス化する処理等が行われるが、それらの説明を省略する。
【0031】
図5に示す処理が開始されると、CPU15(ISD)は、インストールコマンドのボディ部からDataを取得する(ステップS1)。次いで、CPU15は、ステップS1で取得されたDataに所定長(例えば、8ビット)のパラメータが存在するか否かを判定する(ステップS2)。パラメータが存在しないと判定された場合(ステップS2:NO)、処理はステップS3へ進む。一方、パラメータが存在すると判定された場合(ステップS2:YES)、処理はステップS4へ進む。
【0032】
ステップS3では、CPU15は、未設定を示すビット列(例えば、“00000000”)を対応バージョンフラグに保存し、処理をステップS7へ進める。一方、ステップS4では、CPU15は、パラメータのフォーマットが不正であるか否かを判定する。例えば、8ビットのうちの複数のビット(例えば、b8とb7)に“1”が立つ場合や、8ビットのうちのバージョンを示されないビット(例えば、b1)に“1”が立つ場合には、パラメータのフォーマットが不正であると判定される。
【0033】
パラメータのフォーマットが不正であると判定された場合(ステップS4:YES)、エラー処理が実行される(ステップS5)。かかるエラー処理では、例えば、エラーを示すレスポンスが外部装置2へ返信される。一方、パラメータのフォーマットが不正でない(つまり、パラメータが適正にバージョンを示す)と判定された場合(ステップS4:NO)、バージョンを示すパラメータ(例えば、“10000000”)が対応バージョンフラグに保存される(ステップS6)ことで当該バージョンが有効化され、処理はステップS7へ進む。ステップS7では、CPU15は、インストール処理の正常終了を示すレスポンスを外部装置2へ返信し、処理を終了する。
【0034】
(2.2 発行コマンド受信時の処理)
次に、
図6を参照して、ICチップ1が発行コマンドを受信した時に実行される発行処理について説明する。
図6は、CPU15により実行される発行処理の一例を示すフローチャートである。例えばICチップ1が発行される工場において、インストール処理後に、ICチップ1が外部装置2であるICチップ発行装置から発行コマンドを受信すると、
図6に示す処理が開始される。なお、
図6に示す発行処理は、アプリケーションの実行に必要な全て発行データの書き込みが完了するまで繰り返し実行される。また、発行コマンドが受信される前に、ICチップ発行装置からのSELECTコマンドによりICチップ1において所定のアプリケーションが選択されているものとする。
【0035】
図6に示す処理が開始されると、CPU15(所定のアプリケーション)は、発行コマンドのボディ部から発行データ及び発行データの識別子(例えば、DGIやタグで表される)を取得する(ステップS11)。次いで、CPU15は、ステップS11で取得された識別子が、発行データ識別子リスト中の識別子と一致するか否かを判定する(ステップS12)。識別子が一致しない(例えば、発行データがバージョン間で共通する)と判定された場合(ステップS12:NO)、当該発行データの書き込み処理が実行され(ステップS13)、処理はステップS20へ進む。一方、識別子が一致すると判定された場合(ステップS12:YES)、処理はステップS14へ進む。
【0036】
ステップS14では、CPU15は、発行コマンドに含まれる識別子と、発行データ識別子リストとに基づいて、当該発行コマンドに含まれる発行データに対応するバージョンを特定する。例えば、発行コマンドに含まれる識別子が“A001(h)”である場合、
図3に示す発行データ識別子リストからバージョンV1.0が特定される。一方、発行コマンドに含まれる識別子が“A003(h)”である場合、
図3に示す発行データ識別子リストからバージョンV1.1が特定される。
【0037】
次いで、CPU15は、対応バージョンフラグが未設定を示すか否かを判定する(ステップS15)。対応バージョンフラグにおいて有効化されたバージョンがない場合、対応バージョンフラグが未設定を示すと判定され(ステップS15:YES)、ステップS16へ進む。ステップS16では、CPU15は、ステップS14で特定されたバージョンを、対応バージョンフラグにおいて有効化し(例えば、“00000000”を“10000000”に設定し)、処理をステップS19へ進める。
【0038】
一方、対応バージョンフラグが未設定を示さないと判定された場合(ステップS15:NO)、処理はステップS17へ進む。ステップS17では、CPU15は、ステップS14で特定されたバージョン(つまり、受信された発行データに対応するバージョン)と、対応バージョンフラグにおいて有効化されているバージョンとが一致するか否かを判定する。例えば、バージョンV1.0が特定され、対応バージョンフラグにおいてバージョンV1.1が有効化(“01000000”)されている場合、双方のバージョンが一致しないと判定され(ステップS17:NO)、上記ステップS5と同様、エラー処理が実行される(ステップS18)。これにより、ICチップ発行装置側の設定エラーを発見することができる。一方、バージョンV1.0が特定され、対応バージョンフラグにおいてバージョンV1.0が有効化(“10000000”)されている場合、双方のバージョンが一致すると判定され(ステップS17:YES)、処理はステップS19へ進む。
【0039】
ステップS19では、CPU15は、当該発行コマンドに含まれる発行データの書き込み処理を実行し、処理をステップS20へ進める。書き込み処理により、発行コマンドに含まれる発行データがNVM13のEFに格納される。ステップS20では、CPU15は、書き込み処理の正常終了を示すレスポンスを外部装置2へ返信し、処理を終了する。
【0040】
(2.3 運用コマンド受信時の処理)
次に、
図7を参照して、ICチップ1が運用コマンドを受信した時に実行される運用処理について説明する。
図7は、CPU15により実行される運用処理の一例を示すフローチャートである。例えばICチップ1の出荷後の店舗において、ICチップ1が外部装置2である取引装置から運用コマンドを受信すると、
図7に示す処理が開始される。運用コマンドは、ICチップ1を用いて決済等の取引が行われる場合に、取引装置からICチップ1へ送信される各種コマンドである。運用コマンドの例として、GPO(Get Processing Options)コマンド、VERIFYコマンド、及びGENERATE ACコマンドなどが挙げられる。なお、運用コマンドが受信される前に、取引装置からのSELECTコマンドによりICチップ1において、バージョンV1.0及びV1.1に対応する取引用アプリケーションが選択されているものとする。
【0041】
図6に示す処理が開始されると、CPU15(取引用アプリケーション)は、対応バージョンフラグをチェックし、バージョンを判別する(ステップS31)。例えば、対応バージョンフラグにおいてバージョンV1.0が有効化されている場合には、バージョンV1.0であると判別される。一方、対応バージョンフラグにおいてバージョンV1.1が有効化されている場合には、バージョンV1.1であると判別される。次いで、CPU15は、ステップS31でバージョンV1.0であると判別した場合(ステップS31:V1.0)、バージョンV1.0に対応する運用コマンドに応じた処理(コマンド処理)を実行し(ステップS32)、ステップS34へ進む。一方、CPU15は、ステップS31でバージョンV1.1であると判別した場合(ステップS31:V1.1)、バージョンV1.1に対応する運用コマンドに応じた処理を実行し(ステップS33)、ステップS34へ進む。ステップS34では、CPU15は、コマンド処理の正常終了を示すレスポンスを外部装置2へ返信し、処理を終了する。
【0042】
以上説明したように、上記実施形態によれば、ICチップ1は、外部装置2から発行データ及び当該発行データの識別子を含むインストールコマンドを受信すると、当該インストールコマンドに含まれる識別子と発行データ識別子リストとに基づいて、当該インストールコマンドに含まれる発行データに対応するバージョンを特定し、当該特定されたバージョンと対応バージョンフラグとに基づいて、当該インストールコマンド発行データの書き込み処理を実行するように構成したので、アプリケーションが複数のバージョンに対応可能とし、当該アプリケーションの搭載に要するメモリ容量を低減することができる。また、対象バージョンのみ動作するICチップ1を発行することができる。
【符号の説明】
【0043】
1 ICチップ
2 外部装置
11 I/O回路
12 RAM
13 NVM
14 ROM
15 CPU
16 コプロセッサ