説明

携帯可能電子装置、携帯可能電子装置の制御方法及びICカード

【課題】安全性を損なうことなく署名検証処理に要する時間を効率化することのできる携帯可能電子装置、携帯可能電子装置の制御方法及びICカードを提供する。
【解決手段】過去に署名検証が成功した、第1の属性をもつ公開鍵証明書を記憶する証明書記憶ステップと、過去に署名検証か成功した、第1の属性と異なる第2の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶ステップと、外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信ステップと、記憶されている第1の属性をもつ公開鍵証明書及び記憶されている第2の属性をもつ公開鍵証明書の一部の情報と、受信した公開鍵証明書とを比較照合する比較照合ステップと、比較照合結果から受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップとを備えた携帯可能電子装置の制御方法である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、外部装置からのコマンドに応じて処理を行う携帯可能電子装置、携帯可能電子装置の制御方法及びICカードに関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるIC(Integrated Circuit)カードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、ISO/IEC7816−1part1,2に準拠したICカードである。ICカードは、一般的に、CPU、ROM、RAM、不揮発性メモリ(EEPROM)、及び通信部などを備えており、互いにデータバスなどを介して接続されている。
【0004】
ICカードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ICとしてCPU、ROM、RAM、EEPROMなどを持つため様々な機能が可能となったことに加え、偽造が難しいためにセキュリティの面でも大きく向上したことが要因となっている。
【0005】
この為、保持している機密性の高い情報を第三者に不正に読み取れないように、データを暗号化して送受信を行うICカードが提供されている(例えば、特許文献1参照)。
この暗号通信には、PKI(PKI:Public Key Infrastructure)が用いられる。PKIは、認証局(CA)から発行される公開鍵証明書の運用を可能とする基盤技術である。通信主体は、認証局から発行された公開鍵証明書の署名を検証することにより、通信相手が認証局から信頼された相手であるか否かを確認することができる。
【0006】
そこで、この暗号通信のために通信相手から受信した公開鍵証明書の署名検証処理を行うことで、通信相手の正当性を確認する(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005−45760号公報
【特許文献2】特開平10−79733号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、このPKIシステムでは、階層構造をもつ公開鍵証明書が存在することがある。例えば、ある公開鍵証明書に対して署名を行う認証局があり、さらにその認証局の公開鍵証明書に対して署名を行う上位の認証局があるといった、認証局が複数階層存在する。具体的には、パスポートについての電子システムにおいてPKIが用いられているが、このパスポートシステムでは、特定の国の認証局の下に複数の行政機関による認証局が階層構造を成して複数存在する。このため、特定の国に入国する場合、あるいは出国する場合に、署名検証処理を複数回実行することになる。
【0009】
社会的な動向に鑑みると、このような階層構造は、今後広い分野で増加する可能性が高いと考えられる。従って、将来は複数回の署名検証処理を行うケースが更に増加することになる。
しかしながら、公開鍵証明書の署名検証のためには、非常に時間のかかる公開鍵暗号演算が必要である。従って、パーソナルコンピュータ(PC)と比べて処理能力の低いICカードで署名検証処理を複数回実行することは、リーダ・ライタとの間での応答性の悪化によってICカードの利便性を低下させることになる。
【0010】
本発明は、安全性を損なうことなく署名検証処理に要する時間を効率化することのできる携帯可能電子装置、携帯可能電子装置の制御方法及びICカードを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するための本発明は、外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、過去に署名検証が成功した、第1の属性をもつ公開鍵証明書を記憶する証明書記憶部と、過去に署名検証か成功した、第1の属性と異なる第2の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶部と、公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、前記証明書記憶部に記憶されている公開鍵証明書及び前記履歴情報記憶部に記憶されている公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部とを備えた携帯可能電子装置である。
【0012】
また本発明は、過去に署名検証が成功した、第1の属性をもつ公開鍵証明書を記憶する証明書記憶ステップと、過去に署名検証か成功した、第1の属性と異なる第2の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶ステップと、外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信ステップと、記憶されている前記第1の属性をもつ公開鍵証明書及び記憶されている前記第2の属性をもつ公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合する比較照合ステップと、比較照合結果から前記受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップとを備えた携帯可能電子装置の制御方法である。
【0013】
また本発明は、上記記載の発明である携帯可能電子装置の各部を有するICモジュールと、このICモジュールを収納したICカード本体とを備えたICカードである。
【発明の効果】
【0014】
この発明によれば、安全性を損なうことなく署名検証処理に要する時間を効率化することのできる携帯可能電子装置、その制御方法及びICカードを提供することができる。
【図面の簡単な説明】
【0015】
【図1】本実施形態に係るICカードと通信を行うICカード処理装置の構成例について説明するためのブロック図。
【図2】ICカードの構成例について説明するためのブロック図。
【図3】第1の実施の形態のICカードの署名検証処理手順を示す概略のフロー図。
【図4】第2の実施の形態のICカードの署名検証処理手順を示す概略のフロー図。
【図5】第3の実施の形態のICカードの署名検証処理手順を示す概略のフロー図。
【図6】第4の実施の形態のICカード2の署名検証処理手順を示す概略のフロー図。
【発明を実施するための形態】
【0016】
[第1の実施の形態]
以下、図面を参照しながら、本発明の第1の実施形態に係る携帯可能電子装置について詳細に説明する。
【0017】
図1は、本実施形態に係るICカード2と通信を行うICカード処理装置1の構成例について説明するためのブロック図である。
図1に示すようにICカード処理装置1は、端末装置11、ディスプレイ12、キーボード13、及びカードリーダライタ14などを有している。
【0018】
端末装置11は、CPU、種々のメモリ、及び各種インターフェースなどを備える。端末装置11は、ICカード処理装置1全体の動作を制御する。
【0019】
ディスプレイ12は、端末装置11の制御により種々の情報を表示する。キーボード13は、ICカード処理装置1の操作者による操作を操作信号として受け取る。
【0020】
カードリーダライタ14は、ICカード2と通信を行うためのインターフェース装置である。カードリーダライタ14は、ICカード2に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【0021】
端末装置11は、カードリーダライタ14によりICカード2に対して種々のコマンドを入力する。ICカード2は、例えば、カードリーダライタ14からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【0022】
また、端末装置11は、ICカード2に読み取りコマンドを送信することにより、ICカード2からデータを読み出す。端末装置11は、ICカード2から受信したデータに基づいて種々の処理を行う。
【0023】
図2は、図1に示すICカード2の構成例について説明するためのブロック図である。
図2に示すように、ICカード2は、カード状の本体21と、本体21内に内蔵されたICモジュール22とを備えている。ICモジュール22は、1つ又は複数のICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22に形成されている。
【0024】
ICチップ23は、データバス20、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、及びコプロセッサ29などを備えている。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、及びコプロセッサ29は、データバス20を介して互いに接続されている。
【0025】
ICカード2は、ICカード処理装置1などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ICカード2が接触式通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触式のICカードとして構成される場合、ICカード2は、通信部としてのコンタクト部などを介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0026】
また、ICカード2が非接触式の通信方式によりICカード処理装置1と接続される場合、つまり、ICカード2が非接触式のICカードとして構成される場合、ICカード2は、通信部としてのアンテナなどを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0027】
通信部24は、ICカード処理装置1のカードリーダライタ14との通信を行うためのインターフェースである。
通信部24は、例えば、ICカード処理装置1のカードリーダライタ14と接触して信号の送受信を行うコンタクト部を備える。この場合、ICカード2は、接触式のICカードとして機能する。
また、通信部24は、例えば、ICカード処理装置1のカードリーダライタ14と無線通信を行うアンテナを備える。この場合、ICカード2は、非接触式のICカードとして機能する。
【0028】
CPU25は、ICカード2全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【0029】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0030】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介してICカード処理装置1から受信したデータを一時的に格納する。また、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0031】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ28は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【0032】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROMに記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0033】
コプロセッサ29は、暗号鍵を用いて暗号化されたデータの復号、及び、平文のデータの暗号化を行う。即ち、コプロセッサ29は、暗号処理部として機能する。例えば、CPU25は、暗号処理を行うデータをコプロセッサ29にバス20を介して入力する。この場合、CPU25は、データ入力部として機能する。コプロセッサ29は、入力されるデータに対して暗号処理を施し、CPU25にバス20を介して出力する。
このように、ICカード2では、CPU25が主処理装置としてデータ処理を実行し、コプロセッサ29が補助処理装置として暗号処理を実行する。
【0034】
続いて、公開鍵証明書の署名検証処理動作について説明する。
図3は、第1の実施の形態のICカード2の署名検証処理手順を示す概略のフロー図である。
【0035】
ICカード処理装置1とICカード2との間で通信が確立した後、ICカード処理装置1の端末装置11は、カードリーダライタ14によりICカード2に対して、署名検証を求めるコマンドと公開鍵証明書を送信する。なお、端末装置11は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をICカード2に送信する。ICカード2は、送信されるそれぞれの公開鍵証明書に対して図3に示す署名検証処理を実行する。
【0036】
ステップS01において、CPU25は、コマンドと公開鍵証明書を受信すると、ステップS02において、受信した公開鍵証明書と、不揮発性メモリ28に格納されている過去に認証した公開鍵証明書とを比較する。そして、ステップS13において、同じ公開鍵証明書が保存されているか否かを調べる。
【0037】
ここで、公開鍵証明書は、署名部と証明内容が記載されている情報部とを備えている。CPU25は、署名部及び情報部を全て比較して同じか否かを判断しても良く、内容の一部を比較して同じか否かを判断しても良い。比較対象となる一部の情報としては、例えば、公開鍵証明書の発行者、有効期限、ハッシュ値、署名などから任意に選択した少なくとも一つのデータが挙げられる。公開鍵証明書の全てを比較するか、内容の一部を比較するかは、外部からの指示によっていずれの動作を行うかを指定するフラグを設定できるようにしても良い。
なお、比較において有効期限のみが異なっている場合は、期限切れの場合として同じ公開鍵証明書であると判断することもできる。
【0038】
ステップS03でYesの場合、即ち、同じ公開鍵証明書が保存されている場合は、ステップS07において、検証成功の処理(後述)を実行して、次ステップの処理に移行する。
【0039】
ステップS03でNoの場合、即ち、同じ公開鍵証明書が保存されていない場合は、ステップS04において、コプロセッサ29が、署名検証処理を実行する。このステップS04の署名検証処理は、例えば、RSA暗号の解読を行う時間のかかる処理である。そして、ステップS05において、CPU25は、署名検証に問題がないかどうかを調べる。
【0040】
ステップS05でNoの場合、即ち、署名検証が不成功の場合、ステップS06において、CPU25は、ICカード処理装置1に検証結果不成功である旨のデータを送信する。そして、当該ICカード処理装置1との通信を停止する。
【0041】
ステップS05でYesの場合、即ち、署名検証が成功の場合、ステップS07において、CPU25は、検証成功の処理を実行する。例えば、公開鍵証明書が保存されていない場合は、公開鍵を含む公開鍵証明書全体を保存する。なお、公開鍵を含む公開鍵証明書の一部の情報を保存しても良い。公開鍵証明書の全てを保存するか、内容の一部を保存するかは、外部からの指示によっていずれの動作を行うかを指定するフラグを設定できるようにしても良い。
そして、ステップS08において、CPU25は、ICカード処理装置1に検証結果成功である旨のデータを送信する。
【0042】
検証結果成功である旨のデータを受信したICカード処理装置1の端末装置11は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書とコマンドをICカード2に送信し、ICカード2は、上述の処理を繰り返して実行する。
そして、端末装置11は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次に処理させるコマンドをICカード2に送信する。
【0043】
この第1の実施の形態では、一度署名検証が成功している公開鍵証明書については、有効期限等も含む公開鍵証明書自体を保存しておき、次回以降は受信した公開鍵証明書と保存された情報との比較のみを行って署名検証処理は再度実行しない。従って、署名検証処理の効率化が図られると共に、安全性を損なうことが無い。
【0044】
[第2の実施の形態]
第2の実施の形態では、公開鍵証明書の属性などに応じて比較する内容を変更する点が第1の実施の形態と異なっている。従って、第1の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
【0045】
図4は、第2の実施の形態のICカード2の署名検証処理手順を示す概略のフロー図である。
【0046】
ICカード処理装置1とICカード2との間で通信が確立した後、ICカード処理装置1の端末装置11は、カードリーダライタ14によりICカード2に対して、署名検証を求めるコマンドと公開鍵証明書を送信する。なお、端末装置11は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をICカード2に送信する。ICカード2は、送信されるそれぞれの公開鍵証明書に対して図4に示す署名検証処理を実行する。
【0047】
ステップS11において、CPU25は、コマンドと公開鍵証明書を受信すると、ステップS12において、受信した公開鍵証明書と、不揮発性メモリ28に格納されている過去に認証した公開鍵証明書とを比較する。そして、ステップS13において、同じ公開鍵証明書が保存されているか否かを調べる。
【0048】
ここで、公開鍵証明書は、署名部と証明内容が記載されている情報部とを備えている。CPU25は、署名部及び情報部を全て比較して同じか否かを判断する。
なお、比較において有効期限のみが異なっている場合は、期限切れの場合として同じ公開鍵証明書であると判断することもできる。
【0049】
ステップS13でYesの場合、即ち、同じ公開鍵証明書が保存されている場合は、ステップS18において、検証成功の処理(後述)を実行して、次ステップの処理に移行する。
【0050】
ステップS13でNoの場合、即ち、同じ公開鍵証明書が保存されていない場合は、ステップS14において、受信した公開鍵の署名検証を行った履歴があるかどうかを、不揮発性メモリ28に格納されている過去の履歴情報から調べる。
ここで、過去の履歴情報としては、比較対象となる公開鍵証明書の一部の情報が該当する。比較対象となる一部の情報としては、例えば、公開鍵証明書の発行者、有効期限、ハッシュ値、署名などから任意に選択した少なくとも一つのデータが挙げられる。
【0051】
公開鍵証明書全体を保存する場合は、保存容量が大きいため不揮発性メモリ28に全て保存できないことが考えられる。そこで、公開鍵証明書の属性によって保存方法を選択しても良い。例えば、公開鍵証明書の発行者によって鍵証明書全体を保存するかどうかを判断しても良く、公開鍵証明書の階層によって鍵証明書全体を保存するかどうかを判断しても良い。
【0052】
ステップS14でYesの場合、即ち、過去の履歴情報に基づいて受信した公開鍵証明書と同じ公開鍵証明書を検証したことがあると判断した場合は、ステップS18において、検証成功の処理(後述)を実行して、次ステップの処理に移行する。
【0053】
ステップS14でNoの場合、即ち、受信した公開鍵証明書と同じ公開鍵証明書を検証したことがない場合は、ステップS15において、コプロセッサ29が、署名検証処理を実行する。このステップS15の署名検証処理は、例えば、RSA暗号の解読を行う時間のかかる処理である。そして、ステップS16において、CPU25は、署名検証に問題がないかどうかを調べる。
【0054】
ステップS16でNoの場合、即ち、署名検証が不成功の場合、ステップS17において、CPU25は、ICカード処理装置1に検証結果不成功である旨のデータを送信する。そして、当該ICカード処理装置1との通信を停止する。
【0055】
ステップS16でYesの場合、即ち、署名検証が成功の場合、ステップS18において、CPU25は、検証成功の処理を実行する。例えば、公開鍵証明書が保存されてなく、また履歴情報が保存されていない場合は、公開鍵を含む公開鍵証明書全体を保存する、あるいは公開鍵証明書の一部の情報を過去の履歴情報として保存する。
そして、ステップS19において、CPU25は、ICカード処理装置1に検証結果成功である旨のデータを送信する。
【0056】
検証結果成功である旨のデータを受信したICカード処理装置1の端末装置11は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書とコマンドをICカード2に送信し、ICカード2は、上述の処理を繰り返して実行する。
そして、端末装置11は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをICカード2に送信する。
【0057】
第2の実施の形態によれば、公開鍵証明書の属性に応じて比較照合する情報を、証明書全体とするかあるいは一部とするかを選択するため、安全性を確保しつつ検証の効率化を図ることができる。
【0058】
[第3の実施の形態]
第3の実施の形態ではハッシュ値を用いて署名検証を実行する点が第1の実施の形態と異なっている。従って、第1の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
【0059】
図5は、第3の実施の形態のICカード2の署名検証処理手順を示す概略のフロー図である。
【0060】
ICカード処理装置1とICカード2との間で通信が確立した後、ICカード処理装置1の端末装置11は、カードリーダライタ14によりICカード2に対して、署名検証を求めるコマンド、公開鍵証明書及びハッシュ情報(ハッシュ値)を送信する。ここで、端末装置11は、ハッシュ関数によって公開鍵証明書の内容からハッシュ値を求める。なお、端末装置11は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をICカード2に送信する。ICカード2は、送信されるそれぞれの公開鍵証明書に対して図5に示す署名検証処理を実行する。
【0061】
ステップS21において、CPU25は、コマンド、公開鍵証明書及びハッシュ情報(ハッシュ値)を受信すると、ステップS22において、受信したハッシュ値と、不揮発性メモリ28に格納されている過去に認証した公開鍵証明書に付随したハッシュ値とを比較する。そして、ステップS23において、同じハッシュ値が保存されているか否かを調べる。
【0062】
ステップS23でYesの場合、即ち、同じハッシュ値が保存されている場合は、ステップS27において、検証成功の処理(後述)を実行して、次ステップの処理に移行する。
【0063】
ステップS23でNoの場合、即ち、同じハッシュ値が保存されていない場合は、ステップS24において、コプロセッサ29が、署名検証処理を実行する。このステップS24の署名検証処理は、例えば、RSA暗号の解読を行う時間のかかる処理である。そして、ステップS25において、CPU25は、署名検証に問題がないかどうかを調べる。
【0064】
ステップS25でNoの場合、即ち、署名検証が不成功の場合、ステップS26において、CPU25は、ICカード処理装置1に検証結果不成功である旨のデータを送信する。そして、当該ICカード処理装置1との通信を停止する。
【0065】
ステップS25でYesの場合、即ち、署名検証が成功の場合、ステップS27において、CPU25は、検証成功の処理を実行する。具体的には、ハッシュ値が保存されていないときは、送信されたハッシュ値を不揮発性メモリ28に保存する。
そして、ステップS28において、CPU25は、ICカード処理装置1に検証結果成功である旨のデータを送信する。
【0066】
検証結果成功である旨のデータを受信したICカード処理装置1の端末装置11は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書、コマンド及びハッシュ情報をICカード2に送信し、ICカード2は、上述の処理を繰り返して実行する。
そして、端末装置11は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをICカード2に送信する。
【0067】
第3の実施の形態によれば、ハッシュ値のみの比較で良いため、メモリの削減とともにさらに処理の効率化を図ることができる。
【0068】
[第4の実施の形態]
第4の実施の形態では、第1乃至第3の実施の形態の処理手順に階層情報による処理を加えて署名検証を実行する。従って、第1乃至第3の実施の形態と同一の部位には同一の符号を付してその詳細の説明及び重複した説明は省略する。
【0069】
図6は、第4の実施の形態のICカード2の署名検証処理手順を示す概略のフロー図である。
【0070】
ICカード処理装置1とICカード2との間で通信が確立した後、ICカード処理装置1の端末装置11は、カードリーダライタ14によりICカード2に対して、署名検証を求めるコマンド、公開鍵証明書及び階層情報(階層番号)を送信する。ここで、端末装置11は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をICカード2に送信する。そして、公開鍵証明書を送信するときは、その公開鍵証明書の階層番号(上位層から下位層に1、2、・・と付番されている)を付加する。ICカード2は、送信されるそれぞれの公開鍵証明書に対して図6に示す署名検証処理を実行する。
【0071】
ステップS31において、CPU25は、コマンド、公開鍵証明書及び階層情報(階層番号)を受信すると、ステップS32において、受信した階層番号が不揮発性メモリ28に保存されている指定階層番号よりも大きいかどうかを調べる。
【0072】
ステップS32でNoの場合、即ち、受信した公開鍵証明書の階層が指定された階層よりも上位の場合は、ステップS33において、第1及び第3の実施の形態で説明した図4及び図5に示す処理手順を実行する。
【0073】
ステップS32でYesの場合、即ち、受信した公開鍵証明書の階層が指定された階層よりも下位である場合は、ステップS34において、コプロセッサ29が、署名検証処理を実行する。このステップS34の署名検証処理は、例えば、RSA暗号の解読を行う時間のかかる処理である。そして、ステップS35において、CPU25は、署名検証に問題がないかどうかを調べる。
【0074】
ステップS35でNoの場合、即ち、署名検証が不成功の場合、ステップS36において、CPU25は、ICカード処理装置1に検証結果不成功である旨のデータを送信する。そして、当該ICカード処理装置1との通信を停止する。
【0075】
ステップS35でYesの場合、即ち、署名検証が成功の場合、ステップS37において、CPU25は、検証成功の処理を実行する。この処理は第1及び第3の実施の形態で説明した処理と同じであるため詳細の説明は省略する。
そして、ステップS38において、CPU25は、ICカード処理装置1に検証結果成功である旨のデータを送信する。
【0076】
検証結果成功である旨のデータを受信したICカード処理装置1の端末装置11は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書、コマンド及び階層情報をICカード2に送信し、ICカード2は、上述の処理を繰り返して実行する。
そして、端末装置11は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをICカード2に送信する。
【0077】
第4の実施の形態によれば、例えば、所定値よりも上位の階層の公開鍵証明書が不揮発性メモリ28に保存するようになされている場合において、下位の下位層の公開鍵証明書については常に署名検証処理を実行するように構成することで、処理の効率化とともにさらなる安全性の確保を図ることができる。
【0078】
また、第4の実施の形態のバリエーションの形態として、最下位の階層の公開鍵証明書については、常に署名検証処理を実行するように構成することができる。例えば、端末装置11から、コマンド、公開鍵証明書に加え、最下位の階層であることを示す階層情報を受信する。そして、ICカード2は、最下位の階層であった場合は、常に署名検証処理を実行する。このように構成することで、第4の実施の形態と同様に、安全性を確保することができる。
【0079】
以上説明した各実施の形態によれば、安全性を損なうことなく署名検証処理に要する時間を効率化することができる。
【0080】
なお、上述の各実施の形態ではRSA暗号を用いたが、本願発明はこの例に限らず楕円暗号など数多く存在する公開鍵暗号スキームを利用して構成することができる。
【0081】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0082】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0083】
1…端末装置、2…携帯可能電子装置(ICカード)、11…制御部、12…ディスプレイ、13…キーボード、14…カードリーダライタ、21…本体、22…ICモジュール、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、29…コプロセッサ。

【特許請求の範囲】
【請求項1】
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、
過去に署名検証が成功した、第1の属性をもつ公開鍵証明書を記憶する証明書記憶部と、
過去に署名検証か成功した、第1の属性と異なる第2の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶部と、
公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、
前記証明書記憶部に記憶されている公開鍵証明書及び前記履歴情報記憶部に記憶されている公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部と
を備えたことを特徴とする携帯可能電子装置。
【請求項2】
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、
過去に署名検証が成功した公開鍵証明書を記憶する証明書記憶部と、
公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、
前記証明書記憶部に記憶されている公開鍵証明書と前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部と
を備えたことを特徴とする携帯可能電子装置。
【請求項3】
外部機器から公開鍵証明書と、この証明書のハッシュ値と、この証明書の署名検証要求とを受信する受信部と、
過去に署名検証が成功した公開鍵証明書のハッシュ値を記憶するハッシュ値記憶部と、
公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、
前記ハッシュ値記憶部に記憶されているハッシュ値と前記受信したハッシュ値とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部と
を備えたことを特徴とする携帯可能電子装置。
【請求項4】
請求項1乃至3の内いずれか1項に記載の携帯可能電子装置であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ(PKI)において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層の上下関係を示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置の制御部は、前記送信された階層情報が予め内部で記憶している指定階層情報と比較して下位の階層のときは前記検証処理部による検証処理を実行し、上位の階層のときは前記いずれか1の請求項に記載の制御動作を実行するように制御することを特徴とする携帯可能電子装置。
【請求項5】
請求項1乃至3の内いずれか1項に記載の携帯可能電子装置であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ(PKI)において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層が最下位であることを示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置の制御部は、前記最下位であることを示す階層情報が送信された公開鍵証明書については前記検証処理部による検証処理を実行し、前記最下位であることを示す階層情報が送信されない公開鍵証明書については前記いずれか1の請求項に記載の制御動作を実行するように制御することを特徴とする携帯可能電子装置。
【請求項6】
過去に署名検証が成功した、第1の属性をもつ公開鍵証明書を記憶する証明書記憶ステップと、
過去に署名検証か成功した、第1の属性と異なる第2の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶ステップと、
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信ステップと、
記憶されている前記第1の属性をもつ公開鍵証明書及び記憶されている前記第2の属性をもつ公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合する比較照合ステップと、
比較照合結果から前記受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップと
を備えたことを特徴とする携帯可能電子装置の制御方法。
【請求項7】
過去に署名検証が成功した公開鍵証明書を記憶する証明書記憶ステップと、
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信ステップと、
記憶されている公開鍵証明書と前記受信した公開鍵証明書とを比較照合する比較照合ステップと、
比較照合結果から前記受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップと
を備えたことを特徴とする携帯可能電子装置の制御方法。
【請求項8】
過去に署名検証が成功した公開鍵証明書のハッシュ値を記憶するハッシュ値記憶ステップと、
外部機器から公開鍵証明書と、この証明書のハッシュ値と、この証明書の署名検証要求とを受信する受信ステップと、
前記記憶されているハッシュ値と前記受信したハッシュ値とを比較照合する比較照合ステップと、
比較照合結果から前記受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップと
を備えたことを特徴とする携帯可能電子装置の制御方法。
【請求項9】
前記請求項6乃至8の内いずれか1項に記載の制御方法であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ(PKI)において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層の上下関係を示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置は、前記送信された階層情報が予め内部で記憶している指定階層情報と比較して下位の階層のときは公開鍵暗号スキームを利用して公開鍵証明書を検証し、上位の階層のときは前記いずれか1の請求項に記載の制御ステップを実行するように制御することを特徴とする携帯可能電子装置の制御方法。
【請求項10】
前記請求項6乃至8の内いずれか1項に記載の制御方法であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ(PKI)において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層が最下位であることを示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置は、前記最下位であることを示す階層情報が送信された公開鍵証明書については公開鍵暗号スキームを利用して公開鍵証明書を検証し、前記最下位であることを示す階層情報が送信されない公開鍵証明書については前記いずれか1の請求項に記載の制御ステップを実行するように制御することを特徴とする携帯可能電子装置の制御方法。
【請求項11】
請求項1乃至6の内いずれか1項に記載の各部を有するICモジュールと、
このICモジュールを収納したICカード本体と
を備えたことを特徴とするICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−171946(P2011−171946A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−32956(P2010−32956)
【出願日】平成22年2月17日(2010.2.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】