JP5957347B2 - Icカード、および携帯可能電子装置 - Google Patents

Icカード、および携帯可能電子装置 Download PDF

Info

Publication number
JP5957347B2
JP5957347B2 JP2012207460A JP2012207460A JP5957347B2 JP 5957347 B2 JP5957347 B2 JP 5957347B2 JP 2012207460 A JP2012207460 A JP 2012207460A JP 2012207460 A JP2012207460 A JP 2012207460A JP 5957347 B2 JP5957347 B2 JP 5957347B2
Authority
JP
Japan
Prior art keywords
data
tlv
child
command
tag
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
JP2012207460A
Other languages
English (en)
Other versions
JP2014063302A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012207460A priority Critical patent/JP5957347B2/ja
Publication of JP2014063302A publication Critical patent/JP2014063302A/ja
Application granted granted Critical
Publication of JP5957347B2 publication Critical patent/JP5957347B2/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カードには、ファイル内に格納される複数のデータを各データ単位で共有化する機能は無い。たとえば、ICカードでは、タグ(Tag)、データ長(Length)、データ部(Value)の組合せからなるTLVデータ(TLV data object)をファイルに格納する形態がある。TLVデータは、データ部の中にさらに別のTLVデータ(子のTLVデータ)を格納するような入れ子構造が可能であるために、簡単にデータを共有化することは困難である。一方、近年では、個々のTLVデータにサイズの大きなデータを格納する運用が多くなってきている。このため、TLVデータなどの特定形式のデータ単位でデータを共有化できる技術が要望されている。
特開2010−72965号公報
本発明は、特定形式のデータ単位でデータを共有化できるICカード、および携帯可能電子装置を提供することを目的とする。
実施形態によれば、ICカードは、通信手段と、記憶手段と、判断手段と、第1の処理手段と、第2の処理手段とを有する。通信手段は、外部装置とデータ通信を行う。記憶手段は、共有の有無を示し、子データの有無を示す情報、および、親となるTLVデータのタグを示す情報を含む管理情報を付与したタグ、データ長及びデータ部を並べたTLVデータを格納したファイルを記憶する。第1の判断手段は、前記通信手段により受信したコマンドがアクセス対象に指定するTLVデータの管理情報に従って子データが有るか否かを判断する。検出手段は、前記第1の判断手段により子データが有ると判断された場合、前記記憶手段に記憶されている前記管理情報から、前記コマンドがアクセス対象に指定するTLVデータのタグが親となるTLVデータのタグとして設定されている管理情報を検出する。第2の判断手段は、前記検出手段により検出した管理情報に従って前記コマンドがアクセス対象に指定するTLVデータにおける子データとしての各TLVデータに共有が有るか否かを判断する。第1の処理手段は、第2の判断手段により共有が無いと判断した場合、コマンドがアクセス対象に指定するデータにアクセスする。第2の処理手段は、第2の判断手段により共有が有ると判断した場合、コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする。
図1は、実施形態に係るICカードとICカード処理装置との構成例を示す図である。 図2は、実施形態に係るICカードの構成例を示すブロック図である。 図3は、実施形態に係るICカードのNVMに記憶されるファイルの構成例を示す図である。 図4は、実施形態に係るICカードが用いるTLVデータの構成例を示す図である。 図5は、実施形態に係るICカードのNVMに記憶されるEFに格納されるTLVデータの第1の例を示す図である。 図6は、実施形態に係るICカードのNVMに記憶されるEFに格納されるTLVデータの第2の例を示す図である。 図7は、実施形態に係るICカードにおけるコマンド処理の例を説明するためのフローチャートである。 図8は、実施形態に係るICカードが生成するレスポンスデータの第1の例を示す図である。 図9は、実施形態に係るICカードが生成するレスポンスデータの第2の例を示す図である。 図10は、実施形態に係るICカードが生成するレスポンスデータの第2の例を示す図である。
以下、この発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカード(携帯可能電子装置)1、および、ICカード2との通信機能を有する外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
まず、ICカード処理装置1の構成について説明する。
ICカード処理装置1は、図1に示すように、制御部11、ディスプレイ12、キーボード13、および、カードリーダライタ14などを有する。
制御部11は、ICカード処理装置1全体の動作を制御するものである。制御部11は、プロセッサ、種々のメモリ及び各種インターフェースなどにより構成される。制御部11では、プロセッサがメモリに記憶されているプログラムを実行することにより、種々の処理を実現している。たとえば、制御部11は、パーソナルコンピュータ(PC)により構成される。
制御部11は、カードリーダライタ14によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有する。たとえば、制御部11は、カードリーダライタ14を介してICカード2にライト系のコマンド(書き込みコマンド)を送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、制御部11は、ICカード2にリード系のコマンド(読み取りコマンド)を送信することによりICカード2からデータを読み出す制御を行う。さらに、制御部11は、リード系のコマンドのうち「GET DATAコマンド」を送信することにより、ICカード2に対して特定のデータを指定してデータ単位でデータを読み出させる制御も行える。
カードリーダライタ14は、ICカード2との通信を行うためのインターフェース装置である。カードリーダライタ14は、ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、ICカード2が接触型のICカードである場合、カードリーダライタ14は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
また、ICカード2が非接触型のICカードである場合、カードリーダライタ14は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。カードリーダライタ14では、ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ14は、制御部11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。ディスプレイ12は、制御部11の制御により種々の情報を表示する表示装置である。
次に、ICカード2の構成例について説明する。
ICカード2は、ICカード処理装置1などの上位装置からの電源および動作クロックの供給を受けて活性化される(動作可能な状態になる)。例えば、ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードである場合、ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
また、ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、ICカード2が非接触型のICカードである場合、ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作用の電力及び動作クロックを生成して活性化する。
図2は、本実施の形態に係るICカード2のハードウエア構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の筐体(本体)C内にモジュールMが内蔵されている。モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、本体C内に埋設されている。また、ICカード2のモジュールMは、図2に示すように、CPU21、ROM22、RAM23、NVM24、UART(通信部)25、および、コプロセッサ26などを有してしている。
CPU21は、当該ICカード2全体の制御を司るものである。CPU21は、ROM22あるいはNVM24に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、CPU21は、オペレーティングシステムのプログラムを実行することにより、当該ICカード2の基本的な動作制御を行う。また、CPU21は、当該ICカード2の利用目的に応じたアプリケーションプログラムを実行することにより、当該ICカード2の運用形態に応じた種々の動作制御を行う。
ROM22は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。ROM22には、当該ICカード2の製造段階で制御プログラムあるいは制御データなどが記憶された状態でICカード2内に組み込まれる。つまり、ROM22に記憶されている制御プログラムあるいは制御データは、当該ICカード2の基本的な動作を司るものであり、予め当該ICカード2の仕様に応じて組み込まれる。
RAM23は、RAMなどの揮発性のメモリである。また、RAM23は、CPU21が処理中のデータなどを一時保管するバッファとして機能する。RAM23には、各ファイルへのアクセス状況、通信チャネルの使用状況、および、処理状況などを示す種々のテーブルが設けられる。RAM23は、専有時間テーブルを格納する記憶領域23a、および、強制解放テーブルを格納する記録領域23bなどを有する。これらのテーブルについては、後述する。
NVM24は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)あるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性メモリにより構成される。NVM24には、当該ICカード2の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。NVM24には、当該ICカード2の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。NVM24に格納されるファイルの例については、後述する。
UART25は、ICカード処理装置1のカードリーダライタ14との通信を行うためのインターフェースである。当該ICカード2が接触型のICカードとして実現される場合、UART25は、ICカード処理装置1のカードリーダライタ14と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ICカード2が非接触型のICカードとして実現される場合、UART25は、ICカード処理装置1のカードリーダライタ14との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
コプロセッサ(Co-Processor)26は、暗号処理を実行するためのプロセッサである。コプロセッサ26は、たとえば、暗号化及び復号化を用いた認証処理、あるいは、暗号化されたデータの読み出し処理などに用いられる。
次に、NVM24に格納されるファイルについて説明する。
図3は、NVM24に格納されるファイルの構造例を示す図である。
図3に示すように、NVM24には、MF(Master File)、DF(Dedicated File)および、EF(Elementary File)などからなる階層構造を有する複数のファイル群が定義される。なお、図3に示すようなファイル構造は、ICカードの国際的な標準規格であるISO/IEC 7816−4で規定されている。
図3に示す例では、最上階層のマスターファイル(MF)の次の階層には、DF(DF−A)が存在する。たとえば、1つのDFには、当該ICカード2が具備する1つのアプリケーションを実現するためのデータが格納される。複数のアプリケーションによって複数の機能を実現しているICカードは、各アプリケーションに対応する複数のDFをNVM24内に設けるようにして良い。
また、図3に示す例では、DF−Aの配下として、DF−Aの次の階層に、2つのEF(EF1、および、EF2)が存在している。各EF(EF1およびEF2)は、それぞれが各種のデータを格納するためのデータファイルである。各EF1およびEF2には、所定のデータ構造のうち何れかのデータ構造でデータが格納される。本実施形態においては、EF1およびEF2は、識別子(タグ(Tag))、データ長(レングス(Length))、および、データ部(バリュー(Value))が順に連結されるTLV構造のオブジェクトデータ(TLV data object)(以下、TLVデータと称する)が格納されるファイルであるものとする。なお、TLVデータを格納するファイル構造などについては、たとえば、ICカードの国際的な標準規格であるISO/IEC 7816−4で規定されている。
次に、TLVデータの構成について説明する。
図4は、TLVデータにおけるデータの構成例を示す図である。
図4に示す構成例において、TLVデータは、「番号(No)」、「管理情報」、「タグ(Tag)」、「データ長(Len)」、及び、「データ部(Value)」により構成される。さらに、
「番号」は、ファイル内などで当該TLVデータを管理するための番号である。「管理情報」は、当該TLVデータの状態あるいは制御情報などを示す情報である。「タグ(Tag)」は、当該TLVデータの識別情報である。「データ長」は、後に続くデータ部のサイズ(長さ)を示す情報である。「データ部」は、当該TLVデータにおける実データである。
また、「管理情報」は、「TLVの種類」、「共有の有無」、「Valueの有無」、「親Tag」などの情報により構成される。
「TLVの種類」は、当該TLVデータのデータ形式を示す情報である。たとえば、「TLVの種類」としては、当該TLVデータのデータ形式(フォーマット)が「simple TLV format」である場合には「00」とし、「BER TLV format」である場合には「01」とする。
また、「共有の有無」は、当該TLVデータのデータ部が他のTLVデータのデータ部と共有しているか否かを示す情報である。例えば、「共有の有無」は、当該TLVデータのデータ部(Value)が他のTLVデータのデータ部(他のTagのValue)と共有している場合には「01」とし、共有していない場合には「00」とする。
また、「子TLVの有無」は、当該TLVデータに子TLVが存在するか否か(データ部が実質的に子のTLVデータとなる入れ子構造であるか否か)を示す情報である。たとえば、子TLVが存在しない場合には「00」とし、子TLVが存在する場合(Valueが子TLVである場合)には「01」とする。この場合、当該TLVデータにおけるデータ長が「00」で、かつ、「子TLVの有無」が「00」であれば、Value(データ部)としての実データを存在しないことを示す。また、当該TLVデータにおけるデータ長が「00」で、かつ、「子TLVの有無」が「01であれば、Value(データ部)が子TLVとなることを示す。
「親Tag」は、親となるTLVデータ(親TLV)のTagを示す情報である。たとえば、「親Tag」は、親となるTLVデータが存在しない場合(つまり、当該TLVデータが子TLVでない場合)には「0000」とし、親となるTLVデータが存在する場合(つまり、当該TLVデータが子TLVである場合)には親となるTLVデータのTagの値とする。
図5及び図6は、TLVデータを格納するファイル(EF)の例を示す図である。
図5及び図6に示す構成例において、EFは、複数のデータオブジェクトテーブル(Data object table)から構成される。各データオブジェクトテーブルは、それぞれがTLVデータの本体(「タグ(Tag)」、「データ長(Len)」、「データ部(Value)」)と、当該EF内におけるユニークな「番号(No)」と、TLVデータに対する「管理情報」とで構成されている。
図5に示す例において、EF1(EF−ID=ABCD)における「番号(No)」が「01」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有無し(「共有の有無」=「00」)であり、子TLV無し(「子TLVの有無」=「00」)であり、親TLV無し(「親Tag」=「0000」)である。このため、EF1における「No.1」のTLVデータの本体は、タグが「1234」で、データ長が「0002」で、データ部が「AABB」である。
また、図5に示す例において、EF1における「番号(No)」が「02」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有無し(「共有の有無」=「00」)であり、子TLV有り(「子TLVの有無」=「01」)であり、親TLV無し(「親Tag」=「0000」)である。このため、EF1における「No.2」のTLVデータの本体は、タグが「1234」で、データ長が「0000」で、データ部無しである。この場合、データ長が「0000」で、かつ、子TLV有りであるため、当該TLVデータは、データ部が実質的には子TLVとなる入れ子構造の親TLVとなっている。
また、図5に示す例において、EF1における「番号(No)」が「03」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有無し(「共有の有無」=「00」)であり、子TLV無し(「子TLVの有無」=「00」)であり、親TLV有り(「親Tag」=「0070」)である。つまり、EF1における「No.3」のTLVデータの本体は、タグが「0070」のTLVデータに対する子TLVであり、タグが「3456」で、データ長が「0008」で、データ部が「1122334455667788」である。図5に示す例では、タグが「0070」のTLVデータはEF1のNO.2のTLVデータであるため、「No.3」のTLVデータは、EF1のNO.2のTLVデータの子TLVとなる。
また、図5に示す例において、EF1における「番号(No)」が「05」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有無し(「共有の有無」=「00」)であり、子TLV無し(「子TLVの有無」=「00」)であり、親TLV有り(「親Tag」=「0070」)である。つまり、EF1における「No.5」のTLVデータの本体は、タグが「0070」のTLVデータに対する子TLVであり、タグが「3456」で、データ長が「0008」で、データ部が「1122334455667788」である。図5に示す例では、タグが「0070」のTLVデータはEF1のNO.2のTLVデータであるため、「No.5」のTLVデータは、「No.3」のTLVデータとともに、EF1のNO.2のTLVデータの子TLVとなる。
また、図5に示す例において、EF1における「番号(No)」が「04」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有有り(「共有の有無」=「01」)であり、子TLV無し(「子TLVの有無」=「00」)であり、親TLV無し(「親Tag」=「0000」)である。つまり、EF1における「No.4」のTLVデータの本体は、タグが「2222」で、データ長が「0003」で、データ部が「ABEF 01」である。この場合、EF1のNO.4のTLVデータは、共有有りであるため、データ部に格納されたデータは、共有先を示すデータである。
たとえば、データ部に格納される共有先を示すデータが、共有先のEF−IDとそのEF内におけるTLVデータの番号とを示すものであるとすれば、EF1のNO.4のTLVデータの共有先(「ABEF 01」が示す共有先)は、EF−IDが「ABEF」のEFにおける「No.」=「1」のデータとなる。図6は、EF−IDが「ABEF」となるEFの構成例を示している。
図6に示す例において、EF2(EF−ID=ABEF)における「番号(No)」が「01」のTLVデータは、データ形式が「BER TLV format(「TLVの種類」=「01」)」であり、共有無し(「共有の有無」=「00」)であり、子TLV無し(「子TLVの有無」=「00」)であり、親TLV無し(「親Tag」=「0000」)である。このため、EF2における「No.1」のTLVデータの本体は、タグが「1288」で、データ長が「0002」で、データ部が「9876」である。
すなわち、図5及び図6に示す例によれば、図5に示すEF1の「No.4」のTLVデータは、図6に示すEF2の「No.1」のTLVデータと共有化される。このため、ICカード2は、図5及び図6に示すEFを保持する場合、EF1の「No.4」のTLVデータと図6に示すEF2の「No.1」のTLVデータとは、データ部(Value)が共に「9876」として認識する。
次に、実施形態に係るICカードにおけるコマンド処理について説明する。
図7は、ICカードがGET DATAコマンドを受信した場合の処理の流れを説明するためのフローチャートである。
まず、ICカード2は、UART25によりICカード処理装置1からのコマンドを受信可能な状態であるとする。ここでは、ICカード2では、カレント状態のEFが設定されているものとする。
ICカード処理装置1からのコマンドを受信すると(ステップS11)、CPU21は、受信したコマンドを解析し、受信コマンドの処理内容を認識する。受信したコマンドがGET DATAコマンドでない場合(ステップS12、NO)、CPU21は、当該コマンドに対する処理を実行し(ステップS13)、実行結果をレスポンスとして送信する(ステップS26)。
また、受信したコマンドがGET DATAコマンドであると判断した場合(ステップS12、YES)、CPU21は、カレント状態となっているEFにおいて、当該GET DATAコマンドでアクセス対象(読出対象)に指定されたTLVデータのTagを検索する(ステップS14)。指定されたTLVデータを検出すると、CPU21は、検出したTLVデータの管理情報に基づいて当該TLVデータに子TLV(子データ)が有るか否かを判断する(ステップS15)。
当該コマンドでアクセス対象に指定されたTLVデータに子データが無いと判断した場合(ステップS15、NO)、CPU21は、さらに、当該TLVデータにデータの共有が有るか否かを判断する(ステップS16)。
当該コマンドでアクセス対象に指定されたTLVデータに子データが無く、かつ、データの共有も無いと判断した場合(ステップS16、NO)、CPU21は、当該TLVデータを読み出す(ステップS17)。CPU21は、読み出したTLVデータをレスポンスデータとして加工してRAM23に一時的に格納する。GET DATAコマンドに対する処理が成功すると、CPU21は、RAM23に格納したレスポンスデータに処理が成功したことを示すステータスワードをセットしたレスポンスをICカード処理装置1へ送信する(ステップS28)。なお、TLVデータの読出処理などでエラーが発生した場合には、CPU21は、ステータスワードからなるレスポンスをICカード処理装置1へ送信する。
たとえば、図5に示すようなEF−ID=ABCDのEFがカレント状態で、Tag=1234を指定したGET DATAコマンドを受信すると、ICカード2のCPU21は、OSの機能として、EF−ID=ABCDのEFにおいて、「Tag=1234」を順に検索する。図5に示す例では、「No.1」のTLVデータのTagが「1234」であることを検出する。すると、CPU21は、「No.1」のTLVデータの管理情報により、「BER TLVフォーマット」で、「共有がない」、「子TLVが存在しない」ということを確認し、「No.1」のTLVデータの「Tag」、「Len」、「Value」を加工してレスポンスデータを生成する。
具体的には、「Tag」の1byte目が00であれば削除し、「Len」においてはBER TLVフォーマットを考慮して、1byte目の00を削除する。図8は、Tag=1234を指定したGET DATAコマンドに対するレスポンスデータの例である。図8に示すようなレスポンスデータを生成すると、ICカード2のCPU21は、生成したレスポンスデータにステータスワードを付加したレスポンスをICカード処理装置1へ送信する。
また、受信したGET DATAコマンドで指定されたTLVデータに子データが無く、かつ、データの共有が有りと判断した場合(ステップS16、YES)、CPU21は、当該TLVデータのデータ部に格納された、共有先を示す情報(共有先データ)を読込む(ステップS18)。共有先データを読込むと、CPU21は、読み込んだ共有先データに基づいて共有先のTLVデータを検出する(ステップS19)。共有先のTLVデータを検出すると、CPU21は、共有先のTLVデータのデータ部を読み出す(ステップS20)。
CPU21は、アクセス対象に指定されたTLVデータのTagと、共有先のTLVデータから読み出したデータ部とデータ長とを組み合わせたレスポンスデータを生成してRAM23に一時的に格納する。GET DATAコマンドに対する処理が成功すると、CPU21は、RAM23に格納したレスポンスデータに処理が成功したことを示すステータスワードをセットしたレスポンスをICカード処理装置1へ送信する(ステップS28)。
たとえば、ICカード2は、図5に示すようなEF−ID=ABCDのEF1がカレント状態で、Tagとして「2222」を指定したGET DATAコマンドを受信したものとする。すると、ICカード2のCPU21は、OSの機能として、EF−ID=ABCDのEFにおいて、「Tag=2222」を検索する。図5に示す例では、EF1の「No.4」のTLVデータのTagが「2222」であるため、CPU21は、「No.4」のTLVデータの管理情報により「共有が有る」ことを確認する。
共有有りを確認すると、CPU21は、共有先を示すデータ(共有先データ)として当該TLVデータのデータ部(Value)を読込む。図5に示す例では、「No.4」のTLVデータのデータ部は、「ABEF 01」である。ここで、データ部に格納される共有先データは、EFIDとTLVデータの番号(No)とからなるものとする。すると、CPU21は、「No.4」のTLVデータのデータ部としての「ABEF 01」により、EFIDが「ABEF」のEFにおける「No.1」のTLVデータが共有先のTLVデータであると認識する。
共有先のTLVデータを特定すると、CPU21は、EFIDが「ABEF」のEFにおいて、「No.1」のTLVデータを共有先のTLVデータとして検索する。図6に示す例では、EFIDが「ABEF」のEFにおける「No.1」のTLVデータは、データ部(Value)が「9876」である。共有先のTLVデータを検出すると、CPU21は、共有先のTLVデータのデータ部として「9876」を読み出す。CPU21は、コマンドでアクセス対象に指定されたTLVデータの「Tag=2222」と共有先の「Value=9876」とを組み合わせてレスポンスデータを生成する。図9は、コマンドで指定されたTLVデータのTag=2222と共有先のValue=9876とを組み合わせて生成したレスポンスデータの例である。CPU21は、図9に示すようなレスポンスデータにステータスワードを付加したレスポンスをICカード処理装置1へ送信する。
当該コマンドで指定されたTLVデータに子データが有ると判断した場合(ステップS15、YES)、CPU21は、GET DATAコマンドでアクセス対象に指定されたTLVデータにおける子データを順に検索する(ステップS21)。たとえば、CPU21は、各TLVデータの管理情報における「親Tag」を検索し、「親Tag」に当該コマンドでアクセス対象に指定されたTLVデータのTagが格納されているTLVデータを子データとして検出する。
当該コマンドでアクセス対象に指定されたTLVデータの子データを検出すると、CPU21は、検出した子データとしてのTLVデータの管理情報に従って当該子データが共有有りか否かを判断する(ステップS22)。検出した子データが共有無しであれば(ステップS22、NO)、CPU21は、当該子データとしてTLVデータのデータ部を読み出し(ステップS23)、読み出したデータをRAM23に格納する。子データのデータ部を読み出した後、CPU21は、別の子データが存在するか否かを判断する(ステップS27)。別の子データが存在する場合、CPU21は、別の子データについても、ステップS21〜S27の処理を繰り返し実行する。
また、検出した子データが共有有りであれば(ステップS22、YES)、CPU21は、当該子データとしてのTLVデータのデータ部を共有先を示すデータとして読み出し(ステップS24)、読み出した共有先を示すデータに基づいて共有先のTLVデータを検出する(ステップS25)。共有先のTLVデータを検出すると、CPU21は、当該子データとしてTLVデータのデータ部の実データとして、共有先のTLVデータのデータ部を読み出し(ステップS26)、RAM23に格納する。
子データに格納されている実データとしてのデータ部を読み出した場合、あるいは、子データの共有先のデータ部を実データとして読み出した場合、CPU21は、別の子データが存在するか否かを判断する(ステップS27)。別の子データが存在すると判断した場合、CPU21は、別の子データについても、ステップS21〜S27の処理を繰り返し実行する。
ステップS21〜S27の処理により、RAM23には、当該GET DATAコマンドで指定されたTLVデータを親データとする各子データの読出結果が格納される。これにより、CPU21は、各子データの読出結果を入れ子構造(TLVデータのデータ部に、別のTLV(子TLV)が入れ子状態に設定される構造)としたTLVデータの読出結果を示すレスポンスデータを生成する。
なお、子データにさらに子データが有る場合、つまり、孫データがある場合、CPU21は、ステップS21で孫データが有る子データを検出した後(つまり、ステップS21とS22の間に)、各孫データに対してステップS21〜S27と同様な処理を行うことにより、子データのデータ部に孫データ(その子データの子データ)を格納したレスポンスデータを生成できる。
上記のような入れ子構造のレスポンスデータを作成すると、CPU21は、生成したレスポンスデータに当該GET DATAコマンドの実行結果を示すステータスワードを付加したレスポンスをICカード処理装置1へ送信する(ステップS28)。
図5に示す例では、Tag=0070のTLVデータのデータ部(Value)の中に、Tag=3456のTLVデータとTag=0099のTLVデータとが入れ子状に設定されている。図5に示すような場合、Tag=0070のTLVデータを親TLVと称し、Tag=3456のTLVデータおよびTag=0099のTLVデータを子TLVと称するものとする。
たとえば、ICカード2は、図5に示すようなEF−ID=ABCDのEF1がカレント状態で、Tagが「0070」のTLVデータを指定したGET DATAコマンドを受信したものとする。すると、ICカード2のCPU21は、OSの機能として、EF−ID=ABCDのEF1において、「Tag=0070」を検索する。図5に示す例では、EF1の「No.2」のTLVデータのTagが「0070」であるため、CPU21は、「No.2」のTLVデータの管理情報により「子TLVが有る」ことを確認する。
子データがあることを確認すると、CPU21は、Tagが「0070」の親TLVにおける子TLVを探すため、管理情報の「親Tag」が「0070」のTLVデータを検索する。図5に示す例では、「NO.3」と「NO.5」のTLVデータの「親Tag」が「0070」に設定されていることを検出する。
これらの検索結果から、Tagが「0070」のTLVデータを親TLVとして、その親TLVにおける子TLVが「NO.3」と「NO.5」のTLVデータであることが判明する。また、孫TLVも存在する可能性があるため、CPU21は、各子TLVの管理情報から孫TLVが存在するか確認する。図5に示す例では、子TLVとなる「NO.3」と「NO.5」のTLVデータは、管理情報が「子TLV無し」となっており、「Len」が「00」でもないので、孫TLVが存在しないことが判断される。
子TLVを検出すると、CPU21は、親TLVのデータ部に各子TLVを並べて格納したレスポンスデータを作成する。図10は、GET DATAコマンドで指定されたTLVデータのTagが「0070」である場合のレスポンスデータの例である。図10に示す例では、親のTag(「0070」)をTagとし、各子TLVのTLVデータを並べたデータ(「NO.3」のTLVデータと「NO.5」のTLVデータとを順に並べたデータ)をデータ部とし、そのデータ部の長さ(2+1+8+1+1+4=17(11h))をデータ長としたレスポンスデータが形成されている。図10に示すようなレスポンスデータを生成すると、CPU21は、GET DATAコマンドに対するレスポンスとして、生成したレスポンスデータにステータスワードを付加したデータをICカード処理装置1へ送信する。
上記のように、本実施形態に係るICカードは、各TLVデータの管理情報において共有の有無を設定し、TLVデータのデータ部(Value)の単位でデータを共有化するようにしたものである。これにより、本実施形態に係るICカードによれば、TLVデータのデータサイズが大きくなっても、リソースに制限があるメモリを効率よく利用することができ、データの管理も容易になる。
また、上述した実施形態では、入れ子構造のTLVデータにおいて、子TLV或いは孫TLVとなるTLVに対しても、それぞれの管理情報により共有の有無を設定するようにしたものである。これにより、本実施形態に係るICカードによれば、TLVデータが入れ子構造であっても個々の子データに共有の有無を設定でき、入れ子構造のTLVにおける子データの共有化も実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下、本願の出願当初の特許請求の範囲の記載を付記する。
[1]
外部装置とデータ通信を行う通信手段と、
共有の有無を示す管理情報を付与した特定形式のデータを格納したファイルを記憶する記憶手段と、
前記通信手段により受信したコマンドがアクセス対象に指定するデータの管理情報に従って前記コマンドがアクセス対象に指定するデータに共有が有るか否かを判断する判断手段と、
前記判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、
前記判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、
を有するICカード。
[2]
特定形式のデータは、タグ、データ長及びデータ部を並べたTLVデータである、
前記[1]に記載のICカード。
[3]
前記TLVデータは、データ部に子データとしての別のTLVデータを格納する入れ子構造を許容し、
前記判断手段は、前記コマンドが指定するデータが入れ子構造のTLVデータである場合には、前記コマンドが指定するTLVデータにおける子データとしての各TLVデータについて共有があるか否かを判断する、
前記[2]に記載のICカード。
[4]
前記記憶手段は、前記管理情報として、さらに、子データの有無を示す情報、および、親となるTLVデータのタグを示す情報を記憶し、
さらに、前記コマンドが指定するTLVデータの管理情報に従って子データが有るか否かを判断する第2の判断手段と、
前記第2の判断手段により子データが有ると判断された場合、前記記憶手段に記憶されている前記管理情報から、前記コマンドがアクセス対象に指定するTLVデータのタグが親となるTLVデータのタグとして設定されている管理情報を検出する検出手段と、を有し、
前記判断手段は、前記検出手段により検出した管理情報に従って、前記コマンドがアクセス対象に指定するTLVデータにおける子データとしての各TLVデータに共有があるか否かを判断する、
前記[2]に記載のICカード。
[5]
外部装置とデータ通信を行う通信手段と、共有の有無を示す管理情報を付与した特定形式のデータを格納したファイルを記憶する記憶手段と、前記通信手段により受信したコマンドがアクセス対象に指定するデータの管理情報に従って前記コマンドがアクセス対象に指定するデータに共有が有るか否かを判断する判断手段と、前記判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、前記判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、を有するモジュールと、
前記モジュールを具備する本体と、
を有するICカード。
[6]
外部装置からの受信するコマンドに対する処理を行う携帯可能電子装置において、
前記外部装置とデータ通信を行う通信手段と、
共有の有無を示す管理情報を付与した特定形式のデータを格納したファイルを記憶する記憶手段と、
前記通信手段により受信したコマンドがアクセス対象に指定するデータの管理情報に従って前記コマンドがアクセス対象に指定するデータに共有が有るか否かを判断する判断手段と、
前記判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、
前記判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、
を有する携帯可能電子装置。
1…ICカード処理装置(外部装置)、2…ICカード(携帯可能電子装置)、11…制御部、12…ディスプレイ、13…キーボード、14…カードリーダライタ、C…本体、M…ICモジュール、Ca…ICチップ、21…CPU、22…NVM、23…RAM、24…ROM、25…UART、26…コプロセッサ。

Claims (4)

  1. 外部装置とデータ通信を行う通信手段と、
    共有の有無を示し、子データの有無を示す情報、および、親となるTLVデータのタグを示す情報を含む管理情報を付与したタグ、データ長及びデータ部を並べたTLVデータを格納したファイルを記憶する記憶手段と、
    前記通信手段により受信したコマンドがアクセス対象に指定するTLVデータの管理情報に従って子データが有るか否かを判断する第1の判断手段と、
    前記第1の判断手段により子データが有ると判断された場合、前記記憶手段に記憶されている前記管理情報から、前記コマンドがアクセス対象に指定するTLVデータのタグが親となるTLVデータのタグとして設定されている管理情報を検出する検出手段と、
    前記検出手段により検出した管理情報に従って前記コマンドがアクセス対象に指定するTLVデータにおける子データとしての各TLVデータに共有が有るか否かを判断する第2の判断手段と、
    前記第2の判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、
    前記第2の判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、
    を有するICカード。
  2. 前記TLVデータは、データ部に子データとしての別のTLVデータを格納する入れ子構造を許容する
    前記請求項に記載のICカード。
  3. 外部装置とデータ通信を行う通信手段と、共有の有無を示し、子データの有無を示す情報、および、親となるTLVデータのタグを示す情報を含む管理情報を付与したタグ、データ長及びデータ部を並べたTLVデータを格納したファイルを記憶する記憶手段と、
    前記通信手段により受信したコマンドがアクセス対象に指定するTLVデータの管理情報に従って子データが有るか否かを判断する第1の判断手段と、前記第1の判断手段により子データが有ると判断された場合、前記記憶手段に記憶されている前記管理情報から、前記コマンドがアクセス対象に指定するTLVデータのタグが親となるTLVデータのタグとして設定されている管理情報を検出する検出手段と、前記検出手段により検出した管理情報に従って前記コマンドがアクセス対象に指定するTLVデータにおける子データとしての各TLVデータに共有が有るか否かを判断する第2の判断手段と、前記第2の判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、前記第2の判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、を有するモジュールと、
    前記モジュールを具備する本体と、
    を有するICカード。
  4. 外部装置からの受信するコマンドに対する処理を行う携帯可能電子装置において、
    前記外部装置とデータ通信を行う通信手段と、
    共有の有無を示し、子データの有無を示す情報、および、親となるTLVデータのタグを示す情報を含む管理情報を付与したタグ、データ長及びデータ部を並べたTLVデータを格納したファイルを記憶する記憶手段と、
    前記通信手段により受信したコマンドがアクセス対象に指定するTLVデータの管理情報に従って子データが有るか否かを判断する第1の判断手段と、
    前記第1の判断手段により子データが有ると判断された場合、前記記憶手段に記憶されている前記管理情報から、前記コマンドがアクセス対象に指定するTLVデータのタグが親となるTLVデータのタグとして設定されている管理情報を検出する検出手段と、
    前記検出手段により検出した管理情報に従って前記コマンドがアクセス対象に指定するTLVデータにおける子データとしての各TLVデータに共有が有るか否かを判断する第2の判断手段と、
    前記第2の判断手段により共有が無いと判断した場合、前記コマンドがアクセス対象に指定するデータにアクセスする第1の処理手段と、
    前記第2の判断手段により共有が有ると判断した場合、前記コマンドがアクセス対象に指定するデータに含まれる共有先を示すデータに基づいて特定する共有先のデータにアクセスする第2の処理手段と、
    を有する携帯可能電子装置。
JP2012207460A 2012-09-20 2012-09-20 Icカード、および携帯可能電子装置 Active JP5957347B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012207460A JP5957347B2 (ja) 2012-09-20 2012-09-20 Icカード、および携帯可能電子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012207460A JP5957347B2 (ja) 2012-09-20 2012-09-20 Icカード、および携帯可能電子装置

Publications (2)

Publication Number Publication Date
JP2014063302A JP2014063302A (ja) 2014-04-10
JP5957347B2 true JP5957347B2 (ja) 2016-07-27

Family

ID=50618491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012207460A Active JP5957347B2 (ja) 2012-09-20 2012-09-20 Icカード、および携帯可能電子装置

Country Status (1)

Country Link
JP (1) JP5957347B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6461759B2 (ja) 2015-09-17 2019-01-30 株式会社東芝 Icカード、及びicモジュール

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548752A (en) * 1994-08-10 1996-08-20 Motorola, Inc. Method and system for storing data in a memory device
JP4081667B2 (ja) * 2002-11-25 2008-04-30 沖電気工業株式会社 Icカード読取装置
JP4891587B2 (ja) * 2005-09-30 2012-03-07 株式会社東芝 携帯可能電子装置、icカードおよびicモジュール
JP5329884B2 (ja) * 2008-09-18 2013-10-30 株式会社東芝 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
JP5259513B2 (ja) * 2009-07-15 2013-08-07 株式会社東芝 携帯可能電子装置、icカードおよび携帯可能電子装置の制御方法
JP2012064048A (ja) * 2010-09-16 2012-03-29 Toshiba Corp 携帯可能電子装置、非接触icカード、および携帯可能電子装置のコマンド処理方法

Also Published As

Publication number Publication date
JP2014063302A (ja) 2014-04-10

Similar Documents

Publication Publication Date Title
US9183400B2 (en) IC card and IC card control method
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
US8645624B2 (en) Portable electronic device, smartcard and control method for portable electronic device
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
JP4896842B2 (ja) 携帯可能電子装置
JP2014041552A (ja) Icカード、及び、携帯可能電子装置
US20120234926A1 (en) Portable electronic apparatus
JP5957347B2 (ja) Icカード、および携帯可能電子装置
JP5444138B2 (ja) 通信システム、通信方法及び携帯可能電子装置
US8276188B2 (en) Systems and methods for managing storage devices
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP5932588B2 (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP2014059806A (ja) Icカード、携帯可能電子装置、及びicカード処理装置
US20220309312A1 (en) Ic card and control program for ic card
US20090083273A1 (en) Portable electronic apparatus and control method for portable electronic apparatus
JP2013164686A (ja) Icカードおよび携帯可能電子装置
JP2014006631A (ja) Icカード、および、携帯可能電子装置
JP2012133656A (ja) 携帯可能電子装置及びicカード
JP6039036B2 (ja) Icカード、携帯可能電子装置及びicカードの制御方法
JP2014182639A (ja) Icカードおよび携帯可能電子装置
US10068168B2 (en) IC card and IC module
JP6071677B2 (ja) Icカード、icモジュールおよび携帯可能電子装置
JP2012155664A (ja) 携帯可能電子装置及びicカード
JP2009176034A (ja) 携帯可能電子装置、及び、データ管理方法
JP2016177850A (ja) Icカード、携帯可能電子装置、及びicカード処理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160314

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: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R151 Written notification of patent or utility model registration

Ref document number: 5957347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350