説明

携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置

【課題】 エラーが発生した後の処理をより効率よく行う事ができる携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置を提供する。
【解決手段】 携帯可能電子装置2は、ステータス情報を記憶するステータス情報記憶部28aを具備し、受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納する。当該携帯可能電子装置の起動時、前記ステータス情報記憶部に格納されているステータス情報を当該携帯可能電子装置の処理端末1に通知する。前記処理装置は、前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識し、前記携帯可能電子装置に送信するコマンドを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、コマンドを送受信することにより種々の処理を実現する携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、国際標準規格ISO/IEC7816、ISO/IEC14443に準拠したICカードである。ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
上記したようなICカードは、種々のアプリケーションを記憶している。ICカードは、ICカードのリーダライタ(カードリーダライタ)から接触通信、または非接触通信によりコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ICカードは、種々の機能を実現することができる。
【0005】
しかし、一連の処理が完了する前にICカードにおいてエラーが発生した場合、カードリーダライタは、処理をやり直す必要がある。そこで、エラーが発生した場合、エラーが発生した処理ステップにおいてアクセスしたメモリのエリア情報をカードリーダライタ側に出力するICカードが提供されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平11−39198号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
通常、ICカードにおける通信時のエラーは、例えば、フレーミングエラー、オーバーランエラー、パリティエラー、及びCRCエラー等が存在する。また、ICカードにおけるコマンド処理中のエラーとして、コプロセッサ動作時の電力不足、または、書き込み時の電力不足などにより発生するエラーなどが存在する。
【0008】
上記した特許文献のICカードは、コマンド処理中のエラーが発生した場合、カードリーダライタにレスポンスを送信することができない。即ち、この場合、カードリーダライタは、ICカードにおいて発生したエラーを検知することができないという問題がある。ICカードの状態を検知できない場合、カードリーダライタは、搬送波を一度止め、ICカードに対する処理を始めからやり直す必要があるという問題がある。
【0009】
そこで、本発明の目的は、エラーが発生した後の処理をより効率よく行う事ができる携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置を提供することにある。
【課題を解決するための手段】
【0010】
本発明の一実施形態としての携帯可能電子装置の処理システムは、コマンドに応じて処理を行う携帯可能電子装置及び前記携帯可能電子装置の処理装置を備える携帯可能電子装置の処理システムであって、前記携帯可能電子装置は、前記処理装置とデータの送受信を行う第1の送受信部と、ステータス情報を記憶するステータス情報記憶部と、前記第1の送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、当該携帯可能電子装置の起動時に前記第1の送受信部により前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、を具備し、前記処理装置は、前記携帯可能電子装置とデータの送受信を行う第2の送受信部と、前記第2の送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、を具備する。
【0011】
また、本発明の一実施形態としての携帯可能電子装置は、端末から受信するコマンドに応じて処理を行う携帯可能電子装置であって、前記処理装置とデータの送受信を行う送受信部と、ステータス情報を記憶するステータス情報記憶部と、前記送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、当該携帯可能電子装置の起動時に前記送受信部により前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、を具備する。
【0012】
また、本発明の一実施形態としての携帯可能電子装置の処理装置は、携帯可能電子装置を処理する処理装置であって、前記携帯可能電子装置とデータの送受信を行う送受信部と、前記送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、を具備する。
【発明の効果】
【0013】
この発明の一形態によれば、エラーが発生した後の処理をより効率よく行う事ができる携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置を提供することができる。
【図面の簡単な説明】
【0014】
【図1】図1は、本発明の一実施形態に係る携帯可能電子装置の処理システムの構成の例について説明するためのブロック図である。
【図2】図2は、図1に示す端末装置の構成例について説明するためのブロック図である。
【図3】図3は、図1に示すICカードの構成例について説明するためのブロック図である。
【図4】図4は、図1に示すICカード処理システムの各構成において行われる処理について説明するためのシーケンスである。
【図5】図5は、本実施形態に係る端末装置及びICカードにおいて行われる処理の例について説明するためのシーケンスである。
【図6】図6は、ステータス情報を含むATAの構成例について説明するための説明図である。
【図7】図7は、本実施形態に係る端末装置及びICカードにおいて行われる処理の他の例について説明するためのシーケンスである。
【図8】図8は、ステータス情報を含む第2の認証コマンドレスポンスの構成例について説明するための説明図である。
【図9】図9は、本実施形態に係る端末装置及びICカードにおいて行われる処理のさらに他の例について説明するためのシーケンスである。
【図10】図10は、ステータス確認コマンドを含むATTRIBの構成例について説明するための説明図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら、本発明の一実施形態に係る携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置について詳細に説明する。
【0016】
図1は、本発明の一実施形態に係るICカード処理システム10の構成例について説明するためのブロック図である。
図1に示すようにICカード処理システム10は、携帯可能電子装置の処理装置(端末装置)1と携帯可能電子装置(ICカード)2とを備えている。端末装置1とICカード2とは、接触通信、または非接触通信により互いに種々のデータの送受信を行う。なお、ここでは、ISO/IEC14443に規定されるTypeBの通信プロトコルによりデータの送受信が行われる事を想定して説明する。
【0017】
図2は、図1に示す端末装置の構成例について説明するためのブロック図である。図2に示すように、端末装置1は、制御部11、ディスプレイ12、キーボード13、カードリーダライタ14、及び記憶部15などを有している。
【0018】
制御部11は、CPU、ROM、及びRAMなどを備える。制御部11は、端末装置1全体の動作を制御する。
ディスプレイ12は、制御部11の制御により種々の情報を表示する。キーボード13は、端末装置1の操作者による操作を操作信号として受け取る。
【0019】
カードリーダライタ14は、ICカード2と通信を行うためのインターフェース装置である。カードリーダライタ14は、ICカード2に対して、電源供給、クロック供給、リセット制御、及びデータの送受信などを行う。即ち、カードリーダライタ14は、送受信部として機能する。
【0020】
制御部11は、カードリーダライタ14によりICカード2に対して種々のコマンドを入力する。ICカード2は、例えば、カードリーダライタ14からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【0021】
また、制御部11は、ICカード2に読み取りコマンドを送信することにより、ICカード2からデータを読み出す。制御部11は、ICカード2から受信したデータに基づいて種々の処理を行う。
【0022】
上記のカードリーダライタ14は、ICカード2とデータの送受信を行う。例えば、ICカード2が接触式携帯可能電子装置として構成される場合、カードリーダライタ14は、ICカード2のコンタクトパターンと接続するための接触端子を備える。
【0023】
また、ICカード2が、非接触式携帯可能電子装置として構成される場合、カードリーダライタ14は、信号処理部、送受信回路、及びアンテナなどを備える。
【0024】
信号処理部は、ICカード2との間で送受信するデータの符号化、復号、変調、及び復調を行なう。送受信回路は、信号処理部により変調されたデータ、及び、アンテナにより受信したデータを増幅する。
【0025】
アンテナは、送信するデータに応じて磁界を発生させることにより、ICカード2に対してデータを送信する。また、アンテナは、電磁誘導により発生した誘導電流に基づいてICカード2から送信されるデータを認識する。
【0026】
制御部11は、カードリーダライタ14によりICカード2に初期設定コマンドを送信することにより、ICカード2との通信に関する設定を行う。即ち、制御部11は、初期設定処理部として機能する。初期設定コマンドは、例えば、起動コマンド及び選択コマンドなどである。ICカード2の検知を行なう為に、カードリーダライタ14は、起動コマンド(例えば、リクエストコマンド、及びウェークアップコマンドなど)を繰り返し通信可能範囲に送信する。
【0027】
ICカード2が存在する場合、ICカード2からの起動コマンドに対する返答がカードリーダライタ14に返る。これにより、カードリーダライタ14は、ICカード2を検知する。また、ICカード2が非接触式携帯可能電子装置である場合、カードリーダライタ14は、所望のICカード2を選択するための選択コマンドを送信する。これにより、カードリーダライタ14とICカード2との間で通信を行う事ができる。
【0028】
また端末装置1は、必要に応じてICカード2に相互認証コマンドを送信する。これにより、相互認証処理が行われる。ICカード2と端末装置1との間で相互認証を行う場合、まず、端末装置1は、乱数を生成し、生成した乱数を暗号化し、ICカード2に暗号化データを送信する。ICカード2は、暗号化データを復号し、復号化データを端末装置1に返信する。また、ICカード2は、乱数を生成し、生成した乱数を暗号化し、端末装置1に暗号化データを送信する。端末装置1は、暗号化データを復号し、復号化データを端末装置1に送信する。ICカード2及び端末装置1は、通信対象の装置から送信される復号化データと元の乱数データとが一致するか否かを確認することにより、相互認証を行う。
【0029】
上記した相互認証処理は、ICカード2と端末装置1との間でコマンド及びレスポンスの送受信を2回ずつ行うことにより実現される。相互認証コマンドは、第1の認証コマンドと第2の認証コマンドとを含む。第1の認証コマンド及び第2の認証コマンドについては後述する。
【0030】
記憶部15は、書き換え可能な不揮発性メモリである。制御部11は、例えば、ICカード2においてエラーが発生したと判断した場合、ICカード2においてエラーが発生したことを示す情報を生成し、記憶部15に記憶する。この場合、制御部11は、カード識別情報(例えば、PUPIまたはCIDなどのカード固有のID番号)などをエラーが発生したことを示す情報に関連付けて格納する。即ち、記憶部15は、エラー履歴記憶部として機能する。
【0031】
図3は、図1に示すICカード2の構成例について説明するためのブロック図である。
図3に示すように、ICカード2は、カード状の本体21と、本体21内に内蔵されたICモジュール22とを備えている。ICモジュール22は、1つ又は複数のICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22に形成されている。
【0032】
ICチップ23は、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部29、コプロセッサ30、及びエラー検知部31などを備えている。
【0033】
通信部24は、端末装置1のカードリーダライタ14と通信を行うためのインターフェースである。通信部24は、送受信部として機能する。
カードリーダライタ14と接触通信を行う場合、通信部24は、クロック部、送受信部、及びリセット検出回路などを備える。クロック部は、端末装置1のカードリーダライタ14から供給されるクロック信号をUniversal Asynchronous Receiver Transmitter(UART)などのハードに供給する。送受信部は、端末装置1とで送受信を行うデータの信号処理を行う。リセット検出回路は、端末装置1のカードリーダライタ14から送信される信号におけるリセット信号を検出する。
【0034】
また、カードリーダライタと非接触通信を行う場合、通信部24は、端末装置1のカードリーダライタ14と非接触通信を行うアンテナを備える。またさらに、通信部24は、送受信データの増幅を行う送受信回路、及び復号変調などの処理を行う信号処理部を備える。
【0035】
CPU25は、ICカード2全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、カードリーダライタ14から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【0036】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0037】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介して端末装置1から受信したデータを一時的に格納する。また、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0038】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ28は、ICカード2の運用用途に応じて制御プログラム及び種々のデータを格納する。
【0039】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROM26に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0040】
また、不揮発性メモリ28は、ステータス情報記憶部(ステータス情報記憶領域)28aを備えている。ステータス情報記憶部28aは、ステータス情報(コマンド種別、及び処理結果)を示す情報を記憶する。ステータス情報記憶部28aは、逐次CPU25により書き換えが行われる記憶領域である。
【0041】
CPU25は、例えば、最後に処理したコマンド種別、及び処理結果をステータス情報記憶部28aに記憶する。即ち、CPU25は、端末装置1から受信するコマンドに基づいて処理を行い、レスポンスを送信する毎に、ステータス情報記憶部28aの情報を更新する。例えば、コマンドに対する処理を正常に完了させた場合、CPU25は、正常終了を示す情報をステータス情報記憶部28aに処理結果として格納する。
【0042】
例えば、1つのデータの書き込みが複数のコマンドに分割される場合、ICカード2のCPU25は、同種のコマンドを受信した回数をカウントする。即ち、CPU25は、1つのデータの処理に関するコマンドが複数のコマンドに分割される場合、実行しているのが何番目のコマンドに対する処理であるのかをカウントする機能を具備する。
【0043】
例えば、あるデータの書き込みを書き込みコマンド1乃至Nにより指示される場合、CPU25は、書き込みコマンドを受信する毎に、書き込みコマンド1、書き込みコマンド2、…書き込みコマンドNとカウントする。CPU25は、ステータス情報記憶部28aのコマンド種別に当該コマンドが何番目のコマンドであるかを示す情報をさらに付加する。
【0044】
電源部29は、ICカード2が非接触式携帯可能電子装置である場合、カードリーダライタ14からのキャリアから電力及び動作クロックを生成する。電源部29は、発生させた電力及び動作クロックをICカード2の各部に電力を供給する。また、電源部29は、ICカード2が接触式携帯可能電子装置である場合、カードリーダライタ14から供給される電力をICカード2の各部に電力を供給する。ICカード2の各部は、電力の供給を受けた場合、動作可能な状態になる。
【0045】
コプロセッサ30は、演算処理をハードウェアにより行う演算部である。例えば、コプロセッサ30は、端末装置1からのコマンドに基づいて、暗号処理などの演算を行う。
【0046】
エラー検知部31は、コマンドの受信から実行の間に発生したエラーを検知する。この場合、エラー検知部31は、発生したエラーの種別を検知する。コマンドの受信時及び実行時に発生するエラーは、例えば、フレーミングエラー、オーバーランエラー、パリティエラー、CRCエラー、コプロセッサ30動作時の電力不足、及び、書き込み時の電力不足などが存在する。エラー検知部31は、上記のエラーの種別を判別し、エラー情報を生成し、CPU25に通知する。
【0047】
CPU25は、エラー検知部31から通知されたエラー情報をコマンドの処理結果としてステータス情報記憶部28aに格納する。即ち、CPU25は、コマンド処理部として機能する。CPU25は、起動時にステータス情報記憶部28aを参照することにより、前回の処理におけるステータスを認識することができる。
【0048】
例えば、ステータス情報記憶部28aにおいて処理結果としてエラー情報が格納されている場合、CPU25は、対応付けられているコマンドの処理中にエラー情報により示されるエラーが発生したと判断する。
【0049】
また、ステータス情報記憶部28aにおいて処理結果として正常終了を示す情報が格納されている場合、CPU25は、対応付けられているコマンドの処理が正常に完了したと判断する。
【0050】
図4は、図1に示すICカード処理システム10の各構成において行われる認証処理について説明するためのシーケンスである。なお、ここでは、端末装置1及びICカード2は、ISO/IEC14443に記載されている通信プロトコルTypeBに準じて通信を行うと仮定して説明する。
【0051】
端末装置1は、常に通信可能範囲にリクエストコマンド(REQB)またはウェークアップコマンド(WUPB)を送信する(ステップS10)。REQB、及びWUPBなどの起動コマンドには、TypeBのREQBで使用されるパラメータ(APf)、用途分野識別子(AFI)、属性情報のパラメータ(PARAM)、及び巡回冗長検査符号(CRC_B)などが含まれる。
【0052】
ICカード2は、カードリーダライタ14から磁界を受け、起電力を発生させると、ICカード2は、REQB、またはWUPBの受信を待つ状態となる。この状態において、REQBまたはWUPBを受信すると、ICカード2のCPU25は、通信に関する設定である初期設定を行う。即ち、CPU25は、初期設定処理部として機能する。
【0053】
初期設定を行うと、CPU25は、REQBに応じてリクエスト応答信号(ATQB)を作成する。ATQBには、例えば、TypeBのATQBで使用されるパラメータ(APa)、カード識別情報(例えば、PUPIまたはCIDなどのカード固有のID番号)、アプリケーションの情報を伝えるための応用データ、プロトコル情報、及びCRC_Bなどが含まれる。ICカード2の通信部24は、ATQBに対してTypeBに準ずる信号処理を施し、カードリーダライタ14に対して送信する(ステップS11)。
【0054】
カードリーダライタ14は、ICカード2から送信されるATQBを受信することにより、通信可能範囲にICカード2が存在することを検知する。なお、通信可能範囲内にICカード2が複数枚存在する場合、カードリーダライタ14は、Slot−Markerコマンドを用いることにより、複数枚のICカード2からATQBを受信することができる。
【0055】
ATQBを受信すると、端末装置1は、選択コマンド(ATTRIB)を生成する。ATTRIBは、例えば、TypeBのATTRIBで使用されるパラメータ(1D)、識別子(Identifier)、パラメータ(PARAM1−4)、上位階層情報(Higher Layer Infomation)、及びCRC_Bなどを含む。
【0056】
制御部11は、カードリーダライタ14により、当該ATTRIBをICカード2に送信する(ステップS12)。
【0057】
ICカード2は、ATTRIBを受信すると、ATTRIBに対するレスポンスであるAnswer to ATTRIB(ATA)を生成する。ATAには、例えば、内部バッファの限界値(MBLI)、識別子(CID)、上位階層レスポンス(Higher Layer Response)、及びCRC_Bなどが含まれる。
【0058】
ICカード2のCPU25は、通信部24により、当該ATAを端末装置1に送信する(ステップS13)。
【0059】
端末装置1の制御部11は、ICカード2からATAを受信すると、第1の認証コマンドを生成する。即ち、制御部11は、乱数Rrを生成し、生成した乱数Rrに対して鍵セットAを用いて暗号化を施す。これにより、制御部11は、暗号化データRrAを取得する。
【0060】
第1の認証コマンドは、クラスバイト(CLA)、コマンド種別(INS)、パラメータ(P1、P2)、データフィールドの長さ(Lc)、データフィールド(DATA)、及び予想されるレスポンスのデータ長(Le)などを含む。例えば、相互認証がTriple−DES方式により行われる場合、第1の認証コマンドは、8bytesのデータにより構成される。
【0061】
制御部11は、生成した第1の認証コマンドをICカード2に送信する(ステップS14)。
【0062】
ICカード2のCPU25は、第1の認証コマンドを受信した場合、第1の認証処理を行う。CPU25は、第1の認証コマンドに含まれている暗号化データに対して復号処理を行う。
【0063】
即ち、CPU25は、第1の認証コマンドに含まれている暗号化データRrAに対して鍵セットAを用いて復号処理を行う。これにより、CPU25は、復号化データRrAを取得する。さらに、CPU25は、復号化データRrAに対して鍵セットBを用いて暗号化を施す。これにより、CPU25は、暗号化データRrBを取得する。
【0064】
また、CPU25は、乱数Rcを生成する。CPU25は、乱数Rcに対して鍵セットAを用いて暗号化を施す。これにより、CPU25は、暗号化データRcAを取得する。CPU25は、暗号化データRrBと、暗号化データRcAとに基づいて第1の認証コマンドレスポンスを生成する。第1の認証コマンドレスポンスは、データフィールド(DATA)、ステータスワード(SW1、SW2)などを含む。CPU25は、通信部24により、当該第1の認証コマンドレスポンスを端末装置1に送信する(ステップS15)。
【0065】
端末装置1は、第1の認証コマンドレスポンスを受信すると、第2の認証コマンドを生成する処理を行う。即ち、制御部11は、ICカード2から第1の認証コマンドレスポンスを受信すると、第1の認証コマンドレスポンスに含まれている暗号化データRrBに対して鍵セットBを用いて復号する。これにより、制御部11は、復号化データRrBを取得する。制御部11は、復号化データRrBと元の乱数Rrとが一致するか否か判定する。復号化データRrBと元の乱数Rrとが一致する場合、制御部11は、ICカード2が正当であると判定する。
【0066】
また、制御部11は、第1の認証コマンドレスポンスに含まれている暗号化データRcAに対して鍵セットAを用いて復号処理を行う。これにより、制御部11は、復号化データRcAを取得する。制御部11は、復号化データRcAに対して鍵セットBを用いて暗号化を施す。これにより、制御部11は、暗号化データRcBを取得する。制御部11は、取得した復号化データRcBに基づいて第2の認証コマンドを生成する。第2の認証コマンドは、CLA、INS、P1、P2、Lc、DATA、及びLeなどを含む情報である。制御部11は、第2の認証コマンドをICカード2に送信する(ステップS16)。
【0067】
ICカード2は、第2の認証コマンドを受信すると、第2の認証処理を行う。即ち、ICカード2のCPU25は、受信した第2の認証コマンドに含まれている暗号化データRcBに対して鍵セットBを用いて復号処理を施す。これにより、CPU25は、復号化データRcBを取得する。CPU25は、復号化データRcBと元の乱数Rcとが一致するか否か判定する。復号化データRcBと元の乱数Rcとが一致する場合、CPU25は、端末装置1が正当であると判定する。
【0068】
この結果に基づいて、CPU25は、第2の認証コマンドレスポンスを生成する。第2の認証コマンドレスポンスは、DATA、SW1、及びSW2などを含む情報である。CPU25は、第2の認証コマンドレスポンスを端末装置1に送信する(ステップS17)。
【0069】
上記の処理により、互いに通信対象が正当であると判断した場合、種々の処理を行う事ができる。即ち、端末装置1が書き込みコマンドNをICカード2に送信する(ステップS18)。ICカード2は、受信した処理コマンドに応じて処理を行い、処理結果(書き込みコマンドNレスポンス)を端末装置に送信する(ステップS19)。
【0070】
端末装置1の制御部11は、書き込みコマンドNレスポンスを受信した場合、書き込みコマンドNの次のステップの処理を指示する為の、書き込みコマンドN+1をICカード2に送信する(ステップS20)。ICカード2は、受信した処理コマンドに応じて処理を行い、処理結果(書き込みコマンドN+1レスポンス)を端末装置に送信する。しかし、図4に示すように、書き込みコマンドN+1を受信した際にエラーが発生した場合、CPU25は、エラー情報を端末装置1に通知する処理を行う。しかし、例えば、電力不足などの為にエラーが発生したことを示すエラー情報をレスポンスとして送信できない場合がある。
【0071】
図5は、本実施形態に係る端末装置1及びICカード2において行われる処理の例について説明するためのシーケンスである。
【0072】
端末装置1は、エラー情報を受信した場合、または、送信したコマンドに対するレスポンスを受信しない状態が所定時間以上経過した場合、ICカード2においてエラーが発生したと判断する。ICカード2においてエラーが発生したと判断した場合、端末装置1は、再び通信可能範囲にリクエストコマンド(REQB)またはウェークアップコマンド(WUPB)を送信する状態となる(ステップS21)。
【0073】
ICカード2は、起動コマンドを受信した場合、起動処理を行い、ATQBを端末装置1に送信する(ステップS22)。
【0074】
端末装置1は、ATQBを受信した場合、ICカード2を選択するためのATTRIBをICカード2に対して送信する(ステップS23)。
【0075】
ICカード2は、ATTRIBを受信した場合、ステータス情報を確認する。即ち、ICカード2のCPU25は、ステータス情報記憶部28aを参照し、最後に処理したコマンドのコマンド種別と処理結果とを確認する。
【0076】
なお、この場合、CPU25は、通信対象の端末装置1が、前回エラーが発生した際に通信を行っていた端末装置1であるか否かを判定する。例えば、CPU25は、ステータス情報記憶部28aにコマンド種別情報を記憶する場合、コマンドに含まれる端末装置1の識別情報をさらに記憶する。CPU25は、ステータス情報記憶部28aに格納されている識別情報と、ATTRIBに含まれる識別情報とを比較し、通信対象の端末が前回エラーが発生した際に通信を行っていた端末装置1であるか否かを判定する。
【0077】
CPU25は、通信対象の端末が前回エラーが発生した際に通信を行っていた端末装置1であると判定した場合、ATTRIBに対するレスポンス(ATA)にステータス情報を付加する。
【0078】
図6は、ステータス情報を含むATAの構成例について説明するための説明図である。
図6に示すように、CPU25は、ステータス情報をATAの上位階層レスポンスに格納し、ATAを端末装置1に送信する(ステップS24)。即ち、CPU25は、ステータス情報通知部として機能する。
【0079】
例えば、書き込みコマンドN+1とエラー情報とがステータス情報記憶部28aに格納されている場合、CPU25は、エラー情報と、このエラーが発生したコマンド(この場合、書き込みコマンドN+1)を示す情報とをステータス情報として上位階層レスポンスに格納する。
【0080】
また、例えば、書き込みコマンドNと正常終了を示す処理結果とがステータス情報記憶部28aに格納されている場合、CPU25は、正常終了を示す情報と、この処理結果に対応するコマンドとをステータス情報として上位階層レスポンスに格納する。
【0081】
端末装置1の制御部11は、図6に示すようなATAを受信した場合、ICカード2のステータスを認識することができる。即ち、制御部11は、認識処理部として機能する。また、制御部11は、ICカード2のステータスに応じて次に送信するコマンドを選択し、ICカード2に送信する(ステップS25)。
【0082】
例えば、端末装置1は、受信したATAにステータス情報として書き込みコマンドN+1及びエラー情報が含まれている場合、書き込みコマンドN+1に対する通信処理またはコマンド処理においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0083】
また、例えば、受信したATAにステータス情報として書き込みコマンドN及び正常終了を示す情報が含まれている場合、後続のコマンドが存在するか否か判断する。即ち、端末装置1は、前回処理時に、書き込みコマンドNの後にコマンドをICカード2に送信したか否かを判断する。送信している場合、書き込みコマンドNの次のコマンド(この場合、書き込みコマンドN+1)においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0084】
ICカード2は、書き込みコマンドN+1を受信すると、書き込みコマンドN+1に対して処理を行い、書き込みコマンドN+1レスポンスを端末装置1に送信する(ステップS26)。
【0085】
これにより、ICカード2は、エラーが発生する前までのステップを再び行うことなく、一連のコマンド処理を行う事ができる。
【0086】
図7は、本実施形態に係る端末装置1及びICカード2において行われる処理の他の例について説明するためのシーケンスである。
【0087】
端末装置1は、送信したコマンドに対するレスポンスを受信しない状態が所定時間以上経過した場合、ICカード2においてエラーが発生したと判断する。ICカード2においてエラーが発生したと判断した場合、端末装置1は、再び通信可能範囲にリクエストコマンド(REQB)またはウェークアップコマンド(WUPB)を送信する状態となる(ステップS31)。
【0088】
ICカード2は、起動コマンドを受信した場合、起動処理を行い、ATQBを端末装置1に送信する(ステップS32)。
【0089】
端末装置1は、ATQBを受信した場合、ICカード2を選択するためのATTRIBをICカード2に対して送信する(ステップS33)。ICカード2は、ATTRIBを受信した場合、ATAを生成し、端末装置1に送信する(ステップS34)。
【0090】
端末装置1は、ATAを受信すると、第1の認証コマンドを生成し、ICカード2に送信する(ステップS35)。ICカード2は、第1の認証処理を行い、第1の認証コマンドレスポンスを端末装置1に送信する(ステップS36)。
【0091】
端末装置1は、第1の認証コマンドレスポンスを受信すると、ICカード2の認証を行う。ICカード2を認証した場合、端末装置1は、第2の認証コマンドを生成し、ICカード2に送信する(ステップS37)。ICカード2は、第2の認証処理を行う。これにより、ICカード2は、端末装置1の認証を行う。
【0092】
ICカード2のCPU25は、認証を行ったを受信した場合、ステータス情報を確認する。即ち、ICカード2のCPU25は、ステータス情報記憶部28aを参照し、最後に処理したコマンドのコマンド種別と処理結果とを確認する。
【0093】
なお、この場合、CPU25は、通信対象の端末装置1が、前回エラーが発生した際に通信を行っていた端末装置1であるか否かを判定する。例えば、CPU25は、ステータス情報記憶部28aにコマンド種別情報を記憶する場合、認証コマンドに含まれる端末装置1の識別情報をさらに記憶する。CPU25は、ステータス情報記憶部28aに格納されている識別情報と、第1または第2の認証コマンドに含まれる識別情報とを比較し、通信対象の端末が前回エラーが発生した際に通信を行っていた端末装置1であるか否かを判定する。
【0094】
CPU25は、通信対象の端末が前回エラーが発生した際に通信を行っていた端末装置1であると判定した場合、第2の認証コマンドレスポンスにステータス情報を付加し、端末装置1に送信する(ステップS38)。
【0095】
図8は、ステータス情報を含む第2の認証コマンドレスポンスの構成例について説明するための説明図である。
図8に示すように、CPU25は、ステータス情報を第2の認証コマンドレスポンスのDATAに格納し、第2の認証コマンドレスポンスを端末装置1に送信する。
【0096】
端末装置1は、図8に示すような第2の認証コマンドレスポンスを受信した場合、ICカード2のステータスを認識することができる。端末装置1は、ICカード2のステータスに応じて次に送信するコマンドを選択し、ICカード2に送信する(ステップS39)。
【0097】
例えば、端末装置1は、受信した第2の認証コマンドレスポンスにステータス情報として書き込みコマンドN+1及びエラー情報が含まれている場合、書き込みコマンドN+1に対する通信処理またはコマンド処理においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0098】
また、例えば、受信した第2の認証コマンドレスポンスにステータス情報として書き込みコマンドN及び正常終了を示す情報が含まれている場合、後続のコマンドが存在するか否か判断する。即ち、端末装置1は、前回処理時に、書き込みコマンドNの後にコマンドをICカード2に送信したか否かを判断する。送信している場合、書き込みコマンドNの次のコマンド(この場合、書き込みコマンドN+1)においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0099】
ICカード2は、書き込みコマンドN+1に対して処理を行い、書き込みコマンドN+1レスポンスを端末装置1に送信する(ステップS40)。
【0100】
これにより、ICカード2は、エラーが発生する前までのステップを再び行うことなく、相互認証、及び一連のコマンド処理を行う事ができる。また、この場合、エラー情報を一般的なコマンドレスポンスである認証コマンドレスポンスのDATAに格納する為、通信プロトコルTypeB以外にも容易に適用することができる。また、非接触通信に限らず、接触通信であっても、容易に本発明を適用することができる。
【0101】
図9は、本実施形態に係る端末装置1及びICカード2において行われる処理のさらに他の例について説明するためのシーケンスである。本例では、ICカード2から送信されるATQBに含まれるカード識別情報はカード毎に固定であると仮定する。
【0102】
端末装置1は、送信したコマンドに対するレスポンスを受信しない状態が所定時間以上経過した場合、ICカード2においてエラーが発生したと判断する。この場合、制御部11は、エラーが発生したことを示す情報と、エラーが発生したICカード2のカード識別情報とをエラー履歴として記憶部15に記憶する。
【0103】
ICカード2においてエラーが発生したと判断した場合、端末装置1は、再び通信可能範囲にリクエストコマンド(REQB)またはウェークアップコマンド(WUPB)を送信する状態となる(ステップS41)。
【0104】
ICカード2は、起動コマンドを受信した場合、起動処理を行い、ATQBを端末装置1に送信する(ステップS42)。
【0105】
端末装置1は、受信したATQBに基づいて通信対象のICカード2にエラー履歴が存在するか否か判断する。即ち、端末装置1の制御部11は、ATQBに含まれるカード識別情報が記憶部15に格納されているか否かを判断する。ATQBに含まれるカード識別情報が記憶部15に格納されている場合、制御部11は、ステータス情報を送信するように要求するためのステータス確認コマンドを生成する。即ち、制御部11は、ステータス確認部として機能する。
【0106】
同時に、制御部11は、ATTRIBコマンドを生成する。制御部11は、ステータス確認コマンドをATTRIBの上位階層情報に格納する。
【0107】
図10は、ステータス確認コマンドを含むATTRIBの構成例について説明するための説明図である。
【0108】
図10に示すように、制御部11は、ステータス確認コマンド(「CLA」「INS」「P1」「P2」「Lc」「DATA」「Le」)をATTRIBの上位階層情報に格納し、ICカード2に送信する(ステップS43)。
【0109】
ICカード2のCPU25は、図10に示すATTRIBを受信した場合、ATTRIBの上位階層情報にコマンドが格納されているか否か判断する。上位階層情報にステータス確認コマンドが格納されている場合、CPU25は、ステータス情報記憶部28aの内容を確認する。
【0110】
例えば、ステータス情報記憶部28aにおいて処理結果としてエラー情報が格納されている場合、CPU25は、対応付けられているコマンドの処理中にエラー情報により示されるエラーが発生したと判断する。
【0111】
また、ステータス情報記憶部28aにおいて処理結果として正常終了を示す情報が格納されている場合、CPU25は、対応付けられているコマンドの処理が正常に完了したと判断する。
【0112】
ICカード2は、上記のステータス情報をATAの上位階層レスポンスに格納し、ATAを端末装置1に送信する(ステップS44)。
【0113】
例えば、書き込みコマンドN+1とエラー情報とがステータス情報記憶部28aに格納されている場合、CPU25は、エラー情報と、このエラーが発生したコマンド(この場合、書き込みコマンドN+1)を示す情報とをステータス情報として上位階層レスポンスに格納する。
【0114】
また、例えば、書き込みコマンドNと正常終了を示す処理結果とがステータス情報記憶部28aに格納されている場合、CPU25は、正常終了を示す情報と、この処理結果に対応するコマンドとをステータス情報として上位階層レスポンスに格納する。
【0115】
端末装置1は、ステータス情報を含むATAを受信した場合、ICカード2のステータスを認識することができる。端末装置1は、ICカード2のステータスに応じて次に送信するコマンドを選択し、ICカード2に送信する(ステップS45)。
【0116】
例えば、端末装置1は、受信したATAにステータス情報として書き込みコマンドN+1及びエラー情報が含まれている場合、書き込みコマンドN+1に対する通信処理またはコマンド処理においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0117】
また、例えば、受信したATAにステータス情報として書き込みコマンドN及び正常終了を示す情報が含まれている場合、書き込みコマンドNの次のコマンド(この場合、書き込みコマンドN+1)においてエラーが発生したと判断する。この場合、端末装置1は、書き込みコマンドN+1をICカード2に送信する。
【0118】
ICカード2は、書き込みコマンドN+1を受信すると、書き込みコマンドN+1に対して処理を行い、書き込みコマンドN+1レスポンスを端末装置1に送信する(ステップS46)。
【0119】
上記した実施形態によると、ICカード2は、コマンドを処理する毎に処理結果を含むステータスをステータス情報記憶部28aに格納する。ICカード2は、起動時にステータス情報記憶部28aに格納されている情報を参照し、通信対象の端末装置1と前回の通信対象の端末装置が一致する場合、ステータス情報を端末装置1に送信する。端末装置1は、受信したステータス情報に基づいて前回通信時にエラーが発生したコマンドを特定し、エラーが発生したコマンドをICカード2に送信する。
【0120】
これにより、ICカード2は、エラーが発生する前までのステップを再び行うことなく、一連のコマンド処理を行う事ができる。この為、コマンド及びレスポンスの送受信の回数を減らす事ができる。この結果、エラーが発生した後の処理をより効率よく行う事ができる携帯可能電子装置の処理システム、携帯可能電子装置、及び携帯可能電子装置の処理装置を提供することができる。
【0121】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【0122】
上記した実施形態では、認証処理の為の認証データとして乱数Rr及びRcを生成して用いる構成として説明したが、この構成に限定されない。例えば、ATQBに含まれているPUPI、またはCIDなどを認証データとして用いてもよい。この場合、ICカード2は、認証データを復号した際に自身の保有する識別情報と復号化データとで照合することにより、端末装置1におけるICカードの誤認識を検知することができる。
【0123】
また、上記した実施形態では、TypeBの通信プロトコルを前提として説明したが、この構成に限定されない。認証コマンドを格納するだけの空き容量のあるコマンドを起動または選択コマンドとして用いる通信プロトコルであれば、如何なるものであっても本発明を適用することができる。また、接触通信においても同様に本発明を実施することができる。
【符号の説明】
【0124】
1…端末装置、2…ICカード、10…ICカード処理システム、11…制御部、12…ディスプレイ、13…キーボード、14…カードリーダライタ、15…記憶部、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、28a…ステータス情報記憶部、29…電源部、30…コプロセッサ、31…エラー検知部。

【特許請求の範囲】
【請求項1】
コマンドに応じて処理を行う携帯可能電子装置及び前記携帯可能電子装置の処理装置を備える携帯可能電子装置の処理システムであって、
前記携帯可能電子装置は、
前記処理装置とデータの送受信を行う第1の送受信部と、
ステータス情報を記憶するステータス情報記憶部と、
前記第1の送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、
当該携帯可能電子装置の起動時に前記第1の送受信部により前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、
を具備し、
前記処理装置は、
前記携帯可能電子装置とデータの送受信を行う第2の送受信部と、
前記第2の送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、
前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、
を具備することを特徴とする携帯可能電子装置の処理システム。
【請求項2】
前記制御部は、前記ステータス情報がコマンド種別及び正常終了を示す処理結果である場合、前記コマンド種別が示すコマンドの次のステップのコマンドを前記携帯可能電子装置に送信するコマンドとして一連の処理コマンドから選択する事を特徴とする請求項1に記載の携帯可能電子装置の処理システム。
【請求項3】
前記制御部は、前記ステータス情報がコマンド種別及びエラー情報である場合、前記コマンド種別が示すコマンドを前記携帯可能電子装置に送信するコマンドとして一連の処理コマンドから選択する事を特徴とする請求項1に記載の携帯可能電子装置の処理システム。
【請求項4】
前記ステータス情報記憶部は、前記処理端末の識別情報をさらに記憶し、
前記ステータス情報通知部は、前記処理装置の識別情報と前記ステータス情報記憶部に格納されている識別情報とが一致する場合、前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知することを特徴とする請求項1に記載の携帯可能電子装置の処理システム。
【請求項5】
前記ステータス情報通知部は、前記処理端末から受信する選択コマンドに対するレスポンスに前記ステータス情報を格納することを特徴とする請求項1に記載の携帯可能電子装置の処理システム。
【請求項6】
前記ステータス情報通知部は、前記処理端末から受信する認証コマンドに対するレスポンスに前記ステータス情報を格納することを特徴とする請求項1に記載の携帯可能電子装置の処理システム。
【請求項7】
端末から受信するコマンドに応じて処理を行う携帯可能電子装置であって、
前記処理装置とデータの送受信を行う送受信部と、
ステータス情報を記憶するステータス情報記憶部と、
前記送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、
当該携帯可能電子装置の起動時に前記送受信部により前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、
を具備することを特徴とする携帯可能電子装置。
【請求項8】
さらに、前記各部を備えるICモジュールと、
前記ICモジュールが設置される本体と、
を具備することを特徴する請求項7に記載の携帯可能電子装置。
【請求項9】
携帯可能電子装置を処理する処理装置であって、
前記携帯可能電子装置とデータの送受信を行う送受信部と、
前記送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、
前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、
を具備することを特徴とする携帯可能電子装置の処理装置。
【請求項10】
コマンドに応じて処理を行う携帯可能電子装置及び前記携帯可能電子装置の処理装置を備える携帯可能電子装置の処理システムであって、
前記携帯可能電子装置は、
前記処理装置とデータの送受信を行う第1の送受信部と、
ステータス情報を記憶するステータス情報記憶部と、
前記第1の送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、
前記第1の送受信部によりステータス確認コマンドを受信した場合、前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、
を具備し、
前記処理装置は、
前記携帯可能電子装置とデータの送受信を行う第2の送受信部と、
前記第2の送受信部により前記携帯可能電子装置にコマンドを送信してから所定時間レスポンスを受信しない場合、前記携帯可能電子装置の識別情報と前記携帯可能電子装置においてエラーが発生したことを示す情報とを対応付けてエラー履歴として記憶するエラー履歴記憶部と、
前記第2の送受信部により前記携帯可能電子装置に対して送信したコマンドに対するレスポンスに含まれる識別情報と、前記エラー履歴記憶部に格納されている識別情報とが一致する場合、ステータス確認コマンドを前期携帯可能電子装置に対して送信するステータス確認部と、
前記第2の送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、
前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、
を具備することを特徴とする携帯可能電子装置の処理システム。
【請求項11】
端末から受信するコマンドに応じて処理を行う携帯可能電子装置であって、
前記処理装置とデータの送受信を行う送受信部と、
ステータス情報を記憶するステータス情報記憶部と、
前記送受信部により受信するコマンドに基づいて処理を行い、コマンド種別及び処理結果を前記ステータス情報記憶部に格納するコマンド処理部と、
前記送受信部によりステータス確認コマンドを受信した場合、前記ステータス情報記憶部に格納されているステータス情報を前記処理端末に通知するステータス情報通知部と、
を具備することを特徴とする携帯可能電子装置。
【請求項12】
さらに、前記各部を備えるICモジュールと、
前記ICモジュールが設置される本体と、
を具備することを特徴する請求項11に記載の携帯可能電子装置。
【請求項13】
携帯可能電子装置を処理する処理装置であって、
前記携帯可能電子装置とデータの送受信を行う送受信部と、
前記送受信部により前記携帯可能電子装置にコマンドを送信してから所定時間レスポンスを受信しない場合、前記携帯可能電子装置の識別情報と前記携帯可能電子装置においてエラーが発生したことを示す情報とを対応付けてエラー履歴として記憶するエラー履歴記憶部と、
前記送受信部により前記携帯可能電子装置に対して送信したコマンドに対するレスポンスに含まれる識別情報と、前記エラー履歴記憶部に格納されている識別情報とが一致する場合、ステータス確認コマンドを前期携帯可能電子装置に対して送信するステータス確認部と、
前記第2の送受信部により前記携帯可能電子装置から受信するステータス情報に基づいて前記携帯可能電子装置のステータスを認識する認識処理部と、
前記認識処理部による処理結果に基づいて前記携帯可能電子装置に送信するコマンドを制御する制御部と、
を具備することを特徴とする携帯可能電子装置の処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−22841(P2011−22841A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−167893(P2009−167893)
【出願日】平成21年7月16日(2009.7.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】