(57)【要約】【課題】ＩＣカードの検査者などの使用者の負担を減少させ、操作性を向上させることが可能な電子情報記憶装置、ＩＣカード、データ復元方法、及びデータ復元プログラムを提供する。【解決手段】ＩＣカード１は、外部装置２からの特定のコマンドに応じて状態記憶領域の状態データが更新される前に、データ保存用のコマンドの受信または自動保存機能により、更新前の状態データをバックアップ領域に保存する。そして、ＩＣカード１は、更新前の状態データがバックアップ領域に保存され、且つ、上記特定のコマンドに応じて状態記憶領域の状態データが更新された後に、外部装置２からのデータ復元用のコマンドが受信された場合、バックアップ領域に保存された更新前の状態データを元に状態記憶領域において状態データを復元する。【選択図】図６
2019008671.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメモリを備える電子情報記憶装置であって、
外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、
前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段と、
を備えることを特徴とする電子情報記憶装置。
【請求項２】
前記特定のコマンドに応じて前記記憶領域のデータが更新される前に、前記外部装置からの第１のコマンドが受信された場合、前記記憶領域の更新前のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信し、前記特定のコマンドに応じて前記記憶領域のデータが更新された後、且つ前記復元手段により前記更新前のデータが復元される前に、前記外部装置からの前記第１のコマンドが受信された場合、前記記憶領域の更新後のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信する処理手段を更に備えることを特徴とする請求項１に記載の電子情報記憶装置。
【請求項３】
前記保存手段は、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記更新後のデータを前記バックアップ領域に更に保存し、
前記更新後のデータが前記バックアップ領域に保存され、且つ、前記復元手段により前記更新前のデータが復元された後に、前記外部装置からの新たなデータ復元用のコマンドが受信された場合、当該復元手段は、前記バックアップ領域に保存された前記更新後のデータを元に前記記憶領域において当該更新後のデータを復元することを特徴とする請求項１または２に記載の電子情報記憶装置。
【請求項４】
前記復元手段により前記更新前のデータが復元された後に、前記外部装置からの第２のコマンドが受信された場合、前記処理手段は、前記記憶領域の更新前のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信し、前記復元手段により前記更新後のデータが復元された後に、前記外部装置からの前記第２のコマンドが受信された場合、前記記憶領域の更新後のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信することを特徴とする請求項３に記載の電子情報記憶装置。
【請求項５】
前記保存手段は、前記外部装置からのデータ保存用のコマンドが受信された場合に限り、前記データを前記バックアップ領域に保存することを特徴とする請求項１乃至４の何れか一項に記載の電子情報記憶装置。
【請求項６】
前記保存手段は、前記外部装置からコマンドが受信される度に、更新前のデータと更新後のデータとの変更分のデータを前記バックアップ領域に保存することを特徴とする請求項１乃至４の何れか一項に記載の電子情報記憶装置。
【請求項７】
前記保存手段は、前記データにタグを付加して前記バックアップ領域に保存することを特徴とする請求項１乃至６の何れか一項に記載の電子情報記憶装置。
【請求項８】
前記バックアップ領域に保存された前記データ及び当該データに付加されたタグを前記外部装置へ送信する送信手段を更に備えることを特徴とする請求項７に記載の電子情報記憶装置。
【請求項９】
前記復元用のコマンドには、復元させる前記データに付加された前記タグが含まれており、
前記復元手段は、前記復元用のコマンドに含まれる前記タグに基づいて、前記バックアップ領域から、前記復元させるデータを特定することを特徴とする請求項８に記載の電子情報記憶装置。
【請求項１０】
データを記憶するメモリを備えるＩＣカードであって、
外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、
前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段と、
を備えることを特徴とするＩＣカード。
【請求項１１】
データを記憶するメモリを備える電子情報記憶装置により実行されるデータ復元方法であって、
外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存するステップと、
前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元するステップと、
を含むことを特徴とするデータ復元方法。
【請求項１２】
データを記憶するメモリを備える電子情報記憶装置に含まれるコンピュータを、
外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、
前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段として機能させることを特徴とするデータ復元プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶するメモリを備えるＩＣカードの技術分野に関する。
【背景技術】
【０００２】
ＩＣカードは、例えばクレジットカード、キャッシュカード、定期券、及び携帯電話機用のＳＩＭカード等の高いセキュリティが要求される分野において普及している。このため、ＩＣカードの出荷に際しては、ＩＣカードが正常に動作するか否かを十分に検査（試験）、診断する必要がある。ＩＣカードの検査、診断技術として、特許文献１には、診断処理にかかる時間の増加を抑え、且つ、メモリ内の全領域を診断可能な技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２５７２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＩＣカードに求められる機能は複雑化しており、ＩＣカードにインストールされるアプリケーションが持つ状態やコマンドの数が増加している。特に、ＩＣカードでは、複数の状態を持っている場合があり、同一のコマンドであっても、上記状態によって動作が異なる場合がある。そのため、ＩＣカードの検査では、複数の状態ごとにコマンドを実行させて正常に動作することを確認する必要がある。従って、検査数が増加し、ＩＣカードの検査者の負担も増加しているという問題がある。
【０００５】
本発明は、このような問題等を鑑みてなされたものであり、ＩＣカードの検査者などの使用者の負担を減少させ、操作性を向上させることが可能な電子情報記憶装置、ＩＣカード、データ復元方法、及びデータ復元プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、データを記憶するメモリを備える電子情報記憶装置であって、外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の電子情報記憶装置において、前記特定のコマンドに応じて前記記憶領域のデータが更新される前に、前記外部装置からの第１のコマンドが受信された場合、前記記憶領域の更新前のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信し、前記特定のコマンドに応じて前記記憶領域のデータが更新された後、且つ前記復元手段により前記更新前のデータが復元される前に、前記外部装置からの前記第１のコマンドが受信された場合、前記記憶領域の更新後のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信する処理手段を更に備えることを特徴とする。
【０００８】
請求項３に記載の発明は、請求項１または２に記載の電子情報記憶装置において、前記保存手段は、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記更新後のデータを前記バックアップ領域に更に保存し、前記更新後のデータが前記バックアップ領域に保存され、且つ、前記復元手段により前記更新前のデータが復元された後に、前記外部装置からの新たなデータ復元用のコマンドが受信された場合、当該復元手段は、前記バックアップ領域に保存された前記更新後のデータを元に前記記憶領域において当該更新後のデータを復元することを特徴とする。
【０００９】
請求項４に記載の発明は、請求項３に記載の電子情報記憶装置において、前記復元手段により前記更新前のデータが復元された後に、前記外部装置からの第２のコマンドが受信された場合、前記処理手段は、前記記憶領域の更新前のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信し、前記復元手段により前記更新後のデータが復元された後に、前記外部装置からの前記第２のコマンドが受信された場合、前記記憶領域の更新後のデータに基づいて処理を行い、当該処理の結果を示すレスポンスを前記外部装置へ送信することを特徴とする。
【００１０】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶装置において、前記保存手段は、前記外部装置からのデータ保存用のコマンドが受信された場合に限り、前記データを前記バックアップ領域に保存することを特徴とする。
【００１１】
請求項６に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶装置において、前記保存手段は、前記外部装置からコマンドが受信される度に、更新前のデータと更新後のデータとの変更分のデータを前記バックアップ領域に保存することを特徴とする。
【００１２】
請求項７に記載の発明は、請求項１乃至６の何れか一項に記載の電子情報記憶装置において、前記保存手段は、前記データにタグを付加して前記バックアップ領域に保存することを特徴とする。
【００１３】
請求項８に記載の発明は、請求項７に記載の電子情報記憶装置において、前記バックアップ領域に保存された前記データ及び当該データに付加されたタグを前記外部装置へ送信する送信手段を更に備えることを特徴とする。
【００１４】
請求項９に記載の発明は、請求項８に記載の電子情報記憶装置において、前記復元用のコマンドには、復元させる前記データに付加された前記タグが含まれており、前記復元手段は、前記復元用のコマンドに含まれる前記タグに基づいて、前記バックアップ領域から、前記復元させるデータを特定することを特徴とする。
【００１５】
請求項１０に記載の発明は、データを記憶するメモリを備えるＩＣカードであって、外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段と、を備えることを特徴とする。
【００１６】
請求項１１に記載の発明は、データを記憶するメモリを備える電子情報記憶装置により実行されるデータ復元方法であって、外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存するステップと、前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元するステップと、を含むことを特徴とする。
【００１７】
請求項１２に記載の発明は、データを記憶するメモリを備える電子情報記憶装置に含まれるコンピュータを、外部装置からの特定のコマンドに応じて前記メモリの所定の記憶領域のデータが更新される前に、更新前のデータを前記記憶領域とは異なるバックアップ領域に保存する保存手段と、前記更新前のデータが前記バックアップ領域に保存され、且つ、前記特定のコマンドに応じて前記記憶領域のデータが更新された後に、前記外部装置からのデータ復元用のコマンドが受信された場合、前記バックアップ領域に保存された前記更新前のデータを元に前記記憶領域において当該更新前のデータを復元する復元手段として機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ＩＣカードの検査者などの使用者の負担を減少させ、操作性を向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】ＩＣカード１の概要構成例を示す図である。
【図２】（Ａ）は、“BACK UP”のコマンドＡＰＤＵの詳細を示す図であり、（Ｂ）は、“BACK UP”に対するレスポンスＡＰＤＵの詳細を示す図である。
【図３】（Ａ）は、“BACK UP”により保存されたデータを復元するための“BACK AGAIN”のコマンドＡＰＤＵの詳細を示す図であり、（Ｂ）は、“BACK AGAIN”に対するレスポンスＡＰＤＵの詳細を示す図である。
【図４】（Ａ）は、自動保存されたデータを復元するための“BACK AGAIN”のコマンドＡＰＤＵの詳細を示す図であり、（Ｂ）は、“BACK AGAIN”に対するレスポンスＡＰＤＵの詳細を示す図である。
【図５】実施例１及び実施例２で使用されるファイル構造（ファイルレイアウト）の一例を示す図である。
【図６】実施例１におけるＣＰＵ１０の処理の一例を示すフローチャートである。
【図７】“BACK UP”により状態データが保存される場合のコマンド実行例（１）である。
【図８】“BACK UP”により状態データが保存される場合のコマンド実行例（２）である。
【図９】実施例２におけるＣＰＵ１０の処理の一例を示すフローチャートである。
【図１０】自動保存機能により状態データが保存される場合のコマンド実行例（１）である。
【図１１】自動保存機能により状態データが保存される場合のコマンド実行例（２）である。
【図１２】（Ａ）は、従来の検査手順の一例を示す図であり、（Ｂ）は、本実施形態の検査手順の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００２１】
先ず、図１を参照して、ＩＣカード１の概要構成及び機能について説明する。図１は、ＩＣカード１の概要構成例を示す図である。図１に示すように、ＩＣカード１に搭載されるＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４等を備えて構成される。ＩＣチップ１ａは、本発明の電子情報記憶装置の一例である。
【００２２】
なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の端末装置に組み込まれてもよい。或いは、ＩＣチップ１ａは、例えばeUICC（Embedded Universal Integrated Circuit Card）として、端末装置から容易に取り外しや取り換えができないように端末装置と一体的に搭載されてもよい。
【００２３】
ＣＰＵ１０は、ＲＯＭ１１または不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。ＲＡＭ１２は、作業用メモリとして利用される。不揮発性メモリ１３には、例えばフラッシュメモリが適用される。不揮発性メモリ１３には、各種プログラム及びデータが記憶される。各種プログラムには、オペレーティングシステム、アプリケーションプログラム、及び本発明のデータ復元プログラム等が含まれる。なお、アプリケーションプログラムをメモリに展開して実行可能な状態にインストールされたモジュールをアプリケーション（以下、「Ａｐｐ」）という。ＣＰＵ１０は、本発明のデータ復元プログラムに従って、本発明の保存手段、処理手段、送信手段、及び復元手段として機能する。不揮発性メモリ１３に記憶される各種プログラム及びデータの一部は、ＲＯＭ３に記憶されてもよい。なお、不揮発性メモリ１３は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。
【００２４】
また、不揮発性メモリ１３に記憶されるデータは、例えば、ISO7816で規定されるＭＦ（Master File）、ＤＦ（Dedicated File）、及びＥＦ（Elementary File）などから構成される階層構造を有する複数のファイルに格納される。ＭＦは、ファイル構成において最上位に位置し、ＭＦの下位階層にはＤＦ及びＥＦが位置する。ＭＦは、例えばＡＰＰごとに設けられる。ＥＦは、ＡＰＰで使用されるデータを格納するファイルである。また、ＥＦは、ＩＥＦ（内部基礎ファイル）とＷＥＦ（作業用基礎ファイル）に分けられる。ＩＥＦには、例えば、ＰＩＮ（照合鍵）が格納される。
【００２５】
Ｉ／Ｏ回路１４は、外部装置２（リーダライタを含む）とのインターフェイスを担う。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、ISO7816で規定されるＣ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部装置２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部装置２の例としては、ＩＣカードの検査機（テスター）、ＡＴＭ、改札機、認証用ゲート、店舗端末等が挙げられる。或いは、ＩＣチップ１ａが端末装置に組み込まれる場合、外部装置２には端末装置の機能を担う制御部が該当する。
【００２６】
ＣＰＵ１０は、外部装置２からＩ／Ｏ回路１４を介してコマンドを受信すると、当該コマンドに応じた処理を行って当該処理の結果を示すレスポンスをＩ／Ｏ回路１４を介して当該外部装置２へ送信する。ここで、コマンドは、例えばISO7816で定義されるコマンドＡＰＤＵ（Application Protocol Data Unit）により構成される。コマンドＡＰＤＵは、少なくとも、ＣＬＡ、ＩＮＳ、Ｐ１及びＰ２から構成（ＣＬＡ、ＩＮＳ、Ｐ１及びＰ２のそれぞれが１バイトずつの計４バイトで構成）される。ここで、ＣＬＡはコマンドクラス（命令クラス）を示し、ＩＮＳはコマンドコード（命令コード）を示す。ＩＮＳによりコマンドの種別が特定される。また、Ｐ１及びＰ２はコマンドパラメータ（命令パラメータ）を示す。なお、コマンドＡＰＤＵは、ＣＬＡ、ＩＮＳ、Ｐ１及びＰ２に加えて、Ｌｅ、Ｌｃ及びＤａｔａの少なくとも何れか１つを含んで構成される場合もある。ここで、Ｌｅは、レスポンスの最大長（最大サイズ）の指定を示し、ＬｃはＤａｔａの長さを示し、ＤａｔａはＩＣカード１で用いられる可変長のデータを示す。一方、レスポンスは、例えばISO7816で定義されるレスポンスＡＰＤＵにより構成される。レスポンスＡＰＤＵは、例えば、ＳＷ１及びＳＷ２から構成される。ここで、ＳＷ１及びＳＷ２は、ステータスワードであり、コマンドＡＰＤＵに応じた処理状況（処理結果）を示す。或いは、レスポンスＡＰＤＵは、例えば、Ｄａｔａ、ＳＷ１及びＳＷ２から構成される。ここで、Ｄａｔａは、例えば処理結果としてのデータを示す。
【００２７】
また、コマンドの種別としては、“SELECT FILE”，“READ BINARY”，“UPDATE BINARY”，“WRITE BINARY”，及び“VERIFY”等が挙げられ、これらのコマンドはISO 7816に規定されている。ここで、“SELECT FILE”は、ＩＣチップ１ａ内に存在するファイルを選択するためのコマンドである。“SELECT FILE”により選択されたファイルを、カレントファイル（現在選択されているファイル）という。特に、“SELECT FILE”により選択されたＭＦまたはＤＦを、カレントＤＦといい、“SELECT FILE”により選択されたＥＦを、カレントＥＦという。“READ BINARY”は、カレントＥＦ内のデータを読み出すためのコマンドである。“UPDATE BINARY”は、カレントＥＦ内のデータを更新するためのコマンドである。“WRITE BINARY”は、カレントＥＦ内のデータを書き込む（例えば、初回書き込み）ためのコマンドである。“VERIFY”は、カレントＥＦがＩＥＦの場合にＰＩＮの照合を実行（つまり、ＰＩＮ認証）するためのコマンドである。
【００２８】
カレントＤＦ、カレントＥＦ、及びＰＩＮ認証有無は、ＩＣチップ１ａ内の状態を示す。カレントＤＦ、カレントＥＦ、及びＰＩＮ認証有無には、それぞれ、タグ（Tag）が付与される。例えば、カレントＤＦに対してタグ“01”(h:16進数)が付与され、カレントＥＦに対してタグ“02”(h)が付与され、ＰＩＮ認証有無に対してタグは03”(h)が付与される。そして、ＲＡＭ１２または不揮発性メモリ１３の所定の記憶領域（以下、「状態記憶領域」という）には、ＩＣチップ１ａ内の状態を示す状態データとして、カレントＤＦの識別子（ファイル名でもよい）、カレントＥＦの識別子、及びＰＩＮ認証有無を示すＰＩＮ認証フラグが、それぞれのタグに対応付けられて記憶される。なお、例えば、ＰＩＮ認証有の場合、ＰＩＮ認証フラグは“FF”(h)となり、ＰＩＮ認証無の場合、ＰＩＮ認証フラグは“00”(h)となる。
【００２９】
さらに、本実施形態では、ISO 7816に規定されていないコマンドとして、“BACK UP”及び“BACK AGAIN”が利用される。ここで、“BACK UP”は、不揮発性メモリ１３の状態記憶領域の状態データを保存（つまり、バックアップ）するためのコマンド（つまり、データ保存用のコマンド）である。“BACK UP”により指定された状態データは、状態記憶領域とは異なるバックアップ領域に例えばＴＬＶ（Tag Length Value）形式で保存される。つまり、“BACK UP”により指定された状態データ（Value）にタグ（Tag）、及び当該状態データの長さ（Length）が付加されてバックアップ領域に保存される。このように保存される状態データには、カレントＤＦの識別子（ファイル名でもよい）、カレントＥＦの識別子、及びＰＩＮ認証フラグのうち少なくとも何れか１つが含まれる（ただし、保存されるデータは、カレントＥＦ内のデータなどであってもよい）。なお、バックアップ領域への状態データの保存は、“BACK UP”によらず（“BACK UP”が受信されなくても）、自動的に実行される場合もあり、これを「自動保存（機能）」という。自動保存は、例えば“BACK UP”以外のコマンドが受信される度に実行される。
【００３０】
また、“BACK UP”は、ISO 7816に規定されるコマンドと同様、コマンドＡＰＤＵにより構成される。図２（Ａ）は、“BACK UP”のコマンドＡＰＤＵの詳細を示す図であり、図２（Ｂ）は、“BACK UP”に対するレスポンスＡＰＤＵの詳細を示す図である。図２（Ａ）の例では、“BACK UP”のコマンドＡＰＤＵ中のＣＬＡは“90”(h)であり、“BACK UP”のコマンドＡＰＤＵ中のＩＮＳは“BC”(h)である。また、“BACK UP”のコマンドＡＰＤＵ中のＰ１はバックアップデータＩＤを示す。バックアップデータＩＤは、１回の保存に対して付与される識別子（言い換えれば、保存されたデータの管理用の番号）である。バックアップデータＩＤは、バックアップ領域に保存されたデータに付加される。
【００３１】
また、“BACK UP”のコマンドＡＰＤＵ中のＰ２は指定される保存対象（言い換えれば、保存対象となる状態）を示す。例えば、Ｐ２が“00”(h)である場合、保存対象は上述した状態データ全部である。一方、Ｐ２が“00”(h)でない場合、保存対象は状態データの一部を示す（つまり、保存させたい状態を個別に指定）。例えば、Ｐ２が“01”(h)である場合、この“01”(h)は保存対象のタグを示しており、保存対象は、タグ“01”(h)が付与されたカレントＤＦの識別子である。また、Ｐ２が“02”(h)である場合、この“02”(h)は保存対象のタグを示しており、保存対象は、タグ“02”(h)が付与されたカレントＥＦの識別子である。また、Ｐ２が“03”(h)である場合、この“03”(h)は保存対象のタグを示しており、保存対象は、タグ“03”(h)が付与されたＰＩＮ認証有無を示すＰＩＮ認証フラグである。なお、図中、“#”は、“0”〜“F” (h)までの何れかの値であることを示す。
【００３２】
また、図２（Ｂ）には、“BACK UP”に対するレスポンスＡＰＤＵ中のＳＷ１及びＳＷ２の一例として、“6A86”(h)、及び“9000”(h)が示されている。ここで、“6A86”(h)は、Ｐ１及びＰ２が不正であることを示す。“9000”(h)は、保存成功（バックアップ成功）を示す。この場合、このレスポンスＡＰＤＵにはＤａｔａが含まれる。このＤａｔａには、“BACK UP”によりＴＬＶ形式で保存されたデータ（ＴＬＶ形式のデータ）が含まれる。これにより、保存された状態データ、及び当該状態データに付与されたタグを、“BACK UP”に対するレスポンスとして返信（外部装置２へ表示）することができる。
【００３３】
一方、“BACK AGAIN”は、バックアップ領域に保存されたデータを元に状態記憶領域において状態データを復元するためのコマンド（つまり、データ復元用のコマンド）である。“BACK AGAIN”は、“BACK UP”と同様、コマンドＡＰＤＵにより構成される。図３（Ａ）は、“BACK UP”により保存されたデータを復元するための“BACK AGAIN”のコマンドＡＰＤＵの詳細を示す図であり、図３（Ｂ）は、“BACK AGAIN”に対するレスポンスＡＰＤＵの詳細を示す図である。図３（Ａ）の例では、“BACK AGAIN”のコマンドＡＰＤＵ中のＣＬＡは“90”(h)であり、“BACK AGAIN”のコマンドＡＰＤＵ中のＩＮＳは“BA”(h)である。また、“BACK AGAIN”のコマンドＡＰＤＵ中のＰ１は、復元させる状態データに付加されたバックアップデータＩＤを示す。これにより、例えば異なるタイミングで複数回保存された各状態データのうち、どの状態データを復元させるかを指定することができる。
【００３４】
また、“BACK AGAIN”のコマンドＡＰＤＵ中のＰ２は指定される復元対象（言い換えれば、復元対象となる状態）を示す（つまり、復元させたい状態を個別に指定）。例えば、Ｐ２が“00”(h)である場合、復元対象は上述した状態データ全部である。一方、Ｐ２が“00”(h)でない場合、復元対象は状態データの一部を示す。例えば、Ｐ２が“01”(h)である場合、この“01”(h)は復元対象のタグ（復元させる状態データに付加されたタグ）を示しており、復元対象は、タグ“01”(h)が付与されたカレントＤＦの識別子である。また、Ｐ２が“02”(h)である場合、この“02”(h)は復元対象のタグを示しており、復元対象は、タグ“02”(h)が付与されたカレントＥＦの識別子である。また、Ｐ２が“03”(h)である場合、この“03”(h)は復元対象のタグを示しており、復元対象は、タグ“03”(h)が付与されたＰＩＮ認証有無を示すＰＩＮ認証フラグである。また、図３（Ｂ）には、“BACK AGAIN”に対するレスポンスＡＰＤＵ中のＳＷ１及びＳＷ２の一例として、“6A86”(h)、及び“9000”(h)が示されている。ここで、“9000”(h)は、復元成功を示す。この場合、このレスポンスＡＰＤＵにはＤａｔａが含まれる。このＤａｔａには、“BACK AGAIN”により復元されたデータ（ＴＬＶ形式のデータ）が含まれる。
【００３５】
また、図４（Ａ）は、自動保存されたデータを復元するための“BACK AGAIN”のコマンドＡＰＤＵの詳細を示す図であり、図４（Ｂ）は、“BACK AGAIN”に対するレスポンスＡＰＤＵの詳細を示す図である。図４（Ａ）の例では、“BACK AGAIN”のコマンドＡＰＤＵ中のＣＬＡは“90”(h)であり、“BACK AGAIN”のコマンドＡＰＤＵ中のＩＮＳは“BB”(h)である。また、“BACK AGAIN”のコマンドＡＰＤＵ中のＰ１は、現在（当該“BACK AGAIN”受信時）から“#”(h)数のコマンド前の状態に戻ることを示す。これにより、“#”(h)数のコマンド前の状態にデータを復元させるかを指定することができる。なお、図４（Ｂ）に示すレスポンスＡＰＤＵの構成は、図３（Ｂ）に示すレスポンスＡＰＤＵの構成と同様である。
【００３６】
ＣＰＵ１０は、外部装置２からの特定のコマンドに応じて状態記憶領域の状態データが更新される前に、“BACK UP”の受信または自動保存機能により、更新前の状態データを、例えばＴＬＶ形式でバックアップ領域に保存する（保存機能）。ここで、特定のコマンドの例として、“SELECT FILE”、及び“VERIFY”が挙げられる。例えば、“SELECT FILE”により、カレントＤＦの識別子、またはカレントＥＦの識別子が変更される。また、“VERIFY”により、ＰＩＮ認証フラグが変更される。そして、ＣＰＵ１０は、更新前の状態データがバックアップ領域に保存され、且つ、上記特定のコマンドに応じて状態記憶領域の状態データが更新された後に、外部装置２からの“BACK AGAIN”（例えば、コマンドＡＰＤＵ中のＰ１により更新前の状態データが指定される）が受信された場合、バックアップ領域に保存された更新前の状態データを元に状態記憶領域において状態データを復元する（復元機能）。そして、ＣＰＵ１０は、このような復元機能の処理結果を“BACK AGAIN”に対するレスポンスとして返信する（表示機能）。このレスポンスには、例えば、復元成功または復元失敗、さらには復元後の状態データ（そのアドレスでもよい）やタグなどが含まれる。
【００３７】
また、上記特定のコマンドに応じて状態記憶領域の状態データが更新される前に、外部装置２からの“READ BINARY”（第１のコマンドの一例）が受信された場合、ＣＰＵ１０は、状態記憶領域の更新前の状態データ（例えば、ＰＩＮ認証フラグ“00”(h)）に基づいて、当該受信されたコマンドに応じた処理を行い、当該処理の結果を示すレスポンスを外部装置２へ送信する。そして、上記特定のコマンドに応じて状態記憶領域の状態データが更新された後、且つ更新前の状態データが復元される前に、外部装置２からの“READ BINARY”（第１のコマンドの一例）が受信された場合、状態記憶領域の更新後の状態データ（例えば、ＰＩＮ認証フラグ“FF”(h)）に基づいて、当該受信されたコマンドに応じた処理を行を行い、当該処理の結果を示すレスポンスを外部装置２へ送信する。
【００３８】
また、ＣＰＵ１０は、特定のコマンドに応じて状態記憶領域の状態データが更新された後に、更新後の状態データをバックアップ領域に更に保存してもよい。この場合、更新前の状態データと更新後の状態データとがバックアップ領域に保存されることになる。そして、更新後の状態データがバックアップ領域に保存され、且つ、更新前の状態データが復元された後に、外部装置２からの新たな“BACK AGAIN”（コマンドＡＰＤＵ中のＰ１により更新後の状態データが指定される）が受信された場合、ＣＰＵ１０は、バックアップ領域に保存された更新後の状態データを元に状態記憶領域において当該更新後の状態データを復元する。つまり、復元された更新前の状態データが、更新後の状態データに置き換わる。
【００３９】
また、更新前の状態データが復元された後に、外部装置２からの“UPDATE BINARY”（第２のコマンドの一例）が受信された場合、ＣＰＵ１０は、状態記憶領域の更新前の状態データ（例えば、ＰＩＮ認証フラグ“00”(h)）に基づいて、当該受信されたコマンドに応じた処理を行い、当該処理の結果を示すレスポンスを外部装置２へ送信する。そして、更新後の状態データが復元された後に、外部装置２からの“UPDATE BINARY”（第２のコマンドの一例）が受信された場合、ＣＰＵ１０は、状態記憶領域の更新後の状態データに基づいて、当該受信されたコマンドに応じた処理を行い、当該処理の結果を示すレスポンスを外部装置２へ送信する。
【００４０】
次に、ＩＣカード１の動作について、実施例１と実施例２に分けて説明する。図５は、実施例１及び実施例２で使用されるファイル構造（ファイルレイアウト）の一例を示す図である。図５の例では、ＩＣチップ１ａ内には、ＭＦ、ＤＦ１、ＤＦ２、ＷＥＦ１、ＷＥＦ２、及びＩＥＦ１が存在する。なお、図５において、それぞれのファイルに対応付けられた値は、それぞれの識別子である。
【００４１】
（実施例１）
先ず、図５乃至図８を参照して、実施例１におけるＩＣカード１の動作について説明する。実施例１は、“BACK UP”により状態データが保存される場合の動作例である。図６は、実施例１におけるＣＰＵ１０の処理の一例を示すフローチャートである。図７は、“BACK UP”により状態データが保存される場合のコマンド実行例（１）である。図８は、“BACK UP”により状態データが保存される場合のコマンド実行例（２）である（つまり、図７に示すコマンド実行例（１）の続きを示す）。なお、図７及び図８に示す実行例は、ＰＩＮの照合前後でＷＥＦ１及びＷＥＦ２の読み出し制限、及び書き込み（更新）制限が変更されていることを確認するための検査の実行例である。また、図７及び図８に示す“No.”はコマンド（又はリセット）の受信順序を示す。
【００４２】
図７に示すNo.1では、外部装置２（例えば、ＩＣカード１の検査機）からの“RESET”（コールドリセットまたはウォームリセット）がＩＣカード１により受信されると、ＩＣカード１からＡＴＲ（Answer To Reset）が外部装置２へ送信される。その後、外部装置２からのコマンド（例えば、図７及び図８に示すコマンド）がＩＣカード１により受信される度に、図６に示す処理が実行される。なお、図７に示すNo.2〜5,8,10,11等で受信されるコマンドは、上述した“SELECT FILE”における“FILE”の部分を、選択されるファイル（Ａｐｐ、ＤＦ１、ＤＦ２、ＷＥＦ１、ＷＥＦ２、ＩＥＦ１）に置き換えて示している。“SELECT App”は、Ａｐｐの最上位のＭＦの選択を意味する。また、図７に示すNo.2〜5,8,10,11等で受信される“SELECT FILE”に対するレスポンス“9000”(h)は、選択成功を示す。これにより、図７または図８に示すように、カレントＤＦとカレントＥＦとのうち少なくとも何れか一方が更新される。
【００４３】
また、図７及び図８に示すＰＩＮ認証の“NOT VERIFIED”は、ＰＩＮ認証無（ＰＩＮ認証フラグは“00”(h)）を示す一方、ＰＩＮ認証の“VERIFIED”は、ＰＩＮ認証有（ＰＩＮ認証フラグは“FF”(h)）を示す。ＰＩＮ認証の“NOT VERIFIED”は、“VERIFY”に応じた処理でＰＩＮの照合が成功すると、“VERIFIED”に更新され、認証成功を示すレスポンス“9000”が外部装置２へ送信されることになる。また、図７に示すNo.7,9で受信される“READ BINARY”に対するレスポンス“6982”(h)は、セキュリティステータス上、読み出しは許可されないことを示す一方、図８に示すNo.17,19で受信される“READ BINARY”に対するレスポンス“## ... ## 9000”(h)は、選択されたファイルから読み出されたデータ及び読み出し成功を示す。また、図８に示すNo.21,23で受信される“UPDATE BINARY”に対するレスポンス“6982”(h)は、セキュリティステータス上、更新は許可されないことを示す一方、図８に示すNo.25,27で受信される“UPDATE BINARY”に対するレスポンス“9000”(h)は、選択されたファイルのデータの更新成功を示す。
【００４４】
さて、図６に示すステップＳ１では、ＣＰＵ１０は、受信されたコマンドが“BACK UP”であるか否かを判定（例えば、コマンドに含まれるＩＮＳにより判定）する。ＣＰＵ１０は、コマンドが“BACK UP”（例えば、図２（Ａ）に示すコマンドＡＰＤＵからなる“BACK UP”）であると判定した場合（ステップＳ１：ＹＥＳ）、ステップＳ２へ進む。一方、ＣＰＵ１０は、コマンドが“BACK UP”でないと判定した場合（ステップＳ１：ＮＯ）、ステップＳ４へ進む。
【００４５】
ステップＳ２では、ＣＰＵ１０は、“BACK UP”により指定（例えば、“BACK UP”のコマンドＡＰＤＵ中のＰ２で指定）された状態データをＴＬＶ形式でバックアップ領域に保存し、ステップＳ３へ進む。なお、当該ステップＳ２において、“BACK UP”のコマンドＡＰＤＵ中のＰ１で指定されたバックアップデータＩＤがＴＬＶのタグとして状態データに付加されて保存される。
【００４６】
例えば、図７に示すNo.6で受信される“BACK UP”のＡＰＤＵ（“90 BC 01 00 00”(h)）によれば、バックアップデータＩＤ（＝Ｐ１）は“01”(h)であり、また、保存対象（＝Ｐ２）は“00”(h)であるため、状態データ全部（すなわち、カレントＤＦの識別子、カレントＥＦの識別子、及びＰＩＮ認証有無を示すＰＩＮ認証フラグ）となる。このため、当該No.6に示すように、バックアップ領域には、ＴＬＶ形式の“01 11 01 08 A0 00 00 02 31 02 00 00 02 02 2F 02 03 01 00”(h)が保存される。ここで、先頭の１バイト“01”(h)はバックアップデータＩＤを示し、次の１バイト“11”(h)は後に続く状態データ（No.6の時点の状態記憶領域の状態データ）の長さを示し、当該後に続くカレントＤＦの識別子、カレントＥＦの識別子、及びＰＩＮ認証有無を示すＰＩＮ認証フラグを含む状態データについても、それぞれ、ＴＬＶ形式のデータになっている。図７の例では、No.12で受信される“VERIFY”（特定のコマンドの一例）に応じて状態記憶領域の状態データ（この場合、ＰＩＮ認証有無を示すＰＩＮ認証フラグが該当する）が更新される前に（つまり、NOT VERIFIED）、図７に示すNo.6で受信される“BACK UP”に応じて、更新前の状態データ（この場合、カレントＤＦの識別子、カレントＥＦの識別子、及びＰＩＮ認証有無を示すＰＩＮ認証フラグが該当する）がＴＬＶ形式でバックアップ領域に保存されることになる。
【００４７】
一方、図８に示すNo.16で受信される“BACK UP”のＡＰＤＵ（“90 BC 02 00 00”(h)）によれば、バックアップデータＩＤ（＝Ｐ１）は“02”(h)であり、また、保存対象（＝Ｐ２）は“00”(h)であるため、状態データ全部となる。このため、当該No.16に示すように、バックアップ領域には、ＴＬＶ形式の“02 11 01 08 A0 00 00 02 31 02 00 00 02 02 2F 02 03 01 FF”(h)が追加保存される。ここで、先頭の１バイト“02”(h)はバックアップデータＩＤを示し、次の１バイト“11”(h)は後に続く状態データ（No.16の時点の状態記憶領域の状態データ）の長さを示し、当該後に続くカレントＤＦの識別子、カレントＥＦの識別子、及びＰＩＮ認証有無を示すＰＩＮ認証フラグを含む状態データについても、それぞれ、ＴＬＶ形式のデータになっている。図８の例では、No.12で受信される“VERIFY”に応じて状態記憶領域の状態データが更新された後に（つまり、VERIFIED）、図８に示すNo.16で受信される“BACK UP”に応じて、更新後の状態データがＴＬＶ形式でバックアップ領域に保存されることになる。
【００４８】
なお、ステップＳ２において、ＣＰＵ１は、バックアップ領域内に、状態データを保存するための空き領域がないと判定した場合、古いデータから優先して削除して、当該状態データを保存してもよい。
【００４９】
上述したようにバックアップ領域への状態データの保存が完了すると、ステップＳ３では、ＣＰＵ１０は、“BACK UP”に対するレスポンスを外部装置２へ送信する。このとき送信されるレスポンスＡＰＤＵには、上記No.6、またはNo.16に示すように、ＴＬＶ形式で保存されたデータ、及び保存成功を示す“9000”(h)が含まれる。つまり、バックアップ領域に保存された状態データ及び当該状態データに付加されたタグが外部装置２へ送信される。
【００５０】
一方、ステップＳ４では、ＣＰＵ１０は、受信されたコマンドが“BACK AGAIN”であるか否かを判定（例えば、コマンドに含まれるＩＮＳにより判定）する。ＣＰＵ１０は、コマンドが“BACK AGAIN”（例えば、図３（Ａ）に示すコマンドＡＰＤＵからなる“BACK AGAIN”）であると判定した場合（ステップＳ４：ＹＥＳ）、ステップＳ５へ進む。一方、ＣＰＵ１０は、コマンドが“BACK AGAIN”でないと判定した場合（ステップＳ４：ＮＯ）、ステップＳ７へ進む。
【００５１】
ステップＳ５では、ＣＰＵ１０は、“BACK AGAIN”により指定されたバックアップデータＩＤ（＝Ｐ１）及び復元対象（＝Ｐ２、例えば復元対象のタグ）に基づいて、バックアップ領域から復元させる状態データを特定し、当該特定した状態データを元に状態記憶領域において状態データを復元し、ステップＳ６へ進む。例えば、ＣＰＵ１０は、バックアップ領域から特定（取得）した状態データで状態記憶領域の状態データを上書きすることで、バックアップ領域から特定した状態データを復元する。
【００５２】
例えば、図８に示すNo.20で受信される“BACK AGAIN”のＡＰＤＵ（90 BA 01 00 00”(h)）によれば、バックアップデータＩＤ（＝Ｐ１）は“01”(h)であり、また、復元対象（＝Ｐ２）は“00”(h)であるため、状態データ全部となる。このため、当該No.20に示すように、カレントＤＦ（＝ＤＦ２）の識別子“A0 00 00 02 31 02 00 00”(h)、カレントＥＦ（＝ＷＥＦ２）の識別子“2F 02”(h)、及びＰＩＮ認証フラグ“00”(h)が復元される。図８の例では、No.12で受信される“VERIFY”に応じて状態記憶領域の状態データ（この場合、ＰＩＮ認証有無を示すＰＩＮ認証フラグが該当する）が更新された後（つまり、VERIFIED）に、図８に示すNo.20で受信される“BACK AGAIN”に応じて、更新前の状態データがＴＬＶ形式で状態記憶領域に復元されることになる。
【００５３】
一方、図８に示すNo.24で受信される“BACK AGAIN”のＡＰＤＵ（90 BA 02 00 00”(h)）によれば、バックアップデータＩＤ（＝Ｐ１）は“02”(h)であり、また、復元対象（＝Ｐ２）は“00”(h)であるため、状態データ全部となる。このため、当該No.24に示すように、カレントＤＦ（＝ＤＦ２）の識別子“A0 00 00 02 31 02 00 00”(h)、カレントＥＦ（＝ＷＥＦ２）の識別子“2F 02”(h)、及びＰＩＮ認証フラグ“FF”(h)が復元される。図８の例では、No.20で受信される“BACK AGAIN”に応じて更新前の状態データが復元された後（つまり、NOT VERIFIED）に、図８に示すNo.24で受信される新たな“BACK AGAIN”に応じて、更新後の状態データがＴＬＶ形式で状態記憶領域に復元されることになる。
【００５４】
上述したように状態記憶領域への状態データの復元が完了すると、ステップＳ６では、ＣＰＵ１０は、“BACK AGAIN”に対するレスポンスを外部装置２へ送信する。このとき送信されるレスポンスＡＰＤＵには、上記No.20、またはNo.24に示すように、復元された状態データを含むＴＬＶ形式のデータ、及び復元成功を示す“9000”(h)が含まれる。
【００５５】
一方、ステップＳ７では、ＣＰＵ１０は、受信されたコマンドに応じた処理を行う。次いで、ＣＰＵ１０は、ステップＳ７の処理の結果を示すレスポンス（受信されたコマンドに対するレスポンス）を外部装置２へ送信する（ステップＳ８）。例えば、ステップＳ７で受信されたコマンドが、図７に示すNo.7の“READ BINARY”である場合、No.7の時点では、No.12で受信される“VERIFY”に応じて状態記憶領域の状態データが更新される前（つまり、NOT VERIFIED）である。そのため、“READ BINARY”に応じた処理ではＷＥＦ２からデータが読み出されず（No.9でもＷＥＦ１から読み出し不可）、その結果、ステップＳ８でレスポンス“6982”(h)が外部装置２へ返信される。一方、ステップＳ７で受信されたコマンドが、図８に示すNo.17の“READ BINARY”である場合、No.17の時点では、No.12で受信される“VERIFY”に応じて状態記憶領域の状態データが更新された後（つまり、VERIFIED）である。そのため、“READ BINARY”に応じた処理ではＷＥＦ２からデータが読み出され（No.19でもＷＥＦ１から読み出し可）、その結果、ステップＳ８でレスポンス“## ... ## 9000”(h)が外部装置２へ返信される。
【００５６】
一方、ステップＳ７で受信されたコマンドが、図８に示すNo.21の“UPDATE BINARY”である場合、No.21の時点では、No.20で受信される“BACK AGAIN”に応じて更新前の状態データが復元された直後（つまり、NOT VERIFIED）である。そのため、“UPDATE BINARY”に応じた処理ではＷＥＦ２内のデータが更新されず（No.23でもＷＥＦ１内のデータを更新不可）、その結果、ステップＳ８でレスポンス“6982”(h)が外部装置２へ返信される。一方、ステップＳ７で受信されたコマンドが、図８に示すNo.25の“UPDATE BINARY”である場合、No.25の時点では、No.24で受信される“BACK AGAIN”に応じて更新後の状態データが復元された直後（つまり、VERIFIED）である。そのため、“UPDATE BINARY”に応じた処理ではＷＥＦ２内のデータが更新され（No.27でもＷＥＦ１内のデータを更新可）、その結果、ステップＳ８でレスポンス“9000”(h)が外部装置２へ返信される。
【００５７】
以上説明したように、実施例１によれば、“BACK UP”により指定された状態データだけをバックアップ領域に保存させるように構成したので、メモリの消費を最小減に抑えつつ、ＩＣカード１の検査者の負担を減少させることができる。
【００５８】
（実施例２）
次に、図５、図９乃至図１１を参照して、実施例２におけるＩＣカード１の動作について説明する。実施例２は、自動保存機能により状態データが保存される場合の動作例である。図９は、実施例２におけるＣＰＵ１０の処理の一例を示すフローチャートである。図１０は、自動保存機能により状態データが保存される場合のコマンド実行例（１）である。図１１は、自動保存機能により状態データが保存される場合のコマンド実行例（２）である（つまり、図１０に示すコマンド実行例（１）の続きを示す）。なお、図１０及び図１１に示す実行例も、図７及び図８と同様、ＰＩＮの照合前後でＷＥＦ１及びＷＥＦ２の読み出し制限、及び書き込み（更新）制限が変更されていることを確認するための検査の実行例である。なお、図１０及び図１１において、図７及び図８と重複する部分については説明を省略する。
【００５９】
図１０に示すNo.1でも、外部装置２（例えば、ＩＣカード１の検査機）からの“RESET”がＩＣカード１により受信されると、ＩＣカード１からＡＴＲが外部装置２へ送信され、その後、外部装置２からのコマンドがＩＣカード１により受信される度に、図９に示す処理が実行される。なお、図１０及び図１１の例では、外部装置２からコマンドが受信される度に、更新前の状態データと更新後の状態データとの変更分のデータがＴＬＶ形式でバックアップ領域に保存される。ここで、変更分のデータは、受信されたコマンド（例えば、図１０に示すNo.2で受信された“SELECT App”）に応じた処理により変更された状態（カレンドＤＦがＭＦからＤＦ１へ変更）に対応する変更前の状態（ＭＦ）を示す状態データ（“3F 00”(h)）である。なお、図１０に示すNo.5では、変更分のデータは、変更された状態（カレンドＥＦがＮＵＬＬからＷＥＦ２へ変更）に対応する変更前の状態（ＮＵＬＬ）を示す状態データ（“00 00”(h)）である。なお、バックアップ領域に保存される変更分のデータは、更新前のデータと更新後のデータとの排他的論理和（つまり、差分）であってもよい。
【００６０】
図９に示すステップＳ１１では、ＣＰＵ１０は、受信されたコマンドが“BACK AGAIN”であるか否かを判定する。ＣＰＵ１０は、コマンドが“BACK AGAIN”（例えば、図４（Ａ）に示すコマンドＡＰＤＵからなる“BACK AGAIN”）であると判定した場合（ステップＳ１１：ＹＥＳ）、ステップＳ１２へ進む。一方、ＣＰＵ１０は、コマンドが“BACK AGAIN”でないと判定した場合（ステップＳ１１：ＮＯ）、ステップＳ１５へ進む。
【００６１】
ステップＳ１２では、ＣＰＵ１０は、“BACK AGAIN”により指定された幾つのコマンドを遡るか（＝Ｐ１）、及び復元対象（＝Ｐ２、例えば復元対象のタグ）に基づいて、バックアップ領域から復元させる状態データを特定し、当該特定した状態データを元に状態記憶領域において状態データを復元し、ステップＳ１３へ進む。
【００６２】
例えば、図１１に示すNo.18で受信される“BACK AGAIN”のＡＰＤＵ（90 BB 0C 00 00”(h)）によれば、“0C ”(h)（１０進数で１２）のコマンドを遡る（＝Ｐ１）ことが指定されており、また、復元対象（＝Ｐ２）は“00”(h)であるため、状態データ全部となる。このため、No.18の時点では、１２個のコマンドを遡ったNo.6の状態が復元されるように、カレントＤＦ（＝ＤＦ２）の識別子“A0 00 00 02 31 02 00 00”(h)、カレントＥＦ（＝ＷＥＦ２）の識別子“2F 02”(h)、及びＰＩＮ認証フラグ“00”(h)が復元される。図１１の例では、No.11で受信される“VERIFY”に応じて状態記憶領域の状態データが更新された後（つまり、VERIFIED）に、図１１に示すNo.18で受信される“BACK AGAIN”に応じて、更新前の状態データがＴＬＶ形式で状態記憶領域に復元されることになる。
【００６３】
一方、図１１に示すNo.22で受信される“BACK AGAIN”のＡＰＤＵ（90 BB 08 00 00”(h)）によれば、“08 ”(h)（１０進数で８）のコマンドを遡る（＝Ｐ１）ことが指定されており、また、また、復元対象（＝Ｐ２）は“00”(h)であるため、状態データ全部となる。このため、No.22の時点では、８個のコマンドを遡ったNo.14の状態が復元されるように、カレントＤＦ（＝ＤＦ２）の識別子“A0 00 00 02 31 02 00 00”(h)、カレントＥＦ（＝ＷＥＦ２）の識別子“2F 02”(h)、及びＰＩＮ認証フラグ“FF”(h)が復元される。図１１の例では、No.18で受信される“BACK AGAIN”に応じて更新前の状態データが復元された後（つまり、NOT VERIFIED）に、図１１に示すNo.22で受信される新たな“BACK AGAIN”に応じて、更新後の状態データがＴＬＶ形式で状態記憶領域に復元されることになる。
【００６４】
上述したように状態記憶領域への状態データの復元が完了すると、ステップＳ１３では、ＣＰＵ１０は、ステップＳ１２の処理（つまり、復元処理）により変更（復元）された状態に対応する変更前（復元前）の状態を示す状態データを、上述した変更分のデータとしてＴＬＶ形式でバックアップ領域に保存（自動保存）し、ステップＳ１４へ進む。例えば、図１１に示すNo.18では、カレントＤＦ（＝ＤＦ１）の識別子“A0 00 00 02 31 01 00 00”(h)、カレントＥＦ（＝ＷＥＦ１）の識別子“2F 01”(h)、及びＰＩＮ認証フラグ“FF”(h)が保存される。一方、図１１に示すNo.22では、カレントＤＦ（＝ＤＦ１）の識別子“A0 00 00 02 31 01 00 00”(h)、カレントＥＦ（＝ＷＥＦ１）の識別子“2F 01”(h)、及びＰＩＮ認証フラグ“00”(h)が保存される。
【００６５】
ステップＳ１４では、ＣＰＵ１０は、“BACK AGAIN”に対するレスポンスを外部装置２へ送信する。このとき送信されるレスポンスＡＰＤＵには、上記No.18、またはNo.22に示すように、復元された状態データを含むＴＬＶ形式のデータ、及び復元成功を示す“9000”(h)が含まれる。
【００６６】
一方、ステップＳ１５では、ＣＰＵ１０は、上述したステップＳ７と同様、受信されたコマンドに応じた処理を行う。次いで、ＣＰＵ１０は、ステップＳ１５の処理により変更された状態に対応する変更前の状態を示す状態データを、上述した変更分のデータとしてＴＬＶ形式でバックアップ領域に保存（自動保存）し（ステップＳ１６）、ステップＳ１７へ進む。
【００６７】
なお、ステップＳ１３及びＳ１６において、ＣＰＵ１は、変更分のデータが保存可能であるか否かを判定し、保存可能である場合に限り、当該変更分のデータをバックアップ領域に保存してもよい。なお、例えば、変更分のデータがセキュリティ上の保存すべきでないデータとして管理（例えば、ＯＳで管理）されている場合、変更分のデータが保存可能でないと判定される。また、ステップＳ１３及びＳ１６において、ＣＰＵ１は、バックアップ領域内に、変更分のデータを保存するための空き領域がないと判定した場合、古いデータから優先して削除して、当該変更分のデータを保存してもよい。
【００６８】
ステップＳ１７では、ＣＰＵ１０は、上述したステップＳ８と同様、ステップＳ１５の処理の結果を示すレスポンス（受信されたコマンドに対するレスポンス）を外部装置２へ送信する。
【００６９】
以上説明したように、実施例２によれば、自動保存機能により状態データをバックアップ領域に保存させるように構成したので、ＩＣカード１の検査者の負担を、実施例１よりも減少させることができる。なお、メモリ容量に余裕があれば、コマンドが受信される度に、自動保存機能により状態データの全部を保存させるように構成してもよい。
【００７０】
（従来と本実施形態との比較）
次に、図１２を参照して、従来の検査手順と、本実施形態の検査手順との比較しつつ、本実施形態の効果について説明する。図１２（Ａ）は、従来の検査手順の一例を示す図であり、図１２（Ｂ）は、本実施形態の検査手順の一例を示す図である。
【００７１】
図１２（Ａ）に示す従来の検査手順では、手順A-1において、検査者の指示に従って、状態α（例えば、NOT VERIFIED）に遷移させるコマンドが外部装置２（テスター）からＩＣカード１へ送信される。次に、手順A-2において、検査項目１が実行される。この検索項目１では、検査者の指示に従って、例えば“WRITE BINARY”が外部装置２からＩＣカード１へ送信される。次に、手順A-3において、検査者の指示に従って、ＩＣカード１が状態αであるかが外部装置２により判定（コマンドの送信状況から推定）される。ＩＣカード１が状態αでないと判定された場合、手順A-4において、検査者の指示に従って、状態αに遷移させるコマンドが外部装置２からＩＣカード１へ送信される。次に、手順A-5において、検査項目２が実行される。この検索項目２では、検査者の指示に従って、例えば“READ BINARY”が外部装置２からＩＣカード１へ送信される。次に、手順A-6において、検査者の指示に従って、ＩＣカード１が状態αであるかが外部装置２により判定される。ＩＣカード１が状態αでないと判定された場合、手順A-7において、検査者の指示に従って、状態αに遷移させるコマンドが外部装置２からＩＣカード１へ送信される。次に、手順A-8において、検査項目３が実行される。この検索項目３では、検査者の指示に従って、例えば“UPDATE BINARY”が外部装置２からＩＣカード１へ送信される。次に、手順A-9において、検査者の指示に従って、状態β（例えば、VERIFIED）に遷移させるコマンドが外部装置２からＩＣカード１へ送信される。その後、状態αと同じように、状態βについて手順A-10〜A-16が行われる。
【００７２】
一方、図１２（Ｂ）に示す本実施形態の検査手順では、手順B-1において、検査者の指示に従って、状態αに遷移させるコマンドが外部装置２からＩＣカード１へ送信される。次に、手順B-2において、データ保存用のコマンド送信が実行される。データ保存用のコマンド送信では、検査者の指示に従って、“BACK UP”が外部装置２からＩＣカード１へ送信される。なお、この手順B-2は、上述した実施例２では不要となる。次に、手順B-3において、従来の手順A-2と同様、検査項目１が実行される。次に、手順B-4において、データ復元用のコマンド送信が実行される。データ復元用のコマンド送信では、検査者の指示に従って、“BACK AGAIN”が外部装置２からＩＣカード１へ送信される。次に、手順B-5において、従来の手順A-5と同様、検査項目２が実行される。次に、手順B-6において、データ復元用のコマンド送信が実行される。データ復元用のコマンド送信では、検査者の指示に従って、“BACK AGAIN”が外部装置２からＩＣカード１へ送信される。次に、手順B-7において、従来の手順A-8と同様、検査項目３が実行される。次に、手順B-8において、検査者の指示に従って、状態βに遷移させるコマンドが外部装置２からＩＣカード１へ送信される。その後、状態αと同じように、状態βについて手順B-9〜B-14が行われる。
【００７３】
以上の通り、図１２（Ｂ）に示す本実施形態の検査手順では、図１２（Ａ）に示す従来の検査手順に比べて、手順B-2として、データ保存用のコマンド送信の実行が増えているものの、従来の検査手順における手順A-3,A-4,A-6,及びA-7が、データ復元用のコマンド送信の実行で済むため、手順が減少している（実施例２の構成によれば、さらに手順が減少する）。また、従来の検査手順では、手順A-4及びA-7が同一コマンドにより状態αに遷移できるとは限らないため、検査者はそれぞれに必要なコマンドが何かを検討する必要があるが、本実施形態の検査手順では、データ復元用のコマンド送信の実行だけでよいため、上記のような検討の必要がない。さらに、従来の検査手順では、手順A-4及びA-7において複数のコマンドを必要とする可能性があるが、本実施形態の検査手順では、１種類の「データ復元用のコマンド」を送信するだけでよいため、検査の負担が減少する。
【００７４】
さらに、従来の検査手順における状態βについての手順A-9〜A-16では、状態αについての手順A-1〜A-8に比べ、手順A-10,A-13,及びA-16以外の５箇所の手順で処理内容に変更（状態αと状態βの違いによる変更）の必要があるが、本実施形態の検査手順における状態βについての手順B-8〜A-14では、状態αについての手順B-1〜A-7に比べ、手順B8のみの変更で済むため、検査作成の手間を大幅に減少させることができる。
【００７５】
以上説明したように、上記実施形態によれば、ＩＣカード１は、外部装置２からの特定のコマンドに応じて状態記憶領域の状態データが更新される前に、“BACK UP”の受信または自動保存機能により、更新前の状態データをバックアップ領域に保存し、更新前の状態データがバックアップ領域に保存され、且つ、上記特定のコマンドに応じて状態記憶領域の状態データが更新された後に、外部装置２からの“BACK AGAIN”が受信された場合、バックアップ領域に保存された更新前の状態データを元に状態記憶領域において状態データを復元するように構成したので、ＩＣカード１の検査者の負担を減少させ、操作性を向上させることができる。
【００７６】
なお、上記実施形態においては、ＩＣカードの検査時を例にとって説明したが、ＩＣカードの出荷後、ユーザにより利用される際にも本発明は適用することができる。例えば、店舗や駅、銀行などの場所でスタッフ等の操作者がＩＣカードや携帯端末に対する操作を行う場面において、当該操作者によりデータの削除や上書きなどの誤操作が発生した場合、従来の技術では、誤操作前に戻すことは容易ではなかった。しかしながら、本発明を適用すれば、ＩＣカードや携帯端末は、外部装置（例えば、店舗端末）からの特定のコマンド（例えば、電子バリューの残高を変更するためのコマンド）に応じて所定の記憶領域のデータ（例えば、電子バリュー）が更新される前に、“BACK UP”の受信または自動保存機能により、更新前のデータをバックアップ領域に保存し、更新前のデータがバックアップ領域に保存され、且つ、上記特定のコマンドに応じて記憶領域のデータが更新された後に、例えば操作者からの操作に従って外部装置（例えば、店舗端末）からの“BACK AGAIN”が受信された場合、バックアップ領域に保存された更新前のデータを元に記憶領域においてデータを復元する。このため、上記構成によれば、検査時における負担を軽減するだけでなく、操作者の誤操作によりＩＣカードや携帯端末内のデータが上書きや削除された場合であっても簡単に元のデータに戻すことができるため、操作性を格段に向上することができる。
【符号の説明】
【００７７】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図１】
2019008671.tif 000003
【図２】
2019008671.tif 000004
【図３】
2019008671.tif 000005
【図４】
2019008671.tif 000006
【図５】
2019008671.tif 000007
【図６】
2019008671.tif 000008
【図７】
2019008671.tif 000009
【図８】
2019008671.tif 000010
【図９】
2019008671.tif 000011
【図１０】
2019008671.tif 000012
【図１１】
2019008671.tif 000013
【図１２】
2019008671.tif 000014