(57)【要約】【課題】グループ鍵共有技術におけるセキュリティを更に向上させることが可能な、新規かつ改良された暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムを提供すること。【解決手段】本発明に係る暗号化装置および鍵処理装置では、同時通信を行う際に利用されるセッション鍵を算出するために必要となるセッション情報を各装置が生成する際に、それぞれのセッション情報中に、各装置に予め割り当てられている各装置に固有の秘密鍵に依存する値を含有させる。これにより、グループメンバによる成りすましに対する防御を実現することが可能となる。【選択図】図１
2010047356.tif 000002
【特許請求の範囲】
【請求項１】
セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える、暗号化装置。
【請求項２】
前記パラメータ選択部は、パラメータδ∈ＲＺｑ＊およびパラメータｋ１∈ＲＺｑ＊と、前記所定のビット数を有するパラメータｒと、を選択する、請求項１に記載の暗号化装置。
【請求項３】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、
前記メンバ情報生成部は、下記式１に基づいて、各参加装置に対応した前記メンバ情報Ｐｉをそれぞれ生成する、請求項２に記載の暗号化装置。
ここで、下記式１において、ＨＡは、公開されている前記ハッシュ関数の一つであり、Ｓ１は、自装置に予め割り当てられている秘密鍵であり、Ｑｉは、各参加装置に予め割り当てられている公開鍵であり、ｉは、２〜ｎの整数である。
【数１】
2010047356.tif 000052
【請求項４】
前記セッション情報生成部は、下記式２で表される値Ｘ１と、下記式３で表される値Ｙ１とを算出し、下記式４で表される前記セッション情報Ｄ１を生成する、請求項３に記載の暗号化装置。
ここで、下記式２および下記式３におけるＨＢは、公開されている前記ハッシュ関数の一つである。また、下記式４において、Ｐ２〜Ｐｎは、各参加装置に対応した前記メンバ情報であり、Ｌは、Ｐ２〜Ｐｎの前記メンバ情報と前記参加装置との対応関係が記載された情報である。
【数２】
2010047356.tif 000053
【請求項５】
前記暗号化装置は、自装置にて生成した前記セッション情報と、前記参加装置から取得した式５で表されるそれぞれの前記セッション情報Ｄｉ（ｉ＝２，・・・，ｎ）と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
前記メンバ検証部は、下記式６で表される検証パラメータｚを算出し、下記式７が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項４に記載の暗号化装置。
【数３】
2010047356.tif 000054
【請求項６】
前記メンバ検証部は、前記式７が成立する場合に、正当な機器から前記参加装置が構成されていると判断し、
前記セッション鍵生成部は、下記式８に基づいて前記セッション鍵Ｋを算出する、請求項５に記載の暗号化装置。
ここで、下記式８におけるＨＣは、公開されている前記ハッシュ関数の一つである。
【数４】
2010047356.tif 000055
【請求項７】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、
前記パラメータ選択部は、パラメータδｉ∈ＲＺｑ＊およびパラメータｋｉ∈ＲＺｑ＊と、前記所定のビット数を有するパラメータｒｉと、を選択し、
前記メンバ情報生成部は、下記式９に基づいて、各参加装置に対応した前記メンバ情報Ｐｉをそれぞれ生成する、請求項１に記載の暗号化装置。
ここで、下記式９において、Ｈ２は、公開されている前記ハッシュ関数の一つであり、Ｓｉは、自装置に予め割り当てられている秘密鍵であり、Ｑｊは、各参加装置に予め割り当てられている公開鍵である。
【数５】
2010047356.tif 000056
【請求項８】
前記セッション情報生成部は、下記式１０で表される値Ｖｉと、下記式１１で表される値Ｗｉとを算出し、下記式１２で表される前記セッション情報Ｄｉを生成する、請求項７に記載の暗号化装置。
ここで、下記式１０におけるＨ３および下記式１１におけるＨ４は、公開されている前記ハッシュ関数の一つである。また、下記式１１において、ＳＩＧｉ（ｘ）は、所定の署名生成鍵を用いて情報ｘに対して生成したデジタル署名を表す。また、下記式１２において、Ｐ２〜Ｐｎは、各参加装置に対応した前記メンバ情報であり、Ｌは、前記メンバ情報と前記参加装置との対応関係が記載された情報である。
【数６】
2010047356.tif 000057
【請求項９】
前記暗号化装置は、前記式１２で表される、自装置にて生成した前記セッション情報Ｄｉおよび前記参加装置から取得した前記セッション情報Ｄｉを用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
前記メンバ検証部は、下記式１３で表されるパラメータｋｊ’（ｊ＝１，・・・，ｎ、ｊ≠ｉ）を算出し、算出したパラメータｋｊ’と、前記セッション情報Ｄｉとに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項８に記載の暗号化装置。
【数７】
2010047356.tif 000058
【請求項１０】
前記セッション鍵生成部は、前記メンバ検証部による検証が成功した場合に、下記式１４に基づいて前記セッション鍵Ｋを算出する、請求項９に記載の暗号化装置。
【数８】
2010047356.tif 000059
【請求項１１】
前記公開パラメータとして、所定の情報を暗号化する暗号化関数Ｅ、暗号化された情報を復号する復号関数Ｄ、所定の情報にデジタル署名を付加する署名生成関数Ｓ、および、デジタル署名の検証を行う署名検証関数Ｖと、ハッシュ関数とが公開されており、
前記パラメータ選択部は、所定のビット数を有するパラメータＮｉを選択し、
前記セッション情報生成部は、下記式１５で表されるデジタル署名が付加されたメッセージＤと、暗号文Ｅ（ｅｉ，Ｎ１）（ｉ＝２，・・・，ｎ）とを生成する、請求項１に記載の暗号化装置。
ここで、下記式１５において、Ｓ（ｓ，ｘ）は、所定の署名生成鍵ｓを用いて情報ｘに対して生成したデジタル署名を表し、Ｅ（ｅ，ｘ）は、公開鍵ｅを用いて情報ｘを暗号化した暗号文を表す。
【数９】
2010047356.tif 000060
【請求項１２】
前記セッション鍵生成部は、前記他の参加装置から取得した所定のビット数を有するパラメータＮｉと、前記パラメータ選択部により選択されたパラメータＮ１とを用いて、下記式１６に基づいて前記セッション鍵ＫＵを算出する、請求項１１に記載の暗号化装置。
【数１０】
2010047356.tif 000061
【請求項１３】
暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える、鍵処理装置。
【請求項１４】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、
前記セッション鍵取得部は、前記暗号化装置から、下記式１７で表される前記セッション情報Ｄ１を取得し、
前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報Ｄ１に含まれる、自装置に対応するメンバ情報Ｐｉおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式１８により一時鍵ｒ’を算出する、請求項１３に記載の鍵処理装置。
ここで、下記式１７におけるＨＢおよび下記式１０におけるＨＡは、公開されている前記ハッシュ関数の一つである。
【数１１】
2010047356.tif 000062
【請求項１５】
前記セッション鍵生成部は、下記式１９で表される前記セッション情報Ｄｉを生成する、請求項１４に記載の鍵処理装置。
ここで、下記式１９におけるｋｉは、セッション情報を算出する際に用いられるパラメータである。
【数１２】
2010047356.tif 000063
【請求項１６】
前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式１９で表される前記セッション情報を取得し、
前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式１７で表される前記セッション情報Ｄ１と、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
前記メンバ検証部は、下記式２０で表される検証パラメータｚを算出し、下記式２１が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項１５に記載の鍵処理装置。
ここで、下記式２０および式２１における変数ｎは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。
【数１３】
2010047356.tif 000064
【請求項１７】
前記メンバ検証部は、前記式２１が成立する場合に、前記同時通信に参加する機器が正当な機器から構成されていると判断し、
前記セッション鍵生成部は、下記式２２に基づいて前記セッション鍵Ｋを算出する、請求項１６に記載の鍵処理装置。
ここで、下記式２２におけるＨＣは、公開されている前記ハッシュ関数の一つである。
【数１４】
2010047356.tif 000065
【請求項１８】
前記公開パラメータとして、所定の情報を暗号化する暗号化関数Ｅ、暗号化された情報を復号する復号関数Ｄ、所定の情報にデジタル署名を付加する署名生成関数Ｓ、および、デジタル署名の検証を行う署名検証関数Ｖと、ハッシュ関数とが公開されており、
前記鍵処理装置は、前記暗号化装置から取得した下記式２３で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、
前記一時鍵算出部は、前記暗号化装置から伝送された暗号文Ｅ（ｅｉ，Ｎ１）を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータＮ１を算出し、
前記メンバ検証部は、下記式２３で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータＮ１とを用いて算出されたｈ（Ｎ１）とに基づいて、前記暗号化装置の検証を行う、請求項１３に記載の鍵処理装置。
ここで、下記式２３において、Ｓ（ｓ，ｘ）は、所定の署名生成鍵ｓを用いて情報ｘに対して生成したデジタル署名を表し、Ｅ（ｅ，ｘ）は、公開鍵ｅを用いて情報ｘを暗号化した暗号文を表す。
【数１５】
2010047356.tif 000066
【請求項１９】
前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータＮｉを選択し、
前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータＮｉを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信する、請求項１８に記載の鍵処理装置。
【請求項２０】
前記セッション鍵生成部は、前記一時鍵算出部により算出されたパラメータＮ１と、前記パラメータ選択部により選択されたパラメータＮｉと、前記他の参加装置から取得したパラメータＮｉとを用いて、下記式２４に基づいて前記セッション鍵ＫＵを算出する、請求項１９に記載の鍵処理装置。
【数１６】
2010047356.tif 000067
【請求項２１】
セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
を含む、暗号化方法。
【請求項２２】
暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、
選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、
前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
を含む、鍵処理方法。
【請求項２３】
他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択機能と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
を実現させるためのプログラム。
【請求項２４】
暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、
選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
を実現させるためのプログラム。
【請求項２５】
セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える暗号化装置と、
前記暗号化装置から伝送されたセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える鍵処理装置と、
を含む、鍵共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムに関する。
【背景技術】
【０００２】
近年の通信技術の進歩により、電話会議やチャットなど、複数の参加者による同時通信が広く行われるようになった。この通信は、しばしばインターネットなど安全性が確立されていない通信路を介しても行われる。この場合、会議の内容などの通信のコンテンツを同時通信の参加者以外の者から守るために、通信内容を暗号化することが一般的である。【０００３】
暗号化技術の最も一般的な方法としては、共通鍵暗号と呼ばれる、送信者と受信者が同じ鍵を共有し、この鍵を用いてコンテンツを暗号化したり復号したりする方法がある。また、複数（特に、３人以上）のエンティティ間で、セッション鍵と呼ばれる同一の鍵を共有するための技術として、グループ鍵共有（Ｇｒｏｕｐ  Ｋｅｙ  Ａｇｒｅｅｍｅｎｔ：ＧＫＡ）技術がある（例えば、以下の非特許文献１〜非特許文献３を参照。）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｍ．Ｂｕｒｍｅｓｔｅｒ  ａｎｄ  Ｙ．Ｄｅｓｍｅｄｔ，“Ａ  Ｓｅｃｕｒｅ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔ  Ｃｏｎｆｅｒｅｎｃｅ  Ｋｅｙ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｙｓｔｅｍｓ”，Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＥＵＲＯＣＲＹＰＴ’９４，ｖｏｌｕｍｅ９５０  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｓ２７５−２８６，Ｓｐｒｉｎｇｅｒ，Ｍａｙ  １９９４．
【非特許文献２】Ｌ．Ｚｈｏｕ，Ｗ．Ｓｕｓｉｌｏ  ａｎｄ  Ｙ．Ｍｕ，“Ｅｆｆｉｃｉｅｎｔ  ＩＤ−ｂａｓｅｄ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｇｒｏｕｐ  Ｋｅｙ  Ａｇｒｅｅｍｅｎｔ  ｆｒｏｍ  Ｂｉｌｉｎｅａｒ  Ｐａｉｒｉｎｇｓ”，Ｍｏｂｉｌｅ  Ａｄ−ｈｏｃ  ａｎｄ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ−ＭＳＮ  ２００６，ＬＮＣＳ  ４３２５，ｐｐ．５２１−５３２，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，２００６．
【非特許文献３】Ｃ．Ｂｏｙｄ  ａｎｄ  Ｊ．Ｍ．Ｇｏｎｚａｌｅｚ  Ｎｉｅｔｏ，“Ｒｏｕｎｄ−ｏｐｔｉｍａｌ  Ｃｏｎｔｒｉｂｕｔｏｒｙ  Ｃｏｎｆｅｒｅｎｃｅ  Ｋｅｙ  Ａｇｒｅｅｍｅｎｔ”，ＰＫＣ  ２００３，ＬＮＣＳ  ２５６７，ｐｐ．１６１−１７４，Ｓｐｒｉｎｇｅｒ，２００３．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記非特許文献１に記載の方式では、同時通信を行うメンバが行う計算量が大きくなってしまうという問題があった。また、上記非特許文献２に記載の方式は、非特許文献１に記載の方式よりは計算量は少ないものの、本願発明者らによる当該方法の詳細な検討の結果、グループメンバによる成りすましが可能であることが明らかとなった。【０００６】
また、本願発明者らによる検討の結果、上記非特許文献２および非特許文献３に記載の方法では、同時通信を行うメンバで共有すべきグループ鍵をグループ内の特定のユーザに共有できないようにすることができてしまうという問題があることが明らかとなった。【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、グループ鍵共有技術におけるセキュリティを更に向上させることが可能な、新規かつ改良された暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える暗号化装置が提供される。【０００９】
前記パラメータ選択部は、パラメータδ∈ＲＺｑ＊およびパラメータｋ１∈ＲＺｑ＊と、前記所定のビット数を有するパラメータｒと、を選択してもよい。【００１０】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、前記メンバ情報生成部は、下記式１に基づいて、各参加装置に対応した前記メンバ情報Ｐｉをそれぞれ生成してもよい。【００１１】
ここで、下記式１において、ＨＡは、公開されている前記ハッシュ関数の一つであり、Ｓ１は、自装置に予め割り当てられている秘密鍵であり、Ｑｉは、各参加装置に予め割り当てられている公開鍵であり、ｉは、２〜ｎの整数である。【００１２】
【数１】
2010047356.tif 000003
【００１３】
前記セッション情報生成部は、下記式２で表される値Ｘ１と、下記式３で表される値Ｙ１とを算出し、下記式４で表される前記セッション情報Ｄ１を生成してもよい。【００１４】
ここで、下記式２および下記式３におけるＨＢは、公開されている前記ハッシュ関数の一つである。また、下記式４において、Ｐ２〜Ｐｎは、各参加装置に対応した前記メンバ情報であり、Ｌは、Ｐ２〜Ｐｎの前記メンバ情報と前記参加装置との対応関係が記載された情報である。【００１５】
【数２】
2010047356.tif 000004
【００１６】
前記暗号化装置は、自装置にて生成した前記セッション情報と、前記参加装置から取得した式５で表されるそれぞれの前記セッション情報Ｄｉ（ｉ＝２，・・・，ｎ）と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式６で表される検証パラメータｚを算出し、下記式７が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。【００１７】
【数３】
2010047356.tif 000005
【００１８】
前記メンバ検証部は、前記式７が成立する場合に、正当な機器から前記参加装置が構成されていると判断し、前記セッション鍵生成部は、下記式８に基づいて前記セッション鍵Ｋを算出してもよい。ここで、下記式８におけるＨＣは、公開されている前記ハッシュ関数の一つである。【００１９】
【数４】
2010047356.tif 000006
【００２０】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、前記パラメータ選択部は、パラメータδｉ∈ＲＺｑ＊およびパラメータｋｉ∈ＲＺｑ＊と、前記所定のビット数を有するパラメータｒｉと、を選択し、前記メンバ情報生成部は、下記式９に基づいて、各参加装置に対応した前記メンバ情報Ｐｉをそれぞれ生成してもよい。【００２１】
ここで、下記式９において、Ｈ２は、公開されている前記ハッシュ関数の一つであり、Ｓｉは、自装置に予め割り当てられている秘密鍵であり、Ｑｊは、各参加装置に予め割り当てられている公開鍵である。【００２２】
【数５】
2010047356.tif 000007
【００２３】
前記セッション情報生成部は、下記式１０で表される値Ｖｉと、下記式１１で表される値Ｗｉとを算出し、下記式１２で表される前記セッション情報Ｄｉを生成してもよい。【００２４】
ここで、下記式１０におけるＨ３および下記式１１におけるＨ４は、公開されている前記ハッシュ関数の一つである。また、下記式１１において、ＳＩＧｉ（ｘ）は、所定の署名生成鍵を用いて情報ｘに対して生成したデジタル署名を表す。また、下記式１２において、Ｐ２〜Ｐｎは、各参加装置に対応した前記メンバ情報であり、Ｌは、前記メンバ情報と前記参加装置との対応関係が記載された情報である。【００２５】
【数６】
2010047356.tif 000008
【００２６】
前記暗号化装置は、前記式１２で表される、自装置にて生成した前記セッション情報Ｄｉおよび前記参加装置から取得した前記セッション情報Ｄｉを用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式１３で表されるパラメータｋｊ’（ｊ＝１，・・・，ｎ、ｊ≠ｉ）を算出し、算出したパラメータｋｊ’と、前記セッション情報Ｄｉとに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。【００２７】
【数７】
2010047356.tif 000009
【００２８】
前記セッション鍵生成部は、前記メンバ検証部による検証が成功した場合に、下記式１４に基づいて前記セッション鍵Ｋを算出してもよい。【００２９】
【数８】
2010047356.tif 000010
【００３０】
前記公開パラメータとして、所定の情報を暗号化する暗号化関数Ｅ、暗号化された情報を復号する復号関数Ｄ、所定の情報にデジタル署名を付加する署名生成関数Ｓ、および、デジタル署名の検証を行う署名検証関数Ｖと、ハッシュ関数とが公開されており、前記パラメータ選択部は、所定のビット数を有するパラメータＮｉを選択し、前記セッション情報生成部は、下記式１５で表されるデジタル署名が付加されたメッセージＤと、暗号文Ｅ（ｅｉ，Ｎ１）（ｉ＝２，・・・，ｎ）とを生成してもよい。【００３１】
ここで、下記式１５において、Ｓ（ｓ，ｘ）は、所定の署名生成鍵ｓを用いて情報ｘに対して生成したデジタル署名を表し、Ｅ（ｅ，ｘ）は、公開鍵ｅを用いて情報ｘを暗号化した暗号文を表す。【００３２】
【数９】
2010047356.tif 000011
【００３３】
前記セッション鍵生成部は、前記他の参加装置から取得した所定のビット数を有するパラメータＮｉと、前記パラメータ選択部により選択されたパラメータＮ１とを用いて、下記式１６に基づいて前記セッション鍵ＫＵを算出してもよい。【００３４】
【数１０】
2010047356.tif 000012
【００３５】
上記課題を解決するために、本発明の別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える鍵処理装置が提供される。【００３６】
前記公開パラメータとして、位数ｑを有する互いに異なる２つの群Ｇ１，Ｇ２と、前記群Ｇ１の要素の組を前記群Ｇ２へと写像する双線形写像ｅと、複数の異なるハッシュ関数と、２つのパラメータＰ，Ｐｐｕｂと、が公開されており、前記セッション鍵取得部は、前記暗号化装置から、下記式１７で表される前記セッション情報Ｄ１を取得し、前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報Ｄ１に含まれる、自装置に対応するメンバ情報Ｐｉおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式１８により一時鍵ｒ’を算出してもよい。【００３７】
ここで、下記式１７におけるＨＢおよび下記式１０におけるＨＡは、公開されている前記ハッシュ関数の一つである。【００３８】
【数１１】
2010047356.tif 000013
【００３９】
前記セッション鍵生成部は、下記式１９で表される前記セッション情報Ｄｉを生成してもよい。ここで、下記式１９におけるｋｉは、セッション情報を算出する際に用いられるパラメータである。【００４０】
【数１２】
2010047356.tif 000014
【００４１】
前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式１９で表される前記セッション情報を取得し、前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式１７で表される前記セッション情報Ｄ１と、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式２０で表される検証パラメータｚを算出し、下記式２１が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。【００４２】
ここで、下記式２０および式２１における変数ｎは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。【００４３】
【数１３】
2010047356.tif 000015
【００４４】
前記メンバ検証部は、前記式２１が成立する場合に、前記同時通信に参加する機器が正当な機器から構成されていると判断し、前記セッション鍵生成部は、下記式２２に基づいて前記セッション鍵Ｋを算出してもよい。ここで、下記式２２におけるＨＣは、公開されている前記ハッシュ関数の一つである。【００４５】
【数１４】
2010047356.tif 000016
【００４６】
前記公開パラメータとして、所定の情報を暗号化する暗号化関数Ｅ、暗号化された情報を復号する復号関数Ｄ、所定の情報にデジタル署名を付加する署名生成関数Ｓ、および、デジタル署名の検証を行う署名検証関数Ｖと、ハッシュ関数とが公開されており、前記鍵処理装置は、前記暗号化装置から取得した下記式２３で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、前記一時鍵算出部は、前記暗号化装置から伝送された暗号文Ｅ（ｅｉ，Ｎ１）を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータＮ１を算出し、前記メンバ検証部は、下記式２３で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータＮ１とを用いて算出されたｈ（Ｎ１）とに基づいて、前記暗号化装置の検証を行ってもよい。【００４７】
ここで、下記式２３において、Ｓ（ｓ，ｘ）は、所定の署名生成鍵ｓを用いて情報ｘに対して生成したデジタル署名を表し、Ｅ（ｅ，ｘ）は、公開鍵ｅを用いて情報ｘを暗号化した暗号文を表す。【００４８】
【数１５】
2010047356.tif 000017
【００４９】
前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータＮｉを選択し、前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータＮｉを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信してもよい。【００５０】
前記セッション鍵生成部は、前記一時鍵算出部により算出されたパラメータＮ１と、前記パラメータ選択部により選択されたパラメータＮｉと、前記他の参加装置から取得したパラメータＮｉとを用いて、下記式２４に基づいて前記セッション鍵ＫＵを算出してもよい。【００５１】
【数１６】
2010047356.tif 000018
【００５２】
上記課題を解決するために、本発明の更に別の観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、含む暗号化方法が提供される。【００５３】
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、を含む鍵処理方法が提供される。【００５４】
上記課題を解決するために、本発明の更に別の観点によれば、他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとして所定のビット数を有するパラメータを選択するパラメータ選択機能と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。【００５５】
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。【００５６】
上記課題を解決するために、本発明の更に別の観点によれば、上述の暗号化装置と上述の鍵処理装置とを含む鍵共有システムが提供される。
【発明の効果】
【００５７】
以上説明したように本発明によれば、グループ鍵共有技術におけるセキュリティを更に向上させることが可能である。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施形態に係る鍵共有システムについて説明するための説明図である。
【図２】同実施形態に係る鍵生成装置の構成を説明するためのブロック図である。
【図３】同実施形態に係る暗号化装置の構成を説明するためのブロック図である。
【図４】同実施形態に係る鍵処理装置の構成を説明するためのブロック図である。
【図５】同実施形態に係る鍵生成方法の流れについて説明するための流れ図である。
【図６】同実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【図７】同実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【図８】同実施形態に係るセッション鍵生成処理について説明するための説明図である。
【図９】本発明の第２の実施形態に係る暗号化装置の構成を説明するためのブロック図である。
【図１０】同実施形態に係る鍵処理装置の構成を説明するためのブロック図である。
【図１１】同実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【図１２】本発明の第３の実施形態に係る鍵共有システムについて説明するための説明図である。
【図１３】同実施形態に係る鍵生成装置の構成を説明するためのブロック図である。
【図１４】同実施形態に係る暗号化装置の構成を説明するためのブロック図である。
【図１５】同実施形態に係る鍵生成処理について説明するための流れ図である。
【図１６】同実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【図１７】本発明の各実施形態に係る暗号化装置のハードウェア構成を説明するためのブロック図である。
【図１８】非特許文献２に記載の方法における鍵生成処理について説明するための流れ図である。
【図１９】非特許文献２に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
【図２０】非特許文献２に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
【図２１】非特許文献２に記載の第２の方法における鍵生成処理について説明するための流れ図である。
【図２２】非特許文献２に記載の第２の方法におけるセッション鍵生成処理について説明するための流れ図である。
【図２３】非特許文献３に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
【符号の説明】
【００５９】
１    鍵共有システム
３    通信網
１０    鍵生成装置
１１    メンバ情報管理部
１３    パラメータ選択部
１５    公開情報生成部
１７    鍵生成部
１９    公開鍵生成部
２１    秘密鍵生成部
２２    署名鍵生成部
２３    情報提供部
２５    通信制御部
２７    記憶部
１００    暗号化装置
１０１，２０１    個人鍵取得部
１０３，２０３    グループ鍵生成部
１０５，１２１，１３１，２０９，２２９    パラメータ選択部
１０７，１２３，１３３    メンバ情報生成部
１０９，１２５，１３５，２１１，２２７    セッション情報生成部
１１１，１２７，１３７，２０５，２２１    セッション情報取得部
１１３，１３９，２１３，２２５    メンバ検証部
１１５，１２９，１４１，２１５，２３１    セッション鍵生成部
１１７，２１７    通信制御部
１１９，２１９    記憶部
２００    鍵処理装置
２０７，２２３    一時鍵算出部
【発明を実施するための形態】
【００６０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００６１】
なお、説明は、以下の順序で行うものとする。
（１）目的
非特許文献１に記載の方法について
非特許文献２に記載の方法について
非特許文献２に記載の方法の問題点について
非特許文献２に記載の第２の方法について
非特許文献３に記載の方法について
非特許文献２に記載の第２の方法と非特許文献３に記載の方法の問題点について
（２）第１の実施形態
（２−１）鍵共有システムについて
（２−２）鍵生成装置の構成について
（２−３）暗号化装置の構成について
（２−４）鍵処理装置の構成について
（２−５）鍵生成方法について
（２−６）セッション鍵の生成方法について
（２−７）セッション鍵の生成方法における計算量等について
（３）第２の実施形態
（３−１）暗号化装置の構成について
（３−２）鍵処理装置の構成について
（３−３）鍵生成方法について
（３−４）セッション鍵の生成方法について
（４）第３の実施形態
（４−１）鍵共有システムについて
（４−２）鍵生成装置の構成について
（４−３）暗号化装置の構成について
（４−４）セッション鍵の生成方法について
（５）本発明の各実施形態に係る暗号化装置、鍵処理装置のハードウェア構成について
（６）まとめ
【００６２】
（目的）
まず、本発明に係る暗号化装置および鍵処理装置について説明するに先立ち、従来のグループ鍵共有技術について説明し、本発明の目的とするところについて説明する。
【００６３】
＜非特許文献１に記載の方法について＞
非特許文献１に記載の方法は、同報通信路を用いて、下記に示すプロトコルによりｎ人のメンバ（Ｕ０，・・・Ｕｎ−１）間でセッション鍵Ｋを共有する方法である。なお、下記に示すプロトコルは、何度でも実行可能である。実行に先立ち、システムセットアップとして、適切な大きさの素数ｐとｑ、位数ｑを持つ元α∈Ｚｐと、について、メンバ間で合意がとれているものとする。また、以下に示すプロトコルにおいて、各メンバの番号ｉは、ｍｏｄ  ｎで考える点に注意されたい。
【００６４】
まず、各メンバＵｉは、パラメータｒｉ∈ＲＺｑを選択して、以下の式９０１を用いて算出されるｚｉを他のメンバに同報送信する。なお、ａ∈ＲＺという表記は、集合Ｚから要素ａをランダムに選択することを表すものとする。
【００６５】
【数１７】
2010047356.tif 000019
【００６６】
続いて、各メンバＵｉは、ｚｉ＋１およびｚｉ−１を用いて、Ｘｉ＝（ｚｉ＋１／ｚｉ−１）ｒｉｍｏｄ  ｐを計算し、各メンバに同報送信する。
【００６７】
次に、各メンバＵｉは、以下の式９０２を用いて、Ｋｉを算出する。上記のプロトコルにより、各メンバＵｉはＫｉを得るが、それぞれのメンバについてセッション鍵ＫとＫｉとの関係は以下の式９０３のようになるため、メンバ間でセッション鍵Ｋを共有することが可能となる。
【００６８】
【数１８】
2010047356.tif 000020
【００６９】
しかしながら、この非特許文献１に記載の方法は、Ｋｉを算出するために、Ｏ（ｎ２）回のｍｏｄ  ｐでの乗算が必要となり、メンバの計算量が大きくなるという欠点がある。
【００７０】
＜非特許文献２に記載の方法について＞
非特許文献２に記載の方法は、メンバの計算量の削減を図ったグループ鍵共有に関する方法である。以下、図１８〜図２０を参照しながら、非特許文献２に記載の方法について、詳細に説明する。図１８は、非特許文献２に記載の方法における鍵生成処理について説明するための流れ図である。図１９および図２０は、非特許文献２に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
【００７１】
この非特許文献２に記載の方法では、双線形写像（バイリニアマップ）技術を利用する。この双線形写像を、「ｅ」と表すこととする。双線形写像ｅ：Ｇ１×Ｇ１→Ｇ２は、位数ｑの群Ｇ１の２つの要素の組を、同じ位数ｑを持つ別の群Ｇ２に写像（マップ）する。この写像（マッピング）の特徴として、双線形性および非退化性を有することが挙げられる。
【００７２】
１．双線形性：任意のｕ，ｖ∈Ｇ１およびａ，ｂ∈Ｚｑ＊に対して、ｅ（ｕａ，ｖｂ）＝ｅ（ｕ，ｖ）ａｂが成立する。
２．非退化性：Ｇ１の生成元ｇに対し、ｅ（ｇ，ｇ）≠１
【００７３】
［鍵生成処理］
非特許文献２に記載の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵（すなわち、公開鍵および秘密鍵を含むユーザ鍵）との生成を行う。以下、センタが行う鍵生成処理について、図１８を参照しながら、詳細に説明する。
【００７４】
まず、鍵共有システムにおけるセンタは、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する（ステップＳ９０１）。
【００７５】
続いて、センタは、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し（ステップＳ９０３）、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【００７６】
次に、センタは、Ｈ１、Ｈ４、Ｈ５、Ｈ６の４種類のハッシュ関数を選択する（ステップＳ９０５）。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
【００７７】
Ｈ１：｛０，１｝＊  →  Ｇ１
Ｈ４：Ｇ２  →  ｛０，１｝ｎ
Ｈ５：｛０，１｝ｎ  →  Ｚｑ＊
Ｈ６：Ｇ１  →  ｛０，１｝ｎ
【００７８】
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する（ステップＳ９０７）。公開されるシステムパラメータは、例えば、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ４，Ｈ５，Ｈ６＞となる。
【００７９】
次に、ユーザＩＤ番号やメールアドレス等といったユーザを識別するためのＩＤ（ＩＤｉ）を有するメンバＵｉが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザＵｉの公開鍵Ｑｉと秘密鍵Ｓｉとを生成する（ステップＳ９０９）。
【００８０】
公開鍵Ｑｉ  ＝  Ｈ１（ＩＤｉ）
秘密鍵Ｓｉ  ＝  ｓＱｉ
【００８１】
センタは、生成したユーザＵｉの個人鍵（すなわち、公開鍵Ｑｉと秘密鍵Ｓｉ）を、該当するユーザＵｉに伝送する。また、センタは、生成したユーザＵｉの公開鍵Ｑｉを、公開することも可能である。
【００８２】
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図１７に示したステップＳ９０９のみを実行することで、新たな個人鍵を生成することが可能である。
【００８３】
なお、上述のように、ユーザの公開鍵Ｑｉは、公開されているユーザのＩＤと、公開パラメータであるハッシュ関数Ｈ１から生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Ｓｉは、センタが秘匿しているマスター鍵ｓを用いて生成を行うため、センタのみが生成することができる。
【００８４】
非特許文献２に記載の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
【００８５】
［セッション鍵の生成処理］
次に、図１９および図２０を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でｎ台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献２に記載の方式では、ｎ人のメンバＵ１，Ｕ２，・・・，Ｕｎのうち、いずれかのメンバがプロトコル開始者（以下、イニシエータとも称する。）となる。以下の説明では、簡単のために、メンバＵ１がイニシエータであるとする。
【００８６】
［Ｒｏｕｎｄ１］
まず、イニシエータであるメンバＵ１が有する情報処理装置は、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信で用いられるパラメータであるパラメータδ∈ＲＧ２と、パラメータｋ１∈ＲＺｑ＊と、を選択する（ステップＳ９１１）。また、メンバＵ１が有する情報処理装置は、パラメータｒ∈Ｒ｛０，１｝ｎを選択する（ステップＳ９１１）。このパラメータｒは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
【００８７】
次に、メンバＵ１が有する情報処理装置は、同時通信に参加するメンバＵ２〜Ｕｎに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Ｐｉ（ｉ＝２，・・・，ｎ）を生成する（ステップＳ９１３）。このメンバ情報Ｐｉは、以下の式９１１で表される値である。
【００８８】
【数１９】
2010047356.tif 000021
【００８９】
ここで、上記式９１１において、Ｈ４は、システムパラメータとして公開されているハッシュ関数の一つであり、ｅは、システムパラメータとして公開されている双線形写像である。また、上記式９１１におけるｒおよびδは、メンバＵ１が有する情報処理装置が選択したパラメータである。また、上記式９１１におけるＳ１は、メンバＵ１に割り当てられている秘密鍵であり、Ｑｉは、同時通信に参加するメンバＵ２〜Ｕｎに割り与えられている公開鍵である。
【００９０】
続いて、メンバＵ１が有する情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下のような値Ｘ１、Ｙ１を算出する。また、Ｘ１，Ｙ１の算出が終了すると、メンバＵ１が有する情報処理装置は、以下の式９１４で表されるセッション情報Ｄ１を生成する（ステップＳ９１５）。
【００９１】
【数２０】
2010047356.tif 000022
【００９２】
なお、メンバＵ１が有する情報処理装置は、式９１１に基づいて、（ｎ−１）個のＰｉを算出するが、例えばメンバＵ２に対するメンバ情報がＰ２であるとは限らない。そのため、メンバＵ１が有する情報処理装置は、式９１４で表されるセッション情報の中に、Ｐ２〜Ｐｎのそれぞれと、各メンバとの対応関係を表す情報Ｌを添付する。
【００９３】
セッション情報Ｄ１の生成が終了すると、メンバＵ１が有する情報処理装置は、生成したセッション情報Ｄ１を同報送信する（ステップＳ９１７）。
【００９４】
［Ｒｏｕｎｄ２］
セッション情報Ｄ１を受信したメンバＵ２〜Ｕｎが有する情報処理装置は、まず、セッション情報Ｄ１中に含まれる情報Ｌを参照し、自身に対応するメンバ情報がＰ２〜Ｐｎのどれなのかを判断する（ステップＳ９１９）。
【００９５】
続いて、メンバＵ２〜Ｕｎが有する情報処理装置は、自身に対応するメンバ情報Ｐｉと、セッション情報Ｄ１と、イニシエータであるメンバＵ１の公開鍵Ｑ１と、自身の秘密鍵Ｓｉを用いて、以下の式９１５に基づき一時鍵ｒ’を算出する（ステップＳ９２１）。
【００９６】
【数２１】
2010047356.tif 000023
【００９７】
ここで、メンバＵ１により正しくセッション情報Ｄ１が生成されていれば、メンバＵ２〜Ｕｎが有する情報処理装置で算出された一時鍵ｒ’は、メンバＵ１が有する情報処理装置で選択された一時鍵ｒと等しくなる。すなわち、ｒ’＝ｒが成立する。
【００９８】
次に、メンバＵ２〜Ｕｎが有する情報処理装置は、パラメータｋｉ∈ＲＺｑ＊を選択する（ステップＳ９２３）。その後、選択したパラメータｋｉと、算出した一時鍵ｒ’と、公開されているシステムパラメータと、を用いて、以下の式９１６によりメンバＵ１が有する情報処理装置へ伝送されるセッション情報Ｄｉを生成する（ステップＳ９２５）。なお、以下の式９１６では、ｒ’＝ｒが成立しているとして、定式化している。
【００９９】
【数２２】
2010047356.tif 000024
【０１００】
セッション情報Ｄｉの生成が終了すると、メンバＵ２〜Ｕｎが有する情報処理装置それぞれは、自身以外の全ての情報処理装置に対して、生成したセッション情報Ｄｉを同報送信する（ステップＳ９２７）。
【０１０１】
［セッション鍵生成］
メンバＵ１が有する情報処理装置は、メンバＵ２〜Ｕｎが有する情報処理装置から伝送された全てのセッション情報Ｄｉを取得することで、自身が生成したセッション情報Ｄ１を含め、セッション情報Ｄ１〜Ｄｎまで全ｎ個のセッション情報を有することとなる。メンバＵ１が有する情報処理装置は、セッション情報Ｄ１〜Ｄｎと、公開されているシステムパラメータと、を用いて、検証用に用いられるパラメータ（以下、検証パラメータと称する。）ｚ１およびｚｊを算出する（ステップＳ９２９）。
【０１０２】
同様に、メンバＵ２〜Ｕｎが有する情報処理装置それぞれは、セッション情報Ｄ１と、自身以外のメンバＵ２〜Ｕｎが有する情報処理装置から取得したセッション情報Ｄｉとを含め、セッション情報Ｄ１〜Ｄｎまで全ｎ個のセッション情報を有することとなる。メンバＵ２〜Ｕｎが有する情報処理装置それぞれは、セッション情報Ｄ１〜Ｄｎと、公開されているシステムパラメータと、を用いて、検証パラメータｚ１およびｚｊを算出する（ステップＳ９３１）。
【０１０３】
【数２３】
2010047356.tif 000025
【０１０４】
なお、上記式９１８において、２≦ｊ≦ｎである。
【０１０５】
続いて、メンバＵ１が有する情報処理装置は、算出した検証パラメータｚ１、ｚｊを用いて演算を行い、以下の式９１９が成立するか否かを判定する（ステップＳ９３３）。同様に、メンバＵ２〜Ｕｎが有する情報処理装置それぞれは、算出した検証パラメータｚ１、ｚｊを用いて演算を行い、以下の式９１９が成立するか否かを判定する（ステップＳ９３５）。式９１９が成立した場合には、それぞれの情報処理装置は、セッション鍵Ｋの確立のために参加したｎ人のメンバが全て正当なメンバであると判断する。すなわち、式９１９が成立するか否かを判断するステップＳ９３３およびステップＳ９３５は、メンバの正当性を検証しているステップであるといえる。
【０１０６】
【数２４】
2010047356.tif 000026
【０１０７】
メンバＵ１が有する情報処理装置は、式９１９が成立した場合にのみ、以下の式９２０に基づいて、セッション鍵Ｋを算出する（ステップＳ９３７）。同様に、メンバＵ２〜Ｕｎが有する情報処理装置それぞれは、式９１９が成立した場合にのみ、以下の式９２０に基づいて、セッション鍵Ｋを算出する（ステップＳ９３９）。
【０１０８】
【数２５】
2010047356.tif 000027
【０１０９】
このセッション鍵Ｋがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Ｋがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ９４１）。
【０１１０】
＜非特許文献２に記載の方法の問題点について＞
このように、上述の非特許文献２に記載の方法は、メンバ以外の者がセッション鍵Ｋにアクセスすることを防ぐために、［Ｒｏｕｎｄ２］において各メンバが同報送信したメッセージを、それぞれのメンバが一括して検証する方法である。
【０１１１】
しかしながら、本願発明者らは、このような非特許文献２に記載の方法を詳細に検討した結果、以下のような場合には、グループメンバによる成りすまし行為が成立してしまうという問題が発生することに想到した。
【０１１２】
すなわち、非特許文献２に記載の方法の［Ｒｏｕｎｄ２］における検証は、送信者固有の情報を利用していない。そのため、本願発明者らは、［Ｒｏｕｎｄ１］でイニシエータが送信した一時鍵ｒの値を知ることができるメンバであれば、この検証をすり抜ける値を生成することが可能であることに想到したのである。
【０１１３】
今、メンバＵｉが、意図的に、または通信エラーなどの理由により、上述のような鍵共有プロトコルに参加できなかったと仮定する。この場合、本来であればメンバＵｉからセッション情報Ｄｉが送信されないため、ｎ人のメンバのセッション情報が集められず、セッション鍵Ｋが確立されることはない。
【０１１４】
しかしながら、上述の方式では、ｒの値を知ることができる他のメンバＵｊが、自分のセッション情報Ｄｊとは別に、メンバＵｉを装ったセッション情報Ｄｉを送信することができてしまう。すなわち、上述の方式では、メンバｕｊは、自身の秘密鍵Ｓｊ等を用いて式９１５により生成したｒ’を、他の計算に流用することが可能である。また、式９１６におけるセッション情報の算出では、算出した一時鍵と、公開されているパラメータとを用いることで、自由にセッション情報を算出することができる。そのため、ステップＳ９２３におけるパラメータｋｊの選択の際に、ｋｊとは異なる別のパラメータｋｉを併せて選択することで、２つのセッション情報Ｄｊ，Ｄｉを得ることができてしまう。その結果、実際にはメンバＵｉが参加していないにも係らず、Ｕｊ以外のメンバは、Ｕｉを含むｎ人のメンバ間でセッション鍵が共有できたと誤解してしまうこととなる。
【０１１５】
上述のような状況が、例えば重要な会議等の際にセッション鍵を生成する際に生じたとすれば、その影響は甚大なものとなりうる。そのため、本発明の第１の実施形態に係る方式では、上述のような非特許文献２に記載の方式におけるメンバによる成りすまし行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
【０１１６】
＜非特許文献２に記載の第２の方法について＞
非特許文献２には、上述の方法に加えて以下に説明する第２の方法が記載されている。以下では、図２１および図２２を参照しながら、非特許文献２に記載の第２の方法について、詳細に説明する。図２１は、非特許文献２に記載の第２の方法における鍵生成処理について説明するための流れ図である。図２２は、非特許文献２に記載の第２の方法におけるセッション鍵生成処理について説明するための流れ図である。
【０１１７】
［鍵生成処理］
非特許文献２に記載の第２の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵（すなわち、公開鍵および秘密鍵を含むユーザ鍵）との生成を行う。以下、センタが行う鍵生成処理について、図２１を参照しながら、詳細に説明する。
【０１１８】
まず、鍵共有システムにおけるセンタは、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する（ステップＳ９５１）。
【０１１９】
続いて、センタは、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し（ステップＳ９５３）、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【０１２０】
次に、センタは、Ｈ１、Ｈ２、Ｈ３の３種類のハッシュ関数を選択する（ステップＳ９５５）。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
【０１２１】
Ｈ１：｛０，１｝＊  →  Ｇ１
Ｈ２：Ｇ２  →  ｛０，１｝ｎ
Ｈ３：｛０，１｝ｎ  →  ｛０，１｝ｎ
【０１２２】
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する（ステップＳ９５７）。公開されるシステムパラメータは、例えば、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３＞となる。
【０１２３】
次に、ユーザＩＤ番号やメールアドレス等といったユーザを識別するためのＩＤ（ＩＤｉ）を有するメンバＵｉが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザＵｉの公開鍵Ｑｉと秘密鍵Ｓｉとを生成する（ステップＳ９５９）。
【０１２４】
公開鍵Ｑｉ  ＝  Ｈ１（ＩＤｉ）
秘密鍵Ｓｉ  ＝  ｓＱｉ
【０１２５】
センタは、生成したユーザＵｉの個人鍵（すなわち、公開鍵Ｑｉと秘密鍵Ｓｉ）を、該当するユーザＵｉに伝送する。また、センタは、生成したユーザＵｉの公開鍵Ｑｉを、公開することも可能である。
【０１２６】
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図２０に示したステップＳ９５９のみを実行することで、新たな個人鍵を生成することが可能である。
【０１２７】
なお、上述のように、ユーザの公開鍵Ｑｉは、公開されているユーザのＩＤと、公開パラメータであるハッシュ関数Ｈ１から生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Ｓｉは、センタが秘匿しているマスター鍵ｓを用いて生成を行うため、センタのみが生成することができる。
【０１２８】
非特許文献２の第２の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵とを利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
【０１２９】
［セッション鍵の生成処理］
次に、図２２を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でｎ台からなる情報処理装置間で同時通信の実現を試みるものとする。
【０１３０】
まず、各メンバＵｉが有する各情報処理装置は、パラメータδｉ∈ＲＧ２と、パラメータｋｉ∈ＲＺｑ＊と、を選択する（ステップＳ９６１）。ここで、パラメータδｉは、セッション鍵の共有に用いられるパラメータである。また、各メンバＵｉが有する各情報処理装置は、パラメータｒｉ∈Ｒ｛０，１｝ｎを選択する（ステップＳ９６１）。このパラメータｒｉは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
【０１３１】
次に、各メンバＵｉが有する各情報処理装置は、同時通信に参加する自分以外のメンバＵｊ（１≦ｊ≦ｎ，ｊ≠ｉ）に対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Ｐｉｊを生成する（ステップＳ９６３）。このメンバ情報Ｐｉｊは、以下の式９２１で表される値である。
【０１３２】
【数２６】
2010047356.tif 000028
【０１３３】
ここで、上記式９２１において、Ｈ２は、システムパラメータとして公開されているハッシュ関数の一つであり、ｅは、システムパラメータとして公開されている双線形写像である。また、上記式９２１におけるｒｉおよびδｉは、メンバＵｉが有する情報処理装置が選択したパラメータである。また、上記式９２１におけるＳｉは、メンバＵｉに割り当てられている秘密鍵であり、Ｑｊは、同時通信に参加するメンバＵｊに割り与えられている公開鍵である。
【０１３４】
続いて、各メンバＵｉが有する各情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下の式９２２で表される値Ｖｉを算出する。また、Ｖｉの算出が終了すると、各メンバＵｉが有する各情報処理装置は、以下の式９２３で表されるセッション情報Ｄｉを生成する（ステップＳ９６５）。
【０１３５】
【数２７】
2010047356.tif 000029
【０１３６】
なお、各メンバＵｉが有する各情報処理装置は、式９２１に基づいて、（ｎ−１）個のＰｉｊを算出するが、例えばメンバＵ２に対するメンバ情報がＰｉ２であるとは限らない。そのため、各メンバＵｉが有する各情報処理装置は、式９２３で表されるセッション情報の中に、Ｐｉｊのそれぞれと、各メンバとの対応関係を表す情報Ｌを添付する。
【０１３７】
セッション情報Ｄｉの生成が終了すると、各メンバＵｉが有する各情報処理装置は、生成したセッション情報Ｄｉを各情報処理装置へ同報送信する（ステップＳ９６７）。
【０１３８】
他の情報処理装置からセッション情報Ｄｊ（１≦ｊ≦ｎ，ｊ≠ｉ）を受信したメンバＵｉが有する情報処理装置は、まず、セッション情報Ｄｊ中に含まれる情報Ｌを参照し、自身に対応するメンバ情報Ｐｊｉを検出する（ステップＳ９６９）。
【０１３９】
続いて、各メンバＵｉが有する情報処理装置は、自身に対応するメンバ情報Ｐｊｉと、セッション情報Ｄｊと、メンバＵｊの公開鍵Ｑｊと、自身の秘密鍵Ｓｉを用いて、以下の式９２４に基づきパラメータｋｊ’を算出する（ステップＳ９７１）。
【０１４０】
【数２８】
2010047356.tif 000030
【０１４１】
次に、各メンバＵｉが有する各情報処理装置は、算出したパラメータｋｊ’と、選択したパラメータｋｉとを用いて、以下の式９２５によりセッション鍵Ｋを算出する（ステップＳ９７３）。
【０１４２】
【数２９】
2010047356.tif 000031
【０１４３】
このセッション鍵Ｋがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Ｋがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ９７５）。
【０１４４】
＜非特許文献３に記載の方法について＞
［セッション鍵の生成処理］
非特許文献３に記載の方法は、通信のオーバーヘッドを小さくするために、同時通信に参加する各情報処理装置が１度だけしかメッセージを送信しない１ラウンド型の方式を実現するための方法である。以下では、図２３を参照しながら、非特許文献３に記載の方法について、詳細に説明する。図２３は、非特許文献３に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
【０１４５】
かかるセッション鍵生成処理に先立ち、この非特許文献３に記載の方法では、鍵共有システムにおけるセンタが、鍵生成装置を利用して、この方法における各種のシステムパラメータと、各メンバ用の個人鍵（すなわち、公開鍵および秘密鍵を含むユーザ鍵、ならびに、署名用のユーザ鍵）との生成を行っているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Ｅおよび復号関数Ｄ、ならびに、デジタル署名方式の署名生成関数Ｓおよび署名検証関数Ｖが公開される。また、各ユーザＵｉが有する情報処理装置には、ユーザＵｉの公開暗号化鍵ｅｉ、秘密復号鍵ｄｉ、秘密署名生成鍵ｓｉ、公開署名検証鍵ｖｉが保持されており、公開暗号化鍵ｅｉおよび公開署名検証鍵ｖｉは、各メンバＵｉ間で共有されているものとする。
【０１４６】
なお、以下の説明では、全体でｎ台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献３に記載の方式では、ｎ人のメンバＵ１，Ｕ２，・・・，Ｕｎのうち、いずれかのメンバがプロトコル開始者（以下、イニシエータとも称する。）となる。以下の説明では、簡単のために、メンバＵ１がイニシエータであるとする。
【０１４７】
まず、イニシエータＵ１が有する情報処理装置は、無作為に乱数を生成し、パラメータＮ１とする（ステップＳ９８１）。続いて、イニシエータＵ１が有する情報処理装置は、鍵を共有するユーザのリストＵを、メンバ情報として生成する（ステップＳ９８３）。次に、イニシエータＵ１が有する情報処理装置は、他のメンバＵｉの公開暗号化鍵ｅｉと、自身の秘密署名生成鍵ｓｉと、選択したパラメータＮ１と、公開パラメータと、を用いて、以下の式９２６で表されるセッション情報Ｄを生成する（ステップＳ９８５）。ここで、ｉ＝２，・・・，ｎである。
【０１４８】
【数３０】
2010047356.tif 000032
【０１４９】
ここで、上記式９２６において、Ｅ（Ａ，Ｂ）は、鍵Ａを用いてメッセージＢを暗号化した暗号文を表し、Ｓ（Ａ，Ｂ）は、鍵Ａを用いてメッセージＢに対して施したデジタル署名を表す。
【０１５０】
次に、イニシエータＵ１が有する情報処理装置は、生成したメンバ情報Ｕおよびセッション情報Ｄを、他のメンバＵｉに同報送信する（ステップＳ９８７）。
【０１５１】
続いて、イニシエータＵ１が有する情報処理装置は、各ユーザＵｉ（ｉ＝２，・・・，ｎ）の公開暗号化鍵ｅｉを利用してパラメータＮ１を暗号化し、暗号文Ｅ（ｅｉ，Ｎ１）を生成する。その後、イニシエータＵ１が有する情報処理装置は、生成した暗号文Ｅ（ｅｉ，Ｎ１）を各メンバＵｉの情報処理装置に送信する（ステップＳ９８９）。
【０１５２】
各メンバＵｉの各情報処理装置は、イニシエータＵ１の情報処理装置から送信された各情報を受信すると、暗号文Ｅ（ｅｉ，Ｎ１）を復号して、パラメータＮ１を取得する。また各メンバＵｉの各情報処理装置は、パラメータＮｉを無作為に選択して（ステップＳ９９１）、ユーザ情報Ｕｉと、パラメータＮｉとを、他の情報処理装置に同報送信する（ステップＳ９９３）。これにより、同時通信に参加する各情報処理装置は、パラメータＮ１〜Ｎｎを取得することができる。
【０１５３】
続いて、イニシエータを含む各メンバＵｉの各情報処理装置は、取得したパラメータＮｉと、公開パラメータであるハッシュ関数ｈとを利用して、以下の式９２７によりセッション鍵ＫＵを算出する（ステップＳ９９５）。
【０１５４】
【数３１】
2010047356.tif 000033
【０１５５】
このセッション鍵ＫＵがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵ＫＵがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ９９７）。
【０１５６】
＜非特許文献２に記載の第２の方法および非特許文献３に記載の方法の問題点＞
このように、上述の非特許文献２に記載の第２の方法、および、非特許文献３に記載の方法は、１ラウンド型の方式を実現したグループ鍵の共有方法である。しかしながら、本願発明者らは、これらの方法を詳細に検討した結果、これらの方法に共通する以下のような問題があることに想到した。
【０１５７】
それは、あるユーザ（ユーザＡとする。）が、あるユーザ（ユーザＢとする。）に対して他のユーザに送ったものとは別の値を送信することにより、ｎ人のグループで共有するグループ鍵を、ユーザＢだけが共有できないようにできるという問題である。
【０１５８】
具体的に、４人（Ｕ１，Ｕ２，Ｕ３，Ｕ４）のグループを考える。非特許文献２に記載の第２の方式において、Ｕ２がＵ３を陥れるためには、先に説明したＰ２３の算出において、正しいｒｉとは異なる他の値を用いることで、Ｕ３がＰ２３から導出するｋ２’の値は、他のユーザが得た正しい値とは別のものとなる。このため、Ｕ３は、グループ鍵の共有が正しく行えないこととなる。
【０１５９】
他方、非特許文献３に記載の方式では、上述のような不正を実行できるのは、イニシエータＵ１である。すなわち、Ｕ１が、あるユーザに対してのみ、各ユーザＵｉに対して生成するＥ（ｅｉ，Ｎ１）をＮ１とは異なる他の値を用いて作成することで、そのユーザはＮ１を得ることができず、結果としてグループ鍵の共有が正しく行えないことになる。
【０１６０】
さらに、上述のような攻撃者以外の各メンバは、この攻撃が行われたことを知ることができず、全員がグループ鍵を共有できたものと考えて目的の処理（例えば、グループ鍵を用いて行う処理）を行ってしまう。かかる問題は、システムのセキュリティ上好ましくないものである。
【０１６１】
そこで、以下で説明する本発明の第２の実施形態に係る方式では、上述のような非特許文献３に記載の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。また、以下で説明する本発明の第３の実施形態に係る方式では、上述のような非特許文献２に記載の第２の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
【０１６２】
なお、以下で説明する本発明の各実施形態に係る方式は、上記非特許文献２および上記非特許文献３に記載の方式を基盤を成す技術とし、この基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本発明の各実施形態の特徴を成す部分である。つまり、本発明の各実施形態は、上述のような技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
【０１６３】
（第１の実施形態）
＜鍵共有システムについて＞
まず、図１を参照しながら、本発明の第１の実施形態に係る鍵共有システムについて、詳細に説明する。図１は、本実施形態に係る鍵共有システムについて説明するための説明図である。
【０１６４】
本実施形態に係る鍵共有システム１は、例えば図１に示したように、鍵生成装置１０と、複数台の暗号化装置１００Ａ、１００Ｂ、１００Ｃ・・・と、複数台の鍵処理装置２００Ａ、２００Ｂ、２００Ｃ・・・と、を主に備える。これらの装置は、通信網３を介して、相互に接続されている。
【０１６５】
通信網３は、鍵生成装置１０、暗号化装置１００、鍵処理装置２００それぞれの間を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網３は、例えば、インターネット、ＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ）、電話回線網、衛星通信網、同報通信路等の公衆回線網や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、Ｅｔｈｅｒｎｅｔ（登録商標）、ワイヤレスＬＡＮ等の専用回線網などで構成されており、有線／無線を問わない。
【０１６６】
鍵生成装置１０は、暗号化装置１００および鍵処理装置２００それぞれに固有の公開鍵と秘密鍵とを生成し、公開鍵を公開するとともに、各装置に対して、安全な通信路を介して、それぞれの公開鍵および秘密鍵を配信する。また、鍵生成装置１０は、本実施形態に係る鍵共有システム１で用いられ公開することが可能なパラメータを、システムパラメータとして公開する。なお、この鍵生成装置１０は、公開鍵および秘密鍵の生成・管理を行うセンタ等が所有することが可能である。
【０１６７】
暗号化装置１００は、鍵生成装置１０によって生成された公開鍵・秘密鍵や、公開されているシステムパラメータ等を用いて、暗号化装置１００と複数台の鍵処理装置２００との間で行われる同時通信に要するセッション鍵を生成するための情報を暗号化する。また、暗号化装置１００は、暗号化したセッション鍵を生成するための情報を、通信網３を介して各鍵処理装置２００へと伝送する。この暗号化装置１００は、任意の第三者が所有することが可能であり、また、鍵生成装置１０の所有者や、鍵処理装置２００の所有者が所有することも可能である。
【０１６８】
鍵処理装置２００は、暗号化装置１００から送信された暗号化された情報を用いて、同時通信に際して必要なセッション鍵を生成するための情報を生成する。また、鍵処理装置２００は、生成した情報を、暗号化装置１００および同時通信に参加する他の鍵処理装置２００に対して通信網３を介して伝送する。この鍵処理装置２００は、任意の第三者が所有することが可能であり、また、鍵生成装置１０の所有者や、暗号化装置１００の所有者が所有することも可能である。
【０１６９】
なお、暗号化装置１００および鍵処理装置２００は、パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）等のコンピュータ装置（ノート型、デスクトップ型を問わない。）であってもよい。また、暗号化装置１００および鍵処理装置２００は、ネットワークを介した通信機能を有する機器であれば、任意の装置であってもよい。例えば、これらの装置は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、ＤＶＤ／ＨＤＤレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、これらの装置は、契約者が持ち運びできるポータブルデバイス（Ｐｏｒｔａｂａｌｅ  Ｄｅｖｉｃｅ）、例えば、携帯型ゲーム機、携帯電話、携帯型映像／音声プレーヤ、ＰＤＡ、ＰＨＳなどであってもよい。
【０１７０】
なお、図１において、暗号化装置１００および鍵処理装置２００は、３台ずつしか記載されていないが、本実施形態に係る鍵共有システム１において、これらの装置の台数は、図１に示した例に限定されるわけではない。
【０１７１】
＜鍵生成装置の構成について＞
次に、図２を参照しながら、本実施形態に係る鍵生成装置１０の構成について、詳細に説明する。図２は、本実施形態に係る鍵生成装置の機能を説明するためのブロック図である。
【０１７２】
本実施形態に係る鍵生成装置１０は、例えば図２に示したように、メンバ情報管理部１１と、パラメータ選択部１３と、公開情報生成部１５と、鍵生成部１７と、情報提供部２３と、通信制御部２５と、記憶部２７と、を主に備える。
【０１７３】
メンバ情報管理部１１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により実現される。メンバ情報管理部１１は、本実施形態に係る鍵生成装置１０において公開鍵および秘密鍵からなるメンバ用の個人鍵を生成したメンバに関する情報を管理する。これらのメンバ情報は、例えば後述する記憶部２７に記録されている。
【０１７４】
パラメータ選択部１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現されるものであり、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する。続いて、パラメータ選択部１３は、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【０１７５】
次に、パラメータ選択部１３は、Ｈ１、ＨＡ、ＨＢ、ＨＣの４種類のハッシュ関数を選択する。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
【０１７６】
Ｈ   ：｛０，１｝＊  →  Ｇ１
ＨＡ  ：Ｇ２  →  ｛０，１｝｜ｑ｜
ＨＢ  ：｛０，１｝｜ｑ｜  →  Ｚｑ＊
ＨＣ  ：Ｇ１  →  ｛０，１｝｜ｑ｜
【０１７７】
ここで、上述の｛０，１｝｜ｑ｜という記載は、０と１からなるｑビットの大きさのデータを意味する。本実施形態に係る鍵共有システム１が必要としているセキュリティレベルに応じてｑの大きさを適宜設定することで、セキュリティレベルを変更することが可能である。
【０１７８】
パラメータ選択部１３は、これらのパラメータをシステムパラメータとして記憶部２７に記録する。また、これらの選択されたパラメータは、公開情報生成部１５および鍵生成部１７に伝送される。
【０１７９】
公開情報生成部１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現されるものであり、パラメータ選択部１３が選択した各種のパラメータやハッシュ関数の中から、公開情報（公開システムパラメータ）として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部１５は、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ，ＨＡ，ＨＢ，ＨＣ＞の組み合わせを公開情報として生成し、記憶部２７に格納する。
【０１８０】
鍵生成部１７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。鍵生成部１７は、本実施形態に係る鍵共有システム１を利用するメンバから、公開鍵および秘密鍵からなるメンバ用の個人鍵の生成を要請された場合に、これらの個人鍵を生成する。鍵生成部１７は、個人鍵の生成に際して、メンバ情報管理部１１から、要請のあったメンバに関するＩＤ（例えば、ユーザＩＤやメールアドレス等）を取得し、取得したＩＤとパラメータ選択部１３が選択したシステムパラメータとに基づいて、鍵の生成を行う。この鍵生成部１７は、例えば図２に示したように、公開鍵生成部１９と、秘密鍵生成部２１を更に備える。
【０１８１】
公開鍵生成部１９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。公開鍵生成部１９は、メンバ情報管理部１１から取得した、要請のあったメンバに関するＩＤ（ＩＤｉ）と、システムパラメータであるハッシュ関数Ｈとを用いて、以下の式１１に基づいてメンバｉの公開鍵Ｑｉを生成する。
【０１８２】
公開鍵Ｑｉ  ＝  Ｈ（ＩＤｉ）  ・・・（式１１）
【０１８３】
公開鍵生成部１９は、生成したメンバＵｉの公開鍵Ｑｉを、該当するメンバＵｉのメンバ情報に関連づけて、記憶部２７に格納することが可能である。
【０１８４】
秘密鍵生成部２１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。秘密鍵生成部２１は、公開鍵生成部１９が生成した公開鍵Ｑｉと、マスター秘密鍵ｓとを用いて、以下の式１３に基づいてメンバＵｉの秘密鍵Ｓｉを生成する。
【０１８５】
秘密鍵Ｓｉ  ＝  ｓＱｉ  ・・・（式１３）
【０１８６】
秘密鍵生成部２１は、生成したメンバＵｉの秘密鍵Ｓｉを、該当するメンバＵｉのメンバ情報に関連づけて、記憶部２７に格納することが可能である。
【０１８７】
なお、メンバの公開鍵は、式１１からも明らかなように、公開情報と、メンバＵｉのＩＤから生成されるものである。本実施形態に係る鍵共有システム１では、メンバＵｉのＩＤは、ユーザＩＤやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバＵｉのＩＤとを用いて、公開鍵を算出することが可能である。他方、メンバＵｉの秘密鍵は、式１３からも明らかなように、鍵生成装置１０において秘匿されるマスター秘密鍵を用いて算出される値であるため、鍵生成装置１０のみが生成可能である。
【０１８８】
情報提供部２３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。情報提供部２３は、本実施形態に係る暗号化装置１００や鍵処理装置２００の要請に応じて、公開情報やメンバの公開鍵等の各種の情報をこれらの装置に提供する。情報提供部２３は、これらの情報の提供に際して、記憶部２７に格納されている各種のデータを参照することが可能である。
【０１８９】
通信制御部２５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現されるものであり、鍵生成装置１０と、暗号化装置１００や鍵処理装置２００との間で行われる通信の制御を行う。
【０１９０】
記憶部２７は、メンバ情報管理部１１が管理しているメンバ情報や、パラメータ選択部１３により選択されたシステムパラメータや、公開情報生成部１５が生成した公開情報や、鍵生成部１７が生成した個人鍵等が格納されている。また、記憶部２７には、本実施形態に係る鍵生成装置１０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部２７は、メンバ情報管理部１１、パラメータ選択部１３、公開情報生成部１５、鍵生成部１７、情報提供部２３、通信制御部２５等が、自由に読み書きを行うことが可能である。
【０１９１】
以上、本実施形態に係る鍵生成装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０１９２】
なお、上述のような本実施形態に係る鍵生成装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１９３】
＜暗号化装置の構成について＞
続いて、図３を参照しながら、本実施形態に係る暗号化装置１００の構成について、詳細に説明する。図３は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
【０１９４】
本実施形態に係る暗号化装置１００は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置１００は、メンバＵ１が所持しているものとする。本実施形態に係る暗号化装置１００は、例えば図３に示したように、個人鍵取得部１０１と、グループ鍵生成部１０３と、通信制御部１１７と、記憶部１１９と、を主に備える。
【０１９５】
個人鍵取得部１０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。個人鍵取得部１０１は、後述する通信制御部１１７を介して、鍵生成装置１０から、当該暗号化装置１００を使用するメンバに予め割り当てられた個人鍵（すなわち、公開鍵および秘密鍵）を取得する。また、個人鍵取得部１０１は、個人鍵の取得にあわせて、鍵生成装置１０から公開情報（公開されているシステムパラメータ）を取得することも可能である。個人鍵取得部１０１は、取得した個人鍵や公開情報を、例えば後述する記憶部１１９に格納する。
【０１９６】
グループ鍵生成部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。グループ鍵生成部１０３は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、鍵処理装置２００から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を鍵処理装置２００とともに生成する。このグループ鍵生成部１０３は、例えば図３に示したように、パラメータ選択部１０５と、メンバ情報生成部１０７と、セッション情報生成部１０９と、を更に備える。また、グループ鍵生成部１０３は、セッション情報取得部１１１と、メンバ検証部１１３と、セッション鍵生成部１１５と、を更に備える。
【０１９７】
パラメータ選択部１０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。パラメータ選択部１０５は、パラメータδ∈ＲＺｑ＊およびパラメータｋ１∈ＲＺｑ＊と、同時通信における一時鍵として利用される所定のビット数を有するパラメータｒと、を選択する。パラメータ選択部１０５は、選択したこれらのパラメータを、メンバ情報生成部１０７およびセッション情報生成部１０９に伝送する。
【０１９８】
なお、パラメータ選択部１０５は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０１９９】
メンバ情報生成部１０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ情報生成部１０７は、同時通信に参加するメンバＵｉ（ｉ＝２，・・・，ｎ）の公開鍵Ｑｉと、自身が保持する秘密鍵Ｓ１と、パラメータ選択部１０５により選択された一時鍵ｒと、公開情報と、を用いて、以下の式１０１に示すメンバ情報Ｐｉを生成する。このメンバ情報Ｐｉは、ｎ−１人の参加メンバそれぞれに対して生成される。
【０２００】
【数３２】
2010047356.tif 000034
【０２０１】
ここで、上記式１０１において、ＨＡは、公開されているハッシュ関数の一つであり、ｉは、２〜ｎの整数である。
【０２０２】
また、メンバ情報生成部１０７は、生成したＰ２〜Ｐｎのメンバ情報と、同時通信に参加するｎ−１人それぞれのメンバとの対応関係を明らかにするために、Ｐ２〜Ｐｎのメンバ情報がどのような順番で並んでいるかを表す情報Ｌを、あわせて生成する。なお、説明の簡潔性のため、Ｌは一定のルールに従って作られるものとし，ｎ人のメンバいずれが作成しても同一のデータになるものとする。
【０２０３】
メンバ情報生成部１０７は、生成したメンバ情報Ｐｉと、メンバ情報とメンバとの対応関係を表す情報Ｌと、を、セッション情報生成部１０９へと伝送する。
【０２０４】
なお、メンバ情報生成部１０７は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２０５】
セッション情報生成部１０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報生成部１０９は、パラメータ選択部１０５から伝送された各種パラメータと、メンバ情報生成部１０７から伝送されたメンバ情報Ｐｉおよび対応関係に関する情報Ｌと、公開情報と、に基づいて、メンバＵ１のセッション情報Ｄ１を生成する。より詳細には、セッション情報生成部１０９は、まず、下記式１０２で表される値Ｘ１と、下記式１０３で表される値Ｙ１とを算出する。その後、セッション情報生成部１０９は、算出した値等を用いて、下記式１０４で表されるセッション情報Ｄ１を生成する。このセッション情報は、暗号化装置１００と複数の鍵処理装置２００との間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
【０２０６】
【数３３】
2010047356.tif 000035
【０２０７】
なお、上記式１０２および式１０３において、「ａ||ｂ」という表記は、ａというデータにｂというデータのビットを連結することを表している。また、上記式１０２および式１０３におけるＨＢは、公開されているハッシュ関数の一つである。
【０２０８】
本実施形態に係るセッション情報生成部１０９は、上記式１０３に示したように、メンバＵ１の秘密鍵Ｓ１を用いてセッション情報を生成する。従って、メンバＵ１のセッション情報を偽装しようとしても、メンバＵ１以外の者は、セッション情報Ｄ１を生成することができない。
【０２０９】
セッション情報生成部１０９は、通信制御部１１７を介して、生成したセッション情報Ｄ１を、メンバＵ２〜メンバＵｎが有する鍵処理装置２００へと同報送信する。また、セッション情報生成部１０９は、生成したセッション情報Ｄ１を、メンバ検証部１１３に送信する。セッション情報生成部１０９は、生成したセッション情報Ｄ１を、生成した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２１０】
セッション情報取得部１１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報取得部１１１は、通信制御部１１７を介して、全ての鍵処理装置２００それぞれから伝送されたセッション情報Ｄｉを取得する。このセッション情報Ｄｉは、下記式２０１で表されるものである。
【０２１１】
【数３４】
2010047356.tif 000036
【０２１２】
セッション情報取得部１１１は、取得した全てのセッション情報Ｄｉを、後述するメンバ検証部１１３へと伝送する。また、セッション情報取得部１１１は、取得したセッション情報Ｄｉを、取得した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２１３】
メンバ検証部１１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現されるものである。メンバ検証部１１３は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部１１３は、自身で生成したセッション情報Ｄ１と、全ての鍵処理装置２００から取得したセッション情報Ｄｉとに基づいて、まず、下記式１０５で表される検証パラメータｚを算出する。続いて、メンバ検証部１１３は、下記式１０６の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部１１３は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部１１５に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部１１３は、セッション情報Ｄｉを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
【０２１４】
【数３５】
2010047356.tif 000037
【０２１５】
なお、本実施形態に係るメンバ検証部１１３は、基盤技術とは異なり、検証パラメータｚを算出する際に、全てのセッション情報Ｄｉ（ｉ＝１，・・・，ｎ）について、セッション情報の一部であるＸｉについての和をとる。これにより、本実施形態に係る暗号化装置１００では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部１１３は、基盤技術とは異なり、各メンバの公開鍵Ｑｉを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Ｓｉを用いる必要があり、別のメンバＵｊがメンバＵｉに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
【０２１６】
メンバ検証部１１３は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータｚを、セッション鍵生成部１１５へと伝送する。また、メンバ検証部１１３は、算出した検証パラメータｚを、算出した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２１７】
セッション鍵生成部１１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション鍵生成部１１５は、メンバ検証部１１３による同時通信の参加メンバの検証が成功した場合に、メンバ検証部１１３から伝送された検証パラメータｚを用いて、同時通信にて用いられるセッション鍵Ｋを生成する。セッション鍵Ｋの生成は、以下の式１０７により行われる。ここで、下記式１０７におけるＨＣは、公開されているハッシュ関数の一つである。
【０２１８】
【数３６】
2010047356.tif 000038
【０２１９】
このようにして生成されるセッション鍵Ｋを用いることで、暗号化装置１００および複数の鍵処理装置２００の間で、安全性の担保された同時通信を行うことが可能となる。
【０２２０】
なお、セッション鍵生成部１１５は、生成したセッション鍵Ｋを、生成した日時等を表す情報などと関連付けて、後述する記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２２１】
通信制御部１１７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等から構成されており、暗号化装置１００と鍵生成装置１０や鍵処理装置２００との間で行われる通信の制御を行う。
【０２２２】
記憶部１１９は、鍵生成装置１０により公開されている公開情報や、鍵生成装置１０から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部１１９には、本実施形態に係る暗号化装置１００が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部１１９は、個人鍵取得部１０１、グループ鍵生成部１０３および当該グループ鍵生成部１０３に含まれる各処理部、通信制御部１１７等が、自由に読み書きを行うことが可能である。
【０２２３】
以上、本実施形態に係る暗号化装置１００の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０２２４】
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０２２５】
＜鍵処理装置の構成について＞
次に、図４を参照しながら、本実施形態に係る鍵処理装置２００の構成について、詳細に説明する。図４は、本実施形態に係る鍵処理装置の機能を説明するためのブロック図である。
【０２２６】
本実施形態に係る鍵処理装置２００は、同時通信のイニシエータである暗号化装置１００の使用者（メンバＵ１）以外のメンバＵｉ（ｉ＝２，・・・，ｎ）が使用する装置である。本実施形態に係る鍵処理装置２００は、例えば図４に示したように、個人鍵取得部２０１と、グループ鍵生成部２０３と、通信制御部２１７と、記憶部２１９と、を主に備える。
【０２２７】
個人鍵取得部２０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。個人鍵取得部２０１は、後述する通信制御部２１７を介して、鍵生成装置１０から、当該鍵処理装置２００を使用するメンバに予め割り当てられた個人鍵（すなわち、公開鍵および秘密鍵）を取得する。また、個人鍵取得部２０１は、個人鍵の取得にあわせて、鍵生成装置１０から公開情報（公開されているシステムパラメータ）を取得することも可能である。個人鍵取得部２０１は、取得した個人鍵や公開情報を、例えば後述する記憶部２１９に格納する。
【０２２８】
グループ鍵生成部２０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。グループ鍵生成部２０３は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、暗号化装置１００および他の鍵処理装置２００から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を上述の装置とともに生成する。このグループ鍵生成部２０３は、例えば図４に示したように、セッション情報取得部２０５と、一時鍵算出部２０７と、パラメータ選択部２０９と、セッション情報生成部２１１と、メンバ検証部２１３と、セッション鍵生成部２１５と、を更に備える。
【０２２９】
セッション情報取得部２０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報取得部２０５は、暗号化装置１００から伝送されたセッション情報Ｄ１と、同時通信に参加する他の鍵処理装置２００から伝送された、暗号化装置１００から伝送されるセッション情報Ｄ１とは異なるセッション情報Ｄｉと、を取得する。より詳細には、セッション情報取得部２０５は、後述する通信制御部２１７を介して、イニシエータである暗号化装置１００から伝送される、下記式１０４で表されるセッション情報Ｄ１を取得する。同様に、セッション情報取得部２０５は、同時通信に参加する他の鍵処理装置２００から、下記式２０１で表されるセッション情報Ｄｉを取得する。
【０２３０】
【数３７】
2010047356.tif 000039
【０２３１】
セッション情報取得部２０５は、暗号化装置１００から伝送されたセッション情報Ｄ１を、後述する一時鍵算出部２０７およびセッション情報生成部２１１に伝送する。また、セッション情報取得部２０５は、他の鍵処理装置２００から伝送されたセッション情報Ｄｉを、後述するメンバ検証部２１３に伝送する。また、セッション情報取得部２０５は、取得したこれらのセッション情報を、取得した日時等を表す情報などと関連付けて、後述する記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０２３２】
一時鍵算出部２０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。一時鍵算出部２０７は、セッション情報取得部２０５から伝送されたセッション情報Ｄ１に基づいて、同時通信において一時的に利用される一時鍵を算出する。一時鍵算出部２０７は、まず、セッション情報Ｄ１に含まれる、メンバ情報Ｐｉの対応付けに関する情報Ｌを参照して、自装置に対応するメンバ情報Ｐｉを検出する。次に、一時鍵算出部２０７は、自装置に対応するメンバ情報Ｐｉと、自身の個人鍵と、暗号化装置１００を使用しているメンバＵ１の公開鍵と、公開情報とを用いて、以下の式２０２により一時鍵ｒ’を算出する。ここで、下記式２０２におけるＨＡは、公開されているハッシュ関数の一つである。
【０２３３】
【数３８】
2010047356.tif 000040
【０２３４】
ここで、メンバＵ１により正しくセッション鍵Ｄ１が生成されていれば、メンバＵｉが有する鍵処理装置２００で算出された一時鍵ｒ’は、メンバＵ１が有する暗号化装置で選択された一時鍵ｒと等しくなる。すなわち、上記式２０２において、右側に位置する等号が成立して、結果的にｒ’＝ｒが成立する。
【０２３５】
一時鍵算出部２０７は、算出した一時鍵ｒ’を、後述するセッション情報生成部２１１に伝送する。なお、以下の説明では、ｒ’＝ｒが成立したものとして、ｒ’をｒと表記する。また、一時鍵算出部２０７は、算出した一時鍵を、算出した日時等を表す情報などと関連付けて、後述する記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０２３６】
パラメータ選択部２０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。パラメータ選択部２０９は、自装置においてセッション情報Ｄｉを算出する際に用いられるパラメータｋｉ∈ＲＺｑ＊を選択する。パラメータ選択部２０９は、選択したパラメータｋｉを、セッション情報生成部２１１に伝送する。
【０２３７】
なお、パラメータ選択部２０９は、選択したパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０２３８】
セッション情報生成部２１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報生成部２１１は、パラメータｋｉと、自身が保持するメンバＵｉの秘密鍵と、公開情報と、暗号化装置１００から伝送されたセッション情報Ｄ１と、を用いて、セッション情報Ｄｉを上述の式２０１に基づいて生成する。生成されたセッション情報Ｄｉは、通信制御部２１７を介して、暗号化装置１００、および、同時通信を行う他の鍵処理装置２００へ同報送信される。
【０２３９】
【数３９】
2010047356.tif 000041
【０２４０】
本実施形態に係るセッション情報生成部２１１は、上記式２０１に示したように、メンバＵｉの秘密鍵Ｓｉを用いてセッション情報を生成する。従って、メンバＵｉのセッション情報を偽装しようとしても、秘密鍵Ｓｉを保持しているメンバＵｉ以外の者は、セッション情報Ｄｉを生成することができない。
【０２４１】
メンバ検証部２１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ検証部２１３は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部２１３は、自身で生成したセッション情報Ｄｉと、暗号化装置１００から取得したセッション情報Ｄ１と、他の鍵処理装置２００から取得したセッション情報Ｄｉとに基づき、まず、下記式２０３に示す検証パラメータｚを算出する。続いて、メンバ検証部２１３は、下記式２０４の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部２１３は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部２１５に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部２１３は、取得したセッション情報Ｄｉを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
【０２４２】
【数４０】
2010047356.tif 000042
【０２４３】
なお、本実施形態に係るメンバ検証部２１３は、基盤技術とは異なり、検証パラメータｚを算出する際に、全てのセッション情報Ｄｉ（ｉ＝１，・・・，ｎ）について、セッション情報の一部であるＸｉについての和をとる。これにより、本実施形態に係る鍵処理装置２００では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部２１３は、基盤技術とは異なり、各メンバの公開鍵Ｑｉを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Ｓｉを用いる必要があり、別のメンバＵｊがメンバＵｉに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
【０２４４】
メンバ検証部２１３は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータｚを、セッション鍵生成部２１５へと伝送する。また、メンバ検証部２１３は、算出した検証パラメータｚを、算出した日時等を表す情報などと関連付けて、後述する記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０２４５】
セッション鍵生成部２１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション鍵生成部２１５は、メンバ検証部２１３による同時通信の参加メンバの検証が成功した場合に、メンバ検証部２１３から伝送された検証パラメータｚを用いて、同時通信にて用いられるセッション鍵Ｋｉを生成する。セッション鍵Ｋｉの生成は、以下の式２０５により行われる。ここで、下記式２０５におけるＨＣは、公開されているハッシュ関数の一つである。
【０２４６】
【数４１】
2010047356.tif 000043
【０２４７】
このようにして生成されるセッション鍵Ｋｉを用いることで、鍵処理装置２００および暗号化装置１００の間で、安全性の担保された同時通信を行うことが可能となる。
【０２４８】
なお、セッション鍵生成部２１５は、生成したセッション鍵Ｋを、生成した日時等を表す情報などと関連付けて、後述する記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０２４９】
通信制御部２１７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現される。通信制御部２１７は、鍵処理装置２００と鍵生成装置１０や暗号化装置１００との間で行われる通信の制御を行う。また、通信制御部２１７は、鍵処理装置２００と他の鍵処理装置２００との間で行われる通信の制御を行うことも可能である。
【０２５０】
記憶部２１９は、鍵生成装置１０により公開されている公開情報や、鍵生成装置１０から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部２１９には、本実施形態に係る鍵処理装置２００が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部２１９は、個人鍵取得部２０１、グループ鍵生成部２０３および当該グループ鍵生成部２０３に含まれる各処理部、通信制御部２１７等が、自由に読み書きを行うことが可能である。
【０２５１】
以上、本実施形態に係る鍵処理装置２００の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０２５２】
なお、上述のような本実施形態に係る鍵処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０２５３】
なお、上述の暗号化装置１００が鍵処理装置２００の機能を併せて有していても良く、鍵処理装置２００が暗号化装置１００の機能を併せて有していても良い。また、ある同時通信においては、鍵処理装置２００がイニシエータ（つまり暗号化装置１００）として本実施形態に係るプロトコルを開始しても良い。また、ある同時通信において、暗号化装置１００が、その他の参加メンバが利用する機器として、鍵処理装置２００の機能を果たしても良い。
【０２５４】
＜鍵生成処理について＞
本実施形態に係る鍵共有システム１では、まず、センタが保持する鍵生成装置１０が、本方法における各種のシステムパラメータ（すなわち、公開情報）と、各メンバ用の個人鍵（すなわち、公開鍵および秘密鍵を含むユーザ鍵）との生成を行う。以下、本実施形態に係る鍵生成装置１０が行う鍵生成処理について、図５を参照しながら、詳細に説明する。
【０２５５】
まず、鍵処理装置１０のパラメータ選択部１３は、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する（ステップＳ１１）。
【０２５６】
続いて、パラメータ選択部１３は、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し（ステップＳ１３）、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【０２５７】
次に、パラメータ選択部１３は、Ｈ、ＨＡ、ＨＢ、ＨＣの４種類のハッシュ関数を選択する（ステップＳ１５）。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
【０２５８】
Ｈ   ：｛０，１｝＊  →  Ｇ１
ＨＡ  ：Ｇ２  →  ｛０，１｝｜ｑ｜
ＨＢ  ：｛０，１｝｜ｑ｜  →  Ｚｑ＊
ＨＣ  ：Ｇ１  →  ｛０，１｝｜ｑ｜
【０２５９】
続いて、公開情報生成部１５は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ（公開情報）として公開する（ステップＳ１７）。公開されるシステムパラメータは、例えば、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ，ＨＡ，ＨＢ，ＨＣ＞となる。
【０２６０】
次に、ユーザＩＤ番号やメールアドレス等といったユーザを識別するためのＩＤ（ＩＤｉ）を有するメンバＵｉが、この鍵共有システム１に参加する際に、鍵生成部１７は、以下の方法で、ユーザＵｉの公開鍵Ｑｉと秘密鍵Ｓｉとを生成する（ステップＳ１９）。
【０２６１】
より詳細には、まず、公開鍵生成部１９は、メンバ情報管理部１１から取得した、要請のあったメンバに関するＩＤ（ＩＤｉ）と、システムパラメータであるハッシュ関数Ｈとを用いて、メンバＵｉの公開鍵Ｑｉを生成する。
【０２６２】
公開鍵Ｑｉ  ＝  Ｈ（ＩＤｉ）
【０２６３】
次に、秘密鍵生成部２１は、公開鍵生成部１９が生成した公開鍵Ｑｉと、マスター秘密鍵ｓとを用いて、メンバＵｉの秘密鍵Ｓｉを生成する。
【０２６４】
秘密鍵Ｓｉ  ＝  ｓＱｉ
【０２６５】
鍵生成装置１０は、生成したユーザＵｉの個人鍵（すなわち、公開鍵Ｑｉと秘密鍵Ｓｉ）を、該当するメンバＵｉに伝送する。また、鍵生成装置１０は、生成したメンバＵｉの公開鍵Ｑｉを、公開してもよい。
【０２６６】
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
【０２６７】
＜セッション鍵の生成方法について＞
続いて、図６および図７を参照しながら、本実施形態に係る暗号化装置１００が行う暗号化方法および鍵処理装置２００が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図６および図７は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【０２６８】
本実施形態に係るセッション鍵の生成方法は、暗号化装置１００が中心となって行う処理と、鍵処理装置２００が中心となって行う処理と、暗号化装置１００および鍵処理装置２００がそれぞれ行うセッション鍵の生成処理と、の３つの処理を含む。以下、暗号化装置が中心となって行う処理を、Ｒｏｕｎｄ１とも称する。また、鍵処理装置２００が中心となって行う処理を、Ｒｏｕｎｄ２とも称する。
【０２６９】
なお、以下の説明では、１台の暗号化装置１００と（ｎ−１）台の鍵処理装置２００との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、ｎ人のメンバＵ１，Ｕ２，・・・，Ｕｎのうち、いずれかのメンバがプロトコル開始者（以下、イニシエータとも称する。）となる。以下の説明では、簡単のために、メンバＵ１がイニシエータであるとする。
【０２７０】
［Ｒｏｕｎｄ１］
まず、イニシエータであるメンバＵ１が有する暗号化装置１００のパラメータ選択部１０５は、セッション鍵共有に用いられるパラメータであるパラメータδ∈ＲＧ２と、パラメータｋ１∈ＲＺｑ＊と、を選択する（ステップＳ１０１）。また、メンバＵ１が有する情報処理装置は、パラメータｒ∈Ｒ｛０，１｝｜ｑ｜を選択する（ステップＳ１０１）。このパラメータｒは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
【０２７１】
次に、暗号化装置１００のメンバ情報生成部１０７は、同時通信に参加するメンバＵ２〜Ｕｎに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Ｐｉ（ｉ＝２，・・・，ｎ）を生成する（ステップＳ１０３）。このメンバ情報Ｐｉは、上述の式１０１で表される値である。また、メンバ情報生成部１０７は、メンバ情報Ｐｉの生成にあわせて、メンバ情報とメンバとの対応関係を表す情報Ｌを生成する。
【０２７２】
続いて、セッション情報生成部１０９は、公開情報と、選択したパラメータと、メンバＵ１の秘密鍵と、を用いて、上述の式１０２および式１０３に示した値Ｘ１、Ｙ１を算出する。また、Ｘ１，Ｙ１の算出が終了すると、セッション情報生成部１０９は、上述の式１０４で表されるセッション情報Ｄ１を生成する（ステップＳ１０５）。
【０２７３】
セッション情報Ｄ１の生成が終了すると、セッション情報生成部１０９は、通信制御部１１７を介して、生成したセッション情報Ｄ１を、全ての鍵処理装置２００に対して同報送信する（ステップＳ１０７）。
【０２７４】
［Ｒｏｕｎｄ２］
セッション情報取得部２０５によりセッション情報Ｄ１を受信したメンバＵ２〜Ｕｎが有する鍵処理装置２００は、取得したセッション情報Ｄ１を、一時鍵算出部２０７に伝送する。一時鍵算出部２０７は、まず、セッション情報Ｄ１中に含まれる情報Ｌを参照し、自身に対応するメンバ情報がＰ２〜Ｐｎのどれなのかを判断する（ステップＳ１０９）。
【０２７５】
続いて、一時鍵算出部２０７は、自身に対応するメンバ情報Ｐｉと、セッション情報Ｄ１と、イニシエータであるメンバＵ１の公開鍵Ｑ１と、自身の秘密鍵Ｓｉを用いて、上述の式２０２に基づき一時鍵ｒ’を算出する（ステップＳ１１１）。
【０２７６】
ここで、メンバＵ１により正しくセッション鍵Ｄ１が生成されていれば、メンバＵ２〜Ｕｎが有する鍵処理装置２００で算出された一時鍵ｒ’は、メンバＵ１が有する暗号化装置１００で選択された一時鍵ｒと等しくなる。すなわち、ｒ’＝ｒが成立する。
【０２７７】
次に、パラメータ選択部２０９は、パラメータｋｉ∈ＲＺｑ＊を選択する（ステップＳ１１３）。その後、セッション情報生成部２１１は、パラメータｋｉと、一時鍵ｒ’と、公開情報と、自身の秘密鍵Ｓｉとを用いて、暗号化装置１００および他のメンバＵｉが有する鍵処理装置２００へと伝送されるセッション情報Ｄｉを生成する（ステップＳ１１５）。このセッション情報Ｄｉの生成は、上述の式２０１に基づいて行われる。
【０２７８】
セッション情報Ｄｉの生成が終了すると、メンバＵ２〜Ｕｎが有する鍵処理装置２００のセッション情報生成部２１１それぞれは、自身以外の全ての装置に対して、生成したセッション情報Ｄｉを同報送信する（ステップＳ１１７）。これにより、生成したセッション情報Ｄｉが、暗号化装置１００および他の全ての鍵処理装置２００に対して送信されることとなる。
【０２７９】
［セッション鍵生成］
暗号化装置１００のセッション情報取得部１１１は、メンバＵ２〜Ｕｎが有する鍵処理装置２００から伝送された全てのセッション情報Ｄｉを取得する。これにより、暗号化装置１００は、自身が生成したセッション情報Ｄ１を含め、セッション情報Ｄ１〜Ｄｎまで全ｎ個のセッション情報を有することとなる。暗号化装置１００のメンバ検証部１１３は、セッション情報Ｄ１〜Ｄｎと、公開情報とを用いて、式１０５に示した検証パラメータｚを算出する（ステップＳ１１９）。
【０２８０】
同様に、メンバＵ２〜Ｕｎが有する鍵処理装置２００それぞれは、セッション情報Ｄ１と、自身以外のメンバＵ２〜Ｕｎが有する鍵処理装置２００から取得したセッション情報Ｄｉとを含め、セッション情報Ｄ１〜Ｄｎまで全ｎ個のセッション情報を有することとなる。それぞれのメンバＵ２〜Ｕｎが有する鍵処理装置２００のメンバ検証部２１３は、セッション情報Ｄ１〜Ｄｎと、公開情報とを用いて、式２０３により検証パラメータｚを算出する（ステップＳ１２１）。
【０２８１】
続いて、暗号化装置１００のメンバ検証部１１３は、算出した検証パラメータｚを用いて演算を行い、上述の式１０６が成立するか否かを判定する（ステップＳ１２３）。同様に、それぞれのメンバＵ２〜Ｕｎが有する鍵処理装置２００のメンバ検証部２１３は、算出した検証パラメータｚを用いて演算を行い、上述の式２０４が成立するか否かを判定する（ステップＳ１２５）。式１０６が成立した場合には、暗号化装置１００は、セッション鍵Ｋの確立のために参加したｎ人のメンバが全て正当なメンバであると判断する。同様に、式２０４が成立した場合には、各鍵処理装置２００は、セッション鍵Ｋｉの確立のために参加したｎ人のメンバが全て正当なメンバであると判断する。このように、式１０６および式２０４が成立するか否かを判断するステップＳ１２３およびステップＳ１２５は、メンバの正当性を検証しているステップであるといえる。
【０２８２】
メンバＵ１が有する暗号化装置１００のセッション鍵生成部１１５は、式１０６が成立した場合にのみ、上述の式１０７に基づいて、セッション鍵Ｋを算出する（ステップＳ１２７）。同様に、それぞれのメンバＵ２〜Ｕｎが有する鍵処理装置２００のセッション鍵生成部２１５は、式２０４が成立した場合にのみ、上述の式２０５に基づいて、セッション鍵Ｋを算出する（ステップＳ１２９）。
【０２８３】
このような手順により、同時通信で用いられるセッション鍵Ｋがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ１３１）。
【０２８４】
このように、本実施形態に係るセッション鍵の生成方法では、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。仮にメンバＵｉがプロトコルに参加していない状況が生じた場合、その他のメンバは、一時鍵ｒの値は知り得ても、メンバＵｉの秘密鍵Ｓｉは知ることができない。そのため、本実施形態に係るセッション鍵の生成方法では、その他のメンバが、基盤技術における方式のように、Ｕｉの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
【０２８５】
なお、本実施形態に係るセッション鍵の生成方法では、メンバＵｉが送信する値として、メンバＵｉの秘密鍵Ｓｉを用いた値（式１０３に示した値Ｙｉ）を生成している。これにより、メンバＵｉの公開鍵Ｑｉを用いたメンバの検証が可能となる。この際、検証される値には、ｋｉＰｐｕｂだけでなく、Ｈ２（ｒ｜｜Ｌ）も含まれている。すなわち、何れかのメンバがｒの値として他のメンバとは異なる値を使用した場合には、上述の検証において等号が成立しない。その結果、同時通信に参加するメンバは、セッション鍵が正しく共有できなかったことが把握できる。このように、本実施形態に係るセッション鍵の生成方法では、メンバへの成りすましを防止するだけでなく、ある特定のメンバを除外する行為を防止することも可能となる。
【０２８６】
＜セッション鍵の生成方法における計算量等について＞
次に、図８を参照しながら、本実施形態に係るセッション鍵の生成方法における計算量等について検討する。図８は、本実施形態に係るセッション鍵生成処理について説明するための説明図である。
【０２８７】
図８では、本実施形態に係るセッション鍵の生成方法と、基盤技術である非特許文献２に記載の方法とにおける計算量等を、比較しながら示している。図８において、「Ｍ  Ｓｉｚｅ」はメッセージ量を表し、「Ｇ１−Ｍｕｌ」は、群Ｇ１上における掛け算の回数を表し、「Ｇ２−Ｍｕｌ」は、群Ｇ２上における掛け算の回数を表す。また、図中の「ｎ」は、メンバの数を表している。また、図中の「Ｕ１」は、イニシエータの計算量を表しており、「Ｕｉ（ｅａｃｈ）」は、イニシエータ以外の（ｎ−１）ユーザそれぞれに必要な計算量を表している。また、図中の「Ｔｏｔａｌ」は、ｎ人全員のトータルの計算量を表している。
【０２８８】
図８から明らかなように、本実施形態に係る方法は、非特許文献２に記載の方法と、ラウンド数、メッセージ量およびペアリングの回数については同様の負荷となっている。他方、群Ｇ１上における掛け算の回数について、非特許文献２に記載の方法は、トータルで（ｎ２＋２ｎ＋１）回必要であるのに対し、本実施形態に係る方法では、（８ｎ−２）回だけでよくなっている。これは、非特許文献２に記載の方法では、計算量がメンバ数ｎの二乗に比例していくのに対し、本実施形態に係る方法では、メンバ数ｎに比例して大きくなることを示している。そのため、メンバ数ｎが大きくなればなるほど、本実施形態に係る方法の計算負荷は抑制されることを示している。同様に、群Ｇ２上における掛け算の回数について、非特許文献２に記載の方法は、（２ｎ−２）回必要であるのに対し、本実施形態に係る方法では、０回となっており、同様に計算負荷の削減が実現できたことを示している。
【０２８９】
（第２の実施形態）
続いて、図９〜図１１を参照しながら、本発明の第２の実施形態に係る鍵共有システムについて、詳細に説明する。図９は、本実施形態に係る暗号化装置１００の構成を説明するためのブロック図であり、図１０は、本実施形態に係る鍵処理装置２００の構成を説明するためのブロック図である。また、図１１は、本実施形態に係るセッション鍵生成処理を説明するための流れ図である。
【０２９０】
なお、本実施形態に係る鍵共有システムでは、非特許文献３に記載の方法と同様にして、システム内の鍵生成装置１０により、各種のシステムパラメータと、各メンバ用の個人鍵とが生成されているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Ｅおよび復号関数Ｄ、ならびに、デジタル署名方式の署名生成関数Ｓおよび署名検証関数Ｖが公開される。また、ユーザＵｉが有する装置には、ユーザＵｉの公開暗号化鍵ｅｉ、秘密復号鍵ｄｉ、秘密署名生成鍵ｓｉ、公開署名検証鍵ｖｉ等が保持されており、公開暗号化鍵ｅｉおよび公開署名検証鍵ｖｉは、各メンバＵｉ間で共有されているものとする。
【０２９１】
＜暗号化装置の構成について＞
まず、図９を参照しながら、本実施形態に係る暗号化装置１００の構成について、詳細に説明する。
【０２９２】
本実施形態に係る暗号化装置１００は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置１００は、メンバＵ１が所持しているものとする。本実施形態に係る暗号化装置１００は、例えば図９に示したように、個人鍵取得部１０１と、グループ鍵生成部１０３と、通信制御部１１７と、記憶部１１９と、を主に備える。
【０２９３】
ここで、本実施形態に係る個人鍵取得部１０１、通信制御部１１７および記憶部１１９は、本発明の第１の実施形態に係る各処理部と同様の構成を有し、同様の効果を奏するものであるため、以下では詳細な説明は省略する。
【０２９４】
グループ鍵生成部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。グループ鍵生成部１０３は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、鍵処理装置２００から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を鍵処理装置２００とともに生成する。このグループ鍵生成部１０３は、例えば図９に示したように、パラメータ選択部１２１と、メンバ情報生成部１２３と、セッション情報生成部１２５と、を更に備える。また、グループ鍵生成部１０３は、セッション情報取得部１２７と、セッション鍵生成部１２９と、を更に備える。
【０２９５】
パラメータ選択部１２１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。パラメータ選択部１２１は、同時通信における一時鍵として利用される所定のビット数を有するパラメータＮ１を選択する。パラメータ選択部１２１は、選択したパラメータを、セッション情報生成部１２５に伝送する。
【０２９６】
なお、パラメータ選択部１２１は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２９７】
メンバ情報生成部１２３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ情報生成部１２３は、同時通信に参加するメンバＵｉ（ｉ＝２，・・・，ｎ）に関する情報が記載されたメンバ情報Ｕを生成する。このメンバ情報Ｕを参照することで、暗号化装置２００は、同時通信に参加するメンバＵｉを特定することが可能となる。メンバ情報生成部１２３は、生成したメンバ情報Ｕを、セッション情報生成部１２５へと伝送する。
【０２９８】
なお、メンバ情報生成部１２３は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０２９９】
セッション情報生成部１２５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報生成部１２５は、パラメータ選択部１２１から伝送された各種パラメータと、メンバ情報生成部１２３から伝送されたメンバ情報Ｕと、公開情報と、に基づいて、署名が付加されたセッション情報Ｄを生成する。
【０３００】
より詳細には、セッション情報生成部１２５は、まず、セッション情報Ｄとして以下の式１１１で表されるメッセージを生成する。
【０３０１】
【数４２】
2010047356.tif 000044
【０３０２】
上記式１１１から明らかなように、セッション情報Ｄは、ユーザＵｉの公開暗号化鍵ｅｉを用いて、パラメータ選択部１２１が選択したパラメータＮ１を暗号化したものの集合と、Ｎ１そのものを公開情報であるハッシュ関数ｈを用いて変換したものとを含む。
【０３０３】
その後、セッション情報生成部１２５は、生成したセッション情報Ｄに対して、公開情報である署名生成関数Ｓと、ユーザＵ１自身の秘密署名生成鍵ｓ１とを用いて、以下の式１１２で表される署名を付加する。
【０３０４】
【数４３】
2010047356.tif 000045
【０３０５】
また、セッション情報生成部１２５は、セッション情報Ｄと、セッション情報Ｄに付加する署名と、を生成すると、通信制御部１１７に、セッション情報Ｄと、セッション情報Ｄに付加する署名と、メンバ情報Ｕと、を同報送信するように要請する。また、セッション情報生成部１２５は、各メンバＵｉに送信するための暗号化されたパラメータＮ１をそれぞれ生成すると、通信制御部１１７に、これら暗号化されたパラメータＮ１の送信を要請する。
【０３０６】
また、セッション情報生成部１２５は、セッション情報の生成に利用したパラメータＮ１を、セッション鍵生成部１２９に伝送する。なお、パラメータＮ１は、パラメータ選択部１２１から直接セッション鍵生成部１２９に伝送されてもよいし、セッション鍵生成部１２９が、記憶部１１９等に一時的に格納されているパラメータＮ１を取得してもよい。
【０３０７】
セッション情報取得部１２７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報取得部１２７は、通信制御部１１７を介して、全ての鍵処理装置２００それぞれから伝送されたセッション情報Ｄｉを取得する。このセッション情報Ｄｉは、それぞれの鍵処理装置２００を所持しているユーザを特定するための情報であるユーザ情報Ｕｉと、各鍵処理装置２００が選択したパラメータＮｉとを含む。
【０３０８】
セッション情報取得部１２７は、取得した全てのセッション情報Ｄｉを、セッション鍵生成部１２９へと伝送する。また、セッション情報取得部１２７は、取得したセッション情報Ｄｉを、取得した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０３０９】
セッション鍵生成部１２９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション鍵生成部１２９は、セッション情報生成部１２５から伝送されたパラメータＮ１と、セッション情報取得部１２７から伝送されたパラメータＮｉと、公開情報とを用いて、同時通信で用いられるセッション鍵ＫＵを生成する。
【０３１０】
より詳細には、セッション鍵生成部１２９は、公開されているハッシュ関数ｈと、取得したパラメータＮ１〜Ｎｎと、を利用して、以下の式１１３に基づいてセッション鍵ＫＵを生成する。
【０３１１】
【数４４】
2010047356.tif 000046
【０３１２】
このようにして生成されるセッション鍵ＫＵを用いることで、暗号化装置１００および複数の鍵処理装置２００の間で、安全性の担保された同時通信を行うことが可能となる。
【０３１３】
なお、セッション鍵生成部１２９は、生成したセッション鍵ＫＵを、生成した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０３１４】
以上、本実施形態に係る暗号化装置１００の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０３１５】
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０３１６】
＜鍵処理装置の構成について＞
次に、図１０を参照しながら、本実施形態に係る鍵処理装置２００の構成について、詳細に説明する。
【０３１７】
本実施形態に係る鍵処理装置２００は、同時通信のイニシエータである暗号化装置１００の使用者（メンバＵ１）以外のメンバＵｉ（ｉ＝２，・・・，ｎ）が使用する装置である。本実施形態に係る鍵処理装置２００は、例えば図１０に示したように、個人鍵取得部２０１と、グループ鍵生成部２０３と、通信制御部２１７と、記憶部２１９と、を主に備える。
【０３１８】
ここで、本実施形態に係る個人鍵取得部２０１、通信制御部２１７および記憶部２１９は、本発明の第１の実施形態に係る各処理部と同様の構成を有し、同様の効果を奏するものであるため、以下では詳細な説明は省略する。
【０３１９】
グループ鍵生成部２０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。グループ鍵生成部２０３は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、暗号化装置１００および他の鍵処理装置２００から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を上述の装置とともに生成する。このグループ鍵生成部２０３は、例えば図１０に示したように、セッション情報取得部２２１と、一時鍵算出部２２３と、メンバ検証部２２５と、セッション情報生成部２２７と、パラメータ選択部２２９と、セッション鍵生成部２３１と、を更に備える。
【０３２０】
セッション情報取得部２２１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報取得部２２１は、暗号化装置１００から伝送されたセッション情報Ｄを含む各種情報と、同時通信に参加する他の鍵処理装置２００から伝送された、暗号化装置１００から伝送されるセッション情報Ｄとは異なるセッション情報Ｄｉと、を取得する。より詳細には、セッション情報取得部２２１は、通信制御部２１７を介して、暗号化装置１００から送信された署名の付加されたセッション情報Ｄおよび暗号化されたパラメータＮ１を取得する。また、セッション情報取得部２２１が取得するセッション情報Ｄｉは、他の鍵処理装置２００を所持しているユーザを特定するための情報であるユーザ情報Ｕｉと、各鍵処理装置２００が選択したパラメータＮｉとを含む。
【０３２１】
セッション情報取得部２２１は、暗号化されたパラメータＮ１を受信すると、この暗号化されたパラメータＮ１を、一時鍵算出部２２３に伝送する。また、セッション情報取得部２２１は、暗号化装置１００から同報送信された、署名の付加されたセッション情報Ｄを、メンバ検証部２２５に伝送する。
【０３２２】
また、セッション情報取得部２２１は、他の鍵処理装置２００それぞれから同報送信されたセッション情報Ｄｉを取得すると、取得した各セッション情報Ｄｉを、セッション鍵生成部２３１に伝送する。
【０３２３】
なお、セッション情報取得部２２１は、取得したこれらのセッション情報等を、取得した日時等を表す情報などと関連付けて、記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０３２４】
一時鍵算出部２２３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。一時鍵算出部２２３は、セッション情報取得部２２１から暗号化されたパラメータＮ１に関する情報が伝送されると、この暗号化された情報を復号してパラメータＮ１の値を取得する。暗号化された情報は、鍵処理装置２００を有するユーザＵｉの公開暗号化鍵ｅｉを用いて暗号化されているため、各鍵処理装置２００は、保持している秘密復号鍵ｄｉを用いて暗号文の復号を行うことができる。ここで、パラメータＮ１は、同時通信において一時的に利用される一時鍵と考えることができる。一時鍵算出部２２３は、復号の結果得られたパラメータＮ１を、メンバ検証部２２５に伝送する。
【０３２５】
また、一時鍵算出部２２３は、算出した一時鍵であるパラメータＮ１を、算出した日時等を表す情報などと関連付けて、記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０３２６】
メンバ検証部２２５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ検証部２２５は、セッション情報取得部２２１から伝送されたデジタル署名（暗号化装置１００から同報送信されたセッション情報Ｄに付加されていたもの）の検証を行う。このデジタル署名は、暗号化装置１００を保持しているイニシエータＵ１の公開署名検証鍵ｖ１を用いて行うことが可能である。この検証処理により、イニシエータＵ１が送信したデジタル署名が、正当なユーザＵ１のデジタル署名であることを確認することができる。更に、メンバ検証部２２５は、一時鍵算出部２２３から伝送されたパラメータＮ１と公開されているハッシュ関数ｈとを用いてｈ（Ｎ１）を独自に算出する。その後、メンバ検証部２２５は、算出したｈ（Ｎ１）と、セッション情報取得部２２１から伝送されたセッション情報Ｄに含まれるｈ（Ｎ１）とが同値であるかを検証する。
【０３２７】
算出した値とセッション情報Ｄに含まれている値とが一致し、かつ、デジタル署名が正規のものであった場合には、メンバ検証部２２５は、取得したセッション情報が正規のメンバ（すなわち、正規のイニシエータ）から送信されたものであると判断する。この場合、メンバ検証部２２５は、セッション情報生成部２２７に、正規のメンバからセッション情報Ｄが送信された旨を表す検証結果を伝送する。
【０３２８】
また、デジタル署名が正規のものでなかった場合、または、算出したｈ（Ｎ１）がセッション情報Ｄに含まれている値と一致しなかった場合には、メンバ検証部２２５は、取得したセッション情報Ｄは正規のメンバにより送信されたものではないと判断する。その結果、鍵処理装置２００は、セッション鍵の生成処理を終了する。
【０３２９】
セッション情報生成部２２７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報生成部２２７は、メンバ検証部２２５から、取得したセッション情報の検証に成功した旨が通知されると、パラメータ選択部２２９にパラメータＮｉの選択を要請する。また、パラメータ選択部２２９からパラメータＮｉが通知されると、セッション情報生成部２２７は、通信制御部２１７を介して、鍵処理装置２００を保持するユーザＵｉを特定するユーザ情報Ｕｉと、選択したパラメータＮｉとを、他のメンバに対して同報送信する。このユーザ情報ＵｉおよびパラメータＮｉは、ユーザＵｉが有する鍵処理装置２００から送信されるセッション情報Ｄｉである。ユーザ情報ＵｉおよびパラメータＮｉを送信すべきメンバの特定は、暗号化装置１００から送信されたメンバ情報Ｕを参照することで行われる。
【０３３０】
セッション情報Ｄｉの送信が終了すると、セッション情報生成部２２７は、パラメータ選択部２２９により選択されたパラメータＮｉと、一時鍵算出部２２３により算出されたパラメータＮ１とを、セッション鍵生成部２３１に伝送する。なお、パラメータＮｉのセッション鍵生成部２３１への伝送は、後述するパラメータ選択部２２９により行われてもよい。また、パラメータＮ１のセッション鍵生成部２３１への伝送は、一時鍵算出部２２３により行われてもよい。
【０３３１】
パラメータ選択部２２９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。パラメータ選択部２２９は、セッション情報生成部２２７の要請を受けて、セッション情報Ｄｉの一部として利用される所定のビット数を有するパラメータＮｉを選択する。パラメータ選択部２２９は、選択したパラメータを、セッション情報生成部２２７に伝送する。
【０３３２】
なお、パラメータ選択部２２９は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０３３３】
セッション鍵生成部２３１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション鍵生成部２３１は、パラメータＮ１およびＮｉと、他の鍵処理装置２００から送信されたパラメータＮｉと、公開情報とを用いて、同時通信で用いられるセッション鍵ＫＵを生成する。
【０３３４】
より詳細には、セッション鍵生成部２３１は、公開されているハッシュ関数ｈと、取得したパラメータＮ１〜Ｎｎと、を利用して、以下の式２１１に基づいてセッション鍵ＫＵを生成する。
【０３３５】
【数４５】
2010047356.tif 000047
【０３３６】
このようにして生成されるセッション鍵ＫＵを用いることで、鍵処理装置２００は、暗号化装置１００および他の鍵処理装置２００の間で、安全性の担保された同時通信を行うことが可能となる。
【０３３７】
なお、セッション鍵生成部２３１は、生成したセッション鍵ＫＵを、生成した日時等を表す情報などと関連付けて、記憶部２１９などに履歴情報等と一緒に記録しておいてもよい。
【０３３８】
以上、本実施形態に係る鍵処理装置２００の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０３３９】
なお、上述のような本実施形態に係る鍵処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０３４０】
なお、上述の暗号化装置１００が鍵処理装置２００の機能を併せて有していても良く、鍵処理装置２００が暗号化装置１００の機能を併せて有していても良い。また、ある同時通信においては、鍵処理装置２００がイニシエータ（つまり暗号化装置１００）として本実施形態に係るプロトコルを開始しても良い。また、ある同時通信において、暗号化装置１００が、その他の参加メンバが利用する機器として、鍵処理装置２００の機能を果たしても良い。
【０３４１】
＜セッション鍵の生成方法について＞
続いて、図１１を参照しながら、本実施形態に係る暗号化装置１００が行う暗号化方法および鍵処理装置２００が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図１１は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
【０３４２】
なお、以下の説明では、１台の暗号化装置１００と（ｎ−１）台の鍵処理装置２００との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、ｎ人のメンバＵ１，Ｕ２，・・・，Ｕｎのうち、いずれかのメンバがプロトコル開始者（以下、イニシエータとも称する。）となる。以下の説明では、簡単のために、メンバＵ１がイニシエータであるとする。
【０３４３】
まず、イニシエータであるメンバＵ１が有する暗号化装置１００のパラメータ選択部１２１は、一時的な鍵として利用されるパラメータＮ１を選択し（ステップＳ２０１）、セッション情報生成部１２５に伝送する。
【０３４４】
次に、暗号化装置１００のメンバ情報生成部１２３は、同時通信に参加するメンバＵｉ（ｉ＝２，・・・，ｎ）に関する情報が記載されたメンバ情報Ｕを生成する（ステップＳ２０３）。メンバ情報生成部１２３は、メンバ情報Ｕの生成が終了すると、生成したメンバ情報Ｕをセッション情報生成部１２５に伝送する。
【０３４５】
セッション情報生成部１２５は、メンバ情報Ｕを参照しながら、ユーザＵｉの公開暗号化鍵ｅｉを用いて、各メンバＵｉに対し暗号化されたパラメータＮ１（すなわち、Ｅ（ｅｉ，Ｎ１））を生成する。セッション情報生成部１２５は、パラメータ選択部１２１から伝送されたパラメータと、メンバ情報生成部１２３から伝送されたメンバ情報Ｕと、公開情報と、に基づいて、署名が付加されたセッション情報Ｄを生成する（ステップＳ２０５）。この署名が付加されたセッション情報Ｄの生成は、上述の式１１１および式１１２に基づいて行われる。
【０３４６】
続いて、セッション情報生成部１２５は、メンバ情報Ｕおよび署名の付加されたセッション情報Ｄを、通信制御部１１７を介して、鍵処理装置２００に同報送信する（ステップＳ２０７）。
【０３４７】
その後、セッション情報生成部１２５は、暗号化されたパラメータＮ１を、通信制御部１１７を介して、各鍵処理装置２００に送信する（ステップＳ２０９）。
【０３４８】
セッション情報取得部２２１によりセッション情報Ｄおよび暗号化されたパラメータＮ１を受信したメンバＵ２〜Ｕｎが有する鍵処理装置２００は、まず、取得したメッセージ（セッション情報Ｄ）の検証を行う（ステップＳ２１１）。このメッセージの検証は、一時鍵算出部２２３により算出されたパラメータＮ１と、セッション情報取得部２２１が取得した署名が付加されたセッション情報Ｄとを利用して、メンバ検証部２２５により行われる。
【０３４９】
メンバ検証部２２５による検証処理の結果、メッセージが正規のものであると確認されなかった場合には、鍵処理装置２００は、セッション鍵の生成処理を中止する。他方、メンバ検証部２２５による検証処理の結果、メッセージが正規のものであると確認された場合には、セッション情報生成部２２７は、パラメータ選択部２２９にパラメータＮｉの選択を要請する。その結果、パラメータ選択部２２９は、パラメータＮｉを無作為に選択する（ステップＳ２１３）。パラメータ選択部２２９は、選択したパラメータＮｉを、セッション情報生成部２２７に通知する。
【０３５０】
その後、セッション情報生成部２２７は、通信制御部２１７を介して、鍵処理装置２００を保持するユーザＵｉを特定するユーザ情報Ｕｉと、選択したパラメータＮｉとを、暗号化装置１００を含む他のメンバに対して同報送信する（ステップＳ２１５）。
【０３５１】
暗号化装置１００および鍵処理装置２００のセッション情報取得部は、他の鍵処理装置２００から送信されたパラメータＮｉ等を取得する（ステップＳ２１７）。これにより、（ｎ−１）台の全ての鍵処理装置２００から、ユーザ情報ＵｉおよびパラメータＮｉが同報送信されることとなり、Ｎ１〜Ｎｎまでのｎ個のパラメータが揃うこととなる。
【０３５２】
その後、暗号化装置１００および鍵処理装置２００のセッション鍵生成部１２９は、Ｎ１〜Ｎｎのｎ個のパラメータを用いて、セッション鍵ＫＵを算出する（ステップＳ２１９）。このような手順により、同時通信で用いられるセッション鍵ＫＵがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ２２１）。
【０３５３】
このように、本実施形態に係るセッション鍵の生成方法では、イニシエータＵ１の有する暗号化装置１００が選択したパラメータＮ１に値して、イニシエータＵ１が有する秘密署名生成鍵を用いてデジタル署名を付加する。鍵処理装置２００では、イニシエータＵ１から伝送されたメッセージの検証時に、公開署名検証鍵を用いてイニシエータＵ１から伝送されたセッション情報Ｄの検証を行う。これにより、イニシエータが特定のメンバにだけ異なるパラメータＮ１の値を送信することを防止することができる。
【０３５４】
（第３の実施形態）
続いて、図１２〜図１６を参照しながら、本発明の第３の実施形態に係る鍵共有システムについて、詳細に説明する。
【０３５５】
＜鍵共有システムについて＞
まず、図１２を参照しながら、本実施形態に係る鍵共有システムについて、詳細に説明する。図１２は、本実施形態に係る鍵共有システムについて説明するための説明図である。
【０３５６】
本実施形態に係る鍵共有システム１は、例えば図１２に示したように、鍵生成装置１０と、複数台の暗号化装置１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ・・・と、を主に備える。これらの装置は、通信網３を介して、相互に接続されている。
【０３５７】
通信網３は、鍵生成装置１０および暗号化装置１００それぞれの間を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網３については、本発明の第１の実施形態に係る通信網３と同様であるため、詳細な説明は省略する。
【０３５８】
鍵生成装置１０は、暗号化装置１００それぞれに固有の公開鍵と秘密鍵とを生成し、公開鍵を公開するとともに、各装置に対して、安全な通信路を介して、それぞれの公開鍵および秘密鍵を配信する。また、鍵生成装置１０は、上述の公開鍵および秘密鍵に加えて、暗号化装置１００それぞれに固有の署名生成鍵および署名検証鍵を生成し、各装置に対して、安全な通信路を介して、それぞれの署名生成鍵および署名検証鍵を配信する。さらに、鍵生成装置１０は、本実施形態に係る鍵共有システム１で用いられ公開することが可能なパラメータを、システムパラメータとして公開する。なお、この鍵生成装置１０は、公開鍵および秘密鍵の生成・管理を行うセンタ等が所有することが可能である。
【０３５９】
暗号化装置１００は、上述の公開鍵・秘密鍵および署名生成鍵および署名検証鍵、ならびに、公開されているシステムパラメータ等を用いて、複数の暗号化装置１００間で行われる同時通信に要するセッション鍵を生成するための情報を暗号化する。また、暗号化装置１００は、暗号化したセッション鍵を生成するための情報を、通信網３を介して他の暗号化装置１００へと伝送する。これにより、各暗号化装置１００は、同時通信に際して必要なセッション鍵を共有することができる。この暗号化装置１００は、任意の第三者が所有することが可能であり、また、鍵生成装置１０の所有者が所有することも可能である。
【０３６０】
なお、暗号化装置１００は、パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）等のコンピュータ装置（ノート型、デスクトップ型を問わない。）であってもよい。また、暗号化装置１００は、ネットワークを介した通信機能を有する機器であれば、任意の装置であってもよい。例えば、これらの装置は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、ＤＶＤ／ＨＤＤレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、暗号化装置は、契約者が持ち運びできるポータブルデバイス（Ｐｏｒｔａｂａｌｅ  Ｄｅｖｉｃｅ）、例えば、携帯型ゲーム機、携帯電話、携帯型映像／音声プレーヤ、ＰＤＡ、ＰＨＳなどであってもよい。
【０３６１】
なお、図１２において、暗号化装置１００は、４台しか記載されていないが、本実施形態に係る鍵共有システム１において、暗号化装置の台数は、図１２に示した例に限定されるわけではない。
【０３６２】
＜鍵生成装置の構成について＞
次に、図１３を参照しながら、本実施形態に係る鍵生成装置１０の構成について、詳細に説明する。本実施形態に係る鍵生成装置１０は、例えば図１３に示したように、メンバ情報管理部１１と、パラメータ選択部１３と、公開情報生成部１５と、鍵生成部１７と、情報提供部２３と、通信制御部２５と、記憶部２７と、を主に備える。
【０３６３】
メンバ情報管理部１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ情報管理部１１は、本実施形態に係る鍵生成装置１０において公開鍵および秘密鍵からなるメンバ用の個人鍵を生成したメンバに関する情報を管理する。これらのメンバ情報は、例えば記憶部２７に記録されている。
【０３６４】
パラメータ選択部１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現されるものであり、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する。続いて、パラメータ選択部１３は、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【０３６５】
また、パラメータ選択部１３は、以下の４種類のハッシュ関数Ｈ１、Ｈ２、Ｈ３、Ｈ４を選択する。
【０３６６】
Ｈ１：｛０，１｝＊  →  Ｇ１
Ｈ２：Ｇ２  →  ｛０，１｝ｔ
Ｈ３：｛０，１｝ｔ  →  ｛０，１｝ｔ
Ｈ４：Ｚｑ＊  →  ｛０，１｝ｔ
【０３６７】
ここで、ハッシュ関数Ｈ４におけるｔは、ハッシュ関数の出力長であり、例えば、ｔ＝１６０（すなわち、出力長１６０ｂｉｔ）などの値が設定される。
【０３６８】
公開情報生成部１５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現されるものであり、パラメータ選択部１３が選択した各種のパラメータやハッシュ関数の中から、公開情報（公開システムパラメータ）として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部１５は、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４＞の組み合わせを公開情報として生成し、記憶部２７に格納する。
【０３６９】
鍵生成部１７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。鍵生成部１７は、本実施形態に係る鍵共有システム１を利用するメンバから、公開鍵および秘密鍵からなるメンバ用の個人鍵の生成を要請された場合に、これらの個人鍵を生成する。また、鍵生成部１７は、個人鍵の生成にあわせて、メンバがデジタル署名の付加およびデジタル署名の検証に利用する署名鍵を生成する。鍵生成部１７は、個人鍵および署名鍵の生成に際して、メンバ情報管理部１１から、要請のあったメンバに関するＩＤ（例えば、ユーザＩＤやメールアドレス等）を取得し、取得したＩＤとパラメータ選択部１３が選択したシステムパラメータとに基づいて、鍵の生成を行う。この鍵生成部１７は、例えば図１３に示したように、公開鍵生成部１９と、秘密鍵生成部２１と、署名鍵生成部２２と、を更に備える。
【０３７０】
公開鍵生成部１９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。公開鍵生成部１９は、メンバ情報管理部１１から取得した、要請のあったメンバに関するＩＤ（ＩＤｉ）と、システムパラメータであるハッシュ関数Ｈとを用いて、以下の式２１に基づいてメンバｉの公開鍵Ｑｉを生成する。
【０３７１】
公開鍵Ｑｉ  ＝  Ｈ１（ＩＤｉ）  ・・・（式２１）
【０３７２】
公開鍵生成部１９は、生成したメンバＵｉの公開鍵Ｑｉを、該当するメンバＵｉのメンバ情報に関連づけて、記憶部２７に格納することが可能である。
【０３７３】
秘密鍵生成部２１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。秘密鍵生成部２１は、公開鍵生成部１９が生成した公開鍵Ｑｉと、マスター秘密鍵ｓとを用いて、以下の式２３に基づいてメンバＵｉの秘密鍵Ｓｉを生成する。
【０３７４】
秘密鍵Ｓｉ  ＝  ｓＱｉ  ・・・（式２３）
【０３７５】
秘密鍵生成部２１は、生成したメンバＵｉの秘密鍵Ｓｉを、該当するメンバＵｉのメンバ情報に関連づけて、記憶部２７に格納することが可能である。
【０３７６】
なお、メンバの公開鍵は、式２１からも明らかなように、公開情報と、メンバＵｉのＩＤから生成されるものである。本実施形態に係る鍵共有システム１では、メンバＵｉのＩＤは、ユーザＩＤやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバＵｉのＩＤとを用いて、公開鍵を算出することが可能である。他方、メンバＵｉの秘密鍵は、式２３からも明らかなように、鍵生成装置１０において秘匿されるマスター秘密鍵を用いて算出される値であるため、鍵生成装置１０のみが生成可能である。
【０３７７】
署名鍵生成部２２は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。署名鍵生成部２２は、ｔビットの任意の値に対して処理を実行可能なデジタル署名技術を利用して、メンバＵｉに固有の署名生成鍵ｓｋｉおよび署名検証鍵ｖｋｉを生成する。
【０３７８】
署名鍵生成部２２は、生成したメンバＵｉの署名生成鍵ｓｋｉおよび署名検証鍵ｖｋｉを、該当するメンバＵｉのメンバ情報に関連づけて、記憶部２７に格納することが可能である。
【０３７９】
情報提供部２３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。情報提供部２３は、本実施形態に係る暗号化装置１００の要請に応じて、公開情報やメンバの公開鍵等の各種の情報をこれらの装置に提供する。情報提供部２３は、これらの情報の提供に際して、記憶部２７に格納されている各種のデータを参照することが可能である。
【０３８０】
通信制御部２５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等により実現されるものであり、鍵生成装置１０と、暗号化装置１００との間で行われる通信の制御を行う。
【０３８１】
記憶部２７は、メンバ情報管理部１１が管理しているメンバ情報や、パラメータ選択部１３により選択されたシステムパラメータや、公開情報生成部１５が生成した公開情報や、鍵生成部１７が生成した個人鍵等が格納されている。また、記憶部２７には、本実施形態に係る鍵生成装置１０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部２７は、メンバ情報管理部１１、パラメータ選択部１３、公開情報生成部１５、鍵生成部１７、情報提供部２３、通信制御部２５等が、自由に読み書きを行うことが可能である。
【０３８２】
以上、本実施形態に係る鍵生成装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０３８３】
なお、上述のような本実施形態に係る鍵生成装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０３８４】
＜暗号化装置の構成について＞
続いて、図１４を参照しながら、本実施形態に係る暗号化装置１００の構成について、詳細に説明する。図１４は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
【０３８５】
本実施形態に係る暗号化装置１００は、同時通信に参加するメンバが操作する装置である。本実施形態に係る暗号化装置１００は、例えば図１４に示したように、個人鍵取得部１０１と、グループ鍵生成部１０３と、通信制御部１１７と、記憶部１１９と、を主に備える。
【０３８６】
個人鍵取得部１０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。個人鍵取得部１０１は、通信制御部１１７を介して、鍵生成装置１０から、当該暗号化装置１００を使用するメンバに予め割り当てられた個人鍵（すなわち、公開鍵および秘密鍵）を取得する。また、個人鍵取得部１０１は、個人鍵の取得にあわせて、鍵生成装置１０から公開情報（公開されているシステムパラメータ）を取得することも可能である。個人鍵取得部１０１は、取得した個人鍵や公開情報を、例えば記憶部１１９に格納する。
【０３８７】
グループ鍵生成部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。グループ鍵生成部１０３は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、他の暗号化装置１００から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を他の暗号化装置１００とともに生成する。このグループ鍵生成部１０３は、例えば図１４に示したように、パラメータ選択部１３１と、メンバ情報生成部１３３と、セッション情報生成部１３５と、を更に備える。また、グループ鍵生成部１０３は、セッション情報取得部１３７と、メンバ検証部１３９と、セッション鍵生成部１４１と、を更に備える。
【０３８８】
パラメータ選択部１３１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。パラメータ選択部１３１は、パラメータδｉ∈ＲＺｑ＊およびパラメータｋｉ∈ＲＺｑ＊と、同時通信における一時鍵として利用されるｔビットのパラメータｒｉと、を選択する。パラメータ選択部１３１は、選択したこれらのパラメータを、メンバ情報生成部１０７およびセッション情報生成部１３５に伝送する。
【０３８９】
なお、パラメータ選択部１３１は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０３９０】
メンバ情報生成部１３３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ情報生成部１３３は、同時通信に参加するメンバＵｊ（１≦ｊ≦ｎ、ｊ≠ｉ）の公開鍵Ｑｊと、自身が保持する秘密鍵Ｓｉと、パラメータ選択部１３１により選択された一時鍵ｒｉと、公開情報と、を用いて、以下の式１２１に示すメンバ情報Ｐｉｊを生成する。
【０３９１】
【数４６】
2010047356.tif 000048
【０３９２】
ここで、上記式１２１において、Ｈ２は、公開されているハッシュ関数の一つである。
【０３９３】
また、メンバ情報生成部１０７は、生成したメンバ情報Ｐｉｊと、同時通信に参加するｎ−１人それぞれのメンバとの対応関係を明らかにするために、メンバ情報Ｐｉｊがどのような順番で並んでいるかを表す情報Ｌを、あわせて生成する。
【０３９４】
メンバ情報生成部１３３は、生成したメンバ情報Ｐｉｊと、メンバ情報とメンバとの対応関係を表す情報Ｌと、を、セッション情報生成部１３５へと伝送する。
【０３９５】
なお、メンバ情報生成部１３３は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０３９６】
セッション情報生成部１３５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報生成部１３５は、パラメータ選択部１３１から伝送された各種パラメータと、メンバ情報生成部１３３から伝送されたメンバ情報Ｐｉｊおよび対応関係に関する情報Ｌと、公開情報と、に基づいて、メンバＵｉのセッション情報Ｄｉを生成する。
【０３９７】
より詳細には、セッション情報生成部１３５は、まず、下記式１２２で表される値Ｖｉと、下記式１２３で表される値Ｗｉとを算出する。その後、セッション情報生成部１３５は、算出した値等を用いて、下記式１２４で表されるセッション情報Ｄｉを生成する。このセッション情報は、複数の暗号化装置１００間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
【０３９８】
【数４７】
2010047356.tif 000049
【０３９９】
なお、上記式１２３において、ＳＩＧｉ（ｘ）は、署名生成鍵ｓｋｉを用いて、メッセージｘに対して生成したデジタル署名を表す。
【０４００】
セッション情報生成部１３５は、パラメータ選択部１３１が選択した乱数ｋｉに対してデジタル署名を付加し、変更された乱数ｋｉが特定のメンバに対して送信されることを防止している。また、乱数ｋｉを平文のまま送信すると、メンバ以外の者も後に生成されるセッション鍵を知ることができてしまう。そのため、セッション情報生成部１３５は、ｋｉを公開情報であるハッシュ関数Ｈ４に入力したものをメッセージとし、メンバＵｉに固有の秘密鍵である署名生成鍵ｓｋｉを用いてセッション情報Ｄｉを生成する。
【０４０１】
セッション情報生成部１３５は、通信制御部１１７を介して、生成したセッション情報Ｄｉを他の暗号化装置１００へと同報送信する。また、セッション情報生成部１３５は、生成したセッション情報Ｄｉを、メンバ検証部１３９に送信する。セッション情報生成部１３５は、生成したセッション情報Ｄｉを、生成した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０４０２】
セッション情報取得部１３７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション情報取得部１３７は、通信制御部１１７を介して、他の暗号化装置１００それぞれから伝送されたセッション情報Ｄｉを取得する。
【０４０３】
セッション情報取得部１３７は、取得した全てのセッション情報Ｄｉを、メンバ検証部１３９へと伝送する。また、セッション情報取得部１３７は、取得したセッション情報Ｄｉを、取得した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０４０４】
メンバ検証部１３９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。メンバ検証部１３９は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部１３９は、自身の個人鍵と、自身が保持する暗号化装置１００で選択したパラメータと、他の暗号化装置１００から取得したセッション情報Ｄｊとを用いて、メンバの検証を行う。
【０４０５】
メンバ検証部１３９は、他の暗号化装置１００から送信されたセッション情報Ｄｊを取得すると、まず、取得したセッション情報Ｄｊに含まれる情報Ｌを参照して、セッション情報Ｄｊの中から、自身に対応するＰｊｉを検出する。続いて、下記式１２５で表される値ｋｊ’を算出する。
【０４０６】
【数４８】
2010047356.tif 000050
【０４０７】
続いて、メンバ検証部１３９は、算出したｋｊ’と、公開情報であるハッシュ関数Ｈ４とを用いて、Ｈ４（ｋｊ’）を算出する。その後、メンバ検証部１３９は、セッション情報Ｄｊに含まれるＷｊが、算出したＨ４（ｋｊ’）の正当なデジタル署名になっているか否かを、メンバＵｊの署名検証鍵ｖｋｊを用いて確認する。
【０４０８】
メンバ検証部１３９は、上述のようなメンバの検証処理を、他の暗号化装置１００から取得した全てのセッション情報Ｄｊに対して実施する。
【０４０９】
メンバ検証部１３９は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出したｋｊ’を、セッション鍵生成部１４１へと伝送する。また、メンバ検証部１３９は、メンバの検証が失敗した場合には、セッション鍵の生成処理を終了する。
【０４１０】
なお、メンバ検証部１３９は、算出した各種の値を、算出した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録しておいてもよい。
【０４１１】
セッション鍵生成部１４１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等により実現される。セッション鍵生成部１４１は、メンバ検証部１３９による同時通信の参加メンバの検証が成功した場合に、メンバ検証部１３９から伝送された複数の値ｋｊ’を用いて、同時通信にて用いられるセッション鍵Ｋを生成する。セッション鍵Ｋの生成は、以下の式１２６により行われる。
【０４１２】
【数４９】
2010047356.tif 000051
【０４１３】
このようにして生成されるセッション鍵Ｋを用いることで、複数の暗号化装置１００の間で、安全性の担保された同時通信を行うことが可能となる。
【０４１４】
なお、セッション鍵生成部１４１は、生成したセッション鍵Ｋを、生成した日時等を表す情報などと関連付けて、記憶部１１９などに履歴情報等と一緒に記録してもよい。
【０４１５】
通信制御部１１７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等から構成されており、暗号化装置１００と鍵生成装置１０や他の暗号化装置１００との間で行われる通信の制御を行う。
【０４１６】
記憶部１１９は、鍵生成装置１０により公開されている公開情報や、鍵生成装置１０から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部１１９には、本実施形態に係る暗号化装置１００が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部１１９は、個人鍵取得部１０１、グループ鍵生成部１０３および当該グループ鍵生成部１０３に含まれる各処理部、通信制御部１１７等が、自由に読み書きを行うことが可能である。
【０４１７】
以上、本実施形態に係る暗号化装置１００の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０４１８】
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０４１９】
＜鍵生成処理について＞
本実施形態に係る鍵共有システム１では、センタが保持する鍵生成装置１０が、各種のシステムパラメータ（すなわち公開情報）と、各メンバ用の個人鍵（すなわち公開鍵および秘密鍵ならびに署名生成鍵および署名検証鍵を含むユーザ鍵）との生成を行う。以下、本実施形態に係る鍵生成装置１０が行う鍵生成処理について、図１５を参照しながら、詳細に説明する。
【０４２０】
まず、鍵処理装置１０のパラメータ選択部１３は、位数ｑと、位数ｑを有する２つの群Ｇ１，Ｇ２と、双線形写像ｅと、を所定の方法に則して選択する（ステップＳ２１）。
【０４２１】
続いて、パラメータ選択部１３は、パラメータＰ∈ＲＧ１と、パラメータｓ∈ＲＺｑ＊を選択し（ステップＳ２３）、これらのパラメータを用いて、Ｐｐｕｂ＝ｓＰを計算する。このパラメータＰは、ランダムジェネレータとも呼ばれるものである。また、パラメータｓは、マスター秘密鍵として秘匿される。
【０４２２】
次に、パラメータ選択部１３は、Ｈ１、Ｈ２、Ｈ３、Ｈ４の４種類のハッシュ関数を選択する（ステップＳ２５）。それぞれのハッシュ関数は、先だって説明した特徴を有するハッシュ関数である。
【０４２３】
続いて、公開情報生成部１５は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ（公開情報）として公開する（ステップＳ２７）。公開されるシステムパラメータは、例えば、＜ｅ，Ｇ１，Ｇ２，ｑ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４＞となる。
【０４２４】
次に、ユーザＩＤ番号やメールアドレス等といったユーザを識別するためのＩＤ（ＩＤｉ）を有するメンバＵｉが、この鍵共有システム１に参加する際に、鍵生成部１７は、以下の方法で、ユーザＵｉの公開鍵Ｑｉと秘密鍵Ｓｉとを生成する（ステップＳ２９）。
【０４２５】
より詳細には、まず、公開鍵生成部１９は、メンバ情報管理部１１から取得した、要請のあったメンバに関するＩＤ（ＩＤｉ）と、システムパラメータであるハッシュ関数Ｈとを用いて、メンバＵｉの公開鍵Ｑｉを生成する。
【０４２６】
公開鍵Ｑｉ  ＝  Ｈ１（ＩＤｉ）
【０４２７】
次に、秘密鍵生成部２１は、公開鍵生成部１９が生成した公開鍵Ｑｉと、マスター秘密鍵ｓとを用いて、メンバＵｉの秘密鍵Ｓｉを生成する。
【０４２８】
秘密鍵Ｓｉ  ＝  ｓＱｉ
【０４２９】
また、署名鍵生成部２２は、用いるデジタル署名技術に則した方法で、メンバＵｉに固有の署名生成鍵ｓｋｉおよび署名検証鍵ｖｋｉを生成する（ステップＳ２９）。
【０４３０】
鍵生成装置１０は、生成したユーザＵｉの個人鍵（すなわち、公開鍵Ｑｉおよび秘密鍵Ｓｉ、ならびに、署名生成鍵ｓｋｉおよび署名検証鍵ｖｋｉ）を、該当するメンバＵｉに伝送する。また、鍵生成装置１０は、生成したメンバＵｉの公開鍵Ｑｉを、公開してもよい。
【０４３１】
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
【０４３２】
＜セッション鍵の生成処理＞
次に、図１６を参照しながら、複数の暗号化装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でｎ台からなる暗号化装置間で同時通信の実現を試みるものとする。
【０４３３】
まず、各メンバＵｉが有する各暗号化装置１００のパラメータ選択部１３１は、パラメータδｉ∈ＲＧ２と、パラメータｋｉ∈ＲＺｑ＊と、を選択する（ステップＳ３０１）。ここで、パラメータδｉは、セッション鍵の共有に用いられるパラメータである。また、各メンバＵｉが有する各暗号化装置１００のパラメータ選択部１３１は、パラメータｒｉ∈Ｒ｛０，１｝ｔを選択する（ステップＳ３０１）。このパラメータｒｉは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
【０４３４】
次に、各メンバＵｉが有する各暗号化装置１００のメンバ情報生成部１３３は、同時通信に参加する自分以外のメンバＵｊ（１≦ｊ≦ｎ，ｊ≠ｉ）に対して、メンバ情報Ｐｉｊを生成する（ステップＳ３０３）。このメンバ情報Ｐｉｊは、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報である。このメンバ情報Ｐｉｊは、上記式１２１で表される値である。
【０４３５】
続いて、各メンバＵｉが有する各暗号化装置１００のセッション情報生成部１３５は、公開されているシステムパラメータと、選択したパラメータとを用いて、上記式１２４で表されるセッション情報Ｄｉを生成する（ステップＳ３０５）。
【０４３６】
セッション情報Ｄｉの生成が終了すると、各メンバＵｉが有する各暗号化装置１００のセッション情報生成部１３５は、通信制御部１１７を介して、生成したセッション情報Ｄｉを各暗号化装置１００へ同報送信する（ステップＳ３０７）。
【０４３７】
他の暗号化装置１００から送信されたセッション情報Ｄｊ（１≦ｊ≦ｎ，ｊ≠ｉ）は、メンバＵｉが有する暗号化装置１００のセッション情報取得部１３７によって受信される。セッション情報取得部１３７は、受信したセッション情報Ｄｊを、メンバ検証部１３９に伝送する。
【０４３８】
メンバ検証部１３９は、まず、セッション情報Ｄｊ中に含まれる情報Ｌを参照し、自装置に対応するメンバ情報Ｐｊｉを検出する（ステップＳ３０９）。
【０４３９】
続いて、メンバ検証部１３９は、自身に対応するメンバ情報Ｐｊｉと、セッション情報Ｄｊと、メンバＵｊの公開鍵Ｑｊと、自身の秘密鍵Ｓｉを用いて、上記式１２５に基づきパラメータｋｊ’を算出する（ステップＳ３１１）。
【０４４０】
次に、メンバ検証部１３９は、算出したパラメータｋｊ’と、公開情報であるハッシュ関数Ｈ４とを用いて、Ｈ４（ｋｊ’）を算出する。その後、メンバ検証部１３９は、セッション情報Ｄｊに含まれるＷｊが、算出したＨ４（ｋｊ’）の正当なデジタル署名になっているか否かを、メンバＵｊの署名検証鍵ｖｋｊを用いて検証する（ステップＳ３１３）。
【０４４１】
メンバ検証部１３９は、メッセージの検証（ひいては、メンバの検証）が成功した場合には、その旨を表す結果とともに、算出したｋｊ’を、セッション鍵生成部１４１へと伝送する。また、検証に失敗した場合には、メンバ検証部１３９は、セッション鍵の生成処理を終了する。
【０４４２】
各暗号化装置１００のセッション鍵生成部１４１は、メンバ検証部１３９によるメッセージの検証が成功した場合に、メンバ検証部１３９から伝送された複数の値ｋｊ’を用いて、同時通信にて用いられるセッション鍵Ｋを生成する（ステップＳ３１５）。セッション鍵Ｋの生成は、上記式１２６により行われる。
【０４４３】
このセッション鍵Ｋがそれぞれの暗号化装置１００で算出されることにより、同時通信で用いられるセッション鍵Ｋがそれぞれの暗号化装置１００で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる（ステップＳ３１７）。
【０４４４】
このように、本実施形態に係るセッション鍵の生成方法では、各メンバが、メッセージを送信する際に、セッション鍵に作用する自装置で選択した乱数ｋｉに対してデジタル署名を付加する。これにより、パラメータｋｉを、特定のメンバに対して変更して用いることを防止している。
【０４４５】
ところで、上述の実施形態では、パラメータｋｉをハッシュ関数に入力したＨ４（ｋｉ）をメッセージとし、このメッセージに対してデジタル署名を付加している。デジタル署名方式には、メッセージ復元型と認証子付加型の２つの種類がある。認証子付加型のデジタル署名を用いる場合、任意のデータ長のメッセージに対応するために、メッセージをまずハッシュ関数に入力してから署名を生成し、検証側でもメッセージをハッシュ関数に入力した結果を用いて検証処理を行う。このように、ハッシュ関数が鍵共有システムに含まれ、メッセージをハッシュ関数に通して使うタイプのデジタル署名システムを用いる場合には、ＳＩＧｉ（Ｈ４（ｋｉ））の代わりにＳＩＧｉ（ｋｉ）を セッション情報Ｄｉの要素としてもよい。
【０４４６】
（ハードウェア構成について）
次に、図１７を参照しながら、本発明の各実施形態に係る暗号化装置１００のハードウェア構成について、詳細に説明する。図１７は、本発明の各実施形態に係る暗号化装置１００のハードウェア構成を説明するためのブロック図である。
【０４４７】
暗号化装置１００は、主に、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インターフェース９１３と、入力装置９１５と、出力装置９１７と、ストレージ装置９１９と、ドライブ９２１と、接続ポート９２３と、通信装置９２５とを備える。
【０４４８】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、暗号化装置１００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。
【０４４９】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０４５０】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、暗号化装置１００の操作に対応した携帯電話やＰＤＡ等の外部接続機器９２９であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。暗号化装置１００のユーザは、この入力装置９１５を操作することにより、暗号化装置１００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０４５１】
出力装置９１７は、例えば、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、暗号化装置１００が行った各種処理により得られた結果を出力する。具体的には、表示装置は、暗号化装置１００が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【０４５２】
ストレージ装置９１９は、暗号化装置１００の記憶部の一例として構成されたデータ格納用の装置であり、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【０４５３】
ドライブ９２１は、記録媒体用リーダライタであり、暗号化装置１００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録を書き込むことも可能である。リムーバブル記録媒体９２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、メモリースティック、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【０４５４】
接続ポート９２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ｉ．Ｌｉｎｋ等のＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等の、機器を暗号化装置１００に直接接続するためのポートである。この接続ポート９２３に外部接続機器９２９を接続することで、暗号化装置１００は、外部接続機器９２９から直接各種のデータを取得したり、外部接続機器９２９に各種のデータを提供したりする。
【０４５５】
通信装置９２５は、例えば、通信網９３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデム等である。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置９２５に接続される通信網９３１は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【０４５６】
以上、本発明の各実施形態に係る暗号化装置１００の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０４５７】
なお、本発明の各実施形態に係る鍵生成装置１０および鍵処理装置２００のハードウェア構成は、本発明の各実施形態に係る暗号化装置１００のハードウェア構成と同様の構成を有するため、詳細な説明は省略する。
【０４５８】
（まとめ）
以上説明したように、本発明の各実施形態に係る鍵共有システムでは、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。そのため、その他のメンバが、基盤技術における方式のように、Ｕｉの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、本発明の各実施形態に係る鍵共有システムでは、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
【０４５９】
また、本発明の第１の実施形態に係る鍵共有システムでは、検証パラメータｚを算出する際に、全てのセッション情報Ｄｉ（ｉ＝１，・・・，ｎ）について、セッション情報の一部であるＸｊについての和をとる。これにより、セッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を大きく削減することが可能となり、セッション鍵の生成に要する計算負荷を抑制することが可能となる。
【０４６０】
また、グループ鍵共有技術において、メンバ全員が正しく鍵を共有できたかを確認する技術は、Ｋｅｙ  Ｃｏｎｆｉｒｍａｔｉｏｎという概念として知られている。この概念を実現するための具体的方法としては、グループ鍵を共有するためのプロトコルに加え、各メンバが導出したグループ鍵が正しいことを確認することが求められる。この場合、各メンバがグループ鍵に基づいて計算する値を送信し、他のメンバの値が正しいことを確認する方法が考えられる。しかしながら、上述の方法では、グループ鍵の確認のための余計なメッセージ送受信が必要になり、１ラウンドのグループ鍵共有方式では、実現できない。しかしながら、本発明の第２の実施形態および第３の実施形態では、セッション情報中に、メンバ固有の秘密鍵に依存する値を含有させることで、１ラウンドのグループ鍵共有方式でもＫｅｙ  Ｃｏｎｆｉｒｍａｔｉｏｎを実現することができる。
【０４６１】
また、Ｋｅｙ  Ｃｏｎｆｉｒｍａｔｉｏｎと関連する概念として、ｃｏｍｐｌｅｔｅｎｅｓｓという概念がある。この概念は、「全参加者がグループ鍵の作成に貢献した場合に限り全参加者が同じ鍵を計算可能である」という概念である。しかしながら、定数ラウンド（特に、１ラウンド）でこのｃｏｍｐｌｅｔｅｎｅｓｓを満たす方式は、存在していなかった。しかしながら、本発明の第１の実施形態に係る方式では、上述の検証処理により、全メンバが同じパラメータｒを利用していることが確認できる。また、グループ鍵は全て同報送信により送信されるため、あるユーザが別のユーザと異なる値を与えられることはない。このため、この方式は、定数ラウンド方式であるにも関わらず、ｃｏｍｐｌｅｔｅｎｅｓｓを満たすものとなっている。
【０４６２】
また、Ｋｅｙ  Ｃｏｎｆｉｒｍａｔｉｏｎについては，全メンバが同じグループ鍵を共有可能であることは言えるものの、上述の方式では、各メンバが実際にグループ鍵を共有したかどうかの確認は行っていない。よって、「弱めたＫｅｙ  Ｃｏｎｆｉｒｍａｔｉｏｎ」、すなわち、「各メンバが同じグループ鍵を導出するための情報を得られている」、という概念を考えると、上述の方式はこの概念を満たすものとなっている。
【０４６３】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０４６４】
例えば、本発明の第２の実施形態および第３の実施形態において、ユーザに固有の秘密鍵を用いて算出される値の一例としてデジタル署名を例に挙げたが、かかる例に限定されるわけではない。デジタル署名以外に、ユーザに固有の秘密鍵や公開パラメータ等を利用して算出される値そのものを利用することも可能である。
【図１】
2010047356.tif 000068
【図２】
2010047356.tif 000069
【図３】
2010047356.tif 000070
【図４】
2010047356.tif 000071
【図５】
2010047356.tif 000072
【図６】
2010047356.tif 000073
【図７】
2010047356.tif 000074
【図８】
2010047356.tif 000075
【図９】
2010047356.tif 000076
【図１０】
2010047356.tif 000077
【図１１】
2010047356.tif 000078
【図１２】
2010047356.tif 000079
【図１３】
2010047356.tif 000080
【図１４】
2010047356.tif 000081
【図１５】
2010047356.tif 000082
【図１６】
2010047356.tif 000083
【図１７】
2010047356.tif 000084
【図１８】
2010047356.tif 000085
【図１９】
2010047356.tif 000086
【図２０】
2010047356.tif 000087
【図２１】
2010047356.tif 000088
【図２２】
2010047356.tif 000089
【図２３】
2010047356.tif 000090
【国際調査報告】
2010047356.tif 000091
2010047356.tif 000092
2010047356.tif 000093
2010047356.tif 000094