(57)【要約】【課題】ＩＤベース暗号方式におけるマスタ鍵を保持するサーバに対してユーザのＩＤをブラインドしつつ、ユーザの秘密鍵を効率的に生成するサーバを提供する。【解決手段】ブラインドサーバ２００において、公開情報取得部２０２は、マスタ秘密鍵ｋを生成する部分秘密鍵生成サーバ１００から公開情報とハッシュ関数Ｈ（ｘ）とを取得する。ハッシュ値計算部２０４は、データ受信端末装置４００のＩＤを入力し、ＩＤからハッシュ関数Ｈ（ｘ）によりハッシュ値ｈを計算する。ブラインド処理部２０５は、公開情報とハッシュ値ｈとから、ＩＤをブラインドしたＩＤ’を生成する。情報送信部２０８は、ＩＤ’を部分秘密鍵生成サーバ１００に送信して公開情報とマスタ秘密鍵ｋとＩＤ’とに基づいて部分鍵ｄ’を生成させ、秘密鍵生成部２０６は、公開情報とハッシュ値ｈと部分鍵ｄ’とに基づいて秘密鍵ｄを生成する。【選択図】図１
2010272899.tif 000002
【特許請求の範囲】
【請求項１】
所定の公開情報と自己を識別する端末識別子から所定のハッシュ関数により得られるハッシュ値とを用いてＩＤ（識別子）ベース暗号方式で暗号化された暗号文を受信する端末装置に対して、当該暗号文を復号するための秘密鍵を生成する鍵生成システムであって、
前記公開情報と前記ハッシュ関数とを記憶装置に記憶する情報公開部と、
前記情報公開部により記憶された公開情報から、前記秘密鍵の基となるマスタ鍵を処理装置で生成するマスタ鍵生成部とを有する鍵生成サーバ装置を備えるとともに、
前記鍵生成サーバ装置の情報公開部により記憶された公開情報とハッシュ関数とを取得する公開情報取得部と、
前記端末識別子を入力し、入力した端末識別子から前記公開情報取得部により取得されたハッシュ関数により前記ハッシュ値を処理装置で計算するハッシュ値計算部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値とから、前記端末識別子をブラインドしたブラインド識別子を処理装置で生成するブラインド処理部と、
前記ブラインド処理部により生成されたブラインド識別子を前記鍵生成サーバ装置に送信する情報送信部とを有するブラインドサーバ装置を備え、
前記鍵生成サーバ装置は、さらに、
前記ブラインドサーバ装置の情報送信部により送信されたブラインド識別子を受信する情報受信部と、
前記情報公開部により記憶された公開情報と前記マスタ鍵生成部により生成されたマスタ鍵と前記情報受信部により受信されたブラインド識別子とに基づいて、部分鍵を処理装置で生成する部分鍵生成部と、
前記部分鍵生成部により生成された部分鍵を前記ブラインドサーバ装置に送信する情報送信部とを有し、
前記ブラインドサーバ装置は、さらに、
前記鍵生成サーバ装置の情報送信部により送信された部分鍵を受信する情報受信部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記情報受信部により受信された部分鍵とに基づいて、前記秘密鍵を処理装置で生成する秘密鍵生成部とを有することを特徴とする鍵生成システム。
【請求項２】
前記ブラインドサーバ装置は、さらに、
第１乱数を処理装置で生成する乱数生成部を有し、
前記ブラインドサーバ装置の秘密鍵生成部は、前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記情報受信部により受信された部分鍵と前記乱数生成部により生成された第１乱数とに基づいて、前記秘密鍵を処理装置で生成することを特徴とする請求項１に記載の鍵生成システム。
【請求項３】
前記ブラインドサーバ装置の乱数生成部は、さらに、第２乱数を処理装置で生成し、
前記ブラインドサーバ装置のブラインド処理部は、前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記乱数生成部により生成された第２乱数とから、前記ブラインド識別子を処理装置で生成し、
前記ブラインドサーバ装置の秘密鍵生成部は、前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記情報受信部により受信された部分鍵と前記乱数生成部により生成された第１乱数と第２乱数とに基づいて、前記秘密鍵を処理装置で生成することを特徴とする請求項２に記載の鍵生成システム。
【請求項４】
前記鍵生成サーバ装置は、さらに、
第３乱数を処理装置で生成する乱数生成部を有し、
前記鍵生成サーバ装置の部分鍵生成部は、前記情報公開部により記憶された公開情報と前記マスタ鍵生成部により生成されたマスタ鍵と前記情報受信部により受信されたブラインド識別子と前記乱数生成部により生成された第３乱数とに基づいて、前記部分鍵を処理装置で生成することを特徴とする請求項１から３までのいずれかに記載の鍵生成システム。
【請求項５】
前記ブラインドサーバ装置は、さらに、
前記端末装置の認証を処理装置で行う認証部を有し、
前記ブラインドサーバ装置のハッシュ値計算部は、前記認証部による認証が成功した場合に、前記端末識別子を入力することを特徴とする請求項１から４までのいずれかに記載の鍵生成システム。
【請求項６】
前記鍵生成サーバ装置は、さらに、
前記ブラインドサーバ装置の認証を処理装置で行う認証部を有し、
前記鍵生成サーバ装置の部分鍵生成部は、前記認証部による認証が成功した場合に、前記部分鍵を生成することを特徴とする請求項１から５までのいずれかに記載の鍵生成システム。
【請求項７】
所定の公開情報と自己を識別する端末識別子から所定のハッシュ関数により得られるハッシュ値とを用いてＩＤ（識別子）ベース暗号方式で暗号化された暗号文を受信する端末装置に対して、当該暗号文を復号するための秘密鍵を生成する鍵生成方法であって、
鍵生成サーバ装置が、前記公開情報と前記ハッシュ関数とを記憶装置に記憶し、
前記鍵生成サーバ装置が、記憶装置に記憶された公開情報から、前記秘密鍵の基となるマスタ鍵を処理装置で生成し、
ブラインドサーバ装置が、前記鍵生成サーバ装置により記憶された公開情報とハッシュ関数とを取得し、
前記ブラインドサーバ装置が、前記端末識別子を入力し、入力した端末識別子から前記取得したハッシュ関数により前記ハッシュ値を処理装置で計算し、
前記ブラインドサーバ装置が、前記取得した公開情報と前記計算したハッシュ値とから、前記端末識別子をブラインドしたブラインド識別子を処理装置で生成し、
前記ブラインドサーバ装置が、前記生成したブラインド識別子を前記鍵生成サーバ装置に送信し、
前記鍵生成サーバ装置が、前記ブラインドサーバ装置により送信されたブラインド識別子を受信し、
前記鍵生成サーバ装置が、記憶装置に記憶された公開情報と前記生成したマスタ鍵と前記受信したブラインド識別子とに基づいて、部分鍵を処理装置で生成し、
前記鍵生成サーバ装置が、前記生成した部分鍵を前記ブラインドサーバ装置に送信し、
前記ブラインドサーバ装置が、前記鍵生成サーバ装置により送信された部分鍵を受信し、
前記ブラインドサーバ装置が、前記取得した公開情報と前記計算したハッシュ値と前記受信した部分鍵とに基づいて、前記秘密鍵を処理装置で生成することを特徴とする鍵生成方法。
【請求項８】
所定の公開情報と自己を識別する端末識別子から所定のハッシュ関数により得られるハッシュ値とを用いてＩＤ（識別子）ベース暗号方式で暗号化された暗号文を受信する端末装置に対して、当該暗号文を復号するための秘密鍵を生成するブラインドサーバ装置であって、
前記公開情報と前記ハッシュ関数とを公開するとともに、前記公開情報から、前記秘密鍵の基となるマスタ鍵を生成する鍵生成サーバ装置から、前記公開情報と前記ハッシュ関数とを取得する公開情報取得部と、
前記端末識別子を入力し、入力した端末識別子から前記公開情報取得部により取得されたハッシュ関数により前記ハッシュ値を処理装置で計算するハッシュ値計算部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値とから、前記端末識別子をブラインドしたブラインド識別子を処理装置で生成するブラインド処理部と、
前記ブラインド処理部により生成されたブラインド識別子を前記鍵生成サーバ装置に送信して、前記鍵生成サーバ装置に前記公開情報と前記マスタ鍵と当該ブラインド識別子とに基づいて部分鍵を生成させる情報送信部と、
前記鍵生成サーバ装置から前記部分鍵を受信する情報受信部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記情報受信部により受信された部分鍵とに基づいて、前記秘密鍵を処理装置で生成する秘密鍵生成部とを有することを特徴とするブラインドサーバ装置。
【請求項９】
所定の公開情報と自己を識別する端末識別子から所定のハッシュ関数により得られるハッシュ値とを用いてＩＤ（識別子）ベース暗号方式で暗号化された暗号文を受信する端末装置に対して、当該暗号文を復号するための秘密鍵を生成するプログラムであって、
前記公開情報と前記ハッシュ関数とを公開するとともに、前記公開情報から、前記秘密鍵の基となるマスタ鍵を生成する鍵生成サーバ装置から、前記公開情報と前記ハッシュ関数とを取得する公開情報取得処理と、
前記端末識別子を入力し、入力した端末識別子から前記公開情報取得処理により取得されたハッシュ関数により前記ハッシュ値を処理装置で計算するハッシュ値計算処理と、
前記公開情報取得処理により取得された公開情報と前記ハッシュ値計算処理により計算されたハッシュ値とから、前記端末識別子をブラインドしたブラインド識別子を処理装置で生成するブラインド処理と、
前記ブラインド処理により生成されたブラインド識別子を前記鍵生成サーバ装置に送信して、前記鍵生成サーバ装置に前記公開情報と前記マスタ鍵と当該ブラインド識別子とに基づいて部分鍵を生成させる情報送信処理と、
前記鍵生成サーバ装置から前記部分鍵を受信する情報受信処理と、
前記公開情報取得処理により取得された公開情報と前記ハッシュ値計算処理により計算されたハッシュ値と前記情報受信処理により受信された部分鍵とに基づいて、前記秘密鍵を処理装置で生成する秘密鍵生成処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラムに関するものである。本発明は、特に、ドメイン管理可能なブラインドＩＤ（識別子）ベース暗号システムに関するものである。
【背景技術】
【０００２】
ＩＤベース暗号（ＩＢＥ：Ｉｄｅｎｔｉｔｙ・Ｂａｓｅｄ・Ｅｎｃｒｙｐｔｉｏｎ）はＳｈａｍｉｒによってＰＫＩ（Ｐｕｂｌｉｃ・Ｋｅｙ・Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）における公開鍵証明書の管理を容易にするためのアプローチとして１９８４年に紹介された。紹介されてから１７年経過した２００１年にＢｏｎｅｈとＦｒａｎｋｌｉｎによって完全なるＩＢＥスキームが提案され、現在までそのスキームを利用した様々なシステムが提案されている（例えば、特許文献１、非特許文献１〜４参照）。中でも、従来からＩＢＥではＰＫＧ（Ｐｒｉｖａｔｅ・Ｋｅｙ・Ｇｅｎｅｒａｔｏｒ）がユーザ秘密鍵を生成するため、全てのユーザ秘密鍵がＰＫＧに知られてしまうという鍵供託（ｋｅｙ・ｅｓｃｒｏｗ）問題が議論されており、この問題を解決するためにブラインドＩＤベース暗号と呼ばれる技術が注目され始めている。
【０００３】
また、従来、双方向ネットワークに高速片方向回線を付加した非対称ネットワークシステムにおいて、サーバがクライアントを特定できず、またネットワーク上の通信の盗聴者が通信内容を知ることができない、匿名通信方法が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２１０６３９号公報
【特許文献２】特開平１０−３３６１６８号公報
【非特許文献】
【０００５】
【非特許文献１】Ｄａｎ  Ｂｏｎｅｈ，  ｅｔ  ａｌ．，  “Ｉｄｅｎｔｉｔｙ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  ｆｒｏｍ  ｔｈｅ  Ｗｅｉｌ  Ｐａｉｒｉｎｇ，”  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＣＲＹＰＴＯ  ２００１，  ｖｏｌｕｍｅ  ２１３９，  ｐａｇｅｓ  ２１３−２２９，  Ｓｐｒｉｎｇｅｒ，  ２００１
【非特許文献２】Ｓａｔｔａｍ  Ｓ．  Ａｌ−Ｒｉｙａｍｉ，  ｅｔ  ａｌ．，  “Ｃｅｒｔｉｆｉｃａｔｅｌｅｓｓ  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｒｙｐｔｏｇｒａｐｈｙ，”  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＡＳＩＡＣＲＹＰＴ  ２００３，  ｖｏｌｕｍｅ  ２８９４，  ｐａｇｅｓ  ４５２−４７３，  Ｓｐｒｉｎｇｅｒ，  ２００３
【非特許文献３】Ｂｙｏｕｎｇｃｈｅｏｎ  Ｌｅｅ，  ｅｔ  ａｌ．，  “Ｓｅｃｕｒｅ  Ｋｅｙ  Ｉｓｓｕｉｎｇ  ｉｎ  ＩＤ−ｂａｓｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｅｃｏｎｄ  Ａｕｓｔｒａｌｉａｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｗｏｒｋｓｈｏｐ  −  ＡＩＳＷ  ２００４，  ｖｏｌｕｍｅ  ３２，  ｐａｇｅｓ  ６９−７４，  Ａｕｓｔｒａｌｉａｎ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ，  ２００４
【非特許文献４】Ｖｉｐｕｌ  Ｇｏｙａｌ，  “Ｒｅｄｕｃｉｎｇ  Ｔｒｕｓｔ  ｉｎ  ｔｈｅ  ＰＫＧ  ｉｎ  Ｉｄｅｎｔｉｔｙ  Ｂａｓｅｄ  Ｃｒｙｐｔｏｓｙｓｔｅｍｓ，”  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＣＲＹＰＴＯ  ２００７，  ｖｏｌｕｍｅ  ４６２２，  ｐａｇｅｓ  ４３０−４４７，  Ｓｐｒｉｎｇｅｒ，  ２００７
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１は、ＩＢＥの現実解となるオリジナルのスキーム及びシステムの発明に関するものである。この文献では階層型ＩＢＥを考案している。階層型ＩＢＥには、ルートＰＫＧの下にサブＰＫＧを構成し、ＰＫＧ１台あたりの負荷を分散させる狙いがある。しかし、ルートＰＫＧのルート秘密鍵を用いてサブＰＫＧの秘密鍵及びユーザ秘密鍵を生成するため、ルートＰＫＧのルート秘密鍵から全てのサブＰＫＧの秘密鍵及び全てのユーザ秘密鍵が知られてしまうという点で、鍵供託問題が通常のＩＢＥと同様もしくはよりリスクの高い形で存在するという課題があった。
【０００７】
非特許文献２は、ＣＬ−ＰＫＣ（Ｃｅｒｔｉｆｉｃａｔｅｌｅｓｓ・Ｐｕｂｌｉｃ・Ｋｅｙ・Ｃｒｙｐｔｏｇｒａｐｈｙ）と呼ばれるＩＢＥの鍵供託問題を解決するための技術に関するものである。ＰＫＧが部分秘密鍵と呼ばれる実際の秘密鍵を生成するために必要なデータをユーザに送付し、ユーザが秘密鍵を生成する。しかしこの技術は、ユーザがユーザ公開鍵を作成しなければならず、しかもユーザ公開鍵も公開情報として公開しなければならないため、ＰＫＩと同様にユーザ公開鍵の管理及びダウンロードが手間となるという課題があった。
【０００８】
非特許文献３は、非特許文献１や非特許文献２と比較してＰＫＧへの認証回数の軽減やセキュアチャネルを利用しない等の点で有利な、ＩＢＥの鍵供託問題を解決するための技術に関するものである。この技術では、ＰＫＧのほかにＫＰＡ（Ｋｅｙ・Ｐｒｉｖａｃｙ・Ａｕｔｈｏｒｉｔｙ）と呼ばれる鍵配布中継サーバを用いるが、ユーザは複数あるＫＰＡ全てにアクセスし、それぞれから部分秘密鍵を取得しなければ秘密鍵を生成することができないため、秘密鍵の生成にコストがかかるという課題があった。
【０００９】
非特許文献４は、Ａ−ＩＢＥ（Ａｃｃｏｕｎｔａｂｌｅ・Ａｕｔｈｏｒｉｔｙ・Ｉｄｅｎｔｉｔｙ・Ｂａｓｅｄ・Ｅｎｃｒｙｐｔｉｏｎ）と呼ばれるＰＫＧが不正に生成した秘密鍵の不正を証明するための技術に関するものである。上述した技術と同様にＩＢＥの鍵供託問題を解決できるが、ＰＫＧに対してＩＤをブラインドにすることはできないという課題があった。
【００１０】
特許文献１は、階層型ＩＢＥの鍵生成のシステムで、Ｗｅｉｌ・ｐａｉｒｉｎｇ等の写像を用いた従来の暗号化通信の安全性に依拠することなく、他の数学的問題に基づいて暗号化通信の安全性を確保するシステムに関するものである。しかし、通常の階層型ＩＢＥシステムと同様、ルートＰＫＧから中継サーバのマスタ秘密鍵を生成するため、全てのユーザ秘密鍵がルートＰＫＧに知られてしまうという点で、鍵供託問題が存在するという課題があった。
【００１１】
特許文献２は、クライアントがコンテンツサーバに要求したコンテンツを、中継サーバを用いることで、クライアント情報だけをブラインドにしつつ、コンテンツを閲覧する方式に関するものである。しかし、この方式では、コンテンツ自体にクライアント情報が含まれていないことが前提となっており、ＩＢＥにおけるユーザ公開鍵（ＩＤ）等、コンテンツ自体にクライアント情報が含まれている場合、サーバに対してクライアント情報をブラインドにしつつシステムを運用することは不可能であるという課題があった。
【００１２】
本発明は、例えば、ＩＤベース暗号方式におけるマスタ鍵を保持するサーバに対してユーザのＩＤをブラインドしつつ、ユーザの秘密鍵を効率的に生成するサーバを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一の態様に係る鍵生成システムは、
所定の公開情報と自己を識別する端末識別子から所定のハッシュ関数により得られるハッシュ値とを用いてＩＤ（識別子）ベース暗号方式で暗号化された暗号文を受信する端末装置に対して、当該暗号文を復号するための秘密鍵を生成する鍵生成システムであって、
前記公開情報と前記ハッシュ関数とを記憶装置に記憶する情報公開部と、
前記情報公開部により記憶された公開情報から、前記秘密鍵の基となるマスタ鍵を処理装置で生成するマスタ鍵生成部とを有する鍵生成サーバ装置を備えるとともに、
前記鍵生成サーバ装置の情報公開部により記憶された公開情報とハッシュ関数とを取得する公開情報取得部と、
前記端末識別子を入力し、入力した端末識別子から前記公開情報取得部により取得されたハッシュ関数により前記ハッシュ値を処理装置で計算するハッシュ値計算部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値とから、前記端末識別子をブラインドしたブラインド識別子を処理装置で生成するブラインド処理部と、
前記ブラインド処理部により生成されたブラインド識別子を前記鍵生成サーバ装置に送信する情報送信部とを有するブラインドサーバ装置を備え、
前記鍵生成サーバ装置は、さらに、
前記ブラインドサーバ装置の情報送信部により送信されたブラインド識別子を受信する情報受信部と、
前記情報公開部により記憶された公開情報と前記マスタ鍵生成部により生成されたマスタ鍵と前記情報受信部により受信されたブラインド識別子とに基づいて、部分鍵を処理装置で生成する部分鍵生成部と、
前記部分鍵生成部により生成された部分鍵を前記ブラインドサーバ装置に送信する情報送信部とを有し、
前記ブラインドサーバ装置は、さらに、
前記鍵生成サーバ装置の情報送信部により送信された部分鍵を受信する情報受信部と、
前記公開情報取得部により取得された公開情報と前記ハッシュ値計算部により計算されたハッシュ値と前記情報受信部により受信された部分鍵とに基づいて、前記秘密鍵を処理装置で生成する秘密鍵生成部とを有することを特徴とする。
【発明の効果】
【００１４】
本発明の一の態様によれば、ブラインドサーバ装置が、マスタ鍵を生成する鍵生成サーバ装置から所定の公開情報と所定のハッシュ関数とを取得し、端末識別子を入力し、端末識別子からハッシュ関数によりハッシュ値を計算し、公開情報とハッシュ値とから、端末識別子をブラインドしたブラインド識別子を生成し、ブラインド識別子を鍵生成サーバ装置に送信して公開情報とマスタ鍵とブラインド識別子とに基づいて部分鍵を生成させ、公開情報とハッシュ値と部分鍵とに基づいて秘密鍵を生成するため、鍵生成サーバ装置に対してユーザのＩＤをブラインドしつつ、ユーザの秘密鍵を効率的に生成することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る鍵生成システムの構成を示すブロック図である。
【図２】実施の形態１に係る各装置のハードウェア構成の一例を示す図である。
【図３】実施の形態１に係る部分秘密鍵生成サーバの動作を示すフローチャートである。
【図４】実施の形態１に係るデータ受信端末装置の動作を示すフローチャートである。
【図５】実施の形態１に係るブラインドサーバの動作を示すフローチャートである。
【図６】実施の形態１に係る部分秘密鍵生成サーバの動作を示すフローチャートである。
【図７】実施の形態１に係るデータ送信端末装置の動作を示すフローチャートである。
【図８】実施の形態１に係るデータ受信端末装置の動作を示すフローチャートである。
【図９】実施の形態２に係る鍵生成システムの構成を示すブロック図である。
【図１０】実施の形態３に係る鍵生成システムの構成を示すブロック図である。
【図１１】実施の形態３に係るブラインドサーバの動作を示すフローチャートである。
【図１２】実施の形態３に係る部分秘密鍵生成サーバの動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図を用いて説明する。
【００１７】
実施の形態１．
図１は、本実施の形態に係る鍵生成システム１０の構成を示すブロック図である。
【００１８】
図１において、鍵生成システム１０は、部分秘密鍵生成サーバ１００（鍵生成サーバ装置）、ブラインドサーバ２００（ブラインドサーバ装置）、データ送信端末装置３００、データ受信端末装置４００（端末装置）を備える。部分秘密鍵生成サーバ１００とブラインドサーバ２００とは、インターネット等のネットワーク２０を介して互いに通信をする。ブラインドサーバ２００とデータ受信端末装置４００とは、企業の社内ネットワーク等、セキュアなネットワーク３０を介して互いに通信をする。データ送信端末装置３００とデータ受信端末装置４００とは、インターネット等のネットワーク２０を介して互いに通信をする。なお、複数のブラインドサーバ２００、複数のデータ送信端末装置３００が、ネットワーク２０に接続されていても構わない。また、複数のデータ受信端末装置４００が、ネットワーク３０に接続されていても構わない。例えば、同じドメイン（企業の部署等）に属する複数のデータ受信端末装置４００を、そのドメインのネットワーク３０を介して、そのドメイン専用のブラインドサーバ２００に接続させるという構成をとれば、ドメイン管理が容易でセキュアなシステムを提供することができる。
【００１９】
部分秘密鍵生成サーバ１００は、ＩＤ（識別子）ベース暗号（ＩＢＥ）における部分秘密鍵を生成するサーバであり、素数生成部１０１、乱数生成部１０２、情報公開部１０３、マスタ鍵生成部１０４、部分鍵生成部１０５、情報受信部１０６、情報送信部１０７を有する。図示していないが、部分秘密鍵生成サーバ１００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを具備する。ハードウェアは部分秘密鍵生成サーバ１００の各部によって利用される。
【００２０】
ブラインドサーバ２００は、ＩＤをブラインドする中継サーバであり、乱数生成部２０１、公開情報取得部２０２、認証部２０３、ハッシュ値計算部２０４、ブラインド処理部２０５、秘密鍵生成部２０６、情報受信部２０７、情報送信部２０８を有する。図示していないが、ブラインドサーバ２００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを具備する。ハードウェアはブラインドサーバ２００の各部によって利用される。
【００２１】
データ送信端末装置３００は、暗号データの送信者によって利用される端末であり、乱数生成部３０１、公開情報取得部３０２、暗号処理部３０３、情報受信部３０５、情報送信部３０６を有する。図示していないが、データ送信端末装置３００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを具備する。ハードウェアはデータ送信端末装置３００の各部によって利用される。
【００２２】
データ受信端末装置４００は、暗号データの受信者によって利用される端末であり、公開情報取得部４０２、復号処理部４０４、情報受信部４０５、情報送信部４０６を有する。図示していないが、データ受信端末装置４００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを具備する。ハードウェアはデータ受信端末装置４００の各部によって利用される。
【００２３】
図２は、鍵生成システム１０の各装置（部分秘密鍵生成サーバ１００、ブラインドサーバ２００、データ送信端末装置３００、データ受信端末装置４００）のハードウェア構成の一例を示す図である。
【００２４】
図２において、部分秘密鍵生成サーバ１００、ブラインドサーバ２００、データ送信端末装置３００、あるいは、データ受信端末装置４００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００２５】
部分秘密鍵生成サーバ１００、ブラインドサーバ２００、データ送信端末装置３００、あるいは、データ受信端末装置４００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【００２６】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００２７】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワーク２０，３０の一例である。
【００２８】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２９】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００３０】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００３１】
図３は、部分秘密鍵生成サーバ１００がマスタ秘密鍵と公開パラメータを生成する動作を示すフローチャートである。
【００３２】
部分秘密鍵生成サーバ１００の素数生成部１０１は、素数ｐを処理装置で生成する。部分秘密鍵生成サーバ１００の情報公開部１０３は、素数生成部１０１により生成された素数ｐを位数とする巡回群Ｇ，Ｇ１、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を処理装置で生成し、生成した巡回群Ｇの生成元ｇを記憶装置に記憶する。即ち、部分秘密鍵生成サーバ１００は、素数生成部１０１により、素数ｐを生成し、素数ｐを位数とした巡回群Ｇ，Ｇ１を生成し（ステップＳ１０１）、巡回群Ｇの生成元をｇとする（ステップＳ１０２）。Ｇ×Ｇ→Ｇ１が存在する場合、Ｇ１は双線形写像ｅを持つ（ステップＳ１０３）。
【００３３】
部分秘密鍵生成サーバ１００の乱数生成部１０２は、乱数ｇ２，ｇ３（ｇ２，ｇ３∈Ｇ）を処理装置で生成する。即ち、部分秘密鍵生成サーバ１００は、乱数生成部１０２により、ｇ２，ｇ３∈Ｇとなるような乱数ｇ２，ｇ３を生成する（ステップＳ１０４）。
【００３４】
部分秘密鍵生成サーバ１００の乱数生成部１０２は、乱数α（α∈Ｚｑ）を処理装置で生成する。即ち、部分秘密鍵生成サーバ１００は、乱数生成部１０２により、α∈Ｚｑとなるような乱数αを生成する（ステップＳ１０５）。
【００３５】
部分秘密鍵生成サーバ１００の乱数生成部１０２は、ｔ（ｔ＞１）個の乱数ｕｊ（ｕｊ∈Ｇ、ｊ＝１，・・・，ｔ）を生成する。部分秘密鍵生成サーバ１００の情報公開部１０３は、任意の文字列ｘが入力されると、文字列ｘをｎ（ｎ＝｜ｘ｜／ｔ）ビットずつに分割して得られるｔ個のデータａｊと乱数生成部１０２により生成された乱数ｕｊとを用いて、
【数１】
2010272899.tif 000003
を計算し、当該計算結果を文字列ｘのハッシュ値として出力するハッシュ関数Ｈ（ｘ）を処理装置で生成する。即ち、部分秘密鍵生成サーバ１００は、乱数生成部１０２により、ｕｊ∈Ｇとなるような乱数ｕｊを生成し、任意の文字列ｘをｎビットにセグメントするａｊを上記のように用いるハッシュ関数Ｈ（ｘ）を生成する（ステップＳ１０６）。
【００３６】
部分秘密鍵生成サーバ１００の情報公開部１０３は、ｇ１（ｇ１＝ｇα）を処理装置で生成し、公開情報としてｇ，ｇ１，ｇ２，ｇ３を記憶装置に記憶する。また、情報公開部１０３は、生成したハッシュ関数Ｈ（ｘ）を記憶装置に記憶する。ここで、公開情報とハッシュ関数Ｈ（ｘ）とを合わせて、公開パラメータｐａｒａｍｓ＝（ｇ，ｇ１，ｇ２，ｇ３，Ｈ（ｘ））と定義する。即ち、部分秘密鍵生成サーバ１００は、情報公開部１０３により、ｇ１（＝ｇα）を生成し、公開パラメータをｇ，ｇ１，ｇ２，ｇ３，Ｈとし、公開する（ステップＳ１０７）。
【００３７】
部分秘密鍵生成サーバ１００のマスタ鍵生成部１０４は、情報公開部１０３により記憶された公開情報から、ユーザ秘密鍵（データ受信端末装置４００等の秘密鍵）の基となるマスタ秘密鍵ｋ（マスタ鍵）を処理装置で生成する。具体的には、マスタ鍵生成部１０４は、公開情報に含まれるｇ２を底とし、乱数生成部１０２により生成された乱数αを指数とする冪乗を処理装置で計算し、当該計算結果をマスタ秘密鍵ｋとして記憶装置に記憶する。即ち、部分秘密鍵生成サーバ１００は、マスタ鍵生成部１０４により、下式で表されるマスタ秘密鍵ｋを生成する（ステップＳ１０８）。
【数２】
2010272899.tif 000004
【００３８】
ステップＳ１０１〜ステップＳ１０８は、定期的もしくはマスタ秘密鍵ｋの危殆化を考慮して行われるものであるが、暗号通信ごとに行われてもよい。
【００３９】
図４は、データ受信端末装置４００がユーザ秘密鍵の発行を要求する動作を示すフローチャートである。図５は、ブラインドサーバ２００がユーザ秘密鍵を生成する動作を示すフローチャートである。図６は、部分秘密鍵生成サーバ１００が部分秘密鍵を生成する動作を示すフローチャートである。
【００４０】
ブラインドサーバ２００の認証部２０３は、データ受信端末装置４００のＩＤ（端末識別子）とパスワードとを予め記憶装置に記憶しているものとする。即ち、前提条件として、データ受信端末装置４００は、ブラインドサーバ２００にＩＤとパスワードを登録している。
【００４１】
ブラインドサーバ２００の公開情報取得部２０２は、部分秘密鍵生成サーバ１００の情報公開部１０３により記憶された公開情報とハッシュ関数Ｈ（ｘ）とを取得する。即ち、ブラインドサーバ２００は、部分秘密鍵生成サーバ１００が公開している公開パラメータを、公開情報取得部２０２を用いて取得する（ステップＳ３０１）。なお、ステップＳ３０１は部分秘密鍵生成サーバ１００の公開パラメータ変更時のみ実施すればよい。
【００４２】
データ受信端末装置４００の情報送信部４０６は、自己を識別するＩＤとパスワードとをブラインドサーバ２００に送信する。即ち、データ受信端末装置４００は、情報送信部４０６を用いて、ブラインドサーバ２００にＩＤとパスワードを送信する（ステップＳ２０１）。
【００４３】
ブラインドサーバ２００の情報受信部２０７は、データ受信端末装置４００の情報送信部４０６により送信されたＩＤとパスワードとを受信する。ブラインドサーバ２００の認証部２０３は、情報受信部２０７により受信されたＩＤとパスワードとが予め記憶装置に記憶されたＩＤとパスワードと一致するかどうかを処理装置で判定することにより、データ受信端末装置４００の認証を行う。即ち、ブラインドサーバ２００は、情報受信部２０７を用いて、データ受信端末装置４００から送信されたＩＤとパスワードを受信し、認証部２０３に入力する（ステップＳ３０２）。
【００４４】
ブラインドサーバ２００のハッシュ値計算部２０４は、認証部２０３による認証が成功した場合、即ち、ＩＤとパスワードとが一致した場合に、ＩＤを入力し、入力したＩＤから公開情報取得部２０２により取得されたハッシュ関数Ｈ（ｘ）によりハッシュ値ｈを処理装置で計算する。ブラインドサーバ２００のブラインド処理部２０５は、公開情報取得部２０２により取得された公開情報とハッシュ値計算部２０４により計算されたハッシュ値ｈとから、ＩＤをブラインドしたＩＤ’（ブラインド識別子）を処理装置で生成する。本実施の形態では、ブラインドサーバ２００の乱数生成部２０１が乱数ｙ（第２乱数）（ｙ∈Ｚｑ）を処理装置で生成し、ブラインド処理部２０５がＩＤ’を生成する際にこの乱数ｙも利用する。つまり、ブラインド処理部２０５は、公開情報取得部２０２により取得された公開情報とハッシュ値計算部２０４により計算されたハッシュ値ｈと乱数生成部２０１により生成された乱数ｙとから、ＩＤ’を処理装置で生成する。具体的には、ブラインド処理部２０５は、公開情報に含まれるｇを底とし、乱数ｙを指数とする冪乗と、乱数ｙとを処理装置で乗算し、当該乗算結果をＩＤ’として記憶装置に記憶する。即ち、ブラインドサーバ２００は、認証に成功した場合、下式のように、ＩＤと乱数生成部２０１で生成した乱数ｙを用いて、ブラインド処理したＩＤ（ＩＤ’）を生成する（ステップＳ３０３）。なお、下式において、ｉはＩＤを表し、ｉ’はＩＤ’を表している。
【数３】
2010272899.tif 000005
【００４５】
ブラインドサーバ２００の情報送信部２０８は、後述する部分秘密鍵ｄ’（部分鍵）を部分秘密鍵生成サーバ１００に生成させるために、ブラインド処理部２０５により生成されたＩＤ’を部分秘密鍵生成サーバ１００に送信する。即ち、ブラインドサーバ２００は、情報送信部２０８を用いて、部分秘密鍵生成サーバ１００にブラインド処理したＩＤ（ＩＤ’）を送信する（ステップＳ３０４）。
【００４６】
部分秘密鍵生成サーバ１００の情報受信部１０６は、ブラインドサーバ２００の情報送信部２０８により送信されたＩＤ’を受信する。即ち、部分秘密鍵生成サーバ１００は、情報受信部１０６を用いて、ブラインドサーバ２００から送信されたＩＤ’を受信する（ステップＳ４０１）。
【００４７】
部分秘密鍵生成サーバ１００の部分鍵生成部１０５は、情報公開部１０３により記憶された公開情報とマスタ鍵生成部１０４により生成されたマスタ秘密鍵ｋと情報受信部１０６により受信されたＩＤ’とに基づいて、部分秘密鍵ｄ’を処理装置で生成する。本実施の形態では、部分秘密鍵生成サーバ１００の乱数生成部１０２が乱数ｒ（第３乱数）（ｒ∈Ｚｑ）を処理装置で生成し、部分鍵生成部１０５が部分秘密鍵ｄ’を生成する際にこの乱数ｒも利用する。つまり、部分鍵生成部１０５は、情報公開部１０３により記憶された公開情報とマスタ鍵生成部１０４により生成されたマスタ秘密鍵ｋと情報受信部１０６により受信されたＩＤ’と乱数生成部１０２により生成された乱数ｒとに基づいて、部分秘密鍵ｄ’を処理装置で生成する。具体的には、部分鍵生成部１０５は、マスタ秘密鍵ｋと、ＩＤ’と公開情報に含まれるｇ３との積を底とし、乱数ｒを指数とする冪乗とを処理装置で乗算し、当該乗算結果を部分秘密鍵ｄ０’として記憶装置に記憶する。また、部分鍵生成部１０５は、公開情報に含まれるｇを底とし、乱数ｒを指数とする冪乗を処理装置で計算し、当該計算結果を付加情報ｄ１’として記憶装置に記憶する。ここでは、部分秘密鍵ｄ０’に付加情報ｄ１’を付加したものが部分秘密鍵ｄ’となる。即ち、部分秘密鍵生成サーバ１００は、乱数生成部１０２により、乱数ｒを生成し、下式のように、生成した乱数ｒを用いて部分秘密鍵ｄ’を生成する（ステップＳ４０２）。
【数４】
2010272899.tif 000006
【００４８】
部分秘密鍵生成サーバ１００の情報送信部１０７は、部分鍵生成部１０５により生成された部分秘密鍵ｄ’をブラインドサーバ２００に送信する。即ち、部分秘密鍵生成サーバ１００は、情報送信部１０７を用いて、ブラインドサーバ２００に部分秘密鍵ｄ’を送信する（ステップＳ４０３）。
【００４９】
ブラインドサーバ２００の情報受信部２０７は、部分秘密鍵生成サーバ１００の情報送信部１０７により送信された部分秘密鍵ｄ’を受信する。即ち、ブラインドサーバ２００は、情報受信部２０７を用いて、部分秘密鍵ｄ’を受信する（ステップＳ３０５）。
【００５０】
ブラインドサーバ２００の秘密鍵生成部２０６は、公開情報取得部２０２により取得された公開情報とハッシュ値計算部２０４により計算されたハッシュ値ｈと情報受信部２０７により受信された部分秘密鍵ｄ’とに基づいて、秘密鍵ｄ（ユーザ秘密鍵）を処理装置で生成する。本実施の形態では、ブラインドサーバ２００の乱数生成部２０１が乱数ｚ（第１乱数）（ｚ∈Ｚｑ）を処理装置で生成し、秘密鍵生成部２０６が秘密鍵ｄを生成する際にこの乱数ｚも利用する。さらに、本実施の形態では、秘密鍵生成部２０６が秘密鍵ｄを生成する際に前述した乱数ｙも利用する。つまり、秘密鍵生成部２０６は、公開情報取得部２０２により取得された公開情報とハッシュ値計算部２０４により計算されたハッシュ値ｈと情報受信部２０７により受信された部分秘密鍵ｄ’と乱数生成部２０１により生成された乱数ｙと乱数ｚとに基づいて、秘密鍵ｄを処理装置で生成する。具体的には、秘密鍵生成部２０６は、部分秘密鍵ｄ’に含まれる部分秘密鍵ｄ０’と部分秘密鍵ｄ’に含まれる付加情報ｄ１’を底とし、乱数ｙを指数とする冪乗との商と、公開情報に含まれるｇ３とハッシュ値ｈとの積を底とし、乱数ｚを指数とする冪乗とを処理装置で乗算し、当該乗算結果を秘密鍵ｄ０として記憶装置に記憶する。また、秘密鍵生成部２０６は、部分秘密鍵ｄ’に含まれる付加情報ｄ１’と、公開情報に含まれるｇを底とし、乱数ｚを指数とする冪乗とを処理装置で乗算し、当該乗算結果を付加情報ｄ１として記憶装置に記憶する。ここでは、秘密鍵ｄ０に付加情報ｄ１を付加したものが秘密鍵ｄとなる。即ち、ブラインドサーバ２００は、乱数生成部２０１により、乱数ｚを生成し、下式のように、部分秘密鍵ｄ’と乱数ｙと乱数ｚを用いて秘密鍵ｄを生成する（ステップＳ３０６）。
【数５】
2010272899.tif 000007
【００５１】
なお、上式において、秘密鍵ｄ０の式の２〜４行目は、ブラインドサーバ２００の秘密鍵生成部２０６によって計算されるものではなく、秘密鍵ｄ０が、マスタ秘密鍵ｋと、ハッシュ値ｈと公開情報に含まれるｇ３との積を底とし、乱数ｒと乱数ｚとの和を指数とする冪乗とを乗算したものに相当することを示したものである。このように、ブラインドサーバ２００の秘密鍵生成部２０６は、部分秘密鍵生成サーバ１００しか知らないマスタ秘密鍵ｋを用いることなく、マスタ秘密鍵ｋを基とする秘密鍵ｄ０を生成することができる。また、上式において、付加情報ｄ１の式の２、３行目は、ブラインドサーバ２００の秘密鍵生成部２０６によって計算されるものではなく、付加情報ｄ１が、公開情報に含まれるｇを底とし、乱数ｒと乱数ｚとの和を指数とする冪乗に相当することを示したものである。このように、ブラインドサーバ２００の秘密鍵生成部２０６は、部分秘密鍵生成サーバ１００しか知らない乱数ｒを用いることなく、乱数ｒの情報を含む付加情報ｄ１を生成することができる。
【００５２】
ブラインドサーバ２００の情報送信部２０８は、秘密鍵生成部２０６により生成された秘密鍵ｄをデータ受信端末装置４００に送信する。即ち、ブラインドサーバ２００は、情報送信部２０８を用いて、秘密鍵ｄを送信する（ステップＳ３０７）。
【００５３】
データ受信端末装置４００の情報受信部４０５は、ブラインドサーバ２００の情報送信部２０８により送信された秘密鍵ｄを受信する。即ち、データ受信端末装置４００は、情報受信部４０５を用いて、秘密鍵ｄを受信する（ステップＳ２０２）。
【００５４】
ステップＳ２０１及びＳ２０２、ステップＳ３０１〜Ｓ３０７、ステップＳ４０１〜Ｓ４０３は、定期的もしくはデータ受信端末装置４００の秘密鍵ｄの危殆化を考慮して行われるものであるが、暗号通信ごとに行われてもよい。
【００５５】
以上のように、本実施の形態によれば、ブラインドサーバ２００が、マスタ秘密鍵ｋを生成する部分秘密鍵生成サーバ１００から公開情報とハッシュ関数Ｈ（ｘ）とを取得し、データ受信端末装置４００のＩＤを入力し、ＩＤからハッシュ関数Ｈ（ｘ）によりハッシュ値ｈを計算し、公開情報とハッシュ値ｈとから、ＩＤをブラインドしたＩＤ’を生成し、ＩＤ’を部分秘密鍵生成サーバ１００に送信して公開情報とマスタ秘密鍵ｋとＩＤ’とに基づいて部分鍵ｄ’を生成させ、公開情報とハッシュ値ｈと部分鍵ｄ’とに基づいて秘密鍵ｄを生成するため、部分秘密鍵生成サーバ１００に対してユーザのＩＤをブラインドしつつ、ユーザの秘密鍵ｄを効率的に生成することが可能となる。また、乱数ｙ、乱数ｚ、乱数ｒを用いることにより、よりセキュアなシステムを提供することが可能となる。
【００５６】
本実施の形態によれば、中継サーバを設置することで、従来のＩＢＥにおけるＰＫＧ（Ｐｒｉｖａｔｅ・Ｋｅｙ・Ｇｅｎｅｒａｔｏｒ）のリスクを下げる、即ち、鍵供託問題を回避することができる。また、ユーザ公開鍵の生成や公開の手間が不要となる。また、ユーザ秘密鍵の生成コストが軽減される。また、ユーザのＩＤをブラインドにしてユーザ秘密鍵を生成するため、従来のＩＢＥにおけるＰＫＧに相当するサーバにＩＤを露呈させることなくＩＤと対になるユーザ秘密鍵のみを生成でき、ユーザの匿名性が高まる。さらに、ドメイン管理が可能となる。
【００５７】
図７は、データ送信端末装置３００がデータを暗号化する動作を示すフローチャートである。
【００５８】
データ送信端末装置３００の公開情報取得部３０２は、部分秘密鍵生成サーバ１００の情報公開部１０３により記憶された公開情報とハッシュ関数Ｈ（ｘ）とを取得する。即ち、データ送信端末装置３００は、公開情報取得部３０２を用いて、部分秘密鍵生成サーバ１００から公開パラメータを取得する（ステップＳ５０１）。なお、ステップＳ５０１は部分秘密鍵生成サーバ１００の公開パラメータ変更時のみ実施すればよい。
【００５９】
データ送信端末装置３００の乱数生成部３０１は、乱数ｓ（第４乱数）（ｓ∈Ｚｑ）を処理装置で生成する。データ送信端末装置３００の暗号処理部３０３は、例えばデータ受信端末装置４００からデータ受信端末装置４００のＩＤを受信することにより、ＩＤを取得し、取得したＩＤから公開情報取得部３０２により取得されたハッシュ関数Ｈ（ｘ）によりハッシュ値ｈを処理装置で計算する。また、暗号処理部３０３は、例えばユーザから平文Ｍの入力を入力装置により受け付けることにより、平文Ｍを取得する。そして、暗号処理部３０３は、計算したハッシュ値ｈと公開情報取得部３０２により取得された公開情報と乱数生成部３０１により生成された乱数ｓとを用いて、取得した平文Ｍを暗号化し、暗号文Ｃを処理装置で生成する。具体的には、暗号処理部３０３は、平文Ｍと、双線形写像ｅ（ｇ１，ｇ２）（公開情報に含まれるｇ１とｇ２とを楕円曲線上の点としたときに点ｇ１と点ｇ２とが双線形写像になっている）を底とし、乱数ｓを指数とする冪乗とを処理装置で乗算し、当該乗算結果を暗号文Ｃ０として記憶装置に記憶する。また、暗号処理部３０３は、ハッシュ値ｈと公開情報に含まれるｇ３との積を底とし、乱数ｓを指数とする冪乗を処理装置で計算し、当該計算結果を第１付加情報Ｃ１として記憶装置に記憶する。また、暗号処理部３０３は、公開情報に含まれるｇを底とし、乱数ｓを指数とする冪乗を処理装置で計算し、当該計算結果を第２付加情報Ｃ２として記憶装置に記憶する。ここでは、暗号文Ｃ０に第１付加情報Ｃ１と第２付加情報Ｃ２とを付加したものが暗号文Ｃとなる。即ち、データ送信端末装置３００は、乱数生成部３０１を用いて、乱数ｓを生成し、下式のように、公開パラメータと乱数ｓとデータ受信端末装置４００のＩＤと平文Ｍを用いて暗号文Ｃを計算する（ステップＳ５０２）。
【数６】
2010272899.tif 000008
【００６０】
データ送信端末装置３００の情報送信部３０６は、暗号処理部３０３により生成された暗号文Ｃをデータ受信端末装置４００に送信する。即ち、データ送信端末装置３００は、情報送信部３０６を用いて、暗号文Ｃをデータ受信端末装置４００に送信する（ステップＳ５０３）。
【００６１】
図８は、データ受信端末装置４００が暗号化されたデータを復号する動作を示すフローチャートである。
【００６２】
データ受信端末装置４００の公開情報取得部４０２は、部分秘密鍵生成サーバ１００の情報公開部１０３により記憶された公開情報とハッシュ関数Ｈ（ｘ）とを取得する。即ち、データ受信端末装置４００は、公開情報取得部４０２を用いて、部分秘密鍵生成サーバ１００から公開パラメータを取得する（ステップＳ６０１）。なお、ステップＳ６０１は部分秘密鍵生成サーバ１００の公開パラメータ変更時のみ実施すればよい。
【００６３】
データ受信端末装置４００の情報受信部４０５は、データ送信端末装置３００の情報送信部３０６により送信された暗号文Ｃを受信する。即ち、データ受信端末装置４００は、情報受信部４０５を用いて、暗号文Ｃを受信する（ステップＳ６０２）。
【００６４】
データ受信端末装置４００の復号処理部４０４は、部分秘密鍵生成サーバ１００の情報公開部１０３により記憶された公開情報と情報受信部４０５により受信された秘密鍵ｄとを用いて、情報受信部４０５により受信された暗号文Ｃを処理装置で復号し、平文Ｍを復元する。具体的には、復号処理部４０４は、暗号文Ｃに含まれる暗号文Ｃ０と双線形写像（ｄ１，Ｃ１）（秘密鍵ｄに含まれる付加情報ｄ１と暗号文Ｃに含まれる第１付加情報Ｃ１とを楕円曲線上の点としたときに点ｄ１と点Ｃ１とが双線形写像になっている）との積を、双線形写像（ｄ０，Ｃ２）（秘密鍵ｄに含まれる秘密鍵ｄ０と暗号文Ｃに含まれる第２付加情報Ｃ２とを楕円曲線上の点としたときに点ｄ０と点Ｃ２とが双線形写像になっている）で、処理装置で除算し、当該除算結果を平文Ｍとして記憶装置に記憶する。そして、復号処理部４０４は、例えば記憶装置に記憶した平文Ｍを出力装置により表示画面に出力する。即ち、データ受信端末装置４００は、下式のように、公開パラメータと秘密鍵ｄと暗号文Ｃを用いて平文Ｍを計算する（ステップＳ６０３）。
【数７】
2010272899.tif 000009
【００６５】
なお、鍵生成システム１０において、ブラインドサーバ２００を利用せず、データ受信端末装置４００が部分秘密鍵生成サーバ１００から直接秘密鍵ｄを取得することも可能である。この場合、下式のようになる。
【数８】
2010272899.tif 000010
【００６６】
以上説明したように、本実施の形態に係る鍵生成システム１０において、送信者はデータ送信端末装置３００の乱数生成部３０１、公開情報取得部３０２を用いて暗号化データを生成し、情報送信部３０６を用いて送信する。受信者はデータ受信端末装置４００の情報受信部４０５を用いて、暗号化データを受信し、公開情報取得部４０２、情報受信部４０５を用いてブラインドサーバ２００、部分秘密鍵生成サーバ１００と通信し、秘密鍵を受信する。データ受信端末装置４００は暗号化データと公開情報と秘密鍵を用いて、暗号化データを復号することができる。
【００６７】
本実施の形態では、受信者はブラインドサーバ２００を経由し、部分秘密鍵生成サーバ１００にＩＤを漏らすことなく秘密鍵を受信できる。また、ブラインドサーバ２００を用いることで、ドメイン管理が可能になる。また、ブラインドサーバ２００が受信者の秘密鍵を所有するが、部分秘密鍵生成サーバ１００が受信者の秘密鍵を所有できないため、よりセキュアなシステムが提供できる。また、ブラインドサーバ２００がマスタ秘密鍵や公開パラメータの生成及び管理をすることは不要である。また、受信者にとってブラインドサーバ２００が公開している情報は不要であり、部分秘密鍵生成サーバ１００の公開情報のみで復号が可能である。また、送信者にとってブラインドサーバ２００が公開している情報は不要であり、部分秘密鍵生成サーバ１００の公開情報のみで暗号化が可能である。
【００６８】
なお、本実施の形態では、データ送信端末装置３００はＮ台でも問題ない。また、データ受信端末装置４００はＮ台でも問題ない。また、ブラインドサーバ２００はＮ台でも問題ないが、それぞれのドメインに１台であることが望ましい。また、部分秘密鍵生成サーバ１００は従来のＰＫＧの機能も持ち合わせており、ブラインドを行わない従来の運用も可能である。
【００６９】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００７０】
図９は、本実施の形態に係る鍵生成システム１０の構成を示すブロック図である。
【００７１】
図９において、鍵生成システム１０は、部分秘密鍵生成サーバ１００、ブラインドサーバ２００ａ，ｂ（ブラインドサーバ装置）、データ送受信端末装置５００ａ，ｂ（端末装置）を備える。部分秘密鍵生成サーバ１００とブラインドサーバ２００ａ，ｂとは、インターネット等のネットワーク２０を介して互いに通信をする。ブラインドサーバ２００ａとデータ送受信端末装置５００ａとは、企業の社内ネットワーク等、セキュアなネットワーク３０ａを介して互いに通信をする。同様に、ブラインドサーバ２００ｂとデータ送受信端末装置５００ｂとは、企業の社内ネットワーク等、セキュアなネットワーク３０ｂを介して互いに通信をする。データ送受信端末装置５００ａ，ｂは、インターネット等のネットワーク２０を介して互いに通信をする。なお、複数のデータ送受信端末装置５００ａ，ｂが、ネットワーク３０ａ，ｂに接続されていても構わない。例えば、同じドメインに属する複数のデータ送受信端末装置５００ａを、そのドメインのネットワーク３０ａを介して、そのドメイン専用のブラインドサーバ２００ａに接続させるという構成をとれば、ドメイン管理が容易でセキュアなシステムを提供することができる。また、例えば、１つの部分秘密鍵生成サーバ１００がＮ台のブラインドする中継サーバ（ブラインドサーバ２００ａ，ｂ等）を管理し、１つの中継サーバがデータを送受信できるユーザＮ人（データ送受信端末装置５００ａ，ｂ等のユーザ）を管理するようにしてもよい。
【００７２】
部分秘密鍵生成サーバ１００は、ＩＢＥにおける部分秘密鍵を生成するサーバであり、実施の形態１と同様に構成されている。
【００７３】
ブラインドサーバ２００ａ，ｂは、ＩＤをブラインドする中継サーバであり、実施の形態１におけるブラインドサーバ２００と同様に構成されている。
【００７４】
データ送受信端末装置５００ａ，ｂは、暗号データを送受信するユーザによって利用される端末であり、乱数生成部５０１、公開情報取得部５０２、暗号処理部５０３、復号処理部５０４、情報受信部５０５、情報送信部５０６を有する。データ送受信端末装置５００ａ，ｂの各部の動作は、実施の形態１におけるデータ送信端末装置３００及びデータ受信端末装置４００の同じ名称をもつ各部の動作と同様である（例えば、乱数生成部５０１は、データ送信端末装置３００の乱数生成部３０１と同様であり、公開情報取得部５０２は、データ送信端末装置３００の公開情報取得部３０２及びデータ受信端末装置４００の公開情報取得部４０２と同様である）。
【００７５】
例えば、データ送受信端末装置５００ａがデータを暗号化し、データ送受信端末装置５００ｂがそれを復号する場合、データ送受信端末装置５００ｂは自身の上に配置されているブラインドサーバ２００ｂにユーザ秘密鍵の発行を要求する。部分秘密鍵生成サーバ１００がマスタ秘密鍵と公開パラメータを生成する動作、ブラインドサーバ２００ｂがユーザ秘密鍵を生成する動作、データ送受信端末装置５００ａが暗号化したデータをデータ送受信端末装置５００ｂが復号する動作については、実施の形態１と同様である。
【００７６】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を説明する。
【００７７】
図１０は、本実施の形態に係る鍵生成システム１０の構成を示すブロック図である。
【００７８】
図１０において、鍵生成システム１０は、実施の形態１と同様に、部分秘密鍵生成サーバ１００、ブラインドサーバ２００、データ送信端末装置３００、データ受信端末装置４００を備える。
【００７９】
本実施の形態では、部分秘密鍵生成サーバ１００は、図１に示したもののほか、認証部１０８を有する。
【００８０】
図１１は、ブラインドサーバ２００がユーザ秘密鍵を生成する動作を示すフローチャートである。図１２は、部分秘密鍵生成サーバ１００が部分秘密鍵を生成する動作を示すフローチャートである。
【００８１】
部分秘密鍵生成サーバ１００の認証部１０８は、ブラインドサーバ２００の認証情報（例えば、ＩＤとパスワード）を予め記憶装置に記憶しているものとする。即ち、前提条件として、ブラインドサーバ２００は、部分秘密鍵生成サーバ１００に認証情報を登録している。
【００８２】
ステップＳ３０１〜Ｓ３０３については、図５に示した実施の形態１のものと同様である。
【００８３】
ステップＳ３０３の後、ブラインドサーバ２００の情報送信部２０８は、ブラインド処理部２０５により生成されたＩＤ’とともに、自己の認証情報を部分秘密鍵生成サーバ１００に送信する。即ち、ブラインドサーバ２００は、情報送信部２０８を用いて、部分秘密鍵生成サーバ１００にブラインド処理したＩＤ（ＩＤ’）と認証情報を送信する（ステップＳ３０４ａ）。
【００８４】
部分秘密鍵生成サーバ１００の情報受信部１０６は、ブラインドサーバ２００の情報送信部２０８により送信されたＩＤ’とともに認証情報を受信する。部分秘密鍵生成サーバ１００の認証部１０８は、情報受信部１０６により受信された認証情報が予め記憶装置に記憶された認証情報と一致するかどうかを処理装置で判定することにより、ブラインドサーバ２００の認証を行う。即ち、部分秘密鍵生成サーバ１００は、情報受信部１０６を用いて、ブラインドサーバ２００から送信されたＩＤ’と認証情報を受信し、認証情報を認証部１０８に入力する（ステップＳ４０１ａ）。
【００８５】
部分秘密鍵生成サーバ１００の部分鍵生成部１０５は、認証部１０８による認証が成功した場合、即ち、認証情報が一致した場合に、部分秘密鍵ｄ’を処理装置で生成する。即ち、部分秘密鍵生成サーバ１００は、認証に成功した場合、実施の形態１と同様に、部分秘密鍵ｄ’を生成する（ステップＳ４０２ａ）。
【００８６】
ステップＳ３０６、Ｓ３０７、及び、Ｓ４０３については、図５及び図６に示した実施の形態１のものと同様である。
【００８７】
以上のように、本実施の形態によれば、部分秘密鍵生成サーバ１００が、ブラインドサーバ２００の認証に成功した場合のみ、部分鍵ｄ’を生成するため、正当なブラインドサーバ２００しか秘密鍵ｄを生成できず、これにより、信頼性の高いシステムを提供することが可能となる。
【００８８】
以上、本発明の実施の形態について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【符号の説明】
【００８９】
１０  鍵生成システム、２０，３０，３０ａ，ｂ  ネットワーク、１００  部分秘密鍵生成サーバ、１０１  素数生成部、１０２  乱数生成部、１０３  情報公開部、１０４  マスタ鍵生成部、１０５  部分鍵生成部、１０６  情報受信部、１０７  情報送信部、１０８  認証部、２００，２００ａ，ｂ  ブラインドサーバ、２０１  乱数生成部、２０２  公開情報取得部、２０３  認証部、２０４  ハッシュ値計算部、２０５  ブラインド処理部、２０６  秘密鍵生成部、２０７  情報受信部、２０８  情報送信部、３００  データ送信端末装置、３０１  乱数生成部、３０２  公開情報取得部、３０３  暗号処理部、３０５  情報受信部、３０６  情報送信部、４００  データ受信端末装置、４０２  公開情報取得部、４０４  復号処理部、４０５  情報受信部、４０６  情報送信部、５００ａ，ｂ  データ送受信端末装置、５０１  乱数生成部、５０２  公開情報取得部、５０３  暗号処理部、５０４  復号処理部、５０５  情報受信部、５０６  情報送信部、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2010272899.tif 000011
【図２】
2010272899.tif 000012
【図３】
2010272899.tif 000013
【図４】
2010272899.tif 000014
【図５】
2010272899.tif 000015
【図６】
2010272899.tif 000016
【図７】
2010272899.tif 000017
【図８】
2010272899.tif 000018
【図９】
2010272899.tif 000019
【図１０】
2010272899.tif 000020
【図１１】
2010272899.tif 000021
【図１２】
2010272899.tif 000022