(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】電子情報記憶媒体、ICチップ、ICカード、要素データ格納方法、及びプログラム
(51)【国際特許分類】
G06K 19/077 20060101AFI20240925BHJP
G06F 13/12 20060101ALI20240925BHJP
【FI】
G06K19/077 132
G06F13/12 340D
(21)【出願番号】P 2023213840
(22)【出願日】2023-12-19
【審査請求日】2024-01-31
【早期審査対象出願】
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】梶原 直也
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2004-046336(JP,A)
【文献】特開2004-287586(JP,A)
【文献】特開2003-108445(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/077
G06F 13/12
(57)【特許請求の範囲】
【請求項1】
アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体であって、
前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、
前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、
前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、
前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
前記メモリ領域は複数の配列により構成され、それぞれの前記配列は所定バイトのデータを格納可能な要素を複数含んでおり、
前記電子情報記憶媒体は、前記複数の必須要素データのそれぞれが格納されるべき前記配列の参照を記述する必須要素データ一覧を予め記憶しており、
前記格納手段は、前記外部装置から前記コマンドが受信される毎に、前記コマンドに含まれる要素データと当該要素データが格納済であることを示すフラグとを所定の前記配列の要素に格納し、
前記第2判定手段は、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記必須要素データ一覧に記述されたそれぞれの前記配列の参照に基づいて、それぞれの前記配列にアクセスし当該それぞれの前記配列の要素に前記フラグが格納されているかを確認することにより前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記電子情報記憶媒体は、前記複数の必須要素データのそれぞれが格納されるべきオブジェクトの参照を記述する必須要素データ一覧を予め記憶しており、
前記格納手段は、前記外部装置から前記コマンドが受信される毎に、前記コマンドに含まれる要素データを格納するオブジェクトを生成し、
前記第2判定手段は、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記必須要素データ一覧に記述されたそれぞれの前記オブジェクトの参照に基づいて、それぞれの前記オブジェクトにアクセスし当該それぞれの前記オブジェクトが生成されているかを確認することにより前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項4】
前記必須要素データには前記
アプリケーションにおけるオプション機能に必要な要素データが含まれ
ており、
前記アプリケーションがインストールされる際に当該アプリケーションにおけるオプション機能がオンに設定されている場合、前記第2判定手段は、前記オプション機能に必要な要素データを含む前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする請求項1乃至3の何れか一項に記載の電子情報記憶媒体。
【請求項5】
アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信するICチップであって、
前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、
前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、
前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、
前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、
を備えることを特徴とするICチップ。
【請求項6】
アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信するICカードであって、
前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、
前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、
前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、
前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、
を備えることを特徴とするICカード。
【請求項7】
アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体により実行される要素データ格納方法であって、
前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納するステップと、
前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定するステップと、
前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定するステップと、
前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するステップと、
を含むことを特徴とする要素データ格納方法。
【請求項8】
アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体に含まれるコンピュータに、
前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納するステップと、
前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定するステップと、
前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定するステップと、
前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IC(Integrated Circuit)チップ上でアプリケーションの要素データを書き込むための発行処理等の技術分野に関する。
【背景技術】
【0002】
従来から、ICチップ上で動作するアプリケーションのパーソナライズ工程において当該アプリケーションの要素データを書き込むための発行処理が行われている。例えば、特許文献1には、発行処理を簡単化することができるICカードの技術が開示されている。特許文献1の技術によれば、ICカードは、端末から発行コマンドを受信すると、設定が必要なデータの識別子がすべて設定済みであることを確認し、すべて設定済みだった場合、発行が完了したことを示す識別子と成功を示すステータスワードを端末に送信する。そして、端末は、発行が完了したことを示す識別子を受け取った場合、発行を完了するために、最終の発行コマンドであることを示す発行コマンドをICカードに送信するようになっている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ICチップ上で動作するアプリケーションには、パーソナライズ必須の必須要素データとパーソナライズ必須ではない任意要素データとがある。例えば、クレジット用アプリケーションの場合、決済で使用する基本的な要素データはパーソナライズ必須であり、任意選択される要素データはパーソナライズ必須ではない。パーソナライズ必須の必須要素データが書き込まれずにICチップが出荷された場合、アプリケーションが実際に使用される時点で未初期化状態の必須要素データへのアクセス処理が発生し、本来想定しない挙動を引き起こす恐れがある。こうした問題を防ぐためにパーソナライズ工程でパーソナライズ必須の必須要素データのパーソナライズ状況をチェックする必要があるが、この処理は煩雑でコードサイズの増大につながっていた。
【0005】
そこで、本発明は、このような点などに鑑みてなされたものであり、パーソナライズ必須の複数の必須要素データのパーソナライズ状況のチェックをより効率良く行うことを可能とする電子情報記憶媒体、ICチップ、ICカード、要素データ格納方法、及びプログラムを提供することを課題の一例とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体であって、前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記メモリ領域は複数の配列により構成され、それぞれの前記配列は所定バイトのデータを格納可能な要素を複数含んでおり、前記電子情報記憶媒体は、前記複数の必須要素データのそれぞれが格納されるべき前記配列の参照を記述する必須要素データ一覧を予め記憶しており、前記格納手段は、前記外部装置から前記コマンドが受信される毎に、前記コマンドに含まれる要素データと当該要素データが格納済であることを示すフラグとを所定の前記配列の要素に格納し、前記第2判定手段は、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記必須要素データ一覧に記述されたそれぞれの前記配列の参照に基づいて、それぞれの前記配列にアクセスし当該それぞれの前記配列の要素に前記フラグが格納されているかを確認することにより前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする。
【0008】
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記電子情報記憶媒体は、前記複数の必須要素データのそれぞれが格納されるべきオブジェクトの参照を記述する必須要素データ一覧を予め記憶しており、前記格納手段は、前記外部装置から前記コマンドが受信される毎に、前記コマンドに含まれる要素データを格納するオブジェクトを生成し、前記第2判定手段は、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記必須要素データ一覧に記述されたそれぞれの前記オブジェクトの参照に基づいて、それぞれの前記オブジェクトにアクセスし当該それぞれの前記オブジェクトが生成されているかを確認することにより前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体において、前記必須要素データには前記アプリケーションにおけるオプション機能に必要な要素データが含まれており、前記アプリケーションがインストールされる際に当該アプリケーションにおけるオプション機能がオンに設定されている場合、前記第2判定手段は、前記オプション機能に必要な要素データを含む前記複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定することを特徴とする。
【0010】
請求項5に記載の発明は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信するICチップであって、前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、を備えることを特徴とする。
【0011】
請求項6に記載の発明は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信するICカードであって、前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納する格納手段と、前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定する第1判定手段と、前記第1判定手段により前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定する第2判定手段と、前記第2判定手段により前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するエラー処理手段と、を備えることを特徴とする。
【0012】
請求項7に記載の発明は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体により実行される要素データ格納方法であって、前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納するステップと、前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定するステップと、前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定するステップと、前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するステップと、を含むことを特徴とする。
【0013】
請求項8に記載の発明は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置から複数回受信する電子情報記憶媒体に含まれるコンピュータに、前記外部装置から前記コマンドが受信される毎に当該コマンドに含まれる要素データを前記アプリケーションにより参照されるメモリ領域に格納するステップと、前記外部装置から受信された前記コマンドが最後のコマンドであるか否かを判定するステップと、前記コマンドが最後のコマンドであると判定された場合、前記アプリケーションが正常に動作するために必要な複数の必須要素データが前記メモリ領域に全て格納されたか否かを判定するステップと、前記必須要素データが前記メモリ領域に全て格納されていないと判定された場合、エラー処理を実行するステップと、を実行させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、パーソナライズ必須の複数の必須要素データのパーソナライズ状況のチェックをより効率良く行うことができる。
【図面の簡単な説明】
【0015】
【
図1】ICチップ1のハードウェア構成例を示す図である。
【
図2】要素データを格納するための配列の一例を示す図である。
【
図4】要素データAを発行するためのStore Dataコマンドのデータ構成例を示す図である。
【
図5】1つのDGIが複数の要素データと対応している場合のStore Dataコマンドのデータ構成例を示す図である。
【
図6】ICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0017】
[1.ICチップ1の構成及び機能]
先ず、
図1を参照して、本実施形態に係るICチップ1の構成及び機能について説明する。ICチップ1は、本発明の電子情報記憶媒体の一例である。ICチップ1は、例えば、クレジットカード、キャッシュカード、またはマイナンバーカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、ICチップ1は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
【0018】
図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の例として、工場における発行装置(発行端末)が挙げられる。
【0019】
NVM13には、例えばフラッシュメモリが適用される。なお、NVM13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。NVM13またはROM14には、OS(Operating System)、及び1または複数のアプリケーション(例えば、Java(登録商標) Cardアプリケーション)等の各種プログラム(本発明のプログラムを含む)等が記憶される。NVM13には、アプリケーションにより参照されるメモリ領域が設けられる。メモリ領域には、アプリケーションの複数の要素データが格納される。それぞれの要素データにはDGI(Data Grouping Identifier)が付与されている。また、複数の要素データには、パーソナライズ必須の(つまり、アプリケーションが正常に動作するために必要な)必須要素データとパーソナライズ必須ではない任意要素データとが含まれる。必須要素データの例として、ICチップ1の利用者の個人情報(例えば、会員番号)が挙げられる。また、ICチップ1がクレジットカードに利用される場合、必須要素データの例として、オフラインでの累計決済額の上限値、1回の決済での決済額の上限値などが挙げられる。
【0020】
例えば、メモリ領域は、複数の配列(バイト配列)により構成されるとよい。例えば、アプリケーションがインストールされる際に当該アプリケーションの要素データを格納するための配列がメモリ領域に創成される。換言すると、アプリケーションに要素データを書き込むための配列が創成される。配列は、後から外部装置2により送信される要素データの入れ物ということができる。配列のサイズは、例えば、要素データの長さ(データ長)によって決まるものであり、アプリケーションがインストールされる際に設定される。それぞれの配列は、所定バイト(例えば、1バイト)のデータを格納可能な要素(以下、「配列要素」という)を複数含んで構成される。それぞれの配列要素には、互いに異なるインデックスが割り当てられる。例えば、先頭の配列要素にはインデックス[0]が割り当てられ、次の配列要素にはインデックス[1]が割り当てられ、さらに次の配列要素にはインデックス[2]が割り当てられるというように、インデックスの値は1ずつインクリメントされる。
【0021】
1つの配列には、例えば、1つの要素データが格納されるものとし、当該要素データは、その長さに応じて上記所定バイトずつ分割されて複数の配列要素に格納されるとよい。さらに、1つの配列において何れか1の配列要素(例えば、先頭の配列要素)は、その配列に格納されるべき要素データが格納済であるか否かを示す発行状況フラグが格納されるために用いられる。例えば、発行状況フラグが“01(h:hexadecimal)”である場合、当該要素データが格納済であることを示し、発行状況フラグが“00(h)”である場合、当該要素データが格納済でないことを示す。発行状況フラグが“00(h)”である配列には要素データはまだ格納されておらず、当該要素データの長さに応じたデフォルト値が格納されている。
【0022】
図2は、要素データを格納するための配列の一例を示す図である。
図2(A)は、要素データAを格納するための配列Aを示しており、先頭の配列要素(インデックス[0])には発行状況フラグ“01(h)”が格納され、以降の配列要素(インデックス[1]~[10])に要素データA(112233445566778899AA(h))が格納されている。一方、
図2(B)は、要素データBを格納するための配列Bを示しており、先頭の配列要素(インデックス[0])には発行状況フラグ“00(h)”が格納されているので、以降の配列要素(インデックス[1]~[5])にはまだ要素データBが格納されておらず、デフォルト値(0000000000(h))が格納されている。一方、
図2(C)は、要素データCを格納するための配列Cを示しており、先頭の配列要素(インデックス[0])には発行状況フラグ“01(h)”が格納されており、以降の配列要素(インデックス[1]~[5])には要素データC(1000000000(h))が格納されている。
【0023】
さらに、NVM13には、複数の必須要素データのそれぞれが格納されるべき配列の参照を記述する必須要素データ一覧(例えばテーブルデータ)が予め記憶される。例えば、必須要素データ一覧は、アプリケーションがインストールされる際に記憶される。配列の参照は、例えば、メモリ領域における配列のアドレスを示す。
図3は、必須要素データ一覧の一例を示す図である。
図3に示す必須要素データ一覧において、1番目~3番目のテーブル要素(行)には、配列A~配列Cの参照が記述されている。つまり、この例では、
図2(A)~(C)に示す要素データA~Cが必須要素データということになる。
【0024】
なお、各要素データは、クラス(設計図)から生成(インスタンス化)されるオブジェクト(実体)に格納されてもよい。オブジェクトは、キーとバリューが対になった複数のプロパティから構成される。ここで、バリューには、上述の要素データが格納される。本実施形態で適用されるオブジェクトは、アプリケーションがインストールされる際に生成されるのではなく、外部装置2により要素データが送信されたときに生成される。この場合、ある要素データを格納するオブジェクトが生成済みかどうかをチェックすることで、その要素データが格納済(換言すると、発行済またはパーソナライズ済)であるか否かが判定可能になっている。この場合、NVM13には、複数の必須要素データのそれぞれが格納されるべきオブジェクトの参照を記述する必須要素データ一覧が予め記憶される。オブジェクトの参照は、例えば、メモリ領域におけるオブジェクトのアドレスを示す。なお、
図3に示す必須要素データ一覧に示される配列A~配列Cの参照は、そのままオブジェクトA~Cに置き換えることができる。
【0025】
CPU15(コンピュータの一例)は、NVM13に記憶された本発明のプログラムをを実行することで、本発明における格納手段、第1判定手段、第2判定手段、及びエラー処理手段等として機能する。CPU15は、アプリケーションをパーソナライズするための要素データを含むコマンドを外部装置2から複数回受信する。かかるコマンドには、例えば、ISO/IEC 7816に規定されたStore DataコマンドAPDU(Application Protocol Data Unit)を適用することができる。Store DataコマンドAPDU(以下、単に、「Store Dataコマンド」という)は、コマンドクラス(命令クラス)を示すCLA、コマンドコード(命令コード)を示すINS、コマンドパラメータ(命令パラメータ)を示すP1及びP2からなるヘッダ部と、要素データを含むボディ部とにより構成される。例えば、ボディ部には、要素データに付与されたDGI(例えば、2バイト)、要素データの長さ(例えば、1または3バイト)、及び要素データ本体が含まれる。なお、ヘッダ部のP1には、Store Dataコマンドが最後のStore Dataコマンド(以下、「Last Store Dataコマンド」という)であるか否かを示すbit(“1”または“0”)が含まれる。
【0026】
図4は、要素データAを発行するためのStore Dataコマンドのデータ構成例を示す図である。
図4に示すStore Dataコマンドのボティ部には、要素データAに付与されたDGI“1234(h)”、要素データAの長さ“0A(h)”、及び要素データAからなるDataがセットされている。CPU15は、受信されたStore Dataコマンドに含まれるDGIの値を解釈することにより、受信された要素データが何であるかを識別することができ、格納すべき配列を特定、または生成すべきオブジェクトを特定することができる。なお、1つのDGIが複数の要素データと対応している場合もある。
【0027】
図5は、1つのDGIが複数の要素データと対応している場合のStore Dataコマンドのデータ構成例を示す図である。例えば、EMV(登録商標)の標準発行仕様で定義されているDGI“8000(h)”は長さ16バイトの暗号鍵を3種類をまとめて送信するために使用される。
図5に示すStore Dataコマンドのボティ部には、要素データXに付与されたDGI“8000(h)”、要素データXの長さ“30(h)”、及び要素データX“111…”,“222…”,“333…”(3種類の暗号鍵)からなるDataがセットされている。CPU15は、受信されたStore Dataコマンドに含まれるDGI“8000(h)”を解釈することにより、受信された要素データXが16バイトの3種類の暗号鍵であることを識別することができる。
【0028】
CPU15は、Store Dataコマンドが受信される毎に当該コマンドに含まれる要素データをメモリ領域に格納する。例えば、CPU15は、Store Dataコマンドに含まれる要素データと当該要素データが格納済であることを示す発行状況フラグ“01(h)”とを、上述したように、メモリ領域の所定の配列の配列要素に格納する。或いは、CPU15は、Store Dataコマンドに含まれる要素データを格納するオブジェクトをメモリ領域に生成する。そして、CPU15は、外部装置2から受信されたStore DataコマンドがLast Store Dataコマンドであるか否かを判定(P1のbitから判定)し、Store DataコマンドがLast Store Dataコマンドであると判定した場合、パーソナライズ必須の複数の必須要素データがメモリ領域に全て格納されたか否かを判定する。
【0029】
例えば、CPU15は、NVM13に記憶されている必須要素データ一覧に記述されたそれぞれの配列の参照に基づいて、それぞれの配列にアクセスし当該それぞれの配列の配列要素に発行状況フラグ“01(h)”が格納されているかを確認することにより複数の必須要素データがメモリ領域に全て格納されたか否かを判定する。或いは、CPU15は、NVM13に記憶されている必須要素データ一覧に記述されたそれぞれのオブジェクトの参照に基づいて、それぞれのオブジェクトにアクセスし当該それぞれのオブジェクトが生成されているかを確認することにより複数の必須要素データがメモリ領域に全て格納されたか否かを判定する。そして、CPU15は、必須要素データがメモリ領域に全て格納されていないと判定した場合、エラー処理を実行する。例えば、エラー処理では、発行処理が中断され、エラーを示すステータスワードSWを含むレスポンスAPDUが外部装置2へ返信される。
【0030】
[2.ICチップ1の動作]
次に、
図6を参照して、本実施形態に係るICチップ1の動作について説明する。
図6は、ICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
図6に示す処理は、例えばICチップ1の製造工場におけるパーソナライズ工程においてICチップ1が外部装置2からStore Dataコマンドが受信した場合に開始される。
【0031】
図6に示す処理が開始されると、CPU15は、Store Dataコマンドにより受信された要素データをメモリ領域に格納する(ステップS1)。次いで、CPU15は、受信されたStore DataコマンドがLast Store Dataコマンドであるか否かを判定する(ステップS2)。Store DataコマンドがLast Store Dataコマンドでないと判定された場合(ステップS2:NO)、正常終了を示すステータスワードSWを含むレスポンスAPDUが外部装置2へ返信され(ステップS3)、次のStore Dataコマンドの待機状態になる。一方、Store DataコマンドがLast Store Dataコマンドであると判定された場合(ステップS2:YES)、処理はステップS4へ進む。
【0032】
ステップS4では、CPU15は、N=1をセットする。次いで、CPU15は、NVM13に記憶されている必須要素データ一覧のN番目のテーブル要素にアクセスし、必須要素データのパーソナライズ状態(例えば、発行状況フラグ、またはオブジェクトの生成有無)を取得する(ステップS5)。例えば、CPU15は、N番目のテーブル要素に記述された配列の参照(またはオブジェクトの参照)に基づいて配列(またはオブジェクト)にアクセスして必須要素データのパーソナライズ状態を取得する。
【0033】
次いで、CPU15は、ステップS5で取得されたパーソナライズ状態に基づいて、N番目のテーブル要素に対応する必須要素データがメモリ領域に格納済(換言すると、発行済またはパーソナライズ済)であるか否かを判定する(ステップS6)。当該必須要素データがメモリ領域に格納済でないと判定された場合(ステップS6:NO)、上述したエラー処理が実行され(ステップS7)、
図6に示す処理は終了する。一方、当該必須要素データがメモリ領域に格納済であると判定された場合(ステップS6:YES)、処理はステップS8へ進む。
【0034】
ステップS8では、CPU15は、必須要素データ一覧の全てのテーブル要素にアクセスしたか否かを判定する。必須要素データ一覧の全てのテーブル要素にアクセスしていないと判定された場合(ステップS8:NO)、N=N+1がセットされ(ステップS9)、処理はステップS5に戻り、上記と同様の処理が繰り返される。一方、必須要素データ一覧の全てのテーブル要素にアクセスしたと判定された場合(ステップS8:YES)、正常終了を示すステータスワードSWを含むレスポンスAPDUが外部装置2へ返信される(ステップS10)。次いで、CPU15は、発行完了状態をセットし(ステップS11)、
図6に示す処理は終了する。
【0035】
以上説明したように、上記実施形態によれば、ICチップ1は、Store Dataコマンドが受信される毎に当該コマンドに含まれる要素データをメモリ領域に格納し、Last Store Dataコマンドが受信された場合、パーソナライズ必須の複数の必須要素データがメモリ領域に全て格納されたか否かを判定し、当該必須要素データがメモリ領域に全て格納されていないと判定した場合、エラー処理を実行するように構成したので、パーソナライズ必須の複数の必須要素データのパーソナライズ状況のチェックをより効率良く行うことができる。また、パーソナライズ必須の必須要素データが格納済でない場合にエラー処理が実行されることで、パーソナライズ必須の要素データが未初期化の状態でICチップ1が出荷されることを防ぐことができる。また、上記実施形態によれば、必須要素データ一覧を利用することによって、プログラムで記述することと比べてプログラムコードのサイズを抑えることができる。
【0036】
なお、上記実施形態において、例えばアプリケーションがインストールされる際に当該アプリケーションにおけるオプション機能がオンに設定された場合(つまり、アプリケーションのオプション機能が有効な設定でパーソナライズされた場合)、上述した必須要素データには当該オプション機能に必要な要素データが準必須要素データとして含まれるとよい。オプション機能の一例として、ログデータを記録する機能が挙げられる。この場合、上述した必須要素データ一覧には、当該オプション機能に必要な要素データが格納されるべき配列(またはオブジェクト)の参照が記述される。そして、Last Store Dataコマンドが受信されると、
図6に示す処理において、当該オプション機能に必要な要素データのパーソナライズ状態が取得され、当該取得されたパーソナライズ状態に基づいて、当該オプション機能に必要な要素データがメモリ領域に格納済であるか否かが判定される。そして、当該オプション機能に必要な要素データがメモリ領域に格納済でないと判定された場合、上述したエラー処理が実行される。なお、オプション機能に必要な要素データが格納されるべき配列(またはオブジェクト)の参照は、上述した必須要素データ一覧とは別に記憶される準必須要素データ一覧に記憶されるように構成してもよい。
【符号の説明】
【0037】
1 ICチップ
11 I/O回路
12 RAM(
13 NVM
14 ROM
15 CPU
16 コプロセッサ
【要約】
【課題】パーソナライズ必須の複数の必須要素データのパーソナライズ状況のチェックをより効率良く行うことを可能とする電子情報記憶媒体、ICチップ、ICカード、要素データ格納方法、及びプログラムを提供する。
【解決手段】ICチップ1は、Store Dataコマンドが受信される毎に当該コマンドに含まれる要素データをメモリ領域に格納し、Last Store Dataコマンドが受信された場合、パーソナライズ必須の複数の必須要素データがメモリ領域に全て格納されたか否かを判定し、当該必須要素データがメモリ領域に全て格納されていないと判定した場合、エラー処理を実行する。
【選択図】
図6