JP2006330566A - Idベース暗号通信方法および装置 - Google Patents
Idベース暗号通信方法および装置 Download PDFInfo
- Publication number
- JP2006330566A JP2006330566A JP2005157159A JP2005157159A JP2006330566A JP 2006330566 A JP2006330566 A JP 2006330566A JP 2005157159 A JP2005157159 A JP 2005157159A JP 2005157159 A JP2005157159 A JP 2005157159A JP 2006330566 A JP2006330566 A JP 2006330566A
- Authority
- JP
- Japan
- Prior art keywords
- side device
- key
- user
- management center
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供する。
【解決手段】送信者の装置200は、メッセージMの暗号通信に用いる暗号通信方法の暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力してメッセージ文Mの暗号文を作成し、暗号識別情報と共に受信者の装置200に送信する。受信者の装置200は、該暗号文および自身のプライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算する。そして、計算した暗号識別情報が暗号文と共に受信した暗号識別情報と一致するか否かを判断し、一致する場合に、暗号文をプライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、メッセージ文の出力を拒否する。
【選択図】図1
【解決手段】送信者の装置200は、メッセージMの暗号通信に用いる暗号通信方法の暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力してメッセージ文Mの暗号文を作成し、暗号識別情報と共に受信者の装置200に送信する。受信者の装置200は、該暗号文および自身のプライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算する。そして、計算した暗号識別情報が暗号文と共に受信した暗号識別情報と一致するか否かを判断し、一致する場合に、暗号文をプライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、メッセージ文の出力を拒否する。
【選択図】図1
Description
本発明は、ユーザの所属、名前、メールアドレス等の個人を特定できるID情報を利用して、暗号通信や文書認証を行うIDベース暗号システムに関する。
非特許文献1に記載されているように、公開鍵暗号システムでは、ユーザが作成した公開鍵を認証局(CA:Certificate Authority)に登録し、その正当性の根拠である公開鍵証明書を発行してもらう必要がある。すなわち、暗号文の送信者は、受信者の公開鍵とその公開鍵証明書を手に入れ、該公開鍵証明書を用いて該公開鍵の正当性を確認した上で、送信するメッセージ文の暗号化を行う必要がある。
これに対して、CAによる公開鍵証明書の発行の手間を省いて、より簡単な公開鍵の管理を行うことを目的として、ユーザのID情報を公開鍵とする暗号システム(以下、IDベース暗号システムと呼ぶ)が提案された。非特許文献2に記載されているように、IDベース暗号システムでは、暗号通信や認証(ディジタル署名、個人認証等)を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のID情報を公開鍵として鍵管理センタに登録すると共に、鍵管理センタに、当該鍵管理センタのマスタ鍵を用いて該ID情報に対応する秘密鍵(以下、IDベース暗号用秘密鍵と呼ぶ)を発行してもらう。また、鍵管理センタは、当該鍵管理センタのマスタ鍵と対のシステムパラメータを作成して公開する。暗号文の送信者は、受信者のID情報と鍵管理センタのシステムパラメータとを用いて暗号文を作成し、受信者に送信する。受信者は、IDベース暗号用秘密鍵を用いてメッセージの復号化を行う。
公開鍵暗号システムでは受信者の公開鍵がランダムなビット列であるのに対して、IDベース暗号システムでは受信者のIDベース暗号用公開鍵がメールアドレス等のID情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのIDベース暗号システムが提案されている。例えば、非特許文献3には、ゼロ知識証明を利用したIDベースのディジタル署名を実現するIDベース暗号システムが提案されている。非特許文献4では、双線形写像を利用することで、安全性の証明が可能なIDベース暗号システムが提案されている。また、非特許文献5では、非特許文献4に記載のIDベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、非特許文献6では、IDベース暗号システムのインフラストラクチャにおいて、証明書不要することができる公開鍵暗号が提案されている。非特許文献7では、IDベース暗号システムのインフラストラクチャにおいて、否認可能な証明機能を持った暗号方法が提案されている。
独立行政法人 情報処理推進機構 セキュリティセンター、情報セキュリティ技術ラボラトリー、"PKI 関連技術解説 3.1 PKI概要"、[平成17年5月19日検索] インターネット<URL:http://www.ipa.go.jp/security/pki/>
A. Shamir、"Identity Based Cryptosystems and Signature Schemes, Advances in Cryptology Crypto'98"、LNCS 196、pp.47-53、Springer、1984
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
D. Boneh and M. Franklin、"Identity Based Encryption From the Weil Pairing"、[平成17年5月19日検索] インターネット<URL:http://crypto.stanford.edu/~dabo/papers/ibe.pdf>
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>
S.S. Al-Riyami and K. G. Paterson "Certificateless PublicKey Cryptography"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2003/126.pdf>
B. Lynn "Authenticated Identity-Based Encryption"、[平成17年5月19日検索] インターネット<URL:http://eprint.iacr.org/2002/072.pdf>
上述したように、様々なIDベース暗号通信方法が提案されている。本発明の目的は、新たなIDベース暗号通信技術を提案することにある。また、本発明の他の目的は、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することにある。
上記課題を解決するために、本発明のIDベース暗号通信方法の第1の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数105において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
を計算するステップと、
数106の計算結果および前記マスタ鍵sを用いて、
数106の計算結果および前記マスタ鍵sを用いて、
を計算するステップと、
数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)を用いて、
数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)を用いて、
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数109で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数109の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
数109の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
を計算するステップと、
前記暗号文を用いて、
前記暗号文を用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数111の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数111の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
を計算するステップと、
数111、数112の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数111、数112の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
また、本発明の第2の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数116において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
を計算するステップと、
数117の計算結果および前記マスタ鍵sを用いて、
数117の計算結果および前記マスタ鍵sを用いて、
を計算するステップと、
数118の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数118の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
なる公開鍵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)を用いて、
(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)を用いて、
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数121で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数121の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数121の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
を計算するステップと、
数122の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数122の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
なるデータ暗号化鍵K′を計算するステップと、
数123の計算結果と、前記暗号文とを用いて、
数123の計算結果と、前記暗号文とを用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数124の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数124の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
を計算するステップと、
数124、数125の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数124、数125の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
また、本発明の第3の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数129において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
を計算するステップと、
数28の計算結果および前記マスタ鍵sを用いて、
数28の計算結果および前記マスタ鍵sを用いて、
を計算するステップと、
数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)とを用いて、
数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)とを用いて、
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数133で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。)と、
数133の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数133の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
なるデータ暗号化鍵K′を計算するステップと、
前記データ暗号化鍵K′および前記暗号文を用いて、
前記データ暗号化鍵K′および前記暗号文を用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数135の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数135の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
を計算するステップと、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
を計算するステップと、
数136、数137の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数136、数137の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。
また、本発明の第4の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行う。
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行う。
例えば、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成するステップと、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
を生成し、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ(但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数141において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。)と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
を計算するステップと、
数142の計算結果および前記マスタ鍵sを用いて、
数142の計算結果および前記マスタ鍵sを用いて、
を計算するステップと、
数143の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数143の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
なる公開鍵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のプライベート鍵と、を用いて、
(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のプライベート鍵と、を用いて、
を計算するステップ(但し、αは前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{A1,A2,A3}とする。)と、
数145の計算結果と、前記暗号識別情報αとを用いて、
数145の計算結果と、前記暗号識別情報αとを用いて、
なるデータ暗号化鍵Kを計算するステップ(但し、Wは後述する数147で定義される。)と、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
を計算するステップ(但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す)と、
数147の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
数147の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
を計算するステップ(但し、
である。)と、
数149の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数149の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
なるデータ暗号化鍵K′を計算するステップと、
数150の計算結果と、前記暗号文とを用いて、
数150の計算結果と、前記暗号文とを用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算するステップ(但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。)と、
数151の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数151の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
を計算するステップと、
数151、数152の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数151、数152の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
が成立するか否かを検証するステップと、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行う。
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行う。
本発明によれば、新たなIDベース暗号通信技術を提供することができる。また、複数のIDベース暗号通信方法が混在することを前提に、ユーザがこれ等のIDベース暗号通信方法を使い分けることが可能なIDベース暗号通信技術を提供することができる。
以下に、本発明の実施の形態について説明する。
まず、以下の各実施形態に共通するIDベース暗号通信システムの構成を説明する。
図1は本発明の各実施形態に共通するIDベース暗号通信システムの概略構成図である。図示するように、IDベース暗号通信システムは、鍵管理センタ側装置100と、複数のユーザ側通信装置200とが、通信回線300を介して接続された構成を有している。
図2は図1に示す鍵管理センタ側装置100の概略構成図である。図示するように、鍵管理センタ側装置100は、情報を入力する入力部101と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置100の各部の制御を行う演算部102と、記憶部103と、通信回線300を介してユーザ側装置200と通信を行なう通信部104と、情報を出力する通信部105と、を備えている。また、演算部102は、鍵管理センタのマスタ鍵およびシステムパラメータを作成する鍵情報作成部106を有する。
図3は図1に示すユーザ側装置200の概略構成図である。図示するように、ユーザ側装置200は、情報を入力する入力部201と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置200の各部の制御を行う演算部202と、記憶部203と、通信回線300を介して鍵管理センタ側装置100および他のユーザ側装置200と通信を行なう通信部204と、情報を出力する通信部205と、を備えている。また、演算部202は、乱数を生成する乱数生成部206と、暗復号化処理を行う暗復号化部207とを有する。
上記構成の鍵管理センタ側装置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に利用される。
この所定のプログラムは、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、外部記憶装置403にダウンロードされ、それから、メモリ402上にロードされてCPU401により実行されるようにしてもよい。また、読取装置404を介して記憶媒体409から、あるいは、通信装置407を介して通信回線300から、メモリ402上に直接ロードされ、CPU401により実行されるようにしてもよい。
<<第1実施形態>>
次に、本発明の第1実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は第1実施形態の動作手順を説明するための図である。
次に、本発明の第1実施形態について説明する。本実施形態では、ユーザAのユーザ側装置200(以下、ユーザ側装置Aと呼ぶ)、および、ユーザBのユーザ側装置200(以下、ユーザ側装置Bと呼ぶ)が、鍵管理センタ側装置100が作成した情報と、通信相手のユーザのID情報とを用いて、通信回線300を介して互いに暗号通信を行う場合を例にとり説明する。図5は第1実施形態の動作手順を説明するための図である。
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成する(S1001)。
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1002)。ここで、Z*q={1、2、...、q-1}である。
次に、演算部102は、s、Pを用いて、
を生成する(S1003)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数156において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1004)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
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でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2001)。ユーザ側装置Bでも同様の処理が行われる。
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2002)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2002)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1005)。
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1005)。
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1006)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2003)。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2003)。
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3001)。但し、M∈{0,1}nとする。ここで、nは正整数である。
次に、演算部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)を用いて、
なるデータ暗号化鍵Kを計算する(S3002)。ここで、Wは後述する数160で定義される。
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3003)。
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2004)。
次に、演算部202は、受信した暗号文(U,V,W,Y)に対して、記憶部203に記憶されているユーザAのプライベート鍵を用いて、
を計算する。さらに、受信した暗号文(U,V,W,Y)を用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2005)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
次に、演算部202は、数160の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
を計算する(S2006)。さらに、演算部202は、数161、数162の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
が成立するか否かを検証する(S2007)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2008)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2009)。
以上、本発明の第1実施形態について説明した。
本実施形態は、非特許文献4に記載の手法と同様の手法により、Bilinear Diffie-Hellman(BDH)問題の計算量的困難性を暗号学的仮定として、IND-ID-CCAの意味での安全性を証明できる。
なお、本実施形態において鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
<<第2実施形態>>
次に、本発明の第2実施形態について説明する。本実施形態は、上記の第1実施形態において、鍵管センタのタッピングの不正を考慮し安全性を強化したものである。図6は本発明の第2実施形態の動作手順を説明するための図である。
次に、本発明の第2実施形態について説明する。本実施形態は、上記の第1実施形態において、鍵管センタのタッピングの不正を考慮し安全性を強化したものである。図6は本発明の第2実施形態の動作手順を説明するための図である。
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成する(S1101)。
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1102)。ここで、Z*q={1、2、...、q-1}である。
次に、演算部102は、s、Pを用いて、
を生成する(S1103)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数167において、{0,1}*はユーザの個別情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1104)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
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でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2101)。ユーザ側装置Bでも同様の処理が行われる。
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2102)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2102)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1105)。
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1105)。
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1106)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2103)。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2103)。
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2104)。
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2105)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3101)。
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3101)。
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3102)。但し、M∈{0,1}nとする。ここで、nは正整数である。
次に、演算部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)を用いて、
なるデータ暗号化鍵Kを計算する(S3103)。ここで、Wは後述する数172で定義される。
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3104)。
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2106)。
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
を計算する。次に、演算部202は、数173の計算結果と、記憶部203に記憶されているユーザAのプライベート鍵、ユーザAの秘密鍵およびシステムパラメータと、受信した暗号文とを用いて、
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、数174の計算結果と、受信した暗号文(U,V,W,Y)とを用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2107)。但し、DK(y)は暗号文yをデータ暗号化鍵Kを用いて復号化した結果を表す。
次に、演算部202は、数173の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
を計算する(S2108)。さらに、演算部202は、数173、数174の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
が成立するか否かを検証する(S2109)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2110)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2111)。
以上、本発明の第2実施形態について説明した。
本実施形態では、送信側装置であるユーザ側装置Bは、鍵管理センタ側装置100が作成したシステムパラメータと受信側装置であるユーザA側装置が作成した公開情報Ppub,Aとからメッセージ文Mの暗号文を作成している。また、受信側装置であるユーザ側装置Aは、鍵管理センタ側装置100が作成したユーザAプライベート鍵とユーザ側装置Aが作成したユーザAの秘密鍵とを用いてメッセージ文Mの復号化を行っている。ここで、鍵管理センタは、プライベート鍵については知ることができるが、秘密鍵については知ることができない。このため、鍵管理センタに内部不正者が存在しても暗号文を復号化することができない。
また、本実施形態では、非特許文献4に記載の手法と同様の手法により、IND−CCA2の意味での安全性を証明することが可能である。さらに、ユーザが自身で作成した鍵情報について、鍵管理センタが公開しているシステムパラメータを利用して作成し、かつ、鍵管理センタが発行したプライベート鍵と併用して復号化処理を行うため、既存のIDベース暗号システムと同様に、公開鍵証明書が不要である。
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
<<第3実施形態>>
次に、本発明の第3実施形態について説明する。本実施形態では、本実施形態は、上記の第1実施形態において、否認可能な認証機能を持たせたものである。図7は本発明の第2実施形態の動作手順を説明するための図である。
次に、本発明の第3実施形態について説明する。本実施形態では、本実施形態は、上記の第1実施形態において、否認可能な認証機能を持たせたものである。図7は本発明の第2実施形態の動作手順を説明するための図である。
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成する(S1201)。
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1202)。ここで、Z*q={1、2、...、q-1}である。
次に、演算部102は、s、Pを用いて、
を生成する(S1203)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数178において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1204)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
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でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2201)。ユーザ側装置Bでも同様の処理が行われる。
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2202)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2202)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1205)。
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1205)。
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1206)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2203)。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2203)。
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mを記憶部203に記憶する(S3201)。但し、M∈{0,1}nとする。ここで、nは正整数である。
次に、演算部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のプライベート鍵とを用いて、
なるデータ暗号化鍵Kを計算する(S3202)。ここで、Wは後述する数184で定義される。
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)をメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3203)。
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y)を記憶部203に記憶する(S2204)。
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているシステムパラメータとを用いて、
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文(U,V,W,Y)とを用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2207)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
次に、演算部202は、数186の計算結果R′、M′と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
を計算する(S2208)。さらに、演算部202は、ユーザAの個別情報IDAと、システムパラメータH1とを用いて、
を計算する。それから、演算部202は、数187、数188の計算結果と、暗号文(U,V,W,Y)と、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)とを用いて、
が成立するか否かを検証する(S2209)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2210)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2211)。
以上、本発明の第3実施形態について説明した。
本実施形態では、上記の第1実施形態と異なり、暗号化の際にも送信者(ユーザB)ののプライベート鍵を用いて暗号文を作成する。送信者のプライベート鍵を知らない受信者(ユーザB)は、送信者になりすまして正しい暗号文を作成するこができない。このため、本実施形態によれば、上記の第1実施形態の効果に加えて、デジタル署名を用いることなく認証機能を実現することができる。
また、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
<<第4実施形態>>
本実施形態では、上記の第1実施形態で説明した暗号方法(以下、00で表す。)と、上記の第2実施形態で説明した暗号方法(以下、10で表す。)と、上記の第3実施形態で説明した暗号方法(以下、11で表す。)とを、目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができるようにしたものである。図8は本発明の第4実施形態の動作手順を説明するための図である。
本実施形態では、上記の第1実施形態で説明した暗号方法(以下、00で表す。)と、上記の第2実施形態で説明した暗号方法(以下、10で表す。)と、上記の第3実施形態で説明した暗号方法(以下、11で表す。)とを、目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができるようにしたものである。図8は本発明の第4実施形態の動作手順を説明するための図である。
1.準備処理
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
1-1:鍵管理センタのセットアップ処理
1-1-1:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算部102は、入力部101を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部106を用いて、素数q、位数qの加法群G1、位数qの乗法群G2、および、
なる双線形写像eを生成する(S1301)。
次に、演算部102は、鍵情報生成部106を用いて、s∈Z*qおよびP∈G1をランダムに生成する(S1302)。ここで、Z*q={1、2、...、q-1}である。
次に、演算部102は、s、Pを用いて、
を生成する(S1303)。そして、sをマスタ鍵とし、(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)をシステムパラメータとして、両者を記憶部103に記憶する。但し、(E,D)は共通鍵暗号を表し、H1,H2,H3,H4は、
なるハッシュ関数を意味する。なお、数192において、{0,1}*はユーザのID情報と同じビット数の任意のビット列、Nは自然数全体の集合である。個別情報のビット数は、ID情報に使用する情報の種類によって異なる場合がある。
次に、演算部102は、システムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を出力部105から出力するか、あるいは、通信回線300を介して通信部104から各ユーザ側装置200に送信する(S1304)。なお、出力部105からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置200のユーザに通知する。
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でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算装置202は、通信部204が通信回線300を介して鍵管理センタ側装置100より受信した、あるいは、入力部201に入力されたシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)を、記憶部203に記憶する(S2301)。ユーザ側装置Bでも同様の処理が行われる。
1-2:ユーザのセットアップ処理
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
ここでは、ユーザ側装置Aが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Bでも同様の処理が行われる。
1-2-1:ユーザ側装置200の処理
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2302)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
ユーザ側装置Aにおいて、演算部202は、入力部201を介してユーザAより受け付けたユーザAのID情報IDAを、記憶部203に記憶すると共に、通信回線300を介して通信部104から鍵管理センタ側装置100に送信する(S2302)。なお、ユーザAが、郵送等によって鍵管理センタに、ID情報IDAをユーザ側装置Aのアドレスと共に通知してもよい。
1-2-2:鍵管理センタ側装置100の処理
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1305)。
鍵管理センタ側装置100において、演算装置102は、通信部104が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部101にユーザ側装置Aのアドレスと共に入力されたユーザAのID情報IDAを、ユーザ側装置Aのアドレスに対応付けて記憶部103に記憶する(S1305)。
次に、演算部102は、記憶部103に記憶されているシステムパラメータH1およびユーザのID情報IDAを用いて、
を計算する。さらに、この計算結果と、記憶装置103に記憶されているマスタ鍵sとを用いて、
を計算する。この計算結果を、ユーザAのプライベート鍵として、出力部105から出力するか、あるいは、通信回線300を介して通信部104からユーザ側装置Aに安全な方法(例えば鍵管理センタ側装置100がユーザ側装置Aと共有する暗号鍵を用いた暗号通信)で送信する(S1306)。なお、出力部105からユーザAのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザAに配布する。
1-2-3:ユーザ側装置200(メッセージ受信側)の処理
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2303)。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介して鍵管理センタ側装置100から受信した、あるいは、入力部201に入力されたユーザAのプライベート鍵を、記憶部203に記憶する(S2303)。
次に、演算部202は、記憶部203に記憶されているシステムパラメータqと、乱数生成部206とを用いて、ユーザAの秘密鍵sA∈Zqをランダムに生成し、秘密鍵sAを記憶部203に記憶する(S2304)。
また、演算部202は、記憶部203にそれぞれ記憶されているユーザAの秘密鍵sAおよびシステムパラメータPを用いて、
なる公開鍵Ppub,Aを生成する。そして、演算部202は、公開鍵Ppub,Aを出力部205から出力するか、あるいは、通信回線300を介して通信部204からユーザ側装置Bに送信する(S2305)。なお、出力部205から公開鍵Ppub,Aが出力された場合、ユーザAは郵送等によりユーザBに通知する。
1-2-4:ユーザ側装置200(メッセージ送信側)の処理
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3301)。
ユーザ側装置Bにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Aから受信した、あるいは、入力部201に入力されたユーザAの公開鍵Ppub,Aを、記憶部203に記憶する(S3301)。
2.暗号通信処理
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
2-1:ユーザ側装置200(メッセージ送信側)の処理
ここでは、ユーザ側装置Bがメッセージ文を暗号化してユーザ側装置Aに送信する場合を例にとり説明するが、ユーザ側装置Aがメッセージ文を暗号化してユーザ側装置Bに送信する場合でも同様の処理が行われる。
ユーザ側装置Bにおいて、演算部202は、入力部201に入力されたメッセージ文Mおよびメッセージ文Mの暗号通信に用いる暗号通信方法(上記の第1乃至第3実施形態に示す暗号通信方法のいずれか)に付与された暗号識別情報α∈{00,10,11}を記憶部203に記憶する(S3302)。但し、M∈{0,1}nとする。ここで、nは正整数である。
次に、演算部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のプライベート鍵とを用いて、
を計算する。さらに、演算部202は、数196の計算結果と、記憶部203に記憶された暗号識別情報αとを用いて、
なるデータ暗号化鍵Kを計算する(S3304)。ここで、Wは後述する数198で定義される。
次に、演算部202は、記憶装置203に記憶されているメッセージ文Mと、該メッセージ文Mに対してランダムに生成したr、Rと、記憶部203に記憶されているシステムパラメータ(q,G1,G2,e,m,n,P,Ppub,H1,H2,H3,H4,E,D)と、データ暗号化鍵Kとを用いて、
を計算する。但し、EK(x)は平文データxをデータ暗号化鍵Kを用いて暗号化した結果を表す。そして、この計算結果(U,V,W,Y)および暗号識別情報αをメッセージMの暗号文として、通信回線300を介して通信部204からユーザ側装置Aに送信する(S3305)。
2-2:ユーザ側装置200(メッセージ受信側)の処理
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ここでは、ユーザ側装置Aがユーザ側装置Bから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Bがユーザ側装置Aから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
ユーザ側装置Aにおいて、演算部202は、通信部204が通信回線300を介してユーザ側装置Bより受信した暗号文(U,V,W,Y,α)を記憶部203に記憶する(S2306)。
次に、演算部202は、ユーザAの個別情報IDAと、記憶部203に記憶されているユーザAのプライベート鍵およびシステムパラメータと、受信した暗号文とを用いて、
を計算する。但し、
である。次に、演算部202は、数199の計算結果と、記憶部203に記憶されているシステムパラメータと、受信した暗号文とを用いて、
なるデータ暗号化鍵K′を計算する。さらに、演算部202は、データ暗号化鍵K′と、受信した暗号文とを用いて、
なるR′∈{0,1}m、M′∈{0,1}nを計算する(S2307)。但し、DK’(y)は暗号文yをデータ暗号化鍵K′を用いて復号化した結果を表す。
次に、演算部202は、数202の計算結果R′、M′と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
を計算する(S2308)。それから、演算部202は、数201、数202の計算結果と、受信した暗号文と、記憶部203に記憶されているシステムパラメータとを用いて、
が成立するか否かを検証する(S2309)。検証が成立した場合、演算202は、M′をメッセージ文として出力部205から出力する(S2310)。一方、成立しない場合、演算部202は、受信した暗号文(U,V,W,Y)が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部205から出力する(S2311)。
以上、本発明の第4実施形態について説明した。
上述したように、本実施形態によれば、上記の第1乃至第3実施形態で説明した各暗号方法を目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができる。
なお、本実施形態において、鍵管理センタ側装置100を、ICカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
また、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記の各実施形態では、ユーザがそれぞれのユーザ側装置200を利用して認証および暗号通信を行うという一般的な通信システムを例にとり説明したが、本発明は、様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者はユーザであり、送信者のユーザ側装置200はパソコンなどの計算機であり、受信者は小売店であり、受信者のユーザ側装置200はパソコンなどの計算機となる。その他にも、従来の公開鍵暗号が使われている様々なシステムに適用することが可能である。
また、上記の各実施形態での各計算は、CPUがメモリ上にロードされたプログラムを実行することにより行われるものとして説明した。しかし、プログラムだけではない。いずれかの計算を行なう装置は、ハードウエア化された演算装置であって、他の演算装置やCPUとデータのやりとりを行うものでもよい。
100…鍵管理センタ側装置、101…入力部、102…演算部、103…記憶部、104…通信部、105…出力部、1060…鍵情報生成部、200…ユーザ側装置、201…入力部、202…演算部、203…記憶部、204…通信部、205…出力部、206…乱数生成部、207…暗復号化部、300…通信回線
Claims (12)
- 送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
数4の計算結果および前記マスタ鍵sを用いて、
数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)を用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数7の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
前記暗号文を用いて、
数9の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数9、数10の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。 - 送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAを登録するステップと、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
数15の計算結果および前記マスタ鍵sを用いて、
数16の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザ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)を用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数19の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数20の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数21の計算結果と、前記暗号文とを用いて、
数22の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数22、数23の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。 - 送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
数28の計算結果および前記マスタ鍵sを用いて、
数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)とを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数31の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信するステップと、を行い、
(3)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記データ暗号化鍵K′および前記暗号文を用いて、
数33の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数34、数35の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。 - 送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
前記送信者側装置が、前記メッセージMの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Mの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。 - 送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信方法であって、
(1)前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成するステップ(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録するステップと、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
数40の計算結果および前記マスタ鍵sを用いて、
数41の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力するステップと、を行い、
(2)前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶するステップと、
前記受信者側装置のユーザ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と、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数45の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信するステップと、を行い、
(4)前記受信者側装置が、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
数46の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数48の計算結果と、前記暗号文とを用いて、
数49の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数49、数50の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするIDベース暗号通信方法。 - 鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
数55の計算結果および前記マスタ鍵sを用いて、
数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)を用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数58の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵を用いて、
前記暗号文を用いて、
数60の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数60、数61の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。 - 鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置が、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAを登録する手段と、
前記受信者側装置のユーザAの個別情報IDAおよび前記システムパラメータを用いて
数66の計算結果および前記マスタ鍵sを用いて、
数67の計算結果を前記受信者側装置のユーザAのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザ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)を用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数70の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数71の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記受信者側装置のユーザAの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数72の計算結果と、前記暗号文とを用いて、
数73の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数73、数74の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするIDベース暗号通信システム。 - 鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信ステップであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
数79の計算結果および前記マスタ鍵sを用いて、
数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)とを用いて、
前記メッセージ文Mと、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数82の計算結果(U,V,W,Y)を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文(U,V,W,Y)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記データ暗号化鍵K′および前記暗号文を用いて、
数84の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記受信者側装置のユーザAの個別情報IDAと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
数85、数86の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。 - 鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Mの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Mに復号化するIDベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数q、位数qの加法群G1、位数qの乗法群G2、および、
s∈Z*qおよびP∈G1をランダムに生成する手段(但し、Z*q={1、2、...、q-1})と、
前記受信者側装置のユーザAの個別情報IDAおよび前記送信者側装置のユーザBの個別情報IDBを登録する手段と、
前記受信者側装置のユーザAおよび前記送信者側装置のユーザB各々について、当該ユーザの個別情報および前記システムパラメータを用いて
数91の計算結果および前記マスタ鍵sを用いて、
数92の計算結果を前記受信者側装置のユーザAのプライベート鍵および前記送信者側装置のユーザBのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザAの秘密鍵sA∈Zqをランダムに生成して記憶する手段と、
前記受信者側装置のユーザ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と、前記メッセージ文Mに対して選んだr、Rと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Kとを用いて、
数96の計算結果(U,V,W,Y,α)を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文(U,V,W,Y,α)を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザAのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザAの秘密鍵SAと、を用いて、
数97の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数99の計算結果と、前記暗号文とを用いて、
数100の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
数100、数101の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
前記検証が成立した場合に、M′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするIDベース暗号通信システム。 - 請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる鍵管理センタ側装置。
- 請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる送信者側装置。
- 請求項6乃至9のいずれか一項に記載のIDベース暗号通信システムで用いられる受信者側装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005157159A JP2006330566A (ja) | 2005-05-30 | 2005-05-30 | Idベース暗号通信方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005157159A JP2006330566A (ja) | 2005-05-30 | 2005-05-30 | Idベース暗号通信方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006330566A true JP2006330566A (ja) | 2006-12-07 |
JP2006330566A5 JP2006330566A5 (ja) | 2008-02-07 |
Family
ID=37552286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005157159A Withdrawn JP2006330566A (ja) | 2005-05-30 | 2005-05-30 | Idベース暗号通信方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006330566A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012249293A (ja) * | 2011-05-30 | 2012-12-13 | Samsung Sds Co Ltd | Id基盤の暗号化方法及びその装置 |
US8594332B2 (en) | 2007-05-25 | 2013-11-26 | Nec Corporation | Key generating apparatus, encrypting apparatus and decrypting appatatus |
-
2005
- 2005-05-30 JP JP2005157159A patent/JP2006330566A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8594332B2 (en) | 2007-05-25 | 2013-11-26 | Nec Corporation | Key generating apparatus, encrypting apparatus and decrypting appatatus |
JP2012249293A (ja) * | 2011-05-30 | 2012-12-13 | Samsung Sds Co Ltd | Id基盤の暗号化方法及びその装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539423B (zh) | 一种无双线性对运算的无证书公钥密码体制的实现方法 | |
JP4546231B2 (ja) | Idベース署名及び暗号化システムおよび方法 | |
CN109462481B (zh) | 一种基于非对称双线性对的匿签密方法 | |
CN104301108B (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
CN107425971B (zh) | 无证书的数据加/解密方法和装置、终端 | |
CN103647642A (zh) | 一种基于证书代理重加密方法及系统 | |
JP2004208263A (ja) | バイリニアペアリングを用いた個人識別情報に基づくブラインド署名装置及び方法 | |
US20060026426A1 (en) | Identifier-based signcryption with two trusted authorities | |
JP5047638B2 (ja) | 暗号文復号権委譲システム | |
JP2004208262A (ja) | バイリニアペアリングを用いたidに基づくリング署名装置及び方法 | |
WO2007076659A1 (fr) | Procede et systeme de chiffrement a base d'id | |
KR101516114B1 (ko) | 인증서 기반 프록시 재암호화 방법 및 이를 위한 시스템 | |
CN109698747B (zh) | 一种基于双线性对的身份基身份匿藏密钥协商方法 | |
US20180278417A1 (en) | Apparatus and method for generating key, and apparatus and method for encryption | |
CN104767611A (zh) | 一种从公钥基础设施环境到无证书环境的签密方法 | |
CN106790259A (zh) | 一种非对称跨密码系统重加密、解密方法及系统 | |
JP2006208967A (ja) | Idベース暗号通信方法および装置 | |
US20050060545A1 (en) | Secure provision of image data | |
CN107682158B (zh) | 一种可托管的认证加密方法 | |
CN106453253A (zh) | 一种高效的基于身份的匿签密方法 | |
JP2006330566A (ja) | Idベース暗号通信方法および装置 | |
Nithya et al. | Survey on asymmetric key cryptography algorithms | |
CN103873248B (zh) | 带有证书的基于身份的加密方法和装置 | |
JP2011150006A (ja) | 暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム | |
KR101793528B1 (ko) | 무인증서 공개키 암호 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071214 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20091109 |