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

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

▶ 日本放送協会の特許一覧 ▶ 独立行政法人産業技術総合研究所の特許一覧

特許6384149鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
<>
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000043
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000044
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000045
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000046
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000047
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000048
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000049
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000050
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000051
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000052
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000053
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000054
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000055
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000056
  • 特許6384149-鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム 図000057
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6384149
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
(51)【国際特許分類】
   H04L 9/30 20060101AFI20180827BHJP
   G09C 1/00 20060101ALI20180827BHJP
【FI】
   H04L9/00 663Z
   G09C1/00 620A
【請求項の数】7
【全頁数】35
(21)【出願番号】特願2014-135875(P2014-135875)
(22)【出願日】2014年7月1日
(65)【公開番号】特開2016-15571(P2016-15571A)
(43)【公開日】2016年1月28日
【審査請求日】2017年6月1日
【新規性喪失の例外の表示】特許法第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▼
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】特許業務法人磯野国際特許商標事務所
(72)【発明者】
【氏名】大竹 剛
(72)【発明者】
【氏名】小川 一人
(72)【発明者】
【氏名】アッタラパドゥン ナッタポン
(72)【発明者】
【氏名】花岡 悟一郎
(72)【発明者】
【氏名】渡邊 創
(72)【発明者】
【氏名】山田 翔太
【審査官】 行田 悦資
(56)【参考文献】
【文献】 特開2012−039244(JP,A)
【文献】 笠松宏平ほか,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名)
H04L 9/30
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、
使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をnmax、レンジエンコード関数の出力として取り得るノードの要素数をumaxとしたとき、
素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、前記生成元gを乱数a(a∈Z)乗した演算結果と、前記生成元gをhj,x,u(∀j∈[1,nmax],∀x∈[1,W],∀u∈[1,umax])乗した演算結果とを公開鍵として生成する公開鍵生成手段と、
前記生成元gを前記乱数α乗した演算結果をマスタ鍵として生成するマスタ鍵生成手段と、
前記マスタ鍵をMKとし、Zから選択した前記nmax分の乱数t,…,tnmaxと、前記公開鍵の一部であるgおよびgのa乗とにより、
【数1】
を演算するとともに、前記属性の種別を示す属性種別xとそれに対応する属性値sとを対とした属性ペアS={(x,s),…,(x,s)}と、ポイントエンコード関数fとにより、
【数2】
を演算し、その演算結果K,L,Ki,uを秘密鍵として生成する秘密鍵生成手段と、
この秘密鍵生成手段で生成された秘密鍵に、前記属性ペアを関連付けて、属性付き秘密鍵を生成する属性関連付け手段と、
を備えることを特徴とする鍵生成装置。
【請求項2】
使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をnmax、レンジエンコード関数の出力として取り得るノードの要素数をumaxとし、素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、前記生成元gを乱数a(a∈Z)乗した演算結果と、前記生成元gをhj,x,u(∀j∈[1,nmax],∀x∈[1,W],∀u∈[1,umax])乗した演算結果とを含む公開鍵を用いて、属性ベース暗号によりデータを暗号化する暗号化装置であって、
暗号化の対象となる前記データを入力するデータ入力手段と、
復号条件となるポリシーとして、前記アクセス行列Mと、当該アクセス行列Mの各行jに対応する属性を属性種別π(j)と属性値の範囲π(j)に変換する写像πとを入力するポリシー入力手段と、
前記データをDとし、前記アクセス行列の列の数n分の乱数v=(s,y,…,yをZから選択し、前記公開鍵により、
【数3】
を演算するとともに、レンジエンコード関数をF、前記アクセス行列Mをm行n列としたとき、前記公開鍵により、
【数4】
を演算し、その演算結果C,C′,Ci,j,uを暗号化データとして生成する暗号化データ生成手段と、
この暗号化データ生成手段で生成された暗号化データに、前記ポリシーを関連付けて、ポリシー付き暗号化データを生成するポリシー関連付け手段と、
を備えることを特徴とする暗号化装置。
【請求項3】
使用する属性の数をW、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をnmax、レンジエンコード関数の出力として取り得るノードの要素数をumaxとし、素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、前記生成元gを乱数a(a∈Z)乗した演算結果と、前記生成元gをhj,x,u(∀j∈[1,nmax],∀x∈[1,W],∀u∈[1,umax])乗した演算結果とからなる公開鍵および、前記生成元gを前記乱数α乗した演算結果をマスタ鍵MKとし、Zから選択した前記nmax分の乱数t,…,tnmaxと、前記属性の種別を示す属性種別xとそれに対応する属性値sとを対とした属性ペアS={(x,s),…,(x,s)}と、ポイントエンコード関数fと、前記公開鍵とにより演算した
【数5】
と、
【数6】
とからなる秘密鍵に前記属性ペアを関連付けた属性付き秘密鍵を用いて、暗号化の対象となるデータDを、線形秘密分散法により復号条件となるポリシーを表したm行n列のアクセス行列Mと、当該アクセス行列Mの各行jに対応する属性を属性種別π(j)と属性値の範囲π(j)に変換する写像πと、Zから選択した前記アクセス行列の列の数n分の乱数v=(s,y,…,y)と、レンジエンコード関数Fと、前記公開鍵とにより演算した
【数7】
と、
【数8】
とからなる暗号化データに前記ポリシーを関連付けたポリシー付き暗号化データから、前記データDを復号する属性ベース暗号の復号装置であって
記属性ペアが前記ポリシーを満たすか否かを判定するポリシー判定手段と、
このポリシー判定手段で前記属性ペアが前記ポリシーを満たすと判定された場合に、前記公開鍵と前記秘密鍵とにより、前記暗号化データから、すべてのj∈[1,nmax]において、
【数9】
を満たす前記属性ペアSの中の属性種別および属性値を指し示すインデックスをi、前記レンジエンコード関数Fおよび前記ポイントエンコード関数fにより、
【数10】
を満たすノードをz前記属性ペアS分の要素からなるベクトルw=(w,w,…,w)と、前記アクセス行列Mから前記属性ペアSに含まれる各属性に対応する行のみを抽出した行列Msとにおいて、w・Ms=(1,0,…,0)を満たす前記ベクトルwのインデックスi番目の要素をwijとして、
【数11】
を演算し、元のデータをDとして復号する暗号化データ復号手段と、
を備えることを特徴とする復号装置。
【請求項4】
コンピュータを、請求項1に記載の鍵生成装置として機能させるための鍵生成プログラム。
【請求項5】
コンピュータを、請求項2に記載の暗号化装置として機能させるための暗号化プログラム。
【請求項6】
コンピュータを、請求項3に記載の復号装置として機能させるための復号プログラム。
【請求項7】
ユーザの個人情報を保護して、サービス事業者がユーザにサービスを提供する個人情報保護システムであって、ネットワーク上に、
前記サービス事業者に与える属性として、属性種別であるユーザ評価およびその属性値の範囲である評価値から、属性付き秘密鍵を生成する請求項1に記載の鍵生成装置と、
前記個人情報をデータ、前記個人情報を復号可能なサービス事業者のユーザ評価および評価値をポリシーとして、前記データからポリシー付き暗号化データを生成する前記ユーザの装置である請求項2に記載の暗号化装置と、
この暗号化装置で生成されたポリシー付き暗号化データを蓄積するデータ管理装置と、
このデータ管理装置に蓄積されているポリシー付き暗号化データを取得し、前記鍵生成装置で生成された属性付き秘密鍵で復号する前記サービス事業者の装置である請求項3に記載の復号装置と、
を備えることを特徴とする個人情報保護システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、属性情報を利用して、データの暗号化および復号を行うための鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システムに関する。
【背景技術】
【0002】
近年、秘密鍵や暗号文にユーザの属性(居住地、性別等)を関連付け、復号条件(ポリシー)を満たすユーザのみが暗号文を復号可能な暗号方式である属性ベース暗号(ABE:Attribute-Based Encryption)に関して種々の方式が提案されている。
【0003】
この属性ベース暗号には、大きく2つの方式が存在する。第1の方式は、属性に基づいてデータを暗号化し、ポリシーに基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な鍵ポリシー属性ベース暗号(KP−ABE:Key-Policy Attribute-Based Encryption)である。第2の方式は、ポリシーに基づいてデータを暗号化し、属性に基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な暗号文ポリシー属性ベース暗号(CP−ABE:Ciphertext-Policy Attribute-Based Encryption)である。
このような属性ベース暗号は、1つの暗号文を復号することができるユーザを複数存在させることができるため、ファイル共有システムのアクセス制御、コンテンツ配信サービス等への応用が期待されている。
【0004】
以下、本発明が対象とするCP−ABEに関連する従来技術について説明する。
従来のCP−ABEでは、例えば、非特許文献1に記載されているように、各々の属性に対応する属性値(固定値)を、AND(論理積)やOR(論理和)で結合したブール代数形式または木構造でポリシーを記述する。
一般的なコンテンツ配信サービスでは、コンテンツの視聴制限を行う場合、例えば、ユーザの会員種別(プレミアム会員、一般会員等)、性別、年齢等により行っている。その場合、視聴制限を示すポリシーは、『‘プレミアム会員’OR(‘女性’AND‘成人’)』のように表すことができる。
この視聴制限を従来のCP−ABEで指定する場合、CP−ABEは、ポリシーに記述可能な属性値が固定値のみであるため、ポリシーを、『‘プレミアム会員’OR(‘女性’AND(年齢:20 OR 年齢:21 … 年齢:99 OR 年齢:100))』のように、属性値を列挙して指定することになる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】B. Waters, “Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization,”Proc. of PKC’11, LNCS 6571, pp. 53-70, 2011.
【発明の概要】
【発明が解決しようとする課題】
【0006】
前記したように、従来のCP−ABEは、範囲指定可能な属性であっても、個々の属性値を列挙して記述しなければならないため、ポリシーの記述が複雑になるとともに、暗号文サイズが、指定した範囲に含まれる属性値の数のオーダで増加してしまうという問題がある。
【0007】
本発明は、このような問題に鑑みてなされたもので、属性値の範囲指定を可能とすることで、暗号文サイズの増加量を抑えることが可能な属性ベース暗号システムを提供することを課題とする。
【課題を解決するための手段】
【0008】
前記課題を解決するため、本発明に係る鍵生成装置は、属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、公開鍵生成手段と、マスタ鍵生成手段と、秘密鍵生成手段と、属性関連付け手段と、を備える構成とした。
【0009】
かかる構成において、鍵生成装置は、公開鍵生成手段によって、使用する属性の数をW、アクセス行列の列の最大数をnmax、レンジエンコード関数の出力として取り得るノードの要素数をumaxとしたとき、素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、生成元gを乱数a(a∈Z)乗した演算結果と、生成元gをhj,x,u(∀j∈[1,nmax],∀x∈[1,W],∀u∈[1,umax])乗した演算結果と、を公開鍵として生成する。さらに、鍵生成装置は、マスタ鍵生成手段によって、生成元gを乱数α乗した演算結果をマスタ鍵として生成する。
ここで、アクセス行列は、線形秘密分散法によるポリシー(復号条件)を表した行列である。後記する暗号化装置において、このアクセス行列と、アクセス行列の各行から属性種別と属性値の範囲に変換する写像とにより、属性値を範囲指定することが可能になる。
【0010】
そして、鍵生成装置は、秘密鍵生成手段によって、マスタ鍵をMKとし、Zから選択したnmax分の乱数t,…,tnmaxと、公開鍵の一部であるgおよびgのa乗とにより、
【数1】
を演算するとともに、属性の種別を示す属性種別xとそれに対応する属性値sとを対とした属性ペアS={(x,s),…,(x,s)}と、ポイントエンコード関数fとにより、
【数2】
を演算し、その演算結果K,L,Ki,uを秘密鍵として生成する。
【0011】
そして、鍵生成装置は、属性関連付け手段によって、秘密鍵に属性ペアを関連付けて、属性付き秘密鍵を生成する。なお、この関連付けは、予め定めたデータフォーマットで、秘密鍵と属性ペアとを連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
これによって、鍵生成装置は、アクセス行列を用いてポリシーを指定してデータの暗号化/復号を行う際に使用する公開鍵と秘密鍵(属性付き秘密鍵)を生成することができる。
【0012】
また、本発明に係る暗号化装置は、鍵生成装置で生成された公開鍵を用いて、属性ベース暗号によりデータを暗号化する暗号化装置であって、データ入力手段と、ポリシー入力手段と、暗号化データ生成手段と、ポリシー関連付け手段と、を備える構成とした。
【0013】
かかる構成において、暗号化装置は、データ入力手段によって、暗号化の対象となるデータを入力する。また、暗号化装置は、ポリシー入力手段によって、ポリシーとして、線形秘密分散法により復号条件を表したアクセス行列Mと、当該アクセス行列Mの各行jから属性種別π(j)と属性値の範囲π(j)に変換する写像πとを入力する。
【0014】
そして、暗号化装置は、暗号化データ生成手段によって、データをDとし、アクセス行列の列の数n分の乱数v=(s,y,…,y)をZから選択し、公開鍵の一部であるe(g,g)のα乗およびgにより、
【数3】
を演算するとともに、レンジエンコード関数をF、アクセス行列Mをm行n列としたとき、公開鍵の一部であるgのa乗およびgのhj,x,u乗により、
【数4】
を演算し、その演算結果C,C′,Ci,j,uを暗号化データとして生成する。
【0015】
このように、暗号化装置は、レンジエンコード関数Fにより、属性値の範囲π(j)を符号化した要素(ノード)uを用いて暗号化データを生成するため、属性値を個々に指定するよりも少ない情報量で暗号化データを生成することができる。
【0016】
そして、暗号化装置は、ポリシー関連付け手段によって、暗号化データにポリシーを関連付けて、ポリシー付き暗号化データを生成する。なお、この関連付けは、予め定めたデータフォーマットで、暗号化データとポリシーとを連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
【0017】
これによって、暗号化装置は、ポリシーを関連付けた属性ベース暗号方式による暗号化データを生成することができ、さらに、属性値を範囲指定する場合に、その情報量を抑えた暗号化データを生成することができる。
【0018】
また、本発明に係る復号装置は、鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、暗号化装置で暗号化されたポリシー付き暗号化データを復号する属性ベース暗号の復号装置であって、ポリシー判定手段と、暗号化データ復号手段と、を備える構成とした。
【0019】
かかる構成において、復号装置は、属性付き秘密鍵として関連付けられている、属性の種別を示す属性種別xとそれに対応する属性値sとを対とした属性ペアS={(x,s),…,(x,s)}と、秘密鍵である
【数5】
と、ポリシー付き暗号化データとして関連付けられている、ポリシーと、暗号化データである
【数6】
とにおいて、ポリシー判定手段によって、属性ペアがポリシーを満たすか否かを判定する。
【0020】
そして、復号装置は、属性ペアがポリシーを満たすと判定された場合に、暗号化データ復号手段によって、公開鍵と秘密鍵とにより、暗号化データCTから、すべてのj∈[1,nmax]において、
【数7】
を満たす属性ペアSの中の属性種別および属性値を指し示すインデックスをi、暗号化装置と同じレンジエンコード関数Fおよび鍵生成装置と同じポイントエンコード関数fにより、
【数8】
を満たすノードをzとして、
【数9】
を演算し、元のデータをDとして復号する。
これによって、復号装置は、暗号化装置において、属性値を範囲指定して暗号化されたデータを、元データに復号することができる。
【発明の効果】
【0021】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、ポリシー(復号条件)の属性値を、線形秘密分散法(LSSS)のアクセス行列により範囲指定することができる。
これによって、本発明は、属性値の範囲が大きくなった場合でも、個々の属性値を列挙して記述する従来の手法に比べて、暗号化データの情報量を抑えることができる。
【図面の簡単な説明】
【0022】
図1】本発明の実施形態に係る属性ベース暗号システムの構成を示すシステム構成図である。
図2】アクセス行列の生成手法の例を説明するための図であって、ポリシーのツリー構造を示す構造図である。
図3】本発明の実施形態に係る鍵生成装置の構成を示すブロック構成図である。
図4】ポイントエンコード関数の例を説明するための説明図である。
図5】本発明の実施形態に係る暗号化装置の構成を示すブロック構成図である。
図6】レンジエンコード関数の例を説明するための説明図である。
図7】本発明の実施形態に係る復号装置の構成を示すブロック構成図である。
図8】本発明の実施形態に係る属性ベース暗号システムにおける鍵生成および鍵配信の動作を示すフローチャートである。
図9図8の動作において、基本情報を生成する動作を詳細に示すフローチャートである。
図10図8の動作において、公開鍵・マスタ鍵を生成する動作を詳細に示すフローチャートである。
図11図8の動作において、秘密鍵を生成する動作を詳細に示すフローチャートである。
図12】本発明の実施形態に係る属性ベース暗号システムにおけるデータの暗号化および復号の動作を示すフローチャートである。
図13図12の動作において、暗号化データを生成する動作を詳細に示すフローチャートである。
図14図12の動作において、暗号化データを復号する動作を詳細に示すフローチャートである。
図15】本発明の実施形態に係る属性ベース暗号システムを個人情報保護システムとして構成した例を示すシステム構成図である。
【発明を実施するための形態】
【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)に示す論理形式で示す条件とする。
【0032】
【数10】
【0033】
まず、図2を参照して、アクセス行列Mの生成手法の例について説明する。
なお、説明を簡略化するため、式(1)の条件を、ポリシーの属性をA〜Dで表した以下の式(2)に示す簡略表現とする。
【0034】
【数11】
【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を生成する。
【0038】
【数12】
【0039】
これによって、ポリシーの属性の論理形式を行列形式で表すことができる。
次に、写像πについて説明する。
この写像πは、式(3)に示したアクセス行列Mの各行に対応する属性を属性種別と属性値の範囲(単一の属性値を含む)に変換する写像である。
すなわち、写像πは、アクセス行列Mの行のインデックスをjとしたとき、π(j)の属性種別と、π(j)の属性値の範囲に変換する写像である。
具体的には、前記式(1)で示したポリシーに対応する写像πは、以下の式(4)に示すように表現される。ここで、[x,y]は、x以上y以下の整数の集合を示す(以下、同じ)。
【0040】
【数13】
【0041】
なお、属性π(j)には、‘会員種別’等の属性を特定する文字列を設定する。また、属性値の範囲π(j)には、プレミアム会員等の単一の属性値か、[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の列の最大数nmax、および、レンジエンコード(Range Encode)関数の出力として取り得るノードの要素数umaxである。
このレンジエンコード関数は、属性値を葉ノードとして含む完全二分木において、属性値の範囲を、当該範囲を覆う完全二分木のルートノードに近いノード(カバーノード)に写す写像関数である。すなわち、レンジエンコード関数の出力として取り得るノードの要素数umaxは、この完全二分木の総ノード数である。このレンジエンコード関数については、当該関数を用いる暗号化装置3において、詳細に説明する。
【0046】
なお、ここでは、説明を簡単にするため、すべての属性において、要素数umaxを同じ値として説明するが、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
このパラメータ入力手段11は、入力されたセキュリティパラメータおよび属性情報を、基本情報生成手段12に出力する。
【0047】
基本情報生成手段12は、公開鍵生成手段13およびマスタ鍵生成手段14において、それぞれ、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成するものである。
具体的には、基本情報生成手段12は、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,Gを選択する。そして、基本情報生成手段12は、巡回群GおよびGがG×G→Gとなる双線形写像eを選択する。例えば、基本情報生成手段12は、e:G×G→Gとなる双線形写像eとして、一般的な“Weil Pairing”、“Tate Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
【0048】
さらに、基本情報生成手段12は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する。
また、基本情報生成手段12は、乱数a,α,hj,x,uを、Zからランダムに選択する。ここで、乱数hj,x,uは、すべてのj∈[1,nmax],すべてのx∈[1,W],すべてのu∈[1,umax]に対して選択されるものとする。なお、Zは、{0,…,p−1}の整数の集合である。
【0049】
この基本情報生成手段12は、生成した各種の基本情報(p,G,G,e,a,α,hj,x,u)を、公開鍵生成手段13に出力する。また、基本情報生成手段12は、生成した基本情報(g,α)を、マスタ鍵生成手段14に出力する。もちろん、この基本情報は、図示を省略したメモリに記憶しておき、公開鍵生成手段13およびマスタ鍵生成手段14が、それぞれ必要な情報を参照することとしてもよい。
【0050】
公開鍵生成手段13は、基本情報生成手段12で生成された基本情報に基づいて、属性ベース暗号における公開鍵を生成するものである。
ここでは、公開鍵生成手段13は、基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのhj,x,u乗を演算し、以下の式(5)に示すように、基本情報生成手段12で生成された素数位数p、巡回群G,G、双線形写像eおよび生成元gとともに、公開鍵PKを生成する。
【0051】
【数14】
【0052】
なお、本実施形態では、パラメータ入力手段11に入力される属性情報(W,nmax,umax)が、属性ベース暗号システム100の各装置(鍵生成装置1、暗号化装置3および復号装置5)において予め設定された既知の情報であることとするが、既知の情報としない場合、当該属性情報も公開鍵PKとして、公開すればよい。
この公開鍵生成手段13は、生成した公開鍵PKを公開鍵記憶手段15に書き込み記憶する。
【0053】
マスタ鍵生成手段14は、基本情報生成手段12で生成された基本情報に基づいて、属性ベース暗号におけるマスタ鍵を生成するものである。
ここでは、マスタ鍵生成手段14は、以下の式(6)に示すように、基本情報に基づいて、生成元gのα乗を演算してマスタ鍵MKを生成する。
【0054】
【数15】
【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、属性値をs(i=1,…,k;kは1以上の整数)としたとき、属性ペアSを、S={(x,s),…,(x,s)}と表すこととする。
この属性入力手段21は、入力された属性ペアを、属性付き秘密鍵生成手段22に出力する。
【0061】
属性付き秘密鍵生成手段22は、属性入力手段21で入力された属性ペアと、第一鍵生成手段10で生成された公開鍵およびマスタ鍵とに基づいて、属性ベース暗号における秘密鍵を生成し、入力された属性ペアを関連付けることで属性付き秘密鍵を生成するものである。ここでは、属性付き秘密鍵生成手段22は、秘密鍵生成手段221と、属性関連付け手段222と、を備える。
【0062】
秘密鍵生成手段221は、属性入力手段21で入力された属性ペアに対応する属性ベース暗号方式における秘密鍵を生成するものである。
具体的には、秘密鍵生成手段221は、以下の演算を行うことで、秘密鍵を生成する。
まず、秘密鍵生成手段221は、アクセス行列M(例えば、前記式(3))の列の最大数nmax分の乱数t,…,tnmaxをZからランダムに選択する。
そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=gα)を用いて、以下の式(7)の演算を行い、秘密鍵の要素となるKを求める。
【0063】
【数16】
【0064】
また、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、すべてのi∈[1,nmax]に対して、以下の式(8)の演算を行い、秘密鍵の要素となるLを求める。
【0065】
【数17】
【0066】
さらに、秘密鍵生成手段221は、属性ペアS(={(x,s),…,(x,s)})において、すべてのi∈[1,k]と、すべてのu∈f(s)とに対して、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、以下の式(9)の演算を行い、秘密鍵の要素となるKi,uを求める。
【0067】
【数18】
【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に入力されるレンジエンコード関数において出力として取り得るノードの要素数umaxと同じである。なお、ポイントエンコード関数fにおける要素数も、レンジエンコード関数と同様に、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
【0070】
ここで、図4を参照して、ポイントエンコード関数の具体例について説明する。
図4に示すように、ポイントエンコード関数は、葉ノード(ここでは、“1”〜“8”)を含んだ完全二分木において、ある葉ノードを、当該葉ノードのすべての先祖ノードの集合に写す写像関数である。すなわち、ポイントエンコード関数は、完全二分木において、葉ノードからルートノードまで辿るノードの集合を出力する。
例えば、図4の例では、ある葉ノード(“6”)をポイントエンコード関数fによって符号化した場合、{6,11,14,15}が生成される。
図3に戻って、鍵生成装置1の構成について説明を続ける。
【0071】
秘密鍵生成手段221は、前記式(7)〜式(9)で演算された各要素で構成される以下の式(10)に示す秘密鍵SKを生成し、属性関連付け手段222に出力する。
【0072】
【数19】
【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,…,yを、Zからランダムに選択する。なお、Zは、Z上の整数を要素にもつn次元ベクトルの集合である。ここでは、各乱数を、インデックスv=(s,y,…,y)で表し、v=s,v=y,…,v=yとする。
そして、暗号化データ生成手段351は、選択した乱数s(=v)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、以下の式(11)を演算することで、暗号化データの要素となるC,C′を求める。
【0083】
【数20】
【0084】
ここで、Dは、データ入力手段31で入力された暗号化対象のデータである。
さらに、暗号化データ生成手段351は、アクセス行列Mをm行n列としたときのすべてのi∈[1,m],j∈[1,n]と、すべてのu∈F(π(i))とに対して、公開鍵記憶手段34に記憶されている公開鍵の一部であるgのa乗とgのhj,x,u乗とにより、以下の式(12)の演算を行い、暗号化データの要素となるCi,j,uを求める。
【0085】
【数21】
【0086】
ここで、Mi,jは、アクセス行列Mのi行j列の要素の値である。また、hj,π(i)1,uは、公開鍵の一部である乱数hj,x,uのうちのi番目の属性に対応する乱数である。
また、π(i)は、ポリシー入力手段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に出力する。
【0089】
【数22】
【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,s),…,(x,s)}、ポリシーに含まれる属性数をjとしたとき、ポリシー判定手段563は、属性種別x(x,…,x)が、ポリシーに含まれる写像πの属性種別π(i)、i∈[1,j]に含まれ、かつ、属性値s(s,…,s)が、その属性種別x(x,…,x)に対応する写像πの属性値の範囲π(i)に含まれる場合(属性値が単一値であれば一致する場合、属性値が範囲であればその範囲内にある場合)に、属性ペアがポリシーを満たすと判定し、それ以外の場合に、属性ペアがポリシーを満たさないと判定する。
【0103】
このポリシー判定手段563は、属性ペアがポリシーを満たす場合だけ、ポリシー付き暗号化データ分離手段562で分離されたポリシーと暗号化データとを暗号化データ復号手段564に出力する。さらに、ポリシー判定手段563は、属性ペアの属性数kを暗号化データ復号手段564に出力する(図示せず)。
なお、ポリシー判定手段563は、属性ペアがポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【0104】
暗号化データ復号手段564は、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号するものである。
具体的には、暗号化データ復号手段564は、以下の式(14)に示す演算を行うことで、暗号化データからデータDを復号する。
【0105】
【数23】
【0106】
この式(14)中、符号Cが付されている値は、暗号化データCT(前記式(13)参照)で与えられる値である。また、符号K,符号Lが付されている値は、秘密鍵SK(前記式(10)参照)で与えられる値である。
また、eは、公開鍵(前記式(5)参照)として公開されている双線形写像である。
また、nmaxは、アクセス行列Mの列の最大数である。このアクセス行列Mの列の最大数nmaxは、暗号化データ復号手段564に予め保持しておいてもよいし、外部から設定されることとしてもよい。あるいは、nmaxを公開鍵の一部として含め、それを参照することとしてもよい。また、kは、属性ペアの属性数である。
また、式(14)中、iは、以下の式(15)を満たす(真値となる)属性ペアの中の属性および属性値を指し示すインデックスである。
【0107】
【数24】
【0108】
すなわち、インデックスiは、すべてのj∈[1,nmax]において、ポリシーに含まれる写像πのj番目の属性種別π(j)と属性ペアSのi番目の属性種別xijとが一致し、かつ、写像πのj番目の属性値の範囲π(j)に属性ペアSのi番目の属性値sijが含まれるときの値である。
また、式(14)中、zは、以下の式(16)を満たすノードである
【0109】
【数25】
【0110】
すなわち、ノードzは、ポリシーに含まれる写像πのj(j∈[1,nmax])番目の属性値π(j)を、暗号化装置3と同じレンジエンコード関数Fで符号化したノード(カバーノード)と、属性ペアSのi番目の属性値sijを、鍵生成装置1と同じポイントエンコード関数fで符号化したノードとの共通のノードである。
また、式(14)中、wijは、属性ペアS分のk個の要素からなるベクトルw=(w,w,…,w)と、アクセス行列Mから属性ペアSに含まれる各属性に対応する行のみを抽出した行列Msとにおいて、w・Ms=(1,0,…,0)を満たすベクトルwのi番目(i∈[1,k])の要素の値である。
【0111】
(式(14)の証明)
ここで、前記式(14)によって、暗号化データ復号手段564が、元のデータDを復号することができることを証明しておく。
なお、データDは、前記式(11)により暗号化されているため、前記式(14)から、以下の式(17)が導き出せればよいことになる。
【0112】
【数26】
【0113】
以下、式(18)により、式(14)の右辺のうち、“C”を除いた数式(以下の式(18-1))を変形する。
【0114】
【数27】
【0115】
この式(18)において、式(18-1)から式(18-2)の変形は、前記式(7)〜式(9)、式(11)および式(12)を式(18-1)に代入することで求められる。
また、式(18-2)から式(18-3)の変形は、双線形写像の性質であるe(g,g)=e(g,g)=e(g,g)ab)を利用することで変形することができる。
具体的には、双線形写像の性質により、式(18-2)の分子は、以下の式(19)のように変形することができる。
【0116】
【数28】
【0117】
また、前記式(18)において、式(18-3)から式(18-4)の変形は、双線形写像の性質であるe(g,g)=e(g,g)=e(g,g)ab)と、線形秘密分散法(LSSS)の性質を利用することで変形することができる。
ここで、LSSSの性質とは、ベクトルw=(w,w,…,w)と、行列Msとにおいて、w・Ms=(1,0,…,0)となる性質である。
すなわち、LSSSは、以下の式(20)の性質を有する。
【0118】
【数29】
【0119】
よって、前記式(18-3)の分子は、以下の式(21)のように変形することができ、式(18-3)から式(18-4)に変形することができる。
【数30】
【0120】
また、前記式(18)において、式(18-4)から式(18-5)の変形は、前記式(11)で説明したように、v=sであることから、式(18-4)のvにsを代入するとともに、双線形写像のe(g,g)=e(g,g)=e(g,g)ab)の性質を利用することで変形することができる。
また、前記式(18)において、式(18-5)から式(18-6)の変形は、双線形写像のe(g,g)=e(g,g)=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の列の最大数nmax、および、レンジエンコード関数の出力として取り得るノードの要素数umaxである。
【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を選択する(ステップS21)。
また、基本情報生成手段12は、巡回群G,GがG×G→Gとなる双線形写像eを選択する(ステップS22)。そして、基本情報生成手段12は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(ステップS23)。
【0133】
さらに、基本情報生成手段12は、乱数a,α,hj,x,uを、Zからランダムに選択する(ステップS24)。なお、基本情報生成手段12は、乱数hj,x,uを、すべてのj∈[1,nmax],すべてのx∈[1,W],すべてのu∈[1,umax]に対して選択する。
以上の動作により、鍵生成装置1は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する。
【0134】
(公開鍵・マスタ鍵生成動作)
次に、図10を参照(構成については、適宜図3参照)して、図8のステップS3の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報に基づいて、e(g,g)のα乗,gのa乗およびgのhj,x,u乗を演算する(ステップS31)。
そして、鍵生成装置1は、公開鍵生成手段13によって、基本情報生成手段12で生成された基本情報である素数位数p、巡回群G,G、双線形写像eおよび生成元gと、ステップS31の演算結果とを含んだ公開鍵PK(前記式(5)参照)を生成する(ステップS32)。
【0135】
さらに、鍵生成装置1は、マスタ鍵生成手段14によって、基本情報生成手段12で生成された基本情報である生成元gのα乗を演算してマスタ鍵MK(前記式(6)参照)を生成する(ステップS33)。
以上の動作により、鍵生成装置1は、属性ベース暗号における公開鍵およびマスタ鍵を生成する。
【0136】
(秘密鍵生成動作)
次に、図11を参照(構成については、適宜図3参照)して、図8のステップS11の動作(秘密鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、秘密鍵生成手段221によって、アクセス行列の列の最大数nmax分の乱数t,…,tnmaxをZからランダムに選択する(ステップS41)。
そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgと、マスタ鍵記憶手段16に記憶されているマスタ鍵MK(=gα)を用いて、前記式(7)の演算を行い、秘密鍵の要素となるKを求める(ステップS42)。
【0137】
そして、秘密鍵生成手段221は、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、すべてのi∈[1,nmax]に対して、前記式(8)の演算を行い、秘密鍵の要素となるLを求める(ステップS43)。
さらに、秘密鍵生成手段221は、属性ペアS(={(x,s),…,(x,s)}において、すべてのi∈[1,k]と、すべてのu∈f(s)とに対して、公開鍵記憶手段15に記憶されている公開鍵の一部であるgを用いて、前記式(9)の演算を行い、秘密鍵の要素となるKi,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,…,yを、Zからランダムに選択する(ステップS71)。このとき、各乱数をv=s,v=y,…,v=yとする。
そして、暗号化データ生成手段351は、選択した乱数s(=v)と、公開鍵記憶手段34に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、前記式(11)を演算することで、暗号化データの要素となるC,C′を求める(ステップS72)。
【0145】
さらに、暗号化データ生成手段351は、アクセス行列をm行n列としたときのすべてのi∈[1,m],j∈[1,n]と、すべてのu∈F(π(i))とに対して、公開鍵記憶手段34に記憶されている公開鍵の一部であるgのa乗とgのhj,x,u乗とにより、前記式(12)の演算を行い、暗号化データの要素となるCi,j,uを求める(ステップS73)。
そして、暗号化データ生成手段351は、ステップS72〜S73で演算された各要素で構成される前記式(13)に示す暗号化データCTを生成する(ステップS74)。
以上の動作により、暗号化データ生成手段351は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。
【0146】
(暗号化データ生成動作)
次に、図14を参照(構成については、適宜図7参照)して、図12のステップS60の動作(暗号化データ復号動作)について詳細に説明する。
まず、復号装置5は、暗号化データ復号手段564によって、すべてのj∈[1,nmax]において、ポリシーに含まれる写像πのj番目の属性種別π(j)と属性ペアSのi番目の属性種別xijとが一致し、かつ、写像πのj番目の属性値の範囲π(j)に属性ペアSのi番目の属性値sijが含まれる前記式(15)を満たすインデックスiを選択する(ステップS81)。
【0147】
また、復号装置5は、暗号化データ復号手段564によって、すべてのj∈[1,nmax]において、ポリシーに含まれる写像πのj番目の属性値π(j)を、暗号化装置3と同じレンジエンコード関数Fで符号化したノード(カバーノード)と、属性ペアSのi番目の属性値sijを、鍵生成装置1と同じポイントエンコード関数fで符号化したノードとの共通のノードzを選択する(ステップS82)。
【0148】
そして、復号装置5は、暗号化データ復号手段564によって、ステップS81,S82で選択されたi,zを用いて、秘密鍵および公開鍵に基づいて、前記式(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,S,Sを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置5に送信する。
【0157】
={(‘プライバシーマーク’,あり),(‘ユーザ評価’,5)}
={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}
={(‘プライバシーマーク’,あり),(‘ユーザ評価’,3)}
【0158】
なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
【0159】
暗号化装置3は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
また、暗号化装置3は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、ユーザは、レコメンド情報の提供を許可するサービス事業者の評価を“3”〜“5”の範囲とする場合、ユーザ評価を[3,5]のように範囲指定する。すなわち、暗号化装置3は、ポリシーを以下のように設定する。
(‘プライバシーマーク’=あり)∧(‘ユーザ評価’∈[3,5])
そして、暗号化装置3は、個人情報を暗号化した暗号化個人情報にポリシーを関連付けて、データ管理装置7に送信する。
【0160】
復号装置5は、例えば、図示を省略したサービス提供装置等に備えられ、データ管理装置7から暗号化個人情報(ポリシー付き)を取得する。このとき、復号装置5は、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
例えば、復号装置5は、自身に設定された属性ペアが、前記S={(‘プライバシーマーク’,あり),(‘ユーザ評価’,5)}であれば、個人情報を復号することができるが、前記S={(‘プライバシーマーク’,あり),(‘ユーザ評価’,2)}であれば、個人情報を復号することができない。
そして、サービス提供装置(不図示)は、復号装置5で復号された個人情報(視聴履歴等)を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
【0161】
以上説明した個人情報保護システム200によれば、暗号化装置3においてデータ(ここでは個人情報)を暗号化する際に、ユーザがポリシーを設定してクラウドサーバ(データ管理装置7)に保存することにより、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身の評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。
【符号の説明】
【0162】
100 属性ベース暗号システム
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 データ管理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15