(57)【特許請求の範囲】
【請求項１】
第１、第２、第３、及び第４の領域を含む不揮発性メモリと、
揮発性メモリと、
データ処理部と、を備え、
前記データ処理部は、
前記第１及び第２の領域で多重化されたデータを読み出し元として、前記第３及び第４の領域で多重化されたデータを書き込み先とするデータの書き換え指示に対応して、前記第１の領域に書き込まれた第１の管理データ、及び前記第２の領域に書き込まれた前記第１の管理データに対応する第２の管理データに基づき、前記第１及び第２の領域のうちの一方を読み出し元として選択し、また、前記第３の領域に書き込まれた第３の管理データ、及び前記第４の領域に書き込まれた前記第３の管理データに対応する第４の管理データに基づき、前記第３及び第４の領域のうちの一方を書き込み先として選択し、
前記第１及び第３の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第３の領域のデータを消去し、前記第３の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第１及び第４の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第４の領域のデータを消去し、前記第４の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第２及び第３の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第３の領域のデータを消去し、前記第３の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第２及び第４の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第４の領域のデータを消去し、前記第４の領域に前記第５の管理データと前記第５のデータを書き込むICカード。
【請求項２】
前記データ処理部は、前記書き換え指示に対応して、前記第１及び第２の管理データに基づき、前記第１及び第２の領域のうちの一方から最新のデータを読み出す請求項１のICカード。
【請求項３】
前記第１及び第２の管理データは、前記第１及び第２の領域に書き込まれたデータの何れが最新か判定可能な情報を含む請求項１又は２のICカード。
【請求項４】
前記第１及び第２の管理データは、書き換え回数に関する情報を含む請求項１乃至３の何れか１つのICカード。
【請求項５】
前記データ処理部は、
前記第１の領域を選択した場合、前記揮発性メモリに書き込まれた前記第１の管理データに含まれる書き換え回数に関する第１の情報を書き換え回数に関する更新情報へ書き換え、
前記第２の領域を選択した場合、前記揮発性メモリに書き込まれた前記第２の管理データに含まれる書き換え回数に関する第２の情報を書き換え回数に関する更新情報へ書き換え、
前記更新情報は前記第１及び第２の情報の何れよりも書き換えが進んだことを示す請求項１乃至４の何れかに１つのICカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、IC（Integrated Circuit）カードに関する。
【背景技術】
【０００２】
IC（Integrated Circuit）カードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになってきている。これは、従来の磁気カードに比べ、ICとしてCPU、ROM、RAM、EEPROM（登録商標）などを持つため様々な機能が行えるようになっただけでなく、偽造が難しいためセキュリティの面でも大きく向上したことが要因である。
【０００３】
ICカードの構成は、ISO/IEC 7816-1part1,2にその詳細が規定されている。ICカードは、ICチップを備え、ICチップは、CPU、ROM、RAM、EEPROM、I/O port、及びデータバスを備える。I/O portは、外部のリーダライタからコマンドを受け取り、また処理結果をレスポンスとして出力する。データバスは、各部間のデータ転送を行うバスである。またICチップは、コプロセッサのように暗号処理を高速に行うための補助的な回路を備えることもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３５０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ICカードとして接触式タイプ、非接触式タイプが知られている。例えば、非接触タイプのICカードは、リーダライタからの磁界による電磁誘導で動作するため、状況によっては電源が不安定になることも想定される。ICカードの処理の中には不揮発性メモリに書込みを行う処理もあるが、その書込み時に電源が不安定になった場合、書き換え箇所のデータの完全性（原子性）を維持できないことが想定される。近年メモリの大容量化、Flashメモリの活用などにより、書き換え単位がページ単位（256byteや512byteなど）になってきており、書き換え対象以外のデータの完全性（原子性）をどう確保するかが検討されている。
【０００６】
例えば、不揮発性メモリの本来書きたい場所に書く前に、不揮発性メモリ上の別の場所（バッファ）へ一時書込みを行うことで、本来の書込み先へ書込んでいる最中に電源が不安定になったとしても、データの完全性（原子性）を確保する対策等も存在する。しかしながら、メモリの耐久性及び書込み回数増加による処理時間増加など改善点が挙げられている。
【０００７】
本発明の目的は、不揮発性メモリへの書込みにおけるデータの完全性（原子性）確保に優れたICカードを提供することである。
【課題を解決するための手段】
【０００８】
実施形態のICカードは、不揮発性メモリと、揮発性メモリと、及びデータ処理部とを備える。前記不揮発性メモリは、第１及び第２の領域を含む。前記データ処理部は、前記第１及び第２の領域で多重化されたデータの書き換え指示に対応して、前記第１の領域に書き込まれた第１の管理データ、及び前記第２の領域に書き込まれた前記第１の管理データに対応する第２の管理データに基づき、前記第１及び第２の領域のうちの一方を読み出し元として選択する。また、前記データ処理部は、前記第１の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第３の管理データと第３のデータを保持し、前記第２の領域のデータを消去し、前記第２の領域に前記第３の管理データと前記第３のデータを書き込む。また、前記データ処理部は、前記第２の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第３の管理データと第３のデータを保持し、前記第１の領域のデータを消去し、前記第１の領域に前記第３の管理データと前記第３のデータを書き込む。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るICカードの概略構成の一例を示すブロック図である。
【図２】実施形態に係るデータの読み出し元と書込先が同じ場合の書き換え処理の一例について説明する。
【図３】実施形態に係るデータの読み出し元と書込先が異なる場合の書き換え処理の一例について説明する。
【図４】実施形態に係る管理データの一例を示す図である。
【図５】実施形態に係る書き換え処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、実施形態に係るICカード１の概略構成の一例を示すブロック図である。
【００１１】
例えば、ICカード１は接触式タイプ又は非接触式タイプのICカードである。接触式タイプの場合、ICカード１は、リーダライタ２と接触して通信し、非接触式タイプの場合、ICカード１は、リーダライタ２と非接触で通信する。なお、ICカード１は、接触式と非接触式の両タイプをサポートするコンビ型であってもよい。この場合、ICカード１は、接触式のリーダライタ２に対しては接触して通信し、非接触式のリーダライタ２に対しては非接触で通信することができる。
【００１２】
図１に示すように、ICカード１は、例えばプラスティックカード（基材）１ａにより構成され、ICモジュール１０（ＩＣチップ）を備え、ICモジュール１０は、通信部１０１、CPU１０２（データ処理部）、不揮発性メモリ（EEPROM（登録商標）、FRAM（登録商標）、FLASH等）１０３、RAM（Random Access Memory）１０４（揮発性メモリ）、ROM（Read Only Memory）１０５を備えている。
【００１３】
通信部１０１は、外部装置（リーダライタ２）とCPU１０２の間の通信を可能とする。例えば、通信部１０１は、接触又は非接触で外部装置と通信する。
【００１４】
RAM１０４は、ワーキングメモリとして機能する。ROM１０５は、CPU１０２により実行されるICカードプログラムを保持する。CPU１０２は、ROM１０７に記憶されたICカードプログラム等に基づき動作する。また、CPU１０２は、通信部１０１を介して受信したコマンド（リーダライタ２から送信されたコマンド）を解釈し実行する。例えば、CPU１０２は、受信したコマンドに基づき、不揮発性メモリ１０３又はRAM１０４に記憶されたデータを読み出したり、不揮発性メモリ１０３又はRAM１０４に対してデータを書き込んだり、さらには、通信部１０１を介してコマンド実行結果を返信（リーダライタ２へコマンド実行結果を送信）したりする。
【００１５】
ICカードの不揮発性メモリへデータを書き込む際に、書き換えたいデータの箇所だけ書き換えられる（バイト単位）場合と、ある一定の単位（ページ単位：２５６バイトや５１２バイトなど）での書き換えが必要な場合がある。その際、書き換え対象範囲を一旦消去（erase）してから書き込む（write）という処理が必要となる。例えば、消去した直後や書き込み中にICカードの電力が途切れてしまった場合、RAMに一時的に保持している、書き換え前のデータもしくは書き換えたい最新のデータは消えてしまう。このため、次にICカードを起動した際に、前の状態にも、最新の状態にも戻すことができない。このような不足の事態を回避するため、一旦、不揮発性メモリの別の場所に一時的に書き換えたいデータを書き込み、その処理が確実に実行できたことを確認後、本来書き換えたい場所にデータを書くという対策が考えられる。ただしこの場合、常に同じ場所をバッファとして利用すると、メモリのエンデュランスに影響が出るため、複数のバッファを持ち、それを交互に使っていくことが考えられるが、その際のどのバッファを使うかどうかの管理情報も別の領域に保持する必要があるなど、かなりのリソースと書き込みに関する処理時間を要する。
【００１６】
本実施形態では、これらを解消するためのICカード１について説明する。即ち、本実施形態のICカード１によれば、処理時間の削減が可能となる。以下、ICカード１によるデータの多重化処理、多重化されたデータの読み出し処理、書き込み処理について説明する。なお、多重化処理の一例として、また説明を分かり易くするために二重化処理について説明するが、本実施形態は、二重化処理だけに限定されるものではない。
【００１７】
まず、CPU１０２は、運用中に書き換えが発生するユーザ領域をページ毎に二重化する。例えば、書き換え単位が１ページ（２５６バイト）と仮定すると、先頭の１６バイトを管理領域として使い、残り２４０バイトをデータ領域として使う。
【００１８】
一例を挙げると、不揮発性メモリ１０３は、第１の領域（第１のページ）と第２の領域（第２のページ）を含み、第１の領域と第２の領域はページ毎にデータを二重化するために使用される。また、不揮発性メモリ１０３は、第３の領域（第３のページ）と第４の領域（第４のページ）を含み、第３の領域と第４の領域はページ毎にデータを二重化するために使用される。
【００１９】
図４に示すように、第１の領域は第１の管理領域と第１のデータ領域を備え、第１の管理領域には第１の管理データが書き込まれ、第１のデータ領域には第１のデータ（ユーザデータ）が書き込まれる。例えば、第１の管理データは、書き込み回数カウンタ、管理領域チェックサム、データ領域チェックサム、及び最新フラグを含む。書込回数カウンタは、二重化された領域のどちらに最新データが含まれているかを示す。データ領域チェックサムは、データ領域全体のデータの完全性を確認するためのチェックサムである。管理領域チェックサムは、管理領域全体のデータの完全性を確認するためのチェックサムである。
【００２０】
同様に、第２の領域は第２の管理領域と第２のデータ領域を備え、第２の管理領域には第２の管理データが書き込まれ、第２のデータ領域には第２のデータ（ユーザデータ）が書き込まれる。例えば、第２の管理データは、書き込み回数カウンタ、管理領域チェックサム、データ領域チェックサム、及び最新フラグを含む。書き込み回数カウンタ又は最新フラグは、前記第１及び第２の領域に書き込まれたデータの何れが最新か判定可能な情報である。
【００２１】
なお、第３及び第４の領域は、上記説明した第１及び第２の領域と同様であり、詳細説明は省略する。
【００２２】
CPU１０２は、二重化の指示に対応して、第１の領域の第１の管理領域と第１のデータ領域から第１の管理データと第１のデータを読み出し、これら第１の管理データと第１のデータをRAM１０４に展開し（書き込み）、第１の管理データを第２の管理データへ書き換え、第２の領域の第２の管理領域と第２のデータ領域に対して第２の管理データと第２のデータ（＝第１のデータ）を書き込む。例えば、第１の管理データは書き換え回数に関する第１の情報（書き換え回数カウンタ値：０）を含み、第２の管理データは書き換え回数に関する第２の情報（書き換え回数カウンタ値：１）を含む。
【００２３】
同様に、CPU１０２は、二重化の指示に対応して、第３の領域の第３の管理領域と第３のデータ領域から第３の管理データと第３のデータ（ユーザデータ）を読み出し、これら第３の管理データと第３のデータをRAM１０４に展開し（書き込み）、第３の管理データを第４の管理データへ書き換え、第４の領域の第４の管理領域と第４のデータ領域に対して第４の管理データと第４のデータ（＝第３のデータ）を書き込む。例えば、第３の管理データは書き換え回数に関する第１の情報（書き換え回数カウンタ値：０）を含み、第４の管理データは書き換え回数に関する第２の情報（書き換え回数カウンタ値：１）を含む。
【００２４】
（１）データの読み出し元と書込先が同じ場合の書き換え処理
図２を参照して、データの読み出し元と書込先が同じ場合の書き換え処理の一例について説明する。
【００２５】
CPU１０２は、書き換え指示（第１及び第２の領域で多重化されたデータの書き換え指示）に対応して、データの書き換えを実行する。
【００２６】
まず、CPU１０２は、第１の領域の第１の管理領域に書き込まれた第１の管理データ、及び第２の領域の第２の管理領域に書き込まれた第１の管理データに対応する第２の管理データを読み出す。第１の管理データは、書き込み回数に関する第１の情報を含み、第２の管理データは、書き込み回数に関する第２の情報を含む。CPU１０２は、第１の情報と第２の情報とを比較（確認）することにより、第１及び第２の領域のうちのどちらの領域のデータが最新のデータかを判定する。CPU１０２は、判定結果に基づき、最新のデータを選択する。つまり、CPU１０２は、第１及び第２の領域のうちの最新のデータが書き込まれている領域を読み出し元として選択する。なお、CPU１０２が、第１及び第２の管理データに含まれる管理領域チェックサム及びデータ領域チェックサムに基づき、管理領域のデータとデータ領域のデータをチェックするようにしてもよい。
【００２７】
なお、図２では、第１の領域のデータ（第１の管理データと第１のデータ）を「Ａ」と定義し、第２の領域のデータ（第２の管理データと第２のデータ）を「Ａ’」と定義する。
【００２８】
CPU１０２が、第１の領域を選択した場合、第１の領域の第１の管理領域に書き込まれた第１の管理データと第１の領域の第１のデータ領域に書き込まれた第１のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第１の管理データと第１のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、選択されなかった第２の領域のデータを消去し、第２の領域の第２の管理領域に書き換え済み管理データを書き込み、第２の領域の第２のデータ領域に書き換え済みデータを書き込む。
【００２９】
一方、CPU１０２が、第２の領域を選択した場合、第２の領域の第２の管理領域に書き込まれた第２の管理データと第２の領域の第２のデータ領域に書き込まれた第２のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第２の管理データと第２のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、選択されなかった第１の領域のデータを消去し、第１の領域の第１の管理領域に書き換え済み管理データを書き込み、第１の領域の第１のデータ領域に書き換え済みデータを書き込む。
【００３０】
（２）データの読み出し元と書込先が異なる場合の書き換え処理
図３を参照して、データの読み出し元と書込先が異なる場合の書き換え処理の一例について説明する。
【００３１】
CPU１０２は、書き換え指示（第１及び第２の領域で多重化されたデータを読み出し元として、第３及び第４の領域で多重化されたデータを書き込み先とするデータの書き換え指示）に対応して、データの書き換えを実行する。
【００３２】
まず、CPU１０２は、第１の領域の第１の管理領域に書き込まれた第１の管理データ、及び第２の領域の第２の管理領域に書き込まれた第１の管理データに対応する第２の管理データを読み出す。第１の管理データは、書き込み回数に関する第１の情報を含み、第２の管理データは、書き込み回数に関する第２の情報を含む。CPU１０２は、第１の情報と第２の情報とを比較（確認）することにより、第１及び第２の領域のうちのどちらの領域のデータが最新のデータかを判定する。CPU１０２は、判定結果に基づき、最新のデータを選択する。つまり、CPU１０２は、第１及び第２の領域のうちの最新のデータが書き込まれている領域を読み出し元として選択する。なお、CPU１０２が、第１及び第２の管理データに含まれる管理領域チェックサム及びデータ領域チェックサムに基づき、管理領域のデータとデータ領域のデータをチェックするようにしてもよい。
【００３３】
さらに、CPU１０２は、第３の領域の第３の管理領域に書き込まれた第３の管理データ、及び第４の領域の第４の管理領域に書き込まれた第３の管理データに対応する第４の管理データを読み出す。第３の管理データは、書き込み回数に関する第３の情報を含み、第４の管理データは、書き込み回数に関する第４の情報を含む。CPU１０２は、第３の情報と第４の情報とを比較（確認）することにより、第３及び第４の領域のうちのどちらの領域のデータが最新のデータかを判定する。CPU１０２は、判定結果に基づき、最新のデータを選択する。つまり、CPU１０２は、第３及び第４の領域のうちの最新のデータが書き込まれている領域を書き込み先として選択する。なお、CPU１０２が、第３及び第４の管理データに含まれる管理領域チェックサム及びデータ領域チェックサムに基づき、管理領域のデータとデータ領域のデータをチェックするようにしてもよい。
【００３４】
なお、図３では、第１の領域のデータ（第１の管理データと第１のデータ）を「Ａ」と定義し、第２の領域のデータ（第２の管理データと第２のデータ）を「Ａ’」と定義し、第３の領域のデータ（第３の管理データと第３のデータ）を「Ｂ」と定義し、第４の領域のデータ（第４の管理データと第４のデータ）を「Ｂ’」と定義する。
【００３５】
CPU１０２が、第１の領域及び第３の領域を選択した場合、第１の領域の第１の管理領域に書き込まれた第１の管理データと第１の領域の第１のデータ領域に書き込まれた第１のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第１の管理データと第１のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、第３の領域のデータを消去し、第３の領域の第３の管理領域に書き換え済み管理データを書き込み、第３の領域の第３のデータ領域に書き換え済みデータを書き込む。
【００３６】
CPU１０２が、第１の領域及び第４の領域を選択した場合、第１の領域の第１の管理領域に書き込まれた第１の管理データと第１の領域の第１のデータ領域に書き込まれた第１のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第１の管理データと第１のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、第４の領域のデータを消去し、第４の領域の第４の管理領域に書き換え済み管理データを書き込み、第４の領域の第４のデータ領域に書き換え済みデータを書き込む。
【００３７】
CPU１０２が、第２の領域及び第３の領域を選択した場合、第２の領域の第２の管理領域に書き込まれた第２の管理データと第２の領域の第２のデータ領域に書き込まれた第２のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第２の管理データと第２のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、第３の領域のデータを消去し、第３の領域の第３の管理領域に書き換え済み管理データを書き込み、第３の領域の第３のデータ領域に書き換え済みデータを書き込む。
【００３８】
CPU１０２が、第２の領域及び第４の領域を選択した場合、第２の領域の第２の管理領域に書き込まれた第２の管理データと第２の領域の第２のデータ領域に書き込まれた第２のデータをRAM１０４に書き込み、RAM１０４に書き込まれた第２の管理データと第２のデータの少なくとも一部を書き換えて書き換え済み管理データと書き換え済みデータとしてRAM１０４に保持する。CPU１０２は、第４の領域のデータを消去し、第４の領域の第４の管理領域に書き換え済み管理データを書き込み、第４の領域の第４のデータ領域に書き換え済みデータを書き込む。
【００３９】
以上により、ページの削除中や書き込み中にICカード１における電源が落ちても、もう片方の一つ前のデータ状態は確保されているので、再度書込み処理を実施することで、処理を継続することができる。また、複数バッファの確保やロールフォワードなどの復旧処理も不要であり、処理が簡素化され、不具合の可能性も抑えられる。
【００４０】
また、二重化対象領域を限定することにより、記憶資源を有効活用することができる。例えば、二重化対象領域を重要なデータエリアに限定するようにしてもよい。
【００４１】
図５は、二重化されたページの書き換え処理の一例を示すフローチャートである。図５を参照して、書き換え処理について説明する。
【００４２】
図５に示すように、CPU１０２は、書き換えたいデータが存在するページの管理データをチェック（二重化されたページの双方の管理データをチェック）し、書き込み回数の多いページを読み出し元として選択する（ＳＴ１）。例えば、CPU１０２は、書き換えたいデータが存在する第１の領域の第１の管理データと第２の領域の第２の管理データをチェックする。つまり、CPU１０２は、第１の領域の管理データに含まれる書き換え回数に関する第１の情報と、第２の領域の管理データに含まれる書き換え回数に関する第２の情報とを比較し、第１及び第２の領域のうちのどちらの領域の書き込み回数が多いかチェックする。CPU１０２は、第１及び第２の領域のうちの書き込み回数が多い領域、即ち最新のデータが書き込まれている第１又は第２の領域を読み出し元として選択する。さらに、CPU１０２は、第１及び第２の領域のうちの書き込み回数が多い領域の管理データに含まれる管理領域チェックサムに基づき管理領域の管理データが正しいか計算する。さらに、CPU１０２は、第１及び第２の領域のうちの書き込み回数が多い領域の管理データに含まれるデータ領域チェックサムに基づきデータ領域のデータが正しいか計算する。
【００４３】
CPU１０２は、読み出し元として選択された第１又は第２の領域のデータ（管理領域及びデータ領域のデータ）をRAMに展開する（ＳＴ２）。CPU１０２は、RAMに展開したページデータのうち、データ領域のデータを書き換える（ＳＴ３）。
【００４４】
例えば、データの読み出し元と書込先が異なる場合、CPU１０２は、書き込み先のページの管理データをチェック（二重化されたページの双方の管理データをチェック）し、書き込み回数の少ないページを書き込み先として選択する（ＳＴ４）。例えば、CPU１０２は、書込先としての第３の領域の第３の管理データと第４の領域の第４の管理データをチェックする。つまり、CPU１０２は、第３の領域の管理データに含まれる書き換え回数に関する第３の情報と、第４の領域の管理データに含まれる書き換え回数に関する第４の情報とを比較し、第３及び第４の領域のうちのどちらの領域の書き込み回数が少ないかチェックする。CPU１０２は、第３及び第４の領域のうちの書き込み回数が少ない領域、即ち最新のデータが書き込まれていない領域を書込先として選択する。
【００４５】
CPU１０２は、RAMに展開したページデータのうち、管理データを変更する（ＳＴ５）。CPU１０２は、管理データに含まれる書き換え回数に関する情報を更新する（第３の情報又は第４の情報のうちの書き換え回数カウンタ値が大きい値に１を加算した値を管理データにセットする）。また、CPU１０２は、ＳＴ３で書き換えられたデータ領域全体のデータ領域チェックサムを計算し、計算した値を管理データにセットする。さらに、CPU１０２は、管理領域全体（更新された回数カウンタ値及びデータ領域チェックサムを含む）の管理領域チェックサムを計算し、計算した値を管理データにセットする。
【００４６】
また、CPU１０２は、書き込み先として選択された第３又は第４の領域のデータを削除する（ＳＴ６）。CPU１０２は、書き込み先として選択されデータが削除された第３又は第４の領域にRAMのデータを書き込む（ＳＴ７）。
【００４７】
なお、上記説明したデータの多重化処理、多重化されたデータの読み出し処理、書き込み処理はソフトウェアによって実行することが可能である。このため、上記処理の手順を実行するプログラムを記憶したROM１０５を備えたICカード１により、上記処理を実現することができる。或いは、上記処理の手順を実行するプログラムをリーダライタ２からICカード１へ送信し、ICカード１が送信されるプログラムを記憶することにより、上記処理を実現することができる。
【００４８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
以下、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
第１及び第２の領域を含む不揮発性メモリと、
揮発性メモリと、
データ処理部と、を備え、
前記データ処理部は、
前記第１及び第２の領域で多重化されたデータの書き換え指示に対応して、前記第１の領域に書き込まれた第１の管理データ、及び前記第２の領域に書き込まれた前記第１の管理データに対応する第２の管理データに基づき、前記第１及び第２の領域のうちの一方を読み出し元として選択し、
前記第１の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第３の管理データと第３のデータを保持し、前記第２の領域のデータを消去し、前記第２の領域に前記第３の管理データと前記第３のデータを書き込み、
前記第２の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第３の管理データと第３のデータを保持し、前記第１の領域のデータを消去し、前記第１の領域に前記第３の管理データと前記第３のデータを書き込むICカード。
［Ｃ２］
前記データ処理部は、前記書き換え指示に対応して、前記第１及び第２の管理データに基づき、前記第１及び第２の領域のうちの一方から最新のデータを読み出す［Ｃ１］のICカード。
［Ｃ３］
前記第１及び第２の管理データは、前記第１及び第２の領域に書き込まれたデータの何れが最新か判定可能な情報を含む［Ｃ１］又は［Ｃ２］のICカード。
［Ｃ４］
前記第１及び第２の管理データは、書き換え回数に関する情報を含む［Ｃ１］乃至［Ｃ３］の何れか１つのICカード。
［Ｃ５］
前記データ処理部は、
前記第１の領域を選択した場合、前記揮発性メモリに書き込まれた前記第１の管理データに含まれる書き換え回数に関する第１の情報を書き換え回数に関する第３の情報へ書き換え、
前記第２の領域を選択した場合、前記揮発性メモリに書き込まれた前記第２の管理データに含まれる書き換え回数に関する第２の情報を書き換え回数に関する第３の情報へ書き換え、
前記第３の情報は前記第１及び第２の情報の何れよりも書き換えが進んだことを示す［Ｃ１］乃至［Ｃ４］の何れかに１つのICカード。
［Ｃ６］
第１、第２、第３、及び第４の領域を含む不揮発性メモリと、
揮発性メモリと、
データ処理部と、を備え、
前記データ処理部は、
前記第１及び第２の領域で多重化されたデータを読み出し元として、前記第３及び第４の領域で多重化されたデータを書き込み先とするデータの書き換え指示に対応して、前記第１の領域に書き込まれた第１の管理データ、及び前記第２の領域に書き込まれた前記第１の管理データに対応する第２の管理データに基づき、前記第１及び第２の領域のうちの一方を読み出し元として選択し、また、前記第３の領域に書き込まれた第３の管理データ、及び前記第４の領域に書き込まれた前記第３の管理データに対応する第４の管理データに基づき、前記第３及び第４の領域のうちの一方を書き込み先として選択し、
前記第１及び第３の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第３の領域のデータを消去し、前記第３の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第１及び第４の領域を選択した場合、前記第１の領域に書き込まれた前記第１の管理データと第１のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第１の管理データと前記第１のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第４の領域のデータを消去し、前記第４の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第２及び第３の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第３の領域のデータを消去し、前記第３の領域に前記第５の管理データと前記第５のデータを書き込み、
前記第２及び第４の領域を選択した場合、前記第２の領域に書き込まれた前記第２の管理データと第２のデータを前記揮発性メモリに書き込み、前記揮発性メモリに書き込まれた前記第２の管理データと前記第２のデータの少なくとも一部を書き換えて前記揮発性メモリ上に第５の管理データと第５のデータを保持し、前記第４の領域のデータを消去し、前記第４の領域に前記第５の管理データと前記第５のデータを書き込むICカード。
【符号の説明】
【００４９】
１…ICカード、１ａ…プラスティックカード（基材）、１０…ICモジュール、１０１…通信部、１０２…CPU、１０３…不揮発性メモリ、１０４…RAM、１０５…ROM。
【図１】
0006758910.tif 000002
【図２】
0006758910.tif 000003
【図３】
0006758910.tif 000004
【図４】
0006758910.tif 000005
【図５】
0006758910.tif 000006