(57)【特許請求の範囲】
【請求項１】
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、
過去に署名検証が成功した、第１の属性をもつ公開鍵証明書を記憶する証明書記憶部と、
過去に署名検証が成功した、第１の属性と異なる第２の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶部と、
公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、
前記証明書記憶部に記憶されている公開鍵証明書及び前記履歴情報記憶部に記憶されている公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部と
を備えることを特徴とする携帯可能電子装置。
【請求項２】
請求項１に記載の携帯可能電子装置であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ（ＰＫＩ）において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層の上下関係を示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置の制御部は、前記送信された階層情報が予め内部で記憶している指定階層情報と比較して下位の階層のときは前記検証処理部による検証処理を実行し、上位の階層のときは前記いずれか１の請求項に記載の制御動作を実行するように制御することを特徴とする携帯可能電子装置。
【請求項３】
請求項１に記載の携帯可能電子装置であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ（ＰＫＩ）において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層が最下位であることを示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置の制御部は、前記最下位であることを示す階層情報が送信された公開鍵証明書については前記検証処理部による検証処理を実行し、前記最下位であることを示す階層情報が送信されない公開鍵証明書については前記いずれか１の請求項に記載の制御動作を実行するように制御することを特徴とする携帯可能電子装置。
【請求項４】
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、過去に署名検証が成功した、第１の属性をもつ公開鍵証明書を記憶する証明書記憶部と、過去に署名検証が成功した、第１の属性と異なる第２の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶部と、公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、前記証明書記憶部に記憶されている公開鍵証明書及び前記履歴情報記憶部に記憶されている公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部とを有するＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を備えることを特徴とするＩＣカード。
【請求項５】
過去に署名検証が成功した、第１の属性をもつ公開鍵証明書を記憶する証明書記憶ステップと、
過去に署名検証が成功した、第１の属性と異なる第２の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶ステップと、
外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信ステップと、
記憶されている前記第１の属性をもつ公開鍵証明書及び記憶されている前記第２の属性をもつ公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合する比較照合ステップと、
比較照合結果から前記受信した公開鍵証明書が過去に検証されていないと判断したときは、公開鍵暗号スキームを利用して公開鍵証明書を検証するように制御する制御ステップと
を備えることを特徴とする携帯可能電子装置の制御方法。
【請求項６】
前記請求項５に記載の制御方法であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ（ＰＫＩ）において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層の上下関係を示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置は、前記送信された階層情報が予め内部で記憶している指定階層情報と比較して下位の階層のときは公開鍵暗号スキームを利用して公開鍵証明書を検証し、上位の階層のときは前記いずれか１の請求項に記載の制御ステップを実行するように制御することを特徴とする携帯可能電子装置の制御方法。
【請求項７】
前記請求項５に記載の制御方法であって、
前記外部機器は、認証局が複数階層存在する公開鍵インフラ（ＰＫＩ）において、最上位の認証局の公開鍵証明書から順次下位の認証局の公開鍵証明書の検証要求と、検証対象の公開鍵証明書の階層が最下位であることを示す階層情報とを前記携帯可能電子装置に送信し、
前記携帯可能電子装置は、前記最下位であることを示す階層情報が送信された公開鍵証明書については公開鍵暗号スキームを利用して公開鍵証明書を検証し、前記最下位であることを示す階層情報が送信されない公開鍵証明書については前記いずれか１の請求項に記載の制御ステップを実行するように制御することを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、外部装置からのコマンドに応じて処理を行う携帯可能電子装置、携帯可能電子装置の制御方法及びＩＣカードに関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵとを有している。
【０００３】
ＩＣカードは、例えば、ＩＳＯ／ＩＥＣ７８１６−１ｐａｒｔ１，２に準拠したＩＣカードである。ＩＣカードは、一般的に、ＣＰＵ、ＲＯＭ、ＲＡＭ、不揮発性メモリ（ＥＥＰＲＯＭ）、及び通信部などを備えており、互いにデータバスなどを介して接続されている。
【０００４】
ＩＣカードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのＩＤカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ＩＣとしてＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどを持つため様々な機能が可能となったことに加え、偽造が難しいためにセキュリティの面でも大きく向上したことが要因となっている。
【０００５】
この為、保持している機密性の高い情報を第三者に不正に読み取れないように、データを暗号化して送受信を行うＩＣカードが提供されている（例えば、特許文献１参照）。  
この暗号通信には、ＰＫＩ（ＰＫＩ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）が用いられる。ＰＫＩは、認証局（ＣＡ）から発行される公開鍵証明書の運用を可能とする基盤技術である。通信主体は、認証局から発行された公開鍵証明書の署名を検証することにより、通信相手が認証局から信頼された相手であるか否かを確認することができる。
【０００６】
そこで、この暗号通信のために通信相手から受信した公開鍵証明書の署名検証処理を行うことで、通信相手の正当性を確認する（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−４５７６０号公報
【特許文献２】特開平１０−７９７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、このＰＫＩシステムでは、階層構造をもつ公開鍵証明書が存在することがある。例えば、ある公開鍵証明書に対して署名を行う認証局があり、さらにその認証局の公開鍵証明書に対して署名を行う上位の認証局があるといった、認証局が複数階層存在する。具体的には、パスポートについての電子システムにおいてＰＫＩが用いられているが、このパスポートシステムでは、特定の国の認証局の下に複数の行政機関による認証局が階層構造を成して複数存在する。このため、特定の国に入国する場合、あるいは出国する場合に、署名検証処理を複数回実行することになる。
【０００９】
社会的な動向に鑑みると、このような階層構造は、今後広い分野で増加する可能性が高いと考えられる。従って、将来は複数回の署名検証処理を行うケースが更に増加することになる。  
しかしながら、公開鍵証明書の署名検証のためには、非常に時間のかかる公開鍵暗号演算が必要である。従って、パーソナルコンピュータ（ＰＣ）と比べて処理能力の低いＩＣカードで署名検証処理を複数回実行することは、リーダ・ライタとの間での応答性の悪化によってＩＣカードの利便性を低下させることになる。
【００１０】
本発明は、安全性を損なうことなく署名検証処理に要する時間を効率化することのできる携帯可能電子装置、携帯可能電子装置の制御方法及びＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、外部機器から公開鍵証明書とこの証明書の署名検証要求とを受信する受信部と、過去に署名検証が成功した、第１の属性をもつ公開鍵証明書を記憶する証明書記憶部と、過去に署名検証が成功した、第１の属性と異なる第２の属性をもつ公開鍵証明書の一部の情報を記憶する履歴情報記憶部と、公開鍵暗号スキームを利用して公開鍵証明書を検証する検証処理部と、前記証明書記憶部に記憶されている公開鍵証明書及び前記履歴情報記憶部に記憶されている公開鍵証明書の一部の情報と、前記受信した公開鍵証明書とを比較照合して、前記受信した公開鍵証明書が過去に検証されていないと判断したときは、前記検証処理部によって検証するように制御する制御部とを備えた携帯可能電子装置である。
【発明の効果】
【００１４】
この発明によれば、安全性を損なうことなく署名検証処理に要する時間を効率化することのできる携帯可能電子装置、その制御方法及びＩＣカードを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係るＩＣカードと通信を行うＩＣカード処理装置の構成例について説明するためのブロック図。
【図２】ＩＣカードの構成例について説明するためのブロック図。
【図３】第１の実施の形態のＩＣカードの署名検証処理手順を示す概略のフロー図。
【図４】第２の実施の形態のＩＣカードの署名検証処理手順を示す概略のフロー図。
【図５】第３の実施の形態のＩＣカードの署名検証処理手順を示す概略のフロー図。
【図６】第４の実施の形態のＩＣカード２の署名検証処理手順を示す概略のフロー図。
【発明を実施するための形態】
【００１６】
[第１の実施の形態]  
以下、図面を参照しながら、本発明の第１の実施形態に係る携帯可能電子装置について詳細に説明する。
【００１７】
図１は、本実施形態に係るＩＣカード２と通信を行うＩＣカード処理装置１の構成例について説明するためのブロック図である。  
図１に示すようにＩＣカード処理装置１は、端末装置１１、ディスプレイ１２、キーボード１３、及びカードリーダライタ１４などを有している。
【００１８】
端末装置１１は、ＣＰＵ、種々のメモリ、及び各種インターフェースなどを備える。端末装置１１は、ＩＣカード処理装置１全体の動作を制御する。
【００１９】
ディスプレイ１２は、端末装置１１の制御により種々の情報を表示する。キーボード１３は、ＩＣカード処理装置１の操作者による操作を操作信号として受け取る。
【００２０】
カードリーダライタ１４は、ＩＣカード２と通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【００２１】
端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して種々のコマンドを入力する。ＩＣカード２は、例えば、カードリーダライタ１４からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【００２２】
また、端末装置１１は、ＩＣカード２に読み取りコマンドを送信することにより、ＩＣカード２からデータを読み出す。端末装置１１は、ＩＣカード２から受信したデータに基づいて種々の処理を行う。
【００２３】
図２は、図１に示すＩＣカード２の構成例について説明するためのブロック図である。  
図２に示すように、ＩＣカード２は、カード状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備えている。ＩＣモジュール２２は、１つ又は複数のＩＣチップ２３と、通信部２４とを備える。ＩＣチップ２３と通信部２４とは、互いに接続された状態でＩＣモジュール２２に形成されている。
【００２４】
ＩＣチップ２３は、データバス２０、通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、及びコプロセッサ２９などを備えている。通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、及びコプロセッサ２９は、データバス２０を介して互いに接続されている。
【００２５】
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ＩＣカード２が接触式通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触式のＩＣカードとして構成される場合、ＩＣカード２は、通信部としてのコンタクト部などを介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２６】
また、ＩＣカード２が非接触式の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードとして構成される場合、ＩＣカード２は、通信部としてのアンテナなどを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００２７】
通信部２４は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェースである。  
通信部２４は、例えば、ＩＣカード処理装置１のカードリーダライタ１４と接触して信号の送受信を行うコンタクト部を備える。この場合、ＩＣカード２は、接触式のＩＣカードとして機能する。  
また、通信部２４は、例えば、ＩＣカード処理装置１のカードリーダライタ１４と無線通信を行うアンテナを備える。この場合、ＩＣカード２は、非接触式のＩＣカードとして機能する。
【００２８】
ＣＰＵ２５は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２５は、ＲＯＭ２６あるいは不揮発性メモリ２８に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００２９】
ＲＯＭ２６は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２６は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２内に組み込まれる。即ち、ＲＯＭ２６に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００３０】
ＲＡＭ２７は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２７は、ＣＰＵ２５の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２７は、通信部２４を介してＩＣカード処理装置１から受信したデータを一時的に格納する。また、ＲＡＭ２７は、ＣＰＵ２５が実行するプログラムを一時的に格納する。
【００３１】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２８は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００３２】
たとえば、不揮発性メモリ２８では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。ＣＰＵ２５は、不揮発性メモリ２８、または、ＲＯＭに記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００３３】
コプロセッサ２９は、暗号鍵を用いて暗号化されたデータの復号、及び、平文のデータの暗号化を行う。即ち、コプロセッサ２９は、暗号処理部として機能する。例えば、ＣＰＵ２５は、暗号処理を行うデータをコプロセッサ２９にバス２０を介して入力する。この場合、ＣＰＵ２５は、データ入力部として機能する。コプロセッサ２９は、入力されるデータに対して暗号処理を施し、ＣＰＵ２５にバス２０を介して出力する。  
このように、ＩＣカード２では、ＣＰＵ２５が主処理装置としてデータ処理を実行し、コプロセッサ２９が補助処理装置として暗号処理を実行する。
【００３４】
続いて、公開鍵証明書の署名検証処理動作について説明する。  
図３は、第１の実施の形態のＩＣカード２の署名検証処理手順を示す概略のフロー図である。
【００３５】
ＩＣカード処理装置１とＩＣカード２との間で通信が確立した後、ＩＣカード処理装置１の端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して、署名検証を求めるコマンドと公開鍵証明書を送信する。なお、端末装置１１は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をＩＣカード２に送信する。ＩＣカード２は、送信されるそれぞれの公開鍵証明書に対して図３に示す署名検証処理を実行する。
【００３６】
ステップＳ０１において、ＣＰＵ２５は、コマンドと公開鍵証明書を受信すると、ステップＳ０２において、受信した公開鍵証明書と、不揮発性メモリ２８に格納されている過去に認証した公開鍵証明書とを比較する。そして、ステップＳ１３において、同じ公開鍵証明書が保存されているか否かを調べる。
【００３７】
ここで、公開鍵証明書は、署名部と証明内容が記載されている情報部とを備えている。ＣＰＵ２５は、署名部及び情報部を全て比較して同じか否かを判断しても良く、内容の一部を比較して同じか否かを判断しても良い。比較対象となる一部の情報としては、例えば、公開鍵証明書の発行者、有効期限、ハッシュ値、署名などから任意に選択した少なくとも一つのデータが挙げられる。公開鍵証明書の全てを比較するか、内容の一部を比較するかは、外部からの指示によっていずれの動作を行うかを指定するフラグを設定できるようにしても良い。  
なお、比較において有効期限のみが異なっている場合は、期限切れの場合として同じ公開鍵証明書であると判断することもできる。
【００３８】
ステップＳ０３でＹｅｓの場合、即ち、同じ公開鍵証明書が保存されている場合は、ステップＳ０７において、検証成功の処理（後述）を実行して、次ステップの処理に移行する。
【００３９】
ステップＳ０３でＮｏの場合、即ち、同じ公開鍵証明書が保存されていない場合は、ステップＳ０４において、コプロセッサ２９が、署名検証処理を実行する。このステップＳ０４の署名検証処理は、例えば、ＲＳＡ暗号の解読を行う時間のかかる処理である。そして、ステップＳ０５において、ＣＰＵ２５は、署名検証に問題がないかどうかを調べる。
【００４０】
ステップＳ０５でＮｏの場合、即ち、署名検証が不成功の場合、ステップＳ０６において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果不成功である旨のデータを送信する。そして、当該ＩＣカード処理装置１との通信を停止する。
【００４１】
ステップＳ０５でＹｅｓの場合、即ち、署名検証が成功の場合、ステップＳ０７において、ＣＰＵ２５は、検証成功の処理を実行する。例えば、公開鍵証明書が保存されていない場合は、公開鍵を含む公開鍵証明書全体を保存する。なお、公開鍵を含む公開鍵証明書の一部の情報を保存しても良い。公開鍵証明書の全てを保存するか、内容の一部を保存するかは、外部からの指示によっていずれの動作を行うかを指定するフラグを設定できるようにしても良い。  
そして、ステップＳ０８において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果成功である旨のデータを送信する。
【００４２】
検証結果成功である旨のデータを受信したＩＣカード処理装置１の端末装置１１は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書とコマンドをＩＣカード２に送信し、ＩＣカード２は、上述の処理を繰り返して実行する。  
そして、端末装置１１は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次に処理させるコマンドをＩＣカード２に送信する。
【００４３】
この第１の実施の形態では、一度署名検証が成功している公開鍵証明書については、有効期限等も含む公開鍵証明書自体を保存しておき、次回以降は受信した公開鍵証明書と保存された情報との比較のみを行って署名検証処理は再度実行しない。従って、署名検証処理の効率化が図られると共に、安全性を損なうことが無い。
【００４４】
[第２の実施の形態]  
第２の実施の形態では、公開鍵証明書の属性などに応じて比較する内容を変更する点が第１の実施の形態と異なっている。従って、第１の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
【００４５】
図４は、第２の実施の形態のＩＣカード２の署名検証処理手順を示す概略のフロー図である。
【００４６】
ＩＣカード処理装置１とＩＣカード２との間で通信が確立した後、ＩＣカード処理装置１の端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して、署名検証を求めるコマンドと公開鍵証明書を送信する。なお、端末装置１１は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をＩＣカード２に送信する。ＩＣカード２は、送信されるそれぞれの公開鍵証明書に対して図４に示す署名検証処理を実行する。
【００４７】
ステップＳ１１において、ＣＰＵ２５は、コマンドと公開鍵証明書を受信すると、ステップＳ１２において、受信した公開鍵証明書と、不揮発性メモリ２８に格納されている過去に認証した公開鍵証明書とを比較する。そして、ステップＳ１３において、同じ公開鍵証明書が保存されているか否かを調べる。
【００４８】
ここで、公開鍵証明書は、署名部と証明内容が記載されている情報部とを備えている。ＣＰＵ２５は、署名部及び情報部を全て比較して同じか否かを判断する。  
なお、比較において有効期限のみが異なっている場合は、期限切れの場合として同じ公開鍵証明書であると判断することもできる。
【００４９】
ステップＳ１３でＹｅｓの場合、即ち、同じ公開鍵証明書が保存されている場合は、ステップＳ１８において、検証成功の処理（後述）を実行して、次ステップの処理に移行する。
【００５０】
ステップＳ１３でＮｏの場合、即ち、同じ公開鍵証明書が保存されていない場合は、ステップＳ１４において、受信した公開鍵の署名検証を行った履歴があるかどうかを、不揮発性メモリ２８に格納されている過去の履歴情報から調べる。  
ここで、過去の履歴情報としては、比較対象となる公開鍵証明書の一部の情報が該当する。比較対象となる一部の情報としては、例えば、公開鍵証明書の発行者、有効期限、ハッシュ値、署名などから任意に選択した少なくとも一つのデータが挙げられる。
【００５１】
公開鍵証明書全体を保存する場合は、保存容量が大きいため不揮発性メモリ２８に全て保存できないことが考えられる。そこで、公開鍵証明書の属性によって保存方法を選択しても良い。例えば、公開鍵証明書の発行者によって鍵証明書全体を保存するかどうかを判断しても良く、公開鍵証明書の階層によって鍵証明書全体を保存するかどうかを判断しても良い。
【００５２】
ステップＳ１４でＹｅｓの場合、即ち、過去の履歴情報に基づいて受信した公開鍵証明書と同じ公開鍵証明書を検証したことがあると判断した場合は、ステップＳ１８において、検証成功の処理（後述）を実行して、次ステップの処理に移行する。
【００５３】
ステップＳ１４でＮｏの場合、即ち、受信した公開鍵証明書と同じ公開鍵証明書を検証したことがない場合は、ステップＳ１５において、コプロセッサ２９が、署名検証処理を実行する。このステップＳ１５の署名検証処理は、例えば、ＲＳＡ暗号の解読を行う時間のかかる処理である。そして、ステップＳ１６において、ＣＰＵ２５は、署名検証に問題がないかどうかを調べる。
【００５４】
ステップＳ１６でＮｏの場合、即ち、署名検証が不成功の場合、ステップＳ１７において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果不成功である旨のデータを送信する。そして、当該ＩＣカード処理装置１との通信を停止する。
【００５５】
ステップＳ１６でＹｅｓの場合、即ち、署名検証が成功の場合、ステップＳ１８において、ＣＰＵ２５は、検証成功の処理を実行する。例えば、公開鍵証明書が保存されてなく、また履歴情報が保存されていない場合は、公開鍵を含む公開鍵証明書全体を保存する、あるいは公開鍵証明書の一部の情報を過去の履歴情報として保存する。  
そして、ステップＳ１９において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果成功である旨のデータを送信する。
【００５６】
検証結果成功である旨のデータを受信したＩＣカード処理装置１の端末装置１１は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書とコマンドをＩＣカード２に送信し、ＩＣカード２は、上述の処理を繰り返して実行する。  
そして、端末装置１１は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをＩＣカード２に送信する。
【００５７】
第２の実施の形態によれば、公開鍵証明書の属性に応じて比較照合する情報を、証明書全体とするかあるいは一部とするかを選択するため、安全性を確保しつつ検証の効率化を図ることができる。
【００５８】
[第３の実施の形態]  
第３の実施の形態ではハッシュ値を用いて署名検証を実行する点が第１の実施の形態と異なっている。従って、第１の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
【００５９】
図５は、第３の実施の形態のＩＣカード２の署名検証処理手順を示す概略のフロー図である。
【００６０】
ＩＣカード処理装置１とＩＣカード２との間で通信が確立した後、ＩＣカード処理装置１の端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して、署名検証を求めるコマンド、公開鍵証明書及びハッシュ情報（ハッシュ値）を送信する。ここで、端末装置１１は、ハッシュ関数によって公開鍵証明書の内容からハッシュ値を求める。なお、端末装置１１は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をＩＣカード２に送信する。ＩＣカード２は、送信されるそれぞれの公開鍵証明書に対して図５に示す署名検証処理を実行する。
【００６１】
ステップＳ２１において、ＣＰＵ２５は、コマンド、公開鍵証明書及びハッシュ情報（ハッシュ値）を受信すると、ステップＳ２２において、受信したハッシュ値と、不揮発性メモリ２８に格納されている過去に認証した公開鍵証明書に付随したハッシュ値とを比較する。そして、ステップＳ２３において、同じハッシュ値が保存されているか否かを調べる。
【００６２】
ステップＳ２３でＹｅｓの場合、即ち、同じハッシュ値が保存されている場合は、ステップＳ２７において、検証成功の処理（後述）を実行して、次ステップの処理に移行する。
【００６３】
ステップＳ２３でＮｏの場合、即ち、同じハッシュ値が保存されていない場合は、ステップＳ２４において、コプロセッサ２９が、署名検証処理を実行する。このステップＳ２４の署名検証処理は、例えば、ＲＳＡ暗号の解読を行う時間のかかる処理である。そして、ステップＳ２５において、ＣＰＵ２５は、署名検証に問題がないかどうかを調べる。
【００６４】
ステップＳ２５でＮｏの場合、即ち、署名検証が不成功の場合、ステップＳ２６において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果不成功である旨のデータを送信する。そして、当該ＩＣカード処理装置１との通信を停止する。
【００６５】
ステップＳ２５でＹｅｓの場合、即ち、署名検証が成功の場合、ステップＳ２７において、ＣＰＵ２５は、検証成功の処理を実行する。具体的には、ハッシュ値が保存されていないときは、送信されたハッシュ値を不揮発性メモリ２８に保存する。  
そして、ステップＳ２８において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果成功である旨のデータを送信する。
【００６６】
検証結果成功である旨のデータを受信したＩＣカード処理装置１の端末装置１１は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書、コマンド及びハッシュ情報をＩＣカード２に送信し、ＩＣカード２は、上述の処理を繰り返して実行する。  
そして、端末装置１１は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをＩＣカード２に送信する。
【００６７】
第３の実施の形態によれば、ハッシュ値のみの比較で良いため、メモリの削減とともにさらに処理の効率化を図ることができる。
【００６８】
[第４の実施の形態]  
第４の実施の形態では、第１乃至第３の実施の形態の処理手順に階層情報による処理を加えて署名検証を実行する。従って、第１乃至第３の実施の形態と同一の部位には同一の符号を付してその詳細の説明及び重複した説明は省略する。
【００６９】
図６は、第４の実施の形態のＩＣカード２の署名検証処理手順を示す概略のフロー図である。
【００７０】
ＩＣカード処理装置１とＩＣカード２との間で通信が確立した後、ＩＣカード処理装置１の端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して、署名検証を求めるコマンド、公開鍵証明書及び階層情報（階層番号）を送信する。ここで、端末装置１１は、複数の階層の公開鍵証明書を送信する場合は、最上位層から下層の順序で公開鍵証明書をＩＣカード２に送信する。そして、公開鍵証明書を送信するときは、その公開鍵証明書の階層番号（上位層から下位層に１、２、・・と付番されている）を付加する。ＩＣカード２は、送信されるそれぞれの公開鍵証明書に対して図６に示す署名検証処理を実行する。
【００７１】
ステップＳ３１において、ＣＰＵ２５は、コマンド、公開鍵証明書及び階層情報（階層番号）を受信すると、ステップＳ３２において、受信した階層番号が不揮発性メモリ２８に保存されている指定階層番号よりも大きいかどうかを調べる。
【００７２】
ステップＳ３２でＮｏの場合、即ち、受信した公開鍵証明書の階層が指定された階層よりも上位の場合は、ステップＳ３３において、第１及び第３の実施の形態で説明した図４及び図５に示す処理手順を実行する。
【００７３】
ステップＳ３２でＹｅｓの場合、即ち、受信した公開鍵証明書の階層が指定された階層よりも下位である場合は、ステップＳ３４において、コプロセッサ２９が、署名検証処理を実行する。このステップＳ３４の署名検証処理は、例えば、ＲＳＡ暗号の解読を行う時間のかかる処理である。そして、ステップＳ３５において、ＣＰＵ２５は、署名検証に問題がないかどうかを調べる。
【００７４】
ステップＳ３５でＮｏの場合、即ち、署名検証が不成功の場合、ステップＳ３６において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果不成功である旨のデータを送信する。そして、当該ＩＣカード処理装置１との通信を停止する。
【００７５】
ステップＳ３５でＹｅｓの場合、即ち、署名検証が成功の場合、ステップＳ３７において、ＣＰＵ２５は、検証成功の処理を実行する。この処理は第１及び第３の実施の形態で説明した処理と同じであるため詳細の説明は省略する。  
そして、ステップＳ３８において、ＣＰＵ２５は、ＩＣカード処理装置１に検証結果成功である旨のデータを送信する。
【００７６】
検証結果成功である旨のデータを受信したＩＣカード処理装置１の端末装置１１は、さらに下層の公開鍵証明書が有る場合は、その公開鍵証明書、コマンド及び階層情報をＩＣカード２に送信し、ＩＣカード２は、上述の処理を繰り返して実行する。  
そして、端末装置１１は、全ての階層の公開鍵証明書について成功を受信したときは、認証が行われたと判断して次のコマンドをＩＣカード２に送信する。
【００７７】
第４の実施の形態によれば、例えば、所定値よりも上位の階層の公開鍵証明書が不揮発性メモリ２８に保存するようになされている場合において、下位の下位層の公開鍵証明書については常に署名検証処理を実行するように構成することで、処理の効率化とともにさらなる安全性の確保を図ることができる。
【００７８】
また、第４の実施の形態のバリエーションの形態として、最下位の階層の公開鍵証明書については、常に署名検証処理を実行するように構成することができる。例えば、端末装置１１から、コマンド、公開鍵証明書に加え、最下位の階層であることを示す階層情報を受信する。そして、ＩＣカード２は、最下位の階層であった場合は、常に署名検証処理を実行する。このように構成することで、第４の実施の形態と同様に、安全性を確保することができる。
【００７９】
以上説明した各実施の形態によれば、安全性を損なうことなく署名検証処理に要する時間を効率化することができる。
【００８０】
なお、上述の各実施の形態ではＲＳＡ暗号を用いたが、本願発明はこの例に限らず楕円暗号など数多く存在する公開鍵暗号スキームを利用して構成することができる。
【００８１】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００８２】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。  
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００８３】
１…端末装置、２…携帯可能電子装置（ＩＣカード）、１１…制御部、１２…ディスプレイ、１３…キーボード、１４…カードリーダライタ、２１…本体、２２…ＩＣモジュール、２４…通信部、２５…ＣＰＵ、２６…ＲＯＭ、２７…ＲＡＭ、２８…不揮発性メモリ、２９…コプロセッサ。
【図１】
0005459845.tif 000002
【図２】
0005459845.tif 000003
【図３】
0005459845.tif 000004
【図４】
0005459845.tif 000005
【図５】
0005459845.tif 000006
【図６】
0005459845.tif 000007