JP6823289B2 - Icカードおよびコンピュータプログラム - Google Patents

Icカードおよびコンピュータプログラム Download PDF

Info

Publication number
JP6823289B2
JP6823289B2 JP2017050252A JP2017050252A JP6823289B2 JP 6823289 B2 JP6823289 B2 JP 6823289B2 JP 2017050252 A JP2017050252 A JP 2017050252A JP 2017050252 A JP2017050252 A JP 2017050252A JP 6823289 B2 JP6823289 B2 JP 6823289B2
Authority
JP
Japan
Prior art keywords
data
command
length
variable
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017050252A
Other languages
English (en)
Other versions
JP2018156162A (ja
Inventor
桂子 高木
桂子 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2017050252A priority Critical patent/JP6823289B2/ja
Publication of JP2018156162A publication Critical patent/JP2018156162A/ja
Application granted granted Critical
Publication of JP6823289B2 publication Critical patent/JP6823289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は,ICカードに関し,更に詳しくは,データ長が可変な可変長データをICカードのメモリに書き込む技術に関する。
ICカードが備える電気的に書き換え可能な不揮発性メモリ(以下,「NVM」と記す。NVMは,Non-volatile memoryの略)には,ICカードの用途に合わせて様々なデータが記憶される。ICカードのNVMに記憶するデータには,データ長が固定の固定長データもあるが,データ長が可変な可変長データもある。
可変長データをNVMに記憶するように構成されたICカードは,可変長データをNVMに書き込むコマンドを備える。可変長データをNVMに書き込むコマンドはICカードの規格で変わるが,例えば,非特許文献1に係る規格では,TLV構造の可変長データをNVMに書き込むコマンドとしてPUT_DATAコマンドが規定され,非特許文献2では,TLV構造の可変長データをNVMに書き込むコマンドとしてSTORE_DATAコマンドが規定されている。
図7は,新規の可変長データをNVMに書き込む際の従来の手順を説明する図である。可変長データをNVMに書き込む際,まず,可変長データの創生処理が実行される。可変長データの創生処理が実行されることで,可変長データを格納する領域である格納領域がNVMに確保される。なお,可変長データの創生処理は,具体的に,可変長データをNVMに書き込むコマンドを使用して,全て初期値(‘FF’)になっている最大データ長のデータ本体を有する可変長データをNVMに書き込む処理になる。
可変長データの創生処理が終了すると,可変長データの書き込み処理が実行される。可変長データの書き込み処理が実行されることで,創生処理にてNVMに確保された格納領域内に所定の可変長データが書き込まれる。格納領域のサイズは創生処理で決まるので,格納領域に格納できる可変長データは,創生処理で決定した最大データ長以下のデータ本体を有する可変長データになる。なお,可変長データの書き込み処理は,可変長データをNVMに書き込むコマンドを使用して,所定の可変長データをNVMに書き込む処理になる。
ISO/IEC7816−4 Global Platform
上述したように,新規の可変長データをNVMに書き込む際,可変長データの創生処理と可変長データの書き込み処理を実施するために,可変長データの創生処理と可変長データの書き込み処理それぞれにおいて,可変長データをNVMに書き込むコマンドをICカードへ送信する必要があった。
新規の可変長データをNVMに書き込む際,可変長データの創生処理と可変長データの書き込み処理それぞれにおいて,可変長データをNVMに書き込むコマンドをICカードへ送信すると,ICカードの発行時など,数多くの可変長データをNVMに書き込む場合に処理時間が長くなってしまう。
そこで,本発明は,可変長データの創生処理と可変長データの書き込み処理それぞれにおいて,可変長データをNVMに書き込むコマンドをICカードへ送信しなくとも,新規の可変長データをNVMに書き込むことができるようにすることを目的とする。
上述した課題を解決する第1の発明は,メモリに書き込む可変長データのデータ本体を示す書き込み指示をコマンドデータに含むコマンドAPDUを受信すると,前記データ本体の最大データ長を示す創生指示がコマンドデータに含まれているか確認し,前記創生指示が前記コマンドデータに含まれている場合,前記創生指示で示される最大データ長のデータ本体を有する可変長データを格納できるサイズの格納領域をメモリに確保する創生処理を実行した後,前記書き込み指示で示されるデータ本体を前記格納領域内に書き込む書き込み処理を実行する書き込み手段を備えたことを特徴とするICカードである。
更に,第2の発明は, メモリに書き込む可変長データのデータ本体を示す書き込み指示をコマンドデータに含むコマンドAPDUを受信すると,前記データ本体の最大データ長を示す創生指示がコマンドデータに含まれているか確認し,前記創生指示が前記コマンドデータに含まれている場合,前記創生指示で示される最大データ長のデータ本体を有する可変長データを格納できるサイズの格納領域をメモリに確保する創生処理を実行した後,前記書き込み指示で示されるデータ本体を前記格納領域内に書き込む書き込み処理を実行する書き込み手段として,ICカードのCPUを動作させるコンピュータプログラムである。
上述した本発明によれば,可変長データをNVMに書き込むコマンドのコマンドデータに,書き込み指示データと創生指示データが含まれている場合,可変長データの創生処理を実行した後に,可変長データの書き込み処理が実行されるので,可変長データの創生処理と可変長データの書き込み処理それぞれにおいて,可変長データをNVMに書き込むコマンドをICカードへ送信しなくとも,新規の可変長データをNVMに書き込むことができる。
本実施形態に係るICカードのハードウェア構成を説明する図 本実施形態に係る書き込みコマンドを説明する図 本実施形態に係る書き込みコマンドの動作を説明する図 PUT_DATAコマンドに書き込みコマンドを適用したケースを説明する図。 STORE_DATAコマンドに書き込みコマンドを適用したケースを説明する図。 NVMの状態を説明する図。 新規の可変長データをNVMに書き込む際の従来の手順を説明する図。
ここから,本発明の好適な実施形態を記載する。なお,以下の記載は本発明の技術的範囲を束縛するものでなく,理解を助けるために記述するものである。
図1は,本実施形態に係るICカード1のハードウェア構成を説明する図である。本実施形態に係るICカード1は,プラスチックなどのカード基材にICチップ2を埋め込んだカード媒体である。図1では,コンタクト端子2aを介して外部の端末装置と物理的に接触して通信する接触型としてICカード1を図示しているが,ICカード1は,リーダライタと非接触で通信する非接触型であってもよい。また,図1では,ICカード1の外形は,ISO/IEC 7816のID−1型であるが, ETSI TS 102 221等で規格化されている小型の形態(Plug-in UICC,Mini-UICC,4FF)でもよい。
図1に図示したように,ICカード1に埋め込まれるICチップ2は,データの入出力を行うI/O24,各種演算を行うCPU20(Central Processing Unit),一時的にデータを記憶する際に用いるメモリであるRAM22(Random Access Memory),ICカード1が備えるコマンドのプログラムなどを記憶するROM21(Read-Only Memory)に加え,データを記憶する電気的に書き換え可能なメモリであるNVM23を備える。
ICカード1が備えるNVM23は,データ長が可変な可変長データなどを記憶するためのメモリで,ICカード1が備えるROM21には,CPU20を動作させるコンピュータプログラムにより実現されるコマンドとして,本発明に係る書き込み手段として機能する書き込みコマンド3が記憶されている。なお,図1では,書き込みコマンド3を記憶しているメモリをROM21にしているが,書き込みコマンド3を記憶しているメモリはNVM23でもよい。
ICカード1のNVM23に記憶させる可変長データは,可変長データの最大データ長の範囲でデータ長を変更できるように,タグ,データ長およびデータ本体の3つで構成される。可変長データのタグは,可変長データの識別に用いるデータで,TLVフォーマットのTagに相当する。可変長データのデータ長は,可変長データのデータ本体のデータ長で,TLVフォーマットのLengthに相当する。可変長データのデータ本体は,TLVフォーマットのValueに相当し,データ本体のみが可変長になる。
図2は,本実施形態に係る書き込みコマンド3を説明する図である。図2(a)は,書き込みコマンド3のコマンドAPDU(Application Protocol Data Unit)を説明する図である。本実施形態に係る書き込みコマンド3のコマンドAPDUは,CLA,INS,P1,P2,Lcおよびコマンドデータから構成される。
書き込みコマンド3のコマンドAPDUを構成するCLAは,書き込みコマンド3のクラスを示す1バイトのデータで,CLAのコーディングについては,非特許文献1,2などで規格化されている。書き込みコマンド3のコマンドAPDUを構成するINSは,書き込みコマンド3を示す1バイトのデータである。
書き込みコマンド3のコマンドAPDUを構成するP1およびP2は,書き込みコマンド3のコマンドパラメータとなるデータでそれぞれ1バイトである。P1およびP2から構成されるコマンドパラメータの使用方法は,他のコマンドを参照にして決定できる。例えば,非特許文献1で規定されているPUT_DATAコマンドを参照すれば,P1およびP2から構成されるコマンドパラメータにより,可変長データのタグが指定されることになる。また,非特許文献2ではSTORE_DATAコマンドを参照すれば,P1およびP2から構成されるコマンドパラメータにより,可変長データを分割して送信する場合の最終コマンドであるか否か,可変長データのデータ構造,および,コマンドのブロック番号などが示される。
書き込みコマンド3のコマンドAPDUを構成するLcは,後述するコマンドデータの長さを示すデータである。
本実施形態に係る書き込みコマンド3のコマンドAPDUに含まれるコマンドデータは,NVM23に書き込む可変長データのデータ本体を示す書き込み指示データ30を必ず含み,更に,可変長データの格納領域をNVM23に確保する創生処理を実行する場合には,データ本体の最大データ長を示す創生指示データ31を含む。
本実施形態に係る書き込み指示データ30は,可変長データと同様に,書き込み指示データ30であることを意味するタグと,データ本体のデータ長と,書き込み指示データ30のデータ本体から構成され,書き込み指示データ30のデータ本体は,可変長データのデータ本体を含む。また,本実施形態に係る創生指示データ31も,可変長データと同様に,創生指示データ31であることを意味するタグと,データ本体のデータ長と,創生指示データ31のデータ本体から構成され,創生指示データ31の本体は,創生する可変長データに係る最大データ長を含む。
図2(b)は,書き込みコマンド3のレスポンスAPDUを説明する図である。本実施形態に係る書き込みコマンド3のレスポンスAPDUは,書き込みコマンド3の実行結果を示す2バイトのステータスワード(SW1,SW2)のみで構成される。
図3は,本実施形態に係る書き込みコマンド3の動作を説明する図である。本実施形態に係る書き込みコマンド3を実装したICカード1が,書き込みコマンド3のコマンドAPDUを図外のターミナルから受信すると,ICカード1の内部で書き込みコマンド3が起動する(S1)。
ICカード1の内部で起動した書き込みコマンド3は,ICカード1が受信した書き込みコマンド3のコマンドAPDUのコマンドデータに創生指示データ31が含まれるか確認する(S2)。本実施形態では,書き込みコマンド3のコマンドAPDUのコマンドデータの先頭に書き込み指示データ30を配置しているので,書き込み指示データ30に続いて創生指示データ31があるか否か確認することで,コマンドデータに創生指示データ31が含まれるか確認できる。
書き込みコマンド3は,創生指示データ31の確認結果に応じて処理を分岐し,書き込みコマンド3のコマンドAPDUのコマンドデータに創生指示データ31が含まれている場合に限り創生処理を実施する(S3)。創生処理において,書き込みコマンド3は,創生指示データ31のデータ本体を可変長データに係るデータ本体の最大データ長として取得し,最大データ長のデータ本体を有する可変長データを格納できるサイズの格納領域をNVM23に確保した後,データ本体を格納する領域内のバイト全てを初期値に書き換える。
本実施形態に係る可変長データは,タグ,データ長およびデータ本体の3つで構成されているため,データ本体を格納する領域に加えて,可変長データのタグを格納する領域と可変長データのデータ長を格納する領域も格納領域に必要になる。例えば,タグが2バイト,データ長が1バイト,そして,データ本体の最大データ長が16バイトの場合,格納領域のサイズは合計で19バイト(=2バイト+1バイト+16バイト)になる。
図3のS2において,コマンドAPDUのコマンドデータの中から創生指示データ31を検索でなかった場合,または,図3のS3において創生処理を実施した後,書き込みコマンド3は,コマンドAPDUのコマンドデータに含まれる書き込み指示データ30で示される可変長データのデータ本体を,可変長データに対応する格納領域内に書き込む書き込み処理を実行する(S4)。可変長データに対応する格納領域は,可変長データのタグと同じタグが書き込まれている格納領域であるが,ここでは,創生処理で確保した格納領域内になる。なお,書き込み処理において,書き込みコマンド3は,創生処理で確保した格納領域において,可変長データのデータ本体を格納する領域の先頭から,書き込み指示データ30で示される可変長データのデータ本体を書き込む。
コマンドデータに含まれる書き込み指示データ30で示される可変長データのデータ本体を格納領域に書き込む処理を実行した後,書き込みコマンド3は,書き込みコマンド3の実行結果を示すレスポンスAPUDを図外のターミナルへ送信する処理(S5)を行い,図3の手順は終了する。
図外のターミナルへ送信するレスポンスAPDUの内容は,書き込みコマンド3の実行結果によって異なる。例えば,創生指示データ31と書き込み指示データ30が,書き込みコマンド3のコマンドAPDUのコマンドデータに含まれる場合,創生指示データ31を用いた創生処理が正常終了し,かつ,書き込み指示データ30を用いた書き込み処理が正常終了すると,図外のターミナルへ送信するレスポンスAPDUは,書き込みコマンド3が正常終了したことを示すステータスワードになる。また,書き込み指示データ30のみが,書き込みコマンド3のコマンドAPDUのコマンドデータに含まれる場合,書き込み処理が正常終了すると,図外のターミナルへ送信するレスポンスAPDUは,書き込みコマンド3が正常終了したことを示すステータスワードになる。更に,書き込み処理において,可変長データのタグに対応する格納領域がNVM23に存在しない場合,図外のターミナルへ送信するレスポンスAPDUは,創生処理が未実施を示すステータスワードになる。
図4は,PUT_DATAコマンドに書き込みコマンド3を適用したケースを説明する図で,図5は,STORE_DATAコマンドに書き込みコマンド3を適用したケースを説明する図である。
図4で図示した書き込みコマンド3のコマンドAPDUにおいて,CLAは‘00’でINSは,PUT_DATAコマンドのINSと同じ‘DA’になっている。図4で図示した書き込みコマンド3のコマンドAPDUでは,PUT_DATAコマンドと同様に,コマンドパラメータによって可変長データのタグが示されその値は‘9F01’である。また,図4で図示した書き込みコマンド3のコマンドAPDUのコマンドデータには,可変長データの書き込み処理を示すタグ(ここでは,‘80’)を有する書き込み指示データ30に加え,可変長データの創生処理を示すタグ(ここでは,‘81’)を有する創生指示データ31が含まれる。図4において,書き込み指示データ30のデータ本体は,可変長データのデータ本体で‘31323334’である。また,創生指示データ31のデータ本体は‘10’で,可変長データのデータ本体の最大データ長は16バイトである。
図5で図示した書き込みコマンド3のコマンドAPDUにおいて,CLAは‘80’でINSは,STORE_DATAコマンドのINSと同じ‘E2’になっている。図5で図示した書き込みコマンド3のコマンドAPDUでは,STORE_DATAコマンドと同様に,コマンドパラメータによって,可変長データを分割して送信する場合の最終コマンドであるか否か,可変長データのデータ構造などが示され,図5においてコマンドパラメータは‘0900’(最終コマンド,可変長データのデータ構造はBER−TLV構造,ブロック番号は‘00’)である。また,図5で図示した書き込みコマンド3のコマンドAPDUのコマンドデータには,可変長データの書き込み処理を示すタグ(ここでは,‘80’)を有する書き込み指示データ30に加え,可変長データの創生処理を示すタグ(ここでは,‘81’)を有する創生指示データ31が含まれる。書き込み指示データ30のデータ本体は,タグ,データ長およびデータ本体で構成される可変長データで,図5において書き込み指示データ30のデータ本体は ‘9F010431323334’である。ここで,‘9F01’は可変長データのタグで,‘04’は可変長データのデータ長で, ‘31323334’が可変長データのデータ本体である。また,図4と同様に,創生指示データ31のデータ本体は‘10’である。なお,STORE_DATAコマンドに書き込みコマンド3を適用する場合,可変長データのタグは,書き込み指示データ30のデータ本体から取得することになる。
図6は,NVM23の状態を説明する図である。図6(a)は,可変長データの創生処理(S3)を実施した後のNVM23を説明する図である。ICカード1が備えるNVM23は,可変長データを格納する格納領域の管理データを記憶する管理領域23aと,可変長データを格納する格納領域が設けられるデータ領域23bを備える。書き込みコマンド3のコマンドAPDUに含まれる創生指示データ31を用いた創生処理が実施されることで,創生処理で確保した格納領域の管理データが管理領域23aに追加される。格納領域の管理データは,格納領域に対応する可変長データのタグと,格納領域の開始アドレスと,格納領域のサイズを含む。
創生処理でNVM23のデータ領域23b内に確保した格納領域には,先頭から順に,格納領域に格納する可変長データのタグ(ここでは,‘9F01’の2バイト),データ長およびデータ本体が書き込まれる。創生処理(S3)で格納領域に書き込まれる可変長データのデータ長は,データ本体の最大データ長で,ここでは‘10’(16バイト)である。更に,創生処理(S3)で格納領域に書き込まれる可変長データのデータ本体は,データ長が最大データ長で全てのバイトは初期値(‘FF’)である。
図6(b)は,書き込み処理(S4)を実施した後のNVM23を説明する図である。図5では,書き込み指示データ30で示される可変長データのデータ本体は‘31323334’の4バイトであるため,書き込み処理(S4)において,格納領域に書き込まれている可変長データのデータ長 ‘10’は‘04’に更新され,格納領域に書き込んでいる可変長データのデータ本体の先頭4バイトはFFFFFFFF’から‘31323334’に更新される。
1 ICカード
20 CPU
23 NVM
3 書き込みコマンド
30 書き込み指示データ
31 創生指示データ

Claims (2)

  1. メモリに書き込む可変長データのデータ本体を示す書き込み指示をコマンドデータに含むコマンドAPDUを受信すると,前記データ本体の最大データ長を示す創生指示がコマンドデータに含まれているか確認し,前記創生指示が前記コマンドデータに含まれている場合,前記創生指示で示される最大データ長のデータ本体を有する可変長データを格納できるサイズの格納領域をメモリに確保する創生処理を実行した後,前記書き込み指示で示されるデータ本体を前記格納領域内に書き込む書き込み処理を実行する書き込み手段を備えたことを特徴とするICカード。
  2. メモリに書き込む可変長データのデータ本体を示す書き込み指示をコマンドデータに含むコマンドAPDUを受信すると,前記データ本体の最大データ長を示す創生指示がコマンドデータに含まれているか確認し,前記創生指示が前記コマンドデータに含まれている場合,前記創生指示で示される最大データ長のデータ本体を有する可変長データを格納できるサイズの格納領域をメモリに確保する創生処理を実行した後,前記書き込み指示で示されるデータ本体を前記格納領域内に書き込む書き込み処理を実行する書き込み手段として,ICカードのCPUを動作させるコンピュータプログラム。
JP2017050252A 2017-03-15 2017-03-15 Icカードおよびコンピュータプログラム Active JP6823289B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017050252A JP6823289B2 (ja) 2017-03-15 2017-03-15 Icカードおよびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017050252A JP6823289B2 (ja) 2017-03-15 2017-03-15 Icカードおよびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2018156162A JP2018156162A (ja) 2018-10-04
JP6823289B2 true JP6823289B2 (ja) 2021-02-03

Family

ID=63716495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017050252A Active JP6823289B2 (ja) 2017-03-15 2017-03-15 Icカードおよびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6823289B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164686A (ja) * 2012-02-09 2013-08-22 Toshiba Corp Icカードおよび携帯可能電子装置
EP3023904B1 (en) * 2014-11-24 2021-01-27 IDEMIA France Implicit File creation in APDU scripts

Also Published As

Publication number Publication date
JP2018156162A (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
US9183400B2 (en) IC card and IC card control method
US10387054B2 (en) Secure element including a non-volatile memory and methods for saving and restoring data including defragmenting and compressing data stored in occupied and free regions
JP6823289B2 (ja) Icカードおよびコンピュータプログラム
JP3512252B2 (ja) Cpuを内蔵した情報記録媒体
JP7005934B2 (ja) 電子情報記憶媒体、icカード、データ送信方法、データ書き込み方法、データ送信プログラム及びデータ書き込みプログラム
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
JP4868979B2 (ja) 携帯可能電子装置およびicカード
JP6984328B2 (ja) 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
JP4836707B2 (ja) 携帯可能電子装置およびicカード
JP7468765B1 (ja) 電子情報記憶媒体、icチップ、icカード、データ一括更新方法、及びプログラム
JP2007257544A (ja) 携帯可能電子装置およびicカード
JP5932588B2 (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP6039036B2 (ja) Icカード、携帯可能電子装置及びicカードの制御方法
JP7397402B2 (ja) 電子情報記憶媒体、データ送信方法、及びプログラム
JP5971687B2 (ja) Icカード、携帯可能電子装置及びicカードのコマンド処理方法
JP6915338B2 (ja) Icカード
JP7439847B2 (ja) 電子情報記憶媒体、鍵データ設定方法、及びプログラム
US10068168B2 (en) IC card and IC module
JP2012133656A (ja) 携帯可能電子装置及びicカード
JP6772545B2 (ja) Icカード,tlvオブジェクトへのアクセス方法
JP6750450B2 (ja) 電子情報記憶媒体、データ送信方法、icカード及びデータ送信プログラム
JP2019079349A (ja) Icカードおよびターミナル装置
JP2005301657A (ja) 複数のコマンドテーブルを書き換え可能なメモリに記憶したicカードおよびコマンドの実行方法
JP4738249B2 (ja) 携帯可能電子装置、icカードおよびicモジュール

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201222

R150 Certificate of patent or registration of utility model

Ref document number: 6823289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150