(57)【要約】【課題】外部から不正な攻撃が行なわれた場合に、鍵データを誤ったデータでメモリから読出してしまうことを防止し、かつ、鍵データが正しく読出せなかったと判定した場合に、誤ったデータを使用して処理を継続してしまうという問題を防止することが可能となる携帯可能電子装置およびＩＣカードを提供する。【解決手段】外部からコマンドが入力されると、そのコマンドに対応した所定の処理を実行し、その処理結果に応じた応答データを外部へ出力するＩＣカードにおいて、発行処理などにおいて、あらかじめ外部から与えられた鍵データと鍵正当性検証値を内部のデータメモリへ記憶しておき、上記鍵データを使用するコマンドを受信した場合に、これらのあらかじめ記憶したデータと、上記鍵データからコマンド受信の都度算出する比較データを使用して、鍵データの正当性検証を行なう。【選択図】      図３
2007011591.tif 000002
【特許請求の範囲】
【請求項１】
外部から命令が入力されると、その命令に対応した所定の処理を実行し、その処理結果に応じた応答データを外部へ出力する携帯可能電子装置において、
あらかじめ外部から与えられた暗号化演算を行なうための鍵データ、および、この鍵データを用いて、あらかじめ定められたデータを暗号化することにより算出された鍵正当性検証値を記憶している記憶手段と、
外部から入力される前記鍵データを使用する命令を受信すると、当該鍵データを使用する前に、前記記憶手段に記憶されている鍵データを用いて、あらかじめ定められたデータを暗号化することにより比較用データを算出する比較用データ算出手段と、
この比較用データ算出手段により算出された比較用データと前記記憶手段に記憶されている鍵正当性検証値とを比較することにより両者の間に所定の関係が成立するか否かを判定する比較手段と、
この比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立すると判定された場合、当該鍵データを使用した所定の処理を実行する処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、エラーデータを外部へ出力して当該処理を終了する制御手段をさらに具備したことを特徴とする請求項１記載の携帯可能電子装置。
【請求項３】
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、当該処理以降、外部から入力される命令に対して処理を停止していることを示すエラーデータを外部へ出力する制御手段をさらに具備したことを特徴とする請求項１記載の携帯可能電子装置。
【請求項４】
前記比較用データ算出手段、比較手段、および処理手段として機能するＣＰＵ（セントラル・プロセッシング・ユニット）を有し、
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、前記ＣＰＵの動作を停止させる制御手段をさらに具備したことを特徴とする請求項１記載の携帯可能電子装置。
【請求項５】
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、その回数を計数する計数手段と、
この計数手段による計数値があらかじめ定められた制限値を超えていないかを判定する判定手段と、
この判定手段による判定の結果、前記計数手段の計数値が制限値を超えていない場合、前記比較用データ算出手段の処理から再度試行させる制御手段と、
をさらに具備したことを特徴とする請求項１記載の携帯可能電子装置。
【請求項６】
前記判定手段による判定の結果、前記計数手段の計数値が制限値を超えている場合、エラーデータを外部へ出力して当該処理を終了する制御手段をさらに具備したことを特徴とする請求項５記載の携帯可能電子装置。
【請求項７】
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、当該処理以降、外部から入力される命令に対して処理を停止していることを示すエラーデータを外部へ出力する制御手段をさらに具備したことを特徴とする請求項５記載の携帯可能電子装置。
【請求項８】
前記比較用データ算出手段、比較手段、および処理手段として機能するＣＰＵ（セントラル・プロセッシング・ユニット）を有し、
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、前記ＣＰＵの動作を停止させる制御手段をさらに具備したことを特徴とする請求項５記載の携帯可能電子装置。
【請求項９】
外部から命令が入力されると、その命令に対応した所定の処理を実行し、その処理結果に応じた応答データを外部へ出力するＩＣカードにおいて、
あらかじめ外部から与えられた暗号化演算を行なうための鍵データ、および、この鍵データを用いて、あらかじめ定められたデータを暗号化することにより算出された鍵正当性検証値を記憶している記憶手段と、外部から入力される前記鍵データを使用する命令を受信すると、当該鍵データを使用する前に、前記記憶手段に記憶されている鍵データを用いて、あらかじめ定められたデータを暗号化することにより比較用データを算出する比較用データ算出手段と、この比較用データ算出手段により算出された比較用データと前記記憶手段に記憶されている鍵正当性検証値とを比較することにより両者の間に所定の関係が成立するか否かを判定する比較手段と、この比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立すると判定された場合、当該鍵データを使用した所定の処理を実行する処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項１０】
前記ＩＣモジュールは、
前記比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立しないと判定された場合、その回数を計数する計数手段と、
この計数手段による計数値があらかじめ定められた制限値を超えていないかを判定する判定手段と、
この判定手段による判定の結果、前記計数手段の計数値が制限値を超えていない場合、前記比較用データ算出手段の処理から再度試行させる制御手段と、
をさらに有したことを特徴とする請求項９記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換えが可能な不揮発性メモリおよびＣＰＵなどの制御素子を有し、外部からのデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードと称される携帯可能電子装置およびＩＣカードに関する。
【背景技術】
【０００２】
一般的に、この種のＩＣカードは、制御素子としてのＣＰＵ、制御プログラムなどを記憶するプログラムメモリ（ＲＯＭ）、各種データやその管理情報などを記憶する不揮発性メモリ（ＮＶメモリ）、ワーキングメモリ（ＲＡＭ）などの各メモリから構成されている。  
また、一般的なＩＣカードのライフサイクル管理として、発行フェーズ、運用（実使用）フェーズ、使用終了フェーズがあり、この中でも発行フェーズ処理（発行処理）については、最近、業界、団体で共通の発行方式を策定することにより、各メーカーにより発行工程が異なるという状況を避けるような動きがある（たとえば、非特許文献１参照）。
【０００３】
さらに、ＩＣカードの特長の１つである、カード所持者や使用されるシステムの認証、または、ＩＣカード自身の正当性証明などに使用される鍵データについては、ＩＣカード内のメモリに記憶されたデータの中でも最も重要なデータとして取扱われることが多く、鍵データの改ざん、外部漏洩に対する様々な対策が行なわれている。
【０００４】
また、発行フェーズにおいて、ＩＣカードへ鍵データの設定を行なう場合に、鍵データとともに、鍵データの正当性を検証するためのデータ（鍵正当性検証値）をＩＣカードへ送信することで、発行システムからＩＣカードへのデータ通信中に、鍵データが改ざんされていないことを検証するなどの方法が考えられている。
【非特許文献１】ＥＭＶ  Ｃａｒｄ  Ｐｅｒｓｏｎａｉｌｚａｔｉｏｎ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，ｖｅｒｓｉｏｎ１．０，Ｊｕｎｅ  ２００３（以下、［ＥＭＶ＿ＣＰＳ］と略称する）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、最近、たとえば、ＩＣカードへ外部から電気的なノイズなどを意図的に与え、ＣＰＵのプログラムを誤動作させるなどにより、たとえば不揮発性メモリ（ＮＶメモリ）に格納されている鍵データを誤った値に読出させ、ＣＰＵにこの誤った鍵データを使用させることにより、ＩＣカードに不正な処理を行なわせるなどの、ＩＣカードへの不正攻撃が行なわれた場合、それを防止することが困難であるという問題がある。
【０００６】
そこで、本発明は、外部から不正な攻撃が行なわれた場合に、鍵データを誤ったデータでメモリから読出してしまうことを防止し、かつ、鍵データが正しく読出せなかったと判定した場合に、誤ったデータを使用して処理を継続してしまうという問題を防止することが可能となる携帯可能電子装置およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の携帯可能電子装置は、外部から命令が入力されると、その命令に対応した所定の処理を実行し、その処理結果に応じた応答データを外部へ出力する携帯可能電子装置において、あらかじめ外部から与えられた暗号化演算を行なうための鍵データ、および、この鍵データを用いて、あらかじめ定められたデータを暗号化することにより算出された鍵正当性検証値を記憶している記憶手段と、外部から入力される前記鍵データを使用する命令を受信すると、当該鍵データを使用する前に、前記記憶手段に記憶されている鍵データを用いて、あらかじめ定められたデータを暗号化することにより比較用データを算出する比較用データ算出手段と、この比較用データ算出手段により算出された比較用データと前記記憶手段に記憶されている鍵正当性検証値とを比較することにより両者の間に所定の関係が成立するか否かを判定する比較手段と、この比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立すると判定された場合、当該鍵データを使用した所定の処理を実行する処理手段とを具備している。
【０００８】
また、本発明のＩＣカードは、外部から命令が入力されると、その命令に対応した所定の処理を実行し、その処理結果に応じた応答データを外部へ出力するＩＣカードにおいて、あらかじめ外部から与えられた暗号化演算を行なうための鍵データ、および、この鍵データを用いて、あらかじめ定められたデータを暗号化することにより算出された鍵正当性検証値を記憶している記憶手段と、外部から入力される前記鍵データを使用する命令を受信すると、当該鍵データを使用する前に、前記記憶手段に記憶されている鍵データを用いて、あらかじめ定められたデータを暗号化することにより比較用データを算出する比較用データ算出手段と、この比較用データ算出手段により算出された比較用データと前記記憶手段に記憶されている鍵正当性検証値とを比較することにより両者の間に所定の関係が成立するか否かを判定する比較手段と、この比較手段により比較用データと鍵正当性検証値との間に所定の関係が成立すると判定された場合、当該鍵データを使用した所定の処理を実行する処理手段とを有したＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【発明の効果】
【０００９】
本発明によれば、たとえば、発行処理などにおいて、あらかじめ外部から与えられた鍵データと鍵正当性検証値を内部に記憶しておき、上記鍵データを使用する命令を受信した場合に、これらのあらかじめ記憶したデータと、上記鍵データから命令受信の都度算出する比較データを使用して、鍵データの正当性検証を行なうことにより、外部から不正な攻撃が行なわれた場合に、鍵データを誤ったデータでメモリから読出してしまうことを防止し、かつ、鍵データが正しく読出せなかったと判定した場合に、誤ったデータを使用して処理を継続してしまうという問題を防止することが可能となる携帯可能電子装置およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。  
まず、第１の実施の形態について説明する。  
図１は、本発明に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１１をカードリーダ・ライタ１２を介してパーソナルコンピュータなどの端末装置１３と接続可能にするとともに、端末装置１３にキーボード１４、ＣＲＴ表示部１５、プリンタ１６を接続して構成される。
【００１１】
図２は、ＩＣカード１１の構成を示すもので、制御素子としてのＣＰＵ１０１、記憶内容が書換え可能な記憶手段（メモリ）としてのデータメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４、および、カードリーダ・ライタ１２との電気的接触を得るためのコンタクト部１０５によって構成されている。そして、これらのうち、破線内の部分（ＣＰＵ１０１、データメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４）は１つ（あるいは複数）のＩＣチップ１０６で構成され、さらに、このＩＣチップ１０６とコンタクト部１０５とが一体的にＩＣモジュール化されて、ＩＣカード本体１１ａ内に埋設されている。
【００１２】
データメモリ１０２は、たとえば、ＥＥＰＲＯＭなどの記憶内容が書換え可能な不揮発性メモリで構成されていて、外部へ応答する固定データ、内部処理で使用する鍵データ、全体を制御するための管理フラグなど、各種データの記憶に使用される。  
ワーキングメモリ１０３は、ＣＰＵ１０１が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭなどで構成される。  
プログラムメモリ１０４は、たとえば、マスクＲＯＭなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、ＣＰＵ１０１の制御プログラム、および、プログラムバージョンやＩＣチップ１０６の製造番号（ＩＣ製造番号）など外部へ応答する固定データなどを記憶するものである。
【００１３】
次に、上記のような構成においてＩＣカードの各ライフサイクルにおける処理の具体例について説明する。  
まず、ＩＣカードの内部へ鍵データおよび鍵正当性検証値を記憶する発行フェーズ処理（発行処理）の具体例について説明する。
【００１４】
本実施の形態では、発行処理装置の構成として図１の構成を使用するものとする。  
ＩＣカード１１の発行処理は、端末装置１３からカードリーダ・ライタ１２を介してＩＣカード１１へコマンドが送信されることで開始される。この際、ＩＣカード１１では、送信されたコマンドに対応した処理を行ない、その処理結果をレスポンスとして、カードリーダ・ライタ１２を介して端末装置１３へ返送する。
【００１５】
一般的な処理例としては、  
（ａ）ＩＣカードが端末装置の正当性を確認する処理  
（ｂ）ＩＣカードの正当性を端末装置へ伝える処理  
（ｃ）ＩＣカード内のデータメモリ等に格納されたデータを外部へ応答するデータ読出
し処理  
（ｄ）コマンドで送信されたデータをＩＣカード内のデータメモリへ記憶するデータ書
込み処理  
に分類することができる。
【００１６】
上記処理は一般的なＩＣカードの発行処理を示したものであり、このうち本発明に関連する発行処理は、（ｄ）の部分となる。  
以下、たとえば、周知の暗号化方式であるトリプルＤＥＳ（Ｔｒｉｐｌｅ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）演算に使用するトリプルＤＥＳ鍵データ（以下、単に鍵データと略称する）を、ＩＣカード１１内のデータメモリ１０２に書込む場合を例として、上記（ｄ）の部分の具体的な処理を説明する。
【００１７】
端末装置１３は、実際にＩＣカード１１内のデータメモリ１０２へ書込みたい鍵データと、その鍵データを検証するための鍵正当性検証値（ＫＣＶ）をＩＣカードへ送信する。これらのデータを受信したＩＣカード１１のＣＰＵ１０１は、以下の手順にて鍵データの正当性検証と、データ書込みを行なう。
【００１８】
まず、受信した鍵データを使用して、あらかじめ定められた８バイトのデータ（０ｘ００００  ００００  ００００  ００００）を、トリプルＤＥＳ演算（暗号化演算）する。次に、その演算結果の先頭３バイトのデータを、受信した鍵正当性検証値と比較するための比較データとしてワーキングメモリ１０３に一時記憶する。
【００１９】
次に、受信した鍵正当性検証値と、ワーキングメモリ１０３に一時記憶した比較データとを比較し、両者の間に所定の関係が成立した場合、すなわち、本実施の形態では両データが一致した場合にのみ鍵データの正当性が検証できたと判定する。次に、鍵データの正当性が検証できた場合、データメモリ１０２内に受信した鍵データおよび鍵正当性検証値を記憶する。
【００２０】
なお、鍵正当性検証値の算出方法は、前述の文献［ＥＭＶ＿ＣＰＳ］などに記載されている一般的な方法であるが、発行処理において使用した鍵正当性検証値をＩＣカード内部に記憶することは記載されていない。  
また、ＩＣカード１１内に記憶された鍵正当性検証値は、発行処理装置から送信されたデータであり、ＩＣカードが自身で算出した例えばパリティデータやチェックサム（ＢＣＣ）などとは異なるものである。
【００２１】
上記のような処理を行ない、発行が完了したＩＣカード１１は、たとえば、発行完了であることをＩＣカード１１が内部的に識別するためのフェーズ管理用フラグをデータメモリ１０２に書込むこと等により、次の運用フェーズへと移行する。
【００２２】
次に、ＩＣカードの内部で鍵データの正当性検証を行ない、鍵データを使用する運用フェーズ処理の具体例について説明する。  
本実施の形態では、運用処理装置の構成として、発行処理装置と同じく図１の構成を使用するものとする。  
ＩＣカード１１の運用処理は、端末装置１３からカードリーダ・ライタ１２を介してＩＣカード１１へコマンドが送信されることで開始される。この際、ＩＣカード１１では、送信されたコマンドに対応した処理を行ない、その処理結果をレスポンスとして、カードリーダ・ライタ１２を介して端末装置１３へ返送する。
【００２３】
一般的な処理例として考えられる処理手順を以下に示す。ここでは簡便のため、ＩＣカード１１から機密データの読出しを行なう場合を想定する。  
（１）端末装置１３は、ＩＣカード１１へ乱数データを要求するコマンドを送り、ＩＣカード１１は、内部で乱数データを生成し、ＩＣカード１１内に一時記憶するとともに端末装置１３へ応答する。  
（２）端末装置１３は、自身とＩＣカード１１とがお互いに秘密裏に把握している鍵データ（ここでは、先ほど発行処理でＩＣカード１１内に記憶した鍵データ）で、乱数データを暗号化演算し、端末認証子を生成する。  
（３）端末装置１３は、生成した端末認証子をＩＣカード１１へ送信することで端末認証要求を行ない、受信したＩＣカード１１は、端末認証子の正当性を、内部に記憶された鍵データと、一時記憶した乱数データとを使用して検証するという処理により、外部認証処理（端末装置１３の正当性検証）を実行する。  
（４）端末装置１３の正当性が検証できた場合にのみ、ＩＣカード１１は、次に続くＩＣカード１１内に記録された機密データの読出しコマンドに対して機密データを応答する。
【００２４】
上記処理は一般的なＩＣカードの運用処理を示したものであり、このうち本発明に関連する運用処理は、（３）の部分である。  
以下、上記（３）の部分の具体的な処理について、図３に示すフローチャートを参照して説明する。  
なお、上記（３）に記載した、端末装置１３からＩＣカード１１への端末認証要求とは、たとえば、ＩＳＯ／ＩＥＣ７８１６に規定された外部認証コマンド（ＥＸＴＥＲＮＡＬ  ＡＵＴＨＥＮＴＩＣＡＴＥコマンド）で行なうものとする。
【００２５】
ＩＣカード１１のＣＰＵ１０１は、端末装置１３から送信される外部認証コマンドを受信すると、以下のような処理を行なう。  
すなわち、外部認証コマンドを受信すると（ステップＳ１）、端末装置１３から指定されたか、もしくは暗黙的に決められている、外部認証処理に使用する鍵データを、データメモリ１０２から検索する（ステップＳ２）。検索の結果、該当する鍵データが検索できなかった場合は、検索エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ３）、当該処理を終了する。
【００２６】
ステップＳ２における検索の結果、該当する鍵データが検索できた場合、検索した鍵データをデータメモリ１０２から読出す（ステップＳ４）。次に、鍵データの正当性検証を行なうための比較データを算出する（ステップＳ５）。
【００２７】
次に、ステップＳ２で検索した鍵データに対応した、鍵正当性検証値をデータメモリ１０２から検索する（ステップＳ６）。検索の結果、該当する鍵正当性検証値が検索できなかった場合は、検索エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ３）、当該処理を終了する。
【００２８】
ステップＳ６における検索の結果、該当する鍵正当性検証値が検索できた場合、検索した鍵正当性検証値をデータメモリ１０２から読出す（ステップＳ７）。次に、ステップＳ５で算出した比較データと、ステップＳ７で読出した鍵正当性検証値とを比較することにより、両者の間に所定の関係が成立するか否か、すなわち、本実施の形態では両データが一致するか否かを判定する（ステップＳ８）。
【００２９】
ステップＳ８における判定の結果、比較データと鍵正当性検証値とが不一致の場合、鍵正当性検証エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ９）、当該処理を終了する。ステップＳ８における判定の結果、比較データと鍵正当性検証値とが一致の場合、外部認証処理（端末装置１３の正当性検証）を実行する（ステップＳ１０）。
【００３０】
ステップＳ５における比較データの算出処理は、図４に示すフローチャートの手順にて行なわれる。  
すなわち、比較データの算出処理が開始されると、データメモリ１０２から読出した鍵データを使用して、あらかじめ定められた８バイトのデータ（０ｘ００００  ００００  ００００  ００００）を、トリプルＤＥＳ演算（暗号化演算）する（ステップＳ１１）。次に、その演算結果の先頭３バイトのデータを比較データとしてワーキングメモリ１０３に一時記憶し（ステップＳ１２）、当該処理を終了する。
【００３１】
鍵正当性検証値は、前述した発行処理において、正当であることを確認した後にＩＣカード１１内のデータメモリ１０２に記憶したデータであるため、運用処理において、上記手順による検証に失敗するということは、ＩＣカード１１に対して何らかの不正な攻撃が加えられ、データメモリ１０２内のデータが正しく読出せない、あるいは、データメモリ１０２が破壊されているなど、ＩＣカード１１が正常に動作をしていないことが考えられる。どのような場合においても、発行処理で記録した鍵データが正しく使用できない状況にあるため、このまま処理を継続することは好ましくないため、正常処理の継続を中止する必要がある。
【００３２】
上記第１の実施の形態の特徴は、発行処理であらかじめ正当であることを確認した上で、ＩＣカード１１内のデータメモリ１０２に記憶した鍵正当性検証値を使用して、鍵データの正当性検証を行なうことである。  
正当性検証に、発行処理装置から送信されたデータ（鍵正当性検証値）と、ＩＣカード１１の内部で検証用に算出したデータ（比較データ）を使用するため、たとえば、パリティデータやチェックサム（ＢＣＣ）などのように、ＩＣカードが自身で算出したデータの正当性を検証する方法とは違い、一方のデータがＩＣカード自身でない外部で算出されたものであるため、信頼度の高いデータを使用した検証が行なえる。
【００３３】
また、たとえば、ＩＣカードに記憶された公開鍵データと鍵の証明書データを、上位装置がＩＣカードから読出し、その公開鍵正当性検証を行なう場合とは違い、ＩＣカード自身がＩＣカードの内部処理で使用する鍵データの正当性を検証するためのものである。
【００３４】
次に、第２の実施の形態について説明する。  
第２の実施の形態は、前述した第１の実施の形態（図３）におけるステップＳ８の処理で、鍵データの正当性検証に失敗した場合のエラー処理に関するものであり、具体的には以下のような処理を行なう。
【００３５】
すなわち、ステップＳ８において、ステップＳ５で算出した比較データとステップＳ７で読出した鍵正当性検証値とを比較し、両データが不一致の場合、ＣＰＵ１０１の全処理を停止する（エラーデータの応答などを行なわず、外部装置に対し無応答となる）。
【００３６】
このような処理により、ＩＣカード１１の内部で使用する鍵データが正当であると判定できた場合にのみ、正常に処理を行ない、正当であると判定できなかった場合は、ＩＣカード１１の全処理を中断することが可能となる。  
また、ＣＰＵ１０１の全処理を停止した場合、たとえば、ＩＣカード１１の再活性化処理などを行なわない限り、ＣＰＵ１０１の処理が再度行なわれることはない。
【００３７】
次に、第３の実施の形態について説明する。  
第３の実施の形態は、前述した第１の実施の形態（図３）におけるステップＳ８の処理で、鍵データの正当性検証に失敗した場合のエラー処理に関するものであり、具体的には以下のような処理を行なう。
【００３８】
すなわち、ステップＳ８において、ステップＳ５で算出した比較データとステップＳ７で読出した鍵正当性検証値とを比較し、両データが不一致の場合、当該アプリケーションを一時的に利用停止状態（アプリケーションブロック状態）とする。
【００３９】
このような処理により、ＩＣカード１１の内部で使用する鍵データが正当であると判定できた場合にのみ、正常に処理を行ない、正当であると判定できなかった場合、アプリケーションをブロックすることにより、次回以降当該アプリケーションを使用した運用処理を利用停止とすることができる。
【００４０】
ここに、アプリケーションブロック状態とは、たとえば、文献「ＥＭＶ２０００  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃａｒｄ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  Ｐａｙｍｅｎｔ  Ｓｙｓｔｅｍｓ，Ｂｏｏｋ３  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｖｅｒｓｉｏｎ４．０，Ｄｅｃｅｍｂｅｒ，２０００」などに記載された状態を想定するものとする。
【００４１】
第３の実施の形態は、たとえば、クレジット用アプリケーションなど、ＩＣカード内に１つまたは複数のアプリケーションが存在する場合に適用可能であ利、顕著な作用効果を発揮する。
【００４２】
次に、第４の実施の形態について説明する。  
第４の実施の形態は、前述した第１の実施の形態（図３）におけるステップＳ８の処理で、鍵データの正当性検証に失敗した場合の異なる処理例に関するもので、以下、図５に示すフローチャートを参照して具体的に説明する。
【００４３】
外部認証コマンドを受信すると（ステップＳ２１）、端末装置１３から指定されたか、もしくは暗黙的に決められている、外部認証処理に使用する鍵データを、データメモリ１０２から検索する（ステップＳ２２）。検索の結果、該当する鍵データが検索できなかった場合は、検索エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ２３）、当該処理を終了する。
【００４４】
ステップＳ２２における検索の結果、該当する鍵データが検索できた場合、検索した鍵データをデータメモリ１０２から読出す（ステップＳ２４）。次に、鍵データの正当性検証を行なうための比較データを算出する（ステップＳ２５）。
【００４５】
次に、ステップＳ２２で検索した鍵データに対応した、鍵正当性検証値をデータメモリ１０２から検索する（ステップＳ２６）。検索の結果、該当する鍵正当性検証値が検索できなかった場合は、検索エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ２３）、当該処理を終了する。
【００４６】
ステップＳ２６における検索の結果、該当する鍵正当性検証値が検索できた場合、検索した鍵正当性検証値をデータメモリ１０２から読出す（ステップＳ２７）。次に、ステップＳ２５で算出した比較データと、ステップＳ２７で読出した鍵正当性検証値とを比較することにより、両者の間に所定の関係が成立するか否か、すなわち、本実施の形態では両データが一致するか否かを判定する（ステップＳ２８）。
【００４７】
ステップＳ２８における判定の結果、比較データと鍵正当性検証値とが一致の場合、外部認証処理（端末装置１３の正当性検証）を実行する（ステップＳ２９）。ステップＳ２８における判定の結果、比較データと鍵正当性検証値とが不一致の場合、図示しない比較不一致カウンタを１つ加算する（ステップＳ３０）。
【００４８】
次に、比較不一致カウンタのカウント値をあらかじめ定められたカウンタ上限値（制限値）と比較し（ステップＳ３１）、カウント値がカウンタ上限値を超えている場合、鍵正当性検証エラーを示すエラーデータを端末装置１３へ応答し（ステップＳ３２）、当該処理を終了する。ステップＳ３１における比較の結果、カウント値がカウンタ上限値以内の場合は、処理全体を再試行するため、ステップＳ２２へ戻り、上記同様な動作を繰り返す。
【００４９】
ここに、比較不一致カウンタは、鍵正当性検証値と比較データとの比較に失敗した回数を記憶するためのカウンタであり、たとえば、ワーキングメモリ１０３内に設けられている。また、カウンタ上限値は、上記比較不一致カウンタの上限データ（比較失敗回数の制限値）である。
【００５０】
このような処理により、ＩＣカード１１の内部で使用する鍵データが正当であると判定できた場合にのみ、正常に処理を行ない、正当であると判定できなかった場合、あらかじめ設定された制限値まで再試行することが可能となる。再試行を繰り返した結果、鍵データの正当性検証が行なえず、制限値を超えた場合は、処理を中断してエラーデータを応答する。
【００５１】
なお、上記第４の実施の形態では、比較不一致カウンタのカウント値がカウンタ上限値を超えた場合、エラー応答を行なうこととしたが、前述した第１〜第３の実施の形態の技術を組合わせることにより、結果処理を上記例以外とすることも可能である。
【００５２】
以上説明したように上記実施の形態によれば、発行処理などにおいて、あらかじめ外部から与えられた鍵データと鍵正当性検証値をＩＣカード内のデータメモリへ記憶しておき、上記鍵データを使用するコマンド（命令）を受信した場合に、これらのあらかじめ記憶したデータと、上記鍵データから命令受信の都度算出する比較データを使用して、鍵データの正当性検証を行なうことにより、ＩＣカードへ不正な攻撃が行なわれた場合に、鍵データを誤ったデータでデータメモリから読出してしまうことを防止し、また、鍵データが正しく読出せなかったと判定した場合に、誤ったデータを使用して処理を継続してしまうという問題を防止することが可能となる。
【００５３】
また、たとえば、ＩＣカード自身が付加したチェックサムなどを検証する処理に比べ、片方のデータが外部装置により算出されたデータを使用した比較となるため、信頼性の高いデータを使用した検証を実施することが可能となる。
【００５４】
また、たとえば、ＩＣカードに記録された公開鍵データと、鍵データの証明書データを上位装置がＩＣカードから読出し、その公開鍵データの正当性検証を行なう場合とは違い、ＩＣカード自身がＩＣカード内部処理で使用する鍵データの正当性を検証するため、鍵データの正当性検証に失敗した場合、ＩＣカード内部の秘密データなどを外部へ応答することなく、処理を中断する、などより安全な処理を行なうことが可能となる。
【００５５】
なお、前記実施の形態では、接触式ＩＣカードを利用した処理を用いて例示を行なったが、たとえば、非接触式ＩＣカードなどへの応用も可能であり、また、携帯可能電子装置の形状もカード状に限らず、ブロック状や棒状など、他の形状であってもよい。
【図面の簡単な説明】
【００５６】
【図１】本発明に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】第１の実施の形態に係る具体的な処理について説明するフローチャート。
【図４】比較データの算出処理を説明するフローチャート。
【図５】第４の実施の形態に係る具体的な処理について説明するフローチャート。
【符号の説明】
【００５７】
１１…ＩＣカード（携帯可能電子装置）、１１ａ…ＩＣカード本体、１２…カードリーダ・ライタ、１３…端末装置、１４…キーボード、１５…ＣＲＴ表示部、１６…プリンタ、１０１…ＣＰＵ（制御素子）、１０２…データメモリ（記憶手段）、１０３…ワーキングメモリ、１０４…プログラムメモリ、１０５…コンタクト部、１０６…ＩＣチップ。
【図１】
2007011591.tif 000003
【図２】
2007011591.tif 000004
【図３】
2007011591.tif 000005
【図４】
2007011591.tif 000006
【図５】
2007011591.tif 000007