(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】自己診断機能を有するICカードおよびICカードの自己診断方法
(51)【国際特許分類】
G06K 19/07 20060101AFI20231212BHJP
G06F 11/22 20060101ALI20231212BHJP
【FI】
G06K19/07 220
G06K19/07 190
G06F11/22 675Z
(21)【出願番号】P 2020028719
(22)【出願日】2020-02-21
【審査請求日】2022-12-27
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100122529
【氏名又は名称】藤枡 裕実
(74)【代理人】
【識別番号】100135954
【氏名又は名称】深町 圭子
(74)【代理人】
【識別番号】100119057
【氏名又は名称】伊藤 英生
(74)【代理人】
【識別番号】100131369
【氏名又は名称】後藤 直樹
(74)【代理人】
【識別番号】100171859
【氏名又は名称】立石 英之
(72)【発明者】
【氏名】橋村 雄介
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2006-252284(JP,A)
【文献】特開2014-059731(JP,A)
【文献】特開2008-310597(JP,A)
【文献】特開2003-331236(JP,A)
【文献】特開2003-022425(JP,A)
【文献】特開平05-307656(JP,A)
【文献】特開2009-187474(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/07
G06F 11/22
(57)【特許請求の範囲】
【請求項1】
NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信すると起動し,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能のみを自己診断する自己診断管理モジュールを備えたことを特徴とするICカード。
【請求項2】
NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信すると起動し,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能のみを自己診断する自己診断管理モジュールをメモリに実装したICカード用ICチップ。
【請求項3】
ICカードが,NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信するステップと,前記ICカードが,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能を自己診断するステップを順に実行することを特徴とするICカードの自己診断方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,ICチップ(半導体集積回路)を実装したカード媒体であるICカードに関し,更に詳しくは,ICカードが実行する自己診断に関する。
【背景技術】
【0002】
ICチップ(半導体集積回路)を実装したカード媒体であるICカードは,財布や鞄の中に入れられ,物理的に過酷な環境で取り扱われることが多いため,ICカードに実装したICチップが故障してしまう危険性がある。そのため,ICカードでは,ICチップに集積された回路の動作を確認する自己診断を起動時に実施することが一般的になっている。
【0003】
ICカードの起動時にすべての自己診断を完了できればよいが,近年ではICカードの多機能化が進み,ICチップに集積させる機能数やメモリ容量が増加する傾向にある。ICチップに集積させる機能数が増加すると,ICチップの自己診断に要する時間も長くなるため,起動時間に制約が設けられているICカードでは,自己診断に係る処理を起動時にすべて完了できないことがある。
【0004】
この問題を解決するため,特許文献1で開示されたICカードは,効率良く自己診断を行えるように,起動時に加えて,上位装置からのコマンドの受信待ち状態のときに自己診断を行えるように構成されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一方,近年では一枚のICカードに複数のアプリケーションを実装することが一般的になっている。アプリケーションが使用するICチップの機能は,アプリケーションごとに異なるため,アプリケーションによっては,アプリケーションごとに自己診断の実施内容を管理できた方が,自己診断の時間を短縮できると考えらえる。
【0007】
そこで,本発明では,アプリケーションごとに自己診断の実施内容を管理できるICカードおよび方法を提案する。
【課題を解決するための手段】
【0008】
上述した課題を解決する第1発明は,NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信すると起動し,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能のみを自己診断する自己診断管理モジュールを備えたことを特徴とするICカードである。
【0009】
上述した課題を解決する第2発明は,NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信すると起動し,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能のみを自己診断する自己診断管理モジュールをメモリに実装したICカード用ICチップである。
【0010】
上述した課題を解決する第3発明は,ICカードが,NVMに記憶されたアプリケーションの選択に用いられるセレクトコマンドのコマンドメッセージを受信するステップと,前記ICカードが,すべての前記アプリケーションで共通使用されるICチップ機能以外で,前記アプリケーションが使用するICチップ機能を前記アプリケーションごとに記した自己診断管理テーブルを参照し,前記セレクトコマンドで示される前記アプリケーションが使用するICチップ機能を自己診断するステップを順に実行することを特徴とするICカードの自己診断方法である。
【発明の効果】
【0011】
上述した本発明は,アプリケーションごとに自己診断の実施内容を管理できるように,すべてのアプリケーションで共通使用されるICチップ機能以外に,アプリケーションが使用するICチップ機能をアプリケーションごとに記した自己診断管理テーブルに基づいて,セレクトコマンドで示されるアプリケーションが使用するICチップ機能のみを自己診断するように構成されている。
【図面の簡単な説明】
【0012】
【
図4】自己診断管理モジュールの動作を説明する図。
【発明を実施するための形態】
【0013】
ここから,本発明に係る実施形態について記載する。本実施形態は,本発明の理解を容易にするためのものであり,本発明は,本実施形態に限定されるものではない。また,特に断りのない限り,図面は,本発明の理解を容易にするために描かれた模式的な図である。
【0014】
図1は,本実施形態に係るICカード1の概略構成図で,
図2は,ICチップ2の概略構成図である。
図1において,本実施形態に係るICカード1は,接触および非接触の二つのインターフェースを有するデュアルインターフェース型のカードである。ICカード1は,接触通信で用いる接触パッド211を表面に実装し,非接触通信で用いるアンテナコイル212を内部に実装する。
図1で図示したICカード1において,ICカード1が備えるICチップ2は,接触パッド211の裏面に実装されている。
【0015】
図1で示したように,ICカード1は,ハードウェアとなるICチップ2と,ICチップ2の上で直接動作するオペレーティングシステム3と,オペレーティングシステム3を基盤として動作する少なくとも一つ(ここでは,二つ)のアプリケーション4から構成される。
【0016】
ICカード1に実装したICチップ2には様々な機能が集積される。
図2で図示したように,本実施形態において,ICチップ2には,データの保存に用いるメモリ機能以外のICチップ2機能として,中央演算処理装置であるCPU200(Central Processing Unit)と,特定の暗号演算処理を行う機能であるコプロセッサー204(Co-processor)と,巡回冗長検査に係る誤り符号の演算処理を行う機能であるCRC演算回路206(CRC: Cyclic Redundancy Check)がバス210に接続している。更に,ICチップ2には,ICチップ機能として,接触パッド211のI/O端子と接続し接触通信に係る処理を実行する機能であるUART205(Universal Asynchronous Receiver/Transmitter)と,アンテナコイル212と接続し非接触通信に係る処理を実行する機能であるRFI209(RFI: Radio Frequency Interface)がバス210に接続している。更に,ICチップ2には,ICチップ機能として,疑似乱数を生成する回路である乱数生成器 207(RNG: Random Number Generator)と,時間を計測する回路であるタイマー208(Timer)がバス210に接続している。
【0017】
更に,
図2では,ICチップ2には,データの保存に用いるメモリ機能として,読み出しのみが可能なメモリであるROM201(ROM: Read Only Memory)と,揮発性メモリであるRAM202(RAM: Random Access Memory)と,電気的に書き換え可能な不揮発性メモリであるNVM203(NVM: Non-volatile memory)が集積されている。RAM202には,オペレーティングシステム3やアプリケーション4が一時的に記憶するデータが記憶される。ROM201には,オペレーティングシステム3のプログラムコードなどが記憶される。NVM203には,オペレーティングシステム3のデータや,アプリケーション4のプログラムコードとデータが記憶される。
【0018】
オペレーティングシステム3は,ICカード1の基本機能と,アプリケーション4が利用する機能をアプリケーション4に提供するコンピュータプログラムである。本実施形態において,オペレーティングシステム3は,ICカード1の基本機能として,アプリケーション4などの選択に用いるコマンドであるセレクトコマンド30(Select Command)と,ICチップ機能の自己診断を行うコンピュータプログラムである自己診断管理モジュール31(Self-Test Management Module)を備える。
【0019】
セレクトコマンド30は,セレクトコマンド30のコマンドメッセージで示されるアプリケーション4を起動させるコマンドである。オペレーティングシステム3は,セレクトコマンド30により選択可能なアプリケーション4を示すアプリケーションテーブル32を有し,このアプリケーションテーブル32には,アプリケーション識別子(AID: Application Identifier)とアプリケーション4を記憶したNVM203の領域が少なくともアプリケーション4ごとに記載されている。
【0020】
一般的に,ICチップ2が有するICチップ機能に係る自己診断はICカード1が起動したときに実行される。しかし,ICカード1に複数のアプリケーション4を実装する場合,アプリケーション4で使用するICチップ機能はアプリケーション4ごとに異なることがあるため,本実施形態に係るICカード1は,アプリケーション4ごとに自己診断の実施内容を管理できるように構成されている。
【0021】
アプリケーション4ごとに自己診断の実施内容を管理できるように,本実施形態に係る自己診断管理モジュール31は,すべてのアプリケーション4で共通使用されるICチップ機能以外で,アプリケーション4が使用するICチップ機能をアプリケーション4ごとに記した自己診断管理テーブル310と,ICチップ機能の自己診断を行う機能別診断モジュール311をこのICチップ機能ごとに備える。
【0022】
図3は,自己診断管理テーブル310を説明する図である。
図3で図示したように,自己診断管理テーブル310は,すべてのアプリケーション4で共通使用されるICチップ機能以外で,アプリケーション4が使用するICチップ機能をアプリケーション4ごとに記したテーブルである。
図3では,行はアプリケーション4で,列はICチップ機能になっている。
【0023】
自己診断管理テーブル310の列に対応するICチップ機能は,すべてのアプリケーション4で共通使用されるICチップ機能以外のICチップ機能になる。
図2で図示したICチップ機能において,CPU200およびメモリ機能(ROM201,RAM202,NVM203)は,すべてのアプリケーション4が共通使用するICチップ機能になるため,
図3で図示した自己診断管理テーブル310には,これらに対応する列は設けられていない。
【0024】
図3では,アプリケーション4が使用するICチップ機能に「1」を,アプリケーション4が使用しないICチップ機能に「0」を付けている。例えば,アプリケーション4Aに対応する行において,「1」になっている列に対応するICチップ機能が,アプリケーション4Aが使用するICチップ機能になる。
図3によれば,接触で動作するアプリケーション4Aが使用するICチップ機能は,タイマー208とUART205になる。また,非接触で動作するアプリケーション4Bが使用するICチップ機能は,コプロセッサー204,CRC演算回路206,RFI209,乱数生成器207およびタイマー208になる。
【0025】
機能別診断モジュール311は,ICチップ機能の単位で自己診断を行うモジュールで,自己診断を行う内容はICチップ機能ごとに異なる。機能別診断モジュール311は,BIST (Built-In Self-Test)に代表される自己診断専用のハードウェアモジュールでもよく,または,ICチップ機能を自己診断するためのソフトウェアモジュールでもよい。
【0026】
図4は,自己診断管理モジュール31の動作を説明する図である。
図4を参照する説明は,発明に係る自己診断方法の説明を兼ねている。
【0027】
ICカード1のオペレーティングシステム3が,アプリケーション4を選択するセレクトコマンド30のコマンドメッセージを上位装置から受信すると(ステップS1),自己診断管理モジュール31が起動する(ステップS2)。
【0028】
ICカード1で起動した自己診断管理モジュール31は,まず,セレクトコマンド30で示されたアプリケーション4に対応するNVM203の領域を自己診断する(ステップS3)。アプリケーション4に対応するNVM203の領域は,アプリケーションテーブル32に記載されており,この自己診断には,アプリケーション4に対応するNVM203の領域に記憶された誤り符号が利用される。なお,セレクトコマンド30のコマンドメッセージを受信したときに,アプリケーション4に対応するNVM203の領域を自己診断するのは,アプリケーション4に対応するNVM203の領域はアプリケーション4ごとに異なるからである。
【0029】
自己診断管理モジュール31は,セレクトコマンド30で示されたアプリケーション4に対応するNVM203の領域に係る自己診断結果を確認する(ステップS4)。この自己診断結果が異常の場合,自己診断管理テーブル310に記載されたICチップ機能ごとに繰り返し実行する機能別自己診断処理(ステップS5)を実行することなく,自己診断異常時の処理(ステップS9)を実行して,
図4の手順は終了する。
【0030】
セレクトコマンド30で示されたアプリケーション4に対応するNVM203の領域に係る自己診断結果が正常であれば,自己診断管理モジュール31は,自己診断管理テーブル310に記載されたICチップ機能ごとに繰り返し実行する機能別自己診断処理を実行する(ステップS5)。
【0031】
(ステップS5)の機能別自己診断処理において,自己診断管理モジュール31は,機能別自己診断処理の対象になるICチップ機能が,セレクトコマンド30で示されたアプリケーション4の自己診断対象になっているか確認する(ステップS6)。これは,自己診断管理テーブル310において,セレクトコマンド30で示されたアプリケーション4に対応する行と機能別自己診断処理の対象になるICチップ機能に対応する列で特定される箇所の値が「1」になっているか否かで確認できる。
【0032】
機能別自己診断処理の対象になるICチップ機能が,セレクトコマンド30で示されたアプリケーション4の自己診断対象になっていない場合,自己診断管理モジュール31は,機能別自己診断処理の対象になるICチップ機能に係る自己診断を終了する。
【0033】
図4の(ステップS6)において,機能別自己診断処理の対象になるICチッ機能が,セレクトコマンド30で示されたアプリケーション4の自己診断対象になっている場合,自己診断管理モジュール31は,機能別自己診断処理の対象になるICチップ機能に対応する機能別診断モジュール311を作動させ,機能別自己診断処理の対象になるICチップ機能を自己診断する(ステップS7)。
【0034】
次に,自己診断管理モジュール31は,機能別診断モジュール311が実行したICチップ機能の自己診断結果を確認する(ステップS8)。自己診断結果が正常の場合,自己診断管理モジュール31は,機能別自己診断処理の対象になるICチップ機能に係る自己診断を終了する。
【0035】
自己診断結果が異常の場合,自己診断管理モジュール31は,機能別自己診断処理(S5)の対象にしていないICチップ機能が自己診断管理テーブル310にあるかないかに係わらず,ループ処理である機能別自己診断処理を抜けて,自己診断異常時の処理(ステップS9)を実行し,
図4の手順は終了する。自己診断異常時の処理の内容は任意である。自己診断異常時の処理として,ICチップ機能の異常を示すセレクトコマンド30のレスポンスAPDUを返信してもよく,これ以降の処理を実行しない状態にICチップ2を遷移させてもよい。
【0036】
機能別自己診断処理の対象になるICチップ機能の自己診断を終了すると,自己診断管理モジュール31は,機能別自己診断処理の対象にしていないICチップ機能が自己診断管理テーブル310にあるか確認し,ある場合は,機能別自己診断処理の対象にしていないICチップ機能の一つを次の機能別自己診断処理の対象にする。また,機能別自己診断処理の対象にしていないICチップ機能が自己診断管理テーブル310にない場合,機能別自己診断処理は終了し,
図4の手順は終了する。
【0037】
アプリケーション4が使用するICチップ機能やアプリケーション4の容量が大きい場合,ICカード1の規格で定められたレスポンスの待ち時間より
図4で図示した処理に要する時間が長くなることがある。しかし,セレクトコマンド30のコマンドメッセージを受信したときに機能別自己診断処理などを行うことで,レスポンスの待ち時間より
図4で図示した処理に要する時間が長くても,時間延長要求(例えば,ISO7816などで定義されているS(WTX要求)ブロック)を利用すれば,自己診断に係る処理を完了させることができる。
【0038】
なお,すべてのアプリケーション4で共通使用されるICチップ機能は,自己診断管理テーブル310を参照せずに自己診断される。例えば,セレクトコマンド30のコマンドメッセージを受信したときではなく,CPU200とメモリ機能の一部(ROM201とRAM202)は,ICカード1の起動時に自己診断するとよい。
【0039】
また,本発明は,デュアルインターフェース型のカード以外(例えば,接触型のカード)にも適用できる。
【符号の説明】
【0040】
1 ICカード
2 ICチップ
3 オペレーティングシステム
30 セレクトコマンド
31 自己診断管理モジュール
310 自己診断管理テーブル
311 機能別診断モジュール
32 アプリケーションテーブル
4 アプリケーション