JP6700797B2 - 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム - Google Patents

鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム Download PDF

Info

Publication number
JP6700797B2
JP6700797B2 JP2016004327A JP2016004327A JP6700797B2 JP 6700797 B2 JP6700797 B2 JP 6700797B2 JP 2016004327 A JP2016004327 A JP 2016004327A JP 2016004327 A JP2016004327 A JP 2016004327A JP 6700797 B2 JP6700797 B2 JP 6700797B2
Authority
JP
Japan
Prior art keywords
encrypted data
policy
attribute
certificate
data
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
Application number
JP2016004327A
Other languages
English (en)
Other versions
JP2017126851A (ja
Inventor
大竹 剛
剛 大竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2016004327A priority Critical patent/JP6700797B2/ja
Publication of JP2017126851A publication Critical patent/JP2017126851A/ja
Application granted granted Critical
Publication of JP6700797B2 publication Critical patent/JP6700797B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、属性情報を利用して、データの暗号化および復号を行うための鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システムに関する。
従来、秘密鍵や暗号文にユーザの属性(居住地、性別等)を関連付け、復号条件(ポリシー)を満たすユーザのみが暗号文を復号可能な暗号方式である属性ベース暗号(ABE:Attribute-Based Encryption)に関する方式が種々提案されている。この属性ベース暗号は、1つの暗号文を復号することができるユーザを複数存在させることができるため、ファイル共有システムのアクセス制御、コンテンツ配信サービス等への応用が期待されている。
この属性ベース暗号には、大きく2つの方式が存在する。第1の方式は、属性に基づいてデータを暗号化し、ポリシーに基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な鍵ポリシー属性ベース暗号(KP−ABE:Key-Policy Attribute-Based Encryption)である。第2の方式は、ポリシーに基づいてデータを暗号化し、属性に基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な暗号文ポリシー属性ベース暗号(CP−ABE:Ciphertext-Policy Attribute-Based Encryption)である。
以下、本発明が対象とするCP−ABEについて説明する。
CP−ABEは、数多くの方式が提案されている(例えば、非特許文献1等)。このCP−ABEを用いると、例えば、放送通信連携サービスにおいて、視聴履歴を暗号化してクラウドサーバ上に保存するとともに、視聴者が指定したポリシーを満たす属性を有するサービスプロバイダのみが視聴履歴を復号し、個人向けサービスに活用することが可能なプライバシー保護システムを実現することができる。
しかし、CP−ABEは、従来の公開鍵暗号方式(RSA暗号、ElGamal暗号等)に比べ、暗号化処理の負荷が大きいという欠点がある。例えば、非特許文献1の方式では、暗号文サイズが属性の数のオーダで増加してしまうため、暗号化処理時間が属性の数に比例して長くなってしまう。また、放送通信連携サービスにおいて前記したプライバシー保護システムを実現する場合、テレビ受信機、スマートフォン等のユーザ端末上で暗号化処理を実行することになるが、これらのユーザ端末は、PC(Personal Computer)に比べてCPU性能が低いため、暗号化処理時間が長くなってしまう。
このような欠点を克服するため、近年、暗号化処理をクラウドサーバに委託することが可能なCP−ABEが提案されている(例えば、非特許文献2〜4等)。これらの方式では、CP−ABEの暗号化処理の一部をユーザ端末上で実行し、残りの暗号化処理をクラウドサーバに委託することにより、ユーザ端末の負荷を軽減することができる。
B. Waters, "Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization," eprint2008/290, 2008. Z. Zhou and D. Huang, "Efficient and Secure Data Storage Operations for Mobile Cloud Computing," eprint 2011/185, 2011. J. Li, C. Jia, J. Li, and X. Chen, "Outsourcing Encryption of Attribute-Based Encryption with MapReduce," Proc. of ICICS’12, LNCS 7618, pp. 191-201, 2012. S. Hohenberger and B. Waters, "Online/Offline Attribute-Based Encryption," Proc. of PKC’14, LNCS 8383, pp. 293-310, 2014.
しかし、従来の非特許文献2〜4に記載の方式は、クラウドサーバが暗号化処理を忠実に実行し、データの改ざんを行わないことを前提とした方式である。もし、悪意のあるクラウドサーバに暗号化処理を委託した場合、視聴者が指定したポリシーを満たさない、すなわち、本来であれば復号できないサービスプロバイダが、クラウドサーバと結託して視聴履歴を復号できる可能性があるという問題がある。
本発明は、このような問題に鑑みてなされたもので、属性ベース暗号の暗号化処理の一部を外部に委託することにより、ユーザ端末の負荷を軽減するとともに、外部でデータの改ざんが行われた場合でも、それらを検出し復号できなくすることが可能な属性ベース暗号システムを提供することを課題とする。
前記課題を解決するため、請求項1に記載の鍵生成装置は、属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、公開鍵生成手段と、マスタ鍵生成手段と、秘密鍵生成手段と、属性関連付け手段と、を備える構成とした。
かかる構成において、鍵生成装置は、公開鍵生成手段によって、素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、生成元gを乱数a(a∈Z)乗した演算結果と、任意のビット列の値を与えたとき巡回群Gに属する値を返すハッシュ関数(第1ハッシュ関数)Hと、第1,第2引数として巡回群Gに属する値、第3,第4引数として任意のビット列の値を与えたとき、任意のビット列の値を返すハッシュ関数(第2ハッシュ関数)H′と、任意のビット列の値を与えたとき、任意のビット列の値を返すハッシュ関数(第3ハッシュ関数)H″とを、公開鍵として生成する。さらに、鍵生成装置は、マスタ鍵生成手段によって、生成元gを乱数α乗した演算結果をマスタ鍵として生成する。
そして、鍵生成装置は、秘密鍵生成手段によって、マスタ鍵と、Zから選択した乱数tと、公開鍵の一部である生成元gと生成元gのa乗とにより、
Figure 0006700797
を演算するとともに、属性Sのすべての属性値xにおいて、ハッシュ関数Hと乱数tとにより、
Figure 0006700797
を演算し、その演算結果K,L,Kを秘密鍵として生成する。
そして、鍵生成装置は、属性関連付け手段によって、秘密鍵生成手段で生成された秘密鍵に、属性を関連付けて、属性付き秘密鍵を生成する。なお、この関連付けは、予め定めたデータフォーマットで、秘密鍵と属性とを連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
これによって、鍵生成装置は、ポリシーを指定してデータの暗号化/復号を行う際に使用する公開鍵と秘密鍵(属性付き秘密鍵)を生成することができる。
また、請求項2に記載の中間暗号化装置は、請求項1に記載の鍵生成装置で生成された公開鍵を用いて、属性ベース暗号によるデータの暗号化処理の一部を行う中間暗号化装置であって、データ入力手段と、ポリシー入力手段と、中間暗号化データ生成手段と、証明書付与手段と、データ関連付け手段と、を備える構成とした。
かかる構成において、中間暗号化装置は、データ入力手段によって、暗号化の対象となるデータを入力する。また、中間暗号化装置は、ポリシー入力手段によって、復号条件となるポリシーとして、線形秘密分散法により復号条件を表したアクセス行列Aと、当該アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとを入力する。ここで、アクセス行列は、線形秘密分散法によるポリシー(復号条件)を表した行列である。
そして、中間暗号化装置は、中間暗号化データ生成手段によって、データをMとし、m行n列のアクセス行列Aの列数nに対して、乱数s,y,…,y,β,β,…,βを、Zから選択し、ベクトルvを、
Figure 0006700797
により演算し、公開鍵の一部であるe(g,g)のα乗およびgにより、
Figure 0006700797
を演算し、アクセス行列Aの行iごとに、要素の値が“1”である列番号Jから、
Figure 0006700797
を演算し、その演算結果C,C′,E,vを要素とする中間暗号化データを生成する。
また、中間暗号化装置は、証明書付与手段によって、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報posと、公開鍵であるe(g,g)α,ハッシュ関数H′,H″と、乱数sと、当該中間暗号化装置のユーザを識別するユーザIDであるIDとにより、証明書πを、
Figure 0006700797
により生成し、中間暗号化データに付与することで証明書付き中間暗号化データを生成する。
そして、中間暗号化装置は、データ関連付け手段によって、ポリシーと、証明書付き中間暗号化データと、ユーザIDとを関連付けて、ID・ポリシー・証明書付き中間暗号化データを生成する。
このように、中間暗号化装置は、データMを暗号化した中間暗号化データの要素Cを含んで証明書を生成するため、委託暗号化装置に委託した暗号化処理において、中間暗号化データが改ざんされても、復号装置でその検出が可能になる。
また、請求項3に記載の委託暗号化装置は、請求項1に記載の鍵生成装置で生成された公開鍵を用いて、請求項2に記載の中間暗号化装置によって属性ベース暗号の一部が処理された残りの暗号化処理を行う委託暗号化装置であって、暗号化データ生成手段と、データ関連付け手段と、を備える構成とした。
かかる構成において、委託暗号化装置は、暗号化データ生成手段によって、中間暗号化装置で生成された中間暗号化データに関連付けられているポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A=(Ai,1i,2 … Ai,n)をアクセス行列Aのi行目ベクトルとして、中間暗号化データに含まれるベクトルvとの内積λ′を
Figure 0006700797
により演算し、アクセス行列Aの行数mに対して、乱数r,r,…,rを、Zから選択し、公開鍵の一部であるg、gおよびハッシュ関数Hと、ポリシーに含まれる写像ρと、中間暗号化データに含まれる要素Eとにより、暗号化データの要素{C,D}(1≦i≦m)を、
Figure 0006700797
により演算し、中間暗号化データに含まれている要素C,C′とともに、暗号化データとして生成する。
そして、委託暗号化装置は、データ関連付け手段によって、中間暗号化データに関連付けられているポリシー、ユーザIDおよび証明書と、暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成する。
これによって、委託暗号化装置は、ポリシーと証明書とを付加したユーザIDごとの暗号化データを生成することができる。
また、請求項4に記載の復号装置は、請求項1に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項2に記載の中間暗号化装置および請求項3に記載の委託暗号化装置で暗号化された暗号化データを復号する属性ベース暗号の復号装置であって、ポリシー判定手段と、証明書検証手段と、データ復号手段と、を備える構成とした。
かかる構成において、復号装置は、ポリシー判定手段によって、ポリシーに含まれるm行n列のアクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択し、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwが存在するか否かにより、属性付き秘密鍵の属性が委託暗号化装置で生成されたID・ポリシー・証明書付き暗号化データに含まれるポリシーを満たすか否かを判定する。
また、復号装置は、証明書検証手段によって、属性がポリシーを満たす場合のみ、値wと、秘密鍵の要素K,L,Kと、公開鍵の一部である双線形写像eと、暗号化データの要素C,D(1≦i≦m)とにより、
Figure 0006700797
を演算し、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報posと、公開鍵であるe(g,g)α,ハッシュ関数H′,H″と、ユーザIDを示すIDとにより、証明書検証データπ′を、
Figure 0006700797
により生成し、ID・ポリシー・証明書付き暗号化データに含まれる証明書πと比較することで、当該証明書を検証する。
そして、復号装置は、データ復号手段によって、ポリシー判定手段で属性がポリシーを満たすと判定され、かつ、証明書検証手段で証明書が正しく検証された場合に、暗号化データに含まれる要素Cを前記Bで除算することで、元のデータを復号する。
これによって、復号装置は、中間暗号化装置と委託暗号化装置とで暗号化された暗号化データを復号する際に、データの改ざんを検出することができる。
なお、鍵生成装置、中間暗号化装置、委託暗号化装置および復号装置は、それぞれ、コンピュータを、前記した各手段として機能させるためのプログラムで動作させることができる(請求項5〜8)。
また、ユーザの個人情報を保護して、サービス事業者がユーザにサービスを提供する個人情報保護システムとして、ネットワーク上に、請求項1に記載の鍵生成装置と、請求項2に記載の中間暗号化装置と、請求項3に記載の委託暗号化装置と、請求項4に記載の復号装置と、を備える構成としてもよい(請求項9)。
本発明は、以下に示す優れた効果を奏するものである。
請求項1,5に記載の発明によれば、属性ベース暗号に使用する公開鍵と秘密鍵とを生成することができる。このとき、公開鍵としてハッシュ関数を公開するため、データの暗号側と復号側とで、ハッシュ値を用いた証明書により、データ改ざんを検出することが可能になる。
請求項2,6に記載の発明によれば、属性ベース暗号の一部の暗号処理を行うため、負荷を抑えることができる。また、請求項2,6に記載の発明によれば、公開鍵として公開されているハッシュ関数によって証明書を生成するため、データ改ざんが行われても、復号側で検出することができる。
請求項3,7に記載の発明によれば、データの暗号化処理の一部を委託されて処理することができる。これによって、ユーザ端末としての中間暗号化装置の負荷を抑えることができる。
請求項4,8に記載の発明によれば、中間暗号化装置および委託暗号化装置で暗号化された暗号化データを復号することができる。このとき、暗号化データには、証明書が付与されているため、データの改ざんを検出することができる。
請求項9に記載に発明によれば、属性ベース暗号の暗号化処理の一部をクラウド上の委託暗号化装置に委託することができ、ユーザ側の中間暗号化装置の負荷を軽減させることができる。また、請求項9に記載に発明によれば、証明書により委託暗号化装置における暗号化処理の検証を行うことができるため、クラウド上におけるデータの改ざんを検出することができる。
本発明の実施形態に係る属性ベース暗号システムの構成を示すシステム構成図である。 アクセス行列の生成手法の例を説明するための図であって、(a)は属性の例、(b)はポリシーの例、(c)はポリシーのツリー構造、(d)はポリシーのツリー構造に対応したアクセス行列を示す図である。 本発明の実施形態に係る鍵生成装置の構成を示すブロック構成図である。 本発明の実施形態に係る中間暗号化装置の構成を示すブロック構成図である。 本発明の実施形態に係る委託暗号化装置の構成を示すブロック構成図である。 本発明の実施形態に係るデータ管理装置の構成を示すブロック構成図である。 本発明の実施形態に係る復号装置の構成を示すブロック構成図である。 本発明の実施形態に係る属性ベース暗号システムにおける鍵生成および鍵配信の動作を示すフローチャートである。 図8の動作において、基本情報を生成する動作を詳細に示すフローチャートである。 図8の動作において、公開鍵・マスタ鍵を生成する動作を詳細に示すフローチャートである。 図8の動作において、秘密鍵を生成する動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース暗号システムにおけるユーザIDの配信の動作を示すフローチャートである。 本発明の実施形態に係る属性ベース暗号システムにおけるデータの中間暗号化および暗号化の動作を示すフローチャートである。 図13の動作において、中間暗号化データを生成する動作を詳細に示すフローチャートである。 図13の動作において、証明書を生成する動作を詳細に示すフローチャートである。 図13の動作において、暗号化データを生成する動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース暗号システムにおけるデータの復号の動作を示すフローチャートである。 図17の動作において、証明書を検証するための証明書検証データを生成する動作を詳細に示すフローチャートである。 図17の動作において、暗号化データを復号する動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース暗号システムを個人情報保護システムとして構成した例を示すシステム構成図である。
以下、本発明の実施形態について図面を参照して説明する。
[属性ベース暗号システムの構成]
まず、図1を参照して、本発明の実施形態に係る属性ベース暗号システムSAの構成について説明する。
属性ベース暗号システムSAは、復号条件となる属性の属性値を示すポリシーに基づいて送信者のデータを暗号化し、受信者の属性の属性値が、ポリシーに適合した場合だけ、暗号化データを復号するシステムである。
ここでは、属性ベース暗号システムSAは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4およびデータ管理装置5)と、復号装置6とを、ネットワーク(通信回線)Nを介して接続して構成している。なお、ここでは、説明を簡略化するため、各装置を1台ずつ図示しているが、これらは、ネットワークNに複数接続することとしてもよい。
鍵生成装置1は、属性ベース暗号によりデータを暗号化するための公開鍵を生成するとともに、暗号化データを復号するための復号装置6において固有の秘密鍵を生成するものである。公開鍵は、中間暗号化装置2、クラウドサーバ3および復号装置6に対して公開される情報であって、ここでは、ネットワークNを介して中間暗号化装置2、クラウドサーバ3および復号装置6に送信される。また、秘密鍵は、暗号化データを復号する復号装置6ごとに秘密情報として送信される情報である。
なお、ここでは、鍵生成装置1は、種別情報(属性種別)とその内容を示す値(属性値)とからなる属性を秘密鍵に関連付け、属性付き秘密鍵として、復号装置6に送信する。
また、鍵生成装置1は、データを送信する送信者を識別するユーザIDを生成し、中間暗号化装置2に送信する。このユーザIDは、送信者ごとの暗号化されたデータを識別するための情報である。
中間暗号化装置2は、属性ベース暗号におけるデータの暗号化処理の一部を行い、中間暗号化データを生成するものである。なお、ここでは、中間暗号化装置2は、中間暗号化データを生成し、証明書を付与し、証明書付き中間暗号化データとして、ユーザIDおよびポリシー(復号条件)とともに、クラウドサーバ3に送信する。
クラウドサーバ3は、クラウド上に配置され、委託暗号化装置4とデータ管理装置5とで構成される。
委託暗号化装置4は、属性ベース暗号におけるデータの暗号化処理の一部を行い、暗号化データ(証明書付き暗号化データ)を生成するものである。この委託暗号化装置4は、ユーザIDおよびポリシーに対応付けて、証明書付き暗号化データをデータ管理装置5に送信する。
データ管理装置5は、暗号化データ(証明書付き暗号化データ)を管理するデータベースである。このデータ管理装置5は、復号装置6からのユーザIDに対応する暗号化データの要求に対して、データ検索を行い、対応する暗号化データ(ユーザID、ポリシー、証明書付き暗号化データ)を復号装置6に送信する。なお、ここでは、委託暗号化装置4とデータ管理装置5と個別に構成しているが、一体の構成としても構わない。
復号装置6は、属性ベース暗号により中間暗号化装置2および委託暗号化装置4において生成された証明書付き暗号化データを元のデータに復号するものである。
この復号装置6は、ポリシー(復号条件)が、鍵生成装置1で生成される属性付き秘密鍵で特定される属性の属性値に適合し、かつ、証明書が正しく検証された場合のみ復号を行う。
〔属性およびポリシーについて〕
以下、属性ベース暗号システムSAの各構成について説明する前に、属性ベース暗号システムSAで使用する属性およびポリシーについて、具体例を挙げて説明する。
(属性)
属性は、暗号化データを復号するユーザ(受信者)を区分するための個別情報である。
この属性は、属性種別に対する属性値で構成される。属性種別は、属性の種類を示す識別情報であって、例えば、図2(a)に示すように、会員種別、居住地、性別、年齢等である。また、属性値は、個々の属性種別の内容を示す値であって、例えば、図2(a)に示すように、属性種別を、「会員種別」としたときの、通常会員およびプレミアム会員を示す数値{1,2}等である。
なお、図2(a)では、属性値として、属性種別を「居住地」としたときの東日本および西日本を示す数値{3,4}、属性種別を「性別」としたときの男性および女性を示す数値{5,6}、属性種別を「年齢」としたときの未成年および成人を示す数値{7,8}を例示している。
(ポリシー)
ポリシーは、暗号化データを復号するための条件(復号条件)を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
ここでは、ポリシーは、線形秘密分散法(Linear Secret Sharing Scheme:LSSS)によって生成されるアクセス行列Aと、アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとで構成される。
このアクセス行列は、例えば、「A. Lewkoand B. Waters, “Decentralizing Attribute-Based Encryption,” Proc. of Eurocrypt’ 11, LNCS 6632, pp. 568-588, 2011.」に記載の方法によって生成される行列である。
ここで、図2を参照して、アクセス行列Aと写像ρの内容について具体的に説明する。
まず、アクセス行列Aの生成手法の例について説明する。
ここでは、図2(a)に示した属性を例とし、ポリシーを図2(b)で表した論理形式で示す条件とする。
図2(c)に示すように、図2(b)のポリシーは、「AND」,「OR」をノード、属性値を葉ノードとするツリー構造(アクセス木)で記述することができる。
このとき、ルートノードには、LSSSの秘密情報sを設定する。そして、親ノードが「OR」となる子ノードには、親ノードに設定された情報(秘密情報sまたは乱数)をそのまま引き継いで設定する。また、親ノードが「AND」となる一方の子ノードには、新たな乱数を設定し、他方の子ノードには、一方の子ノードに設定された乱数と親ノードに設定された情報(秘密情報sまたは乱数)との和を設定する。
例えば、図2(c)に示すように、属性値「2:プレミアム」に秘密情報sと乱数yとの和を設定し、属性値「3:東日本」に乱数yを設定すれば、「プレミアム」AND「東日本」を満たすユーザは、(s+y)−(y)によって、秘密情報sを取得することができる。
このように、LSSSは、乱数によって秘密情報sを分散することができる。
そして、図2(d)に示すように、アクセス行列Aは、秘密情報sと乱数(ここではy,y)から、葉ノードの属性値に設定される情報に変換する“0”,“1”を要素とする変換行列として生成することができる。
このとき、アクセス行列Aの行数は、ポリシーのツリー構造における葉ノードの数と一致し、列数は、ポリシーの「AND」のノード数に“1”を加算した数となる。
なお、ここでは、アクセス行列Aの生成手法を説明するため、各ノードに設定する情報を秘密情報sと乱数y,yとして説明したが、本発明においては、それらの情報にさらに乱数を加算する。その内容については、後記する。
次に、写像ρについて説明する。
この写像ρは、アクセス行列Aの行のインデックスをjとしたとき、ρ(j)を属性値に変換する写像である。
例えば、図2で説明したアクセス行列Aの場合、ρ(1)は、アクセス行列Aの1行目のポリシーである「会員種別」の属性値「2:プレミアム」を示す。すなわち、図2の例では、ρ(1)=2、ρ(2)=3、ρ(3)=6、ρ(4)=8となる。
以下、図1に示した属性ベース暗号システムSAの各構成について説明する。
〔鍵生成装置の構成〕
まず、図3を参照(適宜図1参照)して、本発明の実施形態に係る鍵生成装置1の構成について説明する。ここでは、鍵生成装置1は、第一鍵生成手段10と、第二鍵生成手段11と、ユーザID発行手段12と、を備える。
第一鍵生成手段10は、外部から入力されるセキュリティパラメータに基づいて、属性ベース暗号方式における公開鍵およびマスタ鍵を生成するものである。ここでは、第一鍵生成手段10は、パラメータ入力手段100と、基本情報生成手段101と、公開鍵生成手段102と、マスタ鍵生成手段103と、公開鍵記憶手段104と、マスタ鍵記憶手段105と、公開鍵送信手段106と、を備える。
パラメータ入力手段100は、セキュリティパラメータを外部からパラメータとして入力するものである。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値(例えば、鍵長)である。より具体的には、セキュリティパラメータは、後記する基本情報生成手段101で使用される素数位数pの大きさ(ビット長)である。
このパラメータ入力手段100は、入力されたセキュリティパラメータを、基本情報生成手段101に出力する。
基本情報生成手段101は、公開鍵生成手段102およびマスタ鍵生成手段103において、それぞれ、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成するものである。
具体的には、基本情報生成手段101は、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,Gを選択する。そして、基本情報生成手段101は、巡回群GおよびGがG×G→Gとなる双線形写像eを選択する。例えば、基本情報生成手段101は、e:G×G→Gとなる双線形写像eとして、一般的な“Weil Pairing”、“Tate Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
また、基本情報生成手段101は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する。
また、基本情報生成手段101は、乱数α,aを、Zからランダムに選択する。なお、Zは、{0,…,p−1}の整数の集合である。
さらに、基本情報生成手段101は、以下の式(1)〜式(3)のハッシュ関数H,H′,H″を予め準備した複数のハッシュ関数の中から選択する。
Figure 0006700797
ここで、{0,1}は、任意のビット列を示す。
すなわち、式(1)のハッシュ関数(第1ハッシュ関数)Hは、引数が1つ(H(・))で、任意のビット列の値を与えたとき、巡回群Gに属する値を返す関数である。式(2)のハッシュ関数(第2ハッシュ関数)H′は、引数が4つ(H′(・,・,・,・))で、第1,第2引数として巡回群Gに属する値、第3,第4引数として任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。また、式(3)のハッシュ関数(第3ハッシュ関数)H″は、引数が1つ(H″(・))で、任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。
この基本情報生成手段101は、生成した各種の基本情報(p,G,G,e,g,a,α,H,H′,H″)を、公開鍵生成手段102に出力する。また、基本情報生成手段101は、生成した基本情報(g,α)を、マスタ鍵生成手段103に出力する。もちろん、この基本情報は、図示を省略したメモリに記憶しておき、公開鍵生成手段102およびマスタ鍵生成手段103が、それぞれ必要な情報を参照することとしてもよい。
公開鍵生成手段102は、基本情報生成手段101で生成された基本情報に基づいて、属性ベース暗号における公開鍵を生成するものである。
ここでは、公開鍵生成手段102は、基本情報に基づいて、e(g,g)のα乗およびgのa乗を演算し、以下の式(4)に示すように、基本情報生成手段101で生成された素数位数p、巡回群G,G、双線形写像e、生成元gおよびハッシュ関数H,H′,H″とともに、公開鍵PKを生成する。
Figure 0006700797
この公開鍵生成手段102は、生成した公開鍵PKを公開鍵記憶手段104に書き込み記憶する。
マスタ鍵生成手段103は、基本情報生成手段101で生成された基本情報に基づいて、属性ベース暗号におけるマスタ鍵を生成するものである。
ここでは、マスタ鍵生成手段103は、以下の式(5)に示すように、基本情報に基づいて、生成元gのα乗を演算してマスタ鍵MKを生成する。
Figure 0006700797
このマスタ鍵生成手段103は、生成したマスタ鍵MKをマスタ鍵記憶手段105に書き込み記憶する。
公開鍵記憶手段104は、公開鍵生成手段102で生成された公開鍵を記憶するものである。この公開鍵記憶手段104は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この公開鍵記憶手段104に記憶された公開鍵は、公開鍵送信手段106および第二鍵生成手段11によって読み出される。
マスタ鍵記憶手段105は、マスタ鍵生成手段103で生成されたマスタ鍵を記憶するものである。このマスタ鍵記憶手段105は、半導体メモリ等の一般的な記憶媒体で構成することができる。
このマスタ鍵記憶手段105に記憶されたマスタ鍵は、第二鍵生成手段11によって読み出される。
公開鍵送信手段106は、公開鍵生成手段102で生成され、公開鍵記憶手段104に記憶された公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置6に公開するものである。
ここでは、公開鍵送信手段106は、公開鍵記憶手段104から公開鍵を読み出し、ネットワークNを介して、読み出した公開鍵を中間暗号化装置2、委託暗号化装置4および復号装置6に送信する。この公開鍵送信手段106は、例えば、中間暗号化装置2、委託暗号化装置4および復号装置6から、それぞれ公開鍵を要求されたタイミングで、公開鍵を送信する。
第二鍵生成手段11は、外部から入力される個別の復号装置6のユーザの属性に基づいて、個別の復号装置6が使用する、属性ベース暗号方式における秘密鍵を生成するものである。ここでは、第二鍵生成手段11は、属性入力手段110と、属性付き秘密鍵生成手段111と、属性付き秘密鍵送信手段112と、を備える。
属性入力手段110は、個別の復号装置6のユーザに対する属性を入力するものである。ここで、属性は、予め定めた属性種別に対応するユーザの属性値である。ここでは、属性Sは、以下の式(6)に示すように、属性種別ごとの属性値S(1≦j≦m;mは属性種別の数)で表すこととする。
Figure 0006700797
この属性入力手段110は、入力された属性を、属性付き秘密鍵生成手段111に出力する。
属性付き秘密鍵生成手段111は、属性入力手段110で入力された属性と、第一鍵生成手段10で生成された公開鍵およびマスタ鍵とに基づいて、属性ベース暗号における秘密鍵を生成し、入力された属性を関連付けることで属性付き秘密鍵を生成するものである。ここでは、属性付き秘密鍵生成手段111は、秘密鍵生成手段111aと、属性関連付け手段111bと、を備える。
秘密鍵生成手段111aは、属性入力手段110で入力された属性に対応する属性ベース暗号方式における秘密鍵を生成するものである。
具体的には、秘密鍵生成手段111aは、以下の演算を行うことで、秘密鍵を生成する。
まず、秘密鍵生成手段111aは、乱数tをZからランダムに選択する。
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるgと、マスタ鍵記憶手段105に記憶されているマスタ鍵MK(=gα)を用いて、以下の式(7)の演算を行い、秘密鍵の要素Kを求める。
Figure 0006700797
また、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるgを用いて、以下の式(8)の演算を行い、秘密鍵の要素Lを求める。
Figure 0006700797
さらに、秘密鍵生成手段111aは、属性S(前記式(6))のすべての属性値xにおいて、公開鍵記憶手段104に記憶されている公開鍵の一部であるハッシュ関数Hを用いて、以下の式(9)の演算を行い、秘密鍵の要素K、すなわち、属性Sの属性値の個数分のハッシュ値を求める。
Figure 0006700797
秘密鍵生成手段111aは、前記式(7)〜式(9)で演算された各要素で構成される以下の式(10)に示す秘密鍵SKを生成し、属性関連付け手段111bに出力する。
Figure 0006700797
属性関連付け手段111bは、秘密鍵生成手段111aで生成された秘密鍵SKに、属性入力手段110で入力された属性を関連付けて、属性付き秘密鍵を生成するものである。例えば、属性関連付け手段111bは、秘密鍵SKと属性Sとを予め定めたデータフォーマットで連結することで、属性付き秘密鍵を生成する。もちろん、秘密鍵SKと属性Sとを予め定めた固有の識別子で対応付けることとしてもよい。
この属性関連付け手段111bは、生成した属性付き秘密鍵を属性付き秘密鍵送信手段112に出力する。
属性付き秘密鍵送信手段112は、属性付き秘密鍵生成手段111で生成された属性付き秘密鍵を、復号装置6に送信するものである。
ここでは、属性付き秘密鍵送信手段112は、属性付き秘密鍵を、ネットワークNを介して、例えば、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等の暗号化通信プロトコルを用いて復号装置6に送信する。なお、復号装置6の送信先については、外部から設定されるものとする。
ユーザID発行手段12は、データの送信元(送信者)となる中間暗号化装置2のユーザの識別情報(ID)を発行するものである。ここでは、ユーザID発行手段12は、ユーザID生成手段120と、ユーザID送信手段121と、を備える。
ユーザID生成手段120は、中間暗号化装置2のユーザごとに個別の識別情報(ユーザID)を生成するものである。ここでは、ユーザID生成手段120は、中間暗号化装置2のユーザに対するユーザ登録を外部から指示された段階で、ユーザIDを生成する。このユーザID生成手段120は、中間暗号化装置2から、ネットワークNを介して、ユーザ登録の要求を受信することで、ユーザIDを生成することとしてもよい。
なお、ユーザID生成手段120が生成するユーザIDの生成手法は、属性ベース暗号システムSA内で固有のIDを生成する手法であれば、その生成手法を問わない。例えば、ユーザ登録を要求されるたびに、予め定めた初期値を1ずつインクリメントしてユーザIDを生成することとしてもよい。
このユーザID生成手段120で生成されたユーザIDは、中間暗号化装置2が生成する中間暗号化データをクラウドサーバ3(委託暗号化装置4、データ管理装置5)で識別するために使用される。
このユーザID生成手段120は、生成したユーザIDを、ユーザID送信手段121に出力する。なお、このとき、ユーザID生成手段120は、ユーザIDの送信先となる中間暗号化装置2のアドレス等をユーザIDと併せてユーザID送信手段121に通知することとする。
ユーザID送信手段121は、ユーザID生成手段120で生成されたユーザIDを、指定された中間暗号化装置2に送信するものである。これによって、中間暗号化装置2のユーザに対して、ユーザIDが割り当てられることになる。
このように鍵生成装置1を構成することで、鍵生成装置1は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化/復号することが可能なCP−ABEの公開鍵および秘密鍵(属性付き秘密鍵)を生成することができる。
また、鍵生成装置1は、中間暗号化装置2に対してユーザIDを割り当てることができる。なお、ユーザID発行手段12は、鍵生成装置1から分離して、ユーザID発行装置として構成してもよい。
この鍵生成装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(鍵生成プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔中間暗号化装置の構成〕
次に、図4を参照(適宜図1参照)して、本発明の実施形態に係る中間暗号化装置2の構成について説明する。ここでは、中間暗号化装置2は、データ入力手段20と、ポリシー入力手段21と、公開鍵受信手段22と、公開鍵記憶手段23と、ユーザID受信手段24と、ユーザID記憶手段25と、証明書付き中間暗号化データ生成手段26と、データ関連付け手段27と、データ送信手段28と、を備える。
データ入力手段20は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段20は、入力されたデータを証明書付き中間暗号化データ生成手段26に出力する。
ポリシー入力手段21は、復号装置6において、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段21は、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、そのアクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとを、外部から入力する。
このポリシー入力手段21は、入力されたポリシーを証明書付き中間暗号化データ生成手段26と、データ関連付け手段27とに出力する。
公開鍵受信手段22は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段22は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段23に書き込み記憶する。
なお、公開鍵受信手段22は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、証明書付き中間暗号化データ生成手段26が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段23は、公開鍵受信手段22で受信した公開鍵を記憶するものである。この公開鍵記憶手段23は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段23に記憶された公開鍵は、証明書付き中間暗号化データ生成手段26によって読み出される。
ユーザID受信手段24は、鍵生成装置1で生成された中間暗号化装置2のユーザ個別の識別情報(ユーザID)を受信するものである。ここでは、ユーザID受信手段24は、鍵生成装置1においてユーザ登録が実行された段階で、ユーザIDを受信することとする。なお、ユーザID受信手段24は、ネットワークNを介して、ユーザ登録を要求することで、ユーザIDを取得することとしてもよい。
このユーザID受信手段24は、受信したユーザIDを、ユーザID記憶手段25に書き込み記憶する。
ユーザID記憶手段25は、ユーザID受信手段24で受信したユーザIDを記憶するものである。このユーザID記憶手段25は、半導体メモリ等の一般的な記憶媒体で構成することができる。このユーザID記憶手段25に記憶されたユーザIDは、証明書付き中間暗号化データ生成手段26およびデータ関連付け手段27によって読み出される。
証明書付き中間暗号化データ生成手段26は、公開鍵記憶手段23に記憶されている公開鍵と、ポリシー入力手段21で入力されたポリシーとに基づいて、データ入力手段20で入力されたデータに対して中間的な暗号化を行い、証明書を付与した証明書付き中間暗号化データを生成するものである。
ここでは、証明書付き中間暗号化データ生成手段26は、中間暗号化データ生成手段260と、証明書付与手段261と、を備える。
中間暗号化データ生成手段260は、公開鍵とポリシーとにより、属性ベース暗号による暗号化データを生成する際の中間的なデータ(中間暗号化データ)を生成するものである。
具体的には、中間暗号化データ生成手段260は、以下の演算を行うことで、中間暗号化データを生成する。
まず、中間暗号化データ生成手段260は、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y,…,y,β,β,…,βを、Zからランダムに選択する。なお、Zは、公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、中間暗号化データ生成手段260は、選択した乱数から、以下の式(11)により、中間暗号化データの要素となるベクトルvを求める。
Figure 0006700797
また、中間暗号化データ生成手段260は、乱数sと、公開鍵記憶手段23に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、以下の式(12)を演算することで、中間暗号化データの要素C,C′を求める。
Figure 0006700797
ここで、Mは、データ入力手段20で入力された暗号化対象のデータである。
さらに、中間暗号化データ生成手段260は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、以下の式(13)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号Jを選択する。
Figure 0006700797
例えば、アクセス行列Aが、以下の式(14)に示す3行2列の行列であった場合、J={2}、J={1,2}、J={1}となる。
Figure 0006700797
そして、中間暗号化データ生成手段260は、以下の式(15)を演算することで、中間暗号化データの要素E(1≦i≦m)を求める。
Figure 0006700797
そして、中間暗号化データ生成手段260は、前記式(11),式(12),式(15)で演算された各要素で構成される以下の式(16)に示す中間暗号化データCT′を生成し、証明書付与手段261に出力する。
Figure 0006700797
ここで、<>は、データの連結を示し、予め定めたデータフォーマットで連結することを意味する。なお、連結の順番は、予めデータを利用する側と共通であれば、どのような順番でも構わない(以下、同様)。
証明書付与手段261は、中間暗号化データ生成手段260で生成された中間暗号化データに対して、当該中間暗号化データの正当性を検証するための情報である証明書を付与するものである。
具体的には、証明書付与手段261は、以下の式(17)を演算することで、証明書πを生成する。
Figure 0006700797
ここで、e(g,g)α、ハッシュ関数H′,H″は、公開鍵記憶手段23に記憶されている公開鍵の一部である。sは、中間暗号化データ生成手段260で選択された乱数である。IDは、ユーザID記憶手段25に記憶されているユーザIDの値である。
また、posは、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報(文字列)である。例えば、アクセス行列Aが前記式(14)の場合、posは、アクセス行列Aの要素が“1”となるすべての位置を文字列で表した、{(1,2),(2,1),(2,2),(3,1)}となる。
そして、証明書付与手段261は、中間暗号化データ生成手段260で生成された中間暗号化データに、生成した証明書を付与する。
例えば、証明書付与手段261は、中間暗号化データCT′(式(16))と、証明書π(式(17))とを、予め定めたデータフォーマットで連結することで、証明書付き中間暗号化データを生成する。
この証明書付与手段261は、生成した証明書付き中間暗号化データを、データ関連付け手段27に出力する。
データ関連付け手段27は、証明書付き中間暗号化データ生成手段26で生成された証明書付き中間暗号化データに対して、ユーザID記憶手段25に記憶されているユーザIDと、ポリシー入力手段21で入力されたポリシー(A,ρ)とを関連付けるものである。例えば、データ関連付け手段27は、ユーザID、ポリシーおよび証明書付き中間暗号化データを予め定めたデータフォーマットで連結することで各データを関連付ける。もちろん、ユーザID、ポリシーおよび証明書付き中間暗号化データを予め定めた固有の識別子で対応付けることとしてもよい。
このデータ関連付け手段27は、関連付けたデータ(ID・ポリシー・証明書付き中間暗号化データ)を、データ送信手段28に出力する。
データ送信手段28は、データ関連付け手段27で関連付けられたデータ(ID・ポリシー・証明書付き中間暗号化データ)を、ネットワークNを介して、委託暗号化装置4に送信するものである。なお、委託暗号化装置4の送信先については、外部から設定されるものとする。
このように、中間暗号化装置2を構成することで、中間暗号化装置2は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。なお、この中間暗号化装置2における暗号化は、属性ベース暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2をユーザ端末とする際の処理を軽減することができる。また、中間暗号化装置2は、証明書を中間暗号化データに付与することで、復号装置6において、クラウドサーバ3におけるデータ改ざんを検出することが可能になる。
この中間暗号化装置2は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(中間暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔委託暗号化装置の構成〕
次に、図5を参照(適宜図1参照)して、本発明の実施形態に係る委託暗号化装置4の構成について説明する。ここでは、委託暗号化装置4は、公開鍵受信手段40と、公開鍵記憶手段41と、データ受信手段42と、データ分離手段43と、暗号化データ生成手段44と、データ関連付け手段45と、データ送信手段46と、を備える。
公開鍵受信手段40は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段40は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段41に書き込み記憶する。
なお、公開鍵受信手段40は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、暗号化データ生成手段44が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段41は、公開鍵受信手段40で受信した公開鍵を記憶するものである。この公開鍵記憶手段41は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段41に記憶された公開鍵は、暗号化データ生成手段44によって読み出される。
データ受信手段42は、中間暗号化装置2で生成され、ユーザIDおよびポリシーが関連付けられたID・ポリシー・証明書付き中間暗号化データを、ネットワークNを介して受信するものである。
このデータ受信手段42は、受信したID・ポリシー・証明書付き中間暗号化データを、データ分離手段43に出力する。
データ分離手段43は、データ受信手段42で受信したID・ポリシー・証明書付き中間暗号化データを、個々のデータ(ユーザID、ポリシー、証明書、中間暗号化データ)に分離するものである。
このデータ分離手段43は、分離したユーザID、ポリシーおよび証明書をデータ関連付け手段45に出力する。さらに、データ分離手段43は、分離したポリシーおよび中間暗号化データを暗号化データ生成手段44に出力する。
暗号化データ生成手段44は、公開鍵記憶手段41に記憶されている公開鍵と、データ分離手段43で分離されたポリシーとに基づいて、データ分離手段43で分離された中間暗号化データにさらに暗号化処理を継続して実行して、暗号化データを生成するものである。
具体的には、暗号化データ生成手段44は、以下の演算を行うことで、暗号化データを生成する。
まず、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A=(Ai,1i,2 … Ai,n)をアクセス行列Aのi行目ベクトルとして、以下の式(18)に示すように、中間暗号化データCT′(式(16)参照)に含まれるベクトルvとの内積λ′を演算する。
Figure 0006700797
また、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行数分(m個)の乱数r,r,…,rを、Zからランダムに選択する。なお、Zは、公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、暗号化データ生成手段44は、選択した乱数r,r,…,rと、公開鍵記憶手段41に記憶されている公開鍵の一部であるg、gおよびハッシュ関数Hと、ポリシーに含まれる写像ρと、中間暗号化データCT′(式(16)参照)に含まれる要素Eとにより、以下の式(19)を演算することで、暗号化データの要素{C,D}(1≦i≦m)を求める。
Figure 0006700797
そして、暗号化データ生成手段44は、中間暗号化データに含まれている要素C,C′と、前記式(19)で演算された各要素とで構成される以下の式(20)に示す暗号化データCTを生成し、データ関連付け手段45に出力する。
Figure 0006700797
データ関連付け手段45は、データ分離手段43で分離されたユーザID、証明書およびポリシーと、暗号化データ生成手段44で生成された暗号化データとを関連付けるものである。例えば、データ関連付け手段45は、ユーザID、証明書、ポリシーおよび暗号化データを予め定めたデータフォーマットで連結することで各データを関連付ける。
このデータ関連付け手段45は、関連付けたデータ(ID・ポリシー・証明書付き暗号化データ)を、データ送信手段46に出力する。
データ送信手段46は、データ関連付け手段45で関連付けられたデータ(ID・ポリシー・証明書付き暗号化データ)を、データ管理装置5に送信するものである。
このように、委託暗号化装置4を構成することで、委託暗号化装置4は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータを暗号化することができる。なお、この委託暗号化装置4における暗号化は、属性ベース暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2の暗号化処理を補完するものである。これによって、委託暗号化装置4は、データを送信する中間暗号化装置2の処理を軽減させることができる。
この委託暗号化装置4は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(委託暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔データ管理装置の構成〕
次に、図6を参照(適宜図1参照)して、本発明の実施形態に係るデータ管理装置5の構成について説明する。ここでは、データ管理装置5は、データ受信手段50と、暗号化データ記憶手段51と、データ要求受信手段52と、データ検索手段53と、データ送信手段54と、を備える。
データ受信手段50は、委託暗号化装置4で生成され、ユーザIDおよびポリシーが関連付けられたID・ポリシー・証明書付き暗号化データを受信するものである。
このデータ受信手段50は、受信したID・ポリシー・証明書付き暗号化データを、暗号化データ記憶手段51に書き込み記憶する。
暗号化データ記憶手段51は、データ受信手段50で受信したID・ポリシー・証明書付き暗号化データを記憶するものである。この暗号化データ記憶手段51は、半導体メモリ等の一般的な記憶媒体で構成することができる。この暗号化データ記憶手段51に記憶されたID・ポリシー・証明書付き暗号化データは、データ検索手段53によって、検索され、読み出される。
データ要求受信手段52は、復号装置6から、ネットワークNを介して、暗号化データの要求(データ要求)を受信するものである。なお、データ要求には、暗号化データを特定するためのユーザIDが含まれている。
このデータ要求受信手段52は、ユーザIDを含むデータ要求をデータ検索手段53に出力する。
データ検索手段53は、データ要求受信手段52を介して受信した、復号装置6からのデータ要求に基づいて、暗号化データ記憶手段51に記憶されている暗号化データを検索するものである。
すなわち、データ検索手段53は、データ要求に含まれているユーザIDを検索キーとして、暗号化データ記憶手段51に記憶されている複数のID・ポリシー・証明書付き暗号化データの中から、ユーザIDが一致するID・ポリシー・証明書付き暗号化データを検索する。
このデータ検索手段53は、検索結果したID・ポリシー・証明書付き暗号化データをデータ送信手段54に出力する。
データ送信手段54は、データ検索手段53で検索されたID・ポリシー・証明書付き暗号化データを、ネットワークNを介して、当該データを要求した復号装置6に送信するものである。
このようにデータ管理装置5を構成することで、データ管理装置5は、クラウドサーバとして機能し、復号装置6から要求のあった暗号化データを提供することができる。
このデータ管理装置5は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(データ管理プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔復号装置の構成〕
次に、図7を参照(適宜図1参照)して、本発明の実施形態に係る復号装置6の構成について説明する。ここで、復号装置6は、公開鍵受信手段60と、公開鍵記憶手段61と、属性付き秘密鍵受信手段62と、属性付き秘密鍵記憶手段63と、データ要求送信手段64と、データ受信手段65と、検証・復号手段66と、を備える。
公開鍵受信手段60は、鍵生成装置1で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段60は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段61に書き込み記憶する。
なお、公開鍵受信手段60は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、検証・復号手段66が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段61は、公開鍵受信手段60で受信した公開鍵を記憶するものである。この公開鍵記憶手段61は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段61に記憶された公開鍵は、検証・復号手段66によって読み出される。
属性付き秘密鍵受信手段62は、鍵生成装置1で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段62は、ネットワークNを介して、例えば、SSL/TLS等の暗号化通信プロトコルを用いて属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段63に書き込み記憶する。
なお、属性付き秘密鍵受信手段62は、検証・復号手段66が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置6が、図示を省略した登録手段によって、予め鍵生成装置1に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
属性付き秘密鍵記憶手段63は、属性付き秘密鍵受信手段62で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段63は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段63に記憶された属性付き秘密鍵は、検証・復号手段66によって読み出される。
データ要求送信手段64は、データの送信元(中間暗号化装置2)のユーザIDを含んだデータ要求を、ネットワークNを介して、データ管理装置5に送信するものである。なお、ユーザIDは、データを送信する送信者(中間暗号化装置2)と、データを受信する受信者(復号装置6)との間で、予め共有しているものとする。
データ受信手段65は、データ要求送信手段64で要求したデータ管理装置5で管理(記憶)されているID・ポリシー・証明書付き暗号化データを、ネットワークNを介して受信するものである。
このデータ受信手段65は、受信したID・ポリシー・証明書付き暗号化データを、検証・復号手段66に出力する。
検証・復号手段66は、データ受信手段65で受信したID・ポリシー・証明書付き暗号化データを検証し、復号するものである。ここでは、検証・復号手段66は、属性付き秘密鍵分離手段660と、ポリシー分離手段661と、ポリシー判定手段662と、証明書検証手段663と、データ復号手段664と、を備える。
属性付き秘密鍵分離手段660は、属性付き秘密鍵記憶手段63に記憶されている属性付き秘密鍵を、属性と秘密鍵とに分離するものである。
この属性付き秘密鍵分離手段660は、分離した属性(属性種別ごとの属性値:前記式(6)参照)をポリシー判定手段662に出力する。また、属性付き秘密鍵分離手段660は、分離した秘密鍵(前記式(10)参照)を証明書検証手段663に出力する。
ポリシー分離手段661は、データ受信手段65で受信したID・ポリシー・証明書付き暗号化データからポリシーを分離するものである。
このポリシー分離手段661は、分離したポリシーを、ポリシー判定手段662に出力し、残りのID・証明書付き暗号化データを証明書検証手段663に出力する。
ポリシー判定手段662は、属性がポリシーを満たすか否かを判定するものである。
具体的には、ポリシー判定手段662は、以下の式(21)に示すように、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する。
Figure 0006700797
そして、ポリシー判定手段662は、アクセス行列Aの行ベクトルA(i∈I)を用いて、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwを求める。
Figure 0006700797
この式(22)において、「X s.t. Y」は、Yを満たすXを示す。
このとき、ポリシー判定手段662は、式(22)の条件を満たす値wが存在する場合、属性がポリシーを満たすと判定する。
一方、ポリシー判定手段662は、式(22)の条件を満たす値wが存在しない場合、属性がポリシーを満たさないと判定する。
このポリシー判定手段662は、属性がポリシーを満たす場合だけ、式(21)で求めた集合Iおよび式(22)で求めた値wを証明書検証手段663に出力する。なお、ポリシー判定手段662は、属性がポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
証明書検証手段663は、暗号化データに付与されている証明書を検証するものである。ここでは、証明書検証手段663は、ポリシー分離手段661で分離されたID・証明書付き暗号化データと、ポリシー判定手段662から入力される集合Iおよび値wと、属性付き秘密鍵分離手段660で分離された秘密鍵と、公開鍵記憶手段61に記憶されている公開鍵とに基づいて、証明書を検証する。
具体的には、証明書検証手段663は、以下の式(23)に示す演算を行う。
Figure 0006700797
ここで、eは公開鍵の一部である双線形写像である(前記式(4)参照)。また、K、L、Kは秘密鍵の各要素である(前記式(10)参照)。また、C′,C,Dは、暗号化データの要素である(前記式(20)参照)。
さらに、証明書検証手段663は、式(23)の演算結果Bを用いて、以下の式(24)に示す演算を行うことで、証明書検証データπ′を生成する。
Figure 0006700797
ここで、Cは、暗号化データの要素である(前記式(20)参照)。また、H′,H″は、公開鍵の一部であるハッシュ関数である。また、IDは、ポリシー分離手段661で分離されたID・証明書付き暗号化データに含まれ、証明書付き暗号化データに関連付けられているユーザIDである。また、posは、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報(文字列)である。
また、式(24)におけるBは、データの改ざん等がなされなければ、前記式(17)のe(g,g)αsと一致するものである。
ここで、前記式(23)によって、B、すなわちe(g,g)αsが算出されることについて証明しておく。
以下、式(25)により、式(23)の右辺を変形することで、e(g,g)αsとなる。
Figure 0006700797
なお、この式(25)において、式(25-2)から式(25-3)の変形は、双線形写像の性質であるe(g,g)=e(g,g)e(g,g)を利用することで変形することができる。また、式(25-5)から式(25-6)の変形は、双線形写像の性質であるe(g,g)=e(g,g)abを利用することで変形することができる。なお、式(25-9)から式(25-10)の変形は、Σの演算結果が、前記式(22)によって、(1,0,…,0)になるからである。
図7に戻って、復号装置6の構成について説明を続ける。
証明書検証手段663は、式(24)で生成した証明書検証データπ′と、証明書付き暗号化データに付与されている証明書πとを比較し、一致している場合のみ、前記式(23)の演算結果B、すなわち、e(g,g)αsの値と、暗号化データに含まれる要素C(前記式(20)参照)とを、データ復号手段664に出力する。
なお、証明書検証手段663は、証明書検証データπ′と証明書πとが一致しない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
データ復号手段664は、暗号化データを復号するものである。ここでは、データ復号手段664は、証明書検証手段663から、証明書が正しく検証された場合にのみ出力される、前記式(23)の演算結果B(すなわち、e(g,g)αs)と、暗号化データに含まれる要素Cとから、以下の式(26)により、元のデータMを復号する。
Figure 0006700797
このように復号装置6を構成することで、復号装置6は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを、復号装置6のユーザの属性に応じて復号することができる。
この復号装置6は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(復号プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
[属性ベース暗号システムの動作]
次に、本発明の実施形態に係る属性ベース暗号システムSAの動作について説明する。ここでは、鍵(公開鍵、秘密鍵)の生成・配信動作と、ユーザIDの配信動作と、データの中間暗号化および暗号化動作と、データの復号動作とに分けて説明する。
〔鍵(公開鍵、秘密鍵)生成・配信動作〕
最初に、図8を参照(構成については、適宜図3,図4,図5,図7参照)して、属性ベース暗号システムSAの鍵(公開鍵、秘密鍵)の生成・配信動作について説明する。
まず、鍵生成装置1は、パラメータ入力手段100によって、セキュリティパラメータを外部から入力する(ステップS10)。
そして、鍵生成装置1は、基本情報生成手段101によって、ステップS10で入力されたパラメータに基づいて、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する(ステップS11)。なお、このステップS11における基本情報生成動作については、図9を参照して後で詳細に説明する。
そして、鍵生成装置1は、公開鍵生成手段102およびマスタ鍵生成手段103によって、ステップS11で生成された基本情報に基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する(ステップS12)。なお、このステップS12における公開鍵・マスタ鍵生成動作については、図10を参照して後で詳細に説明する。
そして、鍵生成装置1は、公開鍵生成手段102によって、生成した公開鍵を公開鍵記憶手段104に書き込み記憶し、マスタ鍵生成手段103によって、生成したマスタ鍵をマスタ鍵記憶手段105に書き込み記憶する(ステップS13)。
その後、鍵生成装置1は、公開鍵送信手段106によって、ステップS13で公開鍵記憶手段104に記憶されている公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置6に送信(公開)する(ステップS14)。
一方、中間暗号化装置2は、公開鍵受信手段22によって、ステップS14で送信された公開鍵を受信し(ステップS15)、公開鍵記憶手段23に書き込み記憶する(ステップS16)。また、委託暗号化装置4は、公開鍵受信手段40によって、ステップS14で送信された公開鍵を受信し(ステップS17)、公開鍵記憶手段41に書き込み記憶する(ステップS18)。また、復号装置6は、公開鍵受信手段60によって、ステップS14で送信された公開鍵を受信し(ステップS19)、公開鍵記憶手段61に書き込み記憶する(ステップS20)。
さらに、鍵生成装置1は、以下の動作によって、個別の復号装置6を対象として属性付き秘密鍵を生成する。
すなわち、鍵生成装置1は、属性入力手段110によって、個別の復号装置6のユーザに対する属性を入力する(ステップS21)。
そして、鍵生成装置1は、属性付き秘密鍵生成手段111の秘密鍵生成手段111aによって、ステップS13で公開鍵記憶手段104に記憶された公開鍵と、マスタ鍵記憶手段105に記憶されたマスタ鍵と、ステップS21で入力された属性とに基づいて、秘密鍵を生成する(ステップS22)。なお、このステップS22における秘密鍵生成動作については、図11を参照して後で詳細に説明する。
さらに、鍵生成装置1は、属性付き秘密鍵生成手段111の属性関連付け手段111bによって、ステップS22で生成された秘密鍵に、ステップS21で入力された属性を関連付けて、属性付き秘密鍵を生成する(ステップS23)。
その後、鍵生成装置1は、属性付き秘密鍵送信手段112によって、ステップS23で生成された属性付き秘密鍵を、復号装置6に送信する(ステップS24)。
一方、復号装置6は、属性付き秘密鍵受信手段62によって、ステップS24で送信された属性付き秘密鍵を受信し(ステップS25)、属性付き秘密鍵記憶手段63に書き込み記憶する(ステップS26)。
以上の動作により、属性ベース暗号システムSAは、鍵生成装置1によって、属性ベース暗号における鍵(公開鍵、秘密鍵)を生成し、鍵を必要とする中間暗号化装置2、委託暗号化装置4および復号装置6に送信することができる。
(基本情報生成動作)
次に、図9を参照(構成については、適宜図3参照)して、図8のステップS11の動作(基本情報生成動作)について詳細に説明する。
まず、鍵生成装置1は、基本情報生成手段101によって、セキュリティパラメータで特定される大きさ(ビット長)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,Gを選択する(ステップS110)。
また、基本情報生成手段101は、巡回群G,GがG×G→Gとなる双線形写像eを選択する(ステップS111)。そして、基本情報生成手段101は、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(ステップS112)。
また、基本情報生成手段101は、乱数α,aを、Zからランダムに選択する(ステップS113)。
さらに、基本情報生成手段101は、予め準備した複数のハッシュ関数の中から、ハッシュ関数H,H′,H″を選択する(ステップS114)。
以上の動作により、鍵生成装置1は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成することができる。
(公開鍵・マスタ鍵生成動作)
次に、図10を参照(構成については、適宜図3参照)して、図8のステップS12の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、公開鍵生成手段102によって、基本情報生成手段101で生成された基本情報であるe(g,g)のα乗およびgのa乗を演算する(ステップS120)。
そして、鍵生成装置1は、公開鍵生成手段102によって、基本情報生成手段101で生成(選択)された基本情報である素数位数p、巡回群G,G、双線形写像e、生成元gおよびハッシュ関数H,H′,H″と、ステップS120の演算結果とを含んだ公開鍵PK(前記式(4)参照)を生成する(ステップS121)。
さらに、鍵生成装置1は、マスタ鍵生成手段103によって、基本情報生成手段101で生成された基本情報である生成元gのα乗を演算してマスタ鍵MK(前記式(5)参照)を生成する(ステップS122)。
以上の動作により、鍵生成装置1は、属性ベース暗号における公開鍵およびマスタ鍵を生成することができる。
(秘密鍵生成動作)
次に、図11を参照(構成については、適宜図3参照)して、図8のステップS22の動作(秘密鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、秘密鍵生成手段111aによって、乱数tをZからランダムに選択する(ステップS220)。
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部であるgと、マスタ鍵記憶手段105に記憶されているマスタ鍵MK(=gα)を用いて、gαatを演算(前記式(7)参照)し、秘密鍵の要素Kを求める(ステップS221)。
そして、秘密鍵生成手段111aは、公開鍵記憶手段104に記憶されている公開鍵の一部である生成元gのt乗を演算(前記式(8)参照)し、秘密鍵の要素Lを求める(ステップS222)。
また、秘密鍵生成手段111aは、属性Sのすべての属性値xにおいて、公開鍵記憶手段104に記憶されている公開鍵の一部であるハッシュ関数Hを用いて、H(x)のt乗を演算し、秘密鍵の要素K(前記式(9)参照)を求める(ステップS223)。
そして、秘密鍵生成手段111aは、ステップS221〜S223で演算された各要素で構成される秘密鍵SK(前記式(10)参照)を生成する(ステップS224)。
以上の動作により、鍵生成装置1は、属性ベース暗号における秘密鍵を生成することができる。
〔ユーザ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を発行することができる。
〔データ暗号化(中間暗号化を含む)動作〕
次に、図13を参照(構成については、適宜図4,図5,図6参照)して、属性ベース暗号システムSAのデータの中間暗号化および暗号化動作について説明する。
まず、中間暗号化装置2は、ポリシー入力手段21によって、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力する(ステップS40)。なお、このポリシーは、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとで構成される。
また、中間暗号化装置2は、データ入力手段20によって、暗号化の対象となるデータを外部から入力する(ステップS41)。
そして、中間暗号化装置2は、中間暗号化データ生成手段260によって、公開鍵に基づいて、ステップS40で入力されたポリシーに対応する中間暗号化データを生成する(ステップS42)。さらに、中間暗号化装置2は、証明書付与手段261によって、中間暗号化データに付与する証明書を生成する(ステップS43)。なお、このステップS42,S43における中間暗号化データ生成動作および証明書生成動作については、図14,図15を参照して後で詳細に説明する。
そして、中間暗号化装置2は、証明書付与手段261によって、ステップS42で生成された中間暗号化データに、ステップS43で生成された証明書を付与して、証明書付き中間暗号化データを生成する(ステップS44)。
さらに、中間暗号化装置2は、データ関連付け手段27によって、ステップS44で生成された証明書付き中間暗号化データに、ユーザID記憶手段25に記憶されているユーザIDと、ステップS40で入力されたポリシー(A,ρ)とを関連付けて、ID・ポリシー・証明書付き中間暗号化データを生成する(ステップS45)。
そして、中間暗号化装置2は、データ送信手段28によって、ステップS45で生成されたID・ポリシー・証明書付き中間暗号化データを、委託暗号化装置4に送信する(ステップS46)。
そして、委託暗号化装置4は、データ受信手段42によって、ステップS46で送信されたID・ポリシー・証明書付き中間暗号化データを受信する(ステップS47)。
その後、委託暗号化装置4は、データ分離手段43によって、ステップS47で受信したID・ポリシー・証明書付き中間暗号化データを、個々のデータ(ユーザID、ポリシー、証明書、中間暗号化データ)に分離する(ステップS48)。
そして、委託暗号化装置4は、暗号化データ生成手段44によって、公開鍵記憶手段41に記憶されている公開鍵と、ステップS48で分離されたポリシーとに基づいて、ステップS48で分離された中間暗号化データにさらに暗号化処理を継続して実行して、暗号化データを生成する(ステップS49)。なお、このステップS49における暗号化データ生成動作については、図16を参照して後で詳細に説明する。
さらに、委託暗号化装置4は、データ関連付け手段45によって、ステップS48で分離されたユーザID、証明書およびポリシーと、ステップS49で生成された暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成する(ステップS50)。
そして、委託暗号化装置4は、データ送信手段46によって、ステップS50で生成されたID・ポリシー・証明書付き暗号化データを、データ管理装置5に送信する(ステップS51)。
一方、データ管理装置5は、データ受信手段50によって、委託暗号化装置4から送信されたID・ポリシー・証明書付き暗号化データを受信し(ステップS52)、暗号化データ記憶手段51に書き込み記憶する(ステップS53)。
以上の動作により、属性ベース暗号システムSAは、中間暗号化装置2と委託暗号化装置4とで暗号化処理を分散して行い、暗号化データをデータ管理装置5に記憶させることができる。
(中間暗号化データ生成動作)
次に、図14を参照(構成については、適宜図4参照)して、図13のステップS42の動作(中間暗号化データ生成動作)について詳細に説明する。
まず、中間暗号化装置2は、中間暗号化データ生成手段260によって、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y,…,y,β,β,…,βを、Zからランダムに選択する(ステップS420)。
さらに、中間暗号化データ生成手段260は、ステップS420で生成した乱数から、前記式(11)の演算を行い、中間暗号化データの要素となるベクトルvを求める(ステップS421)。
そして、中間暗号化データ生成手段260は、暗号化対象のデータMと、ステップS420で選択した乱数sと、公開鍵記憶手段23に記憶されている公開鍵の一部であるe(g,g)αおよびgとにより、前記式(12)を演算することで、中間暗号化データの要素C,C′を求める(ステップS422)。
さらに、中間暗号化データ生成手段260は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、前記式(13)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号Jを選択する(ステップS423)。
そして、中間暗号化データ生成手段260は、ステップS420で選択した乱数β(1≦j≦n)のうちで、ステップS423で選択した列番号Jに対応する乱数と、公開鍵記憶手段23に記憶されている公開鍵の一部であるgとに基づいて、前記式(15)を演算することで、中間暗号化データの要素E(1≦i≦m)を求める(ステップS424)。
そして、中間暗号化データ生成手段260は、ステップS421,S422,D424で演算された各要素で構成される中間暗号化データCT′(前記式(16)参照)を生成する(ステップS425)。
以上の動作により、中間暗号化データ生成手段260は、暗号化処理の一部の処理(中間暗号化処理)を行うことができる。
(証明書生成動作)
次に、図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′によるハッシュ値として証明書πを生成する。
(暗号化データ生成動作)
次に、図16を参照(構成については、適宜図5参照)して、図13のステップS49の動作(暗号化データ生成動作)について詳細に説明する。
まず、委託暗号化装置4は、暗号化データ生成手段44によって、前記式(18)に示すように、ポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A=(Ai,1i,2 … Ai,n)をアクセス行列Aのi行目ベクトルとして、図14のステップS425で生成された中間暗号化データCT′に含まれるベクトルvとの内積λ′を演算する(ステップS490)。
さらに、暗号化データ生成手段44は、ポリシーに含まれるm行n列のアクセス行列Aの行数分(m個)の乱数r,r,…,rを、Zからランダムに選択する(ステップS491)。
そして、暗号化データ生成手段44は、公開鍵の一部であるg,g,H′と、ステップS490の演算結果(λ′)と、ステップS491で選択された乱数r(1≦i≦m)とにより、前記式(19)を演算することで、暗号化データの要素{C,D}(1≦i≦m)を求める(ステップS492)。
そして、暗号化データ生成手段44は、中間暗号化データCT′に含まれる要素C,C′と、ステップS492で演算された各要素とで構成される暗号化データCT(前記式(20)参照)を生成する(ステップS493)。
以上の動作により、暗号化データ生成手段44は、中間暗号化データCT′に対して、残りの暗号化処理を行うことができる。
〔データ復号動作〕
次に、図17を参照(構成については、適宜図6,図7参照)して、属性ベース暗号システムSAの暗号化データの復号動作について説明する。
まず、復号装置6は、データ要求送信手段64によって、ユーザIDを含んだデータ要求を、データ管理装置5に送信する(ステップS60)。
そして、データ管理装置5は、データ要求受信手段52によって、復号装置6から、暗号化データの要求(データ要求)を受信する(ステップS61)。
その後、データ管理装置5は、データ検索手段53によって、データ要求に含まれているユーザIDを検索キーとして、暗号化データ記憶手段51に記憶されている複数のID・ポリシー・証明書付き暗号化データの中から、ユーザIDが一致するID・ポリシー・証明書付き暗号化データを検索する(ステップS62)。
そして、データ管理装置5は、データ送信手段54によって、ステップS62で検索されたID・ポリシー・証明書付き暗号化データを、当該データを要求した復号装置6に送信する(ステップS63)。
一方、復号装置6は、データ受信手段65によって、データ管理装置5から送信されたID・ポリシー・証明書付き暗号化データを受信する(ステップS64)。
そして、復号装置6は、ポリシー分離手段661によって、ステップS64で受信したID・ポリシー・証明書付き暗号化データからポリシーを分離する(ステップS65)。
また、復号装置6は、属性付き秘密鍵分離手段660によって、属性付き秘密鍵記憶手段63に記憶されている属性付き秘密鍵を、属性と秘密鍵とに分離する(ステップS66)。
そして、復号装置6は、ポリシー判定手段662によって、復号装置6に登録されているステップS66で分離された属性が、暗号化データに関連付けられているステップS65で分離されたポリシーを満たすか否かを判定する(ステップS67)。
すなわち、ポリシー判定手段662は、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する(前記式(21)参照)。
そして、ポリシー判定手段662は、アクセス行列Aの行ベクトルA(i∈I)を用いて、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwを求めることができるか否かにより、ポリシーを満たすか否かを判定する(前記式(22)参照)。
ここで、属性がポリシーを満たさない場合(ステップS67でNo)、復号装置6は、復号動作を終了する。なお、この場合、復号装置6は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
一方、属性がポリシーを満たす場合(ステップS67でYes)、復号装置6は、証明書検証手段663によって、暗号化データに付与されている証明書を検証するための証明書検証データを生成する(ステップS68)。なお、このステップS68における証明書検証データ生成動作については、図18を参照して後で詳細に説明する。
さらに、復号装置6は、証明書検証手段663によって、証明書による検証が成功したか否かを判定する(ステップS69)。このステップS69では、ステップS68で生成された証明書検証データと暗号化データに付与されている証明書とが一致する場合、検証が成功したと判定し、一致しない場合、検証に失敗したと判定する。
ここで、検証に失敗した場合(ステップS69でNo)、復号装置6は、復号動作を終了する。なお、この場合、復号装置6は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
一方、検証に成功した場合(ステップS69でYes)、復号装置6は、データ復号手段664によって、暗号化データを復号し(ステップS70)、元データとして外部に出力する(ステップS71)。なお、このステップS70における暗号化データ復号動作については、図19を参照して後で詳細に説明する。
以上の動作により、属性ベース暗号システムSAは、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化された暗号化データを、属性に応じて復号することができる。
(証明書検証データ生成動作)
次に、図18を参照(構成については、適宜図7参照)して、図17のステップS68の動作(証明書検証データ生成動作)について詳細に説明する。
まず、復号装置6は、証明書検証手段663によって、公開鍵の一部である双線形写像e(前記式(4)参照)、秘密鍵の各要素であるK、L、K(前記式(10)参照)、暗号化データの要素C′,C,D(前記式(20)参照)と、ステップS67のポリシー判定時に求めたwを用いて、前記式(23)の演算を行う(ステップS680)。
そして、証明書検証手段663は、暗号化データの要素Cと、ステップS680の演算結果Bと、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報をハッシュ関数H″で演算したハッシュ値と、ユーザIDとを4つの引数とし、ハッシュ関数H′によるハッシュ値として証明書検証データπ′を生成する(ステップS681)。
(暗号化データ復号動作)
次に、図19を参照(構成については、適宜図7参照)して、図17のステップS70の動作(暗号化データ復号動作)について詳細に説明する。
復号装置6は、データ復号手段664によって、前記式(26)により、暗号化データを復号する(ステップS430)。
すなわち、データ復号手段664は、暗号化データの要素Cを、図18のステップS682での演算結果Bで除することで、元データMを復号する。
以上の動作により、データ復号手段664は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを復号することができる。
[属性ベース暗号システムの応用例]
次に、図20を参照して、本発明の実施形態に係る属性ベース暗号システムの応用例について説明する。
図20は、属性ベース暗号システムSA(図1参照)を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
図20に示す個人情報保護システムSBは、ユーザがサービス事業者の評価(信頼度等)をポリシーとして設定することで、そのポリシーを満たす属性のサービス事業者のみが、ユーザに対してサービスを提供することを可能にするシステムである。
ここでは、サービスとして、レコメンド情報(例えば、ユーザの放送番組の視聴履歴を分析した結果から得られるそのユーザにお勧めの番組案内等)を提供するサービスを一例に説明する。
個人情報保護システムSBは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4およびデータ管理装置5)と、復号装置6とを、ネットワーク(通信回線)Nを介して接続して構成している。
鍵生成装置1、中間暗号化装置2、クラウドサーバ3(委託暗号化装置4,データ管理装置5)および復号装置6は、それぞれ、図3〜図7で説明した各装置と同じものである。
以下、個人情報保護システムSBの動作について説明する。
鍵生成装置1は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置6に送信する。
例えば、属性の属性種別を、「プライバシーマーク」と「ユーザ評価」とし、「プライバシーマーク」の属性値を「6:あり」、「7:なし」、「ユーザ評価」の属性値を「1」〜「5」の5段階とする。そして、鍵生成装置1は、あるサービス事業者A,B,Cに対する属性S,S,Sを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置6に送信する。
={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}
={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}
={(‘プライバシーマーク’,6),(‘ユーザ評価’,3)}
なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「6:あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
中間暗号化装置2は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
また、中間暗号化装置2は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、レコメンド情報の提供を許可するサービス事業者の評価を“5”とする場合、中間暗号化装置2は、ポリシーを(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のように設定する。
そして、中間暗号化装置2は、個人情報を暗号化した証明書付き中間暗号化個人情報にユーザIDとポリシーとを関連付けて、委託暗号化装置4に送信する。
委託暗号化装置4は、さらに暗号化を行い、ユーザID、ポリシー、証明書付き暗号化個人情報を、データ管理装置5に記憶する。
復号装置6は、例えば、図示を省略したサービス提供装置等に備えられ、データ管理装置5からユーザIDに対応するポリシー、証明書付き暗号化個人情報を取得する。このとき、復号装置6は、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
例えば、前記のようにポリシーが(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のとき、サービス事業者Aの復号装置6は、自身に設定された属性が、前記S={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}であるので、個人情報を復号することができるが、サービス事業者Bの復号装置6は、自身に設定された属性が、前記S={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}であるので、個人情報を復号することができない。
そして、サービス提供装置(不図示)は、復号装置6で復号された個人情報(視聴履歴等)を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
以上説明した個人情報保護システムSBによれば、中間暗号化装置2においてデータ(ここでは個人情報)を暗号化する際に、一部の暗号化処理をクラウドサーバ3の委託暗号化装置4が処理し、データ管理装置5に保存することにより、ユーザの中間暗号化装置2の負荷を抑え、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身に対する評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。
SA 属性ベース暗号システム
SB 個人情報保護システム
1 鍵生成装置
100 パラメータ入力手段
101 基本情報生成装置
102 公開鍵生成手段
103 マスタ鍵生成手段
104 公開鍵記憶手段
105 マスタ鍵記憶手段
106 公開鍵送信手段
110 属性入力手段
111 属性付き秘密鍵生成手段
111a 秘密鍵生成手段
111b 属性関連付け手段
112 属性付き秘密鍵送信手段
120 ユーザID生成手段
121 ユーザID送信手段
2 中間暗号化装置
20 データ入力手段
21 ポリシー入力手段
22 公開鍵受信手段
23 公開鍵記憶手段
24 ユーザID受信手段
25 ユーザID記憶手段
26 証明書付き中間暗号化データ生成手段
260 中間暗号化データ生成手段
261 証明書付与手段
27 データ関連付け手段
28 データ送信手段
3 クラウドサーバ
4 委託暗号化装置
40 公開鍵受信手段
41 公開鍵記憶手段
42 データ受信手段
43 データ分離手段
44 暗号化データ生成手段
45 データ関連付け手段
46 データ送信手段
5 データ管理装置
50 データ受信手段
51 暗号化データ記憶手段
52 データ要求受信手段
53 データ検索手段
54 データ送信手段
6 復号手段
60 公開鍵受信手段
61 公開鍵記憶手段
62 属性付き秘密鍵受信手段
63 属性付き秘密鍵記憶手段
64 データ要求送信手段
65 データ受信手段
66 検証・復号手段
660 属性付き秘密鍵分離手段
661 ポリシー分離手段
662 ポリシー判定手段
663 証明書検証手段
664 データ復号手段

Claims (9)

  1. 属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置と、
    前記鍵生成装置で生成された公開鍵を用いて、属性ベース暗号によるデータの暗号化処理の一部を行う中間暗号化装置であって、
    暗号化の対象となる前記データを入力するデータ入力手段と、
    復号条件となるポリシーとして、線形秘密分散法により復号条件を表したアクセス行列Aと、当該アクセス行列Aの各行jに対応する属性の属性種別を属性値に変換する写像ρとを入力するポリシー入力手段と、
    前記データをMとし、m行n列の前記アクセス行列Aの列数nに対して、乱数s,y ,…,y ,β ,β ,…,β を、Z から選択し、ベクトルvを、
    Figure 0006700797
    により演算し、前記公開鍵の一部であるe(g,g)のα乗およびgにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの行iごとに、要素の値が“1”である列番号J から、
    Figure 0006700797
    を演算し、その演算結果C,C′,E ,vを要素とする中間暗号化データを生成する中間暗号化データ生成手段と、
    前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報pos と、前記公開鍵であるe(g,g) α ,ハッシュ関数H′,H″と、前記乱数sと、当該中間暗号化装置のユーザを識別するユーザIDであるIDとにより、証明書πを、
    Figure 0006700797
    により生成し、前記中間暗号化データに付与することで証明書付き中間暗号化データを生成する証明書付与手段と、
    前記ポリシーと、前記証明書付き中間暗号化データと、前記ユーザIDとを関連付けて、ID・ポリシー・証明書付き中間暗号化データを生成するデータ関連付け手段と、を備えた中間暗号化装置と、
    前記鍵生成装置で生成された公開鍵を用いて、前記中間暗号化装置によって属性ベース暗号の一部が処理された残りの暗号化処理を行う委託暗号化装置であって、
    前記中間暗号化装置で生成された中間暗号化データに関連付けられているポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A =(A i,1 i,2 … A i,n )をアクセス行列Aのi行目ベクトルとして、前記中間暗号化データに含まれるベクトルvとの内積λ ′を
    Figure 0006700797
    により演算し、前記アクセス行列Aの行数mに対して、乱数r ,r ,…,r を、Z から選択し、前記公開鍵の一部であるg 、gおよびハッシュ関数Hと、前記ポリシーに含まれる写像ρと、前記中間暗号化データに含まれる要素E とにより、暗号化データの要素{C ,D }(1≦i≦m)を、
    Figure 0006700797
    により演算し、前記中間暗号化データに含まれている要素C,C′とともに、暗号化データとして生成する暗号化データ生成手段と、
    前記中間暗号化データに関連付けられているポリシー、ユーザIDおよび証明書と、前記暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成するデータ関連付け手段と、を備えた委託暗号化装置と、
    前記鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、前記中間暗号化装置および前記委託暗号化装置で暗号化された暗号化データを復号する属性ベース暗号の復号装置であって、
    前記ポリシーに含まれるm行n列のアクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択し、Z に属する値w として、アクセス行列Aのi行目のベクトルA =(A i,1 i,2 … A i,n )との積の集合Iの要素数分の総和が(1,0,…,0)となるw が存在するか否かにより、前記属性付き秘密鍵の属性が、前記委託暗号化装置で生成されたID・ポリシー・証明書付き暗号化データに含まれるポリシーを満たすか否かを判定するポリシー判定手段と、
    前記属性が前記ポリシーを満たす場合のみ、前記値w と、前記秘密鍵の要素K,L,K と、前記公開鍵の一部である双線形写像eと、前記暗号化データの要素C ,D (1≦i≦m)とにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報と、前記公開鍵であるe(g,g) α ,ハッシュ関数H′,H″と、前記ユーザIDを示すIDとにより、証明書検証データπ′を、
    Figure 0006700797
    により生成し、前記ID・ポリシー・証明書付き暗号化データに含まれる証明書πと比較することで、当該証明書を検証する証明書検証手段と、
    前記ポリシー判定手段で前記属性が前記ポリシーを満たすと判定され、かつ、前記証明書検証手段で前記証明書が正しく検証された場合に、前記暗号化データに含まれる要素Cを前記Bで除算することで、元のデータを復号するデータ復号手段と、を備えた復号装置と、を有するシステムにおける前記鍵生成装置であって、
    素数位数pと、当該素数位数pの巡回群G,Gと、当該巡回群G,GがG×G→Gとなる双線形写像eと、生成元g(g∈G)と、e(g,g)を乱数α(α∈Z)乗した演算結果と、前記生成元gを乱数a(a∈Z)乗した演算結果と、任意のビット列の値を与えたとき前記巡回群Gに属する値を返すハッシュ関数Hと、第1,第2引数として前記巡回群Gに属する値、第3,第4引数として任意のビット列の値を与えたとき、任意のビット列の値を返すハッシュ関数H′と、任意のビット列の値を与えたとき、任意のビット列の値を返すハッシュ関数H″とを、前記公開鍵として生成する公開鍵生成手段と、
    前記生成元gを前記乱数α乗した演算結果をマスタ鍵として生成するマスタ鍵生成手段と、
    前記マスタ鍵と、Zから選択した乱数tと、前記公開鍵の一部である生成元gと生成元gのa乗とにより、
    Figure 0006700797
    を演算するとともに、属性Sのすべての属性値xにおいて、前記ハッシュ関数Hと前記乱数tとにより、
    Figure 0006700797
    を演算し、その演算結果K,L,K前記秘密鍵として生成する秘密鍵生成手段と、
    この秘密鍵生成手段で生成された秘密鍵に、前記属性を関連付けて、前記属性付き秘密鍵を生成する属性関連付け手段と、
    を備えることを特徴とする鍵生成装置。
  2. 請求項1に記載の鍵生成装置と、
    前記鍵生成装置で生成された公開鍵を用いて、属性ベース暗号によるデータの暗号化処理の一部を行う中間暗号化装置と、
    前記鍵生成装置で生成された公開鍵を用いて、前記中間暗号化装置によって属性ベース暗号の一部が処理された残りの暗号化処理を行う委託暗号化装置であって、
    前記中間暗号化装置で生成された中間暗号化データに関連付けられているポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A =(A i,1 i,2 … A i,n )をアクセス行列Aのi行目ベクトルとして、前記中間暗号化データに含まれるベクトルvとの内積λ ′を
    Figure 0006700797
    により演算し、前記アクセス行列Aの行数mに対して、乱数r ,r ,…,r を、Z から選択し、前記公開鍵の一部であるg 、gおよびハッシュ関数Hと、前記ポリシーに含まれる写像ρと、前記中間暗号化データに含まれる要素E とにより、暗号化データの要素{C ,D }(1≦i≦m)を、
    Figure 0006700797
    により演算し、前記中間暗号化データに含まれている要素C,C′とともに、暗号化データとして生成する暗号化データ生成手段と、
    前記中間暗号化データに関連付けられているポリシー、ユーザIDおよび証明書と、前記暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成するデータ関連付け手段と、を備えた委託暗号化装置と、
    前記鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、前記中間暗号化装置および前記委託暗号化装置で暗号化された暗号化データを復号する属性ベース暗号の復号装置であって、
    前記ポリシーに含まれるm行n列のアクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択し、Z に属する値w として、アクセス行列Aのi行目のベクトルA =(A i,1 i,2 … A i,n )との積の集合Iの要素数分の総和が(1,0,…,0)となるw が存在するか否かにより、前記属性付き秘密鍵の属性が、前記委託暗号化装置で生成されたID・ポリシー・証明書付き暗号化データに含まれるポリシーを満たすか否かを判定するポリシー判定手段と、
    前記属性が前記ポリシーを満たす場合のみ、前記値w と、前記秘密鍵の要素K,L,K と、前記公開鍵の一部である双線形写像eと、前記暗号化データの要素C ,D (1≦i≦m)とにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報と、前記公開鍵であるe(g,g) α ,ハッシュ関数H′,H″と、前記ユーザIDを示すIDとにより、証明書検証データπ′を、
    Figure 0006700797
    により生成し、前記ID・ポリシー・証明書付き暗号化データに含まれる証明書πと比較することで、当該証明書を検証する証明書検証手段と、
    前記ポリシー判定手段で前記属性が前記ポリシーを満たすと判定され、かつ、前記証明書検証手段で前記証明書が正しく検証された場合に、前記暗号化データに含まれる要素Cを前記Bで除算することで、元のデータを復号するデータ復号手段と、を備えた復号装置と、を有するシステムにおける前記中間暗号化装置であって、
    暗号化の対象となる前記データを入力するデータ入力手段と、
    復号条件となるポリシーとして、線形秘密分散法により復号条件を表したアクセス行列Aと、当該アクセス行列Aの各行jに対応する属性の属性種別を属性値に変換する写像ρとを入力するポリシー入力手段と、
    前記データをMとし、m行n列の前記アクセス行列Aの列数nに対して、乱数s,y,…,y,β,β,…,βを、Zから選択し、ベクトルvを、
    Figure 0006700797
    により演算し、前記公開鍵の一部であるe(g,g)のα乗およびgにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの行iごとに、要素の値が“1”である列番号Jから、
    Figure 0006700797
    を演算し、その演算結果C,C′,E,vを要素とする中間暗号化データを生成する中間暗号化データ生成手段と、
    前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報posと、前記公開鍵であるe(g,g)α,ハッシュ関数H′,H″と、前記乱数sと、当該中間暗号化装置のユーザを識別するユーザIDであるIDとにより、証明書πを、
    Figure 0006700797
    により生成し、前記中間暗号化データに付与することで証明書付き中間暗号化データを生成する証明書付与手段と、
    前記ポリシーと、前記証明書付き中間暗号化データと、前記ユーザIDとを関連付けて、ID・ポリシー・証明書付き中間暗号化データを生成するデータ関連付け手段と、
    を備えることを特徴とする中間暗号化装置。
  3. 請求項1に記載の鍵生成装置と、
    請求項2に記載の中間暗号化装置と、
    前記鍵生成装置で生成された公開鍵を用いて、前記中間暗号化装置によって属性ベース暗号の一部が処理された残りの暗号化処理を行う委託暗号化装置と、
    前記鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、前記中間暗号化装置および前記委託暗号化装置で暗号化された暗号化データを復号する属性ベース暗号の復号装置であって、
    前記ポリシーに含まれるm行n列のアクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択し、Z に属する値w として、アクセス行列Aのi行目のベクトルA =(A i,1 i,2 … A i,n )との積の集合Iの要素数分の総和が(1,0,…,0)となるw が存在するか否かにより、前記属性付き秘密鍵の属性が、前記委託暗号化装置で生成されたID・ポリシー・証明書付き暗号化データに含まれるポリシーを満たすか否かを判定するポリシー判定手段と、
    前記属性が前記ポリシーを満たす場合のみ、前記値w と、前記秘密鍵の要素K,L,K と、前記公開鍵の一部である双線形写像eと、前記暗号化データの要素C ,D (1≦i≦m)とにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報と、前記公開鍵であるe(g,g) α ,ハッシュ関数H′,H″と、前記ユーザIDを示すIDとにより、証明書検証データπ′を、
    Figure 0006700797
    により生成し、前記ID・ポリシー・証明書付き暗号化データに含まれる証明書πと比較することで、当該証明書を検証する証明書検証手段と、
    前記ポリシー判定手段で前記属性が前記ポリシーを満たすと判定され、かつ、前記証明書検証手段で前記証明書が正しく検証された場合に、前記暗号化データに含まれる要素Cを前記Bで除算することで、元のデータを復号するデータ復号手段と、を備えた復号装置と、を有するシステムにおける前記委託暗号化装置であって、
    前記中間暗号化装置で生成された中間暗号化データに関連付けられているポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A=(Ai,1i,2 … Ai,n)をアクセス行列Aのi行目ベクトルとして、前記中間暗号化データに含まれるベクトルvとの内積λ′を
    Figure 0006700797
    により演算し、前記アクセス行列Aの行数mに対して、乱数r,r,…,rを、Zから選択し、前記公開鍵の一部であるg、gおよびハッシュ関数Hと、前記ポリシーに含まれる写像ρと、前記中間暗号化データに含まれる要素Eとにより、暗号化データの要素{C,D}(1≦i≦m)を、
    Figure 0006700797
    により演算し、前記中間暗号化データに含まれている要素C,C′とともに、暗号化データとして生成する暗号化データ生成手段と、
    前記中間暗号化データに関連付けられているポリシー、ユーザIDおよび証明書と、前記暗号化データとを関連付けて、ID・ポリシー・証明書付き暗号化データを生成するデータ関連付け手段と、
    を備えることを特徴とする委託暗号化装置。
  4. 請求項1に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項2の中間暗号化装置および請求項3に記載の委託暗号化装置で暗号化された暗号化データを復号する属性ベース暗号の復号装置であって、
    前記ポリシーに含まれるm行n列のアクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択し、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwが存在するか否かにより、前記属性付き秘密鍵の属性が、前記委託暗号化装置で生成されたID・ポリシー・証明書付き暗号化データに含まれるポリシーを満たすか否かを判定するポリシー判定手段と、
    前記属性が前記ポリシーを満たす場合のみ、前記値wと、前記秘密鍵の要素K,L,Kと、前記公開鍵の一部である双線形写像eと、前記暗号化データの要素C,D(1≦i≦m)とにより、
    Figure 0006700797
    を演算し、前記アクセス行列Aの要素が“1”となるすべての位置を表す位置情報と、前記公開鍵であるe(g,g)α,ハッシュ関数H′,H″と、前記ユーザIDを示すIDとにより、証明書検証データπ′を、
    Figure 0006700797
    により生成し、前記ID・ポリシー・証明書付き暗号化データに含まれる証明書πと比較することで、当該証明書を検証する証明書検証手段と、
    前記ポリシー判定手段で前記属性が前記ポリシーを満たすと判定され、かつ、前記証明書検証手段で前記証明書が正しく検証された場合に、前記暗号化データに含まれる要素Cを前記Bで除算することで、元のデータを復号するデータ復号手段と、
    を備えることを特徴とする復号装置。
  5. コンピュータを、請求項1に記載の鍵生成装置として機能させるための鍵生成プログラム。
  6. コンピュータを、請求項2に記載の中間暗号化装置として機能させるための中間暗号化プログラム。
  7. コンピュータを、請求項3に記載の委託暗号化装置として機能させるための委託暗号化プログラム。
  8. コンピュータを、請求項4に記載の復号装置として機能させるための復号プログラム。
  9. ユーザの個人情報を保護して、サービス事業者がユーザにサービスを提供する個人情報保護システムであって、ネットワーク上に、
    前記サービス事業者に与える属性と対応付けた属性付き秘密鍵を生成する請求項1に記載の鍵生成装置と、
    前記個人情報を復号可能なサービス事業者の評価値をポリシーとして、ユーザIDと証明書とを対応付けて、前記個人情報のデータから、ID・ポリシー・証明書付き中間暗号化データを生成する前記ユーザの装置である請求項2に記載の中間暗号化装置と、
    前記ID・ポリシー・証明書付き中間暗号化データから、ID・ポリシー・証明書付き暗号化データを生成する請求項3に記載の委託暗号化装置と、
    この委託暗号化装置で生成されたユーザIDに対応するID・ポリシー・証明書付き暗号化データを取得し、前記鍵生成装置で生成された属性付き秘密鍵で復号する前記サービス事業者の装置である請求項4に記載の復号装置と、
    を備えることを特徴とする個人情報保護システム。
JP2016004327A 2016-01-13 2016-01-13 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム Active JP6700797B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016004327A JP6700797B2 (ja) 2016-01-13 2016-01-13 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016004327A JP6700797B2 (ja) 2016-01-13 2016-01-13 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム

Publications (2)

Publication Number Publication Date
JP2017126851A JP2017126851A (ja) 2017-07-20
JP6700797B2 true JP6700797B2 (ja) 2020-05-27

Family

ID=59364301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016004327A Active JP6700797B2 (ja) 2016-01-13 2016-01-13 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム

Country Status (1)

Country Link
JP (1) JP6700797B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463267B2 (en) * 2016-09-08 2022-10-04 Nec Corporation Network function virtualization system and verifying method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316662B2 (en) * 2018-07-30 2022-04-26 Koninklijke Philips N.V. Method and apparatus for policy hiding on ciphertext-policy attribute-based encryption
CN112910645A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于椭圆曲线的分布式协同解密方法
CN115695035B (zh) * 2022-11-10 2024-04-19 山东云科汉威软件有限公司 基于云存储的油气田业务数据授权方法、装置、电子设备及可读介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463267B2 (en) * 2016-09-08 2022-10-04 Nec Corporation Network function virtualization system and verifying method

Also Published As

Publication number Publication date
JP2017126851A (ja) 2017-07-20

Similar Documents

Publication Publication Date Title
Qi et al. Cpds: Enabling compressed and private data sharing for industrial Internet of Things over blockchain
JP2018148493A (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
WO2013111284A1 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
US10686604B2 (en) Key device, key cloud system, decryption method, and program
KR101982237B1 (ko) 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템
US20040165728A1 (en) Limiting service provision to group members
JP6700797B2 (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
JP6384149B2 (ja) 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
Karati et al. Design of a secure file storage and access protocol for cloud-enabled Internet of Things environment
JP6368047B2 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、代表通信装置、一般通信装置、およびプログラム
JP2018037938A (ja) 鍵交換方法、鍵交換システム
KR101533950B1 (ko) 브로드캐스트 암호화 방법 및 시스템
JP6112456B2 (ja) 鍵生成装置、暗号化装置および復号装置、ならびに、それらのプログラム
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
US10033711B2 (en) Directory service device, client device, key cloud system, method thereof, and program
WO2021105756A1 (en) Method and system for a verifiable identity based encryption (vibe) using certificate-less authentication encryption (clae)
JP6808609B2 (ja) サーバ装置、通信装置、鍵共有システム、鍵共有方法、及びプログラム
JP6927199B2 (ja) 暗号文照合システム、ノード装置、暗号文照合方法、およびプログラム
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
JP5142361B2 (ja) 正当性検証装置
JP2019041355A (ja) 暗号化装置、復号装置、暗号化システム、暗号化方法及び暗号化プログラム
JP2011188168A (ja) Idベース暗号利用方法、暗号化装置、復号装置、管理装置及びそれらのプログラム
JP6936482B2 (ja) 暗号システム、ユーザシステム、暗号方法、及び暗号プログラム
Sengupta et al. Policy-Based Editing-Enabled Signatures: Authenticating Fine-Grained and Restricted Data Modification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191223

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: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200501

R150 Certificate of patent or registration of utility model

Ref document number: 6700797

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