(57)【特許請求の範囲】
【請求項１】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置であって、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、
前記本人認証情報が入力された際に、乱数を要求するコマンドをＩＣカード向けに送出する乱数要求手段とを更に備えており、
前記連結部は、前記コマンドに応じて乱数データを含むレスポンスをＩＣカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行うものであり、
前記アプリケーションソフトウェア部は、
前記暗号化部による暗号化データの入力に応じて前記ＩＣカードから、当該ＩＣカード内で前記乱数データとは異なる第２乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段と、
前記復号手段による復号の結果、得られた第２乱数データに基づいて前記一時共有鍵を、前記ＩＣカード内での更新結果と同一の更新結果を得られるように前記ＩＣカード内の算出方式と同一の算出方式により更新する鍵更新手段と、
を更に備えたことを特徴とするＩＣカード利用装置。
【請求項２】
請求項１に記載のＩＣカード利用装置において、
前記ＩＣカードと共有され且つＩＣカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段と、
前記鍵配送手段による配送に応じて前記ＩＣカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第１復号手段と、
前記ＩＣカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段と、
前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化手段と、
前記暗号化手段による暗号化データの入力に応じて前記ＩＣカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第２復号手段と、
前記第２復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段と、
前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段と、
前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ＩＣカードと共有するように、更新するカウンタ値更新手段と、
継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第２復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段と
を備えたことを特徴とするＩＣカード利用装置。
【請求項３】
請求項２に記載のＩＣカード利用装置において、
前記連結手段は、少なくともメッセージ認証子ＭＡＣ又はチェックサムを含めて前記連結を行うことを特徴とするＩＣカード利用装置。
【請求項４】
請求項１乃至請求項３のいずれか１項に記載のＩＣカード利用装置において、
検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段を備えており、
前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、
前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査することを特徴とするＩＣカード利用装置。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載のＩＣカード利用装置において、
前記アプリケーションソフトウェア部は、
前記ＩＣカードの機能を利用するための上位アプリケーション部と、
前記上位アプリケーション部が前記ＩＣカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、
前記ミドルウェア部は、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいることを特徴とするＩＣカード利用装置。
【請求項６】
請求項５に記載のＩＣカード利用装置において、
上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段と、
ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段と
を備え、
前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、
前記ミドルウェア部は、予め自己のディジタル署名が付与されており、
前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、
前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査することを特徴とするＩＣカード利用装置。
【請求項７】
請求項１に記載のＩＣカード利用装置に使用されるＩＣカードにおいて、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と、
前記ＩＣカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段を設け、
前記カード内分解手段は、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解し、
前記カード内認証手段は、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証し、
前記乱数生成手段は、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第２乱数データを生成する機能を有し、
前記乱数生成手段により生成された第２乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ＩＣカード利用装置に出力するカード内暗号化手段と、
前記乱数生成手段により生成された第２乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ＩＣカード利用装置内での更新結果と同一の更新結果を得られるように前記ＩＣカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段と、
前記更新により最終的に作成した一時共有鍵を格納する手段と、
前記格納した一時共有鍵を前記ＩＣカード利用装置との暗号通信に使用する手段と、
を備えたことを特徴とするＩＣカード。
【請求項８】
請求項２に記載のＩＣカード利用装置に使用されるＩＣカードにおいて、
カウンタ値が記憶されるカード内記憶手段と、
前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ＩＣカード利用装置に出力する第１暗号化手段と、
前記第１暗号化手段による暗号化カウンタ値データの出力に応じて、前記ＩＣカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段と、
前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段と、
前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段と、
前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ＩＣカード利用装置に出力する第２暗号化手段と
を備えたことを特徴とするＩＣカード。
【請求項９】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ＩＣカード利用装置内のコンピュータに、
前記アプリケーションソフトウェア部としては、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段、
の機能を含んで実現させ、
前記鍵配送手段としては、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部、
の機能を含んで実現させ、
前記連結部は、前記コマンドに応じて乱数データを含むレスポンスをＩＣカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行う機能を含んでおり、
前記アプリケーションソフトウェア部としては、
前記暗号化部による暗号化データの入力に応じて前記ＩＣカードから、当該ＩＣカード内で前記乱数データとは異なる第２乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段、
前記復号手段による復号の結果、得られた第２乱数データに基づいて前記一時共有鍵を、前記ＩＣカード内での更新結果と同一の更新結果を得られるように前記ＩＣカード内の算出方式と同一の算出方式により更新する鍵更新手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項９に記載のコンピュータ読み取り可能な記憶媒体において、
前記ＩＣカード利用装置内のコンピュータに、
前記ＩＣカードと共有され且つＩＣカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段、
前記鍵配送手段による配送に応じて前記ＩＣカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第１復号手段、
前記ＩＣカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段、
前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化手段、
前記暗号化手段による暗号化データの入力に応じて前記ＩＣカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第２復号手段、
前記第２復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段、
前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段、
前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ＩＣカードと共有するように、更新するカウンタ値更新手段、
継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第２復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１１】
請求項１０に記載のコンピュータ読み取り可能な記憶媒体において、
前記連結手段は、少なくともメッセージ認証子ＭＡＣ又はチェックサムを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体。
【請求項１２】
請求項９乃至請求項１１のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体において、
前記ＩＣカード利用装置内のコンピュータに、
検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段、を実現させるためのプログラムであり、
前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、
前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する機能を含む手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１３】
請求項９乃至請求項１２のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体において、
前記アプリケーションソフトウェア部は、
前記ＩＣカードの機能を利用するための上位アプリケーション部と、
前記上位アプリケーション部が前記ＩＣカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、
前記ミドルウェア部は、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるコンピュータ読み取り可能な記憶媒体。
【請求項１４】
請求項１３に記載のコンピュータ読み取り可能な記憶媒体において、
前記ＩＣカード利用装置内のコンピュータに、
上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段、
ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段、
を実現させるためのプログラムであり、
前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、
前記ミドルウェア部は、予め自己のディジタル署名が付与されており、
前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、
前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１５】
請求項１に記載のＩＣカード利用装置のＩＣカードに使用されるコンピュータ読み取り可能な記憶媒体において、
前記ＩＣカード内のコンピュータに、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、
前記ＩＣカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段、を実現させるためのプログラムを記憶し、
前記カード内分解手段は、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解する機能を含み、
前記カード内認証手段は、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証する機能を含み、
前記乱数生成手段は、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第２乱数データを生成する機能を含み、
前記ＩＣカード内のコンピュータに、
前記乱数生成手段により生成された第２乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ＩＣカード利用装置に出力するカード内暗号化手段、
前記乱数生成手段により生成された第２乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ＩＣカード利用装置内での更新結果と同一の更新結果を得られるように前記ＩＣカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段、
前記更新により最終的に作成した一時共有鍵を格納する手段、
前記格納した一時共有鍵を前記ＩＣカード利用装置との暗号通信に使用する手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１６】
請求項１０に記載のコンピュータ読み取り可能な記憶媒体ＩＣカードにおいて、
前記ＩＣカード内のコンピュータに、
カウンタ値が記憶されるカード内記憶手段、
前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ＩＣカード利用装置に出力する第１暗号化手段、
前記第１暗号化手段による暗号化カウンタ値データの出力に応じて、前記ＩＣカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段、
前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段、
前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段、
前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段、
前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ＩＣカード利用装置に出力する第２暗号化手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１７】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、
を備えたＩＣカード利用装置に使用されるＩＣカードにおいて、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とするＩＣカード。
【請求項１８】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置であって、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、
を備えており、
前記ＩＣカードは、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とするＩＣカード利用装置。
【請求項１９】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、
を備えたＩＣカード利用装置に使用されるＩＣカードに使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ＩＣカード内のコンピュータに、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項２０】
着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ＩＣカード利用装置内のコンピュータに、
前記アプリケーションソフトウェア部としては、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段、
の機能を含んで実現させるプログラムであり、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、
前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部、
の機能を含んで実現させるためのプログラムであり、
前記ＩＣカードは、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とする、前記各プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードの機能を利用しながら処理を実行するＩＣカード利用装置、ＩＣカード及び記憶媒体に係わり、特に、機能を利用する際の暗号通信に使用されるセキュリティ機能を有するＩＣカード利用装置、ＩＣカード及び記憶媒体に関する。
【０００２】
【従来の技術】
近年、金融、流通、通信及び医療等といった様々な分野に関し、データや手続きを記憶可能なＩＣチップを搭載し、固有の機能を実行するＩＣカードの開発が進められている。また、着脱自在に保持されたＩＣカードに対し、ＩＣカード内の機能を利用するように処理が既述された、金融、流通等のアプリケーションソフトウェア部を有するＩＣカード利用装置が知られている。
【０００３】
係るＩＣカード利用装置とＩＣカード間の通信は、ＩＳＯ７８１６−４のセキュアメッセージングにおいて、暗号化とチェックコード付与により、盗聴防止、改ざん検出並びに不正データ送信防止が図られている。
【０００４】
また、この種のＩＣカード利用装置は、今後、パソコンなどの汎用コンピュータにより実現される可能性が高くなっている。
【０００５】
【発明が解決しようとする課題】
しかしながら、以上のようなＩＣカード利用装置及びＩＣカードでは、暗号化とチェックコードを用いても、過去に正規に使用された送信指令を再入力することにより、再送信を実行させるリプレイ攻撃が可能となっている問題がある。
【０００６】
また、パソコン等の汎用コンピュータは、セキュリティの脅威として、データの盗聴又は改ざん等の物理的な脅威の他、ソフトウェアのリバースエンジニアリングやカードドライバの置換え（＝不正プログラム）等によるソフトウェア的な脅威が大きな位置を占めている。この種の不正プログラムは、例えば不正データを送信するものや、暗号処理の際に鍵を盗聴するもの等が考えられる。
【０００７】
このため、ＩＣカード利用装置では、鍵を慎重に管理する必要がある。しかしながら、共通鍵をＩＣカードとＩＣカード利用装置との双方で保管する方式は、不正プログラムを用いなくとも、ＩＣカード利用装置（＝パソコン）を盗んで解析することにより、鍵漏洩の可能性がある。
【０００８】
本発明は上記実情を考慮してなされたもので、ＩＣカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上し得るＩＣカード利用装置、ＩＣカード及び記憶媒体を提供することを目的とする。
【０００９】
また、本発明の他の目的は、リプレイ攻撃を阻止でき、信頼性を向上し得るＩＣカード利用装置、ＩＣカード及び記憶媒体を提供することにある。
【００１０】
【課題を解決するための手段】
請求項１に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置であって、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段とを備えたＩＣカード利用装置である。
【００１１】
また、請求項１に対応する発明は、前記鍵配送手段としては、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、前記本人認証情報が入力された際に、乱数を要求するコマンドをＩＣカード向けに送出する乱数要求手段とを備えたＩＣカード利用装置である。
【００１２】
さらに、請求項１に対応する発明は、前記鍵配送手段としては、前記本人認証情報が入力された際に、乱数を要求するコマンドをＩＣカード向けに送出する乱数要求手段を更に備えており、前記連結部としては、前記コマンドに応じて乱数データを含むレスポンスをＩＣカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行うＩＣカード利用装置である。
【００１３】
また、請求項１に対応する発明は、前記暗号化部による暗号化データの入力に応じて前記ＩＣカードから、当該ＩＣカード内で前記乱数データとは異なる第２乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段と、前記復号手段による復号の結果、得られた第２乱数データに基づいて前記一時共有鍵を、前記ＩＣカード内での更新結果と同一の更新結果を得られるように前記ＩＣカード内の算出方式と同一の算出方式により更新する鍵更新手段とを備えたＩＣカード利用装置である。
【００１４】
さらに、請求項２に対応する発明は、請求項１に対応するＩＣカード利用装置において、前記ＩＣカードと共有され且つＩＣカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段と、前記鍵配送手段による配送に応じて前記ＩＣカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第１復号手段と、前記ＩＣカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段と、前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化手段と、前記暗号化手段による暗号化データの入力に応じて前記ＩＣカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第２復号手段と、前記第２復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段と、前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段と、前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ＩＣカードと共有するように、更新するカウンタ値更新手段と、継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第２復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段とを備えたＩＣカード利用装置である。
【００１５】
また、請求項３に対応する発明は、請求項２に対応するＩＣカード利用装置において、前記連結手段としては、少なくともメッセージ認証子ＭＡＣ又はチェックサムを含めて前記連結を行うＩＣカード利用装置である。
【００１６】
さらに、請求項４に対応する発明は、請求項１乃至請求項３のいずれか１項に対応するＩＣカード利用装置において、検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段を備えており、前記アプリケーションソフトウェア部としては、予め自己のディジタル署名が付与されており、前記検査手段としては、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査するＩＣカード利用装置である。
【００１８】
さらに、請求項５に対応する発明は、請求項１乃至請求項４のいずれか１項に対応するＩＣカード利用装置において、前記アプリケーションソフトウェア部としては、前記ＩＣカードの機能を利用するための上位アプリケーション部と、前記上位アプリケーション部が前記ＩＣカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、前記ミドルウェア部としては、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるＩＣカード利用装置である。
【００１９】
また、請求項６に対応する発明は、請求項５に対応するＩＣカード利用装置において、上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段と、ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段とを備え、前記上位アプリケーション部としては、予め自己のディジタル署名が付与されており、前記ミドルウェア部としては、予め自己のディジタル署名が付与されており、前記上位アプリケーション検査手段としては、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、前記ミドルウェア検査手段としては、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査するＩＣカード利用装置である。
【００２１】
また、請求項７に対応する発明は、請求項１に対応するＩＣカード利用装置に使用されるＩＣカードにおいて、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と、前記ＩＣカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段を設け、前記カード内分解手段としては、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解し、前記カード内認証手段としては、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証し、前記乱数生成手段としては、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第２乱数データを生成する機能を有し、前記乱数生成手段により生成された第２乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ＩＣカード利用装置に出力するカード内暗号化手段と、前記乱数生成手段により生成された第２乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ＩＣカード利用装置内での更新結果と同一の更新結果を得られるように前記ＩＣカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段と、前記更新により最終的に作成した一時共有鍵を格納する手段と、前記格納した一時共有鍵を前記ＩＣカード利用装置との暗号通信に使用する手段とを備えたＩＣカードである。
【００２３】
また、請求項８に対応する発明は、請求項２に対応するＩＣカード利用装置に使用されるＩＣカードにおいて、カウンタ値が記憶されるカード内記憶手段と、前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ＩＣカード利用装置に出力する第１暗号化手段と、前記第１暗号化手段による暗号化カウンタ値データの出力に応じて、前記ＩＣカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段と、前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段と、前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段と、前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段と、前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ＩＣカード利用装置に出力する第２暗号化手段とを備えたＩＣカードである。
【００２４】
さらに、請求項９に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、前記ＩＣカード利用装置内のコンピュータに、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段、の機能を含んで実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００２５】
また、請求項９に対応する発明は、前記ＩＣカード利用装置内のコンピュータに、前記鍵配送手段としては、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部、の機能を含んで実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００２６】
さらに、請求項９に対応する発明は、前記連結部としては、前記ＩＣカードから受ける乱数データを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体である。
【００２７】
また、請求項９に対応する発明は、前記ＩＣカード利用装置内のコンピュータに、前記暗号化部による暗号化データの入力に応じて前記ＩＣカードから、当該ＩＣカード内で前記乱数データとは異なる第２乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段、前記復号手段による復号の結果、得られた第２乱数データに基づいて前記一時共有鍵を、前記ＩＣカード内での更新結果と同一の更新結果を得られるように前記ＩＣカード内の算出方式と同一の算出方式により更新する鍵更新手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００２８】
さらに、請求項１０に対応する発明は、請求項９に対応するコンピュータ読み取り可能な記憶媒体において、前記ＩＣカード利用装置内のコンピュータに、前記ＩＣカードと共有され且つＩＣカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段、前記鍵配送手段による配送に応じて前記ＩＣカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第１復号手段、前記ＩＣカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段、前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化手段、前記暗号化手段による暗号化データの入力に応じて前記ＩＣカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第２復号手段、前記第２復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段、前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段、前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ＩＣカードと共有するように、更新するカウンタ値更新手段、継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第２復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００２９】
また、請求項１１に対応する発明は、請求項１０に対応するコンピュータ読み取り可能な記憶媒体において、前記連結手段としては、少なくともメッセージ認証子ＭＡＣ又はチェックサムを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体である。
【００３０】
さらに、請求項１２に対応する発明は、請求項９乃至請求項１１のいずれか１項に対応するコンピュータ読み取り可能な記憶媒体において、前記ＩＣカード利用装置内のコンピュータに、検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段、を実現させるためのプログラムであり、前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する機能を含む手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３２】
さらに、請求項１３に対応する発明は、請求項９乃至請求項１２のいずれか１項に対応するコンピュータ読み取り可能な記憶媒体において、前記アプリケーションソフトウェア部としては、前記ＩＣカードの機能を利用するための上位アプリケーション部と、前記上位アプリケーション部が前記ＩＣカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、前記ミドルウェア部としては、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるコンピュータ読み取り可能な記憶媒体である。
【００３３】
また、請求項１４に対応する発明は、請求項１３に対応するコンピュータ読み取り可能な記憶媒体において、前記ＩＣカード利用装置内のコンピュータに、上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段、ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段、を実現させるためのプログラムであり、前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、前記ミドルウェア部は、予め自己のディジタル署名が付与されており、前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３５】
また、請求項１５に対応する発明は、請求項１に対応するＩＣカード利用装置のＩＣカードに使用されるコンピュータ読み取り可能な記憶媒体において、前記ＩＣカード内のコンピュータに、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、前記ＩＣカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段、を実現させるためのプログラムを記憶し、前記カード内分解手段としては、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解する機能を含み、前記カード内認証手段としては、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証する機能を含み、前記乱数生成手段としては、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第２乱数データを生成する機能を含み、前記ＩＣカード内のコンピュータに、前記乱数生成手段により生成された第２乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ＩＣカード利用装置に出力するカード内暗号化手段、前記乱数生成手段により生成された第２乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ＩＣカード利用装置内での更新結果と同一の更新結果を得られるように前記ＩＣカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段、前記更新により最終的に作成した一時共有鍵を格納する手段、前記格納した一時共有鍵を前記ＩＣカード利用装置との暗号通信に使用する手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３７】
また、請求項１６に対応する発明は、請求項１０に対応するコンピュータ読み取り可能な記憶媒体ＩＣカードにおいて、前記ＩＣカード内のコンピュータに、カウンタ値が記憶されるカード内記憶手段、前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ＩＣカード利用装置に出力する第１暗号化手段、前記第１暗号化手段による暗号化カウンタ値データの出力に応じて、前記ＩＣカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段、前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段、前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段、前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段、前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ＩＣカード利用装置に出力する第２暗号化手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
請求項１７に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部とを備えたＩＣカード利用装置に使用されるＩＣカードにおいて、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたＩＣカードである。
請求項１８に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置であって、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部とを備えており、前記ＩＣカードは、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたＩＣカード利用装置である。
請求項１９に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部と、を備えたＩＣカード利用装置に使用されるＩＣカードに使用されるコンピュータ読み取り可能な記憶媒体であって、前記ＩＣカード内のコンピュータに、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
請求項２０に対応する発明は、着脱自在に保持されたＩＣカードに対し、このＩＣカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するＩＣカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、前記ＩＣカード利用装置内のコンピュータに、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ＩＣカードに配送する鍵配送手段、の機能を含んで実現させるプログラムであり、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、前記連結部による連結結果を前記ＩＣカードの公開鍵で暗号化し、得られた暗号化データを前記ＩＣカードに入力する暗号化部、の機能を含んで実現させるためのプログラムであり、前記ＩＣカードは、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたことを特徴とする、前記各プログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３８】
（作用）
従って、請求項１，９に対応する発明は、アプリケーションソフトウェア部としては、鍵生成手段が、本人認証情報が入力されたとき、ＩＣカードの機能を利用するときの暗号通信に使用される一時共有鍵を生成し、鍵配送手段が、鍵生成手段により生成された一時共有鍵と入力された本人認証情報とをＩＣカードに配送する。
【００３９】
このように、アプリケーションソフトウェア部とＩＣカードとの接続時のみ一時的に有効な暗号鍵を共有し、通常時にはＩＣカード利用装置内に暗号鍵を保持しない構成なので、ＩＣカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上させることができる。
【００４０】
また、請求項１，９に対応する発明は、鍵配送手段としては、連結部が、鍵生成手段により生成された一時共有鍵と入力された本人認証情報とを連結し、暗号化部が、連結部による連結結果をＩＣカードの公開鍵で暗号化し、得られた暗号化データをＩＣカードに入力するので、前述した作用を容易且つ確実に奏することができる。
【００４１】
さらに、請求項１，９に対応する発明は、連結部としては、ＩＣカードから受ける乱数データを含めて連結を行うので、前述した作用に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【００４２】
また、請求項１，９に対応する発明は、復号手段が、暗号化部による暗号化データの入力に応じてＩＣカードから暗号化乱数データを受けたとき、一時共有鍵に基づいて暗号化乱数データを復号し、鍵更新手段が、復号手段による復号結果に基づいて一時共有鍵を更新するので、前述した作用に加え、一時共有鍵の安全性を向上でき、一層、信頼性を向上させることができる。
【００４３】
さらに、請求項２，１０に対応する発明は、カウンタ値が記憶されるカウンタ値記憶を設け、第１復号手段が、鍵配送手段による配送に応じてＩＣカードから暗号化カウンタ値データを受けたとき、一時共有鍵に基づいて暗号化カウンタ値データを復号し、得られたカウンタ値をカウンタ値記憶手段に書込み、連結手段が、ＩＣカードへコマンドを入力するとき、コマンドとカウンタ値記憶手段内のカウンタ値とを連結し、暗号化手段が、連結手段による連結結果を一時共有鍵で暗号化し、得られた暗号化データをＩＣカードに入力し、第２復号手段が、暗号化手段による暗号化データの入力に応じてＩＣカードからカウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、一時共有鍵に基づいて暗号化応答データを復号し、分解手段が、第２復号手段による復号結果からカウンタ値と応答内容とを分解し、認証手段が、分解手段により分解されたカウンタ値を連結手段で連結されたカウンタ値と比較し、両者が一致したとき、暗号化応答データを正当と認証し、カウンタ値更新手段が、認証手段により正当と認証されたとき、カウンタ値記憶手段内のカウンタ値を更新するので、請求項１，９に対応する作用に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【００４４】
また、請求項３，１１に対応する発明は、連結手段としては、少なくともメッセージ認証子ＭＡＣ又はチェックサムを含めて連結を行うので、請求項２，１０に対応する作用に比べ、容易且つ確実に改ざん検出を行うことができる。
【００４５】
さらに、請求項４，１２に対応する発明は、検査手段が、検査指令が入力されたとき、アプリケーションソフトウェア部の正当性を検査するので、請求項１〜３のいずれかか、請求項９〜１１のいずれかに対応する作用に比べ、不正プログラムによる不正な処理を阻止することができる。
【００４６】
また、請求項４，１２に対応する発明は、アプリケーションソフトウェア部としては、予め自己のディジタル署名が付与されており、検査手段としては、アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、正当性を検査するので、前述した作用を容易且つ確実に奏することができる。
【００４７】
さらに、請求項５，１３に対応する発明は、アプリケーションソフトウェア部としては、ＩＣカードの機能を利用するための上位アプリケーション部と、上位アプリケーション部がＩＣカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、ミドルウェア部としては、少なくとも鍵生成手段及び鍵配送手段を含んでいるので、請求項１〜４のいずれかか、請求項９〜１２のいずれかに対応する作用に加え、上位アプリケーション部と、ミドルウェア部とを分解したことにより、上位アプリケーション部の開発効率の向上を図ることができる。
【００４８】
また、請求項６，１４に対応する発明は、上位アプリケーション検査手段が、上位アプリケーション検査指令が入力されたとき、上位アプリケーション部の正当性を検査し、ミドルウェア検査手段が、ミドルウェア検査指令が入力されたとき、ミドルウェア部の正当性を検査するので、請求項５，１３に対応する作用に加え、アプリケーションソフトウェア部が上位アプリケーション部とミドルウェア部とからなる構成であっても、不正プログラムによる不正な処理を阻止することができる。
【００４９】
さらに、請求項７，１５，１７〜２０に対応する発明は、カード内復号手段が、暗号化部から入力された暗号化データを自己の秘密鍵で復号し、カード内分解手段が、カード内復号手段による復号結果から一時共有鍵と本人認証情報とを分解し、カード内認証手段が、カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、暗号化データを正当と認証し、カード内鍵格納手段が、カード内認証手段により正当と認証されたとき、カード内分解手段で得られた一時共有鍵を格納するので、請求項１，９に対応する作用をＩＣカード側においても奏することができる。
【００５０】
また、請求項７，１５に対応する発明は、チャレンジ要求が入力されたとき、乱数を生成して得られた乱数データをアプリケーションソフトウェア部に出力する乱数生成手段を設け、カード内分解手段としては、一時共有鍵と本人認証情報との分解に加え、カード内復号手段による復号結果から乱数データを分解し、カード内認証手段としては、本人認証情報による認証に加え、カード内分解手段により分解された乱数データを乱数生成手段により得られた乱数データと比較し、両者が一致したとき、暗号化データを正当と認証するので、前述した作用に加え、請求項１，９に対応する作用と同様にリプレイ攻撃を阻止でき、信頼性を向上させることができる。
【００５１】
さらに、請求項７，１５に対応する発明は、乱数生成手段としては、カード内認証手段により正当と認証されたとき、乱数データとは異なる第２乱数データを生成する機能を有し、カード内暗号化手段が、乱数生成手段により生成された第２乱数データをカード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データをＩＣカード利用装置に出力し、カード内鍵更新手段が、乱数生成手段により生成された第２乱数データに基づいて、カード内暗号化手段に使用された一時共有鍵を更新するので、前述した作用に加え、請求項１，９に対応する作用と同様に、より確実にリプレイ攻撃を阻止でき、一層、信頼性を向上させることができる。
【００５２】
また、請求項８，１６に対応する発明は、カウンタ値が記憶されるカード内記憶手段を設け、第１暗号化手段が、鍵配送手段により配送された一時共有鍵に基づいて、カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データをＩＣカード利用装置に出力し、カード内復号手段が、第１暗号化手段による暗号化カウンタ値データの出力に応じて、ＩＣカード利用装置から暗号化データを受けたとき、一時共有鍵に基づいて、当該暗号化データを復号し、カード内分解手段が、カード内復号手段による復号結果からカウンタ値とコマンドとを分解し、カード内認証手段が、カード内分解手段により分解されたカウンタ値をカード内記憶手段内のカウンタ値と比較し、両者が一致したとき、暗号化データを正当と認証し、コマンド処理手段が、カード内認証手段により正当と認証されたとき、カード内分解手段で分解されたコマンドを処理し、応答データを生成し、カード内連結手段が、コマンド処理手段により生成された応答データとカード内記憶手段内のカウンタ値を連結し、第２暗号化手段が、カード内連結手段による連結結果を一時共有鍵で暗号化し、得られた暗号化応答データをＩＣカード利用装置に出力するので、請求項２，１０に対応する作用をＩＣカード側においても奏することができる。
【００５３】
【発明の実施の形態】
以下、本発明の各実施形態について図面を参照しながら説明する。
（第１の実施形態）
図１は本発明の第１の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図であり、以下の各実施形態に共通する基本構成を示している。  このＩＣカード利用装置１０は、ＩＣカード２０を着脱自在に保持してその機能を利用可能なものであり、具体的には、上位アプリケーション部３０、ミドルウェア部４０、Ｒ／Ｗドライバ部５０及びカードＲ／Ｗ部６０を備えている。なお、このＩＣカード利用装置１０は、例えば磁気ディスク等の記憶媒体に記憶された、上位アプリケーション部３０及びミドルウェア部４０からなるアプリケーションソフトウェア部７０がインストールされ、このアプリケーションソフトウェア部７０によって動作が制御されるパソコン等のコンピュータによって実現される。
【００５４】
ここで、上位アプリケーション部３０は、ＩＣカード２０内の機能を利用するように処理が記述されたJavaアプリケーションであり、ＩＣカード２０に向けてコマンド及びデータ等をミドルウェア部４０に与える機能（ログイン用のＰＩＮデータ入力、ファイル暗号化コマンド、ファイル復号コマンド）と、ＩＣカード２０からの応答をミドルウェア部４０から受ける機能とをもっている。なお、ＰＩＮは、個人識別番号（personal identification number）であり、本人認証情報の一例である。
ミドルウェア部４０は、上位アプリケーション部３０よりも論理的にＩＣカード２０側に設けられ、ＩＣカード２０の機能を利用するときの暗号通信に使用されるものであり、ＰＩＮデータが上位アプリケーション部３０を介して入力されたとき、ＩＣカード２０との暗号通信に使用される一時共有鍵Ｋを生成し、この一時共有鍵ＫとＰＩＮデータとをＩＣカード２０に向けてＲ／Ｗドライバ部５０に出力するＰＩＮ認証機能と、上位アプリケーション部３０からのファイル暗号化／復号コマンドに従ってＩＣカード２０にファイルの暗号化／復号を実行させる暗号化／復号機能をもっている。
【００５５】
Ｒ／Ｗドライバ部５０は、ミドルウェア部４０とＩＣカード２０との間でカードＲ／Ｗ部６０を駆動する周知のＩＣカード２０リーダライタドライバであり、ネイティブコードのソフトウェアにて実現されている。また、カードＲ／Ｗ部６０は、Ｒ／Ｗドライバ部５０により駆動され、ＩＣカード２０内の情報を読出／書込可能な装置であり、具体的には周知のＩＣカード２０リーダライタである。
【００５６】
ＩＣカード２０は、ＩＳＯ７８１６の規格に準拠したものであり、ＩＣカード利用装置１０から一時共有鍵Ｋを受けると、ＩＣカード利用装置１０からのアクセスにより、この一時共有鍵Ｋを用いてＰＩＮ認証機能、ファイル暗号化機能又はファイル復号機能等の所定の機能を実行する際の暗号通信を実行し、且つこの暗号通信の後、一時共有鍵Ｋとは異なる鍵で自己のファイル暗号化機能又はファイル復号機能等を実行するものである。
【００５７】
次に、以上のように構成されたＩＣカード利用装置１０及びＩＣカード２０の動作をＰＩＮ認証、データ暗号化及びデータ復号の順に説明する。
【００５８】
（ＰＩＮ認証）
まず、利用者により、ＩＣカード２０がＩＣカード利用装置１０のカードＲ／Ｗ部６０に挿入される。続いて、アプリケーションソフトウエア部７０の実行により、上位アプリケーション部３０及びミドルウェア部４０が起動したとする。
【００５９】
ここで、上位アプリケーション部３０は、ＰＩＮ認証メソッドを実行すると共に、利用者にＰＩＮデータ入力を促し、その後、図１及び図２の（ａ）に示すように、入力されたＰＩＮデータをミドルウェア部４０に入力する。
【００６０】
ミドルウェア部４０は、ＰＩＮデータが入力されると、例えば８バイトの一時共有鍵Ｋを生成し、図１及び図２の（ｂ）に示すように、この一時共有鍵ＫとＰＩＮデータとを含むＰＩＮ認証コマンドをＩＣカード２０に向けてＲ／Ｗドライバ部５０に送信する。
【００６１】
Ｒ／Ｗドライバ部５０は、ＰＩＮ認証コマンドをカードＲ／Ｗ部６０を介してＩＣカード２０に入力する。
【００６２】
ＩＣカード２０は、ＰＩＮ認証コマンドが入力されると、ＰＩＮ認証コマンドからＰＩＮデータ及び一時共有鍵Ｋを取り出し、ＰＩＮデータを認証した後、この一時共有鍵Ｋを保持し、図１及び図２の（ｃ）に示すように、例えば成功を示す応答をＩＣカード利用装置１０のミドルウェア部４０に出力する。
【００６３】
ミドルウェア部４０は、この応答を受けると、図１及び図２の（ｄ）に示すように、成功を示す内容を上位アプリケーション部３０に出力する。
【００６４】
なお、ＩＣカード２０は、ＰＩＮ認証が失敗した場合、失敗を示す応答を出力して処理を終了する。ミドルウェア部４０も同様に失敗を示す応答を出力して処理を終了する。
【００６５】
以上のような動作により、ＩＣカード２０及びミドルウェア部４０は、互いに同一の一時共有鍵Ｋを保持し、この一時共有鍵Ｋに基づく暗号通信が可能な状態となる。なお、本実施形態は、本発明の原理を示しており、実際には一時共有鍵Ｋを共有する際に、第２の実施形態以降で述べるように、何らかのセキュリティ手段を講じることが好ましい。但し、後述しないセキュリティ手段でも、ＩＣカード２０とＩＣカード利用装置１０とで一時共有鍵Ｋを共有させる場合、本発明の範囲に包含される。
【００６６】
（データ暗号化）
ＰＩＮ認証が成功した場合、上位アプリケーション部３０は、利用者の操作により、ファイル暗号化指示を受けると、図３の（ａ）に示すように、暗号化の対象となる入力データを含むデータ暗号化コマンドをミドルウェア部４０に入力する。
【００６７】
ミドルウェア部４０は、データ暗号化コマンドが入力されると、一時共有鍵Ｋに基づいて入力データを例えばDES-CBC 方式により暗号化し、図１及び図３の（ｂ）に示すように、暗号化した入力データを含むコマンドAPDUをＩＣカード２０に向けてＲ／Ｗドライバ部５０に送信する。
【００６８】
Ｒ／Ｗドライバ部５０は、コマンドAPDUをカードＲ／Ｗ部６０を介してＩＣカード２０に入力する。
【００６９】
ＩＣカード２０は、コマンドAPDUが入力されると、コマンドAPDUから入力データを取り出し、一時共有鍵Ｋ及びDES-CBC 方式に基づいて入力データを復号した後、この入力データを自己の暗号機能（例えば、一時共有鍵Ｋとは異なる鍵を用いたDES-CBC 方式又は512bit RSA方式）で暗号化し、図１及び図３の（ｃ）に示すように、得られた暗号化データを含むレスポンスAPDUをＩＣカード利用装置１０のミドルウェア部４０に応答する。
【００７０】
ミドルウェア部４０は、この応答を受けると、図１及び図３の（ｄ）に示すように、暗号化データを上位アプリケーション部３０に出力する。
【００７１】
なお、ＩＣカード２０は、データ暗号化が失敗した場合、失敗を示す応答を出力して処理を終了する。ミドルウェア部４０も同様に失敗を示す応答を出力して処理を終了する。
【００７２】
（データ復号）
データ復号は、上述したデータ暗号化の動作において、「暗号化」又は「暗号」に代えて、「復号」を用いたものである。具体的なコマンド等は、図４に示す通りである。
【００７３】
上述したように本実施形態によれば、アプリケーションソフトウェア部とＩＣカード２０との接続時のみ一時的に有効な暗号鍵（一時共有鍵Ｋ）を共有し、通常時にはＩＣカード利用装置１０内に暗号鍵を保持しない構成なので、ＩＣカード利用装置１０の解析による鍵漏洩を阻止でき、安全性を向上させることができる。
【００７４】
また、パソコン内に暗号鍵等の秘密情報を永続的に保管しないため、図５に示すように、不正プログラム５１，５２を用いても、盗聴や不正データ送信が不可能となっている。
【００７５】
（第２の実施形態）
図６は本発明の第２の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図であり、図１と同一部分には同一符号を付し、ほぼ同一部分にはアルファベットの添字を付してその詳しい説明を省略し、ここでは異なる部分についてのみ述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【００７６】
すなわち、本実施形態は、第１の実施形態の具体例であり、ＰＩＮ認証の安全性向上を図るものであって、図６及び図７に示すように、一時共有鍵Ｋの共有の際に、ミドルウェア部４０ａ及びＩＣカード２０ａ間に公開鍵暗号系を適用させたものである。
【００７７】
ここで、ミドルウェア部４０ａは、接続制御部４１、公開鍵暗号／復号処理部４２、及び共通鍵暗号／復号処理部４３を備えている。
【００７８】
接続制御部４１は、上位アプリケーションとＩＣカード２０ａとの間の接続を制御するものであり、具体的には、乱数生成器により一時共有鍵Ｋ（＝乱数）を生成する機能と、上位アプリケーション部３０からのデータ及び指示に基づいて、データを含むコマンドを作成してＩＣカード２０ａ向けに送信する機能と、ＩＣカード２０ａからの応答を上位アプリケーション部３０に出力する機能と、これらの機能において、通信手順内に暗号／復号処理がある場合、該当する公開鍵暗号／復号処理部４２又は共通鍵暗号／復号処理部４３を用いる機能と、からなる基本機能をもっている。
【００７９】
なお、接続制御部４１は、ここでは前述した基本機能に加え、ＰＩＮ認証のコマンド作成の際に、公開鍵暗号／復号処理部４２を用い、ＰＩＮデータと一時共有鍵Ｋとを暗号化させて暗号化データを得る機能をもっている。
【００８０】
公開鍵暗号／復号処理部４２は、接続制御部４１に制御され、接続制御部４１から受けたデータをＩＣカード２０ａの公開鍵（例、512bit RSA公開鍵）に基づいて暗号／復号処理し、得られた結果を接続制御部４１に送出する機能とをもっている。
【００８１】
共通鍵暗号／復号処理部４３は、接続制御部４１に制御され、接続制御部４１から受けたデータを一時共有鍵Ｋに基づいて暗号／復号処理し、得られた結果を接続制御部４１に送出する機能をもっている。
【００８２】
ＩＣカード２０ａは、要求受付処理部２１、公開鍵暗号／復号処理部２２、及び共通鍵暗号／復号処理部２３を備えている。
【００８３】
要求受付処理部２１は、ＩＣカード利用装置１０ａから受けたコマンドに基づいて、ＩＣカード２０ａの機能（例、ＤＥＳ暗号化機能など）に処理を実行させる機能と、この処理の実行により得られた結果をＩＣカード利用装置１０ａに応答する機能と、処理の実行の際に、公開鍵暗号／復号処理部２２又は共通鍵暗号／復号処理部２３を用いる機能と、からなる基本機能をもっている。
【００８４】
なお、要求受付処理部２１は、ここでは前述した基本機能に加え、公開鍵暗号／復号処理部２２により復号されたＰＩＮデータと一時共有鍵Ｋとを分解する機能と、分解して得られたＰＩＮデータを予め保持するＰＩＮデータに基づいて認証する機能と、正当性が認証されたとき、分解により得られた一時共有鍵Ｋを格納すると共に、成功を示す応答をＩＣカード利用装置１０ａに出力する機能と、正当性が認証されないとき、分解により得られた一時共有鍵Ｋを破棄すると共に、失敗を示す応答をＩＣカード利用装置１０ａに出力する機能とをもっている。
【００８５】
公開鍵暗号／復号処理部２２は、要求受付処理部２１に制御され、要求受付処理部２１から受けたデータをＩＣカード２０ａの秘密鍵（例、512bit RSA秘密鍵）に基づいて暗号／復号処理し、得られた結果を要求受付処理部２１に送出する機能とをもっている。
【００８６】
共通鍵暗号／復号処理部２３は、要求受付処理部２１に制御され、要求受付処理部２１から受けたデータを一時共有鍵Ｋに基づいて暗号／復号処理し、得られた結果を要求受付処理部２１に送出する機能をもっている。
【００８７】
次に、以上のように構成されたＩＣカード利用装置及びＩＣカードの動作を説明する。
（ＰＩＮ認証）
いま、前述した通り、上位アプリケーション部３０は、利用者から入力されたＰＩＮデータをミドルウェア部４０ａに入力したとする。
【００８８】
ミドルウェア部４０ａの接続制御部４１は、図７に示すように、例えば８バイトのＰＩＮデータが入力されると、乱数生成器により例えば８バイトの一時共有鍵Ｋを生成し、この一時共有鍵ＫとＰＩＮデータとを連結し、連結結果を公開鍵暗号／復号処理部４２に与える。公開鍵暗号／復号処理部４２は、この連結結果をＩＣカード２０ａの公開鍵に基づいて暗号化し、得られたデータを接続制御部４１に送出する。
【００８９】
接続制御部４１は、この暗号化されたデータを含めて前述同様のＰＩＮ認証コマンドを作成し、このＰＩＮ認証コマンドをＩＣカード２０ａに向けてＲ／Ｗドライバ部５０に送信する。
【００９０】
Ｒ／Ｗドライバ部５０は、ＰＩＮ認証コマンドをカードＲ／Ｗ部６０を介してＩＣカード２０ａに入力する。
【００９１】
ＩＣカード２０ａの要求受付処理部２１は、ＰＩＮ認証コマンドが入力されると、ＰＩＮ認証コマンドからデータを取り出して公開鍵暗号／復号処理部２２に与える。
【００９２】
公開鍵暗号／復号処理部２２は、このデータをＩＣカード２０ａの秘密鍵に基づいて復号し、復号結果を要求受付処理部２１に送出する。
【００９３】
要求受付処理部２１は、この復号結果から一時共有鍵ＫとＰＩＮデータとを分解し、このＰＩＮデータを予め保持するＰＩＮデータと比較し、両者が一致したとき、ＰＩＮデータを正当と認証して一時共有鍵Ｋを格納すると共に、成功を示す応答をＩＣカード利用装置１０ａに出力する。
【００９４】
ミドルウェア部４０ａは、この応答を受けると、前述同様に、成功を示す内容を上位アプリケーション部３０に出力する。
なお、ＰＩＮ認証が失敗した場合の動作は、第１の実施形態と同様である。また、ＰＩＮ認証が成功した後のデータ暗号化及びデータ復号の動作も第１の実施形態と同様である。
【００９５】
上述したように本実施形態によれば、ＰＩＮデータと一時共有鍵Ｋを同時に暗号化してＩＣカード２０に送信し、ＰＩＮデータと一時共有鍵Ｋの盗聴を阻止するので、第１の実施形態の効果を容易且つ確実に得ることができる。
【００９６】
また、アプリケーションソフトウェア部７０のうち、ミドルウェア部４０に暗号通信機能を持たせ、ＩＣカード２０ａとの暗号化通信をアプリケーション開発者に対して隠蔽した構成により、セキュリティレベルを落とさず、かつ、セキュリティ確保に付随する利便性を低下させずに、ＩＣカード２０ａの機能を利用する上位アプリケーション部３０の開発効率の向上を図ることができる。
【００９７】
補足すると、ＩＣカード２０との暗号化通信は煩雑な手順であり、ＩＣカード２０の機能を利用する上位アプリケーション部３０において、開発者が個別に実装させるのは非効率的となっている。しかしながら、本実施形態によれば、煩雑な暗号化通信を分離してミドルウェア部４０に実行させるので、上位アプリケーション部３０の開発効率の向上を図ることができる。
【００９８】
（第３の実施形態）
図８は本発明の第３の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図である。なお、図８中、共通鍵暗号／復号処理部２３，４３は省略されるが、実際には備えている。以下の各実施形態でも同様に、データの流れで示す模式図では省略されても、公開鍵暗号／復号処理部２２，４２及び共通鍵暗号／復号処理部２３，４３を備えている。
【００９９】
本実施形態は、第２の実施形態の変形例であり、ＰＩＮ認証のより一層の安全性向上を図るものであって、図８に示すように、前述した公開鍵暗号系による保護に加え、ＩＣカード２０ｂ側における認証にチャレンジ／レスポンス方式を適用したものである。
【０１００】
具体的には、ミドルウェア部４０ｂの接続制御部４１ｂは、前述した機能に加え、ＰＩＮ認証の際に、図９の（ａ）に示すように、ＩＣカード２０ｂに乱数を要求するコマンドAPDUをＩＣカード２０ｂ向けに送出するチャレンジ要求機能と、図９（ｂ）に示すレスポンスAPDUをＩＣカード２０ｂから受けたとき、このレスポンスAPDU内の乱数データと前述した一時共有鍵Ｋ及びＰＩＮデータとを含めたデータを公開鍵暗号／復号処理部４２により暗号化し、得られた暗号化データを含めたＰＩＮ認証コマンドをＩＣカード２０ｂ向けに送出する機能とをもっている。
【０１０１】
一方、ＩＣカード２０ｂの要求受付処理部２１ｂは、前述した機能に加え、ＩＣカード利用装置１０ａから乱数を要求するコマンドAPDUを受けたとき、乱数データを生成してＩＣカード利用装置１０ｂに送出する機能と、ＩＣカード利用装置１０ｂから受けたＰＩＮ認証コマンド内の暗号化データが復号されたとき、復号された乱数データ、ＰＩＮデータ及び一時共有鍵Ｋを分解する機能と、分解して得られた乱数データを始めに生成した乱数データに基づいて認証する機能と、前述したＰＩＮデータの正当性に加え、この乱数データの正当性が認証されたとき、分解により得られた一時共有鍵Ｋを格納すると共に、成功を示す応答をＩＣカード利用装置１０ｂに出力する機能と、正当性が認証されないとき、分解により得られた一時共有鍵Ｋを破棄すると共に、失敗を示す応答をＩＣカード利用装置１０ｂに出力する機能とをもっている。
【０１０２】
次に、以上のように構成されたＩＣカード利用装置及びＩＣカードの動作を説明する。
（ＰＩＮ認証）
いま、前述した通り、上位アプリケーション部３０は、利用者から入力されたＰＩＮデータをミドルウェア部４０ｂに入力したとする。
【０１０３】
ミドルウェア部４０ｂの接続制御部は、図９の（ａ）に示すように、ＩＣカード２０ｂに乱数を要求するコマンドAPDUをＩＣカード２０ｂ向けにＲ／Ｗドライバ部５０に送出する。
【０１０４】
一方、ＩＣカード２０ｂの要求受付処理部２１ｂは、このコマンドAPDUを受けたとき、乱数生成器により乱数データを生成し、この乱数データを含むレスポンスAPDUをＩＣカード利用装置１０ｂに送出する。
【０１０５】
ミドルウェア部４０ｂの接続制御部４１ｂは、図９（ｂ）に示すレスポンスAPDUをＩＣカード２０ｂから受けたとき、このレスポンスAPDU内の乱数データと前述した一時共有鍵Ｋ及びＰＩＮデータとを含めたデータを公開鍵暗号／復号処理部４２により暗号化し、得られた暗号化データを含めたＰＩＮ認証コマンドをＩＣカード２０ｂ向けにＲ／Ｗドライバ部５０に送出する。
【０１０６】
ＩＣカード２０ｂの要求受付処理部４１ｂは、ＰＩＮ認証コマンド内の暗号化データを前述同様に公開鍵暗号／復号処理部２２に復号させ、得られた乱数データ、ＰＩＮデータ及び一時共有鍵Ｋを分解し、得られた乱数データを始めに生成した乱数データに基づいて認証する。
【０１０７】
ここで、要求受付処理部２１ｂは、前述したＰＩＮデータの正当性に加え、この乱数データの正当性が認証されたとき、分解により得られた一時共有鍵Ｋを格納すると共に、成功を示す応答をＩＣカード利用装置１０ｂに出力する。
【０１０８】
ミドルウェア部４０ｂは、この応答を受けると、前述同様に、成功を示す内容を上位アプリケーション部３０に出力する。
なお、ＰＩＮ認証が失敗した場合の動作は、第２の実施形態と同様である。また、ＰＩＮ認証が成功した後のデータ暗号化及びデータ復号の動作も第２の実施形態と同様である。
【０１０９】
上述したように本実施形態によれば、乱数データを含むことにより古いデータの再送による不正なログインを阻止するので、第２の実施形態の効果に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【０１１０】
（第４の実施形態）
図１０は本発明の第４の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図である。
【０１１１】
本実施形態は、第３の実施形態の変形例であり、ＰＩＮ認証後の一時共有鍵Ｋの安全性向上を図るものであって、図１０に示すように、前述したチャレンジ／レスポンス方式による認証の後、一時共有鍵Ｋ（乱数データＢ）を更に別の乱数データＣで更新して最終的に一時共有鍵Ｋを作成する方式である。
【０１１２】
具体的には、ミドルウェア部４０ｃの接続制御部４１ｃは、第３の実施形態で述べた機能に加え、ＰＩＮ認証の後、レスポンスAPDUを受けたとき、このレスポンスAPDU内の暗号化データを公開鍵暗号／復号処理部４２に一時共有鍵Ｋ（乱数データＢ）で復号させ、得られた乱数データＣに基づいて一時共有鍵Ｋを更新し、最終的に得られた一時共有鍵Ｋ（乱数データＢ＋Ｃ）を格納する機能をもっている。なお、更新の方式としては、例えば、乱数データＣと一時共有鍵Ｋ（乱数データＢ）との排他的論理和を算出する方式があり、その他、任意の方式が使用可能であるが、ＩＣカード２０内での更新結果と同一の更新結果を得られることが必要である。
【０１１３】
一方、ＩＣカード２０の要求受付処理部２１ｃは、第３の実施形態で述べた機能に加え、ＰＩＮ認証の後、他の乱数データＣを生成する機能と、この乱数データＣを公開鍵暗号／復号処理部２２に一時共有鍵Ｋ（乱数データＢ）で暗号化させ、得られた暗号化データを含むレスポンスAPDUをＩＣカード利用装置１０ｃに送出する機能と、レスポンスAPDUの送出の後、乱数データＣに基づいて一時共有鍵Ｋを更新し、最終的に得られた一時共有鍵Ｋ（乱数データＢ＋Ｃ）を格納する機能をもっている。なお、更新方式は、ＩＣカード利用装置１０ｃと同一方式が使用される。
【０１１４】
次に、以上のように構成されたＩＣカード利用装置及びＩＣカードの動作を説明する。
いま、前述した通り、ＩＣカード２０ｃ内では、ＰＩＮ認証が成功したとする。  ＩＣカード２０ｃの要求受付処理部２１ｃは、図１０及び図１１に示すように、ＰＩＮ認証の後、他の乱数データＣを生成し、この乱数データＣを公開鍵暗号／復号処理部２２に一時共有鍵Ｋ（乱数データＢ）で暗号化させ、得られた暗号化データを含むレスポンスAPDUをＩＣカード利用装置１０ｃに送出する。
【０１１５】
また、ＩＣカード２０ｃの要求受付処理部２１ｃは、レスポンスAPDUの送出の後、乱数データＣと一時共有鍵Ｋとの排他的論理和を算出して一時共有鍵Ｋを更新し、最終的に得られた一時共有鍵Ｋ（乱数データＢ＋Ｃ）を格納する。
【０１１６】
一方、ミドルウェア部４０ｃの接続制御部４１ｃは、ＰＩＮ認証の後、レスポンスAPDUを受けたとき、このレスポンスAPDU内の暗号化データを公開鍵暗号／復号処理部４２に一時共有鍵Ｋ（乱数データＢ）で復号させ、得られた乱数データＣと一時共有鍵Ｋとの排他的論理和を算出して一時共有鍵Ｋを更新し、最終的に得られた一時共有鍵Ｋ（乱数データＢ＋Ｃ）を格納する。
【０１１７】
上述したように本実施形態によれば、第３の実施形態の効果に加え、一時共有鍵Ｋの安全性を向上でき、信頼性を向上させることができる。
【０１１８】
（第５の実施形態）
図１２は本発明の第５の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図である。
【０１１９】
本実施形態は、第４の実施形態の変形例であり、ＰＩＮ認証後のコマンド処理の安全性向上を図るものであって、図１２に示すように、ＩＣカード２０ｄとＩＣカード利用装置１０ｄとでカウンタ値を共有し、ＩＣカード利用装置１０ｄからのコマンドAPDU内とＩＣカード２０ｄからのレスポンスAPDU内とにそれぞれ当該カウンタ値を含め、且つレスポンスAPDUの送受信毎に当該カウンタ値を更新する方式である。
【０１２０】
具体的には、ミドルウェア部４０ｄの接続制御部４１ｄは、第４の実施形態で述べた機能に加え、カウンタ値が記憶されるカウンタ値記憶機能と、ＰＩＮ認証の後、ＩＣカード２０ｄから暗号化カウンタ値データを受けたとき、一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化カウンタ値データを復号させ、得られたカウンタ値を記憶する機能と、ＩＣカード２０ｄへコマンドを入力するとき、コマンドとカウンタ値とを連結する連結機能と、この連結結果を一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化させる機能と、この暗号化により得られた暗号化コマンドAPDUをＩＣカード２０ｄ向けに送出する機能と、この暗号化コマンドAPDUの送出に応じてＩＣカード２０ｄからカウンタ値と応答内容とが暗号化された暗号化レスポンスAPDUを受けたとき、一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化レスポンスAPDUを復号させる機能と、この復号結果からカウンタ値と応答内容とを分解し、得られたカウンタ値を先程の連結したカウンタ値と比較し、両者が一致したとき、応答内容を正当と認証する認証機能と、この認証機能により正当と認証されたとき、記憶されているカウンタ値を更新する更新機能とをもっている。
【０１２１】
一方、ＩＣカード２０ｄの要求受付処理部２１ｄは、第４の実施形態で述べた機能に加え、ＰＩＮ認証の後、カウンタ値を記憶する機能と、共通鍵暗号／復号処理部２３の制御により、一時共有鍵Ｋに基づいてカウンタ値を暗号化させ、得られた暗号化カウンタ値データをＩＣカード利用装置１０ｄに出力する機能と、この暗号化カウンタ値データの出力に応じて、ＩＣカード利用装置１０ｄから暗号化コマンドAPDUを受けたとき、共通鍵暗号／復号処理部２３の制御により、一時共有鍵Ｋに基づいて、当該暗号化コマンドAPDUを復号する機能と、この復号結果からカウンタ値とコマンドとを分解する機能と、分解したカウンタ値を記憶したカウンタ値と比較し、両者が一致したとき、暗号化コマンドAPDUを正当と認証する認証機能と、認証機能により正当と認証したとき、分解したコマンドをＩＣカード２０ｄの処理機能部に処理させ、応答データを生成させるコマンド処理機能と、コマンド処理機能により生成された応答データと記憶されたカウンタ値を連結する連結機能と、この連結結果を共通鍵暗号／復号処理部２３に一時共有鍵Ｋで暗号化させ、得られた暗号化レスポンスAPDUをＩＣカード利用装置１０ｄに出力する機能とを備えている。
【０１２２】
次に、以上のように構成されたＩＣカード利用装置及びＩＣカードの動作を説明する。
いま、前述した通り、ＩＣカード２０内では、ＰＩＮ認証が成功し、且つ、ＩＣカード２０ｄとＩＣカード利用装置１０ｄとの間では、一時共有鍵Ｋの共有が完了したとする。
（データ暗号化）
ＩＣカード２０の要求受付処理部２１ｄは、カウンタ値を記憶し、共通鍵暗号／復号処理部２３の制御により、一時共有鍵Ｋに基づいてカウンタ値を暗号化させ、得られた暗号化カウンタ値データをＩＣカード利用装置１０ｄに出力する。
【０１２３】
ミドルウェア部４０ｄの接続制御部４１ｄは、ＩＣカード２０ｄから暗号化カウンタ値データを受けたとき、一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化カウンタ値データを復号させ、得られたカウンタ値を記憶する。
【０１２４】
また、接続制御部４１ｄは、ＩＣカード２０ｄへコマンドを入力するとき、図１３に示すように、コマンドと記憶したカウンタ値Cnt とパディングデータPad とを連結し、この連結結果を含む２４バイトのコマンドAPDUを一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化させ、得られた暗号化コマンドAPDUをＩＣカード２０ｄ向けに送出する。
【０１２５】
なお、暗号化前のコマンドAPDUとしては、図１３に示したパターンに限らず、ＩＳＯ７８１６に定義された４つのパターンのいずれでも適用可能であるが、暗号化後の暗号化コマンドAPDUとしては、応答データの長さＬｅを含む関係上、図１４に示すパターンのみが適用可能となる。
【０１２６】
一方、ＩＣカード２０ｄの要求受付処理部２１ｄは、図１４に示すように、暗号化コマンドAPDUを受けたとき、共通鍵暗号／復号処理部２３の制御により、一時共有鍵Ｋに基づいて暗号化コマンドAPDUを復号し、改ざん検出のため、この復号結果からカウンタ値とコマンドとを分解してカウンタ値を記憶したカウンタ値と比較する。
【０１２７】
ここで、両カウンタ値が一致したとき、要求受付処理部２１ｄは、暗号化コマンドAPDUを正当と認証し、分解したコマンドをＩＣカード２０ｄの処理機能部に処理させ、応答データを生成させる。なお、カウンタ値が異なり、正当と認証されないとき、要求受付処理部２１ｄは、失敗を示す応答データを生成する。
【０１２８】
次に、要求受付処理部２１ｄは、図１５に示すように、応答データを含むレスポンスAPDUと記憶されたカウンタ値Cnt とパディングデータPad とを連結し、連結結果を共通鍵暗号／復号処理部２３に一時共有鍵Ｋで暗号化させ、得られた暗号化レスポンスAPDUをＩＣカード利用装置１０ｄに出力する。
【０１２９】
一方、ミドルウェア部４０ｄの接続制御部４１ｄは、図１６に示すように、ＩＣカード２０ｄから暗号化レスポンスAPDUを受けたとき、一時共有鍵Ｋに基づいて共通鍵暗号／復号処理部４３に暗号化レスポンスAPDUを復号させ、復号結果からカウンタ値と応答内容とを分解し、改ざん検出のため、分解で得られたカウンタ値を先程の連結したカウンタ値Cnt と比較する。
【０１３０】
ここで、両者が一致したとき、接続制御部４１ｄは、応答内容を正当と認証し、記憶されているカウンタ値を＋１更新すると共に、応答内容を上位アプリケーション部３０に出力する。以下、継続してデータ暗号化を行う場合、図１２中の（２）（３）の処理を繰り返して行う（ＩＣカード２０からカウンタ値を入手する（１）の処理は、ＰＩＮ認証後の１回目のみ必要であり、２回目以降は不要である）。
【０１３１】
また、カウンタ値が異なり、正当と認証されないとき、要求受付処理部２１ｄは、失敗を示す応答データnullを上位アプリケーション部３０に出力する。
【０１３２】
（データ復号）
データ復号は、上述したデータ暗号化の動作において、「暗号化」又は「暗号」に代えて、「復号」を用いることにより、同様に実施できる。
【０１３３】
上述したように本実施形態によれば、カウンタ値を含むことにより古いデータの再送による不正なコマンド実行を阻止するので、第４の実施形態の効果に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。但し、本実施形態は、一時共有鍵Ｋの共有後の技術であるため、第４の実施形態に限らず、第１〜第３の実施形態のうちの任意の実施形態に適用しても、上述した効果を得ることができる。
【０１３４】
また同様に、本実施形態におけるコマンドAPDU及びレスポンスAPDUの全体を暗号化／復号処理する構成を第２〜第４の実施形態に適用してもよく、その場合、適用した実施形態の効果に加え、コマンドAPDU及びレスポンスAPDUの盗聴や改ざんを阻止することができる。
【０１３５】
また、本実施形態では、今の値に＋１した値を更新値とする場合について説明したが、これに限らず、今の値からハッシュ関数で算出した値を更新値とする構成、同じ乱数系列で生成される次の乱数を更新値とする構成、あるいは、レスポンスAPDU内に更新値を入れた構成に変形しても、本発明を同様に実施して同様の効果を得ることができる。
【０１３６】
また、上述では、鍵共有又は鍵更新後にカウンタ値Cnt を共有するが、これに限らず、第４の実施形態の鍵更新時（図１０の▲３▼等を含む処理）の一時共有鍵Ｋ（乱数データＢ）と一緒にカウンタ値Cnt も暗号化する。そして、得られた暗号化データを含むレスポンスAPDUをＩＣカード利用装置１０ｃに送出することによって、カウンタ値Cnt を共有しても良い。これにより、上述した第５の実施形態でのＩＣカード２０ｄとＩＣカード利用装置１０ｄとのやり取りを減らすことができる。なお、暗号データ送出後のＩＣカード２０ｄとＩＣカード利用装置１０ｄとの間の処理は上述した処理と同様である。
【０１３７】
また、本実施形態は、カウンタ値Cnt を含むコマンドAPDU及びレスポンスAPDUの構成としたが、これに限らず、メッセージ認証子ＭＡＣ又はチェックサムを含むコマンドAPDU及びレスポンスAPDUの構成としても、本発明を同様に実施して同様の効果を得ることに加え、より容易且つ確実に改ざん検出を行うことができる。
【０１３８】
（第６の実施形態）
図１７は本発明の第６の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図である。
【０１３９】
本実施形態は、第１の実施形態を代表例に挙げた第１〜第５の実施形態の変形例であり、不正プログラムによる処理の阻止を図るものであり、具体的には、図１７に示すように、アプリケーションソフトウェア部７０にディジタル署名７０Ｓを付加し、且つこのディジタル署名７０Ｓに基づいて、アプリケーションソフトウエア部７０の正当性を検査するアプリ検査部８０をＩＣカード利用装置１０ｅに備えている。
【０１４０】
ここで、アプリ検査部８０は、アプリケーションソフトウエア部７０の起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名７０Ｓに基づいて、アプリケーションソフトウエア部７０の正当性を検証する検査処理部８１を備えている。なお、ディジタル署名７０Ｓは、例えばJavaの機能を用いて付与可能となっている。
【０１４１】
以上のような構成により、アプリ検査部８０においては、起動時などに検査指令が入力されたとき、検査処理部８１が、検査鍵及びディジタル署名７０Ｓに基づいて、アプリケーションソフトウエア部７０の正当性を検証するので、第１〜第５の実施形態の効果に加え、不正プログラムによる不正な処理を阻止することができる。
【０１４２】
また、ＩＣカード２０とＩＣカード利用装置１０ｅの利用者は、本発明が提案する１つのアプリケーションソフトウェア部７０を何らかの方法（ウイルスチェッカ、あるいはプログラムのディジタル署名検査など）を使って信用できれば、ＩＣカード２０への接続の安全性を確実に保つことができる。
【０１４３】
すなわち、本発明によれば、１つのアプリケーションソフトウェア部７０のみを検査すれば、パソコン上などソフトウェア的な脅威が多い環境でも安全性を確保できるという利点をもっている。また、このような安全性の確保されたアプリケーションソフトウェアを効率よく開発することができる。
【０１４４】
また、本発明によれば、ＩＣカード２０とパソコン（ＩＣカード利用装置１０）を使って、電子商取引などのように、高いセキュリティを必要とするサービスをより安全に、かつ高い開発生産性をもって実現することができる。
【０１４５】
なお、本実施形態は、図１８に示すように、アプリ検査部８０をアプリ部検査装置８０ｆとして、ＩＣカード利用装置１０ｆの外部に配置した構成に変形しても、同様の作用効果を得ることができる。
【０１４６】
（第７の実施形態）
図１９は本発明の第７の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図である。
【０１４７】
本実施形態は、第７の実施形態の変形例であり、上位アプリケーション部３０とミドルウェア部４０ａとの各々について正当性の検証を図るものであり、具体的には、図１９に示すように、上位アプリケーション部３０に自己のディジタル署名３０Ｓを付与すると共に、ミドルウェア部４０ａに自己のディジタル署名４０Ｓを付与した構成となっている。
【０１４８】
また、ディジタル署名３０Ｓに基づいて、上位アプリケーション部３０の正当性を検査可能なアプリ検査部８２をミドルウェア部４０ａに設け、且つディジタル署名４０Ｓに基づいて、アプリ検査部８２を含むミドルウェア部４０ａの正当性を検査可能なミドルウェア検査部８３をＩＣカード利用装置１０ｇに備えている。
【０１４９】
ここで、アプリ検査部８２は、上位アプリケーション部３０の起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名３０Ｓに基づいて、上位アプリケーション部３０の正当性を検証するものである。
【０１５０】
また、ミドルウェア検査部８３は、ミドルウェア部４０ａの起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名４０Ｓに基づいて、ミドルウェア部４０ａの正当性を検証する検査処理部８４を備えている。なお、両ディジタル署名３０Ｓ，４０Ｓは、例えばJavaの機能を用いて付与可能となっている。
【０１５１】
以上のような構成により、アプリ検査部８０においては、起動時などに検査指令が入力されたとき、検査処理部８１が、検査鍵及びディジタル署名７０Ｓに基づいて、アプリケーションソフトウエア部７０の正当性を検証するので、第１の実施形態の効果に加え、不正プログラムによる不正な処理を阻止することができる。
【０１５２】
また、上位アプリケーション部３０と、ミドルウェア部４０ａの両方を検査する構成により、セキュリティレベルの低下を防止することができる。また、上位アプリケーション部３０をミドルウェア部４０ａに検査させ、利用者がミドルウェア部４０ａのみを検査する構成としたことにより、利便性の低下を防止することができる。
【０１５３】
なお、本実施形態は、図２０に示すように、アプリ検査部８２及びミドルウェア検査部８３の検査機能をJavaVM(Java virtual machine)８５に設け、且つJavaVM８５をそのディジタル署名８５Ｓ及び検査鍵に基づいて検査するJavaVM検査部８６を備えたJavaVM検査装置８７をＩＣカード利用装置１０ｈの外部に配置した構成に変形してもよい。なお、この場合、JavaVMの検査は、JavaVM８５（アプリ検査鍵及びミドル検査鍵を有するセキュリティプロファイルを含む）のディジタル署名８５Ｓを予め計算して保存しておき、JavaVM検査装置８７にJavaVM８５とディジタル署名８５Ｓを利用者が明示的に入力することにより行われる。このように変形しても、図１９に示した構成と同様の作用効果を得ることができる。
【０１５４】
（他の実施形態）
なお、上記各実施形態では、ログイン時にＰＩＮデータによる認証を行う場合について説明したが、ＰＩＮデータに代えて、指紋、音声、サイン（筆跡）などをバイオメトリクス（生体測定法）を用いて認証した本人認証結果（ＯＫ／ＮＧ）を入力する構成としても、本発明を同様に実施して同様の効果を得ることができる。
【０１５５】
また、このバイオメトリクスを用いた場合、例えば本人認証結果の入力に代えて、本人認証結果にＩＣカードの秘密鍵による署名を付したデータを入力する構成としてもよい。
【０１５６】
さらに、第３及び第４の実施形態などのように乱数チャレンジを用いる場合、ＩＣカードからの乱数データと本人の認証結果とを連接させた連結結果にＩＣカードの秘密鍵による署名を付したデータを入力する構成としてもよい。
【０１５７】
いずれにしても、ＰＩＮデータに代えて、バイオメトリクス技術を用いた程度の変形例は、本願発明の範囲に包含される。
【０１５８】
また、各実施形態に説明した全てのＩＣカード利用装置１０，１０ａ〜１０ｈ及びＩＣカード２０，２０ａ〜２０ｄは、記憶媒体に格納したプログラムを夫々のコンピュータに読み込ませることで実現させることができる。
【０１５９】
ここで、記憶媒体に格納したプログラムとは、ＩＣカード利用装置１０，１０ａ〜１０ｈの場合、上位アプリケーション部３０、ミドルウェア部４０，４０ａ〜４０ｄ及びその両者からなるアプリケーションソフトウェア部７０であり、ＩＣカード２０，２０ａ〜２０ｄの場合、要求受付処理部２１，２１ａ〜２１ｄ、公開鍵暗号／復号処理部２２及び共通鍵暗号／復号処理部２３である。
【０１６０】
尚、本発明における記憶媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１６１】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０１６２】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１６３】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１６４】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１６５】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１６６】
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【０１６７】
【発明の効果】
以上説明したように本発明によれば、ＩＣカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上できるＩＣカード利用装置、ＩＣカード及び記憶媒体を提供できる。また、リプレイ攻撃を阻止でき、信頼性を向上できるＩＣカード利用装置、ＩＣカード及び記憶媒体を提供できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図
【図２】同実施形態におけるＰＩＮ認証のコマンド等を示す模式図
【図３】同実施形態におけるデータ暗号化のコマンド等を示す模式図
【図４】同実施形態におけるデータ復号のコマンド等を示す模式図
【図５】同実施形態における効果を説明するための模式図
【図６】本発明の第２の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図
【図７】同実施形態における概略構成及びデータの流れを示す模式図
【図８】本発明の第３の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図
【図９】同実施形態におけるチャレンジ要求のコマンド等を示す模式図
【図１０】本発明の第４の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図
【図１１】同実施形態における動作を説明するためのシーケンス図
【図１２】本発明の第５の実施形態に係るＩＣカード利用装置及びＩＣカードの構成及びデータの流れを示す模式図
【図１３】同実施形態におけるコマンドの暗号化動作を示す模式図
【図１４】同実施形態におけるコマンドの復号動作を示す模式図
【図１５】同実施形態におけるレスポンスの暗号化動作を示す模式図
【図１６】同実施形態におけるレスポンスの復号動作を示す模式図
【図１７】本発明の第６の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図
【図１８】同実施形態における変形構成を示す模式図
【図１９】本発明の第７の実施形態に係るＩＣカード利用装置及びＩＣカードの構成を示す模式図
【図２０】同実施形態における変形構成を示す模式図
【符号の説明】
１０，１０ａ〜１０ｈ…ＩＣカード利用装置
２０，２０ａ〜２０ｄ…ＩＣカード
２１…要求受付処理部
２２，４２…公開鍵暗号／復号処理部
２３，４３…共通鍵暗号／復号処理部
３０…上位アプリケーション部
３０Ｓ，４０Ｓ，８５Ｓ…ディジタル署名
４０，４０ａ〜４０ｄ…ミドルウェア部
４１…接続制御部
５０…Ｒ／Ｗドライバ部
５１，５２…不正プログラム
６０…カードＲ／Ｗ部
７０…アプリケーションソフトウェア部
８０，８２…アプリ検査部
８０ｆ…アプリ検査装置
８１…検査処理部
８３…ミドルウェア検査部
８４…ミドル検査部
８５…JavaVM
８６…JavaVM検査部
８７…JavaVM検査装置
【図１】
0003749640.tif 000002
【図２】
0003749640.tif 000003
【図３】
0003749640.tif 000004
【図４】
0003749640.tif 000005
【図５】
0003749640.tif 000006
【図６】
0003749640.tif 000007
【図７】
0003749640.tif 000008
【図８】
0003749640.tif 000009
【図９】
0003749640.tif 000010
【図１０】
0003749640.tif 000011
【図１１】
0003749640.tif 000012
【図１２】
0003749640.tif 000013
【図１３】
0003749640.tif 000014
【図１４】
0003749640.tif 000015
【図１５】
0003749640.tif 000016
【図１６】
0003749640.tif 000017
【図１７】
0003749640.tif 000018
【図１８】
0003749640.tif 000019
【図１９】
0003749640.tif 000020
【図２０】
0003749640.tif 000021