特許第6625283号(P6625283)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特許6625283暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6625283
(24)【登録日】2019年12月6日
(45)【発行日】2019年12月25日
(54)【発明の名称】暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20191216BHJP
【FI】
   H04L9/00 601D
【請求項の数】18
【全頁数】84
(21)【出願番号】特願2019-530306(P2019-530306)
(86)(22)【出願日】2017年7月20日
(86)【国際出願番号】JP2017026283
(87)【国際公開番号】WO2019016916
(87)【国際公開日】20190124
【審査請求日】2019年8月22日
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】溝井国際特許業務法人
(72)【発明者】
【氏名】高島 克幸
【審査官】 稲垣 良一
(56)【参考文献】
【文献】 特開2011−232475(JP,A)
【文献】 欧州特許出願公開第2846493(EP,A1)
【文献】 KOSHIBA, T., et al.,Pairing Cryptography Meets Isogeny: A New Framework of Isogenous Pairing Groups,Cryptology ePrint Archive,[オンライン],2016年12月,Report 2016/1138,[検索日 2019年10月8日] インターネット,URL,http://ia.cr/2016/1138
【文献】 小柴 健史 外1名,楕円曲線同種写像のペアリング暗号への新しい応用,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)概要集,[USB],電子情報通信学会,2017年 1月27日
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける暗号化装置であり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^を用いて暗号文ctを生成する暗号文生成部
を備え、
前記暗号文生成部は、
前記要素Xに暗号化乱数ζが設定された変換情報zに対して、メッセージmを設定して前記暗号文ctの要素である暗号要素cを生成する第1暗号要素生成部と、
前記要素Y^に対して前記暗号化乱数ζを設定して前記暗号文ctの要素である暗号要素cを生成する第2暗号要素生成部と
を備える暗号化装置。
【請求項2】
前記第1暗号要素生成部は、数1に示す暗号要素cを生成し、
前記第2暗号要素生成部は、数2に示す暗号要素cを生成する
請求項1に記載の暗号化装置。
【数1】
【数2】
【請求項3】
前記暗号システムは、2以上の整数wに関して、t=1,...,wの各整数tについての前記群G及び前記群G^を用い、
前記暗号化装置は、さらに、
2以上w以下の整数nに関してj=1,...,nの各整数jについての属性xを、前記群G^のうちの異なる群に割り当てるID群割当部
を備え、
前記第2暗号要素生成部は、前記ID群割当部によってj=1,...,nの各整数jについての属性xに割り当てられた群の要素に対して前記暗号化乱数ζを設定して前記暗号要素cを生成する
請求項1に記載の暗号化装置。
【請求項4】
前記暗号システムは、前記群G及び前記群G^として、t=1,...,nの各整数tと、ι=0,1の各整数ιとについての群Gt,ι及び群G^t,ιを用い、
前記ID群割当部は、j=1,...,nの各整数jについての前記属性xである識別子ID’であって、0又は1である識別子ID’を、t=jかつι=ID’の群G^t,ιに割り当て、
前記第1暗号要素生成部は、数3に示す暗号要素cを生成し、
前記第2暗号要素生成部は、数4に示す暗号要素cを生成する
請求項3に記載の暗号化装置。
【数3】
【数4】
【請求項5】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tについての群G及び群G^を用い、
前記ID群割当部は、属性集合Γに含まれる属性xを、群G^に割り当て、
前記第1暗号要素生成部は、数5に示す暗号要素cを生成し、
前記第2暗号要素生成部は、数6に示す暗号要素cを生成する
請求項3に記載の暗号化装置。
【数5】
【数6】
【請求項6】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tと、j=1,...,nの各整数jと、ι=0,1の各整数ιとについての群Gt,j,ι及び群G^t,j,ιを用い、
前記ID群割当部は、属性集合Γに含まれる属性xを、群G^に割り当て、
前記第1暗号要素生成部は、数7に示す暗号要素cを生成し、
前記第2暗号要素生成部は、数8に示す暗号要素cを生成する
請求項3に記載の暗号化装置。
【数7】
【数8】
【請求項7】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tと、ι=0,1の各整数ιとについての群Gt,ι及び群Gt,ιと、群G^t,ι及び群G^t,ιとを用い、
前記ID群割当部は、1以上d以下の整数Lに関して、j=1,...,Lの各整数jについての前記属性xである識別子ID’であって、0又は1である識別子ID’を、t=jかつι=ID’の群G^t,ι及び群G^t,ιに割り当て、
前記第1暗号要素生成部は、数9に示す暗号要素cを生成し、
前記第2暗号要素生成部は、数10に示す暗号要素cを生成し、
請求項3に記載の暗号化装置。
【数9】
【数10】
【請求項8】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける復号装置であり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^とを用いて生成された暗号文ctであって、前記要素Xに暗号化乱数ζが設定された変換情報zに対して、メッセージmが設定された暗号要素cと、前記要素Y^に対して前記暗号化乱数ζが設定された暗号要素cとを含む暗号文ctを取得する暗号文取得部と、
前記鍵生成乱数によって変換された前記群Gの要素である鍵要素kを含む復号鍵skと、前記暗号要素cとから変換情報z’を生成し、前記変換情報z’と前記暗号要素cとからメッセージm’を生成する復号部と
を備える復号装置。
【請求項9】
前記暗号文取得部は、数11に示す前記暗号要素c及び前記暗号要素cを含む前記暗号文ctを取得し、
前記復号部は、数12に示すように、前記変換情報z’を生成するとともに、前記メッセージm’を生成する
請求項8に記載の復号装置。
【数11】
【数12】
【請求項10】
前記暗号システムは、2以上の整数wに関して、t=1,...,wの各整数tについての前記群G及び前記群G^を用い、
前記暗号要素cは、2以上w以下の整数nに関してj=1,...,nの各整数jについての属性xが前記群G^のうちの異なる群に割り当てられ、前記各整数jについての属性xが割り当てられた群の要素に対して前記暗号化乱数ζが設定されており、
前記鍵要素kは、前記整数nに関してj’=1,...,nの各整数j’についての属性xj’が前記群Gのうちの異なる群に割り当てられ、前記各整数j’についての属性xj’が割り当てられた群の要素に対して前記暗号化乱数ζが設定されている
請求項8に記載の復号装置。
【請求項11】
前記暗号システムは、前記群G及び前記群G^として、t=1,...,nの各整数tと、ι=0,1の各整数ιとについての群Gt,ι及び群G^t,ιを用い、
前記暗号文取得部は、数13に示す前記暗号要素c及び前記暗号要素cを含む前記暗号文ctを取得し、
前記復号部は、数14に示すように、前記変換情報z’を生成するとともに、前記メッセージm’を生成する
請求項10に記載の復号装置。
【数13】
【数14】
【請求項12】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tについての群G及び群G^を用い、
前記暗号文取得部は、数15に示す前記暗号要素c及び前記暗号要素cを含む前記暗号文ctを取得し、
前記復号部は、数16に示すように、前記変換情報z’を生成するとともに、前記メッセージm’を生成する
請求項10に記載の復号装置。
【数15】
【数16】
【請求項13】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tと、j=1,...,nの各整数jと、ι=0,1の各整数ιとについての群Gt,j,ι及び群G^t,j,ιを用い、
前記暗号文取得部は、数17に示す前記暗号要素c及び前記暗号要素cを含む前記暗号文ctを取得し、
前記復号部は、数18に示すように、前記変換情報z’を生成するとともに、前記メッセージm’を生成する
請求項10に記載の復号装置。
【数17】
【数18】
【請求項14】
前記暗号システムは、前記群G及び前記群G^として、d=wの整数dに関して、t=1,...,dの各整数tと、ι=0,1の各整数ιとについての群Gt,ι及び群Gt,ιと、群G^t,ι及び群G^t,ιとを用い、
前記暗号文取得部は、数19に示す前記暗号要素c及び前記暗号要素cを含む前記暗号文ctを取得し、
前記復号部は、数20に示すように、前記変換情報z’を生成するとともに、前記メッセージm’を生成する
請求項10に記載の復号装置。
【数19】
【数20】
【請求項15】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける暗号化方法であり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^を用いて暗号文ctを生成する暗号文生成工程
を備え、
前記暗号文生成工程は、
前記要素Xに対して暗号化乱数ζが設定された変換情報zに対して、メッセージmを設定して前記暗号文ctの要素である暗号要素cを生成する第1暗号要素生成工程と、
前記要素Y^に対して前記暗号化乱数ζを設定して前記暗号文ctの要素である暗号要素cを生成する第2暗号要素生成工程と
を備える暗号化方法。
【請求項16】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける暗号化プログラムであり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^を用いて暗号文ctを生成する暗号文生成処理
をコンピュータに実行させ、
前記暗号文生成処理は、
前記要素Xに対して暗号化乱数ζが設定された変換情報zに対して、メッセージmを設定して前記暗号文ctの要素である暗号要素cを生成する第1暗号要素生成処理と、
前記要素Y^に対して前記暗号化乱数ζを設定して前記暗号文ctの要素である暗号要素cを生成する第2暗号要素生成処理と
を含む暗号化プログラム。
【請求項17】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける復号方法であり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^とを用いて生成された暗号文ctであって、前記要素Xに暗号化乱数ζが設定された変換情報zに対して、メッセージmが設定された暗号要素cと、前記要素Y^に対して前記暗号化乱数ζが設定された暗号要素cとを含む暗号文ctを取得する暗号文取得工程と、
前記鍵生成乱数によって変換された前記群Gの要素である鍵要素kを含む復号鍵skと、前記暗号要素cとから変換情報z’を生成し、前記変換情報z’と前記暗号要素cとからメッセージm’を生成する復号工程と
を備える復号方法。
【請求項18】
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける復号プログラムであり、
前記群Gの要素Xと前記群G^の要素Y^とであって、少なくともいずれかが生成元が鍵生成乱数によって変換されて生成された要素Xと要素Y^とを用いて生成された暗号文ctであって、前記要素Xに暗号化乱数ζが設定された変換情報zに対して、メッセージmが設定された暗号要素cと、前記要素Y^に対して前記暗号化乱数ζが設定された暗号要素cとを含む暗号文ctを取得する暗号文取得処理と、
前記鍵生成乱数によって変換された前記群Gの要素である鍵要素kを含む復号鍵skと、前記暗号要素cとから変換情報z’を生成し、前記変換情報z’と前記暗号要素cとからメッセージm’を生成する復号処理と
をコンピュータに実行させる復号プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、高い安全性を持つIDベース暗号(Identity Based Encryption,以下IBE)方式と、高い安全性を持つ属性ベース暗号(Attribute Based Encryption,以下ABE)方式との少なくともいずれかに関する。
【背景技術】
【0002】
量子計算機の開発が、世界的に進められている。量子計算機に対しても安全性を維持できる暗号方式として、同種写像を用いた暗号の提案が行われている。非特許文献1には、Isog−DBDH仮定に基づいてプレチャレンジ量子安全性が示されていた部分的に耐量子性をもつ属性ベース暗号方式が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Koshiba, T., Takashima, K.: Pairing cryptography meets isogeny: A new framework of isogenous pairing groups. IACR Cryptology ePrint Archive 2016, 1138 (2016)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、非特許文献1に記載された方式は、これまで広く使われてきたDBDH仮定のようなペアリング系の問題困難性から安全性が証明できるかどうかは不明であった。一般に、同種写像問題は、耐量子性を示すなど、ペアリング系の問題より困難と認識されている一方、まだ困難性の検証が十分になされていないため、未知の攻撃発見が懸念されている。
この発明は、複数の問題困難性から安全性を示すことができる暗号方式を構成可能にすることを目的とする。
【課題を解決するための手段】
【0005】
この発明に係る暗号化装置は、
群Gと、前記群Gと対応付けられた群Gと、群G^と、前記群G^と対応付けられた群G^と、前記群G及び前記群G^とペアリング演算eによって対応付けられるとともに、前記群G及び前記群G^とペアリング演算eによって対応付けられた群Gとを用いた暗号システムにおける暗号化装置であり、
前記群Gの要素Xと前記群G^の要素Y^との生成要素を用いて暗号文ctを生成する暗号文生成部であって、前記要素Xは前記群Gの生成元が鍵生成乱数によって変換されて生成された、又は、前記要素Y^は前記群G^の生成元が鍵生成乱数によって変換されて生成された前記生成要素を用いて暗号文ctを生成する暗号文生成部
を備え、
前記暗号文生成部は、
前記要素Xに対して暗号化乱数ζが設定された変換情報zに対して、メッセージmを設定して前記暗号文ctの要素である暗号要素cを生成する第1暗号要素生成部と、
前記要素Y^に対して前記暗号化乱数ζを設定して前記暗号文ctの要素である暗号要素cを生成する第2暗号要素生成部と
を備える。
【発明の効果】
【0006】
この発明では、対応付けが行われた複数の群を用いることにより、ある問題困難性から安全性を示すことを可能とすることができる。また、この発明では、鍵生成乱数によって変換されて生成された生成要素を用いて暗号文ctID’を生成することにより、別の問題困難性から安全性を示すことを可能とすることができる。
【図面の簡単な説明】
【0007】
図1】実施の形態1に係るIBE方式で用いられる同種ペアリンググループの説明図。
図2】実施の形態1に係る暗号システム1の構成図。
図3】実施の形態1に係る鍵生成装置10の構成図。
図4】実施の形態1に係る暗号化装置20の構成図。
図5】実施の形態1に係る復号装置30の構成図。
図6】実施の形態1に係るSetupアルゴリズムのフローチャート。
図7】実施の形態1に係るIPGの説明図。
図8】実施の形態1に係るKeyGenアルゴリズムのフローチャート。
図9】実施の形態1に係るEncアルゴリズムのフローチャート。
図10】実施の形態1に係るDecアルゴリズムのフローチャート。
図11】変形例1に係る鍵生成装置10の構成図。
図12】変形例1に係る暗号化装置20の構成図。
図13】変形例1に係る復号装置30の構成図。
図14】実施の形態2に係るID群の性質の説明図。
図15】実施の形態2に係るSetupアルゴリズムにおけるID群の説明図。
図16】実施の形態2に係るKeyGenアルゴリズムにおけるID群の説明図。
図17】実施の形態2に係るEncアルゴリズムにおけるID群の説明図。
図18】実施の形態2に係るDecアルゴリズムにおけるID群の説明図。
図19】実施の形態2に係る鍵生成装置10の構成図。
図20】実施の形態2に係る暗号化装置20の構成図。
図21】実施の形態2に係るSetupアルゴリズムのフローチャート。
図22】実施の形態2に係るKeyGenアルゴリズムのフローチャート。
図23】実施の形態2に係るEncアルゴリズムのフローチャート。
図24】実施の形態3に係る暗号システム1の構成図。
図25】実施の形態5に係る暗号システム1の構成図。
図26】実施の形態5に係る鍵委譲装置40の構成図。
図27】実施の形態5に係るDelegateアルゴリズムのフローチャート。
【発明を実施するための形態】
【0008】
実施の形態1.
実施の形態1では、高安全高効率なIBE方式を説明する。
【0009】
***表記の説明***
以下の説明における記法について説明する。
なお、以下の説明では、数式中で変数の上に記載された記号等が、文中では変数の右上に示される。具体的には、記号“^”及び記号“→”は、数式中では変数の上に記載されるが、文中では変数の右上に示される。例えば、数101は、文中ではB^と記載される。
【数101】
また、ベクトルを表す記号“→”が上付き文字に付される場合、記号“→”は上付文字に対する上付き文字で示されているものとする。つまり、gy→は、yがgの上付き文字として示されていることを意味する。
【0010】
Aがランダムな変数または分布であるとき、数102は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数102において、yは乱数である。
【数102】
Aが集合であるとき、数103は、Aからyを一様に選択することを表す。つまり、数103において、yは一様乱数である。
【数103】
数104、つまりFは、位数qの有限体を示す。
【数104】
0より大きい整数nについて、数105が成立するものとする。
【数105】
数106は、数107に示す2つのベクトルyとvとの数108に示す内積を表す。
【数106】
【数107】
【数108】
数109に示す直積群Kの要素g(resp.直積群K^の要素g^)と、数110に示すベクトルyとに対して、gy→は、数111に示す群要素を示す。
【数109】
【数110】
【数111】
スカラーζ∈Fに対して、gζは、数112に示すスカラー累乗を示す。
【数112】
上述した直積群K及び直積群K^の要素g:=(g)及び要素g^:=(g^)に対して、ペアリングeが数113に示す空間で定義されているなら、ペアリングeは、数114のように定義される。
【数113】
【数114】
【0011】
***概念の説明***
図1を参照して、実施の形態1に係るIBE方式で用いられる同種ペアリンググループ(以下、IPG)について説明する。
【0012】
IPGは、同種写像とペアリング演算とによって対応付けられた複数の群を有する。
具体的には、IPGは、群Gと、群Gと同種写像φによって対応付けられたt=1,...,dの各群Gと、群G^と同種写像φによって対応付けられたt=1,...,dの各群G^と、t=0,...,dの各群G及び群G^とペアリング演算eによって対応付られた群Gとを有する。そして、IPGでは、要素が群G×群G^からペアリング演算eで変換された場合と、t=1,...,dのいずれの整数tについての同種写像φによって群G×群G^から群G×群G^に変換された上で、ペアリング演算eによって変換された場合とで、結果は等しくなる。
例えば、t=0,...,dの各整数tについての群G及び群G^は、異なる楕円曲線における群である。
【0013】
より正確には、IPGは以下のように定義される。
IPG生成アルゴリズムGenIPG(1λ,N)では、数115に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアがランダムに生成される。
【数115】
ここで、(G,G^,e,G)は、ペアリング演算e:G×G^→Gと、トラップドア準同型写像φとを有する素数位数qの非対称ペアリング群である。トラップドア準同型写像φは、異なる楕円曲線の間の同種写像によって与えられた自然な同一性G=G×1G^及びG^=1×G^の下でのG=φ(G)及びG^=φ(G^)であるG×G^からG×G^への写像である。g=φ(g)∈G,g^=φ(g^)∈G^である。
IPGは、数116に示す両立性を有する。
【数116】
ここで、g=e(g,g^)≠1である。また、G≠G^である。
【0014】
***構成の説明***
実施の形態1に係るIBE方式の構成を説明する。
IBE方式は、Setupアルゴリズムと、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとを備える。
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、公開パラメータpkと、マスター秘密鍵mskとを出力する。
KeyGenアルゴリズムは、公開パラメータpkと、マスター秘密鍵mskと、識別子IDとを入力として、識別子IDに対応した復号鍵skIDを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、識別子ID’とを入力として、暗号文ctID’を出力する。
Decアルゴリズムは、公開パラメータpkと、識別子IDに対応した復号鍵skIDと、識別子ID’の下で暗号化された暗号文ctID’とを入力として、メッセージm’∈msg、又は、復号に失敗したことを示す識別情報⊥を出力する。
【0015】
図2を参照して、実施の形態1に係る暗号システム1の構成を説明する。
暗号システム1は、鍵生成装置10と、暗号化装置20と、復号装置30とを備える。鍵生成装置10と、暗号化装置20と、復号装置30とは、伝送路を介して接続されている。伝送路は、具体例としては、LAN(Local Area Network)、又は、インターネットである。鍵生成装置10と、暗号化装置20と、復号装置30とは、伝送路を介して通信可能である。
【0016】
鍵生成装置10は、セキュリティパラメータ1λを入力として、Setupアルゴリズムを実行して、公開パラメータpkと、マスター秘密鍵mskとを生成する。また、鍵生成装置10は、公開パラメータpkと、マスター秘密鍵mskと、識別子IDとを入力として、KeyGenアルゴリズムを実行して、復号鍵skIDを生成する。
鍵生成装置10は、公開パラメータpkを公開し、復号鍵skIDを識別子IDに対応する復号装置30に出力する。鍵生成装置10は、マスター秘密鍵mskを保管する。
なお、Setupアルゴリズムは、暗号システム10のセットアップ時等に1度だけ実行されればよい。
【0017】
暗号化装置20は、公開パラメータpkと、メッセージmと、識別子ID’とを入力として、Encアルゴリズムを実行して、暗号文ctID’を生成する。暗号化装置20は、暗号文ctID’を復号装置30に出力する。
【0018】
復号装置30は、公開パラメータpkと、復号鍵skIDと、暗号文ctID’とを入力として、Decアルゴリズムを実行して、メッセージm’、又は、復号に失敗したことを示す識別情報⊥を生成する。
【0019】
図3を参照して、実施の形態1に係る鍵生成装置10の構成を説明する。
鍵生成装置10は、プロセッサ11と、記憶装置12と、入出力インタフェース13とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0020】
鍵生成装置10は、機能構成要素として、マスター鍵生成部14と、復号鍵生成部15と、鍵出力部16とを備える。マスター鍵生成部14と、復号鍵生成部15と、鍵出力部16との各部の機能はソフトウェアにより実現される。
記憶装置12には、鍵生成装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11により読み込まれ、プロセッサ11によって実行される。これにより、鍵生成装置10の各部の機能が実現される。
【0021】
図4を参照して、実施の形態1に係る暗号化装置20の構成を説明する。
暗号化装置20は、プロセッサ21と、記憶装置22と、入出力インタフェース23とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0022】
暗号化装置20は、機能構成要素として、取得部24と、暗号文生成部25と、暗号文出力部26とを備える。暗号文生成部25は、変換情報生成部251と、第1暗号要素生成部252と、第2暗号要素生成部253とを備える。取得部24と、暗号文生成部25と、変換情報生成部251と、第1暗号要素生成部252と、第2暗号要素生成部253と、暗号文出力部26との各部の機能はソフトウェアにより実現される。
記憶装置22には、暗号化装置20の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21により読み込まれ、プロセッサ21によって実行される。これにより、暗号化装置20の各部の機能が実現される。
【0023】
図5を参照して、実施の形態1に係る復号装置30の構成を説明する。
復号装置30は、プロセッサ31と、記憶装置32と、入出力インタフェース33とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0024】
復号装置30は、機能構成要素として、取得部34と、復号部35と、メッセージ出力部36とを備える。取得部34は、復号鍵取得部341と、暗号文取得部342とを備える。復号部35は、変換情報生成部351と、メッセージ生成部352とを備える。取得部34と、復号鍵取得部341と、暗号文取得部342と、復号部35と、変換情報生成部351と、メッセージ生成部352と、メッセージ出力部36との各部の機能はソフトウェアにより実現される。
記憶装置32には、復号装置30の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ31により読み込まれ、プロセッサ31によって実行される。これにより、復号装置30の各部の機能が実現される。
【0025】
プロセッサ11,21,31は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,21,31は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
【0026】
記憶装置12,22,32は、具体例としては、RAM(Random Access Memory)、HDD(Hard Disk Drive)である。また、記憶装置12,22,32は、は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。
【0027】
入出力インタフェース13,23,33は、外部からデータの入力を受け付け、外部へデータを出力するためのインタフェースである。入出力インタフェース13,23,33は、具体例としては、キーボードといった入力装置と、ディスプレイといった出力装置とを接続するUSB(Universal Serial Bus)、PS/2、HDMI(登録商標、High−Definition Multimedia Interface)といったコネクタである。また、入出力インタフェース13,23,33は、具体例としては、外部からネットワークを介してデータを送受信するNIC(Network Interface Card)であってもよい。
【0028】
プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置12、又は、プロセッサ11内のレジスタ又はキャッシュメモリに記憶される。同様に、プロセッサ21によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置22、又は、プロセッサ21内のレジスタ又はキャッシュメモリに記憶される。同様に、プロセッサ31によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置32、又は、プロセッサ31内のレジスタ又はキャッシュメモリに記憶される。
【0029】
プロセッサ11によって実現される各機能を実現するプログラムは、記憶装置12に記憶されているとした。同様に、プロセッサ21によって実現される各機能を実現するプログラムは、記憶装置22に記憶されているとした。同様に、プロセッサ31によって実現される各機能を実現するプログラムは、記憶装置32に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体に記憶されてもよい。
【0030】
図3では、プロセッサ11は、1つだけ示されていた。しかし、鍵生成装置10は、プロセッサ11を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、鍵生成装置10の各部の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ11と同じように、プロセッシングを行うICである。同様に、暗号化装置20は、プロセッサ21を代替する複数のプロセッサを備えていてもよい。また、復号装置30は、プロセッサ31を代替する複数のプロセッサを備えていてもよい。
【0031】
***動作の説明***
図3から図10を参照して、実施の形態1に係る暗号システム1の動作を説明する。
実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
実施の形態1に係る復号装置30の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置30の動作は、実施の形態1に係る復号プログラムの処理に相当する。
【0032】
図3及び図6を参照して、実施の形態1に係るSetupアルゴリズムを説明する。
Setupアルゴリズムは、鍵生成装置10によって実行される。
【0033】
(ステップS11:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λの入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、d=1とを入力として、IPG生成アルゴリズムGenIPG(1λ,d)を実行して、数117に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数117】
【0034】
つまり、図7に示すように、実施の形態1では、t=0,1についての群G及び群G^とペアリング演算eと、群Gと、同種写像φとが生成される。
なお、図7に示されるように、GからGへの変換が“復号鍵生成(KeyGen)”に、G×G^からGへの変換が“暗号化(Enc)”に、G×G^からGへの変換が“復号(Dec)”に大まかに対応している。
【0035】
(ステップS12:ハッシュ関数生成処理)
マスター鍵生成部14は、識別子の空間である体Fの要素を、群Gの要素に変換するランダムなハッシュ関数Hを生成する。
【0036】
(ステップS13:鍵生成乱数生成処理)
マスター鍵生成部14は、一様乱数である鍵生成乱数γを生成する。
【0037】
(ステップS14:マスター鍵生成処理)
マスター鍵生成部14は、ステップS11で生成された公開パラメータpkIPGと、ステップS12で生成されたハッシュ関数Hとを用いて、公開パラメータpk:=((G,G^,et=0,1,g^’:=g^γ,g^,G,H)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS11で生成されたマスター秘密鍵mskIPGと、ステップS13で生成された鍵生成乱数γとを用いて、マスター秘密鍵msk:=(φ,γ)を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0038】
つまり、マスター鍵生成部14は、数118に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数118】
【0039】
図3及び図8を参照して、実施の形態1に係るKeyGenアルゴリズムを説明する。
KeyGenアルゴリズムは、鍵生成装置10によって実行される。
【0040】
(ステップS21:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skIDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
【0041】
(ステップS22:鍵要素生成処理)
復号鍵生成部15は、ステップS21で受け付けられた識別子IDを入力として、公開パラメータpkに含まれるハッシュ関数Hを計算して、群Gの要素である要素hを生成する。
復号鍵生成部15は、マスター秘密鍵mskに含まれる同種写像φ及び鍵生成乱数γで要素hを変換して、要素hを生成する。具体的には、復号鍵生成部15は、数119に示すように、同種写像φ及び鍵生成乱数γで要素hを変換して、鍵要素kである要素hを生成する。
【数119】
つまり、要素hは、鍵生成乱数γで変換された群G(=群G)の要素である。
【0042】
(ステップS23:鍵出力処理)
鍵出力部16は、ステップS21で受け付けられた識別子IDと、ステップS22で生成された要素hとを含む復号鍵skIDを、入出力インタフェース13を介して復号装置30に出力する。この際、鍵出力部16は、何らかの暗号方式で暗号化するといった方法により、復号鍵skIDが第三者に漏えいしないようにする。
【0043】
つまり、復号鍵生成部15は、数120に示すKeyGenアルゴリズムを実行して、復号鍵skIDを生成する。
【数120】
【0044】
図4及び図9を参照して、実施の形態1に係るEncアルゴリズムを説明する。
Encアルゴリズムは、暗号化装置20によって実行される。
【0045】
(ステップS31:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
【0046】
(ステップS32:暗号文生成処理)
暗号文生成部25は、ステップS31で取得された公開パラメータpk及び識別子ID’を用いて、暗号文ctID’の要素を生成する。暗号文生成部25は、群Gの要素Xと群G^の要素Y^との生成要素を用いて暗号文ctID’の要素を生成する。ここで、要素Xは、後述するe(h,g^’)のことであり、要素Y^は、公開パラメータpkに含まれるg^のことである。
暗号文生成処理は、ステップS321からステップS323の処理を含む。
【0047】
(ステップS321:変換情報生成処理)
変換情報生成部251は、ステップS31で受け付けられた識別子ID’を入力として、公開パラメータpkに含まれるハッシュ関数Hを計算して、群Gの要素である要素hを生成する。また、変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素hと、暗号化乱数ζとを用いて、数121に示すように、変換情報zを生成する。
【数121】
つまり、変換情報生成部251は、群Gの要素Xであるe(h,g^’)を、暗号化乱数ζを用いて変換して変換情報zを生成する。また、要素Xであるe(h,g^’)は、g^’:=g^γを含んでいるため、群Gの生成元(g^)が鍵生成乱数γによって変換されて生成されている。
【0048】
(ステップS322:第1暗号要素生成処理)
第1暗号要素生成部252は、数122に示すように、ステップS321で生成された変換情報zに対して、メッセージmを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数122】
【0049】
(ステップS323:第2暗号要素生成処理)
第2暗号要素生成部253は、数123に示すように、要素Y^であるg^に対して暗号化乱数ζを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数123】
【0050】
(ステップS33:暗号文出力処理)
暗号文出力部26は、ステップS31で受け付けられた識別子ID’と、ステップS32で生成された暗号要素c,cとを暗号要素とする暗号文ctID’を、入出力インタフェース23を介して復号装置30に出力する。
【0051】
つまり、暗号化装置20は、数124に示すEncアルゴリズムを実行して、暗号文ctID’を生成する。
【数124】
【0052】
図5及び図10を参照して、実施の形態1に係るDecアルゴリズムを説明する。
Decアルゴリズムは、復号装置30によって実行される。
【0053】
(ステップS41:取得処理)
取得部34は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵skIDと、暗号化装置20によって生成された暗号文ctID’とを取得する。
取得処理は、ステップS411とステップS412との処理を含む。
【0054】
(ステップS411:復号鍵取得処理)
復号鍵取得部341は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵skIDを取得する。ここで、復号鍵skIDは、鍵生成乱数γで変換された群G(=群G)の要素である要素hを鍵要素kとして含む。
【0055】
(ステップS412:暗号文取得処理)
暗号文取得部342は、暗号化装置20によって生成された暗号文ctID’を取得する。ここで、暗号文ctID’は、暗号要素cと、暗号要素cとが含まれる。暗号要素cは、群Gの生成元(e(h,g^))が鍵生成乱数γによって変換されて生成された要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、要素Y^であるg^に対して暗号化乱数ζが設定されている。
【0056】
(ステップS42:復号判定処理)
復号部35は、ステップS41で受け付けられた復号鍵skIDに含まれる識別子IDと、暗号文ctID’に含まれる識別子ID’とが等しいか否かを判定する。これにより、暗号文ctID’を復号鍵skIDで復号可能かが判定される。
復号部35は、識別子IDと識別子ID’とが等しいと判定された場合、つまり復号可能と判定された場合、処理をステップS43に進め、そうでない場合、処理をステップS45に進める。
【0057】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵skIDにより、暗号文ctID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0058】
(ステップS431:変換情報生成処理)
変換情報生成部351は、ステップS411で取得された復号鍵skIDに含まれる要素hと、ステップS412で取得された暗号文ctID’に含まれる暗号要素cとを用いて、数125に示すように、変換情報z’を生成する。
【数125】
ここで、数126であるため、暗号文ctID’を復号鍵skIDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数126】
【0059】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、ステップS412で取得された暗号文ctID’に含まれる暗号要素cとを用いて、数127に示すように、メッセージm’を生成する。
【数127】
【0060】
(ステップS44:メッセージ出力処理)
メッセージ出力部36は、ステップS43で計算されたメッセージm’を、入出力インタフェース33を介して出力する。
【0061】
(ステップS45:識別情報出力処理)
メッセージ出力部36は、復号に失敗したことを示す識別情報⊥を、入出力インタフェース33を介して出力する。
【0062】
つまり、復号装置30は、数128に示すDecアルゴリズムを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数128】
【0063】
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号システム1は、IPGを用いてIBE方式を実現する。IPGは、対応付けが行われた複数の群により構成される。そのため、複数の群の対応付けに使用された写像に基づく問題困難性から安全性を示すことを可能とすることができる。具体的には、IPGでは、群Gと、t=1,...,dの各群Gとの間と、群G^と、t=1,...,dの各群G^との間とが同種写像φによって対応付けられている。これにより、同種写像問題困難性から安全性を示すことを可能とすることができる。
【0064】
また、実施の形態1に係る暗号システム1は、鍵生成乱数γによって変換された生成要素である要素Xを用いて暗号文ctID’を生成する。具体的には、暗号システム1は、要素Xであるe(h,g^’)を用いて暗号文ctID’の要素である暗号要素cを生成する。要素Xであるe(h,g^’)は、群Gの生成元(g^)が鍵生成乱数γによって変換されて生成されている。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0065】
***他の構成***
<変形例1>
実施の形態1では、鍵生成装置10、暗号化装置20、復号装置30の各部の機能がソフトウェアで実現された。変形例1として、鍵生成装置10、暗号化装置20、復号装置30の各部の機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
【0066】
図11から図13を参照して、変形例1に係る鍵生成装置10、暗号化装置20、復号装置30の構成を説明する。
各部の機能がハードウェアで実現される場合、鍵生成装置10、暗号化装置20、復号装置30は、プロセッサ11,21,31と記憶装置12,22,32とに代えて、電子回路18,28,38を備える。電子回路18,28,38は、鍵生成装置10、暗号化装置20、復号装置30の各部の機能と、記憶装置12,22,32の機能とを実現する専用の回路である。
【0067】
電子回路18,28,38は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
鍵生成装置10、暗号化装置20、復号装置30は、電子回路18,28,38を代替する複数の電子回路を備えていてもよい。これら複数の電子回路により、全体として各部の機能が実現される。それぞれの電子回路は、電子回路18,28,38と同じように、専用の回路である。
【0068】
<変形例2>
変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、鍵生成装置10、暗号化装置20、復号装置30の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【0069】
プロセッサ11,21,31と記憶装置12,22,32と電子回路18,28,38とを、処理回路という。つまり、各部の機能は、処理回路により実現される。
【0070】
実施の形態2.
実施の形態2では、高安全なベーシックIBE方式を説明する。
実施の形態2では、実施の形態1と同一の点については説明を省略し、異なる点を説明する。
【0071】
***キーテクニック***
実施の形態2に係るIBE方式で用いられるキーテクニックを説明する。
従来ペアリングを用いて実現されたIBEは、ただ一対のペアリング群G,G^上に、秘密鍵及び暗号文をエンコードしていた。これに対して、実施の形態2に係るIBEは、ID毎に異なる群GID,G^IDをそのIDに対応させる。これらの群GID,G^IDをID群と呼ぶ。
これにより、図14に示す関係が成立する。図14では、矢印は、“if and only if”を意味する。つまり、ID≠ID’である場合かつその場合に限り、GID≠GID’である。また、GID≠GID’である場合かつその場合に限り、G^ID≠G^ID’である。
【0072】
図15から図18を参照して具体的に説明する。なお、以下の説明でIDjが下付きで示されている場合には、このIDjはIDを意味し、ID’jが下付きで示されている場合には、このID’jはID’を意味する。
図15に示すように、Setupアルゴリズムでは、群Gとして、j=1,...,nの各整数jと、ι=0,1の各整数ιとについての群Gj,ι及び群G^j,ιが生成される。つまり、2n個の群Gj,ι及び2n個の群G^j,ιが生成される。
図16に示すように、KeyGenアルゴリズムでは、j=1,...,nの各整数jについてのIDの集合であるIDが入力される。ここで、IDは、0又は1である。そして、j=1,...,nの各整数jについて、IDに対して、群Gj,IDjが割り当てられる。j=1,...,nの各整数jについて、IDに割り当てられた群Gj,IDjの直積がID群GIDである。つまり、ID=01...10である場合には、ID群GID:=G1,0×G2,1×・・・×Gn−1,1×Gn,0である。
図17に示すように、Encアルゴリズムでは、j=1,...,nの各整数jについてのID’の集合であるID’が入力される。ここで、ID’は、0又は1である。そして、j=1,...,nの各整数jについて、ID’に対して、群G^j,ID’jが割り当てられる。j=1,...,nの各整数jについて、ID’に割り当てられた群G^j,ID’jの直積がID群G^ID’である。つまり、ID’=01...10である場合には、ID群G^ID’:=G^1,0×G^2,1×・・・×G^n−1,1×G^n,0である。
図18に示すように、Decアルゴリズムでは、j=1,...,nの各整数jについて、IDに割り当てられた群Gj,IDjの要素と、ID’に割り当てられた群G^j、ID’jの要素とのペアリング演算の直積が計算される。このとき、ID=ID’であれば、j=1,...,nの各整数jについての群Gj,IDjと群G^j,ID’jとが対応している。そのため、j=1,...,nの各整数jについてペアリング演算が計算された結果が群Gの要素になる。しかし、ID≠ID’である場合には、j=1,...,nのうち少なくとも一部の整数jについての群Gj,IDjと群G^j,ID’jとが対応していない。そのため、j=1,...,nのうち少なくとも一部の整数jについてペアリング演算が計算された結果が群Gの要素にならない。一部の整数jについてでもペアリング演算が計算された結果が群Gの要素にならなければ、正しく復号することはできない。
【0073】
***構成の説明***
図19を参照して、実施の形態2に係る鍵生成装置10の構成を説明する。
鍵生成装置10は、機能構成要素としてID群割当部17を備える点が図3に示す鍵生成装置10と異なる。ID群割当部17は、他の機能構成要素の機能と同様に、ソフトウェア又はハードウェアにより実現される。
【0074】
図20を参照して、実施の形態2に係る暗号化装置20の構成を説明する。
暗号化装置20は、機能構成要素としてID群割当部27を備える点が図4に示す暗号化装置20と異なる。ID群割当部27は、他の機能構成要素の機能と同様に、ソフトウェア又はハードウェアにより実現される。
【0075】
***動作の説明***
図5と、図10と、図19から図23とを参照して、実施の形態2に係る暗号システム1の動作を説明する。実施の形態2についても、実施の形態1と同様に各動作は、各方法及び各プログラムの処理に相当する。
【0076】
図19及び図21を参照して、実施の形態2に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λと、IDのビット数である値nとの入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、d=2nとを入力として、IPG生成アルゴリズムGenIPG(1λ,d)を実行して、数129に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数129】
【0077】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報sを生成する。
マスター鍵生成部14は、数130に示すように、群Gの要素gに秘密情報sを設定して要素hを生成する。
【数130】
【0078】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、j=1,...,nの各整数jと、ι=0,1の各整数ιとについて、一様乱数である鍵生成乱数τj,ιを生成する。
マスター鍵生成部14は、j=1,...,nの各整数jと、ι=0,1の各整数ιとについて、数131に示すように、群G^j,ιの要素g^j,ιに、鍵生成乱数τj,ιを設定して要素h^j,ιを生成する。
【数131】
また、マスター鍵生成部14は、j=1,...,nの各整数jと、ι=0,1の各整数ιとについて、数132に示すように、群Gj,ιの要素gj,ιに、鍵生成乱数τj,ιの逆数1/τj,ιを設定して要素hj,ιを生成する。
【数132】
【0079】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpkIPGと、ステップS52で生成された要素hと、ステップS53で生成された要素h^j,ιとを用いて、公開パラメータpk:=((Gj,ι,G^j,ι,h^j,ι,ej,ιj∈[n],ι∈[0,1],G,h)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報sと、ステップS53で生成された要素hj,ιとを用いて、マスター秘密鍵msk:=(s,(hj,ιj∈[n],ι∈[0,1])を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0080】
つまり、マスター鍵生成部14は、数133に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数133】
【0081】
図19及び図22を参照して、実施の形態2に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skIDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
上述した通り、識別子ID:=(IDj=1,...,nである。また、各IDは、0又は1である。
【0082】
(ステップS62:ID群割当処理)
ID群割当部17は、j=1,...,nの各整数jについてのIDを、群Gである群Gj,ιのうちの異なる群に割り当てる。具体的には、ID群割当部17は、j=1,...,nの各整数jについてのIDを、群Gj,IDjに割り当てる。そして、ID群割当部17は、j=1,...,nの各整数jについての群Gj,IDjの直積をID群GIDとする。つまり、ID群割当部17は、数134に示すように、ID群GIDを生成する。
【数134】
ID群割当部17は、マスター秘密鍵mskに含まれる要素hj,ιのうち、ID群GIDに含まれる要素hj,ιの集合を、要素hIDとして生成する。具体的には、ID群割当部17は、数135に示すように、要素hIDを生成する。
【数135】
【0083】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数136に示すように、分散情報sをランダムに生成する。分散情報sは、秘密情報sを分散させた情報である。
【数136】
【0084】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数137に示すように、ステップS62で生成された要素hIDに、ステップS63で生成された分散情報sを設定して、鍵要素kを生成する。
【数137】
【0085】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵skIDを、入出力インタフェース13を介して復号装置30に出力する。
【0086】
つまり、復号鍵生成部15は、数138に示すKeyGenアルゴリズムを実行して、復号鍵skIDを生成する。
【数138】
【0087】
図20及び図23を参照して、実施の形態2に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
上述した通り、識別子ID’:=(ID’j=1,...,nである。また、各ID’は、0又は1である。
【0088】
(ステップS72:ID群割当処理)
ID群割当部27は、j=1,...,nの各整数jについてのID’を、群G^である群G^j,ιのうちの異なる群に割り当てる。具体的には、ID群割当部17は、j=1,...,nの各整数jについてのID’を、群G^j,ID’jに割り当てる。そして、ID群割当部17は、j=1,...,nの各整数jについての群G^j,ID’jの直積をID群G^IDとする。つまり、ID群割当部17は、数139に示すように、ID群G^IDを生成する。
【数139】
ID群割当部17は、公開パラメータpkに含まれる要素h^j,ιのうち、ID群G^IDに含まれる要素h^j,ιの集合を、要素h^IDとして生成する。具体的には、ID群割当部17は、数140に示すように、要素h^IDを生成する。
【数140】
【0089】
(ステップS73:暗号文生成処理)
暗号文生成部25は、ステップS71で取得された公開パラメータpkと、ステップS72で生成された要素h^IDとを用いて、暗号文ctID’の要素を生成する。暗号文生成部25は、群Gの要素Xと群G^の要素Y^との生成要素を用いて暗号文ctID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素hのことであり、要素Y^は、ステップS72で生成された要素h^IDのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0090】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素hと、暗号化乱数ζとを用いて、数141に示すように、変換情報zを生成する。
【数141】
【0091】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数142に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数142】
【0092】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数143に示すように、要素Y^である要素h^IDに対して暗号化乱数ζを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数143】
【0093】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c,cとを暗号要素とする暗号文ctID’を、入出力インタフェース23を介して復号装置30に出力する。
【0094】
つまり、暗号化装置20は、数144に示すEncアルゴリズムを実行して、暗号文ctID’を生成する。
【数144】
【0095】
図5及び図10を参照して、実施の形態2に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態1と同じである。
但し、復号鍵skIDは、要素hIDに分散情報sが設定された鍵要素kを含む。ここで、要素hIDは、要素hj,ιを用いて生成される。要素hj,ιは、群Gj,ιの要素gj,ιに、鍵生成乱数τj,ιの逆数1/τj,ιを設定してされる。したがって、復号鍵skIDは、鍵生成乱数τj,ιで変換された群G(=群Gj,ι)の要素である鍵要素kを含む。
また、暗号文ctID’は、暗号要素cと、暗号要素cとが含まれる。暗号要素cは、群Gの生成元hである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^の生成元g^j,ιが鍵生成乱数τj,ιによって変換された要素Y^である要素h^IDに対して暗号化乱数ζが設定されている。
【0096】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵skIDにより、暗号文ctID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0097】
(ステップS431:変換情報生成処理)
変換情報生成部351は、復号鍵skIDに含まれる要素kと、暗号文ctID’に含まれる暗号要素cとを用いて、数145に示すように、変換情報z’を生成する。
【数145】
ここで、数146であるため、暗号文ctID’を復号鍵skIDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数146】
【0098】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ctID’に含まれる暗号要素cとを用いて、数147に示すように、メッセージm’を生成する。
【数147】
【0099】
つまり、復号装置30は、数148に示すDecアルゴリズムを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数148】
【0100】
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号システム1は、実施の形態1に係る暗号システム1と同様に、IPGを用いてIBE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態2に係る暗号システム1は、鍵生成乱数τj,ιによって変換された生成要素である要素Y^を用いて暗号文ctID’を生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0101】
実施の形態2に係る暗号システム1は、ID群GID,G^IDを用いる。これにより、識別子IDと識別子ID’とが一致しない場合には、群GIDと群G^IDとが一致しない。そのため、復号ができない状態とすることができる。
【0102】
実施の形態2に係る暗号システム1では、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとでは、同種写像φを用いていない。その結果、ハッシュ関数Hを用いる必要がない。
なお、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとでは、同種写像φを用いていないため、図21のステップS51でGenIPGアルゴリズムは、同種写像φを出力しなくてもよい。
【0103】
実施の形態3.
実施の形態3では、小さい属性集合のABE方式を説明する。
実施の形態3では、実施の形態2と同一の点については説明を省略し、異なる点を説明する。
【0104】
実施の形態3では、復号鍵に復号条件であるポリシーが設定される鍵ポリシー型のABE(以下、KP−ABE)方式について説明する。なお、KP−ABE方式を、暗号文にポリシーが設定される暗号文ポリシー型のABE(以下、CP−ABE)方式にNaor変換といった方法により変換することも可能である。
【0105】
***構成の説明***
KP−ABE方式は、Setupアルゴリズムと、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとを備える。
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、公開パラメータpkと、マスター秘密鍵mskとを出力する。
KeyGenアルゴリズムは、公開パラメータpkと、マスター秘密鍵mskと、アクセスストラクチャS:=(M,ρ)とを入力として、入力タグtag及びアクセスストラクチャSに対応した復号鍵skを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、属性集合Γを入力として、暗号文ctΓを出力する。
Decアルゴリズムは、公開パラメータpkと、アクセスストラクチャSに対応した復号鍵skと、属性集合Γの下で暗号化された暗号文ctΓとを入力として、メッセージm’∈msg、又は、復号に失敗したことを示す識別情報⊥を出力する。
【0106】
図24を参照して、実施の形態3に係る暗号システム1の構成を説明する。
暗号システム1は、鍵生成装置10と、暗号化装置20と、復号装置30とを備える。鍵生成装置10と、暗号化装置20と、復号装置30とは、伝送路を介して接続されている。伝送路は、具体例としては、LAN(Local Area Network)、又は、インターネットである。鍵生成装置10と、暗号化装置20と、復号装置30とは、伝送路を介して通信可能である。
【0107】
鍵生成装置10は、セキュリティパラメータ1λを入力として、Setupアルゴリズムを実行して、公開パラメータpkと、マスター秘密鍵mskとを生成する。また、鍵生成装置10は、公開パラメータpkと、マスター秘密鍵mskと、アクセスストラクチャS:=(M,ρ)とを入力として、KeyGenアルゴリズムを実行して、復号鍵skを生成する。
鍵生成装置10は、公開パラメータpkを公開し、復号鍵skをアクセスストラクチャSに対応する復号装置30に出力する。鍵生成装置10は、マスター秘密鍵mskを保管する。
【0108】
暗号化装置20は、公開パラメータpkと、メッセージmと、属性集合Γとを入力として、Encアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置20は、暗号文ctΓを復号装置30に出力する。
【0109】
復号装置30は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力として、Decアルゴリズムを実行して、メッセージm’、又は、復号に失敗したことを示す識別情報⊥を生成する。
【0110】
***概念の説明***
実施の形態2に係るABE方式で用いられる概念について説明する。
スパンプログラムについて説明する。スパンプログラムは既存の概念であるため、ここでは以下の説明で必要な範囲だけ簡単に説明する。
【0111】
体F上のスパンプログラムは、ラベル付けされた行列S:=(M,ρ)である。ここで、行列Mは、体F上の(L行×r列)の行列である。ラベルρは、{(t,v),(t’,v’),...}から属性に応じて行列Mの行に対して付されたラベルである。なお、各行が1つの属性にラベル付けされる。つまり、ρ:{1,...,L}→{(t,v),(t’,v’),...}である。
スパンプログラムは、以下の基準に従い、入力を受理又は拒絶する。Γを属性集合とする。つまり、Γ:={(t,x)}1≦j≦d’(x∈Utj)である。1∈span<(Mρ(i)∈Γ>の場合に限り、スパンプログラムSは属性集合Γを受理する。スパンプログラムSが属性集合Γを受理することを、R(S,Γ)=1と表す。つまり、行列Mの行(Mρ(i)∈Γの線形結合によって全ての要素が1のベクトルが得られる場合に限り、スパンプログラムSは属性集合Γを受理する。スパンプログラムSをアクセスストラクチャと呼ぶ。
【0112】
***動作の説明***
図5と、図10と、図19から図23とを参照して、実施の形態3に係る暗号システム1の動作を説明する。実施の形態3についても、実施の形態2と同様に各動作は、各方法及び各プログラムの処理に相当する。
【0113】
図19及び図21を参照して、実施の形態3に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λと、属性の最大数である値dとの入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、dとを入力として、IPG生成アルゴリズムGenIPG(1λ,d)を実行して、数149に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数149】
【0114】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報sを生成する。
マスター鍵生成部14は、数150に示すように、群Gの要素gに秘密情報sを設定して要素hを生成する。
【数150】
【0115】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]の各整数tについて、一様乱数である鍵生成乱数τを生成する。
マスター鍵生成部14は、t∈[d]の各整数tについて、数151に示すように、群G^の要素g^に、鍵生成乱数τを設定して要素h^を生成する。
【数151】
また、マスター鍵生成部14は、t∈[d]の各整数tについて、数152に示すように、群Gの要素gに、鍵生成乱数τの逆数1/τを設定して要素hを生成する。
【数152】
【0116】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpkIPGと、ステップS52で生成された要素hと、ステップS53で生成された要素h^とを用いて、公開パラメータpk:=((G,G^,h^,et∈[d],G,h)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報sと、ステップS53で生成された要素hとを用いて、マスター秘密鍵msk:=(s,(ht∈[d])を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0117】
つまり、マスター鍵生成部14は、数153に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数153】
【0118】
図19及び図22を参照して、実施の形態3に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skを使用するユーザのアクセスストラクチャS:=(M,ρ)の入力を受け付ける。アクセスストラクチャSは、復号鍵skで復号可能な範囲を示す情報である。
【0119】
(ステップS62:ID群割当処理)
ID群割当部17は、i∈[L]の各整数iについて、t=ρ(i)である群Gの直積をID群GIDとする。ID群割当部17は、マスター秘密鍵mskに含まれる要素hのうち、ID群GIDに含まれる要素hの集合を、要素hIDとして生成する。具体的には、ID群割当部17は、数154に示すように、要素hIDを生成する。
【数154】
【0120】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数155に示すように、分散情報sを生成する。
【数155】
【0121】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数156に示すように、ステップS62で生成された要素hIDに、ステップS63で生成された分散情報sを設定して、鍵要素k:={k}を生成する。
【数156】
【0122】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられたアクセスストラクチャSと、ステップS64で生成された鍵要素k:={k}とを含む復号鍵skを、入出力インタフェース13を介して復号装置30に出力する。
【0123】
つまり、復号鍵生成部15は、数157に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。
【数157】
【0124】
図20及び図23を参照して、実施の形態3に係るEncアルゴリズムを説明する。
ステップS73の処理は、実施の形態2と同じである。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる属性集合Γとの入力を受け付ける。
【0125】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈Γの各整数tについて、群G^の直積をID群G^IDとする。ID群割当部17は、公開パラメータpkに含まれる要素h^のうち、ID群G^IDに含まれる要素h^の集合を、要素h^IDとして生成する。具体的には、ID群割当部17は、数158に示すように、要素h^IDを生成する。
【数158】
【0126】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた属性集合Γと、ステップS73で生成された暗号要素c,c:={c:=h^ζ}とを暗号要素とする暗号文ctΓを、入出力インタフェース23を介して復号装置30に出力する。
【0127】
つまり、暗号化装置20は、数159に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。
【数159】
【0128】
図5及び図10を参照して、実施の形態3に係るDecアルゴリズムを説明する。
ステップS44とステップS45との処理は、実施の形態2と同じである。
【0129】
(ステップS41:取得処理)
取得部34は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵skと、暗号化装置20によって生成された暗号文ctΓとを取得する。
【0130】
(ステップS411:復号鍵取得処理)
復号鍵取得部341は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵skを取得する。ここで、復号鍵skは、要素hIDに分散情報sが設定された鍵要素k:={k}を含む。つまり、実施の形態2と同様に、復号鍵skは、鍵生成乱数τで変換された群Gの要素である鍵要素kを含む。
【0131】
(ステップS412:暗号文取得処理)
暗号文取得部342は、暗号化装置20によって生成された暗号文ctΓを取得する。ここで、暗号文ctΓは、暗号要素cと、暗号要素c:={c}とが含まれる。暗号要素cは、群Gの生成元hである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^の生成元g^が鍵生成乱数τによって変換された要素Y^である要素h^IDに対して暗号化乱数ζが設定されている。
【0132】
(ステップS42:復号判定処理)
復号部35は、ステップS41で受け付けられた復号鍵skに含まれるアクセスストラクチャSが、暗号文ctΓに含まれる属性集合Γを受理するか否かを判定する。これにより、暗号文ctΓを復号鍵skで復号可能かが判定される。
復号部35は、受理すると判定された場合、つまり復号可能と判定された場合、処理をステップS43に進め、そうでない場合、処理をステップS45に進める。
【0133】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵skにより、暗号文ctΓを復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0134】
(ステップS431:変換情報生成処理)
変換情報生成部351は、数160に示す補完係数σを計算する。
【数160】
変換情報生成部351は、補完係数σと、復号鍵skに含まれる要素kと、暗号文ctΓに含まれる暗号要素cとを用いて、数161に示すように、変換情報z’を生成する。
【数161】
ここで、数162であるため、暗号文ctΓを復号鍵skが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数162】
【0135】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ctΓに含まれる暗号要素cとを用いて、数163に示すように、メッセージm’を生成する。
【数163】
【0136】
つまり、復号装置30は、数164に示すDecアルゴリズムを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数164】
【0137】
***実施の形態3の効果***
以上のように、実施の形態3に係る暗号システム1は、IPGを用いてABE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態3に係る暗号システム1は、鍵生成乱数τによって変換された生成要素である要素Y^を用いて暗号文ctΓを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0138】
実施の形態4.
実施の形態4では、大きい属性集合のABE方式を説明する。
実施の形態4では、実施の形態3と同一の点については説明を省略し、異なる点を説明する。
【0139】
実施の形態3では、属性集合Γには属性tが含まれた。実施の形態4では、属性集合Γには、属性のカテゴリtと、カテゴリtについての属性x:=(xt,j)∈{0,1}が含まれる。
なお、以下の説明において、xtが下付きで示されている場合には、このxtはxを意味し、viが下付きで示されている場合には、このviはvを意味する。
【0140】
***動作の説明***
図5と、図10と、図19から図23とを参照して、実施の形態4に係る暗号システム1の動作を説明する。実施の形態4についても、実施の形態3と同様に各動作は、各方法及び各プログラムの処理に相当する。
【0141】
図19及び図21を参照して、実施の形態4に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λと、属性の最大数である値dと、各カテゴリtについてのビット数を表す値nとの入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、dと、nとを入力として、IPG生成アルゴリズムGenIPG(1λ,d,n)を実行して、数165に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数165】
【0142】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報sを生成する。
マスター鍵生成部14は、数166に示すように、群Gの要素gに秘密情報sを設定して要素hを生成する。
【数166】
【0143】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]とj∈[n]とι∈[0,1]との各整数t,j,ιについて、一様乱数である鍵生成乱数τt,j,ιを生成する。
マスター鍵生成部14は、t∈[d]とj∈[n]とι∈[0,1]との各整数t,j,ιについて、数167に示すように、群G^t,j,ιの要素g^t,j,ιに、鍵生成乱数τt,j,ιを設定して要素h^t,j,ιを生成する。
【数167】
また、マスター鍵生成部14は、t∈[d]とj∈[n]とι∈[0,1]との各整数t,j,ιについて、数168に示すように、群Gt,j,ιの要素gt,j,ιに、鍵生成乱数τt,j,ιの逆数1/τt,j,ιを設定して要素ht,j,ιを生成する。
【数168】
【0144】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpkIPGと、ステップS52で生成された要素hと、ステップS53で生成された要素h^t,j,ιとを用いて、公開パラメータpk:=((Gt,j,ι,G^t,j,ι,h^t,j,ι,et,j,ιt∈[d],j∈[n],ι∈[0,1],G,h)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報sと、ステップS53で生成された要素ht,j,ιとを用いて、マスター秘密鍵msk:=(s,(ht,j,ιt∈[d],j∈[n],ι∈[0,1])を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0145】
つまり、マスター鍵生成部14は、数169に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数169】
【0146】
図19及び図22を参照して、実施の形態4に係るKeyGenアルゴリズムを説明する。
ステップS61の処理は、実施の形態3と同じである。
【0147】
(ステップS62:ID群割当処理)
ID群割当部17は、i∈[L]の各整数iについて、ρ(i)=(t,v:=(vi,j)∈{0,1})である場合に、j=1,...,nの各整数jについての群Gt,j,viの直積をID群Gt,viとする。なお、ID群Gt,viは、t番目の基底群である。つまり、ID群割当部17は、数170に示すように、ID群Gt,viを生成する。
【数170】
ID群割当部17は、マスター秘密鍵mskに含まれる要素ht,j,ιのうち、ID群Gt,viに含まれる要素ht,j,ιの集合を、要素ht,viとして生成する。具体的には、ID群割当部17は、数171に示すように、要素ht,viを生成する。
【数171】
【0148】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、i∈[L]の各整数iについて、数172に示すように、分散情報sを生成する。
【数172】
【0149】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数173に示すように、ステップS62で生成された要素ht,viに、ステップS63で生成された分散情報sを設定して、鍵要素kを生成する。
【数173】
【0150】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられたアクセスストラクチャSと、ステップS64で生成された鍵要素k:={k}とを含む復号鍵skを、入出力インタフェース13を介して復号装置30に出力する。
【0151】
つまり、復号鍵生成部15は、数174に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。
【数174】
【0152】
図20及び図23を参照して、実施の形態4に係るEncアルゴリズムを説明する。
ステップS73とステップS74との処理は、実施の形態2と同じである。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる属性集合Γとの入力を受け付ける。
【0153】
(ステップS72:ID群割当処理)
ID群割当部27は、(t,x:=(xt,j)∈{0,1})∈Γの各整数tについて、j=1,...,nの各整数jの群G^t,j,xtの直積をID群G^t,xtとする。つまり、ID群割当部27は、数175に示すように、ID群G^t,xtを生成する。
【数175】
ID群割当部17は、公開パラメータpkに含まれる要素h^t,j,xtのうち、ID群G^t,xtに含まれる要素h^t,j,xtの集合を、要素h^t,xtとして生成する。具体的には、ID群割当部17は、数176に示すように、要素h^t,xtを生成する。
【数176】
【0154】
(ステップS73:暗号文生成処理)
暗号文生成部25は、ステップS71で取得された公開パラメータpkと、ステップS72で生成された要素h^t,xtとを用いて、暗号文ctΓの要素を生成する。暗号文生成部25は、群Gの要素Xと群G^t,xtの要素Y^との生成要素を用いて暗号文ctΓの要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素hのことであり、要素Y^は、ステップS72で生成された要素h^t,xtのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0155】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素hと、暗号化乱数ζとを用いて、数177に示すように、変換情報zを生成する。
【数177】
【0156】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数178に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ctΓの要素である暗号要素cを生成する。
【数178】
【0157】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数179に示すように、(t,x:=(xt,j)∈{0,1})∈Γの各整数tについて、要素Y^である要素h^t,xtに対して暗号化乱数ζを設定して暗号文ctΓの要素である暗号要素cを生成する。
【数179】
【0158】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた属性集合Γと、ステップS73で生成された暗号要素c,c:={ct∈Γとを暗号要素とする暗号文ctΓを、入出力インタフェース23を介して復号装置30に出力する。
【0159】
つまり、暗号化装置20は、数180に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。
【数180】
【0160】
図5及び図10を参照して、実施の形態4に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態3と同じである。
但し、復号鍵skは、要素ht,viに分散情報sが設定された鍵要素kを含む。つまり、実施の形態3と同様に、復号鍵skは、鍵生成乱数τt,j,ιで変換された群Gt,viの要素である鍵要素k:={k}を含む。
また、暗号文ctΓは、暗号要素cと、暗号要素cとが含まれる。暗号要素cは、群Gの生成元hである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^t,xtの生成元g^t,j,ιが鍵生成乱数τt,j,ιによって変換された要素Y^である要素h^t,xtに対して暗号化乱数ζが設定されている。
【0161】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵skにより、暗号文ctΓを復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0162】
(ステップS431:変換情報生成処理)
変換情報生成部351は、数181に示す補完係数σを計算する。
【数181】
変換情報生成部351は、補完係数σと、復号鍵skに含まれる要素k:={k}と、暗号文ctΓに含まれる暗号要素c:={c}とを用いて、数182に示すように、変換情報z’を生成する。
【数182】
ここで、数183であるため、暗号文ctΓを復号鍵skが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数183】
【0163】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ctΓに含まれる暗号要素cとを用いて、数184に示すように、メッセージm’を生成する。
【数184】
【0164】
つまり、復号装置30は、数185に示すDecアルゴリズムを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数185】
【0165】
***実施の形態4の効果***
以上のように、実施の形態4に係る暗号システム1は、IPGを用いてABE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態4に係る暗号システム1は、鍵生成乱数τt,j,ιによって変換された生成要素である要素Y^を用いて暗号文ctΓを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0166】
実施の形態5.
実施の形態5では、実施の形態2で説明したIBE方式に基づく、階層的なIBE(Hierarchical IBE,以下HIBE)を説明する。
実施の形態5では、実施の形態2と同一の点については説明を省略し、異なる点を説明する。
【0167】
実施の形態5では、まず1ビットHIBEを説明し、次に1ビットHIBEを応用したn(n≧1)ビットHIBEを説明する。
【0168】
***構成の説明***
HIBE方式は、Setupアルゴリズムと、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズム、Delegateアルゴリズムとを備える。
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、公開パラメータpkと、マスター秘密鍵mskとを出力する。
KeyGenアルゴリズムは、公開パラメータpkと、マスター秘密鍵mskと、識別子IDとを入力として、識別子IDに対応した復号鍵skIDを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、識別子ID’とを入力として、暗号文ctID’を出力する。
Decアルゴリズムは、公開パラメータpkと、識別子IDに対応した復号鍵skIDと、識別子ID’の下で暗号化された暗号文ctID’とを入力として、メッセージm’∈msg、又は、復号に失敗したことを示す識別情報⊥を出力する。
Delegateアルゴリズムは、公開パラメータpkと、長さLの階層的な識別子IDに対応した秘密鍵skIDと、L+1番目のIDL+1とを入力として、長さL+1の階層的な識別子ID’:=(ID,IDL+1)に対応した秘密鍵skID’、又は、鍵生成に失敗したことを示す識別情報⊥を出力する。
【0169】
図25を参照して、実施の形態5に係る暗号システム1の構成を説明する。
暗号システム1は、鍵生成装置10と、暗号化装置20と、復号装置30と、鍵委譲装置40とを備える。鍵生成装置10と、暗号化装置20と、復号装置30と、鍵委譲装置40とは、伝送路を介して接続されている。
【0170】
鍵委譲装置40は、公開パラメータpkと、長さLの階層的な識別子IDに対応した秘密鍵skIDと、L+1番目のIDL+1とを入力として、Delegateアルゴリズムを実行して、長さL+1の階層的な識別子ID’:=(ID,IDL+1)に対応した秘密鍵skID’、又は、鍵生成に失敗したことを示す識別情報⊥を生成する。
【0171】
図26を参照して、実施の形態5に係る鍵委譲装置40の構成を説明する。
鍵委譲装置40は、プロセッサ41と、記憶装置42と、入出力インタフェース43とのハードウェアを備える。プロセッサ41は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0172】
鍵委譲装置40は、機能構成要素として、取得部44と、ID群割当部45と、下位鍵生成部46と、下位鍵出力部47とを備える。取得部44と、ID群割当部45と、下位鍵生成部46と、下位鍵出力部47との各部の機能はソフトウェアにより実現される。
記憶装置42には、鍵委譲装置40の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ41により読み込まれ、プロセッサ41によって実行される。これにより、鍵委譲装置40の各部の機能が実現される。
【0173】
***動作の説明***
図19から図23と、図26と、図27とを参照して、実施の形態5に係る暗号システム1の動作を説明する。実施の形態5についても、実施の形態2と同様に各動作は、各方法及び各プログラムの処理に相当する。また、実施の形態5に係る鍵委譲装置40の動作は、実施の形態5に係る鍵委譲方法と、実施の形態5に係る鍵委譲プログラムの処理とに対応する。
なお、Decアルゴリズムは、実施の形態2と同じであるため、説明を省略する。
【0174】
まず、1ビットHIBEを説明する。
なお、以下の説明でIDtが下付きで示されている場合には、このIDtはIDを意味し、ID’tが下付きで示されている場合には、このID’tはID’を意味する。
【0175】
図19及び図21を参照して、実施の形態5に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λと、階層数である値d≧2との入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、2dとを入力として、IPG生成アルゴリズムGenIPG(1λ,2d)を実行して、数186に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数186】
【0176】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報sを生成する。
マスター鍵生成部14は、数187に示すように、群Gの要素gに秘密情報sを設定して要素hを生成する。
【数187】
【0177】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、一様乱数である鍵生成乱数τt,ιを生成する。
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数188に示すように、群G^t,ιの要素g^t,ιに、鍵生成乱数τt,ιを設定して要素h^t,ιを生成する。
【数188】
また、マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数189に示すように、群Gt,ιの要素gt,ιに、鍵生成乱数τt,ιを設定して要素ht,ιを生成する。
【数189】
【0178】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpkIPGと、ステップS52で生成された要素hと、ステップS53で生成された要素h^t,ιと要素ht,ιとを用いて、公開パラメータpk:=((Gt,ι,G^t,ι,ht,ι,h^t,ι,et,ιt∈[d],ι∈[0,1],G,h)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報sを用いて、マスター秘密鍵msk:=sを生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0179】
つまり、マスター鍵生成部14は、数190に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数190】
【0180】
図19及び図22を参照して、実施の形態5に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skIDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
ここでは、識別子ID:=(IDt∈[L]であるとする。L<dである。また、各IDは、0又は1である。
【0181】
(ステップS62:ID群割当処理)
ID群割当部17は、t∈[L]の各整数tについてのIDを、群Gt,IDtに割り当てる。そして、ID群割当部17は、t∈[L]の各整数tについての群Gt,IDtの直積をID群GIDとする。つまり、ID群割当部17は、数191に示すように、ID群GIDを生成する。
【数191】
ID群割当部17は、数192に示すように、要素hIDを生成する。
【数192】
【0182】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数193に示すように、分散情報sを生成する。分散情報sは、秘密情報sを分散させた情報である。
【数193】
【0183】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数194に示すように、ステップS62で生成された要素hIDに、ステップS63で生成された分散情報sを設定して、鍵要素kを生成する。
【数194】
【0184】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵skIDを、入出力インタフェース13を介して復号装置30に出力する。
【0185】
つまり、復号鍵生成部15は、数195に示すKeyGenアルゴリズムを実行して、復号鍵skIDを生成する。
【数195】
【0186】
図20及び図23を参照して、実施の形態5に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
ここでは、識別子ID’:=(ID’t∈[L]であるとする。L<dである。また、各IDは、0又は1である。
【0187】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈[L]の各整数tについてのID’を、群G^t,IDtに割り当てる。そして、ID群割当部27は、t∈[L]の各整数tについての群G^t,ID’tの直積をID群G^IDとする。つまり、ID群割当部27は、数196に示すように、ID群G^IDを生成する。
【数196】
ID群割当部27は、数197に示すように、要素h^IDを生成する。
【数197】
【0188】
(ステップS73:暗号文生成処理)
暗号文生成部25は、ステップS71で取得された公開パラメータpkと、ステップS72で生成された要素h^IDとを用いて、暗号文ctID’の要素を生成する。暗号文生成部25は、群Gの要素Xと群G^の要素Y^との生成要素を用いて暗号文ctID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素hのことであり、要素Y^は、ステップS72で生成された要素h^IDとのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0189】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素hと、暗号化乱数ζとを用いて、数198に示すように、変換情報zを生成する。
【数198】
【0190】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数199に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数199】
【0191】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数200に示すように、要素Y^である要素h^IDに対して暗号化乱数ζを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数200】
【0192】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c,cとを暗号要素とする暗号文ctID’を、入出力インタフェース23を介して復号装置30に出力する。
【0193】
つまり、暗号化装置20は、数201に示すEncアルゴリズムを実行して、暗号文ctID’を生成する。
【数201】
【0194】
図26及び図27を参照して、実施の形態5に係るDelegateアルゴリズムを説明する。
Delegateアルゴリズムは、鍵委譲装置40によって実行される。
【0195】
(ステップS81:取得処理)
取得部44は、入出力インタフェース43を介して、鍵生成装置10によって生成された公開パラメータpkと、下位の鍵の生成対象である復号鍵skID:=kを取得する。また、取得部44は、入出力インタフェース43を介して、復号鍵skIDの下位の復号鍵skID*を使用するユーザの識別子IDL+1∈{0,1}の入力を受け付ける。
【0196】
(ステップS82:ID群割当処理)
ID群割当部45は、ID:=(ID,IDL+1)とする。また、ID群割当部45は、数202に示すように、ID群GID*を生成する。
【数202】
ID群割当部45は、数203に示すように、要素kと、要素hID*とを生成する。
【数203】
【0197】
(ステップS83:分散情報生成処理)
下位鍵生成部46は、数204に示すように、分散情報τ’を生成する。
【数204】
【0198】
(ステップS84:鍵要素生成処理)
下位鍵生成部46は、数205に示すように、ステップS82で生成された要素hID*に、ステップS83で生成された分散情報τ’を設定して、鍵要素kID*を生成する。
【数205】
【0199】
(ステップS85:鍵出力処理)
下位鍵出力部47は、識別子IDと、ステップS64で生成された鍵要素kID*とを含む下位の復号鍵skID*を、入出力インタフェース13を介して復号装置30に出力する。
【0200】
つまり、復号鍵生成部15は、数206に示すDelegateアルゴリズムを実行して、下位の復号鍵skID*を生成する。
【数206】
【0201】
次に、上述した1ビットHIBEを応用したn(n≧1)ビットHIBEを説明する。
nビットHIBE方式は、1ビットHIBEのSetupアルゴリズムと、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズム、Delegateアルゴリズムとを用いて構成される。
【0202】
nビットHIBE方式の説明では、上述した1ビットHIBE方式のSetupアルゴリズムを、obHIBE_Setupと呼ぶ。また、1ビットHIBE方式のKeyGenアルゴリズムを、obHIBE_KeyGenと呼ぶ。1ビットHIBE方式のEncアルゴリズムを、obHIBE_Encと呼ぶ。1ビットHIBE方式のDecアルゴリズムを、obHIBE_Decと呼ぶ。1ビットHIBE方式のDelegateアルゴリズムを、obHIBE_Delegateと呼ぶ。
これに対して、nビットHIBE方式のSetupアルゴリズムを、nbHIBE_Setupと呼ぶ。また、nビットHIBE方式のKeyGenアルゴリズムを、nbHIBE_KeyGenと呼ぶ。nビットHIBE方式のEncアルゴリズムを、nbHIBE_Encと呼ぶ。nビットHIBE方式のDecアルゴリズムを、nbHIBE_Decと呼ぶ。nビットHIBE方式のDelegateアルゴリズムを、nbHIBE_Delegateと呼ぶ。
【0203】
nbHIBE_Setupを説明する。
マスター鍵生成部14は、セキュリティパラメータ1λと、階層数である値dと、ビット数である値nとの入力を受け付ける。
マスター鍵生成部14は、セキュリティパラメータ1λと、値d×nとを入力として、obHIBE_Setupを実行して、公開パラメータpkobとマスター秘密鍵mskobとを生成する。マスター鍵生成部14は、公開パラメータpkobをnビットHIBE方式の公開パラメータpkとし、マスター秘密鍵mskobをnビットHIBE方式のマスター秘密鍵mskとする。
つまり、マスター鍵生成部14は、数207に示すnbHIBE_Setupを実行して、マスター鍵ペアを生成する。
【数207】
【0204】
nbHIBE_KeyGenを説明する。
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skIDを使用するユーザの識別子IDの入力を受け付ける。ここでは、識別子ID:=(ID:=(IDt,j))t∈[L],j∈[n]であるとする。L<dである。また、各IDt,jは、0又は1である。
ID^:=(IDt,jt∈[L],j∈[n]は、階層数Lnの階層的な1ビットの識別子として扱われる。復号鍵生成部15は、nbHIBE_Setupで生成された公開パラメータpk及びマスター秘密鍵mskと、識別子ID^とを入力として、obHIBE_KeyGenを実行して、復号鍵skIDを生成する。
つまり、復号鍵生成部15は、数208に示すnbHIBE_KeyGenを実行して、復号鍵skIDを生成する。
【数208】
【0205】
nbHIBE_Encを説明する。
取得部24は、入出力インタフェース23を介して、公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。ここでは、識別子ID’:=(ID’:=(ID’t,j))t∈[L],j∈[n]であるとする。
ID’:=(ID’t,jt∈[L],j∈[n]は、階層数Lnの階層的な1ビットの識別子として扱われる。暗号文生成部25とID群割当部27とは、公開パラメータpkと、メッセージmと、識別子ID’とを入力として、obHIBE_Encを実行して、暗号文ctID’を生成する。
【0206】
つまり、暗号化装置20は、数209に示すnbHIBE_Encを実行して、暗号文ctID’を生成する。
【数209】
【0207】
nbHIBE_Decを説明する。
取得部34は、入出力インタフェース33を介して、公開パラメータpkと、復号鍵skIDと、暗号文ctID’とを取得する。
復号部35は、公開パラメータpkと、復号鍵skIDのIDをIDとした復号鍵skID*と、暗号文ctID’のID’をID’とした暗号文ctID’*とを入力として、obHIBE_Decを実行して、メッセージm’を生成する。
つまり、復号装置30は、数210に示すnbHIBE_Decを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数210】
【0208】
nbHIBE_Delegateを説明する。
取得部44は、入出力インタフェース43を介して、公開パラメータpkと、復号鍵skIDとを取得する。また、取得部44は、入出力インタフェース43を介して、識別子IDL+1∈{0,1}の入力を受け付ける。
ID群割当部45と下位鍵生成部46とは、識別子IDL+1を(IDL+1,jj∈[n]とし、復号鍵skIDを復号鍵skとする。そして、ID群割当部45と下位鍵生成部46とは、j∈[n]の各整数jについて、公開パラメータpkと、復号鍵skj−1と、識別子IDL+1,jとを入力として、obHIBE_Delegateを実行して、復号鍵skを生成する。そして、下位鍵出力部47は、復号鍵skを下位の復号鍵skID’として出力する。
つまり、復号鍵生成部15は、数211に示すnbHIBE_Delegateを実行して、下位の復号鍵skID’を生成する。
【数211】
【0209】
***実施の形態5の効果***
以上のように、実施の形態5に係る暗号システム1は、IPGを用いてHIBE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態5に係る暗号システム1は、鍵生成乱数τj,ιによって変換された生成要素である要素Y^を用いて暗号文ctΓを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0210】
実施の形態6.
実施の形態6では、高安全なBoneh−Boyen型の1ビットHIBEを説明する。
実施の形態6では、実施の形態5と同一の点については説明を省略し、異なる点を説明する。
【0211】
***動作の説明***
図5と、図10と、図19から図23と、図26と、図27とを参照して、実施の形態6に係る暗号システム1の動作を説明する。実施の形態6についても、実施の形態5と同様に各動作は、各方法及び各プログラムの処理に相当する。
【0212】
図19及び図21を参照して、実施の形態6に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1λと、階層数である値d≧2との入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1λと、4dとを入力として、IPG生成アルゴリズムGenIPG(1λ,4d)を実行して、数212に示す公開パラメータpkIPGとマスター秘密鍵mskIPGとのマスター鍵ペアを生成する。
【数212】
【0213】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報π,τを生成する。
マスター鍵生成部14は、数213に示すように、群Gの要素gに秘密情報π,τを設定して要素hを生成する。
【数213】
また、マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数214に示すように、秘密情報π,τを用いて、要素ft,ιと要素f^t,ιと要素uιとを生成する。
【数214】
【0214】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、一様乱数である鍵生成乱数σt,ιを生成する。
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数215に示すように、群G^t,ιの要素g^t,ιに、鍵生成乱数σt,ιを設定して要素h^t,ιを生成する。
【数215】
また、マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数216に示すように、群Gt,ιの要素gt,ιに、鍵生成乱数σt,ιを設定して要素ht,ιを生成する。
【数216】
【0215】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpkIPGと、ステップS52で生成された要素hと要素ft,ιと要素f^t,ιと要素uιと、ステップS53で生成された要素h^t,ιと要素ht,ιとを用いて、公開パラメータpk:=(((Gt,ι,G^t,ι,ft,ι,ht,ι,g^t,ι,et,ι),(Gt,ι,G^t,ι,gt,f^t,ι,h^t,ιι,et,ι))t∈[d],ι∈[0,1],G,h)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された要素uιを用いて、マスター秘密鍵msk:=(要素uιι∈[0,1]を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0216】
つまり、マスター鍵生成部14は、数217に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数217】
【0217】
図19及び図22を参照して、実施の形態6に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵skIDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
ここでは、識別子ID:=(IDt∈[L]であるとする。L<dである。また、各IDは、0又は1である。
【0218】
(ステップS62:ID群割当処理)
ID群割当部17は、t∈[L]の各整数tについてのIDを、群Gt,IDt及び群Gt,IDtに割り当てる。そして、ID群割当部17は、t∈[L]の各整数tについての群Gt,IDtの直積をID群GIDとし、t∈[L]の各整数tについての群Gt,IDtの直積をID群GIDとする。つまり、ID群割当部17は、数218に示すように、ID群GID及びID群GIDを生成する。
【数218】
ID群割当部17は、数219に示すように、要素gIDと要素fIDと要素hIDと要素gIDとを生成する。
【数219】
【0219】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数220に示すように、分散情報τを生成する。
【数220】
【0220】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数221に示すように、ステップS62で生成された要素gIDと要素fIDと要素hIDと要素gIDとに、ステップS63で生成された分散情報τと、一様乱数r:=(rt∈[L]とを用いて、鍵要素k:={vID・F(ID)r→,(gID)}を生成する。
【数221】
【0221】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵skIDを、入出力インタフェース13を介して復号装置30に出力する。
【0222】
つまり、復号鍵生成部15は、数222に示すKeyGenアルゴリズムを実行して、復号鍵skIDを生成する。
【数222】
【0223】
図20及び図23を参照して、実施の形態6に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
ここでは、識別子ID’:=(ID’t∈[L]であるとする。L<dである。また、各ID’は、0又は1である。
【0224】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈[L]の各整数tについてのID’を、群G^t,IDt及び群G^t,IDtに割り当てる。そして、ID群割当部27は、t∈[L]の各整数tについての群G^t,ID’tの直積をID群G^IDとし、t∈[L]の各整数tについての群G^t,ID’tの直積をID群G^IDとする。つまり、ID群割当部27は、数223に示すように、ID群G^ID及びID群G^IDを生成する。
【数223】
ID群割当部27は、数224に示すように、要素g^IDと要素f^IDと要素h^IDとを生成する。
【数224】
【0225】
(ステップS73:暗号文生成処理)
暗号文生成部25は、ステップS71で取得された公開パラメータpkと、ステップS72で生成された要素g^IDと要素f^IDと要素h^IDとを用いて、暗号文ctID’の要素を生成する。暗号文生成部25は、群Gの要素Xと群G^の要素Y^との生成要素を用いて暗号文ctID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素hのことであり、要素Y^は、ステップS72で生成された要素g^IDと要素f^IDと要素h^IDとのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0226】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素hと、暗号化乱数ζとを用いて、数225に示すように、変換情報zを生成する。
【数225】
【0227】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数226に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ctID’の要素である暗号要素cを生成する。
【数226】
【0228】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数227に示すように、要素Y^である要素g^IDと要素f^IDと要素h^IDとに対して暗号化乱数ζを設定して暗号文ctID’の要素である暗号要素c:={(g^IDζ,F^(ID)ζ}を生成する。
【数227】
【0229】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c,cとを暗号要素とする暗号文ctID’を、入出力インタフェース23を介して復号装置30に出力する。
【0230】
つまり、暗号化装置20は、数228に示すEncアルゴリズムを実行して、暗号文ctID’を生成する。
【数228】
【0231】
図5及び図10を参照して、実施の形態6に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態5と同じである。
【0232】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵skIDにより、暗号文ctID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0233】
(ステップS431:変換情報生成処理)
変換情報生成部351は、復号鍵skIDに含まれる鍵要素k:={vID・F(ID)r→,(gID)}と、暗号文ctID’に含まれる暗号要素c:={(g^IDζ,F^(ID)ζ}とを用いて、数229に示すように、変換情報z’を生成する。ここで、k:=ID・F(ID)r→であり、k:=(gID)である。また、c:=(g^IDζであり、c:=F^(ID)ζである。
【数229】
ここで、数230であるため、暗号文ctID’を復号鍵skIDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数230】
【0234】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ctID’に含まれる暗号要素cとを用いて、数231に示すように、メッセージm’を生成する。
【数231】
【0235】
つまり、復号装置30は、数232に示すDecアルゴリズムを実行して、暗号文ctID’を復号鍵skIDにより復号する。
【数232】
【0236】
図26及び図27を参照して、実施の形態6に係るDelegateアルゴリズムを説明する。
Delegateアルゴリズムは、鍵委譲装置40によって実行される。
【0237】
(ステップS81:取得処理)
取得部44は、入出力インタフェース43を介して、鍵生成装置10によって生成された公開パラメータpkと、下位の鍵の生成対象である復号鍵skID:=(ID,k,k)を取得する。ここで、k:=ID・F(ID)r→であり、k:=(gID)である。また、取得部44は、入出力インタフェース43を介して、復号鍵skIDの下位の復号鍵skID’を使用するユーザの識別子IDL+1∈{0,1}の入力を受け付ける。
【0238】
(ステップS82:ID群割当処理)
ID群割当部45は、ID’:=(ID,IDL+1)とする。また、ID群割当部45は、数233に示すように、ID群GID’及びID群GID’を生成する。
【数233】
ID群割当部45は、数234に示すように、要素k+Lと、要素gID’と、要素k+Rと、要素gID’とを生成する。
【数234】
【0239】
(ステップS83:分散情報生成処理)
下位鍵生成部46は、数235に示すように、分散情報τ’を生成する。
【数235】
【0240】
(ステップS84:鍵要素生成処理)
下位鍵生成部46は、数236に示すように、ステップS82で生成された要素k+Lと、要素gID’と、要素k+Rと、要素gID’とに、ステップS83で生成された分散情報τ’と、一様乱数r’:=(r’t∈[L+1]とを設定して、鍵要素k:={k,k}を生成する。
【数236】
【0241】
(ステップS85:鍵出力処理)
下位鍵出力部47は、識別子ID’と、ステップS84で生成された鍵要素kとを含む下位の復号鍵skID’を、入出力インタフェース13を介して復号装置30に出力する。
【0242】
つまり、復号鍵生成部15は、数237に示すDelegateアルゴリズムを実行して、下位の復号鍵skID’を生成する。
【数237】
【0243】
***実施の形態6の効果***
以上のように、実施の形態6に係る暗号システム1は、IPGを用いてHIBE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態6に係る暗号システム1は、鍵生成乱数σj,ιによって変換された生成要素である要素Y^を用いて暗号文ctΓを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【符号の説明】
【0244】
1 暗号システム、10 鍵生成装置、11 プロセッサ、12 記憶装置、13 入出力インタフェース、14 マスター鍵生成部、15 復号鍵生成部、16 鍵出力部16、17 ID群割当部、18 電子回路、20 暗号化装置、21 プロセッサ、22 記憶装置、23 入出力インタフェース、24 取得部、25 暗号文生成部、26 暗号文出力部、27 ID群割当部、28 電子回路、30 復号装置、31 プロセッサ、32 記憶装置、33 入出力インタフェース、34 取得部、35 復号部、36 メッセージ出力部、38 電子回路、40 鍵委譲装置、41 プロセッサ、42 記憶装置、43 入出力インタフェース、44 取得部、45 ID群割当部、46 下位鍵生成部、47 下位鍵出力部、48 電子回路。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27