(57)【要約】【課題】  IDに基づく暗号方式において、他者と交信を行うことなく、利用者の復号鍵を更新することができる鍵更新方法、暗号システム、暗号サーバ、端末装置及び外部装置を提供する。【解決手段】  本発明に係るセンタサーバ１００は、利用者に固有な識別子を公開鍵とする暗号方式において用いられる、当該公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム（ＨＩＢＥ）に基づいて、マスタ鍵を選択するマスタ鍵選択部１０９と、マスタ鍵及びＨＩＢＥに基づいて、所定の集団に公開される公開情報を演算して生成する公開情報生成部１０７と、マスタ鍵及び公開情報を用い、ＨＩＢＥに基づいて、識別子に対応する復号鍵の更新に用いられる更新鍵を生成する更新鍵生成部１０３と、マスタ鍵及び識別子を用い、ＨＩＢＥに基づいて、復号鍵を生成する復号鍵生成部１０５とを備える。【選択図】  図２
2005198189.tif 000002
【特許請求の範囲】
【請求項１】
暗号サーバが、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて、マスタ鍵及び前記所定の集団に公開される公開情報を演算して生成するステップと、
前記暗号サーバが、前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる更新鍵を生成するステップと、
前記暗号サーバが、前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成するステップと、
前記利用者の端末装置が、前記更新鍵及び前記復号鍵を取得するステップと、
前記端末装置が、前記公開情報と、前記更新鍵と、前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、鍵更新情報を生成するステップと、
前記端末装置が、前記鍵更新情報を取得し、取得した前記鍵更新情報を新復号鍵とするステップと
を備えることを特徴とする前記識別子に対応する前記復号鍵の鍵更新方法。
【請求項２】
所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて、マスタ鍵を選択するマスタ鍵選択部と、
前記マスタ鍵及び前記階層化アルゴリズムに基づいて、前記所定の集団に公開される公開情報を演算して生成する公開情報生成部と、
前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる更新鍵を生成する更新鍵生成部と、
前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成する復号鍵生成部と、
前記公開情報と、前記更新鍵と、前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、鍵更新情報を生成する鍵更新情報生成部と、
前記鍵更新情報を取得し、取得した前記鍵更新情報を新復号鍵とする復号鍵更新部と
を備えることを特徴とする暗号システム。
【請求項３】
所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて、マスタ鍵を選択するマスタ鍵選択部と、
前記マスタ鍵及び前記階層化アルゴリズムに基づいて、前記所定の集団に公開される公開情報を演算して生成する公開情報生成部と、
前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記識別子に対応する復号鍵の更新に用いられる更新鍵を生成する更新鍵生成部と、
前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成する復号鍵生成部と
を備えることを特徴とする暗号サーバ。
【請求項４】
前記マスタ鍵選択部は、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズムに基づいて、第２のマスタ鍵をさらに選択し、
前記公開情報生成部は、前記非階層化アルゴリズムに基づいて、第２の公開情報をさらに生成し、
前記復号鍵生成部は、前記第２のマスタ鍵及び前記識別子を用いて、第２の復号鍵をさらに生成することを特徴とする請求項３に記載の暗号サーバ。
【請求項５】
所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて選択されたマスタ鍵、前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報、前記識別子に対応する復号鍵の更新に用いられる更新鍵、及び前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用いて生成された鍵更新情報を取得する鍵更新情報取得部と、
前記鍵更新情報取得部によって取得された鍵更新情報を新復号鍵とする復号鍵更新部と
を備えることを特徴とする端末装置。
【請求項６】
所定の集団に属する利用者の端末装置と接続される外部装置であって、
前記利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて選択されたマスタ鍵、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて生成された、前記識別子に対応する復号鍵の更新に用いられる更新鍵を取得して記憶する更新鍵記憶部と、
前記公開情報を取得し、取得した前記公開情報及び前記更新鍵と、前記復号鍵を更新可能な時間を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる鍵更新情報を生成する鍵更新情報生成部と
を備えることを特徴とする外部装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メールアドレスなど、利用者に固有な識別子（ID）に基づく暗号方式、いわゆるIBE（Identity-Based Encryption）に関し、特に、IDに基づく暗号方式による利用者の復号鍵を、利用者の端末装置内部において更新する、いわゆる鍵隔離型暗号方式により更新する鍵更新方法、暗号システム、暗号サーバ、端末装置及び外部装置に関する。
【背景技術】
【０００２】
従来、電子メールアドレスなど、利用者に固有な識別子（ID）を公開鍵（暗号鍵）として用いることができる暗号方式、いわゆるIBE（Identity-Based Encryption）が知られている。
【０００３】
IDに基づく暗号方式においては、まず、秘密鍵（復号鍵）の生成及び管理を行うセンタが、所定の利用者の集団内において共通に用いられる秘密情報、いわゆるマスタ鍵（mst）を生成し、（mst）に対応する公開情報（pub）を公開する。次に、利用者の電子メールアドレスなど、任意の文宇列（char）と（mst）を作用させ、当該文字列に対する秘密鍵（dchar）を生成する（便宜上、このような秘密鍵dcharを「charに基づく復号鍵」と呼ぶ）。（char）及び（pub）を用いて暗号化された暗号文は、（dchar）により復号可能となる。例えば、（char）として、（char）に対応する秘密鍵の保持者となる利用者の電子メールアドレスが利用される場合、当該利用者にメッセージ（M）を秘密に送信する際、メッセージ（M）の送信者は、当該利用者の電子メールアドレス及び（pub）を用いて暗号文（C）を生成することができる。
【０００４】
上述したような機能を実現する具体的な方式として、Boneh, Franklin方式が提案されている（例えば、非特許文献１）。以下、Boneh, Franklin方式の概要について説明する。
【０００５】
センタは、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
さらに、上述したBoneh, Franklin方式を拡張することにより、利用者の復号鍵を生成するセンタ（サーバ）を階層化することができる（例えば、非特許文献２）。
【０００９】
例えば、ルートセンタは、各サブセンタに対して、それぞれ異なる秘密情報（マスタ鍵）を与える。また、各サブセンタは、ルートセンタから与えられた秘密情報を用いて、当該サブセンタが管轄する利用者の復号鍵を生成する。このように、利用者の復号鍵を生成するセンタを２レベルに階層化することを、以下、“2-level HIBE”と呼ぶ。
【００１０】
2-level HIBEでは、ルートセンタは、サブセンタに対して、char1.*（*は任意の文字列）に対応した復号鍵を生成するために用いられる秘密情報を与える。また、当該サブセンタは、利用者に対して、char1.char2（char2は、サブセンタが定めた任意の文字列）に対応した復号鍵を生成する。
【００１１】
また、従来の公開鍵暗号方式において、他者と交信を行うことなく、つまり、復号鍵を生成するサーバなどを用いることなく、復号鍵を更新する方法として、鍵隔離型暗号方式が知られている（例えば、非特許文献３、４）。
【００１２】
鍵隔離型暗号方式では、利用者は、まず、鍵生成アルゴリズムを用いて生成される当該利用者の公開鍵と、初期復号鍵と、復号鍵の更新に用いられる更新鍵（ヘルパー鍵）を取得する。次いで、公開鍵は、ネットワーク上に公開され、初期復号鍵は、利用者の端末装置に記憶される。また、更新鍵は、ネットワークから隔離された外部装置（例えば、ICカード）に記憶される。
【００１３】
例えば、復号鍵uski-1をuskiに更新する場合、利用者は、外部装置に復号鍵の更新を依頼する。依頼を受けた外部装置は、記憶されている更新鍵（ヘルパー鍵）hskを用いて、鍵更新アルゴリズムに基づいて鍵更新情報hskiを生成し、これを安全な通信路を用いて利用者の端末装置に送信する。利用者の端末装置は、受信した鍵更新情報hskiと、復号鍵uski-1に基づいて、復号鍵uskiを生成する。
【００１４】
また、例えば、利用者Aが、集団内の他の利用者Bに暗号文を送信する場合、利用者A（の端末装置）は、利用者Bの公開鍵（pk）を取得する。次いで、利用者A（の端末装置）は、取得した利用者Bの公開鍵（pk）と、時刻情報（i）、例えば、鍵の更新回数と、メッセージ（M）と、暗号アルゴリズムとを用いて、暗号文（C）を生成し利用者Bに送信する。
【００１５】
利用者Bは、自身の復号鍵uskiと、復号アルゴリズムとを用いて、暗号文（C）を復号する。
【００１６】
上述した鍵隔離型暗号方式の主な特徴は、ある期間に適用される利用者の復号鍵のいくつかが漏洩した場合においても、漏洩した復号鍵の総数が一定数を超えない限り、当該漏洩した復号鍵が該当する期間以外のその他の期間に適用される復号鍵については、当該利用者以外の者には依然として未知なことである。したがって、利用者は、復号鍵を頻繁に更新することにより、復号鍵の漏洩による被害を低減することができる。
【非特許文献１】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. 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
【非特許文献３】Y. Dodis, J. Katz. S. Xu and M, Yung, “Key-Insulated Public Key Cryptosystems, ”Proc. of Eurocrypt 2002, LNCS 2332, Springer-Verlag, pp. 65-82, 2002
【非特許文献４】M. Bellare and A. Palacio, “Protecting against Key Exposure: Strongly Key-Insulated Encryption with Optimal Threshold”, Cryptology ePrint Archive 064, インターネット＜URL: http://eprint.iacr.org/2002＞
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述した従来のIDに基づく暗号方式（IBE）と、鍵隔離型暗号方式とは、用いられる鍵生成アルゴリズムなどが異なるため、IBEと鍵隔離型暗号方式とを直接組み合わせて利用することができない。すなわち、IBEにおいて、他者と交信を行うことなく、利用者の復号鍵を更新することができないという問題があった。
【００１８】
そこで、本発明は、以上の点に鑑みてなされたもので、IDに基づく暗号方式において、他者と交信を行うことなく、利用者の復号鍵を更新することができる鍵更新方法、暗号システム、暗号サーバ、端末装置及び外部装置を提供することをその目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するために、本発明の第１の特徴は、送信端末装置と受信端末装置とによって構成される暗号システムにおいて用いられる暗号方法であって、前記送信端末装置が、所定の秘密分散アルゴリズムに基づいて、平文を第１の平文と第２の平文とに分割するステップと、前記送信端末装置が、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて、前記第１の平文を暗号化して第１の暗号文を作成するステップと、前記送信端末装置が、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、及び前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報を用いて、前記第２の平文を暗号化して第２の暗号文を作成するステップと、前記受信端末装置が、前記階層化アルゴリズムに基づいて、前記公開情報及び前記復号鍵を用いて、前記第１の暗号文を復号して前記第１の平文を出力するステップと、前記受信端末装置が、前記非階層化アルゴリズムに基づいて、前記第２の公開情報及び前記非階層化アルゴリズムに基づく復号鍵を用いて、前記第２の暗号文を復号して前記第２の平文を出力するステップとを備えることを要旨とする。
【００２０】
本発明の第２の特徴は、送信端末装置と受信端末装置とによって構成される暗号システムであって、前記送信端末装置が、所定の秘密分散アルゴリズムに基づいて、平文を第１の平文と第２の平文とに分割する分割部と、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて、前記第１の平文を暗号化して第１の暗号文を作成する第１の暗号化部と、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、及び前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報を用いて、前記第２の平文を暗号化して第２の暗号文を作成する第２の暗号化部とを備え、前記受信端末装置が、前記階層化アルゴリズムに基づいて、前記公開情報及び前記復号鍵を用いて、前記第１の暗号文を復号して前記第１の平文を出力する第１の復号部と、前記非階層化アルゴリズムに基づいて、前記第２の公開情報及び前記非階層化アルゴリズムに基づく復号鍵を用いて、前記第２の暗号文を復号して前記第２の平文を出力する第２の復号部とを備えることを要旨とする。
【００２１】
本発明の第３の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報、及び前記復号鍵を用いて、第１の暗号文を復号して第１の平文を出力する第１の復号部（復号部１７ａ）と、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報、及び前記非階層化アルゴリズムに基づく復号鍵を用いて、第２の暗号文を復号して第２の平文を出力する第２の復号部と（復号部１７ａ）とを備える端末装置（端末１０）であることを要旨とする。
【００２２】
本発明の第４の特徴は、本発明の第３の特徴において、前記の第１の暗号文は、前記平文、前記第１の平文、前記第１の乱数及び前記第２の乱数を所定の一方向ハッシュ関数に入力して得られるハッシュ値を用いて、前記第１の平文と前記第１の乱数とが含まれる第１の情報付加平文が暗号化されたものであるとともに、前記の第２の暗号文は、前記平文、前記第２の平文、前記第１の乱数及び前記第２の乱数を所定の一方向ハッシュ関数に入力して得られるハッシュ値を用いて、前記第２の平文と前記第２の乱数とが含まれる第２の情報付加平文が暗号化されたものであり、前記階層化アルゴリズムを用いて、前記第１の復号部によって復号された前記第１の情報付加平文を暗号化して第１の再暗号化文を作成する第１の再暗号化部（暗号化部１７ｂ）と、前記非階層化アルゴリズムを用いて、前記第２の復号部によって復号された前記第２の情報付加平文を暗号化して第２の再暗号化文を作成する第２の再暗号化部（暗号化部１７ｂ）と、前記第１の再暗号文と前記第１の暗号文とが一致するか否かを判定するとともに、前記第２の再暗号文と前記第２の暗号文とが一致するか否かを判定する判定部（判定部１７ｃ）とをさらに備えることを要旨とする。
【００２３】
本発明の第５の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報、及び前記復号鍵を用いて、第２の暗号文を復号して第１の暗号文を出力する第１の復号部と、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報、及び前記非階層化アルゴリズムに基づく復号鍵を用いて、前記第１の暗号文を復号して平文を出力する第２の復号部とを備える端末装置であることを要旨とする。
【００２４】
本発明の第６の特徴は、所定の秘密分散アルゴリズムに基づいて、平文を第１の平文と第２の平文とに分割する分割部（分割部２５ａ）と、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて、前記第１の平文を暗号化して第１の暗号文を作成する第１の暗号化部（暗号化部２５ｂ）と、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、及び前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報を用いて、前記第２の平文を暗号化して第２の暗号文を作成する第２の暗号化部（暗号化部２５ｂ）とを備える端末装置（端末２０ａ，２０ｂ）であることを要旨とする。
【００２５】
本発明の第７の特徴は、本発明の第６の特徴において、第１の乱数及び第２の乱数を選択する乱数選択部をさらに備え、前記第１の暗号化部が、前記平文、前記第１の平文、前記第１の乱数及び前記第２の乱数を所定の一方向ハッシュ関数に入力して得られるハッシュ値を用いて、前記第１の平文と前記第１の乱数とが含まれる第１の情報付加平文を暗号化し、前記第２の暗号化部が、前記平文、前記第２の平文、前記第１の乱数及び前記第２の乱数を所定の一方向ハッシュ関数に入力して得られるハッシュ値を用いて、前記第２の平文と前記第２の乱数とが含まれる第２の情報付加平文を暗号化することを要旨とする。
【００２６】
本発明の第８の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて、平文を暗号化して第１の暗号文を作成する第１の暗号化部と、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズム、及び前記非階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される第２の公開情報を用いて、前記第１の暗号文を暗号化して第２の暗号文を作成する第２の暗号化部とを備える端末装置であることを要旨とする。
【００２７】
かかる特徴によれば、公開鍵（暗号鍵）・復号鍵のペアが２組利用（“2-level HIBE”及びBoneh, Franklin方式などのIBE方式）されるため、外部装置などに記憶されている秘密情報、つまり、“2-level HIBE”の鍵生成アルゴリズムに基づいて生成される復号鍵の更新に用いられる更新鍵が、他者に漏洩した場合でも安全な、IDに基づく暗号化および復号方法を提供することができる。
【００２８】
さらに、かかる特徴によれば、更新鍵が他者に漏洩した場合でも、暗号文の安全性、つまり、平文の情報が１ビットたりとも漏洩していないことを数学的に証明することができる、IDに基づく暗号化および復号方法を提供することができる。特に、利用者Uiに対して送信するために作成された暗号文を不正に解読しようとする攻撃者は、復号に利用される当該２つの復号鍵を取得しない限り、更新鍵hiを入手したとしても、当該暗号文を解読することが必ずしもできない。このため、利用者は、非常に高い安全性を確保しつつ、暗号文の送受信を行うことができる。
【００２９】
本発明の第９の特徴は、暗号サーバが、所定の集団に所属する利用者に固有な識別子（例えば、電子メールアドレス）を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム（例えば、上述した非特許文献２において開示されているＨＩＢＥに基づいて２レベルに階層化されたアルゴリズム）に基づいて、マスタ鍵及び前記所定の集団に公開される公開情報を演算して生成するステップと、前記暗号サーバが、前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる更新鍵を生成するステップと、前記暗号サーバが、前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成するステップと、前記利用者の端末装置が、前記更新鍵及び前記復号鍵を取得するステップと、前記端末装置が、前記公開情報と、前記更新鍵と、前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、鍵更新情報を生成するステップと、前記端末装置が、前記鍵更新情報を取得し、取得した前記鍵更新情報を新復号鍵とするステップとを備える前記識別子に対応する前記復号鍵の鍵更新方法であることを要旨とする。
【００３０】
かかる特徴によれば、暗号サーバが、利用者に固有な識別子（例えば、電子メールアドレス）を公開鍵とする暗号方式において用いられる、当該公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム、具体的には、上述した“2-level HIBE”に基づいて、サブセンタ用のマスタ鍵（秘密情報）を生成し、当該マスタ鍵が、更新鍵として、利用者の端末装置と接続される外部装置などに格納される。
【００３１】
また、利用者の端末装置が、当該更新鍵を用いて外部装置によって生成された鍵更新情報を新復号鍵とする。
【００３２】
このため、利用者の端末装置は、利用者に固有な識別子を公開鍵とする暗号方式に基づいて生成された復号鍵を、他者（サーバ等）と交信を行うことなく更新することができる。
【００３３】
さらに、外部装置は、暗号サーバから受信した更新鍵を用い、“2-level HIBE”の鍵生成アルゴリズムに基づいて、利用者の識別子と、復号鍵を更新可能な時間を示す時間情報とから構成される当該利用者の公開鍵（char1.t）に対応する復号鍵を鍵更新情報として生成する。なお、ここで、“t”は、上述した時間情報であり、例えば、特定の週や日を示す情報を用いることができる。
【００３４】
さらに、利用者の端末装置は、外部装置によって生成された鍵更新情報を、新復号鍵とする。
【００３５】
すなわち、外部装置が、利用者の時点tにおける公開鍵（char1.t）に対応する鍵更新情報、つまり、当該公開鍵に対応する復号鍵を生成して、利用者の端末装置に送信する。したがって、利用者の端末装置は、他者（暗号サーバ等）と交信することなく、公開鍵（char1.t）に対応する復号鍵を取得することができる。
【００３６】
なお、かかる場合、暗号文を当該利用者の端末装置に時点tを含む所定の時間内（例えば、上述したように、週や日）に送信する際、当該利用者の公開鍵として、(char1.t)を用いればよい。
【００３７】
このように、利用者の端末装置は、利用者の識別子と、復号鍵を更新可能な時間を示す時間情報とから構成される当該利用者のある時点における公開鍵（char1.t）に対応する復号鍵を、随時自由に更新することができる。
【００３８】
本発明の第１０の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて、マスタ鍵を選択するマスタ鍵選択部と、前記マスタ鍵及び前記階層化アルゴリズムに基づいて、前記所定の集団に公開される公開情報を演算して生成する公開情報生成部と、前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる更新鍵を生成する更新鍵生成部と、前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成する復号鍵生成部と、前記公開情報と、前記更新鍵と、前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、鍵更新情報を生成する鍵更新情報生成部と、前記鍵更新情報を取得し、取得した前記鍵更新情報を新復号鍵とする復号鍵更新部とを備える暗号システムであることを要旨とする。
【００３９】
本発明の第１１の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて、マスタ鍵を選択するマスタ鍵選択部（マスタ鍵選択部１０９）と、前記マスタ鍵及び前記階層化アルゴリズムに基づいて、前記所定の集団に公開される公開情報を演算して生成する公開情報生成部（公開情報生成部１０７）と、前記マスタ鍵及び前記公開情報を用い、前記階層化アルゴリズムに基づいて、前記識別子に対応する復号鍵の更新に用いられる更新鍵を生成する更新鍵生成部（更新鍵生成部１０３）と、前記マスタ鍵及び前記識別子を用い、前記階層化アルゴリズムに基づいて、前記復号鍵を生成する復号鍵生成部（復号鍵生成部１０５）とを備える暗号サーバ（センタサーバ１００）であることを要旨とする。
【００４０】
本発明の第１２の特徴は、本発明の第３の特徴において、前記マスタ鍵選択部が、前記暗号方式において用いられる、前記階層化アルゴリズムと異なる非階層化アルゴリズムに基づいて、第２のマスタ鍵をさらに選択し、前記公開情報生成部が、前記非階層化アルゴリズムに基づいて、第２の公開情報をさらに生成し、前記復号鍵生成部が、前記第２のマスタ鍵及び前記識別子を用いて、第２の復号鍵をさらに生成することを要旨とする。
【００４１】
かかる特徴によれば、利用者の識別子または当該識別子を含む情報を公開鍵とする２種類の復号鍵（例えば、“2-level HIBE”とBoneh, Franklin方式）が生成されるため、利用者が暗号文を送受する場合に、当該２種類の公開鍵（暗号鍵）・復号鍵を用いて、不正な解読などに対する安全性の高い暗号化方法を実現することができる。
【００４２】
本発明の第１３の特徴は、所定の集団に所属する利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて選択されたマスタ鍵、前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報、前記識別子に対応する復号鍵の更新に用いられる更新鍵、及び前記復号鍵の更新後における利用可能な時間範囲を示す時間情報とを用いて生成された鍵更新情報を取得する鍵更新情報取得部（復号鍵更新部１５）と、前記鍵更新情報取得部によって取得された前記鍵更新情報を新復号鍵とする復号鍵更新部（復号鍵更新部１５）とを備える端末装置（端末１０）であることを要旨とする。
【００４３】
本発明の第１４の特徴は、所定の集団に属する利用者の端末装置と接続される外部装置（外部装置５０）であって、前記利用者に固有な識別子を公開鍵とする暗号方式において用いられる、前記公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズムに基づいて選択されたマスタ鍵、及び前記階層化アルゴリズムに基づいて生成され、前記所定の集団に公開される公開情報を用いて生成された、前記識別子に対応する復号鍵の更新に用いられる更新鍵を取得して記憶する更新鍵記憶部（更新鍵記憶部５３）と、前記公開情報を取得し、取得した前記公開情報及び前記更新鍵と、前記復号鍵を更新可能な時間を示す時間情報とを用い、前記階層化アルゴリズムに基づいて、前記復号鍵の更新に用いられる鍵更新情報を生成する鍵更新情報生成部（鍵更新情報生成部５５）とを備えることを要旨とする。
【発明の効果】
【００４４】
本発明によれば、IDに基づく暗号方式において、他者と交信を行うことなく、利用者の復号鍵を更新することができる鍵更新方法、暗号システム、暗号サーバ、端末装置及び外部装置を提供することができる。
【発明を実施するための最良の形態】
【００４５】
（暗号システムを含むネットワーク構成）
以下、本発明の実施形態について説明する。図１は、本実施形態に係る暗号システムを含むネットワーク構成を示している。同図に示すように、利用者の識別子、例えば、電子メールアドレスを用いた公開鍵に対応する復号鍵、当該復号鍵の更新に用いられる更新鍵、及び利用者に公開される公開情報の生成などを行うセンタサーバ１００と、利用者の公開鍵、つまり、当該利用者の電子メールアドレスを用いて、暗号文を送信する端末２０ａ，２０ｂ（送信端末装置）と、復号鍵を更新するとともに、復号鍵を用いて端末２０ａ，２０ｂから受信した暗号文を復号する端末１０（受信端末装置）とが、例えば、TCP/IPをベースとしたネットワーク１にそれぞれ接続されている。なお、本実施形態では、以下、電子メールアドレスを利用者の識別子として用いるものとして説明する。
【００４６】
また、ネットワーク１には、センタサーバ１００によって生成された公開情報を公開する公開情報サーバ３００が接続されている。
【００４７】
さらに、端末１０には、センタサーバ１００によって生成された更新鍵を記憶するとともに、当該更新鍵を用いて、復号鍵の更新に用いられる鍵更新情報を生成する外部装置５０が接続されている。
【００４８】
（暗号システムの論理ブロック構成）
次に、図２を参照して、本実施形態に係る暗号システムの論理ブロック構成について説明する。
【００４９】
同図に示すように、本実施形態に係る暗号サーバを構成するセンタサーバ１００は、通信部１０１と、更新鍵生成部１０３と、復号鍵生成部１０５と、公開情報生成部１０７と、マスタ鍵選択部１０９とを備えている。
【００５０】
通信部１０１は、更新鍵生成部１０３と、復号鍵生成部１０５と、復号鍵生成部１０５と、マスタ鍵選択部１０９と通信可能に接続されており、生成された更新鍵や復号鍵などの情報をネットワーク１に中継するものである。
【００５１】
マスタ鍵選択部１０９は、所定の集団に所属する利用者に固有な識別子、本実施形態では、ネットワーク１に接続される端末１０及び端末２０ａ，２０ｂの利用者の電子メールアドレスを公開鍵とする暗号方式において用いられる、当該公開鍵と対応する復号鍵の生成を階層化する階層化アルゴリズム（例えば、“2-level HIBE”）に基づいて、マスタ鍵を選択するものである。
【００５２】
具体的には、マスタ鍵選択部１０９は、上述した非特許文献２に示した“Hierarchical Identity-Based Cryptography“にしたがって、利用者の復号鍵を生成するセンタを２レベルに階層化する“2-level HIBE”の鍵生成アルゴリズムに基づいて、マスタ鍵（s）を選択する。
【００５３】
また、マスタ鍵選択部１０９は、利用者に固有な識別子を公開鍵とする暗号方式において用いられる、“2-level HIBE”と異なる非階層化アルゴリズム（例えば、Boneh, Franklin方式）に基づいて、マスタ鍵（s’、第２のマスタ鍵）をさらに選択することができる。
【００５４】
公開情報生成部１０７は、マスタ鍵選択部１０９によって選択されたマスタ鍵及び“2-level HIBE”に基づいて、端末１０及び端末２０ａ，２０ｂの利用者に公開される公開情報（p）を演算して生成するものである。
【００５５】
また、公開情報生成部１０７は、“2-level HIBE”と異なる非階層化アルゴリズム（例えば、Boneh, Franklin方式）に基づいて、第２の公開情報（p’、第２の公開情報）をさらに生成することができる。
【００５６】
さらに、公開情報生成部１０７は、生成した公開情報（p及びp’）を公開情報サーバ３００に送信する。
【００５７】
更新鍵生成部１０３は、マスタ鍵選択部１０９によって選択されたマスタ鍵及び公開情報生成部１０７によって生成された公開情報を用い、“2-level HIBE”に基づいて、利用者の識別子（例えば、利用者の電子メールアドレス）に対応する復号鍵の更新に用いられる更新鍵を生成するものである。
【００５８】
復号鍵生成部１０５は、マスタ鍵選択部１０９によって選択されたマスタ鍵及び前記利用者の電子メールアドレスを用い、“2-level HIBE”に基づいて、復号鍵を生成するものである。
【００５９】
また、復号鍵生成部１０５は、マスタ鍵（s’）及び利用者の電子メールアドレスを用い、“2-level HIBE”と異なる非階層化アルゴリズム（例えば、Boneh, Franklin方式）に基づいて、復号鍵di0（第２の復号鍵）をさらに生成することができる。
【００６０】
また、更新鍵生成部１０３及び復号鍵生成部１０５は、ネットワーク１を介して、生成した更新鍵及び復号鍵を利用者の端末、本実施形態では、端末１０に送信することができる。
【００６１】
公開情報サーバ３００は、公開情報記憶部３０１を備えている。公開情報記憶部３０１は、センタサーバ１００によって生成された公開情報を、ネットワーク１を介して、端末１０及び端末２０ａ，２０ｂに公開するものである。
【００６２】
端末１０は、通信部１１と、復号鍵記憶部１３と、復号鍵更新部１５と、復号部１７ａと、暗号化部１７ｂと、判定部１７ｃ、公開情報取得部１９とを備えている。
【００６３】
通信部１１は、復号鍵記憶部１３と、復号鍵更新部１５と、復号部１７ａと、公開情報取得部１９と通信可能に接続されており、更新鍵や復号鍵が含まれた情報などをネットワーク１から中継するものである。
【００６４】
復号鍵記憶部１３は、通信部１１を介して、センタサーバ１００によって生成された端末１０の利用者（以下、Ui）の復号鍵を取得して記憶するものである。
【００６５】
復号鍵更新部１５は、外部装置５０によって生成される鍵更新情報を新復号鍵とするものである。また、復号鍵更新部１５は、外部装置５０によって生成される鍵更新情報を取得するものであり、本実施形態では、鍵更新情報取得部を構成する。
【００６６】
例えば、復号鍵更新部１５は、外部装置５０が、“2-level HIBE”の鍵生成アルゴリズムに基づいて生成した鍵更新情報を新復号鍵とすることができる。
【００６７】
復号部１７ａは、本実施形態では、端末２０ａまたは２０ｂが、利用者Uiの公開鍵を用いて暗号化された暗号文を、復号鍵を用いて復号するものである。
【００６８】
また、復号部１７ａは、“2-level HIBE”の復号アルゴリズムに基づいて、公開情報（p）及び復号鍵（dit）を用いて、第１の暗号文（c1）を復号して第１の平文（m1）を出力するものであり、第１の復号部を構成する。
【００６９】
さらに、復号部１７ａは、Boneh, Franklin方式の復号アルゴリズムに基づいて、第２の公開情報（p’）及び復号鍵（di0）を用いて、第２の暗号文（c2）を復号して第２の平文（m2）を出力するものであり、第２の復号部を構成する。
【００７０】
また、復号部１７ａは、“2-level HIBE”の復号アルゴリズムに基づいて、公開情報（p）及び復号鍵（dit）を用いて、第２の暗号文（c2）を復号して第１の暗号文（c1）を出力し、Boneh, Franklin方式の復号アルゴリズムに基づいて、第２の公開情報（p’）及び復号鍵（di0）を用いて、第１の暗号文（c1）を復号して平文（m）を出力することもできる。
【００７１】
暗号化部１７ｂは、“2-level HIBE”の暗号化アルゴリズムを用いて、復号部１７ａによって復号された、第１の平文（m1）と第１の乱数（r1）とが含まれる第１の情報付加平文（m1‖r1）を含む情報を暗号化して、第１の再暗号化文（c1’）を作成するものであり、第１の再暗号化部を構成する。
【００７２】
また、暗号化部１７ｂは、Boneh, Franklin方式の暗号化アルゴリズムを用いて、復号部１７ａによって復号された、第２の平文（m2）と第２の乱数（r2）とが含まれる第２の情報付加平文（m2‖r2）を含む情報を暗号化して、第２の再暗号化文（c2’）を作成するものであり、第２の再暗号化部を構成する。
【００７３】
判定部１７ｃは、暗号化部１７ｂによって暗号化された第１の再暗号文（c1’）と、端末２０ａ，２０ｂから受信した第１の暗号文（c1）とが一致するか否かを判定するとともに、第２の再暗号文（c2’）と、端末２０ａ，２０ｂから受信した第２の暗号文（c2）とが一致するか否かを判定するものである。
【００７４】
なお、復号部１７ａは、判定部１７ｃによって、第１の再暗号文（c1’）と第１の暗号文（c1）とが一致するとともに、第の２再暗号文（c2’）と第２の暗号文（c2）とが一致すると判定された場合、第１の平文（m1）及び第２の平文（m2）に基づいて、平文（m）を出力する。
【００７５】
公開情報取得部１９は、公開情報サーバ３００から、ネットワーク１を介して公開情報を取得するものである。また、公開情報取得部１９は、取得した公開情報を外部装置５０に提供することができる。
【００７６】
外部装置５０は、通信部５１と、更新鍵記憶部５３と、鍵更新情報生成部５５とを備えている。
【００７７】
通信部５１は、更新鍵記憶部５３と、鍵更新情報生成部５５と通信可能に接続されており、更新鍵や鍵更新情報などを通信部１１との間において送受するものである。
【００７８】
更新鍵記憶部５３は、センタサーバ１００によって生成された利用者Uiの電子メールアドレスに対応する復号鍵の更新に用いられる更新鍵を、通信部５１を介して取得して記憶するものである。
【００７９】
なお、更新鍵記憶部５３は、更新鍵と、端末１０に記憶されている復号鍵とが同時に漏洩することを防止するため、ICカードのような、外部装置５０に着脱可能なデバイスであることが好ましい。また、外部装置５０は、ネットワーク１に接続されている端末、例えば、端末２０ａからアクセスできないように、必要時以外は、ネットワーク１から隔離されていることが好ましい。
【００８０】
鍵更新情報生成部５５は、公開情報取得部１９が取得した公開情報及び更新鍵記憶部５３に記憶されている更新鍵と、利用者Uiの復号鍵を更新可能な時間を示す時間情報とを用い、“2-level HIBE”に基づいて、当該復号鍵の更新に用いられる鍵更新情報を生成するものである。
【００８１】
端末２０ａ，２０ｂは、通信部２１と、公開情報取得部２３と、分割部２５ａと、暗号化部２５ｂと、乱数選択部２７とをそれぞれ備えている。
【００８２】
通信部２１は、公開情報取得部２３と、暗号化部２５ｂと、乱数選択部２７と通信可能に接続されており、公開情報をネットワーク１から中継したり、端末１０に送信する暗号文などをネットワーク１に中継するものである。
【００８３】
公開情報取得部２３は、公開情報サーバ３００から、ネットワーク１を介して公開情報を取得するものである。
【００８４】
分割部２５ａは、所定の秘密分散アルゴリズム、例えば、“How to Share a Secret”（Comm. ACM, 22, 11, p. 612-613, 1979、A. Shamir、以下Shamir方式）に基づいて、平文（m）を第１の平文（m1）と第２の平文（m2）とに分割するものである。
【００８５】
暗号化部２５ｂは、本実施形態では、利用者Uiの公開鍵を用いて、端末１０に送信する平文を暗号化して暗号文を作成し、当該暗号文を送信するものである。
【００８６】
また、暗号化部２５ｂは、“2-level HIBE”の暗号化アルゴリズム及び公開情報（p）を用いて、第１の平文（m1）を暗号化して第１の暗号文（c1）を作成するものであり、第１の暗号化部を構成する。
【００８７】
さらに、暗号化部２５ｂは、Boneh, Franklin方式の暗号化アルゴリズム及び第２の公開情報（p’）を用いて、第２の平文（m2）を暗号化して第２の暗号文（c2）を作成するものであり、第２の暗号化部を構成する。
【００８８】
また、暗号化部２５ｂは、“2-level HIBE”の暗号化アルゴリズム及び公開情報（p）を用いて、平文（m）を暗号化して第１の暗号文（c1）を作成し、Boneh, Franklin方式の暗号化アルゴリズム及び第２の公開情報（p’）を用いて、第１の暗号文（c1）を暗号化して第２の暗号文（c2）を作成することもできる。
【００８９】
乱数選択部２７は、第１の乱数（r1）及び第２の乱数（r2）を選択するものである。暗号化部２５ｂは、乱数選択部２７によって選択された乱数（r1, r2）を用いて、平文（m）、第１の平文（m1）、第１の乱数（r1）及び第２の乱数（r2）を所定の一方向ハッシュ関数に入力して得られるハッシュ値（例えば、SHA-1に入力して得られるハッシュ値）を、確率的暗号化のための乱数として用いて、第１の平文（m1）と、第１の乱数（r1）とが含まれる第１の情報付加平文（m1‖r1）を暗号化することができる。
【００９０】
また、暗号化部２５ｂは、乱数選択部２７によって選択された乱数（r1, r2）を用いて、平文（m）、第１の平文（m1）、第１の乱数（r1）及び第２の乱数（r2）を所定の一方向ハッシュ関数に入力して得られるハッシュ値（例えば、SHA-1に入力して得られるハッシュ値）を確率的暗号化のための乱数として用いて、第２の平文（m2）と、第２の乱数（r2）とが含まれる第２の情報付加平文（m2‖r2）を暗号化することができる。
【００９１】
（暗号システムの動作）
次に、上述した暗号システムの動作について説明する。
【００９２】
（１）動作例１
まず、上述した暗号システムの動作例１について、図３及び図４を参照して説明する。
【００９３】
図３に示すように、ステップＳ１において、センタサーバ１００は、“2-level HIBE”の鍵生成アルゴリズムに基づいて、システム共通のマスタ鍵（秘密情報）sを選択するとともに、公開情報pを生成する。
【００９４】
具体的には、センタサーバ１００は、“2-level HIBE”のうち、ルートセンタ用のマスタ鍵sを選択するとともに、公開情報pを生成する。
【００９５】
ステップＳ２において、センタサーバ１００は、公開情報pを公開情報サーバ３００に通知し、端末１０及び端末２０ａ，２０ｂが利用できるように、公開情報サーバ３００に公開情報pを公開させる。
【００９６】
ステップＳ３において、センタサーバ１００は、公開情報pおよびマスタ鍵sを用い、利用者Uiの更新鍵hiならびに復号鍵di0を、“2-level HIBE”の鍵生成アルゴリズムに基づいて生成する。
【００９７】
具体的には、センタサーバ１００は、“2-level HIBE”のうち、サブセンタ用のマスタ鍵（秘密情報）sを更新鍵hiとして生成するとともに、利用者Uiの公開鍵として利用されるUi.*（例えば、Uiは電子メールアドレスであり、*は任意の文字など）に対応する復号鍵di0を生成する。なお、復号鍵di0は生成しなくてもよい。
【００９８】
ステップＳ４において、センタサーバ１００は、更新鍵hi及び復号鍵di0を利用者Ui、すなわち、端末１０に送信する。
【００９９】
ステップＳ５において、端末１０は、更新鍵hi及び復号鍵di0を受信して取得する。また、ステップＳ６において、端末１０は、取得した復号鍵di0を復号鍵として格納する。さらに、ステップＳ７において、外部装置５０は、更新鍵hiを端末１０から取得して、格納する。なお、外部装置５０は、上述したように、ネットワーク１を介して、他の端末などがアクセスすることができないように、必要時以外は、ネットワーク１から隔離されていることが好ましい。
【０１００】
ステップＳ８において、端末１０は、ある時点tにおいて、利用者Uiの時点tにおける公開鍵Ui.t（利用者Uiの電子メールアドレスと、時間情報、例えば日付を示す情報とが組み合わされたもの）に対応する復号鍵の更新を外部装置５０に依頼する。
【０１０１】
ステップＳ９において、外部装置５０は、復号鍵の更新の依頼を受信する。また、ステップＳ１０において、外部装置５０は、公開情報サーバ３００から公開情報pを取得する。
【０１０２】
ステップＳ１１において、外部装置５０は、公開情報p及び更新鍵hiを用いて、鍵更新情報d’itを“2-level HIBE”の鍵生成アルゴリズムに基づいて生成する。また、ステップＳ１２において、外部装置５０は、鍵更新情報d’itを端末１０に送信する。
【０１０３】
ステップＳ１３において、端末１０は、公開情報pを取得する。また、ステップＳ１４において、端末１０は、鍵更新情報d’itを取得する。
【０１０４】
ステップＳ１５において、端末１０は、公開鍵Ui.tに対応する復号鍵ditに更新する。例えば、端末１０は、鍵更新情報d’itを、公開鍵Ui.tに対応する復号鍵ditとする。
【０１０５】
ステップＳ１６において、端末１０は、更新前の復号鍵をメモリー、つまり、本実施形態では、上述した復号鍵記憶部１３から消去する。
【０１０６】
次に、図４に示すように、ステップＳ１７において、端末２０ａは、公開情報pを取得する。また、ステップＳ１８において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報pを用い、“2-level HIBE”の暗号化アルゴリズムに基づいて暗号文cを作成する。さらに、ステップＳ１９において、端末２０ａは、端末１０に作成した暗号文cを送信する。
【０１０７】
ステップＳ２０において、端末１０は、公開情報pを取得する。また、ステップＳ２１において、端末１０は、暗号文cを受信する。さらに、ステップＳ２２において、端末１０は、公開情報p及び復号鍵ditを用い、“2-level HIBE”の復号アルゴリズムに基づいて、暗号文cを復号し、平文mを取得する。
【０１０８】
（２）動作例２
次に、上述した暗号システムの動作例２について、図５〜図７を参照して説明する。本動作例では、上述した動作例１において、更新鍵hiの漏洩に対する安全性を高めることができる暗号化及び復号方法が用いられる。
【０１０９】
具体的には、本動作例では、“2-level HIBE”によって生成される公開鍵（暗号鍵）及び復号鍵のペアと、“2-level HIBE”ではなく、Boneh, Franklin方式などのIDに基づく暗号方式（以下、IBE方式）によって生成される公開鍵と復号鍵のペアとの２組の鍵を用いることによって、更新鍵hiの漏洩に対する安全性を高めている。
【０１１０】
図５に示すように、ステップＳ２０１において、センタサーバ１００は、“2-level HIBE”の鍵生成アルゴリズムに基づいて、システム共通のマスタ鍵（秘密情報）sを選択するとともに、公開情報pを生成する。
【０１１１】
ステップＳ２０２において、センタサーバ１００はIBE方式に基づいて、マスタ鍵（秘密情報）s’を選択するとともに、公開情報p’を生成する。
【０１１２】
ステップＳ２０３において、センタサーバ１００は、公開情報p及びp’を公開情報サーバ３００に通知し、端末１０及び端末２０ａ，２０ｂが利用できるように、公開情報サーバ３００に公開情報p及びp’を公開させる。
【０１１３】
ステップＳ２０４において、センタサーバ１００は、利用者Uiに対して、公開情報pおよびマスタ鍵sを用いて、利用者Uiの公開鍵Ui.*（例えば、Uiは電子メールアドレスであり、*は任意の文字など）に対応する利用者Uiの復号鍵を生成可能な秘密情報（更新鍵）hiを、当該“2-level HIBE”の鍵生成アルゴリズムに基づいて生成する。具体的には、上述したように、センタサーバ１００は、“2-level HIBE”のうち、サブセンタにおいて用いられるマスタ鍵（秘密情報）sを更新鍵hiとして生成する。
【０１１４】
ステップＳ２０５において、センタサーバ１００は、利用者Uiに対して、公開情報p’およびマスタ鍵s’を用いて、利用者Uiの復号鍵di0を、IBE方式の鍵生成アルゴリズムに基づいて生成する。
【０１１５】
ステップＳ２０６において、センタサーバ１００は、更新鍵hi及び復号鍵di0を利用者Ui、すなわち、端末１０に送信する。
【０１１６】
ステップＳ２０７において、端末１０は、更新鍵hi及び復号鍵di0を受信して取得する。また、ステップＳ２０８において、端末１０は、取得した復号鍵di0を復号鍵として格納する。さらに、ステップＳ２０９において、外部装置５０は、更新鍵hiを端末１０から取得して格納する。
【０１１７】
次に、図６に示すように、ステップＳ２１０において、端末１０は、ある時点tにおいて、利用者Uiの時点tにおける公開鍵Ui.t（利用者Uiの電子メールアドレスと、時間情報、例えば日付を示す情報とが組み合わされたもの）に対応する復号鍵の更新を外部装置５０に依頼する。
【０１１８】
ステップＳ２１１において、外部装置５０は、復号鍵の更新の依頼を受信する。また、ステップＳ２１２において、外部装置５０は、公開情報サーバ３００から公開情報p及びp’を取得する。
【０１１９】
ステップＳ２１３において、外部装置５０は、公開情報p及び更新鍵hiを用いて、当該“2-level HIBE”の鍵生成アルゴリズムに基づいて、当該2-level HIBEにおける公開鍵Ui.tに対応した復号鍵を鍵更新情報d’itとして生成する。また、ステップＳ２１４において、外部装置５０は、鍵更新情報d’itを端末１０に送信する。
【０１２０】
ステップＳ２１５において、端末１０は、公開情報p及びp’を取得する。また、ステップＳ２１６において、鍵更新情報d’itを取得する。
【０１２１】
ステップＳ２１７において、端末１０は、すでに記憶している復号鍵に含まれるdi0と、鍵更新情報d’itとを用いて、復号鍵ditを{di0,d’it}とする。つまり、端末１０は、２種類の復号鍵を記憶する。
【０１２２】
また、ステップＳ２１８において、端末１０は、更新前の復号鍵をメモリー、つまり、本実施形態では、上述した復号鍵記憶部１３から消去する。
【０１２３】
次に、図７に示すように、ステップＳ２１９において、端末２０ａは、公開情報p及びp’を取得する。また、ステップＳ２２０において、端末２０ａは、暗号化する平文mを秘密分散（例えば、上述したShamir方式）により、m1及びm2に分割する。
【０１２４】
ステップＳ２２１において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報pを用いて、“2-level HIBE”の暗号化アルゴリズムに基づいて、平文m1を暗号化することにより、暗号文c1を作成する。また、ステップＳ２２２において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報p’を用いて、IBE方式の暗号化アルゴリズムに基づいて、平文m2を暗号化することにより、暗号文c2を作成する。
【０１２５】
ステップＳ２２３において、端末２０ａは、作成した暗号文c1及びc2を暗号文cとして、
端末１０に送信する。
【０１２６】
ステップＳ２２４において、端末１０は、公開情報p及びp’を取得する。また、ステップＳ２２５において、端末１０は、暗号文cを受信する。
【０１２７】
ステップＳ２２６において、端末１０は、公開情報p及び復号鍵ditを用いて、当該“2-level HIBE”の復号アルゴリズムに基づいて、暗号文cに含まれる暗号文c1を復号し、平文m1を取得する。また、ステップＳ２２７において、端末１０は、公開情報p’及び復号鍵di0を用いて、当該IBEの復号アルゴリズムに基づいて、暗号文cに含まれる暗号文c2を復号し、平文m2を取得する。さらに、ステップＳ２２８において、端末１０は、平文m1及び平文m2から、平文mを復元する。
【０１２８】
（３）変更例１
次に、上述した暗号システムの動作例２において、暗号文の送受信方法を変更した変更例１について、図８を参照しながら説明する。以下、上述した動作例２と異なる点を主に説明するものとし、上述した動作例２のステップＳ２１９以降の動作から説明する。
【０１２９】
同図に示すように、ステップＳ２１９において、端末２０ａは、公開情報p及びp’を取得する。また、ステップＳ２２０’において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報pを用いて、“2-level HIBE”の暗号化アルゴリズムに基づいて、平文mを暗号化することにより、暗号文c1を作成する。
【０１３０】
ステップＳ２２１’において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報p’を用いて、IBE方式の暗号化アルゴリズムに基づいて、ステップＳ２２０’において作成した暗号文c1をさらに暗号化し、暗号文c2を作成する。
【０１３１】
ステップＳ２２２’において、端末２０ａは、作成した暗号文c2を端末１０に送信する。
【０１３２】
ステップＳ２２３’において、端末１０は、公開情報p及びp’を取得する。また、ステップＳ２２４’において、端末１０は、暗号文c2を受信する。
【０１３３】
ステップＳ２２５’において、端末１０は、公開情報p’及び復号鍵di0を用いて、IBEの復号アルゴリズムに基づいて、暗号文c2を復号し、暗号文c1を取得する。また、ステップＳ２２６’において、端末１０は、公開情報p及び復号鍵ditを用いて、“2-level HIBE”の復号アルゴリズムに基づいて、暗号文c1を復号し、平文mを取得する。
【０１３４】
（４）変更例２
次に、上述した暗号システムの動作例２において、暗号文の送受信方法を変更した変更例２について、図９及び図１０を参照しながら説明する。本変更例では、上述した動作例２や変更例１と異なる暗号文の送受信方法を用いることにより、安全性、具体的には、復号処理の結果、すなわち、平文ｍの情報が１ビットたりとも漏洩していないことを数学的に証明することができる。
【０１３５】
以下、上述した動作例２と異なる点を主に説明するものとし、上述した動作例２のステップＳ２１９以降の動作から説明する。
【０１３６】
図９に示すように、ステップＳ２１９において、端末２０ａは、公開情報p及びp’を取得する。また、ステップＳ２２０”において、端末２０ａは、暗号化する平文mを秘密分散（例えば、上述したShamir方式）により、m1及びm2に分割する。また、ステップＳ２２１”において、端末２０ａは、乱数r1およびr2を選択する。
【０１３７】
ステップＳ２２２”において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報pを用いて、“2-level HIBE”の暗号化アルゴリズムに基づいて、平文m1と乱数r1とを結合した、（m1‖r1）（を含む情報）を暗号化することにより、暗号文c1を作成する。なお、かかる場合、確率的暗号化のための乱数として、（m,m1,r1,r2）を指定されたハッシュ関数（例えば、SHA-1）を用いて得られるハッシュ値を用いる。
【０１３８】
ステップＳ２２３”において、端末２０ａは、ある時点tにおける利用者Uiの公開鍵Ui.t及び公開情報p’を用いて、IBE方式の暗号化アルゴリズムに基づいて、平文m2と乱数r2とを結合した（m2‖r2）（を含む情報）を暗号化することにより、暗号文c2を作成する。なお、かかる場合、確率的暗号化のための乱数として、（m,m2,r1,r2）を指定されたハッシュ関数（例えば、SHA-1）を用いて得られるハッシュ値を用いる。
【０１３９】
ステップＳ２２４“において、端末２０ａは、作成した暗号文c1及びc2を暗号文cとして、端末１０に送信する。
【０１４０】
ステップＳ２２５”において、端末１０は、公開情報p及びp’を取得する。また、ステップＳ２２６”において、端末１０は、暗号文cを受信する。
【０１４１】
ステップＳ２２７”において、端末１０は、公開情報p及び復号鍵ditを用いて、“2-level HIBE”の復号アルゴリズムに基づいて、暗号文cに含まれる暗号文c1を復号し、{m1,r1}を取得する。また、ステップＳ２２８”において、端末１０は、公開情報p’及び復号鍵di0を用いて、IBEの復号アルゴリズムに基づいて、暗号文cに含まれる暗号文c2を復号し、{m2,r2}を取得する。さらに、ステップＳ２２９”において、端末１０は、平文m1及び平文m2から、平文mを復元する。
【０１４２】
次に、図１０に示すように、ステップＳ３０１において、端末１０は、利用者Uiの公開鍵Ui.t及び公開情報pを用いて、“2-level HIBE”の暗号化アルゴリズムに基づいて、平文m1と乱数r1とを結合した、（m1‖r1）（を含む情報）を暗号化することにより、暗号文c1’を作成する。なお、かかる場合、確率的暗号化のための乱数として、（m,m1,r1,r2）を指定されたハッシュ関数（例えば、SHA-1）を用いて得られるハッシュ値を用いる。
【０１４３】
ステップＳ３０２において、端末１０は、利用者Uiの公開鍵Ui.t及び公開情報p’を用いて、IBE方式の暗号化アルゴリズムに基づいて、平文m2と乱数r2とを結合した（m2‖r2）（を含む情報）を暗号化することにより、暗号文c2’を作成する。なお、かかる場合、確率的暗号化のための乱数として、（m,m2,r1,r2）を指定されたハッシュ関数（例えば、SHA-1）を用いて得られるハッシュ値を用いる。
【０１４４】
ステップＳ３０３において、端末１０は、ステップＳ２２６”において受信した暗号文cに含まれる暗号文c1及びc2と、ステップＳ３０１及びＳ３０２において作成した暗号文c1’及びc2’とが、c1’=c1、c2’=c2であるか否かを判定する。
【０１４５】
ステップＳ３０４において、端末１０は、ステップＳ３０３の判定の結果、c1’=c1、c2’=c2でない場合、復号が正常にできなかったものとして、つまり、暗号文が利用者Uiの公開鍵に基づいて、正常に作成されていないものとして、平文mを出力しない。
【０１４６】
ステップＳ３０５において、端末１０は、ステップＳ３０３の判定の結果、c1’=c1、c2’=c2である場合、暗号文が利用者Uiの公開鍵に基づいて、正常に作成されているものとして、平文mを利用者Uiが利用できるように出力する。
【０１４７】
（作用・効果）
上述した本発明の実施形態によれば、IDに基づく暗号方式において、利用者Ui（端末１０）は、センタサーバ１００などと交信を行うことなく、復号鍵を更新することができる。
【０１４８】
また、本実施形態によれば、IDに基づく暗号方式において、利用者Ui（端末１０）は、センタサーバ１００などと交信を行うことなく、復号鍵を更新することができ、かつ、利用者Uiと、復号鍵を更新する時刻を示す情報から構成される利用者Uiのある時点における公開鍵（Ui.t）に対応する復号鍵（dit）を、随時自由に更新することができる。
【０１４９】
また、上述した動作例２及び変更例１によれば、公開鍵（暗号鍵）・復号鍵のペアが２組利用（“2-level HIBE”及びBoneh, Franklin方式などのIBE方式）されるため、外部装置５０に記憶されている秘密情報、つまり、“2-level HIBE”の鍵生成アルゴリズムに基づいて生成される復号鍵の更新に用いられる更新鍵hiが、他者に漏洩した場合でも安全な、IDに基づく暗号化および復号方法を提供することができる。
【０１５０】
さらに、上述した変更例２によれば、更新鍵hiが他者に漏洩した場合でも、暗号文の安全性、つまり、平文ｍの情報が１ビットたりとも漏洩していないことを数学的に証明することができる、IDに基づく暗号化および復号方法を提供することができる。特に、利用者Uiに対して送信するために作成された暗号文を不正に解読しようとする攻撃者は、暗号化に利用される当該２つの復号鍵を取得しない限り、更新鍵hiを入手したとしても、当該暗号文を解読することが必ずしもできない。このため、利用者は、非常に高い安全性を確保しつつ、暗号文の送受信を行うことができる。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施形態に係る暗号システムを含むネットワーク構成を示す図である。
【図２】本発明の実施形態に係る暗号システムの論理ブロック構成を示す図である。
【図３】本発明の実施形態に係る暗号システムの動作例１を示すシーケンス図である。
【図４】本発明の実施形態に係る暗号システムの動作例１を示すシーケンス図である。
【図５】本発明の実施形態に係る暗号システムの動作例２を示すシーケンス図である。
【図６】本発明の実施形態に係る暗号システムの動作例２を示すシーケンス図である。
【図７】本発明の実施形態に係る暗号システムの動作例２を示すシーケンス図である。
【図８】本発明の実施形態に係る暗号システムの動作の変更例１を示すシーケンス図である。
【図９】本発明の実施形態に係る暗号システムの動作の変更例２を示すシーケンス図である。
【図１０】本発明の実施形態に係る暗号システムの動作の変更例２を示すシーケンス図である。
【符号の説明】
【０１５２】
１…ネットワーク、１０…端末、１１…通信部、１３…復号鍵記憶部、１５…復号鍵更新部、１７ａ…復号部、１７ｂ…暗号化部、１７ｃ…判定部、１９…公開情報取得部、２０ａ，２０ｂ…端末、２１…通信部、２３…公開情報取得部、２５ａ…分割部、２５ｂ…暗号化部、２７…乱数選択部、５０…外部装置、５１…通信部、５３…更新鍵記憶部、５５…鍵更新情報生成部、１００…センタサーバ、１０１…通信部、１０３…更新鍵生成部、１０５…復号鍵生成部、１０７…公開情報生成部、１０９…マスタ鍵選択部、３００…公開情報サーバ、３０１…公開情報記憶部
【図１】
2005198189.tif 000003
【図２】
2005198189.tif 000004
【図３】
2005198189.tif 000005
【図４】
2005198189.tif 000006
【図５】
2005198189.tif 000007
【図６】
2005198189.tif 000008
【図７】
2005198189.tif 000009
【図８】
2005198189.tif 000010
【図９】
2005198189.tif 000011
【図１０】
2005198189.tif 000012