(57)【要約】【課題】タイトなセキュリティ・リダクションを持ち、かつ、効率的な暗号化および復号化処理が可能なＩＤベース暗号通信技術を提供する。【解決手段】鍵管理センタは、マスタ鍵を複数保持し、それぞれに対応する複数のシステム・パラメータを作成する。そして、各ユーザからプライベート鍵の作成依頼を受けた時、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文送信者は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。【選択図】図１
2007208410.tif 000002
【特許請求の範囲】
【請求項１】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、
前記複数の秘密情報の中からランダムに選択した１の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した１の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、
前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、
前記送信者側装置は、
前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、
前記受信者側装置は、
前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えること
を特徴とするＩＤベース暗号通信システム。
【請求項２】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【数１】
2007208410.tif 000075
なる双線形写像を作成する手段と、
s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成する手段（但し、Ｚ*qはｑとの最大公約数が１である整数の集合を表す）と、
【数２】
2007208410.tif 000076
を作成し、s0,s1をマスタ鍵とし、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３）を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段（但し、Ｈ１，Ｈ２，Ｈ３は、
【数３】
2007208410.tif 000077
なるハッシュ関数を意味する。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システム・パラメータを用いて
【数４】
2007208410.tif 000078
を計算する手段と、
i∈{0,1}をランダムに選び、該マスタ鍵ｓiを用いて、
【数５】
2007208410.tif 000079
を計算する手段と、
【数６】
2007208410.tif 000080
を該ユーザＡのプライベート鍵として出力する手段と、を備え
前記送信者側装置は、
前記メッセージ文Ｍ∈{0,1}nに対して、r0,r1∈Ｚ*ｑをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３）を用いて、
【数７】
2007208410.tif 000081
を計算する手段と、
【数８】
2007208410.tif 000082
（ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。）を計算する手段と、
当該計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザＡのプライベート鍵およびシステム・パラメータを用いて、
【数９】
2007208410.tif 000083
なるr1-i∈｛０，１｝ｍ、Ｍ∈｛０，１｝ｎ（但し、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、
【数１０】
2007208410.tif 000084
なるri∈｛０，１｝ｍ、Ｍ´∈｛０，１｝ｎと、を計算する手段と、
ｒ０、ｒ１、プライベート鍵、および、システム・パラメータを用いて、
【数１１】
2007208410.tif 000085
および
【数１２】
2007208410.tif 000086
が成立するか否かを検証する手段と、
前記検証が成立した場合、Ｍをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするＩＤベース暗号通信システム。
【請求項３】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【数１３】
2007208410.tif 000087
なる双線形写像を作成する手段と、
s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成する手段（但し、Ｚ*qはｑとの最大公約数が１である整数の集合を表す）と、
【数１４】
2007208410.tif 000088
を作成し、s0,s1をマスタ鍵とし、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３は、
【数１５】
2007208410.tif 000089
なるハッシュ関数を意味する。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システム・パラメータを用いて
【数１６】
2007208410.tif 000090
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵ｓiを用いて、
【数１７】
2007208410.tif 000091
を計算する手段と、
【数１８】
2007208410.tif 000092
を該ユーザＡのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文Ｍ∈｛０，１｝ｎに対して、r0,r1∈Ｚ*ｑをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、データ暗号化鍵Ｋ０，Ｋ１として
【数１９】
2007208410.tif 000093
を計算する手段と、
前記メッセージ文Ｍと、前記ｒ０およびｒ１、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数２０】
2007208410.tif 000094
（ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、ＥＫｉ（ｘ）は平文ｘをデータ暗号化鍵Ｋｉを用いて暗号化した結果を表す。）を計算する手段と、
当該計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザＡのプライベート鍵およびシステム・パラメータを用いて、
【数２１】
2007208410.tif 000095
なる鍵Ｋｉを計算する手段と、前記暗号文を用いて
【数２２】
2007208410.tif 000096
なるr1-i∈｛０，１｝ｍ，Ｍ∈｛０，１｝ｎを計算する手段（但し、ＤＫｉ（ｙ）は暗号文ｙを鍵Ｋｉを用いて復号化した結果を表す。また、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、
ユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数２３】
2007208410.tif 000097
なる鍵Ｋ1-ｉを計算する手段と、
【数２４】
2007208410.tif 000098
なるri∈｛０，１｝ｍ，Ｍ´∈｛０，１｝ｎを計算する手段と、
ｒ０、ｒ１、プライベート鍵、および、システム・パラメータを用いて、
【数２５】
2007208410.tif 000099
および
【数２６】
2007208410.tif 000100
が成立するか否かを検証する手段と、
前記検証が成立した場合、Ｍをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするＩＤベース暗号通信システム。
【請求項４】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【数２７】
2007208410.tif 000101
なる双線形写像ｅを作成する手段と、
s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成する手段（但し、Ｚ*qはｑとの最大公約数が１である整数の集合を表す）と、
【数２８】
2007208410.tif 000102
を作成し、s0,s1をマスタ鍵とし、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３）を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段（但し、Ｈ１，Ｈ２，Ｈ３は、
【数２９】
2007208410.tif 000103
なるハッシュ関数を意味する。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システム・パラメータを用いて
【数３０】
2007208410.tif 000104
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵ｓiを用いて、
【数３１】
2007208410.tif 000105
を計算する手段と、
【数３２】
2007208410.tif 000106
を該ユーザＡのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文Ｍ∈{0,1}nに対して、r0,r1∈Ｚ*ｑをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３）を用いて、
【数３３】
2007208410.tif 000107
を計算する手段と、
【数３４】
2007208410.tif 000108
（ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。）を計算する手段と、
当該計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザＡのプライベート鍵およびシステム・パラメータを用いて、
【数３５】
2007208410.tif 000109
なるｇｉを計算する手段と、
前記ｇｉを用いて
【数３６】
2007208410.tif 000110
なるr０,ｒ１∈｛０，１｝ｍ、Ｍ∈｛０，１｝ｎ（但し、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、
【数３７】
2007208410.tif 000111
なるr'０,ｒ'１∈｛０，１｝ｍ、Ｍ∈｛０，１｝ｎ（但し、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、を計算する手段と、
Ｍ、Ｍ’、ｒ０、ｒ１、プライベート鍵、および、システム・パラメータを用いて、
【数３８】
2007208410.tif 000112
および
【数３９】
2007208410.tif 000113
が成立するか否かを検証する手段と、
前記検証が成立した場合、Ｍをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするＩＤベース暗号通信システム。
【請求項５】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【数４０】
2007208410.tif 000114
なる双線形写像ｅを作成する手段と、
s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成する手段（但し、Ｚ*qはｑとの最大公約数が１である整数の集合を表す）と、
【数４１】
2007208410.tif 000115
を作成し、s0,s1をマスタ鍵とし、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力するステップ（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３は、
【数４２】
2007208410.tif 000116
なるハッシュ関数を意味する。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システム・パラメータを用いて
【数４３】
2007208410.tif 000117
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵ｓiを用いて、
【数４４】
2007208410.tif 000118
を計算する手段と、
【数４５】
2007208410.tif 000119
該ユーザＡのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文Ｍ∈｛０，１｝ｎに対して、r0,r1∈Ｚ*ｑをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、データ暗号化鍵Ｋ０，Ｋ１として
【数４６】
2007208410.tif 000120
を計算する手段と、
前記メッセージ文Ｍと、前記ｒ０およびｒ１、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数４７】
2007208410.tif 000121
（ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、ＥＫｉ（ｘ）は平文ｘをデータ暗号化鍵Ｋｉを用いて暗号化した結果を表す。）を計算する手段と、
当該計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を暗号文として前記受信者側装置に送信する手段と、を備え、
前記受信者側装置が、
前記送信者側装置が送信した暗号文（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザＡのプライベート鍵およびシステム・パラメータを用いて、
【数４８】
2007208410.tif 000122
なるｇｉを計算する手段と、
前記ｇｉを用いて、
【数４９】
2007208410.tif 000123
なる鍵Ｋｉとを計算する手段と、
前記暗号文を用いて
【数５０】
2007208410.tif 000124
なるr０,ｒ１∈｛０，１｝ｍ，Ｍ∈｛０，１｝ｎを計算する手段（但し、ＤＫｉ（ｙ）は暗号文ｙを鍵Ｋｉを用いて復号した結果を表す。また、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数５１】
2007208410.tif 000125
なる鍵Ｋ1-ｉを計算する手段と、
【数５２】
2007208410.tif 000126
なるr'０,ｒ'１∈｛０，１｝ｍ，Ｍ∈｛０，１｝ｎを計算する手段と、
ｒ０、ｒ１、ｒ'０、ｒ'１、および、システム・パラメータを用いて、
【数５３】
2007208410.tif 000127
および
【数５４】
2007208410.tif 000128
が成立するか否かを検証する手段と、
前記検証が成立した場合、Ｍをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を備えること
を特徴とするＩＤベース暗号通信システム。
【請求項６】
鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が前記鍵管理センタ側装置により作成されたシステム・パラメータおよび公開されている受信者の識別情報を用いてメッセージ文Ｍの暗号文を作成し、前記受信者側装置が前記鍵管理センタ側装置により作成された前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文Ｍに復号するＩＤベース暗号通信システムであって、
前記鍵管理センタ側装置は、
素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【数５５】
2007208410.tif 000129
なる双線形写像ｅを作成する手段と、
s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成する手段（但し、Ｚ*qはｑとの最大公約数が１である整数の集合を表す）と、
【数５６】
2007208410.tif 000130
を作成し、s0,s1をマスタ鍵とし、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を前記システム・パラメータとして、前記マスタ鍵および前記システム・パラメータを記憶すると共に、前記システム・パラメータを出力する手段（但し、（Ｅ，Ｄ）は共通鍵暗号を表し、Ｈ１，Ｈ２，Ｈ３は、
【数５７】
2007208410.tif 000131
なるハッシュ関数を意味する。）と、
前記受信者側装置のユーザＡの個別情報ＩＤＡを登録する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡおよび前記システム・パラメータを用いて
【数５８】
2007208410.tif 000132
を計算する手段と、
i∈{0,1}をランダムに生成し、該マスタ鍵ｓiを用いて、
【数５９】
2007208410.tif 000133
を計算する手段と、
【数６０】
2007208410.tif 000134
該ユーザＡのプライベート鍵として出力する手段と、を備え、
前記送信者側装置は、
前記メッセージ文Ｍ∈｛０，１｝ｎに対して、Ｒ∈｛０，１｝ｍをランダムに生成する手段と、
前記受信者側装置のユーザＡの個別情報ＩＤＡ、および、前記鍵管理センタ側装置から出力された前記システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0,Ｐpub,1,Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、
【数６１】
2007208410.tif 000135
なるｇと
【数６２】
2007208410.tif 000136
なるｒ０、ｒ１、データ暗号化鍵Ｋを計算する手段と、
前記メッセージ文Ｍと、前記ｒ０およびｒ１、Ｒと、前記鍵管理センタ側から出力された前記システム・パラメータと、を用いて、
【数６３】
2007208410.tif 000137
（ここで、‖は結合を表し、丸に十字の記号は排他的論理和を表す。また、ＥＫｉ（ｘ）は平文ｘをデータ暗号化鍵Ｋｉを用いて暗号化した結果を表す。）を計算する手段と、
当該計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を暗号文として前記受信者側装置に送信する手段と、を行い、
前記受信者側装置は、
前記送信者側装置が送信した暗号文（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を受信する手段と、
前記受信した暗号文に対して、前記鍵管理センタ側装置により出力された前記受信者側装置のユーザＡのプライベート鍵およびシステム・パラメータを用いて、
【数６４】
2007208410.tif 000138
なるｇｉと、
【数６５】
2007208410.tif 000139
なるＲと、
前記Ｒを用いて
【数６６】
2007208410.tif 000140
なるr０,ｒ１、Ｋを計算する手段（但し、すべてのＺ*ｑの元はｍビット列で表されるものとする。）と、
【数６７】
2007208410.tif 000141
なるＲ'∈｛０，１｝ｍを計算する手段と、
前記鍵管理センタ側装置から出力された前記システム・パラメータを用いて、
【数６８】
2007208410.tif 000142
および
【数６９】
2007208410.tif 000143
が成立するか否かを検証する手段と、
前記検証が成立した場合、Ｍをメッセージ文として出力し、検証が不成立の場合、メッセージ文の出力を拒否する手段と、を行うこと
を特徴とするＩＤベース暗号通信システム。
【請求項７】
請求項６記載のＩＤベース暗号通信システムであって、
前記送信者側装置は、前記共通鍵暗号を表す（Ｅ、Ｄ）として、前記メッセージ文Ｍから、
【数７０】
2007208410.tif 000144
を計算することにより暗号文Ｃを生成し（ただし、Ｈ４は、
【数７１】
2007208410.tif 000145
なるハッシュ関数を意味し、システム・パラメータの一部として公開される。）、
前記受信者側装置は、暗号文Ｃ（Ｃ＝ｙ０‖ｙ１（ｙ０＝{0,1}ｎ、ｙ１＝{0,1}ｌ））に対して、
【数７２】
2007208410.tif 000146
を計算することにより暗号文の復号を行うこと
を特徴とするＩＤベース暗号通信システム。
【請求項８】
請求項２から７いずれか１項記載のＩＤベース暗号通信システムであって、
前記送信者側装置は、前記暗号文の一部であるＷを算出する際の入力値を当該ＩＤベース暗号通信システムにおいて利用される別のパラメータに変更し、前記暗号文の作成を行い、
前記受信者側装置は、前記入力値を前記別のパラメータに変更し、前記暗号文の復号を行うこと
を特徴とするＩＤベース暗号通信システム
【請求項９】
請求項１から８いずれか１項記載のＩＤベース暗号通信システムであって、
鍵管理センタ側装置は、暗号通信を行うに先立ち、ハードウエア的に安全なデバイスによって作成され、各ユーザに対して該デバイスを各々配布すること
を特徴とするＩＤベース暗号通信システム。
【請求項１０】
請求項１から９いずれか１項記載のＩＤベース暗号通信システムで用いられる鍵管理センタ側装置。
【請求項１１】
請求項１から９いずれか１項記載のＩＤベース暗号通信システムで用いられる送信者側装置。
【請求項１２】
請求項１から９いずれか１項記載のＩＤベース暗号通信システムで用いられる受信者側装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの所属・名前やメールアドレス等の個人を特定できるＩＤ情報を利用して暗号通信を行うＩＤベース暗号通信システムに関する。
【背景技術】
【０００２】
公開鍵暗号システムにおいては、ユーザが作成した公開鍵を認証局（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ）に登録し、証明書を発行してもらう必要がある。すなわち、暗号文の送信者は受信者の公開鍵とその正当性の根拠である公開鍵証明書とを手に入れ、その公開鍵証明書により公開鍵の正当性を確認したうえで、送信するメッセージ文の暗号化を行う必要がある。
【０００３】
これに対して、ＣＡによる公開鍵証明書の発行の手間を省いて、より簡単に公開鍵の管理を行うことを目的として、ユーザのＩＤ情報を公開鍵とする暗号システム（以下、ＩＤベース暗号システムと呼ぶ）が提案されている。ＩＤベース暗号システムでは、暗号通信、認証（ディジタル署名、個人認証、等）を目的として用途に応じたアルゴリズムが用いられる。例えば、暗号通信の場合、ユーザは、自身のＩＤ情報を公開鍵として鍵管理センタに登録し、鍵管理センタに当該鍵管理センタが保有するマスタ鍵を用いて、当該ＩＤ情報に対応するプライベート鍵を発行してもらう。また、鍵管理センタは、マスタ鍵と対のシステム・パラメータを作成して公開する。暗号文の送信者は、受信者のＩＤ情報と鍵管理センタのシステム・パラメータを用いて暗号文を作成し、受信者に送信する。受信者は、プライベート鍵を用いてメッセージの復号化を行う。
【０００４】
公開鍵暗号システムでは、受信者の公開鍵はランダムなビット列であるのに対して、ＩＤベース暗号システムでは、メールアドレス等の個人情報である。このため、取り扱いが容易で公開鍵証明書を不要とすることができる。これまでに多くのＩＤベース暗号システムが提案されている。例えば、ゼロ知識証明を利用したＩＤベースのディジタル署名を実現するＩＤベース暗号システムが提案されている。また、双線形写像を利用することで、安全性の証明が可能なＩＤベース暗号システムが提案されている。そして、こＩＤベース暗号システムをベースとしたディジタル署名方法および署名機能付き暗号通信方法が提案されている。また、ＩＤベース暗号システムのインフラストラクチャにおいて、公開鍵証明書を不要にすることができる公開鍵暗号が提案されている。また、ＩＤベース暗号システムのインフラストラクチャにおいて、否認可能な認証機能を持った暗号方法が提案されている。
【０００５】
さらに、署名方式において、タイトなセキュリティ・リダクションを持つためのアイデアが提案されている（例えば、非特許文献１参照。）。そして、同アイデアを適用することで、タイトなセキュリティ・リダクションを持つＩＤベース暗号システムが提案されている（例えば、非特許文献２参照。）。
【０００６】
ここで、セキュリティ・リダクションとは、暗号方式の安全性を証明する場合において、安全性の根拠（暗号学的仮定）とする数論問題（例えば、素因数分解問題、離散対数問題、Diffie-Hellman問題、等）の計算量的困難性と暗号方式の安全性との関係を示す一つのパラメータである。セキュリティ・リダクションがタイトであることは、当該暗号方式の安全性が暗号学的仮定とする数論問題の計算量的困難性に近いことを意味する。このことは、セキュリティ・リダクションの悪い（タイトでない）暗号方式と比較した場合、セキュリティ・リダクションがタイトな暗号方式は、より高い安全性を有することを意味し、一定の安全性を得るために必要な鍵長を短く設定できるメリットを有する。
【０００７】
【非特許文献１】J. Katz, N. Wang, “Efficiency Improvements for Signature Schemes with Tight Security Reductions”, 〔平成１７年１２月１３日検索〕  インターネット <URL; http://www.cs.umd.edu/~jkatz/>
【非特許文献２】N. Attrapadung, J. Furukawa, T. Gomi, G. Hanaoka, H. Imai, R. Zhang, “Identity-Based Encryption Schemes with Tight Security Reductions”, 〔平成１７年１２月１３日検索〕  インターネット <URL; http://eprint.iacr.org/2005/320.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非特許文献１において提案されているアイデアに基づいてタイトなセキュリティ・リダクションを持つＩＤベース暗号システムを実現した非特許文献２に記載の方式は、双線形写像を利用することで、安全性の証明が可能なＩＤベース暗号システムに比べて、暗号化・復号化処理において、約２倍の計算量が必要となり、計算処理の効率が悪い。これは、非特許文献２に記載の方式では、計算処理量の多いペアリングを用いた双線形写像の計算を、暗号化および復号化の各処理において、それぞれ２回行う必要があるためである。従って、本方式を同報暗号通信などのＩＤベース暗号を用いた暗号通信（ＩＤベース暗号通信）に適用する場合、高速な処理を行うためには、ハードウエアの負担が大きくなり、実装が難しくなる。
【０００９】
本発明は、上記事情に鑑みてなされたもので、タイトなセキュリティ・リダクションを持ち、かつ、効率的な暗号化および復号化処理が可能なＩＤベース暗号通信技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、鍵管理センタは、秘密情報（マスタ鍵）を複数保持する。また、鍵管理センタは、複数の秘密情報に対応する複数の公開情報（システム・パラメータ）を作成する。そして、鍵管理センタは、各ユーザからプライベート鍵（復号化鍵）の作成の依頼を受けた時、依頼元のユーザ以外に対しては、いずれの秘密情報を用いて作成したのかを秘密にしてプライベート鍵を作成する。暗号文の送信者側装置は、受信者がいずれの秘密情報によって作成されたプライベート鍵を持っていても復号できるように暗号文を作成する。暗号文の受信者側装置は、鍵管理センタから受け取ったプライベート鍵を用いて暗号文を復号する。
【００１１】
具体的には、鍵管理センタ側装置と、送信者側装置と、受信者側装置とを備え、前記送信者側装置が公開されている受信者の識別情報を用いてメッセージ文の暗号文を作成し、前記受信者側装置が前記識別情報に対応するプライベート鍵を用いて前記暗号文を前記メッセージ文に復号するＩＤベース暗号通信システムであって、前記鍵管理センタ側装置は、予め保持する複数の秘密情報それぞれに対応する公開情報を生成して公開する公開情報生成手段と、前記複数の秘密情報の中からランダムに選択した１の秘密情報を用いて前記受信者の識別情報に対応する鍵を作成し、当該鍵と当該鍵の作成に用いた前記選択した１の秘密情報との組をプライベート鍵として生成するプライベート鍵生成手段と、前記生成したプライベート鍵を受信者側装置に通知する鍵配布手段と、を備え、前記送信者側装置は、前記受信者の識別情報および前記公開情報を用いて前記メッセージ文の暗号文を作成し、受信者側装置に送信する暗号文作成手段を備え、前記受信者側装置は、前記プライベート鍵を受け取り、当該プライベート鍵を用いて前記暗号文を復号する復号手段と、を備えることを特徴とするＩＤベース暗号通信システムを提供する。
【発明の効果】
【００１２】
本発明の暗号システムによれば、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施の形態について説明する。
【００１４】
まず、以下の各実施形態に共通するＩＤベース暗号通信システムの構成を説明する。
【００１５】
図１は、本発明の各実施形態に共通するＩＤベース暗号通信システムの概略構成図である。本図に示すように、ＩＤベース暗号通信システムは、鍵管理センタ側装置１００と、複数のユーザ側通信装置２００とが、通信回線３００を介して接続された構成を備える。
【００１６】
図２は、図１に示す鍵管理センタ側装置１００の概略構成図である。本図に示すように、鍵管理センタ側装置１００は、情報を入力する入力部１０１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算および鍵管理センタ側装置１００の各部の制御を行う演算部１０２と、記憶部１０３と、通信回線３００とを介してユーザ側装置２００と通信を行う通信部１０４と、情報を出力する出力部１０５と、を備える。また、演算部１０２は、鍵管理センタのマスタ鍵（秘密情報）およびシステム・パラメータ（公開情報）を作成する鍵情情報作成部１０６を備える。
【００１７】
図３は、図１に示すユーザ側装置２００の概略構成図である。本図に示すように、ユーザ側装置２００は、情報を入力する入力部２０１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算およびユーザ側装置２００の各部の制御を行う演算部２０２と、記憶部２０３と、通信回線３００を介して鍵管理センタ側装置１００および他のユーザ側装置２００と通信を行う通信部２０４と、情報を出力する出力部２０５と、を備えている。また、演算部２０２は、乱数を生成する乱数生成部２０６と、関数計算を行う関数計算部２０７と、暗復号化処理を行う暗復号化部２０８と、メッセージ文の正当性を検査する検査部２０９と、を備える。例えば、双線形写像ｅによる計算およびハッシュ関数による計算は関数計算部２０７によって行われる。
【００１８】
上記構成の鍵管理センタ側装置１００およびユーザ側装置２００は、図４に示すような、ＣＰＵ４０１と、メモリ４０２と、ＨＤＤ等の外部記憶装置４０３と、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの可搬性を有する記憶媒体４０９から情報を読み出す読取装置４０４と、キーボードやマウスなどの入力装置４０５と、ディスプレイなどの出力装置４０６と、通信回線３００を介して相手装置と通信を行うための通信装置４０７と、これらの各装置４０１〜４０７を接続するバス４０８と、を備えた一般的なコンピュータにおいて、ＣＰＵ４０１がメモリ４０２上にロードされた所定のプログラムを実行することにより実現することができる。この場合、メモリ４０２や外部記憶装置４０３が記憶部１０３、２０３に利用され、通信装置４０８が通信部１０４、２０４に利用され、読取装置４０４や入力装置４０５が入力部１０１、２０１に利用され、そして、出力装置４０６が出力部１０５、２０５に利用される。
【００１９】
上記所定のプログラムは、読取装置４０４を介して記憶媒体４０９から、あるいは、通信装置４０７を介して通信回線３００から、外部記憶装置４０３にダウンロードされ、それから、メモリ４０２上にロードされてＣＰＵ４０１により実行されるよう構成してもよい。
【００２０】
＜＜第１の実施形態＞＞
次に、本実施形態発明の第１の実施形態について説明する。本実施形態では、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ。）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ。）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ等の個別情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図５は、本実施形態の動作手順を説明するための図である。
【００２１】
１．準備処理
１−１：鍵センタのセットアップ処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６に、素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【００２２】
【数７３】
2007208410.tif 000003
【００２３】
なる双線形写像ｅを生成させる（ステップ１００１）。
【００２４】
次に、演算部１０２は、鍵情報生成部１０６に、s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成させる（ステップ１００２）。ここで、Ｚ*qは、ｑとの最大公約数が１（すなわち、ｑと互いに素）である整数の集合である。そして、演算部１０２は、s0、s1、Ｐを用いて、
【００２５】
【数７４】
2007208410.tif 000004
【００２６】
を生成する（ステップ１００３）。
【００２７】
鍵管理センタは、s0、s1をマスタ鍵として、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）をシステム・パラメータとして、両者を記憶部１０３に記憶する。但し、ｍ，ｎ，ｌは正整数を表し、Ｈ１，Ｈ２，Ｈ３は、
【００２８】
【数７５】
2007208410.tif 000005
【００２９】
なるハッシュ関数を意味する。ここで、{０、１}*は、ユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【００３０】
次に、演算部１０２は、システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（ステップ１００４）。なお、出力部１０５からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【００３１】
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を、記憶部２０３に記憶する（ステップ２００１）。ユーザ側装置Ｂにおいても、同様の処理が行われる（ステップ３００１）。
【００３２】
１−２：プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Ａからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Ｂからの要求においても同様の処理が行われる。
【００３３】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡから受け付けたユーザＡのＩＤ等の個別情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（ステップ２００２）。なお、ユーザＡが郵送等によって鍵管理センタに個別情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【００３４】
鍵管理センタ側装置１００において、演算部１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡの個別情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応づけて記憶部１０３に記憶する（ステップ１００５）。
【００３５】
次に、演算部１０２は、鍵情報生成部１０６に記憶部１０３に記憶されているシステム・パラメータ内のＨ１およびユーザの個別情報ＩＤＡを用いて、
【００３６】
【数７６】
2007208410.tif 000006
【００３７】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部１０３内にあるマスタ鍵ｓiを用いて、
【００３８】
【数７７】
2007208410.tif 000007
【００３９】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【００４０】
【数７８】
2007208410.tif 000008
【００４１】
をユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば、鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信など）で送信する（ステップ１００６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【００４２】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（ステップ２００３）。
【００４３】
２．暗号化処理
次に、ユーザ側装置２００がメッセージ文Ｍを暗号化して暗号文Ｃを生成する場合の処理について説明する。
【００４４】
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明する。ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合も同様の処理が行われる。
【００４５】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（ステップ３００２）。ただし、Ｍ∈{0,1}ｎとする。ここでは、ｎは正整数である。そして、公開されているユーザＡの個別情報ＩＤＡを取得する（ステップ３００３）。
【００４６】
次に、演算部２０２は、記憶部２０３に記憶されているシステム・パラメータの中のｑを用いて、乱数生成部２０６にメッセージ文Ｍに対するr0,r1∈Ｚ*ｑをランダムに生成させる（ステップ３００４）。ここで、すべてのＺ*ｑの元はｍビット列で表されるものとする。
【００４７】
さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を用いて、関数計算部２０７に
【００４８】
【数７９】
2007208410.tif 000009
【００４９】
を計算させ、さらに、演算部２０２は、暗復号化部２０８に
【００５０】
【数８０】
2007208410.tif 000010
【００５１】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【００５２】
そして、ユーザ側装置Ａは、この計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を、メッセージＭの暗号文Ｃとして、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する(ステップ３００５）。このとき、出力部２０８を用いて出力してもよい。出力部２０８から出力した場合、郵送等によりユーザ側装置Ａに配送する。
【００５３】
３．復号化処理
次に、ユーザ側装置２００が受け取ったメッセージＭの暗号文Ｃを復号する場合の処理を説明する。
【００５４】
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文Ｃをメッセージ文Ｍに復号する場合を例にとり説明する。ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文Ｃをメッセージ文Ｍに復号する場合も同様の処理が行われる。
【００５５】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を記憶部２０３に記憶する（ステップ２００４）。
【００５６】
次に、演算部２０２は、受信した暗号文Ｃに対して、記憶部２０３に記憶されているユーザＡのプライベート鍵を用いて、関数計算部２０７および暗復号化部２０８に、
【００５７】
【数８１】
2007208410.tif 000011
【００５８】
なるr1-i∈｛０，１｝ｍ、Ｍ∈｛０，１｝ｎを計算させる（ステップ２００５）。さらに、
【００５９】
【数８２】
2007208410.tif 000012
【００６０】
なるri∈｛０，１｝ｍ、Ｍ'∈｛０，１｝ｎを計算させる（ステップ２００６）。
【００６１】
そして、検査部２０９に、
【００６２】
【数８３】
2007208410.tif 000013
【００６３】
および
【００６４】
【数８４】
2007208410.tif 000014
【００６５】
が成立するか否かを検証させる(ステップ２００７）。検証が成立した場合、演算部２０２は、Ｍをメッセージ文として出力部２０５から出力する（ステップ２００８）。一方、成立しない場合、演算部２０２は、受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部２０５から出力し（ステップ２００９）、暗号文Ｃは棄却する。
【００６６】
以上、本発明の第１の実施形態について説明した。
【００６７】
本実施形態のＩＤベース暗号通信方法は、非特許文献２に記載の手法と同様の手法により、Bilinear Diffie-Hellman（ＢＤＨ）問題の計算量的困難性を暗号学的仮定として、ＩＮＤ−ＩＤ−ＣＣＡの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のＩＤベース暗号通信方法は、非特許文献２に記載の方法に比べ、計算量の大きい双線形写像ｅの計算が削減されているため、効率的な処理が可能となる。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【００６８】
なお、本実施形態のＩＤベース暗号通信方法において、暗号文Ｃの一部であるＷを計算する際のハッシュ関数Ｈ３への入力値を本方式において利用される別のパラメータ（システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部）に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【００６９】
また、本実施形態において鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【００７０】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【００７１】
＜＜第２の実施形態＞＞
次に、本発明の第２の実施形態について説明する。本実施形態は、第１の実施形態のＩＤベース暗号通信方法の変形例で、第一の実施形態のＩＤベース暗号通信方法をより一般的な共通鍵暗号のアルゴリズムを用いて実現するものである。
【００７２】
本実施形態でも、第一の実施形態と同様に、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ。）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ。）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ等の個別情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図６は、本実施形態の動作手順を説明するための図である。
【００７３】
１．準備処理
１−１：鍵管理センタのセットアップ
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６に、素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【００７４】
【数８５】
2007208410.tif 000015
【００７５】
なる双線形写像ｅを生成させる（ステップ１１０１）。
【００７６】
次に、演算部１０２は、鍵情報生成部１０６に、s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成させる(ステップ１１０２)。そして、演算部１０２は、s0、s1、Ｐを用いて、
【００７７】
【数８６】
2007208410.tif 000016
【００７８】
を生成する（ステップ１１０３）。
【００７９】
鍵管理センタは、s0,s1をマスタ鍵として、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）をシステム・パラメータとして、両者を記憶部１０３に記憶する。但し、ｍ，ｎ，ｌは正整数を表し、（Ｅ，Ｄ）は共通鍵暗号を表す。また、Ｈ１，Ｈ２，Ｈ３は、
【００８０】
【数８７】
2007208410.tif 000017
【００８１】
なるハッシュ関数を意味する。ここで、{０、１}*は、ユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【００８２】
次に、演算部１０２は、システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（ステップ１１０４）。なお、出力部１０５からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【００８３】
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を、記憶部２０３に記憶する（ステップ２１０１）。ユーザ側装置Ｂにおいても、同様の処理が行われる（ステップ３１０１）。
【００８４】
１−２：プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Ａからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Ｂからの要求においても同様の処理が行われる。
【００８５】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡから受け付けたユーザＡのＩＤ等の個別情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ１００に送信する（ステップ２１０２）。なお、ユーザＡが郵送等によって鍵管理センタに個別情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【００８６】
鍵管理センタ側装置１００において、演算部１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡの個別情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応づけて記憶部１０３に記憶する（ステップ１１０５）。
【００８７】
次に、演算部１０２は、鍵情報生成部１０６に記憶部１０３に記憶されているシステム・パラメータ内のＨ１およびユーザの個別情報ＩＤＡを用いて、
【００８８】
【数８８】
2007208410.tif 000018
【００８９】
を計算する。さらに、i∈{0,1}をランダムに生成し，記憶部１０３内にあるマスタ鍵ｓiを用いて、
【００９０】
【数８９】
2007208410.tif 000019
【００９１】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【００９２】
【数９０】
2007208410.tif 000020
【００９３】
をユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば、鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信など）で送信する（ステップ１１０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【００９４】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（ステップ２１０３）。
【００９５】
２．暗号化処理
次に、ユーザ側装置２００がメッセージ文Ｍを暗号化して暗号文Ｃを生成する場合の処理について説明する。
【００９６】
ここでは、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合を例にとり説明する。ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合も同様の処理が行われる。
【００９７】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（ステップ３１０２）。ただし、Ｍ∈{0,1}ｎとする。ここでは、ｎは正整数である。そして、公開されているユーザＡの個別情報ＩＤＡを取得する（ステップ３１０３）。
【００９８】
次に、演算部２０２は、記憶部２０３に記憶されているシステム・パラメータの中のｑを用いて、乱数生成部２０６にメッセージ文Ｍに対するr0,r1∈Ｚ*ｑをランダムに生成させる（ステップ３１０４）。ここで、すべてのＺ*ｑの元はｍビット列で表されるものとする。
【００９９】
さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、関数計算部２０７にデータ暗号化鍵Ｋ０，Ｋ１を、
【０１００】
【数９１】
2007208410.tif 000021
【０１０１】
によって計算させ、さらに、演算部２０２は、暗号復号化装置２０８に、
【０１０２】
【数９２】
2007208410.tif 000022
【０１０３】
を計算させる（ステップ３１０５）。ただし、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。
【０１０４】
そして、ユーザ側装置Ｂは、この計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を、メッセージＭの暗号文Ｃとして、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する(ステップ３１０６）。このとき、出力部２０８を用いて出力してもよい。出力部２０８から出力した場合、郵送等によりユーザ側装置Ａに配送する。
【０１０５】
３．復号化処理
次に、ユーザ側装置２００が受け取ったメッセージＭの暗号文Ｃを復号する場合の処理を説明する。
【０１０６】
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文Ｃをメッセージ文Ｍに復号する場合を例にとり説明する。ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文Ｃをメッセージ文Ｍに復号する場合も同様の処理が行われる。
【０１０７】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文ＣユーザＡから送られた暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を記憶部２０３に記憶する（ステップ２１０４）。
【０１０８】
次に、演算部２０２は、受信した暗号文Ｃに対して、記憶部２０３に記憶されているユーザＢのプライベート鍵とシステム・パラメータとを用いて、関数演算部２０７および暗復号化部２０８に、
【０１０９】
【数９３】
2007208410.tif 000023
【０１１０】
なる鍵Ｋｉと、
【０１１１】
【数９４】
2007208410.tif 000024
【０１１２】
なるr1-i∈｛０，１｝ｍ，Ｍ∈｛０，１｝ｎと、を計算させる（ステップ２１０５）。但し、ＤＫｉ（ｙ）は暗号文ｙを鍵Ｋｉを用いて復号した結果を表す。また，すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０１１３】
さらに、演算部２０２は、同様に、関数演算部２０７および暗復号化部２０８に、
【０１１４】
【数９５】
2007208410.tif 000025
【０１１５】
なるデータ暗号化鍵Ｋ1-ｉと、
【０１１６】
【数９６】
2007208410.tif 000026
【０１１７】
なるri∈｛０，１｝ｍ，Ｍ'∈｛０，１｝ｎと、を計算させる（ステップ２１０６）。
【０１１８】
そして、検査部２０９に、
【０１１９】
【数９７】
2007208410.tif 000027
【０１２０】
および
【０１２１】
【数９８】
2007208410.tif 000028
【０１２２】
が成立するか否かを検証させる（ステップ２１０７）。検証が成立した場合、演算部２０２は、Ｍ’をメッセージ文Ｍとして出力部２０５から出力する（ステップ２１０８）。一方、成立しない場合、演算部２０２は、受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部２０５から出力し（ステップ２１０９）、暗号文Ｃは棄却する。
【０１２３】
以上、本発明の第２の実施形態について説明した。
【０１２４】
本実施形態においても、第１の実施形態同様、計算量の大きい双線形写像ｅの計算回数を低減することができ、計算量が少なく、効率の良い暗号化・復号化処理を実現することができる。
【０１２５】
本実施形態においても、第１の実施形態と同様に、暗号文Ｃの一部であるＷを計算する際のハッシュ関数Ｈ３への入力値を本方式において利用される別のパラメータ（システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部）に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【０１２６】
また、本実施形態においても、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【０１２７】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【０１２８】
＜＜第３の実施形態＞＞
次に、本発明の第３の実施形態について説明する。本実施形態は、第１の実施形態のＩＤベース暗号通信方法の変形例である。本実施形態は、第１の実施形態に比べ、計算量の大きい双線形写像ｅの計算回数をさらに削減したものである。
【０１２９】
本実施形態でも、第１の実施形態と同様に、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ。）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ。）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ等の個別情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図７は、本実施形態の動作手順を説明するための図である。
【０１３０】
１．準備処理
１−１：鍵センタのセットアップ処理
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６に、素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【０１３１】
【数９９】
2007208410.tif 000029
【０１３２】
なる双線形写像ｅを生成させる（ステップ１２０１）。
【０１３３】
次に、演算部１０２は、鍵情報生成部１０６に、s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成させる（ステップ１２０２）。そして、演算部１０２は、s0、s1、Ｐを用いて、
【０１３４】
【数１００】
2007208410.tif 000030
【０１３５】
を生成する（ステップ１２０３）。
【０１３６】
鍵管理センタは、s0、s1をマスタ鍵として、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）をシステム・パラメータとして、両者を記憶部１０３に記憶する。但し、ｍ，ｎ，ｌは正整数を表し、Ｈ１，Ｈ２，Ｈ３は、
【０１３７】
【数１０１】
2007208410.tif 000031
【０１３８】
なるハッシュ関数を意味する。なお、ここで、{０、１}*は、ユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【０１３９】
次に、演算部１０２は、システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（ステップ１２０４）。なお、出力部１０５からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【０１４０】
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を、記憶部２０３に記憶する（ステップ２２０１）。ユーザ側装置Ｂにおいても、同様の処理が行われる（ステップ３２０１）。
【０１４１】
１−２：プライベート鍵の生成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Ａからのプライベート鍵を生成する要求による処理を例にあげて説明するが、ユーザ側装置Ｂからの要求においても同様の処理が行われる。
【０１４２】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡから受け付けたユーザＡのＩＤ等の個別情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ側装置１００に送信する（ステップ２２０２）。なお、ユーザＡが郵送等によって鍵管理センタに個別情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０１４３】
鍵管理センタ側装置１００において、演算部１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡの個別情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応づけて記憶部１０３に記憶する（ステップ１２０５）。
【０１４４】
次に、演算部１０２は、鍵情報生成部１０６に記憶部１０３に記憶されているシステム・パラメータ内のＨ１およびユーザの個別情報ＩＤＡを用いて、
【０１４５】
【数１０２】
2007208410.tif 000032
【０１４６】
を計算する。さらに、i∈{0,1}をランダムに生成し、記憶部１０３内にあるマスタ鍵ｓiを用いて、
【０１４７】
【数１０３】
2007208410.tif 000033
【０１４８】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【０１４９】
【数１０４】
2007208410.tif 000034
【０１５０】
をユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば、鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信など）で送信する（ステップ１２０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０１５１】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（ステップ２２０３）。
【０１５２】
２．暗号化処理
次に、ユーザ側装置２００がメッセージ文Ｍを暗号化して暗号文Ｃを生成する場合の処理について説明する。
【０１５３】
ここでは、ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合を例にとり説明する。ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合も同様の処理が行われる。
【０１５４】
ユーザ側装置Ｂにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（ステップ３２０２）。ただし、Ｍ∈{0,1}ｎとする。ここでは、ｎは正整数である。そして、公開されているユーザＡの個別情報ＩＤＡを取得する（ステップ３２０３）。
【０１５５】
次に、演算部２０２は、記憶部２０３に記憶されているシステム・パラメータの中のｑを用いて、乱数生成部２０６にメッセージ文Ｍに対するr0,r1∈Ｚ*ｑをランダムに生成させる（ステップ３２０４）。ここで、すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０１５６】
さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３）を用いて、関数計算部２０７に
【０１５７】
【数１０５】
2007208410.tif 000035
【０１５８】
を計算させ、さらに、演算部２０２は、暗復号化部２０８に
【０１５９】
【数１０６】
2007208410.tif 000036
【０１６０】
を計算させる。ここで、‖は、結合を表し、丸に十字の記号は排他的論理和を表す。
【０１６１】
そして、ユーザ側装置Ａは、この計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を、メッセージＭの暗号文Ｃとして、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する(ステップ３２０５）。このとき、出力部２０８を用いて出力してもよい。出力部２０８から出力した場合、郵送等によりユーザ側装置Ａに配送する。
【０１６２】
３．復号化処理
次に、ユーザ側装置２００が受け取ったメッセージＭの暗号文Ｃを復号する場合の処理を説明する。
【０１６３】
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文Ｃをメッセージ文Ｍに復号する場合を例にとり説明する。ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文Ｃをメッセージ文Ｍに復号する場合も同様の処理が行われる。
【０１６４】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を記憶部２０３に記憶する（ステップ２２０４）。
【０１６５】
次に、演算部２０２は、受信した暗号文Ｃに対して、記憶部２０３に記憶されているユーザＡのプライベート鍵を用いて、関数計算部２０７および暗復号化部２０８に、
【０１６６】
【数１０７】
2007208410.tif 000037
【０１６７】
なるｇｉを計算させる（ステップ２２０５）。
【０１６８】
演算部２０２は、さらに、関数演算部２０７および暗復号化部２０８に、
【０１６９】
【数１０８】
2007208410.tif 000038
【０１７０】
なるr0,r1∈｛０，１｝ｍ、Ｍ∈｛０，１｝ｎと（ステップ２２０６）、
【０１７１】
【数１０９】
2007208410.tif 000039
【０１７２】
なるr'0,r'1∈｛０，１｝ｍ，Ｍ'∈｛０，１｝ｎと、を計算させる（ステップ２２０７）。
【０１７３】
そして、検査部２０９に、
【０１７４】
【数１１０】
2007208410.tif 000040
【０１７５】
および
【０１７６】
【数１１１】
2007208410.tif 000041
【０１７７】
が成立するか否かを検証させる(ステップ２２０８）。検証が成立した場合、演算部２０２は、Ｍをメッセージ文として出力部２０５から出力する（ステップ２２０９）。一方、成立しない場合、演算部２０２は、受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部２０５から出力し（ステップ２２１０）、暗号文Ｃは棄却する。
【０１７８】
以上、本発明の第３の実施形態について説明した。
【０１７９】
本実施形態のＩＤベース暗号通信方法は、非特許文献２に記載の手法と同様の手法により、Bilinear Diffie-Hellman（ＢＤＨ）問題の計算量的困難性を暗号学的仮定として、ＩＮＤ−ＩＤ−ＣＣＡの意味での安全性を証明することが可能である。また、このとき、タイトなセキュリティ・リダクションを持つことが、同様に示される。一方、本実施形態のＩＤベース暗号通信方法は、非特許文献２に記載の方法と異なり、計算量の大きい双線形写像ｅの計算が、暗号化および復号化処理に一回ずつである。従って、計算量が少なくて済み、効率の良い暗号化・復号化処理を実現することが可能である。
【０１８０】
なお、本実施形態のＩＤベース暗号通信方法において、暗号文Ｃの一部であるＷを計算する際のハッシュ関数Ｈ３への入力値を本方式において利用される別のパラメータ（システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部）に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【０１８１】
また、本実施形態において鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【０１８２】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【０１８３】
＜＜第４の実施形態＞＞
次に、本発明の第４の実施形態について説明する。本実施形態は、第２の実施形態のＩＤベース暗号通信方法の変形例である。本実施形態の第３の実施形態と同様に、計算量の大きい双線形写像ｅの計算を削減することができ、暗号通信全体の計算量を少なくすることができる実施形態である。
【０１８４】
本実施形態でも、上記各実施形態と同様に、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ。）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ。）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ等の個別情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図８は、本実施形態の動作手順を説明するための図である。
【０１８５】
１．準備処理
１−１：鍵管理センタのセットアップ
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６に、素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【０１８６】
【数１１２】
2007208410.tif 000042
【０１８７】
なる双線形写像ｅを生成させる（ステップ１３０１）。
【０１８８】
次に、演算部１０２は、鍵情報生成部１０６に、s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成させる(ステップ１３０２）。そして、演算部１０２は、s0、s1、Ｐを用いて、
【０１８９】
【数１１３】
2007208410.tif 000043
【０１９０】
を生成する（ステップ１３０３）。
【０１９１】
鍵管理センタは、s0,s1をマスタ鍵として、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）をシステム・パラメータとして、両者を記憶部１０３に記憶する。但し、ｍ，ｎ，ｌは正整数を表し、（Ｅ，Ｄ）は共通鍵暗号を表す。また、Ｈ１，Ｈ２，Ｈ３は、
【０１９２】
【数１１４】
2007208410.tif 000044
【０１９３】
なるハッシュ関数を意味する。ここで、{０、１}*は、ユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【０１９４】
次に、演算部１０２は、システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（ステップ１３０４）。なお、出力部１０５からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【０１９５】
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を、記憶部２０３に記憶する（ステップ２３０１）。ユーザ側装置Ｂにおいても、同様の処理が行われる（ステップ３３０１）。
【０１９６】
１−２：プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Ａからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Ｂからの要求においても同様の処理が行われる。
【０１９７】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡから受け付けたユーザＡのＩＤ等の個別情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ１００に送信する（ステップ２３０２）。なお、ユーザＡが郵送等によって鍵管理センタに個別情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０１９８】
鍵管理センタ側装置１００において、演算部１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡの個別情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応づけて記憶部１０３に記憶する（ステップ１３０５）。
【０１９９】
次に、演算部１０２は、鍵情報生成部１０６に記憶部１０３に記憶されているシステム・パラメータ内のＨ１およびユーザの個別情報ＩＤＡを用いて、
【０２００】
【数１１５】
2007208410.tif 000045
【０２０１】
を計算する。さらに、i∈{0,1}をランダムに生成し，記憶部１０３内にあるマスタ鍵ｓiを用いて、
【０２０２】
【数１１６】
2007208410.tif 000046
【０２０３】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【０２０４】
【数１１７】
2007208410.tif 000047
【０２０５】
をユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば、鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信など）で送信する（ステップ１３０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０２０６】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（ステップ２３０３）。
【０２０７】
２．暗号化処理
次に、ユーザ側装置２００がメッセージ文Ｍを暗号化して暗号文Ｃを生成する場合の処理について説明する。
【０２０８】
ここでは、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合を例にとり説明する。ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合も同様の処理が行われる。
【０２０９】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（ステップ３３０２）。ただし、Ｍ∈{0,1}ｎとする。ここで、ｎは正整数である。そして、公開されているユーザＡの個別情報ＩＤＡを取得する（ステップ３３０３）。
【０２１０】
次に、演算部２０２は、記憶部２０３に記憶されているシステム・パラメータの中のｑを用いて、乱数生成部２０６にメッセージ文Ｍに対するr0,r1∈Ｚ*ｑをランダムに生成させる（ステップ３３０４）。ここで、すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０２１１】
さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,ｌ，Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、関数計算部２０７にデータ暗号化鍵Ｋ０，Ｋ１を、
【０２１２】
【数１１８】
2007208410.tif 000048
【０２１３】
によって計算させ、さらに、演算部２０２は、暗号復号化装置２０８に、
【０２１４】
【数１１９】
2007208410.tif 000049
【０２１５】
を計算させる（ステップ３３０５）。ただし、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。
【０２１６】
そして、ユーザ側装置Ｂは、この計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を、メッセージＭの暗号文Ｃとして、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する(ステップ３３０６）。このとき、出力部２０８を用いて出力してもよい。出力部２０８から出力した場合、郵送等によりユーザ側装置Ａに配送する。
【０２１７】
３．復号化処理
次に、ユーザ側装置２００が受け取ったメッセージＭの暗号文Ｃを復号する場合の処理を説明する。
【０２１８】
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文Ｃをメッセージ文Ｍに復号する場合を例にとり説明する。ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文Ｃをメッセージ文Ｍに復号する場合も同様の処理が行われる。
【０２１９】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文ＣユーザＡから送られた暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を記憶部２０３に記憶する（ステップ２３０４）。
【０２２０】
次に、演算部２０２は、受信した暗号文Ｃに対して、記憶部２０３に記憶されているユーザＢのプライベート鍵とシステム・パラメータとを用いて、関数演算部２０７に、
【０２２１】
【数１２０】
2007208410.tif 000050
【０２２２】
なるｇｉを計算させる（ステップ２３０５）。
【０２２３】
また、演算部２０２は、関数演算部２０７および暗復号化部２０８に、
【０２２４】
【数１２１】
2007208410.tif 000051
【０２２５】
なる鍵Ｋｉと、
【０２２６】
【数１２２】
2007208410.tif 000052
【０２２７】
なるr0,r1∈｛０，１｝ｍ，Ｍ∈｛０，１｝ｎと、を計算させる（ステップ２３０６）。但し、ＤＫｉ（ｙ）は暗号文ｙを鍵Ｋｉを用いて復号した結果を表す。また，すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０２２８】
さらに、演算部２０２は、同様に、関数演算部２０７および暗復号化部２０８に、
【０２２９】
【数１２３】
2007208410.tif 000053
【０２３０】
なるデータ暗号化鍵Ｋ1-ｉと、
【０２３１】
【数１２４】
2007208410.tif 000054
【０２３２】
なるr'0,r'1∈｛０，１｝ｍ，Ｍ'∈｛０，１｝ｎと、を計算させる（ステップ２３０７）。
【０２３３】
そして、検査部２０９に、
【０２３４】
【数１２５】
2007208410.tif 000055
【０２３５】
および
【０２３６】
【数１２６】
2007208410.tif 000056
【０２３７】
が成立するか否かを検証させる（ステップ２３０８）。検証が成立した場合、演算部２０２は、Ｍ’をメッセージ文Ｍとして出力部２０５から出力する（ステップ２３０９）。一方、成立しない場合、演算部２０２は、受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部２０５から出力し（ステップ２３１０）、暗号文Ｃは棄却する。
【０２３８】
以上、本発明の第４の実施形態について説明した。
【０２３９】
本実施形態においても、第１の実施形態同様、計算量の大きい双線形写像ｅの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【０２４０】
本実施形態においても、上述の各実施形態と同様に、暗号文Ｃの一部であるＷを計算する際のハッシュ関数Ｈ３への入力値を本方式において利用される別のパラメータ（システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部）に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【０２４１】
また、本実施形態においても、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【０２４２】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【０２４３】
＜＜第５の実施形態＞＞
次に、本発明の第５の実施形態について説明する。本実施形態は、第２の実施形態のＩＤベース暗号通信方法の変形例である。本実施形態は、暗号文の長さを短くすることにより、全体の計算量を低減させるものである。
【０２４４】
本実施形態でも、第１の実施形態と同様に、ユーザＡのユーザ側装置２００（以下、ユーザ側装置Ａと呼ぶ。）、および、ユーザＢのユーザ側装置２００（以下、ユーザ側装置Ｂと呼ぶ。）が、鍵管理センタ側装置１００が作成した情報と、通信相手のユーザのＩＤ等の個別情報とを用いて、通信回線３００を介して互いに暗号通信を行う場合を例にとり説明する。図１０は、本実施形態の動作手順を説明するための図である。
【０２４５】
１．準備処理
１−１：鍵管理センタのセットアップ
鍵管理センタ側装置１００において、演算部１０２は、入力部１０１を介して鍵管理センタの管理者から鍵生成の指示を受け付けると、鍵情報生成部１０６に、素数ｑ，位数ｑの加法群Ｇ1，位数ｑの乗法群Ｇ2，および、
【０２４６】
【数１２７】
2007208410.tif 000057
【０２４７】
なる双線形写像ｅを生成させる（ステップ１４０１）。
【０２４８】
次に、演算部１０２は、鍵情報生成部１０６に、s0,s1∈Ｚ*qおよびＰ∈Ｇ1をランダムに生成させる(ステップ１４０２）。そして、演算部１０２は、s0、s1、Ｐを用いて、
【０２４９】
【数１２８】
2007208410.tif 000058
【０２５０】
を生成する（ステップ１４０３）。
【０２５１】
鍵管理センタは、s0,s1をマスタ鍵として、（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）をシステム・パラメータとして、両者を記憶部１０３に記憶する。但し、ｍ，ｎは正整数を表し、（Ｅ，Ｄ）は共通鍵暗号を表す。また、Ｈ１，Ｈ２，Ｈ３は、
【０２５２】
【数１２９】
2007208410.tif 000059
【０２５３】
なるハッシュ関数を意味する。ここで、{０、１}*は、ユーザの個別情報と同じビット数の任意のビット列、Ｎは自然数全体の集合である。個別情報のビット数は、個別情報に使用する情報の種類によって異なる場合がある。
【０２５４】
次に、演算部１０２は、システム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４から各ユーザ側装置２００に送信する（ステップ１４０４）。なお、出力部１０５からシステム・パラメータが出力された場合、鍵管理センタは郵送等により各ユーザ側装置２００のユーザに通知する。一方、鍵管理センタは、マスタ鍵を安全な方法で保管する。
【０２５５】
ユーザ側装置Ａにおいて、演算装置２０２は、通信部２０４が通信回線３００を介して鍵管理センタ側装置１００より受信した、あるいは、入力部２０１に入力されたシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を、記憶部２０３に記憶する（ステップ２４０１）。ユーザ側装置Ｂにおいても、同様の処理が行われる（ステップ３４０１）。
【０２５６】
１−２：プライベート鍵の作成
各ユーザは次のステップを行う。ここでは、ユーザ側装置Ａからのプライベート鍵を生成する要求による処理を例にあげて説明する。ユーザ側装置Ｂからの要求においても同様の処理が行われる。
【０２５７】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１を介してユーザＡから受け付けたユーザＡのＩＤ等の個別情報ＩＤＡを、記憶部２０３に記憶すると共に、通信回線３００を介して通信部１０４から鍵管理センタ１００に送信する（ステップ２４０２）。なお、ユーザＡが郵送等によって鍵管理センタに個別情報ＩＤＡをユーザ側装置Ａのアドレスと共に通知してもよい。
【０２５８】
鍵管理センタ側装置１００において、演算部１０２は、通信部１０４が通信回線３００を介してユーザ側装置Ａから受信した、あるいは、入力部１０１にユーザ側装置Ａのアドレスと共に入力されたユーザＡの個別情報ＩＤＡを、ユーザ側装置Ａのアドレスに対応づけて記憶部１０３に記憶する（ステップ１４０５）。
【０２５９】
次に、演算部１０２は、鍵情報生成部１０６に記憶部１０３に記憶されているシステム・パラメータ内のＨ１およびユーザの個別情報ＩＤＡを用いて、
【０２６０】
【数１３０】
2007208410.tif 000060
【０２６１】
を計算する。さらに、i∈{0,1}をランダムに生成し，記憶部１０３内にあるマスタ鍵ｓiを用いて、
【０２６２】
【数１３１】
2007208410.tif 000061
【０２６３】
を計算する。そして、その計算結果と使用したiとのペア、すなわち、
【０２６４】
【数１３２】
2007208410.tif 000062
【０２６５】
をユーザＡのプライベート鍵として、出力部１０５から出力するか、あるいは、通信回線３００を介して通信部１０４からユーザ側装置Ａに安全な方法（例えば、鍵管理センタ側装置１００がユーザ側装置Ａと共有する暗号鍵を用いた暗号通信など）で送信する（ステップ１４０６）。なお、出力部１０５からユーザＡのプライベート鍵が出力された場合、鍵管理センタが郵送等の安全な方法でこのプライベート鍵をユーザＡに配布する。
【０２６６】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介して鍵管理センタ１００から受信した、あるいは、入力部２０１に入力されたユーザＡのプライベート鍵を、記憶部２０３に記憶する（ステップ２４０３）。
【０２６７】
２．暗号化処理
次に、ユーザ側装置２００がメッセージ文Ｍを暗号化して暗号文Ｃを生成する場合の処理について説明する。
【０２６８】
ここでは、ユーザ側装置Ａがメッセージ文を暗号化してユーザ側装置Ｂに送信する場合を例にとり説明する。ユーザ側装置Ｂがメッセージ文を暗号化してユーザ側装置Ａに送信する場合も同様の処理が行われる。
【０２６９】
ユーザ側装置Ａにおいて、演算部２０２は、入力部２０１に入力されたメッセージ文Ｍを記憶部２０３に記憶する（ステップ３４０２）。ただし、Ｍ∈{0,1}ｎとする。ここで、ｎは正整数である。そして、公開されているユーザＡの個別情報ＩＤＡを取得する（ステップ３４０３）。
【０２７０】
次に、演算部２０２は、記憶部２０３に記憶されているシステム・パラメータの中のｑを用いて、乱数生成部２０６にメッセージ文Ｍに対するr0,r1∈Ｚ*ｑをランダムに生成させる（ステップ３４０４）。ここで、すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０２７１】
さらに、演算部２０２は、ユーザＡの個別情報ＩＤＡ、および、記憶部２０３に記憶されているシステム・パラメータ（ｑ,Ｇ1,Ｇ2,ｅ,ｍ,ｎ,Ｐ,Ｐpub,0, Ｐpub,1, Ｐpub,Ｈ１,Ｈ２,Ｈ３,Ｅ,Ｄ）を用いて、関数計算部２０７に
【０２７２】
【数１３３】
2007208410.tif 000063
【０２７３】
なるｇと（ステップ３４０５）、
【０２７４】
【数１３４】
2007208410.tif 000064
【０２７５】
により、ｒ０、ｒ１とデータ暗号化鍵Ｋと（ステップ３４０６）を計算させる。
【０２７６】
そして、演算部２０２は、関数計算部２０７および暗号化部２０８に、
【０２７７】
【数１３５】
2007208410.tif 000065
【０２７８】
を計算させる。ただし、ＥＫ（ｘ）は平文データｘをデータ暗号化鍵Ｋを用いて暗号化した結果を表す。
【０２７９】
そして、ユーザ側装置Ｂは、この計算結果（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ）を、メッセージＭの暗号文Ｃとして、通信回線３００を介して通信部２０４からユーザ側装置Ａに送信する(ステップ３４０７）。このとき、出力部２０８を用いて出力してもよい。出力部２０８から出力した場合、郵送等によりユーザ側装置Ａに配送する。
【０２８０】
３．復号化処理
次に、ユーザ側装置２００が受け取ったメッセージＭの暗号文Ｃを復号する場合の処理を説明する。
【０２８１】
ここでは、ユーザ側装置Ａがユーザ側装置Ｂから受信した暗号文Ｃをメッセージ文Ｍに復号する場合を例にとり説明する。ユーザ側装置Ｂがユーザ側装置Ａから受信した暗号文Ｃをメッセージ文Ｍに復号する場合も同様の処理が行われる。
【０２８２】
ユーザ側装置Ａにおいて、演算部２０２は、通信部２０４が通信回線３００を介してユーザ側装置Ｂより受信した暗号文ＣユーザＡから送られた暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を記憶部２０３に記憶する（ステップ２４０４）。
【０２８３】
次に、演算部２０２は、受信した暗号文Ｃに対して、記憶部２０３に記憶されているユーザＢのプライベート鍵とシステム・パラメータとを用いて、関数演算部２０７および暗復号化部２０８に、
【０２８４】
【数１３６】
2007208410.tif 000066
【０２８５】
なるｇｉを計算させる（ステップ２４０５）。
【０２８６】
計算したｇｉを用いて、演算部２０２は、関数演算部２０７と暗復号化部２０８とに
【０２８７】
【数１３７】
2007208410.tif 000067
【０２８８】
なるＲを計算させ（ステップ２４０６）、さらに計算したＲを用いて、
【０２８９】
【数１３８】
2007208410.tif 000068
【０２９０】
なるr0,r1、Ｋ、を計算させる（ステップ２４０７）。
【０２９１】
さらに、演算部２０２は、同様に、関数演算部２０７および暗復号化部２０８に、
【０２９２】
【数１３９】
2007208410.tif 000069
【０２９３】
なるデータＲ'∈｛０，１｝ｍを計算させる（ステップ２４０８）。
【０２９４】
そして、検査部２０９に、
【０２９５】
【数１４０】
2007208410.tif 000070
【０２９６】
が成立するか否かを検証させる（ステップ２４０９）。
【０２９７】
検証が成立した場合、演算部２０２は、
【０２９８】
【数１４１】
2007208410.tif 000071
【０２９９】
によりＭを計算し、メッセージ文Ｍとして出力する（ステップ２４１０）。但し、ＤＫ（ｙ）は暗号文ｙを鍵Ｋを用いて復号した結果を表す。また，すべてのＺ*ｑの元はｍビット列で表されるものとする。
【０３００】
一方、検証が成立しない場合、演算部２０２は、受信した暗号文Ｃ（＝（Ｕ0，Ｕ1，Ｖ0，Ｖ1，Ｗ））を不正な暗号文と判断し、その旨を示すエラーメッセージなどを出力部２０５から出力し（ステップ２４１１）、暗号文Ｃは棄却する。
【０３０１】
次に、本実施形態の安全な共通鍵暗号（Ｅ，Ｄ）の実現方法の一例を以下に説明する。
【０３０２】
受信者側装置の演算部２０２は、関数計算部２０７および暗復号化部２０８に、共通鍵暗号（Ｅ，Ｄ）としてメッセージ文Ｍに対して
【０３０３】
【数１４２】
2007208410.tif 000072
【０３０４】
を計算することにより暗号文Ｃを作成する。ただし、Ｈ４は、
【０３０５】
【数１４３】
2007208410.tif 000073
【０３０６】
なるハッシュ関数を意味し、システム・パラメータの一部として公開されるものである。
【０３０７】
また、送信側装置装置の演算部２０２は、暗号文Ｃ（Ｃ＝ｙ０‖ｙ１（ｙ０＝{0,1}ｎ、ｙ１＝{0,1}ｌ））に対し、
【０３０８】
【数１４４】
2007208410.tif 000074
【０３０９】
を計算することにより暗号文を復号する。
【０３１０】
以上、本発明の第５の実施形態について説明した。
【０３１１】
本実施形態においても、第１の実施形態同様、計算量の大きい双線形写像ｅの計算回数を低減することができ、計算量が少なく、効率のよい暗号化・復号化処理を実現することができる。
【０３１２】
また、本実施形態では、上述のように、暗号文の長さが短くなるため、全体の計算量がさらに低減される。
【０３１３】
本実施形態においても、上述の各実施形態と同様に、暗号文Ｃの一部であるＷを計算する際のハッシュ関数Ｈ３への入力値を本方式において利用される別のパラメータ（システム・パラメータ、システム・パラメータおよび暗号文を作成する上で計算した各パラメータのいずれかおよび全部）に変更することにより、上記と同様の手順により暗号文の作成およびメッセージの復号を行うことも可能である。
【０３１４】
また、本実施形態においても、鍵管理センタ側装置１００を、ＩＣカード等のハードウエア的に安全な装置に実装し、各ユーザに対して各々配布した上で、上記と同様の方法により暗号通信を行うよう構成することも可能である。
【０３１５】
以上説明したように、本実施形態によれば、適応的選択暗号文攻撃に対して、安全性の証明が可能であり、タイトなセキュリティ・リダクションを持ち、かつ、暗号化処理の効率性に優れるＩＤベース暗号通信技術を、共通鍵暗号を利用する方式において、提供することができる。従って、本実施形態により、利便性に優れ、かつ、安全な暗号通信方法と、その応用装置、システムを実現することができる。
【０３１６】
以上の各実施形態では、ユーザが各々の装置を利用して暗号通信を行うという一般形で説明した。しかし、本発明は、具体的には様々なシステムに適用可能である。例えば、電子ショッピングシステムでは、送信者であるユーザは消費者であり、受信者であるユーザは小売店、ユーザ側装置はパソコンなどの計算機となる。また、電子メールシステムでは、各々の装置はパソコンなどの計算機である。その他にも、従来の公開鍵暗号およびＩＤベース暗号が使われている様々なシステムに適用することが可能である。
【０３１７】
また、上記各実施形態における各計算は、ＣＰＵがメモリ内の各プログラムを実行することにより行われるものとして説明したが、プログラムだけではなく、いずれかがハードウエア化された演算装置であって、他の演算装置や、ＣＰＵと、データのやりとりを行うものであっても良い。
【図面の簡単な説明】
【０３１８】
【図１】本発明の各実施形態に共通するＩＤベース暗号通信システムの概略構成図である。
【図２】図１に示す鍵管理センタ側装置の概略構成図である。
【図３】図１に示すユーザ側装置の概略構成図である。
【図４】鍵管理センタ側装置およびユーザ側装置のハードウェア構成例を示す図である。
【図５】本発明の第１の実施形態の動作手順を説明するための図である。
【図６】本発明の第２の実施形態の動作手順を説明するための図である。
【図７】本発明の第３の実施形態の動作手順を説明するための図である。
【図８】本発明の第４の実施形態の動作手順を説明するための図である。
【図９】本発明の第５の実施形態の動作手順を説明するための図である。
【符号の説明】
【０３１９】
１００…鍵管理センタ側装置、１０１…入力部、１０２…演算部、１０３…記憶部、１０４…通信部、１０５…出力部、１０６…鍵情報作成部、２００…ユーザ側装置、２００…ユーザ側装置、２０１…入力部、２０２…演算部、２０３…記憶部、２０４…通信部、２０５…出力部、２０６…乱数生成部、２０７…関数計算部、２０８…暗復号化部、２０９…検査部、３００…通信回線
【図１】
2007208410.tif 000147
【図２】
2007208410.tif 000148
【図３】
2007208410.tif 000149
【図４】
2007208410.tif 000150
【図５】
2007208410.tif 000151
【図６】
2007208410.tif 000152
【図７】
2007208410.tif 000153
【図８】
2007208410.tif 000154
【図９】
2007208410.tif 000155