(57)【要約】【課題】不揮発性の記憶手段に記憶されたデータが不正に改ざんされることを防止できるデータ記憶装置及びＩＣカードを提供する。また、このデータ記憶装置又はＩＣカードに備えられた不揮発性の記憶手段にデータを記憶させるデータの記憶方法を提供する。【解決手段】ＣＰＵ１０は、端末装置５０から書き換え無効化コマンドを受信した場合に、フラッシュメモリ１３に記憶された書き込みプログラム２２及び消去プログラム２３をＤＲＡＭ１２へコピーし、コピーした書き込みプログラム２２及び消去プログラム２３を実行して、フラッシュメモリ１３に記憶された書き込みプログラム２２及び消去プログラム２３をＮＯＰ命令、リセット命令又は未定義命令等に書き換える。【選択図】図１
2007148644.tif 000002
【特許請求の範囲】
【請求項１】
データの操作を行うためのデータ操作命令列が記憶された不揮発性のデータ記憶手段と、前記データ操作命令列を実行し、前記不揮発性のデータ記憶手段に対するデータの操作処理を行う処理手段とを備えるデータ記憶装置において、
揮発性のデータ記憶手段と、
前記不揮発性のデータ記憶手段からデータ操作命令列を読み出して前記揮発性のデータ記憶手段に複製する複製手段と、
前記揮発性のデータ記憶手段に複製されたデータ操作命令列を実行し、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を操作して無効化する無効化手段と
を備えることを特徴とするデータ記憶装置。
【請求項２】
前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化する指示を受け付ける受付手段を備え、
該受付手段が前記指示を受け付けた場合に、前記複製手段によりデータ操作命令列を複製し、前記無効化手段により無効化するようにしてある請求項１に記載のデータ記憶装置。
【請求項３】
前記データ操作命令列は、前記不揮発性のデータ記憶手段に対するデータの書き込み命令を含む請求項１又は請求項２に記載のデータ記憶装置。
【請求項４】
前記データ操作命令列は、前記不揮発性のデータ記憶手段に対するデータの消去命令を含む請求項１乃至請求項３のいずれか１つに記載のデータ記憶装置。
【請求項５】
前記無効化手段は、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を、前記処理手段の処理を初期化する初期化命令、前記処理手段が処理を行わない無処理命令、又は前記処理手段に対して定義されていない命令に変更するようにしてある請求項１乃至請求項４のいずれか１つに記載のデータ記憶装置。
【請求項６】
前記無効化手段により、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列が無効化されたか否かを判定する判定手段を備え、
該判定手段が無効化されたと判定した場合、前記無効化手段によるデータ操作命令列の無効化を行わないようにしてある請求項１乃至請求項５のいずれか１つに記載のデータ記憶装置。
【請求項７】
データの操作を行うためのデータ操作命令列が記憶された不揮発性のデータ記憶手段と、前記データ操作命令列を実行し、前記不揮発性のデータ記憶手段に対するデータの操作処理を行う処理部と、他の装置が送信するデータを受信する受信手段とを備えるＩＣカードにおいて、
前記受信手段を介して、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化する指示を受け付ける受付手段と、
揮発性のデータ記憶手段と、
前記受付手段が前記指示を受け付けた場合に、前記不揮発性のデータ記憶手段からデータ操作命令列を読み出して前記揮発性のデータ記憶手段に複製する複製手段と、
前記揮発性のデータ記憶手段に複製されたデータ操作命令列を実行し、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を操作して無効化する無効化手段と
を備えることを特徴とするＩＣカード。
【請求項８】
請求項１乃至請求項６のいずれか１つに記載のデータ記憶装置、又は請求項７に記載のＩＣカードに備えられた不揮発性のデータ記憶手段にデータを記憶するデータ記憶方法であって、
前記不揮発性のデータ記憶手段に識別データを記憶するステップと、
前記不揮発性のデータ記憶手段に記憶された前記識別データに対する照合を行って、前記不揮発性のデータ記憶手段にデータを記憶するステップと、
該ステップでのデータの記憶が終了した後に、前記無効化手段により前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化するステップと
を備えることを特徴とするデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性のメモリを備え、不揮発性のメモリに記憶されたデータが改ざんされることを防止できるデータ記憶装置及びＩＣカードに関し、また、このデータ記憶装置又はＩＣカードにデータを記憶するデータ記憶方法に関する。
【背景技術】
【０００２】
近年、カード型の薄い筐体内にフラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性のメモリと、不揮発性のメモリに対するデータの読み出し、書き込み及び消去等の処理を行うＣＰＵとを備えるＩＣカードが普及している。ＩＣカードには、筐体の表面に他の装置と接続してデータの送受信を行うための端子部が設けられた接触型のＩＣカードと、筐体内部にアンテナ部を有し、無線によりデータの送受信を行う非接触型のＩＣカードとがあり、また、両機能を有する複合型のＩＣカードがある。また、ＩＣカードには、ユーザが使用する場合にメモリ内のデータが書き換えられるものと、内部のメモリにデータが書き込まれて出荷された後、内部のデータが書き換えられることなく、読み出し専用として使用されるものとがある。
【０００３】
ＩＣカードは、従来利用されていた磁気カードと比較して、非接触型のカードが実現できること、及び、より大量のデータを記憶できること、等の利点がある。しかし、内部のメモリには秘密性の高い個人情報が多数記憶されていることが多いため、不正なデータ読み出し及び不正なデータ書き換え等を防止するセキュリティ機能が不可欠である。ＩＣカードには内部にＣＰＵが備えられているため、他の装置とデータの送受信を行う場合に、高度な認証処理又は暗号化処理等を行うことができ、これらの処理によりセキュリティを高めている。
【０００４】
特許文献１においては、ＩＣカードの発行者を特定する発行者ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ、暗証番号）及びＩＣカードの製造者を特定する製造者ＰＩＮをＩＣカードのメモリに記憶しておき、発行者ＰＩＮ及び製造者ＰＩＮの照合を行って両ＰＩＮが一致した場合にのみ、データの書き換えを可能とすることにより、ＩＣカード内のデータが不正に改ざんされることを防止できるＩＣカードが提案されている。
【特許文献１】特開平５−４０８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のＩＣカードにおいては、認証のためのＰＩＮを２種類設けることでセキュリティを高めているが、２種類のＰＩＮが知られた場合には、データが不正に改ざんされる虞がある。また、データを書き換えるためのプログラムは内部のメモリに記憶されており、ＣＰＵはこのプログラムを読み出して実行することでメモリに記憶されたデータの書き換えを行うようにしてある場合が多い。このため、実行中のプログラムのメモリアドレスを格納するためにＣＰＵが有するプログラムカウンタの値を、外部から不正に書き換えられた場合には、認証のためのＰＩＮが知られていない場合であっても、データ書き換えのためのプログラムが実行され、データが不正に改ざんされる虞がある。
【０００６】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、不揮発性のデータ記憶手段に記憶されたデータの書き換えを行うためのデータ操作命令列を揮発性のデータ記憶手段に複製し、揮発性のデータ記憶手段に記憶されたデータ操作命令列を読み出して実行し、不揮発性のデータ記憶手段に記憶されたデータ操作命令列を書き換えて無効化する構成とすることにより、ＰＩＮが知られた場合又はＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、不正なデータ改ざんを確実に防止することができるデータ記憶装置を提供することにある。
【０００７】
また本発明の他の目的とするところは、データの書き換えを行うためのデータ操作命令列を無効化する指示を受付可能とし、無効化の指示を受け付けた場合に無効化を行う構成とすることにより、不揮発性のデータ記憶手段に必要なデータを記憶させた後、無効化の指示を与えてデータの書き換えを行うことができない状態とすることができるデータ記憶装置を提供することにある。
【０００８】
また本発明の他の目的とするところは、データの書き込み命令を含むデータ操作命令列を書き換えて無効化する構成とすることにより、不揮発性のデータ記憶手段に対するデータの書き込みが行えない状態とすることができるデータ記憶装置を提供することにある。
【０００９】
また本発明の他の目的とするところは、データの消去命令を含むデータ操作命令列を書き換えて無効化する構成とすることにより、例えばフラッシュメモリの場合にはデータの消去後でなければデータの書き込みを行うことができないため、データの消去命令を無効化することで、データの書き込みが行えない状態とすることができるデータ記憶装置を提供することにある。
【００１０】
また本発明の他の目的とするところは、不揮発性の記憶手段に記憶されたデータ操作命令列を、処理の初期化命令、無処理命令、又は未定義命令に変更して無効化する構成とすることにより、無効化された後ではデータの書き換えを行うことができなくなり、データの不正な改ざんを確実に防止でき、ＣＰＵのプログラムカウンタが書き換えられた場合であっても、誤動作又は異常処理等を行う虞がないデータ記憶装置を提供することにある。
【００１１】
また本発明の他の目的とするところは、不揮発性の記憶手段に記憶されたデータ操作命令列が既に無効化されているか否かを判定し、無効化されている場合には無効化を行わない構成とすることにより、処理に時間を要する可能性がある無効化処理を誤って繰り返し行う虞がないデータ記憶装置を提供することにある。
【００１２】
また本発明の他の目的とするところは、データの書き換えを行うためのデータ操作命令列を無効化する指示を受け付けた場合に、不揮発性のデータ記憶手段に記憶されたデータの書き換えを行うためのデータ操作命令列を揮発性のデータ記憶手段に複製し、揮発性のデータ記憶手段に記憶されたデータ操作命令列を読み出して実行し、不揮発性のデータ記憶手段に記憶されたデータ操作命令列を書き換えて無効化する構成とすることにより、ＰＩＮが知られた場合又はＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、不正なデータ改ざんを確実に防止することができるＩＣカードを提供することにある。
【００１３】
また本発明の他の目的とするところは、上述のデータ記憶装置又はＩＣカードにデータの記憶を行う場合に、データ記憶装置又はＩＣカードに識別データを記憶させ、他の装置からの識別データと比較して一致したときにのみ不揮発性のデータ記憶手段にデータを記憶し、データの記憶が終了した後にデータ操作命令列を書き換えて無効化することにより、データ記憶装置又はＩＣカードを不揮発性のデータ記憶手段に記憶したデータを書き換え不可能な状態とすることができ、データの不正な改ざんを防止できるデータ記憶方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明に係るデータ記憶装置は、データの操作を行うためのデータ操作命令列が記憶された不揮発性のデータ記憶手段と、前記データ操作命令列を実行し、前記不揮発性のデータ記憶手段に対するデータの操作処理を行う処理手段とを備えるデータ記憶装置において、揮発性のデータ記憶手段と、前記不揮発性のデータ記憶手段からデータ操作命令列を読み出して前記揮発性のデータ記憶手段に複製する複製手段と、前記揮発性のデータ記憶手段に複製されたデータ操作命令列を実行し、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を操作して無効化する無効化手段とを備えることを特徴とする。
【００１５】
本発明においては、不揮発性のデータ記憶手段、例えばフラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性メモリに記憶されたデータ操作命令列、所謂データ書き換えプログラムを不揮発性のデータ記憶手段、例えばＳＲＡＭ又はＤＲＡＭ等の揮発性メモリに複製し、ＣＰＵが揮発性メモリに複製したデータ書き換えプログラムを読み出して実行し、不揮発性メモリに記憶されたデータ書き換えプログラムを書き換えて無効化する。その後データ記憶装置への電力供給が絶たれた場合、揮発性メモリに記憶されたデータ書き換えプログラムは消失するため、データ記憶装置内にはデータ書き換えプログラムが存在せず、不揮発性メモリに記憶されたデータの書き換えが不可能となる。
【００１６】
また、本発明に係るデータ記憶装置は、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化する指示を受け付ける受付手段を備え、該受付手段が前記指示を受け付けた場合に、前記複製手段によりデータ操作命令列を複製し、前記無効化手段により無効化するようにしてあることを特徴とする。
【００１７】
本発明においては、データ書き換えプログラムを無効化するための指示、所謂無効化コマンドを受け付けた場合に、上述の方法にてデータ書き換えプログラムの無効化を行う。データ記憶装置の製造者又は発行者等は、データ記憶装置に必要なデータを記憶させた後に無効化コマンドを与えることで、それ以後にデータが書き換えられることを防止できる。
【００１８】
また、本発明に係るデータ記憶装置は、前記データ操作命令列が、前記不揮発性のデータ記憶手段に対するデータの書き込み命令を含むことを特徴とする。
【００１９】
本発明においては、データ書き換えプログラムとして、不揮発性メモリに対するデータの書き込み命令を含むプログラムを無効化する。これにより、不揮発性メモリに対してデータの書き込みを行うことができなくなる。
【００２０】
また、本発明に係るデータ記憶装置は、前記データ操作命令列が、前記不揮発性のデータ記憶手段に対するデータの消去命令を含むことを特徴とする。
【００２１】
本発明においては、データ書き換えプログラムとして、不揮発性メモリに対するデータの消去命令を含むプログラムを無効化する。不揮発性メモリがフラッシュメモリである場合には、データを消去した後でなければデータの書き込みを行うことができない。このため、消去命令の無効化により、フラッシュメモリに対してデータの消去を行うことができなくなり、データの書き込みを行うことができなくなる。
【００２２】
また、本発明に係るデータ記憶装置は、前記無効化手段が、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を、前記処理手段の処理を初期化する初期化命令、前記処理手段が処理を行わない無処理命令、又は前記処理手段に対して定義されていない命令に変更するようにしてあることを特徴とする。
【００２３】
本発明においては、不揮発性メモリに記憶されたデータ書き換えプログラムを、ＣＰＵの初期化命令（所謂リセット命令）、ＣＰＵの無処理命令（所謂ＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）命令）、又はＣＰＵの未定義命令に書き換える。ＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、データの読み出し又は識別データ（ＰＩＮ）の認証処理等の他の処理が行われることがない。
【００２４】
また、本発明に係るデータ記憶装置は、前記無効化手段により、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列が無効化されたか否かを判定する判定手段を備え、該判定手段が無効化されたと判定した場合、前記無効化手段によるデータ操作命令列の無効化を行わないようにしてあることを特徴とする。
【００２５】
本発明においては、不揮発性メモリに記憶されたデータ書き換えプログラムが無効化された場合、その後に無効化を行う指示を受け付けた場合であっても、無効化処理は行わない。無効化処理は不揮発性メモリの書き換えを行わなくてはならず、書き換えには時間を要するため、無効化処理が既に行われている場合には再度これを行わないことで、不要な処理時間を短縮できる。
【００２６】
また、本発明に係るＩＣカードは、データの操作を行うためのデータ操作命令列が記憶された不揮発性のデータ記憶手段と、前記データ操作命令列を実行し、前記不揮発性のデータ記憶手段に対するデータの操作処理を行う処理部と、他の装置が送信するデータを受信する受信手段とを備えるＩＣカードにおいて、前記受信手段を介して、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化する指示を受け付ける受付手段と、揮発性のデータ記憶手段と、前記受付手段が前記指示を受け付けた場合に、前記不揮発性のデータ記憶手段からデータ操作命令列を読み出して前記揮発性のデータ記憶手段に複製する複製手段と、前記揮発性のデータ記憶手段に複製されたデータ操作命令列を実行し、前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を操作して無効化する無効化手段とを備えることを特徴とする。
【００２７】
本発明においては、接触又は非接触により外部の装置から与えられたデータ書き換えプログラムの無効化指示を受け付け、不揮発性メモリに記憶されたデータ書き換えプログラムを揮発性メモリに複製し、複製したデータ書き換えプログラムを実行して不揮発性メモリに記憶されたデータ書き換えプログラムを書き換えて無効化する。その後、ＩＣカードへの電力供給が絶たれた場合、揮発性メモリに記憶されたデータ書き換えプログラムは消失するため、ＩＣカード内にはデータ書き換えプログラムが存在せず、不揮発性メモリに記憶されたデータの書き換えが不可能となる。
【００２８】
また、本発明に係るデータ記憶方法は、上述のいずれか１つのデータ記憶装置、又は上述のＩＣカードに備えられた不揮発性のデータ記憶手段にデータを記憶するデータ記憶方法であって、前記不揮発性のデータ記憶手段に識別データを記憶するステップと、前記不揮発性のデータ記憶手段に記憶された前記識別データに対する照合を行って、前記不揮発性のデータ記憶手段にデータを記憶するステップと、該ステップでのデータの記憶が終了した後に、前記無効化手段により前記不揮発性のデータ記憶手段に記憶されたデータ操作命令列を無効化するステップとを備えることを特徴とする。
【００２９】
本発明においては、データ記憶装置又はＩＣカードの製造者又は発行者等は、ＰＩＮ照合を行ってデータ記憶装置又はＩＣカードの不揮発性メモリにデータを記憶させた後、データ書き換えプログラムの無効化指示を与えて、不揮発性メモリに記憶されたデータを書き換え不可能にする。データ記憶装置又はＩＣカードの出荷後にＰＩＮが知られた場合であっても、データの改ざんを行うことができない。
【発明の効果】
【００３０】
本発明による場合は、不揮発性メモリに記憶されたデータ書き換えプログラムを揮発性メモリに複製し、揮発性メモリに複製されたデータ書き換えプログラムをＣＰＵが読み出して実行し、不揮発性メモリに記憶されたデータ書き換えプログラムを書き換えて無効化する構成とすることにより、無効化後にデータ記憶装置の電源供給が絶たれた場合、揮発性メモリに記憶されたデータ書き換えプログラムは消失し、データ記憶装置内にはデータ書き換えプログラムが存在せずデータの書き換えが不可能となるため、データ記憶装置の出荷後にＰＩＮが知られた場合又はＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、不正なデータ改ざんを確実に防止することができる。よって、データ改ざんを防止するための新たなハードウェアを追加することなく簡単にデータ改ざんを防止でき、また、ユーザは安心してデータ記憶装置を使用することができる。
【００３１】
また、本発明による場合は、データ書き換えプログラムを無効化する無効化コマンドを受付可能とし、無効化コマンドを受け付けた場合に無効化を行う構成とすることにより、データ記憶装置の製造者又は発行者等は、データ記憶装置に必要なデータを記憶させた後に無効化コマンドを与えることでデータ書き換えプログラムを無効化することができるため、必要なデータを確実に記憶させ、不正なデータ改ざんを確実に防止することができる。よって、データ改ざんを防止するための新たなハードウェアを追加することなく簡単にデータ改ざんを防止でき、また、ユーザは安心してデータ記憶装置を使用することができる。
【００３２】
また、本発明による場合は、不揮発性メモリに対するデータの書き込み命令を含むプログラムを無効化する構成とすることにより、不揮発性メモリに対してデータの書き込みを行うことができなくなるため、不正なデータ改ざんを確実に防止することができる。
【００３３】
また、本発明による場合は、不揮発性メモリに対するデータの消去命令を含むプログラムを無効化する構成とすることにより、不揮発性メモリが例えばフラッシュメモリである場合には、消去命令の無効化によりフラッシュメモリに対してデータの消去を行うことができなくなり、データの書き込みを行うことができなくなるため、不正なデータ改ざんを確実に防止することができる。
【００３４】
また、本発明による場合は、不揮発性メモリに記憶されたデータ書き換えプログラムをＣＰＵの初期化命令、ＣＰＵの無処理命令又はＣＰＵの未定義命令に書き換えて無効化する構成とすることにより、無効化された後ではデータの書き換えを行うことができなくなるため、ＰＩＮが知られた場合、又はＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、データの不正な改ざんを確実に防止できる。よって、ユーザは安心してデータ記憶装置を使用することができる。
【００３５】
また、本発明による場合は、不揮発性メモリに記憶されたデータ書き換えプログラムが無効化された場合、その後に無効化を行う指示を受け付けた場合であっても、無効化処理は行わない構成とすることにより、処理に時間を要する可能性がある無効化処理を誤って繰り返し行う虞がなくなるため、製造者又は発行者等が行うデータの書き込み及び無効化処理の処理時間が誤操作により長くなることがない。
【００３６】
また、本発明による場合は、接触又は非接触により外部の装置から与えられたデータ書き換えプログラムの無効化指示を受け付けた場合に、不揮発性メモリに記憶されたデータ書き換えプログラムを揮発性メモリに複製し、揮発性メモリに複製されたデータ書き換えプログラムを読み出して実行し、不揮発性メモリに記憶されたデータ書き換えプログラムを書き換えて無効化する構成とすることにより、無効化後にＩＣカードの電源供給が絶たれた場合、揮発性メモリに記憶されたデータ書き換えプログラムは消失し、ＩＣカード内にはデータ書き換えプログラムが存在せずデータの書き換えが不可能となるため、ＩＣカードの出荷後にＰＩＮが知られた場合又はＣＰＵのプログラムカウンタが不正に書き換えられた場合であっても、不正なデータ改ざんを確実に防止することができる。よって、データ改ざんを防止するための新たなハードウェアを追加することなく簡単にデータ改ざんを防止でき、また、ユーザは安心してＩＣカードを使用することができる。
【００３７】
また、本発明による場合は、データ記憶装置又はＩＣカードにデータの記憶を行う場合に、ＰＩＮ照合を行った後、データ記憶装置又はＩＣカードの不揮発性メモリにデータを記憶させ、データの記憶が終了した後にデータ書き換えプログラムを書き換えて無効化することにより、データ記憶装置又はＩＣカードの出荷後にＰＩＮが知られた場合であっても、データの不正な改ざんを防止できるため、データ改ざんを防止するための新たなハードウェアを追加することなく簡単にデータ改ざんを防止でき、また、製造者又は発行者はより安全性の高いデータ記憶装置又はＩＣカードを出荷することができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、本発明に係るＩＣカードのデータ書き換えシステムの構成を示すブロック図である。図において１はＩＣカードであり、端末装置５０から与えられるデータの書き換え命令により、内部に記憶されたデータの書き換えを行うようにしてある。また、ＩＣカード１は、ＣＰＵ１０、通信Ｉ／Ｆ（インタフェース）１１、ＤＲＡＭ１２及びフラッシュメモリ１３等を備えており、これらがバス１４を介して接続され、相互にデータの交換を行うことができるようにしてある。
【００３９】
ＩＣカード１に備えられた通信Ｉ／Ｆ１１は、端末装置５０との通信を行うものであり、例えば、ＩＣカード１が接触型のＩＣカードである場合には、カード状のＩＣカードの筐体の表面に露出した接続端子を有し、接続端子を介して端末装置５０との通信を行うようにしてあり、また、ＩＣカード１が非接触型のＩＣカードである場合には、端末装置５０から送信される無線信号を受信するアンテナ及び受信した無線信号を復調する回路等を有し、無線信号を介して端末装置５０との通信を行うようにしてある。また、ＩＣカード１は、通信Ｉ／Ｆ１１を介して端末装置５０から電力が供給されるようにしてある。
【００４０】
端末装置５０からＩＣカード１の通信Ｉ／Ｆ１１へデータの読み出し命令又はデータの書き換え命令等が与えられた場合、これらの命令は通信Ｉ／Ｆ１１からＣＰＵ１０へ与えられるようにしてある。また、データの書き換え命令が与えられた場合、書き換え用のデータは通信Ｉ／Ｆ１１からＤＲＡＭ１２へ与えられ、ＤＲＡＭ１２に一時的に記憶されるようにしてある。ＣＰＵ１０は、データの読み出し命令が与えられた場合には、フラッシュメモリ１３からデータを読み出して通信Ｉ／Ｆ１１へ与えるようにしてあり、端末装置５０は通信Ｉ／Ｆ１１を介してフラッシュメモリ１３内のデータを読み出すことができる。また、ＣＰＵ１０は、データの書き換え命令が与えられた場合には、ＤＲＡＭ１２に一時的に記憶されたデータをフラッシュメモリ１３へ書き込むようにしてある。また、揮発性のメモリ素子であるＤＲＡＭ１２は、フラッシュメモリ１３へ記憶するデータの一時的な記憶領域、又はＣＰＵ１０の演算処理の作業領域等として使用され、ＩＣカード１への電力供給が絶たれた場合には、記憶されていたデータは消失する。
【００４１】
フラッシュメモリ１３には、ＣＰＵ１０を動作させるための書き込みプログラム２２及び消去プログラム２３等のプログラムが予め記憶してあり、ＣＰＵ１０はフラッシュメモリ１３のデータの書き換えを行う場合には、消去プログラム２３を読み出して実行し、データの書き換えを行う領域を消去し、次いで書き込みプログラム２２を読み出して実行し、データの書き込みを行うようにしてある。
【００４２】
また、フラッシュメモリ１３には、ＩＣカード１に対する不正のデータの読み出し又はデータの書き換え等を防止するためのＰＩＮ２１が記憶されており、ＩＣカード１に対するデータの読み出し又はデータの書き換え等を行う場合には、予めＰＩＮ２１の照合を行う必要がある。ＰＩＮ２１の照合は、端末装置５０からＩＣカード１へ与えられる照合命令により行われ、照合命令と共に端末装置５０から与えられるＰＩＮと、フラッシュメモリ１３に記憶されたＰＩＮ２１とが一致するか否かを判定し、一致した場合にのみＣＰＵ１０はフラッシュメモリ１３に対するデータの読み出し及びデータの書き換え命令等を受け付けるようにしてある。ＣＰＵ１０が照合処理を行うためのプログラム（図示は省略する）もまたフラッシュメモリ１３に予め記憶してあり、これを読み出して実行することにより、ＣＰＵ１０が照合処理を行うことができるようにしてある。また、フラッシュメモリ１３へのＰＩＮ２１の書き込みは、書き込みプログラム２２及び消去プログラム２３により行うことができる。書き込みプログラム２２、消去プログラム２３、及びＰＩＮの照合処理を行うためのプログラム等のＣＰＵ１０を動作させるためのプログラムは、ＩＣカード１の製造工程にて、ＩＣカード１のテストモードなどを利用して予め書き込まれる。
【００４３】
また、フラッシュメモリ１３には、端末装置５０からの命令により書き込まれたデータ２４、及び無効化フラグ２５等が記憶されている。データ２４には、秘密性の高い個人情報等が含まれているため、本発明に係るＩＣカード１には、フラッシュメモリ１３に記憶されたデータの不正な書き換えを防止する機能として、フラッシュメモリ１３に記憶された書き込みプログラム２２及び消去プログラム２３を無効化して実行不可能とする機能が備えられている。この無効化の処理は、フラッシュメモリ１３の書き込みプログラム２２及び消去プログラム２３が記憶されている領域に、ＣＰＵ１０のリセット命令、ＮＯＰ命令又は未定義命令等を上書きすることで行われる。なお、上書きするリセット命令、ＮＯＰ命令又は未定義命令等もまた、予めフラッシュメモリ１３に記憶してある。
【００４４】
また、無効化フラグ２５は、無効化処理を行って書き込みプログラム２２及び消去プログラム２３が無効化されたか否かを示すフラグであり、例えば、無効化処理が行われていない場合には値が”０”に設定され、無効化処理が行われた後に値が”１”に設定される。ＣＰＵ１０は、端末装置５０から無効化を行う指示を受けた場合であっても、無効化フラグ２５が”１”に設定されている場合には、既に無効化処理が行われているため、無効化処理を行わないようにしてある。なお、無効化処理はＩＣカード１の製造工程の最終段階にて行われ、ＩＣカード１は出荷後には読み出し専用として使用される。
【００４５】
図２は、本発明に係るＩＣカード１のＣＰＵ１０が行う書き込みプログラム２２及び消去プログラム２３の無効化処理の処理手順を示すフローチャートである。なお、本処理において使用する変数ＳＲＣ、ＤＳＴ及びＣＮＴは、ＤＲＡＭ１２を用いて実現される。
【００４６】
ＣＰＵ１０は、端末装置５０から通信Ｉ／Ｆ１１を介して無効化処理を行うコマンドを受信したか否かを調べ（ステップＳ１）、受信していない場合は（Ｓ１：ＮＯ）、受信するまで待機する。無効化処理を行うコマンドを受信した場合（Ｓ１：ＹＥＳ）、無効化フラグ２５の値が”１”に設定されているか否かを調べ（ステップＳ２）、無効化フラグ２５が”１”に設定されている場合（Ｓ２：ＹＥＳ）、無効化処理を終了する。
【００４７】
無効化フラグ２５の値が”１”に設定されていない場合、即ち無効化フラグの値が”０”に設定されている場合（Ｓ２：ＮＯ）、フラッシュメモリ１３から書き込みプログラム２２及び消去プログラム２３を読み出してＤＲＡＭ１２へコピーする（ステップＳ３）。次いで、フラッシュメモリ１３からＮＯＰ命令を読み出してＤＲＡＭ１２へコピーする（ステップＳ４）。なお、本フローチャートにおいては、ステップＳ４にてＮＯＰ命令をＤＲＡＭ１２へコピーするが、ＣＰＵ１０のリセット命令又は未定義命令をコピーしても構わない。
【００４８】
次いで、コピーされたＮＯＰ命令のＤＲＡＭ１２上の記憶アドレスを変数ＳＲＣに設定し（ステップＳ５）、フラッシュメモリ１３上の書き込みプログラム２２の先頭アドレスを変数ＤＳＴに設定する（ステップＳ６）。更に、書き込みプログラム２２を構成する命令の命令数を変数ＣＮＴに設定する（ステップＳ７）。これらの変数の値の設定後、無効化処理を行うサブルーチンを実行して無効化処理を行う（ステップＳ８）。
【００４９】
図３は、図２のステップＳ８及びＳ１１にて実行される無効化処理のサブルーチンの処理手順を示すフローチャートである。ＣＰＵ１０は、変数ＣＮＴの値が”０”であるか否かを調べ（ステップＳ３１）、変数ＣＮＴの値が”０”でない場合、即ち値が”１”である場合には（Ｓ３１：ＮＯ）、変数ＳＲＣに設定されたアドレスから書き込み用のデータを取得する（ステップＳ３２）。なお、図２のステップＳ４及びＳ５にてＤＲＡＭ１２上のＮＯＰ命令のアドレスが変数ＳＲＣに設定されているため、書き込み用のデータはＮＯＰ命令となる。
【００５０】
書き込み用のデータを取得した後、フラッシュメモリ１３の変数ＤＳＴに設定されたアドレスに対して取得した書き込み用のデータの書き込みを開始する（ステップＳ３３）。このとき、ＣＰＵ１０は、ＤＲＡＭ１２にコピーされた書き込みプログラム２２及び消去プログラム２３を読み出して実行することで、フラッシュメモリ１３へのデータの書き込みを行う。なお、フラッシュメモリ１３に対してはデータの消去を行った後でなければ書き込みを行うことはできないため、実際には、書き込みを行うアドレスが消去されていない場合、書き込みの前に消去プログラム２３を実行して消去を行い、消去後に書き込みを行う。また、フラッシュメモリ１３に対するデータの消去は１アドレス毎に行うことはできず、複数アドレスの消去領域毎に行う必要があるため、消去を行う消去領域内に書き換えを行う必要がない他のデータが存在する場合には、他のデータをＤＲＡＭ１２へコピーして一時的に退避させ、消去後に退避したデータの書き込みを行う必要がある。これらの処理は、図３においては図示を省略する。
【００５１】
ステップＳ３３にて、データの書き込みを開始した後、書き込みが完了したか否かを調べ（ステップＳ３４）、完了していない場合には（Ｓ３４：ＮＯ）、書き込みが完了するまで待機する。書き込みが完了した場合（Ｓ３４：ＹＥＳ）、変数ＤＳＴに設定されたアドレスを次のアドレスに更新する（ステップＳ３５）。書き込みプログラム２２及び消去プログラム２３がフラッシュメモリ１３内に分割されずに記憶されている場合には、アドレスの更新は変数ＤＳＴをインクリメントすることで行うことができる。次いで、変数ＣＮＴの値を１だけ減算し（ステップＳ３６）、ステップＳ３１へ戻る。
【００５２】
以上の処理を変数ＣＮＴの値が”０”となるまで繰り返して行い、ステップＳ３１にて、変数ＣＮＴの値が”０”である場合（Ｓ３１：ＹＥＳ）、サブルーチンの処理を終了してメインルーチンへ戻る。
【００５３】
ステップＳ８にて、図３に示すサブルーチンを実行して書き込みプログラム２２の無効化処理を行った後、フラッシュメモリ１３上の消去プログラム２３の先頭アドレスを変数ＤＳＴに設定し（ステップＳ９）、消去プログラム２３を構成する命令の命令数を変数ＣＮＴに設定する（ステップＳ１０）。これらの変数の値の設定後、無効化処理を行うサブルーチン（図３参照）を実行して消去プログラム２３の無効化処理を行う（ステップＳ１１）。サブルーチンの実行が終了して消去プログラム２３の無効化処理が終了した後、無効化フラグ２５の値を”１”に設定し（ステップＳ１２）、処理を終了する。この後、ＩＣカード１に対する電力の供給が絶たれた場合、ＤＲＡＭ１２にコピーされた書き込みプログラム２２及び消去プログラム２３が消去されるため、次に電力の供給を開始したときにはフラッシュメモリ１３内のデータを書き換えることはできない。
【００５４】
図２及び図３に示す無効化処理は、ＩＣカード１の製造工程にて、フラッシュメモリ１３に必要なデータ２４を記憶させた後に行われるものであり、無効化処理後のＩＣカード１はデータ２４の書き換えを行うことができないため、読み出し専用のＩＣカードとして使用される。図４は、本発明に係るＩＣカード１にデータを記憶させる製造工程にて行われる処理を示すフローチャートであり、端末装置５０により行われる処理である。なお、図４においては、ＩＣカード１のフラッシュメモリ１３内には書き込みプログラム２２及び消去プログラム２３が既に記憶させてあるものとし、ＰＩＮ２１が設定されておらず、データ２４が記憶されていない状態から、データ２４を記憶させる場合のフローを図示してある。
【００５５】
ＩＣカード１のフラッシュメモリ１３にはＰＩＮ２１が設定されていないため、まず、ＰＩＮ２１の書き込みを行う（ステップＳ５１）。ＰＩＮ２１の書き込みは、端末装置５０からＩＣカード１へＰＩＮ書き込みコマンドを送信することで行う。ＰＩＮ書き込みコマンドを受信したＩＣカード１のＣＰＵ１０は、書き込みプログラム２２及び消去プログラム２３を利用して、フラッシュメモリ１３の特定領域へＰＩＮ２１の書き込み処理を行う。
【００５６】
次いで、端末装置５０からＰＩＮ照合コマンドをＩＣカード１へ送信し、ＰＩＮ２１の照合を行う（ステップＳ５２）。ＰＩＮ照合コマンドは、照合用のＰＩＮと共にＩＣカード１へ与えられるものであり、ＰＩＮ照合コマンドを受信したＩＣカード１のＣＰＵ１０は、フラッシュメモリ１３に記憶されたＰＩＮ２１を読み出して比較を行い、一致したか否かの照合結果を端末装置５０へ送信する。端末装置５０は、ＩＣカード１からの照合結果から、ＰＩＮが一致したか否かを調べ（ステップＳ５３）、ＰＩＮが一致していない場合には（Ｓ５３：ＮＯ）、ステップＳ５２へ戻り、正しいＰＩＮを用いた照合を行う。
【００５７】
ＰＩＮ照合の結果、ＰＩＮが一致していた場合（Ｓ５３：ＹＥＳ）、ＩＣカード１のＣＰＵ１０はデータの書き込みコマンドを受付可能となるため、端末装置５０から書き込みコマンド及び書き込みデータをＩＣカード１へ送信し、データの書き込みを行う（ステップＳ５４）。データの書き込み終了後、端末装置５０から無効化コマンドをＩＣカード１へ送信し、フラッシュメモリ１３に記憶された書き込みプログラム２２及び消去プログラム２３の無効化処理を行って（ステップＳ５５）、処理を終了する。この後、ＩＣカード１は製品として出荷され、ユーザにより読み出し専用のＩＣカードとして使用される。
【００５８】
以上の構成のＩＣカード１においては、フラッシュメモリ１３に必要なデータ２４を記憶させた後、フラッシュメモリ１３の書き換えを行うための書き込みプログラム２２及び消去プログラム２３をＮＯＰ命令（リセット命令、未定義命令）に書き換えることができるため、ＰＩＮ２１が知られた場合、又はＣＰＵ１０がプログラムカウンタを不正に書き換えられて、これらの命令を誤って実行した場合であっても、データ２４に対する不正な改ざんを防止することができる。
【００５９】
なお、本実施の形態においては、ＩＣカード１が不揮発性メモリとしてフラッシュメモリ１３を備える構成としたが、これに限るものではなく、他の不揮発性メモリ、例えばＥＥＰＲＯＭであってもよく、メモリではなくハードディスクであってもよい。また、揮発性メモリとしてＤＲＡＭ１２を備える構成としたが、これに限るものではなく、他の揮発性メモリ、例えばＳＲＡＭであってもよい。また、フラッシュメモリ１３内の書き込みプログラム２２及び消去プログラム２３の全てを書き換える構成を示したが、これに限るものではなく、プログラムの一部のみを書き換えてプログラムを実行不可能にする構成であってもよい。また、書き込みプログラム２２及び消去プログラム２３のみではなく、他のプログラムの書き換えを行う構成であってもよく、書き込みプログラム２２及び消去プログラム２３のいずれか一方のみを書き換える構成であってもよい。また、書き込みプログラム２２及び消去プログラム２３をＮＯＰ命令、リセット命令又は未定義命令に書き換える構成を示したが、これに限るものではなく、他の命令に書き換える構成であってもよい。
【００６０】
また、無効化フラグ２５は、無効化処理を行っていない場合に値が”０”に設定され、無効化処理を行った場合に値が”１”に設定される構成を示したが、これに限るものではなく、反対に、無効化処理を行っていない場合に値が”１”に設定され、無効化処理を行った場合に値が”０”に設定される構成であってもよい。フラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性メモリにおいては、製造後の初期値としてメモリ内のビットが全て”１”であるものが多く、このような不揮発性メモリでは、無効化処理を行った場合に値が”０”に設定される構成が好適である。また、無効化フラグ２５が必要ない場合には、これを用いない構成であってもよい。
【００６１】
また、図３に示す処理をサブルーチンとして図２に示すメインルーチンが呼び出して実行する構成としたが、これに限るものではなく、図３に示す処理をメインルーチンに組み込んだ構成であってもよい。また、処理に用いる変数ＳＲＣ、ＤＳＴ、ＣＮＴをＤＲＡＭ１２を用いて実現する構成としたが、これに限るものではなく、ＣＰＵ１０内にレジスタとして実現する構成であってもよい。また、本実施の形態においては、データ記憶装置としてＩＣカード１を例に説明を行ったが、これに限るものではなく、他のデータ記憶装置、例えばＩＣタグであってもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明に係るＩＣカードのデータ書き換えシステムの構成を示すブロック図である。
【図２】本発明に係るＩＣカードのＣＰＵが行う書き込みプログラム及び消去プログラムの無効化処理の処理手順を示すフローチャートである。
【図３】図２のステップＳ８及びＳ１１にて実行される無効化処理のサブルーチンの処理手順を示すフローチャートである。
【図４】本発明に係るＩＣカードにデータを記憶させる製造工程にて行われる処理を示すフローチャートである。
【符号の説明】
【００６３】
１  ＩＣカード（データ記憶装置）
１０  ＣＰＵ（処理手段）
１１  通信Ｉ／Ｆ（受信手段）
１２  ＤＲＡＭ（揮発性のデータ記憶手段）
１３  フラッシュメモリ（不揮発性のデータ記憶手段）
２１  ＰＩＮ（識別データ）
２２  書き込みプログラム（データ操作命令列）
２３  消去プログラム（データ操作命令列）
２４  データ
２５  無効化フラグ
５０  端末装置
【図１】
2007148644.tif 000003
【図２】
2007148644.tif 000004
【図３】
2007148644.tif 000005
【図４】
2007148644.tif 000006