(57)【特許請求の範囲】
【請求項１】
外部から受信した命令データに基づいて動作する携帯可能電子装置において、
複数のデータを格納し、この各データの全体あるいは一部に基づいて算出された前記データの正当性を確認するための第１の情報を前記各データに対応させて格納する書換え可能な不揮発性メモリと、
外部から前記不揮発性メモリの正当性の確認を指示する命令データを受信した時、
前記不揮発性メモリに格納されている各データの全体あるいは一部に基づいて前記データの正当性を確認するための第２の情報をデータ毎に算出する算出手段と、
この算出手段によって算出された第２の情報と、前記不揮発性メモリに格納された第１の情報とを比較し、全てのデータにて第１の情報と第２の情報とが一致している場合に、前記データは正当であると確認する正当性確認手段と、
この正当性確認手段にて正当性確認が行われたことを示す確認情報を前記不揮発性メモリに書込む書込み手段と、
外部から前記不揮発性メモリの正当性の確認を指示する命令データ以外の命令データを受信した時、
前記正当性確認が行われたことを示す確認情報に基づいて、正当性の確認が行われたか否かを判定する判定手段と、
この判定手段によって正当性の確認が行われたと判定された場合に、以後の正当性確認を禁止する禁止手段と、を具備することを特徴とする携帯可能電子装置。
【請求項２】
複数のデータを格納する書き換え可能な不揮発性メモリを有し、外部から受信した命令データに基づいて動作する携帯可能電子装置のチェック方法において、
外部から前記不揮発性メモリの正当性の確認を指示する命令データを受信するステップと、
前記不揮発性メモリに格納されている各データの少なくとも一部に基づいて前記データの正当性を確認するための確認情報をデータ毎に算出するステップと、
この算出ステップで算出された確認情報と、前記不揮発性メモリに予め格納された各データの正当性を示す正当性管理情報とを対応するデータ毎に比較するステップと、
この比較ステップにて比較した結果、前記確認情報と、前記正当性管理情報とが一致している場合に、前記データは正当であると確認するステップと、
この確認ステップにて正当性確認が行われたことを示すチェック情報を前記不揮発性メモリに書込むステップと、
外部から前記不揮発性メモリの正当性の確認を指示する命令データ以外の命令データを受信するステップと、
前記確認ステップにて正当性確認が行われたことを示すチェック情報に基づいて、正当性の確認が行われたか否かを判定するステップと、
この判定ステップによって正当性の確認が行われたと判定された場合に、以後の正当性確認を禁止するステップと、を有することを特徴とする携帯可能電子装置のチェック方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえば書込み／書換え可能な不揮発性メモリおよびＣＰＵなどの制御素子を有するＩＣ（集積回路）チップを内蔵し、外部から供給される命令データに基づいて各種処理を実行するＩＣカード等の携帯可能電子装置及びそのチェック方法に関する。
【０００２】
【従来の技術】
近年、携帯可能な電子装置として、書換え可能な不揮発性のデータメモリとそれを制御するためのＣＰＵ（セントラル・プロセッシング・ユニット）を有し、外部からのデータの入出力を行う手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードが産業各方面で開発されている。
【０００３】
産業各方面へのＩＣカードの進出に伴って、ＩＣカードの出荷形態も種々多様化してきている。例えば、発行前のＩＣカードを提供する場合には提供先で発行するケースや、発行済みＩＣカードを提供する場合には提供先にて個人情報等を書き込むケースが発生してきている。上述するケースの場合、提供先にて提供されたＩＣカードが正常であるか（不良品はないか）をチェックする必要がある。
【０００４】
このようなチェック方法として、例えば、特開平４−１５７７８号公報には、カードに書きこむ前のカードデータに基づいて算出したチェックコードと、カードから読取ったカードデータに基づいて算出したチェックコードとを比較することで、書き込みデータ自体が誤っていることによる誤記録をチェックすることが記載されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述したような従来技術の場合では、外部装置（カードデータチェック装置）においてカードに記録されているデータをチェックするため、チェックコードの比較結果が不一致であった場合に、外部装置への読出し時に生じたエラーが原因となる恐れもある。更には、誤記録以前に、カードの記録部自体に不良がある可能性もあった。従って、チェックコードが不一致だった真の理由がわからず、カードが出荷され種々の処理が行われていく工程のどの段階で不良となったのか見極める事が困難であった。
【０００６】
本発明は、以上の点に鑑みなされたもので、不良品を確実に検出することができる携帯可能電子装置及びそのチェック方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の携帯可能電子装置は、外部から受信した命令データに基づいて動作する携帯可能電子装置において、
複数のデータを格納し、この各データの全体あるいは一部に基づいて算出された前記データの正当性を確認するための第１の情報を前記各データに対応させて格納する書換え可能な不揮発性メモリと、
外部から前記不揮発性メモリの正当性の確認を指示する命令データを受信した時、
前記不揮発性メモリに格納されている各データの全体あるいは一部に基づいて前記データの正当性を確認するための第２の情報をデータ毎に算出する算出手段と、
この算出手段によって算出された第２の情報と、前記不揮発性メモリに格納された第１の情報とを比較し、全てのデータにて第１の情報と第２の情報とが一致している場合に、前記データは正当であると確認する正当性確認手段と、
この正当性確認手段にて正当性確認が行われたことを示す確認情報を前記不揮発性メモリに書込む書込み手段と、
外部から前記不揮発性メモリの正当性の確認を指示する命令データ以外の命令データを受信した時、
前記正当性確認が行われたことを示す確認情報に基づいて、正当性の確認が行われたか否かを判定する判定手段と、
この判定手段によって正当性の確認が行われたと判定された場合に、以後の正当性確認を禁止する禁止手段と、を具備することを特徴とする。
また、上記目的を達成するために、本発明の携帯可能電子装置のチェック方法は、複数のデータを格納する書き換え可能な不揮発性メモリを有し、外部から受信した命令データに基づいて動作する携帯可能電子装置のチェック方法において、
外部から前記不揮発性メモリの正当性の確認を指示する命令データを受信し、
前記不揮発性メモリに格納されている各データの少なくとも一部に基づいて前記データの正当性を確認するための確認情報をデータ毎に算出し、
この確認情報と、前記不揮発性メモリに予め格納された各データの正当性を示す正当性管理情報とを対応するデータ毎に比較し、
比較した結果、前記確認情報と、前記正当性管理情報とが一致している場合に、前記データは正当であると確認し、
正当性確認が行われたことを示すチェック情報を前記不揮発性メモリに書込みし、
外部から前記不揮発性メモリの正当性の確認を指示する命令データ以外の命令データを受信し、
正当性確認が行われたことを示すチェック情報に基づいて、正当性の確認が行われたか否かを判定し、
正当性の確認が行われたと判定された場合に、以後の正当性確認を禁止する。
【０００８】
【発明の実施の形態】
以下、本発明に係る実施の形態について図面を参照して詳細に説明する。図２は、本発明に係る携帯可能電子装置としてのＩＣカード１（接触式あるいは無線式ともに含む）及びリーダライタ４（接触式あるいは無線式ともに含む）を用いたシステム構成を説明するための図である。
【０００９】
図２に示すように、ＩＣカード１を用いたシステムは、図示せぬ内部メモリを有する上位装置としてのホストコンピュータ３と、このホストコンピュータ３と接続している端末装置としてのリーダライタ４と、ディスプレイ装置５と、キーボード６と、プリンタ７とを有している。
【００１０】
リーダライタ４は内部メモリを有し、ＩＣカード１に対する電文の読み取り、書き込み（送受信）を接触あるいは非接触で行うものである。ディスプレイ装置５は、操作手順や作動状態をオペレータに知らせるものである。キーボード６は、オペレータによって操作入力されるものである。プリンタ７は、オペレータの操作指示に従って、指示された情報を印刷するものである。
【００１１】
また、接触式ＩＣカードを用いる場合には、リーダライタ４に接触式ＩＣカードを挿入するためのＩＣカード挿入部（図示せず）が設けられ、無線式ＩＣカードを用いる場合には、リーダライタ４と無線式ＩＣカードとの間を通信するための通信部（図示せず）が設けられる。
【００１２】
図３は、図２のシステムを構成するＩＣカード１の機能ブロックを概略的に示す図である。図３に示すように、ＩＣカード１は、リード／ライト部（Ｒ／Ｗ部）１１と、暗証設定／暗証照合部１２と、暗号化／復号化部１３などの基本機能を実行する部分と、これらの基本機能を管理するスーパーバイザ１４とで構成されている。
【００１３】
Ｒ／Ｗ部１１は、データメモリ等に対してデータの読み出し、書き込み、あるいは消去を行う機能を有する。暗証設定／暗証照合部１２は、ユーザが設定した暗証番号の記憶及び読み出し禁止処理を行うと共に、暗証番号の設定後にその暗証番号と外部装置から入力した暗証番号との照合を行い、以後の処理の許可を与える機能を有する。
【００１４】
暗号化／復号化部１３は、例えば、通信回線を介してあるいは無線通信によりリーダライタ４とＩＣカード１との間でデータの送受信を行う場合の通信データの漏洩、偽造を防止するための暗号化や、復号化行う機能を有する。
【００１５】
また、暗号化／復号化部１３は、送信データに対して暗号化を施し、また暗号化されたデータを復号化する機能も有する。スーパーバイザ１４は、リーダライタ４から入力された命令コード、もしくはデータの付加された命令コードを解読し、この命令を実行する機能を有する。この暗号化／復号化部１３により、本発明の復号手段を構成している。
【００１６】
図４は、ＩＣカード１の概略的な制御ブロック図を示している。図４に示すように、無線式及び接触式ＩＣカードともに、少なくとも１つ以上のアプリケーションが登録可能であり、図４に示すような諸機能を実行するために、制御手段としてのＣＰＵ等の制御素子１５と、各種記憶部としてのデータメモリ１６、プログラムメモリ１８、ワーキングメモリ１７、リーダライタ４と信号の授受を行なう受信手段、出力手段としての通信部１９とから構成されている。登録されているアプリケーションとしては、例えばクレジットやポイントシステム等が挙げられる。
【００１７】
通信部１９は、無線式ＩＣカード１の場合にはアンテナ部として構成され、リーダライタ４から送信された変調波を非接触で受信したり外部へ変調波を発信するようになっている。また、このアンテナ部１９で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。
【００１８】
また、接触式ＩＣカード１の場合にはコンタクト部として構成され、リーダライタ４に設けられた図示せぬＩＣカード端子部と接触することにより電源やクロックを得るようになっている。
【００１９】
これらの構成のうち、制御素子１５、データメモリ１６、プログラムメモリ１８、及びワーキングメモリ１７は１つのＩＣチップ（あるいは複数のＩＣチップ）２０で構成されてＩＣカード本体内に埋設されている。制御素子１５は、各種の判定処理／判断処理及びメモリへの書込みや読出し等のデータ処理を行う制御部である。
【００２０】
プログラムメモリ１８は、例えばマスクＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の書き換え不可能な固定メモリで構成されており、上述するような各基本機能を実現するサブルーチンを備えた制御素子１５の制御プログラム等を記憶している。
【００２１】
データメモリ１６は、アプリケーションデータ等の各種データの記憶に使用され、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍａｂｌｅ  ＲＯＭ）や強誘電体不揮発性メモリ（ＦｅＲＡＭ）などの消去（書き換え）可能な不揮発性メモリで構成されている。
【００２２】
ワーキングメモリ１７は、制御素子１５が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、例えばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリで構成されている。
【００２３】
図５は、データメモリ１６の構成を示す概念図である。データメモリ１６は、図５に示すように、システム領域１１０とユーザ領域１２０とに大きく分割定義されている。特にシステム領域１１０は、例えばＩＣカード１内の内部制御を行うために直接関連するデータを格納する領域である。
【００２４】
従って、システム領域１１０には、データメモリ１６全体の管理等に使用するデータを含むカード管理情報１１１と、複数のデータファイル（以下ＤＦと称する。）を管理するためのＤＦ定義情報１１２、とＥＦ（エレメンタリファイル）のアドレスを管理するためのＥＦアドレステーブル１１３とから構成されており、データメモリ１６の先頭から順次格納されている。
【００２５】
ユーザ領域１２０には、ＤＦ定義情報１１２、ＥＦアドレステーブル１１３に関連付けられ、実際に各種データを格納する複数のＥＦデータ列１２２が、データメモリ１６の最後尾から順次配置されて、設定されている。従って、システム領域１１０の各種格納情報１１１、１１２、１１３と、ＥＦデータ列１２２に挟まれた部分は、データメモリ１６の空き領域１２１として存在する。
【００２６】
この空き領域１２０は、システム領域１１０の各種格納情報１１１、１１２、１１３及びＥＦデータ列１２２のいずれにも属していない領域で、ＥＦデータ列１２２の追加が発生した場合に使用される領域である。
【００２７】
また、ＩＣカードの製造元（あるいは発行元）がＩＣカード１を出荷する際に、ユーザ領域１２０における全体あるいはその使用している部分（ＥＦデータ列１２２部分）のメモリが正常な状態であることを示す正当性管理情報を、ＩＣカード１に対して（実施例毎に後述する）予め決められた箇所に格納するようになっている。
【００２８】
その結果、ＩＣカードが提供された提供先においては、ユーザ領域１２０における全体あるいはその使用している部分（ＥＦデータ列１２２部分）を用いて正当性管理情報を算出し、ＩＣカード１に予め格納されている正当性管理情報と比較する事によって、提供されたＩＣカード１が不良品でないことを確認できるようになっている。
【００２９】
また、図６に示すように、本実施の形態では、システム領域１１０のカード管理情報１１１には、チェック完了フラグ１４０と、正当性チェック禁止フラグ１５０が設けられている。
【００３０】
チェック完了フラグ１４０は、ユーザ領域１２０における全体あるいはその使用している部分（ＥＦデータ列１２２部分）のメモリが正常であるか（不良品がないか）を判定すべく、後述する正当性チェックを実施したか否かを示すフラグである。
【００３１】
このチェック完了フラグ１４０は、後述するように正当性管理情報がセットされた場合には、正当性チェックが未完了であることを示す「０」が格納されており、ＩＣカード１における正当性チェックが正常に終了すると、正当性チェックが正常に完了したことを示す「１」が格納されるようになっている。
【００３２】
また、正当性チェック禁止フラグ１５０は、ＩＣカード１における正当性チェックの機能を実行できるか否かを示すフラグであり、「０」が格納されている場合には正当性チェックの機能を実施可能な状態を示し、「１」が格納されている場合には正当性チェックの機能の実施が禁止されている状態を示す。
【００３３】
尚、この正当性チェック禁止フラグ１５０は、ＩＣカード１が複数のアプリケーションを有し、複数のアプリケーションに対応する複数のＤＦを保持している場合には、アプリケーション毎に設けられるものである。その結果、ＩＣカード１においては、アプリケーション（ＤＦ）毎に正当性チェックの機能の実施を禁止することが可能となる。
【００３４】
本実施の形態では、正当性管理情報が設定されたＩＣカード１への最初のアクセス時に、まず正当性チェックを指示するコマンドを実行しないと（即ち、ＩＣカード１に対して他の処理を先に指示してしまうと）、正当性チェック機能の実行を禁止するようになっている。
【００３５】
従って、正当性管理情報がセットされた際には、正当性チェック機能が実行可能であるため、正当性チェック禁止フラグ１５０、チェック完了フラグ１４０は共に「０」を格納している。
【００３６】
図１のフローチャートに示すように、まず、ＩＣカードの製造あるいは発行元において、ＩＣカード１のユーザ領域１２０の全体あるいはその使用している部分（ＥＦデータ列１２２部分）のメモリについて、後述する種々の方法により、正当性管理情報を計算により算出し、予め決められたメモリ部分に格納する（ＳＴ１００）。そして、提供先に対して正当性管理情報がセットされたＩＣカード１を提供する。
【００３７】
次に、ＩＣカード１の提供先において、ＳＴ１００で正当性管理情報がセットされたＩＣカード１に対して、電源、クロック信号、及びリセット信号を供給する。そして、ＩＣカード１の制御素子１５がリセット信号を検出すると（ＳＴ１０１）、リセットに対応した初期応答信号（Ａｎｓｗｅｒ  ｔｏ  Ｒｅｓｅｔ：ＡＴＲ）を外部へ出力する（ＳＴ１０２）。
【００３８】
次に、外部よりコマンドを受信すると（ＳＴ１０３）、受信したコマンドの内容を解析し、正当性チェックコマンドであるか判定する（ＳＴ１０４）。ＳＴ１０４の判定の結果、正当性チェックコマンドを受信したと判定された場合、正当性チェック禁止フラグ１５０及びチェック完了フラグ１４０を参照し、共に「０」を格納しているか確認する（ＳＴ１０５）。
【００３９】
ＳＴ１０５の確認の結果、正当性チェック禁止フラグ１５０が「１」を格納し、正当性チェック機能の実行が禁止されている場合には、実行不可能であることを示すステータスコードを設定したエラーレスポンスを出力し、一連の処理を中断する（ＳＴ１１０）。
【００４０】
ＳＴ１０５の確認の結果、チェック完了フラグ１４０が「１」を格納し、正当性チェックが既に正常に終了している場合には、既にチェック完了していることを示すステータスコードを設定したエラーレスポンスを出力し、一連の処理を中断する（ＳＴ１１０）。
【００４１】
ＳＴ１０５の確認の結果、正当性チェック禁止フラグ１０５、チェック完了フラグ１４０が共に「０」を格納し、正当性チェック未完了でかつチェック機能が実行可能である場合には、制御素子１５は、ユーザ領域１２０における全体あるいはその使用している部分（ＥＦデータ列１２２部分）を用いて正当性管理情報を算出し、ＩＣカード１に予め格納されている正当性管理情報と比較する（ＳＴ１０６）。
【００４２】
ＳＴ１０６の比較の結果、正当性管理情報が一致しなかった場合には、制御素子１５は、不一致を示すステータスコードを設定したエラーレスポンスを外部へ出力する（ＳＴ１１０）。また、ＳＴ１０６の比較の結果、正当性管理情報が一致した場合には、チェック完了フラグ１４０を「０」から「１」に変更し、正常終了を示すステータスコード「９０００」を設定した正常レスポンスを外部へ出力する（ＳＴ１０９）。
【００４３】
次に、ＳＴ１０４の判定の結果、正当性チェックコマンドではないコマンドを受信した場合には、図７のフローチャートへと進み、制御素子１５は、チェック完了フラグ１４０を参照し、正当性チェックが既に正常終了しているかを判定する（ＳＴ１１１）。
【００４４】
ＳＴ１１１の判定の結果、チェック完了フラグ１４０が「１」を格納し、正当性チェックが正常に終了していると判定された場合には、受信したコマンドの指示に従って処理を実行し、処理結果をレスポンス出力する（ＳＴ１１２）。
【００４５】
ＳＴ１１１の判定の結果、チェック完了フラグ１４０が「０」を格納し、正当性チェックが未だ実行されていない状態であると判定された場合には、正当性チェック禁止フラグ１５０を「０」から「１」に変更する（ＳＴ１１３）。そして、受信したコマンドの指示に従って処理を実行し、処理結果をレスポンス出力するようになっている（ＳＴ１１４）。
【００４６】
従って、実施の形態では、提供先における正当性管理情報が設定されたＩＣカード１への最初のアクセス時に、正当性チェック機能を実行し、提供されたＩＣカードが不良品でないかを確認するようになっている。逆に、正当性チェック以外のコマンド処理を指示した場合に、正当性チェック機能の実行を禁止するようになっている。
【００４７】
このため、提供されたＩＣカードが正常でなかったのか、提供先にて異なる処理が施されたため不良が生じたのかを認識することができるようになる。
【００４８】
（正当性チェック機能に関する第１の実施例）
次に、図８乃至図１０を用いて、上述するＩＣカード１におけるメモリの正当性チェック機能に関する第１の実施例について説明する。この第１の実施例においては、上述したユーザ領域１２０の正当性管理情報を、ユーザ領域に生成されたＥＦデータ毎に計算し、付与するようになっている。
【００４９】
図８は、データメモリ１６のＥＦデータ列１２２の構成を示す図である。夫々のＥＦデータ列１２２は、図８に示すように、ＥＦデータ列長さ管理情報１２６、ＥＦ定義情報１２７、ＥＦデータ１２８、及び後述するＥＦ正当性管理情報１２９とから少なくとも構成されている。
【００５０】
ＥＦデータ列長さ管理情報１２６は、１バイトで構成され、ＥＦデータ列長さ管理情報１２６の先頭から、ＥＦ定義情報１２７、ＥＦデータ１２８、ＥＦ正当性管理情報１２９の終わり迄の長さ情報を格納している。ＥＦ定義情報１２７は、ファイル構成を識別する識別情報やアクセスに必要な認証キー等が格納されている。ＥＦデータ１２８は、実際にデータを格納する部分である。
【００５１】
ＥＦ正当性管理情報１２９は、当該ＥＦのデータが正当であることを確認するためのフラグで、例えば、ＥＦデータ列長さ管理情報１２６、ＥＦ定義情報１２７、ＥＦデータ１２８全ての値（バイト）の加算を取り、桁上がりした値は無視した１バイトの値からなる。
【００５２】
即ち、「ＦＥｈ」と「０２ｈ」（ｈは１６進数を示す）とからなる２つのバイトを加算した場合、「１０１ｈ」となるが、桁上がりは無視するため、「０１ｈ」を加算結果として、更に次のバイトを加算していくこととなる。
【００５３】
そして、ＥＦ正当性管理情報１２９は、データメモリ１６のユーザ領域１２０にＥＦデータ列１２２が作成される際に、ＥＦデータ列長さ管理情報１２６、ＥＦ定義情報１２７、ＥＦデータ１２８の値に基づいて算出され、ＥＦデータ列１２２の最後尾に続けて格納されるようになっている。
【００５４】
図９（ａ）は、リーダライタ４からＩＣカード１に対して供給される命令データの構成について説明する図である。本実施の形態で用いるコマンドとして、後述する正当性チェックコマンドが存在する。正当性チェックコマンドは、ＩＣカードの製造元（あるいは発行元）からＩＣカード１の提供を受けた後に、ＩＣカード１が正常であるか（不良品でないか）をチェックするよう指示するコマンドである。
【００５５】
この正当性チェックコマンドは、図９（ａ）に示すように、コマンドの分類（ＣＬＡ：ｃｌａｓｓ）や命令（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）からなるコマンドコード部と、パラメータデータＰ１、Ｐ２を有する。
【００５６】
また、図９（ｂ）は、図９（ａ）に示すコマンドを実行後、ＩＣカード１がリーダライタ４へ出力するレスポンスデータの構成を示しており、ステータスコード部（ＳＷ１、ＳＷ２）からなる。そして、ＩＣカード１では、正当性設定コマンド、あるいは正当性チェックコマンドの実行を正常に終了した場合には、ステータスコード部をＳＷ１＝９０、ＳＷ２＝００と設定して、外部出力するようになっている。
【００５７】
図１０は、このように構成されたＩＣカード１における正当性チェックコマンド処理に関する第１の実施例のフローチャート図である。これは、ＩＣカードの製造元（あるいは発行元）からＩＣカード１の提供を受けると、まず不良品でないか確認するために実行する機能である。
【００５８】
尚、図１０は、図１におけるＳＴ１０６〜ＳＴ１０７の正当性チェックコマンド処理をＳＴ１２１〜ＳＴ１２４にて詳述したフローチャート図であり、その他同一部分については同じステップ番号を付与している。
【００５９】
図１０に示すように、提供されたＩＣカード１に対して、電源が供給され、リセット信号が検出されると（ＳＴ１０１）、制御素子１５は、リセットに対応したＡＴＲを外部へ出力する（ＳＴ１０２）。
【００６０】
次に、外部よりコマンドを受信すると（ＳＴ１０３）、受信したコマンドの内容を解析し、正当性チェックコマンドであるか判定する（ＳＴ１０４）。ＳＴ１０４の判定の結果、正当性チェックコマンドでない場合には、図７に示すＳＴ１１１以降の処理へ進む。
【００６１】
ＳＴ１０４の判定の結果、正当性チェックコマンドを受信したと判定された場合、正当性チェック禁止フラグ１５０及びチェック完了フラグ１４０を参照し、正当性チェック機能が実施可能であるか（共に「０」を格納しているか）を確認する（ＳＴ１０５）。
【００６２】
ＳＴ１０５の確認の結果、正当性チェック禁止フラグ１５０あるいはチェック完了フラグ１４０のいずれかが「１」を格納している場合には、図１で説明した通り、正当性チェック機能の実行が禁止されているか、あるいは正当性チェックが既に正常に終了しているため、エラーレスポンスを出力し、一連の処理を中断する（ＳＴ１１０）。
【００６３】
ＳＴ１０５の確認の結果、正当性チェック禁止フラグ１０５、チェック完了フラグ１４０が共に「０」を格納し、正当性チェック未完了でかつチェック機能が実行可能である場合には、制御素子１５は、データメモリ１６の最後尾にあるＥＦデータ列１２２ａから、ＥＦデータ列長さ管理情報１２６、ＥＦ定義情報１２７、ＥＦデータ１２８全ての値の加算を取り、桁上がりした値は無視した１バイトの値を算出する（ＳＴ１２１）。
【００６４】
そして、ＳＴ１２１の算出値と、算出対象となったＥＦデータ列１２２ａのＥＦデータ正当性管理情報１２９の格納値とを比較する（ＳＴ１２２）。この比較の結果、一致した場合には、次のＥＦデータ列１２２ｂ以降の加算算出処理とその比較処理（ＳＴ１２１−ＳＴ１２４）を繰返し実行する。ＳＴ１２３の比較の結果、一致しなかった場合には、制御素子１５は、エラーを示すステータスコードを設定し、外部へ出力する（ＳＴ１１０）。
【００６５】
また、ＳＴ１２４にてデータメモリ１６内に存在する全てのＥＦデータ列１２２にて加算算出処理とその比較処理を実行し、全て一致すると（ＳＴ１２１−ＳＴ１２４）、制御素子１５は、チェック完了フラグ１４０を「０」から「１」に変更し（ＳＴ１０８）、正常終了を示すステータスコード「９０００」を設定し、外部へ出力する（ＳＴ１０９）。
【００６６】
この第１の実施例では、ユーザ領域の正当性管理情報を、ユーザ領域に生成された全てのＥＦデータに対して、個々に付与している。従って、正当性チェック時に正常でないと判定された場合には、ユーザ領域内のどこ部分が正常でなかったのかを認識することができるという効果を奏する。
【００６７】
尚、第１の実施例で示すように、ＥＦデータ列毎に正当性管理情報を有する場合においては、ＥＦデータ列を作成する際にＥＦデータ列毎に正当性管理情報が算出され、ともに格納されていることから、図６に示すチェック完了フラグ１４０は保持していなくても、同様の効果を奏することは言うまでもない。
【００６８】
（正当性チェック機能に関する第２の実施例）
次に、図１１乃至図１４を用いて、上述したＩＣカード１におけるメモリの正当性チェック機能に関する第２の実施例について説明する。
【００６９】
この第２の実施例では、第１の実施例と比較すると、ユーザ領域１２０の正当性管理情報を、ユーザ領域１２０全体（生成されたＥＦデータ列１２２及び空き領域１２１）に基づいて算出し、システム領域１１０に格納するようになっている点が特に異なっている。尚、第１の実施例と同様な部分については同じ符号を用いて説明し、重複する説明については省略する。
【００７０】
また第２の実施例においては、使用するコマンドとして、正当性チェックコマンドに加え、後述する正当性設定コマンドが新たに存在する。この正当性設定コマンドは、ＩＣカード１を第三者に提供する前に実行するコマンドで、データメモリ１６内のユーザ領域１２０部分の正当性を算出し、この算出結果をシステム領域に記憶するよう指示するコマンドである。図１におけるＳＴ１００の段階で使用するコマンドである。
【００７１】
この正当性設定コマンド及びそれに対応するレスポンスデータは、第１の実施例における正当性チェックコマンドと同様に、図９に示すようなフォーマットで、リーダライタ４とＩＣカード１との間で送受信される。
【００７２】
第２の実施例においては、図１１（ａ）に示すように、更にシステム領域１１０のカード管理情報１１１にユーザ領域１２０の正当性を管理するユーザ領域正当性管理情報１３０と、ユーザ領域の正当性管理情報が設定された旨を示す管理情報フラグ１３１が格納されている。
【００７３】
ユーザ領域正当性管理情報１３０は、ユーザ領域１２０全体（生成されたＥＦデータ列１２２及び空き領域１２１）の値から算出される。また、管理情報フラグ１３１は、ユーザ領域正当性管理情報１３０が設定された際に、「１」が格納されるようになっている。
【００７４】
また、図１１（ｂ）に示すように、データメモリ１６のユーザ領域１２０以外の部分、即ちシステム領域１１０の正当性を管理するためのシステム領域正当性管理情報１３２が、システム領域（ＥＦアドレステーブル１１３）に格納されている。
【００７５】
そして、ＩＣカード１の起動時に実施される自己診断処理において、システム領域１１０（詳しくは、ユーザ領域正当性管理情報１３０、管理情報フラグ１３１、及びシステム領域正当性管理情報１３２を除くシステム領域）の正当性チェックが実行される。尚、正当性チェックの方法については、同様にシステム領域１１０の値（バイト）に基づいて算出され、システム領域の管理情報１３１と比較されるようになっている。
【００７６】
図１２は、このユーザ領域正当性管理情報１３０と管理情報フラグ１３１の設定方法について説明するフローチャート図である。図１２に示すように、第２の実施例では、リーダライタ４は、システム領域の管理情報フラグ１３１の状態が、管理情報を設定していないことを示しているＩＣカード１に対して正当性設定コマンドを実行するようになっている。
【００７７】
ＩＣカード１の制御素子１５は、外部から正当性設定コマンドを受信すると（ＳＴ１３１）、カード管理情報１１１に格納されている管理情報フラグ１３１を参照し、管理情報が既に設定されているかを判定する（ＳＴ１３２）。
【００７８】
ＳＴ１３２の判定の結果、管理情報フラグ１３１に「１」が格納されており、管理情報が既に設定されていると判定された場合には、制御素子１５は既に管理情報が設定されている事を示すステータスコードを設定したエラーレスポンスを出力し、一連の処理を中断する（ＳＴ１３３）。
【００７９】
ＳＴ１３２の判定の結果、管理情報フラグ１３１に「０」が格納されており、管理情報が設定されていない状態であると判定されると、制御素子１５は、データメモリ１６のユーザ領域の値に基づいてユーザ領域正当性管理情報１３０を算出する（ＳＴ１３４）。
【００８０】
この算出方法は、例えば、ユーザ領域１２０の全ての値（バイト）の加算を取り、桁上がりした値は無視した１バイトの値を算出するという方法も考えられる。
【００８１】
本第２の実施例の場合、ユーザ領域１２０の全ての値とは、存在するＥＦデータ列１２２ａ、１２２ｂ、１２２ｃ、…だけでなく、空き領域１２１の値も含んで計算することができる。従って、ＥＦデータ列１２２が存在するユーザ領域だけでなく、空き領域１２１においても正当性を確認することができるようになっている。
【００８２】
次に、制御素子１５は、システム領域１１０のカード管理情報１１１の所定の箇所に、ＳＴ１３４で算出されたユーザ領域正当性管理情報１３０を格納すると共に、管理情報フラグ１３０を正当性管理情報が設定された旨を示す情報「１」に変更する（ＳＴ１３５）。そして、正常に終了した旨を示すレスポンスデータを外部へ出力することによって、正当性設定コマンドの一連の処理を終了する（ＳＴ１３６）。
【００８３】
図１３は、第２の実施例におけるデータメモリ１６のＥＦデータ列１２２の構成を示す図である。夫々のＥＦデータ列１２２は、ＥＦデータ列長さ管理情報１２６、ＥＦ定義情報１２７、及びＥＦデータ１２８とから少なくとも構成されている。また、図１３（ａ）に示すように、第１の実施例と同様に、ＥＦ正当性管理情報１２９を含む構成でも良い。
【００８４】
図１４は、図１１乃至図１３に示す構成のＩＣカード１における正当性チェックコマンド処理に関する第２の実施例のフローチャート図である。第１の実施例同様に、ＩＣカードの製造元（あるいは発行元）からＩＣカード１の提供を受けると、まず不良品でないか確認するために実行する機能である。
【００８５】
図１４に示すように、提供されたＩＣカード１に対して、電源が供給され、リセット信号が検出されると（ＳＴ１４１）、制御素子１５は、ＩＣカード１内部の諸回路の自己診断処理を実行する。この自己診断処理において、システム領域１１０のチェックが実施され、システム領域の管理情報１３２と比較し、一致することを確認している。
【００８６】
ＳＴ４２における自己診断処理が正常に終了すると、その自己診断の結果を含んだＡＴＲを外部へ出力する（ＳＴ１４２）。尚、自己診断処理を実施するタイミングは、本実施例のタイミングに限定されるものではない。
【００８７】
次に、外部よりコマンドを受信すると（ＳＴ１４３）、受信したコマンドの内容を解析し、正当性チェックコマンドであるか判定する（ＳＴ１４４）。ＳＴ１０４の判定の結果、正当性チェックコマンドでない場合には、図７に示すＳＴ１１１以降の処理へ進む。
【００８８】
ＳＴ１４４の判定の結果、正当性チェックコマンドを受信したと判定された場合、管理情報フラグ１３１を参照し、正当性管理情報が設定されているか否かを判定すると共に（ＳＴ１４５）、正当性チェック禁止フラグ１５０及びチェック完了フラグ１４０を参照し、正当性チェック機能が実施可能であるか（共に「０」を格納しているか）を確認する（ＳＴ１４６）。
【００８９】
ＳＴ１４５で管理情報フラグ１３１に「０」が格納され正当性管理情報が設定されていないと判定された場合、あるいはＳＴ１４６で正当性チェック禁止フラグ１５０あるいはチェック完了フラグ１４０のいずれかに「１」が格納され、図１で説明した通り、正当性チェック機能の実行が禁止されているか、あるいは正当性チェックが既に正常に終了していると判定された場合には、エラーレスポンスを出力し、一連の処理を中断する（ＳＴ１４７）。
【００９０】
ＳＴ１４５で管理情報フラグ１３１に「０」が格納され正当性管理情報が設定されており、ＳＴ１４６で正当性チェック禁止フラグ１０５、チェック完了フラグ１４０が共に「０」を格納し、正当性チェック未完了でかつチェック機能が実行可能であると判定された場合には、制御素子１５は、例えば、データメモリ１６のユーザ領域１２０全ての値（バイト単位）の加算を取り、桁上がりした値は無視した１バイトの値を算出する（ＳＴ１４８）。
【００９１】
そして、ＳＴ１４８の算出値と、カード管理情報１１１に格納されているユーザ領域正当性管理情報１３０とを比較する（ＳＴ１４９）。この比較の結果、一致しなかった場合には（ＳＴ１５１）、制御素子１５は、エラーを示すステータスコードを設定し、外部へ出力する（ＳＴ１４７）。
【００９２】
ＳＴ１５０で一致したと判定された場合には、制御素子１５は、チェック完了フラグ１４０を「０」から「１」に変更し（ＳＴ１５１）、正常終了を示すステータスコード「９０００」を設定し、外部へ出力する（ＳＴ１５２）。
【００９３】
以上、説明した通り、第２の実施例では、ＥＦデータが格納されている部分のみならず空き領域１２１をも含めたユーザ領域全体の値に基づいて正当性管理情報を算出している。従って、空き領域における正当性についても確認することができ、より確実に正常なＩＣカード１を提供先に渡すことが可能となるという効果を奏する。
【００９４】
また、第２の実施例においては、データメモリ１６のユーザ領域１２０については正当性チェック処理によってその正当性を確認し、システム領域１１０については自己診断にて正当性チェックを行うようになっている。従って、データメモリ１６全体において、正当性をチェックすることが可能となるという効果を奏する。
【００９５】
また、第２の実施例では、ユーザ領域の正当性を確認する処理が１つのコマンドで指示可能となる。従って、提供者にとっては簡単に提供されたＩＣカードの正当性を確認することが可能となるという効果を奏する。
【００９６】
【発明の効果】
以上説明したように、本発明によれば、不良品を確実に検出することができる。
【図面の簡単な説明】
【図１】本発明の携帯可能電子装置に係るＩＣカード１における正当性管理情報の設定処理及び正当性チェック処理に関して説明するためのフローチャート図。
【図２】ＩＣカード１及びリーダライタ４を用いたシステム構成を概略的に説明するための図。
【図３】ＩＣカード１の基本的な機能ブロックを示す図。
【図４】ＩＣカード１の制御ブロックを示す図。
【図５】ＩＣカード１のデータメモリ１６の構成を説明するための図。
【図６】ＩＣカード１における正当性管理情報の設定処理及び正当性チェック処理に関して説明するためのフローチャート図。
【図７】正当性チェック処理に関連する格納情報を説明する図。
【図８】第１の実施例におけるユーザ領域１２０のＥＦデータ列１２２の構成を説明するための図。
【図９】命令データ（特に正当性チェックコマンド、正当性設定コマンド）及びそれに対するレスポンスデータの構成を示す図。
【図１０】ＩＣカード１における正当性のチェック処理に関する第１の実施例を説明するためのフローチャート図。
【図１１】第２の実施例におけるＩＣカード１の正当性チェック処理に関連する情報を示図。
【図１２】ＩＣカード１における正当性の設定処理に関して説明するためのフローチャート図。
【図１３】第２の実施例におけるユーザ領域１２０のＥＦデータ列１２２の構成を説明するための図。
【図１４】ＩＣカード１における正当性のチェック処理に関する第２の実施例を説明するためのフローチャート図。
【符号の説明】
１    ＩＣカード
４    リーダライタ
１６    データメモリ
１７    ワーキングメモリ
１８    プログラムメモリ
１１０    システム領域
１２０    ユーザ領域
１２１    空き領域
１２２    ＥＦデータ列
１２９    ＥＦ正当性管理情報
１３０    ユーザ領域正当性管理情報
１３１    管理情報フラグ
１３２    システム領域正当性管理情報
１４０    チェック完了フラグ
１５０    正当性チェック禁止フラグ
【図１】
0003607229.tif 000002
【図２】
0003607229.tif 000003
【図３】
0003607229.tif 000004
【図４】
0003607229.tif 000005
【図５】
0003607229.tif 000006
【図６】
0003607229.tif 000007
【図７】
0003607229.tif 000008
【図８】
0003607229.tif 000009
【図９】
0003607229.tif 000010
【図１０】
0003607229.tif 000011
【図１１】
0003607229.tif 000012
【図１２】
0003607229.tif 000013
【図１３】
0003607229.tif 000014
【図１４】
0003607229.tif 000015