(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025014245
(43)【公開日】2025-01-30
(54)【発明の名称】データ管理システム
(51)【国際特許分類】
G09C 1/00 20060101AFI20250123BHJP
【FI】
G09C1/00 620Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023116629
(22)【出願日】2023-07-18
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)「映像情報メディア学会」が2022年12月8日に発行した「映像情報メディア学会冬季大会講演予稿集」において発表 (2)「映像情報メディア学会」が2022年12月22日~23日に開催した「映像情報メディア学会2022年冬季大会」において2022年12月23日に発表 (3)Springer社が2023年7月9日に発行した「HCI International 2023 Posters」において発表
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】梶田 海成
(72)【発明者】
【氏名】大竹 剛
(57)【要約】
【課題】暗号化データが正しく再暗号化されたことを検証する。
【解決手段】データ管理システム1は、マスター公開パラメータ及びマスター秘密鍵を生成する鍵生成装置10と、暗号化データをインデックスと紐づけて、インデックスDB32に蓄積するデータ保有者装置20と、暗号化データを再暗号化してサービス事業者装置40に送信するクラウドサーバ30と、暗号化データの検証を行って、所望のサービスを提供するサービス事業者装置40とを備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データ保有者が保有する複数のデータのそれぞれをIDベース検証可能プロキシ再暗号化で暗号化して各サービス事業者に提供するデータ管理システムであって、
所定のセキュリティパラメータを入力として、Setupアルゴリズムにより、マスター公開パラメータとマスター秘密鍵とを生成するセットアップ手段と、
前記マスター公開パラメータと前記マスター秘密鍵と前記データ保有者及び前記サービス事業者のIDとを入力として、KeyGenアルゴリズムにより、前記データ保有者及び前記サービス事業者の復号鍵を生成する復号鍵生成手段と、を備える鍵生成装置と、
前記マスター公開パラメータと前記データ保有者のIDと前記データとを入力として、Encryptアルゴリズムにより、暗号化データを生成し、前記暗号化データのハッシュ値を算出して前記データのインデックスに紐付けたテーブルを生成する暗号化手段と、
前記マスター公開パラメータと前記データ保有者の復号鍵と前記データ保有者及び前記サービス事業者のIDとを入力として、RKGenアルゴリズムにより、再暗号化鍵及び再暗号化検証鍵を生成する再暗号化鍵生成手段と、
前記テーブルを参照し、前記暗号化データに対応するハッシュ値を出力するデータ出力手段と、を備えるデータ保有者装置と、
前記マスター公開パラメータと前記再暗号化鍵と前記インデックスに紐付いた暗号化データとを入力として、ReEncryptアルゴリズムにより、前記暗号化データを再暗号化した再暗号化データを生成する再暗号化手段、を備えるデータ管理装置と、
前記データ管理装置の暗号化データからハッシュ値を算出し、算出した前記ハッシュ値と前記データ保有者装置から受信したハッシュ値とが一致するか否かを検証するハッシュ値検証手段と、
前記マスター公開パラメータと前記再暗号化検証鍵と前記暗号化データと前記再暗号化データとを入力として、ReEncVerアルゴリズムにより、前記再暗号化データが前記暗号化データから再暗号化されたか否かを検証する再暗号化検証手段と、
前記マスター公開パラメータと前記サービス事業者の復号鍵と前記再暗号化データとを入力として、Decryptアルゴリズムにより、前記データを復号する復号手段と、を備えるサービス事業者装置と、
を備えることを特徴とするデータ管理システム。
【請求項2】
前記復号手段は、前記ハッシュ値検証手段で前記ハッシュ値が一致することが検証でき、かつ、前記再暗号化検証手段で前記再暗号化データが前記暗号化データから再暗号化されたことが検証できた場合、前記Decryptアルゴリズムにより、前記データを復号することを特徴とする請求項1に記載のデータ管理システム。
【請求項3】
前記暗号化手段は、予め設定されたハッシュ関数を用いて、前記Encryptアルゴリズムで生成した暗号化データからハッシュ値を算出し、
前記ハッシュ値検証手段は、前記暗号化手段と同一のハッシュ関数を用いて、前記データ管理装置の暗号化データからハッシュ値を算出することを特徴とする請求項1に記載のデータ管理システム。
【請求項4】
前記データ管理装置は、
前記インデックスに紐付いた暗号化データを蓄積するインデックスデータベースと、
再暗号化した前記暗号化データを蓄積するサービス事業者データベースと、をさらに備えることを特徴とする請求項1に記載のデータ管理システム。
【請求項5】
前記データ管理装置は、クラウドサーバであることを特徴とする請求項1又は請求項2に記載のデータ管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IDベース検証可能プロキシ再暗号化及びハッシュ値を用いるデータ管理システムに関する。
【背景技術】
【0002】
近年、パーソナルデータストア(PDS)やデータ取引市場といった個人情報の管理及び提供を行うシステムが注目されている(例えば、非特許文献1)。例えば、PDSでは、ユーザ自身が、スマートフォンの位置情報や、オンラインショッピングの購入履歴などの個人情報をネットワーク上のデータ管理装置(例えば、クラウド)で管理する。そして、PDSでは、サービス事業者などの第三者に、ユーザが自らの意思でデータを提供することで、その提供したデータに基づいたサービスをユーザが享受できる。なお、PDSなどのシステムを活用し、ユーザの代わりにデータを管理及び提供を行うものを情報銀行と呼ぶ。
【0003】
また、様々なデータを管理及び提供するための仕組みとして、IDベースプロキシ再暗号化が提案されている(例えば、非特許文献2)。このIDベースプロキシ再暗号化は、任意のID(例えば、電子メールアドレス)を各ユーザの公開鍵とし、鍵生成センタ(PKG)と呼ばれる信頼された機関から得たマスター秘密鍵及びIDを用いて、各ユーザの秘密鍵を生成するものである。
【0004】
また、IDベースプロキシ再暗号化を拡張したIDベース検証可能プロキシ再暗号化(IB-VPRE)が提案されている(例えば、非特許文献3)。このIB-VPREは、再暗号化鍵の生成時に再暗号化検証鍵を生成し、その再暗号化検証鍵を用いて再暗号化データを検証するものである。このとき、再暗号化の検証には、元の暗号化データと再暗号化データのペアも必要となる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】「パーソナルデータストア・PDSの仕組み|メリットや情報銀行との違いを解説」、[online],[令和4年8月29日検索],インターネット<URL:https://privtech.co.jp/blog/data/pds_merit_structure.html>
【非特許文献2】Green, Matthew, and Ateniese, Giuseppe. "Identity-based proxy re-encryption." International Conference on Applied Cryptography and Network Security. Springer, Berlin, Heidelberg, 2007.
【非特許文献3】Li-qiang, W. , Xiao-yuan, Y. , Min-qing, Z. , and Xu-an, W. "IB-VPRE: adaptively secure identity-based proxy re-encryption scheme from LWE with re-encryption verifiability. " Journal of Ambient Intelligence and Humanized Computing, 1-14. 2021.
【発明の概要】
【発明が解決しようとする課題】
【0006】
ユーザ又は情報銀行がデータを管理するとき、利便性の観点からクラウドなどのデータ管理装置を利用することが多い。データ管理装置上で位置情報や購入履歴といったセンシティブなデータを管理するので、万一データが漏洩してもユーザのプライバシーを適切に保護できるように、データを暗号化する必要がある。しかし、AESなどの共通鍵暗号化方式によるデータの暗号化では、データ保有者であるユーザとデータ提供先であるサービス事業者が同一の鍵を保有する必要がある。このため、ユーザが複数のサービス事業者にデータを提供する場合、全てのサービス事業者とユーザが同一の鍵を共有しなければならない。従って、あるサービス事業者から鍵が漏洩した場合、データ管理装置で管理されている暗号化データも含め、ユーザの全データが漏洩する恐れがある。このことから、共通鍵暗号化方式の適用は、現実的でない。
【0007】
ここで、各サービス事業者に渡すデータを選択する場合、データ管理装置で管理されている暗号化データを一度復号してから、再び暗号化する必要がある。このとき、データ管理装置が不正アクセスを受けると、一度復号したデータが漏洩する恐れがある。このため、データ管理装置で管理されている暗号化データは、一度も復号することなく、再暗号化することが好ましい。
【0008】
そこで、データ管理装置にIB-VPREを適用することで、この問題を解決できるかを検討する。しかし、単にデータ管理装置にIB-VPREを適用するだけでは、異なる暗号化データを再暗号化する又は正しい再暗号化を実行しないなどの攻撃をクラウドが行った場合、サービス事業者がその攻撃を検知するのか困難である。
【0009】
そこで、本発明は、暗号化データが正しく再暗号化されたことを検証できるデータ管理システムを提供することを課題とする。
【課題を解決するための手段】
【0010】
前記課題を解決するため、本発明に係るデータ管理システムは、データ保有者が保有する複数のデータのそれぞれをIDベース検証可能プロキシ再暗号化で暗号化して各サービス事業者に提供するデータ管理システムであって、鍵生成装置と、データ保有者装置と、データ管理装置と、サービス事業者装置とを備える構成とした。
【0011】
鍵生成装置は、所定のセキュリティパラメータを入力として、Setupアルゴリズムによりマスター公開パラメータとマスター秘密鍵とを生成するセットアップ手段と、マスター公開パラメータとマスター秘密鍵とデータ保有者及びサービス事業者のIDとを入力として、KeyGenアルゴリズムにより、データ保有者及びサービス事業者の復号鍵を生成する復号鍵生成手段と、を備える。
【0012】
データ保有者装置は、マスター公開パラメータとデータ保有者のIDとデータとを入力として、Encryptアルゴリズムにより、暗号化データを生成し、暗号化データのハッシュ値を算出してデータのインデックスに紐付けたテーブルを生成する暗号化手段と、マスター公開パラメータとデータ保有者の復号鍵とデータ保有者及びサービス事業者のIDとを入力として、RKGenアルゴリズムにより、再暗号化鍵及び再暗号化検証鍵を生成する再暗号化鍵生成手段と、テーブルを参照し、暗号化データに対応するハッシュ値を出力するデータ出力手段と、を備える。
【0013】
データ管理装置は、マスター公開パラメータと再暗号化鍵とインデックスに紐付いた暗号化データとを入力として、ReEncryptアルゴリズムにより、暗号化データを再暗号化した再暗号化データを生成する再暗号化手段、を備える。
【0014】
サービス事業者装置は、データ管理装置の暗号化データからハッシュ値を算出し、算出したハッシュ値とデータ保有者装置から受信したハッシュ値とが一致するか否かを検証するハッシュ値検証手段と、マスター公開パラメータと再暗号化検証鍵と暗号化データと再暗号化データとを入力として、ReEncVerアルゴリズムにより、再暗号化データが暗号化データから再暗号化されたか否かを検証する再暗号化検証手段と、マスター公開パラメータとサービス事業者の復号鍵と再暗号化データとを入力として、Decryptアルゴリズムにより、データを復号する復号手段と、を備える。
【0015】
かかる構成によれば、データ管理システムは、IB-VPRE及びハッシュ値を用いて、データ管理装置上でデータを復号することなく暗号化した状態を維持でき、サービス事業者にデータを提供する際、暗号化データが正しく再暗号化されていることを検証できる。
【発明の効果】
【0016】
本発明によれば、暗号化データが正しく再暗号化されたことを検証することができる。
【図面の簡単な説明】
【0017】
【
図2】実施形態に係るデータ管理システムの概略図である。
【
図3】
図2のデータ管理システムの構成を示すブロック図である。
【
図4-1】
図2のデータ管理システムの動作を示すシーケンス図である。
【
図4-2】
図2のデータ管理システムの動作を示すシーケンス図である。
【
図4-3】
図2のデータ管理システムの動作を示すシーケンス図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について図面を参照して説明する。但し、以下に説明する各実施形態は、本発明の技術思想を具体化するためのものであって、特定的な記載がない限り、本発明を以下のものに限定しない。また、同一の手段には同一の符号を付し、説明を省略する場合がある。
【0019】
図1を参照し、実施形態に係るデータ管理システム1(
図3)の前提として、従来のIDベース検証可能プロキシ再暗号化について説明する。
【0020】
[IB-VPRE]
IB-VPREは、ID(identifier)に基づいて暗号化及び再暗号化を行い、再暗号化が正しく行われたかどうかを検証可能なID暗号方式である。
図1に示すように、IB-VPREは、7つのアルゴリズムS1~S7で構成されている(非特許文献2参照)。
【0021】
SetupアルゴリズムS1は、セキュリティパラメータk(正確には、1k)を入力として、マスター公開パラメータparamsとマスター秘密鍵mskを生成する。なお、セキュリティパラメータkは、暗号の安全性を示す尺度のことであり、鍵のサイズなどに関連する。また、マスター公開パラメータparamsは、IDベース検証可能プロキシ再暗号化の各アルゴリズムを実行する上で必要な、全ユーザに対して公開されるパラメータのことである。
【0022】
KeyGenアルゴリズムS2は、マスター公開パラメータparams、マスター秘密鍵msk及び各ID(id,id´)∈{0,1}*を入力として、各IDに対応する復号鍵(skid,skid´)を生成する。なお、ID(id,id´)は、2つのエンティティのそれぞれに割り当てられたIDを表す(詳細後記)。
【0023】
EncryptアルゴリズムS3は、マスター公開パラメータparams、ID(id)∈{0,1}*及びデータm∈Mを入力として、ID(id)に基づいた暗号化データcidを生成する。但し、M≧2以上の整数である。
【0024】
RKGenアルゴリズムS4は、マスター公開パラメータparams、復号鍵skid及びID(id,id´)を入力として、再暗号化鍵rkid→id´及び再暗号化検証鍵vkid→id´を生成する。
【0025】
ReEncryptアルゴリズムS5は、マスター公開パラメータparams、再暗号化鍵rkid→id´及び暗号化データcidを入力として、暗号化データcidを再暗号化した再暗号化データcid´を生成する。
【0026】
ReEncVerアルゴリズムS6は、マスター公開パラメータparams、再暗号化検証鍵vkid→id´、暗号化データcid及び再暗号化データcid´を入力として、再暗号化の検証を行う。再暗号化の検証結果は、再暗号化データcid´が元の暗号化データcidから正しく再暗号化されている場合、検証成功「1」、再暗号化データcid´が元の暗号化データcidから正しく再暗号化されていない場合、検証失敗「0」となる。
【0027】
DecryptアルゴリズムS7は、マスター公開パラメータparams、復号鍵skid´及び再暗号化データcid´を入力として、データmを復号する。
【0028】
[データ管理システムの概要]
図2を参照し、実施形態に係るデータ管理システム1の概要について説明する。
データ管理システム1は、データ保有者DOが保有する複数のデータmのそれぞれをIDベース検証可能プロキシ再暗号化で暗号化して各サービス事業者SPに提供するものである。
図2に示すように、データ管理システム1は、鍵生成センタPKG、データ保有者DO、サービス事業者SP及びクラウドCLという、4つのエンティティ(組織)で構成されており、各エンティティに対応した装置として実装される。
【0029】
鍵生成センタPKGは、信頼できる第三者機関であり、データ保有者DO及びサービス事業者SPそれぞれのIDに対して、復号鍵鍵(skid,skid´)を生成するものである。つまり、鍵生成センタPKGは、データ保有者DO毎に復号鍵skidを生成すると共に、サービス事業者SP毎に復号鍵skid´を生成する。
【0030】
データ保有者DOは、様々なデータを保有し、クラウドCLを介して、そのデータmをサービス事業者SPに提供するものである。ここで、データ保有者DOは、サービス事業者SPにデータを提供する際、そのデータmを暗号化する。例えば、このデータmとしては、テレビ番組の視聴履歴、スマートフォンの位置情報、オンラインショッピングでの購入履歴、及び、通院履歴といった個人情報があげられる。
【0031】
サービス事業者SPは、データ保有者DOのデータmを用いて、所望のサービスを提供するものである。なお、サービスの内容は特に制限されず任意であり、本発明に直接関係しないので、以上の説明を省略する。
【0032】
クラウドCLは、データ保有者DOが保有するデータmをサービス事業者SPに提供するものである。つまり、クラウドCLは、データ保有者DOからの暗号化データcidを管理し、サービス事業者SPのIDに基づいて暗号化データcidを再暗号化し、再暗号化データcid´をサービス事業者SPに提供する。
【0033】
本実施形態では、一例として、データ保有者DO及びサービス事業者SPは、1つずつ存在し、それぞれが固有のIDを有するものとする。ここで、データ保有者DOのIDをidとし、サービス事業者SPのIDをid´とする。例えば、IDとして、メールアドレスやIP(Internet Protocol)アドレスを用いることができる。なお、データ保有者DO及びサービス事業者SPは、複数存在してもよく、この場合もそれぞれが固有のIDを有する。
【0034】
前記したように、単にIB-VPREを適用するだけでは、クラウドCLが元の暗号化データcidと再暗号化データcid´で異なるペアを意図的に選択した場合、それを検知できない。そこで、データ保有者DOでは、暗号化データcidのハッシュ値H(cid)を算出し、そのハッシュ値H(cid)をサービス事業者SPに送信する。サービス事業者SPでは、クラウドCLの暗号化データcidからハッシュ値H(cid)を算出し、データ保有者DOから受信したハッシュ値H(cid)と一致するか否かによって検証を行う。このとき、データ保有者DOでは、暗号化データcidを蓄積する必要はなく、インデックスj及びハッシュ値H(cid)を対応付けたテーブルを蓄積しておけばよいため、記録容量を大幅に削減できる。
【0035】
以下、データ管理システム1での処理概要を説明する。
鍵生成センタPKGは、使用するハッシュ関数(例えば、SHA-256、SHA-512)をデータ保有者DO、サービス事業者SP及びクラウドCLに通知する。鍵生成センタPKGは、SetupアルゴリズムS1によって、マスター公開パラメータparams及びマスター秘密鍵mskを生成する(
図2のステップS10)。そして、鍵生成センタPKGは、マスター公開パラメータparamsをデータ保有者DO、サービス事業者SP及びクラウドCLに送信する。なお、マスター秘密鍵mskは、鍵生成センタPKGが秘密管理することとする。
【0036】
データ保有者DOは、自身のIDであるidを鍵生成センタPKGに送信する。また、サービス事業者SPは、自身のIDであるid´を鍵生成センタPKGに送信する。そして、鍵生成センタPKGは、KeyGenアルゴリズムS2によって、データ保有者DOの復号鍵sk
idと、サービス事業者SPの復号鍵sk
id´とを生成する(
図2のステップS11)。つまり、復号鍵sk
idはデータ保有者DOのidに紐付いた復号鍵であり、復号鍵sk
id´はサービス事業者SPのid´に紐付いた復号鍵である。さらに、鍵生成センタPKGは、復号鍵sk
idをデータ保有者DOに送信し、復号鍵sk
id´をサービス事業者SPに送信する。
【0037】
データ保有者DOは、n個のデータm
1,…,m
nを保有する(n≧2)。また、データ保有者DOは、EncryptアルゴリズムS3によって、データm
1,…,m
nをidに基づいて暗号化し、暗号化データc
1,id,…,c
n,idを生成する(
図2のステップS12)。そして、データ保有者DOは、暗号化データc
1,id,…,c
n,idをデータm
1,…,m
nのインデックス1,…,nと紐づけて、クラウドCLのインデックスDB32に蓄積する。例えば、データ保有者DOは、インデックスDB32の連続したアドレス1,…,j,…nに暗号化データc
1,id,…,c
j,id,…,c
n,idを順番に蓄積すると、インデックスDB32のアドレスをインデックスとして利用できる(但し、1≦j≦n)。
【0038】
サービス事業者SPは、自身のIDであるid´をデータ保有者DOと共有する。このID共有手法は任意であり、例えば、IDとしてメールアドレスを用いる場合、サービス事業者SPのメールアドレスをデータ保有者DOに登録すればよい。データ保有者DOは、RKGenアルゴリズムS4によって、サービス事業者SP毎に再暗号化鍵rk
id→id´及び再暗号化検証鍵vk
id→id´を生成する(
図2のステップS13)。つまり、この再暗号化鍵rk
id→id´及び再暗号化検証鍵vk
id→id´は、データ保有者DOとサービス事業者SPとの組み合わせに対応した鍵である。
【0039】
データ保有者DOは、サービス事業者SPに提供するデータm
jを選択し、インデックスjをクラウドCLに送信する(1≦j≦n)。また、データ保有者DOは、暗号化データc
j,idをハッシュ関数Hの入力とし、得られたハッシュ値H(c
j,id)をサービス事業者SPに送信する(
図2のステップS14)。クラウドCLは、インデックスjに対応する暗号化データc
j,idをインデックスDB32から選択する。また、クラウドCLは、ReEncryptアルゴリズムS5によって、再暗号化鍵rk
id→id´を用いて暗号化データc
j,idを再暗号化する(
図2のステップS15)。そして、クラウドCLは、再暗号化データc
j,id´をサービス事業者DB33に蓄積する。
【0040】
サービス事業者SPは、クラウドCLから暗号化データc
j,id及び再暗号化データc
j,id´を受信する。また、サービス事業者SPは、暗号化データc
j,idからハッシュ値H(c
j,id)を算出する。そして、サービス事業者SPは、データ保有者DOから受信したハッシュ値H(c
j,id)と、算出したハッシュ値H(c
j,id)が一致するか否かを検証する(
図2のステップS16)。
【0041】
クラウドCLは、サービス事業者DB33に蓄積されている再暗号化データc
j,id´をサービス事業者SPに送信する。サービス事業者SPは、ReEncVerアルゴリズムS6によって、再暗号化検証鍵vk
id→id´を用いて、再暗号化データc
j,id´が元の暗号化データc
j,idから正しく再暗号化されているかを検証する(
図2のステップS17)。
【0042】
サービス事業者SPは、DecryptアルゴリズムS7によって、復号鍵sk
id´を用いて再暗号化データc
j,id´を復号し、データm
jを取得する(
図2のステップS18)。その後、サービス事業者SPは、取得したデータm
jを用いて、所望のサービスを提供する。
【0043】
なお、サービス事業者SPは、ハッシュ値H(cj,id)とReEncVerアルゴリズムS6の両方とも検証できた場合、DecryptアルゴリズムS7を実行する。一方、サービス事業者SPは、ハッシュ値H(cj,id)又はReEncVerアルゴリズムS6の何れか一方しか検証できなかった場合、エラーを出力し、DecryptアルゴリズムS7を実行しない。
【0044】
[データ管理システムの構成]
図3を参照し、データ管理システム1の構成について説明する。
図3に示すように、データ管理システム1は、鍵生成装置10と、データ保有者装置20と、クラウドサーバ(データ管理装置)30と、サービス事業者装置40とを備える。また、データ管理システム1は、インターネットなどのネットワークを介して、各装置が接続されていることとする。
【0045】
鍵生成装置10は、
図2の鍵生成センタPKGの機能を有するものであり、セットアップ手段11と、復号鍵生成手段12とを備える。
セットアップ手段11は、SetupアルゴリズムS1を実行するものである。
復号鍵生成手段12は、KeyGenアルゴリズムS2を実行するものである。
【0046】
データ保有者装置20は、
図2のデータ保有者DOの機能を有するものであり、暗号化手段21と、再暗号化鍵生成手段22と、テーブル記憶手段23と、データ送信手段(データ出力手段)24と、を備える。
【0047】
暗号化手段21は、EncryptアルゴリズムS3を実行するものであり、また、暗号化データc1,id,…,cn,idのハッシュ値H(c1,id),…,H(cn,id)を算出するものである。
再暗号化鍵生成手段22は、RKGenアルゴリズムS4を実行するものである。
テーブル記憶手段23は、暗号化データcj,idのハッシュ値H(cj,id)をインデックスjに紐付けたテーブルを蓄積するものである。
【0048】
データ送信手段24は、データ保有者DOが選択したデータmjのインデックスj、つまり、サービス事業者SPに提供するデータmjのインデックスjをクラウドサーバ30に送信(出力)するものである。また、データ送信手段24は、再暗号化検証鍵vkid→id´、及び、暗号化データcj,idに対応するハッシュ値H(cj,id)をサービス事業者装置40に送信(出力)する。
【0049】
クラウドサーバ30は、
図2のクラウドCLの機能を有するものであり、再暗号化手段31と、インデックスDB(インデックスデータベース)32と、サービス事業者DB(サービス事業者データベース)33とを備える。
【0050】
再暗号化手段31は、ReEncryptアルゴリズムS5を実行するものである。
インデックスDB32は、インデックスnに紐付いた暗号化データc
n,idを蓄積するデータベースである。
サービス事業者DB33は、再暗号化した暗号化データc
n,id´を蓄積するデータベースである。なお、サービス事業者DB33は、サービス事業者SP毎に備えられており、
図2の例では1個となる。
【0051】
サービス事業者装置40は、
図2のサービス事業者SPの機能を有するものであり、ハッシュ値検証手段41と、再暗号化検証手段42と、復号手段43と、パラメータ送信手段44とを備える。なお、サービス事業者装置40において、本発明に直接関係しないため、所望のサービスを提供するための手段の説明及び図示を省略した。
【0052】
ハッシュ値検証手段41は、再暗号化データcj,id´が暗号化データcj,idから正しく再暗号化されているかを検証するものである。
再暗号化検証手段42は、ReEncVerアルゴリズムS6を実行するものである。
【0053】
復号手段43は、DecryptアルゴリズムS7を実行するものである。ここで、復号手段43は、ハッシュ値検証手段41でハッシュ値が一致することが検証でき、かつ、再暗号化検証手段42で再暗号化データが暗号化データから再暗号化されたことが検証できた場合、DecryptアルゴリズムS7により、データを復号する。一方、復号手段43は、ハッシュ値検証手段41でハッシュ値が一致することが検証できないか、再暗号化検証手段42で再暗号化データが暗号化データから再暗号化されたことが検証できない場合、データを復号しない。
パラメータ送信手段44は、id´などのパラメータを鍵生成装置10に送信するものである。
【0054】
[データ管理システムの動作]
図4-1~
図4-3を参照し、データ管理システム1の動作について説明する。
図4-1に示すように、ステップS20において、鍵生成装置10のセットアップ手段11は、セキュリティパラメータkを入力として、SetupアルゴリズムS1により、マスター公開パラメータparamsとマスター秘密鍵mskとを生成する。
【0055】
ステップS21において、セットアップ手段11は、マスター公開パラメータparamsをデータ保有者装置20に送信する。
ステップS22において、セットアップ手段11は、マスター公開パラメータparamsをサービス事業者装置40に送信する。
ステップS23において、セットアップ手段11は、マスター公開パラメータparamsをクラウドサーバ30に送信する。
【0056】
ステップS24において、データ保有者装置20のデータ送信手段24は、データ保有者DOのIDであるidを鍵生成装置10に送信する。
ステップS25において、サービス事業者装置40のパラメータ送信手段44は、サービス事業者SPのIDであるid´を鍵生成装置10に送信する。
【0057】
ステップS26において、鍵生成装置10の復号鍵生成手段12は、マスター公開パラメータparamsとマスター秘密鍵mskとデータ保有者DO及びサービス事業者SPのID(id,id´)とを入力として、KeyGenアルゴリズムS2により、データ保有者DO及びサービス事業者SPの復号鍵(skid,skid´)を生成する。
【0058】
ステップS27において、復号鍵生成手段12は、データ保有者DOの復号鍵skidをデータ保有者装置20に送信する。
ステップS28において、復号鍵生成手段12は、サービス事業者SPの復号鍵skid´をサービス事業者装置40に送信する。
【0059】
ステップS29において、データ保有者装置20の暗号化手段21は、マスター公開パラメータparamsとデータ保有者のID(id)とデータm1,…,mnとを入力として、EncryptアルゴリズムS3により、データm1,…,mnの暗号化データc1,id,…,cn,idを生成する。
【0060】
ステップS30において、暗号化手段21は、暗号化データc1,id,…,cn,idのハッシュ値H(c1,id),…,H(cn,id)を算出する。
ステップS31において、暗号化手段21は、暗号化データcj,idのハッシュ値H(cj,id)をインデックスjに紐付けたテーブルを生成し、テーブル記憶手段23に蓄積する。
ステップS32において、暗号化手段21は、暗号化データc1,id,…,cn,idをクラウドサーバ30に送信する。
【0061】
図4-2に示すように、ステップS33において、クラウドサーバ30は、暗号化データc
1,id,…,c
n,idをインデックス1,…,nに紐付けてインデックスDB32に蓄積する。
ステップS34において、データ保有者装置20の再暗号化鍵生成手段22は、データ保有者DOの復号鍵sk
idとデータ保有者DO及びサービス事業者SPのID(id,id´)とを入力とし、RKGenアルゴリズムS4により、再暗号化鍵rk
id→id´及び再暗号化検証鍵vk
id→id´を生成する。
【0062】
ステップS35において、再暗号化鍵生成手段22は、再暗号化鍵rkid→id´をクラウドサーバ30に送信する。
ステップS36において、また、データ送信手段24は、再暗号化検証鍵vkid→id´、及び、ハッシュ値H(cj,id)をサービス事業者装置40に送信する。
【0063】
ステップS37において、データ送信手段24では、データ保有者DOがサービス事業者SPに提供するデータmjを選択する。
ステップS38において、データ送信手段24は、データ保有者DOが選択したデータmjのインデックスjをクラウドサーバ30に送信する。
【0064】
ステップS39において、クラウドサーバ30の再暗号化手段31は、インデックスjに対応する暗号化データcj,idをインデックスDB32から選択する。
ステップS40において、再暗号化手段31は、マスター公開パラメータparamsと再暗号化鍵rkid→id´とインデックスjに紐付いた暗号化データcj,idとを入力とし、ReEncryptアルゴリズムS5により、暗号化データcj,idを再暗号化する。
【0065】
ステップS41において、再暗号化手段31は、再暗号化データcj,id´をサービス事業者DB33に蓄積する。
ステップS42において、再暗号化手段31は、暗号化データcj,id及び再暗号化データcj,id´をサービス事業者装置40に送信する。
【0066】
図4-3に示すように、ステップS43において、ハッシュ値検証手段41は、ステップS42で受信したクラウドサーバ30の暗号化データc
idからハッシュ値H(c
j,id)を算出し、算出したハッシュ値H(c
j,id)とデータ保有者装置20から受信したハッシュ値H(c
j,id)とが一致するか否かを検証する。
【0067】
ステップS44において、再暗号化検証手段42は、マスター公開パラメータparams、再暗号化検証鍵vkid→id´、暗号化データcj,id及び再暗号化データcj,id´を入力として、ReEncVerアルゴリズムS6によって、再暗号化の検証を行う。
【0068】
ステップS45において、復号手段43は、マスター公開パラメータparamsとサービス事業者SPの復号鍵skid´と再暗号化データcj,id´とを入力として、DecryptアルゴリズムS7により、データmjを復号する。
なお、ステップS43又はステップS44で検証失敗の場合、サービス事業者装置40は、クラウドサーバ30で不正が行われた可能性があるため、復号手段43がデータmjを復号せずに処理を終了する。
【0069】
[作用・効果]
以上のように、データ管理システム1は、IB-VPRE及びハッシュ値を用いて、クラウドサーバ30上でデータを復号することなく暗号化した状態を維持でき、サービス事業者SPにデータを提供する際、暗号化データが正しく再暗号化されていることを検証できる。
【0070】
再暗号化データcj,id´は、データ保有者DOが指定されたIDを持つサービス事業者SPのみが復号できる。また、テーブルを用いることで、暗号化データcj,idを記憶する必要がなく、データ保有者装置20の記録容量を大幅に削減できる。このように、データ管理システム1は、高い安全性とサービスの安定性を両立できる。
【0071】
以上、実施形態を詳述してきたが、本発明は前記した実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
前記した実施形態では、データ管理装置がクラウドサーバであるものとして説明したが、これに限定されない。例えば、データ管理装置は、データベースを備える一般的なサーバであってもよい。
【0072】
前記した実施形態では、データ保有者DO及びサービス事業者SPが1つずつであるものとして説明したが、複数であってもよい。
ここで、データ保有者DOの数をnumとし、サービス事業者SPの数をnum´とする。この場合、復号鍵生成手段12は、データ保有者DOの復号鍵skidをnum個生成し、サービス事業者SPの復号鍵skid´をnum´個だけ生成すればよい。また、再暗号化鍵生成手段22は、num×num´個の再暗号化鍵rkid→id´を生成すればよい。また、サービス事業者DB33は、サービス事業者SPの復号鍵skid´をサービス事業者SPと同数のnum´個だけ備えればよい。
【符号の説明】
【0073】
1 データ管理システム
10 鍵生成装置
11 セットアップ手段
12 復号鍵生成手段
20 データ保有者装置
21 暗号化手段
22 再暗号化鍵生成手段
23 テーブル記憶手段
24 データ送信手段(データ出力手段)
30 クラウドサーバ(データ管理装置)
31 再暗号化手段
32 インデックスDB(インデックスデータベース)
33 サービス事業者DB(サービス事業者データベース)
40 サービス事業者装置
41 ハッシュ値検証手段
42 再暗号化検証手段
43 復号手段
44 パラメータ送信手段
CL クラウド
DO データ保有者
PKG 鍵生成センタ
SP サービス事業者