【新規性喪失の例外の表示】特許法第30条第2項適用  (1)電子情報通信学会が平成26年1月21日に発行した「2014年  暗号と情報セキュリティシンポジウム概要集」において概要発表▲1▼▲2▼  (2)電子情報通信学会が平成26年1月21日に発行した「2014年  暗号と情報セキュリティシンポジウム概要集」添付のCD−ROM「2014年  暗号と情報セキュリティシンポジウム」において論文発表▲1▼▲2▼  (3)電子情報通信学会が主催した「2014年  暗号と情報セキュリティシンポジウム」において、平成26年1月22日に講演発表▲1▼▲2▼
    
      
        
          【文献】
          笠松宏平ほか,DBDH仮定に基づく暗号文ポリシー閾値多次元範囲暗号,2013年  暗号と情報セキュリティシンポジウム概要集,日本,一般社団法人電子情報通信学会,2013年  1月22日,p.1-8
        
        【文献】
          久野真太郎ほか,動的な属性情報更新機能を持つ暗号文ポリシー属性ベース暗号,2011年  暗号と情報セキュリティシンポジウム概要集,日本,一般社団法人電子情報通信学会,2011年  1月25日,p.1-8
        
        【文献】
          長谷川佳祐ほか,関数型暗号の実装仕様に関する考察,2014年  暗号と情報セキュリティシンポジウム概要集,日本,一般社団法人電子情報通信学会,2014年  1月21日,p.1-7
        
      
    (58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
  以下、本発明の実施形態について図面を参照して説明する。
[属性ベース暗号システムの構成]
  まず、
図1を参照して、本発明の実施形態に係る属性ベース暗号システム100の構成について説明する。
  属性ベース暗号システム100は、復号条件となる属性の属性値を示すポリシーに基づいてデータを暗号化し、ユーザ(受信者)の属性の属性値が、ポリシーに適合した場合だけ、暗号化データを復号するシステムである。
 
【0024】
  ここでは、属性ベース暗号システム100は、鍵生成装置1と、暗号化装置3と、復号装置5とを、ネットワーク(通信回線)Nを介して接続して構成している。なお、ここでは、説明を簡略化するため、暗号化装置3および復号装置5を1台ずつ図示しているが、これらは、ネットワークNに複数接続することとしてもよい。
 
【0025】
  鍵生成装置1は、属性ベース暗号によりデータを暗号化するための公開鍵を生成するとともに、暗号化データを復号するためのユーザ(復号装置5)固有の秘密鍵を生成するものである。公開鍵は、暗号化装置3および復号装置5に対して公開される情報であって、ここでは、ネットワークNを介して暗号化装置3および復号装置5に送信される。また、秘密鍵は、暗号化データを復号する復号装置5ごとに秘密情報として送信される情報である。
  なお、ここでは、鍵生成装置1は、属性の種別を示す属性種別と、それに対応するユーザの属性値とを対とした属性ペアを秘密鍵に関連付け、属性付き秘密鍵として、復号装置5に送信する。
 
【0026】
  暗号化装置3は、属性ベース暗号により、データを暗号化するものである。なお、ここでは、暗号化装置3は、ポリシー(復号条件)を暗号化データに関連付け、ポリシー付き暗号化データとして、復号装置5に送信する。
 
【0027】
  復号装置5は、属性ベース暗号により暗号化装置3において生成されたポリシー付き暗号化データを元のデータに復号するものである。
  この復号装置5は、暗号化装置3で生成されたポリシー付き暗号化データとして暗号化データに関連付けられているポリシー(復号条件)が、鍵生成装置1で生成される属性付き秘密鍵で特定される属性の属性値に適合する場合のみ復号を行う。
 
【0028】
〔属性およびポリシーについて〕
  以下、属性ベース暗号システム100の各構成について説明する前に、属性ベース暗号システム100で使用する属性およびポリシーについて、具体例を挙げて説明する。
 
【0029】
(属性)
  属性は、ユーザを区分するための個別情報である。例えば、会員種別、居住地、性別、年齢等である。
  この属性は、属性内容を特定する属性値で区分される。例えば、ユーザの会員の種類を示す「会員種別」を属性とする場合、その属性を区分する通常会員およびプレミアム会員は、数値{1,2}、文字列{通常会員、プレミアム会員}等の属性値で区分することができる。
  また、例えば、ユーザの「居住地」を属性とする場合、その属性は、郵便番号の上2桁を用いて10〜99の属性値によって区分することができる。
  また、例えば、ユーザの「性別」を属性とする場合、その属性を区分する男性および女性は、数値{1,2}、文字列{男性,女性}等の属性値で区分することができる。
  また、例えば、ユーザの「年齢」を属性とする場合、その属性は、年齢の値をそのまま属性値として用いることができる。
 
【0030】
(ポリシー)
  ポリシーは、暗号化データを復号するための条件(復号条件)を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
  ここでは、ポリシーは、線形秘密分散法(Linear Secret Sharing Scheme:LSSS)によって生成されるアクセス行列Mと、アクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像πとで構成される。
 
【0031】
  このアクセス行列は、例えば、「A. Lewkoand B. Waters, “Decentralizing Attribute-Based Encryption,” Proc. of Eurocrypt’ 11, LNCS 6632, pp. 568-588, 2011.」に記載の方法によって生成される行列である。
  ここで、アクセス行列Mと写像πの内容について具体的に説明する。
  ここでは、前記した属性を例とし、ポリシーを以下の式(1)に示す論理形式で示す条件とする。
 
【0033】
  まず、
図2を参照して、アクセス行列Mの生成手法の例について説明する。
  なお、説明を簡略化するため、式(1)の条件を、ポリシーの属性をA〜Dで表した以下の式(2)に示す簡略表現とする。
 
【0035】
  図2は、式(2)で示した論理形式を、「A」〜「D」,「AND」,「OR」をノードとするツリー構造で記述したものである。
  初めに、ツリーのルートノードにベクトルv=(1)を設定する。
  そして、親ノードが「AND」の場合、子ノード同士に設定されるベクトルの和が(v,0)となるように子ノードのベクトルを拡張していく。
図2の例では、親ノード(ここでは、ルートノード「AND」)の子ノード「A」に設定するベクトルと、子ノード「OR」に設定するベクトルの和が(1,0)になるように、子ノード「A」には(1,1)、子ノード「OR」には(0,−1)を設定する。
 
【0036】
  一方、親ノードが「OR」の場合、子ノードに親ノードのベクトルvをそのまま引き継ぐ。
図2の例では、親ノード(ここでは、ノード「OR」)の子ノード「B」および「AND」にそれぞれノード「OR」と同じベクトル(0,−1)を設定する。
  そして、ベクトル(0,−1)が設定されたノード「AND」は、前記と同様に、子ノード「C」に設定するベクトルと、子ノード「D」に設定するベクトルの和が(0,−1,0)になるように、子ノード「C」には(0,−1,1)、子ノード「D」には(0,0,−1)を設定する。
 
【0037】
  このように設定されたベクトルのうちで、各属性(A〜D)に設定されたベクトルについて、同じ要素数となるように、要素数が少ないベクトル(ここでは、A,B)に値“0”の要素を付加し、行列の行ベクトルとすることで、以下の式(3)に示すアクセス行列Mを生成する。
 
【0039】
  これによって、ポリシーの属性の論理形式を行列形式で表すことができる。
  次に、写像πについて説明する。
  この写像πは、式(3)に示したアクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像である。
  すなわち、写像πは、アクセス行列Mの行のインデックスをjとしたとき、π(j)
1の属性種別と、π(j)
2の属性値の範囲に変換する写像である。
  具体的には、前記式(1)で示したポリシーに対応する写像πは、以下の式(4)に示すように表現される。ここで、[x,y]は、x以上y以下の整数の集合を示す(以下、同じ)。
 
【0041】
  なお、属性π(j)
1には、‘会員種別’等の属性を特定する文字列を設定する。また、属性値の範囲π(j)
2には、プレミアム会員等の単一の属性値か、[10,20]等の範囲指定の属性値かを示す識別情報に続けて、固定の属性値、あるいは、範囲指定の属性値(先頭値、最終値)を設定する。
  ここでは、以上説明したように、アクセス行列Mと写像πとでポリシーを構成する。
  以下、
図1に示した属性ベース暗号システム100の各構成について説明する。
 
【0042】
〔鍵生成装置の構成〕
  まず、
図3を参照(適宜
図1参照)して、本発明の実施形態に係る鍵生成装置1の構成について説明する。ここでは、鍵生成装置1は、第一鍵生成手段10と、第二鍵生成手段20と、を備える。
 
【0043】
  第一鍵生成手段10は、外部から入力されるセキュリティパラメータおよび属性情報に基づいて、属性ベース暗号方式における公開鍵およびマスタ鍵を生成するものである。ここでは、第一鍵生成手段10は、パラメータ入力手段11と、基本情報生成手段12と、公開鍵生成手段13と、マスタ鍵生成手段14と、公開鍵記憶手段15と、マスタ鍵記憶手段16と、公開鍵送信手段17と、を備える。
 
【0044】
  パラメータ入力手段11は、セキュリティパラメータおよび属性情報を外部からパラメータとして入力するものである。
  ここで、セキュリティパラメータは、セキュリティのレベルを示す数値(例えば、鍵長)である。より具体的には、セキュリティパラメータは、後記する基本情報生成手段12で使用される素数位数pの大きさ(ビット長)である。
 
【0045】
  また、属性情報は、属性を特定する情報であって、属性ベース暗号システム100で使用する属性の数(システムの属性数W)、アクセス行列Mの列の最大数n
max、および、レンジエンコード(Range Encode)関数の出力として取り得るノードの要素数u
maxである。
  このレンジエンコード関数は、属性値を葉ノードとして含む完全二分木において、属性値の範囲を、当該範囲を覆う完全二分木のルートノードに近いノード(カバーノード)に写す写像関数である。すなわち、レンジエンコード関数の出力として取り得るノードの要素数u
maxは、この完全二分木の総ノード数である。このレンジエンコード関数については、当該関数を用いる暗号化装置3において、詳細に説明する。
 
【0046】
  なお、ここでは、説明を簡単にするため、すべての属性において、要素数u
maxを同じ値として説明するが、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
  このパラメータ入力手段11は、入力されたセキュリティパラメータおよび属性情報を、基本情報生成手段12に出力する。
 
【0047】
  基本情報生成手段12は、公開鍵生成手段13およびマスタ鍵生成手段14において、それぞれ、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成するものである。
  具体的には、基本情報生成手段12は、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,G
Tを選択する。そして、基本情報生成手段12は、巡回群GおよびG
TがG×G→G
Tとなる双線形写像eを選択する。例えば、基本情報生成手段12は、e:G×G→G
Tとなる双線形写像eとして、一般的な“Weil  Pairing”、“Tate  Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
 
【0048】
  さらに、基本情報生成手段12は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する。
  また、基本情報生成手段12は、乱数a,α,h
j,x,uを、Z
pからランダムに選択する。ここで、乱数h
j,x,uは、すべてのj∈[1,n
max],すべてのx∈[1,W],すべてのu∈[1,u
max]に対して選択されるものとする。なお、Z
pは、{0,…,p−1}の整数の集合である。
 
【0049】
  この基本情報生成手段12は、生成した各種の基本情報(p,G,G
T,e,a,α,h
j,x,u)を、公開鍵生成手段13に出力する。また、基本情報生成手段12は、生成した基本情報(g,α)を、マスタ鍵生成手段14に出力する。もちろん、この基本情報は、図示を省略したメモリに記憶しておき、公開鍵生成手段13およびマスタ鍵生成手段14が、それぞれ必要な情報を参照することとしてもよい。
 
【0050】
  公開鍵生成手段13は、基本情報生成手段12で生成された基本情報に基づいて、属性ベース暗号における公開鍵を生成するものである。
  ここでは、公開鍵生成手段13は、基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのh
j,x,u乗を演算し、以下の式(5)に示すように、基本情報生成手段12で生成された素数位数p、巡回群G,G
T、双線形写像eおよび生成元gとともに、公開鍵PKを生成する。
 
【0052】
  なお、本実施形態では、パラメータ入力手段11に入力される属性情報(W,n
max,u
max)が、属性ベース暗号システム100の各装置(鍵生成装置1、暗号化装置3および復号装置5)において予め設定された既知の情報であることとするが、既知の情報としない場合、当該属性情報も公開鍵PKとして、公開すればよい。
  この公開鍵生成手段13は、生成した公開鍵PKを公開鍵記憶手段15に書き込み記憶する。
 
【0053】
  マスタ鍵生成手段14は、基本情報生成手段12で生成された基本情報に基づいて、属性ベース暗号におけるマスタ鍵を生成するものである。
  ここでは、マスタ鍵生成手段14は、以下の式(6)に示すように、基本情報に基づいて、生成元gのα乗を演算してマスタ鍵MKを生成する。
 
【0055】
  このマスタ鍵生成手段14は、生成したマスタ鍵MKをマスタ鍵記憶手段16に書き込み記憶する。
 
【0056】
  公開鍵記憶手段15は、公開鍵生成手段13で生成された公開鍵を記憶するものである。この公開鍵記憶手段15は、半導体メモリ等の一般的な記憶媒体で構成することができる。
  この公開鍵記憶手段15に記憶された公開鍵は、公開鍵送信手段17および第二鍵生成手段20によって読み出される。
 
【0057】
  マスタ鍵記憶手段16は、マスタ鍵生成手段14で生成されたマスタ鍵を記憶するものである。このマスタ鍵記憶手段16は、半導体メモリ等の一般的な記憶媒体で構成することができる。
  このマスタ鍵記憶手段16に記憶されたマスタ鍵は、第二鍵生成手段20によって読み出される。
 
【0058】
  公開鍵送信手段17は、公開鍵生成手段13で生成され、公開鍵記憶手段15に記憶された公開鍵を、暗号化装置3や復号装置5に公開するものである。
  ここでは、公開鍵送信手段17は、公開鍵記憶手段15から公開鍵を読み出し、ネットワークNを介して、読み出した公開鍵を暗号化装置3や復号装置5に送信する。この公開鍵送信手段17は、例えば、暗号化装置3や復号装置5から、公開鍵を要求されたタイミングで、公開鍵を送信する。
 
【0059】
  第二鍵生成手段20は、外部から入力される個別の復号装置5のユーザの属性ペアに基づいて、個別の復号装置5が使用する、属性ベース暗号方式における秘密鍵を生成するものである。ここでは、第二鍵生成手段20は、属性入力手段21と、属性付き秘密鍵生成手段22と、属性付き秘密鍵送信手段23と、を備える。
 
【0060】
  属性入力手段21は、個別の復号装置5のユーザに対する属性ペアを入力するものである。ここで、属性ペアは、属性の種別を示す属性種別と、それに対応するユーザの属性値とを対とした情報である。
  例えば、属性種別を、「会員種別」、「居住地」、「性別」、「年齢」とした場合、属性ペアSは、以下に示すように、それぞれの属性種別に、ユーザ固有の属性値を対応付けたものである。
  S={(‘会員種別’,通常会員),(‘居住地’,15),(‘性別’,男性),
        (‘年齢’,37)}
  なお、以下では、属性種別をx
i、属性値をs
i(i=1,…,k;kは1以上の整数)としたとき、属性ペアSを、S={(x
1,s
1),…,(x
k,s
k)}と表すこととする。
  この属性入力手段21は、入力された属性ペアを、属性付き秘密鍵生成手段22に出力する。
 
【0061】
  属性付き秘密鍵生成手段22は、属性入力手段21で入力された属性ペアと、第一鍵生成手段10で生成された公開鍵およびマスタ鍵とに基づいて、属性ベース暗号における秘密鍵を生成し、入力された属性ペアを関連付けることで属性付き秘密鍵を生成するものである。ここでは、属性付き秘密鍵生成手段22は、秘密鍵生成手段221と、属性関連付け手段222と、を備える。
 
【0062】
  秘密鍵生成手段221は、属性入力手段21で入力された属性ペアに対応する属性ベース暗号方式における秘密鍵を生成するものである。
  具体的には、秘密鍵生成手段221は、以下の演算を行うことで、秘密鍵を生成する。
  まず、秘密鍵生成手段221は、アクセス行列M(例えば、前記式(3))の列の最大数n
max分の乱数t
1,…,t
nmaxをZ
pからランダムに選択する。
  そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるg
aと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=g
α)を用いて、以下の式(7)の演算を行い、秘密鍵の要素となるKを求める。
 
【0064】
  また、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、すべてのi∈[1,n
max]に対して、以下の式(8)の演算を行い、秘密鍵の要素となるL
iを求める。
 
【0066】
  さらに、秘密鍵生成手段221は、属性ペアS(={(x
1,s
1),…,(x
k,s
k)})において、すべてのi∈[1,k]と、すべてのu∈f(s
i)とに対して、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、以下の式(9)の演算を行い、秘密鍵の要素となるK
i,uを求める。
 
【0068】
  ここで、fは、ポイントエンコード(Point 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」に記載されている符号化関数である。
 
【0069】
  なお、このポイントエンコード関数fにおいて出力として取り得るノードの要素数は、パラメータ入力手段11に入力されるレンジエンコード関数において出力として取り得るノードの要素数u
maxと同じである。なお、ポイントエンコード関数fにおける要素数も、レンジエンコード関数と同様に、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
 
【0070】
  ここで、
図4を参照して、ポイントエンコード関数の具体例について説明する。
  
図4に示すように、ポイントエンコード関数は、葉ノード(ここでは、“1”〜“8”)を含んだ完全二分木において、ある葉ノードを、当該葉ノードのすべての先祖ノードの集合に写す写像関数である。すなわち、ポイントエンコード関数は、完全二分木において、葉ノードからルートノードまで辿るノードの集合を出力する。
  例えば、
図4の例では、ある葉ノード(“6”)をポイントエンコード関数fによって符号化した場合、{6,11,14,15}が生成される。
  
図3に戻って、鍵生成装置1の構成について説明を続ける。
 
【0071】
  秘密鍵生成手段221は、前記式(7)〜式(9)で演算された各要素で構成される以下の式(10)に示す秘密鍵SKを生成し、属性関連付け手段222に出力する。
 
【0073】
  属性関連付け手段222は、秘密鍵生成手段221で生成された秘密鍵SKに、属性入力手段21で入力された属性ペアSを関連付けて、属性付き秘密鍵を生成するものである。例えば、属性関連付け手段222は、秘密鍵SKと属性ペアSとを予め定めたデータフォーマットで連結することで、属性付き秘密鍵を生成する。
  この属性関連付け手段222は、生成した属性付き秘密鍵を属性付き秘密鍵送信手段23に出力する。
 
【0074】
  属性付き秘密鍵送信手段23は、属性付き秘密鍵生成手段22で生成された属性付き秘密鍵を、復号装置5に送信するものである。
  ここでは、属性付き秘密鍵送信手段23は、属性付き秘密鍵を、ネットワークNを介して、例えば、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等の暗号化通信プロトコルを用いて復号装置5に送信する。なお、復号装置5の送信先については、外部から設定されるものとする。
 
【0075】
  このように鍵生成装置1を構成することで、鍵生成装置1は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化/復号することが可能なCP−ABEの公開鍵および秘密鍵(属性付き秘密鍵)を生成することができる。
  なお、鍵生成装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(鍵生成プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
 
【0076】
〔暗号化装置の構成〕
  次に、
図5を参照(適宜
図1参照)して、本発明の実施形態に係る暗号化装置3の構成について説明する。ここでは、暗号化装置3は、データ入力手段31と、ポリシー入力手段32と、公開鍵受信手段33と、公開鍵記憶手段34と、ポリシー付き暗号化データ生成手段35と、ポリシー付き暗号化データ送信手段36と、を備える。
 
【0077】
  データ入力手段31は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段31は、入力されたデータをポリシー付き暗号化データ生成手段35に出力する。
 
【0078】
  ポリシー入力手段32は、復号装置5において、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段32は、線形秘密分散法(LSSS)によって予め生成されたアクセス行列M(例えば、前記式(3)参照)と、アクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像π(例えば、前記式(4)参照)とを、外部から入力する。
  このポリシー入力手段32は、入力されたポリシーをポリシー付き暗号化データ生成手段35に出力する。
 
【0079】
  公開鍵受信手段33は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段33は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段34に書き込み記憶する。
  なお、公開鍵受信手段33は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、ポリシー付き暗号化データ生成手段35が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
 
【0080】
  公開鍵記憶手段34は、公開鍵受信手段33で受信した公開鍵を記憶するものである。この公開鍵記憶手段34は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段34に記憶された公開鍵は、ポリシー付き暗号化データ生成手段35によって読み出される。
 
【0081】
  ポリシー付き暗号化データ生成手段35は、公開鍵記憶手段34に記憶されている公開鍵と、ポリシー入力手段32で入力されたポリシーとに基づいて、データ入力手段31で入力されたデータを暗号化し、ポリシーを関連付けたポリシー付き暗号化データを生成するものである。
  ここでは、ポリシー付き暗号化データ生成手段35は、暗号化データ生成手段351と、ポリシー関連付け手段352と、を備える。
 
【0082】
  暗号化データ生成手段351は、公開鍵とポリシーとにより、属性ベース暗号による暗号化データを生成するものである。
  具体的には、暗号化データ生成手段351は、以下の演算を行うことで、暗号化データを生成する。
  まず、暗号化データ生成手段351は、ポリシーとして入力されるアクセス行列の列の数n分の乱数s,y
2,…,y
nを、Z
pnからランダムに選択する。なお、Z
pnは、Z
p上の整数を要素にもつn次元ベクトルの集合である。ここでは、各乱数を、インデックスv=(s,y
2,…,y
n)で表し、v
1=s,v
2=y
2,…,v
n=y
nとする。
  そして、暗号化データ生成手段351は、選択した乱数s(=v
1)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)
αおよびgとにより、以下の式(11)を演算することで、暗号化データの要素となるC,C′を求める。
 
【0084】
  ここで、Dは、データ入力手段31で入力された暗号化対象のデータである。
  さらに、暗号化データ生成手段351は、アクセス行列Mをm行n列としたときのすべてのi∈[1,m],j∈[1,n]と、すべてのu∈F(π(i)
2)とに対して、公開鍵記憶手段34に記憶されている公開鍵の一部であるgのa乗とgのh
j,x,u乗とにより、以下の式(12)の演算を行い、暗号化データの要素となるC
i,j,uを求める。
 
【0086】
  ここで、M
i,jは、アクセス行列Mのi行j列の要素の値である。また、h
j,π(i)1,uは、公開鍵の一部である乱数h
j,x,uのうちのi番目の属性に対応する乱数である。
  また、π(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」に記載されている符号化関数である。
 
【0087】
  ここで、
図6を参照して、レンジエンコード関数の具体例について説明する。
  
図6に示すように、レンジエンコード関数は、葉ノード(ここでは、“1”〜“8”)を含んだ完全二分木において、任意の区間の葉ノードを、カバーノードの集合に写す写像である。なお、カバーノードとは、自身の子ノードのすべての葉ノードが当該区間に含まれるようなノードである。すなわち、レンジエンコード関数は、完全二分木において、当該区間の最も高い(ルートノードに近い)カバーノードの集合を出力する関数である。
  例えば、
図6の例で、区間[2,8]をレンジエンコード関数Fによって符号化した場合、{2,10,14}が生成される。
  
図5に戻って、暗号化装置3の構成について説明する。
 
【0088】
  暗号化データ生成手段351は、前記式(11),式(12)で演算された各要素で構成される以下の式(13)に示す暗号化データCTを生成し、ポリシー関連付け手段352に出力する。
 
【0090】
  ポリシー関連付け手段352は、暗号化データ生成手段351で生成された暗号化データCTに、ポリシー入力手段32で入力されたポリシー(M,π)を関連付けて、ポリシー付き暗号化データを生成するものである。例えば、ポリシー関連付け手段352は、暗号化データCTとポリシー(M,π)とを予め定めたデータフォーマットで連結することで、ポリシー付き暗号化データを生成する。
  このポリシー関連付け手段352は、生成したポリシー付き暗号化データをポリシー付き暗号化データ送信手段36に出力する。
 
【0091】
  ポリシー付き暗号化データ送信手段36は、ポリシー付き暗号化データ生成手段35で生成されたポリシー付き暗号化データを送信するものである。
  ここでは、ポリシー付き暗号化データ送信手段36は、ポリシー付き暗号化データを、ネットワークNを介して、復号装置5に送信する。なお、復号装置5の送信先については、外部から設定されるものとする。
 
【0092】
  このように暗号化装置3を構成することで、暗号化装置3は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。また、暗号化装置3は、属性値をANDやORで結合するだけでなく、属性値の範囲指定を行うことができる。これによって、暗号化装置3は、指定した範囲に含まれる属性値の数をnとしたとき、暗号化データのサイズの増加量をlog(n)のオーダに抑えることができる。
  なお、暗号化装置3は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
 
【0093】
〔復号装置の構成〕
  次に、
図7を参照(適宜
図1参照)して、本発明の実施形態に係る復号装置5の構成について説明する。ここで、復号装置5は、公開鍵受信手段51と、公開鍵記憶手段52と、属性付き秘密鍵受信手段53と、属性付き秘密鍵記憶手段54と、ポリシー付き暗号化データ受信手段55と、ポリシー付き暗号化データ復号手段56と、を備える。
 
【0094】
  公開鍵受信手段51は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段51は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段52に書き込み記憶する。
  なお、公開鍵受信手段51は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、ポリシー付き暗号化データ復号手段56が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
 
【0095】
  公開鍵記憶手段52は、公開鍵受信手段51で受信した公開鍵を記憶するものである。この公開鍵記憶手段52は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段52に記憶された公開鍵は、ポリシー付き暗号化データ復号手段56によって読み出される。
 
【0096】
  属性付き秘密鍵受信手段53は、鍵生成装置1で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段53は、ネットワークNを介して、例えば、SSL/TLS等の暗号化通信プロトコルを用いて属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段54に書き込み記憶する。
  なお、属性付き秘密鍵受信手段53は、ポリシー付き暗号化データ復号手段56が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置5が、図示を省略した登録手段によって、予め鍵生成装置1に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
 
【0097】
  属性付き秘密鍵記憶手段54は、属性付き秘密鍵受信手段53で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段54は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段54に記憶された属性付き秘密鍵は、ポリシー付き暗号化データ復号手段56によって読み出される。
 
【0098】
  ポリシー付き暗号化データ受信手段55は、暗号化装置3で生成されたポリシー付き暗号化データを受信するものである。ここでは、ポリシー付き暗号化データ受信手段55は、ネットワークNを介して、ポリシー付き暗号化データを受信し、ポリシー付き暗号化データ復号手段56に出力する。
 
【0099】
  ポリシー付き暗号化データ復号手段56は、ポリシー付き暗号化データ受信手段55で受信したポリシー付き暗号化データを復号するものである。ここでは、ポリシー付き暗号化データ復号手段56は、属性付き秘密鍵分離手段561と、ポリシー付き暗号化データ分離手段562と、ポリシー判定手段563と、暗号化データ復号手段564と、を備える。
 
【0100】
  属性付き秘密鍵分離手段561は、属性付き秘密鍵記憶手段54に記憶されている属性付き秘密鍵を、属性ペアと秘密鍵とに分離するものである。
  この属性付き秘密鍵分離手段561は、分離した属性ペアである属性の種別を示す属性種別と、それに対応するユーザの属性値とをポリシー判定手段563に出力する。また、属性付き秘密鍵分離手段561は、分離した秘密鍵(前記式(10)参照)を暗号化データ復号手段564に出力する。
 
【0101】
  ポリシー付き暗号化データ分離手段562は、ポリシー付き暗号化データ受信手段55で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離するものである。
  このポリシー付き暗号化データ分離手段562は、ポリシー付き暗号化データを、ポリシー(M,π)と、暗号化データ(前記式(13)参照)とに分離して、ポリシー判定手段563に出力する。
 
【0102】
  ポリシー判定手段563は、属性ペアがポリシーを満たすか否かを判定するものである。すなわち、属性数をkとする属性ペアSを、S={(x
1,s
1),…,(x
k,s
k)}、ポリシーに含まれる属性数をjとしたとき、ポリシー判定手段563は、属性種別x(x
1,…,x
k)が、ポリシーに含まれる写像πの属性種別π(i)
1、i∈[1,j]に含まれ、かつ、属性値s(s
1,…,s
k)が、その属性種別x(x
1,…,x
k)に対応する写像πの属性値の範囲π(i)
2に含まれる場合(属性値が単一値であれば一致する場合、属性値が範囲であればその範囲内にある場合)に、属性ペアがポリシーを満たすと判定し、それ以外の場合に、属性ペアがポリシーを満たさないと判定する。
 
【0103】
  このポリシー判定手段563は、属性ペアがポリシーを満たす場合だけ、ポリシー付き暗号化データ分離手段562で分離されたポリシーと暗号化データとを暗号化データ復号手段564に出力する。さらに、ポリシー判定手段563は、属性ペアの属性数kを暗号化データ復号手段564に出力する(図示せず)。
  なお、ポリシー判定手段563は、属性ペアがポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
 
【0104】
  暗号化データ復号手段564は、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号するものである。
  具体的には、暗号化データ復号手段564は、以下の式(14)に示す演算を行うことで、暗号化データからデータDを復号する。
 
【0106】
  この式(14)中、符号Cが付されている値は、暗号化データCT(前記式(13)参照)で与えられる値である。また、符号K,符号Lが付されている値は、秘密鍵SK(前記式(10)参照)で与えられる値である。
  また、eは、公開鍵(前記式(5)参照)として公開されている双線形写像である。
  また、n
maxは、アクセス行列Mの列の最大数である。このアクセス行列Mの列の最大数n
maxは、暗号化データ復号手段564に予め保持しておいてもよいし、外部から設定されることとしてもよい。あるいは、n
maxを公開鍵の一部として含め、それを参照することとしてもよい。また、kは、属性ペアの属性数である。
  また、式(14)中、i
jは、以下の式(15)を満たす(真値となる)属性ペアの中の属性および属性値を指し示すインデックスである。
 
【0108】
  すなわち、インデックスi
jは、すべてのj∈[1,n
max]において、ポリシーに含まれる写像πのj番目の属性種別π(j)
1と属性ペアSのi
j番目の属性種別x
ijとが一致し、かつ、写像πのj番目の属性値の範囲π(j)
2に属性ペアSのi
j番目の属性値s
ijが含まれるときの値である。
  また、式(14)中、z
jは、以下の式(16)を満たすノードである
 
【0110】
  すなわち、ノードz
jは、ポリシーに含まれる写像πのj(j∈[1,n
max])番目の属性値π(j)
2を、暗号化装置3と同じレンジエンコード関数Fで符号化したノード(カバーノード)と、属性ペアSのi
j番目の属性値s
ijを、鍵生成装置1と同じポイントエンコード関数fで符号化したノードとの共通のノードである。
  また、式(14)中、w
ijは、属性ペアS分のk個の要素からなるベクトルw=(w
1,w
2,…,w
k)と、アクセス行列Mから属性ペアSに含まれる各属性に対応する行のみを抽出した行列Msとにおいて、w・Ms=(1,0,…,0)を満たすベクトルwのi
j番目(i
j∈[1,k])の要素の値である。
 
【0111】
(式(14)の証明)
  ここで、前記式(14)によって、暗号化データ復号手段564が、元のデータDを復号することができることを証明しておく。
  なお、データDは、前記式(11)により暗号化されているため、前記式(14)から、以下の式(17)が導き出せればよいことになる。
 
【0113】
  以下、式(18)により、式(14)の右辺のうち、“C”を除いた数式(以下の式(18-1))を変形する。
 
【0115】
  この式(18)において、式(18-1)から式(18-2)の変形は、前記式(7)〜式(9)、式(11)および式(12)を式(18-1)に代入することで求められる。
  また、式(18-2)から式(18-3)の変形は、双線形写像の性質であるe(g
a,g
b)=e(g
b,g
a)=e(g,g)
ab)を利用することで変形することができる。
  具体的には、双線形写像の性質により、式(18-2)の分子は、以下の式(19)のように変形することができる。
 
【0117】
  また、前記式(18)において、式(18-3)から式(18-4)の変形は、双線形写像の性質であるe(g
a,g
b)=e(g
b,g
a)=e(g,g)
ab)と、線形秘密分散法(LSSS)の性質を利用することで変形することができる。
  ここで、LSSSの性質とは、ベクトルw=(w
1,w
2,…,w
k)と、行列Msとにおいて、w・Ms=(1,0,…,0)となる性質である。
  すなわち、LSSSは、以下の式(20)の性質を有する。
 
【0119】
  よって、前記式(18-3)の分子は、以下の式(21)のように変形することができ、式(18-3)から式(18-4)に変形することができる。
【数30】
 
【0120】
  また、前記式(18)において、式(18-4)から式(18-5)の変形は、前記式(11)で説明したように、v
1=sであることから、式(18-4)のv
1にsを代入するとともに、双線形写像のe(g
a,g
b)=e(g
b,g
a)=e(g,g)
ab)の性質を利用することで変形することができる。
  また、前記式(18)において、式(18-5)から式(18-6)の変形は、双線形写像のe(g
a,g
b)=e(g
b,g
a)=e(g,g)
ab)の性質を利用することで変形することができる。
 
【0121】
  以上により、暗号化データ復号手段564は、前記式(14)によって、元のデータDを復号することができる。
  このように復号装置5を構成することで、復号装置5は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを、ユーザの属性に応じて復号することができる。
 
【0122】
  なお、復号装置5は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(復号プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
 
【0123】
[属性ベース暗号システムの動作]
  次に、本発明の実施形態に係る属性ベース暗号システム100の動作について説明する。ここでは、鍵(公開鍵、秘密鍵)の生成・配信動作と、データの暗号化・復号動作とに分けて説明する。
 
【0124】
〔鍵(公開鍵、秘密鍵)生成・配信動作〕
  最初に、
図8を参照(構成については、適宜
図3,
図5,
図7参照)して、属性ベース暗号システム100の鍵(公開鍵、秘密鍵)の生成・配信動作について説明する。
  まず、鍵生成装置1は、パラメータ入力手段11によって、パラメータ(セキュリティパラメータ、属性情報)を外部から入力する(ステップS1)。なお、属性情報は、属性ベース暗号システム100で使用する属性の数(システムの属性数W)、アクセス行列Mの列の最大数n
max、および、レンジエンコード関数の出力として取り得るノードの要素数u
maxである。
 
【0125】
  そして、鍵生成装置1は、基本情報生成手段12によって、ステップS1で入力されたパラメータに基づいて、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する(ステップS2)。なお、このステップS2における基本情報生成動作については、
図9を参照して後で詳細に説明する。
  そして、鍵生成装置1は、公開鍵生成手段13およびマスタ鍵生成手段14によって、ステップS2で生成された基本情報に基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する(ステップS3)。なお、このステップS3における公開鍵・マスタ鍵生成動作については、
図10を参照して後で詳細に説明する。
 
【0126】
  そして、鍵生成装置1は、公開鍵生成手段13によって、生成した公開鍵を公開鍵記憶手段15に書き込み記憶し、マスタ鍵生成手段14によって、生成したマスタ鍵をマスタ鍵記憶手段16に書き込み記憶する。(ステップS4)。
  その後、鍵生成装置1は、公開鍵送信手段17によって、ステップS4で公開鍵記憶手段15に記憶されている公開鍵を、暗号化装置3および復号装置5に送信(公開)する(ステップS5)。
 
【0127】
  一方、暗号化装置3は、公開鍵受信手段33によって、ステップS5で送信された公開鍵を受信し(ステップS6)、公開鍵記憶手段34に書き込み記憶する(ステップS7)。また、復号装置5は、公開鍵受信手段51によって、ステップS5で送信された公開鍵を受信し(ステップS8)、公開鍵記憶手段52に書き込み記憶する(ステップS9)。
 
【0128】
  さらに、鍵生成装置1は、以下の動作によって、個別の復号装置5を対象として属性付き秘密鍵を生成する。
  すなわち、鍵生成装置1は、属性入力手段21によって、個別の復号装置5のユーザに対する属性ペア(属性種別および属性値)を入力する(ステップS10)。
 
【0129】
  そして、鍵生成装置1は、属性付き秘密鍵生成手段22の秘密鍵生成手段221によって、ステップS4で公開鍵記憶手段15に記憶された公開鍵と、マスタ鍵記憶手段16に記憶されたマスタ鍵と、ステップS10で入力された属性ペアとに基づいて、秘密鍵を生成する(ステップS11)。なお、このステップS11における秘密鍵生成動作については、
図11を参照して後で詳細に説明する。
 
【0130】
  さらに、鍵生成装置1は、属性付き秘密鍵生成手段22の属性関連付け手段222によって、ステップS11で生成された秘密鍵に、ステップS10で入力された属性ペアを関連付けて、属性付き秘密鍵を生成する(ステップS12)。
  その後、鍵生成装置1は、属性付き秘密鍵送信手段23によって、ステップS12で生成された属性付き秘密鍵を、復号装置5に送信する(ステップS13)。
 
【0131】
  一方、復号装置5は、属性付き秘密鍵受信手段53によって、ステップS13で送信された属性付き秘密鍵を受信し(ステップS14)、属性付き秘密鍵記憶手段54に書き込み記憶する(ステップS15)。
  以上の動作により、属性ベース暗号システム100は、鍵生成装置1によって、属性ベース暗号における鍵(公開鍵、秘密鍵)を生成し、鍵を必要とする暗号化装置3および復号装置5に送信する。
 
【0132】
(基本情報生成動作)
  次に、
図9を参照(構成については、適宜
図3参照)して、
図8のステップS2の動作(基本情報生成動作)について詳細に説明する。
  まず、鍵生成装置1は、基本情報生成手段12によって、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,G
Tを選択する(ステップS21)。
  また、基本情報生成手段12は、巡回群G,G
TがG×G→G
Tとなる双線形写像eを選択する(ステップS22)。そして、基本情報生成手段12は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(ステップS23)。
 
【0133】
  さらに、基本情報生成手段12は、乱数a,α,h
j,x,uを、Z
pからランダムに選択する(ステップS24)。なお、基本情報生成手段12は、乱数h
j,x,uを、すべてのj∈[1,n
max],すべてのx∈[1,W],すべてのu∈[1,u
max]に対して選択する。
  以上の動作により、鍵生成装置1は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する。
 
【0134】
(公開鍵・マスタ鍵生成動作)
  次に、
図10を参照(構成については、適宜
図3参照)して、
図8のステップS3の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
  まず、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのh
j,x,u乗を演算する(ステップS31)。
  そして、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報である素数位数p、巡回群G,G
T、双線形写像eおよび生成元gと、ステップS31の演算結果とを含んだ公開鍵PK(前記式(5)参照)を生成する(ステップS32)。
 
【0135】
  さらに、鍵生成装置1は、マスタ鍵生成手段14によって、基本情報生成手段12で生成された基本情報である生成元gのα乗を演算してマスタ鍵MK(前記式(6)参照)を生成する(ステップS33)。
  以上の動作により、鍵生成装置1は、属性ベース暗号における公開鍵およびマスタ鍵を生成する。
 
【0136】
(秘密鍵生成動作)
  次に、
図11を参照(構成については、適宜
図3参照)して、
図8のステップS11の動作(秘密鍵生成動作)について詳細に説明する。
  まず、鍵生成装置1は、秘密鍵生成手段221によって、アクセス行列の列の最大数n
max分の乱数t
1,…,t
nmaxをZ
pからランダムに選択する(ステップS41)。
  そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるg
aと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=g
α)を用いて、前記式(7)の演算を行い、秘密鍵の要素となるKを求める(ステップS42)。
 
【0137】
  そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、すべてのi∈[1,n
max]に対して、前記式(8)の演算を行い、秘密鍵の要素となるL
iを求める(ステップS43)。
  さらに、秘密鍵生成手段221は、属性ペアS(={(x
1,s
1),…,(x
k,s
k)}において、すべてのi∈[1,k]と、すべてのu∈f(s
i)とに対して、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、前記式(9)の演算を行い、秘密鍵の要素となるK
i,uを求める(ステップS44)。
  そして、秘密鍵生成手段221は、ステップS42〜S44で演算された各要素で構成される前記式(10)に示す秘密鍵SKを生成する(ステップS45)。
  以上の動作により、鍵生成装置1は、属性ベース暗号における秘密鍵を生成する。
 
【0138】
〔データ暗号化・復号動作〕
  次に、
図12を参照(構成については、適宜
図5、
図7参照)して、属性ベース暗号システム100のデータの暗号化・復号動作について説明する。
  まず、暗号化装置3は、ポリシー入力手段32によって、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力する(ステップS51)。なお、このポリシーは、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Mと、アクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像πとで構成される。
 
【0139】
  また、暗号化装置3は、データ入力手段31によって、暗号化の対象となるデータを外部から入力する(ステップS52)。
  そして、暗号化装置3は、暗号化データ生成手段351によって、公開鍵に基づいて、ステップS51で入力されたポリシーに対応する暗号化データを生成する(ステップS53)。なお、このステップS53における暗号化データ生成動作については、
図13を参照して後で詳細に説明する。
 
【0140】
  そして、暗号化装置3は、ポリシー関連付け手段352によって、ステップS53で生成された暗号化データに、ステップS51で入力されたポリシーを関連付けて、ポリシー付き暗号化データを生成する(ステップS54)。
  そして、暗号化装置3は、ポリシー付き暗号化データ送信手段36によって、ステップS54で生成されたポリシー付き暗号化データを、復号装置5に送信する(ステップS55)。
 
【0141】
  一方、復号装置5は、ポリシー付き暗号化データ受信手段55によって、ステップS55で送信されたポリシー付き暗号化データを受信する(ステップS56)。
  そして、復号装置5は、ポリシー付き暗号化データ復号手段56のポリシー付き暗号化データ分離手段562によって、ステップS56で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離する(ステップS57)。
  また、復号装置5は、属性付き秘密鍵分離手段561によって、属性付き秘密鍵記憶手段54に記憶されている属性付き秘密鍵を、属性ペアと秘密鍵とに分離する(ステップS58)。
 
【0142】
  そして、復号装置5は、ポリシー判定手段563によって、復号装置5に登録されているステップS58で分離された属性ペアが、暗号化データに関連付けられているステップS57で分離されたポリシーを満たすか否かを判定する(ステップS59)。
  ここで、属性ペアがポリシーを満たす場合(ステップS59でYes)、復号装置5は、暗号化データ復号手段564によって、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号し(ステップS60)、元データとして外部に出力する(ステップS61)。なお、ステップS60における暗号化データ復号動作については、
図14を参照して後で詳細に説明する。
 
【0143】
  一方、属性ペアがポリシーを満たさない場合(ステップS59でNo)、復号装置5は、復号動作を終了する。なお、この場合、復号装置5は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
  以上の動作により、属性ベース暗号システム100は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化し、ユーザの属性に応じてデータを復号することができる。
 
【0144】
(暗号化データ生成動作)
  次に、
図13を参照(構成については、適宜
図5参照)して、
図12のステップS53の動作(暗号化データ生成動作)について詳細に説明する。
  まず、暗号化装置3は、暗号化データ生成手段351によって、ポリシーとして入力されるアクセス行列の列の数n分の乱数s,y
2,…,y
nを、Z
pnからランダムに選択する(ステップS71)。このとき、各乱数をv
1=s,v
2=y
2,…,v
n=y
nとする。
  そして、暗号化データ生成手段351は、選択した乱数s(=v
1)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)
αおよびgとにより、前記式(11)を演算することで、暗号化データの要素となるC,C′を求める(ステップS72)。
 
【0145】
  さらに、暗号化データ生成手段351は、アクセス行列をm行n列としたときのすべてのi∈[1,m],j∈[1,n]と、すべてのu∈F(π(i)
2)とに対して、公開鍵記憶手段34に記憶されている公開鍵の一部であるgのa乗とgのh
j,x,u乗とにより、前記式(12)の演算を行い、暗号化データの要素となるC
i,j,uを求める(ステップS73)。
  そして、暗号化データ生成手段351は、ステップS72〜S73で演算された各要素で構成される前記式(13)に示す暗号化データCTを生成する(ステップS74)。
  以上の動作により、暗号化データ生成手段351は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。
 
【0146】
(暗号化データ生成動作)
  次に、
図14を参照(構成については、適宜
図7参照)して、
図12のステップS60の動作(暗号化データ復号動作)について詳細に説明する。
  まず、復号装置5は、暗号化データ復号手段564によって、すべてのj∈[1,n
max]において、ポリシーに含まれる写像πのj番目の属性種別π(j)
1と属性ペアSのi
j番目の属性種別x
ijとが一致し、かつ、写像πのj番目の属性値の範囲π(j)
2に属性ペアSのi
j番目の属性値s
ijが含まれる前記式(15)を満たすインデックスi
jを選択する(ステップS81)。
 
【0147】
  また、復号装置5は、暗号化データ復号手段564によって、すべてのj∈[1,n
max]において、ポリシーに含まれる写像πのj番目の属性値π(j)
2を、暗号化装置3と同じレンジエンコード関数Fで符号化したノード(カバーノード)と、属性ペアSのi
j番目の属性値s
ijを、鍵生成装置1と同じポイントエンコード関数fで符号化したノードとの共通のノードz
iを選択する(ステップS82)。
 
【0148】
  そして、復号装置5は、暗号化データ復号手段564によって、ステップS81,S82で選択されたi
j,z
jを用いて、秘密鍵および公開鍵に基づいて、前記式(14)により、暗号化データを元のデータDに復号する(ステップS83)。
  以上の動作により、暗号化データ復号手段564は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを復号することができる。
 
【0149】
  以上、本発明の実施形態に係る属性ベース暗号システム100の構成および動作について説明したが、本発明は、この実施形態に限定されるものではない。
  例えば、ここでは、鍵生成装置1(
図3参照)の属性関連付け手段222は、秘密鍵と属性ペアとを連結することで、属性付き秘密鍵を生成した。しかし、属性関連付け手段222は、必ずしも秘密鍵と属性ペアとを連結する必要はなく、秘密鍵と属性ペアとを予め定めた固有の識別子で対応付けることとしてもよい。
  その場合、例えば、属性付き秘密鍵送信手段23は、識別子と属性ペアとを対応付けて保持しておき、秘密鍵にその識別子を付加して復号装置5に送信する。そして、属性付き秘密鍵送信手段23は、その識別子により属性ペアを要求されたタイミングで、識別子に対応付けられている属性ペアを復号装置5に送信すればよい。
 
【0150】
  同様に、暗号化装置3(
図5参照)においても、ポリシー関連付け手段352は、必ずしも暗号化データとポリシーとを連結する必要はなく、暗号化データとポリシーとを予め定めた固有の識別子で対応付けることとしてもよい。
  その場合、例えば、ポリシー付き暗号化データ送信手段36は、識別子とポリシーとを対応付けて保持しておき、暗号化データにその識別子を付加して復号装置5に送信する。そして、ポリシー付き暗号化データ送信手段36は、その識別子によりポリシーを要求されたタイミングで、識別子に対応付けられているポリシーを復号装置5に送信すればよい。
 
【0151】
  一方、復号装置5(
図7参照)は、識別子によって属性ペアと関連付けられた秘密鍵(属性付き秘密鍵)を、属性付き秘密鍵受信手段53で受信し、属性付き秘密鍵記憶手段54に記憶する。そして、暗号化データを復号するタイミングで、属性付き秘密鍵分離手段561が、その識別子に対応する属性ペアを、属性付き秘密鍵受信手段53を介して、鍵生成装置1に要求すればよい。
 
【0152】
  また、復号装置5は、識別子によってポリシーと関連付けられた暗号化データ(ポリシー付き暗号化データ)を受信する。そして、暗号化データを復号するタイミングで、ポリシー付き暗号化データ分離手段562が、その識別子に対応するポリシーを、ポリシー付き暗号化データ受信手段55を介して、暗号化装置3に要求すればよい。
 
【0153】
[属性ベース暗号システムの応用例]
  次に、
図15を参照して、本発明の実施形態に係る属性ベース暗号システムの応用例について説明する。
  
図15は、属性ベース暗号システム100(
図1参照)を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
  ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
 
【0154】
  図15に示す個人情報保護システム200は、ユーザがサービス事業者の評価(信頼度等)をポリシーとして設定することで、そのポリシーを満たす属性のサービス事業者のみが、ユーザに対してサービスを提供することを可能にするシステムである。
  ここでは、サービスとして、レコメンド情報(例えば、ユーザの放送番組の視聴履歴を分析した結果のユーザにお勧めの番組案内等)を提供するサービスを一例に説明する。
 
【0155】
  個人情報保護システム200は、鍵生成装置1と、暗号化装置3と、復号装置5と、データ管理装置7とを、ネットワーク(通信回線)Nを介して接続して構成している。
  鍵生成装置1、暗号化装置3および復号装置5は、それぞれ、
図3,
図5,
図7で説明した鍵生成装置1、暗号化装置3および復号装置5と同じものである。
  データ管理装置7は、膨大なデータを蓄積管理するもので、主にデータベースと、ストレージの機能を有する一般的なクラウドサーバである。
 
【0156】
  以下、個人情報保護システム200の動作について説明する。
  鍵生成装置1は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置5に送信する。
  例えば、鍵生成装置1は、あるサービス事業者A,B,Cに対する属性ペアS
A,S
B,S
Cを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置5に送信する。
 
【0157】
  S
A={(‘プライバシーマーク’,あり),(‘ユーザ評価’,5)}
  S
B={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}
  S
C={(‘プライバシーマーク’,あり),(‘ユーザ評価’,3)}
 
【0158】
  なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
  また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
 
【0159】
  暗号化装置3は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
  また、暗号化装置3は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、ユーザは、レコメンド情報の提供を許可するサービス事業者の評価を“3”〜“5”の範囲とする場合、ユーザ評価を[3,5]のように範囲指定する。すなわち、暗号化装置3は、ポリシーを以下のように設定する。
  (‘プライバシーマーク’=あり)∧(‘ユーザ評価’∈[3,5])
  そして、暗号化装置3は、個人情報を暗号化した暗号化個人情報にポリシーを関連付けて、データ管理装置7に送信する。
 
【0160】
  復号装置5は、例えば、図示を省略したサービス提供装置等に備えられ、データ管理装置7から暗号化個人情報(ポリシー付き)を取得する。このとき、復号装置5は、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
  例えば、復号装置5は、自身に設定された属性ペアが、前記S
A={(‘プライバシーマーク’,あり),(‘ユーザ評価’,5)}であれば、個人情報を復号することができるが、前記S
B={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}であれば、個人情報を復号することができない。
  そして、サービス提供装置(不図示)は、復号装置5で復号された個人情報(視聴履歴等)を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
  このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
 
【0161】
  以上説明した個人情報保護システム200によれば、暗号化装置3においてデータ(ここでは個人情報)を暗号化する際に、ユーザがポリシーを設定してクラウドサーバ(データ管理装置7)に保存することにより、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身の評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。