IDベース暗号通信方法および装置
【課題】複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供する。
【解決手段】送信者の装置200は、メッセージMの暗号通信に用いる暗号通信方法の暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力してメッセージ文Mの暗号文を作成し、暗号識別情報と共に受信者の装置200に送信する。受信者の装置200は、該暗号文および自身のプライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算する。そして、計算した暗号識別情報が暗号文と共に受信した暗号識別情報と一致するか否かを判断し、一致する場合に、暗号文をプライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、メッセージ文の出力を拒否する。
【解決手段】送信者の装置200は、メッセージMの暗号通信に用いる暗号通信方法の暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力してメッセージ文Mの暗号文を作成し、暗号識別情報と共に受信者の装置200に送信する。受信者の装置200は、該暗号文および自身のプライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算する。そして、計算した暗号識別情報が暗号文と共に受信した暗号識別情報と一致するか否かを判断し、一致する場合に、暗号文をプライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、メッセージ文の出力を拒否する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの所属、名前、メールアドレス等の個人を特定できるID情報を利用して、暗号通信や文書認証を行うIDベース暗号システムに関する。
【背景技術】
【0002】
非特許文献1に記載されているように、公開鍵暗号システムでは、ユーザが作成した公開鍵を認証局(CA:Certificate Authority)に登録し、その正当性の根拠である公開鍵証明書を発行してもらう必要がある。すなわち、暗号文の送信者は、受信者の公開鍵とその公開鍵証明書を手に入れ、該公開鍵証明書を用いて該公開鍵の正当性を確認した上で、送信するメッセージ文の暗号化を行う必要がある。
【0003】
これに対して、CAによる公開鍵証明書の発行の手間を省いて、より簡単な公開鍵の管理を行うことを目的として、ユーザのID情報を公開鍵とする暗号システム(以下、IDベース暗号システムと呼ぶ)が提案された。非特許文献2に記載されているように、IDベース暗号システムでは、暗号通信や認証(ディジタル署名、個人認証等)を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のID情報を公開鍵として鍵管理センタに登録すると共に、鍵管理センタに、当該鍵管理センタのマスタ鍵を用いて該ID情報に対応する秘密鍵(以下、IDベース暗号用秘密鍵と呼ぶ)を発行してもらう。また、鍵管理センタは、当該鍵管理センタのマスタ鍵と対のシステムパラメータを作成して公開する。暗号文の送信者は、受信者のID情報と鍵管理センタのシステムパラメータとを用いて暗号文を作成し、受信者に送信する。受信者は、IDベース暗号用秘密鍵を用いてメッセージの復号化を行う。
【0004】
公開鍵暗号システムでは受信者の公開鍵がランダムなビット列であるのに対して、IDベース暗号システムでは受信者のIDベース暗号用公開鍵がメールアドレス等のID情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのIDベース暗号システムが提案されている。例えば、非特許文献3には、ゼロ知識証明を利用したIDベースのディジタル署名を実現するIDベース暗号システムが提案されている。非特許文献4では、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムが提案されている。また、非特許文献5では、非特許文献4に記載のIDベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、非特許文献6では、IDベース暗号システムのインフラストラクチャにおいて、証明書不要することができる公開鍵暗号が提案されている。非特許文献7では、IDベース暗号システムのインフラストラクチャにおいて、否認可能な証明機能を持った暗号方法が提案されている。
【0005】
【非特許文献1】独立行政法人 情報処理推進機構 セキュリティセンター、情報セキュリティ技術ラボラトリー、"PKI 関連技術解説 3.1 PKI概要"、[平成17年5月19日検索] インターネット<URL:http://www.ipa.go.jp/security/pki/>
【非特許文献2】A. Shamir、"Identity Based Cryptosystems and Signature Schemes, Advances in Cryptology Crypto'98"、LNCS 196、pp.47-53、Springer、1984
【非特許文献3】A. Fiat and A. Shamir 、"How to Prove Yourself: Practical Solutions to Identification and Signature Problems"、Advances in Cryptology Crypto'86、LNCS 263、pp.186-194、Springer、1986
【非特許文献4】D. Boneh and M. Franklin、"Identity Based Encryption From the Weil Pairing"、[平成17年5月19日検索] インターネット<URL:http://crypto.stanford.edu/~dabo/papers/ibe.pdf>
【非特許文献5】B. Libert and J.-J. Quisquater 、"The Exact Security of an Identity Based Signature and its Applications"、[平成17年1月17日検索] インターネット<URL:http://eprint.iacr.org/2004/102.pdf>
【非特許文献6】S.S. Al-Riyami and K. G. Paterson "Certificateless PublicKey Cryptography"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2003/126.pdf>
【非特許文献7】B. Lynn "Authenticated Identity-Based Encryption"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2002/072.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述したように、様々なIDベース暗号通信方法が提案されている。本発明の目的は、新たなIDベース暗号通信技術を提案することにある。また、本発明の他の目的は、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のIDベース暗号通信方法の第1の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0008】
【数103】
【0009】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0010】
【数104】
【0011】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0012】
【数105】
【0013】
なるハッシュ関数を意味する。なお、数105において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【0014】
【数106】
【0015】
を計算するステップと、
数106の計算結果および前記マスタ鍵sを用いて、
【0016】
【数107】
【0017】
を計算するステップと、
数107の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0018】
【数108】
【0019】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数109で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0020】
【数109】
【0021】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数109の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【0022】
【数110】
【0023】
を計算するステップと、
前記暗号文を用いて、
【0024】
【数111】
【0025】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数111の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0026】
【数112】
【0027】
を計算するステップと、
数111、数112の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0028】
【数113】
【0029】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0030】
また、本発明の第2の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0031】
【数114】
【0032】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0033】
【数115】
【0034】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0035】
【数116】
【0036】
なるハッシュ関数を意味する。なお、数116において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【0037】
【数117】
【0038】
を計算するステップと、
数117の計算結果および前記マスタ鍵sを用いて、
【0039】
【数118】
【0040】
を計算するステップと、
数118の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0041】
【数119】
【0042】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0043】
【数120】
【0044】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数121で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0045】
【数121】
【0046】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数121の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0047】
【数122】
【0048】
を計算するステップと、
数122の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0049】
【数123】
【0050】
なるデータ暗号化鍵K′を計算するステップと、
数123の計算結果と、前記暗号文とを用いて、
【0051】
【数124】
【0052】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数124の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0053】
【数125】
【0054】
を計算するステップと、
数124、数125の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0055】
【数126】
【0056】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0057】
また、本発明の第3の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0058】
【数127】
【0059】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0060】
【数128】
【0061】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0062】
【数129】
【0063】
なるハッシュ関数を意味する。なお、数129において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【0064】
【数130】
【0065】
を計算するステップと、
数28の計算結果および前記マスタ鍵sを用いて、
【0066】
【数131】
【0067】
を計算するステップと、
数131の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0068】
【数132】
【0069】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数133で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0070】
【数133】
【0071】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数133の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0072】
【数134】
【0073】
なるデータ暗号化鍵K′を計算するステップと、
前記データ暗号化鍵K′および前記暗号文を用いて、
【0074】
【数135】
【0075】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数135の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0076】
【数136】
【0077】
を計算するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0078】
【数137】
【0079】
を計算するステップと、
数136、数137の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0080】
【数138】
【0081】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0082】
また、本発明の第4の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行う。
【0083】
例えば、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0084】
【数139】
【0085】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0086】
【数140】
【0087】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0088】
【数141】
【0089】
なるハッシュ関数を意味する。なお、数141において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【0090】
【数142】
【0091】
を計算するステップと、
数142の計算結果および前記マスタ鍵sを用いて、
【0092】
【数143】
【0093】
を計算するステップと、
数143の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0094】
【数144】
【0095】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【0096】
【数145】
【0097】
を計算するステップ(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数145の計算結果と、前記暗号識別情報αとを用いて、
【0098】
【数146】
【0099】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数147で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0100】
【数147】
【0101】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数147の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【0102】
【数148】
【0103】
を計算するステップ(但し、
【0104】
【数149】
【0105】
である。)と、
数149の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0106】
【数150】
【0107】
なるデータ暗号化鍵K′を計算するステップと、
数150の計算結果と、前記暗号文とを用いて、
【0108】
【数151】
【0109】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数151の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0110】
【数152】
【0111】
を計算するステップと、
数151、数152の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0112】
【数153】
【0113】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行う。
【発明の効果】
【0114】
本発明によれば、新たなIDベース暗号通信技術を提供することができる。また、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【0115】
以下に、本発明の実施の形態について説明する。
【0116】
まず、以下の各実施形態に共通するIDベース暗号通信システムの構成を説明する。
【0117】
図1は本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。図示するように、IDベース暗号通信システムは、鍵管理センタ側装置100と、複数のユーザ側通信装置200とが、通信回線300を介して接続された構成を有している。
【0118】
図2は図1に示す鍵管理センタ側装置100の概略構成図である。図示するように、鍵管理センタ側装置100は、情報を入力する入力部101と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置100の各部の制御を行う演算部102と、記憶部103と、通信回線300を介してユーザ側装置200と通信を行なう通信部104と、情報を出力する通信部105と、を備えている。また、演算部102は、鍵管理センタのマスタ鍵およびシステムパラメータを作成する鍵情報作成部106を有する。
【0119】
図3は図1に示すユーザ側装置200の概略構成図である。図示するように、ユーザ側装置200は、情報を入力する入力部201と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置200の各部の制御を行う演算部202と、記憶部203と、通信回線300を介して鍵管理センタ側装置100および他のユーザ側装置200と通信を行なう通信部204と、情報を出力する通信部205と、を備えている。また、演算部202は、乱数を生成する乱数生成部206と、暗復号化処理を行う暗復号化部207とを有する。
【0120】
上記構成の鍵管理センタ側装置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に利用される。
【0121】
この所定のプログラムは、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、外部記憶装置403にダウンロードされ、それから、メモリ402上にロードされてCPU401により実行されるようにしてもよい。また、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、メモリ402上に直接ロードされ、CPU401により実行されるようにしてもよい。
【0122】
<<第1実施形態>>
次に、本発明の第1実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は第1実施形態の動作手順を説明するための図である。
【0123】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0124】
【数154】
【0125】
なる双線形写像eを生成する(S1001)。
【0126】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1002)。ここで、Z*q={1、2、...、q-1}である。
【0127】
次に、演算部102は、s、Pを用いて、
【0128】
【数155】
【0129】
を生成する(S1003)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0130】
【数156】
【0131】
なるハッシュ関数を意味する。なお、数156において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0132】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1004)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0133】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2001)。ユーザ側装置Bでも同様の処理が行われる。
【0134】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0135】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2002)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0136】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1005)。
【0137】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0138】
【数157】
【0139】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0140】
【数158】
【0141】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1006)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0142】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2003)。
【0143】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0144】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3001)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0145】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0146】
【数159】
【0147】
なるデータ暗号化鍵Kを計算する(S3002)。ここで、Wは後述する数160で定義される。
【0148】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0149】
【数160】
【0150】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3003)。
【0151】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0152】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2004)。
【0153】
次に、演算部202は、受信した暗号文(U,V,W,Y)に対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、
【0154】
【数161】
【0155】
を計算する。さらに、受信した暗号文(U,V,W,Y)を用いて、
【0156】
【数162】
【0157】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2005)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
【0158】
次に、演算部202は、数160の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0159】
【数163】
【0160】
を計算する(S2006)。さらに、演算部202は、数161、数162の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0161】
【数164】
【0162】
が成立するか否かを検証する(S2007)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2008)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2009)。
【0163】
以上、本発明の第1実施形態について説明した。
【0164】
本実施形態は、非特許文献4に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND-ID-CCAの意味での安全性を証明できる。
【0165】
なお、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0166】
<<第2実施形態>>
次に、本発明の第2実施形態について説明する。本実施形態は、上記の第1実施形態において、鍵管センタのタッピングの不正を考慮し安全性を強化したものである。図6は本発明の第2実施形態の動作手順を説明するための図である。
【0167】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0168】
【数165】
【0169】
なる双線形写像eを生成する(S1101)。
【0170】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1102)。ここで、Z*q={1、2、...、q-1}である。
【0171】
次に、演算部102は、s、Pを用いて、
【0172】
【数166】
【0173】
を生成する(S1103)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0174】
【数167】
【0175】
なるハッシュ関数を意味する。なお、数167において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0176】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1104)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0177】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2101)。ユーザ側装置Bでも同様の処理が行われる。
【0178】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0179】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2102)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0180】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1105)。
【0181】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0182】
【数168】
【0183】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0184】
【数169】
【0185】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1106)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0186】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2103)。
【0187】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2104)。
【0188】
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
【0189】
【数170】
【0190】
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2105)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
【0191】
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3101)。
【0192】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0193】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3102)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0194】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0195】
【数171】
【0196】
なるデータ暗号化鍵Kを計算する(S3103)。ここで、Wは後述する数172で定義される。
【0197】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0198】
【数172】
【0199】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3104)。
【0200】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0201】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2106)。
【0202】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
【0203】
【数173】
【0204】
を計算する。次に、演算部202は、数173の計算結果と、記憶部203に記憶されているユーザAのプライベート鍵、ユーザAの秘密鍵およびシステムパラメータと、受信した暗号文とを用いて、
【0205】
【数174】
【0206】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、数174の計算結果と、受信した暗号文(U,V,W,Y)とを用いて、
【0207】
【数175】
【0208】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2107)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
【0209】
次に、演算部202は、数173の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0210】
【数176】
【0211】
を計算する(S2108)。さらに、演算部202は、数173、数174の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0212】
【数177】
【0213】
が成立するか否かを検証する(S2109)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2110)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2111)。
【0214】
以上、本発明の第2実施形態について説明した。
【0215】
本実施形態では、送信側装置であるユーザ側装置Bは、鍵管理センタ側装置100が作成したシステムパラメータと受信側装置であるユーザA側装置が作成した公開情報Ppub,Aとからメッセージ文Mの暗号文を作成している。また、受信側装置であるユーザ側装置Aは、鍵管理センタ側装置100が作成したユーザAプライベート鍵とユーザ側装置Aが作成したユーザAの秘密鍵とを用いてメッセージ文Mの復号化を行っている。ここで、鍵管理センタは、プライベート鍵については知ることができるが、秘密鍵については知ることができない。このため、鍵管理センタに内部不正者が存在しても暗号文を復号化することができない。
【0216】
また、本実施形態では、非特許文献4に記載の手法と同様の手法により、IND−CCA2の意味での安全性を証明することが可能である。さらに、ユーザが自身で作成した鍵情報について、鍵管理センタが公開しているシステムパラメータを利用して作成し、かつ、鍵管理センタが発行したプライベート鍵と併用して復号化処理を行うため、既存のIDベース暗号システムと同様に、公開鍵証明書が不要である。
【0217】
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0218】
<<第3実施形態>>
次に、本発明の第3実施形態について説明する。本実施形態では、本実施形態は、上記の第1実施形態において、否認可能な認証機能を持たせたものである。図7は本発明の第2実施形態の動作手順を説明するための図である。
【0219】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0220】
【数178】
【0221】
なる双線形写像eを生成する(S1201)。
【0222】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1202)。ここで、Z*q={1、2、...、q-1}である。
【0223】
次に、演算部102は、s、Pを用いて、
【0224】
【数179】
【0225】
を生成する(S1203)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0226】
【数180】
【0227】
なるハッシュ関数を意味する。なお、数178において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
【0228】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1204)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0229】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2201)。ユーザ側装置Bでも同様の処理が行われる。
【0230】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0231】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2202)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0232】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1205)。
【0233】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0234】
【数181】
【0235】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0236】
【数182】
【0237】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1206)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0238】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2203)。
【0239】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0240】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3201)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0241】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)およびユーザBのプライベート鍵とを用いて、
【0242】
【数183】
【0243】
なるデータ暗号化鍵Kを計算する(S3202)。ここで、Wは後述する数184で定義される。
【0244】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0245】
【数184】
【0246】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3203)。
【0247】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0248】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2204)。
【0249】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
【0250】
【数185】
【0251】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文(U,V,W,Y)とを用いて、
【0252】
【数186】
【0253】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2207)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
【0254】
次に、演算部202は、数186の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0255】
【数187】
【0256】
を計算する(S2208)。さらに、演算部202は、ユーザAの個別情報IDAと、システムパラメータH1とを用いて、
【0257】
【数188】
【0258】
を計算する。それから、演算部202は、数187、数188の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0259】
【数189】
【0260】
が成立するか否かを検証する(S2209)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2210)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2211)。
【0261】
以上、本発明の第3実施形態について説明した。
【0262】
本実施形態では、上記の第1実施形態と異なり、暗号化の際にも送信者(ユーザB)ののプライベート鍵を用いて暗号文を作成する。送信者のプライベート鍵を知らない受信者(ユーザB)は、送信者になりすまして正しい暗号文を作成するこができない。このため、本実施形態によれば、上記の第1実施形態の効果に加えて、デジタル署名を用いることなく認証機能を実現することができる。
【0263】
また、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0264】
<<第4実施形態>>
本実施形態では、上記の第1実施形態で説明した暗号方法(以下、00で表す。)と、上記の第2実施形態で説明した暗号方法(以下、10で表す。)と、上記の第3実施形態で説明した暗号方法(以下、11で表す。)とを、目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができるようにしたものである。図8は本発明の第4実施形態の動作手順を説明するための図である。
【0265】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0266】
【数190】
【0267】
なる双線形写像eを生成する(S1301)。
【0268】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1302)。ここで、Z*q={1、2、...、q-1}である。
【0269】
次に、演算部102は、s、Pを用いて、
【0270】
【数191】
【0271】
を生成する(S1303)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0272】
【数192】
【0273】
なるハッシュ関数を意味する。なお、数192において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
【0274】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1304)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0275】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2301)。ユーザ側装置Bでも同様の処理が行われる。
【0276】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0277】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2302)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0278】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1305)。
【0279】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0280】
【数193】
【0281】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0282】
【数194】
【0283】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1306)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0284】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2303)。
【0285】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2304)。
【0286】
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
【0287】
【数195】
【0288】
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2305)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
【0289】
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3301)。
【0290】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0291】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mおよびメッセージ文Mの暗号通信に用いる暗号通信方法(上記の第1乃至第3実施形態に示す暗号通信方法のいずれか)に付与された暗号識別情報α∈{00,10,11}を記憶部203に記憶する(S3302)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0292】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)およびユーザBのプライベート鍵とを用いて、
【0293】
【数196】
【0294】
を計算する。さらに、演算部202は、数196の計算結果と、記憶部203に記憶された暗号識別情報αとを用いて、
【0295】
【数197】
【0296】
なるデータ暗号化鍵Kを計算する(S3304)。ここで、Wは後述する数198で定義される。
【0297】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0298】
【数198】
【0299】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)および暗号識別情報αをメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3305)。
【0300】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0301】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y,α)を記憶部203に記憶する(S2306)。
【0302】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているユーザAのプライベート鍵およびシステムパラメータと、受信した暗号文とを用いて、
【0303】
【数199】
【0304】
を計算する。但し、
【0305】
【数200】
【0306】
である。次に、演算部202は、数199の計算結果と、記憶部203に記憶されているシステムパラメータと、受信した暗号文とを用いて、
【0307】
【数201】
【0308】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文とを用いて、
【0309】
【数202】
【0310】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2307)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
【0311】
次に、演算部202は、数202の計算結果R′、M′と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
【0312】
【数203】
【0313】
を計算する(S2308)。それから、演算部202は、数201、数202の計算結果と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
【0314】
【数204】
【0315】
が成立するか否かを検証する(S2309)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2310)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2311)。
【0316】
以上、本発明の第4実施形態について説明した。
【0317】
上述したように、本実施形態によれば、上記の第1乃至第3実施形態で説明した各暗号方法を目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができる。
【0318】
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0319】
また、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記の各実施形態では、ユーザがそれぞれのユーザ側装置200を利用して認証および暗号通信を行うという一般的な通信システムを例にとり説明したが、本発明は、様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者はユーザであり、送信者のユーザ側装置200はパソコンなどの計算機であり、受信者は小売店であり、受信者のユーザ側装置200はパソコンなどの計算機となる。その他にも、従来の公開鍵暗号が使われている様々なシステムに適用することが可能である。
【0320】
また、上記の各実施形態での各計算は、CPUがメモリ上にロードされたプログラムを実行することにより行われるものとして説明した。しかし、プログラムだけではない。いずれかの計算を行なう装置は、ハードウエア化された演算装置であって、他の演算装置やCPUとデータのやりとりを行うものでもよい。
【図面の簡単な説明】
【0321】
【図1】本発明の各実施形態に共通するIDベース暗号通信システムの構成図である。
【図2】図1に示す鍵管理センタ側装置100の概略構成図である。
【図3】図1に示すユーザ側装置200の概略構成図である。
【図4】鍵管理センタ側装置100およびユーザ側装置200のハードウエア構成例を示す図である。
【図5】本発明の第1実施形態の動作手順を説明するための図である。
【図6】本発明の第2実施形態の動作手順を説明するための図である。
【図7】本発明の第3実施形態の動作手順を説明するための図である。
【図8】本発明の第4実施形態の動作手順を説明するための図である。
【符号の説明】
【0322】
100…鍵管理センタ側装置、101…入力部、102…演算部、103…記憶部、104…通信部、105…出力部、1060…鍵情報生成部、200…ユーザ側装置、201…入力部、202…演算部、203…記憶部、204…通信部、205…出力部、206…乱数生成部、207…暗復号化部、300…通信回線
【技術分野】
【0001】
本発明は、ユーザの所属、名前、メールアドレス等の個人を特定できるID情報を利用して、暗号通信や文書認証を行うIDベース暗号システムに関する。
【背景技術】
【0002】
非特許文献1に記載されているように、公開鍵暗号システムでは、ユーザが作成した公開鍵を認証局(CA:Certificate Authority)に登録し、その正当性の根拠である公開鍵証明書を発行してもらう必要がある。すなわち、暗号文の送信者は、受信者の公開鍵とその公開鍵証明書を手に入れ、該公開鍵証明書を用いて該公開鍵の正当性を確認した上で、送信するメッセージ文の暗号化を行う必要がある。
【0003】
これに対して、CAによる公開鍵証明書の発行の手間を省いて、より簡単な公開鍵の管理を行うことを目的として、ユーザのID情報を公開鍵とする暗号システム(以下、IDベース暗号システムと呼ぶ)が提案された。非特許文献2に記載されているように、IDベース暗号システムでは、暗号通信や認証(ディジタル署名、個人認証等)を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のID情報を公開鍵として鍵管理センタに登録すると共に、鍵管理センタに、当該鍵管理センタのマスタ鍵を用いて該ID情報に対応する秘密鍵(以下、IDベース暗号用秘密鍵と呼ぶ)を発行してもらう。また、鍵管理センタは、当該鍵管理センタのマスタ鍵と対のシステムパラメータを作成して公開する。暗号文の送信者は、受信者のID情報と鍵管理センタのシステムパラメータとを用いて暗号文を作成し、受信者に送信する。受信者は、IDベース暗号用秘密鍵を用いてメッセージの復号化を行う。
【0004】
公開鍵暗号システムでは受信者の公開鍵がランダムなビット列であるのに対して、IDベース暗号システムでは受信者のIDベース暗号用公開鍵がメールアドレス等のID情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのIDベース暗号システムが提案されている。例えば、非特許文献3には、ゼロ知識証明を利用したIDベースのディジタル署名を実現するIDベース暗号システムが提案されている。非特許文献4では、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムが提案されている。また、非特許文献5では、非特許文献4に記載のIDベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、非特許文献6では、IDベース暗号システムのインフラストラクチャにおいて、証明書不要することができる公開鍵暗号が提案されている。非特許文献7では、IDベース暗号システムのインフラストラクチャにおいて、否認可能な証明機能を持った暗号方法が提案されている。
【0005】
【非特許文献1】独立行政法人 情報処理推進機構 セキュリティセンター、情報セキュリティ技術ラボラトリー、"PKI 関連技術解説 3.1 PKI概要"、[平成17年5月19日検索] インターネット<URL:http://www.ipa.go.jp/security/pki/>
【非特許文献2】A. Shamir、"Identity Based Cryptosystems and Signature Schemes, Advances in Cryptology Crypto'98"、LNCS 196、pp.47-53、Springer、1984
【非特許文献3】A. Fiat and A. Shamir 、"How to Prove Yourself: Practical Solutions to Identification and Signature Problems"、Advances in Cryptology Crypto'86、LNCS 263、pp.186-194、Springer、1986
【非特許文献4】D. Boneh and M. Franklin、"Identity Based Encryption From the Weil Pairing"、[平成17年5月19日検索] インターネット<URL:http://crypto.stanford.edu/~dabo/papers/ibe.pdf>
【非特許文献5】B. Libert and J.-J. Quisquater 、"The Exact Security of an Identity Based Signature and its Applications"、[平成17年1月17日検索] インターネット<URL:http://eprint.iacr.org/2004/102.pdf>
【非特許文献6】S.S. Al-Riyami and K. G. Paterson "Certificateless PublicKey Cryptography"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2003/126.pdf>
【非特許文献7】B. Lynn "Authenticated Identity-Based Encryption"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2002/072.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述したように、様々なIDベース暗号通信方法が提案されている。本発明の目的は、新たなIDベース暗号通信技術を提案することにある。また、本発明の他の目的は、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のIDベース暗号通信方法の第1の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0008】
【数103】
【0009】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0010】
【数104】
【0011】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0012】
【数105】
【0013】
なるハッシュ関数を意味する。なお、数105において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【0014】
【数106】
【0015】
を計算するステップと、
数106の計算結果および前記マスタ鍵sを用いて、
【0016】
【数107】
【0017】
を計算するステップと、
数107の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0018】
【数108】
【0019】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数109で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0020】
【数109】
【0021】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数109の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【0022】
【数110】
【0023】
を計算するステップと、
前記暗号文を用いて、
【0024】
【数111】
【0025】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数111の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0026】
【数112】
【0027】
を計算するステップと、
数111、数112の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0028】
【数113】
【0029】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0030】
また、本発明の第2の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0031】
【数114】
【0032】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0033】
【数115】
【0034】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0035】
【数116】
【0036】
なるハッシュ関数を意味する。なお、数116において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【0037】
【数117】
【0038】
を計算するステップと、
数117の計算結果および前記マスタ鍵sを用いて、
【0039】
【数118】
【0040】
を計算するステップと、
数118の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0041】
【数119】
【0042】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0043】
【数120】
【0044】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数121で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0045】
【数121】
【0046】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数121の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0047】
【数122】
【0048】
を計算するステップと、
数122の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0049】
【数123】
【0050】
なるデータ暗号化鍵K′を計算するステップと、
数123の計算結果と、前記暗号文とを用いて、
【0051】
【数124】
【0052】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数124の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0053】
【数125】
【0054】
を計算するステップと、
数124、数125の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0055】
【数126】
【0056】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0057】
また、本発明の第3の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0058】
【数127】
【0059】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0060】
【数128】
【0061】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0062】
【数129】
【0063】
なるハッシュ関数を意味する。なお、数129において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【0064】
【数130】
【0065】
を計算するステップと、
数28の計算結果および前記マスタ鍵sを用いて、
【0066】
【数131】
【0067】
を計算するステップと、
数131の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0068】
【数132】
【0069】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数133で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0070】
【数133】
【0071】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数133の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0072】
【数134】
【0073】
なるデータ暗号化鍵K′を計算するステップと、
前記データ暗号化鍵K′および前記暗号文を用いて、
【0074】
【数135】
【0075】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数135の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0076】
【数136】
【0077】
を計算するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0078】
【数137】
【0079】
を計算するステップと、
数136、数137の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0080】
【数138】
【0081】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【0082】
また、本発明の第4の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行う。
【0083】
例えば、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0084】
【数139】
【0085】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【0086】
【数140】
【0087】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0088】
【数141】
【0089】
なるハッシュ関数を意味する。なお、数141において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【0090】
【数142】
【0091】
を計算するステップと、
数142の計算結果および前記マスタ鍵sを用いて、
【0092】
【数143】
【0093】
を計算するステップと、
数143の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0094】
【数144】
【0095】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【0096】
【数145】
【0097】
を計算するステップ(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数145の計算結果と、前記暗号識別情報αとを用いて、
【0098】
【数146】
【0099】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数147で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【0100】
【数147】
【0101】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数147の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【0102】
【数148】
【0103】
を計算するステップ(但し、
【0104】
【数149】
【0105】
である。)と、
数149の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0106】
【数150】
【0107】
なるデータ暗号化鍵K′を計算するステップと、
数150の計算結果と、前記暗号文とを用いて、
【0108】
【数151】
【0109】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数151の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【0110】
【数152】
【0111】
を計算するステップと、
数151、数152の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【0112】
【数153】
【0113】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行う。
【発明の効果】
【0114】
本発明によれば、新たなIDベース暗号通信技術を提供することができる。また、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【0115】
以下に、本発明の実施の形態について説明する。
【0116】
まず、以下の各実施形態に共通するIDベース暗号通信システムの構成を説明する。
【0117】
図1は本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。図示するように、IDベース暗号通信システムは、鍵管理センタ側装置100と、複数のユーザ側通信装置200とが、通信回線300を介して接続された構成を有している。
【0118】
図2は図1に示す鍵管理センタ側装置100の概略構成図である。図示するように、鍵管理センタ側装置100は、情報を入力する入力部101と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置100の各部の制御を行う演算部102と、記憶部103と、通信回線300を介してユーザ側装置200と通信を行なう通信部104と、情報を出力する通信部105と、を備えている。また、演算部102は、鍵管理センタのマスタ鍵およびシステムパラメータを作成する鍵情報作成部106を有する。
【0119】
図3は図1に示すユーザ側装置200の概略構成図である。図示するように、ユーザ側装置200は、情報を入力する入力部201と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置200の各部の制御を行う演算部202と、記憶部203と、通信回線300を介して鍵管理センタ側装置100および他のユーザ側装置200と通信を行なう通信部204と、情報を出力する通信部205と、を備えている。また、演算部202は、乱数を生成する乱数生成部206と、暗復号化処理を行う暗復号化部207とを有する。
【0120】
上記構成の鍵管理センタ側装置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に利用される。
【0121】
この所定のプログラムは、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、外部記憶装置403にダウンロードされ、それから、メモリ402上にロードされてCPU401により実行されるようにしてもよい。また、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、メモリ402上に直接ロードされ、CPU401により実行されるようにしてもよい。
【0122】
<<第1実施形態>>
次に、本発明の第1実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は第1実施形態の動作手順を説明するための図である。
【0123】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0124】
【数154】
【0125】
なる双線形写像eを生成する(S1001)。
【0126】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1002)。ここで、Z*q={1、2、...、q-1}である。
【0127】
次に、演算部102は、s、Pを用いて、
【0128】
【数155】
【0129】
を生成する(S1003)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0130】
【数156】
【0131】
なるハッシュ関数を意味する。なお、数156において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0132】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1004)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0133】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2001)。ユーザ側装置Bでも同様の処理が行われる。
【0134】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0135】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2002)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0136】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1005)。
【0137】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0138】
【数157】
【0139】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0140】
【数158】
【0141】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1006)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0142】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2003)。
【0143】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0144】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3001)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0145】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0146】
【数159】
【0147】
なるデータ暗号化鍵Kを計算する(S3002)。ここで、Wは後述する数160で定義される。
【0148】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0149】
【数160】
【0150】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3003)。
【0151】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0152】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2004)。
【0153】
次に、演算部202は、受信した暗号文(U,V,W,Y)に対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、
【0154】
【数161】
【0155】
を計算する。さらに、受信した暗号文(U,V,W,Y)を用いて、
【0156】
【数162】
【0157】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2005)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
【0158】
次に、演算部202は、数160の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0159】
【数163】
【0160】
を計算する(S2006)。さらに、演算部202は、数161、数162の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0161】
【数164】
【0162】
が成立するか否かを検証する(S2007)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2008)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2009)。
【0163】
以上、本発明の第1実施形態について説明した。
【0164】
本実施形態は、非特許文献4に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND-ID-CCAの意味での安全性を証明できる。
【0165】
なお、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0166】
<<第2実施形態>>
次に、本発明の第2実施形態について説明する。本実施形態は、上記の第1実施形態において、鍵管センタのタッピングの不正を考慮し安全性を強化したものである。図6は本発明の第2実施形態の動作手順を説明するための図である。
【0167】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0168】
【数165】
【0169】
なる双線形写像eを生成する(S1101)。
【0170】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1102)。ここで、Z*q={1、2、...、q-1}である。
【0171】
次に、演算部102は、s、Pを用いて、
【0172】
【数166】
【0173】
を生成する(S1103)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0174】
【数167】
【0175】
なるハッシュ関数を意味する。なお、数167において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【0176】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1104)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0177】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2101)。ユーザ側装置Bでも同様の処理が行われる。
【0178】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0179】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2102)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0180】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1105)。
【0181】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0182】
【数168】
【0183】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0184】
【数169】
【0185】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1106)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0186】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2103)。
【0187】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2104)。
【0188】
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
【0189】
【数170】
【0190】
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2105)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
【0191】
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3101)。
【0192】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0193】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3102)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0194】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDA、および、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【0195】
【数171】
【0196】
なるデータ暗号化鍵Kを計算する(S3103)。ここで、Wは後述する数172で定義される。
【0197】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0198】
【数172】
【0199】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3104)。
【0200】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0201】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2106)。
【0202】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
【0203】
【数173】
【0204】
を計算する。次に、演算部202は、数173の計算結果と、記憶部203に記憶されているユーザAのプライベート鍵、ユーザAの秘密鍵およびシステムパラメータと、受信した暗号文とを用いて、
【0205】
【数174】
【0206】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、数174の計算結果と、受信した暗号文(U,V,W,Y)とを用いて、
【0207】
【数175】
【0208】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2107)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
【0209】
次に、演算部202は、数173の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0210】
【数176】
【0211】
を計算する(S2108)。さらに、演算部202は、数173、数174の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0212】
【数177】
【0213】
が成立するか否かを検証する(S2109)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2110)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2111)。
【0214】
以上、本発明の第2実施形態について説明した。
【0215】
本実施形態では、送信側装置であるユーザ側装置Bは、鍵管理センタ側装置100が作成したシステムパラメータと受信側装置であるユーザA側装置が作成した公開情報Ppub,Aとからメッセージ文Mの暗号文を作成している。また、受信側装置であるユーザ側装置Aは、鍵管理センタ側装置100が作成したユーザAプライベート鍵とユーザ側装置Aが作成したユーザAの秘密鍵とを用いてメッセージ文Mの復号化を行っている。ここで、鍵管理センタは、プライベート鍵については知ることができるが、秘密鍵については知ることができない。このため、鍵管理センタに内部不正者が存在しても暗号文を復号化することができない。
【0216】
また、本実施形態では、非特許文献4に記載の手法と同様の手法により、IND−CCA2の意味での安全性を証明することが可能である。さらに、ユーザが自身で作成した鍵情報について、鍵管理センタが公開しているシステムパラメータを利用して作成し、かつ、鍵管理センタが発行したプライベート鍵と併用して復号化処理を行うため、既存のIDベース暗号システムと同様に、公開鍵証明書が不要である。
【0217】
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0218】
<<第3実施形態>>
次に、本発明の第3実施形態について説明する。本実施形態では、本実施形態は、上記の第1実施形態において、否認可能な認証機能を持たせたものである。図7は本発明の第2実施形態の動作手順を説明するための図である。
【0219】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0220】
【数178】
【0221】
なる双線形写像eを生成する(S1201)。
【0222】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1202)。ここで、Z*q={1、2、...、q-1}である。
【0223】
次に、演算部102は、s、Pを用いて、
【0224】
【数179】
【0225】
を生成する(S1203)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0226】
【数180】
【0227】
なるハッシュ関数を意味する。なお、数178において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
【0228】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1204)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0229】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2201)。ユーザ側装置Bでも同様の処理が行われる。
【0230】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0231】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2202)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0232】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1205)。
【0233】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0234】
【数181】
【0235】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0236】
【数182】
【0237】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1206)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0238】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2203)。
【0239】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0240】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3201)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0241】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)およびユーザBのプライベート鍵とを用いて、
【0242】
【数183】
【0243】
なるデータ暗号化鍵Kを計算する(S3202)。ここで、Wは後述する数184で定義される。
【0244】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0245】
【数184】
【0246】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3203)。
【0247】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0248】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2204)。
【0249】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
【0250】
【数185】
【0251】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文(U,V,W,Y)とを用いて、
【0252】
【数186】
【0253】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2207)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
【0254】
次に、演算部202は、数186の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0255】
【数187】
【0256】
を計算する(S2208)。さらに、演算部202は、ユーザAの個別情報IDAと、システムパラメータH1とを用いて、
【0257】
【数188】
【0258】
を計算する。それから、演算部202は、数187、数188の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【0259】
【数189】
【0260】
が成立するか否かを検証する(S2209)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2210)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2211)。
【0261】
以上、本発明の第3実施形態について説明した。
【0262】
本実施形態では、上記の第1実施形態と異なり、暗号化の際にも送信者(ユーザB)ののプライベート鍵を用いて暗号文を作成する。送信者のプライベート鍵を知らない受信者(ユーザB)は、送信者になりすまして正しい暗号文を作成するこができない。このため、本実施形態によれば、上記の第1実施形態の効果に加えて、デジタル署名を用いることなく認証機能を実現することができる。
【0263】
また、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0264】
<<第4実施形態>>
本実施形態では、上記の第1実施形態で説明した暗号方法(以下、00で表す。)と、上記の第2実施形態で説明した暗号方法(以下、10で表す。)と、上記の第3実施形態で説明した暗号方法(以下、11で表す。)とを、目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができるようにしたものである。図8は本発明の第4実施形態の動作手順を説明するための図である。
【0265】
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
【0266】
【数190】
【0267】
なる双線形写像eを生成する(S1301)。
【0268】
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1302)。ここで、Z*q={1、2、...、q-1}である。
【0269】
次に、演算部102は、s、Pを用いて、
【0270】
【数191】
【0271】
を生成する(S1303)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【0272】
【数192】
【0273】
なるハッシュ関数を意味する。なお、数192において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
【0274】
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1304)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
【0275】
1-1-2:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2301)。ユーザ側装置Bでも同様の処理が行われる。
【0276】
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
【0277】
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2302)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
【0278】
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1305)。
【0279】
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
【0280】
【数193】
【0281】
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
【0282】
【数194】
【0283】
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1306)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
【0284】
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2303)。
【0285】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2304)。
【0286】
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
【0287】
【数195】
【0288】
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2305)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
【0289】
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3301)。
【0290】
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
【0291】
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mおよびメッセージ文Mの暗号通信に用いる暗号通信方法(上記の第1乃至第3実施形態に示す暗号通信方法のいずれか)に付与された暗号識別情報α∈{00,10,11}を記憶部203に記憶する(S3302)。但し、M∈{0,1}nとする。ここで、nは正整数である。
【0292】
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、メッセージ文Mに対して、r∈Z*qおよびR∈{0,1}mをランダムに生成する。さらに、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)およびユーザBのプライベート鍵とを用いて、
【0293】
【数196】
【0294】
を計算する。さらに、演算部202は、数196の計算結果と、記憶部203に記憶された暗号識別情報αとを用いて、
【0295】
【数197】
【0296】
なるデータ暗号化鍵Kを計算する(S3304)。ここで、Wは後述する数198で定義される。
【0297】
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
【0298】
【数198】
【0299】
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)および暗号識別情報αをメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3305)。
【0300】
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【0301】
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y,α)を記憶部203に記憶する(S2306)。
【0302】
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているユーザAのプライベート鍵およびシステムパラメータと、受信した暗号文とを用いて、
【0303】
【数199】
【0304】
を計算する。但し、
【0305】
【数200】
【0306】
である。次に、演算部202は、数199の計算結果と、記憶部203に記憶されているシステムパラメータと、受信した暗号文とを用いて、
【0307】
【数201】
【0308】
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文とを用いて、
【0309】
【数202】
【0310】
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2307)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
【0311】
次に、演算部202は、数202の計算結果R′、M′と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
【0312】
【数203】
【0313】
を計算する(S2308)。それから、演算部202は、数201、数202の計算結果と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
【0314】
【数204】
【0315】
が成立するか否かを検証する(S2309)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2310)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2311)。
【0316】
以上、本発明の第4実施形態について説明した。
【0317】
上述したように、本実施形態によれば、上記の第1乃至第3実施形態で説明した各暗号方法を目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができる。
【0318】
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【0319】
また、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記の各実施形態では、ユーザがそれぞれのユーザ側装置200を利用して認証および暗号通信を行うという一般的な通信システムを例にとり説明したが、本発明は、様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者はユーザであり、送信者のユーザ側装置200はパソコンなどの計算機であり、受信者は小売店であり、受信者のユーザ側装置200はパソコンなどの計算機となる。その他にも、従来の公開鍵暗号が使われている様々なシステムに適用することが可能である。
【0320】
また、上記の各実施形態での各計算は、CPUがメモリ上にロードされたプログラムを実行することにより行われるものとして説明した。しかし、プログラムだけではない。いずれかの計算を行なう装置は、ハードウエア化された演算装置であって、他の演算装置やCPUとデータのやりとりを行うものでもよい。
【図面の簡単な説明】
【0321】
【図1】本発明の各実施形態に共通するIDベース暗号通信システムの構成図である。
【図2】図1に示す鍵管理センタ側装置100の概略構成図である。
【図3】図1に示すユーザ側装置200の概略構成図である。
【図4】鍵管理センタ側装置100およびユーザ側装置200のハードウエア構成例を示す図である。
【図5】本発明の第1実施形態の動作手順を説明するための図である。
【図6】本発明の第2実施形態の動作手順を説明するための図である。
【図7】本発明の第3実施形態の動作手順を説明するための図である。
【図8】本発明の第4実施形態の動作手順を説明するための図である。
【符号の説明】
【0322】
100…鍵管理センタ側装置、101…入力部、102…演算部、103…記憶部、104…通信部、105…出力部、1060…鍵情報生成部、200…ユーザ側装置、201…入力部、202…演算部、203…記憶部、204…通信部、205…出力部、206…乱数生成部、207…暗復号化部、300…通信回線
【特許請求の範囲】
【請求項1】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数1】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数2】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数3】
なるハッシュ関数を意味する。なお、数3において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数4】
を計算するステップと、
数4の計算結果および前記マスタ鍵sを用いて、
【数5】
を計算するステップと、
数5の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数6】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数7で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数7】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数7の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【数8】
を計算するステップと、
前記暗号文を用いて、
【数9】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数9の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数10】
を計算するステップと、
数9、数10の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数11】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項2】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数12】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数13】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数14】
なるハッシュ関数を意味する。なお、数14において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数15】
を計算するステップと、
数15の計算結果および前記マスタ鍵sを用いて、
【数16】
を計算するステップと、
数16の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数17】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数18】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数19で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数19】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数19の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数20】
を計算するステップと、
数20の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数21】
なるデータ暗号化鍵K′を計算するステップと、
数21の計算結果と、前記暗号文とを用いて、
【数22】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数22の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数23】
を計算するステップと、
数22、数23の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数24】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項3】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数25】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数26】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数27】
なるハッシュ関数を意味する。なお、数27において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数28】
を計算するステップと、
数28の計算結果および前記マスタ鍵sを用いて、
【数29】
を計算するステップと、
数29の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【数30】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数31で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数31】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数31の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数32】
なるデータ暗号化鍵K′を計算するステップと、
前記データ暗号化鍵K′および前記暗号文を用いて、
【数33】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数33の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数34】
を計算するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数35】
を計算するステップと、
数34、数35の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数36】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項4】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項5】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数37】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数38】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数39】
なるハッシュ関数を意味する。なお、数39において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数40】
を計算するステップと、
数40の計算結果および前記マスタ鍵sを用いて、
【数41】
を計算するステップと、
数41の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数42】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【数43】
を計算するステップ(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数43の計算結果と、前記暗号識別情報αとを用いて、
【数44】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数45で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数45】
を計算するステップ(但し、EK(x))は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数45の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【数46】
を計算するステップ(但し、
【数47】
である。)と、
数46の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数48】
なるデータ暗号化鍵K′を計算するステップと、
数48の計算結果と、前記暗号文とを用いて、
【数49】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数49の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数50】
を計算するステップと、
数49、数50の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数51】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項6】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数52】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数53】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数54】
なるハッシュ関数を意味する。なお、数54において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数55】
を計算する手段と、
数55の計算結果および前記マスタ鍵sを用いて、
【数56】
を計算する手段と、
数56の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数57】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数58で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数58】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数58の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【数59】
を計算する手段と、
前記暗号文を用いて、
【数60】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数60の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数61】
を計算する手段と、
数60、数61の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数62】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項7】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数63】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数64】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数65】
なるハッシュ関数を意味する。なお、数65において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数66】
を計算する手段と、
数66の計算結果および前記マスタ鍵sを用いて、
【数67】
を計算する手段と、
数67の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数68】
なる公開鍵Ppub,Aを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数69】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数70で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数70】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数70の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数71】
を計算する手段と、
数71の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数72】
なるデータ暗号化鍵K′を計算する手段と、
数72の計算結果と、前記暗号文とを用いて、
【数73】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数73の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数74】
を計算する手段と、
数73、数74の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数75】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするIDベース暗号通信システム。
【請求項8】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数76】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数77】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数78】
なるハッシュ関数を意味する。なお、数78において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数79】
を計算する手段と、
数79の計算結果および前記マスタ鍵sを用いて、
【数80】
を計算する手段と、
数80の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【数81】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数82で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数82】
を計算する手段(但し、EK(x))は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数82の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数83】
なるデータ暗号化鍵K′を計算する手段と、
前記データ暗号化鍵K′および前記暗号文を用いて、
【数84】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数84の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数85】
を計算する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数86】
を計算する手段と、
数85、数86の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数87】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項9】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数88】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数89】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数90】
なるハッシュ関数を意味する。なお、数90において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数91】
を計算する手段と、
数91の計算結果および前記マスタ鍵sを用いて、
【数92】
を計算する手段と、
数92の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数93】
なる公開鍵Ppub,Aを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【数94】
を計算する手段(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数94の計算結果と、前記暗号識別情報αとを用いて、
【数95】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数96で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数96】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数96の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【数97】
を計算する手段(但し、
【数98】
である。)と、
数97の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数99】
なるデータ暗号化鍵K′を計算する手段と、
数99の計算結果と、前記暗号文とを用いて、
【数100】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数100の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数101】
を計算する手段と、
数100、数101の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数102】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項10】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項11】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる送信者側装置。
【請求項12】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる受信者側装置。
【請求項1】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数1】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数2】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数3】
なるハッシュ関数を意味する。なお、数3において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数4】
を計算するステップと、
数4の計算結果および前記マスタ鍵sを用いて、
【数5】
を計算するステップと、
数5の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数6】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数7で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数7】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数7の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【数8】
を計算するステップと、
前記暗号文を用いて、
【数9】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数9の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数10】
を計算するステップと、
数9、数10の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数11】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項2】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数12】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数13】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数14】
なるハッシュ関数を意味する。なお、数14において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数15】
を計算するステップと、
数15の計算結果および前記マスタ鍵sを用いて、
【数16】
を計算するステップと、
数16の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数17】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数18】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数19で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数19】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数19の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数20】
を計算するステップと、
数20の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数21】
なるデータ暗号化鍵K′を計算するステップと、
数21の計算結果と、前記暗号文とを用いて、
【数22】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数22の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数23】
を計算するステップと、
数22、数23の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数24】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項3】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数25】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数26】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数27】
なるハッシュ関数を意味する。なお、数27において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数28】
を計算するステップと、
数28の計算結果および前記マスタ鍵sを用いて、
【数29】
を計算するステップと、
数29の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【数30】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数31で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数31】
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数31の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数32】
なるデータ暗号化鍵K′を計算するステップと、
前記データ暗号化鍵K′および前記暗号文を用いて、
【数33】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数33の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数34】
を計算するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数35】
を計算するステップと、
数34、数35の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数36】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項4】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項5】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数37】
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
【数38】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数39】
なるハッシュ関数を意味する。なお、数39において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数40】
を計算するステップと、
数40の計算結果および前記マスタ鍵sを用いて、
【数41】
を計算するステップと、
数41の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数42】
なる公開鍵Ppub,Aを生成し出力するステップと、を行い、
(3)前記送信者側装置が、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【数43】
を計算するステップ(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数43の計算結果と、前記暗号識別情報αとを用いて、
【数44】
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数45で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数45】
を計算するステップ(但し、EK(x))は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数45の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【数46】
を計算するステップ(但し、
【数47】
である。)と、
数46の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数48】
なるデータ暗号化鍵K′を計算するステップと、
数48の計算結果と、前記暗号文とを用いて、
【数49】
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数49の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数50】
を計算するステップと、
数49、数50の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数51】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
【請求項6】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数52】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数53】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数54】
なるハッシュ関数を意味する。なお、数54において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数55】
を計算する手段と、
数55の計算結果および前記マスタ鍵sを用いて、
【数56】
を計算する手段と、
数56の計算結果を前記受信者側装置のユーザAの前記プライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数57】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数58で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数58】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数58の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
【数59】
を計算する手段と、
前記暗号文を用いて、
【数60】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数60の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数61】
を計算する手段と、
数60、数61の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数62】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項7】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数63】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数64】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数65】
なるハッシュ関数を意味する。なお、数65において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
【数66】
を計算する手段と、
数66の計算結果および前記マスタ鍵sを用いて、
【数67】
を計算する手段と、
数67の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数68】
なる公開鍵Ppub,Aを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDA、および、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を用いて、
【数69】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数70で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数70】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数70の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数71】
を計算する手段と、
数71の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数72】
なるデータ暗号化鍵K′を計算する手段と、
数72の計算結果と、前記暗号文とを用いて、
【数73】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数73の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数74】
を計算する手段と、
数73、数74の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数75】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするIDベース暗号通信システム。
【請求項8】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数76】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数77】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数78】
なるハッシュ関数を意味する。なお、数78において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数79】
を計算する手段と、
数79の計算結果および前記マスタ鍵sを用いて、
【数80】
を計算する手段と、
数80の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザBのプライベート鍵および前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
【数81】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数82で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数82】
を計算する手段(但し、EK(x))は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数82の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数83】
なるデータ暗号化鍵K′を計算する手段と、
前記データ暗号化鍵K′および前記暗号文を用いて、
【数84】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数84の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数85】
を計算する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数86】
を計算する手段と、
数85、数86の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数87】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項9】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
【数88】
なる双線形写像eを生成する手段と、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
【数89】
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
【数90】
なるハッシュ関数を意味する。なお、数90において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数91】
を計算する手段と、
数91の計算結果および前記マスタ鍵sを用いて、
【数92】
を計算する手段と、
数92の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数93】
なる公開鍵Ppub,Aを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文M∈{0,1}nに対して、r∈Z*q、R∈{0,1}mをランダムに生成する手段と、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、必要に応じて前記受信者側装置のユーザAの公開鍵Ppub,Aと、必要に応じて前記送信者側装置のユーザBのプライベート鍵と、を用いて、
【数94】
を計算する手段(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数94の計算結果と、前記暗号識別情報αとを用いて、
【数95】
なるデータ暗号化鍵Kを計算する手段(但し、Wは後述する数96で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
【数96】
を計算する手段(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数96の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
【数97】
を計算する手段(但し、
【数98】
である。)と、
数97の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数99】
なるデータ暗号化鍵K′を計算する手段と、
数99の計算結果と、前記暗号文とを用いて、
【数100】
なるR′∈{0,1}m、M′∈{0,1}nを計算する手段(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数100の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数101】
を計算する手段と、
数100、数101の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数102】
が成立するか否かを検証する手段と、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。
【請求項10】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項11】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる送信者側装置。
【請求項12】
請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる受信者側装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2006−330566(P2006−330566A)
【公開日】平成18年12月7日(2006.12.7)
【国際特許分類】
【出願番号】特願2005−157159(P2005−157159)
【出願日】平成17年5月30日(2005.5.30)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成18年12月7日(2006.12.7)
【国際特許分類】
【出願日】平成17年5月30日(2005.5.30)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]