(57)【特許請求の範囲】
【請求項１】
秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、第２の公開鍵情報を記憶する第３の記憶手段と、秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を求める第１の演算手段とを有する代行パラメータ生成装置において、
上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第２の記憶手段に記憶される上記第１の公開鍵情報とに基づいて、上記第１の演算手段により得られた情報を第１の共通鍵情報とし、上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第３の記憶手段に記憶される上記第２の公開鍵情報とに基づいて、上記第１の演算手段により得られた情報を第２の共通鍵情報として、上記第１の共通鍵情報と上記第２の共通鍵情報とに基づいて、鍵共有処理を代行させる代行装置に与える代行パラメータ情報を求める第２の演算手段と、
上記第２の演算手段による演算結果を出力する出力手段と
を備えることを特徴とする代行パラメータ情報生成装置。
【請求項２】
上記第１の演算手段からの上記共通鍵情報を整数に変換する整数変換手段を更に備え、
上記第１の共通鍵情報は、ｇを巡回群＜Ｇ，・＞の生成元とし、整数ｘを上記第１の記憶手段に記憶されている上記秘密鍵情報とし、ある整数ｖに対してＰ＿Ｖ＝ｇ＾ｖが上記第２の記憶手段に記憶されている上記第１の公開鍵情報であるとしたとき、Ｐ＿Ｖ＾ｘで表され、
上記第２の共通鍵情報は、ある整数ｄに対してＰ＿Ｄ＝ｇ＾ｄが上記第３の記憶手段に記憶されている上記第２の公開鍵情報であるとしたとき、Ｐ＿Ｄ＾ｘで表され、
上記第２の演算手段は、上記第１の共通鍵情報と、上記整数変換手段により上記第２の共通鍵情報を整数に変換した結果ａとに基づいて、上記代行パラメータ情報Ｔを（Ｐ＿Ｖ＾ｘ）＾ａとして算出するものである
ことを特徴とする請求項１に記載の代行パラメータ生成装置。
【請求項３】
上記第１の記憶手段に記憶されている上記秘密鍵情報は、ＳをＩＤベース暗号における秘密鍵生成局のマスター秘密鍵とし、Ｆ（ＩＤ）をＩＤ情報を巡回群Ｇ＿１の元への写像するマッピング関数としたとき、あるＩＤ情報ＩＤ＿Ｘの写像Ｐ＿Ｘ＝Ｆ（ＩＤ＿Ｘ）に対してＰ＿Ｘ＾ｓで表され、
上記第１の共通鍵情報は、ｅ（・，・）を巡回群Ｇ１の２つの元を巡回群Ｇ＿２の元に写像する双線形写像ｅ：Ｇ１×Ｇ１→Ｇ２とし、あるＩＤ情報ＩＤ＿Ｖに対してＰ＿Ｖ＝Ｆ（ＩＤ＿Ｖ）が上記第２の記憶手段に記憶されている上記第１の公開鍵情報であるとしたとき、ｅ（Ｐ＿Ｘ＾ｓ，Ｐ＿Ｖ）で表され、
上記第２の共通鍵情報は、あるＩＤ情報ＩＤ＿Ｄに対してＰ＿Ｄ＝Ｆ（ＩＤ＿Ｄ）が上記第３の記憶手段に記憶されている上記第２の公開鍵情報であるとしたとき、ｅ（Ｐ＿Ｘ＾ｓ，Ｐ＿Ｄ）で表され、
上記第２の演算手段は、上記代行パラメータ情報をＴ＝ｅ（Ｐ＿Ｘ＾ｓ，Ｐ＿Ｖ）＾ｅ（Ｐ＿Ｘ＾ｓ，Ｐ＿Ｄ）として算出するものである
ことを特徴とする請求項１に記載の代行パラメータ生成装置。
【請求項４】
秘密鍵情報を記憶する第１の記憶手段と、公開鍵情報を入力する入力手段と、第１の公開鍵情報を記憶する第２の記憶手段と、秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を計算する第１の演算手段と、乱数情報を記憶する第３の記憶手段とを有する代行装置において、
被代行装置の鍵共有処理に係る代行パラメータ情報を記憶する第４の記憶手段と、
上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第２の記憶手段に記憶される上記第１の公開鍵情報とに基づいて上記第１の演算手段により得られた第１の共通鍵情報と、上記第３の記憶手段に記憶されている上記代行パラメータ情報とに基づいて、第２の共通鍵情報とを求める第２の演算手段と、
上記第２の演算手段による演算結果を出力する出力手段と
を備えることを特徴とする代行装置。
【請求項５】
上記第１の演算手段からの上記共通鍵情報を整数に変換する整数変換手段を更に備え、
上記第１の共通鍵情報は、ｇを巡回群＜Ｇ，・＞の生成元とし、整数ｄを第１の記憶部に記憶されている秘密鍵情報とし、ある整数Ｘに対してＰ＿Ｘ＝ｇ＾ｘを上記第２の記憶手段に記憶されている上記第１の公開鍵情報であるとしたとき、Ｐ＿Ｘ＾ｄで表され、
上記第２の演算手段は、
上記第３の記憶手段に記憶されている上記乱数情報をｒとし、上記第４の記憶手段に記憶されている上記代行パラメータ情報をＴとし、ａ＾（−１）を有限体Ｆｎの乗法群におけるａの逆元としたとき、上記整数変換手段により上記第１の公開鍵情報を整数に変換した値ａと、上記第３の記憶手段に記憶されている上記乱数情報ｒと、上記第４の記憶手段に記憶されている代行パラメータ情報Ｔとに基づいて、上記第２の共通鍵情報Ｋを（Ｔ＾（ａ＾（−１）））＾ｒとして算出するものである
ことを特徴とする請求項４に記載の代行装置。
【請求項６】
上記第１の共通鍵情報は、
ｓを秘密鍵生成局のマスター秘密鍵とし、Ｆ（ＩＤ）をＩＤ情報を巡回群Ｇ＿１の元への写像するマッピング関数とし、ｅ（・，・）を巡回群Ｇ１の２つの元を巡回群Ｇ＿２の元に写像する双線形写像ｅ：Ｇ１×Ｇ１→Ｇ２とし、あるＩＤ情報ＩＤ＿Ｄの写像Ｐ＿Ｄ＝Ｆ（ＩＤ＿Ｄ）に対してＰ＿Ｄ＾ｓを上記第１の記憶手段に記憶されている上記秘密健情報とし、ＩＤ情報ＩＤ＿Ｘに対してＰ＿Ｘ＝Ｆ（ＩＤ＿Ｘ）が上記第２の記憶手段に記憶されている上記第１の公開鍵情報としたとき、ｅ（Ｐ＿Ｘ，Ｐ＿Ｄ＾ｓ）で表され、
上記第２の演算手段は、
ｒを上記第３の記憶手段に記憶されている乱数情報とし、Ｔを上記第４の記憶手段に記憶されている代行パラメータ情報としたとき、上記第１の共通鍵情報ｅ（Ｐ＿Ｘ，Ｐ＿Ｄ＾ｓ）と、上記乱数情報ｒと、上記代行パラメータ情報Ｔとに基づいて、上記第２の共通鍵情報Ｋを（Ｔ＾（ｅ（Ｐ＿Ｘ，Ｐ＿Ｄ＾ｓ）＾（１）））＾ｒとして算出するものである
ことを特徴とする請求項４に記載の代行装置。
【請求項７】
データを送受信する送受信手段と、
上記出力手段により出力された共通鍵情報を用いて共通鍵に基づくチャレンジ・アンド・レスポンス認証を行う認証手段と、
を更に備えることを特徴とする請求項４〜６のいずれかに記載の代行装置。
【請求項８】
第１の通信装置と第２の通信装置とが鍵共有をする場合に、上記第１の通信装置に代わって代行装置が上記第２の通信装置との鍵共有処理を代行する通信システムにおいて、
上記代行装置は、予め第２の通信装置との鍵共有処理に係る代行パラメータ情報を記憶しておき、
上記代行装置及び上記第２の通信装置は、上記第１の通信装置と上記第２の通信装置との間で鍵共有の必要が生じた場合には、上記代行装置と上記第２の通信装置との間で乱数情報を交換し、
上記第２の通信装置は、上記乱数情報と、上記第１の通信装置の公開鍵情報と上記第２の通信装置の秘密鍵情報とに基づいて共通鍵情報を求め、
上記代行装置は、上記乱数情報と上記代行パラメータ情報と上記第１の通信装置の公開鍵情報と上記代行装置の秘密鍵情報とに基づいて共通鍵情報を求め、
上記代行装置が、求めた上記共通鍵情報を上記第１の通信装置に送信する
ことを特徴とする通信システム。
【請求項９】
ｇを巡回群＜Ｇ、・＞の生成元とし、整数ｘを上記第１の通信装置の秘密鍵情報とし、Ｐ＿Ｘ＝ｇ＾ｘを上記第１の通信装置の公開鍵情報とし、整数ｖを上記第２の通信装置の秘密鍵情報とし、Ｐ＿Ｖ＝ｇ＾ｖを上記第２の通信装置の公開鍵情報とし、整数ｄを上記代行装置の秘密鍵情報とし、Ｐ＿Ｄ＝ｇ＾ｄを上記代行装置の公開鍵情報とするとき、
上記代行装置及び上記第２の通信装置は、上記共通鍵情報をＰ＿Ｄ＾ｘで求め、求めた上記共通鍵情報Ｐ＿Ｄ＾ｘを整数に変換した結果ａとしたとき、上記代行パラメータ情報Ｔを（Ｐ＿Ｖ＾ｘ）＾ａで求め、
上記代行装置は、上記乱数情報をｒとしたとき、上記乱数情報ｒと、上記代行パラメータ情報Ｔと、上記第１の通信装置の公開鍵情報Ｐ＿Ｘと上記代行装置の秘密鍵情報ｄとに基づく上記第１の通信装置との共通鍵情報Ｐ＿Ｘ＾ｄを整数に変換した結果ａと、に基づいて共通鍵情報Ｋを（Ｔ＾（ａ＾（−１）））＾ｒとして求め、
第２の通信装置は、上記乱数情報ｒと、上記第１の通信装置の公開鍵情報Ｐ＿Ｘと、上記第２の通信装置の秘密鍵情報ｖとに基づいて上記共通鍵情報ＫをＰ＿Ｘ＾ｖとして求める
ことを特徴とする請求項８に記載の通信システム。
【請求項１０】
ｓを秘密鍵生成局のマスター秘密鍵とし、Ｆ（ＩＤ）をＩＤ情報を第１の巡回群Ｇ＿１の元への写像するマッピング関数とし、ｅ（・，・）を巡回群Ｇ１の２つの元を第２の巡回群Ｇ＿２の元に写像する双線形写像ｅ：Ｇ１×Ｇ１→Ｇ２とし、Ｐ＿Ｘ＝Ｆ（ＩＤ＿Ｘ）∈Ｇ＿１を上記第１の通信装置の公開鍵とし、Ｐ＿Ｘ＾ｓを上記第１の通信装置の秘密鍵とし、Ｐ＿Ｄ＝Ｆ（ＩＤ＿Ｄ）∈Ｇ＿１を上記代行装置の公開鍵とし、Ｐ＿Ｄ＾ｓを上記第２の通信装置の秘密鍵とし、Ｐ＿Ｖ＝Ｆ（ＩＤ＿Ｖ）∈Ｇ＿１を上記第２の通信装置の公開鍵とし、Ｐ＿Ｖ＾ｓを上記第２の通信装置の秘密鍵としたとき、上記第１の通信装置と上記代行装置との共通鍵情報ａ＝ｅ（Ｐ＿Ｘ＾ｓ、Ｐ＿Ｄ）として計算したとき、
上記代行装置は、上記代行パラメータ情報Ｔを、ｅ（Ｐ＿Ｘ＾ｓ、Ｐ＿Ｖ）＾ａとして求め、
上記代行装置は、上記乱数情報をｒとしたとき、上記乱数情報ｒと、上記代行パラメータ情報Ｔと、上記第１の通信装置の公開鍵情報Ｐ＿Ｘと上記代行装置の秘密鍵情報ｄとに基づく共通鍵情報Ｋを（Ｔ＾（ｅ（Ｐ＿Ｘ，Ｐ＿Ｄ＾ｓ）＾（−１）））＾ｒとして求め、
上記第２の通信装置は、上記乱数情報ｒと、上記第１の通信装置の公開鍵情報Ｐ＿Ｘと、上記第２の通信装置の秘密鍵情報ｖとに基づいて、共通鍵情報Ｋをｅ（Ｐ＿Ｖ＾ｓ，Ｐ＿Ｘ）として求める
ことを特徴とする請求項８に記載の通信システム。
【請求項１１】
上記代行装置及び上記第２の通信装置は、上記代行装置と上記第２の通信装置の間で、上記共通鍵情報Ｋを用いて共通鍵に基づくチャレンジ・アンド・レスポンス認証を行うことを特徴とする請求項８〜１０のいずれかに記載の通信システム。
【請求項１２】
秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、第２の公開鍵情報を記憶する第３の記憶手段とを備え、
コンピュータを、
秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を求める第１の演算手段、
上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第２の記憶手段に記憶される上記第１の公開鍵情報とに基づいて、上記第１の演算手段により得られた情報を第１の共通鍵情報とし、上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第３の記憶手段に記憶される上記第２の公開鍵情報とに基づいて、上記第１の演算手段により得られた情報を第２の共通鍵情報として、上記第１の共通鍵情報と上記第２の共通鍵情報とに基づいて、鍵共有処理を代行させる代行装置に与える代行パラメータ情報を求める第２の演算手段
として機能させることを特徴とする代行パラメータ情報生成プログラム。
【請求項１３】
秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、乱数情報を記憶する第３の記憶手段と、被代行装置の鍵共有処理に係る代行パラメータ情報を記憶する第４の記憶手段とを備え、
コンピュータを、
秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を計算する第１の演算手段、
上記第１の記憶手段に記憶される上記秘密鍵情報と、上記第２の記憶手段に記憶される上記第１の公開鍵情報とに基づいて上記第１の演算手段により得られた第１の共通鍵情報と、上記第３の記憶手段に記憶されている上記代行パラメータ情報とに基づいて、第２の共通鍵情報とを求める第２の演算手段、
として機能させることを特徴とする代行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、代行パラメータ情報生成装置、代行装置、代行パラメータ情報生成プログラム、代行プログラム及び通信システムに関し、例えば、鍵交換処理、認証処理を、代行装置が通信装置に代わって安全に処理する場合に適用し得るものである。
【背景技術】
【０００２】
例えば、防災監視、交通制御、金融といった高い信頼性や品質が必要とされる社会インフラ分野で、センサ等を利用するためには、サービス提供サーバ等の通信装置とセンサ等の通信装置との間の通信の安全性を維持する必要がある。
【０００３】
センサ等の通信装置が、サービス提供サーバ等の通信装置とエンド・エンドの安全な通信路を確保するためには、サービス提供サーバ及びセンサ等が備える２つの通信装置間で、認証、鍵交換といったエンド・エンドの情報交換が必要になる。
【０００４】
ここで、センサ等の通信装置が省電力マルチホップネットワークを形成している場合を考える。省電力マルチホップネットワークとは、センサ等の各通信装置がバケツリレー方式でデータを配送し、自身がデータ配送に関与しないときは、スリープすることにより電力消費を抑えるネットワークである。
【０００５】
例えば、広範囲に膨大な数のセンサ等の通信装置が展開され、それぞれの通信装置とインターネット上のサーバ等の通信装置との間で、エンド・エンドの安全な通信路を確保したい場合、上述のエンド・エンドの情報交換が、省電力マルチホップネットワークの輻輳や、消費電力の増加や、処理時間の増加等の問題を引き起こす可能性がある。
【０００６】
上述の問題に対応できる従来技術として、特許文献１には、ＩＰｓｅｃ（Security  Architecture  for  Internet  Protocol）で必要になるエンド・エンドの鍵交換処理を、小型軽量化が要求される携帯電話機やＰＤＡ上へ導入するのは難点があるとして、上位ネットワーク側の装置に処理を代行させて、端末の負荷を軽減する方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１２８７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１の記載技術は、上位のネットワーク側の装置に処理を代行してもらうために、自身の認証鍵等の秘密情報を代行装置に預ける必要がある。
【０００９】
例えば、クラウド環境を利用したネットワーク上の代行装置を想定する場合や複数の代行装置を利用する場合には、秘密情報漏洩防止の観点から、代行装置に秘密情報を預けることはあまり好ましくなく、漏洩してもなりすまし等ができないような代行情報を用いる代行技術が重要になる。
【００１０】
そのため、秘密情報漏洩防止の観点から、通信装置間の通信に係る鍵交換処理・認証処理を代行することができる代行パラメータ情報生成装置、代行装置、代行パラメータ情報生成プログラム、代行プログラム及び通信システムが求められている。
【課題を解決するための手段】
【００１１】
かかる課題を解決するために、第１の本発明の代行パラメータ情報生成装置は、秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、第２の公開鍵情報を記憶する第３の記憶手段と、秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を求める第１の演算手段とを有する代行パラメータ生成装置において、（１）第１の記憶手段に記憶される秘密鍵情報と、第２の記憶手段に記憶される第１の公開鍵情報とに基づいて、第１の演算手段により得られた情報を第１の共通鍵情報とし、第１の記憶手段に記憶される秘密鍵情報と、第３の記憶手段に記憶される第２の公開鍵情報とに基づいて、第１の演算手段により得られた情報を第２の共通鍵情報として、第１の共通鍵情報と第２の共通鍵情報とに基づいて、鍵共有処理を代行させる代行装置に与える代行パラメータ情報を求める第２の演算手段と、（２）第２の演算手段による演算結果を出力する出力手段とを備えることを特徴とする。
【００１２】
第２の本発明の代行装置は、秘密鍵情報を記憶する第１の記憶手段と、公開鍵情報を入力する入力手段と、第１の公開鍵情報を記憶する第２の記憶手段と、秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を計算する第１の演算手段と、乱数情報を記憶する第３の記憶手段とを有する代行装置において、（１）被代行装置の鍵共有処理に係る代行パラメータ情報を記憶する第４の記憶手段と、（２）第１の記憶手段に記憶される秘密鍵情報と、第２の記憶手段に記憶される第１の公開鍵情報とに基づいて第１の演算手段により得られた第１の共通鍵情報と、第３の記憶手段に記憶されている代行パラメータ情報とに基づいて、第２の共通鍵情報とを求める第２の演算手段と、（３）第２の演算手段による演算結果を出力する出力手段とを備えることを特徴とする。
【００１３】
第３の本発明の通信システムは、第１の通信装置と第２の通信装置とが鍵共有をする場合に、第１の通信装置に代わって代行装置が第２の通信装置との鍵共有処理を代行する通信システムにおいて、（１）代行装置は、予め第２の通信装置との鍵共有処理に係る代行パラメータ情報を記憶しておき、（２）代行装置及び第２の通信装置は、第１の通信装置と第２の通信装置との間で鍵共有の必要が生じた場合には、代行装置と第２の通信装置との間で乱数情報を交換し、（３）第２の通信装置は、乱数情報と、第１の通信装置の公開鍵情報と第２の通信装置の秘密鍵情報とに基づいて共通鍵情報を求め、（４）代行装置は、乱数情報と代行パラメータ情報と第１の通信装置の公開鍵情報と代行装置の秘密鍵情報とに基づいて共通鍵情報を求め、（５）代行装置が、求めた共通鍵情報を第１の通信装置に送信することを特徴とする。
【００１４】
第４の本発明の代行パラメータ情報生成プログラムは、秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、第２の公開鍵情報を記憶する第３の記憶手段とを備え、コンピュータを、（１）秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を求める第１の演算手段、（２）第１の記憶手段に記憶される秘密鍵情報と、第２の記憶手段に記憶される第１の公開鍵情報とに基づいて、第１の演算手段により得られた情報を第１の共通鍵情報とし、第１の記憶手段に記憶される秘密鍵情報と、第３の記憶手段に記憶される第２の公開鍵情報とに基づいて、第１の演算手段により得られた情報を第２の共通鍵情報として、第１の共通鍵情報と第２の共通鍵情報とに基づいて、鍵共有処理を代行させる代行装置に与える代行パラメータ情報を求める第２の演算手段として機能させることを特徴とする。
【００１５】
第５の本発明の代行プログラムは、秘密鍵情報を記憶する第１の記憶手段と、第１の公開鍵情報を記憶する第２の記憶手段と、乱数情報を記憶する第３の記憶手段と、被代行装置の鍵共有処理に係る代行パラメータ情報を記憶する第４の記憶手段とを備え、コンピュータを、（１）秘密鍵情報と公開鍵情報とに基づいて共通鍵情報を計算する第１の演算手段、（２）第１の記憶手段に記憶される秘密鍵情報と、第２の記憶手段に記憶される第１の公開鍵情報とに基づいて第１の演算手段により得られた第１の共通鍵情報と、第３の記憶手段に記憶されている代行パラメータ情報とに基づいて、第２の共通鍵情報とを求める第２の演算手段として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、秘密情報の漏洩防止しながら、通信装置間の通信に係る鍵交換処理・認証処理を代行することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態のシステムの全体構成を示す構成図である。
【図２】第１の実施形態の第１の通信装置１の内部構成を示す内部構成図である。
【図３】第１の実施形態の代行装置の内部構成を示す内部構成図である。
【図４】第１の実施形態の第２の通信装置の内部構成を示す内部構成図である。
【図５】第１の実施形態の鍵共有・認証処理の動作を示すシーケンス図である。
【図６】第２の実施形態の第１の通信装置の内部構成を示す内部構成図である。
【図７】第２の実施形態の代行装置の内部構成を示す内部構成図である。
【図８】第２の実施形態の第２の通信装置の内部構成を示す内部構成図である。
【図９】第２の実施形態の鍵共有・認証処理の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
（Ａ）本発明の基本的概念
本発明に係る通信システム（代行システム）は、代行装置が、第１の通信装置及び第２の通信装置間の通信に係るセキュリティ処理の計算を代行する。
【００１９】
代行システムは、以下の３条件（以下「認証・鍵共有代行の３条件」と呼ぶ）を満たすようにして処理を行う。
【００２０】
［認証・鍵共有代行の３条件］
（１）代行装置は、ＰＫＩ（Public  Key  Infrastructure）又はＰＫＧ（Private  Key  Generator）から与えられた秘密鍵情報以外一切の秘密情報を扱うことなく代行処理ができる。
【００２１】
（２）第２の通信装置は、認証・鍵共有の相手が代行装置であるか、第１の通信装置であるかによって処理を変えない。
【００２２】
（３）代行装置は、第１の通信装置が許可した第２の通信装置以外の通信装置との認証・鍵共有を代行することはできない。
【００２３】
（Ｂ）第１の実施形態
以下、本発明の代行パラメータ情報生成装置、代行装置、代行パラメータ情報生成プログラム、代行プログラム及び通信システムの第１の実施形態について、図面を参照しながら詳細に説明する。
【００２４】
第１の実施形態では、公開鍵証明書を発行する認証局が発行する公開鍵ペアに基づく認証・鍵共有代行方式を採用した場合の実施形態を説明する。
【００２５】
（Ｂ−１）第１の実施形態の構成
（Ｂ−１−１）システムの全体構成
図１は、第１の実施形態のシステムの全体構成を示す構成図である。図１において、第１の実施形態のシステム１は、第１の通信装置１００、第２の通信装置３００、代行装置２００を少なくとも有して構成される。
【００２６】
第１の通信装置１００は、例えばセンサやスマート端末等の端末に搭載される通信装置であり、ネットワーク帯域や消費電力等が限られた通信装置である。
【００２７】
第１の通信装置１００は、マルチホップ通信によりデータ通信を行なうものである。図１では、第１の通信装置１００が第２の通信装置３００に向けてデータ通信する場合、第１の通信装置１００は、マルチホップ通信によりネットワーク２に接続する終端装置（第１の通信装置１００と同等装置）を介して行うものとする。また、第１の通信装置１００と第２の通信装置４００との間のセキュリティ処理を行う場合も、第１の通信装置１００は、上記終端装置を介して、代行装置２００と通信を行なう。
【００２８】
第２の通信装置３００は、ネットワーク上に存在するサービス提供サーバ等に搭載される通信装置である。
【００２９】
代行装置２００は、第１の通信装置１００と第２の通信装置３００とが互いに認証をして鍵共有を行う処理を、第１の通信装置１００に代わって行う通信装置である。
【００３０】
なお、第１の実施形態の説明において、ｇは、巡回群＜Ｇ，・＞の生成元であり、システム共通のパラメータである。特に、ｎは素数であるとする。また、ｎは巡回群Ｇの位数である。
【００３１】
整数ｘは、第１の通信装置１００の秘密鍵であり、Ｐ＿Ｘ＝ｇ＾ｘは、第１の通信装置１００の公開鍵である。
【００３２】
整数ｖは、第２の通信装置３００の秘密鍵であり、Ｐ＿Ｖ＝ｇ＾ｖは、第２の通信装置３００の公開鍵である。
【００３３】
整数ｄは、代行装置２００の秘密鍵であり、Ｐ＿Ｄ＝ｇ＾ｄは、代行装置２００の公開鍵である。
【００３４】
巡回群Ｇにおけるα・β∈Ｇは、αとβとを被演算子として巡回群Ｇで定義されている演算を行うことを意味する。また、α＾β∈Ｇは、αを被演算子として巡回群Ｇで定義されている演算をβ回行うことを意味する。また、α／β∈Ｇは、αと巡回群で定義されたβの逆元とを被演算子とし、巡回群Ｇで定義されている演算を行うことを意味する。
【００３５】
例えば、巡回群Ｇが楕円曲線Ｅ上の有理点のなす群であった場合、α・β∈Ｇは楕円曲線Ｅ上でのαとβとの楕円加算を意味し、α＾β∈Ｇはαの楕円スカラーβ倍算を意味し、α／β∈Ｇはαからβの楕円減算を意味する。
【００３６】
また例えば、巡回群Ｇが有限体の乗法群であった場合、α・β∈Ｇはαとβとの乗算を意味し、α＾β∈Ｇはαのβ乗を意味し、α／β∈Ｇはαのβによる除算を意味する。またＸ＿ＹはＸに対してＹを下付き文字表記する場合と同じである。
【００３７】
（Ｂ−１−２）第１の通信装置１００の内部構成
図２は、第１の実施形態の第１の通信装置１００の内部構成を示す内部構成図である。図２において、第１の通信装置１００、送受信部１０１、共通鍵復号部１０３、秘密鍵情報記憶部１０２、及び代行パラメータ生成部１０４、公開鍵証明書取得部１０５を有する。
【００３８】
送受信部１０１は、所定の通信プロトコルを用いて任意の通信装置と通信するものである。
【００３９】
秘密鍵情報記憶部１０２は、公開鍵ペア（秘密鍵ｘ、公開鍵Ｐ＿Ｘ＝ｇ＾ｘ）のうち、少なくとも秘密鍵ｘを安全に記憶するものである。なお、秘密鍵情報記憶部１０２は、秘密鍵情報記憶部１０２に代行装置２００との間で共有する暗号鍵情報を記憶するようにしても良い。
【００４０】
共通鍵復号部１０３は、送受信部１０１を介して、代行装置２００から、第２の通信装置３００との間で鍵共有した結果を受け取り、共通鍵情報Ｋを復号するものである。ここで、送受信部１０１により受信される第２の通信装置３００との間の鍵共有の結果は、予め第１の通信装置１００と代行装置２００との間で共有してある暗号鍵と所定の暗号アルゴリズムにより暗号化されたものである。共通鍵復号部１０３は、上記暗号鍵及び暗号アルゴリズムにより、共通鍵情報Ｋを復号し、必要に応じて検証を行う。
【００４１】
代行パラメータ生成部１０４は、代行装置２００が第１の通信装置１００に代わって処理を行う認証・鍵共有処理に必要な情報（代行パラメータ情報）Ｔを生成するものである。
【００４２】
代行パラメータ生成部１０４は、公開鍵証明書取得部１０５から代行装置２００の公開鍵情報Ｐ＿Ｄと、第２の通信装置３００の公開鍵情報Ｐ＿Ｖとを受け取り、公開鍵情報Ｐ＿Ｄ及びＰ＿Ｖと、秘密鍵情報記憶部１０２の秘密鍵情報ｘとを用いて、式（１−１）に従って代行パラメータ情報Ｔを生成するものである。
【数１】
0005333613.tif 000002
【００４３】
ただし、Ｆ（Ｘ）は、Ｇの元Ｘを定義域とし、１＜ａ≦ｎ−１を値域とする変換関数である。具体的には、Ｘが整数の場合はＸをｎで割った余りが０または１でない場合は、Ｘをｎで割った余りをａとし、そうでない場合は適当な数を足すとする方法を適用し、Ｘが楕円曲線上の有理点である場合は、例えば参考文献１（Standards  for  Efficient  Cryptography  Group，“Elliptic  Curve  Cryptography”，SEC  １，May  2009）の記載技術により、Ｘをビット列に変換して、これを符号無し整数とみなして、ｎで割った余りが０又は１でない場合はａとし、そうでない場合は適当な数を足すとする方法を適用できる。
【００４４】
例えば、代行パラメータ生成部１０４は、第１の通信装置１００の秘密情報ｘと、第２の通信装置の公開鍵情報Ｐ＿Ｖとに基づいて、Ｐ＿Ｖ＾ｘを求める。このＰ＿Ｖ＾ｘを第１の共通鍵情報ともいう。
【００４５】
次に、代行パラメータ生成部１０４は、第１の通信装置１００の秘密情報ｘと、代行装置２００の公開鍵情報Ｐ＿Ｄとに基づいて、Ｐ＿Ｄ＾ｘを求める。このＰ＿Ｄ＾ｘを第２の共通鍵情報ともいう。
【００４６】
さらに、代行パラメータ生成部１０４は、第１の共通鍵情報と第２の共通鍵情報とに基づいて、代行パラメータ情報Ｔを求める。
【００４７】
なお、上記より、代行パラメータ生成部１０４は、第１の共通鍵情報及び第２の共通鍵情報を求める第１の演算手段と、代行パラメータ情報を求める第２の演算手段として機能を有する。
【００４８】
また、代行パラメータ生成部１０４は、生成した代行パラメータＴを送受信部１０１に与え、代行装置２００に送信する。
【００４９】
公開鍵証明書取得部１０５は、任意の公開鍵証明書を取得することができ、取得した公開鍵証明書の署名を検証する機能を有する。
【００５０】
ここで、公開鍵証明書は、公開鍵と、その所有者の同定情報（その他に有効期間、発行者、署名アルゴリズムなどの情報も含む）と、それらの情報とに対する公開鍵基盤の認証局の秘密鍵でサインしたディジタル著署名で構成されるものである。公開鍵証明書は、一般的に利用される標準規格としてＩＴＵ−Ｔ（International  Telecommunication  Union  Telecommunication  Standardization  Sector）のＸ．５０９規格があり、これを適用できる。
【００５１】
公開鍵証明書取得部１０５は、公開鍵基盤の認証局の公開鍵を予め記憶しており、当該ディジタル署名情報を、記憶している公開鍵基盤の認証局の公開鍵を用いて所定の検証アルゴリズムを用いることにより検証することができる。
【００５２】
また、公開鍵証明書の取得方法は、特に限定されるものではなく、例えば送受信部１０１が公開鍵基盤の認証局から受信して取得してもよいし、また例えば、別の入力インターフェース（例えばＵＳＢメモリデバイス、保守用機器など）を経由して取得しても良い。なお、この実施形態では、公開鍵証明書取得部１０３が、送受信部１０１により受信された公開鍵証明書を取得するものとする。
【００５３】
（Ｂ−１−３）代行装置２００の内部構成
図３は、第１の実施形態の代行装置２００の内部構成を示す内部構成図である。図３において、代行装置２００は、送受信部２０１、秘密鍵情報記憶部２０２、代行パラメータ記憶部２０３、鍵共有パラメータ生成部２０４、共通鍵計算部２０５、チャレンジ情報生成部２０６、レスポンス検証部２０７、レスポンス生成部２０８、公開鍵証明書取得部２０９を有する。
【００５４】
送受信部２０１は、所定の通信プロトコルを用いて、第１の通信装置１００と第２の通信装置３００と通信するものである。
【００５５】
秘密鍵情報記憶部２０２は、公開鍵ペア（秘密鍵ｄ、公開鍵Ｐ＿Ｄ＝ｇ＾ｄ）のうち、少なくとも秘密鍵ｄを安全に記憶するものである。なお、秘密鍵情報記憶部２０２は、第１の通信装置１００との間で共有する暗号鍵情報を記憶するようにしても良い。
【００５６】
代行パラメータ記憶部２０３は、第１の通信装置１００が生成した代行パラメータ情報Ｔを記憶するものである。第１の実施形態では、第１の通信装置１００との間の通信路を経由して代行パラメータ情報Ｔを受信することとするが、この代行パラメータ情報Ｔを、別の入力インターフェース（例えばＵＳＢメモリや保守用機器など）を経由して設定してもかまわない。代行パラメータ記憶部２０３は、代行パラメータ情報を漏洩しないよう安全に管理する必要はない。
【００５７】
鍵共有パラメータ生成部２０４は、鍵共有パラメータｒを生成し、生成した鍵共有パラメータｒを共通鍵計算部２０５及び送受信部２０１に与えるものである。例えば、鍵共有パラメータ生成部１０４は、（擬似）乱数生成機能を有し、ランダムに生成した乱数情報をｒとする。
【００５８】
なお、鍵共有パラメータは、代行装置２００が生成して、代行装置２００が第２の通信装置３００に送信するものとして説明するが、第２の通信装置３００が生成して、第２の通信装置３００が代行装置２００に送信するようにしてもよい。また、第２の通信装置３００及び代行装置２００の両装置が生成して交換し、例えばハッシュ関数によって共有パラメータを生成しても良い。
【００５９】
共通鍵計算部２０５は、代行パラメータ記憶部２０３から読み出した代行パラメータ情報Ｔと、秘密鍵情報記憶部２０２から読み出した秘密鍵情報ｄと、生成した鍵共有パラメータｒと、公開鍵証明書取得部２０９から読み取った第１の通信装置の公開鍵情報Ｐ＿Ｘとを用いて、式（１−２）及び式（１−３）により、共通鍵Ｋを求めるものである。ただし、ａ０＾（−１）は、有限体Ｆｎの乗法に関する逆元である。
【数２】
0005333613.tif 000003
【数３】
0005333613.tif 000004
【００６０】
チャレンジ情報生成部２０６は、共通鍵に基づくチャレンジ＆レスポンス認証におけるチャレンジ情報ｒ＿Ｄを生成し、チャンレンジ情報ｒ＿Ｄをレスポンス検証部２０７及び送受信部２０１に与えるものである。チャレンジ情報生成部２０６は、送受信部２０１を介して、チャレンジ情報ｒ＿Ｄを第２の通信装置３００に送信する。
【００６１】
ここで、共通鍵に基づくチャレンジ＆レスポンス認証方式は、種々の方式が存在するが、ここでは例としてランダムビット列をチャレンジ情報とし、共通鍵Ｋを用いて暗号化した暗号文を正しく作れるかを見る方式を例として説明する。そこでチャレンジ情報生成部２０６は、ランダムなビット列ｍ＿Ｄを代行装置２００のチャレンジ情報ｒ＿Ｄとして第２の通信装置３００に送信する。
【００６２】
レスポンス検証部２０７は、第２の通信装置３００から受信したレスポンス情報Ｒ＿１と、チャレンジ情報生成部２０６が生成したチャレンジ情報ｒ＿Ｄとに基づいて、当該レスポンス情報の正当性を検証するものである。
【００６３】
レスポンス情報の具体的な検証方法としては、例えば、レスポンス検証部２０７が、チャレンジ情報ｒ＿Ｄ（＝ｍ＿Ｄ）を、共通鍵Ｋを用いて所定の暗号化方式（例えばＡＥＳ（Advanced  Encryption  Standards）−１２８）で暗号化し、その暗号化したものと、第２の通信装置３００から送られてきたレスポンス情報Ｒ＿１とが一致するならば検証成功とし、そうでなければ失敗とする。これは、レスポンス情報Ｒ＿１が、第２の通信装置３００において共通鍵Ｋを用いて暗号化されているからである。
【００６４】
レスポンス生成部２０８は、第２の通信装置３００からチャレンジ情報ｒ＿Ｖを受信し、レスポンス情報Ｒ＿２を生成して、生成したレスポンス情報Ｒ＿２を送受信部２０１を介して第２の通信装置３００に送信する。
【００６５】
具体的には、レスポンス生成部２０８は、第２の通信装置３００から受信したチャレンジ情報ｍ＿Ｖを、共通鍵Ｋを用いて所定の暗号化方式で暗号化し、その暗号化した結果をレスポンス情報Ｒ＿２として生成する。
【００６６】
公開鍵証明書取得部２０９は、任意の公開鍵証明書を取得することができ、取得した公開鍵証明書の署名を検証するものである。
【００６７】
（Ｂ−１−４）第２の通信装置３００の内部構成
図４は、第１の実施形態の第２の通信装置３００の内部構成を示す内部構成図である。図４において、第２の通信装置３００は、送受信部３０１、秘密鍵情報記憶部３０２、共通鍵計算部３０３、チャレンジ情報生成部３０４、レスポンス検証部３０５、レスポンス生成部３０６、公開鍵証明書取得部３０７を有する。
【００６８】
送受信部３０１は、所定の通信プロトコルを用いて、少なくとも代行装置２００と通信するものである。
【００６９】
秘密鍵情報記憶部３０２は、公開鍵基盤（ＰＫＩ）の認証届から発行された公開鍵ペアのうち、少なくとも秘密鍵を安全に記憶するものである。
【００７０】
共通鍵計算部３０３は、公開鍵証明書取得部３０７から読み取った第１の通信装置の公開鍵情報Ｐ＿Ｘ、秘密鍵情報記憶部３０２から読み取った秘密鍵情報ｖ、送受信部３０１から受信した鍵共有パラメータｒとを用いて、式（１−４）により共通鍵Ｋを求めるものである。
【数４】
0005333613.tif 000005
【００７１】
チャレンジ情報生成部３０４は、共通鍵に基づくチャレンジ＆レスポンス認証におけるチャレンジ情報ｒ＿Ｖを生成し、生成したチャンレンジ情報ｒ＿Ｖをレスポンス検証部３０５及び送受信部３０１に与えるものである。チャレンジ情報生成部３０４は、送受信部３０１を介して、チャンレンジ情報ｒ＿Ｖを代行装置２００に送信する。
【００７２】
具体的に、チャレンジ情報生成部３０４は、ランダムなビット列ｍ＿Ｖを第２の通信装置３００のチャレンジ情報ｒ＿Ｖとして代行装置２００に送信するものとする。
【００７３】
レスポンス検証部３０５は、代行装置２００から受信したレスポンス情報Ｒ＿２と、チャレンジ情報生成部３０４が生成したチャレンジ情報ｒ＿Ｖ（＝ｍ＿Ｖ）から、当該レスポンス情報の正当性を検証する。
【００７４】
レスポンス情報の具体的な検証方法として、例えば、レスポンス検証部３０５は、チャレンジ情報ｍ＿Ｖを、共通鍵Ｋを用いて所定の暗号化方式で暗号化し、その暗号化したものと、代行装置２００から送られてきたレスポンス情報Ｒ＿２とが一致するならば検証成功とし、そうでなければ失敗とする。
【００７５】
レスポンス生成部３０６は、代行装置２００からチャレンジ情報ｒ＿Ｄを受信し、レスポンス情報Ｒ＿１を生成して、生成したレスポンス情報Ｒ＿１を代行装置２００に送信する。
【００７６】
具体的には、レスポンス生成部３０６は、代行装置２００から受信したチャレンジ情報ｒ＿Ｄを、共通鍵Ｋを用いて所定の暗号化方式で暗号化した結果をレスポンス情報Ｒ＿１として代行装置に送信する。
【００７７】
公開鍵取得部３０７は、任意の公開鍵証明書を取得することができ、取得した公開鍵証明書の署名を検証する機能を有する。
【００７８】
（Ｂ−２）第１の実施形態の動作
図５は、第１の実施形態の鍵共有・認証処理の動作を示すシーケンス図である。
【００７９】
（Ｂ−２−１）準備ステップ
（Ｓ１００）第１の通信装置１００において、代行パラメータ生成部１０４が代行パラメータ情報Ｔを生成し、生成した代行パラメータ情報Ｔを代行装置２００に送信する。
【００８０】
ここで、代行パラメータ情報Ｔの生成方法の一例を説明する。まず、第１の通信装置１００において、公開鍵証明書取得部１０５が、送受信部１０１を介して、代行装置２００の公開鍵証明書ＣＥＲＴ＿Ｄと、第２の通信装置３００の公開鍵証明書ＣＥＲＴ＿Ｖとを受け取り、代行装置２００の公開鍵情報Ｐ＿Ｄと、第２の通信装置３００の公開鍵情報Ｐ＿Ｖとを取得して検証する。
【００８１】
次に、代行パラメータ生成部１０４は、公開鍵証明書取得部１０５から取得した代行装置２００の公開鍵情報Ｐ＿Ｄ及び第２の通信装置３００の公開鍵情報Ｐ＿Ｖと、秘密鍵情報記憶部１０２の秘密鍵情報ｘとを用いて、式（１−１）により代行パラメータ情報Ｔを求める。また、代行パラメータ生成部１０４は、生成した代行パラメータ情報Ｔを送受信部１０１に与えて、代行装置２００に送信させる。
【００８２】
このとき、代行装置２００は、第１の通信装置１００から受信した代行パラメータ情報Ｔを、代行パラメータ記憶部２０３に記憶する。
【００８３】
（Ｂ−２−２）鍵共有・認証ステップ
（Ｓ１０１）代行装置２００において、鍵共有パラメータ生成部２０４は、第２の通信装置３００との間の鍵共有に必要な整数ｒ（２≦ｒ≦ｎ−１）をランダムに生成する。鍵共有パラメータ生成部２０４は、生成した整数ｒを鍵共有パラメータとして送受信部２０１に与え、鍵共有パラメータｒを第２の通信装置３００に送信させる。
【００８４】
（Ｓ１０２）代行装置２００において、共通鍵計算部２０５は、代行パラメータ記憶部２０３から代行パラメータ情報Ｔを読み取り、秘密鍵情報記憶部２０２から秘密鍵情報ｄを読み出し、ステップＳ１０１で生成した鍵共有パラメータｒと、公開鍵証明書取得部２０９から読み取った第１の通信装置１００の公開鍵情報Ｐ＿Ｘとを受け取る。そして、共通鍵計算部２０５は、代行パラメータ情報Ｔ、鍵共有パラメータｒ、秘密鍵情報ｄ、第１の通信装置１００の公開鍵情報Ｐ＿Ｘを用いて、式（１−２）及び式（１−３）により、共通鍵情報Ｋを求める。
【００８５】
（Ｓ１０３）一方、第２の通信装置３００には、代行装置２００から共通鍵パラメータｒが与えられる。共通鍵計算部３０３は、代行装置２００から受信した共通鍵パラメータｒと、公開鍵情報証明書取得部３０７からの第１の通信装置１００の公開鍵情報Ｐ＿Ｘと、秘密鍵情報記憶部３０２からの秘密鍵情報ｖとを用いて、式（１−４）により共通鍵情報Ｋを求める。
【００８６】
（Ｓ１０４）ここで、第２の通信装置３００が、公開鍵Ｐ＿Ｖに対応する秘密鍵情報ｖを正しく持っていれば、代行装置２００の共通鍵計算部２０５で計算した鍵Ｋと、第２の通信装置３００が生成した鍵Ｋは同じ鍵となっているはずである。
【００８７】
逆に、第２の通信装置３００から見れば、鍵共有した相手は第１の通信装置１００であり、第１の通信装置１００の公開鍵Ｐ＿Ｘに対応する秘密鍵情報Ｘを正しく持っていれば、第２の通信装置３００の共通鍵計算部３０３で計算した鍵Ｋと、共有相手（実際は代行装置２００）が計算した鍵Ｋとは同じ鍵となっているはずである。
【００８８】
そこで、共通鍵に基づくチャレンジ＆レスポンス認証を行うことによって、代行装置２００及び第２の通信装置が同じ鍵Ｋを共有できているかを互いに確認する（Ｓ１０４）。
【００８９】
共通鍵に基づくチャレンジ＆レスポンスの方式は、いくつかバリエーションがあり、いずれの方式に限定されるものではなく、種々の方式を広く適用することができる。
【００９０】
第１の実施形態では、次のような方式を例示する。まず、代行装置２００が第１のチャレンジ情報としてランダムなビット列ｒ＿Ｄを作成し（Ｓ１１）、代行装置２００がビット列ｒ＿Ｄを第２の通信装置３００に送信する（Ｓ１２）。
【００９１】
第２の通信装置３００において、レスポンス生成部３０６は、代行装置２００からビット列ｒ＿Ｄを受信すると、所定の対称鍵暗号アルゴリズムを用いてビット列ｒ＿Ｄを、鍵をＫとして暗号化した結果を第１のレスポンス情報Ｒ＿１とする（Ｓ１３）。
【００９２】
第２の通信装置３００において、チャレンジ情報生成部３０４は、ランダムに第２のチャレンジ情報ｒ＿Ｖを生成し（Ｓ１４）、レスポンス情報Ｒ＿１と第２のチャンレンジ情報ｒ＿Ｖとを代行装置２００に送信する（Ｓ１５）。
【００９３】
代行装置２００において、第２の通信装置３００から第１のレスポンス情報Ｒ＿１及び第２のチャレンジ情報ｒ＿Ｖを受信すると、まず、レスポンス検証部２０７は、チャレンジ情報生成部２０６が生成した第１のチャレンジ情報ｒ＿Ｄを、鍵Ｋを用いて所定の対称鍵暗号アルゴリズムで暗号化する。そして、レスポンス検証部２０７は、暗号化した結果と、第２の通信装置３００から受信した第１のレスポンス情報Ｒ＿１とを比較して一致していれば認証成功とする。そうでなければ認証失敗として処理を中断する（Ｓ１６）。
【００９４】
認証成功であれば、受信した第２のチャレンジ情報ｒ＿Ｖを、鍵Ｋを用いて所定の対称鍵暗号アルゴリズムで暗号化した結果を、第２のレスポンス情報Ｒ＿２として第２の通信装置に送信する（Ｓ１７）。
【００９５】
第２の通信装置３００において、第２のレスポンス情報Ｒ＿２を受信すると、レスポンス検証部３０５は、第２のチャレンジ情報ｒ＿Ｖを、鍵Ｋを用いて所定の対称鍵暗号アルゴリズムで暗号化し、その暗号化した結果と、第２のレスポンス情報Ｒ＿２とを比較して、一致していれば認証成功とし、そうでなければ認証失敗として鍵Ｋを破棄して処理を中断する（Ｓ１８）。
【００９６】
（Ｓ１０５）代行装置２００は、鍵情報Ｋを第１の通信装置１００に安全に送信する。安全に送信する方法としては、例えば、代行装置２００が、第１の通信装置１００との間で予め共有している暗号鍵で鍵情報Ｋを暗号化して送信する方法等を適用できる。第１の通信装置１００において、共通鍵復号部１０３は鍵Ｋを安全に取得する。
【００９７】
（Ｓ１０６）なお、任意で第１の通信装置１００は、鍵Ｋの正当性を検証してもよい。すなわち、第２の通信装置２００の公開鍵情報Ｐ＿Ｖと、自らの秘密鍵情報Ｘと、鍵共有パラメータｒとを用いて、式（１−５）の計算結果と代行装置２００から受信した鍵情報Ｋとが一致するかどうかを評価する。一致すれば検証成功であり、そうでなければ検証失敗である。
【数５】
0005333613.tif 000006
【００９８】
（Ｂ−３）第１の実施形態の効果
以上のように、第１の実施形態によれば、以下の効果を奏する。
【００９９】
代行装置２００が認証・鍵共有代行処理に利用する情報は、式（１−１）の計算結果である代行パラメータ情報Ｔと自らの秘密情報ｄと公開鍵情報及び鍵共有パラメータｒである。代行パラメータ情報Ｔから第１の通信装置の秘密鍵ｘを得るには離散対数問題（巡回群Ｇが楕円曲線上の有理点がなす巡回群の場合は楕円曲線離散対数問題）を解かなければならないが、現在のところ本問題を効率的に解く方法は見つかっていないため、代行装置２００が秘密鍵ｘを取得することはできない。また代行パラメータ情報Ｔが第三者に漏洩したとしても、この代行パラメータ情報Ｔを使って代行処理をするには代行装置２００の秘密鍵ｄが必要であるので、秘密鍵ｄが漏洩しない限りは、代行装置２００以外の装置が代行パラメータＴを使って代行処理を行うことはできない。
【０１００】
また、第２の通信装置３００が共通鍵計算部３０３で共通鍵Ｋを計算する際必要となる情報は、鍵共有パラメータ情報ｒと、第１の通信装置１００の公開鍵情報Ｐ＿Ｘと、自らの秘密鍵情報ｖのみであり、認証・鍵共有時に通信している相手が第１の通信装置１００であるか又は代行装置２００であるかによって処理内容が代わることはない。
【０１０１】
また、第１の通信装置１００が第２の通信装置３００との間での認証・鍵共有の代行を可能とする代行パラメータ情報Ｔを、代行装置２００が勝手に第１の通信装置１００と別の通信装置（第３の通信装置）との間での認証・鍵共有の代行パラメータに変更するためには、第１の通信装置の秘密情報ｘが必要となるが、代行装置２００は第１の通信装置の秘密情報を知ることができないのでこれはできない。
【０１０２】
よって、認証・鍵共有の３条件を満たす。
【０１０３】
（Ｃ）第２の実施形態
次に、本発明の代行パラメータ情報生成装置、代行装置、代行パラメータ情報生成プログラム、代行プログラム及び通信システムの第２の実施形態について、図面を参照しながら詳細に説明する。
【０１０４】
第２の実施形態では、公開鍵証明書を必要としないＩＤ（Identity）情報に基づく公開鍵基盤上での認証・鍵共有代行方式を説明する。このため、公開鍵証明書を取得するのが困難な環境にある場合でも公開鍵を計算して求めることができるようになる。代わりに、秘密鍵生成局がＩＤ情報（例えば、メールアドレスなど）とマスター秘密鍵とを用いて、各ユーザの秘密鍵情報を計算し、各ユーザに秘密裏に配送する必要がある。
【０１０５】
（Ｃ−１）第２の実施形態の構成
第２の実施形態のシステムは、第１の実施形態のシステム１と同じ構成であるため、第２の実施形態においても、図１を用いて説明する。
【０１０６】
また、第２の実施形態では、第１の通信装置１００に代えて第１の通信装置４００と表記し、第２の通信装置３００に代えて第２の通信装置６００と表記し、代行装置２００に代えて代行装置５００と表記する。
【０１０７】
第２の実施形態の説明において、ｓは秘密鍵生成局のマスター秘密鍵である。Ｆ（ＩＤ）はＩＤ情報を巡回群Ｇ＿１の元へ写像するマッピング関数である。ｅ（・，・）は巡回群Ｇ＿１の２つの元を巡回群Ｇ＿２の元に写像する双線形写像ｅ：Ｇ１ＸＧ１→Ｇ２である。ｎは巡回群Ｇ＿１の位数（素数）である。
【０１０８】
Ｐ＿Ｘ＝Ｆ（ＩＤ＿Ｘ）∈Ｇ＿１が第１の通信装置４００の公開鍵であり、Ｐ＿Ｘ＾ｓが第１の通信装置４００の秘密鍵である。
【０１０９】
Ｐ＿Ｄ＝Ｆ（ＩＤ＿Ｄ）∈Ｇ＿１が代行装置５００の公開鍵であり、Ｐ＿Ｄ＾ｓが第２の通信装置の秘密鍵である。
【０１１０】
Ｐ＿Ｖ＝Ｆ（ＩＤ＿Ｖ）∈Ｇ＿１が第２の通信装置６００の公開鍵であり、ＰＶ＾ｓが第２の通信装置の秘密鍵である。
【０１１１】
なお、関数Ｆ（ＩＤ）の構成については、群Ｇ＿１が整数である場合には、例えばＩＤを適当なハッシュ関数よってビット列に変換し、このビット列を符号なしの整数とみなして、ｎで割った余りをＩＤの対応する元とする方法を適用できる。
【０１１２】
また、群Ｇ＿１が楕円曲線上の点である場合には、例えば参考文献２（D.Boneh  and  F.Franklin，“Identity-Based  Encryption  from  the  Weil  pairing”，CRYPTO  2001，LNCS2139，Springer-Verlag，pp.213-229，2001）に記載されている一構成法を適用することができる。
【０１１３】
（Ｃ−１）第２の実施形態の構成
（Ｃ−１−１）第１の通信装置４００の内部構成
図６は、第２の実施形態の第１の通信装置４００の内部構成を示す内部構成図である。図６において、第１の通信装置４００は、送受信部４０１、共通鍵復号部４０３、秘密鍵情報記憶部４０２、代行パラメータ生成部４０４、マッピング関数計算部４０５を有する。
【０１１４】
送受信部４０１、第１の実施形態の第１の通信装置１００の送受信部１０１と同様に、所定の通信プロトコルを用いて通信処理を行うものである。
【０１１５】
秘密鍵情報記憶部４０２は、秘密鍵情報Ｐ＿Ｘ＾ｓを安全に記憶するものである。なお、秘密鍵情報記憶部４０２は、代行装置５００との間で共有する暗号鍵情報を記憶するようにしても良い。
【０１１６】
共通鍵復号部４０３は、送受信部４０１を介して、代行装置５００から、第２の通信装置６００との間で鍵共有した結果を受け取り、共通鍵情報Ｋを復号するものである。ここで、送受信部４０１により受信される第２の通信装置６００との間の鍵共有の結果は、予め第１の通信装置４００と代行装置５００との間で共有してある暗号鍵と所定の暗号アルゴリズムにより暗号化されたものである。共通鍵復号部４０３は、上記暗号鍵及び暗号アルゴリズムにより、共通鍵情報Ｋを復号し、必要に応じて検証を行う。
【０１１７】
代行パラメータ生成部４０４は、代行装置５００が後述する認証・鍵共有処理を第１の通信装置４００に代わって処理するのに必要な代行パラメータ情報Ｔを生成するものである。
【０１１８】
代行パラメータ生成部４０４は、マッピング関数計算部４０５から、代行装置２００の公開鍵情報Ｐ＿Ｄと、第２の通信装置６００の公開鍵情報Ｐ＿Ｖとを受け取り、これら公開鍵情報Ｐ＿Ｄ及びＰ＿Ｖと、第１の通信装置の秘密鍵情報Ｐ＿Ｘ＾ｓとを用いて、次式（２−１）により、代行パラメータ情報Ｔを求める。
【数６】
0005333613.tif 000007
【０１１９】
代行パラメータ生成部４０４は、生成した代行パラメータ情報Ｔを、送受信部４０１を介して、代行装置５００に送信する。
【０１２０】
マッピング関数計算部４０５は、マッピング関数Ｆ（ＩＤ）に、ＩＤ情報として「ＩＤ」を入力してマッピング関数を計算するものである。マッピング関数計算部４０５は、マッピング関数を計算して、代行装置２００の公開鍵情報Ｐ＿Ｄと、第２の通信装置６００の公開鍵情報Ｐ＿Ｖとを求めて、これらを代行パラメータ生成部４０４に与える。
【０１２１】
（Ｃ−１−２）代行装置５００の内部構成
図７は、第２の実施形態の代行装置５００の内部構成を示す内部構成図である。図７において、代行装置５００は、送受信部５０１、秘密鍵情報記憶部５０２、代行パラメータ記憶部５０３、共通鍵計算部５０４、鍵共有パラメータ生成部５０５、チャレンジ情報生成部５０６、レスポンス検証部５０７、レスポンス生成部５０８、マッピング関数計算部５０９を有する。
【０１２２】
送受信部５０１は、チャレンジ情報生成部５０６、レスポンス検証部５０７、レスポンス生成部５０８は、それぞれ第１の実施形態における代行装置２００の、送受信部２０１、チャレンジ情報生成部２０６、レスポンス検証部２０７、レスポンス生成部２０８と同じ機能を有するものであるので、第２の実施形態での詳細な説明は省略する。
【０１２３】
秘密鍵情報記憶部５０２は、秘密鍵Ｐ＿Ｄ＾ｓを安全に記憶するものである。また、秘密鍵情報記憶部５０２は、第１の通信装置４００との間で共有する暗号鍵情報を記憶するようにしても良い。
【０１２４】
代行パラメータ記憶部５０３は、第１の通信装置４００により生成された代行パラメータ情報Ｔを記憶するものである。なお、この実施形態で、送受信部５０１が、第１の通信装置４００との間の通信路を経由して、代行パラメータ情報Ｔを受信する場合を例示するが、この代行パラメータ情報Ｔを、別の入力インターフェース（例えばＵＳＢメモリや保守用機器など）を経由して設定してもかまわない。代行パラメータ記憶部５０３は、代行パラメータ情報を漏洩しないよう安全に管理する必要はない。
【０１２５】
鍵共有パラメータ生成部５０４は、鍵共有パラメータを生成し、生成した鍵共有パラメータを、送受信部５０１及び共通鍵計算部５０４に与えるものである。ここで、鍵共有パラメータ生成部５０４は、例えば（擬似）乱数生成機能を有し、ランダムな整数を鍵共有パラメータとしても良い。なお、鍵共有パラメータは、この実施形態では、代行装置５００が生成して第２の通信装置６００に通知するが、第２の実施装置６００が生成して代行装置４００に通知する等としてもよい。
【０１２６】
共通鍵計算部５０５は、代行パラメータ記憶部５０３から読み取った代行パラメータ情報Ｔと、秘密鍵情報記憶部５０２から読み取った秘密鍵情報Ｐ＿Ｄ＾ｓと、生成した鍵共有パラメータｒと、マッピング関数計算部５０９から読み取った第１の通信装置４００の公開鍵情報Ｐ＿Ｘとを用いて、式（２−２）及び式（２−３）により、共通鍵Ｋを求めるものである。
【数７】
0005333613.tif 000008
【数８】
0005333613.tif 000009
【０１２７】
マッピング関数計算部５０９は、マッピング関数Ｆ（ＩＤ）に、ＩＤ情報として「ＩＤ」を入力してマッピング関数を計算するものである。マッピング関数計算部５０９は、マッピング関数により第１の通信装置４００の公開鍵情報Ｐ＿Ｘを求めて共通鍵計算部５０４に与える。
【０１２８】
（Ｃ−１−３）第２の通信装置６００の内部構成
図８は、第２の実施形態の第２の通信装置６００の内部構成を示す内部構成図である、図８において、第２の通信装置６００は、送受信部６０１、秘密鍵情報記憶部６０２、共通鍵計算部６０３、チャレンジ情報生成部６０４、レスポンス検証部６０５、レスポンス生成部６０６、マッピング関数計算部６０７を有する。
【０１２９】
送受信部６０１は、チャレンジ情報生成部６０４、レスポンス情報検証部６０５、レスポンス情報生成部６０６は、それぞれ第１の実施形態の第２の通信装置３００の、送受信部３０１、チャレンジ情報生成部３０４、レスポンス情報検証部３０５、レスポンス情報生成部３０６と同じ機能を有するものであるため、第２の実施形態での詳細な説明は省略する。
【０１３０】
秘密鍵情報記憶部６０２は、公開鍵基盤（ＰＫＩ）から発行された公開鍵ペアのうち、少なくとも秘密鍵を安全に記憶するものである。
【０１３１】
共通鍵計算部６０３は、マッピング関数計算部６０７により計算された第１の通信装置４００の公開鍵情報Ｐ＿Ｘと、秘密鍵情報記憶部６０２から読み取った秘密鍵情報Ｐ＿Ｖ＾ｓと、送受信部６０１により受信された鍵共有パラメータｒとを用いて、式（２−４）により共通鍵Ｋを求めるものである。
【数９】
0005333613.tif 000010
【０１３２】
マッピング関数計算部６０７は、マッピング関数Ｆ（ＩＤ）に、ＩＤ情報として「ＩＤ」を入力してマッピング関数を計算するものである。マッピング関数計算部６０７は、マッピング関数により第１の通信装置４００の公開鍵情報Ｐ＿Ｘを求めて共通鍵計算部６０３に与える。
【０１３３】
（Ｃ−２）第２の実施形態の動作
図９は、第２の実施形態の鍵共有・認証処理の動作を示すシーケンス図である。
【０１３４】
（Ｃ−２−１）準備ステップ
（Ｓ２００）まず、第１の通信装置５００は、代行装置６００に与える代行パラメータ情報Ｔを生成し、生成した代行パラメータ情報Ｔを代行装置５００に送信する。
【０１３５】
ここで、代行パラメータ情報Ｔの生成方法が、第１の実施形態と異なるので、以下では、第２の実施形態における代行パラメータ情報Ｔの生成方法の一例を説明する。
【０１３６】
まず、第１の通信装置４００において、マッピング関数計算部４０５が、マッピング関数Ｆ（ＩＤ）に、第２の通信装置６００及び代行装置５００のそれぞれのＩＤを入力して、代行装置５００の公開鍵情報Ｐ＿Ｄ及び第２の通信装置６００の公開鍵情報Ｐ＿Ｖを計算する。
【０１３７】
代行パラメータ生成部４０４は、マッピング関数計算部４０５により計算された、代行装置５００の公開鍵情報Ｐ＿Ｄ及び第２の通信装置６００の公開鍵情報Ｐ＿Ｖと、秘密鍵情報記憶部４０２から読み出した秘密鍵情報Ｐ＿Ｘ＾ｓとを用いて、式（２−１）により代行パラメータ情報Ｔを求める。そして、代行パラメータ生成部４０４は、生成した代行パラメータ情報Ｔを送受信部４０１を介して代行装置５００に送信する。
【０１３８】
このとき、代行装置５００は、第１の通信装置４００から受信された代行パラメータ情報Ｔを、代行パラメータ記憶部５０３に記憶する。
【０１３９】
（Ｃ−２−２）鍵共有・認証ステップ
（Ｓ２０１）代行装置５００において、鍵共有パラメータ生成部５０４は、第２の通信装置６００との鍵共有に必要な整数ｒ（２≦ｒ≦ｎ−１）をランダムに生成する。第２の実施形態では、このランダムな整数ｒを鍵共有パラメータとする。
【０１４０】
（Ｓ２０２）代行装置５００において、共通鍵計算部５０５は、代行パラメータ記憶部５０３から代行パラメータ情報Ｔを読み取り、秘密鍵情報記憶部５０２から秘密鍵情報Ｐ＿Ｄ＾ｓを読み出し、ステップＳ２０１で生成した鍵共有パラメータと、マッピング関数計算部５０９から読み取った第１の通信装置の公開鍵情報Ｐ＿Ｘとを用いて、式（２−２）及び式（２−３）により共通鍵情報Ｋを求める。
【０１４１】
（Ｓ２０３）一方、第２の通信装置６００において、共通鍵計算部６０３は、代行装置５００から受信した共通鍵パラメータと、マッピング関数計算部６０７により計算された第１の通信装置４００の公開鍵情報Ｐ＿Ｘと、秘密鍵情報記憶部６０２から読み出した秘密鍵情報とを用いて、式（２−４）により共通鍵情報Ｋを求める。
【０１４２】
（Ｓ２０４）ここで、第２の通信装置６００が、公開鍵Ｐ＿Ｖに対応する秘密鍵情報Ｐ＿Ｖ＾ｓを正しく持っていれば、代行装置５００の共通鍵計算部５０５で計算した鍵Ｋと、第２の通信装置６００が生成した鍵Ｋとは同じ鍵となっているはずである。
【０１４３】
逆に、第２の通信装置６００から見れば、鍵共有した相手は第１の通信装置４００であり、第１の通信装置４００の公開鍵Ｐ＿Ｘに対応する秘密鍵情報Ｐ＿Ｘ＾ｓを正しく持っていれば、第２の通信装置６００の共通鍵計算部６０３で計算した鍵Ｋと、共有相手（実は代行装置５００）が計算した鍵Ｋとは同じ鍵となっているはずである。
【０１４４】
そこで、共通鍵に基づくチャレンジ＆レスポンス認証を行うことによって代行装置５００と第２の通信装置が同じ鍵Ｋを共有できているかを互いに確認する（Ｓ２０４）。この方法は、第１の実施形態で説明したステップＳ１０４と同じであるので、第２の実施形態での詳細な説明は省略する。
【０１４５】
（Ｓ２０５）代行装置５００は、鍵情報Ｋを第１の通信装置４００に安全に送信する。安全に送信する方法としては、例えば、代行装置５００が、第１の通信装置４００との間で予め共有している暗号鍵で鍵情報Ｋを暗号化して送信する方法等を適用できる。第１の通信装置４００において、共通鍵復号部４０３は鍵Ｋを安全に取得する。
【０１４６】
（Ｓ２０６）なお、任意で第１の通信装置４００は、鍵Ｋの正当性を検証してもよい。すなわち、第２の通信装置６００の公開鍵情報Ｐ＿Ｖと、自らの秘密鍵情報Ｐ＿Ｘ＾ｓと、鍵共有パラメータｒとを用いて、以下の式（２−５）により計算する。その計算結果と、代行装置５００から受信した鍵情報Ｋとが一致するかどうかを評価する。一致すれば検証成功であり、そうでなければ検証失敗である。
【数１０】
0005333613.tif 000011
【０１４７】
（Ｃ−３）第２の実施形態の効果
以上のように、第２の実施形態の認証・鍵共有処理は、第１の実施形態の効果と同様の論理で、認証・鍵共有の３条件を満たす。
【０１４８】
また、第２の実施形態によれば、第１の実施形態の効果に加えて、さらにＩＤに基づく公開鍵基盤を利用したことにより公開鍵証明書を取得する必要が無くなる。このため、例えば第１の通信装置、代行装置、第２の通信装置のいずれかが、公開鍵証明書を取得するのが困難である環境にあっても認証・鍵共有の代行を行うことが可能となる。
【０１４９】
（Ｄ）他の実施形態
（Ｄ−１）
上述した第１及び第２の実施形態において、代行情報Ｔを第１の通信装置が代行装置に預託するものとして説明したが、第１の通信装置には直接秘密鍵情報を持たせず、第１の通信装置の管理者が第１の通信装置の秘密鍵を用いて直接代行情報Ｔを計算し、代行装置に渡すようにしても良い。
【０１５０】
また、鍵共有や認証と共に、ＩＰｓｅｃやＴＬＳ等の暗号通信路確立の代行を行っても良い。その際、代行装置が第１の通信装置に送る処理結果には、利用する鍵、や暗号方式等の暗号通信路に関する情報を含んでも良い。
【符号の説明】
【０１５１】
１…システム、
１００及び４００…第１の通信装置、
１０１及び４０１…送受信部、１０２及び４０２…秘密鍵情報記憶部、
１０３及び４０３…共通鍵復号部、
１０４及び４０４…代行パラメータ生成部、
１０５…公開鍵証明書取得部、４０５…マッピング関数計算部、
２００及び５００…代行装置、
２０１及び５０１…送受信部、２０２及び５０２…秘密鍵情報記憶部、
２０３及び５０３…代行パラメータ記憶部、
２０４及び５０５…鍵共有パラメータ生成部、
２０５及び５０４…共通鍵計算部、
２０６及び５０６…チャレンジ情報生成部、
２０７及び５０７…レスポンス検証部、
２０８及び５０８…レスポンス生成部、
２０９…公開鍵証明書取得部、５０９…マッピング関数計算部、
３００及び６００…第２の通信装置、
３０１及び６０１…送受信部、３０２及び６０２…秘密鍵情報記憶部、
３０３及び６０３…共通鍵計算部、
３０４及び６０４…チャレンジ情報生成部、
３０５及び６０５…レスポンス検証部、
３０６及び６０６…レスポンス生成部、３０７…公開鍵証明書取得部、
６０７…マッピング関数計算部。
【図１】
0005333613.tif 000012
【図２】
0005333613.tif 000013
【図３】
0005333613.tif 000014
【図４】
0005333613.tif 000015
【図５】
0005333613.tif 000016
【図６】
0005333613.tif 000017
【図７】
0005333613.tif 000018
【図８】
0005333613.tif 000019
【図９】
0005333613.tif 000020