【文献】
光成滋生,クラウドを支えるこれからの暗号技術,株式会社秀和システム,2015年 7月 1日,第1版,pp. 113-123
【文献】
LI, Jingwei et al.,Outsourcing Encryption of Attribute-Based Encryption with MapReduce,Lecture Notes in Computer Science,Springer,2012年,Vol. 7618,pp. 191-201
【文献】
HOHENBERGER, Susan et al.,Online/Offline Attribute-Based Encryption,Lecture Notes in Computer Science,Springer,2014年,Vol. 8383,pp. 293-310
【文献】
LAI, Junzuo et al.,Attribute-Based Encryption With Verifiable Outsourced Decryption,IEEE Transactions on Information Forensics and Security,IEEE,2013年,Vol. 8, No. 8,pp. 1343-1354
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0032】
以下、本発明の実施形態について図面を参照して説明する。
[属性ベース暗号システムの構成]
まず、
図1を参照して、本発明の実施形態に係る属性ベース暗号システムSAの構成について説明する。
属性ベース暗号システムSAは、復号条件となる属性の属性値を示すポリシーに基づいて送信者のデータを暗号化し、受信者の属性の属性値が、ポリシーに適合した場合だけ、暗号化データを復号するシステムである。
【0033】
ここでは、属性ベース暗号システムSAは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4およびデータ管理装置5)と、復号装置6とを、ネットワーク(通信回線)Nを介して接続して構成している。なお、ここでは、説明を簡略化するため、各装置を1台ずつ図示しているが、これらは、ネットワークNに複数接続することとしてもよい。
【0034】
鍵生成装置1は、属性ベース暗号によりデータを暗号化するための公開鍵を生成するとともに、暗号化データを復号するための復号装置6において固有の秘密鍵を生成するものである。公開鍵は、中間暗号化装置2、クラウドサーバ3および復号装置6に対して公開される情報であって、ここでは、ネットワークNを介して中間暗号化装置2、クラウドサーバ3および復号装置6に送信される。また、秘密鍵は、暗号化データを復号する復号装置6ごとに秘密情報として送信される情報である。
なお、ここでは、鍵生成装置1は、種別情報(属性種別)とその内容を示す値(属性値)とからなる属性を秘密鍵に関連付け、属性付き秘密鍵として、復号装置6に送信する。
また、鍵生成装置1は、データを送信する送信者を識別するユーザIDを生成し、中間暗号化装置2に送信する。このユーザIDは、送信者ごとの暗号化されたデータを識別するための情報である。
【0035】
中間暗号化装置2は、属性ベース暗号におけるデータの暗号化処理の一部を行い、中間暗号化データを生成するものである。なお、ここでは、中間暗号化装置2は、中間暗号化データを生成し、証明書を付与し、証明書付き中間暗号化データとして、ユーザIDおよびポリシー(復号条件)とともに、クラウドサーバ3に送信する。
【0036】
クラウドサーバ3は、クラウド上に配置され、委託暗号化装置4とデータ管理装置5とで構成される。
委託暗号化装置4は、属性ベース暗号におけるデータの暗号化処理の一部を行い、暗号化データ(証明書付き暗号化データ)を生成するものである。この委託暗号化装置4は、ユーザIDおよびポリシーに対応付けて、証明書付き暗号化データをデータ管理装置5に送信する。
【0037】
データ管理装置5は、暗号化データ(証明書付き暗号化データ)を管理するデータベースである。このデータ管理装置5は、復号装置6からのユーザIDに対応する暗号化データの要求に対して、データ検索を行い、対応する暗号化データ(ユーザID、ポリシー、証明書付き暗号化データ)を復号装置6に送信する。なお、ここでは、委託暗号化装置4とデータ管理装置5と個別に構成しているが、一体の構成としても構わない。
【0038】
復号装置6は、属性ベース暗号により中間暗号化装置2および委託暗号化装置4において生成された証明書付き暗号化データを元のデータに復号するものである。
この復号装置6は、ポリシー(復号条件)が、鍵生成装置1で生成される属性付き秘密鍵で特定される属性の属性値に適合し、かつ、証明書が正しく検証された場合のみ復号を行う。
【0039】
〔属性およびポリシーについて〕
以下、属性ベース暗号システムSAの各構成について説明する前に、属性ベース暗号システムSAで使用する属性およびポリシーについて、具体例を挙げて説明する。
【0040】
(属性)
属性は、暗号化データを復号するユーザ(受信者)を区分するための個別情報である。
この属性は、属性種別に対する属性値で構成される。属性種別は、属性の種類を示す識別情報であって、例えば、
図2(a)に示すように、会員種別、居住地、性別、年齢等である。また、属性値は、個々の属性種別の内容を示す値であって、例えば、
図2(a)に示すように、属性種別を、「会員種別」としたときの、通常会員およびプレミアム会員を示す数値{1,2}等である。
なお、
図2(a)では、属性値として、属性種別を「居住地」としたときの東日本および西日本を示す数値{3,4}、属性種別を「性別」としたときの男性および女性を示す数値{5,6}、属性種別を「年齢」としたときの未成年および成人を示す数値{7,8}を例示している。
【0041】
(ポリシー)
ポリシーは、暗号化データを復号するための条件(復号条件)を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
ここでは、ポリシーは、線形秘密分散法(Linear Secret Sharing Scheme:LSSS)によって生成されるアクセス行列Aと、アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとで構成される。
【0042】
このアクセス行列は、例えば、「A. Lewkoand B. Waters, “Decentralizing Attribute-Based Encryption,” Proc. of Eurocrypt’ 11, LNCS 6632, pp. 568-588, 2011.」に記載の方法によって生成される行列である。
【0043】
ここで、
図2を参照して、アクセス行列Aと写像ρの内容について具体的に説明する。
まず、アクセス行列Aの生成手法の例について説明する。
ここでは、
図2(a)に示した属性を例とし、ポリシーを
図2(b)で表した論理形式で示す条件とする。
【0044】
図2(c)に示すように、
図2(b)のポリシーは、「AND」,「OR」をノード、属性値を葉ノードとするツリー構造(アクセス木)で記述することができる。
このとき、ルートノードには、LSSSの秘密情報sを設定する。そして、親ノードが「OR」となる子ノードには、親ノードに設定された情報(秘密情報sまたは乱数)をそのまま引き継いで設定する。また、親ノードが「AND」となる一方の子ノードには、新たな乱数を設定し、他方の子ノードには、一方の子ノードに設定された乱数と親ノードに設定された情報(秘密情報sまたは乱数)との和を設定する。
例えば、
図2(c)に示すように、属性値「2:プレミアム」に秘密情報sと乱数y
2との和を設定し、属性値「3:東日本」に乱数y
2を設定すれば、「プレミアム」AND「東日本」を満たすユーザは、(s+y
2)−(y
2)によって、秘密情報sを取得することができる。
このように、LSSSは、乱数によって秘密情報sを分散することができる。
【0045】
そして、
図2(d)に示すように、アクセス行列Aは、秘密情報sと乱数(ここではy
2,y
3)から、葉ノードの属性値に設定される情報に変換する“0”,“1”を要素とする変換行列として生成することができる。
このとき、アクセス行列Aの行数は、ポリシーのツリー構造における葉ノードの数と一致し、列数は、ポリシーの「AND」のノード数に“1”を加算した数となる。
なお、ここでは、アクセス行列Aの生成手法を説明するため、各ノードに設定する情報を秘密情報sと乱数y
2,y
3として説明したが、本発明においては、それらの情報にさらに乱数を加算する。その内容については、後記する。
【0046】
次に、写像ρについて説明する。
この写像ρは、アクセス行列Aの行のインデックスをjとしたとき、ρ(j)を属性値に変換する写像である。
例えば、
図2で説明したアクセス行列Aの場合、ρ(1)は、アクセス行列Aの1行目のポリシーである「会員種別」の属性値「2:プレミアム」を示す。すなわち、
図2の例では、ρ(1)=2、ρ(2)=3、ρ(3)=6、ρ(4)=8となる。
以下、
図1に示した属性ベース暗号システムSAの各構成について説明する。
【0047】
〔鍵生成装置の構成〕
まず、
図3を参照(適宜
図1参照)して、本発明の実施形態に係る鍵生成装置1の構成について説明する。ここでは、鍵生成装置1は、第一鍵生成手段10と、第二鍵生成手段11と、ユーザID発行手段12と、を備える。
【0048】
第一鍵生成手段10は、外部から入力されるセキュリティパラメータに基づいて、属性ベース暗号方式における公開鍵およびマスタ鍵を生成するものである。ここでは、第一鍵生成手段10は、パラメータ入力手段100と、基本情報生成手段101と、公開鍵生成手段102と、マスタ鍵生成手段103と、公開鍵記憶手段104と、マスタ鍵記憶手段105と、公開鍵送信手段106と、を備える。
【0049】
パラメータ入力手段100は、セキュリティパラメータを外部からパラメータとして入力するものである。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値(例えば、鍵長)である。より具体的には、セキュリティパラメータは、後記する基本情報生成手段101で使用される素数位数pの大きさ(ビット長)である。
このパラメータ入力手段100は、入力されたセキュリティパラメータを、基本情報生成手段101に出力する。
【0050】
基本情報生成手段101は、公開鍵生成手段102およびマスタ鍵生成手段103において、それぞれ、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成するものである。
具体的には、基本情報生成手段101は、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,G
Tを選択する。そして、基本情報生成手段101は、巡回群GおよびG
TがG×G→G
Tとなる双線形写像eを選択する。例えば、基本情報生成手段101は、e:G×G→G
Tとなる双線形写像eとして、一般的な“Weil Pairing”、“Tate Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
【0051】
また、基本情報生成手段101は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する。
また、基本情報生成手段101は、乱数α,aを、Z
pからランダムに選択する。なお、Z
pは、{0,…,p−1}の整数の集合である。
さらに、基本情報生成手段101は、以下の式(1)〜式(3)のハッシュ関数H,H′,H″を予め準備した複数のハッシュ関数の中から選択する。
【0053】
ここで、{0,1}
*は、任意のビット列を示す。
すなわち、式(1)のハッシュ関数(第1ハッシュ関数)Hは、引数が1つ(H(・))で、任意のビット列の値を与えたとき、巡回群Gに属する値を返す関数である。式(2)のハッシュ関数(第2ハッシュ関数)H′は、引数が4つ(H′(・,・,・,・))で、第1,第2引数として巡回群G
Tに属する値、第3,第4引数として任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。また、式(3)のハッシュ関数(第3ハッシュ関数)H″は、引数が1つ(H″(・))で、任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。
【0054】
この基本情報生成手段101は、生成した各種の基本情報(p,G,G
T,e,g,a,α,H,H′,H″)を、公開鍵生成手段102に出力する。また、基本情報生成手段101は、生成した基本情報(g,α)を、マスタ鍵生成手段103に出力する。もちろん、この基本情報は、図示を省略したメモリに記憶しておき、公開鍵生成手段102およびマスタ鍵生成手段103が、それぞれ必要な情報を参照することとしてもよい。
【0055】
公開鍵生成手段102は、基本情報生成手段101で生成された基本情報に基づいて、属性ベース暗号における公開鍵を生成するものである。
ここでは、公開鍵生成手段102は、基本情報に基づいて、e(g,g)のα乗およびgのa乗を演算し、以下の式(4)に示すように、基本情報生成手段101で生成された素数位数p、巡回群G,G
T、双線形写像e、生成元gおよびハッシュ関数H,H′,H″とともに、公開鍵PKを生成する。
【0057】
この公開鍵生成手段102は、生成した公開鍵PKを公開鍵記憶手段104に書き込み記憶する。
【0058】
マスタ鍵生成手段103は、基本情報生成手段101で生成された基本情報に基づいて、属性ベース暗号におけるマスタ鍵を生成するものである。
ここでは、マスタ鍵生成手段103は、以下の式(5)に示すように、基本情報に基づいて、生成元gのα乗を演算してマスタ鍵MKを生成する。
【0060】
このマスタ鍵生成手段103は、生成したマスタ鍵MKをマスタ鍵記憶手段105に書き込み記憶する。
【0061】
公開鍵記憶手段104は、公開鍵生成手段102で生成された公開鍵を記憶するものである。この公開鍵記憶手段104は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この公開鍵記憶手段104に記憶された公開鍵は、公開鍵送信手段106および第二鍵生成手段11によって読み出される。
【0062】
マスタ鍵記憶手段105は、マスタ鍵生成手段103で生成されたマスタ鍵を記憶するものである。このマスタ鍵記憶手段105は、半導体メモリ等の一般的な記憶媒体で構成することができる。
このマスタ鍵記憶手段105に記憶されたマスタ鍵は、第二鍵生成手段11によって読み出される。
【0063】
公開鍵送信手段106は、公開鍵生成手段102で生成され、公開鍵記憶手段104に記憶された公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置6に公開するものである。
ここでは、公開鍵送信手段106は、公開鍵記憶手段104から公開鍵を読み出し、ネットワークNを介して、読み出した公開鍵を中間暗号化装置2、委託暗号化装置4および復号装置6に送信する。この公開鍵送信手段106は、例えば、中間暗号化装置2、委託暗号化装置4および復号装置6から、それぞれ公開鍵を要求されたタイミングで、公開鍵を送信する。
【0064】
第二鍵生成手段11は、外部から入力される個別の復号装置6のユーザの属性に基づいて、個別の復号装置6が使用する、属性ベース暗号方式における秘密鍵を生成するものである。ここでは、第二鍵生成手段11は、属性入力手段110と、属性付き秘密鍵生成手段111と、属性付き秘密鍵送信手段112と、を備える。
【0065】
属性入力手段110は、個別の復号装置6のユーザに対する属性を入力するものである。ここで、属性は、予め定めた属性種別に対応するユーザの属性値である。ここでは、属性Sは、以下の式(6)に示すように、属性種別ごとの属性値S
j(1≦j≦m;mは属性種別の数)で表すこととする。
【0067】
この属性入力手段110は、入力された属性を、属性付き秘密鍵生成手段111に出力する。
【0068】
属性付き秘密鍵生成手段111は、属性入力手段110で入力された属性と、第一鍵生成手段10で生成された公開鍵およびマスタ鍵とに基づいて、属性ベース暗号における秘密鍵を生成し、入力された属性を関連付けることで属性付き秘密鍵を生成するものである。ここでは、属性付き秘密鍵生成手段111は、秘密鍵生成手段111aと、属性関連付け手段111bと、を備える。
【0069】
秘密鍵生成手段111aは、属性入力手段110で入力された属性に対応する属性ベース暗号方式における秘密鍵を生成するものである。
具体的には、秘密鍵生成手段111aは、以下の演算を行うことで、秘密鍵を生成する。
まず、秘密鍵生成手段111aは、乱数tをZ
pからランダムに選択する。
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるg
aと、マスタ鍵記憶手段105に記憶されているマスタ鍵MK(=g
α)を用いて、以下の式(7)の演算を行い、秘密鍵の要素Kを求める。
【0071】
また、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるgを用いて、以下の式(8)の演算を行い、秘密鍵の要素Lを求める。
【0073】
さらに、秘密鍵生成手段111aは、属性S(前記式(6))のすべての属性値xにおいて、公開鍵記憶手段104に記憶されている公開鍵の一部であるハッシュ関数Hを用いて、以下の式(9)の演算を行い、秘密鍵の要素K
x、すなわち、属性Sの属性値の個数分のハッシュ値を求める。
【0075】
秘密鍵生成手段111aは、前記式(7)〜式(9)で演算された各要素で構成される以下の式(10)に示す秘密鍵SKを生成し、属性関連付け手段111bに出力する。
【0077】
属性関連付け手段111bは、秘密鍵生成手段111aで生成された秘密鍵SKに、属性入力手段110で入力された属性を関連付けて、属性付き秘密鍵を生成するものである。例えば、属性関連付け手段111bは、秘密鍵SKと属性Sとを予め定めたデータフォーマットで連結することで、属性付き秘密鍵を生成する。もちろん、秘密鍵SKと属性Sとを予め定めた固有の識別子で対応付けることとしてもよい。
この属性関連付け手段111bは、生成した属性付き秘密鍵を属性付き秘密鍵送信手段112に出力する。
【0078】
属性付き秘密鍵送信手段112は、属性付き秘密鍵生成手段111で生成された属性付き秘密鍵を、復号装置6に送信するものである。
ここでは、属性付き秘密鍵送信手段112は、属性付き秘密鍵を、ネットワークNを介して、例えば、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等の暗号化通信プロトコルを用いて復号装置6に送信する。なお、復号装置6の送信先については、外部から設定されるものとする。
【0079】
ユーザID発行手段12は、データの送信元(送信者)となる中間暗号化装置2のユーザの識別情報(ID)を発行するものである。ここでは、ユーザID発行手段12は、ユーザID生成手段120と、ユーザID送信手段121と、を備える。
【0080】
ユーザID生成手段120は、中間暗号化装置2のユーザごとに個別の識別情報(ユーザID)を生成するものである。ここでは、ユーザID生成手段120は、中間暗号化装置2のユーザに対するユーザ登録を外部から指示された段階で、ユーザIDを生成する。このユーザID生成手段120は、中間暗号化装置2から、ネットワークNを介して、ユーザ登録の要求を受信することで、ユーザIDを生成することとしてもよい。
なお、ユーザID生成手段120が生成するユーザIDの生成手法は、属性ベース暗号システムSA内で固有のIDを生成する手法であれば、その生成手法を問わない。例えば、ユーザ登録を要求されるたびに、予め定めた初期値を1ずつインクリメントしてユーザIDを生成することとしてもよい。
【0081】
このユーザID生成手段120で生成されたユーザIDは、中間暗号化装置2が生成する中間暗号化データをクラウドサーバ3(委託暗号化装置4、データ管理装置5)で識別するために使用される。
このユーザID生成手段120は、生成したユーザIDを、ユーザID送信手段121に出力する。なお、このとき、ユーザID生成手段120は、ユーザIDの送信先となる中間暗号化装置2のアドレス等をユーザIDと併せてユーザID送信手段121に通知することとする。
【0082】
ユーザID送信手段121は、ユーザID生成手段120で生成されたユーザIDを、指定された中間暗号化装置2に送信するものである。これによって、中間暗号化装置2のユーザに対して、ユーザIDが割り当てられることになる。
【0083】
このように鍵生成装置1を構成することで、鍵生成装置1は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化/復号することが可能なCP−ABEの公開鍵および秘密鍵(属性付き秘密鍵)を生成することができる。
また、鍵生成装置1は、中間暗号化装置2に対してユーザIDを割り当てることができる。なお、ユーザID発行手段12は、鍵生成装置1から分離して、ユーザID発行装置として構成してもよい。
【0084】
この鍵生成装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(鍵生成プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
【0085】
〔中間暗号化装置の構成〕
次に、
図4を参照(適宜
図1参照)して、本発明の実施形態に係る中間暗号化装置2の構成について説明する。ここでは、中間暗号化装置2は、データ入力手段20と、ポリシー入力手段21と、公開鍵受信手段22と、公開鍵記憶手段23と、ユーザID受信手段24と、ユーザID記憶手段25と、証明書付き中間暗号化データ生成手段26と、データ関連付け手段27と、データ送信手段28と、を備える。
【0086】
データ入力手段20は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段20は、入力されたデータを証明書付き中間暗号化データ生成手段26に出力する。
【0087】
ポリシー入力手段21は、復号装置6において、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段21は、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、そのアクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとを、外部から入力する。
このポリシー入力手段21は、入力されたポリシーを証明書付き中間暗号化データ生成手段26と、データ関連付け手段27とに出力する。
【0088】
公開鍵受信手段22は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段22は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段23に書き込み記憶する。
なお、公開鍵受信手段22は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、証明書付き中間暗号化データ生成手段26が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
【0089】
公開鍵記憶手段23は、公開鍵受信手段22で受信した公開鍵を記憶するものである。この公開鍵記憶手段23は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段23に記憶された公開鍵は、証明書付き中間暗号化データ生成手段26によって読み出される。
【0090】
ユーザID受信手段24は、鍵生成装置1で生成された中間暗号化装置2のユーザ個別の識別情報(ユーザID)を受信するものである。ここでは、ユーザID受信手段24は、鍵生成装置1においてユーザ登録が実行された段階で、ユーザIDを受信することとする。なお、ユーザID受信手段24は、ネットワークNを介して、ユーザ登録を要求することで、ユーザIDを取得することとしてもよい。
このユーザID受信手段24は、受信したユーザIDを、ユーザID記憶手段25に書き込み記憶する。
【0091】
ユーザID記憶手段25は、ユーザID受信手段24で受信したユーザIDを記憶するものである。このユーザID記憶手段25は、半導体メモリ等の一般的な記憶媒体で構成することができる。このユーザID記憶手段25に記憶されたユーザIDは、証明書付き中間暗号化データ生成手段26およびデータ関連付け手段27によって読み出される。
【0092】
証明書付き中間暗号化データ生成手段26は、公開鍵記憶手段23に記憶されている公開鍵と、ポリシー入力手段21で入力されたポリシーとに基づいて、データ入力手段20で入力されたデータに対して中間的な暗号化を行い、証明書を付与した証明書付き中間暗号化データを生成するものである。
ここでは、証明書付き中間暗号化データ生成手段26は、中間暗号化データ生成手段260と、証明書付与手段261と、を備える。
【0093】
中間暗号化データ生成手段260は、公開鍵とポリシーとにより、属性ベース暗号による暗号化データを生成する際の中間的なデータ(中間暗号化データ)を生成するものである。
具体的には、中間暗号化データ生成手段260は、以下の演算を行うことで、中間暗号化データを生成する。
まず、中間暗号化データ生成手段260は、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y
2,…,y
n,β
1,β
2,…,β
nを、Z
pからランダムに選択する。なお、Z
pは、公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、中間暗号化データ生成手段260は、選択した乱数から、以下の式(11)により、中間暗号化データの要素となるベクトルvを求める。
【0095】
また、中間暗号化データ生成手段260は、乱数sと、公開鍵記憶手段23に記憶されている公開鍵の一部であるe(g,g)
αおよびgとにより、以下の式(12)を演算することで、中間暗号化データの要素C,C′を求める。
【0097】
ここで、Mは、データ入力手段20で入力された暗号化対象のデータである。
さらに、中間暗号化データ生成手段260は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、以下の式(13)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号J
iを選択する。
【0099】
例えば、アクセス行列Aが、以下の式(14)に示す3行2列の行列であった場合、J
1={2}、J
2={1,2}、J
3={1}となる。
【0101】
そして、中間暗号化データ生成手段260は、以下の式(15)を演算することで、中間暗号化データの要素E
i(1≦i≦m)を求める。
【0103】
そして、中間暗号化データ生成手段260は、前記式(11),式(12),式(15)で演算された各要素で構成される以下の式(16)に示す中間暗号化データCT′を生成し、証明書付与手段261に出力する。
【0105】
ここで、<>は、データの連結を示し、予め定めたデータフォーマットで連結することを意味する。なお、連結の順番は、予めデータを利用する側と共通であれば、どのような順番でも構わない(以下、同様)。
【0106】
証明書付与手段261は、中間暗号化データ生成手段260で生成された中間暗号化データに対して、当該中間暗号化データの正当性を検証するための情報である証明書を付与するものである。
具体的には、証明書付与手段261は、以下の式(17)を演算することで、証明書πを生成する。
【0108】
ここで、e(g,g)
α、ハッシュ関数H′,H″は、公開鍵記憶手段23に記憶されている公開鍵の一部である。sは、中間暗号化データ生成手段260で選択された乱数である。IDは、ユーザID記憶手段25に記憶されているユーザIDの値である。
【0109】
また、pos
Aは、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報(文字列)である。例えば、アクセス行列Aが前記式(14)の場合、pos
Aは、アクセス行列Aの要素が“1”となるすべての位置を文字列で表した、{(1,2),(2,1),(2,2),(3,1)}となる。
【0110】
そして、証明書付与手段261は、中間暗号化データ生成手段260で生成された中間暗号化データに、生成した証明書を付与する。
例えば、証明書付与手段261は、中間暗号化データCT′(式(16))と、証明書π(式(17))とを、予め定めたデータフォーマットで連結することで、証明書付き中間暗号化データを生成する。
この証明書付与手段261は、生成した証明書付き中間暗号化データを、データ関連付け手段27に出力する。
【0111】
データ関連付け手段27は、証明書付き中間暗号化データ生成手段26で生成された証明書付き中間暗号化データに対して、ユーザID記憶手段25に記憶されているユーザIDと、ポリシー入力手段21で入力されたポリシー(A,ρ)とを関連付けるものである。例えば、データ関連付け手段27は、ユーザID、ポリシーおよび証明書付き中間暗号化データを予め定めたデータフォーマットで連結することで各データを関連付ける。もちろん、ユーザID、ポリシーおよび証明書付き中間暗号化データを予め定めた固有の識別子で対応付けることとしてもよい。
このデータ関連付け手段27は、関連付けたデータ(ID・ポリシー・証明書付き中間暗号化データ)を、データ送信手段28に出力する。
【0112】
データ送信手段28は、データ関連付け手段27で関連付けられたデータ(ID・ポリシー・証明書付き中間暗号化データ)を、ネットワークNを介して、委託暗号化装置4に送信するものである。なお、委託暗号化装置4の送信先については、外部から設定されるものとする。
【0113】
このように、中間暗号化装置2を構成することで、中間暗号化装置2は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。なお、この中間暗号化装置2における暗号化は、属性ベース暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2をユーザ端末とする際の処理を軽減することができる。また、中間暗号化装置2は、証明書を中間暗号化データに付与することで、復号装置6において、クラウドサーバ3におけるデータ改ざんを検出することが可能になる。
【0114】
この中間暗号化装置2は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(中間暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
【0115】
〔委託暗号化装置の構成〕
次に、
図5を参照(適宜
図1参照)して、本発明の実施形態に係る委託暗号化装置4の構成について説明する。ここでは、委託暗号化装置4は、公開鍵受信手段40と、公開鍵記憶手段41と、データ受信手段42と、データ分離手段43と、暗号化データ生成手段44と、データ関連付け手段45と、データ送信手段46と、を備える。
【0116】
公開鍵受信手段40は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段40は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段41に書き込み記憶する。
なお、公開鍵受信手段40は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、暗号化データ生成手段44が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
【0117】
公開鍵記憶手段41は、公開鍵受信手段40で受信した公開鍵を記憶するものである。この公開鍵記憶手段41は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段41に記憶された公開鍵は、暗号化データ生成手段44によって読み出される。
【0118】
データ受信手段42は、中間暗号化装置2で生成され、ユーザIDおよびポリシーが関連付けられたID・ポリシー・証明書付き中間暗号化データを、ネットワークNを介して受信するものである。
このデータ受信手段42は、受信したID・ポリシー・証明書付き中間暗号化データを、データ分離手段43に出力する。
【0119】
データ分離手段43は、データ受信手段42で受信したID・ポリシー・証明書付き中間暗号化データを、個々のデータ(ユーザID、ポリシー、証明書、中間暗号化データ)に分離するものである。
このデータ分離手段43は、分離したユーザID、ポリシーおよび証明書をデータ関連付け手段45に出力する。さらに、データ分離手段43は、分離したポリシーおよび中間暗号化データを暗号化データ生成手段44に出力する。
【0120】
暗号化データ生成手段44は、公開鍵記憶手段41に記憶されている公開鍵と、データ分離手段43で分離されたポリシーとに基づいて、データ分離手段43で分離された中間暗号化データにさらに暗号化処理を継続して実行して、暗号化データを生成するものである。
具体的には、暗号化データ生成手段44は、以下の演算を行うことで、暗号化データを生成する。
まず、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A
i=(A
i,1 A
i,2 … A
i,n)をアクセス行列Aのi行目ベクトルとして、以下の式(18)に示すように、中間暗号化データCT′(式(16)参照)に含まれるベクトルvとの内積λ
i′を演算する。
【0122】
また、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行数分(m個)の乱数r
1,r
2,…,r
mを、Z
pからランダムに選択する。なお、Z
pは、公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、暗号化データ生成手段44は、選択した乱数r
1,r
2,…,r
mと、公開鍵記憶手段41に記憶されている公開鍵の一部であるg
a、gおよびハッシュ関数Hと、ポリシーに含まれる写像ρと、中間暗号化データCT′(式(16)参照)に含まれる要素E
iとにより、以下の式(19)を演算することで、暗号化データの要素{C
i,D
i}(1≦i≦m)を求める。
【0124】
そして、暗号化データ生成手段44は、中間暗号化データに含まれている要素C,C′と、前記式(19)で演算された各要素とで構成される以下の式(20)に示す暗号化データCTを生成し、データ関連付け手段45に出力する。
【0126】
データ関連付け手段45は、データ分離手段43で分離されたユーザID、証明書およびポリシーと、暗号化データ生成手段44で生成された暗号化データとを関連付けるものである。例えば、データ関連付け手段45は、ユーザID、証明書、ポリシーおよび暗号化データを予め定めたデータフォーマットで連結することで各データを関連付ける。
このデータ関連付け手段45は、関連付けたデータ(ID・ポリシー・証明書付き暗号化データ)を、データ送信手段46に出力する。
【0127】
データ送信手段46は、データ関連付け手段45で関連付けられたデータ(ID・ポリシー・証明書付き暗号化データ)を、データ管理装置5に送信するものである。
このように、委託暗号化装置4を構成することで、委託暗号化装置4は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。なお、この委託暗号化装置4における暗号化は、属性ベース暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2の暗号化処理を補完するものである。これによって、委託暗号化装置4は、データを送信する中間暗号化装置2の処理を軽減させることができる。
【0128】
この委託暗号化装置4は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(委託暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
【0129】
〔データ管理装置の構成〕
次に、
図6を参照(適宜
図1参照)して、本発明の実施形態に係るデータ管理装置5の構成について説明する。ここでは、データ管理装置5は、データ受信手段50と、暗号化データ記憶手段51と、データ要求受信手段52と、データ検索手段53と、データ送信手段54と、を備える。
【0130】
データ受信手段50は、委託暗号化装置4で生成され、ユーザIDおよびポリシーが関連付けられたID・ポリシー・証明書付き暗号化データを受信するものである。
このデータ受信手段50は、受信したID・ポリシー・証明書付き暗号化データを、暗号化データ記憶手段51に書き込み記憶する。
【0131】
暗号化データ記憶手段51は、データ受信手段50で受信したID・ポリシー・証明書付き暗号化データを記憶するものである。この暗号化データ記憶手段51は、半導体メモリ等の一般的な記憶媒体で構成することができる。この暗号化データ記憶手段51に記憶されたID・ポリシー・証明書付き暗号化データは、データ検索手段53によって、検索され、読み出される。
【0132】
データ要求受信手段52は、復号装置6から、ネットワークNを介して、暗号化データの要求(データ要求)を受信するものである。なお、データ要求には、暗号化データを特定するためのユーザIDが含まれている。
このデータ要求受信手段52は、ユーザIDを含むデータ要求をデータ検索手段53に出力する。
【0133】
データ検索手段53は、データ要求受信手段52を介して受信した、復号装置6からのデータ要求に基づいて、暗号化データ記憶手段51に記憶されている暗号化データを検索するものである。
すなわち、データ検索手段53は、データ要求に含まれているユーザIDを検索キーとして、暗号化データ記憶手段51に記憶されている複数のID・ポリシー・証明書付き暗号化データの中から、ユーザIDが一致するID・ポリシー・証明書付き暗号化データを検索する。
このデータ検索手段53は、検索結果したID・ポリシー・証明書付き暗号化データをデータ送信手段54に出力する。
【0134】
データ送信手段54は、データ検索手段53で検索されたID・ポリシー・証明書付き暗号化データを、ネットワークNを介して、当該データを要求した復号装置6に送信するものである。
このようにデータ管理装置5を構成することで、データ管理装置5は、クラウドサーバとして機能し、復号装置6から要求のあった暗号化データを提供することができる。
【0135】
このデータ管理装置5は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(データ管理プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
【0136】
〔復号装置の構成〕
次に、
図7を参照(適宜
図1参照)して、本発明の実施形態に係る復号装置6の構成について説明する。ここで、復号装置6は、公開鍵受信手段60と、公開鍵記憶手段61と、属性付き秘密鍵受信手段62と、属性付き秘密鍵記憶手段63と、データ要求送信手段64と、データ受信手段65と、検証・復号手段66と、を備える。
【0137】
公開鍵受信手段60は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段60は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段61に書き込み記憶する。
なお、公開鍵受信手段60は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、検証・復号手段66が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
【0138】
公開鍵記憶手段61は、公開鍵受信手段60で受信した公開鍵を記憶するものである。この公開鍵記憶手段61は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段61に記憶された公開鍵は、検証・復号手段66によって読み出される。
【0139】
属性付き秘密鍵受信手段62は、鍵生成装置1で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段62は、ネットワークNを介して、例えば、SSL/TLS等の暗号化通信プロトコルを用いて属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段63に書き込み記憶する。
なお、属性付き秘密鍵受信手段62は、検証・復号手段66が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置6が、図示を省略した登録手段によって、予め鍵生成装置1に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
【0140】
属性付き秘密鍵記憶手段63は、属性付き秘密鍵受信手段62で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段63は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段63に記憶された属性付き秘密鍵は、検証・復号手段66によって読み出される。
【0141】
データ要求送信手段64は、データの送信元(中間暗号化装置2)のユーザIDを含んだデータ要求を、ネットワークNを介して、データ管理装置5に送信するものである。なお、ユーザIDは、データを送信する送信者(中間暗号化装置2)と、データを受信する受信者(復号装置6)との間で、予め共有しているものとする。
【0142】
データ受信手段65は、データ要求送信手段64で要求したデータ管理装置5で管理(記憶)されているID・ポリシー・証明書付き暗号化データを、ネットワークNを介して受信するものである。
このデータ受信手段65は、受信したID・ポリシー・証明書付き暗号化データを、検証・復号手段66に出力する。
【0143】
検証・復号手段66は、データ受信手段65で受信したID・ポリシー・証明書付き暗号化データを検証し、復号するものである。ここでは、検証・復号手段66は、属性付き秘密鍵分離手段660と、ポリシー分離手段661と、ポリシー判定手段662と、証明書検証手段663と、データ復号手段664と、を備える。
【0144】
属性付き秘密鍵分離手段660は、属性付き秘密鍵記憶手段63に記憶されている属性付き秘密鍵を、属性と秘密鍵とに分離するものである。
この属性付き秘密鍵分離手段660は、分離した属性(属性種別ごとの属性値:前記式(6)参照)をポリシー判定手段662に出力する。また、属性付き秘密鍵分離手段660は、分離した秘密鍵(前記式(10)参照)を証明書検証手段663に出力する。
【0145】
ポリシー分離手段661は、データ受信手段65で受信したID・ポリシー・証明書付き暗号化データからポリシーを分離するものである。
このポリシー分離手段661は、分離したポリシーを、ポリシー判定手段662に出力し、残りのID・証明書付き暗号化データを証明書検証手段663に出力する。
【0146】
ポリシー判定手段662は、属性がポリシーを満たすか否かを判定するものである。
具体的には、ポリシー判定手段662は、以下の式(21)に示すように、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する。
【0148】
そして、ポリシー判定手段662は、アクセス行列Aの行ベクトルA
i(i∈I)を用いて、Z
pに属する値w
iとして、アクセス行列Aのi行目のベクトルA
i=(A
i,1 A
i,2 … A
i,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるw
iを求める。
【0150】
この式(22)において、「X s.t. Y」は、Yを満たすXを示す。
このとき、ポリシー判定手段662は、式(22)の条件を満たす値w
iが存在する場合、属性がポリシーを満たすと判定する。
一方、ポリシー判定手段662は、式(22)の条件を満たす値w
iが存在しない場合、属性がポリシーを満たさないと判定する。
【0151】
このポリシー判定手段662は、属性がポリシーを満たす場合だけ、式(21)で求めた集合Iおよび式(22)で求めた値w
iを証明書検証手段663に出力する。なお、ポリシー判定手段662は、属性がポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【0152】
証明書検証手段663は、暗号化データに付与されている証明書を検証するものである。ここでは、証明書検証手段663は、ポリシー分離手段661で分離されたID・証明書付き暗号化データと、ポリシー判定手段662から入力される集合Iおよび値w
iと、属性付き秘密鍵分離手段660で分離された秘密鍵と、公開鍵記憶手段61に記憶されている公開鍵とに基づいて、証明書を検証する。
具体的には、証明書検証手段663は、以下の式(23)に示す演算を行う。
【0154】
ここで、eは公開鍵の一部である双線形写像である(前記式(4)参照)。また、K、L、K
xは秘密鍵の各要素である(前記式(10)参照)。また、C′,C
i,D
iは、暗号化データの要素である(前記式(20)参照)。
さらに、証明書検証手段663は、式(23)の演算結果Bを用いて、以下の式(24)に示す演算を行うことで、証明書検証データπ′を生成する。
【0156】
ここで、Cは、暗号化データの要素である(前記式(20)参照)。また、H′,H″は、公開鍵の一部であるハッシュ関数である。また、IDは、ポリシー分離手段661で分離されたID・証明書付き暗号化データに含まれ、証明書付き暗号化データに関連付けられているユーザIDである。また、pos
Aは、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報(文字列)である。
また、式(24)におけるBは、データの改ざん等がなされなければ、前記式(17)のe(g,g)
αsと一致するものである。
ここで、前記式(23)によって、B、すなわちe(g,g)
αsが算出されることについて証明しておく。
以下、式(25)により、式(23)の右辺を変形することで、e(g,g)
αsとなる。
【0158】
なお、この式(25)において、式(25-2)から式(25-3)の変形は、双線形写像の性質であるe(g
1,g
2g
3)=e(g
1,g
2)e(g
1,g
3)を利用することで変形することができる。また、式(25-5)から式(25-6)の変形は、双線形写像の性質であるe(g
a,g
b)=e(g,g)
abを利用することで変形することができる。なお、式(25-9)から式(25-10)の変形は、Σの演算結果が、前記式(22)によって、(1,0,…,0)になるからである。
図7に戻って、復号装置6の構成について説明を続ける。
【0159】
証明書検証手段663は、式(24)で生成した証明書検証データπ′と、証明書付き暗号化データに付与されている証明書πとを比較し、一致している場合のみ、前記式(23)の演算結果B、すなわち、e(g,g)
αsの値と、暗号化データに含まれる要素C(前記式(20)参照)とを、データ復号手段664に出力する。
なお、証明書検証手段663は、証明書検証データπ′と証明書πとが一致しない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【0160】
データ復号手段664は、暗号化データを復号するものである。ここでは、データ復号手段664は、証明書検証手段663から、証明書が正しく検証された場合にのみ出力される、前記式(23)の演算結果B(すなわち、e(g,g)
αs)と、暗号化データに含まれる要素Cとから、以下の式(26)により、元のデータMを復号する。
【0162】
このように復号装置6を構成することで、復号装置6は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを、復号装置6のユーザの属性に応じて復号することができる。
【0163】
この復号装置6は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(復号プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
【0164】
[属性ベース暗号システムの動作]
次に、本発明の実施形態に係る属性ベース暗号システムSAの動作について説明する。ここでは、鍵(公開鍵、秘密鍵)の生成・配信動作と、ユーザIDの配信動作と、データの中間暗号化および暗号化動作と、データの復号動作とに分けて説明する。
【0165】
〔鍵(公開鍵、秘密鍵)生成・配信動作〕
最初に、
図8を参照(構成については、適宜
図3,
図4,
図5,
図7参照)して、属性ベース暗号システムSAの鍵(公開鍵、秘密鍵)の生成・配信動作について説明する。
まず、鍵生成装置1は、パラメータ入力手段100によって、セキュリティパラメータを外部から入力する(ステップS10)。
そして、鍵生成装置1は、基本情報生成手段101によって、ステップS10で入力されたパラメータに基づいて、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する(ステップS11)。なお、このステップS11における基本情報生成動作については、
図9を参照して後で詳細に説明する。
【0166】
そして、鍵生成装置1は、公開鍵生成手段102およびマスタ鍵生成手段103によって、ステップS11で生成された基本情報に基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する(ステップS12)。なお、このステップS12における公開鍵・マスタ鍵生成動作については、
図10を参照して後で詳細に説明する。
【0167】
そして、鍵生成装置1は、公開鍵生成手段102によって、生成した公開鍵を公開鍵記憶手段104に書き込み記憶し、マスタ鍵生成手段103によって、生成したマスタ鍵をマスタ鍵記憶手段105に書き込み記憶する(ステップS13)。
その後、鍵生成装置1は、公開鍵送信手段106によって、ステップS13で公開鍵記憶手段104に記憶されている公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置6に送信(公開)する(ステップS14)。
【0168】
一方、中間暗号化装置2は、公開鍵受信手段22によって、ステップS14で送信された公開鍵を受信し(ステップS15)、公開鍵記憶手段23に書き込み記憶する(ステップS16)。また、委託暗号化装置4は、公開鍵受信手段40によって、ステップS14で送信された公開鍵を受信し(ステップS17)、公開鍵記憶手段41に書き込み記憶する(ステップS18)。また、復号装置6は、公開鍵受信手段60によって、ステップS14で送信された公開鍵を受信し(ステップS19)、公開鍵記憶手段61に書き込み記憶する(ステップS20)。
【0169】
さらに、鍵生成装置1は、以下の動作によって、個別の復号装置6を対象として属性付き秘密鍵を生成する。
すなわち、鍵生成装置1は、属性入力手段110によって、個別の復号装置6のユーザに対する属性を入力する(ステップS21)。
【0170】
そして、鍵生成装置1は、属性付き秘密鍵生成手段111の秘密鍵生成手段111aによって、ステップS13で公開鍵記憶手段104に記憶された公開鍵と、マスタ鍵記憶手段105に記憶されたマスタ鍵と、ステップS21で入力された属性とに基づいて、秘密鍵を生成する(ステップS22)。なお、このステップS22における秘密鍵生成動作については、
図11を参照して後で詳細に説明する。
【0171】
さらに、鍵生成装置1は、属性付き秘密鍵生成手段111の属性関連付け手段111bによって、ステップS22で生成された秘密鍵に、ステップS21で入力された属性を関連付けて、属性付き秘密鍵を生成する(ステップS23)。
その後、鍵生成装置1は、属性付き秘密鍵送信手段112によって、ステップS23で生成された属性付き秘密鍵を、復号装置6に送信する(ステップS24)。
【0172】
一方、復号装置6は、属性付き秘密鍵受信手段62によって、ステップS24で送信された属性付き秘密鍵を受信し(ステップS25)、属性付き秘密鍵記憶手段63に書き込み記憶する(ステップS26)。
以上の動作により、属性ベース暗号システムSAは、鍵生成装置1によって、属性ベース暗号における鍵(公開鍵、秘密鍵)を生成し、鍵を必要とする中間暗号化装置2、委託暗号化装置4および復号装置6に送信することができる。
【0173】
(基本情報生成動作)
次に、
図9を参照(構成については、適宜
図3参照)して、
図8のステップS11の動作(基本情報生成動作)について詳細に説明する。
まず、鍵生成装置1は、基本情報生成手段101によって、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,G
Tを選択する(ステップS110)。
また、基本情報生成手段101は、巡回群G,G
TがG×G→G
Tとなる双線形写像eを選択する(ステップS111)。そして、基本情報生成手段101は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(ステップS112)。
【0174】
また、基本情報生成手段101は、乱数α,aを、Z
pからランダムに選択する(ステップS113)。
さらに、基本情報生成手段101は、予め準備した複数のハッシュ関数の中から、ハッシュ関数H,H′,H″を選択する(ステップS114)。
以上の動作により、鍵生成装置1は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成することができる。
【0175】
(公開鍵・マスタ鍵生成動作)
次に、
図10を参照(構成については、適宜
図3参照)して、
図8のステップS12の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、公開鍵生成手段102によって、基本情報生成手段101で生成された基本情報であるe(g,g)のα乗およびgのa乗を演算する(ステップS120)。
そして、鍵生成装置1は、公開鍵生成手段102によって、基本情報生成手段101で生成(選択)された基本情報である素数位数p、巡回群G,G
T、双線形写像e、生成元gおよびハッシュ関数H,H′,H″と、ステップS120の演算結果とを含んだ公開鍵PK(前記式(4)参照)を生成する(ステップS121)。
【0176】
さらに、鍵生成装置1は、マスタ鍵生成手段103によって、基本情報生成手段101で生成された基本情報である生成元gのα乗を演算してマスタ鍵MK(前記式(5)参照)を生成する(ステップS122)。
以上の動作により、鍵生成装置1は、属性ベース暗号における公開鍵およびマスタ鍵を生成することができる。
【0177】
(秘密鍵生成動作)
次に、
図11を参照(構成については、適宜
図3参照)して、
図8のステップS22の動作(秘密鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、秘密鍵生成手段111aによって、乱数tをZ
pからランダムに選択する(ステップS220)。
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるg
aと、マスタ鍵記憶手段105に記憶されているマスタ鍵MK(=g
α)を用いて、g
αg
atを演算(前記式(7)参照)し、秘密鍵の要素Kを求める(ステップS221)。
【0178】
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部である生成元gのt乗を演算(前記式(8)参照)し、秘密鍵の要素Lを求める(ステップS222)。
また、秘密鍵生成手段111aは、属性Sのすべての属性値xにおいて、公開鍵記憶手段104に記憶されている公開鍵の一部であるハッシュ関数Hを用いて、H(x)のt乗を演算し、秘密鍵の要素K
x(前記式(9)参照)を求める(ステップS223)。
そして、秘密鍵生成手段111aは、ステップS221〜S223で演算された各要素で構成される秘密鍵SK(前記式(10)参照)を生成する(ステップS224)。
以上の動作により、鍵生成装置1は、属性ベース暗号における秘密鍵を生成することができる。
【0179】
〔ユーザID配信動作〕
次に、
図12を参照(構成については、適宜
図3,
図4参照)して、属性ベース暗号システムSAのユーザIDの配信動作について説明する。
まず、鍵生成装置1は、ユーザID生成手段120によって、中間暗号化装置2のユーザに対するユーザ登録を受け付けることで、そのユーザ個別の識別情報(ユーザID)を生成する(ステップS30)。
そして、鍵生成装置1は、ユーザID送信手段121によって、ステップS30で生成されたユーザIDを、中間暗号化装置2に送信する(ステップS31)。
一方、中間暗号化装置2は、ユーザID受信手段24によって、鍵生成装置1から送信されたユーザIDを受信し(ステップS32)、ユーザID記憶手段25に書き込み記憶する(ステップS33)。
以上の動作により、属性ベース暗号システムSAは、鍵生成装置1から、中間暗号化装置2の個別のユーザに対して、ユーザIDを発行することができる。
【0180】
〔データ暗号化(中間暗号化を含む)動作〕
次に、
図13を参照(構成については、適宜
図4,
図5,
図6参照)して、属性ベース暗号システムSAのデータの中間暗号化および暗号化動作について説明する。
まず、中間暗号化装置2は、ポリシー入力手段21によって、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力する(ステップS40)。なお、このポリシーは、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとで構成される。
【0181】
また、中間暗号化装置2は、データ入力手段20によって、暗号化の対象となるデータを外部から入力する(ステップS41)。
そして、中間暗号化装置2は、中間暗号化データ生成手段260によって、公開鍵に基づいて、ステップS40で入力されたポリシーに対応する中間暗号化データを生成する(ステップS42)。さらに、中間暗号化装置2は、証明書付与手段261によって、中間暗号化データに付与する証明書を生成する(ステップS43)。なお、このステップS42,S43における中間暗号化データ生成動作および証明書生成動作については、
図14,
図15を参照して後で詳細に説明する。
【0182】
そして、中間暗号化装置2は、証明書付与手段261によって、ステップS42で生成された中間暗号化データに、ステップS43で生成された証明書を付与して、証明書付き中間暗号化データを生成する(ステップS44)。
さらに、中間暗号化装置2は、データ関連付け手段27によって、ステップS44で生成された証明書付き中間暗号化データに、ユーザID記憶手段25に記憶されているユーザIDと、ステップS40で入力されたポリシー(A,ρ)とを関連付けて、ID・ポリシー・証明書付き中間暗号化データを生成する(ステップS45)。
そして、中間暗号化装置2は、データ送信手段28によって、ステップS45で生成されたID・ポリシー・証明書付き中間暗号化データを、委託暗号化装置4に送信する(ステップS46)。
【0183】
そして、委託暗号化装置4は、データ受信手段42によって、ステップS46で送信されたID・ポリシー・証明書付き中間暗号化データを受信する(ステップS47)。
その後、委託暗号化装置4は、データ分離手段43によって、ステップS47で受信したID・ポリシー・証明書付き中間暗号化データを、個々のデータ(ユーザID、ポリシー、証明書、中間暗号化データ)に分離する(ステップS48)。
そして、委託暗号化装置4は、暗号化データ生成手段44によって、公開鍵記憶手段41に記憶されている公開鍵と、ステップS48で分離されたポリシーとに基づいて、ステップS48で分離された中間暗号化データにさらに暗号化処理を継続して実行して、暗号化データを生成する(ステップS49)。なお、このステップS49における暗号化データ生成動作については、
図16を参照して後で詳細に説明する。
【0184】
さらに、委託暗号化装置4は、データ関連付け手段45によって、ステップS48で分離されたユーザID、証明書およびポリシーと、ステップS49で生成された暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成する(ステップS50)。
そして、委託暗号化装置4は、データ送信手段46によって、ステップS50で生成されたID・ポリシー・証明書付き暗号化データを、データ管理装置5に送信する(ステップS51)。
【0185】
一方、データ管理装置5は、データ受信手段50によって、委託暗号化装置4から送信されたID・ポリシー・証明書付き暗号化データを受信し(ステップS52)、暗号化データ記憶手段51に書き込み記憶する(ステップS53)。
以上の動作により、属性ベース暗号システムSAは、中間暗号化装置2と委託暗号化装置4とで暗号化処理を分散して行い、暗号化データをデータ管理装置5に記憶させることができる。
【0186】
(中間暗号化データ生成動作)
次に、
図14を参照(構成については、適宜
図4参照)して、
図13のステップS42の動作(中間暗号化データ生成動作)について詳細に説明する。
まず、中間暗号化装置2は、中間暗号化データ生成手段260によって、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y
2,…,y
n,β
1,β
2,…,β
nを、Z
pからランダムに選択する(ステップS420)。
さらに、中間暗号化データ生成手段260は、ステップS420で生成した乱数から、前記式(11)の演算を行い、中間暗号化データの要素となるベクトルvを求める(ステップS421)。
【0187】
そして、中間暗号化データ生成手段260は、暗号化対象のデータMと、ステップS420で選択した乱数sと、公開鍵記憶手段23に記憶されている公開鍵の一部であるe(g,g)
αおよびgとにより、前記式(12)を演算することで、中間暗号化データの要素C,C′を求める(ステップS422)。
さらに、中間暗号化データ生成手段260は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、前記式(13)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号J
iを選択する(ステップS423)。
【0188】
そして、中間暗号化データ生成手段260は、ステップS420で選択した乱数β
j(1≦j≦n)のうちで、ステップS423で選択した列番号J
iに対応する乱数と、公開鍵記憶手段23に記憶されている公開鍵の一部であるg
aとに基づいて、前記式(15)を演算することで、中間暗号化データの要素E
i(1≦i≦m)を求める(ステップS424)。
そして、中間暗号化データ生成手段260は、ステップS421,S422,D424で演算された各要素で構成される中間暗号化データCT′(前記式(16)参照)を生成する(ステップS425)。
以上の動作により、中間暗号化データ生成手段260は、暗号化処理の一部の処理(中間暗号化処理)を行うことができる。
【0189】
(証明書生成動作)
次に、
図15を参照(構成については、適宜
図4参照)して、
図13のステップS43の動作(証明書生成動作)について詳細に説明する。
中間暗号化装置2は、証明書付与手段261によって、前記式(17)により、証明書πを生成する(ステップS430)。
すなわち、証明書付与手段261は、
図14のステップS425で生成された中間暗号化データCT′の要素Cと、ステップS420で選択された乱数sを用いてe(g,g)
αをs乗した値と、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報をハッシュ関数H″で演算したハッシュ値と、ユーザID記憶手段25に記憶されているユーザIDとを4つの引数とし、ハッシュ関数H′によるハッシュ値として証明書πを生成する。
【0190】
(暗号化データ生成動作)
次に、
図16を参照(構成については、適宜
図5参照)して、
図13のステップS49の動作(暗号化データ生成動作)について詳細に説明する。
まず、委託暗号化装置4は、暗号化データ生成手段44によって、前記式(18)に示すように、ポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A
i=(A
i,1 A
i,2 … A
i,n)をアクセス行列Aのi行目ベクトルとして、
図14のステップS425で生成された中間暗号化データCT′に含まれるベクトルvとの内積λ
i′を演算する(ステップS490)。
さらに、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行数分(m個)の乱数r
1,r
2,…,r
mを、Z
pからランダムに選択する(ステップS491)。
【0191】
そして、暗号化データ生成手段44は、公開鍵の一部であるg,g
a,H′と、ステップS490の演算結果(λ
i′)と、ステップS491で選択された乱数r
i(1≦i≦m)とにより、前記式(19)を演算することで、暗号化データの要素{C
i,D
i}(1≦i≦m)を求める(ステップS492)。
そして、暗号化データ生成手段44は、中間暗号化データCT′に含まれる要素C,C′と、ステップS492で演算された各要素とで構成される暗号化データCT(前記式(20)参照)を生成する(ステップS493)。
以上の動作により、暗号化データ生成手段44は、中間暗号化データCT′に対して、残りの暗号化処理を行うことができる。
【0192】
〔データ復号動作〕
次に、
図17を参照(構成については、適宜
図6,
図7参照)して、属性ベース暗号システムSAの暗号化データの復号動作について説明する。
まず、復号装置6は、データ要求送信手段64によって、ユーザIDを含んだデータ要求を、データ管理装置5に送信する(ステップS60)。
そして、データ管理装置5は、データ要求受信手段52によって、復号装置6から、暗号化データの要求(データ要求)を受信する(ステップS61)。
【0193】
その後、データ管理装置5は、データ検索手段53によって、データ要求に含まれているユーザIDを検索キーとして、暗号化データ記憶手段51に記憶されている複数のID・ポリシー・証明書付き暗号化データの中から、ユーザIDが一致するID・ポリシー・証明書付き暗号化データを検索する(ステップS62)。
そして、データ管理装置5は、データ送信手段54によって、ステップS62で検索されたID・ポリシー・証明書付き暗号化データを、当該データを要求した復号装置6に送信する(ステップS63)。
【0194】
一方、復号装置6は、データ受信手段65によって、データ管理装置5から送信されたID・ポリシー・証明書付き暗号化データを受信する(ステップS64)。
そして、復号装置6は、ポリシー分離手段661によって、ステップS64で受信したID・ポリシー・証明書付き暗号化データからポリシーを分離する(ステップS65)。
また、復号装置6は、属性付き秘密鍵分離手段660によって、属性付き秘密鍵記憶手段63に記憶されている属性付き秘密鍵を、属性と秘密鍵とに分離する(ステップS66)。
【0195】
そして、復号装置6は、ポリシー判定手段662によって、復号装置6に登録されているステップS66で分離された属性が、暗号化データに関連付けられているステップS65で分離されたポリシーを満たすか否かを判定する(ステップS67)。
すなわち、ポリシー判定手段662は、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する(前記式(21)参照)。
そして、ポリシー判定手段662は、アクセス行列Aの行ベクトルA
i(i∈I)を用いて、Z
pに属する値w
iとして、アクセス行列Aのi行目のベクトルA
i=(A
i,1 A
i,2 … A
i,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるw
iを求めることができるか否かにより、ポリシーを満たすか否かを判定する(前記式(22)参照)。
ここで、属性がポリシーを満たさない場合(ステップS67でNo)、復号装置6は、復号動作を終了する。なお、この場合、復号装置6は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【0196】
一方、属性がポリシーを満たす場合(ステップS67でYes)、復号装置6は、証明書検証手段663によって、暗号化データに付与されている証明書を検証するための証明書検証データを生成する(ステップS68)。なお、このステップS68における証明書検証データ生成動作については、
図18を参照して後で詳細に説明する。
【0197】
さらに、復号装置6は、証明書検証手段663によって、証明書による検証が成功したか否かを判定する(ステップS69)。このステップS69では、ステップS68で生成された証明書検証データと暗号化データに付与されている証明書とが一致する場合、検証が成功したと判定し、一致しない場合、検証に失敗したと判定する。
ここで、検証に失敗した場合(ステップS69でNo)、復号装置6は、復号動作を終了する。なお、この場合、復号装置6は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【0198】
一方、検証に成功した場合(ステップS69でYes)、復号装置6は、データ復号手段664によって、暗号化データを復号し(ステップS70)、元データとして外部に出力する(ステップS71)。なお、このステップS70における暗号化データ復号動作については、
図19を参照して後で詳細に説明する。
以上の動作により、属性ベース暗号システムSAは、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化された暗号化データを、属性に応じて復号することができる。
【0199】
(証明書検証データ生成動作)
次に、
図18を参照(構成については、適宜
図7参照)して、
図17のステップS68の動作(証明書検証データ生成動作)について詳細に説明する。
まず、復号装置6は、証明書検証手段663によって、公開鍵の一部である双線形写像e(前記式(4)参照)、秘密鍵の各要素であるK、L、K
x(前記式(10)参照)、暗号化データの要素C′,C
i,D
i(前記式(20)参照)と、ステップS67のポリシー判定時に求めたw
iを用いて、前記式(23)の演算を行う(ステップS680)。
そして、証明書検証手段663は、暗号化データの要素Cと、ステップS680の演算結果Bと、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報をハッシュ関数H″で演算したハッシュ値と、ユーザIDとを4つの引数とし、ハッシュ関数H′によるハッシュ値として証明書検証データπ′を生成する(ステップS681)。
【0200】
(暗号化データ復号動作)
次に、
図19を参照(構成については、適宜
図7参照)して、
図17のステップS70の動作(暗号化データ復号動作)について詳細に説明する。
復号装置6は、データ復号手段664によって、前記式(26)により、暗号化データを復号する(ステップS430)。
すなわち、データ復号手段664は、暗号化データの要素Cを、
図18のステップS682での演算結果Bで除することで、元データMを復号する。
以上の動作により、データ復号手段664は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを復号することができる。
【0201】
[属性ベース暗号システムの応用例]
次に、
図20を参照して、本発明の実施形態に係る属性ベース暗号システムの応用例について説明する。
図20は、属性ベース暗号システムSA(
図1参照)を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
【0202】
図20に示す個人情報保護システムSBは、ユーザがサービス事業者の評価(信頼度等)をポリシーとして設定することで、そのポリシーを満たす属性のサービス事業者のみが、ユーザに対してサービスを提供することを可能にするシステムである。
ここでは、サービスとして、レコメンド情報(例えば、ユーザの放送番組の視聴履歴を分析した結果から得られるそのユーザにお勧めの番組案内等)を提供するサービスを一例に説明する。
【0203】
個人情報保護システムSBは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4およびデータ管理装置5)と、復号装置6とを、ネットワーク(通信回線)Nを介して接続して構成している。
鍵生成装置1、中間暗号化装置2、クラウドサーバ3(委託暗号化装置4,データ管理装置5)および復号装置6は、それぞれ、
図3〜
図7で説明した各装置と同じものである。
【0204】
以下、個人情報保護システムSBの動作について説明する。
鍵生成装置1は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置6に送信する。
例えば、属性の属性種別を、「プライバシーマーク」と「ユーザ評価」とし、「プライバシーマーク」の属性値を「6:あり」、「7:なし」、「ユーザ評価」の属性値を「1」〜「5」の5段階とする。そして、鍵生成装置1は、あるサービス事業者A,B,Cに対する属性S
A,S
B,S
Cを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置6に送信する。
【0205】
S
A={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}
S
B={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}
S
C={(‘プライバシーマーク’,6),(‘ユーザ評価’,3)}
【0206】
なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「6:あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
【0207】
中間暗号化装置2は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
また、中間暗号化装置2は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、レコメンド情報の提供を許可するサービス事業者の評価を“5”とする場合、中間暗号化装置2は、ポリシーを(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のように設定する。
そして、中間暗号化装置2は、個人情報を暗号化した証明書付き中間暗号化個人情報にユーザIDとポリシーとを関連付けて、委託暗号化装置4に送信する。
【0208】
委託暗号化装置4は、さらに暗号化を行い、ユーザID、ポリシー、証明書付き暗号化個人情報を、データ管理装置5に記憶する。
復号装置6は、例えば、図示を省略したサービス提供装置等に備えられ、データ管理装置5からユーザIDに対応するポリシー、証明書付き暗号化個人情報を取得する。このとき、復号装置6は、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
【0209】
例えば、前記のようにポリシーが(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のとき、サービス事業者Aの復号装置6は、自身に設定された属性が、前記S
A={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}であるので、個人情報を復号することができるが、サービス事業者Bの復号装置6は、自身に設定された属性が、前記S
B={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}であるので、個人情報を復号することができない。
そして、サービス提供装置(不図示)は、復号装置6で復号された個人情報(視聴履歴等)を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
【0210】
以上説明した個人情報保護システムSBによれば、中間暗号化装置2においてデータ(ここでは個人情報)を暗号化する際に、一部の暗号化処理をクラウドサーバ3の委託暗号化装置4が処理し、データ管理装置5に保存することにより、ユーザの中間暗号化装置2の負荷を抑え、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身に対する評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。