IDベース暗号通信システム
【課題】タイトなセキュリティ・リダクションを持ち、かつ、効率的な暗号化および復号化処理が可能なIDベース暗号通信技術を提供する。
【解決手段】鍵管理センタは、マスタ鍵を複数保持し、それぞれに対応する複数のシステム・パラメータを作成する。そして、各ユーザからプライベート鍵の作成依頼を受けた時、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文送信者は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。
【解決手段】鍵管理センタは、マスタ鍵を複数保持し、それぞれに対応する複数のシステム・パラメータを作成する。そして、各ユーザからプライベート鍵の作成依頼を受けた時、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文送信者は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの所属・名前やメールアドレス等の個人を特定できるID情報を利用して暗号通信を行うIDベース暗号通信システムに関する。
【背景技術】
【0002】
公開鍵暗号システムにおいては、ユーザが作成した公開鍵を認証局(CA:Certification Authority)に登録し、証明書を発行してもらう必要がある。すなわち、暗号文の送信者は受信者の公開鍵とその正当性の根拠である公開鍵証明書とを手に入れ、その公開鍵証明書により公開鍵の正当性を確認したうえで、送信するメッセージ文の暗号化を行う必要がある。
【0003】
これに対して、CAによる公開鍵証明書の発行の手間を省いて、より簡単に公開鍵の管理を行うことを目的として、ユーザのID情報を公開鍵とする暗号システム(以下、IDベース暗号システムと呼ぶ)が提案されている。IDベース暗号システムでは、暗号通信、認証(ディジタル署名、個人認証、等)を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のID情報を公開鍵として鍵管理センタに登録し、鍵管理センタに当該鍵管理センタが保有するマスタ鍵を用いて、当該ID情報に対応するプライベート鍵を発行してもらう。また、鍵管理センタは、マスタ鍵と対のシステム・パラメータを作成して公開する。暗号文の送信者は、受信者のID情報と鍵管理センタのシステム・パラメータを用いて暗号文を作成し、受信者に送信する。受信者は、プライベート鍵を用いてメッセージの復号化を行う。
【0004】
公開鍵暗号システムでは、受信者の公開鍵はランダムなビット列であるのに対して、IDベース暗号システムでは、メールアドレス等の個人情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのIDベース暗号システムが提案されている。例えば、ゼロ知識証明を利用したIDベースのディジタル署名を実現するIDベース暗号システムが提案されている。また、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムが提案されている。そして、こIDベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、IDベース暗号システムのインフラストラクチャにおいて、公開鍵証明書を不要にすることができる公開鍵暗号が提案されている。また、IDベース暗号システムのインフラストラクチャにおいて、否認可能な認証機能を持った暗号方法が提案されている。
【0005】
さらに、署名方式において、タイトなセキュリティ・リダクションを持つためのアイデアが提案されている(例えば、非特許文献1参照。)。そして、同アイデアを適用することで、タイトなセキュリティ・リダクションを持つIDベース暗号システムが提案されている(例えば、非特許文献2参照。)。
【0006】
ここで、セキュリティ・リダクションとは、暗号方式の安全性を証明する場合において、安全性の根拠(暗号学的仮定)とする数論問題(例えば、素因数分解問題、離散対数問題、Diffie-Hellman問題、等)の計算量的困難性と暗号方式の安全性との関係を示す一つのパラメータである。セキュリティ・リダクションがタイトであることは、当該暗号方式の安全性が暗号学的仮定とする数論問題の計算量的困難性に近いことを意味する。このことは、セキュリティ・リダクションの悪い(タイトでない)暗号方式と比較した場合、セキュリティ・リダクションがタイトな暗号方式は、より高い安全性を有することを意味し、一定の安全性を得るために必要な鍵長を短く設定できるメリットを有する。
【0007】
【非特許文献1】J. Katz, N. Wang, “Efficiency Improvements for Signature Schemes with Tight Security Reductions”, 〔平成17年12月13日検索〕 インターネット <URL; http://www.cs.umd.edu/~jkatz/>
【非特許文献2】N. Attrapadung, J. Furukawa, T. Gomi, G. Hanaoka, H. Imai, R. Zhang, “Identity-Based Encryption Schemes with Tight Security Reductions”, 〔平成17年12月13日検索〕 インターネット <URL; http://eprint.iacr.org/2005/320.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0008】
非特許文献1において提案されているアイデアに基づいてタイトなセキュリティ・リダクションを持つIDベース暗号システムを実現した非特許文献2に記載の方式は、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムに比べて、暗号化・復号化処理において、約2倍の計算量が必要となり、計算処理の効率が悪い。これは、非特許文献2に記載の方式では、計算処理量の多いペアリングを用いた双線形写像の計算を、暗号化および復号化の各処理において、それぞれ2回行う必要があるためである。従って、本方式を同報暗号通信などのIDベース暗号を用いた暗号通信(IDベース暗号通信)に適用する場合、高速な処理を行うためには、ハードウエアの負担が大きくなり、実装が難しくなる。
【0009】
本発明は、上記事情に鑑みてなされたもので、タイトなセキュリティ・リダクションを持ち、かつ、効率的な暗号化および復号化処理が可能なIDベース暗号通信技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明では、鍵管理センタは、秘密情報(マスタ鍵)を複数保持する。また、鍵管理センタは、複数の秘密情報に対応する複数の公開情報(システム・パラメータ)を作成する。そして、鍵管理センタは、各ユーザからプライベート鍵(復号化鍵)の作成の依頼を受けた時、依頼元のユーザ以外に対しては、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文の送信者側装置は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。暗号文の受信者側装置は、鍵管理センタから受け取ったプライベート鍵を用いて暗号文を復号する。
【0011】
具体的には、鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するIDベース暗号通信システムであって、前記鍵管理センタ側装置は、予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、前記複数の秘密情報の中からランダムに選択した1の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した1の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、前記送信者側装置は、前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、前記受信者側装置は、前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えることを特徴とするIDベース暗号通信システムを提供する。
【発明の効果】
【0012】
本発明の暗号システムによれば、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下に本発明の実施の形態について説明する。
【0014】
まず、以下の各実施形態に共通するIDベース暗号通信システムの構成を説明する。
【0015】
図1は、本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。本図に示すように、IDベース暗号通信システムは、鍵管理センタ側装置100と、複数のユーザ側通信装置200とが、通信回線300を介して接続された構成を備える。
【0016】
図2は、図1に示す鍵管理センタ側装置100の概略構成図である。本図に示すように、鍵管理センタ側装置100は、情報を入力する入力部101と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置100の各部の制御を行う演算部102と、記憶部103と、通信回線300とを介してユーザ側装置200と通信を行う通信部104と、情報を出力する出力部105と、を備える。また、演算部102は、鍵管理センタのマスタ鍵(秘密情報)およびシステム・パラメータ(公開情報)を作成する鍵情情報作成部106を備える。
【0017】
図3は、図1に示すユーザ側装置200の概略構成図である。本図に示すように、ユーザ側装置200は、情報を入力する入力部201と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置200の各部の制御を行う演算部202と、記憶部203と、通信回線300を介して鍵管理センタ側装置100および他のユーザ側装置200と通信を行う通信部204と、情報を出力する出力部205と、を備えている。また、演算部202は、乱数を生成する乱数生成部206と、関数計算を行う関数計算部207と、暗復号化処理を行う暗復号化部208と、メッセージ文の正当性を検査する検査部209と、を備える。例えば、双線形写像eによる計算およびハッシュ関数による計算は関数計算部207によって行われる。
【0018】
上記構成の鍵管理センタ側装置100およびユーザ側装置200は、図4に示すような、CPU401と、メモリ402と、HDD等の外部記憶装置403と、CD−ROMやDVD−ROMなどの可搬性を有する記憶媒体409から情報を読み出す読取装置404と、キーボードやマウスなどの入力装置405と、ディスプレイなどの出力装置406と、通信回線300を介して相手装置と通信を行うための通信装置407と、これらの各装置401〜407を接続するバス408と、を備えた一般的なコンピュータにおいて、CPU401がメモリ402上にロードされた所定のプログラムを実行することにより実現することができる。この場合、メモリ402や外部記憶装置403が記憶部103、203に利用され、通信装置408が通信部104、204に利用され、読取装置404や入力装置405が入力部101、201に利用され、そして、出力装置406が出力部105、205に利用される。
【0019】
上記所定のプログラムは、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、外部記憶装置403にダウンロードされ、それから、メモリ402上にロードされてCPU401により実行されるよう構成してもよい。
【0020】
<<第1の実施形態>>
次に、本実施形態発明の第1の実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は、本実施形態の動作手順を説明するための図である。
【0021】
1.準備処理
1−1:鍵センタのセットアップ処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0022】
【数73】
【0023】
なる双線形写像eを生成させる(ステップ1001)。
【0024】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1002)。ここで、Z*qは、qとの最大公約数が1(すなわち、qと互いに素)である整数の集合である。そして、演算部102は、s0、s1、Pを用いて、
【0025】
【数74】
【0026】
を生成する(ステップ1003)。
【0027】
鍵管理センタは、s0、s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、H1,H2,H3は、
【0028】
【数75】
【0029】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0030】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1004)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0031】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を、記憶部203に記憶する(ステップ2001)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3001)。
【0032】
1−2:プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Bからの要求においても同様の処理が行われる。
【0033】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(ステップ2002)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0034】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1005)。
【0035】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0036】
【数76】
【0037】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部103内にあるマスタ鍵siを用いて、
【0038】
【数77】
【0039】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0040】
【数78】
【0041】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1006)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0042】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2003)。
【0043】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0044】
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明する。ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合も同様の処理が行われる。
【0045】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3002)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3003)。
【0046】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3004)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0047】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を用いて、関数計算部207に
【0048】
【数79】
【0049】
を計算させ、さらに、演算部202は、暗復号化部208に
【0050】
【数80】
【0051】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【0052】
そして、ユーザ側装置Aは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3005)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0053】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0054】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0055】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2004)。
【0056】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、関数計算部207および暗復号化部208に、
【0057】
【数81】
【0058】
なるr1-i∈{0,1}m、M∈{0,1}nを計算させる(ステップ2005)。さらに、
【0059】
【数82】
【0060】
なるri∈{0,1}m、M'∈{0,1}nを計算させる(ステップ2006)。
【0061】
そして、検査部209に、
【0062】
【数83】
【0063】
および
【0064】
【数84】
【0065】
が成立するか否かを検証させる(ステップ2007)。検証が成立した場合、演算部202は、Mをメッセージ文として出力部205から出力する(ステップ2008)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2009)、暗号文Cは棄却する。
【0066】
以上、本発明の第1の実施形態について説明した。
【0067】
本実施形態のIDベース暗号通信方法は、非特許文献2に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND−ID−CCAの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のIDベース暗号通信方法は、非特許文献2に記載の方法に比べ、計算量の大きい双線形写像eの計算が削減されているため、効率的な処理が可能となる。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【0068】
なお、本実施形態のIDベース暗号通信方法において、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0069】
また、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0070】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0071】
<<第2の実施形態>>
次に、本発明の第2の実施形態について説明する。本実施形態は、第1の実施形態のIDベース暗号通信方法の変形例で、第一の実施形態のIDベース暗号通信方法をより一般的な共通鍵暗号のアルゴリズムを用いて実現するものである。
【0072】
本実施形態でも、第一の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図6は、本実施形態の動作手順を説明するための図である。
【0073】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0074】
【数85】
【0075】
なる双線形写像eを生成させる(ステップ1101)。
【0076】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1102)。そして、演算部102は、s0、s1、Pを用いて、
【0077】
【数86】
【0078】
を生成する(ステップ1103)。
【0079】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0080】
【数87】
【0081】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0082】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1104)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0083】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2101)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3101)。
【0084】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0085】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2102)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0086】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1105)。
【0087】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0088】
【数88】
【0089】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0090】
【数89】
【0091】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0092】
【数90】
【0093】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1106)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0094】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2103)。
【0095】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0096】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0097】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3102)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3103)。
【0098】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3104)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0099】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207にデータ暗号化鍵K0,K1を、
【0100】
【数91】
【0101】
によって計算させ、さらに、演算部202は、暗号復号化装置208に、
【0102】
【数92】
【0103】
を計算させる(ステップ3105)。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0104】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3106)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0105】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0106】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0107】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2104)。
【0108】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207および暗復号化部208に、
【0109】
【数93】
【0110】
なる鍵Kiと、
【0111】
【数94】
【0112】
なるr1-i∈{0,1}m,M∈{0,1}nと、を計算させる(ステップ2105)。但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0113】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0114】
【数95】
【0115】
なるデータ暗号化鍵K1-iと、
【0116】
【数96】
【0117】
なるri∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2106)。
【0118】
そして、検査部209に、
【0119】
【数97】
【0120】
および
【0121】
【数98】
【0122】
が成立するか否かを検証させる(ステップ2107)。検証が成立した場合、演算部202は、M’をメッセージ文Mとして出力部205から出力する(ステップ2108)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2109)、暗号文Cは棄却する。
【0123】
以上、本発明の第2の実施形態について説明した。
【0124】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率の良い暗号化・復号化処理を実現することができる。
【0125】
本実施形態においても、第1の実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0126】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0127】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0128】
<<第3の実施形態>>
次に、本発明の第3の実施形態について説明する。本実施形態は、第1の実施形態のIDベース暗号通信方法の変形例である。本実施形態は、第1の実施形態に比べ、計算量の大きい双線形写像eの計算回数をさらに削減したものである。
【0129】
本実施形態でも、第1の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図7は、本実施形態の動作手順を説明するための図である。
【0130】
1.準備処理
1−1:鍵センタのセットアップ処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0131】
【数99】
【0132】
なる双線形写像eを生成させる(ステップ1201)。
【0133】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1202)。そして、演算部102は、s0、s1、Pを用いて、
【0134】
【数100】
【0135】
を生成する(ステップ1203)。
【0136】
鍵管理センタは、s0、s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、H1,H2,H3は、
【0137】
【数101】
【0138】
なるハッシュ関数を意味する。なお、ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0139】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1204)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0140】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を、記憶部203に記憶する(ステップ2201)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3201)。
【0141】
1−2:プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Bからの要求においても同様の処理が行われる。
【0142】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(ステップ2202)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0143】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1205)。
【0144】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0145】
【数102】
【0146】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部103内にあるマスタ鍵siを用いて、
【0147】
【数103】
【0148】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0149】
【数104】
【0150】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1206)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0151】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2203)。
【0152】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0153】
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明する。ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合も同様の処理が行われる。
【0154】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3202)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3203)。
【0155】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3204)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0156】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を用いて、関数計算部207に
【0157】
【数105】
【0158】
を計算させ、さらに、演算部202は、暗復号化部208に
【0159】
【数106】
【0160】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【0161】
そして、ユーザ側装置Aは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3205)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0162】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0163】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0164】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2204)。
【0165】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、関数計算部207および暗復号化部208に、
【0166】
【数107】
【0167】
なるgiを計算させる(ステップ2205)。
【0168】
演算部202は、さらに、関数演算部207および暗復号化部208に、
【0169】
【数108】
【0170】
なるr0,r1∈{0,1}m、M∈{0,1}nと(ステップ2206)、
【0171】
【数109】
【0172】
なるr'0,r'1∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2207)。
【0173】
そして、検査部209に、
【0174】
【数110】
【0175】
および
【0176】
【数111】
【0177】
が成立するか否かを検証させる(ステップ2208)。検証が成立した場合、演算部202は、Mをメッセージ文として出力部205から出力する(ステップ2209)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2210)、暗号文Cは棄却する。
【0178】
以上、本発明の第3の実施形態について説明した。
【0179】
本実施形態のIDベース暗号通信方法は、非特許文献2に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND−ID−CCAの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のIDベース暗号通信方法は、非特許文献2に記載の方法と異なり、計算量の大きい双線形写像eの計算が、暗号化および復号化処理に一回ずつである。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【0180】
なお、本実施形態のIDベース暗号通信方法において、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0181】
また、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0182】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0183】
<<第4の実施形態>>
次に、本発明の第4の実施形態について説明する。本実施形態は、第2の実施形態のIDベース暗号通信方法の変形例である。本実施形態の第3の実施形態と同様に、計算量の大きい双線形写像eの計算を削減することができ、暗号通信全体の計算量を少なくすることができる実施形態である。
【0184】
本実施形態でも、上記各実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図8は、本実施形態の動作手順を説明するための図である。
【0185】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0186】
【数112】
【0187】
なる双線形写像eを生成させる(ステップ1301)。
【0188】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1302)。そして、演算部102は、s0、s1、Pを用いて、
【0189】
【数113】
【0190】
を生成する(ステップ1303)。
【0191】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0192】
【数114】
【0193】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0194】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1304)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0195】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2301)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3301)。
【0196】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0197】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2302)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0198】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1305)。
【0199】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0200】
【数115】
【0201】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0202】
【数116】
【0203】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0204】
【数117】
【0205】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1306)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0206】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2303)。
【0207】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0208】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0209】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3302)。ただし、M∈{0,1}nとする。ここで、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3303)。
【0210】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3304)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0211】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207にデータ暗号化鍵K0,K1を、
【0212】
【数118】
【0213】
によって計算させ、さらに、演算部202は、暗号復号化装置208に、
【0214】
【数119】
【0215】
を計算させる(ステップ3305)。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0216】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3306)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0217】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0218】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0219】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2304)。
【0220】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207に、
【0221】
【数120】
【0222】
なるgiを計算させる(ステップ2305)。
【0223】
また、演算部202は、関数演算部207および暗復号化部208に、
【0224】
【数121】
【0225】
なる鍵Kiと、
【0226】
【数122】
【0227】
なるr0,r1∈{0,1}m,M∈{0,1}nと、を計算させる(ステップ2306)。但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0228】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0229】
【数123】
【0230】
なるデータ暗号化鍵K1-iと、
【0231】
【数124】
【0232】
なるr'0,r'1∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2307)。
【0233】
そして、検査部209に、
【0234】
【数125】
【0235】
および
【0236】
【数126】
【0237】
が成立するか否かを検証させる(ステップ2308)。検証が成立した場合、演算部202は、M’をメッセージ文Mとして出力部205から出力する(ステップ2309)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2310)、暗号文Cは棄却する。
【0238】
以上、本発明の第4の実施形態について説明した。
【0239】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【0240】
本実施形態においても、上述の各実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0241】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0242】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0243】
<<第5の実施形態>>
次に、本発明の第5の実施形態について説明する。本実施形態は、第2の実施形態のIDベース暗号通信方法の変形例である。本実施形態は、暗号文の長さを短くすることにより、全体の計算量を低減させるものである。
【0244】
本実施形態でも、第1の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図10は、本実施形態の動作手順を説明するための図である。
【0245】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0246】
【数127】
【0247】
なる双線形写像eを生成させる(ステップ1401)。
【0248】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1402)。そして、演算部102は、s0、s1、Pを用いて、
【0249】
【数128】
【0250】
を生成する(ステップ1403)。
【0251】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,nは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0252】
【数129】
【0253】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0254】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1404)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0255】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2401)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3401)。
【0256】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0257】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2402)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0258】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1405)。
【0259】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0260】
【数130】
【0261】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0262】
【数131】
【0263】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0264】
【数132】
【0265】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1406)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0266】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2403)。
【0267】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0268】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0269】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3402)。ただし、M∈{0,1}nとする。ここで、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3403)。
【0270】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3404)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0271】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207に
【0272】
【数133】
【0273】
なるgと(ステップ3405)、
【0274】
【数134】
【0275】
により、r0、r1とデータ暗号化鍵Kと(ステップ3406)を計算させる。
【0276】
そして、演算部202は、関数計算部207および暗号化部208に、
【0277】
【数135】
【0278】
を計算させる。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0279】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3407)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0280】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0281】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0282】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2404)。
【0283】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207および暗復号化部208に、
【0284】
【数136】
【0285】
なるgiを計算させる(ステップ2405)。
【0286】
計算したgiを用いて、演算部202は、関数演算部207と暗復号化部208とに
【0287】
【数137】
【0288】
なるRを計算させ(ステップ2406)、さらに計算したRを用いて、
【0289】
【数138】
【0290】
なるr0,r1、K、を計算させる(ステップ2407)。
【0291】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0292】
【数139】
【0293】
なるデータR'∈{0,1}mを計算させる(ステップ2408)。
【0294】
そして、検査部209に、
【0295】
【数140】
【0296】
が成立するか否かを検証させる(ステップ2409)。
【0297】
検証が成立した場合、演算部202は、
【0298】
【数141】
【0299】
によりMを計算し、メッセージ文Mとして出力する(ステップ2410)。但し、DK(y)は暗号文yを鍵Kを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0300】
一方、検証が成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2411)、暗号文Cは棄却する。
【0301】
次に、本実施形態の安全な共通鍵暗号(E,D)の実現方法の一例を以下に説明する。
【0302】
受信者側装置の演算部202は、関数計算部207および暗復号化部208に、共通鍵暗号(E,D)としてメッセージ文Mに対して
【0303】
【数142】
【0304】
を計算することにより暗号文Cを作成する。ただし、H4は、
【0305】
【数143】
【0306】
なるハッシュ関数を意味し、システム・パラメータの一部として公開されるものである。
【0307】
また、送信側装置装置の演算部202は、暗号文C(C=y0‖y1(y0={0,1}n、y1={0,1}l))に対し、
【0308】
【数144】
【0309】
を計算することにより暗号文を復号する。
【0310】
以上、本発明の第5の実施形態について説明した。
【0311】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【0312】
また、本実施形態では、上述のように、暗号文の長さが短くなるため、全体の計算量がさらに低減される。
【0313】
本実施形態においても、上述の各実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0314】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0315】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0316】
以上の各実施形態では、ユーザが各々の装置を利用して暗号通信を行うという一般形で説明した。しかし、本発明は、具体的には様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者であるユーザは消費者であり、受信者であるユーザは小売店、ユーザ側装置はパソコンなどの計算機となる。また、電子メールシステムでは、各々の装置はパソコンなどの計算機である。その他にも、従来の公開鍵暗号およびIDベース暗号が使われている様々なシステムに適用することが可能である。
【0317】
また、上記各実施形態における各計算は、CPUがメモリ内の各プログラムを実行することにより行われるものとして説明したが、プログラムだけではなく、いずれかがハードウエア化された演算装置であって、他の演算装置や、CPUと、データのやりとりを行うものであっても良い。
【図面の簡単な説明】
【0318】
【図1】本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。
【図2】図1に示す鍵管理センタ側装置の概略構成図である。
【図3】図1に示すユーザ側装置の概略構成図である。
【図4】鍵管理センタ側装置およびユーザ側装置のハードウェア構成例を示す図である。
【図5】本発明の第1の実施形態の動作手順を説明するための図である。
【図6】本発明の第2の実施形態の動作手順を説明するための図である。
【図7】本発明の第3の実施形態の動作手順を説明するための図である。
【図8】本発明の第4の実施形態の動作手順を説明するための図である。
【図9】本発明の第5の実施形態の動作手順を説明するための図である。
【符号の説明】
【0319】
100…鍵管理センタ側装置、101…入力部、102…演算部、103…記憶部、104…通信部、105…出力部、106…鍵情報作成部、200…ユーザ側装置、200…ユーザ側装置、201…入力部、202…演算部、203…記憶部、204…通信部、205…出力部、206…乱数生成部、207…関数計算部、208…暗復号化部、209…検査部、300…通信回線
【技術分野】
【0001】
本発明は、ユーザの所属・名前やメールアドレス等の個人を特定できるID情報を利用して暗号通信を行うIDベース暗号通信システムに関する。
【背景技術】
【0002】
公開鍵暗号システムにおいては、ユーザが作成した公開鍵を認証局(CA:Certification Authority)に登録し、証明書を発行してもらう必要がある。すなわち、暗号文の送信者は受信者の公開鍵とその正当性の根拠である公開鍵証明書とを手に入れ、その公開鍵証明書により公開鍵の正当性を確認したうえで、送信するメッセージ文の暗号化を行う必要がある。
【0003】
これに対して、CAによる公開鍵証明書の発行の手間を省いて、より簡単に公開鍵の管理を行うことを目的として、ユーザのID情報を公開鍵とする暗号システム(以下、IDベース暗号システムと呼ぶ)が提案されている。IDベース暗号システムでは、暗号通信、認証(ディジタル署名、個人認証、等)を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のID情報を公開鍵として鍵管理センタに登録し、鍵管理センタに当該鍵管理センタが保有するマスタ鍵を用いて、当該ID情報に対応するプライベート鍵を発行してもらう。また、鍵管理センタは、マスタ鍵と対のシステム・パラメータを作成して公開する。暗号文の送信者は、受信者のID情報と鍵管理センタのシステム・パラメータを用いて暗号文を作成し、受信者に送信する。受信者は、プライベート鍵を用いてメッセージの復号化を行う。
【0004】
公開鍵暗号システムでは、受信者の公開鍵はランダムなビット列であるのに対して、IDベース暗号システムでは、メールアドレス等の個人情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのIDベース暗号システムが提案されている。例えば、ゼロ知識証明を利用したIDベースのディジタル署名を実現するIDベース暗号システムが提案されている。また、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムが提案されている。そして、こIDベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、IDベース暗号システムのインフラストラクチャにおいて、公開鍵証明書を不要にすることができる公開鍵暗号が提案されている。また、IDベース暗号システムのインフラストラクチャにおいて、否認可能な認証機能を持った暗号方法が提案されている。
【0005】
さらに、署名方式において、タイトなセキュリティ・リダクションを持つためのアイデアが提案されている(例えば、非特許文献1参照。)。そして、同アイデアを適用することで、タイトなセキュリティ・リダクションを持つIDベース暗号システムが提案されている(例えば、非特許文献2参照。)。
【0006】
ここで、セキュリティ・リダクションとは、暗号方式の安全性を証明する場合において、安全性の根拠(暗号学的仮定)とする数論問題(例えば、素因数分解問題、離散対数問題、Diffie-Hellman問題、等)の計算量的困難性と暗号方式の安全性との関係を示す一つのパラメータである。セキュリティ・リダクションがタイトであることは、当該暗号方式の安全性が暗号学的仮定とする数論問題の計算量的困難性に近いことを意味する。このことは、セキュリティ・リダクションの悪い(タイトでない)暗号方式と比較した場合、セキュリティ・リダクションがタイトな暗号方式は、より高い安全性を有することを意味し、一定の安全性を得るために必要な鍵長を短く設定できるメリットを有する。
【0007】
【非特許文献1】J. Katz, N. Wang, “Efficiency Improvements for Signature Schemes with Tight Security Reductions”, 〔平成17年12月13日検索〕 インターネット <URL; http://www.cs.umd.edu/~jkatz/>
【非特許文献2】N. Attrapadung, J. Furukawa, T. Gomi, G. Hanaoka, H. Imai, R. Zhang, “Identity-Based Encryption Schemes with Tight Security Reductions”, 〔平成17年12月13日検索〕 インターネット <URL; http://eprint.iacr.org/2005/320.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0008】
非特許文献1において提案されているアイデアに基づいてタイトなセキュリティ・リダクションを持つIDベース暗号システムを実現した非特許文献2に記載の方式は、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムに比べて、暗号化・復号化処理において、約2倍の計算量が必要となり、計算処理の効率が悪い。これは、非特許文献2に記載の方式では、計算処理量の多いペアリングを用いた双線形写像の計算を、暗号化および復号化の各処理において、それぞれ2回行う必要があるためである。従って、本方式を同報暗号通信などのIDベース暗号を用いた暗号通信(IDベース暗号通信)に適用する場合、高速な処理を行うためには、ハードウエアの負担が大きくなり、実装が難しくなる。
【0009】
本発明は、上記事情に鑑みてなされたもので、タイトなセキュリティ・リダクションを持ち、かつ、効率的な暗号化および復号化処理が可能なIDベース暗号通信技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明では、鍵管理センタは、秘密情報(マスタ鍵)を複数保持する。また、鍵管理センタは、複数の秘密情報に対応する複数の公開情報(システム・パラメータ)を作成する。そして、鍵管理センタは、各ユーザからプライベート鍵(復号化鍵)の作成の依頼を受けた時、依頼元のユーザ以外に対しては、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文の送信者側装置は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。暗号文の受信者側装置は、鍵管理センタから受け取ったプライベート鍵を用いて暗号文を復号する。
【0011】
具体的には、鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するIDベース暗号通信システムであって、前記鍵管理センタ側装置は、予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、前記複数の秘密情報の中からランダムに選択した1の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した1の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、前記送信者側装置は、前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、前記受信者側装置は、前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えることを特徴とするIDベース暗号通信システムを提供する。
【発明の効果】
【0012】
本発明の暗号システムによれば、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下に本発明の実施の形態について説明する。
【0014】
まず、以下の各実施形態に共通するIDベース暗号通信システムの構成を説明する。
【0015】
図1は、本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。本図に示すように、IDベース暗号通信システムは、鍵管理センタ側装置100と、複数のユーザ側通信装置200とが、通信回線300を介して接続された構成を備える。
【0016】
図2は、図1に示す鍵管理センタ側装置100の概略構成図である。本図に示すように、鍵管理センタ側装置100は、情報を入力する入力部101と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置100の各部の制御を行う演算部102と、記憶部103と、通信回線300とを介してユーザ側装置200と通信を行う通信部104と、情報を出力する出力部105と、を備える。また、演算部102は、鍵管理センタのマスタ鍵(秘密情報)およびシステム・パラメータ(公開情報)を作成する鍵情情報作成部106を備える。
【0017】
図3は、図1に示すユーザ側装置200の概略構成図である。本図に示すように、ユーザ側装置200は、情報を入力する入力部201と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置200の各部の制御を行う演算部202と、記憶部203と、通信回線300を介して鍵管理センタ側装置100および他のユーザ側装置200と通信を行う通信部204と、情報を出力する出力部205と、を備えている。また、演算部202は、乱数を生成する乱数生成部206と、関数計算を行う関数計算部207と、暗復号化処理を行う暗復号化部208と、メッセージ文の正当性を検査する検査部209と、を備える。例えば、双線形写像eによる計算およびハッシュ関数による計算は関数計算部207によって行われる。
【0018】
上記構成の鍵管理センタ側装置100およびユーザ側装置200は、図4に示すような、CPU401と、メモリ402と、HDD等の外部記憶装置403と、CD−ROMやDVD−ROMなどの可搬性を有する記憶媒体409から情報を読み出す読取装置404と、キーボードやマウスなどの入力装置405と、ディスプレイなどの出力装置406と、通信回線300を介して相手装置と通信を行うための通信装置407と、これらの各装置401〜407を接続するバス408と、を備えた一般的なコンピュータにおいて、CPU401がメモリ402上にロードされた所定のプログラムを実行することにより実現することができる。この場合、メモリ402や外部記憶装置403が記憶部103、203に利用され、通信装置408が通信部104、204に利用され、読取装置404や入力装置405が入力部101、201に利用され、そして、出力装置406が出力部105、205に利用される。
【0019】
上記所定のプログラムは、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、外部記憶装置403にダウンロードされ、それから、メモリ402上にロードされてCPU401により実行されるよう構成してもよい。
【0020】
<<第1の実施形態>>
次に、本実施形態発明の第1の実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は、本実施形態の動作手順を説明するための図である。
【0021】
1.準備処理
1−1:鍵センタのセットアップ処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0022】
【数73】
【0023】
なる双線形写像eを生成させる(ステップ1001)。
【0024】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1002)。ここで、Z*qは、qとの最大公約数が1(すなわち、qと互いに素)である整数の集合である。そして、演算部102は、s0、s1、Pを用いて、
【0025】
【数74】
【0026】
を生成する(ステップ1003)。
【0027】
鍵管理センタは、s0、s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、H1,H2,H3は、
【0028】
【数75】
【0029】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0030】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1004)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0031】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を、記憶部203に記憶する(ステップ2001)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3001)。
【0032】
1−2:プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Bからの要求においても同様の処理が行われる。
【0033】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(ステップ2002)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0034】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1005)。
【0035】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0036】
【数76】
【0037】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部103内にあるマスタ鍵siを用いて、
【0038】
【数77】
【0039】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0040】
【数78】
【0041】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1006)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0042】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2003)。
【0043】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0044】
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明する。ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合も同様の処理が行われる。
【0045】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3002)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3003)。
【0046】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3004)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0047】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を用いて、関数計算部207に
【0048】
【数79】
【0049】
を計算させ、さらに、演算部202は、暗復号化部208に
【0050】
【数80】
【0051】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【0052】
そして、ユーザ側装置Aは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3005)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0053】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0054】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0055】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2004)。
【0056】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、関数計算部207および暗復号化部208に、
【0057】
【数81】
【0058】
なるr1-i∈{0,1}m、M∈{0,1}nを計算させる(ステップ2005)。さらに、
【0059】
【数82】
【0060】
なるri∈{0,1}m、M'∈{0,1}nを計算させる(ステップ2006)。
【0061】
そして、検査部209に、
【0062】
【数83】
【0063】
および
【0064】
【数84】
【0065】
が成立するか否かを検証させる(ステップ2007)。検証が成立した場合、演算部202は、Mをメッセージ文として出力部205から出力する(ステップ2008)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2009)、暗号文Cは棄却する。
【0066】
以上、本発明の第1の実施形態について説明した。
【0067】
本実施形態のIDベース暗号通信方法は、非特許文献2に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND−ID−CCAの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のIDベース暗号通信方法は、非特許文献2に記載の方法に比べ、計算量の大きい双線形写像eの計算が削減されているため、効率的な処理が可能となる。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【0068】
なお、本実施形態のIDベース暗号通信方法において、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0069】
また、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0070】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0071】
<<第2の実施形態>>
次に、本発明の第2の実施形態について説明する。本実施形態は、第1の実施形態のIDベース暗号通信方法の変形例で、第一の実施形態のIDベース暗号通信方法をより一般的な共通鍵暗号のアルゴリズムを用いて実現するものである。
【0072】
本実施形態でも、第一の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図6は、本実施形態の動作手順を説明するための図である。
【0073】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0074】
【数85】
【0075】
なる双線形写像eを生成させる(ステップ1101)。
【0076】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1102)。そして、演算部102は、s0、s1、Pを用いて、
【0077】
【数86】
【0078】
を生成する(ステップ1103)。
【0079】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0080】
【数87】
【0081】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0082】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1104)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0083】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2101)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3101)。
【0084】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0085】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2102)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0086】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1105)。
【0087】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0088】
【数88】
【0089】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0090】
【数89】
【0091】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0092】
【数90】
【0093】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1106)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0094】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2103)。
【0095】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0096】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0097】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3102)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3103)。
【0098】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3104)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0099】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207にデータ暗号化鍵K0,K1を、
【0100】
【数91】
【0101】
によって計算させ、さらに、演算部202は、暗号復号化装置208に、
【0102】
【数92】
【0103】
を計算させる(ステップ3105)。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0104】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3106)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0105】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0106】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0107】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2104)。
【0108】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207および暗復号化部208に、
【0109】
【数93】
【0110】
なる鍵Kiと、
【0111】
【数94】
【0112】
なるr1-i∈{0,1}m,M∈{0,1}nと、を計算させる(ステップ2105)。但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0113】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0114】
【数95】
【0115】
なるデータ暗号化鍵K1-iと、
【0116】
【数96】
【0117】
なるri∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2106)。
【0118】
そして、検査部209に、
【0119】
【数97】
【0120】
および
【0121】
【数98】
【0122】
が成立するか否かを検証させる(ステップ2107)。検証が成立した場合、演算部202は、M’をメッセージ文Mとして出力部205から出力する(ステップ2108)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2109)、暗号文Cは棄却する。
【0123】
以上、本発明の第2の実施形態について説明した。
【0124】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率の良い暗号化・復号化処理を実現することができる。
【0125】
本実施形態においても、第1の実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0126】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0127】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0128】
<<第3の実施形態>>
次に、本発明の第3の実施形態について説明する。本実施形態は、第1の実施形態のIDベース暗号通信方法の変形例である。本実施形態は、第1の実施形態に比べ、計算量の大きい双線形写像eの計算回数をさらに削減したものである。
【0129】
本実施形態でも、第1の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図7は、本実施形態の動作手順を説明するための図である。
【0130】
1.準備処理
1−1:鍵センタのセットアップ処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0131】
【数99】
【0132】
なる双線形写像eを生成させる(ステップ1201)。
【0133】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1202)。そして、演算部102は、s0、s1、Pを用いて、
【0134】
【数100】
【0135】
を生成する(ステップ1203)。
【0136】
鍵管理センタは、s0、s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、H1,H2,H3は、
【0137】
【数101】
【0138】
なるハッシュ関数を意味する。なお、ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0139】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1204)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0140】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を、記憶部203に記憶する(ステップ2201)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3201)。
【0141】
1−2:プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Bからの要求においても同様の処理が行われる。
【0142】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(ステップ2202)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0143】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1205)。
【0144】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0145】
【数102】
【0146】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部103内にあるマスタ鍵siを用いて、
【0147】
【数103】
【0148】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0149】
【数104】
【0150】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1206)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0151】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2203)。
【0152】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0153】
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明する。ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合も同様の処理が行われる。
【0154】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3202)。ただし、M∈{0,1}nとする。ここでは、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3203)。
【0155】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3204)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0156】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3)を用いて、関数計算部207に
【0157】
【数105】
【0158】
を計算させ、さらに、演算部202は、暗復号化部208に
【0159】
【数106】
【0160】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【0161】
そして、ユーザ側装置Aは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3205)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0162】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0163】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0164】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2204)。
【0165】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、関数計算部207および暗復号化部208に、
【0166】
【数107】
【0167】
なるgiを計算させる(ステップ2205)。
【0168】
演算部202は、さらに、関数演算部207および暗復号化部208に、
【0169】
【数108】
【0170】
なるr0,r1∈{0,1}m、M∈{0,1}nと(ステップ2206)、
【0171】
【数109】
【0172】
なるr'0,r'1∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2207)。
【0173】
そして、検査部209に、
【0174】
【数110】
【0175】
および
【0176】
【数111】
【0177】
が成立するか否かを検証させる(ステップ2208)。検証が成立した場合、演算部202は、Mをメッセージ文として出力部205から出力する(ステップ2209)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2210)、暗号文Cは棄却する。
【0178】
以上、本発明の第3の実施形態について説明した。
【0179】
本実施形態のIDベース暗号通信方法は、非特許文献2に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND−ID−CCAの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のIDベース暗号通信方法は、非特許文献2に記載の方法と異なり、計算量の大きい双線形写像eの計算が、暗号化および復号化処理に一回ずつである。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【0180】
なお、本実施形態のIDベース暗号通信方法において、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0181】
また、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0182】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0183】
<<第4の実施形態>>
次に、本発明の第4の実施形態について説明する。本実施形態は、第2の実施形態のIDベース暗号通信方法の変形例である。本実施形態の第3の実施形態と同様に、計算量の大きい双線形写像eの計算を削減することができ、暗号通信全体の計算量を少なくすることができる実施形態である。
【0184】
本実施形態でも、上記各実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図8は、本実施形態の動作手順を説明するための図である。
【0185】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0186】
【数112】
【0187】
なる双線形写像eを生成させる(ステップ1301)。
【0188】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1302)。そして、演算部102は、s0、s1、Pを用いて、
【0189】
【数113】
【0190】
を生成する(ステップ1303)。
【0191】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,n,lは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0192】
【数114】
【0193】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0194】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1304)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0195】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2301)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3301)。
【0196】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0197】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2302)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0198】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1305)。
【0199】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0200】
【数115】
【0201】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0202】
【数116】
【0203】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0204】
【数117】
【0205】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1306)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0206】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2303)。
【0207】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0208】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0209】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3302)。ただし、M∈{0,1}nとする。ここで、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3303)。
【0210】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3304)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0211】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207にデータ暗号化鍵K0,K1を、
【0212】
【数118】
【0213】
によって計算させ、さらに、演算部202は、暗号復号化装置208に、
【0214】
【数119】
【0215】
を計算させる(ステップ3305)。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0216】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3306)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0217】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0218】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0219】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2304)。
【0220】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207に、
【0221】
【数120】
【0222】
なるgiを計算させる(ステップ2305)。
【0223】
また、演算部202は、関数演算部207および暗復号化部208に、
【0224】
【数121】
【0225】
なる鍵Kiと、
【0226】
【数122】
【0227】
なるr0,r1∈{0,1}m,M∈{0,1}nと、を計算させる(ステップ2306)。但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0228】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0229】
【数123】
【0230】
なるデータ暗号化鍵K1-iと、
【0231】
【数124】
【0232】
なるr'0,r'1∈{0,1}m,M'∈{0,1}nと、を計算させる(ステップ2307)。
【0233】
そして、検査部209に、
【0234】
【数125】
【0235】
および
【0236】
【数126】
【0237】
が成立するか否かを検証させる(ステップ2308)。検証が成立した場合、演算部202は、M’をメッセージ文Mとして出力部205から出力する(ステップ2309)。一方、成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2310)、暗号文Cは棄却する。
【0238】
以上、本発明の第4の実施形態について説明した。
【0239】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【0240】
本実施形態においても、上述の各実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0241】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0242】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0243】
<<第5の実施形態>>
次に、本発明の第5の実施形態について説明する。本実施形態は、第2の実施形態のIDベース暗号通信方法の変形例である。本実施形態は、暗号文の長さを短くすることにより、全体の計算量を低減させるものである。
【0244】
本実施形態でも、第1の実施形態と同様に、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ。)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ。)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID等の個別情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図10は、本実施形態の動作手順を説明するための図である。
【0245】
1.準備処理
1−1:鍵管理センタのセットアップ
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106に、素数q,位数qの加法群G1,位数qの乗法群G2,および、
【0246】
【数127】
【0247】
なる双線形写像eを生成させる(ステップ1401)。
【0248】
次に、演算部102は、鍵情報生成部106に、s0,s1∈Z*qおよびP∈G1をランダムに生成させる(ステップ1402)。そして、演算部102は、s0、s1、Pを用いて、
【0249】
【数128】
【0250】
を生成する(ステップ1403)。
【0251】
鍵管理センタは、s0,s1をマスタ鍵として、(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)をシステム・パラメータとして、両者を記憶部103に記憶する。但し、m,nは正整数を表し、(E,D)は共通鍵暗号を表す。また、H1,H2,H3は、
【0252】
【数129】
【0253】
なるハッシュ関数を意味する。ここで、{0、1}*は、ユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0254】
次に、演算部102は、システム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(ステップ1404)。なお、出力部105からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【0255】
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を、記憶部203に記憶する(ステップ2401)。ユーザ側装置Bにおいても、同様の処理が行われる(ステップ3401)。
【0256】
1−2:プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Aからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Bからの要求においても同様の処理が行われる。
【0257】
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAから受け付けたユーザAのID等の個別情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ100に送信する(ステップ2402)。なお、ユーザAが郵送等によって鍵管理センタに個別情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0258】
鍵管理センタ側装置100において、演算部102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAの個別情報IDAを、ユーザ側装置Aのアドレスに対応づけて記憶部103に記憶する(ステップ1405)。
【0259】
次に、演算部102は、鍵情報生成部106に記憶部103に記憶されているシステム・パラメータ内のH1およびユーザの個別情報IDAを用いて、
【0260】
【数130】
【0261】
を計算する。さらに、i∈{0,1}をランダムに生成し,記憶部103内にあるマスタ鍵siを用いて、
【0262】
【数131】
【0263】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【0264】
【数132】
【0265】
をユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば、鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信など)で送信する(ステップ1406)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0266】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(ステップ2403)。
【0267】
2.暗号化処理
次に、ユーザ側装置200がメッセージ文Mを暗号化して暗号文Cを生成する場合の処理について説明する。
【0268】
ここでは、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合を例にとり説明する。ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合も同様の処理が行われる。
【0269】
ユーザ側装置Aにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(ステップ3402)。ただし、M∈{0,1}nとする。ここで、nは正整数である。そして、公開されているユーザAの個別情報IDAを取得する(ステップ3403)。
【0270】
次に、演算部202は、記憶部203に記憶されているシステム・パラメータの中のqを用いて、乱数生成部206にメッセージ文Mに対するr0,r1∈Z*qをランダムに生成させる(ステップ3404)。ここで、すべてのZ*qの元はmビット列で表されるものとする。
【0271】
さらに、演算部202は、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0, Ppub,1, Ppub,H1,H2,H3,E,D)を用いて、関数計算部207に
【0272】
【数133】
【0273】
なるgと(ステップ3405)、
【0274】
【数134】
【0275】
により、r0、r1とデータ暗号化鍵Kと(ステップ3406)を計算させる。
【0276】
そして、演算部202は、関数計算部207および暗号化部208に、
【0277】
【数135】
【0278】
を計算させる。ただし、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。
【0279】
そして、ユーザ側装置Bは、この計算結果(U0,U1,V0,V1,W)を、メッセージMの暗号文Cとして、通信回線300を介して通信部204からユーザ側装置Aに送信する(ステップ3407)。このとき、出力部208を用いて出力してもよい。出力部208から出力した場合、郵送等によりユーザ側装置Aに配送する。
【0280】
3.復号化処理
次に、ユーザ側装置200が受け取ったメッセージMの暗号文Cを復号する場合の処理を説明する。
【0281】
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文Cをメッセージ文Mに復号する場合を例にとり説明する。ユーザ側装置Bがユーザ側装置Aから受信した暗号文Cをメッセージ文Mに復号する場合も同様の処理が行われる。
【0282】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文CユーザAから送られた暗号文C(=(U0,U1,V0,V1,W))を記憶部203に記憶する(ステップ2404)。
【0283】
次に、演算部202は、受信した暗号文Cに対して、記憶部203に記憶されているユーザBのプライベート鍵とシステム・パラメータとを用いて、関数演算部207および暗復号化部208に、
【0284】
【数136】
【0285】
なるgiを計算させる(ステップ2405)。
【0286】
計算したgiを用いて、演算部202は、関数演算部207と暗復号化部208とに
【0287】
【数137】
【0288】
なるRを計算させ(ステップ2406)、さらに計算したRを用いて、
【0289】
【数138】
【0290】
なるr0,r1、K、を計算させる(ステップ2407)。
【0291】
さらに、演算部202は、同様に、関数演算部207および暗復号化部208に、
【0292】
【数139】
【0293】
なるデータR'∈{0,1}mを計算させる(ステップ2408)。
【0294】
そして、検査部209に、
【0295】
【数140】
【0296】
が成立するか否かを検証させる(ステップ2409)。
【0297】
検証が成立した場合、演算部202は、
【0298】
【数141】
【0299】
によりMを計算し、メッセージ文Mとして出力する(ステップ2410)。但し、DK(y)は暗号文yを鍵Kを用いて復号した結果を表す。また,すべてのZ*qの元はmビット列で表されるものとする。
【0300】
一方、検証が成立しない場合、演算部202は、受信した暗号文C(=(U0,U1,V0,V1,W))を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部205から出力し(ステップ2411)、暗号文Cは棄却する。
【0301】
次に、本実施形態の安全な共通鍵暗号(E,D)の実現方法の一例を以下に説明する。
【0302】
受信者側装置の演算部202は、関数計算部207および暗復号化部208に、共通鍵暗号(E,D)としてメッセージ文Mに対して
【0303】
【数142】
【0304】
を計算することにより暗号文Cを作成する。ただし、H4は、
【0305】
【数143】
【0306】
なるハッシュ関数を意味し、システム・パラメータの一部として公開されるものである。
【0307】
また、送信側装置装置の演算部202は、暗号文C(C=y0‖y1(y0={0,1}n、y1={0,1}l))に対し、
【0308】
【数144】
【0309】
を計算することにより暗号文を復号する。
【0310】
以上、本発明の第5の実施形態について説明した。
【0311】
本実施形態においても、第1の実施形態同様、計算量の大きい双線形写像eの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【0312】
また、本実施形態では、上述のように、暗号文の長さが短くなるため、全体の計算量がさらに低減される。
【0313】
本実施形態においても、上述の各実施形態と同様に、暗号文Cの一部であるWを計算する際のハッシュ関数H3への入力値を本方式において利用される別のパラメータ(システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部)に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【0314】
また、本実施形態においても、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【0315】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるIDベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【0316】
以上の各実施形態では、ユーザが各々の装置を利用して暗号通信を行うという一般形で説明した。しかし、本発明は、具体的には様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者であるユーザは消費者であり、受信者であるユーザは小売店、ユーザ側装置はパソコンなどの計算機となる。また、電子メールシステムでは、各々の装置はパソコンなどの計算機である。その他にも、従来の公開鍵暗号およびIDベース暗号が使われている様々なシステムに適用することが可能である。
【0317】
また、上記各実施形態における各計算は、CPUがメモリ内の各プログラムを実行することにより行われるものとして説明したが、プログラムだけではなく、いずれかがハードウエア化された演算装置であって、他の演算装置や、CPUと、データのやりとりを行うものであっても良い。
【図面の簡単な説明】
【0318】
【図1】本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。
【図2】図1に示す鍵管理センタ側装置の概略構成図である。
【図3】図1に示すユーザ側装置の概略構成図である。
【図4】鍵管理センタ側装置およびユーザ側装置のハードウェア構成例を示す図である。
【図5】本発明の第1の実施形態の動作手順を説明するための図である。
【図6】本発明の第2の実施形態の動作手順を説明するための図である。
【図7】本発明の第3の実施形態の動作手順を説明するための図である。
【図8】本発明の第4の実施形態の動作手順を説明するための図である。
【図9】本発明の第5の実施形態の動作手順を説明するための図である。
【符号の説明】
【0319】
100…鍵管理センタ側装置、101…入力部、102…演算部、103…記憶部、104…通信部、105…出力部、106…鍵情報作成部、200…ユーザ側装置、200…ユーザ側装置、201…入力部、202…演算部、203…記憶部、204…通信部、205…出力部、206…乱数生成部、207…関数計算部、208…暗復号化部、209…検査部、300…通信回線
【特許請求の範囲】
【請求項1】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、
前記複数の秘密情報の中からランダムに選択した1の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した1の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、
前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、
前記送信者側装置は、
前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、
前記受信者側装置は、
前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項2】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数1】
なる双線形写像を作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数2】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、H1,H2,H3は、
【数3】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数4】
を計算する手段と、
i∈{0,1}をランダムに選び、該マスタ鍵siを用いて、
【数5】
を計算する手段と、
【数6】
を該ユーザAのプライベート鍵として出力する手段と、を備え
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を用いて、
【数7】
を計算する手段と、
【数8】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数9】
なるr1-i∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数10】
なるri∈{0,1}m、M´∈{0,1}nと、を計算する手段と、
r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数11】
および
【数12】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項3】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数13】
なる双線形写像を作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数14】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数15】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数16】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数17】
を計算する手段と、
【数18】
を該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、データ暗号化鍵K0,K1として
【数19】
を計算する手段と、
前記メッセージ文Mと、前記r0およびr1、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数20】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数21】
なる鍵Kiを計算する手段と、前記暗号文を用いて
【数22】
なるr1-i∈{0,1}m,M∈{0,1}nを計算する手段(但し、DKi(y)は暗号文yを鍵Kiを用いて復号化した結果を表す。また、すべてのZ*qの元はmビット列で表されるものとする。)と、
ユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数23】
なる鍵K1-iを計算する手段と、
【数24】
なるri∈{0,1}m,M´∈{0,1}nを計算する手段と、
r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数25】
および
【数26】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項4】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数27】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数28】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、H1,H2,H3は、
【数29】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数30】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数31】
を計算する手段と、
【数32】
を該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を用いて、
【数33】
を計算する手段と、
【数34】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数35】
なるgiを計算する手段と、
前記giを用いて
【数36】
なるr0,r1∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数37】
なるr'0,r'1∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、を計算する手段と、
M、M’、r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数38】
および
【数39】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項5】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数40】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数41】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数42】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数43】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数44】
を計算する手段と、
【数45】
該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、データ暗号化鍵K0,K1として
【数46】
を計算する手段と、
前記メッセージ文Mと、前記r0およびr1、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数47】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置が、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数48】
なるgiを計算する手段と、
前記giを用いて、
【数49】
なる鍵Kiとを計算する手段と、
前記暗号文を用いて
【数50】
なるr0,r1∈{0,1}m,M∈{0,1}nを計算する手段(但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また、すべてのZ*qの元はmビット列で表されるものとする。)と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数51】
なる鍵K1-iを計算する手段と、
【数52】
なるr'0,r'1∈{0,1}m,M∈{0,1}nを計算する手段と、
r0、r1、r'0、r'1、および、システム・パラメータを用いて、
【数53】
および
【数54】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項6】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数55】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数56】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数57】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数58】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数59】
を計算する手段と、
【数60】
該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、
【数61】
なるgと
【数62】
なるr0、r1、データ暗号化鍵Kを計算する手段と、
前記メッセージ文Mと、前記r0およびr1、Rと、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数63】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数64】
なるgiと、
【数65】
なるRと、
前記Rを用いて
【数66】
なるr0,r1、Kを計算する手段(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数67】
なるR'∈{0,1}mを計算する手段と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数68】
および
【数69】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするIDベース暗号通信システム。
【請求項7】
請求項6記載のIDベース暗号通信システムであって、
前記送信者側装置は、前記共通鍵暗号を表す(E、D)として、前記メッセージ文Mから、
【数70】
を計算することにより暗号文Cを生成し(ただし、H4は、
【数71】
なるハッシュ関数を意味し、システム・パラメータの一部として公開される。)、
前記受信者側装置は、暗号文C(C=y0‖y1(y0={0,1}n、y1={0,1}l))に対して、
【数72】
を計算することにより暗号文の復号を行うこと
を特徴とするIDベース暗号通信システム。
【請求項8】
請求項2から7いずれか1項記載のIDベース暗号通信システムであって、
前記送信者側装置は、前記暗号文の一部であるWを算出する際の入力値を当該IDベース暗号通信システムにおいて利用される別のパラメータに変更し、前記暗号文の作成を行い、
前記受信者側装置は、前記入力値を前記別のパラメータに変更し、前記暗号文の復号を行うこと
を特徴とするIDベース暗号通信システム
【請求項9】
請求項1から8いずれか1項記載のIDベース暗号通信システムであって、
鍵管理センタ側装置は、暗号通信を行うに先立ち、ハードウエア的に安全なデバイスによって作成され、各ユーザに対して該デバイスを各々配布すること
を特徴とするIDベース暗号通信システム。
【請求項10】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項11】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる送信者側装置。
【請求項12】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる受信者側装置。
【請求項1】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、
前記複数の秘密情報の中からランダムに選択した1の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した1の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、
前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、
前記送信者側装置は、
前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、
前記受信者側装置は、
前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項2】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数1】
なる双線形写像を作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数2】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、H1,H2,H3は、
【数3】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数4】
を計算する手段と、
i∈{0,1}をランダムに選び、該マスタ鍵siを用いて、
【数5】
を計算する手段と、
【数6】
を該ユーザAのプライベート鍵として出力する手段と、を備え
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を用いて、
【数7】
を計算する手段と、
【数8】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数9】
なるr1-i∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数10】
なるri∈{0,1}m、M´∈{0,1}nと、を計算する手段と、
r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数11】
および
【数12】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項3】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数13】
なる双線形写像を作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数14】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数15】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数16】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数17】
を計算する手段と、
【数18】
を該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、データ暗号化鍵K0,K1として
【数19】
を計算する手段と、
前記メッセージ文Mと、前記r0およびr1、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数20】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数21】
なる鍵Kiを計算する手段と、前記暗号文を用いて
【数22】
なるr1-i∈{0,1}m,M∈{0,1}nを計算する手段(但し、DKi(y)は暗号文yを鍵Kiを用いて復号化した結果を表す。また、すべてのZ*qの元はmビット列で表されるものとする。)と、
ユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数23】
なる鍵K1-iを計算する手段と、
【数24】
なるri∈{0,1}m,M´∈{0,1}nを計算する手段と、
r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数25】
および
【数26】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項4】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数27】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数28】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、H1,H2,H3は、
【数29】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数30】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数31】
を計算する手段と、
【数32】
を該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3)を用いて、
【数33】
を計算する手段と、
【数34】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数35】
なるgiを計算する手段と、
前記giを用いて
【数36】
なるr0,r1∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数37】
なるr'0,r'1∈{0,1}m、M∈{0,1}n(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、を計算する手段と、
M、M’、r0、r1、プライベート鍵、および、システム・パラメータを用いて、
【数38】
および
【数39】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項5】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数40】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数41】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数42】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数43】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数44】
を計算する手段と、
【数45】
該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r0,r1∈Z*qをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,l,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、データ暗号化鍵K0,K1として
【数46】
を計算する手段と、
前記メッセージ文Mと、前記r0およびr1、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数47】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置が、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数48】
なるgiを計算する手段と、
前記giを用いて、
【数49】
なる鍵Kiとを計算する手段と、
前記暗号文を用いて
【数50】
なるr0,r1∈{0,1}m,M∈{0,1}nを計算する手段(但し、DKi(y)は暗号文yを鍵Kiを用いて復号した結果を表す。また、すべてのZ*qの元はmビット列で表されるものとする。)と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数51】
なる鍵K1-iを計算する手段と、
【数52】
なるr'0,r'1∈{0,1}m,M∈{0,1}nを計算する手段と、
r0、r1、r'0、r'1、および、システム・パラメータを用いて、
【数53】
および
【数54】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするIDベース暗号通信システム。
【請求項6】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q,位数qの加法群G1,位数qの乗法群G2,および、
【数55】
なる双線形写像eを作成する手段と、
s0,s1∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*qはqとの最大公約数が1である整数の集合を表す)と、
【数56】
を作成し、s0,s1をマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3は、
【数57】
なるハッシュ関数を意味する。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システム・パラメータを用いて
【数58】
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵siを用いて、
【数59】
を計算する手段と、
【数60】
該ユーザAのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ(q,G1,G2,e,m,n,P,Ppub,0,Ppub,1,Ppub,H1,H2,H3,E,D)を用いて、
【数61】
なるgと
【数62】
なるr0、r1、データ暗号化鍵Kを計算する手段と、
前記メッセージ文Mと、前記r0およびr1、Rと、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数63】
(ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、EKi(x)は平文xをデータ暗号化鍵Kiを用いて暗号化した結果を表す。)を計算する手段と、
当該計算結果(U0,U1,V0,V1,W)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U0,U1,V0,V1,W)を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザAのプライベート鍵およびシステム・パラメータを用いて、
【数64】
なるgiと、
【数65】
なるRと、
前記Rを用いて
【数66】
なるr0,r1、Kを計算する手段(但し、すべてのZ*qの元はmビット列で表されるものとする。)と、
【数67】
なるR'∈{0,1}mを計算する手段と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数68】
および
【数69】
が成立するか否かを検証する手段と、
前記検証が成立した場合、Mをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするIDベース暗号通信システム。
【請求項7】
請求項6記載のIDベース暗号通信システムであって、
前記送信者側装置は、前記共通鍵暗号を表す(E、D)として、前記メッセージ文Mから、
【数70】
を計算することにより暗号文Cを生成し(ただし、H4は、
【数71】
なるハッシュ関数を意味し、システム・パラメータの一部として公開される。)、
前記受信者側装置は、暗号文C(C=y0‖y1(y0={0,1}n、y1={0,1}l))に対して、
【数72】
を計算することにより暗号文の復号を行うこと
を特徴とするIDベース暗号通信システム。
【請求項8】
請求項2から7いずれか1項記載のIDベース暗号通信システムであって、
前記送信者側装置は、前記暗号文の一部であるWを算出する際の入力値を当該IDベース暗号通信システムにおいて利用される別のパラメータに変更し、前記暗号文の作成を行い、
前記受信者側装置は、前記入力値を前記別のパラメータに変更し、前記暗号文の復号を行うこと
を特徴とするIDベース暗号通信システム
【請求項9】
請求項1から8いずれか1項記載のIDベース暗号通信システムであって、
鍵管理センタ側装置は、暗号通信を行うに先立ち、ハードウエア的に安全なデバイスによって作成され、各ユーザに対して該デバイスを各々配布すること
を特徴とするIDベース暗号通信システム。
【請求項10】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項11】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる送信者側装置。
【請求項12】
請求項1から9いずれか1項記載のIDベース暗号通信システムで用いられる受信者側装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2007−208410(P2007−208410A)
【公開日】平成19年8月16日(2007.8.16)
【国際特許分類】
【出願番号】特願2006−22345(P2006−22345)
【出願日】平成18年1月31日(2006.1.31)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成19年8月16日(2007.8.16)
【国際特許分類】
【出願日】平成18年1月31日(2006.1.31)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]