(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173084
(43)【公開日】2024-12-12
(54)【発明の名称】電子情報記憶媒体、ICチップ、ICカード、レコード書き込み方法、及びプログラム
(51)【国際特許分類】
G06K 19/07 20060101AFI20241205BHJP
G06K 7/00 20060101ALI20241205BHJP
G06F 16/13 20190101ALI20241205BHJP
G06F 16/28 20190101ALI20241205BHJP
【FI】
G06K19/07
G06K7/00 008
G06F16/13 110
G06F16/28
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023091210
(22)【出願日】2023-06-01
(11)【特許番号】
(45)【特許公報発行日】2024-02-26
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】梶原 直也
【テーマコード(参考)】
5B160
5B175
【Fターム(参考)】
5B160AA08
5B175CA04
(57)【要約】
【課題】発行者がレコード番号を意識せずに自由な順序でレコードを発行可能な電子情報記憶媒体、ICチップ、ICカード、レコード書き込み方法、及びプログラムを提供する。
【解決手段】ICチップ1は、レコードのレコード番号を管理するための管理テーブルを保持し、外部装置2からレコード及び当該レコードのレコード番号を含む発行コマンドを受信すると、複数のRecordクラスのうち、レコードが書き込まれていないRecordクラスに発行コマンドに含まれるレコードを書き込み、且つ、当該レコードのレコード番号を当該Recordクラスに対応付けられる管理テーブルの要素に登録する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
1つの前記レコード記憶領域には、複数のレコードを論理的に格納するファイルにおける何れか1つの前記レコードが書き込まれ、
前記コマンドは、前記レコード、当該レコードの識別子、及び当該レコードを論理的に格納するファイルの識別子を含み、
前記処理手段は、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子及び当該レコードを論理的に格納するファイルの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記受信手段は、複数の前記コマンドを順次受信し、
それぞれの前記コマンドに含まれる前記レコードの内容は互いに異なることを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項4】
前記処理手段は、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項5】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、
前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、
を備えることを特徴とするICチップ。
【請求項6】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICカードであって、
前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、
を備えることを特徴とするICカード。
【請求項7】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード書き込み方法であって、
前記レコードの識別子を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別子を含むコマンドを受信するステップと、
前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録するステップと、
を含むことを特徴とするレコード書き込み方法。
【請求項8】
レコードを書き込むための複数のレコード記憶領域を備える電子情報記憶媒体に含まれるコンピュータに、
前記レコードの識別子を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別子を含むコマンドを受信するステップと、
前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部装置から複数のレコードを書き込み可能なIC(Integrated Circuit)チップ等の技術分野に関する。
【背景技術】
【0002】
従来、例えば特許文献1に開示されるように、ICチップにより使用されるべきファイルに格納される複数のレコードを該ICチップに書き込むためのレコード発行工程において、ICチップの発行者(製造者)の発行装置から複数の書き込みコマンドをICチップに順次送信するようになっている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のICチップではレコード発行工程において、それぞれのレコードのレコード番号と該レコードの発行順(書き込み順)を一致させなければならない場合があった。例えば、JICSAP仕様で定義されるAppend Recordコマンドは、パラメータで指定したファイルに対してレコードを追記するコマンドであるが、追記されたレコードのレコード番号は発行順に割り当てられる。そのため、ICチップの発行者は最終的なレコードの構成を意識して書き込みコマンドの実行順を設計する必要があり、手間がかかっていた。
【0005】
そこで、本発明は、このような点などに鑑みてなされたものであり、発行者がレコード番号を意識せずに自由な順序でレコードを発行可能な電子情報記憶媒体、ICチップ、ICカード、レコード書き込み方法、及びプログラムを提供することを課題の一例とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、1つの前記レコード記憶領域には、複数のレコードを論理的に格納するファイルにおける何れか1つの前記レコードが書き込まれ、前記コマンドは、前記レコード、当該レコードの識別子、及び当該レコードを論理的に格納するファイルの識別子を含み、前記処理手段は、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子及び当該レコードを論理的に格納するファイルの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録することを特徴とする。
【0008】
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記受信手段は、複数の前記コマンドを順次受信し、それぞれの前記コマンドに含まれる前記レコードの内容は互いに異なることを特徴とする。
【0009】
請求項4に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記処理手段は、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索することを特徴とする。
【0010】
請求項5に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、を備えることを特徴とする。
【0011】
請求項6に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICカードであって、前記レコードの識別子を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別子を含むコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録する処理手段と、を備えることを特徴とする。
【0012】
請求項7に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード書き込み方法であって、前記レコードの識別子を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別子を含むコマンドを受信するステップと、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録するステップと、を含むことを特徴とする。
【0013】
請求項8に記載の発明は、レコードを書き込むための複数のレコード記憶領域を備える電子情報記憶媒体に含まれるコンピュータに、前記レコードの識別子を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別子を含むコマンドを受信するステップと、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記コマンドに含まれるレコードを書き込み、且つ、当該レコードの識別子を当該レコード記憶領域に対応付けられる管理テーブルの要素に登録するステップと、を実行させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、発行者がレコード番号を意識せずに自由な順序でレコードを発行することができる。
【図面の簡単な説明】
【0015】
【
図1】ICチップ1のハードウェア構成例を示す図である。
【
図2】レコード本体におけるRecordクラスの配列の一例を示す概念図である。
【
図3】Recordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
【
図4】ICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
【
図5】
図4に示す発行処理において新たなレコードが書き込まれる際のRecordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
【発明を実施するための形態】
【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または複数のアプリケーション(本発明のプログラムを含む)等が記憶される。NVM13には、レコードを書き込む(保存する)ためのレコード本体を有する。ここで、レコードとは、アプリケーションにより使用されるファイル(例えば、EF(Elementary File))に論理的に格納される(換言すると、論理的に纏められる)データである。レコードの例として、アプリケーションの動作を決定するような設定データ、暗号演算や復号演算に必要な鍵データ、及び証明書データなどが挙げられる。1つのファイルには、複数のレコードが格納可能である。1つのアプリケーションにより複数のファイルが使用される場合もある。各ファイルには、ファイルの識別子であるSFI(Short File Identifier)が付与される。各レコードには、レコードの識別子であるレコード番号(つまり、ファイルにおける論理的な番号)が付与される。SFIとレコード番号を指定することでレコードを一意に特定することができる。
【0020】
レコード本体は、例えば、複数のRecordクラス(レコード記憶領域の一例)の配列で実装される。各Recordクラスは、それぞれ、1つのレコードの中身を保存するためのクラス(データと処理を纏めたもの)である。例えば、新しいレコードが発行されるたびに、新しく発行されたレコードがRecordクラスのインスタンスとして作成され、上記配列の空き要素(つまり、Recordクラス)に追加される。
図2は、レコード本体におけるRecordクラスの配列の一例を示す概念図である。
図2の例では、Recordクラスは、Record[0]~[3]として表されている。例えば、Record[0]には保存されたレコード(0000・・・)は、SFI“1”及びレコード番号“1”により特定される。既存の実装では、Append Recordコマンドのようなレコードの発行コマンドが受信された場合に、
図2に示すように、レコード本体の配列に対して要素が順次追加され、追加された要素に書き込まれたレコードのレコード番号は書き込まれた順に自動的に割り当てられるようになっている。例えば、レコードが書き込まれた順に1→2→3と順次レコード番号が割り当てられる。そのため、ICチップの発行者は、最終的なレコードの構成を意識して発行コマンドの実行順を設計する必要があった。
【0021】
一方、本実施形態に係るNVM13には、レコード本体とは別の記憶領域に、Recordクラスに保存されるレコードのレコード番号を管理するための管理テーブルが記憶される。つまり、本実施形態において、ICチップは、レコードの中身を実際に保存するレコード本体とは別に当該レコードのレコード番号を管理する管理テーブルをデータ構造として持つ。各Recordクラスには、管理テーブルの要素が対応付けられる。管理テーブルの要素は、例えば、Recordクラスの配列と同様、整数型の配列で実装される。
図3は、Recordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
図3の例では、管理テーブルの要素は、Table[0]~[3]として表されている。また、
図3の例では、管理テーブルの各要素には、SFIとレコード番号を結合した値が登録されている。例えば、
図3において、Record[0]に保存されたレコードのSFIは“2”、レコード番号は“1”であり、Record[2]に保存されたレコードのSFIは“2”、レコード番号は“3”である。このような管理テーブルにより、ICチップの発行者がレコード番号を意識せずに自由な順序でレコードを発行可能となる。
【0022】
CPU15(コンピュータの一例)は、NVM13に記憶されたOS及びアプリケーション(本発明のプログラムを含む)を実行することで、本発明における保持手段、受信手段、及び処理手段等として機能する。CPU15は、NVM13を用いて上述した管理テーブルを保持する。また、CPU15は、レコード発行工程において、外部装置2からI/O回路11を介してAppend Recordコマンド等の発行コマンドを受信する。ここで、発行コマンドは、例えばISO/IEC 7816に規定されたコマンドAPDU(Application Protocol Data Unit)により構成される。コマンドAPDUは、CLA、INS、P1及びP2からなるヘッダ部と、発行データとしてレコードがセットされるボディ部とにより構成される。CLAはコマンドクラス(命令クラス)を示し、INSはコマンドコード(命令コード)を示す。INSによりコマンドの種別が特定される。P1及びP2にはコマンドパラメータ(命令パラメータ)を示す。また、データ部には、レコードのレコード番号、及び当該レコードを論理的に格納するファイルのSFIが含まれる。なお、レコード番号及びSFIはP1またはP2に含まれてもよい。そして、CPU15は、受信された発行コマンドに応じて、レコードが書き込まれていないRecordクラスに、発行コマンドに含まれるレコードを書き込み、且つ、当該レコードのレコード番号及び当該レコードを論理的に格納するファイルのSFIを当該Recordクラスに対応付けられる管理テーブルの要素に登録(記録)する。
【0023】
[2.ICチップ1の動作]
次に、
図4及び
図5を参照して、本実施形態に係るICチップ1の動作について説明する。
図4は、ICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
図5は、
図4に示す発行処理において新たなレコードが書き込まれる際のRecordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
【0024】
例えばICチップ1の製造工場におけるレコード発行工程において、ICチップ1が外部装置2である発行装置から発行コマンドを受信すると、
図4に示す処理が開始される。なお、
図4に示す発行処理は、アプリケーションの動作に必要な全てのレコードの書き込みが完了するまで繰り返し実行される。すなわち、ICチップ1は、複数の発行コマンドを順次受信する。それぞれの発行コマンドに含まれる発行データ(レコード)の内容は基本的に互いに異なる。
【0025】
図4に示す処理が開始されると、CPU15は、発行コマンドからレコード、当該レコードのレコード番号、及びレコードを格納するファイルのSFIを取得する(ステップS1)。次いで、CPU15は、レコード本体の配列において空き要素を先頭から探索し(ステップS2)、発見された空き要素であるRecordクラスに対して、ステップS1で取得されたレコードを書き込む処理を実行する(ステップS3)。例えば、
図5に示すように、Record[0]からRecord[3]までが書き込み済みであればRecord[4]にステップS1で取得された新しいレコードが書き込まれる。
【0026】
次いで、CPU15は、ステップS3の書き込み処理において書き込みエラーが発生したか否かを判定する(ステップS4)。書き込みエラーが発生したと判定された場合(ステップS4:YES)、エラーを示すレスポンスが発行装置へ返信される(ステップS5)。一方、書き込みエラーが発生していないと判定された場合(ステップS4:NO)、CPU15は、ステップS1で取得されたSFIとレコード番号とを結合した値を、レコードが書き込まれたRecordクラスに対応付けられた管理テーブルの要素に登録する(ステップS6)。例えば、
図5に示すように、ステップS1で取得されたSFI“1”とレコード番号“2”が結合された値“0102”がTable[4]に登録(記録)される。次いで、CPU15は、正常終了を示すレスポンスを発行装置へ返信する(ステップS7)。
【0027】
以上説明したように、上記実施形態によれば、ICチップ1は、レコードのレコード番号を管理するための管理テーブルを保持し、外部装置2からレコード及び当該レコードのレコード番号を含む発行コマンドを受信すると、複数のRecordクラスのうち、レコードが書き込まれていないRecordクラスに発行コマンドに含まれるレコードを書き込み、且つ、当該レコードのレコード番号を当該Recordクラスに対応付けられる管理テーブルの要素に登録するように構成したので、発行者がレコード番号を意識せずに自由な順序でレコードを発行することができる。
【0028】
例えば、クレジット決済用アプリケーションを提供するブランドにより各レコードの書き込み順が指定される場合があり、従来のICチップでは、レコードが書き込まれた順に順次レコード番号が割り当てられるようになっていたため、ICチップの発行者は、発行コマンド群における各発行コマンドの実行順(つまり、送信順)を設計する(例えば、並び換える)必要があった。しかし、本実施形態に係るICチップ1によれば、上述したように管理テーブルの要素をRecordクラスに対応付けられるようにしてレコード番号を管理するように構成したので、レコード発行工程において各発行コマンドの実行順を従来のように設計する手間を削減することができる。
【符号の説明】
【0029】
1 ICチップ
11 I/O回路
12 RAM(
13 NVM
14 ROM
15 CPU
16 コプロセッサ