(57)【要約】【課題】  利用者に固有な所定の文字列を公開鍵とすることができる任意の暗号方式を用いて、利用者の秘密鍵を生成するセンタを階層化する鍵生成システム、鍵生成サーバ及び鍵生成方法を提供する。【解決手段】  本発明に係るセンタサーバ１００は、IBE（Identity Based Encryption）の鍵生成アルゴリズムに基づいて、マスタ鍵を選択するとともにマスタ鍵に対応する公開情報を生成する公開情報生成部１０７と、(u,v,w)-Cover Free Family<L,F>に含まれる所定の部分集合と、秘密鍵を生成するサブセンタサーバ２００を識別するセンタ識別文字列とを対応付け、当該所定の部分集合に含まれるそれぞれの要素の値を用い、サブセンタサーバ２００が秘密鍵の生成に用いるサブマスタ鍵を生成するサブマスタ鍵生成部１０５とを備える。【選択図】  図２
2005210639.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の鍵生成サーバと第２の鍵生成サーバとを具備し、利用者に固有な所定の文字列である利用者固有文字列を前記利用者の公開鍵とする所定の暗号方式に基づいて、前記公開鍵と対になる秘密鍵を生成する鍵生成システムであって、
前記第１の鍵生成サーバは、
所定数の要素の一部から構成される部分集合の集合であって、閾値以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合を保持する集合情報保持部と、
前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵を選択するとともに前記マスタ鍵に対応する公開情報を生成する公開情報生成部と、
前記カバーフリー集合に含まれる所定の部分集合と、前記第２の鍵生成サーバを識別するセンタ識別文字列とを対応付け、前記所定の部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵を生成するサブマスタ鍵生成部と
を備え、
前記第２の鍵生成サーバは、
前記サブマスタ鍵生成部によって生成されたそれぞれの前記サブマスタ鍵、前記センタ識別文字列、及び前記利用者固有文字列を用い、前記鍵生成アルゴリズムに基づいて前記秘密鍵を生成する秘密鍵生成部を備えることを特徴とする鍵生成システム。
【請求項２】
利用者に固有な所定の文字列である利用者固有文字列を前記利用者の公開鍵とする所定の暗号方式に基づいて、前記公開鍵と対になる秘密鍵の生成に用いられる鍵生成サーバであって、
所定数の要素の一部から構成される部分集合の集合であって、閾値以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合を保持する集合情報保持部と、
前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵を選択するとともに前記マスタ鍵に対応する公開情報を生成する公開情報生成部と、
前記カバーフリー集合に含まれる所定の部分集合と、前記秘密鍵を生成する第２の鍵生成サーバを識別するセンタ識別文字列とを対応付け、前記所定の部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵を生成するサブマスタ鍵生成部と
を備えることを特徴とする鍵生成サーバ。
【請求項３】
前記サブマスタ鍵生成部は、前記所定の部分集合に含まれるそれぞれの要素の値を所定のハッシュ関数に入力されることによって得られるハッシュ値を前記サブマスタ鍵として生成することを特徴とする請求項２に記載の鍵生成サーバ。
【請求項４】
少なくとも第１の鍵生成サーバと第２の鍵生成サーバとを用いて、利用者に固有な所定の文字列である利用者固有文字列を前記利用者の公開鍵とする所定の暗号方式に基づいて、前記公開鍵と対になる秘密鍵を生成する鍵生成方法であって、
前記第１の鍵生成サーバは、所定数の要素の一部から構成される部分集合の集合であって、閾値以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合の情報を保持しており、
前記第１の鍵生成サーバが、前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵を選択するとともに前記マスタ鍵に対応する公開情報を生成するステップと、
前記第１の鍵生成サーバが、前記カバーフリー集合に含まれる所定の部分集合と、前記第２の鍵生成サーバを識別するセンタ識別文字列とを対応付け、前記所定の部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵を生成するステップと、
前記第２の鍵生成サーバが、前記サブマスタ鍵生成部によって生成されたそれぞれの前記サブマスタ鍵、前記センタ識別文字列、及び前記利用者固有文字列を用い、前記鍵生成アルゴリズムに基づいて前記秘密鍵を生成するステップと
を備えることを特徴とする鍵生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者に固有な所定の文字列である利用者固有文字列を利用者の公開鍵とする所定の暗号方式、いわゆるIBEに基づいて、当該公開鍵と対になる秘密鍵の生成を階層化する鍵生成システム、鍵生成サーバ及び鍵生成方法に関する。
【背景技術】
【０００２】
従来、電子メールアドレスなど、利用者に固有な所定の文字列、すなわち、利用者に固有な識別子（ID）を公開鍵として用いることができる暗号方式、いわゆるIBE（Identity-Based Encryption）が知られている（例えば、非特許文献１、２）。すなわち、IBEは、平文の暗号化に用いられる公開鍵（暗号鍵）として、任意の文字列を選択することができる特徴を有している。
【０００３】
例えば、非特許文献１に係るBoneh, Franklin方式のIBEでは、まず、秘密鍵（復号鍵）の生成及び管理を行うセンタが、所定の利用者の集団内において共通に用いられる秘密情報、いわゆるマスタ鍵（s）を生成し、（s）に対応する公開情報（p）を公開する。次に、利用者の電子メールアドレスなど、任意の文宇列（char）と（s）を作用させ、当該文字列に対する復号鍵（dchar）を生成する（便宜上、このような復号鍵dcharを「charに基づく復号鍵」と呼ぶ）。（char）及び（p）を用いて暗号化された暗号文は、（dchar）により復号可能となる。例えば、（char）として、（char）に対応する復号鍵の保持者となる利用者、つまり暗号文の受信者の電子メールアドレスが利用される場合、平文（m）の送信者は、当該利用者の電子メールアドレス及び（p）を用いて、平文（m）の暗号文（c）を生成することができる。
【０００４】
より具体的には、センタは、p0=2mod3及びp0=6q-1となるような素数p0を選択する。ここで、qはq>3となる素数とする。また、Eをy2=x3+1で表される有限体GF(p)上の楕円曲線とする。さらに、センタは位数がqとなるようなE/GF(p)の元Pを選択し、集合(1,2,...,q-1)よりランダムに選んだマスタ鍵sを用いてPpub=sPを計算し、Ppub（公開情報）を公開する。文字列char（例えば、利用者の電子メールアドレス）に対し、センタはcharとマスタ鍵sとを作用させ、秘密鍵dchar=sQiを生成し、その利用者に与える。ここで、Qiはcharに一意に対応する、Pによって構成される群の元とする。dcharの保持者に対し、秘密に平文mを送信する際は、送信者は、以下により、暗号文を生成する。
【０００５】
C:={rP,m(+)H(e(Qi,Ppub)r)}
ここで、H(・)は出力サイズがmのサイズと等しくなるようなランダム関数とし、e(・,・)は次の性質を満足するような写像である。Pによって生成される群における任意の２つの元P1,P2及び任意の整数a1,a2に関し、e（a1P1,a2P2）=e(P1,P2)a1a2が成り立つ。このような写像は、例えば、（変形）Weil pairing等が知られている。
【０００６】
また、rは(1,2,...,q-1)よりランダムに選んだ値である。また、(+)は排他的論理和を表すものとする。dcharの保持者は、次のようにCを復号する。
【０００７】
｛m(+)H(e(Qi,Ppub)r)｝(+)H｛e(dchar,rP)｝=m
このようなIBEの特徴により、従来の公開鍵暗号方式（例えば、RSA方式）において必要となる、センタ（センタサーバ）からの公開鍵の取得手続や、公開鍵の正当性の検証処理を省くことが可能となるため、簡便な暗号システムを構成することができる。
【０００８】
上述したように、IBEは、従来の公開鍵暗号方式と比較して、有用な暗号方式であるものの、センタでは、すべての利用者の復号鍵を生成しなくてならないため、当該センタにおける復号鍵の生成に伴う負荷が問題となる。
【０００９】
そこで、かかる負荷を軽減するため、利用者の復号鍵を生成するセンタを階層化する、階層化IBE（Hierarchical IBE、以下、HIBEという）が提案されている（例えば、非特許文献３）。
【００１０】
HIBEでは、最上位のセンタ（ルートセンタ）は、マスタ鍵を用いて、任意の文字列（例えば、“char1”）に対応するサブマスタ鍵を生成し、“char1”が識別子として関連付けられた下位のセンタ（サブセンタ）にサブマスタ鍵を渡す。
【００１１】
当該サブセンタは、ルートセンタから渡されたサブマスタ鍵を用いて、利用者と対応付けられる任意の文字列（例えば、“char2”）に対し、公開鍵“char1,char2”に対応した復号鍵を生成することができる。また、当該サブマスタ鍵が漏洩したとしても、他のサブセンタのサブマスタ鍵を導出することは不可能であり、当該サブセンタ以外のサブセンタの安全性は保たれる。
【非特許文献１】D. Boneh and M. Franklin, “Identity Based Encryption from the Weil Pairing”, Proc. of CRYPTO’01, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp. 213-229, 2001
【非特許文献２】C. Cocks, “An Identity Based Encryption Scheme Based on Quadratic Residues”, Proc. of IMA Int. Conf. 2001, Coding and Cryptography, LNCS 2260, Springer-Verlag, pp. 360-363, 2001.
【非特許文献３】C. Gentry and A. Silverberg, “Hierarchical Identity-Based Cryptography”, Proc. of Asiacrypt ’02, Lecture Notes in Computer Science, Vol. 2501, Springer-Verlag, pp. 548-566, 2002
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、これまでに知られているHIBEは、非特許文献１に示したBoneh, Franklin方式を拡張したもののみである。すなわち、従来のHIBEは、上述した（変形）Weil pairing等の写像を用いて暗号化通信の安全性を確保することに依拠しており、他の数学的問題（例えば、素因数分解）に基づいて暗号化通信の安全性を確保しつつ、HIBEを構成することができないといった問題があった。
【００１３】
つまり、Boneh, Franklin方式だけではなく、他のIBE、例えば、上述した非特許文献２に示されているCock氏提案のIBE（以下、“Coc01”という）に基づいて、HIBEを構成する方法が求められていた。
【００１４】
そこで、本発明は、以上の点に鑑みてなされたもので、利用者に固有な所定の文字列を公開鍵とすることができる任意の暗号方式を用いて、利用者の秘密鍵を生成するセンタを階層化する鍵生成システム、鍵生成サーバ及び鍵生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決するため、本発明は、次のような特徴を有している。まず、本発明の第１の特徴は、少なくとも第１の鍵生成サーバ（センタサーバ１００）と第２の鍵生成サーバ（サブセンタサーバ２００）とを具備し、利用者（端末１０）に固有な所定の文字列である利用者固有文字列（例えば、“char2”）を前記利用者の公開鍵とする所定の暗号方式（例えば、Boneh, Franklin方式）に基づいて、前記公開鍵と対になる秘密鍵を生成する鍵生成システムであって、前記第１の鍵生成サーバが、所定数の要素（例えば、1〜uのu個の要素から構成される集合（Ｌ））の一部から構成される部分集合（F1,…,Fv）の集合（F）であって、閾値（w）以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合（(u,v,w)-Cover Free Family<L,F>）を保持する集合情報保持部（ＣＦＦ生成格納部１０３）と、前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵（s）を選択するとともに前記マスタ鍵に対応する公開情報（p1,...,pu）を生成する公開情報生成部と、前記カバーフリー集合に含まれる所定の部分集合と、前記第２の鍵生成サーバを識別するセンタ識別文字列（例えば、“char1”）とを対応付け、前記部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵（｛sj|j∈Fi｝）を生成するサブマスタ鍵生成部（サブマスタ鍵生成部１０５）とを備え、前記第２の鍵生成サーバが、前記サブマスタ鍵生成部によって生成されたそれぞれの前記サブマスタ鍵、前記センタ識別文字列（例えば、“char1”）、及び前記利用者固有文字列（例えば、“char2”）とを用い、前記鍵生成アルゴリズムに基づいて、前記秘密鍵を生成する秘密鍵生成部（復号鍵生成部２０５）を備えることを要旨とする。
【００１６】
かかる特徴によれば、第１の鍵生成サーバが、(u,v,w)-Cover Free Family<L,F>に含まれる部分集合（Subset）の要素（元、Element）の値に基づいて、HIBEを構成するための複数のサブマスタ鍵を生成する。さらに、第２の鍵生成サーバが、それぞれのサブマスタ鍵、センタ識別文字列（例えば、“char1”）、及び前記利用者固有文字列（例えば、“char2”）を用い、IBEの鍵生成アルゴリズムに基づいて秘密鍵を生成する。
【００１７】
このため、利用者に固有な所定の文字列を公開鍵とすることができる任意の暗号方式を用いて、利用者の秘密鍵を生成するセンタを階層化することができる。
【００１８】
さらに、かかる特徴によれば、Boneh, Franklin方式だけではなく、他のIBE、例えば、“Coc01”方式に基づいて、HIBEを構成することができる。
【００１９】
また、かかる特徴によれば、サブマスタ鍵が、(u,v,w)-Cover Free Family<L,F>に含まれる部分集合（F1,…,Fv）に基づいて生成されるため、Cover Free Familyの特性によって、他のサブセンタサーバ（第２の鍵生成サーバ）において用いられているサブマスタ鍵の情報の漏洩が防止され、暗号化通信の安全性を確保することができる。
【００２０】
本発明の第２の特徴は、利用者に固有な所定の文字列である利用者固有文字列を前記利用者の公開鍵とする所定の暗号方式に基づいて、前記公開鍵と対になる秘密鍵の生成に用いられる鍵生成サーバであって、所定数の要素の一部から構成される部分集合の集合であって、閾値以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合を保持する集合情報保持部と、前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵を選択するとともに前記マスタ鍵に対応する公開情報を生成する公開情報生成部と、前記カバーフリー集合に含まれる所定の部分集合と、前記秘密鍵を生成する第２の鍵生成サーバを識別するセンタ識別文字列とを対応付け、前記所定の部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵を生成するサブマスタ鍵生成部とを備えることを要旨とする。
【００２１】
また、本発明の第２の特徴において、前記サブマスタ鍵生成部は、前記所定の部分集合に含まれるそれぞれの要素の値を所定のハッシュ関数に入力されることによって得られるハッシュ値を前記サブマスタ鍵として生成することが好ましい。
【００２２】
本発明の第３の特徴は、少なくとも第１の鍵生成サーバと第２の鍵生成サーバとを用いて、利用者に固有な所定の文字列である利用者固有文字列を前記利用者の公開鍵とする所定の暗号方式に基づいて、前記公開鍵と対になる秘密鍵を生成する鍵生成方法であって、前記第１の鍵生成サーバが、所定数の要素の一部から構成される部分集合の集合であって、閾値以下の前記部分集合に含まれる要素の値に基づいて、他の何れかの前記部分集合に含まれる要素の値を特定することができないカバーフリー集合を保持しており、前記第１の鍵生成サーバが、前記所定の暗号方式の鍵生成アルゴリズムに基づいて、前記所定の暗号方式のマスタ鍵を選択するとともに前記マスタ鍵に対応する公開情報を生成するステップと、前記第１の鍵生成サーバが、前記カバーフリー集合に含まれる所定の部分集合と、前記第２の鍵生成サーバを識別するセンタ識別文字列とを対応付け、前記所定の部分集合に含まれるそれぞれの要素の値を用い、前記第２の鍵生成サーバが前記秘密鍵の生成に用いるサブマスタ鍵を生成するステップと、前記第２の鍵生成サーバが、前記サブマスタ鍵生成部によって生成されたそれぞれの前記サブマスタ鍵、前記センタ識別文字列、及び前記利用者固有文字列を用い、前記鍵生成アルゴリズムに基づいて前記秘密鍵を生成するステップとを備えることを要旨とする。
【発明の効果】
【００２３】
本発明によれば、利用者に固有な所定の文字列を公開鍵とすることができる任意の暗号方式を用いて、利用者の秘密鍵を生成するセンタを階層化する鍵生成システム、鍵生成サーバ及び鍵生成方法を提供することができる。
【発明を実施するための最良の形態】
【００２４】
（鍵生成システムを含むネットワークの構成）
以下、本発明の実施形態について説明する。図１は、本実施形態に係る鍵生成システムを含むネットワークの構成を示している。
【００２５】
同図に示すように、インターネットなどから構成される通信ネットワーク１には、利用者の秘密鍵（復号鍵）を生成するために用いられるマスタ鍵（s）、サブマスタ鍵（｛sj|j∈Fi｝）、及び当該利用者と通信を行う他の利用者に公開される公開情報（p1,...,pu）の生成などを行うセンタサーバ１００（第１の鍵生成サーバ）が接続されている。
【００２６】
また、通信ネットワーク１には、センタサーバ１００によって生成されたサブマスタ鍵と、利用者に固有な所定の文字列とを用い、IBE（Identity-Based Encryption、例えば、Boneh, Franklin方式）の鍵生成アルゴリズムに基づいて、利用者（例えば、端末１０）の秘密鍵を生成するサブセンタサーバ２００（第２の鍵生成サーバ）が接続されている。なお、本実施形態では、IBEとしてBoneh, Franklin方式が用いられているが、他のIBE（例えば、“Coc01”）を用いてもよい。
【００２７】
なお、本実施形態では、サブセンタサーバ２００を識別する所定の文字列（センタ識文字列）として、“char1”が関連付けられている。また、図１では、サブセンタサーバ２００のみが示されているが、複数のサブセンタサーバを用いて本実施形態に係る鍵生成システムを構成することができる。さらに、本実施形態では、利用者の秘密鍵（復号鍵）を生成するセンタを２階層（センタサーバ１００及びサブセンタサーバ２００）としているが、当該センタの階層は、２階層以外であってもよい。
【００２８】
また、通信ネットワーク１には、端末２０ａ，２０ｂから受信した暗号文（c）を復号して平文（m）を取得する端末１０が接続されている。なお、本実施形態では、端末１０（の利用者）を識別する所定の文字列（利用者固有文字列）として、“char2”が割り当てられている。また、当該文字列としては、例えば、端末１０の利用者の電子メールアドレスを用いることができる。
【００２９】
さらに、通信ネットワーク１には、利用者の公開情報（例えば、p1,p2,p3）と、所定の文字列（例えば、“char1.char2”）とを用い、IBEの暗号化アルゴリズムに基づいて平文（m）を暗号化して、暗号文（c）を送信する端末２０ａ，２０ｂが接続されている。
【００３０】
また、通信ネットワーク１には、センタサーバ１００によって生成された公開情報（p1,...,pu）を公開する公開情報サーバ３００が接続されている。
【００３１】
（鍵生成システムの論理ブロック構成）
次に、図２を参照して、上述した通信ネットワーク１に接続されている各装置の論理ブロック構成について説明する。
【００３２】
同図に示すように、センタサーバ１００は、通信部１０１と、ＣＦＦ生成格納部１０３と、サブマスタ鍵生成部１０５と、公開情報生成部１０７と、マスタ鍵選択部１０９と、ハッシュ関数生成部１１１を備えている。
【００３３】
通信部１０１は、ＣＦＦ生成格納部１０３と、サブマスタ鍵生成部１０５と、公開情報生成部１０７と、マスタ鍵選択部１０９と、ハッシュ関数生成部１１１とを通信可能に接続するものである。また、通信部１０１は、サブマスタ鍵生成部１０５によって選択されたサブマスタ鍵の情報や、公開情報生成部１０７によって生成された公開情報を通信ネットワーク１に中継するものである。
【００３４】
ＣＦＦ生成格納部１０３は、所定数の要素（例えば、1〜uのu個の要素から構成される集合（Ｌ））の一部から構成される部分集合（F1,…,Fv）の集合（F）であって、閾値以下（w）の部分集合に含まれる要素の値に基づいて、他の何れかの部分集合に含まれる要素の値を特定することができないカバーフリー集合の情報を保持するものであり、本実施形態では、集合情報保持部を構成する。
【００３５】
具体的には、ＣＦＦ生成格納部１０３は、所定数の要素（1〜uのu個）から構成される集合（Ｌ）の一部から構成される部分集合（F1,…,Fv）の集合（F）であって、閾値以下の部分集合（例えば、F1とF2）に含まれる要素の値に基づいて、他の何れかの部分集合（例えば、F3）に含まれる要素の値を特定することができない集合として、いわゆるCover Free Familyを生成する。
【００３６】
より具体的には、ＣＦＦ生成格納部１０３は、“Families of finite sets in which no sets is covered by the union of r others”（P. Erdos, P. Frankl and Z. Furedi, Israel Journal of Math., 51, pp.79-89, 1985）に記載されているようなCover Free Familyを生成する。
【００３７】
ここで、図５（ａ）は、ＣＦＦ生成格納部１０３によって生成されるCover Free Familyの概略の構成を示す図である。同図（ａ）に示すように、集合Ｌは、｛1,...,u｝によって構成される。また、｛1,...,u｝の一部から、部分集合（Subset）である（F1,…,Fv）が構成される。このようなCover Free Familyは、w個の部分集合Ｆの情報が漏洩した場合にも、特定の部分集合（例えば、F1）に含まれる要素（元、Element）の値を突き止めることができないといった特徴を有している。このような集合Ｌを以下、(u,v,w)-Cover Free Family<L,F>と表記する。
【００３８】
ＣＦＦ生成格納部１０３は、生成した(u,v,w)-Cover Free Family<L,F>の情報を格納することができる。なお、本実施形態では、ＣＦＦ生成格納部１０３が(u,v,w)-Cover Free Family<L,F>を生成しているが、外部において予め生成された(u,v,w)-Cover Free Family<L,F>をＣＦＦ生成格納部１０３に格納する形態でもよい。
【００３９】
マスタ鍵選択部１０９は、(u,v,w)-Cover Free Family<L,F>に含まれる要素｛1,...,u｝の数に基づいて、IBEのマスタ鍵を選択するものである。
【００４０】
具体的には、マスタ鍵選択部１０９は、(u,v,w)-Cover Free Family<L,F>に含まれる要素｛1,...,u｝の数とIBEの鍵生成アルゴリズムに基づいて、IBEのマスタ鍵とする値を所定の集合の中から、例えば、当該要素の数（s1,...,su）分、ランダムに選択する。
【００４１】
公開情報生成部１０７は、マスタ鍵選択部１０９によって選択されたマスタ鍵（s1,...,su）と対応する公開情報（p1,...,pu）をIBEの鍵生成アルゴリズムに基づいて生成するものである。
【００４２】
具体的には、公開情報生成部１０７は、マスタ鍵（s1,...,su）のそれぞれを用い、各マスタ鍵に対応する公開情報（p1,...,pu）をIBEの鍵生成アルゴリズムに基づいて生成する。また、公開情報生成部１０７は、通信ネットワーク１を介して、生成した公開情報（p1,...,pu）を公開情報サーバ３００に送信する。
【００４３】
ハッシュ関数生成部１１１は、サブマスタ鍵生成部１０５において用いられるハッシュ関数（H）を生成するものである。
【００４４】
サブマスタ鍵生成部１０５は、ＣＦＦ生成格納部１０３によって生成された(u,v,w)-Cover Free Family<L,F>に含まれる所定の部分集合と、サブセンタサーバ２００を識別するセンタ識別文字列（“char1”）とを対応付け、当該部分集合（以下、Fiという）に含まれるそれぞれの要素を用い、サブセンタサーバ２００が利用者の秘密鍵の生成に用いるサブマスタ鍵を生成するものである。
【００４５】
例えば、サブマスタ鍵生成部１０５は、Fiと“char1”（具体的には、ハッシュ関数（H）を用いて生成された“char1”のハッシュ値）とを対応付ける。
【００４６】
さらに、サブマスタ鍵生成部１０５は、Fiに含まれる要素（例えば、F1に含まれる1,2,3とする。なお、“1,2,3“は便宜上の数字であり、実際の要素の値を示すものとは限らない）の値をハッシュ関数生成部１１１によって生成されたハッシュ関数（H）に入力することによって得られたハッシュ値を、サブマスタ鍵（以下、｛sj|j∈Fi｝と表記する）として生成する。なお、ここでは、説明の便宜上、F1に含まれる要素“1,2,3“に基づいて、３つのサブマスタ鍵（ss1,ss2,ss3）が生成されたものとして、以下、適宜説明する。
【００４７】
サブセンタサーバ２００は、通信部２０１と、サブマスタ鍵格納部２０３と、復号鍵生成部２０５とを備えている。
【００４８】
通信部２０１は、サブマスタ鍵格納部２０３と、復号鍵生成部２０５とを通信可能に接続するものである。また、通信部２０１は、利用者の秘密鍵の情報を通信ネットワーク１に中継したり、センタサーバ１００（サブマスタ鍵生成部１０５）によって選択されたサブマスタ鍵を通信ネットワーク１から中継したりするものである。
【００４９】
サブマスタ鍵格納部２０３は、センタサーバ１００（サブマスタ鍵生成部１０５）によって生成されたサブマスタ鍵（｛sj|j∈Fi｝）を、通信ネットワーク１を介して受信するとともに、受信した当該サブマスタ鍵を格納するものである。
【００５０】
復号鍵生成部２０５は、センタサーバ１００（サブマスタ鍵生成部１０５）によって生成されたそれぞれのサブマスタ鍵（ss1,ss2,ss3）と、利用者固有文字列（“char2”）とを用い、IBEの鍵生成アルゴリズムに基づいて利用者（端末１０）の秘密鍵（復号鍵）を生成するものであり、本実施形態では、秘密鍵生成部を構成する。
【００５１】
具体的には、復号鍵生成部２０５は、サブマスタ鍵生成部１０５によって生成されたそれぞれのサブマスタ鍵（ss1,ss2,ss3）と、利用者固有文字列（“char2”）とを用い、IBEの鍵生成アルゴリズムに基づいて、複数の復号鍵（例えば、d1,d2,d3）を、利用者（端末１０）の復号鍵として生成する。
【００５２】
また、復号鍵生成部２０５は、端末１０が属するサブセンタ（サブセンタサーバ２００）を識別するセンタ識別文字列（“char1”）と、端末１０の利用者に固有な所定の文字列（“char2”）とを用いて、すなわち、“char1.char2”を用いて、利用者の復号鍵を生成してもよい。
【００５３】
公開情報サーバ３００は、公開情報記憶部３０１を備えている。公開情報記憶部３０１は、センタサーバ１００（公開情報生成部１０７）によって生成された公開情報（p1,...,pu）を、通信ネットワーク１を介して、端末１０及び端末２０ａ，２０ｂに公開するものである。
【００５４】
端末２０ａ，２０ｂは、通信部２１と、公開情報取得部２３と、暗号化部２５と、乱数選択部２７とをそれぞれ備えている。
【００５５】
通信部２１は、公開情報取得部２３と、暗号化部２５と、乱数選択部２７と通信可能に接続されており、公開情報（p1,...,pu）を通信ネットワーク１から中継したり、端末１０に送信する暗号文（c）などを通信ネットワーク１に中継したりするものである。
【００５６】
公開情報取得部２３は、公開情報サーバ３００から、通信ネットワーク１を介して公開情報（p1,...,pu）を取得するものである。
【００５７】
暗号化部２５は、サブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）に対応した公開情報（例えば、p1,p2,p3）、端末１０が属するサブセンタ（サブセンタサーバ２００）を識別するために関連付けられた所定の文字列（“char1”）、及び端末１０の利用者に固有な所定の文字列（“char2”）を用い、IBEの暗号化アルゴリズムに基づいて端末１０に送信する平文（m）を暗号化するものである。
【００５８】
また、暗号化部２５は、通信ネットワーク１を介して、平文（m）が暗号化された暗号文（c）を端末１０に送信する。
【００５９】
乱数選択部２７は、暗号化部２５が、平文（m）を暗号化する際に付加される乱数（ri）を選択するものである。
【００６０】
具体的には、暗号化部２５は、乱数選択部２７によって選択された乱数（ri）を用いて、複数に分割された平文（mi）及び乱数（ri）を所定のハッシュ関数に入力することによって得られるハッシュ値（例えば、SHA-1に入力することによって得られるハッシュ値）を取得する。さらに、暗号化部２５は、当該ハッシュ値を確率的暗号化のための乱数として用いて、平文（mi）と、乱数（ri）とが含まれる（mi‖ri）を暗号化して、複数の暗号文（ci）を作成する。なお、具体的な暗号化方法及び復号方法については、後述する。
【００６１】
端末１０は、通信部１１と、復号鍵格納部１３と、復号部１５と、暗号化部１７ａと、判定部１７ｂと、公開情報取得部１９とを備えている。
【００６２】
通信部１１は、復号鍵格納部１３と、復号部１５と、暗号化部１７ａと、判定部１７ｂと、公開情報取得部１９と通信可能に接続するものである。また、通信部１１は、復号鍵（例えば、d1,d2,d3）が含まれた情報などを通信ネットワーク１から中継するものである。
【００６３】
公開情報取得部１９は、公開情報サーバ３００から、通信ネットワーク１を介して、公開情報（p1,...,pu）を取得するものである。
【００６４】
復号鍵格納部１３は、サブセンタサーバ２００（復号鍵生成部２０５）において生成された復号鍵（例えば、d1,d2,d3）を格納するものである。
【００６５】
復号部１５は、復号鍵格納部１３に格納されている復号鍵（例えば、d1,d2,d3）を用いて、端末２０ａまたは２０ｂによって送信された暗号文（c）を平文（m）に復号するものである。
【００６６】
具体的には、復号部１５は、復号鍵格納部１３に格納される複数の復号鍵（d1,d2,d3）と、当該復号鍵に対応する公開情報（p1,p2,p3）とを用い、IBEの復号アルゴリズムに基づいて、暗号文（c）を平文（m）に復号する。
【００６７】
より具体的には、復号部１５は、複数の暗号文（ci）をそれぞれの復号鍵と公開情報を用いて復号し、乱数を含む複数の平文（mi‖ri）に復号する。
【００６８】
暗号化部１７ａは、IBEの暗号化アルゴリズムを用いて、復号部１５によって復号された、平文（mi）と乱数（ri）とが含まれる平文（mi‖ri）を暗号化して、再暗号化文（ci’）を作成するものである。
【００６９】
判定部１７ｂは、暗号化部１７ａによって暗号化された再暗号化文（ci’）と、端末２０ａ，２０ｂから受信した暗号文（ci）とが一致するか否かを判定するものである。
【００７０】
なお、復号部１５は、判定部１７ｂによって、すべての再暗号文（ci’）と暗号文（ci）とが一致すると判定された場合、平文（m）を出力する。
【００７１】
（鍵生成システムに係る動作）
次に、上述した鍵生成システムに係る動作について説明する。
【００７２】
まず、上述した鍵生成システム（センタサーバ１００及びサブセンタサーバ２００）による復号鍵（秘密鍵）の生成の動作について説明する。
【００７３】
図３に示すように、ステップＳ１において、センタサーバ１００は、図５（ａ）に示したような(u,v,w)-Cover Free Family<L,F>を生成する。具体的には、(u,v,w)-Cover Free Family<L,F>は、上述したように、w個の部分集合Ｆの情報が漏洩した場合にも、特定の部分集合（例えば、F1）に含まれる要素（元、Element）の値を突き止めることができないといった特徴を有している。
【００７４】
ステップＳ２において、センタサーバ１００は、IBE（例えば、Boneh, Franklin方式）の鍵生成アルゴリズムに基づいて、所定の集合から、(u,v,w)-Cover Free Family<L,F>の要素の数に応じたマスタ鍵（s1,...,su）を選択する。
【００７５】
ステップＳ３において、センタサーバ１００は、マスタ鍵（s1,...,su）を用い、IBEの鍵生成アルゴリズムに基づいて、各マスタ鍵に対応する公開情報（p1,...,pu）を生成する。さらに、センタサーバ１００は、生成した公開情報（p1,...,pu）を公開情報サーバ３００に通知する。なお、公開情報サーバ３００に通知された公開情報（p）は、端末１０及び端末２０ａ，２０ｂが利用できるように公開される。
【００７６】
また、図５（ｂ）に示すように、センタサーバ１００は、ハッシュ関数（H）を生成する。
【００７７】
次に、図３に示すように、ステップＳ４において、センタサーバ１００は、サブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）を生成し、生成したサブマスタ鍵をサブセンタサーバ２００に送信する。
【００７８】
具体的には、図５（ｃ）に示すように、センタサーバ１００は、部分集合F1と“char1”（具体的には、センタサーバ１００によって生成されたハッシュ関数に入力して生成された“char1”のハッシュ値）とを対応付ける。
【００７９】
さらに、センタサーバ１００は、F1に含まれる要素（1,2,3とする。なお、“1,2,3“は便宜上の数字であり、実際の要素の値を示すものとは限らない）の値をハッシュ関数（H）に入力して得られたハッシュ値をサブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）として生成する。
【００８０】
次に、図３に示すように、ステップＳ５において、サブセンタサーバ２００は、センタサーバ１００によって生成されたサブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）を取得する。
【００８１】
ステップＳ６において、サブセンタサーバ２００は、利用者の秘密鍵、すなわち、本実施形態では、端末１０の利用者の秘密鍵（復号鍵）を生成する。
【００８２】
具体的には、サブセンタサーバ２００は、図５（ｄ）に示すように、センタサーバ１００によって生成されたそれぞれのサブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）、端末１０が属するサブセンタサーバ２００を識別するセンタ識別文字列（“char1”）、及び利用者固有文字列（“char2”）を用い、IBEの鍵生成アルゴリズムに基づいて、複数の復号鍵（d1,d2,d3）を、利用者（端末１０）の復号鍵として生成する。
【００８３】
ステップＳ７において、サブセンタサーバ２００は、通信ネットワーク１を介して、生成した端末１０の利用者の復号鍵（d1,d2,d3）を端末１０に送信する。
【００８４】
ステップＳ８において、端末１０は、通信ネットワーク１を介して復号鍵（d1,d2,d3）を取得する。
【００８５】
次に、図４を参照して、端末２０ａが端末１０に暗号文（c）を送信し、端末１０が暗号文（c）を受信して復号する動作について説明する。
【００８６】
図４に示すように、ステップＳ９において、端末１０は、公開情報サーバ３００から公開情報（p1,...,pu）を取得する。
【００８７】
ステップＳ１０において、端末２０ａは、公開情報サーバ３００から、端末１０が属するサブセンタサーバ２００が用いるサブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）に対応した公開情報（p1,p2,p3）を取得する。
【００８８】
具体的には、端末２０ａは、まず、“char1”と対応付けられている部分集合F1の要素（例えば、1,2,3）を判別し、当該要素に対応する公開情報（p1,p2,p3）を取得する。
【００８９】
ステップＳ１１において、端末２０ａは、“char1”、“char2”、及び公開情報（p1,p2,p3）を用い、IBEの暗号化アルゴリズムを用いて、平文（m）を暗号した暗号文（c）を作成する。
【００９０】
具体的には、端末２０ａは、以下の式を満足するように複数に分割された平文（mi）及び乱数（ri）を、所定のハッシュ関数に入力することによって得られるハッシュ値（例えば、SHA-1に入力することによって得られるハッシュ値）を取得する。
【００９１】
Σi∈F1 mi = m
また、端末２０ａは、当該ハッシュ値を確率的暗号化のための乱数として用い、平文（mi）と、乱数（ri）とが含まれる（mi‖ri）を、IBEの暗号化アルゴリズムに基づいて以下のように暗号化し、複数の暗号文（ci）を作成する。なお、“R”は、すべてのriの「連結」（Concatenation）を意味する。
【００９２】
EncIBE (mi‖ri, char1.char2, pi; Hi(m, mi, R)) = ci
さらに、端末２０ａは、それぞれの公開情報（p1,p2,p3）に基づいて生成した複数の暗号文ciを合成し、暗号文（c）を作成する。
【００９３】
ステップＳ１２において、端末２０ａは、作成した暗号文（c）を端末１０に送信する。
【００９４】
ステップＳ１３において、端末１０は、端末２０ａから通信ネットワーク１を介して暗号文（c）を受信する。
【００９５】
ステップＳ１４において、端末１０は、複数の復号鍵（d1,d2,d3）と、当該復号鍵に対応する公開情報（p1,p2,p3）とを用い、IBEの復号アルゴリズムに基づいて、暗号文（c）を平文（m）に復号する。
【００９６】
具体的には、端末１０は、複数の暗号文（ci）をそれぞれの復号鍵と公開情報を用いて復号し、乱数を含む複数の平文（mi‖ri）に復号する。さらに、端末１０は、IBEの暗号化アルゴリズムを用いて、復号した平文（mi）と乱数（ri）とが含まれる平文（mi‖ri）を暗号化して、再暗号化文（ci’）を作成する。なお、再暗号化文（ci’）は、上述した暗号文（ci）と同様の手法によって作成される。
【００９７】
また、端末１０は、作成した再暗号化文（ci’）と、端末２０ａから受信した暗号文（ci）とが一致するか否かを判定する。
【００９８】
そして、端末１０は、すべての再暗号化文（ci’）と暗号文（ci）とが一致すると判定された場合、平文（m）を出力する。
【００９９】
（作用・効果）
以上説明した本実施形態に係る鍵生成システム（センタサーバ１００及びサブセンタサーバ２００）によれば、センタサーバ１００が、(u,v,w)-Cover Free Family<L,F>の部分集合（Subset）の要素（元、Element）の値に基づいて、HIBEを構成するための複数のサブマスタ鍵（｛sj|j∈Fi｝、ss1,ss2,ss3）を生成する。さらに、サブセンタサーバ２００が、それぞれのサブマスタ鍵、センタ識別文字列（例えば、“char1”）、及び利用者固有文字列を用い、IBEの鍵生成アルゴリズムに基づいて複数の秘密鍵（d1,d2,d3）を生成する。
【０１００】
このため、利用者に固有な所定の文字列を公開鍵とすることができる任意の暗号方式、つまりIBEを用いて、利用者の秘密鍵を生成するセンタを階層化することができる。
【０１０１】
さらに、本実施形態に係る鍵生成システムによれば、Boneh, Franklin方式だけではなく、他のIBE、例えば、“Coc01”方式に基づいて、HIBEを構成することができる。
【０１０２】
また、本実施形態に係る鍵生成システムによれば、サブマスタ鍵が、(u,v,w)-Cover Free Family<L,F>に含まれる部分集合（F1,…,Fv）に基づいて生成されるため、Cover Free Familyの特性によって、他のサブセンタサーバにおいて用いられているサブマスタ鍵の情報の漏洩が防止され、暗号化通信の安全性を確保することができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の実施形態に係る鍵生成システムを含むネットワーク構成を示す図である。
【図２】本発明の実施形態に係る鍵生成システムを含む各装置の論理ブロック構成を示す図である。
【図３】本発明の実施形態に係る復号鍵の生成の動作を示すシーケンス図である。
【図４】本発明の実施形態に係る暗号文の送受信の動作を示すシーケンス図である。
【図５】本発明の実施形態に係る鍵生成システムにおいて用いられるCover Free Familyの構成及び復号鍵の生成に用いられる情報を示す図である。
【符号の説明】
【０１０４】
１…通信ネットワーク、１０…端末、１１…通信部、１３…復号鍵格納部、１５…復号部、１７ａ……暗号化部、１７ｂ…判定部、１９…公開情報取得部、２０ａ，２０ｂ…端末、２１…通信部、２３…公開情報取得部、２５…暗号化部、２７…乱数選択部、１００…センタサーバ、１０１…通信部、１０３…ＣＦＦ生成格納部、１０５…サブマスタ鍵生成部、１０７…公開情報生成部、１０９…マスタ鍵選択部、１１１…ハッシュ関数生成部、３００…公開情報サーバ、３０１…公開情報記憶部、Ｌ…集合、Ｆ１，Ｆ２，Ｆ３，Ｆｖ…部分集合
【図１】
2005210639.tif 000003
【図２】
2005210639.tif 000004
【図３】
2005210639.tif 000005
【図４】
2005210639.tif 000006
【図５】
2005210639.tif 000007