(57)【要約】【課題】通信の不具合によってデータ異常が発生した場合、データ異常となったデータを正常なデータに更新することができ、ＩＣカードおよびＩＣカードのデータメモリを効率的に運用できる。【解決手段】種々のデータを記憶するデータメモリ２２と、リーダライタとのデータ通信を行うための通信部２５と、リーダライタから与えられるコマンドに応じた種々の処理を実行するＣＰＵ２１とを有するＩＣカード１は、リーダライタから受信したコマンドが異常データ確認コマンドである場合、データメモリ２２に記憶されているデータのうちデータ異常となっているデータを検出し、データ異常が検出されたデータを示す情報を含むレスポンスデータをリーダライタへ通知し、データ異常が検出されたデータを示す情報をリータライタへ通知した後に当該リーダライタからデータ異常が検出されたデータに対する更新を要求する異常データ更新コマンドを受信した場合、当該異常データ更新コマンドに応じて異常データ更新を実行する。【選択図】図２
2011013831.tif 000002
【特許請求の範囲】
【請求項１】
種々のデータを記憶する記憶手段と、
外部装置とのデータ通信を行うための通信手段と、
前記通信手段により前記外部装置から異常データ確認コマンドを受信した場合、前記記憶手段に記憶されているデータのうちデータ異常となっているデータを検出する検出手段と、
この検出手段によりデータ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する通知手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
さらに、前記通知手段によりデータ異常が検出されたデータを示す情報を前記外部装置へ通知した後に、前記通信手段により前記データ異常が検出されたデータに対する更新を要求する異常データ更新コマンドを前記外部装置から受信した場合、前記異常データ更新コマンドに応じて前記データ異常が検出されたデータの更新を行う異常データ更新手段を有する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
さらに、前記通知手段によりデータ異常が検出されたデータを示す情報を前記外部装置へ通知した直後に、前記通信手段により前記データ異常が検出されたデータに対する更新を要求する異常データ更新コマンドを前記外部装置から受信した場合にのみ、前記異常データ更新コマンドに応じて前記データ異常が検出されたデータの更新を行う異常データ更新手段を有する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記検出手段は、正当性管理情報が付与されているデータに対する所定の演算で得られる値と前記正当性管理情報とが一致するか否かにより前記正当性管理情報が付与されているデータにおける異常の有無を検出する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
さらに、前記検出手段によりデータ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を許可するか不可とするかを判定する判定手段を有し、
前記通知手段は、前記判定手段により前記データ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を不可とする設定であると判定した場合、セキュリティ異常である旨を前記外部装置へ通知し、前記判定手段により前記データ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を許可する設定である場合、前記データ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項６】
種々のデータを記憶する記憶手段と、
外部装置とのデータ通信を行うための通信手段と、
前記通信手段により前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータに対する異常データ更新が可能か否かを判定する実行条件判定手段と、
この実行条件判定手段により異常データ更新として指定されたデータの更新が可能であると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する異常データ更新手段と、
を有することを特徴とする携帯可能電子装置。
【請求項７】
前記実行条件判定手段は、前記通信手段により前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータをデータ異常が検出されたデータとして前記外部装置に通知済みであるか否かを判定し、
前記異常データ更新手段は、前記実行条件判定手段により前記異常データ更新コマンドで指定されたデータを前記データ異常が検出されたデータとして通知済みであると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する、
ことを特徴とする前記請求項６に記載の携帯可能電子装置。
【請求項８】
前記実行条件判定手段は、前記通信手段により前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータをデータ異常が検出されたデータとして前記外部装置に通知した直後であるか否かを判定し、
前記異常データ更新手段は、前記実行条件判定手段により前記異常データ更新コマンドで指定されたデータを前記データ異常が検出されたデータとして通知した直後であると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する、
ことを特徴とする前記請求項６に記載の携帯可能電子装置。
【請求項９】
種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により受信したコマンドに応じた処理を実行する処理手段とを有する携帯可能電子装置におけるデータ処理方法であって、
前記外部装置から受信したコマンドが異常データ確認コマンドである場合、前記記憶手段に記憶されているデータのうちデータ異常となっているデータを検出し、
前記検出によりデータ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する、
を有することを特徴とする携帯可能電子装置におけるデータ処理方法。
【請求項１０】
さらに、前記データ異常が検出されたデータを示す情報を前記外部装置へ通知した後に、前記外部装置から前記データ異常が検出されたデータに対する更新を要求する異常データ更新コマンドを受信した場合、前記異常データ更新コマンドに応じて前記データ異常が検出されたデータの更新を行う、
ことを特徴とする前記請求項９に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１１】
さらに、前記データ異常が検出されたデータを示す情報を前記外部装置へ通知した直後に、前記外部装置から前記データ異常が検出されたデータに対する更新を要求する異常データ更新コマンドを受信した場合にのみ、前記異常データ更新コマンドに応じて前記データ異常が検出されたデータの更新を行う、
ことを特徴とする前記請求項９に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１２】
前記データ異常となっているデータの検出は、正当性管理情報が付与されているデータに対する所定の演算で得られる値と前記正当性管理情報とが一致するか否かにより前記正当性管理情報が付与されているデータにおける異常の有無を検出する、
ことを特徴とする前記請求項９に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１３】
さらに、前記検出によりデータ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を許可するか不可とするかを判定し、
前記通知は、前記判定により前記データ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を不可とする設定であると判定した場合、セキュリティ異常である旨を前記外部装置へ通知し、前記判定により前記データ異常が検出されたデータに対応するセキュリティ条件がデータ異常の確認を許可する設定である場合、前記データ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する、
ことを特徴とする前記請求項９に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１４】
種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により受信したコマンドに応じた処理を実行する処理手段とを有する携帯可能電子装置におけるデータ処理方法であって、
前記外部装置から異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータに対する異常データ更新が実行可能か否かを判定し、
この判定により異常データ更新コマンドで指定されたデータの更新が実行可能であると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する、
ことを特徴とする携帯可能電子装置におけるデータ処理方法。
【請求項１５】
前記判定は、前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータをデータ異常が検出されたデータとして前記外部装置に通知済みであるか否かを判定し、
前記異常データ更新は、前記判定により前記異常データ更新コマンドで指定されたデータを前記データ異常が検出されたデータとして通知済みであると判定された場合に、前記異常データ更新コマンドで要求された異常データ更新を実行する、
ことを特徴とする前記請求項１４に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１６】
前記判定は、前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータをデータ異常が検出されたデータとして前記外部装置に通知した直後であるか否かを判定し、
前記異常データ更新は、前記判定により前記異常データ更新コマンドで指定されたデータを前記データ異常が検出されたデータとして通知した直後であると判定された場合にのみ、前記異常データ更新コマンドで要求された異常データ更新を実行する、
ことを特徴とする前記請求項１４に記載の携帯可能電子装置におけるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、たとえば、書込み或いは書換えが可能な不揮発性メモリ、および、ＣＰＵなどを有するＩＣ（集積回路）チップを内蔵し、外部から供給されるコマンドに基づいて各種処理を実行するＩＣカード等の携帯可能電子装置、および、携帯可能電子装置におけるデータ処理方法に関する。
【背景技術】
【０００２】
近年、携帯可能な電子装置としてのＩＣカードが様々な分野で広く普及してきている。ＩＣカードは、ＣＰＵ、各種メモリおよび通信インターフェースなどを有するＩＣチップが内蔵されている。このようなＩＣカードは、たとえば、キャッシュカード、ＩＤカード、プリペイドカード、ポイントカードなどの運用形態で利用される。このようなＩＣカードは、各種の用途で使用する各種データを様々な形式のファイルでデータメモリに記憶する。たとえば、ＩＣカードは、データ列（レコード）単位でデータを格納するファイルを用いて、ＩＣカードを用いた取引処理の履歴を示すログデータをデータ列ごとに記憶する。
【０００３】
また、ＩＣカードは、一般に、外部装置であるリーダライタからの電源供給を受けつつ、外部装置からのコマンドに応じた処理を実行する。このようなＩＣカードでは、処理を実行中に外部装置からの電源供給が遮断されると、処理が強制的に中断される。たとえば、所定位置にセットされているＩＣカードへリーダライタから電源を供給するシステムでは、上記所定位置からＩＣカードが引き抜かれると、電源供給が遮断されて処理が強制的に中断することになる。
【０００４】
データの書込みあるいは書換え等のデータ更新処理中に処理が中断すると、当該データは、正しい状態に更新されず、破壊された状態となることが多い。特に、非接触式のＩＣカードは、無線通信でリーダライタからの電源供給を受ける形態である。このため、非接触式のＩＣカードは、処理中に電源供給が遮断されやすく、上記のようなデータ破壊が発生する可能性も高い。データが正しい状態に更新できなかった場合、従来のＩＣカードは、データの破壊が発生したものとして、当該データの記憶領域を使用不可としたり、ＩＣカード自体を破棄（交換）したりする。しかしながら、セキュリティ攻撃ではない通信の不具合などによりデータ破壊が生じた場合に、当該データの記憶領域を破棄したり、ＩＣカード自体を破棄したりする形態では、ＩＣカードを効率的に運用できない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２８２９８９号公報
【特許文献２】特開２００４−２５８６２４号公報
【非特許文献】
【０００６】
【非特許文献１】ＩＳＯ／ＩＥＣ７８１６−４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
この発明の一形態は、データ異常が発生した場合であっても、正常なデータに更新することができる携帯可能電子装置および携帯可能電子装置におけるデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の一形態としての携帯可能電子装置は、種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により前記外部装置から異常データ確認コマンドを受信した場合、前記記憶手段に記憶されているデータのうちデータ異常となっているデータを検出する検出手段と、この検出手段によりデータ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する通知手段とを有する。
【０００９】
この発明の一形態としての携帯可能電子装置は、種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により前記外部装置からの異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータに対する異常データ更新が可能か否かを判定する実行条件判定手段と、この実行条件判定手段により異常データ更新として指定されたデータの更新が可能であると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する異常データ更新手段とを有する。
【００１０】
この発明の一形態としての携帯可能電子装置におけるデータ処理方法は、種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により受信したコマンドに応じた処理を実行する処理手段とを有する携帯可能電子装置における方法であって、前記外部装置から受信したコマンドが異常データ確認コマンドである場合、前記記憶手段に記憶されているデータのうちデータ異常となっているデータを検出し、前記検出によりデータ異常が検出されたデータを示す情報を含むレスポンスデータを前記外部装置へ通知する。
【００１１】
この発明の一形態としての携帯可能電子装置におけるデータ処理方法は、種々のデータを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により受信したコマンドに応じた処理を実行する処理手段とを有する携帯可能電子装置における方法であって、前記外部装置から異常データ更新コマンドを受信した場合、当該異常データ更新コマンドで指定されたデータに対する異常データ更新が実行可能か否かを判定し、この判定により異常データ更新コマンドで指定されたデータの更新が実行可能であると判定された場合、前記異常データ更新コマンドで要求された異常データ更新を実行する。
【発明の効果】
【００１２】
この発明の一形態は、データ異常が発生した場合であっても、正常なデータに更新することができる携帯可能電子装置および携帯可能電子装置におけるデータ処理方法を提供できる。
【図面の簡単な説明】
【００１３】
【図１】図１は、ＩＣカード（携帯可能電子装置）を含むＩＣカードシステムの構成例を概略的に示す図である。
【図２】図２は、ＩＣカードのハードウエア構成例を概略的に示すブロック図である。
【図３】図３は、データメモリに格納されるファイルの構成例を示す図である。
【図４】図４は、データ管理情報の構成例を示す図である。
【図５】図５は、制御情報により制御（設定）されるデータのフォーマットを示す図である。
【図６】図６は、ＩＣカードが正常な処理を行う場合のＩＣカードとリーダライタとの通信手順を概略的に説明するための図である。
【図７】図７は、ＩＣカードでデータの更新エラーが発生した場合のＩＣカードとリーダライタとの通信手順を概略的に説明するための図である。
【図８】図８は、異常データ確認コマンドの構成例を示す図である。
【図９】図９は、異常データ確認コマンドに対するレスポンスデータの構成例を示す図である。
【図１０】図１０は、異常データ更新コマンドの構成例を示す図である。
【図１１】図１１は、異常データ更新コマンドに対するレスポンスデータの構成例を示す図である。
【図１２】図１２は、異常データ確認処理の流れを説明するためのフローチャートである。
【図１３】図１３は、異常データ更新処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、この発明の実施の形態について図面を参照して説明する。  
図１は、本発明の実施の形態に係るＩＣカード（携帯可能電子装置）１を含むＩＣカードシステムの構成例を概略的に示すものである。  
図１に示すように、本ＩＣカードシステムは、情報センタ２、通信網３、ＰＣ４、リーダライタ５などにより構成されている。上記情報センタ２は、通信網３を介してＰＣ４に接続されている。上記情報センタ２は、本ＩＣカードシステムに利用されるデータを総括的に管理するサーバ装置である。本ＩＣカードシステムにおいて、上記情報センタ２は、各ＰＣ４に対する上位装置として機能する。また、上記通信網３は、たとえば、公衆電話網あるいは公衆無線通信網などの通信網である。
【００１５】
上記ＰＣ４は、パーソナルコンピュータなどの電子計算機である。上記ＰＣ４は、リーダライタ５に接続される。上記ＰＣ４は、上記リーダライタ５によりＩＣカード１へコマンドを送信する機能、ＩＣカード１から受信したデータを基に種々の処理を行う機能などを有している。  
上記ＰＣ４は、図１に示すように、演算部１１、ハードディスクドライブ（ＨＤＤ）１２、キーボード１３、および、ディスプレイ１４などを有している。
【００１６】
上記演算部１１は、ＣＰＵ１５、および、メモリ１６などを有している。上記ＣＰＵ１５は、演算処理などのデータ処理を行うユニットである。上記ＣＰＵ１５は、プログラムに従ってデータ処理を行う。上記メモリ１６は、作業用のデータを一時的に格納するワーキングメモリ、ＣＰＵ１５が実行するプログラムあるいは制御データなどが記憶されているプログラムメモリなどを有している。このような構成により、上記演算部１１では、ＣＰＵ１５が上記メモリ１６に記憶されているプログラムを実行することにより、種々の処理を実現している。
【００１７】
上記ハードディスクドライブ（ＨＤＤ）１２は、書換え可能な大容量の不揮発性メモリである。上記ＨＤＤ１２は、補助記憶装置として機能する。たとえば、上記ＨＤＤ１２には、機密情報としての電子データファイル１，２，３，・・・が格納される。これらのＨＤＤ１２に格納される電子データファイルのデータは、上記演算部１１による制御に従ってリーダライタ５を介してＩＣカード１へ送信できるようになっている。上記キーボード１３は、当該ＰＣ４の操作員が操作する操作部として機能する。上記キーボード１３は、操作員が種々の操作指示あるいはデータなどを入力するためのものである。上記ディスプレイ１４は、上記ＰＣ４の制御により種々の情報を表示する表示装置である。
【００１８】
上記リーダライタ５は、上記ＩＣカード１との通信を行うためのインターフェース装置である。上記リーダライタ５は、図示しない内部メモリおよび通信制御部などを有する外部装置である。また、上記リーダライタ５は、上記ＩＣカード１の通信方式に応じたインターフェースにより構成される。たとえば、上記ＩＣカード１が接触型のＩＣカードである場合、上記リーダライタ５は、ＩＣカード１のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ＩＣカード１が非接触型のＩＣカードである場合、上記リーダライタ５は、ＩＣカード１との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記リーダライタ５では、上記ＩＣカード１に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってリーダライタ５は、上記ＰＣ４による制御に基づいて上記ＩＣカード１の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１９】
次に、上記ＩＣカード１のハードウエア構成例について説明する。  
上記ＩＣカード１は、上記リーダライタ５を介してＰＣ４などの上位装置から電力供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、上記ＩＣカード１が接触型の通信機能を具備している場合、つまり、ＩＣカード１が接触型のＩＣカードで構成される場合、上記ＩＣカード１は、通信インターフェースとしてのコンタクト部を介してリーダライタ５からの動作電源及び動作クロックの供給を受けて活性化される。
【００２０】
また、上記ＩＣカード１が非接触型の通信機能を具備している場合、つまり、上記ＩＣカード１が非接触式のＩＣカードで構成される場合、上記ＩＣカード１は、通信インターフェースとしてのアンテナ及び変復調回路などを介してリーダライタ５からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００２１】
図２は、本実施の形態に係るＩＣカード１のハードウエア構成例を概略的に示すブロック図である。  
上記ＩＣカード１は、本体Ｂを構成する筐体内にモジュールＭが内蔵されている。上記モジュールＭは、１つまたは複数のＩＣチップＣと通信用の外部インターフェース（通信部）とが接続された状態で一体的に形成され、ＩＣカード１の本体Ｂ内に埋設されている。また、上記ＩＣカード１のモジュールＭは、図２に示すように、ＣＰＵ（制御素子）２１、データメモリ２２、ワーキングメモリ２３、プログラムメモリ２４、および、通信部２５などを有してしている。また、図２に示す構成例では、本体Ｂには、磁気ストライプ２０が設けられている。
【００２２】
上記ＣＰＵ２１は、当該ＩＣカード１全体の制御を司るものである。上記ＣＰＵ２１は、上記プログラムメモリ２４あるいは上記データメモリ２２に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記ＣＰＵ２１は、オペレーティングシステムのプログラムを実行することにより、当該ＩＣカード１の基本的な動作制御を行う。また、上記ＣＰＵ２１は、当該ＩＣカード１の利用目的に応じたアプリケーションプログラムを実行することにより、当該ＩＣカード１の運用形態に応じた種々の動作制御を行う。
【００２３】
上記データメモリ２２は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記データメモリ２２には、当該ＩＣカード１の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。上記データメモリ２２には、当該ＩＣカード１の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。上記データメモリ２２に格納されるファイルの例については、後述する。
【００２４】
上記ワーキングメモリ２３は、ＲＡＭなどの揮発性のメモリである。また、上記ワーキングメモリ２３は、ＣＰＵ２１が処理中のデータなどを一時保管するバッファとしても機能する。たとえば、上記ワーキングメモリ２３には、カレント状態となっているファイルあるいはアプリケーションを示す情報なども格納される。  
上記プログラムメモリ２４は、予め制御用のプログラムや制御データなどが記憶されているマスクＲＯＭなどの不揮発性のメモリである。上記プログラムメモリ２４には、当該ＩＣカードの製造段階で制御プログラムあるいは制御データなどが記憶された状態でＩＣカード１内に組み込まれる。上記プログラムメモリ２４に記憶されている制御プログラムあるいは制御データは、当該ＩＣカードの基本的な動作を司るものであり、予め当該ＩＣカード１の仕様に応じて組み込まれるものである。
【００２５】
上記通信部２５は、上記リーダライタ５を介して上記ＰＣ４と通信するためのインターフェースである。当該ＩＣカード１が接触型のＩＣカードとして実現される場合、上記通信部２５は、上記リーダライタ５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ＩＣカード１が非接触型のＩＣカードとして実現される場合、上記通信部２５は、上記リーダライタ５との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
【００２６】
次に、上記データメモリ２２に格納されるファイルについて説明する。  
図３は、上記データメモリ２２に格納されるファイルの構成例を示す図である。  
図３では、複数のアプリケーションに関する情報が記憶される複数のファイルの構成例を示している。図３に示すようなファイル構成は、ＩＳＯ／ＩＥＣ７８１６−４で定義されている事項に基づくものである。図３に示すファイル構成では、ＩＳＯ／ＩＥＣ７８１６−４に定義される種々のファイルをツリー構造で管理する。
【００２７】
図３に示すように、上記データメモリ２２には、ＭＦ（Master File）、ＤＦ(Dedicated File)およびＥＦ(Elementary File)などからなる階層構造を有する複数のファイルが定義される。図３に示す例では、最上階層のマスターファイル（ＭＦ）３１の次の階層には、第１ＥＦ（キーＥＦ）３２、第１ＤＦ（ＤＦ１）３３、第２ＤＦ（ＤＦ２）３４および第３ＤＦ（ＤＦ３）３５が存在している。上記第１ＤＦ（ＤＦ１）３３の配下として、ＤＦ１の次の階層には、ＤＦ１の第１ＥＦ（ＥＦ１−１）３６、および、ＤＦ１の第２ＥＦ（ＥＦ１−２）３７が存在している。上記第２ＤＦ（ＤＦ２）３４の配下として、ＤＦ２の次の階層には、ＤＦ２の第１ＥＦ（ＥＦ２−１）３８、および、ＤＦ２の第２ＥＦ（ＥＦ２−２）３９が存在している。
【００２８】
上記ＭＦ３１は、上記データメモリ２２に格納されている各種ファイルに対するファイル構成において、最上位に位置する。上記各ＤＦ（ＤＦ１、ＤＦ２、ＤＦ３）は、それぞれアプリケーションに対応して設けられる。上記各ＤＦは、各アプリケーションに相当するフォルダとして機能する。このため、上記データメモリ２２には、少なくともアプリケーション数に相当する数のＤＦが定義される。上記各ＥＦは、実データを格納するデータファイルである。すなわち、ＤＦの配下の各ＥＦは、ＤＦが対応するアプリケーションで使用されるデータを格納する。また、ＥＦは、図３に示すように、ＭＦ３１直下の階層に設けることも可能である。図３に示す上記キーＥＦ３２は、アクセス権を確立するためのキー（鍵情報）などを格納するデータファイルである。
【００２９】
また、ＤＦに相当するアプリケーションの例としては、例えば、クレジット、ＩＤカード、ポイントシステム等が挙げられる。図３に示す例では、ＤＦに相当するアプリケーションとして、Ｘ社向けのアプリケーション（例えば、Ｘ社用クレジットカードのＤＦ）、Ａ社向けのアプリケーション（例えば、Ａ社用ポイントシステムのＤＦ）、および、Ｂ社向けのアプリケーション（例えば、Ｂ社用ポイントシステムのＤＦ）を想定する。図３に示すファイル構成において、Ｘ社向けのアプリケーション、Ａ社向けのアプリケーション、および、Ｂ社向けのアプリケーションは、それぞれＤＦ１、ＤＦ２、ＤＦ３が設けられる。この場合、ＤＦ１の配下では、Ｘ社向けのアプリケーションで使用されるデータがＥＦ１−１およびＥＦ１−２に格納される。また、ＤＦ２の配下では、Ａ社向けのアプリケーションで使用されるデータがＥＦ２−１およびＥＦ２−２に格納される。
【００３０】
次に、データ管理情報の構成例について説明する。  
図４は、データ管理情報の構成例を示す図である。  
上記データメモリ２２内における各々のデータは、図４に示すようなデータ管理情報で管理される。  
上記データ管理情報４０は、データメモリ（ＥＥＰＲＯＭ）２２内における管理領域に記憶される。上記データ管理情報４０は、データ登録数４１、制御情報４２、および、空き領域４３により構成される。
【００３１】
上記データ登録数４１は、当該管理領域に登録されている制御情報の総数を示すデータである。上記データ登録数４１のデータは、管理対象とするデータ（つまり、制御情報）の追加および削除により変化する。上記制御情報４２は、登録されている制御情報（群）である。上記空き領域４３は、制御情報を追加登録することが可能な空き領域である。
【００３２】
上記制御情報４２は、図４に示すように、上記データ識別子情報４５、上記設定アドレス情報４６、上記設定可能サイズ情報４７、および、上記セキュリティ条件情報４８などから構成される。  
上記データ識別子情報４５は、データ（データ列）を識別するための識別子を示す情報である。上記データ識別子情報４５は、外部装置がデータを指定するために用いられる。たとえば、ＩＣカード１がリーダライタ５からアクセス対象とするデータの識別子を指定するコマンドを受信した場合、ＩＣカード１は、指定された識別子と一致するデータ識別子情報４５をアクセス対象のデータとして検索する。この結果として、ＩＣカード１は、指定された識別子と一致するデータ識別子情報４５のデータをアクセス対象とする。
【００３３】
上記設定アドレス情報４６は、上記データ識別子情報４５で示される識別子が付与されているデータが記憶されているデータメモリ２２上におけるアドレス（先頭アドレス）を示す情報である。すなわち、上記データ識別子情報４５で示される識別子のデータは、設定アドレス情報４６により示されるデータメモリ２２上のアドレスに配置されている。
【００３４】
上記設定可能サイズ情報４７は、データとして設定可能なサイスを示す情報である。つまり、各制御情報が対応するデータは、上記設定可能サイズ情報４７により定義される範囲内において、可変長で設定可能である。たとえば、上記設定可能サイズ情報４７で指定される範囲を満足されていない場合（たとえば、指定範囲を超えるデータの書込みコマンドを受けた場合）、当該データに対するアクセスは、排除（禁止）される。
【００３５】
上記セキュリティ条件情報４８は、データに対するセキュリテイ条件を示す情報である。つまり、上記セキュリティ条件情報４８は、当該制御情報のデータにアクセス（読出しあるいは書込み）する場合に、満足されるべきセキュリティ条件を示す。たとえば、上記セキュリティ条件情報４８により示される条件が満足されていない場合、当該データへのアクセスは、排除（禁止）される。
【００３６】
また、本実施の形態では、セキュリティ条件情報４８としては、後述する異常データ確認コマンド（あるいは異常データ更新コマンド）に対する実行の可否を示す情報が格納される。データ異常であっても、外部装置からのデータ更新を受けないデータについては、セキュリティ条件情報４８として異常データ確認コマンドの実行を不可を設定する。たとえば、如何なる条件であっても一切のデータ更新を禁止するようなデータに対しては、セキュリティ条件情報４８として異常データ確認コマンドの実行不可が設定される。
【００３７】
ただし、後述する異常データ更新コマンドは、通常のデータ更新とは異なり、後述するようなセキュリティ条件を満たした場合にのみ実行されるコマンドである。つまり、後述する異常データ更新処理は、セキュリティ性を確保した状態でのみ実行される処理である。このため、セキュリティ条件情報４８により異常データ確認コマンドの実行を許可するデータであっても、当該データのセキュリティ性が高いものを想定している。
【００３８】
たとえば、データ異常（エラー状態）となった場合にはそのままの状態で保持しておきたいデータについては、セキュリティ条件情報４８として異常データ確認コマンドの実行不可が設定され、データ異常（エラー状態）となった場合には正しいデータに書き換えておきたいデータについては、セキュリティ条件情報４８として異常データ確認コマンドの実行許可が設定される。
【００３９】
次に、各データの構成について説明する。  
図５は、上記のような制御情報により制御（設定）されるデータのフォーマットを示す図である。  
図５に示すように、各データ５０は、データ長管理情報５１およびデータ部５２により構成される。図５に示すデータ５０は、データファイル全体であっても良いし、データファイル内のレコードであっても良い。上記データ長管理情報５１は、当該データのヘッダ情報であり、データ部５２のサイズを示す情報などである。上記データ部５２は、当該データのデータ本体である。
【００４０】
図５に示す構成例において、上記データ部５２には、複数のデータ列５３（５３Ａ、５３Ｂ）が格納可能である。図５に示す例では、データ部５２には、データ列５３Ａとデータ列５３Ｂとが格納されている。各データ列５３（５３Ａ、５３Ｂ）は、ぞれぞれ識別子５５（５５Ａ、５５Ｂ）、長さ５６（５６Ａ、５６Ｂ）、実データ５７（５７Ａ、５７Ｂ）およびデータ正当性管理情報５８（５８Ａ、５８Ｂ）を有する。
【００４１】
上記識別子５５は、各データ５０内におけるデータ列５３を識別するための情報である。上記識別子５５は、各データ列５３ごとにユニークな情報である。上記長さ５６は、実データ５７のサイズを示す情報である。すなわち、上記長さ５６に連続し、かつ、当該長さ５６で示すデータ長分のデータは、当該識別子５５で特定されるデータ列５３における実データ５７である。
【００４２】
上記実データ５７は、当該データ列５３におけるデータの実体（本体）である。すなわち、上記識別子５５、上記長さ５６および上記データ正当性管理情報５８が当該データ列の管理情報であるとすれば、それらの管理情報で管理されるデータの実体が実データ５７である。。  
上記データ正当性管理情報５８は、データ列の正当性を確認するための管理情報である。たとえば、上記データ正当性管理情報５８には、識別子、長さおよび実データの排他的論理和などにより、当該データ列の正当性を確認するのに使用される。
【００４３】
次に、上記のようなデータに対するアクセスの手順について説明する。  
まず、上記データに対する正常処理としてのアクセスの手順について説明する。  
図６は、ＩＣカード１が正常な処理を行う場合のＩＣカード１とリーダライタ５との通信手順を概略的に説明するための図である。
【００４４】
図６に示すように、ＩＣカード１は、リーダライタ５からのリセット信号を受けて、ＡＴＲ信号をリーダライタ５へ送り返す。ＩＣカード１からＡＴＲ信号を受信したリーダライタ５は、各種の取引コマンド（各データへのアクセス要求を含む種々のコマンド）を順次送信する。これらの取引コマンドに応じて、ＩＣカード１は、データのアクセス制御を含む種々の処理を実行する。これの処理が正常に終了した場合、ＩＣカード１は、リーダライタ５に対して正常終了および異常なしを示す応答を送信する。
【００４５】
次に、上記データに対する処理にエラー（異常）が発生した場合のアクセスの手順について説明する。  
図７は、ＩＣカード１でデータの更新エラーが発生した場合のＩＣカード１とリーダライタ５との通信手順を概略的に説明するための図である。  
図７に示すように、ＩＣカード１は、リーダライタ５からのリセット信号を受けて、ＡＴＲ信号をリーダライタ５へ送り返す。ＩＣカード１からＡＴＲ信号を受信したリーダライタ５は、各種の取引コマンド（各データへのアクセス要求を含む種々のコマンド）を順次送信する。
【００４６】
これらの取引コマンドのうちのデータ更新コマンドに対する処理にエラーが発生したものとする。たとえば、データ更新処理中にリーダライタ５からの電源供給が強制的に停止された場合（ＩＣカード１が所定の処理位置から引き抜かれた場合など）、ＩＣカード１では、データ更新がエラーとなる。たとえば、図５に示すデータ列５３Ａの更新処理がエラーとなった場合（実データ５７Ａの書換えが途中で中断された場合）、実データ５７Ａは、異常な値となる。この場合、当該データ列５３Ａは、データ正当性管理情報に基づく正当性の確認によって異常状態であることが判定される。
【００４７】
このようなデータ更新エラーとなった後に、再び、リーダライタ５からのリセット信号を受けた場合、ＩＣカード１は、ＡＴＲ信号をリーダライタ５へ送り返す。ＩＣカード１からＡＴＲ信号を受信したリーダライタ５は、各種の取引コマンド（各データへのアクセス要求を含む種々のコマンド）を順次送信する。このような取引コマンドを受信した場合、ＩＣカード１は、前回の取引処理が正常終了していない状態である旨の応答（異常有りを示す応答）をリーダライタ５へ通知する。
【００４８】
ＩＣカード１から前回の取引処理が正常終了していない旨の応答を受信した場合、上記リーダライタ５は、異常データの有無の確認を要求する異常データ確認コマンドを送信する。異常データ確認コマンドを受信した場合、ＩＣカード１は、データメモリ２２に記憶されている各データ列についてデータ異常があるか否かを判定する処理を行う。データ異常となっているデータ列を発見すると、ＩＣカード１は、データ異常となっているデータ列を示す識別子を含む応答をリーダライタ５へ送信する。
【００４９】
異常データの識別子を示す情報を受信した場合、リーダライタ５は、異常データとなっているデータ列に対する処理を行う。たとえば、ＩＣカード１のデータメモリ２２に記憶すべき情報をリーダライタ５の上位装置（たとえば、情報センタ２あるいはＰＣ４）で管理している場合、つまり、異常と判定されたデータ列に書込むべき正しいデータを上位装置が管理している場合、リーダライタ５は、上位装置から異常と判定されたデータ列に書込むべき正しいデータを受信する。異常と判定されたデータ列に書込むべき正しいデータを受信した場合、リーダライタ５は、異常と判定されたデータ列を正しいデータで更新する旨のコマンド（通常のデータ更新コマンドとは異なる異常データ更新コマンド）をＩＣカード１へ送信する。
【００５０】
上記異常データ更新コマンドを受信すると、ＩＣカード１は、指定されたデータ（異常データ）を正しいデータに更新する処理を行う。上記異常データ更新コマンドに応じたデータの更新が正常に完了すると、ＩＣカード１は、更新完了を示す応答をリーダライタ５へ送信する。以上の処理によれば、ＩＣカード１およびＩＣカードシステムでは、データ更新処理において強制的な処理の中断によって発生したデータ異常を確実に確認することでできる。さらに、ＩＣカード１およびＩＣカードシステムでは、データ異常が確認されたデータを正しいデータに更新することが可能である。
【００５１】
次に、上記異常データ確認コマンドについて説明する。  
図８は、異常データ確認コマンド６０の構成例を示す図である。  
図８に示す異常データ確認コマンド６０は、上述したように、リーダライタ５がＩＣカード１に対して異常データの確認を指示する命令電文である。
【００５２】
上記異常データ確認コマンド６０は、コマンドヘッダ部６１とＬｃ部６２とにより構成される。さらに、コマンドヘッダ部６１は、コマンドの分類（ＣＬＡ：ｃｌａｓｓ）６３、命令（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）６４、第１パラメータ（Ｐ１）６５および第２パラメータ（Ｐ２）６６により構成されている。
【００５３】
上記ＣＬＡ６３およびＩＮＳ６４は、当該コマンドが異常データ確認コマンドであることを示す情報が格納される。上記ＣＬＡ６３およびＩＮＳ６４としては、異常データ確認コマンドに対応づけたコード情報が格納される。上記ＩＣカード１のＣＰＵ２１は、ＣＬＡ６３およびＩＮＳ６４におけるコード情報が異常データ確認コマンドであることを判別する機能を有している。このような機能は、ＣＰＵ２１がプログラムメモリ２４に記憶されているプログラムを実行することにより実現される。
【００５４】
上記第１パラメータ６５および第２パラメータ６６は、当該異常データ確認コマンドのパラメータを示す情報である。たとえば、第１パラメータ６５および第２パラメータ６６には、異常データの確認対象とする範囲を限定する場合に、異常データの確認対象とする範囲を示すパラメータが格納される。Ｌｃ部６２は、当該コマンドにデータが添付される場合にデータの長さを示す情報が格納される。ただし、本実施の形態では、異常データ確認コマンド６０にはデータが添付されないものとする。
【００５５】
図９は、異常データ確認コマンド６０に対するレスポンスデータ７０の構成例を示す図である。  
図９に示すレスポンスデータ７０は、リーダライタ５からの異常データ確認コマンドに対する処理を実行した後、ＩＣカード１がリーダライタ５へ出力する応答電文である。このレスポンスデータ７０は、データ部７１、第１ステータスコード７２および第２ステータスコード７３から構成される。データ部７１は、異常データの識別子を示す情報が格納される。ステータスコード７２及び７３は、当該レスポンスデータ７０が異常データの確認結果として、異常なデータと判定されたデータ列を通知する情報であることを示すコードが格納される。
【００５６】
図１０は、異常データ更新コマンド８０の構成例を示す図である。  
図１０に示す異常データ更新コマンド８０は、上述したように、リーダライタ５がＩＣカード１に対してデータ異常となっているデータを正しいデータに更新する異常データ更新処理の実行を要求する命令電文である。  
上記異常データ更新コマンド８０は、コマンドヘッダ部８１、Ｌｃ部８２およびデータ部８３により構成される。さらに、コマンドヘッダ部８１は、コマンドの分類（ＣＬＡ：ｃｌａｓｓ）８４、命令（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）８５、第１パラメータ（Ｐ１）８６、第２パラメータ（Ｐ２）８７を有する。
【００５７】
上記ＣＬＡ８４およびＩＮＳ８５は、当該コマンドが異常データ更新コマンドであることを示す情報が格納される。上記ＣＬＡ８４およびＩＮＳ８５としては、異常データ更新コマンドに対応づけたコード情報が格納される。上記ＩＣカード１のＣＰＵ２１は、ＣＬＡ８４およびＩＮＳ８５におけるコード情報が異常データ更新コマンドであることを判別する機能を有している。このような機能は、ＣＰＵ２１がプログラムメモリ２４に記憶されているプログラムを実行することにより実現される。なお、上記異常データ更新コマンドは、通常のデータ更新コマンドとは異なるコマンドである。従って、異常データ更新コマンドに対しては、通常のデータ更新コマンドとは異なるコード情報が定義される。
【００５８】
上記第１パラメータ８６および第２パラメータ８７は、当該異常データ更新コマンドのパラメータを示す情報である。たとえば、上記第１パラメータ８６には、異常データの更新対象となるデータ列を格納しているデータファイルとしてのＥＦを示すＥＦ−ＩＤが格納される。また、上記第２パラメータ８７には、書き換え対象となるデータ列を示す識別子が格納される。
【００５９】
上記Ｌｃ部８２は、当該コマンドに添付されるデータの長さを示す情報（Ｌｃ）が格納される。図１０に示す例では、異常データ更新コマンド８０には、データ部８３に更新すべきデータ列全体のデータが添付される。すなわち、上記データ部８３に格納されるデータは、更新すべきデータ列全体のデータ（識別子＋長さ＋正常な実データ）である。上記Ｌｃ部８２は、データ部８３に格納されるデータ全体の長さを示す情報が格納される。
【００６０】
図１１は、異常データ更新コマンド８０に対するレスポンスデータ９０の構成例を示す図である。  
図１１に示すレスポンスデータ９０は、リーダライタ５からの異常データ更新コマンド８０に対する処理を実行した後、ＩＣカード１がリーダライタ５へ出力する応答電文である。このレスポンスデータ９０は、第１ステータスコード９１および第２ステータスコード９２から構成される。第１ステータスコード９１及び第２ステータスコード９２は、異常データ更新コマンド８０に対する異常データの更新結果を示す情報である。たとえば、データ列を正常なデータに更新する処理が完了した場合、レスポンスデータ９０のステータスコード９１及び９２は、異常データの更新完了を示すコードが格納される。
【００６１】
次に、上記のような異常データ確認コマンド６０に応じて実行する異常データ確認処理について詳細に説明する。  
図１２は、異常データ確認処理の流れを説明するためのフローチャートである。なお、図１２に示すような各処理は、たとえば、ＣＰＵ２１がプログラムメモリ２４に記憶されているプログラムを実行することにより実現される機能であるものとする。
【００６２】
上記リーダライタ５からコマンドを受信した場合、上記ＩＣカード１のＣＰＵ２１は、コマンドヘッダ部におけるＣＬＡおよびＩＮＳを確認することにより受信したコマンドの内容を判別する。ここでは、受信したコマンドのコマンドヘッダ部におけるＣＬＡおよびＩＮＳが異常データ確認コマンド６０を示すコード情報であるものとする。つまり、ＩＣカード１は、異常データ確認コマンド６０を受信したものとする（ステップＳ１１）。
【００６３】
上記異常データ確認コマンド６０を受信した場合、上記ＣＰＵ２１は、データメモリ２２の管理領域に記憶されているデータ管理情報から１つ目の制御情報４２（＃１）を読み込む（ステップＳ１２）。１つ目の制御情報４２を読み込むと、上記ＣＰＵ２１は、読み込んだ制御情報４２における設定アドレス情報４６に基づいて、当該制御情報４２が対応するデータ列５３全体として、識別子５５、長さ５６、実データ５７およびデータ正当性管理情報５８をワーキングメモリ２３に読み出す（ステップＳ１３）。
【００６４】
１つのデータ列５３全体をワーキングメモリ２３上に読み出すと、ＣＰＵ２１は、当該データ列としての識別子、長さ、および、実データに対して、データの正当性を確認するための所定の演算を行う（ステップＳ１４）。この演算は、データ正当性管理情報と比較するための値を算出するための演算（誤りチェック演算）である。この演算内容については、特定の方式に限定されるものではない。たとえば、上記演算は、全データのアンド演算であっても良いし、ＸＯＲ（排他的論理和）演算であっても良いし、ＣＲＣ演算であっても良い。上記演算が完了すると、ＣＰＵ２１は、上記演算により算出した値と当該データ列におけるデータ正当性管理情報として読み出した値とを比較することにより両者が一致するか否かを判定する（ステップＳ１５）。
【００６５】
上記比較の結果として両者が一致すると判定した場合（ステップＳ１５、ＹＥＳ）、ＣＰＵ２１は、当該制御情報に対応するデータ列にはデータ異常がないものと判断する。この場合、ＣＰＵ２１は、次の制御情報が存在するか否かを判断する（ステップＳ１６）。たとえば、次の制御情報が存在するか否かは、データ登録数と読み込んだ制御情報との数とに基づいて判定される。次の制御情報が存在すると判断した場合（ステップＳ１６、ＹＥＳ）、ＣＰＵ２１は、データ管理情報から次の制御情報を読み込む（ステップＳ１７）。次の制御情報を読み込むと、ＣＰＵ２１は、上記ステップＳ１３へ戻り、上述した処理を繰り返し実行する。また、次の制御情報が無いと判断した場合（ステップＳ１６、ＮＯ）、ＣＰＵ２１は、実行条件不備であることを示すステータスコードをセットしたレスポンスデータ（応答電文）をリーダライタ５へ送信する。
【００６６】
また、上記比較の結果として上記演算により算出した値とデータ正当性管理情報の値とが一致しないと判定した場合（ステップＳ１５、ＮＯ）、ＣＰＵ２１は、当該制御情報に対応するデータ列にはデータ異常があるものと判断する。この場合、ＣＰＵ２１は、当該制御情報４２におけるセキュリティ条件情報４８に基づいて、当該制御情報４２が対応するデータ列５３に対して異常データ確認コマンド６０が実行可能か否かを確認する（ステップＳ２０）。たとえば、当該データ列に対する異常データ確認コマンド６０が実行不可である場合（ステップＳ２０、実行不可）、ＣＰＵ２１は、セキュリティ異常であることを示すステータスコードをセットしたレスポンスデータ（応答電文）をリーダライタ５へ送信する（ステップＳ２１）。
【００６７】
また、当該データ列に対する異常データ確認コマンド６０が実行許可である場合（ステップＳ２０、実行許可）、ＣＰＵ２１は、ワーキングメモリ２３に、異常データ確認コマンドに対する処理（つまり、異常データ確認処理）が正常したことを示す情報を記録する（ステップＳ２２）。このワーキングメモリ２３に記録した情報（異常データ確認処理が正常終了済みを示す情報）は、少なくとも後述する異常データ更新コマンドが実行されるまで保持される。これは、異常データ確認処理の正常終了済みであることが、後述する異常データ更新処理の実行条件となるためである。
【００６８】
上記ワーキングメモリ２３に異常データ確認処理済みである旨を記録すると、ＣＰＵ２１は、上記ワーキングメモリ２３にデータが異常らしいと判定したデータ列の先頭アドレスとして当該データ列の識別子が記憶されているデータメモリ２２上の先頭アドレスを記録する（ステップＳ２３）。さらに、ＣＰＵ２１は、ワーキングメモリ２３に記録した先頭アドレスに基づいて、データ異常があると判定されたデータ列の識別子を読み出す。データ異常があると判定されたデータ列の識別子を読み込むと、ＣＰＵ２１は、データ異常があるデータ列の識別子を示す情報をデータ部７１にセットし、異常データ確認処理が正常終了したことを示すステータスコードをセットしたレスポンスデータ（応答電文）７０をリーダライタ５へ送信する（ステップＳ２４）。
【００６９】
次に、上記のような異常データ更新コマンド８０に応じて実行する異常データ更新処理について詳細に説明する。  
図１３は、異常データ更新処理の流れを説明するためのフローチャートである。なお、図１３に示すような各処理は、たとえば、ＣＰＵ２１がプログラムメモリ２４に記憶されているプログラムを実行することにより実現される機能であるものとする。
【００７０】
上記リーダライタ５からコマンドを受信した場合、上記ＩＣカード１のＣＰＵ２１は、コマンドヘッダ部におけるＣＬＡおよびＩＮＳを確認することにより受信したコマンドの内容を判別する。ここでは、受信したコマンドのコマンドヘッダ部８１におけるＣＬＡ８４およびＩＮＳ８５が異常データ更新コマンド８０を示すコード情報であるものとする。つまり、ＩＣカード１は、異常データ更新コマンド８０を受信したものとする（ステップＳ３１）。
【００７１】
上記異常データ更新コマンド８０を受信した場合、上記ＣＰＵ２１は、まず、異常データ確認コマンドが正常終了済みであるか否かを判定する（ステップＳ３２）。この判定は、異常データ確認コマンドに対する応答状況を確認することにより実行される。上述した異常データ確認処理が実施済みである場合、上記ワーキングメモリ２３には、異常データ確認処理が正常終了済みであることを示す情報が記録されている。したがって、ＣＰＵ２１は、ワーキングメモリ２３に記憶されている情報を確認することにより、異常データ確認処理が終了済みか否かを確認する。
【００７２】
上記ステップＳ３２は、異常データ更新処理の実行条件を判定する処理である。本実施の形態では、異常データ確認コマンドが正常終了済みであることを異常データ更新処理の実行条件として想定している。ただし、異常データ更新処理の実行条件は、上記の例に限定されるものではなく、異常データ更新（たとえば、通常のデータ更新コマンドでは更新不可となるデータの更新）に対するセキュリティ性が確保できるものであれば良い。たとえば、異常データ更新処理は、異常データ確認コマンドが正常終了した直後であることを実行条件としても良い。この場合、異常データ確認コマンドの正常終了を外部装置へ通知した直後に、当該外部装置から異常データ更新コマンドを受信した場合にのみ、異常データ更新処理を開始する。
【００７３】
この確認の結果として異常データ確認処理が実行済みでないと判断した場合（ステップＳ３２、ＮＯ）、ＣＰＵ２１は、異常データ更新処理を実行するための条件が満たされていない（実行条件不備である）旨のステータスコードをセットした応答電文をリータライタ５へ送信する（ステップＳ３３）。
【００７４】
また、上記確認により異常データ確認処理が実行済みであると判断した場合（ステップＳ３２、ＹＥＳ）、ＣＰＵ２１は、受信した異常データ更新コマンドで指定されたデータ列（つまり、異常データ更新処理の対象とするデータ列）が正当であるか否かを確認する（ステップＳ３４）。すなわち、上記ステップＳ３４の処理として、ＣＰＵ２１は、受信した異常データ更新コマンドにおけるデータ部に格納されているデータ列の識別子と上記異常データ確認処理によりデータ異常と判定されたデータ列の識別子とを比較する。上記異常データ確認処理において、ワーキングメモリ２３には、データ異常と判定されたデータ列の識別子の先頭アドレスを示す情報が記録されている。従って、ＣＰＵ２１は、ワーキングメモリ２３に記録されている先頭アドレスに基づいて、データ異常があると判定されたデータ列の識別子を読み出す。すなわち、ＣＰＵ２１は、読み出した識別子と異常データ確認コマンドのデータ部に格納されている識別子とが一致するか否かを判断する。
【００７５】
上記判断によりデータ異常と判定されたデータ列の識別子と異常データ確認コマンドのデータ部に格納された識別子とが一致しないと判定した場合（ステップＳ３４、ＮＯ）、ＣＰＵ２１は、異常データ更新処理が不可である旨のステータスコードをセットしたレスポンスデータ（応答電文）を上記リーダライタ５へ送信する（ステップＳ３５）。この場合、ＣＰＵ２１は、データ異常と判定されたデータ列の識別子が異常データ確認コマンドで指定されたデータ列の識別子と不一致である旨を通知するようにしても良い。ただし、セキュリティにおける問題の可能性がある場合、上記レスポンスデータ９０には更新処理が不可となった理由を示す情報を含めないようにする。
【００７６】
また、上記判断によりデータ異常が判定されたデータ列の識別子と異常データ確認コマンド８０のデータ部８３に格納された識別子とが一致すると判定した場合（ステップＳ３４、ＹＥＳ）、ＣＰＵ２１は、さらに、当該識別子で指定されるデータ列の長さが正当であるか否かを確認する（ステップＳ３６）。上記ステップＳ３６の処理として、ＣＰＵ２１は、受信した異常データ更新コマンドのデータ部８３に格納された更新用のデータの長さ（つまり、異常データ更新コマンドのＬｃ部８２に格納される長さ）とデータ異常が判定されたデータ列の長さ（ワーキングメモリ２３に記録されている先頭アドレスにより識別子の記憶位置が特定されるデータ列の長さ）とが一致するか否かを判定する。
【００７７】
上記判定により更新用のデータの長さとデータ異常が判定されたデータ列の長さとが一致しないと判定した場合（ステップＳ３６、ＮＯ）、ＣＰＵ２１は、異常データ更新処理が不可である旨のステータスコードをセットしたレスポンスデータ（応答電文）９０を上記リーダライタ５へ送信する（ステップＳ３７）。この場合、ＣＰＵ２１は、データ異常と判定されたデータ列の長さ、あるいは、異常データ確認コマンドで指定された更新用のデータの長さが異常である旨を通知するようにしても良い。ただし、セキュリティにおける問題の可能性がある場合、上記レスポンスデータ９０には、更新処理が不可となった理由を示す情報を含めないようにする。
【００７８】
また、上記判定により更新用のデータの長さとデータ異常が判定されたデータ列の長さとが一致すると判定した場合（ステップＳ３６、ＹＥＳ）、ＣＰＵ２１は、当該異常データ更新コマンド８０のデータ部８３に格納されている更新用のデータ（識別子、長さ、および、実データ）に対する所定の演算（誤りチェック用の演算）によりデータ正当性管理情報を算出する（ステップＳ３８）。これにより、データ異常が判定されたデータ列に対する正しい値として、識別子、長さ、実データおよびデータ正当性管理情報が得られる。
【００７９】
上記データ正当性管理情報を算出することによりデータ列全体の正しい値が得られると、ＣＰＵ２１は、データ異常が判定されたデータ列全体を、当該データ列の正しい値として得られた識別子、長さ、実データおよいびデータ正当性管理情報に書き換える（ステップＳ３９）。すなわち、ＣＰＵ２１は、ワーキングメモリ２３に記録しているデータ異常が判定されたデータ列の先頭アドレスから、異常データ更新コマンドのデータ部として与えられたデータ（識別子、長さおよび実データ）と所定の演算により算出されたデータ正当性管理情報とを上書きする。
【００８０】
上記のようなデータ異常が判定されたデータ列全体に対するデータの書換えが完了すると、ＣＰＵ２１は、異常データ更新処理が正常終了したことを示すステータスコードをセットしたレスポンスデータ（応答電文）９０を上記リーダライタ５へ送信する（ステップＳ４０）。
【００８１】
上記のように、本実施形態では、ＩＣカード１は、リーダライタ５から受信したコマンドが異常データ確認コマンドである場合、データメモリ２２に記憶されているデータ列からデータ異常となっているデータ列を検出し、データ異常が検出されたデータ列を示す識別子を含む異常データ確認処理の正常終了を示す応答をリーダライタ５へ送信する。さらに、上記ＩＣカード１は、上記リーダライタ５から異常データ更新コマンドを受信した場合、異常データ更新処理の実行条件が満たされていれば、当該異常データ更新コマンドに応じてデータ異常となったデータを正しいデータに更新する処理を実行する。異常データ更新処理の実行条件としては、異常データ確認処理が正常終了済みであること、あるいは、異常データ確認処理が正常終了した直後であること等がある。
【００８２】
上記のような実施の形態によれば、ＩＣカード１では、通信の不具合によってデータ異常が発生した場合、データ異常となったデータを正常なデータに更新することができる。この結果として、データ異常が発生してもＩＣカード１におけるデータメモリ２２の記憶領域あるいはＩＣカード１自体を無駄にすることなく、ＩＣカード１およびＩＣカード１におけるデータ領域の効率的な運用が実現できる。
【符号の説明】
【００８３】
Ｂ…本体、Ｍ…モジュール、Ｃ…ＩＣチップ、１…ＩＣカード、２…情報センタ、４…ＰＣ、５…リーダライタ、２１…ＣＰＵ（制御素子）、２２…データメモリ、２３…ワーキングメモリ、２４…プログラムメモリ、２５…通信部、４０…データ管理情報、４２…制御情報、４５…データ識別子情報、４６…設定アドレス情報、４７…設定可能サイズ情報、４８…セキュリティ条件情報、５３（５３Ａ、５３Ｂ）…データ列、５５（５５Ａ、５５Ｂ）…識別子、５６（５６Ａ、５６Ｂ）…長さ、５７（５７Ａ、５７Ｂ）…実データ、５８（５８Ａ、５８Ｂ）…データ正当性管理情報。
【図１】
2011013831.tif 000003
【図２】
2011013831.tif 000004
【図３】
2011013831.tif 000005
【図４】
2011013831.tif 000006
【図５】
2011013831.tif 000007
【図６】
2011013831.tif 000008
【図７】
2011013831.tif 000009
【図８】
2011013831.tif 000010
【図９】
2011013831.tif 000011
【図１０】
2011013831.tif 000012
【図１１】
2011013831.tif 000013
【図１２】
2011013831.tif 000014
【図１３】
2011013831.tif 000015