(57)【要約】【課題】より効率的に処理を実行するＩＣカード、及びＩＣカードの制御プログラムを提供する。【解決手段】一実施形態に係るＩＣカードは、外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、前記外部機器から送信されたコマンドを受信する受信手段と、前記受信手段により受信した前記コマンドに基づいて処理を行い、処理結果に応じてレスポンスを生成する処理手段と、前記レスポンスを前記外部機器に送信する送信手段と、前記ＩＣカードの状態を示す状態情報を記憶する不揮発性メモリと、前記受信手段、前記処理手段、及び前記送信手段による処理の状態に応じて前記不揮発性メモリに記憶されている前記状態情報を更新する更新手段と、前記状態情報を前記外部機器に通知する通知手段と、を具備する。【選択図】図２
2013175126.tif 000002
【特許請求の範囲】
【請求項１】
外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記受信手段により受信した前記コマンドに基づいて処理を行い、処理結果に応じてレスポンスを生成する処理手段と、
前記レスポンスを前記外部機器に送信する送信手段と、
前記ＩＣカードの状態を示す状態情報を記憶する不揮発性メモリと、
前記受信手段、前記処理手段、及び前記送信手段による処理の状態に応じて前記不揮発性メモリに記憶されている前記状態情報を更新する更新手段と、
前記状態情報を前記外部機器に通知する通知手段と、
を具備するＩＣカード。
【請求項２】
前記通知手段は、前記ＩＣカードの起動時に前記状態情報を前記外部機器に通知する、請求項１に記載のＩＣカード。
【請求項３】
前記通知手段は、前記ＩＣカードが起動し、前記受信手段によりリセット解除コマンドを受信した場合、リセット解除コマンドに対するレスポンスであるＡＴＲに前記状態情報を付加し、前記ＡＴＲを前記外部機器に送信する、請求項２に記載のＩＣカード。
【請求項４】
前記通知手段は、前記状態情報を前記ＡＴＲのヒストリカルキャラクタに付加する、請求項３に記載のＩＣカード。
【請求項５】
前記更新手段は、前記受信手段により前記コマンドが受信されている状態、前記処理手段により前記コマンドに応じた処理が実行されている状態、及び前記送信手段により前記レスポンスが送信されている状態のうちのいずれかの状態を示す情報を前記状態情報として更新する、請求項１乃至４のいずれかに記載のＩＣカード。
【請求項６】
前記更新手段は、前記コマンドに含まれている処理対象のファイルを識別する為の識別情報と、前記コマンドの種別を示す種別情報と、を前記状態情報と併せて前記不揮発性メモリに記憶する、請求項５に記載のＩＣカード。
【請求項７】
前記各手段を備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備する請求項１に記載のＩＣカード。
【請求項８】
外部機器から送信されたコマンドに応じて処理を実行するＩＣカードにおいて実行される制御プログラムであって、前記制御プログラムは、前記ＩＣカードを、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記受信手段により受信した前記コマンドに基づいて処理を行い、処理結果に応じてレスポンスを生成する処理手段と、
前記レスポンスを前記外部機器に送信する送信手段と、
前記ＩＣカードの状態を示す状態情報を記憶する不揮発性メモリと、
前記受信手段、前記処理手段、及び前記送信手段による処理の状態に応じて前記不揮発性メモリに記憶されている前記状態情報を更新する更新手段と、
前記状態情報を前記外部機器に通知する通知手段と、
して動作させる。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、及びＩＣカードの制御プログラムに関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵと、ＣＰＵの処理に利用されるＲＡＭメモリなどを有している。
【０００３】
ＩＣカードは、例えば、国際標準規格ＩＳＯ／ＩＥＣ７８１６に準拠したＩＣカードである。ＩＣカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ＩＣカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【０００４】
ＩＣカードは、ＩＣカードを処理する処理装置（リーダライタ）からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ＩＣカードは、種々の機能を実現することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１７３５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＣカードは、リーダライタからの電源供給が途絶えた場合、シャットダウンされる。例えば、ＩＣカードがコマンドの処理の途中でシャットダウンされた場合、ＩＣカード内のメモリに不整合が生じる場合がある。このようなメモリ上の不整合を修正するために、リーダライタは、電源遮断発生の有無と、電源遮断が発生する直前の情報とをＩＣカードから取得する為のコマンドをＩＣカードに送信し、ＩＣカードからレスポンスを受信することにより、ＩＣカードの内部の状態を確認する。
【０００７】
この為、リーダライタ及びＩＣカードは、電源遮断発生の解析を行うためにコマンド及びレスポンスを送受信する必要があり、処理時間を悪化させる可能性があるという課題がある。
【０００８】
そこで、より効率的に処理を実行するＩＣカード、及びＩＣカードの制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一実施形態に係るＩＣカードは、外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、前記外部機器から送信されたコマンドを受信する受信手段と、前記受信手段により受信した前記コマンドに基づいて処理を行い、処理結果に応じてレスポンスを生成する処理手段と、前記レスポンスを前記外部機器に送信する送信手段と、前記ＩＣカードの状態を示す状態情報を記憶する不揮発性メモリと、前記受信手段、前記処理手段、及び前記送信手段による処理の状態に応じて前記不揮発性メモリに記憶されている前記状態情報を更新する更新手段と、前記状態情報を前記外部機器に通知する通知手段と、を具備する。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【図２】図２は、一実施形態に係るＩＣカードの例について説明するための図である。
【図３】図３は、一実施形態に係るＩＣカードの例について説明するための図である。
【図４】図４は、一実施形態に係るコマンドの例について説明するための図である。
【図５】図５は、一実施形態に係るＩＣカードの例について説明するための図である。
【図６】図６は、一実施形態に係るＩＣカードの例について説明するための図である。
【図７】図７は、一実施形態に係るＩＣカードの例について説明するための図である。
【図８】図８は、一実施形態に係るＩＣカードの例について説明するための図である。
【図９】図９は、一実施形態に係るレスポンスの例について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、一実施形態に係るＩＣカード、及びＩＣカードの制御プログラムについて詳細に説明する。
【００１２】
本実施形態に係る携帯可能電子装置（ＩＣカード）２０及びＩＣカード２０を処理する処理装置（端末装置）１０は、例えば、接触通信の機能を備える。これにより、ＩＣカード２０及び端末装置１０は、互いにデータの送受信を行うことができる。
【００１３】
図１は、一実施形態に係るＩＣカード処理システム１の構成例を示す。  
ＩＣカード処理システム１は、ＩＣカード２０を処理する端末装置１０と、ＩＣカード２０と、を備える。
【００１４】
端末装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７、ディスプレイ１８、及び電源部１９を備える。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７、及びディスプレイ１８は、それぞれバスを介して互いに接続されている。
【００１５】
ＣＰＵ１１は、端末装置１０全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１５を介してＩＣカード２０とコマンド及びレスポンスの送受信を行う。
【００１６】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１３は、カードリーダライタ１５を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１７】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭ、ＦＲＡＭなどを備える。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【００１８】
カードリーダライタ１５は、ＩＣカード２０と通信を行うためのインターフェース装置である。カードリーダライタ１５は、接触通信によりＩＣカード２０とデータの送受信を行う。
【００１９】
接触通信を行う場合、カードリーダライタ１５は、ＩＣカード２０が装着されるスロットと、ＩＣカード２０が備えるコンタクトパターンと接続される複数の接触端子を備える。
【００２０】
スロットにＩＣカード２０が装着される場合、カードリーダライタ１５の複数の接触端子は、ＩＣカード２０のコンタクトパターンに接続される。これにより、端末装置１０とＩＣカード２０とは電気的に接続される。カードリーダライタ１５は、スロットに装着されるＩＣカード２０に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【００２１】
操作部１７は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部１７は、生成した操作信号をＣＰＵに入力する。これにより、ＣＰＵ１１は、操作者により入力された操作に基づいて処理を実行することができる。
【００２２】
ディスプレイ１８は、ＣＰＵ１１、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【００２３】
電源部１９は、端末装置１０の各部に電力を供給する。電源部１９は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置１０の各部に供給する。
【００２４】
図２は、一実施形態に係るＩＣカード２０の構成例を示す。  
図２に示すように、ＩＣカード２０は、例えば、矩形状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備える。ＩＣモジュール２２は、ＩＣチップ２３と、通信部２４とを備える。ＩＣチップ２３と通信部２４とは、互いに接続された状態でＩＣモジュール２２内に形成されている。
【００２５】
なお、本体２１は、少なくとも通信部２４が配設されるＩＣモジュール２２を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【００２６】
ＩＣチップ２３は、通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、電源部３１、及びロジック部３２などを備える。通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、電源部３１、及びロジック部３２は、バスを介して互いに接続されている。
【００２７】
通信部２４は、端末装置（外部機器）１０のカードリーダライタ１５と通信を行うためのインターフェースである。通信部２４は、接触通信により、端末装置１０とデータの送受信を行う。
【００２８】
接触通信を行う場合、通信部２４は、カードリーダライタ１５の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりＩＣモジュール２２の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置１０のカードリーダライタ１５の接触端子と接触可能に形成されている。
【００２９】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部２４は、コンタクトパターンを介してカードリーダライタ１５とデータの送受信を行うことができる。
【００３０】
ＣＰＵ２５は、ＩＣカード２０全体の制御を司る制御部として機能する。ＣＰＵ２５は、ＲＯＭ２６あるいは不揮発性メモリ２８に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置１０から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【００３１】
ＲＯＭ２６は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２６は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２０内に組み込まれる。即ち、ＲＯＭ２６に記憶される制御プログラム及び制御データは、予めＩＣカード２０の仕様に応じて組み込まれる。
【００３２】
ＲＡＭ２７は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２７は、ＣＰＵ２５の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２７は、通信部２４を介して端末装置１０から受信したデータを一時的に格納する。またＲＡＭ２７は、通信部２４を介して端末装置１０に送信するデータを一時的に格納する。またさらに、ＲＡＭ２７は、ＣＰＵ２５が実行するプログラムを一時的に格納する。
【００３３】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ２８は、ＩＣカード２０の運用用途に応じて制御プログラム及び種々のデータを格納する。また、不揮発性メモリ２８は、後述する状態情報を記憶する記憶領域２８ａを有する。
【００３４】
電源部３１は、端末装置１０の各部に電力を供給する。ＩＣカード２０が接触通信を行う構成を備える場合、電源部３１は、通信部２４のコンタクトパターンを介してカードリーダライタ１５から供給される電力をＩＣカード２０の各部に供給する。
【００３５】
ロジック部３２は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部３２は、端末装置１０からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置１０から相互認証コマンドを受信する場合、ロジック部３２は、乱数を生成し、生成した乱数をＣＰＵ２５に伝送する。
【００３６】
ＩＣカード２０は、一次発行と二次発行とにより発行される。端末装置１０は、一次発行において、ＩＣカード２０の不揮発性メモリ２８に種々のデータを格納する為のファイルを創成する。これにより、不揮発性メモリ２８には、Ｍａｓｔｅｒ  Ｆｉｌｅ（ＭＦ）、Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ（ＤＦ）、及びＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＥＦ）などが創成される。
【００３７】
ＭＦは、ファイル構造の根幹となるファイルである。ＤＦは、ＭＦの下位に創成される。ＤＦは、アプリケーションなどをグループ化して格納するファイルである。ＥＦは、ＤＦの下位に創成される。ＥＦは、様々なデータを格納するためのファイルである。また、ＭＦの直下にＥＦが置かれる場合もある。
【００３８】
ＥＦには、Ｗｏｒｋｉｎｇ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＷＥＦ）とＩｎｔｅｒｎａｌ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＩＥＦ）などの種類がある。ＷＥＦは、作業用ＥＦであり、個人情報などを格納する。ＩＥＦは、内部ＥＦであり、例えば、セキュリティのための暗号鍵（暗証番号）などのデータを記憶する。
【００３９】
二次発行では、ＥＦに例えば顧客データなどの個別データが格納される。これにより、ＩＣカード２０が運用可能な状態になる。
【００４０】
図３は、ＩＣカード２０からの初期応答であるＡｎｓｗｅｒ  ｔｏ  ｒｅｓｅｔ（ＡＴＲ）の例を示す。接触通信における初期応答のフレームフォーマットは、例えばＩＳＯ／ＩＥＣ７８１６−３により規定されている。
【００４１】
ＩＣカード２０は、Ｃｏｌｄ  Ｒｅｓｅｔ、またはＷａｒｍ  Ｒｅｓｅｔ時に端末装置１０からリセット状態を解除する為のコマンド（リセット解除コマンド）を受信した場合、ＡＴＲ（リセット解除コマンドに対するレスポンス）を端末装置１０に返信する。これにより、端末装置１０とＩＣカード２０との間で通信が確立される。
【００４２】
ＡＴＲは、ＩＣカード２０の特性を示す情報である。ＡＴＲは、「ＴＳ」、「Ｔ０」、「Ｉｎｔｅｒｆａｃｅ  ｂｙｔｅ（インターフェースバイト）」、「Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓ（ヒストリカルキャラクタ）」、及び「ＴＳＫ」を有する。
【００４３】
ＴＳ（Ｉｎｉｔｉａｌ  Ｃｈａｒａｃｔｅｒ  ＴＳ）は、信号の論理レベルとビット転送順（ＭＳＢまたはＬＳＢ）を決める為のコンベンション（ｃｏｎｖｅｎｔｉｏｎ）を示す。
【００４４】
Ｔ０（Ｆｏｒｍａｔ  ｂｙｔｅ  Ｔ０）は、Ｉｎｔｅｒｆａｃｅ  ｂｙｔｅｓの１セット目のＴＡ１、ＴＢ１、ＴＣ１、及びＴＤ１の存在の有無と、Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓの長さとを示す。
【００４５】
Ｉｎｔｅｒｆａｃｅ  ｂｙｔｅｓは、データ転送プロトコル上の各種のパラメータを示す。Ｉｎｔｅｒｆａｃｅ  ｂｙｔｅｓは、例えば、データ転送速度などを示す。
【００４６】
Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓは、最大で１５ｂｙｔｅｓのデータであり、ＩＳＯ／ＩＥＣ７８１６−４で規定されている。Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓは、ＩＣカード２０の使用方法に関する種々のデータを示す。例えば、Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓは、フォーマットを示す為のバイト、国名を示す為のバイト、ＩＣカード２０の能力などに関する情報を示す為のバイトなどを有する。
【００４７】
ＴＣＫは、Ｔ０からＴＣＫまでの各キャラクタの排他的論理和を示す。ＴＣＫは、最大で３２ｂｙｔｅｓのデータであり、ＩＳＯ／ＩＥＣ７８１６−３で規定されている。
【００４８】
なお、Ｉｎｉｔｉａｌ  ｃｈａｒａｃｔｅｒ  ＴＳ及びＦｏｒｍａｔ  Ｃｈａｒａｃｔｅｒ  Ｔ０は、必須の情報である。また、Ｉｎｔｅｒｆａｃｅ  ｂｙｔｅｓ及びＨｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓは、オプションの情報である。
【００４９】
図４は、端末装置１０から送信されるコマンドの例を示す。  
図４により示されるように、端末装置１０がＩＣカード２０に送信するコマンドは、「ＣＬＡ」、「ＩＮＳ」、「Ｐ１」、「Ｐ２」、「Ｌｃ」、「Ｄａｔａ」、及び「Ｌｅ」などのフィールドを有する。
【００５０】
「ＣＬＡ」は、コマンドの種別を示すｃｌａｓｓ  ｂｙｔｅである。「ＩＮＳ」は、コマンドの種別を示すｉｎｓｔｒｕｃｔｉｏｎ  ｂｙｔｅである。「Ｐ１」及び「Ｐ２」は、「ＩＮＳ」に応じたパラメータを示すｐａｒａｍｅｔｅｒ  ｂｙｔｅである。「Ｐ１」及び「Ｐ２」は、例えばコマンドオプション指定を示す。例えば、「Ｐ１」及び「Ｐ２」は、処理対象のファイルのＩＤなどを示す。
【００５１】
「Ｌｃ」は、「Ｄａｔａ」のデータの長さ（バイト数）を示すｌｅｎｇｔｈ  ｆｉｅｌｄ  ｆｏｒ  ｃｏｒｄｉｎｇ  ｎｕｍｂｅｒ  Ｎｃである。「Ｄａｔａ」は、当該コマンドのデータ本体を示すｃｏｍｍａｎｄ  ｄａｔａ  ｆｉｅｌｄである。「Ｄａｔａ」は、例えば、当該コマンドに基づくコマンド処理で使用されるデータなどを格納する。「Ｌｅ」は、当該コマンドに対するレスポンスのデータ長（最大長）を示すｌｅｎｇｔｈ  ｆｉｅｌｄ  ｆｏｒ  ｃｏｒｄｉｎｇ  ｎｕｍｂｅｒ  Ｎｅである。
【００５２】
即ち、「ＣＬＡ」及び「ＩＮＳ」により、当該コマンドの種類が示される。ＩＣカード２０は、受信したコマンドの「ＣＬＡ」及び「ＩＮＳ」の値を解析することにより、受信したコマンドの種類を認識する。
【００５３】
ＩＣカード２０は、端末装置１０から送信されたコマンドに基づいて処理を実行する。ＩＣカード２０は、処理結果に基づいてレスポンスを端末装置１０に返信する。この処理の最中で電源遮断が発生した場合、端末装置１０は、カード内部の状態を確認する必要がある。この為に、ＩＣカード２０は、カード内部の状態を示す情報（状態情報）を逐次更新する。
【００５４】
図５は、状態情報の例を示す。状態情報は、例えば、不揮発性メモリ２８の記憶領域２８ａに記憶される。ＩＣカード２０のＣＰＵ２５は、処理状況に応じて状態情報を逐次更新する。なお、状態情報は、電源が遮断されたタイミングを示す電源遮断フラグである。
【００５５】
図５は、書き込みコマンドを受信した場合の状態情報の例を示す。例えば、書き込みコマンドを受信した場合、ＣＰＵ２５は、状態情報として「０Ａ」をセットする。また、書き込みコマンドに応じた書き込み処理を開始した場合、ＣＰＵ２５は、状態情報として「１Ｂ」をセットする。また、書き込み処理が完了した場合、ＣＰＵ２５は、状態情報として「２Ｃ」をセットする。ＣＰＵ２５は、書き込み処理に応じたレスポンスを端末装置１０に返信した場合、状態情報をリセットする。例えば、ＣＰＵ２５は、状態情報の値を「００」にセットすることにより、リセットする。
【００５６】
このように状態情報を更新することにより、コマンド処理段階と状態情報とが対応するように更新される。即ち、コマンドを受信してから実際に処理を開始するまでの間、状態情報は「０Ａ」にセットされる。また、コマンドに応じた処理を開始してから処理が完了するまでの間、状態情報は「１Ｂ」にセットされる。また、コマンドに応じた処理が完了してからレスポンスを送信するまでの間、状態情報は「２Ｃ」にセットされる。
【００５７】
ＣＰＵ２５は、起動時に状態情報を読み込むことにより、電源が遮断されたタイミングを認識することができる。即ち、状態情報が「０Ａ」である場合、ＣＰＵ２５は、コマンドを受信してから実際に処理を開始するまでの間に電源遮断が発生したと判断することができる。また、状態情報が「１Ｂ」である場合、ＣＰＵ２５は、コマンドに応じた処理を開始してから処理が完了するまでの間に電源遮断が発生したと判断することができる。状態情報が「２Ｃ」である場合、ＣＰＵ２５は、コマンドに応じた処理が完了してからレスポンスを送信するまでの間に電源遮断が発生したと判断することができる。
【００５８】
図６は、書き込みコマンド受信時のＩＣカード２０の処理の例を示す。  
まず、コマンドＡ（書き込みコマンド）を受信する（ステップＳ１１）。ＩＣカード２０のＣＰＵ２５は、受信したコマンドを解析する。これにより、ＣＰＵ２５は、コマンドからファイルＩＤ、及びＩＮＳを取得する。ＣＰＵ２５は、状態情報として「０Ａ」を記憶領域２８ａに記憶する（ステップＳ１２）。さらに、ＣＰＵ２５は、取得したファイルＩＤ及びＩＮＳを記憶領域２８ａに併せて記憶する。
【００５９】
ＣＰＵ２５は、受信したコマンドＡの妥当性の確認を行う（ステップＳ１３）。妥当性が確認された場合、ＣＰＵ２５は、状態情報を「１Ｂ」に更新する（ステップＳ１４）。また、ＣＰＵ２５は、ファイルＩＤ、及びＩＮＳを更新する。ＣＰＵ２５は、状態情報を「１Ｂ」に更新した後、コマンドＡに応じた処理、即ち書き込み処理を開始する（ステップＳ１５）。
【００６０】
ＣＰＵ２５は、書き込み処理が完了した場合、状態情報を「２Ｃ」に更新する（ステップＳ１６）。また、ＣＰＵ２５は、ファイルＩＤ、及びＩＮＳを更新する。さらに、ＣＰＵ２５は、処理結果に応じてレスポンスを生成し、生成したレスポンスを端末装置１０に送信する（ステップＳ１７）。さらに、ＣＰＵ２５は、ステップＳ１１に移行し、次に処理をするコマンドの受信待ちの状態へと遷移する。
【００６１】
図７は、書き込みを行わないコマンドの受信時のＩＣカード２０の処理の例を示す。  
まず、コマンドＢを受信する（ステップＳ２１）。ＩＣカード２０のＣＰＵ２５は、受信したコマンドを解析する。これにより、ＣＰＵ２５は、コマンドからファイルＩＤ、及びＩＮＳを取得する。ＣＰＵ２５は、状態情報として「０Ａ」を記憶領域２８ａに記憶する（ステップＳ２２）。さらに、ＣＰＵ２５は、取得したファイルＩＤ及びＩＮＳを記憶領域２８ａに併せて記憶する。
【００６２】
ＣＰＵ２５は、受信したコマンドＢの妥当性の確認を行う（ステップＳ２３）。妥当性が確認された場合、コマンドＢに応じた処理を開始する（ステップＳ２４）。
【００６３】
ＣＰＵ２５は、コマンドＢに応じた処理が完了した場合、状態情報を「２Ｃ」に更新する（ステップＳ２５）。また、ＣＰＵ２５は、ファイルＩＤ、及びＩＮＳを更新する。さらに、ＣＰＵ２５は、処理結果に応じてレスポンスを生成し、生成したレスポンスを端末装置１０に送信する（ステップＳ２６）。さらに、ＣＰＵ２５は、ステップＳ２１に移行し、次に処理をするコマンドの受信待ちの状態へと遷移する。
【００６４】
図８は、ＩＣカード２０の起動時の処理の例を示す。ＩＣカード２０は、Ｃｏｌｄ  Ｒｅｓｅｔ、またはＷａｒｍ  Ｒｅｓｅｔ時に端末装置１０からリセット状態を解除する為のコマンドを受信した場合、ＡＴＲを端末装置１０に返信する。
【００６５】
ＣＰＵ２５は、不揮発性メモリ２８、またはＲＯＭ２６から、ＡＴＲを生成するためのデータを読み出す（ステップＳ３１）。次に、ＣＰＵ２５は、記憶領域２８ａから状態情報及び状態情報に付随する情報を読み出す（ステップＳ３２）。これにより、ＣＰＵ２５は、処理対象のファイルＩＤ、ＩＮＳ、及び電源が遮断されたタイミングを示すフラグ（状態情報）を読み出す。
【００６６】
ＣＰＵ２５は、読み出した状態情報に応じて、前回終了時に電源の遮断が発生していたか否か判断する（ステップＳ３３）。即ち、ＣＰＵ２５は、状態情報の値が「０Ａ」、「１Ｂ」、または「２Ｃ」である場合、電源の遮断が発生したと判断する。
【００６７】
状態情報の値が「０Ａ」、「１Ｂ」、または「２Ｃ」である場合、ＣＰＵ２５は、ＡＴＲを編集する（ステップＳ３４）。即ち、ＣＰＵ２５は、読み出した状態情報、ファイルＩＤ、及びＩＮＳをＡＴＲに付加する。
【００６８】
図９は、図３に示すＡＴＲの編集例を示す。図９に示されるように、ＣＰＵ２５は、ＡＴＲのＨｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓに状態情報、ファイルＩＤ、及びＩＮＳを付加する。この場合、Ｈｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓは、１バイトのＬｉｆｅ  Ｃｙｃｌｅ  Ｓｔａｔｕｓ（ＬＣＳ）、２バイトのステータスワード（ＳＷ）、１バイトの状態情報、２バイトのファイルＩＤ、及び１バイトのＩＮＳを有する。
【００６９】
ＣＰＵ２５は、上記のように編集したＡＴＲを端末装置１０に送信する。（ステップＳ３５）。これにより、ＩＣカード２０は、電源遮断の発生したタイミングを端末装置１０に通知することができる。
【００７０】
また、ＣＰＵ２５は、ステップＳ３３で、状態情報の値が「００」である場合、電源の遮断が発生していないと判断する。この場合、ＣＰＵ２５は、読み出したＡＴＲの編集を行わずに端末装置１０に送信する。
【００７１】
また、ＣＰＵ２５は、ステップＳ３３で、状態情報の値が「００」、「０Ａ」、「１Ｂ」、及び「２Ｃ」のいずれでもない場合、異常（セキュリティ異常）が発生したと判断する（ステップＳ３６）。この場合ＣＰＵ２５は、以上が発生した旨を端末装置１０に通知する構成であってもよい。
【００７２】
上記したように、ＩＣカード２０は、電源遮断などの発生により不揮発性メモリ２８へのデータの書込みが失敗した場合、次回起動時にＡＴＲを端末装置１０に送信することにより、電源遮断の発生の有無を端末装置１０に通知することができる。さらに、ＩＣカード２０は、コマンドが受信されている状態（コマンドの受信中）、コマンドに応じた処理が実行されている状態（コマンドの処理中）、及びコマンドに対するレスポンスが送信されている状態（レスポンスの送信中）のうちのいずれかの状態を示す情報を状態情報として不揮発性メモリ２８に記憶する。これにより、ＩＣカード２０は、電源遮断が発生したタイミングを端末装置１０に通知することができる。
【００７３】
また、ＩＣカード２０は、コマンドに含まれている処理対象のファイルを識別する為の識別情報（ファイルＩＤ）と、コマンドの種別を示す種別情報（ＩＮＳ）と、を状態情報と併せて不揮発性メモリ２８に記憶する。ＩＣカード２０は、不揮発性メモリ２８からカード情報（ファイルＩＤ、及びＩＮＳ）を読み出し、ＡＴＲに付加する。これにより、ＩＣカード２０は、電源遮断時に行っていた処理の内容と、処理対象のファイルとを端末装置１０に通知することができる。これにより、端末装置１０は、ＩＣカード２０に解析用のコマンドを送信することなく、ＩＣカード２０の状態の解析を行うことができる。
【００７４】
これにより、端末装置１０及びＩＣカード２０は、処理時間を短縮させることができる。この結果より効率的に処理を実行するＩＣカード、及びＩＣカードの制御プログラムを提供することができる。
【００７５】
また、ＩＣカード２０は、状態情報、ファイルＩＤ、及びＩＮＳをＡＴＲの一部であるＨｉｓｔｏｒｉｃａｌ  Ｃｈａｒａｃｔｅｒｓに付加する。これにより、ＩＣカード２０は、従来のフォーマットを変えることなく、解析の為の情報を端末装置１０に通知することができる。
【００７６】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００７７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００７８】
１…ＩＣカード処理システム、１０…端末装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…不揮発性メモリ、１５…カードリーダライタ、１７…操作部、１８…ディスプレイ、１９…電源部、２０…ＩＣカード、２１…本体、２２…ＩＣモジュール、２３…ＩＣチップ、２４…通信部、２５…ＣＰＵ、２６…ＲＯＭ、２７…ＲＡＭ、２８…不揮発性メモリ、３１…電源部、３２…ロジック部、２８ａ…記憶領域。
【図１】
2013175126.tif 000003
【図２】
2013175126.tif 000004
【図３】
2013175126.tif 000005
【図４】
2013175126.tif 000006
【図５】
2013175126.tif 000007
【図６】
2013175126.tif 000008
【図７】
2013175126.tif 000009
【図８】
2013175126.tif 000010
【図９】
2013175126.tif 000011