(57)【要約】【課題】本発明は、不揮発性メモリの書き換え耐久性への影響を軽減すると共に、処理速度を向上すること等が可能な電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラムを提供する。【解決手段】ＩＣチップ１ａは、不揮発性メモリ１３から読み出されたカウンタが所定の条件を満たすときに上記処理の実施命令があった場合、処理実施フラグが未書き込みの第２データ領域があるか否かを判定し、未書き込みの第２データ領域があると判定した場合、当該未書き込みの第２データ領域に処理実施フラグを書き込んだ後に上記処理を実施して当該処理が成功した場合、第３データ領域に成功フラグを書き込む一方、未書き込みの第２データ領域がないと判定した場合、第１データ領域に書き込まれているカウンタを残りカウンタで書き換える。【選択図】図４
2016153945.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリと、
前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、
前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定手段と、
前記判定手段により前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、
前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御手段と、
前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせる消去制御手段を更に備えることを特徴とする請求項１に記載の電子情報記憶媒体。
【請求項３】
前記読み出された前記カウンタが所定の条件を満たさないときエラー処理を行うエラー処理手段を更に備えることを特徴とする請求項１または２に記載の電子情報記憶媒体。
【請求項４】
前記実施手段により実施された前記処理が失敗した場合、前記読出制御手段により読み出された前記カウンタを更新する第１更新手段を更に備え、
前記第１更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第１データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせることを特徴とする請求項２または３に記載の電子情報記憶媒体。
【請求項５】
前記電子情報記憶媒体の起動時に、前記第３データ領域の状態に基づいて前記読出制御手段により読み出された前記カウンタを更新する第２更新手段を更に備え、
前記判定手段は、前記第２更新手段により更新された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定することを特徴とする請求項１乃至４の何れか一項に記載の電子情報記憶媒体。
【請求項６】
前記第２更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第１データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせることを特徴とする請求項５に記載の電子情報記憶媒体。
【請求項７】
所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるカウンタ書換方法であって、
前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御ステップと、
前記読出制御ステップにより読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定ステップと、
前記判定ステップにより前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施ステップと、
前記実施ステップにより実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御ステップと、
前記判定ステップにより前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御ステップと、
を含むことを特徴とするカウンタ書換方法。
【請求項８】
所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、
前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、
前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定手段と、
前記判定手段により前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、
前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御手段と、
前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記複数の第３データ領域の状態に基づいて、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段として機能させることを特徴とするカウンタ書換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
不揮発性メモリを備えるＩＣチップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
従来、セキュリティが要求されるＩＣチップでは、ＩＣチップ内に記憶された内部データと、外部から入力された外部データとを比較する処理が実施され、一致した場合に当該処理が成功したとして次の処理へ移行するようになっているが、一致しない場合には当該処理が失敗したとして、予め設定された回数（最大許容回数）に達するまで、当該処理のリトライが行われるようになっている。例えば、特許文献１には、チップ・カードのアプリケーションに関する個人識別番号が誤入力された回数をカウントし、当該回数が閾値に達したときにアプリケーション又はチップ・カードをブロックする技術が開示されている。
【０００３】
ところで、上記処理がリトライされる回数は、例えばカウントダウン方式を例にとると、当該リトライが行われる度に１減算されるカウンタにより管理されるようになっており、当該カウンタは不揮発性メモリに記憶される。このようなカウンタは、例えば上記処理が成功した後に最大値へ復帰され、上記処理が失敗した時にカウントダウンされる。カウンタの最大値への復帰とカウントダウンの双方共に、不揮発性メモリ上で書き換えが行われる。この方式では、上記処理の成功時と失敗時の消費電力等を解析された場合、カウントダウンの書き込みが完了する前にカードが引き抜かれ（電源断）、カウントダウン前の状態を維持されてしまう（カウンタを減らすことなく、何度でもリトライ可能になってしまう)という問題がある。この問題を解消するため、処理実施前にカウントダウンしておき、上記処理の成功時には最大値に復帰させ、失敗時はそのままとする方式が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５１９３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、処理実施前にカウントダウンしておき、上記処理の成功時には最大値に復帰させ、失敗時はそのままとする方式では、上記処理の成功時に２回の書き換えが必要なため、不揮発性メモリの書き換え耐久性への影響が大きく、さらに、書き換え回数が多くなるため、処理速度が遅くなるという問題がある。
【０００６】
そこで、本発明は、不揮発性メモリの書き換え耐久性への影響を軽減すると共に、処理速度を向上すること等が可能な電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリと、前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定手段と、前記判定手段により前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御手段と、前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体において、前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせる消去制御手段を更に備えることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の電子情報記憶媒体において、前記読み出された前記カウンタが所定の条件を満たさないときエラー処理を行うエラー処理手段を更に備えることを特徴とする。
【００１０】
請求項４に記載の発明は、請求項２または３に記載の電子情報記憶媒体において、前記実施手段により実施された前記処理が失敗した場合、前記読出制御手段により読み出された前記カウンタを更新する第１更新手段を更に備え、前記第１更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第１データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせることを特徴とする。
【００１１】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶媒体において、前記電子情報記憶媒体の起動時に、前記第３データ領域の状態に基づいて前記読出制御手段により読み出された前記カウンタを更新する第２更新手段を更に備え、前記判定手段は、前記第２更新手段により更新された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定することを特徴とする。
【００１２】
請求項６に記載の発明は、請求項５に記載の電子情報記憶媒体において、前記第２更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第１データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第２データ領域及び前記複数の第３データ領域を消去状態にさせることを特徴とする。
【００１３】
請求項７に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるカウンタ書換方法であって、前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御ステップと、前記読出制御ステップにより読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定ステップと、前記判定ステップにより前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施ステップと、前記実施ステップにより実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御ステップと、前記判定ステップにより前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御ステップと、を含むことを特徴とする。
【００１４】
請求項８に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第１データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第２データ領域と、前記第２データ領域それぞれに対応する複数の第３データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第３データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、前記第１データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第２データ領域のうち前記処理実施フラグが未書き込みの第２データ領域があるか否かを判定する判定手段と、前記判定手段により前記処理実施フラグが未書き込みの第２データ領域があると判定された場合、当該未書き込みの第２データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第２データ領域に対応する前記第３データ領域に前記成功フラグを書き込む書込制御手段と、前記判定手段により前記処理実施フラグが未書き込みの第２データ領域がないと判定された場合、前記複数の第３データ領域の状態に基づいて、前記第１データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段として機能させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、処理速度を向上することができると共に、不揮発性メモリの書き換え耐久性への影響を軽減することが可能となり、さらに、成功時と失敗時の消費電力等が解析されても、電子情報記憶媒体の引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されることを防止することができる。
【図面の簡単な説明】
【００１６】
【図１】（Ａ）は、ＩＣカード１の概要構成例を示す図であり、（Ｂ）は、カウンタデータのデータ構造の一例を示す図である。
【図２】（Ａ）は、処理が成功した場合の動作例を示す図であり、（Ｂ）は、処理が失敗した場合の動作例を示す図であり、（Ｃ）は、全ての第２データ領域が処理実施フラグで埋まった場合の動作例を示す図であり、（Ｄ）は、ＩＣカード１が引き抜かれた場合の動作例を示す図である。
【図３】（Ａ）は、ＩＣチップ１ａの起動時における処理（初動処理）の一例を示すフローチャートであり、（Ｂ）は、カウンタ確認処理の一例を示すフローチャートである。
【図４】（Ａ）は、カウンタを増減させる処理の一例を示すフローチャートであり、（Ｂ）は、空き領域確認処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１８】
先ず、図１（Ａ）を参照して、本実施形態に係るＩＣカード１の構成及び機能概要について説明する。図１（Ａ）は、ＩＣカード１の概要構成例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１９】
ＩＣカード１には、図１（Ａ）に示すように、ＩＣチップ１ａが搭載されている。ＩＣチップ１ａは、本発明の電子情報記憶媒体の一例である。ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、ＩＣリーダ・ライタを備える外部端末２との間で接触または非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部端末２には通信機器の機能を担う制御部が該当する。
【００２０】
不揮発性メモリ１３は、データが保持されるデータ領域を含む。不揮発性メモリ１３には、例えばフラッシュメモリが適用される。データ領域の状態には、消去状態と書き込み状態とがある。消去状態とは、0xff（或いは、0x00）のデータ（ここで、0xは以降の値が１６進数で表記することを示す）が保持されている状態である。書き込み状態（書き込み済の状態）とは、0xAAや0x01等の意味のあるデータが保持されている状態である。フラッシュメモリでは、消去状態であるデータ領域に任意のデータを１バイト単位で書き込みでき、この書き込みにより当該データ領域は書き込み状態となる。一方、フラッシュメモリでは、書き込み状態であるデータ領域に任意のデータを書き込む場合、当該データ領域のデータをページ単位で一旦消去することで消去状態にさせた後、当該データ領域に任意のデータを１バイト単位で書き込みできるようになっている（このようにデータを消去してから書き込みを実施することを「書き換え」という）。つまり、消去状態のデータ領域に対してのみ、意図したデータを書き込めるようになっている。書き込み状態のデータ領域に対しての上書きも可能であるが、書き込んだデータが変化するため、意図したデータを書き込むことは困難になっている。なお、ページとは、読み書きを行う最小単位であり、そのサイズには１２８バイト、２５６バイト、または５１２バイトのサイズがある。なお、不揮発性メモリ１３は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。
【００２１】
そして、本実施形態に係る不揮発性メモリ１３のデータ領域には、カウンタデータを保持するデータ領域がある。カウンタデータは、所定の処理の実施回数を示すカウンタと、当該処理の実施を示す処理実施フラグと、当該処理の成功を示す成功フラグとにより構成される。ここで、所定の処理とは、カウンタを増減させる処理であり、当該処理には、例えば、認証処理等のセキュリティ処理が該当する。処理の実施とは、このようなカウンタを増減させる処理の実行を意味する。
【００２２】
図１（Ｂ）は、カウンタデータのデータ構造の一例を示す図である。図１（Ｂ）に示すように、カウンタ（数字）は、当該データ構造内に１つ必要である。処理実施フラグと成功フラグとは組になっており、その組の個数は任意である。カウンタのデータ長は、当該カウンタの最大値を保持可能なバイトである。処理実施フラグと成功フラグは、それぞれ、例えば１バイトである。不揮発性メモリ１３には、カウンタデータを保持するデータ領域として、カウンタが書き込まれる第１データ領域と、処理実施フラグが書き込まれる複数の第２データ領域と、成功フラグが書き込まれる複数の第３データ領域とが設けられる。複数の第３データ領域は、第２データ領域それぞれに対応する。つまり、１つの第１データ領域に対して、第２データ領域と第３データ領域との組が複数対応付けられる。第１データ領域に書き込まれているカウンタは、第２データ領域に書き込まれている処理実施フラグと第３データ領域に書き込まれている成功フラグとに基づいて補正される。これにより残りのカウンタ（つまり、当該処理を実行可能な残りの実施回数）が得られる。つまり、第１データ領域には、処理実施フラグ及び成功フラグを使用する前の残りカウンタが保持されるということになる。
【００２３】
ＣＰＵ１０は、ＲＯＭ１２または不揮発性メモリ１３に記憶された各種プログラム（本発明のカウンタ書換プログラムを含む）を実行するプロセッサ（コンピュータ）である。ＣＰＵ１０は、例えば外部端末２からＩ／Ｏ回路１４を介して受信された命令（コマンド）に応じて、プログラムに従って、本発明における読出制御手段、判定手段、実施手段、書込制御手段、書換制御手段、消去制御手段、エラー処理手段、第１更新手段、及び第２更新手段として機能する。例えば、ＣＰＵ１０は、ＩＣチップ１ａの起動時に、不揮発性メモリ１３における第１データ領域に書き込まれているカウンタを読み出してＲＡＭ１１に保持させる。このように読み出されたカウンタが所定の条件を満たすときに、例えば外部端末２からＩ／Ｏ回路１４を介して上記処理の実施命令があった場合（例えば、認証要求コマンドが受信された場合）、ＣＰＵ１０は、不揮発性メモリ１３における複数の第２データ領域のうち、処理実施フラグが未書き込みの第２データ領域があるか否かを判定する。ここで、カウンタが所定の条件を満たすとは、カウントダウン方式の場合、カウンタが閾値（例えば１）以上であることをいい、カウントアップ方式の場合、カウンタが閾値（例えば最大値（最大許容回数））以下であることをいう。
【００２４】
そして、ＣＰＵ１０は、処理実施フラグが未書き込みの第２データ領域があると判定した場合、当該未書き込みの第２データ領域に処理実施フラグを書き込んだ後に、上記処理を実施する。ＣＰＵ１０は、実施した処理が成功した場合、この処理の直前に処理実施フラグが書き込まれた第２データ領域に対応する第３データ領域（つまり、第２データ領域と組となる第３データ領域）に成功フラグを書き込む。なお、実施した処理が失敗した場合、不揮発性メモリ１３におけるデータ領域への書き込みは行われない。
【００２５】
図２（Ａ）は、処理が成功した場合の動作例を示す図であり、図２（Ｂ）は、処理が失敗した場合の動作例を示す図である。なお、図２の例では、カウンタの最大値は“3”（“0x03”）、処理実施フラグは“0xAA”、成功フラグは“0x01”、消去状態は“0xFF”、処理実施フラグと成功フラグの組は３組としている。図２（Ａ），（Ｂ）では共に、当該処理の実施前に第２データ領域に処理実施フラグ“0xAA”が書き込まれている。そして、図２（Ａ）に示すように当該処理の成功時には第３データ領域に成功フラグ“0x01”が書き込まれるが、図２（Ｂ）に示すように当該処理の失敗時には第３データ領域に何のデータも書き込まれず消去状態“0xFF”のままになっている。処理が成功した場合も失敗した場合も、この時点では、第１データ領域に保持されているカウンタは書き換えられていない。ただし、処理の失敗時にはＲＡＭ１１に保持されているカウンタは“3”から“2”に減ることになる。
【００２６】
一方、ＣＰＵ１０は、処理実施フラグが未書き込みの第２データ領域がないと判定した場合（つまり、全ての第２データ領域が処理実施フラグで埋まった場合）、例えば複数の第３データ領域の状態に基づいて、第１データ領域に書き込まれているカウンタを、残りの実施回数を示すカウンタ（つまり、残りカウンタ）で書き換える（つまり、保持されている古いカウンタを消去した後に、新しいカウンタを書き込む）。また、この場合、ＣＰＵ１０は、複数の第２データ領域及び複数の第３データ領域に保持されているデータを消去して、これらのデータ領域を消去状態にさせる。
【００２７】
図２（Ｃ）は、全ての第２データ領域が処理実施フラグで埋まった場合の動作例を示す図であり、図２（Ｄ）は、ＩＣカード１が引き抜かれた場合の動作例を示す図である。図２（Ｃ）に示す「７．失敗（残りカウンタ１）」の時が全ての第２データ領域が処理実施フラグで埋まった時であるが、この場合、「８．カウンタデータの確認後」、第１データ領域に書き込まれているカウンタ“0x03”が、残りカウンタ“0x01”で書き換えられることになる。このように、全ての第２データ領域が処理実施フラグで埋まるまで、不揮発性メモリ１３で保持されているカウンタは書き換えられないので、従来と比べて、不揮発性メモリ１３の書き換え（特に時間がかかるページ単位の消去）回数を減らすことができ、その結果、処理速度を向上することができると共に、不揮発性メモリ１３の書き換え耐久性への影響を軽減することが可能となる。ここで、不揮発性メモリ１３の書き換え耐久性は、書き込みや消去が何回実施可能かを示す性能であり、書き換えの場合、消去１回と、書き込み１回の計２回分を消費するので、書き換え回数が減れば、書き換え耐久性への影響が軽減されるのである。さらに、図２（Ｄ）に示すように、上記処理中にＩＣカード１が引き抜かれた（３．処理中に引き抜き）場合であっても、そもそも処理の失敗時にはデータ領域はそのままの状態であるので、当該引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されてしまうことがない。
【００２８】
次に、図３及び図４を参照して、ＩＣカード１ａにおけるＣＰＵ１０の処理について説明する。図３（Ａ）は、ＩＣチップ１ａの起動時における処理（初動処理）の一例を示すフローチャートであり、図３（Ｂ）は、カウンタ確認処理の一例を示すフローチャートである。図４（Ａ）は、カウンタを増減させる処理の一例を示すフローチャートであり、図４（Ｂ）は、空き領域確認処理の一例を示すフローチャートである。なお、以下の処理では、カウントダウン方式を例にとるものとする。
【００２９】
図３（Ａ）に示す処理は、例えば、ＩＣチップ１ａへの電源投入時、またはリセット信号受信時に開始される。図３（Ａ）に示す処理が開始されると、ＣＰＵ１０は、不揮発性メモリ１３における第１データ領域に書き込まれているカウンタを読み出してＲＡＭ１１に保持させる（ステップＳ１）。次いで、ＣＰＵ１０は、不揮発性メモリ１３における最初の第２データ領域を確認し、当該確認した第２データ領域に実施処理フラグが書き込まれているか否かを判定する（ステップＳ２）。ＣＰＵ１０は、上記確認した第２データ領域に実施処理フラグが書き込まれていると判定した場合（ステップＳ２：ＹＥＳ）、ステップＳ３へ進む。一方、ＣＰＵ１０は、上記確認した第２データ領域に書き込まれていないと判定した場合（ステップＳ２：ＮＯ）、当該処理を終了する（カウンタはＲＡＭ１１に保持）。
【００３０】
ステップＳ３では、ＣＰＵ１０は、上記確認した第２データ領域に対応する第３データ領域（つまり、第２データ領域と組となる第３データ領域）を確認し、上記確認した第３データ領域に成功フラグが書き込まれているか否かを判定する。ＣＰＵ１０は、上記確認した第３データ領域に成功フラグが書き込まれている（つまり、カウンタを増減させる処理が成功している）と判定した場合（ステップＳ３：ＹＥＳ）、ＲＡＭ１１に保持されているカウンタを最大値に更新（カウンタが減っている場合、最大値に戻す）し（ステップＳ４）、ステップＳ６へ進む。一方、ＣＰＵ１０は、上記確認した第３データ領域に成功フラグが書き込まれていない（つまり、カウンタを増減させる処理が失敗している）と判定した場合（ステップＳ３：ＮＯ）、ＲＡＭ１１に保持されているカウンタを１減らすことで更新し（ステップＳ５）、ステップＳ６へ進む。このように、ＩＣチップ１ａの起動時に、第３データ領域の状態に基づいて、ＲＡＭ１１に保持されているカウンタ（読み出されたカウンタ）が更新される。
【００３１】
ステップＳ６では、ＣＰＵ１０は、直前に確認した第２データ領域の次の第２データ領域が存在すれば当該第２データ領域を確認し（次の第２データ領域が存在しなければ、ステップＳ７へ進む）、当該確認した第２データ領域に実施処理フラグが書き込まれているか否かを判定する。ＣＰＵ１０は、上記確認した第２データ領域に実施処理フラグが書き込まれていると判定した場合（ステップＳ６：ＹＥＳ）、ステップＳ３へ戻り、上記と同様の処理を行う。一方、ＣＰＵ１０は、上記確認した第２データ領域に書き込まれていないと判定した場合（ステップＳ６：ＮＯ）、ステップＳ７へ進む。
【００３２】
ステップＳ７のカウンタ確認処理では、図３（Ｂ）に示すように、ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」（閾値）以上であるか（所定の条件を満たすか）否かを判定する（ステップＳ１０１）。ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」以上であると判定した場合（ステップＳ１０１：ＹＥＳ）、当該処理を終了する（カウンタはＲＡＭ１１に保持）。一方、ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」以上でないと判定した（つまり、「０」になった）場合（ステップＳ１０１：ＮＯ）、カウントデータを保持する第１〜第３データ領域のデータを全て消去して、第１〜第３データ領域を消去状態にさせる（ステップＳ１０２）。次いで、ＣＰＵ１０は、第１データ領域に「０」（残りカウンタ０）を書き込み（ステップＳ１０３）、当該処理を終了する。つまり、ステップＳ４またはＳ５で更新されたカウンタが所定の条件を満たさない場合、ＣＰＵ１０は、第１データ領域に書き込まれているカウンタを、所定の条件を満たさない値（この例では、「０」）で書き換え、且つ、第２及び第３データ領域の全てを消去状態にさせる。なお、ステップＳ７のカウンタ確認処理は行われなくともよい。
【００３３】
次に、図４（Ａ）に示す処理は、例えば外部端末２からＩ／Ｏ回路１４を介してセキュリティ処理の実施命令があった場合に開始される。図４（Ａ）に示す処理が開始されると、ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」（閾値）以上であるか（所定の条件を満たすか）否かを判定する（ステップＳ１１）。ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」以上であると判定した場合（ステップＳ１１：ＹＥＳ）、ステップＳ１２に進む。一方、ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」以上でないと判定した場合（ステップＳ１１：ＮＯ）、つまり、読み出されたカウンタ（または読み出され更新されたカウンタ）が所定の条件を満たさないときエラー処理を行う。エラー処理では、例えば、エラーを示すレスポンスを外部端末２へ送信し、ＩＣチップ１ａの動作が停止される。
【００３４】
ステップＳ１２の空き領域確認処理では、図４（Ｂ）に示すように、ＣＰＵ１０は、不揮発性メモリ１３における第２データ領域に空きがあるか（つまり、処理実施フラグが未書き込みの第２データ領域があるか）否かを判定する（ステップＳ１２１）。ＣＰＵ１０は、第２データ領域に空きがあると判定した場合（ステップＳ１２１：ＹＥＳ）、図４（Ａ）の処理に戻る。一方、ＣＰＵ１０は、第２データ領域に空きがないと判定した場合（ステップＳ１２１：ＮＯ）、ステップＳ１２２へ進む。
【００３５】
ステップＳ１２２では、例えば複数の第３データ領域の状態に基づいて、残りカウンタを特定（例えば計算）する。例えば、ＣＰＵ１０は、第１データ領域に保持されているカウンタを読み込み、最初の第３データ領域に成功フラグが書き込まれているか否かを判定し、成功フラグが書き込まれている場合、読み込んだカウンタを最大値に更新する一方、成功フラグが書き込まれていない場合、読み込んだカウンタを１減らすことで更新する。次いで、ＣＰＵ１０は、次の第３データ領域に成功フラグが書き込まれているか否かを判定し、成功フラグが書き込まれている場合、上記更新されたカウンタを最大値に更新する一方、成功フラグが書き込まれていない場合、上記更新されたカウンタを１減らすことで更新し、このような処理を、全ての第３データ領域について順次実行することで算出されたカウンタの最終値を残りカウンタとして特定する。或いは、ＣＰＵ１０は、第２データ領域に空きがないと判定した場合（ステップＳ１２１：ＮＯ）、このときにＲＡＭ１１に保持されているカウンタを、残りカウンタとして特定してもよい。
【００３６】
次いで、ＣＰＵ１０は、カウントデータを保持する第１〜第３データ領域のデータを全て消去して、第１〜第３データ領域を消去状態にさせる（ステップＳ１２３）。次いで、ＣＰＵ１０は、消去状態となった第１データ領域に、ステップＳ１２２で特定した残りカウンタを書き込み（ステップＳ１２４）、図４（Ａ）の処理に戻る。つまり、ＣＰＵ１０は、第１データ領域に書き込まれているカウンタを、残りカウンタで書き換える。
【００３７】
図４（Ａ）の処理に戻り、ステップＳ１３では、ＣＰＵ１０は、未書き込みの第２データ領域に処理実施フラグを書き込む。次いで、ＣＰＵ１０は、カウンタ増減の契機となる処理（例えば、セキュリティ処理）を実施する（ステップＳ１４）。次いで、ＣＰＵ１０は、実施した処理が成功したか否かを判定する（ステップＳ１５）。ＣＰＵ１１は、実施した処理が成功しなかった（つまり、失敗した）と判定した場合（ステップＳ１５：ＮＯ）、ＲＡＭ１１に保持されているカウンタを１減らすことで更新し（ステップＳ１６）、ステップＳ１９へ進む。
【００３８】
一方、ＣＰＵ１１は、実施した処理が成功したと判定した場合（ステップＳ１５：ＹＥＳ）、ステップＳ１３で処理実施フラグが書き込まれた第２データ領域に対応する第３データ領域（つまり、第２データ領域と組となる第３データ領域）に成功フラグを書き込む（ステップＳ１７）。次いで、ＣＰＵ１１は、ＲＡＭ１１に保持されているカウンタを最大値に更新し（ステップＳ１８）、ステップＳ１９へ進む。
【００３９】
ステップＳ１９のカウンタ確認処理では、上記と同様、ＣＰＵ１０は、ＲＡＭ１１に保持されているカウンタが「１」以上であるか否かを判定し、当該カウンタが「１」以上である場合、当該処理を終了し、当該カウンタが「１」以上でない場合、第１〜第３データ領域を消去状態にさせ、且つ、第１データ領域に「０」を書き込み、当該処理を終了する。つまり、ステップＳ１４で実施された上記処理が失敗した場合、ステップＳ１６でカウンタが更新されるが、この場合、ＣＰＵ１０は、第１データ領域に書き込まれているカウンタを、所定の条件を満たさない値（この例では、「０」）で書き換え、且つ、第２及び第３データ領域の全てを消去状態にさせる。なお、ステップＳ１９のカウンタ確認処理は行われなくともよい。
【００４０】
以上説明したように、上記実施形態によれば、ＩＣチップ１ａは、不揮発性メモリ１３から読み出されたカウンタが所定の条件を満たすときに上記処理の実施命令があった場合、処理実施フラグが未書き込みの第２データ領域があるか否かを判定し、未書き込みの第２データ領域があると判定した場合、当該未書き込みの第２データ領域に処理実施フラグを書き込んだ後に上記処理を実施して当該処理が成功した場合、第３データ領域に成功フラグを書き込む一方、未書き込みの第２データ領域がないと判定した場合、第１データ領域に書き込まれているカウンタを残りカウンタで書き換える。このため、処理速度を向上することができると共に、不揮発性メモリ１３の書き換え耐久性への影響を軽減することが可能となる。さらに、処理の実施前に第２データ領域に処理実施フラグを書き込むので、成功時と失敗時の消費電力等が解析されても、ＩＣカード１の引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されることを防止することができる。
【００４１】
なお、上記実施形態においては、本発明の電子情報記憶媒体の一例としてＩＣチップ１ａを例にとって説明したが、本発明は、組込み型のマイクロチップ等に対して適用することもできる。
【符号の説明】
【００４２】
１  ＩＣカード
１ａ  ＩＣチップ
２  外部端末
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図３】
2016153945.tif 000003
【図４】
2016153945.tif 000004
【図１】
2016153945.tif 000005
【図２】
2016153945.tif 000006