(57)【要約】【課題】複数のＩＤベース暗号通信方法が混在することを前提に、ユーザがこれ等のＩＤベース暗号通信方法を使い分けることが可能なＩＤベース暗号通信技術を提供する。【解決手段】送信者の装置２００は、メッセージＭの暗号通信に用いる暗号通信方法の暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力してメッセージ文Ｍの暗号文を作成し、暗号識別情報と共に受信者の装置２００に送信する。受信者の装置２００は、該暗号文および自身のプライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算する。そして、計算した暗号識別情報が暗号文と共に受信した暗号識別情報と一致するか否かを判断し、一致する場合に、暗号文をプライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、メッセージ文の出力を拒否する。【選択図】図１
2006330566.tif 000002
【特許請求の範囲】
【請求項１】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数１】
2006330566.tif 000105
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数２】
2006330566.tif 000106
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数３】
2006330566.tif 000107
なるハッシュ関数を意味する。なお、数３において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【数４】
2006330566.tif 000108
を計算するステップと、
数４の計算結果および前記マスタ鍵ｓを用いて、
【数５】
2006330566.tif 000109
を計算するステップと、
数５の計算結果を前記受信者側装置のユーザＡの前記プライベート鍵として出力するステップと、を行い、
（２）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【数６】
2006330566.tif 000110
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数７で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数７】
2006330566.tif 000111
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数７の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（３）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵を用いて、
【数８】
2006330566.tif 000112
を計算するステップと、
前記暗号文を用いて、
【数９】
2006330566.tif 000113
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数９の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数１０】
2006330566.tif 000114
を計算するステップと、
数９、数１０の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数１１】
2006330566.tif 000115
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【請求項２】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数１２】
2006330566.tif 000116
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数１３】
2006330566.tif 000117
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数１４】
2006330566.tif 000118
なるハッシュ関数を意味する。なお、数１４において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【数１５】
2006330566.tif 000119
を計算するステップと、
数１５の計算結果および前記マスタ鍵ｓを用いて、
【数１６】
2006330566.tif 000120
を計算するステップと、
数１６の計算結果を前記受信者側装置のユーザＡのプライベート鍵として出力するステップと、を行い、
（２）前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶するステップと、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数１７】
2006330566.tif 000121
なる公開鍵Ｐｐｕｂ，Ａを生成し出力するステップと、を行い、
（３）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【数１８】
2006330566.tif 000122
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数１９で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数１９】
2006330566.tif 000123
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数１９の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（４）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数２０】
2006330566.tif 000124
を計算するステップと、
数２０の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数２１】
2006330566.tif 000125
なるデータ暗号化鍵Ｋ′を計算するステップと、
数２１の計算結果と、前記暗号文とを用いて、
【数２２】
2006330566.tif 000126
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数２２の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数２３】
2006330566.tif 000127
を計算するステップと、
数２２、数２３の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数２４】
2006330566.tif 000128
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【請求項３】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数２５】
2006330566.tif 000129
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数２６】
2006330566.tif 000130
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数２７】
2006330566.tif 000131
なるハッシュ関数を意味する。なお、数２７において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録するステップと、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数２８】
2006330566.tif 000132
を計算するステップと、
数２８の計算結果および前記マスタ鍵ｓを用いて、
【数２９】
2006330566.tif 000133
を計算するステップと、
数２９の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力するステップと、を行い、
（２）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザＢのプライベート鍵および前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【数３０】
2006330566.tif 000134
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数３１で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数３１】
2006330566.tif 000135
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数３１の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（３）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数３２】
2006330566.tif 000136
なるデータ暗号化鍵Ｋ′を計算するステップと、
前記データ暗号化鍵Ｋ′および前記暗号文を用いて、
【数３３】
2006330566.tif 000137
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数３３の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数３４】
2006330566.tif 000138
を計算するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数３５】
2006330566.tif 000139
を計算するステップと、
数３４、数３５の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数３６】
2006330566.tif 000140
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【請求項４】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
前記送信者側装置が、前記メッセージＭの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Ｍの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【請求項５】
送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数３７】
2006330566.tif 000141
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数３８】
2006330566.tif 000142
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数３９】
2006330566.tif 000143
なるハッシュ関数を意味する。なお、数３９において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録するステップと、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数４０】
2006330566.tif 000144
を計算するステップと、
数４０の計算結果および前記マスタ鍵ｓを用いて、
【数４１】
2006330566.tif 000145
を計算するステップと、
数４１の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力するステップと、を行い、
（２）前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶するステップと、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数４２】
2006330566.tif 000146
なる公開鍵Ｐｐｕｂ，Ａを生成し出力するステップと、を行い、
（３）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、必要に応じて前記受信者側装置のユーザＡの公開鍵Ｐｐｕｂ，Ａと、必要に応じて前記送信者側装置のユーザＢのプライベート鍵と、を用いて、
【数４３】
2006330566.tif 000147
を計算するステップ（但し、αは前記メッセージＭの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{Ａ１，Ａ２，Ａ３}とする。）と、
数４３の計算結果と、前記暗号識別情報αとを用いて、
【数４４】
2006330566.tif 000148
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数４５で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数４５】
2006330566.tif 000149
を計算するステップ（但し、ＥＫ（ｘ））は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す）と、
数４５の計算結果（Ｕ，Ｖ，Ｗ，Ｙ，α）を暗号文として前記受信者側装置に送信するステップと、を行い、
（４）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ，α）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザＡの秘密鍵ＳＡと、を用いて、
【数４６】
2006330566.tif 000150
を計算するステップ（但し、
【数４７】
2006330566.tif 000151
である。）と、
数４６の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数４８】
2006330566.tif 000152
なるデータ暗号化鍵Ｋ′を計算するステップと、
数４８の計算結果と、前記暗号文とを用いて、
【数４９】
2006330566.tif 000153
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数４９の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数５０】
2006330566.tif 000154
を計算するステップと、
数４９、数５０の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数５１】
2006330566.tif 000155
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【請求項６】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数５２】
2006330566.tif 000156
なる双線形写像ｅを生成する手段と、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する手段（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数５３】
2006330566.tif 000157
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数５４】
2006330566.tif 000158
なるハッシュ関数を意味する。なお、数５４において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【数５５】
2006330566.tif 000159
を計算する手段と、
数５５の計算結果および前記マスタ鍵ｓを用いて、
【数５６】
2006330566.tif 000160
を計算する手段と、
数５６の計算結果を前記受信者側装置のユーザＡの前記プライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【数５７】
2006330566.tif 000161
なるデータ暗号化鍵Ｋを計算する手段（但し、Ｗは後述する数５８で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数５８】
2006330566.tif 000162
を計算する手段（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数５８の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信する手段と、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵を用いて、
【数５９】
2006330566.tif 000163
を計算する手段と、
前記暗号文を用いて、
【数６０】
2006330566.tif 000164
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する手段（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数６０の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数６１】
2006330566.tif 000165
を計算する手段と、
数６０、数６１の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数６２】
2006330566.tif 000166
が成立するか否かを検証する手段と、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするＩＤベース暗号通信システム。
【請求項７】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信ステップであって、
前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数６３】
2006330566.tif 000167
なる双線形写像ｅを生成する手段と、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する手段（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数６４】
2006330566.tif 000168
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数６５】
2006330566.tif 000169
なるハッシュ関数を意味する。なお、数６５において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【数６６】
2006330566.tif 000170
を計算する手段と、
数６６の計算結果および前記マスタ鍵ｓを用いて、
【数６７】
2006330566.tif 000171
を計算する手段と、
数６７の計算結果を前記受信者側装置のユーザＡのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶する手段と、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数６８】
2006330566.tif 000172
なる公開鍵Ｐｐｕｂ，Ａを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【数６９】
2006330566.tif 000173
なるデータ暗号化鍵Ｋを計算する手段（但し、Ｗは後述する数７０で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数７０】
2006330566.tif 000174
を計算する手段（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数７０の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数７１】
2006330566.tif 000175
を計算する手段と、
数７１の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数７２】
2006330566.tif 000176
なるデータ暗号化鍵Ｋ′を計算する手段と、
数７２の計算結果と、前記暗号文とを用いて、
【数７３】
2006330566.tif 000177
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する手段（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数７３の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数７４】
2006330566.tif 000178
を計算する手段と、
数７３、数７４の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数７５】
2006330566.tif 000179
が成立するか否かを検証する手段と、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするＩＤベース暗号通信システム。
【請求項８】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信ステップであって、
前記鍵管理センタ側装置は、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数７６】
2006330566.tif 000180
なる双線形写像ｅを生成する手段と、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する手段（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数７７】
2006330566.tif 000181
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数７８】
2006330566.tif 000182
なるハッシュ関数を意味する。なお、数７８において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録する手段と、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数７９】
2006330566.tif 000183
を計算する手段と、
数７９の計算結果および前記マスタ鍵ｓを用いて、
【数８０】
2006330566.tif 000184
を計算する手段と、
数８０の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザＢのプライベート鍵および前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【数８１】
2006330566.tif 000185
なるデータ暗号化鍵Ｋを計算する手段（但し、Ｗは後述する数８２で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数８２】
2006330566.tif 000186
を計算する手段（但し、ＥＫ（ｘ））は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す）と、
数８２の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信する手段と、を有し、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数８３】
2006330566.tif 000187
なるデータ暗号化鍵Ｋ′を計算する手段と、
前記データ暗号化鍵Ｋ′および前記暗号文を用いて、
【数８４】
2006330566.tif 000188
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する手段（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数８４の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数８５】
2006330566.tif 000189
を計算する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数８６】
2006330566.tif 000190
を計算する手段と、
数８５、数８６の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数８７】
2006330566.tif 000191
が成立するか否かを検証する手段と、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするＩＤベース暗号通信システム。
【請求項９】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【数８８】
2006330566.tif 000192
なる双線形写像ｅを生成する手段と、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する手段（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【数８９】
2006330566.tif 000193
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【数９０】
2006330566.tif 000194
なるハッシュ関数を意味する。なお、数９０において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録する手段と、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【数９１】
2006330566.tif 000195
を計算する手段と、
数９１の計算結果および前記マスタ鍵ｓを用いて、
【数９２】
2006330566.tif 000196
を計算する手段と、
数９２の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力する手段と、を有し、
前記受信者側装置は、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶する手段と、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数９３】
2006330566.tif 000197
なる公開鍵Ｐｐｕｂ，Ａを生成し出力する手段と、を有し、
前記送信者側装置は、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、必要に応じて前記受信者側装置のユーザＡの公開鍵Ｐｐｕｂ，Ａと、必要に応じて前記送信者側装置のユーザＢのプライベート鍵と、を用いて、
【数９４】
2006330566.tif 000198
を計算する手段（但し、αは前記メッセージＭの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{Ａ１，Ａ２，Ａ３}とする。）と、
数９４の計算結果と、前記暗号識別情報αとを用いて、
【数９５】
2006330566.tif 000199
なるデータ暗号化鍵Ｋを計算する手段（但し、Ｗは後述する数９６で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【数９６】
2006330566.tif 000200
を計算する手段（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す）と、
数９６の計算結果（Ｕ，Ｖ，Ｗ，Ｙ，α）を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、さらに、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ，α）を受信する手段と、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザＡの秘密鍵ＳＡと、を用いて、
【数９７】
2006330566.tif 000201
を計算する手段（但し、
【数９８】
2006330566.tif 000202
である。）と、
数９７の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数９９】
2006330566.tif 000203
なるデータ暗号化鍵Ｋ′を計算する手段と、
数９９の計算結果と、前記暗号文とを用いて、
【数１００】
2006330566.tif 000204
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する手段（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数１００の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【数１０１】
2006330566.tif 000205
を計算する手段と、
数１００、数１０１の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【数１０２】
2006330566.tif 000206
が成立するか否かを検証する手段と、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否する手段と、を有すること
を特徴とするＩＤベース暗号通信システム。
【請求項１０】
請求項６乃至９のいずれか一項に記載のＩＤベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項１１】
請求項６乃至９のいずれか一項に記載のＩＤベース暗号通信システムで用いられる送信者側装置。
【請求項１２】
請求項６乃至９のいずれか一項に記載のＩＤベース暗号通信システムで用いられる受信者側装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの所属、名前、メールアドレス等の個人を特定できるＩＤ情報を利用して、暗号通信や文書認証を行うＩＤベース暗号システムに関する。
【背景技術】
【０００２】
非特許文献１に記載されているように、公開鍵暗号システムでは、ユーザが作成した公開鍵を認証局（ＣＡ：Certificate Authority）に登録し、その正当性の根拠である公開鍵証明書を発行してもらう必要がある。すなわち、暗号文の送信者は、受信者の公開鍵とその公開鍵証明書を手に入れ、該公開鍵証明書を用いて該公開鍵の正当性を確認した上で、送信するメッセージ文の暗号化を行う必要がある。
【０００３】
これに対して、ＣＡによる公開鍵証明書の発行の手間を省いて、より簡単な公開鍵の管理を行うことを目的として、ユーザのＩＤ情報を公開鍵とする暗号システム（以下、ＩＤベース暗号システムと呼ぶ）が提案された。非特許文献２に記載されているように、ＩＤベース暗号システムでは、暗号通信や認証（ディジタル署名、個人認証等）を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のＩＤ情報を公開鍵として鍵管理センタに登録すると共に、鍵管理センタに、当該鍵管理センタのマスタ鍵を用いて該ＩＤ情報に対応する秘密鍵（以下、ＩＤベース暗号用秘密鍵と呼ぶ）を発行してもらう。また、鍵管理センタは、当該鍵管理センタのマスタ鍵と対のシステムパラメータを作成して公開する。暗号文の送信者は、受信者のＩＤ情報と鍵管理センタのシステムパラメータとを用いて暗号文を作成し、受信者に送信する。受信者は、ＩＤベース暗号用秘密鍵を用いてメッセージの復号化を行う。
【０００４】
公開鍵暗号システムでは受信者の公開鍵がランダムなビット列であるのに対して、ＩＤベース暗号システムでは受信者のＩＤベース暗号用公開鍵がメールアドレス等のＩＤ情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのＩＤベース暗号システムが提案されている。例えば、非特許文献３には、ゼロ知識証明を利用したＩＤベースのディジタル署名を実現するＩＤベース暗号システムが提案されている。非特許文献４では、双線形写像を利用することで、安全性の証明が可能なＩＤベース暗号システムが提案されている。また、非特許文献５では、非特許文献４に記載のＩＤベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、非特許文献６では、ＩＤベース暗号システムのインフラストラクチャにおいて、証明書不要することができる公開鍵暗号が提案されている。非特許文献７では、ＩＤベース暗号システムのインフラストラクチャにおいて、否認可能な証明機能を持った暗号方法が提案されている。
【０００５】
【非特許文献１】独立行政法人  情報処理推進機構  セキュリティセンター、情報セキュリティ技術ラボラトリー、"ＰＫＩ  関連技術解説  ３.１  ＰＫＩ概要"、[平成１７年５月１９日検索］  インターネット<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"、[平成１７年５月１９日検索］  インターネット<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"、[平成１７年１月１７日検索］  インターネット<URL:http://eprint.iacr.org/2004/102.pdf>
【非特許文献６】S.S. Al-Riyami and K. G. Paterson "Certificateless PublicKey Cryptography"、[平成１７年５月１９日検索］  インターネット<URL:http://eprint.iacr.org/2003/126.pdf>
【非特許文献７】B. Lynn "Authenticated Identity-Based Encryption"、[平成１７年５月１９日検索］  インターネット<URL:http://eprint.iacr.org/2002/072.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、様々なＩＤベース暗号通信方法が提案されている。本発明の目的は、新たなＩＤベース暗号通信技術を提案することにある。また、本発明の他の目的は、複数のＩＤベース暗号通信方法が混在することを前提に、ユーザがこれ等のＩＤベース暗号通信方法を使い分けることが可能なＩＤベース暗号通信技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のＩＤベース暗号通信方法の第１の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【０００８】
【数１０３】
2006330566.tif 000003
【０００９】
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【００１０】
【数１０４】
2006330566.tif 000004
【００１１】
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【００１２】
【数１０５】
2006330566.tif 000005
【００１３】
なるハッシュ関数を意味する。なお、数１０５において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【００１４】
【数１０６】
2006330566.tif 000006
【００１５】
を計算するステップと、
数１０６の計算結果および前記マスタ鍵ｓを用いて、
【００１６】
【数１０７】
2006330566.tif 000007
【００１７】
を計算するステップと、
数１０７の計算結果を前記受信者側装置のユーザＡの前記プライベート鍵として出力するステップと、を行い、
（２）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【００１８】
【数１０８】
2006330566.tif 000008
【００１９】
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数１０９で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【００２０】
【数１０９】
2006330566.tif 000009
【００２１】
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数１０９の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（３）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
受信した暗号文に対して、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵を用いて、
【００２２】
【数１１０】
2006330566.tif 000010
【００２３】
を計算するステップと、
前記暗号文を用いて、
【００２４】
【数１１１】
2006330566.tif 000011
【００２５】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数１１１の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００２６】
【数１１２】
2006330566.tif 000012
【００２７】
を計算するステップと、
数１１１、数１１２の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００２８】
【数１１３】
2006330566.tif 000013
【００２９】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【００３０】
また、本発明の第２の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【００３１】
【数１１４】
2006330566.tif 000014
【００３２】
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【００３３】
【数１１５】
2006330566.tif 000015
【００３４】
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【００３５】
【数１１６】
2006330566.tif 000016
【００３６】
なるハッシュ関数を意味する。なお、数１１６において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システムパラメータを用いて
【００３７】
【数１１７】
2006330566.tif 000017
【００３８】
を計算するステップと、
数１１７の計算結果および前記マスタ鍵ｓを用いて、
【００３９】
【数１１８】
2006330566.tif 000018
【００４０】
を計算するステップと、
数１１８の計算結果を前記受信者側装置のユーザＡのプライベート鍵として出力するステップと、を行い、
（２）前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶するステップと、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００４１】
【数１１９】
2006330566.tif 000019
【００４２】
なる公開鍵Ｐｐｕｂ，Ａを生成し出力するステップと、を行い、
（３）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【００４３】
【数１２０】
2006330566.tif 000020
【００４４】
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数１２１で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【００４５】
【数１２１】
2006330566.tif 000021
【００４６】
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数１２１の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（４）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００４７】
【数１２２】
2006330566.tif 000022
【００４８】
を計算するステップと、
数１２２の計算結果と、前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【００４９】
【数１２３】
2006330566.tif 000023
【００５０】
なるデータ暗号化鍵Ｋ′を計算するステップと、
数１２３の計算結果と、前記暗号文とを用いて、
【００５１】
【数１２４】
2006330566.tif 000024
【００５２】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数１２４の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００５３】
【数１２５】
2006330566.tif 000025
【００５４】
を計算するステップと、
数１２４、数１２５の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００５５】
【数１２６】
2006330566.tif 000026
【００５６】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【００５７】
また、本発明の第３の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【００５８】
【数１２７】
2006330566.tif 000027
【００５９】
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【００６０】
【数１２８】
2006330566.tif 000028
【００６１】
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【００６２】
【数１２９】
2006330566.tif 000029
【００６３】
なるハッシュ関数を意味する。なお、数１２９において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録するステップと、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【００６４】
【数１３０】
2006330566.tif 000030
【００６５】
を計算するステップと、
数２８の計算結果および前記マスタ鍵ｓを用いて、
【００６６】
【数１３１】
2006330566.tif 000031
【００６７】
を計算するステップと、
数１３１の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力するステップと、を行い、
（２）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記送信者側装置のユーザＢのプライベート鍵および前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【００６８】
【数１３２】
2006330566.tif 000032
【００６９】
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数１３３で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【００７０】
【数１３３】
2006330566.tif 000033
【００７１】
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。）と、
数１３３の計算結果（Ｕ，Ｖ，Ｗ，Ｙ）を暗号文として前記受信者側装置に送信するステップと、を行い、
（３）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００７２】
【数１３４】
2006330566.tif 000034
【００７３】
なるデータ暗号化鍵Ｋ′を計算するステップと、
前記データ暗号化鍵Ｋ′および前記暗号文を用いて、
【００７４】
【数１３５】
2006330566.tif 000035
【００７５】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数１３５の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００７６】
【数１３６】
2006330566.tif 000036
【００７７】
を計算するステップと、
前記受信者側装置のユーザＡの個別情報ＩＤＡと、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００７８】
【数１３７】
2006330566.tif 000037
【００７９】
を計算するステップと、
数１３６、数１３７の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００８０】
【数１３８】
2006330566.tif 000038
【００８１】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行うこと
を特徴とするＩＤベース暗号通信方法。
【００８２】
また、本発明の第４の態様は、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
前記送信者側装置が、前記メッセージＭの暗号通信に用いる暗号通信方法に付与された暗号識別情報を、当該暗号通信方法による暗復号処理に用いるハッシュ関数への入力の一部として当該ハッシュ関数に入力して、前記システムパラメータを用いた前記メッセージ文Ｍの暗号文を作成するステップと、
前記送信者側装置が、前記暗号文を前記暗号識別情報と共に、前記受信者側装置に送信するステップと、
前記受信者側装置が、前記送信者側装置から前記暗号文を前記暗号識別情報と共に受信するステップと、
前記受信者側装置が、前記暗号文および前記プライベート鍵を用いて、前記ハッシュ関数への入力の一部として当該ハッシュ関数に入力された暗号識別情報を計算するステップと、
前記計算した暗号識別情報が前記暗号文と共に前記送信者側装置から受信した暗号識別情報と一致するか否かを判断し、一致する場合に、前記暗号文を前記プライベート鍵を用いて復号化することで得られたメッセージ文を出力し、一致しない場合に、前記メッセージ文の出力を拒否するステップと、を行う。
【００８３】
例えば、送信者側装置が鍵管理センタ側装置により作成されたシステムパラメータを用いてメッセージ文Ｍの暗号文を作成し、受信者側装置が前記鍵管理センタ側装置により作成されたプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号化するＩＤベース暗号通信方法であって、
（１）前記鍵管理センタ側装置が、
素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【００８４】
【数１３９】
2006330566.tif 000039
【００８５】
なる双線形写像ｅを生成するステップと、
ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成するステップ（但し、Ｚ＊q＝{１、２、...、ｑ-１}）と、
【００８６】
【数１４０】
2006330566.tif 000040
【００８７】
を生成し、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を前記システムパラメータとして、前記マスタ鍵および前記システムパラメータを記憶すると共に、前記システムパラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【００８８】
【数１４１】
2006330566.tif 000041
【００８９】
なるハッシュ関数を意味する。なお、数１４１において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記送信者側装置のユーザＢの個別情報ＩＤＢを登録するステップと、
前記受信者側装置のユーザＡおよび前記送信者側装置のユーザＢ各々について、当該ユーザの個別情報および前記システムパラメータを用いて
【００９０】
【数１４２】
2006330566.tif 000042
【００９１】
を計算するステップと、
数１４２の計算結果および前記マスタ鍵ｓを用いて、
【００９２】
【数１４３】
2006330566.tif 000043
【００９３】
を計算するステップと、
数１４３の計算結果を前記受信者側装置のユーザＡのプライベート鍵および前記送信者側装置のユーザＢのプライベート鍵として出力するステップと、を行い、
（２）前記受信者側装置が、
前記鍵管理センタ側装置から出力された前記システムパラメータを用いて、前記受信者側装置のユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成して記憶するステップと、
前記受信者側装置のユーザＡの秘密鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【００９４】
【数１４４】
2006330566.tif 000044
【００９５】
なる公開鍵Ｐｐｕｂ，Ａを生成し出力するステップと、を行い、
（３）前記送信者側装置が、
前記メッセージ文Ｍ∈{０，１}ｎに対して、ｒ∈Ｚ＊ｑ、Ｒ∈{０，１}ｍをランダムに生成するステップと、
前記鍵管理センタ側装置から出力された前記システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、必要に応じて前記受信者側装置のユーザＡの公開鍵Ｐｐｕｂ，Ａと、必要に応じて前記送信者側装置のユーザＢのプライベート鍵と、を用いて、
【００９６】
【数１４５】
2006330566.tif 000045
【００９７】
を計算するステップ（但し、αは前記メッセージＭの暗号通信に用いる暗号通信方法に付与された暗号識別情報であり、α∈{Ａ１，Ａ２，Ａ３}とする。）と、
数１４５の計算結果と、前記暗号識別情報αとを用いて、
【００９８】
【数１４６】
2006330566.tif 000046
【００９９】
なるデータ暗号化鍵Ｋを計算するステップ（但し、Ｗは後述する数１４７で定義される。）と、
前記メッセージ文Ｍと、前記メッセージ文Ｍに対して選んだｒ、Ｒと、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記データ暗号化鍵Ｋとを用いて、
【０１００】
【数１４７】
2006330566.tif 000047
【０１０１】
を計算するステップ（但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す）と、
数１４７の計算結果（Ｕ，Ｖ，Ｗ，Ｙ，α）を暗号文として前記受信者側装置に送信するステップと、を行い、
（４）前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ，α）を受信するステップと、
前記鍵管理センタ側装置より出力された前記受信者側装置のユーザＡのプライベート鍵と、前記鍵管理センタ側装置から出力された前記システムパラメータと、必要に応じて前記受信者側装置のユーザＡの秘密鍵ＳＡと、を用いて、
【０１０２】
【数１４８】
2006330566.tif 000048
【０１０３】
を計算するステップ（但し、
【０１０４】
【数１４９】
2006330566.tif 000049
【０１０５】
である。）と、
数１４９の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【０１０６】
【数１５０】
2006330566.tif 000050
【０１０７】
なるデータ暗号化鍵Ｋ′を計算するステップと、
数１５０の計算結果と、前記暗号文とを用いて、
【０１０８】
【数１５１】
2006330566.tif 000051
【０１０９】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算するステップ（但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。）と、
数１５１の計算結果と、前記鍵管理センタ側装置から出力された前記システムパラメータと、前記暗号文とを用いて、
【０１１０】
【数１５２】
2006330566.tif 000052
【０１１１】
を計算するステップと、
数１５１、数１５２の計算結果と、前記暗号文と、前記鍵管理センタ側装置から出力された前記システムパラメータとを用いて、
【０１１２】
【数１５３】
2006330566.tif 000053
【０１１３】
が成立するか否かを検証するステップと、
前記検証が成立した場合に、Ｍ′をメッセージ文として出力し、前記検証が成立しなかった場合に、メッセージ文の出力を拒否するステップと、を行う。
【発明の効果】
【０１１４】
本発明によれば、新たなＩＤベース暗号通信技術を提供することができる。また、複数のＩＤベース暗号通信方法が混在することを前提に、ユーザがこれ等のＩＤベース暗号通信方法を使い分けることが可能なＩＤベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【０１１５】
以下に、本発明の実施の形態について説明する。
【０１１６】
まず、以下の各実施形態に共通するＩＤベース暗号通信システムの構成を説明する。
【０１１７】
図１は本発明の各実施形態に共通するＩＤベース暗号通信システムの概略構成図である。図示するように、ＩＤベース暗号通信システムは、鍵管理センタ側装置１００と、複数のユーザ側通信装置２００とが、通信回線３００を介して接続された構成を有している。
【０１１８】
図２は図１に示す鍵管理センタ側装置１００の概略構成図である。図示するように、鍵管理センタ側装置１００は、情報を入力する入力部１０１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置１００の各部の制御を行う演算部１０２と、記憶部１０３と、通信回線３００を介してユーザ側装置２００と通信を行なう通信部１０４と、情報を出力する通信部１０５と、を備えている。また、演算部１０２は、鍵管理センタのマスタ鍵およびシステムパラメータを作成する鍵情報作成部１０６を有する。
【０１１９】
図３は図１に示すユーザ側装置２００の概略構成図である。図示するように、ユーザ側装置２００は、情報を入力する入力部２０１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置２００の各部の制御を行う演算部２０２と、記憶部２０３と、通信回線３００を介して鍵管理センタ側装置１００および他のユーザ側装置２００と通信を行なう通信部２０４と、情報を出力する通信部２０５と、を備えている。また、演算部２０２は、乱数を生成する乱数生成部２０６と、暗復号化処理を行う暗復号化部２０７とを有する。
【０１２０】
上記構成の鍵管理センタ側装置１００およびユーザ側装置２００は、図４に示すような、ＣＰＵ４０１と、メモリ４０２と、ＨＤＤ等の外部記憶装置４０３と、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体４０９から情報を読み出す読取装置４０４と、キーボードやマウスなどの入力装置４０５と、ディスプレイなどの出力装置４０６と、通信回線３００を介して相手装置と通信を行なうための通信装置４０７と、これらの各装置４０１〜４０７を接続するバス４０８と、を備えた一般的なコンピュータにおいて、ＣＰＵ４０１がメモリ４０２上にロードされた所定のプログラムを実行することにより実現することができる。この場合、メモリ４０２や外部記憶装置４０３が記憶部１０３、２０３に利用され、通信装置４０８が通信部１０４、２０４に利用され、読取装置４０４や入力装置４０５が入力部１０１、２０１に利用され、そして、出力装置４０６が出力部１０５、２０５に利用される。
【０１２１】
この所定のプログラムは、読取装置４０４を介して記憶媒体４０９から、あるいは、通信装置４０７を介して通信回線３００から、外部記憶装置４０３にダウンロードされ、それから、メモリ４０２上にロードされてＣＰＵ４０１により実行されるようにしてもよい。また、読取装置４０４を介して記憶媒体４０９から、あるいは、通信装置４０７を介して通信回線３００から、メモリ４０２上に直接ロードされ、ＣＰＵ４０１により実行されるようにしてもよい。
【０１２２】
<<第１実施形態>>
次に、本発明の第１実施形態について説明する。本実施形態では、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図５は第１実施形態の動作手順を説明するための図である。
【０１２３】
１．準備処理
１-１：鍵管理センタのセットアップ処理
１-１-１：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６を用いて、素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【０１２４】
【数１５４】
2006330566.tif 000054
【０１２５】
なる双線形写像ｅを生成する（Ｓ１００１）。
【０１２６】
次に、演算部１０２は、鍵情報生成部１０６を用いて、ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する（Ｓ１００２）。ここで、Ｚ＊q＝{１、２、...、ｑ-１}である。
【０１２７】
次に、演算部１０２は、ｓ、Ｐを用いて、
【０１２８】
【数１５５】
2006330566.tif 000055
【０１２９】
を生成する（Ｓ１００３）。そして、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）をシステムパラメータとして、両者を記憶部１０３に記憶する。但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【０１３０】
【数１５６】
2006330566.tif 000056
【０１３１】
なるハッシュ関数を意味する。なお、数１５６において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【０１３２】
次に、演算部１０２は、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（Ｓ１００４）。なお、出力部１０５からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。
【０１３３】
１-１-２：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を、記憶部２０３に記憶する（Ｓ２００１）。ユーザ側装置Ｂでも同様の処理が行われる。
【０１３４】
１-２：ユーザのセットアップ処理
ここでは、ユーザ側装置Ａが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Ｂでも同様の処理が行われる。
【０１３５】
１-２-１：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡより受け付けたユーザＡのＩＤ情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（Ｓ２００２）。なお、ユーザＡが、郵送等によって鍵管理センタに、ＩＤ情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０１３６】
１-２-２：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算装置１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡのＩＤ情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応付けて記憶部１０３に記憶する（Ｓ１００５）。
【０１３７】
次に、演算部１０２は、記憶部１０３に記憶されているシステムパラメータＨ１およびユーザのＩＤ情報ＩＤＡを用いて、
【０１３８】
【数１５７】
2006330566.tif 000057
【０１３９】
を計算する。さらに、この計算結果と、記憶装置１０３に記憶されているマスタ鍵ｓとを用いて、
【０１４０】
【数１５８】
2006330566.tif 000058
【０１４１】
を計算する。この計算結果を、ユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信）で送信する（Ｓ１００６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０１４２】
１-２-３：ユーザ側装置２００(メッセージ受信側）の処理
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（Ｓ２００３）。
【０１４３】
２．暗号通信処理
２-１：ユーザ側装置２００(メッセージ送信側）の処理
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明するが、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合でも同様の処理が行われる。
【０１４４】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（Ｓ３００１）。但し、Ｍ∈{０，１}ｎとする。ここで、ｎは正整数である。
【０１４５】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、メッセージ文Ｍに対して、ｒ∈Ｚ＊ｑおよびＲ∈{０，１}ｍをランダムに生成する。さらに、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【０１４６】
【数１５９】
2006330566.tif 000059
【０１４７】
なるデータ暗号化鍵Ｋを計算する（Ｓ３００２）。ここで、Ｗは後述する数１６０で定義される。
【０１４８】
次に、演算部２０２は、記憶装置２０３に記憶されているメッセージ文Ｍと、該メッセージ文Ｍに対してランダムに生成したｒ、Ｒと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、データ暗号化鍵Ｋとを用いて、
【０１４９】
【数１６０】
2006330566.tif 000060
【０１５０】
を計算する。但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。そして、この計算結果（Ｕ，Ｖ，Ｗ，Ｙ）をメッセージＭの暗号文として、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する（Ｓ３００３）。
【０１５１】
２-２：ユーザ側装置２００(メッセージ受信側）の処理
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【０１５２】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を記憶部２０３に記憶する（Ｓ２００４）。
【０１５３】
次に、演算部２０２は、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）に対して、記憶部２０３に記憶されているユーザＡのプライベート鍵を用いて、
【０１５４】
【数１６１】
2006330566.tif 000061
【０１５５】
を計算する。さらに、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を用いて、
【０１５６】
【数１６２】
2006330566.tif 000062
【０１５７】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する（Ｓ２００５）。但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。
【０１５８】
次に、演算部２０２は、数１６０の計算結果Ｒ′、Ｍ′と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０１５９】
【数１６３】
2006330566.tif 000063
【０１６０】
を計算する（Ｓ２００６）。さらに、演算部２０２は、数１６１、数１６２の計算結果と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０１６１】
【数１６４】
2006330566.tif 000064
【０１６２】
が成立するか否かを検証する（Ｓ２００７）。検証が成立した場合、演算２０２は、Ｍ′をメッセージ文として出力部２０５から出力する（Ｓ２００８）。一方、成立しない場合、演算部２０２は、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部２０５から出力する（Ｓ２００９）。
【０１６３】
以上、本発明の第１実施形態について説明した。
【０１６４】
本実施形態は、非特許文献４に記載の手法と同様の手法により、Bilinear Diffie-Hellman（ＢＤＨ）問題の計算量的困難性を暗号学的仮定として、ＩＮＤ-ＩＤ-ＣＣＡの意味での安全性を証明できる。
【０１６５】
なお、本実施形態において鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【０１６６】
<<第２実施形態>>
次に、本発明の第２実施形態について説明する。本実施形態は、上記の第１実施形態において、鍵管センタのタッピングの不正を考慮し安全性を強化したものである。図６は本発明の第２実施形態の動作手順を説明するための図である。
【０１６７】
１．準備処理
１-１：鍵管理センタのセットアップ処理
１-１-１：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６を用いて、素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【０１６８】
【数１６５】
2006330566.tif 000065
【０１６９】
なる双線形写像ｅを生成する（Ｓ１１０１）。
【０１７０】
次に、演算部１０２は、鍵情報生成部１０６を用いて、ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する（Ｓ１１０２）。ここで、Ｚ＊q＝{１、２、...、ｑ-１}である。
【０１７１】
次に、演算部１０２は、ｓ、Ｐを用いて、
【０１７２】
【数１６６】
2006330566.tif 000066
【０１７３】
を生成する（Ｓ１１０３）。そして、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）をシステムパラメータとして、両者を記憶部１０３に記憶する。但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【０１７４】
【数１６７】
2006330566.tif 000067
【０１７５】
なるハッシュ関数を意味する。なお、数１６７において、{０，１}＊はユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【０１７６】
次に、演算部１０２は、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（Ｓ１１０４）。なお、出力部１０５からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。
【０１７７】
１-１-２：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を、記憶部２０３に記憶する（Ｓ２１０１）。ユーザ側装置Ｂでも同様の処理が行われる。
【０１７８】
１-２：ユーザのセットアップ処理
ここでは、ユーザ側装置Ａが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Ｂでも同様の処理が行われる。
【０１７９】
１-２-１：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡより受け付けたユーザＡのＩＤ情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（Ｓ２１０２）。なお、ユーザＡが、郵送等によって鍵管理センタに、ＩＤ情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０１８０】
１-２-２：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算装置１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡのＩＤ情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応付けて記憶部１０３に記憶する（Ｓ１１０５）。
【０１８１】
次に、演算部１０２は、記憶部１０３に記憶されているシステムパラメータＨ１およびユーザのＩＤ情報ＩＤＡを用いて、
【０１８２】
【数１６８】
2006330566.tif 000068
【０１８３】
を計算する。さらに、この計算結果と、記憶装置１０３に記憶されているマスタ鍵ｓとを用いて、
【０１８４】
【数１６９】
2006330566.tif 000069
【０１８５】
を計算する。この計算結果を、ユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信）で送信する（Ｓ１１０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０１８６】
１-２-３：ユーザ側装置２００(メッセージ受信側）の処理
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（Ｓ２１０３）。
【０１８７】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、ユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成し、秘密鍵ｓＡを記憶部２０３に記憶する（Ｓ２１０４）。
【０１８８】
また、演算部２０２は、記憶部２０３にそれぞれ記憶されているユーザＡの秘密鍵ｓＡおよびシステムパラメータＰを用いて、
【０１８９】
【数１７０】
2006330566.tif 000070
【０１９０】
なる公開鍵Ｐｐｕｂ，Ａを生成する。そして、演算部２０２は、公開鍵Ｐｐｕｂ，Ａを出力部２０５から出力するか、あるいは、通信回線３００を介して通信部２０４からユーザ側装置Ｂに送信する（Ｓ２１０５）。なお、出力部２０５から公開鍵Ｐｐｕｂ，Ａが出力された場合、ユーザＡは郵送等によりユーザＢに通知する。
【０１９１】
１-２-４：ユーザ側装置２００(メッセージ送信側）の処理
ユーザ側装置Ｂにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部２０１に入力されたユーザＡの公開鍵Ｐｐｕｂ，Ａを、記憶部２０３に記憶する（Ｓ３１０１）。
【０１９２】
２．暗号通信処理
２-１：ユーザ側装置２００(メッセージ送信側）の処理
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明するが、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合でも同様の処理が行われる。
【０１９３】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（Ｓ３１０２）。但し、Ｍ∈{０，１}ｎとする。ここで、ｎは正整数である。
【０１９４】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、メッセージ文Ｍに対して、ｒ∈Ｚ＊ｑおよびＲ∈{０，１}ｍをランダムに生成する。さらに、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を用いて、
【０１９５】
【数１７１】
2006330566.tif 000071
【０１９６】
なるデータ暗号化鍵Ｋを計算する（Ｓ３１０３）。ここで、Ｗは後述する数１７２で定義される。
【０１９７】
次に、演算部２０２は、記憶装置２０３に記憶されているメッセージ文Ｍと、該メッセージ文Ｍに対してランダムに生成したｒ、Ｒと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、データ暗号化鍵Ｋとを用いて、
【０１９８】
【数１７２】
2006330566.tif 000072
【０１９９】
を計算する。但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。そして、この計算結果（Ｕ，Ｖ，Ｗ，Ｙ）をメッセージＭの暗号文として、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する（Ｓ３１０４）。
【０２００】
２-２：ユーザ側装置２００(メッセージ受信側）の処理
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【０２０１】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を記憶部２０３に記憶する（Ｓ２１０６）。
【０２０２】
次に、演算部２０２は、ユーザＡの個別情報ＩＤＡと、記憶部２０３に記憶されているシステムパラメータとを用いて、
【０２０３】
【数１７３】
2006330566.tif 000073
【０２０４】
を計算する。次に、演算部２０２は、数１７３の計算結果と、記憶部２０３に記憶されているユーザＡのプライベート鍵、ユーザＡの秘密鍵およびシステムパラメータと、受信した暗号文とを用いて、
【０２０５】
【数１７４】
2006330566.tif 000074
【０２０６】
なるデータ暗号化鍵Ｋ′を計算する。さらに、演算部２０２は、数１７４の計算結果と、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）とを用いて、
【０２０７】
【数１７５】
2006330566.tif 000075
【０２０８】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する（Ｓ２１０７）。但し、ＤＫ（ｙ）は暗号文ｙをデータ暗号化鍵Ｋを用いて復号化した結果を表す。
【０２０９】
次に、演算部２０２は、数１７３の計算結果Ｒ′、Ｍ′と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０２１０】
【数１７６】
2006330566.tif 000076
【０２１１】
を計算する（Ｓ２１０８）。さらに、演算部２０２は、数１７３、数１７４の計算結果と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０２１２】
【数１７７】
2006330566.tif 000077
【０２１３】
が成立するか否かを検証する（Ｓ２１０９）。検証が成立した場合、演算２０２は、Ｍ′をメッセージ文として出力部２０５から出力する（Ｓ２１１０）。一方、成立しない場合、演算部２０２は、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部２０５から出力する（Ｓ２１１１）。
【０２１４】
以上、本発明の第２実施形態について説明した。
【０２１５】
本実施形態では、送信側装置であるユーザ側装置Ｂは、鍵管理センタ側装置１００が作成したシステムパラメータと受信側装置であるユーザＡ側装置が作成した公開情報Ｐｐｕｂ，Ａとからメッセージ文Ｍの暗号文を作成している。また、受信側装置であるユーザ側装置Ａは、鍵管理センタ側装置１００が作成したユーザＡプライベート鍵とユーザ側装置Ａが作成したユーザＡの秘密鍵とを用いてメッセージ文Ｍの復号化を行っている。ここで、鍵管理センタは、プライベート鍵については知ることができるが、秘密鍵については知ることができない。このため、鍵管理センタに内部不正者が存在しても暗号文を復号化することができない。
【０２１６】
また、本実施形態では、非特許文献４に記載の手法と同様の手法により、ＩＮＤ−ＣＣＡ２の意味での安全性を証明することが可能である。さらに、ユーザが自身で作成した鍵情報について、鍵管理センタが公開しているシステムパラメータを利用して作成し、かつ、鍵管理センタが発行したプライベート鍵と併用して復号化処理を行うため、既存のＩＤベース暗号システムと同様に、公開鍵証明書が不要である。
【０２１７】
なお、本実施形態において、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【０２１８】
<<第３実施形態>>
次に、本発明の第３実施形態について説明する。本実施形態では、本実施形態は、上記の第１実施形態において、否認可能な認証機能を持たせたものである。図７は本発明の第２実施形態の動作手順を説明するための図である。
【０２１９】
１．準備処理
１-１：鍵管理センタのセットアップ処理
１-１-１：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６を用いて、素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【０２２０】
【数１７８】
2006330566.tif 000078
【０２２１】
なる双線形写像ｅを生成する（Ｓ１２０１）。
【０２２２】
次に、演算部１０２は、鍵情報生成部１０６を用いて、ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する（Ｓ１２０２）。ここで、Ｚ＊q＝{１、２、...、ｑ-１}である。
【０２２３】
次に、演算部１０２は、ｓ、Ｐを用いて、
【０２２４】
【数１７９】
2006330566.tif 000079
【０２２５】
を生成する（Ｓ１２０３）。そして、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）をシステムパラメータとして、両者を記憶部１０３に記憶する。但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【０２２６】
【数１８０】
2006330566.tif 000080
【０２２７】
なるハッシュ関数を意味する。なお、数１７８において、{０，１}＊はユーザのＩＤ情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、ＩＤ情報に使用する情報の種類によって異なる場合がある。
【０２２８】
次に、演算部１０２は、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（Ｓ１２０４）。なお、出力部１０５からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。
【０２２９】
１-１-２：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を、記憶部２０３に記憶する（Ｓ２２０１）。ユーザ側装置Ｂでも同様の処理が行われる。
【０２３０】
１-２：ユーザのセットアップ処理
ここでは、ユーザ側装置Ａが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Ｂでも同様の処理が行われる。
【０２３１】
１-２-１：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡより受け付けたユーザＡのＩＤ情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（Ｓ２２０２）。なお、ユーザＡが、郵送等によって鍵管理センタに、ＩＤ情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０２３２】
１-２-２：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算装置１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡのＩＤ情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応付けて記憶部１０３に記憶する（Ｓ１２０５）。
【０２３３】
次に、演算部１０２は、記憶部１０３に記憶されているシステムパラメータＨ１およびユーザのＩＤ情報ＩＤＡを用いて、
【０２３４】
【数１８１】
2006330566.tif 000081
【０２３５】
を計算する。さらに、この計算結果と、記憶装置１０３に記憶されているマスタ鍵ｓとを用いて、
【０２３６】
【数１８２】
2006330566.tif 000082
【０２３７】
を計算する。この計算結果を、ユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信）で送信する（Ｓ１２０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０２３８】
１-２-３：ユーザ側装置２００(メッセージ受信側）の処理
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（Ｓ２２０３）。
【０２３９】
２．暗号通信処理
２-１：ユーザ側装置２００(メッセージ送信側）の処理
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明するが、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合でも同様の処理が行われる。
【０２４０】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（Ｓ３２０１）。但し、Ｍ∈{０，１}ｎとする。ここで、ｎは正整数である。
【０２４１】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、メッセージ文Ｍに対して、ｒ∈Ｚ＊ｑおよびＲ∈{０，１}ｍをランダムに生成する。さらに、ユーザＡの個別情報ＩＤＡと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）およびユーザＢのプライベート鍵とを用いて、
【０２４２】
【数１８３】
2006330566.tif 000083
【０２４３】
なるデータ暗号化鍵Ｋを計算する（Ｓ３２０２）。ここで、Ｗは後述する数１８４で定義される。
【０２４４】
次に、演算部２０２は、記憶装置２０３に記憶されているメッセージ文Ｍと、該メッセージ文Ｍに対してランダムに生成したｒ、Ｒと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、データ暗号化鍵Ｋとを用いて、
【０２４５】
【数１８４】
2006330566.tif 000084
【０２４６】
を計算する。但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。そして、この計算結果（Ｕ，Ｖ，Ｗ，Ｙ）をメッセージＭの暗号文として、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する（Ｓ３２０３）。
【０２４７】
２-２：ユーザ側装置２００(メッセージ受信側）の処理
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【０２４８】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）を記憶部２０３に記憶する（Ｓ２２０４）。
【０２４９】
次に、演算部２０２は、ユーザＡの個別情報ＩＤＡと、記憶部２０３に記憶されているシステムパラメータとを用いて、
【０２５０】
【数１８５】
2006330566.tif 000085
【０２５１】
なるデータ暗号化鍵Ｋ′を計算する。さらに、演算部２０２は、データ暗号化鍵Ｋ′と、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）とを用いて、
【０２５２】
【数１８６】
2006330566.tif 000086
【０２５３】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する（Ｓ２２０７）。但し、ＤＫ’（ｙ）は暗号文ｙをデータ暗号化鍵Ｋ′を用いて復号化した結果を表す。
【０２５４】
次に、演算部２０２は、数１８６の計算結果Ｒ′、Ｍ′と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０２５５】
【数１８７】
2006330566.tif 000087
【０２５６】
を計算する（Ｓ２２０８）。さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡと、システムパラメータＨ１とを用いて、
【０２５７】
【数１８８】
2006330566.tif 000088
【０２５８】
を計算する。それから、演算部２０２は、数１８７、数１８８の計算結果と、暗号文（Ｕ，Ｖ，Ｗ，Ｙ）と、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）とを用いて、
【０２５９】
【数１８９】
2006330566.tif 000089
【０２６０】
が成立するか否かを検証する（Ｓ２２０９）。検証が成立した場合、演算２０２は、Ｍ′をメッセージ文として出力部２０５から出力する（Ｓ２２１０）。一方、成立しない場合、演算部２０２は、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部２０５から出力する（Ｓ２２１１）。
【０２６１】
以上、本発明の第３実施形態について説明した。
【０２６２】
本実施形態では、上記の第１実施形態と異なり、暗号化の際にも送信者（ユーザＢ）ののプライベート鍵を用いて暗号文を作成する。送信者のプライベート鍵を知らない受信者（ユーザＢ）は、送信者になりすまして正しい暗号文を作成するこができない。このため、本実施形態によれば、上記の第１実施形態の効果に加えて、デジタル署名を用いることなく認証機能を実現することができる。
【０２６３】
また、本実施形態において、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【０２６４】
<<第４実施形態>>
本実施形態では、上記の第１実施形態で説明した暗号方法（以下、００で表す。）と、上記の第２実施形態で説明した暗号方法（以下、１０で表す。）と、上記の第３実施形態で説明した暗号方法（以下、１１で表す。）とを、目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができるようにしたものである。図８は本発明の第４実施形態の動作手順を説明するための図である。
【０２６５】
１．準備処理
１-１：鍵管理センタのセットアップ処理
１-１-１：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６を用いて、素数ｑ、位数ｑの加法群Ｇ１、位数ｑの乗法群Ｇ２、および、
【０２６６】
【数１９０】
2006330566.tif 000090
【０２６７】
なる双線形写像ｅを生成する（Ｓ１３０１）。
【０２６８】
次に、演算部１０２は、鍵情報生成部１０６を用いて、ｓ∈Ｚ＊qおよびＰ∈Ｇ１をランダムに生成する（Ｓ１３０２）。ここで、Ｚ＊q＝{１、２、...、ｑ-１}である。
【０２６９】
次に、演算部１０２は、ｓ、Ｐを用いて、
【０２７０】
【数１９１】
2006330566.tif 000091
【０２７１】
を生成する（Ｓ１３０３）。そして、ｓをマスタ鍵とし、（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）をシステムパラメータとして、両者を記憶部１０３に記憶する。但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３，Ｈ４は、
【０２７２】
【数１９２】
2006330566.tif 000092
【０２７３】
なるハッシュ関数を意味する。なお、数１９２において、{０，１}＊はユーザのＩＤ情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、ＩＤ情報に使用する情報の種類によって異なる場合がある。
【０２７４】
次に、演算部１０２は、システムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（Ｓ１３０４）。なお、出力部１０５からシステムパラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。
【０２７５】
１-１-２：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）を、記憶部２０３に記憶する（Ｓ２３０１）。ユーザ側装置Ｂでも同様の処理が行われる。
【０２７６】
１-２：ユーザのセットアップ処理
ここでは、ユーザ側装置Ａが暗号通信を行なうのに必要な情報をセットアップする場合を例にとり説明するが、ユーザ側装置Ｂでも同様の処理が行われる。
【０２７７】
１-２-１：ユーザ側装置２００の処理
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡより受け付けたユーザＡのＩＤ情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（Ｓ２３０２）。なお、ユーザＡが、郵送等によって鍵管理センタに、ＩＤ情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０２７８】
１-２-２：鍵管理センタ側装置１００の処理
鍵管理センタ側装置１００において、演算装置１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡのＩＤ情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応付けて記憶部１０３に記憶する（Ｓ１３０５）。
【０２７９】
次に、演算部１０２は、記憶部１０３に記憶されているシステムパラメータＨ１およびユーザのＩＤ情報ＩＤＡを用いて、
【０２８０】
【数１９３】
2006330566.tif 000093
【０２８１】
を計算する。さらに、この計算結果と、記憶装置１０３に記憶されているマスタ鍵ｓとを用いて、
【０２８２】
【数１９４】
2006330566.tif 000094
【０２８３】
を計算する。この計算結果を、ユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信）で送信する（Ｓ１３０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０２８４】
１-２-３：ユーザ側装置２００(メッセージ受信側）の処理
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（Ｓ２３０３）。
【０２８５】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、ユーザＡの秘密鍵ｓＡ∈Ｚｑをランダムに生成し、秘密鍵ｓＡを記憶部２０３に記憶する（Ｓ２３０４）。
【０２８６】
また、演算部２０２は、記憶部２０３にそれぞれ記憶されているユーザＡの秘密鍵ｓＡおよびシステムパラメータＰを用いて、
【０２８７】
【数１９５】
2006330566.tif 000095
【０２８８】
なる公開鍵Ｐｐｕｂ，Ａを生成する。そして、演算部２０２は、公開鍵Ｐｐｕｂ，Ａを出力部２０５から出力するか、あるいは、通信回線３００を介して通信部２０４からユーザ側装置Ｂに送信する（Ｓ２３０５）。なお、出力部２０５から公開鍵Ｐｐｕｂ，Ａが出力された場合、ユーザＡは郵送等によりユーザＢに通知する。
【０２８９】
１-２-４：ユーザ側装置２００(メッセージ送信側）の処理
ユーザ側装置Ｂにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部２０１に入力されたユーザＡの公開鍵Ｐｐｕｂ，Ａを、記憶部２０３に記憶する（Ｓ３３０１）。
【０２９０】
２．暗号通信処理
２-１：ユーザ側装置２００(メッセージ送信側）の処理
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明するが、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合でも同様の処理が行われる。
【０２９１】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍおよびメッセージ文Ｍの暗号通信に用いる暗号通信方法（上記の第１乃至第３実施形態に示す暗号通信方法のいずれか）に付与された暗号識別情報α∈{００，１０，１１}を記憶部２０３に記憶する（Ｓ３３０２）。但し、Ｍ∈{０，１}ｎとする。ここで、ｎは正整数である。
【０２９２】
次に、演算部２０２は、記憶部２０３に記憶されているシステムパラメータｑと、乱数生成部２０６とを用いて、メッセージ文Ｍに対して、ｒ∈Ｚ＊ｑおよびＲ∈{０，１}ｍをランダムに生成する。さらに、ユーザＡの個別情報ＩＤＡと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）およびユーザＢのプライベート鍵とを用いて、
【０２９３】
【数１９６】
2006330566.tif 000096
【０２９４】
を計算する。さらに、演算部２０２は、数１９６の計算結果と、記憶部２０３に記憶された暗号識別情報αとを用いて、
【０２９５】
【数１９７】
2006330566.tif 000097
【０２９６】
なるデータ暗号化鍵Ｋを計算する（Ｓ３３０４）。ここで、Ｗは後述する数１９８で定義される。
【０２９７】
次に、演算部２０２は、記憶装置２０３に記憶されているメッセージ文Ｍと、該メッセージ文Ｍに対してランダムに生成したｒ、Ｒと、記憶部２０３に記憶されているシステムパラメータ（ｑ，Ｇ１，Ｇ２，ｅ，ｍ，ｎ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｅ，Ｄ）と、データ暗号化鍵Ｋとを用いて、
【０２９８】
【数１９８】
2006330566.tif 000098
【０２９９】
を計算する。但し、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。そして、この計算結果（Ｕ，Ｖ，Ｗ，Ｙ）および暗号識別情報αをメッセージＭの暗号文として、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する（Ｓ３３０５）。
【０３００】
２-２：ユーザ側装置２００(メッセージ受信側）の処理
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文をメッセージ文に復号化する場合を例にとり説明するが、ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文をメッセージ文に復号化する場合でも同様の処理が行われる。
【０３０１】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ，α）を記憶部２０３に記憶する（Ｓ２３０６）。
【０３０２】
次に、演算部２０２は、ユーザＡの個別情報ＩＤＡと、記憶部２０３に記憶されているユーザＡのプライベート鍵およびシステムパラメータと、受信した暗号文とを用いて、
【０３０３】
【数１９９】
2006330566.tif 000099
【０３０４】
を計算する。但し、
【０３０５】
【数２００】
2006330566.tif 000100
【０３０６】
である。次に、演算部２０２は、数１９９の計算結果と、記憶部２０３に記憶されているシステムパラメータと、受信した暗号文とを用いて、
【０３０７】
【数２０１】
2006330566.tif 000101
【０３０８】
なるデータ暗号化鍵Ｋ′を計算する。さらに、演算部２０２は、データ暗号化鍵Ｋ′と、受信した暗号文とを用いて、
【０３０９】
【数２０２】
2006330566.tif 000102
【０３１０】
なるＲ′∈{０，１}ｍ、Ｍ′∈{０，１}ｎを計算する（Ｓ２３０７）。但し、ＤＫ’（ｙ）は暗号文ｙをデータ暗号化鍵Ｋ′を用いて復号化した結果を表す。
【０３１１】
次に、演算部２０２は、数２０２の計算結果Ｒ′、Ｍ′と、受信した暗号文と、記憶部２０３に記憶されているシステムパラメータとを用いて、
【０３１２】
【数２０３】
2006330566.tif 000103
【０３１３】
を計算する（Ｓ２３０８）。それから、演算部２０２は、数２０１、数２０２の計算結果と、受信した暗号文と、記憶部２０３に記憶されているシステムパラメータとを用いて、
【０３１４】
【数２０４】
2006330566.tif 000104
【０３１５】
が成立するか否かを検証する（Ｓ２３０９）。検証が成立した場合、演算２０２は、Ｍ′をメッセージ文として出力部２０５から出力する（Ｓ２３１０）。一方、成立しない場合、演算部２０２は、受信した暗号文（Ｕ，Ｖ，Ｗ，Ｙ）が不正なものであると判断し、その旨を示すエラーメッセージなどを出力部２０５から出力する（Ｓ２３１１）。
【０３１６】
以上、本発明の第４実施形態について説明した。
【０３１７】
上述したように、本実施形態によれば、上記の第１乃至第３実施形態で説明した各暗号方法を目的に応じて選択することができ、且つ、それぞれの暗号方法の安全性を保持することができる。
【０３１８】
なお、本実施形態において、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して配布した上で、上記と同様の方法により暗号通信を行うこともできる。
【０３１９】
また、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記の各実施形態では、ユーザがそれぞれのユーザ側装置２００を利用して認証および暗号通信を行うという一般的な通信システムを例にとり説明したが、本発明は、様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者はユーザであり、送信者のユーザ側装置２００はパソコンなどの計算機であり、受信者は小売店であり、受信者のユーザ側装置２００はパソコンなどの計算機となる。その他にも、従来の公開鍵暗号が使われている様々なシステムに適用することが可能である。
【０３２０】
また、上記の各実施形態での各計算は、ＣＰＵがメモリ上にロードされたプログラムを実行することにより行われるものとして説明した。しかし、プログラムだけではない。いずれかの計算を行なう装置は、ハードウエア化された演算装置であって、他の演算装置やＣＰＵとデータのやりとりを行うものでもよい。
【図面の簡単な説明】
【０３２１】
【図１】本発明の各実施形態に共通するＩＤベース暗号通信システムの構成図である。
【図２】図１に示す鍵管理センタ側装置１００の概略構成図である。
【図３】図１に示すユーザ側装置２００の概略構成図である。
【図４】鍵管理センタ側装置１００およびユーザ側装置２００のハードウエア構成例を示す図である。
【図５】本発明の第１実施形態の動作手順を説明するための図である。
【図６】本発明の第２実施形態の動作手順を説明するための図である。
【図７】本発明の第３実施形態の動作手順を説明するための図である。
【図８】本発明の第４実施形態の動作手順を説明するための図である。
【符号の説明】
【０３２２】
１００…鍵管理センタ側装置、１０１…入力部、１０２…演算部、１０３…記憶部、１０４…通信部、１０５…出力部、１０６０…鍵情報生成部、２００…ユーザ側装置、２０１…入力部、２０２…演算部、２０３…記憶部、２０４…通信部、２０５…出力部、２０６…乱数生成部、２０７…暗復号化部、３００…通信回線
【図１】
2006330566.tif 000207
【図２】
2006330566.tif 000208
【図３】
2006330566.tif 000209
【図４】
2006330566.tif 000210
【図５】
2006330566.tif 000211
【図６】
2006330566.tif 000212
【図７】
2006330566.tif 000213
【図８】
2006330566.tif 000214