JP2018148493A - 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム - Google Patents

鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム Download PDF

Info

Publication number
JP2018148493A
JP2018148493A JP2017043938A JP2017043938A JP2018148493A JP 2018148493 A JP2018148493 A JP 2018148493A JP 2017043938 A JP2017043938 A JP 2017043938A JP 2017043938 A JP2017043938 A JP 2017043938A JP 2018148493 A JP2018148493 A JP 2018148493A
Authority
JP
Japan
Prior art keywords
encryption
data
encrypted
key
attribute
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.)
Pending
Application number
JP2017043938A
Other languages
English (en)
Inventor
大竹 剛
Takeshi Otake
剛 大竹
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
Nippon Hoso Kyokai NHK
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 Nippon Hoso Kyokai NHK, Japan Broadcasting Corp filed Critical Nippon Hoso Kyokai NHK
Priority to JP2017043938A priority Critical patent/JP2018148493A/ja
Publication of JP2018148493A publication Critical patent/JP2018148493A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】属性ベース暗号方式および属性ベース検索可能暗号方式の一部をユーザ端末の外部に委託する属性ベース秘匿検索システムを提供する。【解決手段】属性ベース秘匿検索システムSAは、2つの暗号方式の公開鍵および属性付き秘密鍵を生成する鍵生成装置1と、2つの暗号方式の暗号化処理の一部を行うユーザ端末となる中間暗号化装置2と、暗号化処理の残りの処理を行い暗号化データを生成する委託暗号化装置4と、キーワードから生成される検索トークンにより暗号化データを検索するデータ検索装置6と、検索トークンに対応する暗号化データを取得し、2つの暗号方式により、キーワードに対応する暗号化データを復号する復号装置7と、を備える。【選択図】図1

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)。この方式では、CP−ABEの暗号化処理の一部をユーザ端末上で実行し、残りの暗号化処理をクラウドサーバに委託することにより、ユーザ端末の負荷を軽減することができる。また、この方式では、悪意のあるクラウドサーバが暗号プロトコルを忠実に実行せず、データの改ざん等を行った場合、それらを検出することが可能である。
しかし、非特許文献2の方式を放送通信連携サービスにおける視聴履歴の暗号化に用いた場合、サービスプロバイダはクラウド上に保存されている特定ユーザの視聴履歴をすべて受信する必要があった。例えば、スポーツ番組に関連する視聴履歴のみを取得してサービスに利活用したいサービスプロバイダにとって、スポーツ番組以外の視聴履歴はデータとしての価値がないため、効率的なデータ分析ができないという課題があった。また、不必要な視聴履歴がサービスプロバイダに提供されるため、ユーザのプライバシーリスクが増大するという課題があった。
これらの課題を解決するため、検索結果の正当性を検証可能な属性ベース検索可能暗号(VABKS:Verifiable Attribute-Based Keyword Search)が提案されている(非特許文献3)。この方式では、属性を用いたデータのアクセス制御と、データを暗号化したままキーワード検索する機能の両方が備わっており、効率的なデータ分析とプライバシーリスクの低減が可能である。また、クラウドサーバから受信した検索結果の正当性をデータ利用者側で検証することが可能であり、クラウドサーバによる改ざん等の攻撃に耐性を有する。
B. Waters, "Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization," eprint 2008/290, 2008. 大竹剛、レイハネー サファヴィナイニ、リャンフェン チャン,"委託先の攻撃に対して耐性のある委託可能な属性ベース暗号," 2016年暗号と情報セキュリティシンポジウム(SCIS2016), 2E4-5, 2016. Q. Zheng, S. Xu, and G. Ateniese, "VABKS: Verifiable Attribute-based Keyword Search over Outsourced Encrypted Data," Proc. of IEEE Infocom’14, pp. 522-530, 2014.
しかし、非特許文献3の方式は、属性ベース暗号、属性ベース検索可能暗号、電子署名、ブルームフィルタのアルゴリズムを用いて構成されており、特に属性ベース暗号と属性ベース検索可能暗号における暗号化処理負荷が大きい。また、電子署名の署名生成アルゴリズムも複数回用いられており、ユーザ端末への負荷が大きい。
このように、従来の方式は、データ所有者による暗号化インデックス生成処理の負荷が大きく、テレビ受信機、スマートフォン等、PC(パーソナルコンピュータ)に比べてCPU性能が低いユーザ端末では処理時間が長くなるという問題があった。
本発明は、このような問題に鑑みてなされたものであり、属性を用いたデータのアクセス制御と、データを暗号化したままキーワード検索する機能を両立させるとともに、暗号化処理の一部をクラウドに委託することによりユーザ端末の負荷を軽減することが可能な属性ベース秘匿検索システムを提供することを課題とする。
前記課題を解決するため、本発明に係る鍵生成装置は、属性ベース暗号方式および属性ベース検索可能暗号方式の鍵情報を生成する鍵生成装置であって、第1公開鍵・マスタ鍵生成手段と、第1秘密鍵生成手段と、第2公開鍵・マスタ鍵生成手段と、第2秘密鍵生成手段と、ハッシュ関数選択手段と、属性付き秘密鍵生成手段と、トークン生成鍵生成手段と、を備える構成とした。
かかる構成において、鍵生成装置は、第1公開鍵・マスタ鍵生成手段によって、属性ベース暗号方式の第1公開鍵および第1マスタ鍵を生成する。そして、鍵生成装置は、第1秘密鍵生成手段によって、第1公開鍵および第1マスタ鍵を用いて属性ベース暗号方式の第1秘密鍵を生成する。
また、鍵生成装置は、第2公開鍵・マスタ鍵生成手段によって、属性ベース検索可能暗号方式の第2公開鍵および第2マスタ鍵を生成する。そして、鍵生成装置は、第2秘密鍵生成手段によって、第2公開鍵および第2マスタ鍵を用いて属性ベース検索可能暗号方式の第2秘密鍵を生成する。
さらに、鍵生成装置は、ハッシュ関数選択手段によって、検索結果の正当性を検証するためのブルームフィルタに使用する予め定めた複数のハッシュ関数を公開鍵の一部として選択する。
そして、鍵生成装置は、属性付き秘密鍵生成手段によって、データを復号する受信者の属性を第1秘密鍵および第2秘密鍵に付加する。
また、鍵生成装置は、トークン生成鍵生成手段によって、受信者を識別する識別子から、データを検索する検索トークンを生成するためのトークン生成鍵を、属性ベース検索可能暗号方式により生成する。
これによって、鍵生成装置は、属性ベース暗号方式および属性ベース検索可能暗号方式の両方式に対応した鍵情報を生成する。
また、本発明に係る中間暗号化装置は、鍵生成装置で生成された公開鍵を用いて、属性ベース暗号方式によるデータの暗号化処理の一部と、属性ベース検索可能暗号方式の前記データに対応するインデックスの暗号化処理の一部を行う中間暗号化装置であって、中間暗号化データ生成手段と、中間暗号化インデックス生成手段と、署名用鍵生成手段と、署名付き暗号化ブルームフィルタ生成手段と、中間暗号化乱数生成手段と、データ合成手段と、を備える構成とした。
かかる構成において、中間暗号化装置は、中間暗号化データ生成手段によって、暗号化の対象となるデータを復号条件となるポリシーと対応付けて、属性ベース暗号方式における予め定めた中間暗号化を行うことで中間暗号化データを生成する。
そして、中間暗号化装置は、中間暗号化インデックス生成手段によって、データに対応するキーワードを含むインデックスをポリシーと対応付けて、属性ベース検索可能暗号方式における予め定めた中間暗号化を行うことで中間暗号化インデックスを生成する。
さらに、中間暗号化装置は、署名用鍵生成手段によって、電子署名の署名用公開鍵と署名用秘密鍵とを生成する。
そして、中間暗号化装置は、署名付き暗号化ブルームフィルタ生成手段によって、公開鍵の一部であるハッシュ関数により、インデックスからブルームフィルタを生成し、乱数により暗号化して暗号化ブルームフィルタを生成し、署名用秘密鍵により署名を付加した署名付き暗号化ブルームフィルタを生成する。
そして、中間暗号化装置は、中間暗号化乱数生成手段によって、乱数をポリシーと対応付けて、属性ベース暗号方式における予め定めた中間暗号化を行うことで中間暗号化乱数を生成する
そして、中間暗号化装置は、データ合成手段によって、ポリシー、中間暗号化データ、中間暗号化インデックス、中間暗号化乱数および署名付き暗号化ブルームフィルタを合成した合成中間暗号化データを生成する。
また、本発明に係る委託暗号化装置は、鍵生成装置で生成された公開鍵を用いて、中間暗号化装置によって属性ベース暗号方式および属性ベース検索可能暗号方式の一部が処理された残りの暗号化処理を行う委託暗号化装置であって、データ分離手段と、データ暗号化手段と、インデックス暗号化手段と、乱数暗号化手段と、データ合成手段と、を備える構成とした。
かかる構成において、委託暗号化装置は、データ分離手段によって、中間暗号化装置で生成された合成中間暗号化データを、ポリシー、中間暗号化データ、中間暗号化インデックス、中間暗号化乱数および署名付き暗号化ブルームフィルタに分離する。
そして、委託暗号化装置は、データ暗号化手段によって、公開鍵とポリシーとにより、中間暗号化データに属性ベース暗号方式における暗号化を行うことで暗号化データを生成する。
また、委託暗号化装置は、インデックス暗号化手段によって、公開鍵とポリシーとにより、中間暗号化インデックスに属性ベース検索可能暗号方式における暗号化を行うことで暗号化インデックスを生成する。
さらに、委託暗号化装置は、乱数暗号化手段によって、公開鍵とポリシーとにより、中間暗号化乱数に属性ベース暗号方式における暗号化を行うことで暗号化乱数を生成する。
そして、委託暗号化装置は、データ合成手段によって、ポリシー、暗号化データ、暗号化インデックス、暗号化乱数および署名付き暗号化ブルームフィルタを合成した合成暗号化データを生成する。
また、本発明に係るデータ検索装置は、鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、中間暗号化装置および委託暗号化装置で暗号化された合成暗号化データを検索するデータ検索装置であって、データ要求受信手段と、検索手段と、データ送信手段と、を備える構成とした。
かかる構成において、データ検索装置は、データ要求受信手段によって、合成暗号化データを要求する復号装置から送信された、トークン生成鍵を用いて生成された検索トークンを含んだデータ要求を受信する。
そして、データ検索装置は、検索手段によって、検索トークンに対応する合成暗号化データを検索する。
そして、データ検索装置は、データ送信手段によって、検索手段で検索された合成暗号化データを復号装置に送信する。
また、本発明に係る復号装置は、鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、中間暗号化装置および委託暗号化装置で暗号化され、データ記憶装置に記憶された合成暗号化データを、請求項4に記載のデータ検索装置を介して検索し復号する復号装置であって、キーワード入力手段と、検索トークン生成手段と、データ要求送信手段と、データ受信手段と、検索結果検証手段と、署名検証手段と、ポリシー判定手段と、ブルームフィルタ検証手段と、データ復号手段と、を備える構成とした。
かかる構成において、復号装置は、キーワード入力手段によって、検索対象のデータを特定するキーワードを入力する。
そして、復号装置は、検索トークン生成手段によって、キーワード入力手段で入力されたキーワードと、鍵生成装置で生成されたトークン生成鍵と、公開鍵とから、属性ベース検索可能暗号方式により検索トークンを生成する。
そして、復号装置は、データ要求送信手段によって、検索トークンを含んだデータ要求をデータ検索装置に送信する。
また、復号装置は、データ受信手段によって、データ要求の結果として合成暗号化データを受信する。
そして、復号装置は、検索結果検証手段によって、合成暗号化データが、検索トークンに対応するデータか否かを、属性ベース検索可能暗号方式の検索手法により検証する。
そして、復号装置は、署名検証手段によって、検索結果検証手段で正しく検証された合成暗号化データに含まれる署名付き暗号化ブルームフィルタに対して、中間暗号化装置で生成された署名用公開鍵により、署名検証を行う。
そして、復号装置は、ポリシー判定手段によって、署名検証手段で正しく署名検証された暗号化ブルームフィルタに対して、属性がポリシーを満たすか否かを判定する。
さらに、復号装置は、ブルームフィルタ検証手段によって、ポリシーを満たした暗号化ブルームフィルタに対して、合成暗号化データに含まれる暗号化乱数を復号した乱数でブルームフィルタを復号し、キーワードがインデックスに含まれているか否かを検証する。
そして、復号装置は、キーワードに対応する暗号化データを、属性ベース暗号方式により復号する。
なお、鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置および復号装置は、それぞれ、コンピュータを、前記した各手段として機能させるためのプログラムで動作させることができる。
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、属性ベース暗号と属性ベース検索可能暗号とで使用するそれぞれの公開鍵と秘密鍵とにより、暗号処理の一部を委託可能な属性ベース暗号と委託可能属性ベース検索可能暗号とを実現することができる。
これによって、本発明は、暗号化処理の一部を外部のサーバに委託してユーザ端末の負荷を軽減することができるとともに、ユーザのデータを暗号化により秘匿したままキーワード検索することができ、ユーザのプライバシーを保護することができる。
本発明の実施形態に係る属性ベース秘匿検索システムの構成を示すシステム構成図である。 アクセス行列の生成手法の例を説明するための図であって、(a)は属性の例、(b)はポリシーの例、(c)はポリシーのツリー構造、(d)はポリシーのツリー構造に対応したアクセス行列を示す図である。 本発明の実施形態に係る鍵生成装置の構成を示すブロック構成図である。 本発明の実施形態に係る中間暗号化装置の構成を示すブロック構成図である。 本発明の実施形態に係る委託暗号化装置の構成を示すブロック構成図である。 本発明の実施形態に係るデータ検索装置の構成を示すブロック構成図である。 本発明の実施形態に係る復号装置の構成を示すブロック構成図である。 本発明の実施形態に係る属性ベース秘匿検索システムにおける鍵生成および鍵配信の動作を示すフローチャートである。 図8の動作において、公開鍵・マスタ鍵を生成する動作を詳細に示すフローチャートである。 図9の動作において、第1公開鍵・第1マスタ鍵を生成する動作を詳細に示すフローチャートである。 図9の動作において、第2公開鍵・第2マスタ鍵を生成する動作を詳細に示すフローチャートである。 図8の動作において、秘密鍵を生成する動作を詳細に示すフローチャートである。 図12の動作において、第1秘密鍵を生成する動作を詳細に示すフローチャートである。 図12の動作において、第2秘密鍵を生成する動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース秘匿検索システムにおけるデータの中間暗号化および暗号化の動作を示すフローチャートである。 図15の動作において、中間暗号化データを生成する動作を詳細に示すフローチャートである。 図16の動作において、ABEOの中間暗号化動作を詳細に示すフローチャートである。 図15の動作において、中間暗号化インデックスを生成する動作を詳細に示すフローチャートである。 図18の動作において、ABKSOの中間暗号化動作を詳細に示すフローチャートである。 図15の動作において、暗号化ブルームフィルタを生成する動作を詳細に示すフローチャートである。 図15の動作において、中間暗号化乱数を生成する動作を詳細に示すフローチャートである。 図15の動作において、暗号化データを生成する動作を詳細に示すフローチャートである。 図22の動作において、ABEOの暗号化動作を詳細に示すフローチャートである。 図15の動作において、暗号化インデックスを生成する動作を詳細に示すフローチャートである。 図24の動作において、ABKSOの暗号化動作を詳細に示すフローチャートである。 図15の動作において、暗号化乱数を生成する動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース秘匿検索システムにおけるデータの復号の動作を示すフローチャートである。 図27の動作において、検索トークンを生成する動作を詳細に示すフローチャートである。 図27の動作において、暗号化データを検索する動作を詳細に示すフローチャートである。 図27の動作において、検証動作を詳細に示すフローチャート(1/3)である。 図27の動作において、検証動作を詳細に示すフローチャート(2/3)である。 図27の動作において、検証動作を詳細に示すフローチャート(3/3)である。 図30Aおよび図30Cの動作において、ABKSOの検索動作を詳細に示すフローチャートである。 図30Aおよび図30Cの動作において、ABKSOの検証動作を詳細に示すフローチャートである。 図27および図30Bの動作において、ABEOの復号動作を詳細に示すフローチャートである。 本発明の実施形態に係る属性ベース秘匿検索システムを個人情報保護システムとして構成した例を示すシステム構成図である。
以下、本発明の実施形態について図面を参照して説明する。
[属性ベース秘匿検索システムの構成]
まず、図1を参照して、本発明の実施形態に係る属性ベース秘匿検索システムSAの構成について説明する。
属性ベース秘匿検索システムSAは、復号条件となる属性の属性値を示すポリシーに基づいて送信者のデータを暗号化し、受信者の属性の属性値が、ポリシーに適合した場合だけ、キーワードに対応する暗号化データを復号するシステムである。
ここでは、属性ベース秘匿検索システムSAは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4、データ記憶装置5、データ検索装置6)と、復号装置7とを、ネットワーク(通信回線)Nを介して接続して構成している。なお、ここでは、説明を簡略化するため、各装置を1台ずつ図示しているが、これらは、ネットワークNに複数接続することとしてもよい。
鍵生成装置1は、暗号化処理をクラウドサーバ3に委託可能な属性ベース暗号および属性ベース検索可能暗号における暗号化処理に用いる公開鍵および秘密鍵を生成するものである。公開鍵は、中間暗号化装置2、クラウドサーバ3および復号装置7に対して公開される情報であって、ここでは、ネットワークNを介して中間暗号化装置2、クラウドサーバ3および復号装置7に送信される。また、秘密鍵は、暗号化データを復号する復号装置7ごとに秘密情報として送信される情報である。
なお、ここでは、鍵生成装置1は、種別情報(属性種別)とその内容を示す値(属性値)とからなる属性を秘密鍵に関連付け、属性付き秘密鍵として、復号装置7に送信する。
中間暗号化装置2は、属性ベース暗号および属性ベース検索可能暗号の暗号化処理の一部を行うものである。なお、ここでは、中間暗号化装置2は、中間暗号化データを生成し、証明書および署名を付与して、ポリシー(復号条件)とともに、クラウドサーバ3に送信する。また、中間暗号化データには、当該データを検索するためのインデックスが対応付けられている。このインデックスは、1つ以上のキーワードで構成され、データを検索するための索引情報である。
クラウドサーバ3は、クラウド上に配置され、委託暗号化装置4とデータ記憶装置5とデータ検索装置6とで構成される。
委託暗号化装置4は、属性ベース暗号および属性ベース検索可能暗号の暗号化処理の一部を行うものである。この委託暗号化装置4は、中間暗号化装置2で暗号化された中間暗号化データの残りの暗号処理を行い、データ記憶装置5に記憶する。
データ記憶装置5は、委託暗号化装置で暗号化されたデータを記憶するデータベースである。このデータ記憶装置5は、ハードディスク等の一般的な記憶装置で構成することができる。
データ検索装置6は、復号装置7からのデータ要求(検索トークン)に適合するデータを検索して、復号装置7に送信するものである。
復号装置7は、中間暗号化装置2および委託暗号化装置4において生成された暗号化データを元のデータに復号するものである。この復号装置7は、キーワードを含むデータ要求(検索トークン)をクラウドサーバ3に送信することで、暗号化データを取得する。
そして、復号装置7は、ポリシー(復号条件)が、鍵生成装置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. Lewko and 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は、第1鍵生成手段10と、第2鍵生成手段11と、を備える。
第1鍵生成手段10は、外部から入力されるセキュリティパラメータに基づいて、属性ベース暗号方式および属性ベース検索可能暗号方式における公開鍵およびマスタ鍵を生成するものである。ここでは、第1鍵生成手段10は、パラメータ入力手段100と、公開鍵・マスタ鍵生成手段101と、公開鍵記憶手段102と、マスタ鍵記憶手段103と、公開鍵送信手段104と、を備える。
パラメータ入力手段100は、セキュリティパラメータを外部からパラメータとして入力するものである。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値(例えば、鍵長)である。より具体的には、セキュリティパラメータは、後記する公開鍵・マスタ鍵生成手段101で使用される素数位数pの大きさ(ビット長;ここではspとする)である。
このパラメータ入力手段100は、入力されたセキュリティパラメータを、公開鍵・マスタ鍵生成手段101に出力する。
公開鍵・マスタ鍵生成手段101は、公開鍵およびマスタ鍵を生成するものである。ここでは、公開鍵・マスタ鍵生成手段101は、ハッシュ関数選択手段101aと、第1公開鍵・マスタ鍵生成手段101bと、第2公開鍵・マスタ鍵生成手段101cと、を備える。
ハッシュ関数選択手段101aは、後記するブルームフィルタの生成および検証を行うための複数のハッシュ関数を生成するものである。このハッシュ関数選択手段101aは、予め準備した複数のハッシュ関数の中からk個のハッシュ関数(h′,…,h′)を選択する。なお、ブルームフィルタが、キーワードに一致するインデックスが存在しないのに、「インデックスが存在する」と誤って出力する確率(偽陽性発生率)と、ブルームフィルタのビット長と、インデックスの個数とは、所定の関係がある。よって、ハッシュ関数の個数(k)は、予め定めた偽陽性発生率から求めることができる。
また、ハッシュ関数選択手段101aは、セキュリティパラメータのビット長のデータを、ブルームフィルタと同じビット長のデータに変換するハッシュ関数hを、予め準備した複数のハッシュ関数の中から選択する。
このハッシュ関数(h,h′,…,h′)は、公開鍵として、公開鍵記憶手段102に記憶される。
第1公開鍵・マスタ鍵生成手段101bは、委託可能な属性ベース暗号方式(ABEO)における公開鍵とマスタ鍵とを生成するものである。この第1公開鍵・マスタ鍵生成手段101bは、ABEOのSetupアルゴリズムを実行することで、第1公開鍵ABEO.pkと第1マスタ鍵ABEO.mkを生成する。なお、ABEOのSetupアルゴリズムについては、動作の説明において詳細に説明する。
第2公開鍵・マスタ鍵生成手段101cは、委託可能な属性ベース検索可能暗号方式(ABKSO)における公開鍵とマスタ鍵とを生成するものである。この第2公開鍵・マスタ鍵生成手段101cは、ABKSOのSetupアルゴリズムを実行することで、第2公開鍵ABKSO.pkと第2マスタ鍵ABKSO.mkを生成する。なお、ABKSOのSetupアルゴリズムについては、動作の説明において詳細に説明する。
公開鍵・マスタ鍵生成手段101は、第1公開鍵ABEO.pkと、第2公開鍵ABKSO.pkと、ハッシュ関数(h,h′,…,h′)とを、公開鍵PKとして、公開鍵記憶手段102に書き込み記憶する。また、公開鍵・マスタ鍵生成手段101は、第1マスタ鍵ABEO.mkと、第2マスタ鍵ABKSO.mkとを、マスタ鍵MKとして、マスタ鍵記憶手段103に書き込み記憶する。
公開鍵記憶手段102は、公開鍵・マスタ鍵生成手段101で生成された第1公開鍵および第2公開鍵を記憶するものである。この公開鍵記憶手段102は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この公開鍵記憶手段102に記憶された第1公開鍵および第2公開鍵は、公開鍵送信手段104および第2鍵生成手段11によって読み出される。
マスタ鍵記憶手段103は、公開鍵・マスタ鍵生成手段101で生成された第1マスタ鍵および第2マスタ鍵を記憶するものである。このマスタ鍵記憶手段103は、半導体メモリ等の一般的な記憶媒体で構成することができる。
このマスタ鍵記憶手段103に記憶された第1マスタ鍵および第2マスタ鍵は、第2鍵生成手段11によって読み出される。
公開鍵送信手段104は、公開鍵・マスタ鍵生成手段101で生成され、公開鍵記憶手段102に記憶された公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置7に公開するものである。
ここでは、公開鍵送信手段104は、公開鍵記憶手段102から公開鍵を読み出し、ネットワークNを介して、読み出した公開鍵を中間暗号化装置2、委託暗号化装置4および復号装置7に送信する。この公開鍵送信手段104は、例えば、中間暗号化装置2、委託暗号化装置4および復号装置7から、それぞれ公開鍵を要求されたタイミングで、公開鍵を送信する。
第2鍵生成手段11は、外部から入力される復号装置7のユーザの属性に基づいて、復号装置7が使用する、委託可能な属性ベース暗号方式(ABEO)および委託可能な属性ベース検索可能暗号方式(ABKSO)における秘密鍵を生成するものである。ここでは、第2鍵生成手段11は、属性入力手段110と、秘密鍵生成手段111と、属性付き秘密鍵生成手段112と、属性付き秘密鍵送信手段113と、受信者リスト記憶手段114と、トークン生成鍵生成配信手段115と、を備える。
属性入力手段110は、復号装置7のユーザ(受信者)に対する属性Sを、ユーザの識別子(受信者id)とともに入力するものである。ここで、属性は、予め定めた属性種別に対応するユーザの属性値である。受信者idは、ユーザ個別の識別情報である。
ここでは、属性入力手段110は、復号装置7から、登録要求を受信することで、その登録要求に含まれる属性Sと受信者idとを入力する。もちろん、属性Sと受信者idとを、操作者がキーボード等の入力手段を介して入力することとしてもよい。
この属性入力手段110は、入力された属性を、秘密鍵生成手段111および属性付き秘密鍵生成手段112に出力する。
秘密鍵生成手段111は、公開鍵・マスタ鍵生成手段101で生成される公開鍵の対となる秘密鍵を生成するものである。ここでは、秘密鍵生成手段111は、第1秘密鍵生成手段111aと、第2秘密鍵生成手段111bと、を備える。
第1秘密鍵生成手段111aは、委託可能な属性ベース暗号方式(ABEO)における秘密鍵を生成するものである。この第1秘密鍵生成手段111aは、公知の手法により秘密鍵を生成することができる。
すなわち、第1秘密鍵生成手段111aは、属性Sを用いて、ABEOのKeyGenアルゴリズムを実行することで、第1秘密鍵ABEO.skを生成する。なお、ABEOのKeyGenアルゴリズムについては、動作の説明において詳細に説明する。
第2秘密鍵生成手段111bは、委託可能な属性ベース検索可能暗号方式(ABKSO)における秘密鍵を生成するものである。この第2秘密鍵生成手段111bは、公知の手法により秘密鍵を生成することができる。
すなわち、第2秘密鍵生成手段111bは、属性Sを用いて、ABKSOのKeyGenアルゴリズムを実行することで、第2秘密鍵ABKSO.skを生成する。なお、ABKSOのKeyGenアルゴリズムについては、動作の説明において詳細に説明する。
この第2秘密鍵生成手段111bは、第2秘密鍵の生成途中における値を、受信者idと対応付けて、受信者リスト記憶手段114に記憶しておく。この第2秘密鍵の生成途中の値は、検索トークンを生成するための第1の情報(トークン生成第1情報)であって、後で詳述する公開鍵と、乱数とから所定の演算式で求められる値である。
秘密鍵生成手段111は、第1秘密鍵ABEO.skと、第2秘密鍵ABKSO.skとを、秘密鍵SKとして、属性付き秘密鍵生成手段112に出力する。
属性付き秘密鍵生成手段112は、秘密鍵生成手段111で生成された秘密鍵SKに、属性入力手段110で入力された属性Sを関連付けて、属性付き秘密鍵を生成するものである。例えば、属性付き秘密鍵生成手段112は、秘密鍵SKと属性Sとを予め定めたデータフォーマットで連結することで、属性付き秘密鍵を生成する。もちろん、秘密鍵SKと属性Sとを予め定めた固有の識別子で対応付けることとしてもよい。
この属性付き秘密鍵生成手段112は、生成した属性付き秘密鍵を属性付き秘密鍵送信手段113に出力する。
属性付き秘密鍵送信手段113は、属性付き秘密鍵生成手段112で生成された属性付き秘密鍵を、復号装置7に送信するものである。
ここでは、属性付き秘密鍵送信手段113は、属性付き秘密鍵を、ネットワークNを介して、例えば、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等の暗号化通信プロトコルを用いて復号装置7に送信する。なお、復号装置7の送信先については、外部から設定されるものとする。
受信者リスト記憶手段114は、属性入力手段110で入力された受信者idと、第2秘密鍵生成手段111bで生成されたトークン生成第1情報とを対応付けて記憶するものである。この受信者リスト記憶手段114は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この受信者リスト記憶手段114は、トークン生成鍵生成配信手段115によって、受信者idに対応したトークン生成第1情報が読み出される。
トークン生成鍵生成配信手段115は、復号装置7からの要求に基づいて、検索トークンを生成するための鍵(トークン生成鍵)を生成し、復号装置7に配信するものである。
このトークン生成鍵生成配信手段115は、復号装置7から、トークン生成鍵の要求として通知される受信者idと、トークン生成第2情報とを受信する。
このトークン生成第2情報は、検索トークンを生成するための第2の情報であって、復号装置7において、公開鍵から所定の演算式で求められる値である。
トークン生成鍵生成配信手段115は、受信者idに対応するトークン生成第1情報を受信者リスト記憶手段114から読み出し、トークン生成第2情報と、公開鍵の一部である乱数とから、トークン生成鍵を生成する。このトークン生成鍵を生成する演算については、動作の説明において行う。
トークン生成鍵生成配信手段115は、生成したトークン生成鍵を要求のあった復号装置7に送信する。
このように鍵生成装置1を構成することで、鍵生成装置1は、属性ベース暗号方式および属性ベース検索可能暗号方式で使用する公開鍵および秘密鍵(属性付き秘密鍵)を生成することができる。
また、鍵生成装置1は、復号装置7に対して、検索トークンを生成するための鍵となるトークン生成鍵を生成することができる。
この鍵生成装置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と、公開鍵記憶手段24と、中間暗号化データ生成手段25と、中間暗号化インデックス生成手段26と、暗号化ブルームフィルタ生成手段27と、中間暗号化乱数生成手段28と、データ合成手段29と、データ送信手段30と、署名用鍵生成手段31と、署名用公開鍵記憶手段32と、署名用公開鍵送信手段33と、を備える。
ポリシー入力手段20は、復号装置7において、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段20は、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、そのアクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとを、外部から入力する。
このポリシー入力手段20は、入力されたポリシーを中間暗号化データ生成手段25と、中間暗号化インデックス生成手段26と、中間暗号化乱数生成手段28と、データ合成手段29とに出力する。
データ入力手段21は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段21は、入力されたデータを中間暗号化データ生成手段25に出力する。
インデックス入力手段22は、暗号化の対象となるデータを検索するためのインデックスを入力するものである。インデックスは、データの索引として、複数のキーワードを含む。このインデックス入力手段22は、入力されたインデックスを中間暗号化インデックス生成手段26と、暗号化ブルームフィルタ生成手段27とに出力する。
公開鍵受信手段23は、鍵生成装置1で生成された属性ベース暗号方式および属性ベース検索可能暗号方式の公開鍵を受信するものである。ここでは、公開鍵受信手段23は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段24に書き込み記憶する。
なお、公開鍵受信手段23は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、中間暗号化データ生成手段25、中間暗号化インデックス生成手段26、中間暗号化乱数生成手段28が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段24は、公開鍵受信手段23で受信した公開鍵を記憶するものである。この公開鍵記憶手段24は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段24に記憶された公開鍵は、中間暗号化データ生成手段25、中間暗号化インデックス生成手段26、中間暗号化乱数生成手段28によって読み出される。
中間暗号化データ生成手段25は、公開鍵記憶手段24に記憶されている公開鍵と、ポリシー入力手段20で入力されたポリシーとに基づいて、データ入力手段21で入力されたデータに対して属性ベース暗号方式における中間的な暗号化を行い、証明書を付与した証明書付き中間暗号化データを生成するものである。なお、証明書付き中間暗号化データの生成については、動作の説明において詳細に説明する。
この中間暗号化データ生成手段25は、生成した証明書付き中間暗号化データを、データ合成手段29に出力する。
中間暗号化インデックス生成手段26は、公開鍵記憶手段24に記憶されている公開鍵と、ポリシー入力手段20で入力されたポリシーとに基づいて、インデックス入力手段22で入力されたインデックスに対して属性ベース検索可能暗号方式における中間的な暗号化を行い、証明書を付与した証明書付き中間暗号化インデックスを生成するものである。なお、中間暗号化インデックスの生成については、動作の説明において詳細に説明する。
こ中間暗号化インデックス生成手段26は、生成した証明書付き中間暗号化データを、データ合成手段29に出力する。
暗号化ブルームフィルタ生成手段27は、インデックス入力手段22で入力されたインデックスと、署名用鍵生成手段31で生成された署名用秘密鍵とを用いて、署名付き暗号化ブルームフィルタを生成するものである。ここでは、暗号化ブルームフィルタ生成手段27は、ブルームフィルタ生成手段270と、ブルームフィルタ暗号化手段271と、署名付与手段272と、を備える。
ブルームフィルタ生成手段270は、インデックス入力手段で入力されたインデックスごとに、インデックス内にキーワード(キーワードごとに予め定めた固有の値)が含まれるか否かを判定するためのブルームフィルタを生成するものである。
ここでは、ブルームフィルタ生成手段270は、インデックスに含まれるキーワードと、公開鍵記憶手段24に記憶されている公開鍵の一部であるハッシュ関数(h′,…,h′)とを用いて、ブルームフィルタを生成する。このブルームフィルタによって、復号装置7において、インデックス内にキーワードが含まれていないこと(陰性)、または、インデックス内にキーワードが含まれている可能性があること(偽陽性、真陽性)を判定することが可能になる。
このブルームフィルタ生成手段270は、生成したブルームフィルタをブルームフィルタ暗号化手段271に出力する。
ブルームフィルタ暗号化手段271は、ブルームフィルタ生成手段270で生成されたブルームフィルタを暗号化するものである。このブルームフィルタ暗号化手段271は、乱数Mを生成し、公開鍵の一部であるハッシュ関数により乱数のハッシュ値を演算し、ブルームフィルタと排他的論理和演算を行うことで、暗号化ブルームフィルタを生成する。
このブルームフィルタ暗号化手段271は、生成した暗号化ブルームフィルタを署名付与手段272に出力する。また、ブルームフィルタ暗号化手段271は、暗号化ブルームフィルタを生成するために使用した乱数を、証明書付き中間暗号化乱数生成手段28に出力する。
署名付与手段272は、ブルームフィルタ暗号化手段271で生成された暗号化ブルームフィルタに電子署名を付与するものである。この署名付与手段272は、署名用鍵生成手段31に署名鍵の生成を指示し、署名用秘密鍵を取得し、当該署名用秘密鍵を用いて、暗号化ブルームフィルタに電子署名を付与する。
この署名付与手段272は、生成した署名付き暗号化ブルームフィルタを、データ合成手段29に出力する。
中間暗号化乱数生成手段28は、公開鍵記憶手段24に記憶されている公開鍵と、ポリシー入力手段20で入力されたポリシーとに基づいて、暗号化ブルームフィルタ生成手段27で用いた乱数に対して属性ベース検索可能暗号方式における中間的な暗号化を行い、証明書を付与した証明書付き中間暗号化インデックスを生成するものである。なお、証明書付き中間暗号化乱数の生成については、動作の説明において詳細に説明する。
この中間暗号化乱数生成手段28は、生成した証明書付き中間暗号化乱数を、データ合成手段29に出力する。
データ合成手段29は、ポリシー入力手段20で入力されたポリシーと、中間暗号化データ生成手段25で生成された証明書付き中間暗号化データと、中間暗号化インデックス生成手段26で生成された証明書付き中間暗号化インデックスと、暗号化ブルームフィルタ生成手段27で生成された署名付き暗号化ブルームフィルタと、中間暗号化乱数生成手段28で生成された証明書付き中間暗号化乱数とを合成するものである。
このデータ合成手段29における合成は、それぞれのデータを予め定めたデータフォーマットで連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
このデータ合成手段29は、合成したデータ(合成中間暗号化データ)をデータ送信手段30に出力する。
データ送信手段30は、データ合成手段29で合成された合成中間暗号化データ(ポリシー、証明書付き中間暗号化データ、証明書付き中間暗号化インデックス、署名付き暗号化ブルームフィルタ、証明書付き中間暗号化乱数)を、ネットワークNを介して、委託暗号化装置4に送信するものである。なお、委託暗号化装置4の送信先については、外部から設定されるものとする。
署名用鍵生成手段31は、電子署名で使用する署名用鍵(署名用秘密鍵、署名用公開鍵)を生成するものである。
この署名用鍵生成手段31は、署名付与手段272の指示により、署名用鍵を生成し、生成した署名用秘密鍵を署名付与手段272に出力し、署名用公開鍵を署名用公開鍵記憶手段32に書き込み記憶する。
なお、署名用鍵生成手段31が署名用鍵を生成する署名方式は、復号装置7と同じものであれば、一般的な署名方式、例えば、RSA、ECDSA(Elliptic Curve Digital Signature Algorithm)等、その方式は問わない。
署名用公開鍵記憶手段32は、署名用鍵生成手段31で生成された署名用公開鍵を記憶するものである。この署名用公開鍵記憶手段32は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この署名用公開鍵記憶手段32に記憶された署名用公開鍵は、署名用公開鍵送信手段33によって読み出される。
署名用公開鍵送信手段33は、署名用鍵生成手段31で生成され、署名用公開鍵記憶手段32に記憶された署名用公開鍵を、復号装置7に公開するものである。
ここでは、署名用公開鍵送信手段33は、署名用公開鍵記憶手段32から署名用公開鍵を読み出し、ネットワークNを介して、読み出した署名用公開鍵を復号装置7に送信する。この署名用公開鍵送信手段33は、例えば、復号装置7から、署名用公開鍵を要求されたタイミングで、署名用公開鍵を送信する。
このように、中間暗号化装置2を構成することで、中間暗号化装置2は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータ、インデックスおよび乱数を暗号化することができる。また、中間暗号化装置2は、インデックス内にキーワードが含まれるか否かを判定するためのブルームフィルタを生成し、暗号化することができる。
なお、この中間暗号化装置2における暗号化は、属性ベース暗号方式および属性ベース検索可能暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2をユーザ端末とする際の処理を軽減することができる。また、中間暗号化装置2は、中間暗号化したデータ等に証明書を付与することで、復号装置7において、クラウドサーバ3におけるデータ改ざんを検出することが可能になる。
この中間暗号化装置2は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(中間暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔委託暗号化装置の構成〕
次に、図5を参照(適宜図1参照)して、本発明の実施形態に係る委託暗号化装置4の構成について説明する。ここでは、委託暗号化装置4は、公開鍵受信手段40と、公開鍵記憶手段41と、公開鍵送信手段42と、データ受信手段43と、データ分離手段44と、暗号化手段45と、データ合成手段46と、データ書込手段47と、を備える。
公開鍵受信手段40は、鍵生成装置1で生成された属性ベース暗号および属性ベース検索可能暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段40は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段41に書き込み記憶する。
なお、公開鍵受信手段40は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、暗号化手段45が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段41は、公開鍵受信手段40で受信した公開鍵を記憶するものである。この公開鍵記憶手段41は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段41に記憶された公開鍵は、暗号化手段45によって読み出される。
公開鍵送信手段42は、公開鍵受信手段40で受信した公開鍵を、同じクラウドサーバ3内のデータ検索装置6に送信するものである。
データ受信手段43は、中間暗号化装置2で生成された合成中間暗号化データ(ポリシー、証明書付き中間暗号化データ、証明書付き合成中間暗号化インデックス、署名付き暗号化ブルームフィルタ、証明書付き中間暗号化乱数)を、ネットワークNを介して受信するものである。
このデータ受信手段43は、受信した合成中間暗号化データを、データ分離手段44に出力する。
データ分離手段44は、データ受信手段43で受信した合成中間暗号化データを、個々のデータ(ポリシー、証明書付き中間暗号化データ、証明書付き中間暗号化インデックス、証明書付き中間暗号化乱数、署名付き暗号化ブルームフィルタ)に分離するものである。
このデータ分離手段44は、分離したポリシーを暗号化手段45およびデータ合成手段46に出力する。また、データ分離手段44は、分離した証明書付き中間暗号化データ、証明書付き中間暗号化インデックスおよび証明書付き中間暗号化乱数を、暗号化手段45に出力する。また、また、データ分離手段44は、分離した署名付き暗号化ブルームフィルタを、データ合成手段46に出力する。
暗号化手段45は、データ分離手段44で分離された証明書付き中間暗号化データ、証明書付き中間暗号化インデックスおよび証明書付き中間暗号化乱数の暗号化処理を継続して実行するものである。ここでは、暗号化手段45は、データ暗号化手段450と、インデックス暗号化手段451と、乱数暗号化手段452と、を備える。
データ暗号化手段450は、データ分離手段44で分離された証明書付き中間暗号化データに対して、属性ベース暗号方式における暗号化を行い、証明書付き暗号化データを生成するものである。なお、証明書付き暗号化データの生成については、動作の説明において行う。
このデータ暗号化手段450は、生成した証明書付き暗号化データを、データ合成手段46に出力する。
インデックス暗号化手段451は、データ分離手段44で分離された証明書付き中間暗号化インデックスに対して、属性ベース検索可能暗号方式における暗号化を行い、証明書付き暗号化インデックスを生成するものである。なお、証明書付き暗号化インデックスの生成については、動作の説明において詳細に説明する。
このインデックス暗号化手段451は、生成した証明書付き暗号化インデックスを、データ合成手段46に出力する。
乱数暗号化手段452は、データ分離手段44で分離された証明書付き中間暗号化乱数に対して、属性ベース暗号方式における暗号化を行い、証明書付き暗号化乱数を生成するものである。なお、証明書付き暗号化乱数の生成については、動作の説明において詳細に説明する。
この乱数暗号化手段452は、生成した証明書付き暗号化乱数を、データ合成手段46に出力する。
データ合成手段46は、データ分離手段44で分離されたポリシーおよび署名付き暗号化ブルームフィルタと、暗号化手段45で生成された証明書付き暗号化データ、証明書付き暗号化インデックスおよび証明書付き暗号化乱数とを合成するものである。このデータ合成手段46における合成は、それぞれのデータ(ポリシー、署名付き暗号化ブルームフィルタ、証明書付き暗号化データ、証明書付き暗号化インデックス、証明書付き暗号化乱数)を予め定めたデータフォーマットで連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
このデータ合成手段46は、合成したデータ(合成暗号化データ)を、データ書込手段47に出力する。
データ書込手段47は、データ合成手段46で合成された合成暗号化データ(ポリシー、署名付き暗号化ブルームフィルタ、証明書付き暗号化データ、証明書付き暗号化インデックス、証明書付き暗号化乱数)を、データ記憶装置5に書き込むものである。
このように、委託暗号化装置4を構成することで、委託暗号化装置4は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定してデータ、インデックスおよび乱数を暗号化することができる。なお、この委託暗号化装置4における暗号化は、属性ベース暗号方式および属性ベース検索可能暗号方式における暗号化処理の一部を実施するもので、中間暗号化装置2の暗号化処理を補完するものである。これによって、委託暗号化装置4は、データを送信する中間暗号化装置2の処理を軽減させることができる。
この委託暗号化装置4は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(委託暗号化プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔データ検索装置の構成〕
次に、図6を参照(適宜図1参照)して、本発明の実施形態に係るデータ検索装置6の構成について説明する。ここでは、データ検索装置6は、公開鍵受信手段60と、公開鍵記憶手段61と、データ要求受信手段62と、検索手段63と、データ読出手段64と、データ送信手段65と、を備える。
公開鍵受信手段60は、鍵生成装置1で生成された属性ベース暗号および属性ベース検索可能暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段60は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段61に書き込み記憶する。
なお、公開鍵受信手段60は、定期的に公開鍵を委託暗号化装置4に要求し取得することとしてもよいし、検索手段63が公開鍵を参照するタイミングで委託暗号化装置4に要求し取得することとしてもよい。
公開鍵記憶手段61は、公開鍵受信手段60で受信した公開鍵を記憶するものである。この公開鍵記憶手段61は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段61に記憶された公開鍵は、検索手段63によって読み出される。
データ要求受信手段62は、復号装置7から、ネットワークNを介して、暗号化データの要求(データ要求)を受信するものである。このデータ要求には、暗号化データを特定するための検索トークンが含まれている。
このデータ要求受信手段62は、データ要求を検索手段63に出力する。
検索手段63は、データ要求受信手段62を介して受信した、復号装置7からのデータ要求に基づいて、データ記憶装置5に記憶されている暗号化データ(合成暗号化データ)を検索するものである。すなわち、検索手段63は、データ記憶装置5に記憶されている暗号化データの中から、データ読出手段64を介して、データ要求に含まれている検索トークンに対応するデータを読み出して検索する。なお、検索手段63の検索手法については、動作の説明において詳細に説明する。
この検索手段63は、検索したデータに、検索結果を検証するための検証用データを付加して、復号装置7に送信する。
データ読出手段64は、データ記憶装置5に記憶されている合成暗号化データ(ポリシー、署名付き暗号化ブルームフィルタ、証明書付き暗号化データ、証明書付き暗号化インデックス、証明書付き暗号化乱数)を読み出すものである。
データ送信手段65は、検索手段63で検索された暗号化データを、ネットワークNを介して、当該データを要求した復号装置7に送信するものである。
このようにデータ検索装置6を構成することで、データ検索装置6は、クラウドサーバとして機能し、復号装置7から要求のあった暗号化データを提供することができる。
このデータ検索装置6は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(データ検索プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
〔復号装置の構成〕
次に、図7を参照(適宜図1参照)して、本発明の実施形態に係る復号装置7の構成について説明する。ここで、復号装置7は、公開鍵受信手段70と、公開鍵記憶手段71と、登録要求送信手段72と、属性付き秘密鍵受信手段73と、属性付き秘密鍵記憶手段74と、キーワード入力手段75と、検索トークン生成手段76と、トークン生成鍵取得手段77と、データ要求送信手段78と、データ受信手段79と、署名用公開鍵受信手段80と、検証・復号手段81と、を備える。
公開鍵受信手段70は、鍵生成装置1で生成された属性ベース暗号および属性ベース検索可能暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段70は、ネットワークNを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段71に書き込み記憶する。
なお、公開鍵受信手段70は、定期的に公開鍵を鍵生成装置1に要求し取得することとしてもよいし、検索トークン生成手段76および検証・復号手段81が公開鍵を参照するタイミングで鍵生成装置1に要求し取得することとしてもよい。
公開鍵記憶手段71は、公開鍵受信手段70で受信した公開鍵を記憶するものである。この公開鍵記憶手段71は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段71に記憶された公開鍵は、検索トークン生成手段76および検証・復号手段81によって読み出される。
登録要求送信手段72は、復号装置7のデータの受信者を識別する識別子(受信者id)と、受信者の属性Sとを含んだ登録要求を、ネットワークNを介して、鍵生成装置1に送信するものである。
属性付き秘密鍵受信手段73は、鍵生成装置1で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段73は、ネットワークNを介して、例えば、SSL/TLS等の暗号化通信プロトコルを用いて属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段74に書き込み記憶する。
属性付き秘密鍵記憶手段74は、属性付き秘密鍵受信手段73で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段74は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段74に記憶された属性付き秘密鍵は、検索トークン生成手段76および検証・復号手段81によって読み出される。
キーワード入力手段75は、取得するデータに対するキーワードを入力するものである。このキーワード入力手段75は、入力されたキーワードを、検索トークン生成手段76および検証・復号手段81に出力する。
検索トークン生成手段76は、入力されたキーワードから、取得するデータを特定するための検索トークンを生成するものである。
この検索トークン生成手段76は、受信者idに対応するトークン生成鍵qidを、トークン生成鍵取得手段77を介して、鍵生成装置1から取得し、検索トークンを生成する。なお、検索トークンの生成については、動作の説明において詳細に説明する。
この検索トークン生成手段76は、生成した検索トークンを、データ要求送信手段78および検証・復号手段81に出力する。
トークン生成鍵取得手段77は、入力されたキーワードに対応するトークン生成鍵を、ネットワークNを介して、鍵生成装置1から取得するものである。このトークン生成鍵取得手段77は、検索トークン生成手段76からの要求に基づいて要求を鍵生成装置1に送信することで、トークン生成鍵を取得する。そして、トークン生成鍵取得手段77は、取得したトークン生成鍵を検索トークン生成手段76に出力する。
データ要求送信手段78は、検索トークン生成手段76で生成された検索トークンを含んだデータ要求を、ネットワークNを介して、データ検索装置6に送信するものである。
データ受信手段79は、データ要求送信手段78で要求した暗号化データを、ネットワークNを介して、データ検索装置6から受信するものである。
このデータ受信手段79は、受信した暗号化データを、検証・復号手段81に出力する。
署名用公開鍵受信手段80は、中間暗号化装置2で生成された署名用公開鍵を受信するものである。この署名用公開鍵受信手段80は、受信した署名用公開鍵を検証・復号手段81に出力する。
この署名用公開鍵受信手段は、検証・復号手段81が署名用公開鍵を参照するタイミングで中間暗号化装置2に要求し取得する。
検証・復号手段81は、データ受信手段79で受信した暗号化データ(合成暗号化データ)を検証し、復号するものである。ここでは、検証・復号手段81は、検索結果検証手段810と、署名検証手段811と、ポリシー判定手段812と、ブルームフィルタ検証手段813と、データ復号手段814と、を備える。
検索結果検証手段810は、暗号化データに付加されている検証用データに基づいて、検索結果が要求した検索トークンに対応する検索結果であるか否かを検証するものである。ここでは、検索結果検証手段810は、属性ベース検索可能暗号方式の検証を行う。この検証方式については、動作の説明において詳細に行う。
この検索結果検証手段810は、検証が正しく行われた暗号化データを署名検証手段811に出力する。
署名検証手段811は、暗号化データに付加されている署名を検証するものである。この署名検証手段811は、署名用公開鍵受信手段80を介して、中間暗号化装置2から、署名用公開鍵を取得し、署名の検証を行う。なお、署名方式は、中間暗号化装置2との間で予め共有しておく。
この署名検証手段811は、署名が正しく検証された暗号化データをポリシー判定手段812に出力する。
ポリシー判定手段812は、受信者の属性が、暗号化データに付加されているポリシーを満たすか否かを判定するものである。このポリシー判定手法については、動作の説明において詳細に行う。
このポリシー判定手段812は、属性がポリシーを満たす暗号化データをブルームフィルタ検証手段813に出力する。
ブルームフィルタ検証手段813は、暗号化データに付加されている暗号化ブルームフィルタを検証するものである。ブルームフィルタは、インデックス内にキーワードが含まれていない(陰性)場合を、100%の確率で確認することができる。そこで、ブルームフィルタ検証手段813は、インデックス内にキーワードが含まれていない場合を除外する処理を行う。このブルームフィルタ検証手段813の処理については、動作の説明において詳細に行う。
このブルームフィルタ検証手段813は、最終的にキーワードに対応する暗号化データをデータ復号手段814に出力する。
データ復号手段814は、暗号化データを復号するものである。この復号処理については、動作の説明において詳細に行う。
なお、検証・復号手段81の各手段において、検証で失敗した場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
このように復号装置7を構成することで、復号装置7は、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化されたデータを、復号装置7のユーザの属性に応じて復号することができる。また、復号装置7は、指定されたキーワードに合致するデータを復号することができる。
この復号装置7は、CPU、ROM、RAM、HDD、通信インタフェース等(図示を省略)を備え、CPUがHDD等に格納されたプログラム(復号プログラム)をRAMに展開することにより、CPU(コンピュータ)を、前記した各手段として機能させることができる。
[属性ベース秘匿検索システムの動作]
次に、本発明の実施形態に係る属性ベース秘匿検索システムSAの動作について説明する。ここでは、鍵(公開鍵、秘密鍵)の生成・配信動作と、データの中間暗号化および暗号化動作と、データの復号動作とに分けて説明する。
〔鍵(公開鍵、秘密鍵)生成・配信動作〕
最初に、図8を参照(構成については、適宜図3〜図7参照)して、属性ベース秘匿検索システムSAの鍵(公開鍵、秘密鍵)の生成・配信動作について説明する。
まず、鍵生成装置1は、パラメータ入力手段100によって、セキュリティパラメータを外部から入力する(S10)。
そして、鍵生成装置1は、公開鍵・マスタ鍵生成手段101によって、S10で入力されたパラメータに基づいて、公開鍵およびマスタ鍵を生成する(S11)。なお、このS11における公開鍵・マスタ鍵生成動作については、図9を参照して後で詳細に説明する。
そして、鍵生成装置1は、公開鍵・マスタ鍵生成手段101によって、生成した公開鍵を公開鍵記憶手段102に書き込み記憶し、生成したマスタ鍵をマスタ鍵記憶手段103に書き込み記憶する(S12)。
その後、鍵生成装置1は、公開鍵送信手段104によって、S12で公開鍵記憶手段102に記憶されている公開鍵を、中間暗号化装置2、委託暗号化装置4および復号装置7に送信(公開)する(S13)。
そして中間暗号化装置2は、公開鍵受信手段23によって、S13で送信された公開鍵を受信し、公開鍵記憶手段24に書き込み記憶する(S14)。
また、委託暗号化装置4は、公開鍵受信手段40によって、S13で送信された公開鍵を受信し、公開鍵記憶手段41に書き込み記憶する(S15)。さらに、委託暗号化装置4は、公開鍵送信手段42によって、S15で受信した公開鍵を、同じクラウドサーバ3内のデータ検索装置6に送信する(S16)。
そして、データ検索装置6は、公開鍵受信手段60によって、S16で送信された公開鍵を受信し、公開鍵記憶手段61に書き込み記憶する(S17)。
ここでは、データ検索装置6は、鍵生成装置1の負荷を減らすために、委託暗号化装置4から公開鍵を取得しているが、もちろん、直接、鍵生成装置1から取得することとしてもよい。
また、復号装置7は、公開鍵受信手段70によって、S13で送信された公開鍵を受信し、公開鍵記憶手段71に書き込み記憶する(S18)。
そして、復号装置7は、登録要求送信手段72によって、受信者の属性Sと受信者idとを含んだ登録要求を、ネットワークNを介して、鍵生成装置1に送信する(S19)。
さらに、鍵生成装置1は、以下の動作によって、個別の復号装置7を対象として属性付き秘密鍵を生成する。
すなわち、鍵生成装置1は、属性入力手段110によって、個別の復号装置7からの登録要求(受信者に対する属性Sおよび受信者id)を受信する(S20)。
そして、鍵生成装置1は、秘密鍵生成手段111によって、S12で公開鍵記憶手段102に記憶された公開鍵と、マスタ鍵記憶手段103に記憶されたマスタ鍵と、S20で受信した登録要求内の属性Sおよび受信者idとに基づいて、秘密鍵を生成する(S21)。なお、このS21における秘密鍵生成動作については、図12を参照して後で詳細に説明する。
さらに、鍵生成装置1は、属性付き秘密鍵生成手段112によって、S21で生成された秘密鍵に、S20で入力された属性Sを関連付けて、属性付き秘密鍵を生成する(S22)。
その後、鍵生成装置1は、属性付き秘密鍵送信手段113によって、S22で生成された属性付き秘密鍵を、復号装置7に送信する(S23)。
一方、復号装置7は、属性付き秘密鍵受信手段73によって、S23で送信された属性付き秘密鍵を受信し、属性付き秘密鍵記憶手段74に書き込み記憶する(S24)。
以上の動作により、属性ベース秘匿検索システムSAは、鍵生成装置1によって、属性ベース暗号および属性ベース検索可能暗号における鍵(公開鍵、秘密鍵)を生成し、鍵を必要とする中間暗号化装置2、クラウドサーバ3(委託暗号化装置4、データ検索装置6)、および復号装置7に送信することができる。
(公開鍵・マスタ鍵生成動作)
次に、図9を参照(構成については、適宜図3参照)して、図8のS11の動作(公開鍵・マスタ鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、ハッシュ関数選択手段101aによって、予め準備した複数のハッシュ関数の中から、ブルームフィルタで使用するk個のハッシュ関数(h′,…,h′)を選択する(S110)。さらに、鍵生成装置1は、ハッシュ関数選択手段101aによって、セキュリティパラメータのビット長spのデータを、ブルームフィルタのビット長mのデータに変換するハッシュ関数hを、予め準備した複数のハッシュ関数の中から選択する(S111)。
そして、鍵生成装置1は、第1公開鍵・マスタ鍵生成手段101bによって、委託可能な属性ベース暗号方式(ABEO)における公開鍵(第1公開鍵)とマスタ鍵(第1マスタ鍵)とを生成する(S112)。
この第1公開鍵・マスタ鍵生成手段101bの動作(ABEOのSetupアルゴリズム)については、さらに、図10を参照して説明する。
図10に示すように、第1公開鍵・マスタ鍵生成手段101bは、セキュリティパラメータで特定される大きさ(ビット長sp)の素数pを選択し、当該素数pを位数(素数位数p)とする巡回群G,Gを選択する(S1120)。
また、第1公開鍵・マスタ鍵生成手段101bは、巡回群G,GがG×G→Gとなる双線形写像eを選択する(S1121)。例えば、第1公開鍵・マスタ鍵生成手段101bは、e:G×G→Gとなる双線形写像eとして、一般的な“Weil Pairing”、“Tate Pairing”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像eは、2つの引数を持つe(・,・)で表される写像である。
そして、第1公開鍵・マスタ鍵生成手段101bは、巡回群Gの中からランダムに1つの生成元gを選択(g∈G)する(S1122)。
また、第1公開鍵・マスタ鍵生成手段101bは、乱数α,aを、Zからランダムに選択する(S1123)。なお、Zは、{0,…,p−1}の整数の集合である。
さらに、第1公開鍵・マスタ鍵生成手段101bは、以下の式(1)〜式(3)のハッシュ関数H,H′,H″を予め準備した複数のハッシュ関数の中から選択する(S1124)。
Figure 2018148493
ここで、{0,1}は、任意のビット列を示す。
すなわち、式(1)のハッシュ関数(第1ハッシュ関数)Hは、引数が1つ(H(・))で、任意のビット列の値を与えたとき、巡回群Gに属する値を返す関数である。式(2)のハッシュ関数(第2ハッシュ関数)H′は、引数が4つ(H′(・,・,・,・))で、第1,第2引数として巡回群Gに属する値、第3,第4引数として任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。また、式(3)のハッシュ関数(第3ハッシュ関数)H″は、引数が1つ(H″(・))で、任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。
そして、第1公開鍵・マスタ鍵生成手段101bは、S1121からS1123で選択されたe,g,α,aに基づいて、e(g,g)のα乗およびgのa乗を演算する(S1125)。
そして、第1公開鍵・マスタ鍵生成手段101bは、以下の式(4)に示すように、素数位数p、巡回群G,G、双線形写像e、生成元g、演算値e(g,g)α、gおよびハッシュ関数H,H′,H″を、第1公開鍵ABEO.pkとして生成する(S1126)。
Figure 2018148493
また、第1公開鍵・マスタ鍵生成手段101bは、以下の式(5)に示すように、生成元gのα乗を演算して第1マスタ鍵ABEO.mkを生成する(S1127)。
Figure 2018148493
図9に戻って、公開鍵・マスタ鍵生成動作について説明を続ける。
鍵生成装置1は、第2公開鍵・マスタ鍵生成手段101cによって、委託可能な属性ベース検索可能暗号方式(ABKSO)における公開鍵(第2公開鍵)とマスタ鍵(第2マスタ鍵)とを生成する(S113)。
この第2公開鍵・マスタ鍵生成手段101cの動作(ABKSOのSetupアルゴリズム)については、さらに、図11を参照して説明する。なお、図11のS1130〜S1133の動作は、図10のS1120〜S1123の動作と同じであるため、説明を省略する。
そして、第2公開鍵・マスタ鍵生成手段101cは、以下の式(6)〜式(8)のハッシュ関数H,H′,H″を予め準備した複数のハッシュ関数の中から選択する(S1134)。
Figure 2018148493
なお、式(6)は式(1)、式(8)は式(3)と同じであるため、説明を省略する。式(7)のハッシュ関数(第2ハッシュ関数)H′は、引数が2つ(H′(・,・))で、第1引数として巡回群Gに属する値、第2引数として任意のビット列の値を与えたとき、任意のビット列の値を返す関数である。
そして、第2公開鍵・マスタ鍵生成手段101cは、S1131からS1133で選択されたe,g,α,aに基づいて、e(g,g)のα乗およびgのa乗を演算する(S1135)。
さらに、第2公開鍵・マスタ鍵生成手段101cは、以下の式(9)のメッセージ認証子を生成する関数(メッセージ認証子生成関数)Fを予め準備した関数の中から選択する(S1136)。
Figure 2018148493
この式(9)のメッセージ認証子生成関数Fは、引数が2つ(F(・,・))で、第1引数として巡回群Gに属する値、第2引数として任意のビット列の値を与えたとき、長さmのビット列の値を返す関数である。
そして、第2公開鍵・マスタ鍵生成手段101cは、以下の式(10)に示すように、素数位数p、巡回群G,G、双線形写像e、生成元g、演算値e(g,g)α、g、メッセージ認証子生成関数Fおよびハッシュ関数H,H′,H″を、第2公開鍵ABKSO.pkとして生成する(S1137)。
Figure 2018148493
また、第2公開鍵・マスタ鍵生成手段101cは、以下の式(11)に示すように、S1133で選択した乱数αを第2マスタ鍵ABKSO.mkとする(S1138)。
Figure 2018148493
図9に戻って、公開鍵・マスタ鍵生成動作について説明を続ける。
公開鍵・マスタ鍵生成手段101は、以下の式(12)に示すように、S112で生成された第1公開鍵ABEO.pkと、S113で生成された第2公開鍵ABKSO.pkと、S110およびS111で選択されたハッシュ関数h,h′,…,h′を、公開鍵PKとして生成する(S114)。
Figure 2018148493
さらに、公開鍵・マスタ鍵生成手段101は、以下の式(13)に示すように、S112で生成された第1マスタ鍵ABEO.mkと、S113で生成された第2マスタ鍵ABKSO.mkとを、マスタ鍵MKとして生成する(S115)。
Figure 2018148493
以上の動作により、鍵生成装置1は、属性ベース暗号および属性ベース検索可能暗号における公開鍵およびマスタ鍵を生成することができる。
(秘密鍵生成動作)
次に、図12を参照(構成については、適宜図3参照)して、図8のS21の動作(秘密鍵生成動作)について詳細に説明する。
まず、鍵生成装置1は、第1秘密鍵生成手段111aによって、委託可能な属性ベース暗号方式(ABEO)における秘密鍵(第1秘密鍵)を生成する(S210)。
この第1秘密鍵生成手段111aの動作については、さらに、図13を参照して説明する。
図13に示すように、第1秘密鍵生成手段111aは、乱数tをZからランダムに選択する(S2100)。
そして、第1秘密鍵生成手段111aは、公開鍵記憶手段102に記憶されている第1公開鍵の一部であるgと、マスタ鍵記憶手段103に記憶されている第1マスタ鍵(=gα)を用いて、以下の式(14)の演算を行い、第1秘密鍵の要素Kを求める(S2101)。
Figure 2018148493
そして、第1秘密鍵生成手段111aは、公開鍵記憶手段102に記憶されている第1公開鍵の一部であるgを用いて、以下の式(15)の演算を行い、秘密鍵の要素Lを求める(S2102)。
Figure 2018148493
さらに、第1秘密鍵生成手段111aは、属性Sのすべての属性値xにおいて、公開鍵記憶手段102に記憶されている第1公開鍵の一部であるハッシュ関数Hを用いて、以下の式(16)の演算を行い、第1秘密鍵の要素K、すなわち、属性Sの属性値の個数分のハッシュ値を求める(S2103)。
Figure 2018148493
そして、第1秘密鍵生成手段111aは、前記式(14)〜式(16)で演算された各要素で構成される以下の式(17)に示す第1秘密鍵ABEO.skを生成する(S2104)。
Figure 2018148493
図12に戻って、秘密鍵生成動作の説明を続ける。
鍵生成装置1は、第2秘密鍵生成手段111bによって、委託可能な属性ベース検索可能暗号方式(ABKSO)における秘密鍵(第2秘密鍵)を生成する(S211)。
この第2秘密鍵生成手段111bの動作については、さらに、図14を参照して説明する。
図14のS2110〜S2113の動作は、図13のS2100〜S2103の第1公開鍵、第1マスタ鍵を用いる代わりに、第2公開鍵、第2マスタ鍵を用いる点が異なっているだけである。ただし、S2111の演算において、第2秘密鍵生成手段111bは、gαを、第2公開鍵の一部であるgと第2マスタ鍵のαとで演算する。
そして、第2秘密鍵生成手段111bは、S2111の演算途中で生成されるgatを、受信者idに対応付けて、受信者リスト記憶手段114に記憶する(S2114)。
そして、第2秘密鍵生成手段111bは、第2公開鍵、第2マスタ鍵を用いて、前記式(14)〜式(16)で演算された各要素で構成される以下の式(18)に示す第2秘密鍵ABKSO.skを生成する(S2115)。
Figure 2018148493
図12に戻って、秘密鍵生成動作の説明を続ける。
秘密鍵生成手段111は、以下の式(19)に示すように、S210で生成された第1秘密鍵ABEO.skと、S211で生成された第2秘密鍵ABKSO.skとを、秘密鍵SKとして生成する(S212)。
Figure 2018148493
以上の動作により、鍵生成装置1は、属性ベース暗号および属性ベース検索可能暗号における秘密鍵を生成することができる。
〔データ暗号化(中間暗号化を含む)動作〕
次に、図15を参照(構成については、適宜図4〜図6参照)して、属性ベース秘匿検索システムSAのデータの中間暗号化および暗号化動作について説明する。
まず、中間暗号化装置2は、ポリシー入力手段20によって、暗号化データを復号するための条件(復号条件)となるポリシーを外部から入力する(S40)。なお、このポリシーは、線形秘密分散法(LSSS)によって予め生成されたアクセス行列Aと、アクセス行列Aの各行に対応する属性の属性種別を属性値に変換する写像ρとで構成される。
また、中間暗号化装置2は、データ入力手段21によって、暗号化の対象となるデータを外部から入力する(S41)。
さらに、中間暗号化装置2は、インデックス入力手段22によって、暗号化の対象となるデータを検索するためのインデックスを入力する(S42)。
ここでは、S41では、d個のデータ集合FS(FS={F,…,F})が入力されることとする。また、S42では、n個のインデックス(インデックス内には、複数のキーワードを含む)集合KG(KG={KG,…,KG})が入力されることとする。ここで、KGは、同じポリシーで暗号化を行うキーワードの集合である。さらに、S41では、キーワードwを含むデータを識別する識別子の集合MP(w)が入力されることとする。
また、S40では、インデックスKGを暗号化するためのポリシー(A,ρ)={(A,ρ),…,(A,ρ)}と、データFを暗号化するためのポリシー(A′,ρ′)={(A′,ρ′),…,(A′,ρ′)}が入力されることとする。
そして、中間暗号化装置2は、中間暗号化データ生成手段25によって、公開鍵記憶手段24に記憶されている公開鍵と、ポリシー入力手段20で入力されたポリシーとに基づいて、S41で入力されたデータに対して、属性ベース暗号方式における中間的な暗号化を行う(S43)。なお、このS43におけるデータを証明書付き中間暗号化する動作については、図16を参照して後で詳細に説明する。
そして、中間暗号化装置2は、中間暗号化インデックス生成手段26によって、公開鍵記憶手段24に記憶されている公開鍵と、S40で入力されたポリシーとに基づいて、S42で入力されたインデックスに対して、属性ベース検索可能暗号方式における中間的な暗号化を行う(S44)。なお、このS44におけるインデックスを証明書付き中間暗号化する動作については、図18を参照して後で詳細に説明する。
ここで、中間暗号化装置2は、署名用鍵生成手段31によって、電子署名で使用する署名用鍵(署名用秘密鍵、署名用公開鍵)を生成する(S45)。
そして、中間暗号化装置2は、暗号化ブルームフィルタ生成手段27によって、S42で入力されたインデックスと、S45で生成された署名用秘密鍵と、乱数とを用いて、署名付き暗号化ブルームフィルタを生成する(S46)。なお、このS46におけるブルームフィルタを暗号化する動作については、図20を参照して後で詳細に説明する。
続けて、中間暗号化装置2は、中間暗号化乱数生成手段28によって、S46で署名付き暗号化ブルームフィルタを生成する際に用いた乱数に対して、属性ベース暗号方式における中間的な暗号化を行う(S47)。なお、このS47における乱数を証明書付き中間暗号化する動作については、図21を参照して後で詳細に説明する。
そして、中間暗号化装置2は、データ合成手段29によって、S40で入力されたポリシーと、S43で生成された証明書付き中間暗号化データと、S44で生成された証明書付き中間暗号化インデックスと、S46で生成された署名付き暗号化ブルームフィルタと、S47で生成された証明書付き中間暗号化乱数とを合成する(S48)。
そして、中間暗号化装置2は、データ送信手段30によって、S48で合成された中間暗号化データ(ポリシー、証明書付き中間暗号化データ、証明書付き中間暗号化インデックス、署名付き暗号化ブルームフィルタ、証明書付き中間暗号化乱数)を、ネットワークNを介して、委託暗号化装置4に送信する(S49)。
そして、委託暗号化装置4は、データ受信手段43によって、S49で送信された中間暗号化データ(ポリシー、証明書付き中間暗号化データ、証明書付き中間暗号化インデックス、署名付き暗号化ブルームフィルタ、証明書付き中間暗号化乱数)を受信する(S50)。
その後、委託暗号化装置4は、データ分離手段44によって、S50で受信した中間暗号化データを、個々のデータ(ポリシー、証明書付き中間暗号化データ、証明書付き中間暗号化インデックス、署名付き暗号化ブルームフィルタ、証明書付き中間暗号化乱数)に分離する(S51)。
そして、委託暗号化装置4は、データ暗号化手段450によって、公開鍵記憶手段41に記憶されている公開鍵と、S51で分離されたポリシーとに基づいて、S51で分離された証明書付き中間暗号化データにさらに暗号化処理を継続して実行して、暗号化データを生成する(S52)。なお、このS52における暗号化データ生成動作については、図22を参照して後で詳細に説明する。
また、委託暗号化装置4は、インデックス暗号化手段451によって、公開鍵記憶手段41に記憶されている公開鍵と、S51で分離されたポリシーとに基づいて、S51で分離された証明書付き中間暗号化インデックスにさらに暗号化処理を継続して実行して、暗号化インデックスを生成する(S53)。なお、このS53における暗号化インデックス生成動作については、図24を参照して後で詳細に説明する。
さらに、委託暗号化装置4は、乱数暗号化手段452によって、公開鍵記憶手段41に記憶されている公開鍵と、S51で分離されたポリシーとに基づいて、S51で分離された証明書付き中間暗号化乱数にさらに暗号化処理を継続して実行して、暗号化乱数を生成する(S54)。なお、このS54における暗号化乱数生成動作については、図26を参照して後で詳細に説明する。
そして、委託暗号化装置4は、データ合成手段46によって、S51で分離されたポリシーおよび署名付き暗号化ブルームフィルタと、S52で生成された証明書付き暗号化データと、S53で生成された証明書付き暗号化インデックスと、S54で生成された証明書付き暗号化乱数とを合成する(S55)。
そして、委託暗号化装置4は、データ書込手段47によって、S55で合成された暗号化データ(ポリシー、証明書付き暗号化データ、証明書付き暗号化インデックス、証明書付き暗号化乱数、署名付き暗号化ブルームフィルタ)を、データ記憶装置5に書き込み、記憶する(S56)。
以上の動作により、属性ベース秘匿検索システムSAは、中間暗号化装置2と委託暗号化装置4とで暗号化処理を分散して行い、暗号化データをデータ記憶装置5に記憶させることができる。
(中間暗号化データ生成動作)
次に、図16を参照(構成については、適宜図4参照)して、中間暗号化装置2の中間暗号化データ生成手段25が行う図15のS43の動作(中間暗号化データ生成動作)について詳細に説明する。
まず、中間暗号化データ生成手段25は、データ集合FSのデータの個数を計数するカウンタiを初期化(i=1)する(S430)。
そして、中間暗号化データ生成手段25は、予め定めた共通鍵暗号化方式により、共通鍵SE.skを生成する(S431)。
そして、中間暗号化データ生成手段25は、データFを共通鍵SE.skで暗号化して、暗号化データcphSEiを生成する(S432)。
そして、中間暗号化データ生成手段25は、委託可能な属性ベース暗号方式(ABEO)の中間暗号化処理(ABEO.Encryptu)により、S431で生成した共通鍵SE.skを、ポリシー(A′,ρ′)で中間暗号化して、中間暗号化共通鍵cphski′と証明書πskiを生成する(S433)。
このABEOの中間暗号化処理(ABEO.Encryptu)について、さらに、図17を参照して説明する。
図17に示すように、ABEOの中間暗号化処理(以下、ABEO中間暗号化)は、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y,…,y,β,β,…,βを、Zからランダムに選択する(S4330)。なお、Zは、第1公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、ABEO中間暗号化は、選択した乱数から、以下の式(20)により、中間暗号化データの要素となるベクトルvを求める(S4331)。
Figure 2018148493
また、ABEO中間暗号化は、乱数sと、公開鍵記憶手段24に記憶されている第1公開鍵の一部であるe(g,g)αおよびgとにより、以下の式(21)を演算することで、中間暗号化データの要素C,C′を求める(S4332)。
Figure 2018148493
ここで、Mは、暗号化対象である共通鍵である。
さらに、ABEO中間暗号化は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、以下の式(22)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号Jを選択する(S4333)。
Figure 2018148493
例えば、アクセス行列Aが、以下の式(23)に示す3行2列の行列であった場合、J={2}、J={1,2}、J={1}となる。
Figure 2018148493
そして、ABEO中間暗号化は、以下の式(24)を演算することで、中間暗号化データの要素E(1≦i≦m)を求める(S4334)。
Figure 2018148493
そして、ABEO中間暗号化は、前記式(20),式(21),式(24)で演算された各要素で構成される以下の式(25)に示す中間暗号化データcph′を生成する(S4335)。
Figure 2018148493
ここで、<>は、データの連結を示し、予め定めたデータフォーマットで連結することを意味する。なお、連結の順番は、予めデータを利用する側と共通であれば、どのような順番でも構わない。
そして、ABEO中間暗号化は、中間暗号化データcph′の正当性を検証するための情報である証明書πを、以下の式(26)を演算することで生成する(S4336)。
Figure 2018148493
ここで、e(g,g)α、ハッシュ関数H′,H″は、公開鍵記憶手段24に記憶されている第1公開鍵の一部である。sは、S4330で選択された乱数である。sidは、送信者を識別する識別子である。
また、posは、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報(文字列)である。例えば、アクセス行列Aが前記式(23)の場合、posは、アクセス行列Aの要素が“1”となるすべての位置を文字列で表した、{(1,2),(2,1),(2,2),(3,1)}となる。
図16に戻って、中間暗号化データ生成動作について、説明を続ける。
中間暗号化データ生成手段25は、S432で生成されたcphSEiと、S433で生成されたcphski′とを対応付ける(cphFi′=(cphski′,cphSEi);S434)。
そして、中間暗号化データ生成手段25は、入力されるすべてのデータ(d個)に対して、中間暗号化を行ったか否かを判定する(S435)。
ここで、すべてのデータについて中間暗号化が終了していない場合(S435でNo)、中間暗号化データ生成手段25は、iに“1”を加算して(S436)、S431に戻って動作を継続する。
一方、すべてのデータについて中間暗号化が終了した場合(S435でYes)、中間暗号化データ生成手段25は、動作を終了する。
(中間暗号化インデックス生成動作)
次に、図18を参照(構成については、適宜図4参照)して、中間暗号化装置2の中間暗号化インデックス生成手段26が行う図15のS44の動作(中間暗号化インデックス生成動作)について詳細に説明する。
まず、中間暗号化インデックス生成手段26は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S440)。
中間暗号化インデックス生成手段26は、インデックス集合KGに含まれるすべてのキーワードwについて、委託可能な属性ベース検索可能暗号方式(ABKSO)の中間暗号化処理(ABEO.EncDO)により、ポリシー(A,ρ)で中間暗号化して、中間暗号化インデックスcph′と証明書πを生成する(S441)。
このABKSOの中間暗号化処理(ABEO.EncDO)について、さらに、図19を参照して説明する。
図19に示すように、ABKSOの中間暗号化処理(以下、ABKSO中間暗号化)は、ポリシーとして入力されるアクセス行列の列の数をnとしたとき、(2×n)個分の乱数s,y,…,y,β,β,…,βを、Zからランダムに選択する(S4410)。なお、Zは、第2公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、ABKSO中間暗号化は、選択した乱数から、前記式(20)と同様に、中間暗号化インデックスの要素となるベクトルvを求める(S4411)。
そして、ABKSO中間暗号化は、乱数sと、公開鍵記憶手段24に記憶されている第2公開鍵の一部であるgとにより、以下の式(27)を演算することで、中間暗号化データの要素C′を求める(S4412)。
Figure 2018148493
また、ABKSO中間暗号化は、ランダムなビット列t^(tハット)を選択する(S4413)。
そして、ABKSO中間暗号化は、乱数sと、公開鍵記憶手段24に記憶されている第2公開鍵の一部であるe,e(g,g)αおよびHとにより、以下の式(28)を演算することで、k^を求める(S4414)。
Figure 2018148493
さらに、ABKSO中間暗号化は、S4414の演算結果k^と、S4413で選択したビット列t^とを引数として、公開鍵記憶手段24に記憶されている第2公開鍵の一部である関数Fを演算し、以下の式(29)に示すように、キーワードwごとの変数idx(w)に、t^とFの演算結果とを設定する(S4415)。
Figure 2018148493
さらに、ABKSO中間暗号化は、ポリシーに含まれるアクセス行列Aをm行n列としたとき、前記式(21)に示すように、アクセス行列Aの行iごとに、要素の値が“1”である列番号Jを選択する(S4416)。
そして、ABKSO中間暗号化は、前記式(23)を演算することで、中間暗号化インデックスの要素E(1≦i≦m)を求める(S4417)。
そして、ABKSO中間暗号化は、以下の式(30)に示す中間暗号化インデックスcph′を生成する(S4418)。
Figure 2018148493
そして、ABKSO中間暗号化は、中間暗号化インデックスcph′の正当性を検証するための情報である証明書πを、以下の式(31)を演算することで生成する(S4419)。
Figure 2018148493
これによって、インデックス集合KGに含まれるすべてのキーワードwについて、中間暗号化インデックスcph′と証明書πが生成される。
図18に戻って、中間暗号化インデックス生成動作について、説明を続ける。
中間暗号化インデックス生成手段26は、以下の式(32)に示すように、キーワードwを含むデータFを識別する識別子の集合MP(w)を、中間暗号化インデックスcph′に対応するように、中間暗号化インデックスcph′に対するデータFを識別する識別子の集合MP(cph′)を設定する(S442)。
Figure 2018148493
そして、中間暗号化インデックス生成手段26は、入力されるすべてのインデックス(n個)に対して、中間暗号化を行ったか否かを判定する(S443)。
ここで、すべてのインデックスについて中間暗号化が終了していない場合(S443でNo)、中間暗号化インデックス生成手段26は、iに“1”を加算して(S444)、S441に戻って動作を継続する。
一方、すべてのインデックスについて中間暗号化が終了した場合(S443でYes)、中間暗号化インデックス生成手段26は、動作を終了する。
(暗号化ブルームフィルタ生成動作)
次に、図20を参照(構成については、適宜図4参照)して、中間暗号化装置2の暗号化ブルームフィルタ生成手段27が行う図15のS46の動作(暗号化ブルームフィルタ生成動作)について詳細に説明する。
まず、暗号化ブルームフィルタ生成手段27は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S460)。
そして、暗号化ブルームフィルタ生成手段27のブルームフィルタ生成手段270は、公開鍵記憶手段24に記憶されているハッシュ関数(h′,…,h′)を用いて、インデックス入力手段22から入力されたインデック集合KG(KG={KG,…,KG})のi番目のインデックスKGから、ブルームフィルタBFを生成する(S461)。すなわち、ブルームフィルタ生成手段270は、初期状態のビットがすべて“0”のブルームフィルタBFに,ハッシュ関数(h′,…,h′)のそれぞれの演算を行ったKGのハッシュ値に対応するビットをセットすることで、ブルームフィルタBFを生成する。
そして、暗号化ブルームフィルタ生成手段27は、公開鍵記憶手段24に記憶されている第2公開鍵の一部であるGから、乱数Mをランダムに選択する(S462)。
そして、暗号化ブルームフィルタ生成手段27のブルームフィルタ暗号化手段271は、以下の式(33)に示すように、公開鍵記憶手段24に記憶されているハッシュ関数hにより、S460で選択された乱数Mのハッシュ値を演算し、S462で生成されたブルームフィルタBFと排他的論理和演算することで、暗号化ブルームフィルタBF′を生成する(S463)。
Figure 2018148493
さらに、暗号化ブルームフィルタ生成手段27の署名付与手段272は、署名用鍵生成手段31で生成された署名用秘密鍵により、S463で生成された暗号化ブルームフィルタBF′の署名σBFiを生成する(S464)。
これによって、インデックスKGに対応する暗号化ブルームフィルタBFi′と、その署名σBFiとが生成される。
ここで、すべてのインデックスについてブルームフィルタの暗号化が終了していない場合(S465でNo)、暗号化ブルームフィルタ生成手段27は、iに“1”を加算して(S466)、S461に戻って動作を継続する。
一方、すべてのインデックスについてブルームフィルタの暗号化が終了した場合(S465でYes)、暗号化ブルームフィルタ生成手段27は、動作を終了する。
(中間暗号化乱数生成動作)
次に、図21を参照(構成については、適宜図4参照)して、中間暗号化装置2の中間暗号化乱数生成手段28が行う図15のS47の動作(中間暗号化乱数生成動作)について詳細に説明する。
まず、中間暗号化乱数生成手段28は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S470)。
中間暗号化乱数生成手段28は、図20のS462で選択された乱数Mについて、委託可能な属性ベース暗号方式(ABEO)の中間暗号化処理(ABEO.Encryptu)により、ポリシー(A,ρ)で中間暗号化して、ブルームフィルタBFに対応する中間暗号化乱数cphBFi′と証明書πBFiを生成する(S471)。
なお、このS471の中間暗号化処理は、図17の動作と同じであるため、説明を省略する。
ここで、すべてのインデックスについて乱数の中間暗号化が終了していない場合(S472でNo)、中間暗号化乱数生成手段28は、iに“1”を加算して(S473)、S471に戻って動作を継続する。
一方、すべてのインデックスについて乱数の中間暗号化が終了した場合(S472でYes)、中間暗号化乱数生成手段28は、動作を終了する。
(暗号化データ生成動作)
次に、図22を参照(構成については、適宜図5参照)して、委託暗号化装置4のデータ暗号化手段450が行う図15のS52の動作(暗号化データ生成動作)について詳細に説明する。
まず、データ暗号化手段450は、データ集合FSの個数を計数するカウンタiを初期化(i=1)する(S520)。
そして、データ暗号化手段450は、委託可能な属性ベース暗号方式(ABEO)の暗号化処理(ABEO.Encryptc)により、図16のS433で生成された中間暗号化共通鍵cphski′を暗号化する(S521)。
このABEOの暗号化処理(ABEO.Encryptc)について、さらに、図23を参照して説明する。
このABEOの暗号化処理(以下、ABEO暗号化)は、ポリシーに含まれるm行n列のアクセス行列Aの行i(1≦i≦m)ごとに、A=(Ai,1i,2 … Ai,n)をアクセス行列Aのi行目ベクトルとして、以下の式(34)に示すように、中間暗号化データcph′(式(24)参照)に含まれるベクトルvとの内積λ′を演算する(S5210)。
Figure 2018148493
また、ABEO暗号化は、ポリシーに含まれるm行n列のアクセス行列Aの行数分(m個)の乱数r,r,…,rを、Zからランダムに選択する(S5211)。なお、Zは、第1公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合である。
そして、ABEO暗号化は、選択した乱数r,r,…,rと、公開鍵記憶手段41に記憶されている第1公開鍵の一部であるg、gおよびハッシュ関数Hと、ポリシーに含まれる写像ρと、中間暗号化データcph′(式(25)参照)に含まれる要素Eとにより、以下の式(35)を演算することで、暗号化データの要素{C,D}(1≦i≦m)を求める(S5212)。
Figure 2018148493
そして、ABEO暗号化は、中間暗号化データに含まれている要素C,C′と、前記式(35)で演算された各要素とで構成される以下の式(36)に示す暗号化データcphを生成する(S5213)。
Figure 2018148493
図22に戻って、暗号化データ生成動作について、説明を続ける。
データ暗号化手段450は、S432(図16参照)で生成されたcphSEiと、S521で生成されたcphskiとを対応付ける(cphFi=(cphski,cphSEi);S522)。
そして、データ暗号化手段450は、すべてのデータ(d個)に対して、暗号化を行ったか否かを判定する(S523)。
ここで、すべてのデータについて暗号化が終了していない場合(S523でNo)、データ暗号化手段450は、iに“1”を加算して(S524)、S521に戻って動作を継続する。
一方、すべてのデータについて暗号化が終了した場合(S523でYes)、データ暗号化手段450は、動作を終了する。
(暗号化インデックス生成動作)
次に、図24を参照(構成については、適宜図5参照)して、委託暗号化装置4のインデックス暗号化手段451が行う図15のS53の動作(暗号化インデックス生成動作)について詳細に説明する。
まず、インデックス暗号化手段451は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S530)。
そして、インデックス暗号化手段451は、委託可能な属性ベース検索可能暗号方式(ABKSO)の暗号化処理(ABKSO.EncCloud)により、図18のS441で生成された中間暗号化インデックスcph′を暗号化する(S531)。
このABKSOの暗号化処理(ABKSO.EncCloud)について、さらに、図25を参照して説明する。
図25のS5310〜S5312の動作は、図23のS5210〜S5212の第1公開鍵を用いる代わりに、第2公開鍵を用いる点が異なっているだけである。
そして、インデックス暗号化手段451は、中間暗号化インデックスに含まれている要素C′と、S5312で演算された各要素と、ポリシーと、S4415で演算されたidx(w)とで構成される以下の式(37)に示す暗号化インデックスcphを生成する(S5313)。
Figure 2018148493
図24に戻って、暗号化インデックス生成動作について、説明を続ける。
インデックス暗号化手段451は、以下の式(38)に示すように、中間暗号化インデックスcph′を含むデータFを識別する識別子の集合MP(cph′)を、インデックスcphに対応するように、インデックスcphに対するデータFを識別する識別子の集合MP(cph)を設定する(S532)。
Figure 2018148493
インデックス暗号化手段451は、すべてのインデックス(n個)に対して、暗号化を行ったか否かを判定する(S533)。
ここで、すべてのインデックスについて暗号化が終了していない場合(S533でNo)、インデックス暗号化手段451は、iに“1”を加算して(S534)、S531に戻って動作を継続する。
一方、すべてのインデックスについて暗号化が終了した場合(S5333でYes)、インデックス暗号化手段451は、動作を終了する。
(暗号化乱数生成動作)
次に、図26を参照(構成については、適宜図5参照)して、委託暗号化装置4の乱数暗号化手段452が行う図15のS54の動作(暗号化乱数生成動作)について詳細に説明する。
まず、乱数暗号化手段452は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S540)。
乱数暗号化手段452は、委託可能な属性ベース暗号方式(ABEO)の暗号化処理(ABEO.Encryptc)により、図21のS471で生成された中間暗号化乱数cphBFi′を暗号化する(S541)。
なお、このS541のABEOの暗号化処理(ABEO.Encryptc)は、図23の動作と同じであるため、説明を省略する。
ここで、すべてのインデックスについて乱数の暗号化が終了していない場合(S542でNo)、乱数暗号化手段452は、iに“1”を加算して(S523)、S541に戻って動作を継続する。
一方、すべてのインデックスについて乱数の暗号化が終了した場合(S542でYes)、乱数暗号化手段452は、動作を終了する。
〔データ復号動作〕
次に、図27を参照(構成については、適宜図4,図6,図7参照)して、属性ベース秘匿検索システムSAの暗号化データの復号動作について説明する。
まず、復号装置7は、キーワード入力手段75によって、取得するデータに対するキーワードを入力する(S60)。
そして、復号装置7は、検索トークン生成手段76によって、キーワードから、取得するデータを特定するための検索トークンを生成する(S61)。なお、このS60における検索トーン生成動作については、図28を参照して後で詳細に説明する。
そして、復号装置7は、データ要求送信手段78によって、検索トークンを含んだデータ要求をデータ検索装置6に送信する(S62)。
一方、データ検索装置6は、データ要求受信手段62によって、復号装置7から送信されたデータ要求を受信する(S63)。
そして、データ検索装置6は、検索手段63によって、データ記憶装置5に記憶されている暗号化データを検索する(S64)。なお、このS64における暗号化データ検索動作については、図29を参照して後で詳細に説明する。
そして、データ検索装置6は、データ送信手段65によって、S64で検索された暗号化データ(検索結果および検証用データを含む)を、復号装置7に送信する(S65)。
一方、復号装置7は、データ受信手段79によって、S65で送信された暗号化データを受信する(S66)。
ここで、復号装置7は、署名用公開鍵受信手段80によって、中間暗号化装置2に、署名用公開鍵を要求する(S67)。
これに対し、中間暗号化装置2は、署名用公開鍵送信手段33によって、署名用公開鍵要求を受信する(S68)。そして、中間暗号化装置2は、署名用公開鍵送信手段33によって、署名用公開鍵記憶手段32に記憶されている署名用公開鍵を読み出し、復号装置7に送信する(S69)。
そして、復号装置7は、署名用公開鍵受信手段80によって、S69で送信された署名用公開鍵を受信する(S70)。
そして、復号装置7は、検証・復号手段81によって、暗号化データの検証を行う(S71)。なお、このS71における検証動作については、図30A〜図30Cを参照して後で詳細に説明する。
そして、復号装置7は、S71の検証に成功した場合(S72でYes)、検証・復号手段81によって、暗号化データの復号を行う(S73)。なお、このS73における暗号化データ復号動作については、図33を参照して後で詳細に説明する。
以上の動作により、属性ベース秘匿検索システムSAは、線形秘密分散法(LSSS)のアクセス行列によってポリシーを指定して暗号化された暗号化データを、属性に応じて復号することができる。また、属性ベース秘匿検索システムSAは、指定されたキーワードに対応する暗号化データのみを復号することができる。
(検索トークン生成動作)
次に、図28を参照(構成については、適宜図3,図7参照)して、図27のS61の動作(検索トークン生成動作)について詳細に説明する。
まず、データ検索装置6は、検索トークン生成手段76によって、公開鍵記憶手段71に記憶されている第2公開鍵の一部である素数位数pに対する{0,…,p−1}の整数の集合であるZから、ランダムに乱数uを選択する(S610)。
そして、検索トークン生成手段76は、選択した乱数uと、第2公開鍵の一部であるgとにより、以下の式(39)を演算することで、トークン生成第2情報qを求める(S611)。
Figure 2018148493
そして、検索トークン生成手段76は、受信者idと、S611で生成したトークン生成第2情報qとを、検索トークンを生成する鍵を要求するトークン生成鍵要求として、トークン生成鍵取得手段77を介して、鍵生成装置1に送信する(S612)。
一方、鍵生成装置1は、トークン生成鍵生成配信手段115によって、トークン生成鍵要求(id,q)を受信する(S613)。
そして、トークン生成鍵生成配信手段115は、受信者リスト記憶手段114から、受信者idに対応するトークン生成第1情報gatを検索し、読み出す(S614)。
さらに、トークン生成鍵生成配信手段115は、S614で取得したトークン生成第1情報gatと、S613で受信したトークン生成第2情報qと、マスタ鍵記憶手段103に記憶されている第2マスタ鍵のαとにより、以下の式(40)を演算することで、トークン生成鍵qidを生成する(S615)。
Figure 2018148493
そして、トークン生成鍵生成配信手段115は、生成したトークン生成鍵qidを、復号装置7に送信する(S616)。
一方、復号装置7の検索トークン生成手段76は、トークン生成鍵取得手段77を介して、トークン生成鍵qidを受信する(S617)。
そして、検索トークン生成手段76は、入力したキーワードwと、第2公開鍵の一部であるハッシュ関数Hと、S617で受信したトークン生成鍵qidと、S610で選択した乱数uとにより、以下の式(41)の演算を行うことで、検索トークンの要素となるT(w)を生成する(S618)。
Figure 2018148493
また、検索トークン生成手段76は、第2秘密鍵の一部であるLと、乱数uとにより、以下の式(42)の演算を行うことで、検索トークンの要素となるL′を生成する(S619)。
Figure 2018148493
さらに、検索トークン生成手段76は、第2秘密鍵である属性Sの属性値の個数分のKに対して、乱数uにより、以下の式(43)の演算を行うことで、検索トークンの要素となるK′を生成する(S620)。
Figure 2018148493
そして、検索トークン生成手段76は、前記式(41)〜式(43)で演算された各要素で構成される以下の式(44)に示す検索トークンtkを生成する(S621)。
Figure 2018148493
(暗号化データ検索動作)
次に、図29を参照(構成については、適宜図6参照)して、図27のS64の動作(暗号化データ検索動作)について詳細に説明する。
まず、データ検索装置6は、検索手段63によって、検索結果となる暗号化インデックスcphを格納する検索結果rsltを空に設定し、検索結果を検証するための検証用データproofを空に設定する(S640)。
そして、検索手段63は、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S641)。
そして、検索手段63は、インデックス集合KGごとに、暗号化データcphを、データ記憶装置5から読み出して配列する(S642)。
そして、検索手段63は、S642に配列した暗号化インデックスcphが、検索トークンtkに対応するものであるか否かを、委託可能な属性ベース検索可能暗号方式(ABKSO)の検索処理(ABKSO.Search)により検索する(S643)。
このABKSOの検索処理(ABKSO.Search)については、さらに、図31を参照して説明する。
まず、ABKSOの検索処理(以下、ABKSO検索処理)は、暗号化データcphに含まれる属性がポリシーを満たすか否かを判定する(S6430)。
具体的には、ABKSO検索処理は、以下の式(45)に示すように、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する。
Figure 2018148493
そして、ABKSO検索処理は、以下の式(46)に示すように、アクセス行列Aの行ベクトルA(i∈I)を用いて、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwを求める。
Figure 2018148493
この式(46)において、「X s.t. Y」は、Yを満たすXを示す。
このとき、ABKSO検索処理は、式(46)の条件を満たす値wが存在する場合、属性がポリシーを満たすと判定する。
一方、ABKSO検索処理は、式(46)の条件を満たす値wが存在しない場合、属性がポリシーを満たさないと判定する。
ここで、属性がポリシーを満たさない場合(S6430でNo)、ABKSO検索処理は、検索結果として、(γ=0,aux=⊥)を設定して(S6431)、当該検索処理を終了する。ここで、“⊥”は、予め定めたエラーコードとする。
一方、属性がポリシーを満たす場合(S6430でYes)、ABKSO検索処理は、S6432に動作を進める。
そして、ABKSO検索処理は、以下の式(47)により、補助データauxを演算する(S6432)。
Figure 2018148493
そして、ABKSO検索処理は、以下の式(48)により、kを演算する(S6433)。
Figure 2018148493
ここで、ABKSO検索処理は、第2公開鍵の一部であるメッセージ認証子生成関数Fを用いて、以下の式(49)が満たされるか否かを判定する(S6434)。
Figure 2018148493
この式(49)が満たされる場合(S6434でYes)、ABKSO検索処理は、検索結果として、(γ=1、aux)を設定して(S6435)、当該検索処理を終了する。一方、式(49)が満たされない場合(S6434でNo)、ABKSO検索処理は、検索結果として、(γ=0、aux)を設定して(S6436)、当該検索処理を終了する。
図29に戻って、暗号化データ検索動作について説明を続ける。
検索手段63は、検索結果として、γの値が“1”であるか否かを判定する(S644)。
ここで、γ≠1であれば(S644でNo)、検索手段63は、S646に動作を進める。
一方、γ=1であれば(S644でYes)、検索手段63は、検索結果rsltに、暗号化インデックスcphと、当該暗号化インデックスcphに対応する識別子の集合MP(cph)に含まれる識別子に対応するcphFi(=(暗号化共通鍵cphski,暗号化データcphSEi))を加える。
さらに、検索手段63は、検証用データproofに、証明書πと暗号化乱数cphBFiを加える(S645)。
そして、KGに次キーワードがある場合(S646でYes)、検索手段63は、S643に戻る。
一方、KGに次キーワードがない場合(S646でNo)、検索手段63は、検索結果rsltが空のままであるか否かを判定する(S647)。
ここで、検索結果rsltが空でなければ(S647でNo)、検索手段63は、S649に動作を進める。
一方、検索結果rsltが空の場合(S647でYes)、検索手段63は、検証用データproofに、インデックスKGに対応する暗号化ブルームフィルタBF′、暗号化乱数cphBFi、署名σBFi、証明書πBFiを追加する(S648)。
ここで、すべてのインデックス集合について検索が終了していない場合(S649でNo)、検索手段63は、iに“1”を加算して(S650)、S642に戻って動作を継続する。
一方、すべてのインデックス集合について検索が終了した場合(S649でYes)、検索手段63は、動作を終了する。
(検証動作)
次に、図30A〜図30Cを参照(構成については、適宜図7参照)して、図27のS71の動作(検証動作)について詳細に説明する。
図30Aに示すように、復号装置7は、検証・復号手段81によって、インデックス集合KGの個数を計数するカウンタiを初期化(i=1)する(S7100)。
ここで、後記する処理によって、すべてのインデックス集合について検索結果の検証が終了している場合(S7101でYes)、復号装置7は、検索結果検証手段810によって、検証結果に“1(検証成功)”を設定して(S7102)、検証処理を終了する。
一方、すべてのインデックス集合について検索結果の検証が終了していない場合(ステップS7101でNo)、検索結果検証手段810は、S7103に動作を進める。
検索結果検証手段810は、検索結果rsltが空でなく、データ(暗号化インデックスcph、暗号化共通鍵cphski,暗号化データcphSEi)が含まれているか否かを判定する(S7103)。
ここで、検索結果rsltにデータが含まれている場合(S7103でYes)、検索結果検証手段810は、暗号化インデックスcphが検索トークンtkに対応するものであるか否かを、委託可能な属性ベース検索可能暗号方式(ABKSO)の検索処理(ABKSO.Search)により検索する。また、検索結果検証手段810は、その検索結果である補助データaux、暗号化インデックスcph、検索トークンtk、証明書πを引数として、委託可能な属性ベース検索可能暗号方式(ABKSO)の検証処理(ABKSO.Verify)により検証を行う(S7104)。
なお、委託可能な属性ベース検索可能暗号方式(ABKSO)の検索処理(ABKSO.Search)については、図31ですでに説明したため、ここでは説明を省略する。
ここで、ABKSOの検証処理(ABKSO.Vrify)について、さらに、図32を参照して説明する。
まず、ABKSOの検証処理(以下、ABKSO検証)は、検索処理(ABKSO.Search)の結果の補助データauxが⊥(エラーコード)であるか否かを判定する(S6420)。
ここで、auxが⊥であれば(S6420でYes)、検索結果検証手段810は、検証結果に“0”を設定して(S6421)、検証処理を終了する。
一方、auxが⊥でなければ(S6420でNo)、検索結果検証手段810は、以下の式(50)を演算し、証明書π(π)と一致するか否かを判定する(S6422)。
Figure 2018148493
ここで、証明書πと一致する場合、検索結果検証手段810は、検証結果に“1”を設定して(S6423)、検証処理を終了する。一方、証明書πと一致しない場合、検索結果検証手段810は、検証結果に“0”を設定して(S6421)、検証処理を終了する。
図30Aに戻って、検証動作について説明を続ける。
検索結果検証手段810は、S7104の検索処理の結果を示すγが“0”、または、検証処理の結果を示すγ′が“0”であるか否かを判定する(S7105)。
ここで、γおよびγ′のいずれかが“0”の場合(S7105でYes)、検索結果検証手段810は、検証結果に“0”を設定して(S7106)、検証動作を終了する。
一方、γおよびγ′のいずれも“0”でない場合(S7105でNo)、検索結果検証手段810は、カウンタiに“1”を加算して(S7107)、S7101に動作を戻す。
また、S7103において、検索結果rsltが空の場合(S7103でNo)、検索結果検証手段810は、検証用データproofに、暗号化ブルームフィルタBF′、暗号化乱数cphBFi、署名σBFi、証明書πBFiが設定されているか否かを判定する(S7108)。
ここで、proofが空の場合(S7108でNo)、検索結果検証手段810は、検証結果に“0”を設定して(S7109)、検証動作を終了する。
一方、proofにデータ(BF′、cphBFi、σBFi、πBFi)が設定されている場合(S7108でYes)、検索結果検証手段810は、署名検証手段811に制御を移す。
図30Bに示すように、署名検証手段811は、署名用公開鍵Sig.pkにより、暗号化ブルームフィルタBF′の署名検証(Sig.Verify)を行う(S7110)。この署名検証(Sig.Verify)は、検証に成功すればγ′=1、失敗すればγ′=0を返すものとする。
ここで、γ′の値を判定し(S7111)、γ′が“1”でなければ(S7111でNo)、署名検証手段811は、検証結果に“0”を設定して(S7112)、検証動作を終了する。
一方、γ′が“1”の場合(S7111でYes)、署名検証手段811は、ポリシー判定手段812に制御を移す。
そして、ポリシー判定手段812は、属性付き秘密鍵記憶手段74に記憶されている属性付き秘密鍵の属性が、受信した暗号化データに付加されているポリシーを満たすか以下かを判定する(S7113)。
ここで、属性がポリシーを満たさない場合(S7113でNo)、ポリシー判定手段812は、カウンタiに“1”を加算して(S7114)、図30AのS7101に動作を戻す。
一方、属性がポリシーを満たす場合(S7113でYes)、ポリシー判定手段812は、ブルームフィルタ検証手段813に制御を移す。
そして、ブルームフィルタ検証手段813は、属性付き秘密鍵記憶手段74に記憶されている属性付き秘密鍵の秘密鍵ABEO.skを用いて、委託可能な属性ベース暗号方式(ABEO)の復号処理(ABEO.Dec)により、暗号化乱数cphBFiを復号する(S7115)。
このABEOの復号処理(ABEO.Dec)については、さらに、図33を参照して説明する。このABEOの復号処理(以下、ABEO復号)は、第1公開鍵ABEO.sk(前記式(17)参照)と、暗号化データ(暗号化乱数)cph(前記式(36)参照)と、証明書πとを入力し、元のデータ(元の乱数)Mを出力するものである。なお、ABEO復号は、証明書が正しくない場合、⊥(エラーコード)を出力する。
まず、ABEO復号は、アクセス行列Aの行のインデックス{1,2,…,m}の中から、写像ρ(i)の値が属性Sに含まれるiを集合Iとして選択する(S730)。
また、ABEO復号は、アクセス行列Aの行ベクトルA(i∈I)を用いて、Zに属する値wとして、アクセス行列Aのi行目のベクトルA=(Ai,1i,2 … Ai,n)との積の集合Iの要素数分の総和が(1,0,…,0)となるwを求める(S731)。
そして、ABEO復号は、公開鍵の一部である双線形写像e、第1秘密鍵の各要素であるK、L、K、暗号化データ(ここでは、暗号化乱数)の要素C′,C,Dと、S731で求めたwを用いて、以下の式(51)の演算を行う(S732)。
Figure 2018148493
そして、ABEO復号は、暗号化データ(暗号化乱数)の要素Cと、S732の演算結果Bと、アクセス行列Aの要素が“1”となるすべての位置を表す位置情報をハッシュ関数H″で演算したハッシュ値と、送信者識別子sidとを4つの引数とし、第1公開鍵のハッシュ関数H′によるハッシュ値として証明書検証データπ′を生成する(S733)。
そして、ABEO復号は、入力した証明書πと、証明書検証データπ′とが一致するか否かを判定する(S734)。
ここで、証明書πと証明書検証データπ′とが一致しなければ(S734でNo)、ABEO復号は、⊥を出力する。
一方、証明書πと証明書検証データπ′とが一致する場合(S734でYes)、ABEO復号は、M=C/Bの演算結果を出力する(S736)。
図30Bに戻って、検証動作について説明を続ける。
ブルームフィルタ検証手段813は、S7115の復号結果が、正しく復号されたか否かを判定する(S7116)。
ここで、復号結果が⊥の場合(S7116でYes)、ブルームフィルタ検証手段813は、検証結果に“0”を設定して(S7117)、検証動作を終了する。
一方、復号結果で、Mとして正しく乱数が復号された場合(S7116でNo)、ブルームフィルタ検証手段813は、図30CのS7118に動作を進める。
図30Cに示すように、ブルームフィルタ検証手段813は、以下の式(52)に示すように、公開鍵であるハッシュ関数hを用いて、S7115で復号された乱数Mのハッシュ値と、暗号化ブルームフィルタBF′と排他的論理和演算を行うことで、ブルームフィルタBFを復号する(S7118)。
Figure 2018148493
さらに、ブルームフィルタ検証手段813は、S7118で復号されたブルームフィルタBFに対して、入力されたキーワードwがインデックスKGに含まれているか否かの検証を行う(S7119)。
ここで、δ=0、すなわち、キーワードwがインデックスKGに含まれていないと判定された場合(S7120でNo)、ブルームフィルタ検証手段813は、カウンタiに“1”を加算して(S7121)、図30AのS7101に動作を戻す。
一方、δ=1、すなわち、キーワードwがインデックスKGに含まれていると判定された場合(S7120でYes)、ブルームフィルタ検証手段813は、さらに、インデックスKGに含まれるキーワードwに対応する暗号化インデックスcph、証明書πを、データ検索装置6から取得する(S7122)。
そして、ブルームフィルタ検証手段813は、インデックスKGに含まれるキーワードwに対応するすべての暗号化インデックスcphについて、委託可能な属性ベース検索可能暗号方式(ABKSO)の検索処理(ABKSO.Search)と検証処理(ABKSO.Verify)とを実行する(S7123)。なお、この検索処理(ABKSO.Search)と検証処理(ABKSO.Verify)は、S7104の処理と同じであるため、説明を省略する。
そして、ブルームフィルタ検証手段813は、S7123の検証処理(ABKSO.Verify)が失敗(τ′=0)した暗号化インデックスcphが存在するか否かを判定する(S7124)。
ここで、検証処理に失敗した暗号化インデックスcphが存在する場合(S7124でYes)、ブルームフィルタ検証手段813は、検証結果に“0”を設定して(S7125)、検証処理を終了する。
一方、検証処理に失敗した暗号化インデックスcphが存在しない場合(S7124でNo)、さらに、ブルームフィルタ検証手段813は、S7123の検索処理(ABKSO.Search)で検索される(τ=1)暗号化インデックスcphが存在するか否かを判定する(S7126)。
ここで、検索処理(ABKSO.Search)で検索される暗号化インデックスcphが存在する場合(S7126でYes)、ブルームフィルタ検証手段813は、検証結果に“0”を設定して(S7127)、検証処理を終了する。
一方、検索処理で検索される暗号化インデックスcphが存在しなかった場合(S7126でNo)、ブルームフィルタ検証手段813は、カウンタiに“1”を加算して(S7128)、図30AのS7101に動作を戻す。
[属性ベース秘匿検索システムの応用例]
次に、図34を参照して、本発明の実施形態に係る属性ベース秘匿検索システムの応用例について説明する。
図34は、属性ベース秘匿検索システムSA(図1参照)を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
図34に示す個人情報保護システムSBは、ユーザがサービス事業者の評価(信頼度等)をポリシーとして設定することで、そのポリシーを満たす属性のサービス事業者のみが、ユーザに対してサービスを提供することを可能にするシステムである。
ここでは、サービスとして、レコメンド情報(例えば、ユーザの放送番組の視聴履歴を分析した結果から得られるそのユーザにお勧めの番組案内等)を提供するサービスを一例に説明する。
個人情報保護システムSBは、鍵生成装置1と、中間暗号化装置2と、クラウドサーバ3(委託暗号化装置4、データ記憶装置5およびデータ検索装置6)と、復号装置7とを、ネットワーク(通信回線)Nを介して接続して構成している。
鍵生成装置1、中間暗号化装置2、クラウドサーバ3(委託暗号化装置4,データ記憶装置5,データ検索装置6)および復号装置7は、それぞれ、図3〜図7で説明した各装置と同じものである。
以下、個人情報保護システムSBの動作について説明する。
鍵生成装置1は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置7に送信する。
例えば、属性の属性種別を、「プライバシーマーク」と「ユーザ評価」とし、「プライバシーマーク」の属性値を「6:あり」、「7:なし」、「ユーザ評価」の属性値を「1」〜「5」の5段階とする。そして、鍵生成装置1は、あるサービス事業者A,B,Cに対する属性S,S,Sを、それぞれ以下のように設定して、サービス事業者A,B,Cのそれぞれの復号装置7に送信する。
={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}
={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}
={(‘プライバシーマーク’,6),(‘ユーザ評価’,3)}
なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「6:あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
また、ここで、ユーザ評価は、サービス事業者に対する評価(信頼度等)を示す属性種別であって、5段階(1〜5)の属性値(評価値)を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
中間暗号化装置2は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
また、中間暗号化装置2は、ユーザがサービスの提供を許可するサービス事業者の評価(評価値)をポリシーとして設定する。例えば、レコメンド情報の提供を許可するサービス事業者の評価を“5”とする場合、中間暗号化装置2は、ポリシーを(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のように設定する。
そして、中間暗号化装置2は、個人情報を暗号化したポリシー・証明書・署名付き中間暗号化個人情報を、委託暗号化装置4に送信する。
委託暗号化装置4は、さらに暗号化を行い、ポリシー・証明書・署名付き暗号化個人情報を、データ記憶装置5に記憶する。
データ検索装置6は、復号装置7から、キーワードに対応した検索トークンを受信し、データ記憶装置5に保存されているデータから、暗号化したままで、キーワードに対応する暗号化個人情報を検索し、復号装置7に送信する。
復号装置7は、例えば、図示を省略したサービス提供装置等に備えられ、データ検索装置6からキーワードを含むポリシー・証明書・署名付き暗号化個人情報を取得する。このとき、復号装置7は、指定したキーワードに合致し、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
例えば、前記のようにポリシーが(‘プライバシーマーク’=6)AND(‘ユーザ評価’=5)のとき、サービス事業者Aの復号装置7は、自身に設定された属性が、前記S={(‘プライバシーマーク’,6),(‘ユーザ評価’,5)}であるので、個人情報を復号することができるが、サービス事業者Bの復号装置7は、自身に設定された属性が、前記S={(‘プライバシーマーク’,6),(‘ユーザ評価’,2)}であるので、個人情報を復号することができない。
そして、サービス提供装置(不図示)は、例えば、「スポーツ」というキーワードを指定した場合、復号装置7で「スポーツ」のキーワードに対応した個人情報(視聴履歴等)のみを復号し、解析を行うことで、お勧め番組等のレコメンド情報をユーザのテレビ受信機(不図示)に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス(レコメンド情報)の提供を受けることができる。
以上説明した個人情報保護システムSBによれば、中間暗号化装置2においてデータ(ここでは個人情報)を暗号化する際に、一部の暗号化処理をクラウドサーバ3の委託暗号化装置4が処理し、データ記憶装置5に保存することにより、ユーザの中間暗号化装置2の負荷を抑え、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身に対する評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。
SA 属性ベース秘匿検索システム
SB 個人情報保護システム
1 鍵生成装置
100 パラメータ入力手段
101 公開鍵・マスタ鍵生成手段
101a ハッシュ関数選択手段
101b 第1公開鍵・マスタ鍵生成手段
101c 第2公開鍵・マスタ鍵生成手段
102 公開鍵記憶手段
103 マスタ鍵記憶手段
104 公開鍵送信手段
110 属性入力手段
111 秘密鍵生成手段
111a 第1秘密鍵生成手段
111b 第2秘密鍵生成手段
112 属性付き秘密鍵生成手段
113 属性付き秘密鍵送信手段
114 受信者リスト記憶手段
115 トークン生成鍵配信手段
2 中間暗号化装置
20 ポリシー入力手段
21 データ入力手段
22 インデックス入力手段
23 公開鍵受信手段
24 公開鍵記憶手段
25 中間暗号化データ生成手段
26 中間暗号化インデックス生成手段
27 暗号ブルームフィルタ生成手段
270 ブルームフィルタ生成手段
271 ブルームフィルタ暗号化手段
272 署名付与手段
28 中間暗号化手段
29 データ合成手段
30 データ送信手段
31 署名用鍵生成手段
32 署名用公開鍵記憶手段
33 署名用公開鍵送信手段
3 クラウドサーバ
4 委託暗号化装置
40 公開鍵受信手段
41 公開鍵記憶手段
42 公開鍵送信手段
43 データ受信手段
44 データ分離手段
45 暗号化手段
450 データ暗号化手段
451 インデックス暗号化手段
452 乱数暗号化手段
46 データ合成手段
47 データ書込手段
5 データ記憶装置
6 データ検索装置
60 公開鍵受信手段
61 公開鍵記憶手段
62 データ要求受信手段
63 検索手段
64 データ読出手段
65 データ送信手段
7 復号装置
70 公開鍵受信手段
71 公開鍵記憶手段
72 登録要求送信手段
73 属性付き秘密鍵受信手段
74 属性付き秘密鍵記憶手段
75 キーワード入力手段
76 検索トークン生成手段
77 トークン生成鍵取得手段
78 データ要求送信手段
79 データ受信手段
80 署名用公開鍵受信手段
81 検証・復号手段
810 検索結果検証手段
811 署名検証手段
812 ポリシー判定手段
813 ブルームフィルタ検証手段
814 データ復号手段

Claims (10)

  1. 属性ベース暗号方式および属性ベース検索可能暗号方式の鍵情報を生成する鍵生成装置であって、
    前記属性ベース暗号方式の第1公開鍵および第1マスタ鍵を生成する第1公開鍵・マスタ鍵生成手段と、
    前記第1公開鍵および前記第1マスタ鍵を用いて前記属性ベース暗号方式の第1秘密鍵を生成する第1秘密鍵生成手段と、
    前記属性ベース検索可能暗号方式の第2公開鍵および第2マスタ鍵を生成する第2公開鍵・マスタ鍵生成手段と、
    前記第2公開鍵および前記第2マスタ鍵を用いて前記属性ベース検索可能暗号方式の第2秘密鍵を生成する第2秘密鍵生成手段と、
    検索結果の正当性を検証するためのブルームフィルタに使用する予め定めた複数のハッシュ関数を公開鍵の一部として選択するハッシュ関数選択手段と、
    前記データを復号する受信者の属性を前記第1秘密鍵および前記第2秘密鍵に付加する属性付き秘密鍵生成手段と、
    前記受信者を識別する識別子から、前記データを検索する検索トークンを生成するためのトークン生成鍵を、前記属性ベース検索可能暗号方式により生成するトークン生成鍵生成手段と、
    を備えることを特徴とする鍵生成装置。
  2. 請求項1に記載の鍵生成装置で生成された公開鍵を用いて、属性ベース暗号方式によるデータの暗号化処理の一部と、属性ベース検索可能暗号方式の前記データに対応するインデックスの暗号化処理の一部を行う中間暗号化装置であって、
    暗号化の対象となる前記データを復号条件となるポリシーと対応付けて、前記属性ベース暗号方式における予め定めた中間暗号化を行うことで中間暗号化データを生成する中間暗号化データ生成手段と、
    前記データに対応するキーワードを含むインデックスを前記ポリシーと対応付けて、前記属性ベース検索可能暗号方式における予め定めた中間暗号化を行うことで、中間暗号化インデックスを生成する中間暗号化インデックス生成手段と、
    電子署名の署名用公開鍵と署名用秘密鍵とを生成する署名用鍵生成手段と、
    前記公開鍵の一部であるハッシュ関数により、前記インデックスからブルームフィルタを生成し、乱数により暗号化して暗号化ブルームフィルタを生成し、前記署名用秘密鍵により署名を付加した署名付き暗号化ブルームフィルタを生成する署名付き暗号化ブルームフィルタ生成手段と、
    前記乱数を前記ポリシーと対応付けて、前記属性ベース暗号方式における予め定めた中間暗号化を行うことで中間暗号化乱数を生成する中間暗号化乱数生成手段と、
    前記ポリシー、前記中間暗号化データ、前記中間暗号化インデックス、前記中間暗号化乱数および前記署名付き暗号化ブルームフィルタを合成した合成中間暗号化データを生成するデータ合成手段と、
    を備えることを特徴とする中間暗号化装置。
  3. 請求項1に記載の鍵生成装置で生成された公開鍵を用いて、請求項2に記載の中間暗号化装置によって属性ベース暗号方式および属性ベース検索可能暗号方式の一部が処理された残りの暗号化処理を行う委託暗号化装置であって、
    前記中間暗号化装置で生成された合成中間暗号化データを、ポリシー、中間暗号化データ、中間暗号化インデックス、中間暗号化乱数および署名付き暗号化ブルームフィルタに分離するデータ分離手段と、
    前記公開鍵と前記ポリシーとにより、前記中間暗号化データに前記属性ベース暗号方式における暗号化を行うことで暗号化データを生成するデータ暗号化手段と、
    前記公開鍵と前記ポリシーとにより、前記中間暗号化インデックスに前記属性ベース検索可能暗号方式における暗号化を行うことで暗号化インデックスを生成するインデックス暗号化手段と、
    前記公開鍵と前記ポリシーとにより、前記中間暗号化乱数に前記属性ベース暗号方式における暗号化を行うことで暗号化乱数を生成する乱数暗号化手段と、
    前記ポリシー、前記暗号化データ、前記暗号化インデックス、前記暗号化乱数および前記署名付き暗号化ブルームフィルタを合成した合成暗号化データを生成するデータ合成手段と、
    を備えることを特徴とする委託暗号化装置。
  4. 請求項1に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項2に記載の中間暗号化装置および請求項3に記載の委託暗号化装置で暗号化された合成暗号化データを検索するデータ検索装置であって、
    前記合成暗号化データを要求する復号装置から送信された、前記トークン生成鍵を用いて生成された検索トークンを含んだデータ要求を受信するデータ要求受信手段と、
    前記検索トークンに対応する前記合成暗号化データを検索する検索手段と、
    この検索手段で検索された合成暗号化データを前記復号装置に送信するデータ送信手段と、
    を備えることを特徴とするデータ検索装置。
  5. 請求項1に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項2に記載の中間暗号化装置および請求項3に記載の委託暗号化装置で暗号化され、データ記憶装置に記憶された合成暗号化データを、請求項4に記載のデータ検索装置を介して検索し復号する復号装置であって、
    キーワードを入力するキーワード入力手段と、
    このキーワード入力手段で入力されたキーワードと、前記鍵生成装置で生成されたトークン生成鍵と、前記公開鍵とから、属性ベース検索可能暗号方式により検索トークンを生成する検索トークン生成手段と、
    前記検索トークンを含んだデータ要求を前記データ検索装置に送信するデータ要求送信手段と、
    前記合成暗号化データを受信するデータ受信手段と、
    前記合成暗号化データが、前記検索トークンに対応するデータか否かを、前記属性ベース検索可能暗号方式の検索手法により検証する検索結果検証手段と、
    前記検索結果検証手段で正しく検証された合成暗号化データに含まれる署名付き暗号化ブルームフィルタに対して、前記中間暗号化装置で生成された署名用公開鍵により、署名検証を行う署名検証手段と、
    前記署名検証手段で正しく署名検証された暗号化ブルームフィルタに対して、属性がポリシーを満たすか否かを判定するポリシー判定手段と、
    前記ポリシーを満たした暗号化ブルームフィルタに対して、前記合成暗号化データに含まれる暗号化乱数を復号した乱数でブルームフィルタを復号し、前記キーワードがインデックスに含まれているか否かを検証するブルームフィルタ検証手段と、
    前記キーワードに対応する暗号化データを、属性ベース暗号方式により復号するデータ復号手段と、
    を備えることを特徴とする復号装置。
  6. コンピュータを、請求項1に記載の鍵生成装置として機能させるための鍵生成プログラム。
  7. コンピュータを、請求項2に記載の中間暗号化装置として機能させるための中間暗号化プログラム。
  8. コンピュータを、請求項3に記載の委託暗号化装置として機能させるための委託暗号化プログラム。
  9. コンピュータを、請求項4に記載のデータ検索装置として機能させるためのデータ検索プログラム。
  10. コンピュータを、請求項5に記載の復号装置として機能させるための復号プログラム。
JP2017043938A 2017-03-08 2017-03-08 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム Pending JP2018148493A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017043938A JP2018148493A (ja) 2017-03-08 2017-03-08 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017043938A JP2018148493A (ja) 2017-03-08 2017-03-08 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム

Publications (1)

Publication Number Publication Date
JP2018148493A true JP2018148493A (ja) 2018-09-20

Family

ID=63591754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017043938A Pending JP2018148493A (ja) 2017-03-08 2017-03-08 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム

Country Status (1)

Country Link
JP (1) JP2018148493A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110099048A (zh) * 2019-04-19 2019-08-06 中共中央办公厅电子科技学院(北京电子科技学院) 一种云存储方法及设备
JP2020187247A (ja) * 2019-05-14 2020-11-19 日本放送協会 データ管理装置、ユーザ情報通知装置、ユーザ情報取得装置およびそれらのプログラム
JP2021039143A (ja) * 2019-08-30 2021-03-11 株式会社日立製作所 秘匿情報処理システム及び秘匿情報処理方法
CN112699390A (zh) * 2020-12-29 2021-04-23 中国联合网络通信集团有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN112910654A (zh) * 2021-01-19 2021-06-04 深圳市星际大陆科技有限公司 一种私钥管理方法、系统、设备及存储介质
US20220006649A1 (en) * 2018-12-04 2022-01-06 Journey.ai Receiving information through a zero-knowledge data management network
KR20220011449A (ko) * 2020-07-21 2022-01-28 순천향대학교 산학협력단 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법
CN114258018A (zh) * 2021-11-12 2022-03-29 中国南方电网有限责任公司 密钥管理方法、装置、计算机设备及存储介质
CN114257446A (zh) * 2021-12-20 2022-03-29 湖北工业大学 基于可搜索加密的数据访问控制方法、计算机设备
CN114489839A (zh) * 2022-01-12 2022-05-13 海南车智易通信息技术有限公司 针对页面加载配置数据的方法及装置、服务器
CN114595472A (zh) * 2022-03-09 2022-06-07 合肥工业大学 面向密态数据的重复、不经意和抗链接的查询方法与系统
WO2022177670A1 (en) * 2021-02-16 2022-08-25 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications
CN115292737A (zh) * 2022-10-08 2022-11-04 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备
US11516001B2 (en) 2019-05-23 2022-11-29 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120155641A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Non-interactive verifiable, delegated computation
JP2017044779A (ja) * 2015-08-25 2017-03-02 株式会社日立製作所 検索可能暗号処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120155641A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Non-interactive verifiable, delegated computation
JP2017044779A (ja) * 2015-08-25 2017-03-02 株式会社日立製作所 検索可能暗号処理システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
大竹 剛 ほか: "委託先の攻撃に対して耐性のある委託可能な属性ベース暗号", SCIS2016, JPN6021001704, 19 January 2016 (2016-01-19), JP, pages 1 - 8, ISSN: 0004429318 *
大竹 剛 ほか: "検証可能な属性ベース検索可能暗号の効率化に関する検討", 電子情報通信学会技術研究報告, vol. 第116巻,第505号, JPN6021001703, 2 March 2017 (2017-03-02), JP, pages 195 - 202, ISSN: 0004563652 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11916891B2 (en) * 2018-12-04 2024-02-27 Journey.ai Receiving information through a zero-knowledge data management network
US20220006649A1 (en) * 2018-12-04 2022-01-06 Journey.ai Receiving information through a zero-knowledge data management network
CN110099048A (zh) * 2019-04-19 2019-08-06 中共中央办公厅电子科技学院(北京电子科技学院) 一种云存储方法及设备
JP2020187247A (ja) * 2019-05-14 2020-11-19 日本放送協会 データ管理装置、ユーザ情報通知装置、ユーザ情報取得装置およびそれらのプログラム
US11516001B2 (en) 2019-05-23 2022-11-29 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications
JP2021039143A (ja) * 2019-08-30 2021-03-11 株式会社日立製作所 秘匿情報処理システム及び秘匿情報処理方法
JP7249248B2 (ja) 2019-08-30 2023-03-30 株式会社日立製作所 秘匿情報処理システム及び秘匿情報処理方法
KR102386717B1 (ko) * 2020-07-21 2022-04-14 순천향대학교 산학협력단 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법
KR20220011449A (ko) * 2020-07-21 2022-01-28 순천향대학교 산학협력단 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법
CN112699390B (zh) * 2020-12-29 2023-07-25 中国联合网络通信集团有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN112699390A (zh) * 2020-12-29 2021-04-23 中国联合网络通信集团有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN112910654B (zh) * 2021-01-19 2023-04-28 深圳市星际大陆科技有限公司 一种私钥管理方法、系统、设备及存储介质
CN112910654A (zh) * 2021-01-19 2021-06-04 深圳市星际大陆科技有限公司 一种私钥管理方法、系统、设备及存储介质
WO2022177670A1 (en) * 2021-02-16 2022-08-25 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications
CN114258018A (zh) * 2021-11-12 2022-03-29 中国南方电网有限责任公司 密钥管理方法、装置、计算机设备及存储介质
CN114258018B (zh) * 2021-11-12 2024-04-09 中国南方电网有限责任公司 密钥管理方法、装置、计算机设备及存储介质
CN114257446B (zh) * 2021-12-20 2023-05-23 湖北工业大学 基于可搜索加密的数据访问控制方法、计算机设备
CN114257446A (zh) * 2021-12-20 2022-03-29 湖北工业大学 基于可搜索加密的数据访问控制方法、计算机设备
CN114489839A (zh) * 2022-01-12 2022-05-13 海南车智易通信息技术有限公司 针对页面加载配置数据的方法及装置、服务器
CN114489839B (zh) * 2022-01-12 2023-08-01 海南车智易通信息技术有限公司 针对页面加载配置数据的方法及装置、服务器
CN114595472A (zh) * 2022-03-09 2022-06-07 合肥工业大学 面向密态数据的重复、不经意和抗链接的查询方法与系统
CN114595472B (zh) * 2022-03-09 2024-02-20 合肥工业大学 面向密态数据的重复、不经意和抗链接的查询方法与系统
CN115292737A (zh) * 2022-10-08 2022-11-04 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备
CN115292737B (zh) * 2022-10-08 2022-12-09 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备

Similar Documents

Publication Publication Date Title
JP2018148493A (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
Tong et al. Cloud-assisted mobile-access of health data with privacy and auditability
US8406422B2 (en) Cryptographic module management apparatus, method, and program
TWI749444B (zh) 可靠的使用者服務系統和方法
US8619994B2 (en) System and method for providing digital contents service
KR20200115514A (ko) 디지털 원장을 이용한 프라이버시 관리를 위한 시스템들 및 방법들
US20130230168A1 (en) Information processing device, information processing method, and computer readable medium
Cui et al. A practical and efficient bidirectional access control scheme for cloud-edge data sharing
JP5846198B2 (ja) 乱数値特定装置、乱数値特定システム、および、乱数値特定方法
JP5140026B2 (ja) データベース処理方法、データベース処理プログラム、および、暗号化装置
JP5492007B2 (ja) コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム
JP6384149B2 (ja) 鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
US20220116200A1 (en) Selector Derived Encryption Systems and Methods
JP2022151535A (ja) データ共有システム、データ共有方法、およびデータ共有プログラム
KR101825838B1 (ko) 데이터의 부분 암호화 방법, 데이터의 부분 복호화 방법 및 부분 암호화된 데이터를 복호화하는 프로그램을 저장하는 저장매체
JP6700797B2 (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
CN114679340B (zh) 一种文件共享方法、系统、设备及可读存储介质
US20160294551A1 (en) Data processing system, encryption apparatus, decryption apparatus, and computer readable medium
US10027632B2 (en) Data view based on context
JP6112456B2 (ja) 鍵生成装置、暗号化装置および復号装置、ならびに、それらのプログラム
Raj et al. Enhanced encryption for light weight data in a multi-cloud system
US10050782B2 (en) Decryption condition addition device, cryptographic system, and computer readable medium
JP5970193B2 (ja) 検索システム、検索方法および検索プログラム
JP2018116254A (ja) 情報処理方法、及び、情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210803