JP6384149B2 - 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム - Google Patents
鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム Download PDFInfo
- Publication number
- JP6384149B2 JP6384149B2 JP2014135875A JP2014135875A JP6384149B2 JP 6384149 B2 JP6384149 B2 JP 6384149B2 JP 2014135875 A JP2014135875 A JP 2014135875A JP 2014135875 A JP2014135875 A JP 2014135875A JP 6384149 B2 JP6384149 B2 JP 6384149B2
- Authority
- JP
- Japan
- Prior art keywords
- attribute
- policy
- key
- encrypted data
- public key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
このような属性ベース暗号は、1つの暗号文を復号することができるユーザを複数存在させることができるため、ファイル共有システムのアクセス制御、コンテンツ配信サービス等への応用が期待されている。
従来のCP−ABEでは、例えば、非特許文献1に記載されているように、各々の属性に対応する属性値(固定値)を、AND(論理積)やOR(論理和)で結合したブール代数形式または木構造でポリシーを記述する。
一般的なコンテンツ配信サービスでは、コンテンツの視聴制限を行う場合、例えば、ユーザの会員種別(プレミアム会員、一般会員等)、性別、年齢等により行っている。その場合、視聴制限を示すポリシーは、『‘プレミアム会員’OR(‘女性’AND‘成人’)』のように表すことができる。
この視聴制限を従来のCP−ABEで指定する場合、CP−ABEは、ポリシーに記述可能な属性値が固定値のみであるため、ポリシーを、『‘プレミアム会員’OR(‘女性’AND(年齢:20 OR 年齢:21 … 年齢:99 OR 年齢:100))』のように、属性値を列挙して指定することになる。
ここで、アクセス行列は、線形秘密分散法によるポリシー(復号条件)を表した行列である。後記する暗号化装置において、このアクセス行列と、アクセス行列の各行から属性種別と属性値の範囲に変換する写像とにより、属性値を範囲指定することが可能になる。
これによって、鍵生成装置は、アクセス行列を用いてポリシーを指定してデータの暗号化/復号を行う際に使用する公開鍵と秘密鍵(属性付き秘密鍵)を生成することができる。
本発明によれば、ポリシー(復号条件)の属性値を、線形秘密分散法(LSSS)のアクセス行列により範囲指定することができる。
これによって、本発明は、属性値の範囲が大きくなった場合でも、個々の属性値を列挙して記述する従来の手法に比べて、暗号化データの情報量を抑えることができる。
[属性ベース暗号システムの構成]
まず、図1を参照して、本発明の実施形態に係る属性ベース暗号システム100の構成について説明する。
属性ベース暗号システム100は、復号条件となる属性の属性値を示すポリシーに基づいてデータを暗号化し、ユーザ(受信者)の属性の属性値が、ポリシーに適合した場合だけ、暗号化データを復号するシステムである。
なお、ここでは、鍵生成装置1は、属性の種別を示す属性種別と、それに対応するユーザの属性値とを対とした属性ペアを秘密鍵に関連付け、属性付き秘密鍵として、復号装置5に送信する。
この復号装置5は、暗号化装置3で生成されたポリシー付き暗号化データとして暗号化データに関連付けられているポリシー(復号条件)が、鍵生成装置1で生成される属性付き秘密鍵で特定される属性の属性値に適合する場合のみ復号を行う。
以下、属性ベース暗号システム100の各構成について説明する前に、属性ベース暗号システム100で使用する属性およびポリシーについて、具体例を挙げて説明する。
属性は、ユーザを区分するための個別情報である。例えば、会員種別、居住地、性別、年齢等である。
この属性は、属性内容を特定する属性値で区分される。例えば、ユーザの会員の種類を示す「会員種別」を属性とする場合、その属性を区分する通常会員およびプレミアム会員は、数値{1,2}、文字列{通常会員、プレミアム会員}等の属性値で区分することができる。
また、例えば、ユーザの「居住地」を属性とする場合、その属性は、郵便番号の上2桁を用いて10〜99の属性値によって区分することができる。
また、例えば、ユーザの「性別」を属性とする場合、その属性を区分する男性および女性は、数値{1,2}、文字列{男性,女性}等の属性値で区分することができる。
また、例えば、ユーザの「年齢」を属性とする場合、その属性は、年齢の値をそのまま属性値として用いることができる。
ポリシーは、暗号化データを復号するための条件(復号条件)を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
ここでは、ポリシーは、線形秘密分散法(Linear Secret Sharing Scheme:LSSS)によって生成されるアクセス行列Mと、アクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像πとで構成される。
ここで、アクセス行列Mと写像πの内容について具体的に説明する。
ここでは、前記した属性を例とし、ポリシーを以下の式(1)に示す論理形式で示す条件とする。
なお、説明を簡略化するため、式(1)の条件を、ポリシーの属性をA〜Dで表した以下の式(2)に示す簡略表現とする。
初めに、ツリーのルートノードにベクトルv=(1)を設定する。
そして、親ノードが「AND」の場合、子ノード同士に設定されるベクトルの和が(v,0)となるように子ノードのベクトルを拡張していく。図2の例では、親ノード(ここでは、ルートノード「AND」)の子ノード「A」に設定するベクトルと、子ノード「OR」に設定するベクトルの和が(1,0)になるように、子ノード「A」には(1,1)、子ノード「OR」には(0,−1)を設定する。
そして、ベクトル(0,−1)が設定されたノード「AND」は、前記と同様に、子ノード「C」に設定するベクトルと、子ノード「D」に設定するベクトルの和が(0,−1,0)になるように、子ノード「C」には(0,−1,1)、子ノード「D」には(0,0,−1)を設定する。
次に、写像πについて説明する。
この写像πは、式(3)に示したアクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像である。
すなわち、写像πは、アクセス行列Mの行のインデックスをjとしたとき、π(j)1の属性種別と、π(j)2の属性値の範囲に変換する写像である。
具体的には、前記式(1)で示したポリシーに対応する写像πは、以下の式(4)に示すように表現される。ここで、[x,y]は、x以上y以下の整数の集合を示す(以下、同じ)。
ここでは、以上説明したように、アクセス行列Mと写像πとでポリシーを構成する。
以下、図1に示した属性ベース暗号システム100の各構成について説明する。
まず、図3を参照(適宜図1参照)して、本発明の実施形態に係る鍵生成装置1の構成について説明する。ここでは、鍵生成装置1は、第一鍵生成手段10と、第二鍵生成手段20と、を備える。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値(例えば、鍵長)である。より具体的には、セキュリティパラメータは、後記する基本情報生成手段12で使用される素数位数pの大きさ(ビット長)である。
このレンジエンコード関数は、属性値を葉ノードとして含む完全二分木において、属性値の範囲を、当該範囲を覆う完全二分木のルートノードに近いノード(カバーノード)に写す写像関数である。すなわち、レンジエンコード関数の出力として取り得るノードの要素数umaxは、この完全二分木の総ノード数である。このレンジエンコード関数については、当該関数を用いる暗号化装置3において、詳細に説明する。
このパラメータ入力手段11は、入力されたセキュリティパラメータおよび属性情報を、基本情報生成手段12に出力する。
具体的には、基本情報生成手段12は、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,GTを選択する。そして、基本情報生成手段12は、巡回群GおよびGTがG×G→GTとなる双線形写像eを選択する。例えば、基本情報生成手段12は、e:G×G→GTとなる双線形写像eとして、一般的な“Weil Pairing”、“Tate Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
また、基本情報生成手段12は、乱数a,α,hj,x,uを、Zpからランダムに選択する。ここで、乱数hj,x,uは、すべてのj∈[1,nmax],すべてのx∈[1,W],すべてのu∈[1,umax]に対して選択されるものとする。なお、Zpは、{0,…,p−1}の整数の集合である。
ここでは、公開鍵生成手段13は、基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのhj,x,u乗を演算し、以下の式(5)に示すように、基本情報生成手段12で生成された素数位数p、巡回群G,GT、双線形写像eおよび生成元gとともに、公開鍵PKを生成する。
この公開鍵生成手段13は、生成した公開鍵PKを公開鍵記憶手段15に書き込み記憶する。
ここでは、マスタ鍵生成手段14は、以下の式(6)に示すように、基本情報に基づいて、生成元gのα乗を演算してマスタ鍵MKを生成する。
この公開鍵記憶手段15に記憶された公開鍵は、公開鍵送信手段17および第二鍵生成手段20によって読み出される。
このマスタ鍵記憶手段16に記憶されたマスタ鍵は、第二鍵生成手段20によって読み出される。
ここでは、公開鍵送信手段17は、公開鍵記憶手段15から公開鍵を読み出し、ネットワークNを介して、読み出した公開鍵を暗号化装置3や復号装置5に送信する。この公開鍵送信手段17は、例えば、暗号化装置3や復号装置5から、公開鍵を要求されたタイミングで、公開鍵を送信する。
例えば、属性種別を、「会員種別」、「居住地」、「性別」、「年齢」とした場合、属性ペアSは、以下に示すように、それぞれの属性種別に、ユーザ固有の属性値を対応付けたものである。
S={(‘会員種別’,通常会員),(‘居住地’,15),(‘性別’,男性),
(‘年齢’,37)}
なお、以下では、属性種別をxi、属性値をsi(i=1,…,k;kは1以上の整数)としたとき、属性ペアSを、S={(x1,s1),…,(xk,sk)}と表すこととする。
この属性入力手段21は、入力された属性ペアを、属性付き秘密鍵生成手段22に出力する。
具体的には、秘密鍵生成手段221は、以下の演算を行うことで、秘密鍵を生成する。
まず、秘密鍵生成手段221は、アクセス行列M(例えば、前記式(3))の列の最大数nmax分の乱数t1,…,tnmaxをZpからランダムに選択する。
そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgaと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=gα)を用いて、以下の式(7)の演算を行い、秘密鍵の要素となるKを求める。
図4に示すように、ポイントエンコード関数は、葉ノード(ここでは、“1”〜“8”)を含んだ完全二分木において、ある葉ノードを、当該葉ノードのすべての先祖ノードの集合に写す写像関数である。すなわち、ポイントエンコード関数は、完全二分木において、葉ノードからルートノードまで辿るノードの集合を出力する。
例えば、図4の例では、ある葉ノード(“6”)をポイントエンコード関数fによって符号化した場合、{6,11,14,15}が生成される。
図3に戻って、鍵生成装置1の構成について説明を続ける。
この属性関連付け手段222は、生成した属性付き秘密鍵を属性付き秘密鍵送信手段23に出力する。
ここでは、属性付き秘密鍵送信手段23は、属性付き秘密鍵を、ネットワークNを介して、例えば、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等の暗号化通信プロトコルを用いて復号装置5に送信する。なお、復号装置5の送信先については、外部から設定されるものとする。
なお、鍵生成装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(鍵生成プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
次に、図5を参照(適宜図1参照)して、本発明の実施形態に係る暗号化装置3の構成について説明する。ここでは、暗号化装置3は、データ入力手段31と、ポリシー入力手段32と、公開鍵受信手段33と、公開鍵記憶手段34と、ポリシー付き暗号化データ生成手段35と、ポリシー付き暗号化データ送信手段36と、を備える。
このポリシー入力手段32は、入力されたポリシーをポリシー付き暗号化データ生成手段35に出力する。
なお、公開鍵受信手段33は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、ポリシー付き暗号化データ生成手段35が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
ここでは、ポリシー付き暗号化データ生成手段35は、暗号化データ生成手段351と、ポリシー関連付け手段352と、を備える。
具体的には、暗号化データ生成手段351は、以下の演算を行うことで、暗号化データを生成する。
まず、暗号化データ生成手段351は、ポリシーとして入力されるアクセス行列の列の数n分の乱数s,y2,…,ynを、Zp nからランダムに選択する。なお、Zp nは、Zp上の整数を要素にもつn次元ベクトルの集合である。ここでは、各乱数を、インデックスv=(s,y2,…,yn)で表し、v1=s,v2=y2,…,vn=ynとする。
そして、暗号化データ生成手段351は、選択した乱数s(=v1)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、以下の式(11)を演算することで、暗号化データの要素となるC,C′を求める。
さらに、暗号化データ生成手段351は、アクセス行列Mをm行n列としたときのすべてのi∈[1,m],j∈[1,n]と、すべてのu∈F(π(i)2)とに対して、公開鍵記憶手段34に記憶されている公開鍵の一部であるgのa乗とgのhj,x,u乗とにより、以下の式(12)の演算を行い、暗号化データの要素となるCi,j,uを求める。
また、π(i)2は、ポリシー入力手段32で入力されたポリシーの写像πの要素であって、i番目の属性に対応する属性値(属性値の範囲を含む)である。
また、Fは、レンジエンコード(Range Encode)関数である。このレンジエンコード関数Fは、任意の区間(属性値の範囲)を、完全二分木のカバーノードの集合に写す写像関数であって、「E. Shi, J. Bethencourt, H. Chan, D. Song, A. Perrig,“Multi-Dimensional Range Query over Encrypted Data,” Proc. of the 2007 IEEE Symposium on Security and Privacy, pp. 350-364」に記載されている符号化関数である。
図6に示すように、レンジエンコード関数は、葉ノード(ここでは、“1”〜“8”)を含んだ完全二分木において、任意の区間の葉ノードを、カバーノードの集合に写す写像である。なお、カバーノードとは、自身の子ノードのすべての葉ノードが当該区間に含まれるようなノードである。すなわち、レンジエンコード関数は、完全二分木において、当該区間の最も高い(ルートノードに近い)カバーノードの集合を出力する関数である。
例えば、図6の例で、区間[2,8]をレンジエンコード関数Fによって符号化した場合、{2,10,14}が生成される。
図5に戻って、暗号化装置3の構成について説明する。
このポリシー関連付け手段352は、生成したポリシー付き暗号化データをポリシー付き暗号化データ送信手段36に出力する。
ここでは、ポリシー付き暗号化データ送信手段36は、ポリシー付き暗号化データを、ネットワークNを介して、復号装置5に送信する。なお、復号装置5の送信先については、外部から設定されるものとする。
なお、暗号化装置3は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
次に、図7を参照(適宜図1参照)して、本発明の実施形態に係る復号装置5の構成について説明する。ここで、復号装置5は、公開鍵受信手段51と、公開鍵記憶手段52と、属性付き秘密鍵受信手段53と、属性付き秘密鍵記憶手段54と、ポリシー付き暗号化データ受信手段55と、ポリシー付き暗号化データ復号手段56と、を備える。
なお、公開鍵受信手段51は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、ポリシー付き暗号化データ復号手段56が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
なお、属性付き秘密鍵受信手段53は、ポリシー付き暗号化データ復号手段56が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置5が、図示を省略した登録手段によって、予め鍵生成装置1に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
この属性付き秘密鍵分離手段561は、分離した属性ペアである属性の種別を示す属性種別と、それに対応するユーザの属性値とをポリシー判定手段563に出力する。また、属性付き秘密鍵分離手段561は、分離した秘密鍵(前記式(10)参照)を暗号化データ復号手段564に出力する。
このポリシー付き暗号化データ分離手段562は、ポリシー付き暗号化データを、ポリシー(M,π)と、暗号化データ(前記式(13)参照)とに分離して、ポリシー判定手段563に出力する。
なお、ポリシー判定手段563は、属性ペアがポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
具体的には、暗号化データ復号手段564は、以下の式(14)に示す演算を行うことで、暗号化データからデータDを復号する。
また、eは、公開鍵(前記式(5)参照)として公開されている双線形写像である。
また、nmaxは、アクセス行列Mの列の最大数である。このアクセス行列Mの列の最大数nmaxは、暗号化データ復号手段564に予め保持しておいてもよいし、外部から設定されることとしてもよい。あるいは、nmaxを公開鍵の一部として含め、それを参照することとしてもよい。また、kは、属性ペアの属性数である。
また、式(14)中、ijは、以下の式(15)を満たす(真値となる)属性ペアの中の属性および属性値を指し示すインデックスである。
また、式(14)中、zjは、以下の式(16)を満たすノードである
また、式(14)中、wijは、属性ペアS分のk個の要素からなるベクトルw=(w1,w2,…,wk)と、アクセス行列Mから属性ペアSに含まれる各属性に対応する行のみを抽出した行列Msとにおいて、w・Ms=(1,0,…,0)を満たすベクトルwのij番目(ij∈[1,k])の要素の値である。
ここで、前記式(14)によって、暗号化データ復号手段564が、元のデータDを復号することができることを証明しておく。
なお、データDは、前記式(11)により暗号化されているため、前記式(14)から、以下の式(17)が導き出せればよいことになる。
また、式(18-2)から式(18-3)の変形は、双線形写像の性質であるe(ga,gb)=e(gb,ga)=e(g,g)ab)を利用することで変形することができる。
具体的には、双線形写像の性質により、式(18-2)の分子は、以下の式(19)のように変形することができる。
ここで、LSSSの性質とは、ベクトルw=(w1,w2,…,wk)と、行列Msとにおいて、w・Ms=(1,0,…,0)となる性質である。
すなわち、LSSSは、以下の式(20)の性質を有する。
また、前記式(18)において、式(18-5)から式(18-6)の変形は、双線形写像のe(ga,gb)=e(gb,ga)=e(g,g)ab)の性質を利用することで変形することができる。
このように復号装置5を構成することで、復号装置5は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを、ユーザの属性に応じて復号することができる。
次に、本発明の実施形態に係る属性ベース暗号システム100の動作について説明する。ここでは、鍵(公開鍵、秘密鍵)の生成・配信動作と、データの暗号化・復号動作とに分けて説明する。
最初に、図8を参照(構成については、適宜図3,図5,図7参照)して、属性ベース暗号システム100の鍵(公開鍵、秘密鍵)の生成・配信動作について説明する。
まず、鍵生成装置1は、パラメータ入力手段11によって、パラメータ(セキュリティパラメータ、属性情報)を外部から入力する(ステップS1)。なお、属性情報は、属性ベース暗号システム100で使用する属性の数(システムの属性数W)、アクセス行列Mの列の最大数nmax、および、レンジエンコード関数の出力として取り得るノードの要素数umaxである。
そして、鍵生成装置1は、公開鍵生成手段13およびマスタ鍵生成手段14によって、ステップS2で生成された基本情報に基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する(ステップS3)。なお、このステップS3における公開鍵・マスタ鍵生成動作については、図10を参照して後で詳細に説明する。
その後、鍵生成装置1は、公開鍵送信手段17によって、ステップS4で公開鍵記憶手段15に記憶されている公開鍵を、暗号化装置3および復号装置5に送信(公開)する(ステップS5)。
すなわち、鍵生成装置1は、属性入力手段21によって、個別の復号装置5のユーザに対する属性ペア(属性種別および属性値)を入力する(ステップS10)。
その後、鍵生成装置1は、属性付き秘密鍵送信手段23によって、ステップS12で生成された属性付き秘密鍵を、復号装置5に送信する(ステップS13)。
以上の動作により、属性ベース暗号システム100は、鍵生成装置1によって、属性ベース暗号における鍵(公開鍵、秘密鍵)を生成し、鍵を必要とする暗号化装置3および復号装置5に送信する。
次に、図9を参照(構成については、適宜図3参照)して、図8のステップS2の動作(基本情報生成動作)について詳細に説明する。
まず、鍵生成装置1は、基本情報生成手段12によって、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,GTを選択する(ステップS21)。
また、基本情報生成手段12は、巡回群G,GTがG×G→GTとなる双線形写像eを選択する(ステップS22)。そして、基本情報生成手段12は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(ステップS23)。
以上の動作により、鍵生成装置1は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する。
次に、図10を参照(構成については、適宜図3参照)して、図8のステップS3の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのhj,x,u乗を演算する(ステップS31)。
そして、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報である素数位数p、巡回群G,GT、双線形写像eおよび生成元gと、ステップS31の演算結果とを含んだ公開鍵PK(前記式(5)参照)を生成する(ステップS32)。
以上の動作により、鍵生成装置1は、属性ベース暗号における公開鍵およびマスタ鍵を生成する。
次に、図11を参照(構成については、適宜図3参照)して、図8のステップS11の動作(秘密鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、秘密鍵生成手段221によって、アクセス行列の列の最大数nmax分の乱数t1,…,tnmaxをZpからランダムに選択する(ステップS41)。
そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgaと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=gα)を用いて、前記式(7)の演算を行い、秘密鍵の要素となるKを求める(ステップS42)。
さらに、秘密鍵生成手段221は、属性ペアS(={(x1,s1),…,(xk,sk)}において、すべてのi∈[1,k]と、すべてのu∈f(si)とに対して、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、前記式(9)の演算を行い、秘密鍵の要素となるKi,uを求める(ステップS44)。
そして、秘密鍵生成手段221は、ステップS42〜S44で演算された各要素で構成される前記式(10)に示す秘密鍵SKを生成する(ステップS45)。
以上の動作により、鍵生成装置1は、属性ベース暗号における秘密鍵を生成する。
次に、図12を参照(構成については、適宜図5、図7参照)して、属性ベース暗号システム100のデータの暗号化・復号動作について説明する。
まず、暗号化装置3は、ポリシー入力手段32によって、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力する(ステップS51)。なお、このポリシーは、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Mと、アクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像πとで構成される。
そして、暗号化装置3は、暗号化データ生成手段351によって、公開鍵に基づいて、ステップS51で入力されたポリシーに対応する暗号化データを生成する(ステップS53)。なお、このステップS53における暗号化データ生成動作については、図13を参照して後で詳細に説明する。
そして、暗号化装置3は、ポリシー付き暗号化データ送信手段36によって、ステップS54で生成されたポリシー付き暗号化データを、復号装置5に送信する(ステップS55)。
そして、復号装置5は、ポリシー付き暗号化データ復号手段56のポリシー付き暗号化データ分離手段562によって、ステップS56で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離する(ステップS57)。
また、復号装置5は、属性付き秘密鍵分離手段561によって、属性付き秘密鍵記憶手段54に記憶されている属性付き秘密鍵を、属性ペアと秘密鍵とに分離する(ステップS58)。
ここで、属性ペアがポリシーを満たす場合(ステップS59でYes)、復号装置5は、暗号化データ復号手段564によって、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号し(ステップS60)、元データとして外部に出力する(ステップS61)。なお、ステップS60における暗号化データ復号動作については、図14を参照して後で詳細に説明する。
以上の動作により、属性ベース暗号システム100は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化し、ユーザの属性に応じてデータを復号することができる。
次に、図13を参照(構成については、適宜図5参照)して、図12のステップS53の動作(暗号化データ生成動作)について詳細に説明する。
まず、暗号化装置3は、暗号化データ生成手段351によって、ポリシーとして入力されるアクセス行列の列の数n分の乱数s,y2,…,ynを、Zp nからランダムに選択する(ステップS71)。このとき、各乱数をv1=s,v2=y2,…,vn=ynとする。
そして、暗号化データ生成手段351は、選択した乱数s(=v1)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、前記式(11)を演算することで、暗号化データの要素となるC,C′を求める(ステップS72)。
そして、暗号化データ生成手段351は、ステップS72〜S73で演算された各要素で構成される前記式(13)に示す暗号化データCTを生成する(ステップS74)。
以上の動作により、暗号化データ生成手段351は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。
次に、図14を参照(構成については、適宜図7参照)して、図12のステップS60の動作(暗号化データ復号動作)について詳細に説明する。
まず、復号装置5は、暗号化データ復号手段564によって、すべてのj∈[1,nmax]において、ポリシーに含まれる写像πのj番目の属性種別π(j)1と属性ペアSのij番目の属性種別xijとが一致し、かつ、写像πのj番目の属性値の範囲π(j)2に属性ペアSのij番目の属性値sijが含まれる前記式(15)を満たすインデックスijを選択する(ステップS81)。
以上の動作により、暗号化データ復号手段564は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを復号することができる。
例えば、ここでは、鍵生成装置1(図3参照)の属性関連付け手段222は、秘密鍵と属性ペアとを連結することで、属性付き秘密鍵を生成した。しかし、属性関連付け手段222は、必ずしも秘密鍵と属性ペアとを連結する必要はなく、秘密鍵と属性ペアとを予め定めた固有の識別子で対応付けることとしてもよい。
その場合、例えば、属性付き秘密鍵送信手段23は、識別子と属性ペアとを対応付けて保持しておき、秘密鍵にその識別子を付加して復号装置5に送信する。そして、属性付き秘密鍵送信手段23は、その識別子により属性ペアを要求されたタイミングで、識別子に対応付けられている属性ペアを復号装置5に送信すればよい。
その場合、例えば、ポリシー付き暗号化データ送信手段36は、識別子とポリシーとを対応付けて保持しておき、暗号化データにその識別子を付加して復号装置5に送信する。そして、ポリシー付き暗号化データ送信手段36は、その識別子によりポリシーを要求されたタイミングで、識別子に対応付けられているポリシーを復号装置5に送信すればよい。
次に、図15を参照して、本発明の実施形態に係る属性ベース暗号システムの応用例について説明する。
図15は、属性ベース暗号システム100(図1参照)を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
ここでは、サービスとして、レコメンド情報(例えば、ユーザの放送番組の視聴履歴を分析した結果のユーザにお勧めの番組案内等)を提供するサービスを一例に説明する。
鍵生成装置1、暗号化装置3および復号装置5は、それぞれ、図3,図5,図7で説明した鍵生成装置1、暗号化装置3および復号装置5と同じものである。
データ管理装置7は、膨大なデータを蓄積管理するもので、主にデータベースと、ストレージの機能を有する一般的なクラウドサーバである。
鍵生成装置1は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置5に送信する。
例えば、鍵生成装置1は、あるサービス事業者A,B,Cに対する属性ペアSA,SB,SCを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置5に送信する。
SB={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}
SC={(‘プライバシーマーク’,あり),(‘ユーザ評価’,3)}
また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
また、暗号化装置3は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、ユーザは、レコメンド情報の提供を許可するサービス事業者の評価を“3”〜“5”の範囲とする場合、ユーザ評価を[3,5]のように範囲指定する。すなわち、暗号化装置3は、ポリシーを以下のように設定する。
(‘プライバシーマーク’=あり)∧(‘ユーザ評価’∈[3,5])
そして、暗号化装置3は、個人情報を暗号化した暗号化個人情報にポリシーを関連付けて、データ管理装置7に送信する。
例えば、復号装置5は、自身に設定された属性ペアが、前記SA={(‘プライバシーマーク’,あり),(‘ユーザ評価’,5)}であれば、個人情報を復号することができるが、前記SB={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}であれば、個人情報を復号することができない。
そして、サービス提供装置(不図示)は、復号装置5で復号された個人情報(視聴履歴等)を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
200 個人情報保護システム
1 鍵生成装置
11 パラメータ入力手段
12 基本情報生成装置
13 公開鍵生成手段
14 マスタ鍵生成手段
15 公開鍵記憶手段
16 マスタ鍵記憶手段
17 公開鍵送信手段
21 属性入力手段
22 属性付き秘密鍵生成手段
221 秘密鍵生成手段
222 属性関連付け手段
23 属性付き秘密鍵送信手段
3 暗号化装置
31 データ入力手段
32 ポリシー入力手段
33 公開鍵受信手段
34 公開鍵記憶手段
35 ポリシー付き暗号化データ生成手段
351 暗号化データ生成手段
352 ポリシー関連付け手段
36 ポリシー付き暗号化データ送信手段
5 復号手段
51 公開鍵受信手段
52 公開鍵記憶手段
53 属性付き秘密鍵受信手段
54 属性付き秘密鍵記憶手段
55 ポリシー付き暗号化データ受信手段
56 ポリシー付き暗号化データ復号手段
561 属性付き秘密鍵分離手段
562 ポリシー付き暗号化データ分離手段
563 ポリシー判定手段
564 暗号化データ復号手段
7 データ管理装置
Claims (7)
- 属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、
使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をnmax、レンジエンコード関数の出力として取り得るノードの要素数をumaxとしたとき、
素数位数pと、当該素数位数pの巡回群G,GTと、当該巡回群G,GTがG×G→GTとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Zp)乗した演算結果と、前記生成元gを乱数a(a∈Zp)乗した演算結果と、前記生成元gをhj,x,u(∀j∈[1,nmax],∀x∈[1,W],∀u∈[1,umax])乗した演算結果とを公開鍵として生成する公開鍵生成手段と、
前記生成元gを前記乱数α乗した演算結果をマスタ鍵として生成するマスタ鍵生成手段と、
前記マスタ鍵をMKとし、Zpから選択した前記nmax分の乱数t1,…,tnmaxと、前記公開鍵の一部であるgおよびgのa乗とにより、
この秘密鍵生成手段で生成された秘密鍵に、前記属性ペアを関連付けて、属性付き秘密鍵を生成する属性関連付け手段と、
を備えることを特徴とする鍵生成装置。 - 使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をn max 、レンジエンコード関数の出力として取り得るノードの要素数をu max とし、素数位数pと、当該素数位数pの巡回群G,G T と、当該巡回群G,G T がG×G→G T となる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z p )乗した演算結果と、前記生成元gを乱数a(a∈Z p )乗した演算結果と、前記生成元gをh j,x,u (∀j∈[1,n max ],∀x∈[1,W],∀u∈[1,u max ])乗した演算結果とを含む公開鍵を用いて、属性ベース暗号によりデータを暗号化する暗号化装置であって、
暗号化の対象となる前記データを入力するデータ入力手段と、
復号条件となるポリシーとして、前記アクセス行列Mと、当該アクセス行列Mの各行jに対応する属性を属性種別π(j)1と属性値の範囲π(j)2に変換する写像πとを入力するポリシー入力手段と、
前記データをDとし、前記アクセス行列の列の数n分の乱数v=(s,y2,…,yn )をZp nから選択し、前記公開鍵により、
この暗号化データ生成手段で生成された暗号化データに、前記ポリシーを関連付けて、ポリシー付き暗号化データを生成するポリシー関連付け手段と、
を備えることを特徴とする暗号化装置。 - 使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をn max 、レンジエンコード関数の出力として取り得るノードの要素数をu max とし、素数位数pと、当該素数位数pの巡回群G,G T と、当該巡回群G,G T がG×G→G T となる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z p )乗した演算結果と、前記生成元gを乱数a(a∈Z p )乗した演算結果と、前記生成元gをh j,x,u (∀j∈[1,n max ],∀x∈[1,W],∀u∈[1,u max ])乗した演算結果とからなる公開鍵、および、前記生成元gを前記乱数α乗した演算結果をマスタ鍵MKとし、Z p から選択した前記n max 分の乱数t 1 ,…,t nmax と、前記属性の種別を示す属性種別x i とそれに対応する属性値s i とを対とした属性ペアS={(x 1 ,s 1 ),…,(x k ,s k )}と、ポイントエンコード関数fと、前記公開鍵とにより演算した
前記属性ペアが前記ポリシーを満たすか否かを判定するポリシー判定手段と、
このポリシー判定手段で前記属性ペアが前記ポリシーを満たすと判定された場合に、前記公開鍵と前記秘密鍵とにより、前記暗号化データから、すべてのj∈[1,nmax]において、
を備えることを特徴とする復号装置。 - コンピュータを、請求項1に記載の鍵生成装置として機能させるための鍵生成プログラム。
- コンピュータを、請求項2に記載の暗号化装置として機能させるための暗号化プログラム。
- コンピュータを、請求項3に記載の復号装置として機能させるための復号プログラム。
- ユーザの個人情報を保護して、サービス事業者がユーザにサービスを提供する個人情報保護システムであって、ネットワーク上に、
前記サービス事業者に与える属性として、属性種別であるユーザ評価およびその属性値の範囲である評価値から、属性付き秘密鍵を生成する請求項1に記載の鍵生成装置と、
前記個人情報をデータ、前記個人情報を復号可能なサービス事業者のユーザ評価および評価値をポリシーとして、前記データからポリシー付き暗号化データを生成する前記ユーザの装置である請求項2に記載の暗号化装置と、
この暗号化装置で生成されたポリシー付き暗号化データを蓄積するデータ管理装置と、
このデータ管理装置に蓄積されているポリシー付き暗号化データを取得し、前記鍵生成装置で生成された属性付き秘密鍵で復号する前記サービス事業者の装置である請求項3に記載の復号装置と、
を備えることを特徴とする個人情報保護システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135875A JP6384149B2 (ja) | 2014-07-01 | 2014-07-01 | 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135875A JP6384149B2 (ja) | 2014-07-01 | 2014-07-01 | 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016015571A JP2016015571A (ja) | 2016-01-28 |
JP6384149B2 true JP6384149B2 (ja) | 2018-09-05 |
Family
ID=55231475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014135875A Active JP6384149B2 (ja) | 2014-07-01 | 2014-07-01 | 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6384149B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6296630B1 (ja) * | 2016-12-09 | 2018-03-20 | 株式会社大和総研 | 分散型台帳システムおよびプログラム |
JP6775231B2 (ja) * | 2017-08-24 | 2020-10-28 | Kddi株式会社 | 計算システム、計算方法及び計算プログラム |
WO2021001990A1 (ja) * | 2019-07-04 | 2021-01-07 | 三菱電機株式会社 | データ処理装置、復号装置、データ処理方法、復号方法、データ処理プログラム及び復号プログラム |
US20220376901A1 (en) * | 2019-07-10 | 2022-11-24 | Nippon Telegraph And Telephone Corporation | Cypher system, key generation apparatus, encryption apparatus, decryption apparatus, method and program |
CN114039730B (zh) * | 2021-11-08 | 2023-05-12 | 福建师范大学 | 一种基于sm9的密钥策略属性基加密方法 |
CN114567500A (zh) * | 2022-03-04 | 2022-05-31 | 南京联成科技发展股份有限公司 | 一种集中管控中心传输数据的加密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5492007B2 (ja) * | 2010-08-04 | 2014-05-14 | 日本放送協会 | コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム |
-
2014
- 2014-07-01 JP JP2014135875A patent/JP6384149B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016015571A (ja) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6384149B2 (ja) | 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム | |
JP5300983B2 (ja) | データ処理装置 | |
Liu et al. | Efficient verifiable public key encryption with keyword search based on KP-ABE | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
JP4859933B2 (ja) | 暗号文生成装置及び暗号通信システム及び群パラメータ生成装置 | |
JP2018148493A (ja) | 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム | |
JP5905128B2 (ja) | 暗号システム、再暗号化装置及び暗号方法 | |
CN111143471B (zh) | 一种基于区块链的密文检索方法 | |
JP2014126865A (ja) | 暗号処理装置および方法 | |
JP5432736B2 (ja) | 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体 | |
US9037846B2 (en) | Encoded database management system, client and server, natural joining method and program | |
CN107291861B (zh) | 一种面向加密图的带约束近似最短距离查询方法 | |
US9875375B2 (en) | Method for performing similar-information search while keeping content confidential by encryption | |
US20180302220A1 (en) | User attribute matching method and terminal | |
Narayanan et al. | Decentralized blockchain based authentication for secure data sharing in Cloud-IoT: DeBlock-Sec | |
JP5670365B2 (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
EP4058951A1 (en) | Privacy preserving machine learning via gradient boosting | |
JP6700797B2 (ja) | 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム | |
JP6022073B2 (ja) | 暗号システム、再暗号化鍵生成装置及び再暗号化装置 | |
AboDoma et al. | Adaptive time-bound access control for internet of things in fog computing architecture | |
JP6112456B2 (ja) | 鍵生成装置、暗号化装置および復号装置、ならびに、それらのプログラム | |
CN105790929A (zh) | 一种基于规则冗余消除的加密环境中高效访问控制方法 | |
JPWO2016199507A1 (ja) | 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム | |
JP5651609B2 (ja) | 検索可能暗号システム、検索装置、計算装置、及びプログラム | |
JP2018116254A (ja) | 情報処理方法、及び、情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180417 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180613 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180626 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6384149 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |