JP2016153945A - 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム - Google Patents
電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム Download PDFInfo
- Publication number
- JP2016153945A JP2016153945A JP2015031475A JP2015031475A JP2016153945A JP 2016153945 A JP2016153945 A JP 2016153945A JP 2015031475 A JP2015031475 A JP 2015031475A JP 2015031475 A JP2015031475 A JP 2015031475A JP 2016153945 A JP2016153945 A JP 2016153945A
- Authority
- JP
- Japan
- Prior art keywords
- written
- counter
- data area
- data
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
【課題】本発明は、不揮発性メモリの書き換え耐久性への影響を軽減すると共に、処理速度を向上すること等が可能な電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラムを提供する。
【解決手段】ICチップ1aは、不揮発性メモリ13から読み出されたカウンタが所定の条件を満たすときに上記処理の実施命令があった場合、処理実施フラグが未書き込みの第2データ領域があるか否かを判定し、未書き込みの第2データ領域があると判定した場合、当該未書き込みの第2データ領域に処理実施フラグを書き込んだ後に上記処理を実施して当該処理が成功した場合、第3データ領域に成功フラグを書き込む一方、未書き込みの第2データ領域がないと判定した場合、第1データ領域に書き込まれているカウンタを残りカウンタで書き換える。
【選択図】図4
【解決手段】ICチップ1aは、不揮発性メモリ13から読み出されたカウンタが所定の条件を満たすときに上記処理の実施命令があった場合、処理実施フラグが未書き込みの第2データ領域があるか否かを判定し、未書き込みの第2データ領域があると判定した場合、当該未書き込みの第2データ領域に処理実施フラグを書き込んだ後に上記処理を実施して当該処理が成功した場合、第3データ領域に成功フラグを書き込む一方、未書き込みの第2データ領域がないと判定した場合、第1データ領域に書き込まれているカウンタを残りカウンタで書き換える。
【選択図】図4
Description
不揮発性メモリを備えるICチップ等の電子情報記憶媒体の技術分野に関する。
従来、セキュリティが要求されるICチップでは、ICチップ内に記憶された内部データと、外部から入力された外部データとを比較する処理が実施され、一致した場合に当該処理が成功したとして次の処理へ移行するようになっているが、一致しない場合には当該処理が失敗したとして、予め設定された回数(最大許容回数)に達するまで、当該処理のリトライが行われるようになっている。例えば、特許文献1には、チップ・カードのアプリケーションに関する個人識別番号が誤入力された回数をカウントし、当該回数が閾値に達したときにアプリケーション又はチップ・カードをブロックする技術が開示されている。
ところで、上記処理がリトライされる回数は、例えばカウントダウン方式を例にとると、当該リトライが行われる度に1減算されるカウンタにより管理されるようになっており、当該カウンタは不揮発性メモリに記憶される。このようなカウンタは、例えば上記処理が成功した後に最大値へ復帰され、上記処理が失敗した時にカウントダウンされる。カウンタの最大値への復帰とカウントダウンの双方共に、不揮発性メモリ上で書き換えが行われる。この方式では、上記処理の成功時と失敗時の消費電力等を解析された場合、カウントダウンの書き込みが完了する前にカードが引き抜かれ(電源断)、カウントダウン前の状態を維持されてしまう(カウンタを減らすことなく、何度でもリトライ可能になってしまう)という問題がある。この問題を解消するため、処理実施前にカウントダウンしておき、上記処理の成功時には最大値に復帰させ、失敗時はそのままとする方式が知られている。
しかしながら、処理実施前にカウントダウンしておき、上記処理の成功時には最大値に復帰させ、失敗時はそのままとする方式では、上記処理の成功時に2回の書き換えが必要なため、不揮発性メモリの書き換え耐久性への影響が大きく、さらに、書き換え回数が多くなるため、処理速度が遅くなるという問題がある。
そこで、本発明は、不揮発性メモリの書き換え耐久性への影響を軽減すると共に、処理速度を向上すること等が可能な電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラムを提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリと、前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定手段と、前記判定手段により前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御手段と、前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段と、を備えることを特徴とする。
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせる消去制御手段を更に備えることを特徴とする。
請求項3に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記読み出された前記カウンタが所定の条件を満たさないときエラー処理を行うエラー処理手段を更に備えることを特徴とする。
請求項4に記載の発明は、請求項2または3に記載の電子情報記憶媒体において、前記実施手段により実施された前記処理が失敗した場合、前記読出制御手段により読み出された前記カウンタを更新する第1更新手段を更に備え、前記第1更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第1データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせることを特徴とする。
請求項5に記載の発明は、請求項1乃至4の何れか一項に記載の電子情報記憶媒体において、前記電子情報記憶媒体の起動時に、前記第3データ領域の状態に基づいて前記読出制御手段により読み出された前記カウンタを更新する第2更新手段を更に備え、前記判定手段は、前記第2更新手段により更新された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定することを特徴とする。
請求項6に記載の発明は、請求項5に記載の電子情報記憶媒体において、前記第2更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第1データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせることを特徴とする。
請求項7に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるカウンタ書換方法であって、前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御ステップと、前記読出制御ステップにより読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定ステップと、前記判定ステップにより前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施ステップと、前記実施ステップにより実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御ステップと、前記判定ステップにより前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御ステップと、を含むことを特徴とする。
請求項8に記載の発明は、所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定手段と、前記判定手段により前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御手段と、前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記複数の第3データ領域の状態に基づいて、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段として機能させることを特徴とする。
本発明によれば、処理速度を向上することができると共に、不揮発性メモリの書き換え耐久性への影響を軽減することが可能となり、さらに、成功時と失敗時の消費電力等が解析されても、電子情報記憶媒体の引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されることを防止することができる。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICカードに対して本発明を適用した場合の実施の形態である。
先ず、図1(A)を参照して、本実施形態に係るICカード1の構成及び機能概要について説明する。図1(A)は、ICカード1の概要構成例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップ1aは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
ICカード1には、図1(A)に示すように、ICチップ1aが搭載されている。ICチップ1aは、本発明の電子情報記憶媒体の一例である。ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。なお、I/O回路14は、外部端末2とのインターフェイスを担う。これにより、ICチップ1aは、ICリーダ・ライタを備える外部端末2との間で接触または非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部端末2には通信機器の機能を担う制御部が該当する。
不揮発性メモリ13は、データが保持されるデータ領域を含む。不揮発性メモリ13には、例えばフラッシュメモリが適用される。データ領域の状態には、消去状態と書き込み状態とがある。消去状態とは、0xff(或いは、0x00)のデータ(ここで、0xは以降の値が16進数で表記することを示す)が保持されている状態である。書き込み状態(書き込み済の状態)とは、0xAAや0x01等の意味のあるデータが保持されている状態である。フラッシュメモリでは、消去状態であるデータ領域に任意のデータを1バイト単位で書き込みでき、この書き込みにより当該データ領域は書き込み状態となる。一方、フラッシュメモリでは、書き込み状態であるデータ領域に任意のデータを書き込む場合、当該データ領域のデータをページ単位で一旦消去することで消去状態にさせた後、当該データ領域に任意のデータを1バイト単位で書き込みできるようになっている(このようにデータを消去してから書き込みを実施することを「書き換え」という)。つまり、消去状態のデータ領域に対してのみ、意図したデータを書き込めるようになっている。書き込み状態のデータ領域に対しての上書きも可能であるが、書き込んだデータが変化するため、意図したデータを書き込むことは困難になっている。なお、ページとは、読み書きを行う最小単位であり、そのサイズには128バイト、256バイト、または512バイトのサイズがある。なお、不揮発性メモリ13は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。
そして、本実施形態に係る不揮発性メモリ13のデータ領域には、カウンタデータを保持するデータ領域がある。カウンタデータは、所定の処理の実施回数を示すカウンタと、当該処理の実施を示す処理実施フラグと、当該処理の成功を示す成功フラグとにより構成される。ここで、所定の処理とは、カウンタを増減させる処理であり、当該処理には、例えば、認証処理等のセキュリティ処理が該当する。処理の実施とは、このようなカウンタを増減させる処理の実行を意味する。
図1(B)は、カウンタデータのデータ構造の一例を示す図である。図1(B)に示すように、カウンタ(数字)は、当該データ構造内に1つ必要である。処理実施フラグと成功フラグとは組になっており、その組の個数は任意である。カウンタのデータ長は、当該カウンタの最大値を保持可能なバイトである。処理実施フラグと成功フラグは、それぞれ、例えば1バイトである。不揮発性メモリ13には、カウンタデータを保持するデータ領域として、カウンタが書き込まれる第1データ領域と、処理実施フラグが書き込まれる複数の第2データ領域と、成功フラグが書き込まれる複数の第3データ領域とが設けられる。複数の第3データ領域は、第2データ領域それぞれに対応する。つまり、1つの第1データ領域に対して、第2データ領域と第3データ領域との組が複数対応付けられる。第1データ領域に書き込まれているカウンタは、第2データ領域に書き込まれている処理実施フラグと第3データ領域に書き込まれている成功フラグとに基づいて補正される。これにより残りのカウンタ(つまり、当該処理を実行可能な残りの実施回数)が得られる。つまり、第1データ領域には、処理実施フラグ及び成功フラグを使用する前の残りカウンタが保持されるということになる。
CPU10は、ROM12または不揮発性メモリ13に記憶された各種プログラム(本発明のカウンタ書換プログラムを含む)を実行するプロセッサ(コンピュータ)である。CPU10は、例えば外部端末2からI/O回路14を介して受信された命令(コマンド)に応じて、プログラムに従って、本発明における読出制御手段、判定手段、実施手段、書込制御手段、書換制御手段、消去制御手段、エラー処理手段、第1更新手段、及び第2更新手段として機能する。例えば、CPU10は、ICチップ1aの起動時に、不揮発性メモリ13における第1データ領域に書き込まれているカウンタを読み出してRAM11に保持させる。このように読み出されたカウンタが所定の条件を満たすときに、例えば外部端末2からI/O回路14を介して上記処理の実施命令があった場合(例えば、認証要求コマンドが受信された場合)、CPU10は、不揮発性メモリ13における複数の第2データ領域のうち、処理実施フラグが未書き込みの第2データ領域があるか否かを判定する。ここで、カウンタが所定の条件を満たすとは、カウントダウン方式の場合、カウンタが閾値(例えば1)以上であることをいい、カウントアップ方式の場合、カウンタが閾値(例えば最大値(最大許容回数))以下であることをいう。
そして、CPU10は、処理実施フラグが未書き込みの第2データ領域があると判定した場合、当該未書き込みの第2データ領域に処理実施フラグを書き込んだ後に、上記処理を実施する。CPU10は、実施した処理が成功した場合、この処理の直前に処理実施フラグが書き込まれた第2データ領域に対応する第3データ領域(つまり、第2データ領域と組となる第3データ領域)に成功フラグを書き込む。なお、実施した処理が失敗した場合、不揮発性メモリ13におけるデータ領域への書き込みは行われない。
図2(A)は、処理が成功した場合の動作例を示す図であり、図2(B)は、処理が失敗した場合の動作例を示す図である。なお、図2の例では、カウンタの最大値は“3”(“0x03”)、処理実施フラグは“0xAA”、成功フラグは“0x01”、消去状態は“0xFF”、処理実施フラグと成功フラグの組は3組としている。図2(A),(B)では共に、当該処理の実施前に第2データ領域に処理実施フラグ“0xAA”が書き込まれている。そして、図2(A)に示すように当該処理の成功時には第3データ領域に成功フラグ“0x01”が書き込まれるが、図2(B)に示すように当該処理の失敗時には第3データ領域に何のデータも書き込まれず消去状態“0xFF”のままになっている。処理が成功した場合も失敗した場合も、この時点では、第1データ領域に保持されているカウンタは書き換えられていない。ただし、処理の失敗時にはRAM11に保持されているカウンタは“3”から“2”に減ることになる。
一方、CPU10は、処理実施フラグが未書き込みの第2データ領域がないと判定した場合(つまり、全ての第2データ領域が処理実施フラグで埋まった場合)、例えば複数の第3データ領域の状態に基づいて、第1データ領域に書き込まれているカウンタを、残りの実施回数を示すカウンタ(つまり、残りカウンタ)で書き換える(つまり、保持されている古いカウンタを消去した後に、新しいカウンタを書き込む)。また、この場合、CPU10は、複数の第2データ領域及び複数の第3データ領域に保持されているデータを消去して、これらのデータ領域を消去状態にさせる。
図2(C)は、全ての第2データ領域が処理実施フラグで埋まった場合の動作例を示す図であり、図2(D)は、ICカード1が引き抜かれた場合の動作例を示す図である。図2(C)に示す「7.失敗(残りカウンタ1)」の時が全ての第2データ領域が処理実施フラグで埋まった時であるが、この場合、「8.カウンタデータの確認後」、第1データ領域に書き込まれているカウンタ“0x03”が、残りカウンタ“0x01”で書き換えられることになる。このように、全ての第2データ領域が処理実施フラグで埋まるまで、不揮発性メモリ13で保持されているカウンタは書き換えられないので、従来と比べて、不揮発性メモリ13の書き換え(特に時間がかかるページ単位の消去)回数を減らすことができ、その結果、処理速度を向上することができると共に、不揮発性メモリ13の書き換え耐久性への影響を軽減することが可能となる。ここで、不揮発性メモリ13の書き換え耐久性は、書き込みや消去が何回実施可能かを示す性能であり、書き換えの場合、消去1回と、書き込み1回の計2回分を消費するので、書き換え回数が減れば、書き換え耐久性への影響が軽減されるのである。さらに、図2(D)に示すように、上記処理中にICカード1が引き抜かれた(3.処理中に引き抜き)場合であっても、そもそも処理の失敗時にはデータ領域はそのままの状態であるので、当該引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されてしまうことがない。
次に、図3及び図4を参照して、ICカード1aにおけるCPU10の処理について説明する。図3(A)は、ICチップ1aの起動時における処理(初動処理)の一例を示すフローチャートであり、図3(B)は、カウンタ確認処理の一例を示すフローチャートである。図4(A)は、カウンタを増減させる処理の一例を示すフローチャートであり、図4(B)は、空き領域確認処理の一例を示すフローチャートである。なお、以下の処理では、カウントダウン方式を例にとるものとする。
図3(A)に示す処理は、例えば、ICチップ1aへの電源投入時、またはリセット信号受信時に開始される。図3(A)に示す処理が開始されると、CPU10は、不揮発性メモリ13における第1データ領域に書き込まれているカウンタを読み出してRAM11に保持させる(ステップS1)。次いで、CPU10は、不揮発性メモリ13における最初の第2データ領域を確認し、当該確認した第2データ領域に実施処理フラグが書き込まれているか否かを判定する(ステップS2)。CPU10は、上記確認した第2データ領域に実施処理フラグが書き込まれていると判定した場合(ステップS2:YES)、ステップS3へ進む。一方、CPU10は、上記確認した第2データ領域に書き込まれていないと判定した場合(ステップS2:NO)、当該処理を終了する(カウンタはRAM11に保持)。
ステップS3では、CPU10は、上記確認した第2データ領域に対応する第3データ領域(つまり、第2データ領域と組となる第3データ領域)を確認し、上記確認した第3データ領域に成功フラグが書き込まれているか否かを判定する。CPU10は、上記確認した第3データ領域に成功フラグが書き込まれている(つまり、カウンタを増減させる処理が成功している)と判定した場合(ステップS3:YES)、RAM11に保持されているカウンタを最大値に更新(カウンタが減っている場合、最大値に戻す)し(ステップS4)、ステップS6へ進む。一方、CPU10は、上記確認した第3データ領域に成功フラグが書き込まれていない(つまり、カウンタを増減させる処理が失敗している)と判定した場合(ステップS3:NO)、RAM11に保持されているカウンタを1減らすことで更新し(ステップS5)、ステップS6へ進む。このように、ICチップ1aの起動時に、第3データ領域の状態に基づいて、RAM11に保持されているカウンタ(読み出されたカウンタ)が更新される。
ステップS6では、CPU10は、直前に確認した第2データ領域の次の第2データ領域が存在すれば当該第2データ領域を確認し(次の第2データ領域が存在しなければ、ステップS7へ進む)、当該確認した第2データ領域に実施処理フラグが書き込まれているか否かを判定する。CPU10は、上記確認した第2データ領域に実施処理フラグが書き込まれていると判定した場合(ステップS6:YES)、ステップS3へ戻り、上記と同様の処理を行う。一方、CPU10は、上記確認した第2データ領域に書き込まれていないと判定した場合(ステップS6:NO)、ステップS7へ進む。
ステップS7のカウンタ確認処理では、図3(B)に示すように、CPU10は、RAM11に保持されているカウンタが「1」(閾値)以上であるか(所定の条件を満たすか)否かを判定する(ステップS101)。CPU10は、RAM11に保持されているカウンタが「1」以上であると判定した場合(ステップS101:YES)、当該処理を終了する(カウンタはRAM11に保持)。一方、CPU10は、RAM11に保持されているカウンタが「1」以上でないと判定した(つまり、「0」になった)場合(ステップS101:NO)、カウントデータを保持する第1〜第3データ領域のデータを全て消去して、第1〜第3データ領域を消去状態にさせる(ステップS102)。次いで、CPU10は、第1データ領域に「0」(残りカウンタ0)を書き込み(ステップS103)、当該処理を終了する。つまり、ステップS4またはS5で更新されたカウンタが所定の条件を満たさない場合、CPU10は、第1データ領域に書き込まれているカウンタを、所定の条件を満たさない値(この例では、「0」)で書き換え、且つ、第2及び第3データ領域の全てを消去状態にさせる。なお、ステップS7のカウンタ確認処理は行われなくともよい。
次に、図4(A)に示す処理は、例えば外部端末2からI/O回路14を介してセキュリティ処理の実施命令があった場合に開始される。図4(A)に示す処理が開始されると、CPU10は、RAM11に保持されているカウンタが「1」(閾値)以上であるか(所定の条件を満たすか)否かを判定する(ステップS11)。CPU10は、RAM11に保持されているカウンタが「1」以上であると判定した場合(ステップS11:YES)、ステップS12に進む。一方、CPU10は、RAM11に保持されているカウンタが「1」以上でないと判定した場合(ステップS11:NO)、つまり、読み出されたカウンタ(または読み出され更新されたカウンタ)が所定の条件を満たさないときエラー処理を行う。エラー処理では、例えば、エラーを示すレスポンスを外部端末2へ送信し、ICチップ1aの動作が停止される。
ステップS12の空き領域確認処理では、図4(B)に示すように、CPU10は、不揮発性メモリ13における第2データ領域に空きがあるか(つまり、処理実施フラグが未書き込みの第2データ領域があるか)否かを判定する(ステップS121)。CPU10は、第2データ領域に空きがあると判定した場合(ステップS121:YES)、図4(A)の処理に戻る。一方、CPU10は、第2データ領域に空きがないと判定した場合(ステップS121:NO)、ステップS122へ進む。
ステップS122では、例えば複数の第3データ領域の状態に基づいて、残りカウンタを特定(例えば計算)する。例えば、CPU10は、第1データ領域に保持されているカウンタを読み込み、最初の第3データ領域に成功フラグが書き込まれているか否かを判定し、成功フラグが書き込まれている場合、読み込んだカウンタを最大値に更新する一方、成功フラグが書き込まれていない場合、読み込んだカウンタを1減らすことで更新する。次いで、CPU10は、次の第3データ領域に成功フラグが書き込まれているか否かを判定し、成功フラグが書き込まれている場合、上記更新されたカウンタを最大値に更新する一方、成功フラグが書き込まれていない場合、上記更新されたカウンタを1減らすことで更新し、このような処理を、全ての第3データ領域について順次実行することで算出されたカウンタの最終値を残りカウンタとして特定する。或いは、CPU10は、第2データ領域に空きがないと判定した場合(ステップS121:NO)、このときにRAM11に保持されているカウンタを、残りカウンタとして特定してもよい。
次いで、CPU10は、カウントデータを保持する第1〜第3データ領域のデータを全て消去して、第1〜第3データ領域を消去状態にさせる(ステップS123)。次いで、CPU10は、消去状態となった第1データ領域に、ステップS122で特定した残りカウンタを書き込み(ステップS124)、図4(A)の処理に戻る。つまり、CPU10は、第1データ領域に書き込まれているカウンタを、残りカウンタで書き換える。
図4(A)の処理に戻り、ステップS13では、CPU10は、未書き込みの第2データ領域に処理実施フラグを書き込む。次いで、CPU10は、カウンタ増減の契機となる処理(例えば、セキュリティ処理)を実施する(ステップS14)。次いで、CPU10は、実施した処理が成功したか否かを判定する(ステップS15)。CPU11は、実施した処理が成功しなかった(つまり、失敗した)と判定した場合(ステップS15:NO)、RAM11に保持されているカウンタを1減らすことで更新し(ステップS16)、ステップS19へ進む。
一方、CPU11は、実施した処理が成功したと判定した場合(ステップS15:YES)、ステップS13で処理実施フラグが書き込まれた第2データ領域に対応する第3データ領域(つまり、第2データ領域と組となる第3データ領域)に成功フラグを書き込む(ステップS17)。次いで、CPU11は、RAM11に保持されているカウンタを最大値に更新し(ステップS18)、ステップS19へ進む。
ステップS19のカウンタ確認処理では、上記と同様、CPU10は、RAM11に保持されているカウンタが「1」以上であるか否かを判定し、当該カウンタが「1」以上である場合、当該処理を終了し、当該カウンタが「1」以上でない場合、第1〜第3データ領域を消去状態にさせ、且つ、第1データ領域に「0」を書き込み、当該処理を終了する。つまり、ステップS14で実施された上記処理が失敗した場合、ステップS16でカウンタが更新されるが、この場合、CPU10は、第1データ領域に書き込まれているカウンタを、所定の条件を満たさない値(この例では、「0」)で書き換え、且つ、第2及び第3データ領域の全てを消去状態にさせる。なお、ステップS19のカウンタ確認処理は行われなくともよい。
以上説明したように、上記実施形態によれば、ICチップ1aは、不揮発性メモリ13から読み出されたカウンタが所定の条件を満たすときに上記処理の実施命令があった場合、処理実施フラグが未書き込みの第2データ領域があるか否かを判定し、未書き込みの第2データ領域があると判定した場合、当該未書き込みの第2データ領域に処理実施フラグを書き込んだ後に上記処理を実施して当該処理が成功した場合、第3データ領域に成功フラグを書き込む一方、未書き込みの第2データ領域がないと判定した場合、第1データ領域に書き込まれているカウンタを残りカウンタで書き換える。このため、処理速度を向上することができると共に、不揮発性メモリ13の書き換え耐久性への影響を軽減することが可能となる。さらに、処理の実施前に第2データ領域に処理実施フラグを書き込むので、成功時と失敗時の消費電力等が解析されても、ICカード1の引き抜きによる影響を受けることがなく、例えばカウントダウン前の状態が維持されることを防止することができる。
なお、上記実施形態においては、本発明の電子情報記憶媒体の一例としてICチップ1aを例にとって説明したが、本発明は、組込み型のマイクロチップ等に対して適用することもできる。
1 ICカード
1a ICチップ
2 外部端末
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
1a ICチップ
2 外部端末
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
Claims (8)
- 所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリと、
前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、
前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定手段と、
前記判定手段により前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、
前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御手段と、
前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段と、
を備えることを特徴とする電子情報記憶媒体。 - 前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせる消去制御手段を更に備えることを特徴とする請求項1に記載の電子情報記憶媒体。
- 前記読み出された前記カウンタが所定の条件を満たさないときエラー処理を行うエラー処理手段を更に備えることを特徴とする請求項1または2に記載の電子情報記憶媒体。
- 前記実施手段により実施された前記処理が失敗した場合、前記読出制御手段により読み出された前記カウンタを更新する第1更新手段を更に備え、
前記第1更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第1データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせることを特徴とする請求項2または3に記載の電子情報記憶媒体。 - 前記電子情報記憶媒体の起動時に、前記第3データ領域の状態に基づいて前記読出制御手段により読み出された前記カウンタを更新する第2更新手段を更に備え、
前記判定手段は、前記第2更新手段により更新された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定することを特徴とする請求項1乃至4の何れか一項に記載の電子情報記憶媒体。 - 前記第2更新手段により更新された前記カウンタが所定の条件を満たさない場合、前記書換制御手段は、前記第1データ領域に書き込まれている前記カウンタを、前記所定の条件を満たさない値で書き換え、且つ、前記消去制御手段は、前記複数の第2データ領域及び前記複数の第3データ領域を消去状態にさせることを特徴とする請求項5に記載の電子情報記憶媒体。
- 所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるカウンタ書換方法であって、
前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御ステップと、
前記読出制御ステップにより読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定ステップと、
前記判定ステップにより前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施ステップと、
前記実施ステップにより実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御ステップと、
前記判定ステップにより前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御ステップと、
を含むことを特徴とするカウンタ書換方法。 - 所定の処理の実施回数を示すカウンタが書き込まれる第1データ領域と、前記処理の実施を示す処理実施フラグが書き込まれる複数の第2データ領域と、前記第2データ領域それぞれに対応する複数の第3データ領域であって前記処理の成功を示す成功フラグが書き込まれる複数の第3データ領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、
前記第1データ領域に書き込まれている前記カウンタを読み出す読出制御手段と、
前記読出制御手段により読み出された前記カウンタが所定の条件を満たすときに前記処理の実施命令があった場合、前記複数の第2データ領域のうち前記処理実施フラグが未書き込みの第2データ領域があるか否かを判定する判定手段と、
前記判定手段により前記処理実施フラグが未書き込みの第2データ領域があると判定された場合、当該未書き込みの第2データ領域に前記処理実施フラグを書き込んだ後に、前記処理を実施する実施手段と、
前記実施手段により実施された前記処理が成功した場合、前記処理実施フラグが書き込まれた前記第2データ領域に対応する前記第3データ領域に前記成功フラグを書き込む書込制御手段と、
前記判定手段により前記処理実施フラグが未書き込みの第2データ領域がないと判定された場合、前記複数の第3データ領域の状態に基づいて、前記第1データ領域に書き込まれている前記カウンタを、残りの前記実施回数を示すカウンタで書き換える書換制御手段として機能させることを特徴とするカウンタ書換プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015031475A JP2016153945A (ja) | 2015-02-20 | 2015-02-20 | 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015031475A JP2016153945A (ja) | 2015-02-20 | 2015-02-20 | 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016153945A true JP2016153945A (ja) | 2016-08-25 |
Family
ID=56761218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015031475A Pending JP2016153945A (ja) | 2015-02-20 | 2015-02-20 | 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016153945A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2720254C1 (ru) * | 2019-12-05 | 2020-04-28 | Акционерное общество "Актив-софт" (АО "Актив-софт") | Способ восстановления и обновления программного обеспечения на смарт-карте |
-
2015
- 2015-02-20 JP JP2015031475A patent/JP2016153945A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2720254C1 (ru) * | 2019-12-05 | 2020-04-28 | Акционерное общество "Актив-софт" (АО "Актив-софт") | Способ восстановления и обновления программного обеспечения на смарт-карте |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20140108666A (ko) | 스마트 카드의 비휘발성 메모리에 데이터 쓰기 | |
JP2013196436A (ja) | Icカード、携帯可能電子装置及びicカードの制御方法 | |
KR101783526B1 (ko) | Ic 카드, 전자 장치 및 휴대 가능 전자 장치 | |
JP5225054B2 (ja) | Icカード | |
JP4896842B2 (ja) | 携帯可能電子装置 | |
JP2016153945A (ja) | 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム | |
JP6233134B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP2006293706A (ja) | アプリケーションの更新機能を有するマルチアプリケーションicカード | |
JP7322923B2 (ja) | セキュアエレメント,トランザクション制御方法およびデバイス | |
JP6281302B2 (ja) | 情報処理装置、icカード、及びデータ処理方法 | |
JP5932588B2 (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 | |
JP5708228B2 (ja) | Icカード及びicカードのリフレッシュ方法 | |
JP6984328B2 (ja) | 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム | |
JP7468757B1 (ja) | 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム | |
JP6160326B2 (ja) | 情報記憶媒体、情報書き込み方法、及び書き込みプログラム | |
JP6015461B2 (ja) | 情報記録媒体、データ読み書き方法、及びデータ読み書きプログラム | |
JP2008305263A (ja) | 不揮発性半導体記憶装置及びメモリ管理方法 | |
JP6252341B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP6447219B2 (ja) | 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード | |
JP7040053B2 (ja) | 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos | |
JP7021465B2 (ja) | 電子情報記憶装置、icカード、データ復元方法、及びデータ復元プログラム | |
JP2018060455A (ja) | 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム | |
JP6556489B2 (ja) | Icカード、icモジュール、発行装置、発行方法、及び発行プログラム | |
JP2019168944A (ja) | 電子情報記憶媒体、icカード、コマンド群実行方法及び、コマンド群実行プログラム | |
JP6039036B2 (ja) | Icカード、携帯可能電子装置及びicカードの制御方法 |