(57)【特許請求の範囲】
【請求項１】
送受信手段と、
秘密鍵情報を記憶する第１の記憶手段と、
所定の巡回群の元を記憶する第２の記憶手段と、
通信装置の鍵共有公開鍵パラメータ情報を取得する公開鍵情報取得手段と、
巡回群の単位元に、所定の巡回群の元を、所定の整数で与えられる数だけ、該巡回群において定義される演算子で結合した結果を求めるものであり、上記秘密鍵情報と、上記公開鍵情報取得手段により取得された上記鍵共有公開鍵パラメータ情報とに基づいて当該所定の巡回群の元として所定の演算処理を行い、部分共通鍵情報を計算する第１の演算手段と、
任意のビット列情報を所定の鍵情報ビット列で暗号化するものであって、上記第１の演算手段の上記部分共通鍵情報を暗号化処理する暗号化手段と
を備える鍵共有被計算委託装置において、
上記秘密鍵情報として、所定のビット長の乱数情報を生成する乱数生成器と、
巡回群の単位元に、所定の巡回群の元を、所定の整数で与えられる数だけ、該巡回群において定義される演算子で結合した結果を求めるものであり、上記乱数生成器により生成された乱数情報を上記秘密鍵情報とし、上記秘密鍵情報と巡回群の生成元とに基づいて当該所定の巡回群の元として所定の演算処理を行い、部分鍵共有公開鍵パラメータ情報を計算する第２の演算手段と
を更に備え、
上記送受信手段が、上記暗号化手段からの上記部分共通鍵情報と、上記第２の演算手段からの上記部分鍵共有公開鍵パラメータ情報とを送信する
ことを特徴とする鍵共有被計算委託装置。
【請求項２】
上記第２の演算手段の部分鍵共有公開鍵パラメータ情報と、他の鍵共有被計算委託装置から取得した全ての部分鍵共有公開鍵パラメータ情報とを結合して鍵共有公開鍵パラメータ情報を合成する第３の演算処理手段を更に備え、
上記送受信手段が、上記第３の演算手段の上記鍵共有公開鍵パラメータ情報を送信する
ことを特徴とする請求項１に記載の鍵共有被計算委託装置。
【請求項３】
第１の通信装置と第２の通信装置との間での鍵共有計算処理の一部をＮ（Ｎ≧２）個の代行装置に委託させる鍵共有システムにおいて、
上記Ｎ個の代行装置が、
請求項２に記載の鍵共有被計算委託装置に相当する１個の第１の被計算委託手段と、
請求項１に記載の鍵共有被計算委託装置に相当するＮ−１個の第２の被計算委託手段と
であり、
上記第１の通信装置が、上記第１の被計算委託手段の第１の部分共通鍵情報と、上記各第２の被計算委託手段の第２の部分共通鍵情報とを取得し、上記第１の部分共通鍵情報及び上記各第２の部分共通鍵情報に基づいて共通鍵情報を計算し、
上記第２の通信装置が、上記第１の被計算委託手段から取得した乱数情報に基づいて共通鍵情報を計算し、
上記第１の被計算委託手段及び上記各第２の被計算委託手段が、部分共通鍵パラメータ情報を生成するために必要な秘密鍵情報を生成すると共に、部分鍵共有公開鍵パラメータ情報を生成し、
上記各第２の被計算委託手段が、生成した上記部分鍵共有公開鍵パラメータ情報を、上記第１の被計算委託手段に送信し、
上記第１の被計算委託手段が、自ら生成した上記部分鍵共有公開鍵パラメータ情報と、上記各第２の被計算委託手段から取得した全ての上記各部分鍵共有公開鍵パラメータ情報とを合成して得た鍵共有公開鍵パラメータ情報を上記第２の通信装置に送信する
ことを特徴とする鍵共有システム。
【請求項４】
請求項３に記載の鍵共有システムを備えることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵共有被計算委託装置、鍵共有システム及び通信システムに関し、例えば、鍵交換処理、認証処理の一部計算を、被計算委託装置が通信装置に代わって処理するシステムに適用し得るものである。
【背景技術】
【０００２】
例えば、防災監視、交通制御、金融といった高い信頼性や品質が必要とされる社会インフラ分野で、センサ等を利用するためには、サービス提供サーバ等の通信装置とセンサ等の通信装置との間の通信の安全性を維持する必要がある。
【０００３】
センサ等の通信装置が、サービス提供サーバ等の通信装置とエンド・エンドの安全な通信路を確保するためには、サービス提供サーバ及びセンサ等が備える２つの通信装置間で、認証、鍵交換といったエンド・エンドの情報交換が必要になる。
【０００４】
ここで、センサ等の通信装置が省電力マルチホップネットワークを形成している場合を考える。省電力マルチホップネットワークとは、センサ等の各通信装置がバケツリレー方式でデータを配送し、自身がデータ配送に関与しないときは、スリープすることにより電力消費を抑えるネットワークである。
【０００５】
例えば、広範囲に膨大な数のセンサ等の通信装置が展開され、それぞれの通信装置とインターネット上のサーバ等の通信装置との間で、エンド・エンドの安全な通信路を確保したい場合、上述のエンド・エンドの情報交換が、省電力マルチホップネットワークの輻輳や、消費電力の増加や、処理時間の増加等の問題を引き起こす可能性がある。
【０００６】
上述の問題に対応できる従来技術として、特許文献１には、ＩＰｓｅｃ（Security  Architecture  for  Internet  Protocol）で必要になるエンド・エンドの鍵交換処理を、小型軽量化が要求される携帯電話機やＰＤＡ上へ導入するのは難点があるとして、上位ネットワーク側の装置に鍵交換処理を代行させて、端末の負荷を軽減する方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１２８７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１の記載技術は、上位ネットワーク側の装置に鍵交換処理を代行してもらうために、自身の認証鍵等の秘密情報を代行装置に預ける必要がある。
【０００９】
例えばクラウド環境を利用したネットワーク上の代行装置に秘密情報を預託するため、通信装置は代行装置に秘密情報を配布しなければならず、機密情報を保守することが望まれる。また、１つの鍵交換処理の一部を複数の代行装置の間で処理させる場合、通信装置は、鍵共有に係る秘密情報をその都度生成し、その都度生成したテンポラルな秘密情報を各代行装置に配布する必要があるため、トラフィックが増加するという課題が生じ得る。
【００１０】
そのため、代行装置への機密情報保守の信頼性を維持しつつ、代行装置に預託する鍵共有に係る秘密情報の配布に伴うトラフィック量を軽減することができる鍵共有被計算委託装置、鍵共有システム及び通信システムが求められている。
【課題を解決するための手段】
【００１３】
かかる課題を解決するために、第１の本発明は、送受信手段と、秘密鍵情報を記憶する第１の記憶手段と、所定の巡回群の元を記憶する第２の記憶手段と、通信装置の鍵共有公開鍵パラメータ情報を取得する公開鍵情報取得手段と、巡回群の単位元に、所定の巡回群の元を、所定の整数で与えられる数だけ、該巡回群において定義される演算子で結合した結果を求めるものであり、秘密鍵情報と、公開鍵情報取得手段により取得された鍵共有公開鍵パラメータ情報とに基づいて当該所定の巡回群の元として所定の演算処理を行い、部分共通鍵情報を計算する第１の演算手段と、任意のビット列情報を所定の鍵情報ビット列で暗号化するものであって、第１の演算手段の部分共通鍵情報を暗号化処理する暗号化手段とを備える鍵共有被計算委託装置において、（１）秘密鍵情報として、所定のビット長の乱数情報を生成する乱数生成器と、（２）巡回群の単位元に、所定の巡回群の元を、所定の整数で与えられる数だけ、該巡回群において定義される演算子で結合した結果を求めるものであり、乱数生成器により生成された乱数情報を秘密鍵情報とし、秘密鍵情報と巡回群の生成元とに基づいて当該所定の巡回群の元として所定の演算処理を行い、部分鍵共有公開鍵パラメータ情報を計算する第２の演算手段とを更に備え、送受信手段が、暗号化手段からの部分共通鍵情報と、第２の演算手段からの部分鍵共有公開鍵パラメータ情報とを送信することを特徴とする鍵共有被計算委託装置である。
【００１５】
第２の本発明は、第１の通信装置と第２の通信装置との間での鍵共有計算処理の一部をＮ（Ｎ≧２）個の代行装置に委託させる鍵共有システムにおいて、Ｎ個の代行装置が、１個の第１の被計算委託手段と、Ｎ−１個の第２の被計算委託手段とであり、（１）第１の通信装置が、第１の被計算委託手段の第１の部分共通鍵情報と、各第２の被計算委託手段の第２の部分共通鍵情報とを取得し、第１の部分共通鍵情報及び各第２の部分共通鍵情報に基づいて共通鍵情報を計算し、（２）第２の通信装置が、第１の被計算委託手段から取得した乱数情報に基づいて共通鍵情報を計算し、（３）第１の被計算委託手段及び各第２の被計算委託手段が、部分共通鍵パラメータ情報を生成するために必要な秘密鍵情報を生成すると共に、部分鍵共有公開鍵パラメータ情報を生成し、（４）各第２の被計算委託手段が、生成した部分鍵共有公開鍵パラメータ情報を、第１の被計算委託手段に送信し、（５）第１の被計算委託手段が、自ら生成した部分鍵共有公開鍵パラメータ情報と、各第２の被計算委託手段から取得した全ての各部分鍵共有公開鍵パラメータ情報とを合成して得た鍵共有公開鍵パラメータ情報を第２の通信装置に送信することを特徴とする鍵共有システムである。
【００１６】
第３の本発明は、第２の本発明の鍵共有システムを備えることを特徴とする通信システムである。
【発明の効果】
【００１７】
本発明によれば、代行装置への機密情報保守の信頼性を維持しつつ、代行装置に預託する鍵共有に係る秘密情報の配布に伴うトラフィック量を軽減することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態のシステムの全体構成を示す構成図である。
【図２】実施形態における第１の通信装置の内部構成を示す内部構成図である。
【図３】実施形態のプライマリ被計算委託装置の内部構成を示す内部構成図である。
【図４】実施形態のセカンダリ被計算委託装置の内部構成を示す内部構成図である。
【図５】実施形態における第２の通信装置の内部構成を示す内部構成図である。
【図６】実施形態のシステムにおける鍵共有処理の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１９】
（Ａ）主たる実施形態
以下では、本発明の鍵共有被計算委託装置、鍵共有システム及び通信システムの実施形態を、図面を参照しながら詳細に説明する。
【００２０】
実施形態では、第１の通信装置と第２の通信装置との間の鍵共有プロトコルにＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵共有プロトコル、又は、Ｅｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵共有プロトコルを採用する場合の実施形態を説明する。
【００２１】
（Ａ−１）実施形態の構成
（Ａ−１−１）システムの全体構成
図１は、実施形態のシステムの全体構成を示す構成図である。図１において、実施形態のシステム１は、第１の通信装置１００、第２の通信装置４００、プライマリ被計算委託装置２００、セカンダリ被計算委託装置３００を有して構成される。
【００２２】
なお、本発明の鍵共有被計算委託装置は、プライマリ被計算委託装置２００及びセカンダリ被計算委託装置３００を有するものである。
【００２３】
第１の通信装置１００は、例えばセンサやスマート端末等の端末に搭載される通信装置であり、ネットワーク帯域や消費電力等が限られた通信装置である。
【００２４】
第１の通信装置１００は、マルチホップ通信によりデータ通信を行なうものである。図１では、第１の通信装置１００が第２の通信装置４００に向けてデータ通信する場合、第１の通信装置１００は、マルチホップ通信によりネットワーク２に接続する終端装置（第１の通信装置１００と同等装置）を介して行うものとする。また、第１の通信装置１００と第２の通信装置４００との間のセキュリティ処理を行う場合も、第１の通信装置１００は、上記終端装置を介して、プライマリ被計算委託装置２００及びセカンダリ被計算委託装置３００と通信を行なう。
【００２５】
第２の通信装置４００は、ネットワーク２上に存在するサービス提供サーバ等に搭載される通信装置である。
【００２６】
プライマリ被計算委託装置２００及びセカンダリ被計算委託装置３００は、本発明の被計算委託装置を構成するものであり、認証鍵共有プロトコルにおいて第１の通信装置１００が実行すべき計算の一部を代行するものである。
【００２７】
図１では、プライマリ被計算委託装置２００とセカンダリ被計算委託装置３００とが、物理的に異なる装置であるように示すが、後述するプライマリ被計算委託装置２００及びセカンダリ被計算委託装置３００の各種機能を実行することができれば、プライマリ被計算委託装置２００及びセカンダリ被計算委託装置３００が同一の装置に備わるものであってもよい。
【００２８】
なお、実施形態の説明において、ｇは、巡回群＜Ｇ，・＞の生成元であり、システム共通のパラメータである。また、ｎは巡回群Ｇの位数である。
【００２９】
整数ｘは、第１の通信装置１００の秘密鍵であり、Ｐ＿Ｘ＝ｇ＾ｘは、第１の通信装置１００の公開鍵である。
【００３０】
整数ｖは、第２の通信装置４００の秘密鍵であり、Ｐ＿Ｖ＝ｇ＾ｖは、第２の通信装置４００の公開鍵である。
【００３１】
整数ｄ＿１は、プライマリ被計算委託装置２００の秘密鍵であり、Ｐ＿Ｄ１＝ｇ＾ｄ＿１は、プライマリ被計算委託装置２００の公開鍵である。
【００３２】
整数ｄ＿２は、セカンダリ被計算委託装置３００の秘密鍵であり、Ｐ＿Ｄ２＝ｇ＾ｄ２は、セカンダリ被計算委託装置３００の公開鍵である。
【００３３】
巡回群Ｇにおけるα・β∈Ｇは、αとβとを被演算子として巡回群Ｇで定義されている演算を行うことを意味する。また、α＾β∈Ｇは、αを被演算子として巡回群Ｇで定義されている演算をβ回行うことを意味する。また、α／β∈Ｇは、αと巡回群で定義されたβの逆元とを被演算子とし、巡回群Ｇで定義されている演算を行うことを意味する。
【００３４】
例えば、巡回群Ｇが楕円曲線Ｅ上の有理点のなす群であった場合、α・β∈Ｇは楕円曲線Ｅ上でのαとβとの楕円加算を意味し、α＾β∈Ｇはαの楕円スカラーβ倍算を意味し、α／β∈Ｇはαからβの楕円減算を意味する。
【００３５】
また例えば、巡回群Ｇが有限体の乗法群であった場合、α・β∈Ｇはαとβとの乗算を意味し、α／β∈Ｇはαのβ乗を意味し、α／β∈Ｇはαのβによる除算を意味する。また、Ｘ＿ＹはＸに対してＹを下付き文字表記する場合と同じである。
【００３６】
なお、第１の通信装置１００とプライマリ被計算委託装置２００との間で、予め共通鍵暗号アルゴリズムの共通鍵情報Ｋ＿ＸＤ１を共有し、第１の通信装置１００とセカンダリ被計算委託装置３００との間で予め共通鍵情報Ｋ＿ＸＤ２を共有しているものとする。
【００３７】
（Ａ−１−２）第１の通信装置１００の内部構成
図２は、第１の通信装置１００の内部構成を示す内部構成図である。図２において、第１の通信装置１００は、送受信部１０１、秘密鍵情報記憶部１０２、復号部１０３、共通鍵合成部１０４を有する。
【００３８】
図２において、少なくとも、秘密鍵情報記憶部１０２、復号部１０３、共通鍵合成部１０４を含むものを共通鍵合成装置１２ともいう。
【００３９】
送受信部１０１は、少なくとも、プライマリ被計算委託装置２００に対して、所定の通信プロトコルを用いて通信するものである。
【００４０】
秘密鍵情報記憶部１０２は、少なくともプライマリ被計算委託装置２００の間で共有する暗号鍵情報Ｋ＿ＸＤ１と、セカンダリ被計算委託装置３００の間で共有する暗号鍵情報Ｋ＿ＸＤ２とを記憶するものである。なお、秘密鍵情報記憶部１０２は、共通鍵合成部１０４の計算結果、すなわち共通鍵情報Ｋを記憶しても良い。
【００４１】
復号部１０３は、送受信部１０１から、部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１、Ｋ＿１）と部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）とを受け取り、秘密鍵情報記憶部１０２に記憶される暗号鍵情報Ｋ＿ＸＤ１を用いて、部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１、Ｋ＿１）を部分共通鍵情報Ｋ＿１に復号し、また秘密鍵情報記憶部１０２に記憶される暗号鍵情報Ｋ＿ＸＤ２を用いて、部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）を部分共通鍵情報Ｋ＿２に復号するものである。また、部分共通鍵復号部１０３は、復号したＫ＿１及びＫ＿２を共通鍵合成部１０４に与える。
【００４２】
なお、部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１、Ｋ＿１）は、プライマリ被計算委託装置２００が第１の通信装置１００との間で予め共有している共通鍵情報Ｋ＿ＸＤ１で暗号化して送信したものである。また、部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）は、セカンダリ被計算委託装置３００が第１の通信装置１００との間で事前に共有している共通鍵情報Ｋ＿ＸＤ２で暗号化して送信したものである。
【００４３】
ただし、ｅｎｃ（Ｋ、Ｍ）は、ビット列Ｍを共通鍵ビット列Ｋで所定の共通鍵暗号アルゴリズムを計算することを意味する。ここで、この実施形態では、ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）は、セカンダリ被計算委託装置３００からプライマリ被計算委託装置２００に送り、プライマリ被計算委託装置２００から第１の通信装置１００に送るようにする。
【００４４】
共通鍵合成部１０４は、復号部１０３から部分共通鍵情報Ｋ＿１及びＫ＿２を受け取り、部分共通鍵情報Ｋ＿１及びＫ＿２を用いて、式（１−１）に従って第２の通信装置４００との間のセッション鍵情報Ｋを求めるものである。
【００４５】
Ｋ＝Ｆ（Ｋ＿１・Ｋ＿２）…（１−１）
ただし、Ｆ（Ｘ）は、Ｇの元Ｘを鍵情報ビット列に変換する関数である。具体的にはＸのビット列表現を、ＳＨＡ−２５６（Secure  Hash  Algorithm：Federal  Information  Processing  Standards  Publication  １８０−２）ハッシュ関数に入力して、所定の鍵長のビット列を得る方法などを用いることができる。
【００４６】
（Ａ−１−３）プライマリ被計算委託装置２００の内部構成
図３は、実施形態のプライマリ被計算委託装置２００の内部構成を示す内部構成図である。
【００４７】
図３において、プライマリ被計算委託装置２００は、送受信部２０１、秘密鍵情報記憶部２０２、生成元記憶部２０３、部分鍵共有秘密鍵パラメータ生成部２０４、部分共通鍵計算部２０５、鍵共有公開鍵パラメータ配送管理部２０６、公開鍵取得部２０７、部分鍵共有公開鍵パラメータ計算部２０８、鍵共有公開鍵パラメータ合成部２０９を有する。
【００４８】
送受信部２０１は、第１の通信装置１００、第２の通信装置４００又はセカンダリ被計算委託装置３００との間で、所定の通信プロトコルを用いて通信を行うものである。
【００４９】
秘密鍵情報記憶部２０２は、第１の通信装置１００との間で共有する事前に共有している共通鍵情報Ｋ＿ＸＤ１を記憶する。ここで、この実施形態では、共通鍵情報Ｋ＿ＸＤ１が、事前に秘密鍵情報記憶部２０２に記憶されている場合を例示するが、例えば式（１−２）に従って共通鍵情報Ｋ＿ＸＤ１が導出されるようにしてもよい。ただし、式（１−２）に従って共通鍵情報Ｋ＿ＸＤ１を導出する場合、秘密鍵情報記憶部２０２にプライマリ被計算委託装置２００の秘密鍵情報ｄ＿１を安全に記憶しておく必要がある。また第１の通信装置１００の公開鍵情報Ｐ＿Ｘを取得するか記憶する手段が別途必要となる。
【００５０】
Ｋ＿ＸＤ１＝Ｆ（Ｐ＿Ｘ＾ｄ＿１）…（１−２）
生成元記憶部２０３は、巡回群Ｇの生成元ｇを記憶するものである。
【００５１】
部分鍵共有秘密鍵パラメータ生成部２０４は、部分鍵共有秘密鍵パラメータｘ＿ｔ１を生成し、生成した部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１を、部分共通鍵計算部２０５及び部分鍵共有公開鍵パラメータ計算部２０８に与えるものである。例えば、部分鍵共有秘密鍵パラメータ生成部２０４は、（擬似）乱数生成機能を有し、２≦ｘ＿ｔ１≦ｎ−１の範囲で乱数情報を生成し、当該乱数情報を部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１とする。
【００５２】
部分共通鍵計算部２０５は、部分鍵共有秘密鍵パラメータ生成部２０４から部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１と、公開鍵取得部２０７から第２の通信装置４００の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔとを読み取って、部分共通鍵情報Ｋ＿１を次式（１−３）で計算するものである。また、部分共通鍵計算部２０５は、秘密鍵情報記憶部２０２から第１の通信装置１００との間で事前に共有する共通鍵Ｋ＿ＸＤ１を読み取って、共通鍵Ｋ＿ＸＤ１を鍵として当該部分共通鍵情報Ｋ＿１を共通鍵暗号アルゴリズムに従って暗号化して、暗号化された部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１、Ｋ＿１）を第１の通信装置１００に送信する。
【００５３】
ｅｎｃ（Ｋ＿ＸＤ１，Ｋ＿１），ｗｈｅｒｅ
Ｋ＿１＝Ｐ＿Ｖｔ＾ｘ＿ｔ１…（１−３）
鍵共有公開鍵パラメータ配送管理部２０６は、公開鍵取得部２０７から第２の通信装置４００の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔを読み取り、鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔをセカンダリ被計算委託装置に送信するものである。
【００５４】
公開鍵取得部２０７は、送受信部２０１から第２の通信装置４００の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔを取得するものである。
【００５５】
部分鍵共有公開鍵パラメータ計算部２０８は、部分鍵共有秘密鍵パラメータ生成部２０４から部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１と、生成元記憶部２０３から生成元ｇとを読み取って、部分鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔ１を次式（１−４）に従って計算するものである。また、部分鍵共有交換鍵パラメータ計算部２０８は、部分鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔ１を鍵共有公開鍵パラメータ合成部２０９に与えるものである。
【００５６】
Ｐ＿Ｘｔ１＝ｇ＾ｘ＿ｔ１…（１−４）
鍵共有公開鍵パラメータ合成部２０９は、部分公開鍵パラメータ計算部２０８から部分鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔ１を読み取り、また送受信部２０１からセカンダリ被計算委託装置３００の部分公開鍵パラメータ情報Ｐ＿Ｘｔ２を受け取って、鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔを次式（１−５）に従って計算するものである。また、鍵共有公開鍵パラメータ合成部２０９は、鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔを、第２の通信装置４００に送信する。
【００５７】
Ｐ＿Ｘｔ＝Ｐ＿Ｘｔ１・Ｐ＿Ｘｔ２…（１−５）
（Ａ−１−４）セカンダリ被計算委託装置３００の内部構成
図４は、実施形態のセカンダリ被計算委託装置３００の内部構成を示す内部構成図である。図４において、セカンダリ被計算委託装置３００は、送受信部３０１、秘密鍵情報記憶部３０２、生成元記憶部３０３、部分共通鍵計算部３０４、公開鍵取得部３０５、部分鍵共有秘密鍵パラメータ生成部３０６、部分鍵共有公開鍵パラメータ計算部３０７を有する。
【００５８】
図４において、少なくとも、秘密鍵情報記憶部３０２、生成元記憶部３０３、部分共通鍵計算部３０４、公開鍵取得部３０５、部分鍵共有秘密鍵パラメータ生成部３０６、部分鍵共有公開鍵パラメータ計算部３０７を含むものを、鍵共有被計算委託装置３１ともいう。
【００５９】
送受信部３０１は、少なくとも、所定の通信プロトコルを用いてプライマリ被計算委託装置２００との間で通信するものである。
【００６０】
秘密鍵情報記憶部３０２は、第１の通信装置１００との間で共有する事前に共有する共通鍵情報Ｋ＿ＸＤ２を記憶する。ここで、この実施形態では、共通鍵情報Ｋ＿ＸＤ２は事前に秘密鍵情報記憶部３０２に記憶されている場合を例示するが、共通鍵情報Ｋ＿ＸＤ２は、例えば式（１−６）に従って導出されるようにしてもよい。ただし、式（１−６）に従って共通鍵情報Ｋ＿ＸＤ２を導出する場合、秘密鍵情報記憶部３０２にセカンダリ被計算委託装置３００の秘密鍵情報ｄ＿２を安全に記憶しておく必要がある。また第１の通信装置１００の公開鍵情報Ｐ＿Ｘを取得する手段又は記憶する手段が別途必要となる。
【００６１】
Ｋ＿ＸＤ２＝Ｆ（Ｐ＿Ｘ＾ｄ＿２）…（１−６）
生成元記憶部３０３は、巡回群Ｇの生成元ｇを記憶するものである。
【００６２】
部分共通鍵計算部３０４は、部分鍵共有秘密鍵パラメータ生成部３０６から部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ２と、公開鍵取得部３０５から第２の通信装置４００の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔとを読み取って、部分共通鍵情報Ｋ＿２を次式（１−７）に従って計算するものである。また、部分共通鍵計算部３０４は、秘密鍵情報記憶部３０２から第１の通信装置１００との間で事前に共有する共通鍵情報Ｋ＿ＸＤ２を読み取って、共通鍵情報Ｋ＿ＸＤ２を鍵として当該部分共通鍵情報Ｋ＿２を共通鍵暗号アルゴリズムに従って暗号化して、暗号化された部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）をプライマリ被計算委託装置２００に送信する。
【００６３】
ｅｎｃ（Ｋ＿ＸＤ２，Ｋ＿２），ｗｈｅｒｅ
Ｋ＿２＝Ｐ＿Ｖｔ＾ｘ＿ｔ２…（１−７）
【００６４】
部分鍵共有秘密鍵パラメータ生成部３０６は、部分鍵共有秘密鍵パラメータｘ＿ｔ２を生成し、生成した部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ２を、部分共通鍵計算部３０４及び共有公開鍵パラメータ計算部３０７に与えるものである。例えば、部分鍵共有秘密鍵パラメータ生成部３０６は、（擬似）乱数生成機能を有し、２≦ｘ＿ｔ２≦ｎ−１の範囲で乱数情報を生成し、当該乱数情報を部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ２とする。
【００６５】
部分鍵共有公開鍵パラメータ計算部３０７は、部分鍵共有秘密鍵パラメータ生成部３０６から部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ２と、生成元記憶部３０３から生成元ｇとを読み取って、部分鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔ２を次式（１−８）に従って計算するものである。また、部分鍵共有公開鍵パラメータ計算部３０７は、部分鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔ２をプライマリ被計算委託装置２００に送信するものである。
【００６６】
Ｐ＿Ｘｔ２＝ｇ＾ｘ＿ｔ２…（１−８）
（Ａ−１−５）第２の通信装置４００の内部構成
図５は、実施形態の第２の通信装置４００の内部構成を示す内部構成図である。図５において、第２の通信装置４００は、送受信部４０１、公開鍵取得部４０２、鍵共有秘密鍵パラメータ生成部４０３、鍵共有公開鍵パラメータ計算部４０４、共通鍵計算部４０５、生成元記憶部４０６を有する。
【００６７】
送受信部４０１は、所定の通信プロトコルを用いて、少なくともプライマリ被計算委託装置２００と通信するものである。
【００６８】
公開鍵取得部４０２は、第１の通信装置１００の鍵共有公開鍵パラメータ情報Ｐ＿Ｘｔを取得するものである。
【００６９】
鍵共有秘密鍵パラメータ生成部４０３は、鍵共有秘密鍵パラメータ情報ｖ＿ｔを生成し、生成した鍵共有秘密鍵パラメータ情報ｖ＿ｔを、共通鍵計算部４０５、及び鍵共有公開鍵パラメータ計算部４０４に与えるものである。例えば、鍵共有秘密鍵パラメータ生成部４０３は、（擬似）乱数生成機能を有し、２≦ｖ＿ｔ≦ｎ−１の範囲で乱数情報を生成し、当該乱数情報を鍵共有秘密鍵パラメータ情報ｖ＿ｔとする。
【００７０】
ここで、鍵共有秘密鍵パラメータ生成部４０３は、鍵共有秘密鍵パラメータｖ＿ｔを生成するのではなく、第２の通信装置４００の秘密鍵ｖを鍵共有秘密鍵パラメータｖ＿ｔとして用いてもよい。
【００７１】
鍵共有公開鍵パラメータ計算部４０４は、鍵共有秘密鍵パラメータ生成部４０３から部分鍵共有秘密鍵パラメータｖ＿ｔと、生成元記憶部４０６から生成元ｇとを読み取って、鍵共有公開鍵パラメータＰ＿Ｖｔを次式（１−９）に従って計算するものである。鍵共有公開鍵パラメータ計算部４０４は、鍵共有公開鍵パラメータＰ＿Ｖｔをプライマリ被計算委託装置２００に送信するものである。
【００７２】
Ｐ＿Ｖｔ＝ｇ＾ｖ＿ｔ…（１−９）
共通鍵計算部４０５は、プライマリ被計算委託装置２００から受信した鍵共有公開鍵パラメータＰ＿Ｘｔと、鍵共有秘密鍵パラメータ生成部４０３から受け取った鍵共有秘密鍵パラメータｖ＿ｔとから、セッション鍵Ｋを次式（１−１０）で計算するものである。
【００７３】
Ｋ＝Ｆ（Ｐ＿Ｘｔ＾ｖ＿ｔ）…（１−１０）
生成元記憶部４０６は、巡回群Ｇの生成元ｇを記憶するものである。
【００７４】
（Ａ−２）実施形態の動作
図６は、この実施形態のシステム３における鍵共有処理の動作を示すシーケンス図である。
【００７５】
（Ｓ１０１）第２の通信装置４００において、鍵共有秘密鍵パラメータ生成部４０３は、第１の鍵共有秘密鍵パラメータ情報ｖ＿ｔ（２≦ｖ＿ｔ≦ｎ−１）を任意に生成し、鍵共有秘密鍵パラメータ生成部４０３は第１の鍵共有秘密鍵パラメータ情報ｖ＿ｔを鍵共有公開鍵パラメータ計算部４０４に与える。
【００７６】
（Ｓ１０２）鍵共有公開鍵パラメータ計算部４０４は、第１の鍵共有秘密鍵パラメータ情報ｖ＿ｔを受け取ると、生成元記憶部４０６から生成元ｇを読み出して、式（１−９）に従って第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔを計算する。そして、鍵共有公開鍵パラメータ計算部４０４は、第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔをプライマリ被計算委託装置２００に送信する。
【００７７】
当該第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔがプライマリ被計算委託装置２００に与えられると、第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔは、公開鍵取得部２０７に記憶されると共に、鍵共有公開鍵パラメータ配送管理部２０６に与えられる。さらに、第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔは、鍵共有公開鍵パラメータ配送管理部２０６からセカンダリ被計算委託装置３００に送信される。
【００７８】
第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔがセカンダリ被計算委託装置３００に与えられると、第１の鍵共有公開鍵パラメータ情報Ｐ＿Ｖｔは公開鍵取得部３０５に記憶される。
【００７９】
（Ｓ１０３）次に、プライマリ被計算委託装置２００において、部分鍵共有秘密鍵パラメータ生成部２０４が、第１の部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１（２≦ｘ＿ｔ１≦ｎ−１）を任意に生成する。そして、部分鍵共有秘密鍵パラメータ生成部２０４が、生成した第１の部分鍵共有秘密鍵パラメータ情報ｘ＿ｔ１を、部分鍵共有公開鍵パラメータ計算部２０８と部分共通鍵計算部２０５とに与える。
【００８０】
（Ｓ１０４）部分鍵共有公開鍵パラメータ計算部２０８は、第１の部分鍵共有秘密鍵パラメータｘ＿ｔ１を受け取ると、生成元記憶部２０３から生成元ｇを読み出して、式（１−４）に従って第１の部分鍵共有公開鍵パラメータＰ＿Ｘｔ１を計算して、鍵共有公開鍵パラメータ合成部２０９に与える。
【００８１】
（Ｓ１０５）部分共通鍵計算部２０５は、第１の部分鍵共有秘密鍵パラメータｘ＿ｔ１を受け取ると、公開鍵取得部２０７から第２の通信装置の公開鍵Ｐ＿Ｖｔを読み取り、式（１−３）に従って第１の部分共通鍵情報Ｋ＿１を計算して、第１の通信装置１００とプライマリ被計算委託装置２００との間で共有している共通鍵Ｋ＿ＸＤ１で暗号化する。そして、部分共通鍵計算部２０５は、暗号化したｅｎｃ（Ｋ＿ＸＤ１、Ｋ＿１）を、一時記憶部（図示しない）に記憶しておく。
【００８２】
（Ｓ１０６）次に、セカンダリ被計算委託装置３００において、部分鍵共有秘密鍵パラメータ生成部３０６が、第２の部分鍵共有秘密鍵パラメータｘ＿ｔ２（２≦ｘ＿ｔ２≦ｎ−１）を任意に生成する。そして、部分鍵共有秘密鍵パラメータ生成部３０６は、生成した第２の部分鍵共有秘密鍵パラメータｘ＿ｔ２を、部分鍵共有公開鍵パラメータ計算部３０７と部分共通鍵計算部３０４とに与える。
【００８３】
（Ｓ１０７）部分鍵共有公開鍵パラメータ計算部３０７は、第２の部分鍵共有秘密鍵パラメータｘ＿ｔ２を受け取ると、生成元記憶部３０３から生成元ｇを読み出して、式（１−８）に従って第２の部分鍵共有公開鍵パラメータＰ＿Ｘｔ２を計算して、第２の部分鍵共有公開鍵パラメータＰ＿Ｘｔ２をセカンダリ被計算委託装置３００の一時記憶部（図示しない）に一時的に記憶しておく。
【００８４】
（Ｓ１０８）部分共通鍵計算部３０４は、第２の部分鍵共有秘密鍵パラメータｘ＿ｔ２を受け取ると、公開鍵取得部３０５から第２の通信装置の公開鍵Ｐ＿Ｖｔを読み取り、式（１−７）に従って第２の部分共通鍵情報Ｋ＿２を計算して、第２の通信装置１００とセカンダリ被計算委託装置３００の間で共有している共通鍵Ｋ＿ＸＤ２で暗号化する。そして、部分共通鍵計算部３０４は、暗号化したｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）を、第２の部分鍵共有公開鍵パラメータＰ＿Ｘｔ２と共にプライマリ被計算委託装置に送信する。
【００８５】
（Ｓ１０９）プライマリ被計算委託装置２００は、セカンダリ被計算委託装置３００から、第２の部分鍵共有公開鍵パラメータＰ＿Ｘｔ２を受信すると、鍵共有公開鍵パラメータ合成部２０９に与える。鍵共有公開鍵パラメータ合成部２０９は、第１の部分鍵共有公開鍵パラメータＰ＿Ｘｔ１と、第２の部分鍵共有公開鍵パラメータＰ＿Ｘｔ２とから、式（１−５）に従って第２の鍵共有公開鍵パラメータＰ＿Ｘｔを計算して、第２の通信装置４００に送信する。また、プライマリ被計算委託装置２００は、セカンダリ被計算委託装置３００から、暗号化されて送られてきた第２の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２，Ｋ＿２）を受信すると、プライマリ被計算委託装置２００の一時記憶部に記憶してあった、暗号化された第１の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１，Ｋ＿１）と共に、第１の通信装置に送る。
【００８６】
（Ｓ１１０）第２の通信装置４００は、第２の鍵共有公開鍵パラメータＰ＿Ｘｔをプライマリ被計算委託装置２００から受信すると、式（１−１０）に従ってセッション鍵Ｋを計算する。
【００８７】
（Ｓ１１１）第１の通信装置１００は、プライマリ被計算委託装置２００から、暗号化された第１の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１，Ｋ＿１）と、暗号化された第２の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２，Ｋ＿２）を受信すると、それらを復号部１０３に与える。
【００８８】
復号部１０３は、第１の通信装置１００とプライマリ被計算委託装置２００の間で共有する共通鍵Ｋ＿ＸＤ１を用いて暗号化された第１の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ１，Ｋ＿１）から第１の部分共有鍵情報Ｋ＿１を復号する。また、復号部１０３は、第１の通信装置１００とセカンダリ被計算委託装置３００の間で共有する共通鍵Ｋ＿ＸＤ２を用いて暗号化された第２の部分共通鍵情報ｅｎｃ（Ｋ＿ＸＤ２，Ｋ＿２）から第２の部分共有鍵情報Ｋ２を復号する。
【００８９】
復号部１０３は、復号した第１の部分共有鍵情報Ｋ＿１及び第２の部分共有鍵情報Ｋ＿２を共通鍵合成部１０４に与える。そして、共通鍵合成部１０４は式（１−１）に従ってセッション鍵Ｋを計算する。
【００９０】
（Ａ−３）実施形態の効果
以上のように、実施形態によれば、少なくとも第１の通信装置が鍵共有に用いる秘密鍵情報をテンポラルに生成する必要がある場合、２台の被計算委託装置がそれぞれ、テンポラルな部分秘密鍵情報と、対応する（テンポラルな）部分公開鍵情報を生成し、部分公開鍵情報については、プライマリ被計算委託装置が鍵共有用公開鍵情報として合成して第２の通信装置に与えるようにすることにより、第１の通信装置が鍵共有用の秘密鍵情報を都度準備して、分割し、各被計算委託サーバに預託するのにかかる計算コストと通信コストを省くことができる。
【００９１】
（Ｂ）他の実施形態
上述した実施形態において、セカンダリ被計算委託装置３００が、暗号化した第２の部分共有鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）をプライマリ被計算委託装置に送信しているが、セカンダリ被計算委託装置３００は、第１の通信装置に対して暗号化した第２の部分共有鍵情報ｅｎｃ（Ｋ＿ＸＤ２、Ｋ＿２）を直接送信するようにしてもよい。ただし、第１の通信装置の送受信部にはセカンダリ被計算委託装置と通信する機能が備わっていることが条件となる。
【００９２】
上述した実施形態は、第１の通信装置と第２の通信装置との間のセキュリティ処理の一部を、第１の通信装置に代わって代行装置が行う鍵共有システムに広く適用することができる。例えば、本願発明者は、第１の通信装置と第２の通信装置との間の背栗ティ処理の一部を代行する代行装置が、鍵共有計算、ＰＫＩ復号計算、及び、デジタル署名計算の一部を行う技術を提案している（特願2012-15216参照）。この提案技術における鍵共有計算の技術に、本発明を適用するようにしてもよい。
【符号の説明】
【００９３】
１…システム、２…ネットワーク、
１００…第１の通信装置、１２…共通鍵合成装置、
１０１…送受信部、１０２…秘密鍵情報記憶部、
１０３…復号部、１０４…共通鍵合成部、
２００…プライマリ被計算委託装置、
２０１…送受信部、２０２…秘密鍵情報記憶部、２０３…生成元記憶部、
２０４…部分鍵共有秘密鍵パラメータ生成部、２０５…部分共通鍵計算部、
２０６…鍵共有公開鍵パラメータ配送管理部、２０７…公開鍵取得部、
２０８…部分鍵共有公開鍵パラメータ計算部、
２０９…鍵共有公開鍵パラメータ合成部、
３００…セカンダリ被計算委託装置、３１…鍵共有被計算委託装置、
３０１…送受信部、３０２…秘密鍵情報記憶部、３０３…生成元記憶部、
３０４…部分共通鍵計算部、３０５…公開鍵取得部、
３０６…部分鍵共有秘密鍵パラメータ生成部、
３０７…部分鍵共有公開鍵パラメータ計算部、
４００…第２の通信装置、
４０１…送受信部、４０２…公開鍵取得部、
４０３…鍵共有秘密鍵パラメータ生成部、
４０４…鍵共有公開鍵パラメータ計算部、４０５…共有鍵計算部、
４０６…生成元記憶部。
【図１】
0005488653.tif 000002
【図２】
0005488653.tif 000003
【図３】
0005488653.tif 000004
【図４】
0005488653.tif 000005
【図５】
0005488653.tif 000006
【図６】
0005488653.tif 000007