【文献】
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名)
【発明を実施するための形態】
【0008】
実施の形態1.
実施の形態1では、高安全高効率なIBE方式を説明する。
【0009】
***表記の説明***
以下の説明における記法について説明する。
なお、以下の説明では、数式中で変数の上に記載された記号等が、文中では変数の右上に示される。具体的には、記号“^”及び記号“→”は、数式中では変数の上に記載されるが、文中では変数の右上に示される。例えば、数101は、文中ではB^と記載される。
【数101】
また、ベクトルを表す記号“→”が上付き文字に付される場合、記号“→”は上付文字に対する上付き文字で示されているものとする。つまり、g
y→は、y
→がgの上付き文字として示されていることを意味する。
【0010】
Aがランダムな変数または分布であるとき、数102は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数102において、yは乱数である。
【数102】
Aが集合であるとき、数103は、Aからyを一様に選択することを表す。つまり、数103において、yは一様乱数である。
【数103】
数104、つまりF
qは、位数qの有限体を示す。
【数104】
0より大きい整数nについて、数105が成立するものとする。
【数105】
数106は、数107に示す2つのベクトルy
→とv
→との数108に示す内積を表す。
【数106】
【数107】
【数108】
数109に示す直積群Kの要素g(resp.直積群K^の要素g^)と、数110に示すベクトルyとに対して、g
y→は、数111に示す群要素を示す。
【数109】
【数110】
【数111】
スカラーζ∈F
qに対して、g
ζは、数112に示すスカラー累乗を示す。
【数112】
上述した直積群K及び直積群K^の要素g:=(g
i)及び要素g^:=(g^
i)に対して、ペアリングe
iが数113に示す空間で定義されているなら、ペアリングe
Kは、数114のように定義される。
【数113】
【数114】
【0011】
***概念の説明***
図1を参照して、実施の形態1に係るIBE方式で用いられる同種ペアリンググループ(以下、IPG)について説明する。
【0012】
IPGは、同種写像とペアリング演算とによって対応付けられた複数の群を有する。
具体的には、IPGは、群G
0と、群G
0と同種写像φ
tによって対応付けられたt=1,...,dの各群G
tと、群G^
0と同種写像φ
tによって対応付けられたt=1,...,dの各群G^
tと、t=0,...,dの各群G
t及び群G^
tとペアリング演算e
tによって対応付られた群G
Tとを有する。そして、IPGでは、要素が群G
0×群G^
0からペアリング演算e
0で変換された場合と、t=1,...,dのいずれの整数tについての同種写像φ
tによって群G
0×群G^
0から群G
t×群G^
tに変換された上で、ペアリング演算e
tによって変換された場合とで、結果は等しくなる。
例えば、t=0,...,dの各整数tについての群G
t及び群G^
tは、異なる楕円曲線における群である。
【0013】
より正確には、IPGは以下のように定義される。
IPG生成アルゴリズムGen
IPG(1
λ,N)では、数115に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアがランダムに生成される。
【数115】
ここで、(G
t,G^
t,e
t,G
T)は、ペアリング演算e
t:G
t×G^
t→G
Tと、トラップドア準同型写像φ
tとを有する素数位数qの非対称ペアリング群である。トラップドア準同型写像φ
tは、異なる楕円曲線の間の同種写像によって与えられた自然な同一性G=G×1
G^及びG^=1
G×G^の下でのG
t=φ
t(G
0)及びG^
t=φ
t(G^
0)であるG
0×G^
0からG
t×G^
tへの写像である。g
t=φ
t(g
0)∈G
t,g^
t=φ
t(g^
0)∈G^
tである。
IPGは、数116に示す両立性を有する。
【数116】
ここで、g
T=e
0(g
0,g^
0)≠1である。また、G
t≠G^
tである。
【0014】
***構成の説明***
実施の形態1に係るIBE方式の構成を説明する。
IBE方式は、Setupアルゴリズムと、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとを備える。
Setupアルゴリズムは、セキュリティパラメータ1
λを入力として、公開パラメータpkと、マスター秘密鍵mskとを出力する。
KeyGenアルゴリズムは、公開パラメータpkと、マスター秘密鍵mskと、識別子IDとを入力として、識別子IDに対応した復号鍵sk
IDを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、識別子ID’とを入力として、暗号文ct
ID’を出力する。
Decアルゴリズムは、公開パラメータpkと、識別子IDに対応した復号鍵sk
IDと、識別子ID’の下で暗号化された暗号文ct
ID’とを入力として、メッセージ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アルゴリズムを実行して、復号鍵sk
IDを生成する。
鍵生成装置10は、公開パラメータpkを公開し、復号鍵sk
IDを識別子IDに対応する復号装置30に出力する。鍵生成装置10は、マスター秘密鍵mskを保管する。
なお、Setupアルゴリズムは、暗号システム10のセットアップ時等に1度だけ実行されればよい。
【0017】
暗号化装置20は、公開パラメータpkと、メッセージmと、識別子ID’とを入力として、Encアルゴリズムを実行して、暗号文ct
ID’を生成する。暗号化装置20は、暗号文ct
ID’を復号装置30に出力する。
【0018】
復号装置30は、公開パラメータpkと、復号鍵sk
IDと、暗号文ct
ID’とを入力として、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生成アルゴリズムGen
IPG(1
λ,d)を実行して、数117に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数117】
【0034】
つまり、
図7に示すように、実施の形態1では、t=0,1についての群G
t及び群G^
tとペアリング演算e
tと、群G
Tと、同種写像φ
1とが生成される。
なお、
図7に示されるように、G
0からG
1への変換が“復号鍵生成(KeyGen)”に、G
0×G^
0からG
Tへの変換が“暗号化(Enc)”に、G
1×G^
1からG
Tへの変換が“復号(Dec)”に大まかに対応している。
【0035】
(ステップS12:ハッシュ関数生成処理)
マスター鍵生成部14は、識別子の空間である体F
qの要素を、群G
0の要素に変換するランダムなハッシュ関数Hを生成する。
【0036】
(ステップS13:鍵生成乱数生成処理)
マスター鍵生成部14は、一様乱数である鍵生成乱数γを生成する。
【0037】
(ステップS14:マスター鍵生成処理)
マスター鍵生成部14は、ステップS11で生成された公開パラメータpk
IPGと、ステップS12で生成されたハッシュ関数Hとを用いて、公開パラメータpk:=((G
t,G^
t,e
t)
t=0,1,g^
0’:=g^
0γ,g^
1,G
T,H)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS11で生成されたマスター秘密鍵msk
IPGと、ステップS13で生成された鍵生成乱数γとを用いて、マスター秘密鍵msk:=(φ
1,γ)を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0038】
つまり、マスター鍵生成部14は、数118に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数118】
【0039】
図3及び
図8を参照して、実施の形態1に係るKeyGenアルゴリズムを説明する。
KeyGenアルゴリズムは、鍵生成装置10によって実行される。
【0040】
(ステップS21:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
IDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
【0041】
(ステップS22:鍵要素生成処理)
復号鍵生成部15は、ステップS21で受け付けられた識別子IDを入力として、公開パラメータpkに含まれるハッシュ関数Hを計算して、群G
0の要素である要素h
0を生成する。
復号鍵生成部15は、マスター秘密鍵mskに含まれる同種写像φ
1及び鍵生成乱数γで要素h
0を変換して、要素h
1を生成する。具体的には、復号鍵生成部15は、数119に示すように、同種写像φ
1及び鍵生成乱数γで要素h
0を変換して、鍵要素kである要素h
1を生成する。
【数119】
つまり、要素h
1は、鍵生成乱数γで変換された群G
t(=群G
1)の要素である。
【0042】
(ステップS23:鍵出力処理)
鍵出力部16は、ステップS21で受け付けられた識別子IDと、ステップS22で生成された要素h
1とを含む復号鍵sk
IDを、入出力インタフェース13を介して復号装置30に出力する。この際、鍵出力部16は、何らかの暗号方式で暗号化するといった方法により、復号鍵sk
IDが第三者に漏えいしないようにする。
【0043】
つまり、復号鍵生成部15は、数120に示すKeyGenアルゴリズムを実行して、復号鍵sk
IDを生成する。
【数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’を用いて、暗号文ct
ID’の要素を生成する。暗号文生成部25は、群G
Tの要素Xと群G^
tの要素Y^との生成要素を用いて暗号文ct
ID’の要素を生成する。ここで、要素Xは、後述するe
0(h
0,g^
0’)のことであり、要素Y^は、公開パラメータpkに含まれるg^
1のことである。
暗号文生成処理は、ステップS321からステップS323の処理を含む。
【0047】
(ステップS321:変換情報生成処理)
変換情報生成部251は、ステップS31で受け付けられた識別子ID’を入力として、公開パラメータpkに含まれるハッシュ関数Hを計算して、群G
0の要素である要素h
0を生成する。また、変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素h
0と、暗号化乱数ζとを用いて、数121に示すように、変換情報zを生成する。
【数121】
つまり、変換情報生成部251は、群G
Tの要素Xであるe
0(h
0,g^
0’)を、暗号化乱数ζを用いて変換して変換情報zを生成する。また、要素Xであるe
0(h
0,g^
0’)は、g^
0’:=g^
0γを含んでいるため、群G
Tの生成元(g^
0)が鍵生成乱数γによって変換されて生成されている。
【0048】
(ステップS322:第1暗号要素生成処理)
第1暗号要素生成部252は、数122に示すように、ステップS321で生成された変換情報zに対して、メッセージmを設定して暗号文ct
ID’の要素である暗号要素c
Tを生成する。
【数122】
【0049】
(ステップS323:第2暗号要素生成処理)
第2暗号要素生成部253は、数123に示すように、要素Y^であるg^
1に対して暗号化乱数ζを設定して暗号文ct
ID’の要素である暗号要素cを生成する。
【数123】
【0050】
(ステップS33:暗号文出力処理)
暗号文出力部26は、ステップS31で受け付けられた識別子ID’と、ステップS32で生成された暗号要素c
T,cとを暗号要素とする暗号文ct
ID’を、入出力インタフェース23を介して復号装置30に出力する。
【0051】
つまり、暗号化装置20は、数124に示すEncアルゴリズムを実行して、暗号文ct
ID’を生成する。
【数124】
【0052】
図5及び
図10を参照して、実施の形態1に係るDecアルゴリズムを説明する。
Decアルゴリズムは、復号装置30によって実行される。
【0053】
(ステップS41:取得処理)
取得部34は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵sk
IDと、暗号化装置20によって生成された暗号文ct
ID’とを取得する。
取得処理は、ステップS411とステップS412との処理を含む。
【0054】
(ステップS411:復号鍵取得処理)
復号鍵取得部341は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵sk
IDを取得する。ここで、復号鍵sk
IDは、鍵生成乱数γで変換された群G
t(=群G
1)の要素である要素h
1を鍵要素kとして含む。
【0055】
(ステップS412:暗号文取得処理)
暗号文取得部342は、暗号化装置20によって生成された暗号文ct
ID’を取得する。ここで、暗号文ct
ID’は、暗号要素c
Tと、暗号要素cとが含まれる。暗号要素c
Tは、群G
Tの生成元(e
0(h
0,g^
0))が鍵生成乱数γによって変換されて生成された要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、要素Y^であるg^
1に対して暗号化乱数ζが設定されている。
【0056】
(ステップS42:復号判定処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
IDに含まれる識別子IDと、暗号文ct
ID’に含まれる識別子ID’とが等しいか否かを判定する。これにより、暗号文ct
ID’を復号鍵sk
IDで復号可能かが判定される。
復号部35は、識別子IDと識別子ID’とが等しいと判定された場合、つまり復号可能と判定された場合、処理をステップS43に進め、そうでない場合、処理をステップS45に進める。
【0057】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
IDにより、暗号文ct
ID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0058】
(ステップS431:変換情報生成処理)
変換情報生成部351は、ステップS411で取得された復号鍵sk
IDに含まれる要素h
1と、ステップS412で取得された暗号文ct
ID’に含まれる暗号要素cとを用いて、数125に示すように、変換情報z’を生成する。
【数125】
ここで、数126であるため、暗号文ct
ID’を復号鍵sk
IDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数126】
【0059】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、ステップS412で取得された暗号文ct
ID’に含まれる暗号要素c
Tとを用いて、数127に示すように、メッセージm’を生成する。
【数127】
【0060】
(ステップS44:メッセージ出力処理)
メッセージ出力部36は、ステップS43で計算されたメッセージm’を、入出力インタフェース33を介して出力する。
【0061】
(ステップS45:識別情報出力処理)
メッセージ出力部36は、復号に失敗したことを示す識別情報⊥を、入出力インタフェース33を介して出力する。
【0062】
つまり、復号装置30は、数128に示すDecアルゴリズムを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数128】
【0063】
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号システム1は、IPGを用いてIBE方式を実現する。IPGは、対応付けが行われた複数の群により構成される。そのため、複数の群の対応付けに使用された写像に基づく問題困難性から安全性を示すことを可能とすることができる。具体的には、IPGでは、群G
0と、t=1,...,dの各群G
tとの間と、群G^
0と、t=1,...,dの各群G^
tとの間とが同種写像φ
tによって対応付けられている。これにより、同種写像問題困難性から安全性を示すことを可能とすることができる。
【0064】
また、実施の形態1に係る暗号システム1は、鍵生成乱数γによって変換された生成要素である要素Xを用いて暗号文ct
ID’を生成する。具体的には、暗号システム1は、要素Xであるe
0(h
0,g^
0’)を用いて暗号文ct
ID’の要素である暗号要素c
Tを生成する。要素Xであるe
0(h
0,g^
0’)は、群G
Tの生成元(g^
0)が鍵生成乱数γによって変換されて生成されている。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【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毎に異なる群G
ID,G^
IDをそのIDに対応させる。これらの群G
ID,G^
IDをID群と呼ぶ。
これにより、
図14に示す関係が成立する。
図14では、矢印は、“if and only if”を意味する。つまり、ID≠ID’である場合かつその場合に限り、G
ID≠G
ID’である。また、G
ID≠G
ID’である場合かつその場合に限り、G^
ID≠G^
ID’である。
【0072】
図15から
図18を参照して具体的に説明する。なお、以下の説明でIDjが下付きで示されている場合には、このIDjはID
jを意味し、ID’jが下付きで示されている場合には、このID’jはID’
jを意味する。
図15に示すように、Setupアルゴリズムでは、群G
tとして、j=1,...,nの各整数jと、ι=0,1の各整数ιとについての群G
j,ι及び群G^
j,ιが生成される。つまり、2n個の群G
j,ι及び2n個の群G^
j,ιが生成される。
図16に示すように、KeyGenアルゴリズムでは、j=1,...,nの各整数jについてのID
jの集合であるIDが入力される。ここで、ID
jは、0又は1である。そして、j=1,...,nの各整数jについて、ID
jに対して、群G
j,IDjが割り当てられる。j=1,...,nの各整数jについて、ID
jに割り当てられた群G
j,IDjの直積がID群G
IDである。つまり、ID=01...10である場合には、ID群G
ID:=G
1,0×G
2,1×・・・×G
n−1,1×G
n,0である。
図17に示すように、Encアルゴリズムでは、j=1,...,nの各整数jについてのID’
jの集合であるID’が入力される。ここで、ID’
jは、0又は1である。そして、j=1,...,nの各整数jについて、ID’
jに対して、群G^
j,ID’jが割り当てられる。j=1,...,nの各整数jについて、ID’
jに割り当てられた群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
jに割り当てられた群G
j,IDjの要素と、ID’
jに割り当てられた群G^
j、ID’jの要素とのペアリング演算の直積が計算される。このとき、ID=ID’であれば、j=1,...,nの各整数jについての群G
j,IDjと群G^
j,ID’jとが対応している。そのため、j=1,...,nの各整数jについてペアリング演算が計算された結果が群G
Tの要素になる。しかし、ID≠ID’である場合には、j=1,...,nのうち少なくとも一部の整数jについての群G
j,IDjと群G^
j,ID’jとが対応していない。そのため、j=1,...,nのうち少なくとも一部の整数jについてペアリング演算が計算された結果が群G
Tの要素にならない。一部の整数jについてでもペアリング演算が計算された結果が群G
Tの要素にならなければ、正しく復号することはできない。
【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生成アルゴリズムGen
IPG(1
λ,d)を実行して、数129に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数129】
【0077】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報s
0を生成する。
マスター鍵生成部14は、数130に示すように、群G
Tの要素g
Tに秘密情報s
0を設定して要素h
Tを生成する。
【数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に示すように、群G
j,ιの要素g
j,ιに、鍵生成乱数τ
j,ιの逆数1/τ
j,ιを設定して要素h
j,ιを生成する。
【数132】
【0079】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpk
IPGと、ステップS52で生成された要素h
Tと、ステップS53で生成された要素h^
j,ιとを用いて、公開パラメータpk:=((G
j,ι,G^
j,ι,h^
j,ι,e
j,ι)
j∈[n],ι∈[0,1],G
T,h
T)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報s
0と、ステップS53で生成された要素h
j,ιとを用いて、マスター秘密鍵msk:=(s
0,(h
j,ι)
j∈[n],ι∈[0,1])を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0080】
つまり、マスター鍵生成部14は、数133に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数133】
【0081】
図19及び
図22を参照して、実施の形態2に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
IDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
上述した通り、識別子ID:=(ID
j)
j=1,...,nである。また、各ID
jは、0又は1である。
【0082】
(ステップS62:ID群割当処理)
ID群割当部17は、j=1,...,nの各整数jについてのID
jを、群G
tである群G
j,ιのうちの異なる群に割り当てる。具体的には、ID群割当部17は、j=1,...,nの各整数jについてのID
jを、群G
j,IDjに割り当てる。そして、ID群割当部17は、j=1,...,nの各整数jについての群G
j,IDjの直積をID群G
IDとする。つまり、ID群割当部17は、数134に示すように、ID群G
IDを生成する。
【数134】
ID群割当部17は、マスター秘密鍵mskに含まれる要素h
j,ιのうち、ID群G
IDに含まれる要素h
j,ιの集合を、要素h
IDとして生成する。具体的には、ID群割当部17は、数135に示すように、要素h
IDを生成する。
【数135】
【0083】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数136に示すように、分散情報s
→をランダムに生成する。分散情報s
→は、秘密情報s
0を分散させた情報である。
【数136】
【0084】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数137に示すように、ステップS62で生成された要素h
IDに、ステップS63で生成された分散情報s
→を設定して、鍵要素kを生成する。
【数137】
【0085】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵sk
IDを、入出力インタフェース13を介して復号装置30に出力する。
【0086】
つまり、復号鍵生成部15は、数138に示すKeyGenアルゴリズムを実行して、復号鍵sk
IDを生成する。
【数138】
【0087】
図20及び
図23を参照して、実施の形態2に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
上述した通り、識別子ID’:=(ID’
j)
j=1,...,nである。また、各ID’
jは、0又は1である。
【0088】
(ステップS72:ID群割当処理)
ID群割当部27は、j=1,...,nの各整数jについてのID’
jを、群G^
tである群G^
j,ιのうちの異なる群に割り当てる。具体的には、ID群割当部17は、j=1,...,nの各整数jについてのID’
jを、群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とを用いて、暗号文ct
ID’の要素を生成する。暗号文生成部25は、群G
Tの要素Xと群G^
tの要素Y^との生成要素を用いて暗号文ct
ID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素h
Tのことであり、要素Y^は、ステップS72で生成された要素h^
IDのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0090】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素h
Tと、暗号化乱数ζとを用いて、数141に示すように、変換情報zを生成する。
【数141】
【0091】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数142に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ct
ID’の要素である暗号要素c
Tを生成する。
【数142】
【0092】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数143に示すように、要素Y^である要素h^
IDに対して暗号化乱数ζを設定して暗号文ct
ID’の要素である暗号要素cを生成する。
【数143】
【0093】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c
T,cとを暗号要素とする暗号文ct
ID’を、入出力インタフェース23を介して復号装置30に出力する。
【0094】
つまり、暗号化装置20は、数144に示すEncアルゴリズムを実行して、暗号文ct
ID’を生成する。
【数144】
【0095】
図5及び
図10を参照して、実施の形態2に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態1と同じである。
但し、復号鍵sk
IDは、要素h
IDに分散情報s
→が設定された鍵要素kを含む。ここで、要素h
IDは、要素h
j,ιを用いて生成される。要素h
j,ιは、群G
j,ιの要素g
j,ιに、鍵生成乱数τ
j,ιの逆数1/τ
j,ιを設定してされる。したがって、復号鍵sk
IDは、鍵生成乱数τ
j,ιで変換された群G
t(=群G
j,ι)の要素である鍵要素kを含む。
また、暗号文ct
ID’は、暗号要素c
Tと、暗号要素cとが含まれる。暗号要素c
Tは、群G
Tの生成元h
Tである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^
tの生成元g^
j,ιが鍵生成乱数τ
j,ιによって変換された要素Y^である要素h^
IDに対して暗号化乱数ζが設定されている。
【0096】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
IDにより、暗号文ct
ID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0097】
(ステップS431:変換情報生成処理)
変換情報生成部351は、復号鍵sk
IDに含まれる要素kと、暗号文ct
ID’に含まれる暗号要素cとを用いて、数145に示すように、変換情報z’を生成する。
【数145】
ここで、数146であるため、暗号文ct
ID’を復号鍵sk
IDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数146】
【0098】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ct
ID’に含まれる暗号要素c
Tとを用いて、数147に示すように、メッセージm’を生成する。
【数147】
【0099】
つまり、復号装置30は、数148に示すDecアルゴリズムを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数148】
【0100】
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号システム1は、実施の形態1に係る暗号システム1と同様に、IPGを用いてIBE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態2に係る暗号システム1は、鍵生成乱数τ
j,ιによって変換された生成要素である要素Y^を用いて暗号文ct
ID’を生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0101】
実施の形態2に係る暗号システム1は、ID群G
ID,G^
IDを用いる。これにより、識別子IDと識別子ID’とが一致しない場合には、群G
IDと群G^
IDとが一致しない。そのため、復号ができない状態とすることができる。
【0102】
実施の形態2に係る暗号システム1では、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとでは、同種写像φを用いていない。その結果、ハッシュ関数Hを用いる必要がない。
なお、KeyGenアルゴリズムと、Encアルゴリズムと、Decアルゴリズムとでは、同種写像φを用いていないため、
図21のステップS51でGen
IPGアルゴリズムは、同種写像φ
tを出力しなくてもよい。
【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
Sを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、属性集合Γを入力として、暗号文ct
Γを出力する。
Decアルゴリズムは、公開パラメータpkと、アクセスストラクチャSに対応した復号鍵sk
Sと、属性集合Γの下で暗号化された暗号文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
Sを生成する。
鍵生成装置10は、公開パラメータpkを公開し、復号鍵sk
SをアクセスストラクチャSに対応する復号装置30に出力する。鍵生成装置10は、マスター秘密鍵mskを保管する。
【0108】
暗号化装置20は、公開パラメータpkと、メッセージmと、属性集合Γとを入力として、Encアルゴリズムを実行して、暗号文ct
Γを生成する。暗号化装置20は、暗号文ct
Γを復号装置30に出力する。
【0109】
復号装置30は、公開パラメータpkと、復号鍵sk
Sと、暗号文ct
Γとを入力として、Decアルゴリズムを実行して、メッセージm’、又は、復号に失敗したことを示す識別情報⊥を生成する。
【0110】
***概念の説明***
実施の形態2に係るABE方式で用いられる概念について説明する。
スパンプログラムについて説明する。スパンプログラムは既存の概念であるため、ここでは以下の説明で必要な範囲だけ簡単に説明する。
【0111】
体F
q上のスパンプログラムは、ラベル付けされた行列S:=(M,ρ)である。ここで、行列Mは、体F
q上の(L行×r列)の行列である。ラベルρは、{(t,v),(t’,v’),...}から属性に応じて行列Mの行に対して付されたラベルである。なお、各行が1つの属性にラベル付けされる。つまり、ρ:{1,...,L}→{(t,v),(t’,v’),...}である。
スパンプログラムは、以下の基準に従い、入力を受理又は拒絶する。Γを属性集合とする。つまり、Γ:={(t
j,x
j)}
1≦j≦d’(x
j∈U
tj)である。1
→∈span<(M
i)
ρ(i)∈Γ>の場合に限り、スパンプログラムSは属性集合Γを受理する。スパンプログラムSが属性集合Γを受理することを、R(S,Γ)=1と表す。つまり、行列Mの行(M
i)
ρ(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生成アルゴリズムGen
IPG(1
λ,d)を実行して、数149に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数149】
【0114】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報s
0を生成する。
マスター鍵生成部14は、数150に示すように、群G
Tの要素g
Tに秘密情報s
0を設定して要素h
Tを生成する。
【数150】
【0115】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]の各整数tについて、一様乱数である鍵生成乱数τ
tを生成する。
マスター鍵生成部14は、t∈[d]の各整数tについて、数151に示すように、群G^
tの要素g^
tに、鍵生成乱数τ
tを設定して要素h^
tを生成する。
【数151】
また、マスター鍵生成部14は、t∈[d]の各整数tについて、数152に示すように、群G
tの要素g
tに、鍵生成乱数τ
tの逆数1/τ
tを設定して要素h
tを生成する。
【数152】
【0116】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpk
IPGと、ステップS52で生成された要素h
Tと、ステップS53で生成された要素h^
tとを用いて、公開パラメータpk:=((G
t,G^
t,h^
t,e
t)
t∈[d],G
T,h
T)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報s
0と、ステップS53で生成された要素h
tとを用いて、マスター秘密鍵msk:=(s
0,(h
t)
t∈[d])を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0117】
つまり、マスター鍵生成部14は、数153に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数153】
【0118】
図19及び
図22を参照して、実施の形態3に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
Sを使用するユーザのアクセスストラクチャS:=(M,ρ)の入力を受け付ける。アクセスストラクチャSは、復号鍵sk
Sで復号可能な範囲を示す情報である。
【0119】
(ステップS62:ID群割当処理)
ID群割当部17は、i∈[L]の各整数iについて、t=ρ(i)である群G
tの直積をID群G
IDとする。ID群割当部17は、マスター秘密鍵mskに含まれる要素h
tのうち、ID群G
IDに含まれる要素h
tの集合を、要素h
IDとして生成する。具体的には、ID群割当部17は、数154に示すように、要素h
IDを生成する。
【数154】
【0120】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数155に示すように、分散情報s
→を生成する。
【数155】
【0121】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数156に示すように、ステップS62で生成された要素h
IDに、ステップS63で生成された分散情報s
→を設定して、鍵要素k:={k
i}を生成する。
【数156】
【0122】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられたアクセスストラクチャSと、ステップS64で生成された鍵要素k:={k
i}とを含む復号鍵sk
Sを、入出力インタフェース13を介して復号装置30に出力する。
【0123】
つまり、復号鍵生成部15は、数157に示すKeyGenアルゴリズムを実行して、復号鍵sk
Sを生成する。
【数157】
【0124】
図20及び
図23を参照して、実施の形態3に係るEncアルゴリズムを説明する。
ステップS73の処理は、実施の形態2と同じである。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる属性集合Γとの入力を受け付ける。
【0125】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈Γの各整数tについて、群G^
tの直積をID群G^
IDとする。ID群割当部17は、公開パラメータpkに含まれる要素h^
tのうち、ID群G^
IDに含まれる要素h^
tの集合を、要素h^
IDとして生成する。具体的には、ID群割当部17は、数158に示すように、要素h^
IDを生成する。
【数158】
【0126】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた属性集合Γと、ステップS73で生成された暗号要素c
T,c:={c
t:=h^
tζ}とを暗号要素とする暗号文ct
Γを、入出力インタフェース23を介して復号装置30に出力する。
【0127】
つまり、暗号化装置20は、数159に示すEncアルゴリズムを実行して、暗号文ct
Γを生成する。
【数159】
【0128】
図5及び
図10を参照して、実施の形態3に係るDecアルゴリズムを説明する。
ステップS44とステップS45との処理は、実施の形態2と同じである。
【0129】
(ステップS41:取得処理)
取得部34は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵sk
Sと、暗号化装置20によって生成された暗号文ct
Γとを取得する。
【0130】
(ステップS411:復号鍵取得処理)
復号鍵取得部341は、入出力インタフェース33を介して、鍵生成装置10によって生成された公開パラメータpk及び復号鍵sk
Sを取得する。ここで、復号鍵sk
Sは、要素h
IDに分散情報s
→が設定された鍵要素k:={k
i}を含む。つまり、実施の形態2と同様に、復号鍵sk
Sは、鍵生成乱数τ
tで変換された群G
tの要素である鍵要素kを含む。
【0131】
(ステップS412:暗号文取得処理)
暗号文取得部342は、暗号化装置20によって生成された暗号文ct
Γを取得する。ここで、暗号文ct
Γは、暗号要素c
Tと、暗号要素c:={c
t}とが含まれる。暗号要素c
Tは、群G
Tの生成元h
Tである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^
tの生成元g^
tが鍵生成乱数τ
tによって変換された要素Y^である要素h^
IDに対して暗号化乱数ζが設定されている。
【0132】
(ステップS42:復号判定処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
Sに含まれるアクセスストラクチャSが、暗号文ct
Γに含まれる属性集合Γを受理するか否かを判定する。これにより、暗号文ct
Γを復号鍵sk
Sで復号可能かが判定される。
復号部35は、受理すると判定された場合、つまり復号可能と判定された場合、処理をステップS43に進め、そうでない場合、処理をステップS45に進める。
【0133】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
Sにより、暗号文ct
Γを復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0134】
(ステップS431:変換情報生成処理)
変換情報生成部351は、数160に示す補完係数σ
iを計算する。
【数160】
変換情報生成部351は、補完係数σ
iと、復号鍵sk
Sに含まれる要素kと、暗号文ct
Γに含まれる暗号要素cとを用いて、数161に示すように、変換情報z’を生成する。
【数161】
ここで、数162であるため、暗号文ct
Γを復号鍵sk
Sが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数162】
【0135】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ct
Γに含まれる暗号要素c
Tとを用いて、数163に示すように、メッセージm’を生成する。
【数163】
【0136】
つまり、復号装置30は、数164に示すDecアルゴリズムを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数164】
【0137】
***実施の形態3の効果***
以上のように、実施の形態3に係る暗号システム1は、IPGを用いてABE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態3に係る暗号システム1は、鍵生成乱数τ
tによって変換された生成要素である要素Y^を用いて暗号文ct
Γを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。
【0138】
実施の形態4.
実施の形態4では、大きい属性集合のABE方式を説明する。
実施の形態4では、実施の形態3と同一の点については説明を省略し、異なる点を説明する。
【0139】
実施の形態3では、属性集合Γには属性tが含まれた。実施の形態4では、属性集合Γには、属性のカテゴリtと、カテゴリtについての属性x
t:=(x
t,j)∈{0,1}
nが含まれる。
なお、以下の説明において、xtが下付きで示されている場合には、このxtはx
tを意味し、viが下付きで示されている場合には、このviはv
iを意味する。
【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生成アルゴリズムGen
IPG(1
λ,d,n)を実行して、数165に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数165】
【0142】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報s
0を生成する。
マスター鍵生成部14は、数166に示すように、群G
Tの要素g
Tに秘密情報s
0を設定して要素h
Tを生成する。
【数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に示すように、群G
t,j,ιの要素g
t,j,ιに、鍵生成乱数τ
t,j,ιの逆数1/τ
t,j,ιを設定して要素h
t,j,ιを生成する。
【数168】
【0144】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpk
IPGと、ステップS52で生成された要素h
Tと、ステップS53で生成された要素h^
t,j,ιとを用いて、公開パラメータpk:=((G
t,j,ι,G^
t,j,ι,h^
t,j,ι,e
t,j,ι)
t∈[d],j∈[n],ι∈[0,1],G
T,h
T)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報s
0と、ステップS53で生成された要素h
t,j,ιとを用いて、マスター秘密鍵msk:=(s
0,(h
t,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
i:=(v
i,j)∈{0,1}
n)である場合に、j=1,...,nの各整数jについての群G
t,j,viの直積をID群G
t,viとする。なお、ID群G
t,viは、t番目の基底群である。つまり、ID群割当部17は、数170に示すように、ID群G
t,viを生成する。
【数170】
ID群割当部17は、マスター秘密鍵mskに含まれる要素h
t,j,ιのうち、ID群G
t,viに含まれる要素h
t,j,ιの集合を、要素h
t,viとして生成する。具体的には、ID群割当部17は、数171に示すように、要素h
t,viを生成する。
【数171】
【0148】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、i∈[L]の各整数iについて、数172に示すように、分散情報s
→iを生成する。
【数172】
【0149】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数173に示すように、ステップS62で生成された要素h
t,viに、ステップS63で生成された分散情報s
→iを設定して、鍵要素k
iを生成する。
【数173】
【0150】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられたアクセスストラクチャSと、ステップS64で生成された鍵要素k:={k
i}とを含む復号鍵sk
Sを、入出力インタフェース13を介して復号装置30に出力する。
【0151】
つまり、復号鍵生成部15は、数174に示すKeyGenアルゴリズムを実行して、復号鍵sk
Sを生成する。
【数174】
【0152】
図20及び
図23を参照して、実施の形態4に係るEncアルゴリズムを説明する。
ステップS73とステップS74との処理は、実施の形態2と同じである。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる属性集合Γとの入力を受け付ける。
【0153】
(ステップS72:ID群割当処理)
ID群割当部27は、(t,x
t:=(x
t,j)∈{0,1}
n)∈Γの各整数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
Tの要素Xと群G^
t,xtの要素Y^との生成要素を用いて暗号文ct
Γの要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素h
Tのことであり、要素Y^は、ステップS72で生成された要素h^
t,xtのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0155】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素h
Tと、暗号化乱数ζとを用いて、数177に示すように、変換情報zを生成する。
【数177】
【0156】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数178に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ct
Γの要素である暗号要素c
Tを生成する。
【数178】
【0157】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数179に示すように、(t,x
t:=(x
t,j)∈{0,1}
n)∈Γの各整数tについて、要素Y^である要素h^
t,xtに対して暗号化乱数ζを設定して暗号文ct
Γの要素である暗号要素c
tを生成する。
【数179】
【0158】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた属性集合Γと、ステップS73で生成された暗号要素c
T,c:={c
t}
t∈Γとを暗号要素とする暗号文ct
Γを、入出力インタフェース23を介して復号装置30に出力する。
【0159】
つまり、暗号化装置20は、数180に示すEncアルゴリズムを実行して、暗号文ct
Γを生成する。
【数180】
【0160】
図5及び
図10を参照して、実施の形態4に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態3と同じである。
但し、復号鍵sk
Sは、要素h
t,viに分散情報s
→が設定された鍵要素kを含む。つまり、実施の形態3と同様に、復号鍵sk
Sは、鍵生成乱数τ
t,j,ιで変換された群G
t,viの要素である鍵要素k:={k
i}を含む。
また、暗号文ct
Γは、暗号要素c
Tと、暗号要素cとが含まれる。暗号要素c
Tは、群G
Tの生成元h
Tである要素Xに対して暗号化乱数ζが設定された変換情報zに、メッセージmが設定されている。暗号要素cは、群G^
t,xtの生成元g^
t,j,ιが鍵生成乱数τ
t,j,ιによって変換された要素Y^である要素h^
t,xtに対して暗号化乱数ζが設定されている。
【0161】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
Sにより、暗号文ct
Γを復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0162】
(ステップS431:変換情報生成処理)
変換情報生成部351は、数181に示す補完係数σ
iを計算する。
【数181】
変換情報生成部351は、補完係数σ
iと、復号鍵sk
Sに含まれる要素k:={k
i}と、暗号文ct
Γに含まれる暗号要素c:={c
t}とを用いて、数182に示すように、変換情報z’を生成する。
【数182】
ここで、数183であるため、暗号文ct
Γを復号鍵sk
Sが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数183】
【0163】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ct
Γに含まれる暗号要素c
Tとを用いて、数184に示すように、メッセージm’を生成する。
【数184】
【0164】
つまり、復号装置30は、数185に示すDecアルゴリズムを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数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に対応した復号鍵sk
IDを出力する。
Encアルゴリズムは、公開パラメータpkと、メッセージ空間msgにおけるメッセージmと、識別子ID’とを入力として、暗号文ct
ID’を出力する。
Decアルゴリズムは、公開パラメータpkと、識別子IDに対応した復号鍵sk
IDと、識別子ID’の下で暗号化された暗号文ct
ID’とを入力として、メッセージm’∈msg、又は、復号に失敗したことを示す識別情報⊥を出力する。
Delegateアルゴリズムは、公開パラメータpkと、長さLの階層的な識別子IDに対応した秘密鍵sk
IDと、L+1番目のID
L+1とを入力として、長さL+1の階層的な識別子ID’:=(ID,ID
L+1)に対応した秘密鍵sk
ID’、又は、鍵生成に失敗したことを示す識別情報⊥を出力する。
【0169】
図25を参照して、実施の形態5に係る暗号システム1の構成を説明する。
暗号システム1は、鍵生成装置10と、暗号化装置20と、復号装置30と、鍵委譲装置40とを備える。鍵生成装置10と、暗号化装置20と、復号装置30と、鍵委譲装置40とは、伝送路を介して接続されている。
【0170】
鍵委譲装置40は、公開パラメータpkと、長さLの階層的な識別子IDに対応した秘密鍵sk
IDと、L+1番目のID
L+1とを入力として、Delegateアルゴリズムを実行して、長さL+1の階層的な識別子ID’:=(ID,ID
L+1)に対応した秘密鍵sk
ID’、又は、鍵生成に失敗したことを示す識別情報⊥を生成する。
【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
tを意味し、ID’tが下付きで示されている場合には、このID’tはID’
tを意味する。
【0175】
図19及び
図21を参照して、実施の形態5に係るSetupアルゴリズムを説明する。
(ステップS51:IPG生成処理)
マスター鍵生成部14は、入出力インタフェース13を介してセキュリティパラメータ1
λと、階層数である値d≧2との入力を受け付ける。マスター鍵生成部14は、受け付けられたセキュリティパラメータ1
λと、2dとを入力として、IPG生成アルゴリズムGen
IPG(1
λ,2d)を実行して、数186に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数186】
【0176】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報s
0を生成する。
マスター鍵生成部14は、数187に示すように、群G
Tの要素g
Tに秘密情報s
0を設定して要素h
Tを生成する。
【数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に示すように、群G
t,ιの要素g
t,ιに、鍵生成乱数τ
t,ιを設定して要素h
t,ιを生成する。
【数189】
【0178】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpk
IPGと、ステップS52で生成された要素h
Tと、ステップS53で生成された要素h^
t,ιと要素h
t,ιとを用いて、公開パラメータpk:=((G
t,ι,G^
t,ι,h
t,ι,h^
t,ι,e
t,ι)
t∈[d],ι∈[0,1],G
T,h
T)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された秘密情報s
0を用いて、マスター秘密鍵msk:=s
0を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0179】
つまり、マスター鍵生成部14は、数190に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数190】
【0180】
図19及び
図22を参照して、実施の形態5に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
IDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
ここでは、識別子ID:=(ID
t)
t∈[L]であるとする。L<dである。また、各ID
tは、0又は1である。
【0181】
(ステップS62:ID群割当処理)
ID群割当部17は、t∈[L]の各整数tについてのID
tを、群G
t,IDtに割り当てる。そして、ID群割当部17は、t∈[L]の各整数tについての群G
t,IDtの直積をID群G
IDとする。つまり、ID群割当部17は、数191に示すように、ID群G
IDを生成する。
【数191】
ID群割当部17は、数192に示すように、要素h
IDを生成する。
【数192】
【0182】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数193に示すように、分散情報s
→を生成する。分散情報s
→は、秘密情報s
0を分散させた情報である。
【数193】
【0183】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数194に示すように、ステップS62で生成された要素h
IDに、ステップS63で生成された分散情報s
→を設定して、鍵要素kを生成する。
【数194】
【0184】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵sk
IDを、入出力インタフェース13を介して復号装置30に出力する。
【0185】
つまり、復号鍵生成部15は、数195に示すKeyGenアルゴリズムを実行して、復号鍵sk
IDを生成する。
【数195】
【0186】
図20及び
図23を参照して、実施の形態5に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
ここでは、識別子ID’:=(ID’
t)
t∈[L]であるとする。L<dである。また、各ID
tは、0又は1である。
【0187】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈[L]の各整数tについてのID’
tを、群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とを用いて、暗号文ct
ID’の要素を生成する。暗号文生成部25は、群G
Tの要素Xと群G^
tの要素Y^との生成要素を用いて暗号文ct
ID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素h
Tのことであり、要素Y^は、ステップS72で生成された要素h^
IDとのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0189】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素h
Tと、暗号化乱数ζとを用いて、数198に示すように、変換情報zを生成する。
【数198】
【0190】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数199に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ct
ID’の要素である暗号要素c
Tを生成する。
【数199】
【0191】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数200に示すように、要素Y^である要素h^
IDに対して暗号化乱数ζを設定して暗号文ct
ID’の要素である暗号要素cを生成する。
【数200】
【0192】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c
T,cとを暗号要素とする暗号文ct
ID’を、入出力インタフェース23を介して復号装置30に出力する。
【0193】
つまり、暗号化装置20は、数201に示すEncアルゴリズムを実行して、暗号文ct
ID’を生成する。
【数201】
【0194】
図26及び
図27を参照して、実施の形態5に係るDelegateアルゴリズムを説明する。
Delegateアルゴリズムは、鍵委譲装置40によって実行される。
【0195】
(ステップS81:取得処理)
取得部44は、入出力インタフェース43を介して、鍵生成装置10によって生成された公開パラメータpkと、下位の鍵の生成対象である復号鍵sk
ID:=kを取得する。また、取得部44は、入出力インタフェース43を介して、復号鍵sk
IDの下位の復号鍵sk
ID*を使用するユーザの識別子ID
L+1∈{0,1}の入力を受け付ける。
【0196】
(ステップS82:ID群割当処理)
ID群割当部45は、ID
*:=(ID,ID
L+1)とする。また、ID群割当部45は、数202に示すように、ID群G
ID*を生成する。
【数202】
ID群割当部45は、数203に示すように、要素k
+と、要素h
ID*とを生成する。
【数203】
【0197】
(ステップS83:分散情報生成処理)
下位鍵生成部46は、数204に示すように、分散情報τ
→’を生成する。
【数204】
【0198】
(ステップS84:鍵要素生成処理)
下位鍵生成部46は、数205に示すように、ステップS82で生成された要素h
ID*に、ステップS83で生成された分散情報τ
→’を設定して、鍵要素k
ID*を生成する。
【数205】
【0199】
(ステップS85:鍵出力処理)
下位鍵出力部47は、識別子ID
*と、ステップS64で生成された鍵要素k
ID*とを含む下位の復号鍵sk
ID*を、入出力インタフェース13を介して復号装置30に出力する。
【0200】
つまり、復号鍵生成部15は、数206に示すDelegateアルゴリズムを実行して、下位の復号鍵sk
ID*を生成する。
【数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を実行して、公開パラメータpk
obとマスター秘密鍵msk
obとを生成する。マスター鍵生成部14は、公開パラメータpk
obをnビットHIBE方式の公開パラメータpkとし、マスター秘密鍵msk
obをnビットHIBE方式のマスター秘密鍵mskとする。
つまり、マスター鍵生成部14は、数207に示すnbHIBE_Setupを実行して、マスター鍵ペアを生成する。
【数207】
【0204】
nbHIBE_KeyGenを説明する。
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
IDを使用するユーザの識別子IDの入力を受け付ける。ここでは、識別子ID:=(ID
t:=(ID
t,j))
t∈[L],j∈[n]であるとする。L<dである。また、各ID
t,jは、0又は1である。
ID^:=(ID
t,j)
t∈[L],j∈[n]は、階層数Lnの階層的な1ビットの識別子として扱われる。復号鍵生成部15は、nbHIBE_Setupで生成された公開パラメータpk及びマスター秘密鍵mskと、識別子ID^とを入力として、obHIBE_KeyGenを実行して、復号鍵sk
IDを生成する。
つまり、復号鍵生成部15は、数208に示すnbHIBE_KeyGenを実行して、復号鍵sk
IDを生成する。
【数208】
【0205】
nbHIBE_Encを説明する。
取得部24は、入出力インタフェース23を介して、公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。ここでは、識別子ID’:=(ID’
t:=(ID’
t,j))
t∈[L],j∈[n]であるとする。
ID’
*:=(ID’
t,j)
t∈[L],j∈[n]は、階層数Lnの階層的な1ビットの識別子として扱われる。暗号文生成部25とID群割当部27とは、公開パラメータpkと、メッセージmと、識別子ID’
*とを入力として、obHIBE_Encを実行して、暗号文ct
ID’を生成する。
【0206】
つまり、暗号化装置20は、数209に示すnbHIBE_Encを実行して、暗号文ct
ID’を生成する。
【数209】
【0207】
nbHIBE_Decを説明する。
取得部34は、入出力インタフェース33を介して、公開パラメータpkと、復号鍵sk
IDと、暗号文ct
ID’とを取得する。
復号部35は、公開パラメータpkと、復号鍵sk
IDのIDをID
*とした復号鍵sk
ID*と、暗号文ct
ID’のID’をID’
*とした暗号文ct
ID’*とを入力として、obHIBE_Decを実行して、メッセージm’を生成する。
つまり、復号装置30は、数210に示すnbHIBE_Decを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数210】
【0208】
nbHIBE_Delegateを説明する。
取得部44は、入出力インタフェース43を介して、公開パラメータpkと、復号鍵sk
IDとを取得する。また、取得部44は、入出力インタフェース43を介して、識別子ID
L+1∈{0,1}
nの入力を受け付ける。
ID群割当部45と下位鍵生成部46とは、識別子ID
L+1を(ID
L+1,j)
j∈[n]とし、復号鍵sk
IDを復号鍵sk
0とする。そして、ID群割当部45と下位鍵生成部46とは、j∈[n]の各整数jについて、公開パラメータpkと、復号鍵sk
j−1と、識別子ID
L+1,jとを入力として、obHIBE_Delegateを実行して、復号鍵sk
jを生成する。そして、下位鍵出力部47は、復号鍵sk
nを下位の復号鍵sk
ID’として出力する。
つまり、復号鍵生成部15は、数211に示すnbHIBE_Delegateを実行して、下位の復号鍵sk
ID’を生成する。
【数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生成アルゴリズムGen
IPG(1
λ,4d)を実行して、数212に示す公開パラメータpk
IPGとマスター秘密鍵msk
IPGとのマスター鍵ペアを生成する。
【数212】
【0213】
(ステップS52:秘密情報生成処理)
マスター鍵生成部14は、一様乱数である秘密情報π,τを生成する。
マスター鍵生成部14は、数213に示すように、群G
Tの要素g
Tに秘密情報π,τを設定して要素h
Tを生成する。
【数213】
また、マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数214に示すように、秘密情報π,τを用いて、要素f
Lt,ιと要素f^
Rt,ιと要素u
Lιとを生成する。
【数214】
【0214】
(ステップS53:鍵生成乱数生成処理)
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、一様乱数である鍵生成乱数σ
t,ιを生成する。
マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数215に示すように、群G^
Rt,ιの要素g^
Rt,ιに、鍵生成乱数σ
t,ιを設定して要素h^
Rt,ιを生成する。
【数215】
また、マスター鍵生成部14は、t∈[d]とι∈[0,1]の各整数t,ιについて、数216に示すように、群G
Lt,ιの要素g
Lt,ιに、鍵生成乱数σ
t,ιを設定して要素h
Lt,ιを生成する。
【数216】
【0215】
(ステップS54:マスター鍵生成処理)
マスター鍵生成部14は、ステップS51で生成された公開パラメータpk
IPGと、ステップS52で生成された要素h
Tと要素f
Lt,ιと要素f^
Rt,ιと要素u
Lιと、ステップS53で生成された要素h^
Rt,ιと要素h
Lt,ιとを用いて、公開パラメータpk:=(((G
Lt,ι,G^
Lt,ι,f
Lt,ι,h
Lt,ι,g^
Lt,ι,e
Lt,ι),(G
Rt,ι,G^
Rt,ι,g
Rt,f^
Rt,ι,h^
Rt,ι,
ι,e
Rt,ι))
t∈[d],ι∈[0,1],G
T,h
T)を生成する。鍵出力部16は、公開パラメータpkを入出力インタフェース13を介して外部の公開用サーバ等へ出力することにより、公開パラメータpkを暗号化装置20及び復号装置30に出力する。
また、マスター鍵生成部14は、ステップS52で生成された要素u
Lιを用いて、マスター秘密鍵msk:=(要素u
Lι)
ι∈[0,1]を生成する。マスター鍵生成部14は、生成されたマスター秘密鍵mskを記憶装置12に書き込む。
【0216】
つまり、マスター鍵生成部14は、数217に示すSetupアルゴリズムを実行して、マスター鍵ペアを生成する。
【数217】
【0217】
図19及び
図22を参照して、実施の形態6に係るKeyGenアルゴリズムを説明する。
(ステップS61:ID受付処理)
復号鍵生成部15は、入出力インタフェース13を介して、復号鍵sk
IDを使用するユーザの識別子IDの入力を受け付ける。識別子IDは、例えば、鍵生成装置10の使用者によって入力装置を介して入力される。
ここでは、識別子ID:=(ID
t)
t∈[L]であるとする。L<dである。また、各ID
tは、0又は1である。
【0218】
(ステップS62:ID群割当処理)
ID群割当部17は、t∈[L]の各整数tについてのID
tを、群G
Lt,IDt及び群G
Rt,IDtに割り当てる。そして、ID群割当部17は、t∈[L]の各整数tについての群G
Lt,IDtの直積をID群G
LIDとし、t∈[L]の各整数tについての群G
Rt,IDtの直積をID群G
RIDとする。つまり、ID群割当部17は、数218に示すように、ID群G
LID及びID群G
RIDを生成する。
【数218】
ID群割当部17は、数219に示すように、要素g
LIDと要素f
LIDと要素h
LIDと要素g
RIDとを生成する。
【数219】
【0219】
(ステップS63:分散情報生成処理)
復号鍵生成部15は、数220に示すように、分散情報τ
→を生成する。
【数220】
【0220】
(ステップS64:鍵要素生成処理)
復号鍵生成部15は、数221に示すように、ステップS62で生成された要素g
LIDと要素f
LIDと要素h
LIDと要素g
RIDとに、ステップS63で生成された分散情報τ
→と、一様乱数r
→:=(r
t)
t∈[L]とを用いて、鍵要素k:={v
LID・F
L(ID)
r→,(g
RID)}を生成する。
【数221】
【0221】
(ステップS65:鍵出力処理)
鍵出力部16は、ステップS61で受け付けられた識別子IDと、ステップS64で生成された鍵要素kとを含む復号鍵sk
IDを、入出力インタフェース13を介して復号装置30に出力する。
【0222】
つまり、復号鍵生成部15は、数222に示すKeyGenアルゴリズムを実行して、復号鍵sk
IDを生成する。
【数222】
【0223】
図20及び
図23を参照して、実施の形態6に係るEncアルゴリズムを説明する。
(ステップS71:取得処理)
取得部24は、入出力インタフェース23を介して、鍵生成装置10によって生成された公開パラメータpkを取得する。また、取得部24は、暗号化対象のメッセージmと、復号条件となる識別子ID’との入力を受け付ける。メッセージmと識別子ID’とは、例えば、暗号化装置20の使用者によって入力装置を介して入力される。
ここでは、識別子ID’:=(ID’
t)
t∈[L]であるとする。L<dである。また、各ID’
tは、0又は1である。
【0224】
(ステップS72:ID群割当処理)
ID群割当部27は、t∈[L]の各整数tについてのID’
tを、群G^
Lt,IDt及び群G^
Rt,IDtに割り当てる。そして、ID群割当部27は、t∈[L]の各整数tについての群G^
Lt,ID’tの直積をID群G^
LIDとし、t∈[L]の各整数tについての群G^
Rt,ID’tの直積をID群G^
RIDとする。つまり、ID群割当部27は、数223に示すように、ID群G^
LID及びID群G^
RIDを生成する。
【数223】
ID群割当部27は、数224に示すように、要素g^
LIDと要素f^
RIDと要素h^
RIDとを生成する。
【数224】
【0225】
(ステップS73:暗号文生成処理)
暗号文生成部25は、ステップS71で取得された公開パラメータpkと、ステップS72で生成された要素g^
LIDと要素f^
RIDと要素h^
RIDとを用いて、暗号文ct
ID’の要素を生成する。暗号文生成部25は、群G
Tの要素Xと群G^
tの要素Y^との生成要素を用いて暗号文ct
ID’の要素を生成する。ここで、要素Xは、公開パラメータpkに含まれる要素h
Tのことであり、要素Y^は、ステップS72で生成された要素g^
LIDと要素f^
RIDと要素h^
RIDとのことである。
暗号文生成処理は、ステップS731からステップS733の処理を含む。
【0226】
(ステップS731:変換情報生成処理)
変換情報生成部251は、一様乱数である暗号化乱数ζを生成する。
変換情報生成部251は、要素h
Tと、暗号化乱数ζとを用いて、数225に示すように、変換情報zを生成する。
【数225】
【0227】
(ステップS732:第1暗号要素生成処理)
第1暗号要素生成部252は、数226に示すように、ステップS731で生成された変換情報zに対して、メッセージmを設定して暗号文ct
ID’の要素である暗号要素c
Tを生成する。
【数226】
【0228】
(ステップS733:第2暗号要素生成処理)
第2暗号要素生成部253は、数227に示すように、要素Y^である要素g^
LIDと要素f^
RIDと要素h^
RIDとに対して暗号化乱数ζを設定して暗号文ct
ID’の要素である暗号要素c:={(g^
LID)
ζ,F^
R(ID)
ζ}を生成する。
【数227】
【0229】
(ステップS74:暗号文出力処理)
暗号文出力部26は、ステップS71で受け付けられた識別子ID’と、ステップS73で生成された暗号要素c
T,cとを暗号要素とする暗号文ct
ID’を、入出力インタフェース23を介して復号装置30に出力する。
【0230】
つまり、暗号化装置20は、数228に示すEncアルゴリズムを実行して、暗号文ct
ID’を生成する。
【数228】
【0231】
図5及び
図10を参照して、実施の形態6に係るDecアルゴリズムを説明する。
ステップS41とステップS42との処理と、ステップS44とステップS45との処理とは、実施の形態5と同じである。
【0232】
(ステップS43:復号処理)
復号部35は、ステップS41で受け付けられた復号鍵sk
IDにより、暗号文ct
ID’を復号して、メッセージm’を生成する。
復号処理は、ステップS431とステップS432との処理を含む。
【0233】
(ステップS431:変換情報生成処理)
変換情報生成部351は、復号鍵sk
IDに含まれる鍵要素k:={v
LID・F
L(ID)
r→,(g
RID)}と、暗号文ct
ID’に含まれる暗号要素c:={(g^
LID)
ζ,F^
R(ID)
ζ}とを用いて、数229に示すように、変換情報z’を生成する。ここで、k
L:=
LID・F
L(ID)
r→であり、k
R:=(g
RID)である。また、c
L:=(g^
LID)
ζであり、c
R:=F^
R(ID)
ζである。
【数229】
ここで、数230であるため、暗号文ct
ID’を復号鍵sk
IDが復号可能であれば、変換情報z’と変換情報zとは同一になる。
【数230】
【0234】
(ステップS432:メッセージ生成処理)
メッセージ生成部352は、ステップS431で生成された変換情報z’と、暗号文ct
ID’に含まれる暗号要素c
Tとを用いて、数231に示すように、メッセージm’を生成する。
【数231】
【0235】
つまり、復号装置30は、数232に示すDecアルゴリズムを実行して、暗号文ct
ID’を復号鍵sk
IDにより復号する。
【数232】
【0236】
図26及び
図27を参照して、実施の形態6に係るDelegateアルゴリズムを説明する。
Delegateアルゴリズムは、鍵委譲装置40によって実行される。
【0237】
(ステップS81:取得処理)
取得部44は、入出力インタフェース43を介して、鍵生成装置10によって生成された公開パラメータpkと、下位の鍵の生成対象である復号鍵sk
ID:=(ID,k
L,k
R)を取得する。ここで、k
L:=
LID・F
L(ID)
r→であり、k
R:=(g
RID)である。また、取得部44は、入出力インタフェース43を介して、復号鍵sk
IDの下位の復号鍵sk
ID’を使用するユーザの識別子ID
L+1∈{0,1}の入力を受け付ける。
【0238】
(ステップS82:ID群割当処理)
ID群割当部45は、ID’:=(ID,ID
L+1)とする。また、ID群割当部45は、数233に示すように、ID群G
LID’及びID群G
RID’を生成する。
【数233】
ID群割当部45は、数234に示すように、要素k
+Lと、要素g
LID’と、要素k
+Rと、要素g
RID’とを生成する。
【数234】
【0239】
(ステップS83:分散情報生成処理)
下位鍵生成部46は、数235に示すように、分散情報τ
→’を生成する。
【数235】
【0240】
(ステップS84:鍵要素生成処理)
下位鍵生成部46は、数236に示すように、ステップS82で生成された要素k
+Lと、要素g
LID’と、要素k
+Rと、要素g
RID’とに、ステップS83で生成された分散情報τ
→’と、一様乱数r
→’:=(r’
t)
t∈[L+1]とを設定して、鍵要素k:={k
L,k
R}を生成する。
【数236】
【0241】
(ステップS85:鍵出力処理)
下位鍵出力部47は、識別子ID’と、ステップS84で生成された鍵要素kとを含む下位の復号鍵sk
ID’を、入出力インタフェース13を介して復号装置30に出力する。
【0242】
つまり、復号鍵生成部15は、数237に示すDelegateアルゴリズムを実行して、下位の復号鍵sk
ID’を生成する。
【数237】
【0243】
***実施の形態6の効果***
以上のように、実施の形態6に係る暗号システム1は、IPGを用いてHIBE方式を実現する。そのため、同種写像問題困難性から安全性を示すことを可能とすることができる。
また、実施の形態6に係る暗号システム1は、鍵生成乱数σ
j,ιによって変換された生成要素である要素Y^を用いて暗号文ct
Γを生成する。これにより、ペアリング問題困難性から安全性を示すことを可能とすることができる。