(57)【要約】 【課題】  暗号通信処理の処理効率を向上させることができる暗号通信鍵管理装置等を提供する。【解決手段】  ＩＣチップ１Ａは、自己と通信相手の秘密鍵と公開鍵を用いる鍵交換プロトコルにより共有鍵情報を取得し、共有鍵情報から鍵データ及び鍵データを管理するための第１と第２のパラメータを複数組抽出し、抽出した鍵データを、アクセス時に前記第１と第２のパラメータのうちの一方のパラメータによる認証が必要とされるメモリ領域に格納する。そして、ＩＣチップ１Ａは、鍵データをアクセスするために必要な一方のパラメータを通信相手から取得し、他方のパラメータを通信相手に対して出力し、取得した一方のパラメータを用いてメモリ領域にアクセスし、鍵データを取得し、取得した鍵データをセッション鍵のデータとして通信機器２Ａに出力する。【選択図】  図４
2006222734.tif 000002
【特許請求の範囲】
【請求項１】
自己と通信相手の秘密鍵と公開鍵を用いる鍵交換プロトコルにより共有鍵情報を取得する手段と、
前記共有鍵情報から鍵データ及び鍵データを管理するための第１と第２のパラメータを複数組抽出する抽出手段と、
前記抽出手段により抽出された鍵データを、アクセス時に前記第１と第２のパラメータのうちの一方のパラメータによる認証が必要とされるメモリ領域に格納する手段と、
第１と第２のパラメータのうちの前記一方のパラメータを通信相手から取得し、他方のパラメータを通信相手に対して出力する手段と、
取得した前記一方のパラメータを用いてメモリ領域にアクセスし、鍵データを取得する取得手段と、
前記取得手段により取得した鍵データをセッション鍵のデータとして出力する手段と、
を備える暗号通信鍵管理装置。
【請求項２】
当該暗号通信鍵管理装置はＩＣチップを含む、
ことを特徴とする請求項１に記載の暗号通信鍵管理装置。
【請求項３】
前記他方のパラメータは、通信相手の暗号通信鍵管理装置により、当該通信相手の暗号通信鍵管理装置のメモリ領域に格納された鍵データにアクセスする際の認証に使用される、
ことを特徴とする請求項１又は２に記載の暗号通信鍵管理装置。
【請求項４】
コンピュータを、
自己と通信相手の秘密鍵と公開鍵を用いる鍵交換プロトコルにより共有鍵情報を取得する手段、
前記共有鍵情報から鍵データ及び鍵データを管理するための第１と第２のパラメータを複数組抽出する抽出手段、
前記抽出手段により抽出された鍵データを、アクセス時に前記第１と第２のパラメータのうちの一方のパラメータによる認証が必要とされるメモリ領域に格納する手段、
第１と第２のパラメータのうちの前記一方のパラメータを通信相手から取得し、他方のパラメータを通信相手に対して出力する手段、
取得した前記一方のパラメータを用いてメモリ領域にアクセスし、鍵データを取得する取得手段、
前記取得手段により取得した鍵データをセッション鍵のデータとして出力する手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークを介した暗号通信において使用される暗号鍵を生成・管理するための暗号通信鍵管理装置等に関する。
【背景技術】
【０００２】
インターネット等のネットワークを介した通信をより安全に行うためのＶＰＮ（Virtual Private Network）と呼ばれる暗号通信技術が知られている。ＶＰＮでは、ＩＰｓｅｃ（IP Security）と呼ばれるセキュリティプロトコルとＩＫＥ（Internet Key Exchange）と呼ばれる鍵交換プロトコルを採用している。このＩＫＥによる鍵交換方法では、共有鍵（セキュアチャネル鍵）について所定の暗号化処理等を行うことにより通信データを暗号化するためのセッション鍵を取得する。このセッション鍵（暗号通信鍵）は一定時間毎等の所定のタイミングで更新される。
【０００３】
また、ＩＣカードに格納された鍵を用いて暗号通信を行うことにより、通信機器間での暗号通信を安全に行うためのシステムもある（特許文献１）。
【０００４】
【特許文献１】特開２００４−４０２７８号公報（第４、５頁、第２図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記のＩＫＥによる鍵交換方式等では、セッション鍵を得るためのセキュアチャネル鍵等の暗号化処理に長時間を要するため、スループットが低下してしまうという問題があった。
また、通信機器の内部を分解・解析することで、鍵に関する情報が不正に取得されてしまう虞があった。
【０００６】
本発明は、上記実状に鑑みてなされたものであり、暗号通信処理の処理効率を向上させることができる暗号通信鍵管理装置等を提供することを目的とする。
また、本発明は、より安全に暗号通信処理を行うことができる暗号通信鍵管理装置等を提供することを他の目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明の第１の観点に係る暗号通信鍵管理装置は、
自己と通信相手の秘密鍵と公開鍵を用いる鍵交換プロトコルにより共有鍵情報を取得する手段と、
前記共有鍵情報から鍵データ及び鍵データを管理するための第１と第２のパラメータを複数組抽出する抽出手段と、
前記抽出手段により抽出された鍵データを、アクセス時に前記第１と第２のパラメータのうちの一方のパラメータによる認証が必要とされるメモリ領域に格納する手段と、
第１と第２のパラメータのうちの前記一方のパラメータを通信相手から取得し、他方のパラメータを通信相手に対して出力する手段と、
取得した前記一方のパラメータを用いてメモリ領域にアクセスし、鍵データを取得する取得手段と、
前記取得手段により取得した鍵データをセッション鍵のデータとして出力する手段と、
を備えることを特徴とする。
【０００８】
当該暗号通信鍵管理装置はＩＣチップを含んでもよい。
【０００９】
前記他方のパラメータは、通信相手の暗号通信鍵管理装置により、当該通信相手の暗号通信鍵管理装置のメモリ領域に格納された鍵データにアクセスする際の認証に使用されてもよい。
【００１０】
また、この発明の第２の観点に係るプログラムは、
コンピュータを、
自己と通信相手の秘密鍵と公開鍵を用いる鍵交換プロトコルにより共有鍵情報を取得する手段、
前記共有鍵情報から鍵データ及び鍵データを管理するための第１と第２のパラメータを複数組抽出する抽出手段、
前記抽出手段により抽出された鍵データを、アクセス時に前記第１と第２のパラメータのうちの一方のパラメータによる認証が必要とされるメモリ領域に格納する手段、
第１と第２のパラメータのうちの前記一方のパラメータを通信相手から取得し、他方のパラメータを通信相手に対して出力する手段、
取得した前記一方のパラメータを用いてメモリ領域にアクセスし、鍵データを取得する取得手段、
前記取得手段により取得した鍵データをセッション鍵のデータとして出力する手段、
として機能させる。
【発明の効果】
【００１１】
本発明によれば、暗号通信処理の処理効率を向上させることができる。また、より安全に暗号通信処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係る暗号通信鍵管理装置について図面を参照して説明する。なお、本実施形態では、暗号通信鍵管理装置をＩＣチップにより実現した場合を例に説明する。
本発明の実施形態に係る暗号通信鍵管理装置（ＩＣチップ）を含む通信システムの構成例を図１に示す。この通信システムはＩＣチップ１が装着された通信機器２を備え、各通信機器２はネットワーク１０を介して接続されている。
【００１３】
ＩＣチップ１は、ＣＰＵ１１と、メモリ１２と、入出力Ｉ／Ｆ（インタフェース）１３と、を備える。
ＣＰＵ１１は、メモリ１２に記憶される動作プログラムを実行することにより、通信機器２間でやり取りするデータを暗号化するための鍵（セッション鍵）の生成・管理に関する共有鍵情報取得処理、セッション鍵出力処理等を行う。なお、共有鍵情報取得処理、セッション鍵出力処理において、通信相手先のＩＣチップ１とのデータのやり取りは、ＩＣチップ１が装着されている通信機器２を介して行う。
【００１４】
共有鍵情報取得処理では、ＣＰＵ１１は、メモリ１２に記憶されている公開鍵ペア（公開鍵証明書と秘密鍵）を用いて、通信相手のＩＣチップ１との間でチャレンジ・レスポンス認証処理等を行い、互いに識別認証（相互認証）する。そして、識別認証が相互に成功した場合、ＣＰＵ１１は、公開鍵ペア、識別認証で生成した乱数等を用いて、ＤＨ（Diffie-Hellman）法等の鍵交換プロトコルに従って相手先のＩＣチップ１との間で鍵交換処理を行い、共有鍵情報を取得する。そして、ＣＰＵ１１は、取得した共有鍵情報から、鍵データＳＫｉ（ｉ＝１〜ｎ）と、ＩＤｉと、鍵データＳＫｉを管理するパラメータＶＡＫｉ及びＶＢＫｉと、を複数組抽出する。具体的には、例えば共有鍵情報を予め定められたサイズで区切ることにより、鍵データＳＫｉ、ＩＤｉ、パラメータＶＡＫｉ、パラメータＶＢＫｉを抽出してもよい。
【００１５】
そして、ＣＰＵ１１は、抽出した各鍵データＳＫｉ、ＩＤｉ、パラメータＶＡＫｉ、パラメータＶＢＫｉをメモリ１２の所定領域に記憶する。具体的には、ＩＣチップ１が相互認証の開始側である場合には、パラメータＶＡＫｉを、相手先に供給する「鍵（相手側の鍵データＳＫｉを取り出すために必要とされる鍵）」としてＩＤｉに対応付けてメモリ１２の所定領域Ｘに格納し、また、相互認証認証の応答側である場合には、パラメータＶＢＫｉを、相手先に供給する「鍵」としてＩＤｉに対応付けて所定領域Ｘに格納する。この「鍵」として格納されたパラメータには、鍵として格納されたということを示す「鍵識別コード」を付与する。また、ＣＰＵ１１は、相互認証の開始側である場合には、メモリ１２の所定領域Ｙに、相手先のメモリ領域に「鍵」として格納されるパラメータ（ＶＢＫｉ）を「錠」としてＩＤｉに対応付けて鍵データＳＫｉを格納し、また、相互認証の応答側である場合には、メモリ１２の所定領域Ｙに、相手先のメモリ領域に「鍵」として格納されるパラメータ（ＶＡＫｉ）を「錠」としてＩＤｉに対応付けて鍵データＳＫｉを格納する。これにより、ＩＣチップ１のメモリ１２の領域Ｘ、Ｙには、通信相手のＩＣチップ１と対向する形で、鍵データや鍵を管理するパラメータが格納される。
【００１６】
セッション鍵出力処理では、領域Ｘに格納されているパラメータ（ＶＡＫｉ又はＶＢＫｉ）を相手先のＩＣチップ１に対してＩＤｉとともに送信し、相手先のＩＣチップ１から受け取ったパラメータ（ＶＢＫｉ又はＶＡＫｉ）を用いてメモリ１２の領域Ｙにアクセスして鍵データＳＫｉ（セッション鍵）を取得し、通信機器２に対して出力する。
【００１７】
メモリ１２は、ＲＯＭ、ＲＡＭ等から構成され、ＣＰＵ１１が実行するための動作プログラム及び処理に必要な各種データ、ＩＣチップ１の公開鍵ペア（公開鍵証明書（公開鍵を含む）と秘密鍵）等を記憶する。また、メモリ１２は、パラメータＶＡＫｉ又はＶＢＫｉがＩＤｉと対応付けて記憶される領域Ｘと、鍵データＳＫｉがＩＤｉに対応付けて記憶される領域Ｙと、を備える。領域Ｙ内の鍵データＳＫｉの格納領域は、パラメータＶＢＫｉ又はＶＡＫｉを鍵とするアクセス制御がなされる領域である。
入出力Ｉ／Ｆ１３は、ＩＣチップ１と通信機器２との間の通信を制御する。
【００１８】
通信機器２は、例えばルータ、パーソナルコンピュータ、携帯端末等を含み、制御部２１、記憶部２２、通信部２３、入出力Ｉ／Ｆ２４と、を備えるコンピュータから構成される。
制御部２１は、ＣＰＵ、ＲＯＭ、ＲＡＭ等より構成され、記憶部２２に記憶される動作プログラムを実行することにより、他の通信機器２との暗号通信等の各種処理を行う。他の通信機器２との暗号通信処理では、ＩＣチップ１と連動して、通信データを暗号化／復号化するためのセッション鍵を取得し、取得したセッション鍵を用いて暗号通信を行う。
記憶部２２は、例えばハードディスク装置等から構成され、制御部２１により実行されるプログラム及び各種データ等を記憶する。
通信部２３は、ネットワーク１０を介した他の通信機器２とのデータ通信を行う。
入出力Ｉ／Ｆ２４は、ＩＣチップ１との通信を制御する。
【００１９】
次に、本実施形態に係る暗号通信鍵管理装置（ＩＣチップ１）の処理動作を、２つの通信機器２Ａ、２Ｂの間で暗号通信を行う場合を例に説明する。初めに、共有鍵情報取得処理について図２のフローチャートを参照して具体的に説明する。なお、以下の共有鍵情報取得処理及びセッション鍵出力処理の説明において、通信機器２Ａ、２Ｂに装着されているＩＣチップ１をそれぞれＩＣチップ１Ａ、１Ｂと呼び、ＩＣチップ１Ａ、１ＢにおけるＣＰＵ１１をそれぞれＣＰＵ１１Ａ、ＣＰＵ１１Ｂと呼ぶ。
【００２０】
例えば通信機器２Ａは、通信機器２Ｂと暗号通信を行うために、ＩＣチップ１Ａに対して暗号通信開始要求を送信する。この要求に応答して、ＩＣチップ１ＡのＣＰＵ１１Ａは、通信機器１Ａを介して、通信相手先の通信機器１Ｂに装着されているＩＣチップ１Ｂに対して相互認証要求を送信する。そして、ＩＣチップ１Ａ、１ＢのＣＰＵ１１Ａ、１１Ｂは、チャレンジ・レスポンス認証処理等の相互認証処理を行う（ステップＳ１）。
ステップＳ１の認証が成功した場合（ステップＳ２：ＹＥＳ）、ＩＣチップ１Ａ、１ＢのＣＰＵ１１Ａは、例えば、相互認証で用いた公開鍵ペアや生成した乱数等を用いて、ＤＨ（Diffie-Hellman）法等の鍵交換プロトコルに従って相手先のＩＣチップ１との間で鍵交換処理を行って共有鍵情報を生成・取得し、これを例えば予め定められたサイズで区切る等して、鍵データＳＫｉ（ｉ＝１〜ｎ）、ＩＤｉ、パラメータＶＡＫｉ、パラメータＶＢＫｉを複数組（ｎ組）抽出する（ステップＳ３）。
【００２１】
次に、ＣＰＵ１１Ａ、１１Ｂは、自己が相互認証の開始側であるか否かを判別する（ステップＳ４）。
ＩＣチップ１Ａの場合、相互認証の開始側であるため（ステップＳ４：ＹＥＳ）、ＩＣチップ１ＡのＣＰＵ１１Ａは、変数ｉ＝１を設定した後（ステップＳ５）、パラメータＶＡＫｉを、鍵として格納されたということを示す「鍵識別コード」を付与し、ＩＤｉに対応付けて、アクセスフリーの領域Ｘに保管（記憶）する（ステップＳ６）。このパラメータＶＡＫｉは、相手先のＩＣチップ１Ｂから鍵データＳＫｉを取り出すために必要な鍵として機能する。
次に、ＣＰＵ１１Ａは、鍵データＳＫｉを、ＩＤｉに対応付けて、アクセスが制御される領域Ｙに保管（記憶）する（ステップＳ７）。ＣＰＵ１１Ａは、この領域Ｙについて、鍵データＳＫｉの領域にアクセスの際には「鍵識別コード」が付与されたパラメータＶＢＫｉによる認証が必要であるよう設定する。
次に、ＣＰＵ１１Ａは、ｉに１だけ加算し（ステップＳ８）、ｉがｎを超えたか（すなわち、抽出した全ての鍵データＳＫｉやパラメータＶＡＫｉ、ＶＢＫｉ等について上記処理が終了したか）を判定し（ステップＳ９）、ｉがｎを超えていない場合には（ステップＳ９：ＮＯ）、ステップＳ６に戻る。また、ｉがｎを超えた場合には（ステップＳ９：ＹＥＳ）、共有鍵情報取得処理を終了する。
【００２２】
一方、ステップＳ４において、通信機器２Ａの通信相手先の通信機器２Ｂに装着されているＩＣチップ１Ｂの場合、相互認証の応答側であるため（ステップＳ４：ＮＯ）、ＩＣチップ１ＢのＣＰＵ１１Ｂは、変数ｉ＝１を設定した後（ステップＳ１０）、パラメータＶＢＫｉを、「鍵識別コード」を付与し、ＩＤｉに対応付けて、アクセスフリーの領域Ｘに保管（記憶）する（ステップＳ１１）。このパラメータＶＢＫｉは、相手先のＩＣチップ１Ａから鍵データＳＫｉを取り出すために必要な鍵として機能する。
次に、ＣＰＵ１１Ｂは、鍵データＳＫｉを、ＩＤｉに対応付けて、アクセスが制御される領域Ｙに保管（記憶）する（ステップＳ１２）。ＣＰＵ１１Ｂは、この領域Ｙについて、鍵データＳＫｉの領域にアクセスの際には「鍵識別コード」が付与されたパラメータＶＡＫｉによる認証が必要であるよう設定する。
次に、ＣＰＵ１１Ｂは、ｉに１だけ加算し（ステップＳ１３）、ｉがｎを超えたか（すなわち、抽出した全ての鍵データＳＫｉやパラメータＶＡＫｉ、ＶＢＫｉ等について上記処理が終了したか）を判定し（ステップＳ１４）、ｉがｎを超えていない場合には（ステップＳ１４：ＮＯ）、ステップＳ１１に戻る。また、ｉがｎを超えた場合には（ステップＳ１４：ＹＥＳ）、共有鍵情報取得処理を終了する。
【００２３】
なお、ステップＳ２の認証が失敗した場合（ステップＳ２：ＮＯ）、エラー信号を各通信機器２に送る等の所定のエラー処理を行う（ステップＳ１５）。
【００２４】
例えば、上述した共有鍵情報取得処理が終了すると、次に、各ＩＣチップ１Ａ、１Ｂでは、セッション鍵出力処理が実行される。このセッション鍵出力処理について、図３のフローチャートを参照して説明する。
【００２５】
ＣＰＵ１１Ａ、Ｂは、変数ｉに１を設定した後（ステップＳ２１）、自己が先の共有鍵情報取得処理における相互認証の開始側であるか否かを判別する（ステップＳ２２）。
ＩＣチップ１Ａの場合、相互認証の開始側であるため（ステップＳ２２：ＹＥＳ）、ＩＣチップ１ＡのＣＰＵ１１Ａは、メモリ１２の領域Ｘから、ＩＤｉと対応するパラメータ（この場合ＶＡＫｉ）を読み出し、相手先のＩＣチップ１Ｂに対して出力する（ステップＳ２３）。出力されたパラメータＶＡＫｉは、通信機器２Ａによりネットワーク１０を介して通信機器２Ｂに送信され、ＩＣチップ１Ｂに渡される。
次に、ＩＣチップ１ＡのＣＰＵ１１Ａは、通信機器１Ａが受信した、相手先のＩＣチップ２Ｂから出力されたＩＤｉとパラメータＶＢＫｉを受け取ると（ステップＳ２４）、そのパラメータＶＢＫｉを鍵にして、メモリ１２の領域ＹにおけるＩＤｉの領域にアクセスするための認証（Verify）を行う（ステップＳ２５）。ステップＳ２５の認証が成功した場合（ステップＳ２６：ＹＥＳ）、メモリ１２の領域ＹのＩＤｉの領域からＳＫｉを読み出してセッション鍵として通信機器２Ａに対して出力する（ステップＳ２７）。そして、ｉに１だけ加算し（ステップＳ２８）、ｉがｎ以下であるか（すなわち、共有鍵情報取得処理で取得した鍵を全てセッション鍵として出力したか）を判定する（ステップＳ２９）。ｉがｎ以下である場合には（ステップＳ２９：ＹＥＳ）、ＣＰＵ１１Ａは、通信機器２Ａからセッション鍵の要求があるかを判別し（ステップＳ３０）、要求がある場合には（ステップＳ３０：ＹＥＳ）、ステップＳ２２に戻って次の鍵データＳＫｉを出力するための処理を行う。また、ステップＳ３０において、通信機器２Ａからセッション鍵の要求がない場合には、ステップＳ２９に戻る。なお、セッション鍵は、例えば所定時間毎に破棄され、新たな鍵が使用される。
【００２６】
一方、ステップＳ２２において、通信機器２Ａの通信相手先の通信機器２Ｂに装着されているＩＣチップ１Ｂの場合、相互認証の応答側であるため（ステップＳ２２：ＮＯ）、ＩＣチップ１ＢのＣＰＵ１１Ｂは、相手先のＩＣチップ１Ａから出力されたＩＤｉと対応するパラメータＶＡＫｉを通信機器２Ｂから受け取り（ステップＳ３１）、受け取ったＩＤｉに対応するパラメータ（この場合、ＶＢＫｉ）をメモリ１２の領域Ｘから読み出し、相手先のＩＣチップ１Ａに対して出力する（ステップＳ３２）。出力されたパラメータＶＢＫｉは、通信機器２Ｂによりネットワーク１０を介して通信機器２Ａに送信され、ＩＣチップ１Ａに渡される。
次に、ＩＣチップ１ＢのＣＰＵ１１Ｂは、ステップＳ３１で受け取ったパラメータＶＡＫｉを鍵にして、メモリ１２の領域ＹにおけるＩＤｉの領域にアクセスするための認証（Verify）を行う（ステップＳ３３）。ステップＳ３３の認証が成功した場合（ステップＳ３４：ＹＥＳ）、メモリ１２の領域ＹのＩＤｉの領域からＳＫｉを読み出してセッション鍵として通信機器２Ｂに対して出力する（ステップＳ３５）。そして、ｉに１だけ加算し（ステップＳ２８）、ｉがｎ以下であるかを判定する（ステップＳ２９）。ｉがｎ以下である場合には（ステップＳ２９：ＹＥＳ）、ＣＰＵ１１Ｂは、通信機器２Ｂからセッション鍵の要求があるかを判別し（ステップＳ３０）、要求がある場合には（ステップＳ３０：ＹＥＳ）、ステップＳ２２に戻って次の鍵データＳＫｉを出力するための処理を行う。また、ステップＳ３０において、通信機器２Ａからセッション鍵の要求がない場合には、ステップＳ２９に戻る。
【００２７】
ステップＳ２６、Ｓ３４において、認証が失敗した場合、セション鍵の出力が失敗した旨のエラー信号を通信機器１に送信する等のエラー処理を行う（ステップＳ３６）。
また、ステップＳ２９において、ｉがｎを超えた場合には（ステップＳ２９：ＮＯ）、共有鍵情報取得処理を実行する。
なお、ＩＣチップ１のＣＰＵ１１Ａ、Ｂは、例えば、通信機器２からの暗号通信の終了通知等に応答して本セッション鍵出力処理を終了する。
【００２８】
上述の共有鍵情報取得処理とセッション鍵出力処理によれば、図４に示すように、ＩＣチップ１Ａ、１Ｂは、相互認証を行った後（Ｌ１）、鍵交換処理により共有情報を生成して取得し（Ｌ２）、取得した共有情報から、鍵データＳＫ１〜ＳＫｎ、ＩＤ１〜ＩＤｎ、鍵を管理するためのパラメータＶＡＫ１〜ＶＡＫｎ、ＶＢＫ１〜ＶＢＫｎを抽出する（Ｌ３）。
そして、鍵交換の開始側のＩＣチップ１Ａは、メモリ１２の領域ＸにパラメータＶＡＫ１〜ＶＡＫｎを格納し、領域Ｙに鍵ＳＫ１〜ＳＫｎを格納し、領域ＹへのアクセスにはパラメータＶＢＫ１〜ＶＢＫｎを鍵とする認証が必要とされるよう設定する。一方、鍵交換の応答側のＩＣチップ１Ｂは、領域ＸにパラメータＶＢＫ１〜ＶＢＫｎを格納し、領域Ｙに鍵データＳＫ１〜ＳＫｎを格納し、領域ＹへのアクセスにはパラメータＶＡＫ１〜ＶＡＫｎを鍵とする認証が必要とされるよう設定する。これにより、各ＩＣチップ１のメモリ１２の領域Ｘ、Ｙには、通信相手のＩＣチップ１と対向する形で、鍵データや鍵を管理するパラメータが格納される（Ｌ４）。なお、鍵交換処理により交換できる情報は公開鍵の長さなどに依存し、例えば２５６バイト程度が可能である。一方で、セッション鍵は例えば１６バイト程度と短いため、鍵データやパラメータ等のセットを複数共有することができる。
【００２９】
そして、通信機器２間で暗号通信を行うときに、相互認証の開始側のＩＣチップ１Ａが、ＩＤｉとパラメータＶＡＫｉを領域Ｘから読み出してＩＣチップ１Ｂに対して出力し、ＩＣチップ１Ｂが、ＩＣチップ１Ａから出力されたＩＤｉとＶＡＫｉを受け取り、領域Ｙ内のＩＤｉに対応する領域にアクセスするための認証をパラメータＶＡＫｉを用いて行い、鍵データＳＫｉを取得する（Ｌ５）。同様に、ＩＣチップ１Ａにおいても、ＩＣチップ１ＢからＩＤｉとパラメータＶＢＫｉを受け取り、領域ＹにおけるＩＤｉに対応する領域にアクセスするための認証をパラメータＶＢＫｉを用いて行い、鍵データＳＫｉを取得する（Ｌ５）。このとき、領域Ｙ内の各領域でのアクセス制御は、認証（Verify）、つまり複雑な演算ではなく、比較だけの処理のため高速な処理が可能となる。
【００３０】
次に、各ＩＣチップ１Ａ、１Ｂは、取得した鍵データＳＫｉをセッション鍵としてそれぞれ対応する通信機器２に出力する（Ｌ６）。各通信機器２は、ＩＣチップ１Ａ、１Ｂから出力されたセッション鍵を受け取り、これを用いて、通信データの暗号化／復号化を行う（Ｌ７）。
【００３１】
以上説明したように、本発明によれば、秘密鍵と公開鍵を用いる鍵交換プロトコルにより取得した共有鍵情報から、複数の鍵（セッション鍵）と鍵を管理するパラメータを抽出し、抽出した複数の鍵データを、通信相手から受け取ったパラメータによる認証が必要なメモリ領域に格納する。これにより、確実な識別認証が実現できる。また、暗号化処理を行うことなく一の共有鍵情報から複数のセッション鍵を取得できるため、鍵の生成にかかる処理時間が削減され、暗号通信処理の処理効率が向上する。また、鍵データや鍵を管理するパラメータの保管や鍵の生成・管理をＩＣチップが行うことにより安全性を保持できる。また、複数の通信機器と通信を行う場合においても、通信相手毎に鍵及びパラメータがＩＤと対応付けて管理されるため鍵の管理が容易であり、ＩＤにより対向する機器も判別可能である。また、より安全なＶＰＮパスを複数同時に利用可能とすることができる。
【００３２】
なお、本発明は種々の変形及び応用が可能である。
上記実施形態では、暗号通信鍵管理装置をＩＣチップにより実現した場合について説明しているが、これに限定されず、例えばＩＣカード等のような他の耐タンパ性を有する装置により実現してもよい。
また、上述した説明では、通信を行うＩＣチップ１のそれぞれが共有鍵情報を生成する処理を行うようにしているが、これに限定されず、例えば、認証開始側と応答側のどちらかが行ってもよく、また、実行するタイミングも任意である。
【００３３】
なお、この発明のシステムは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムを、コンピュータにインストールすることにより、上述の処理を実行するＩＣチップ１、通信機器２を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が有するディスク装置にプログラムを格納しておき、コンピュータにダウンロード等するようにしてもよい。
また、上述の機能を、ＯＳが分担又はＯＳとアプリケーションの共同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態の暗号通信鍵管理装置（ＩＣチップ）を含む通信システムの構成例を示す図である。
【図２】共有鍵情報取得処理を説明するためのフローチャートである。
【図３】セッション鍵出力処理を説明するためのフローチャートである。
【図４】図１の通信システムにおいて、通信機器がＩＣチップからセッション鍵を受け取け取るまでの処理の流れを説明するための図である。
【符号の説明】
【００３５】
１                ＩＣチップ
１１              ＣＰＵ
１２              メモリ
１３              入出力Ｉ／Ｆ
２                通信機器
２１              制御部
２２              記憶部
２３              通信部
２４              入出力Ｉ／Ｆ
【図１】
2006222734.tif 000003
【図２】
2006222734.tif 000004
【図３】
2006222734.tif 000005
【図４】
2006222734.tif 000006