(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024048309
(43)【公開日】2024-04-08
(54)【発明の名称】データ共有システム、データ共有方法、およびデータ共有プログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20240401BHJP
G06F 21/60 20130101ALI20240401BHJP
【FI】
G06F21/62
G06F21/60 320
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022154284
(22)【出願日】2022-09-27
(11)【特許番号】
(45)【特許公報発行日】2023-04-03
(71)【出願人】
【識別番号】518334141
【氏名又は名称】EAGLYS株式会社
(74)【代理人】
【識別番号】100210815
【弁理士】
【氏名又は名称】西田 聡子
(72)【発明者】
【氏名】今林 広樹
(57)【要約】
【課題】各組織が保有するデータについて処理の権限を設定し、セキュリティに配慮しつつ、データの利活用を容易にする。
【解決手段】
本システムは、データ提供サーバと、共有データベースと、管理サーバと、を備える。データ提供サーバは、属性項目ごとの属性値を含む機微データを取得し、機微データの少なくとも一部の属性値を暗号化する。共有データベースは、データ提供サーバが暗号化した機微データを共有データとして記憶する。管理サーバは、機微データの属性項目ごとに設定される処理の権限を管理し、共有データに対する処理の要求を受け付けると、共有データの属性項目に設定された権限に基づいて、データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う。データ提供サーバは、復号要求に応じて、処理の要求に係る共有データの暗号化された属性値を復号し、復号された属性値を含む処理の要求に係る共有データを提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ提供サーバと、共有データベースと、管理サーバと、を備えるデータ共有システムであって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共有データベースは、前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶し、
前記管理サーバは、
前記機微データの前記属性項目ごとに設定される処理の権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、
を有し、
前記データ提供サーバは、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
をさらに有する、データ共有システム。
【請求項2】
前記処理の権限は、前記属性項目ごとの属性値の開示に関する権限を含む、請求項1に記載のデータ共有システム。
【請求項3】
前記属性値の開示に関する権限は、開示を許可するユーザに関する情報を含む、請求項2に記載のデータ共有システム。
【請求項4】
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含む、請求項3に記載のデータ共有システム。
【請求項5】
前記提供部が提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成するデータ変換サーバをさらに備える、請求項4に記載のデータ共有システム。
【請求項6】
前記所定の変換は、、前記属性値の抽象化、ノイズ付加、または置換を行う処理のいずれか一つを含む請求項5に記載のデータ共有システム。
【請求項7】
前記属性値の開示に関する権限は、複数の段階を有する入力要素を用いて設定される、請求項6に記載のデータ共有システム。
【請求項8】
前記開示データは、前記復号された属性値、前記所定の変換がされた属性値、前記暗号化された属性値のうちの少なくとも一つを含む、
請求項7に記載のデータ共有システム。
【請求項9】
前記データ提供サーバは、少なくとも2以上の複数である、請求項1から請求項8のいずれか一項に記載のデータ共有システム。
【請求項10】
前記共有データは、複数の前記データ提供サーバにおいて前記暗号化された機微データを、当該機微データの前記属性項目として含まれる識別子に基づいて統合された機微データである、請求項9に記載のデータ共有システム。
【請求項11】
データ提供サーバと、共有データベースと、管理サーバと、を備えるシステムにおけるデータ共有方法であって、
前記データ提供サーバが、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
前記共有データベースが、
前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶するステップと、
前記管理サーバが、
前記機微データの前記属性項目ごとに設定される処理の権限を管理するステップと、
前記共有データに対する処理の要求を受け付けるステップと、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、
前記データ提供サーバが、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号するステップと、
前記復号された属性値を含む前記処理の要求に係る共有データを提供するステップと、
を備える、データ共有方法。
【請求項12】
データ提供サーバと、共有データベースと、管理サーバと、を備えるシステムにおけるデータ共有プログラムであって、
前記データ提供サーバの制御部が、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
前記共有データベースの記憶部が、
前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶するステップと、
前記管理サーバの制御部が、
前記機微データの前記属性項目ごとに設定される処理の権限を管理するステップと、
前記共有データに対する処理の要求を受け付けるステップと、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、
前記データ提供サーバの制御部が、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号するステップと、
前記復号された属性値を含む前記処理の要求に係る共有データを提供するステップと、
を備える、データ共有プログラム。
【請求項13】
共有データベースと、管理サーバと、に接続されるデータ提供サーバであって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共有データベースは、前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶し、
前記管理サーバは、
前記機微データの前記属性項目ごとに設定される処理の権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、
を有し、
前記データ提供サーバは、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
をさらに有する、データ提供サーバ。
【請求項14】
データ提供サーバと、共有データベースと、管理サーバと、を備えるデータ共有システムにおいて用いられる端末装置であって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共有データベースは、前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶し、
前記管理サーバは、
前記機微データの前記属性項目ごとに設定される処理の権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限及び前記端末装置の識別子に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、
を有し、
前記データ提供サーバは、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
をさらに有し、
前記端末装置は、
前記管理サーバに、前記共有データに対する前記処理の要求、および端末を識別する前記識別子を送信する送信部と、
前記データ提供サーバの前記提供部から提供された前記処理の要求に係る共有データを出力する出力部と、を有する、端末装置。
【請求項15】
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
前記暗号化された機微データを共有データとして記憶する記憶部と、
前記機微データの前記属性項目ごとに設定される処理の権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、当該属性項目に係る属性値の復号要求を行う復号要求部と、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
を有する、データ共有システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ共有システム、データ共有方法、およびデータ共有プログラムに関する。
【背景技術】
【0002】
インターネット上で提供される電子商取引サービスにおいて、自組織保有のデータはもとより、組織外のデータも活用し、利用者の性別、住所、取引情報などの個人情報を、サービス提供者側がマーケティング等を目的として統計分析を行う技術がある。例えば、特許文献1には、サービス提供者が利用者の個人情報を得ることなく、取引履歴の分析を得ることができる電子商取引システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のシステムでは、統計分析を行いたいサービス提供サーバ側が、他のすべてのサービス提供サーバに対して暗号化鍵を送信し、他のサービス提供サーバは、当該送信された暗号化鍵を用いてデータを暗号化して、統計分析を行う第三者機関サーバに送信する。このため、他のサービス提供サーバにとっては、自身が保有するデータが他者の暗号化鍵によって暗号化されるため、情報漏洩や不正利用等の情報セキュリティ上の問題が発生する可能性が危惧される。
【0005】
また、自組織保有のデータを組織外の第三者と共有して活用するためには、セキュリティに配慮する必要があるが、全てのデータを同じセキュリティレベルで扱うような過度なデータ保護は、データの利活用促進を阻害するおそれがある。
【0006】
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、各組織が保有するデータについて処理の権限を設定し、セキュリティに配慮しつつ、データの利活用を容易にすることができるデータ共有システムを提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本開示に係るデータ共有システムは、データ提供サーバと、共有データベースと、管理サーバと、を備えるシステムであって、データ提供サーバは、属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、暗号鍵および復号鍵を管理する鍵管理部と、暗号鍵を用いて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、を有し、共有データベースは、データ提供サーバにおいて暗号化された機微データを共有データとして記憶し、管理サーバは、機微データの属性項目ごとに設定される処理の権限を管理する権限管理部と、共有データに対する処理の要求を受け付ける受付部と、処理の要求に係る共有データの属性項目に設定された権限に基づいて、データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、を有し、データ提供サーバは、復号要求に応じて、復号鍵を用いて、処理の要求に係る共有データの暗号化された属性値を復号する復号部と、復号された属性値を含む処理の要求に係る共有データを提供する提供部と、をさらに有する。
【0008】
また、上記目的を達成するため、本開示に係るデータ共有方法は、データ提供サーバと、共有データベースと、管理サーバと、を備えるシステムにおける方法であって、データ提供サーバが、属性項目ごとの属性値を含む機微データを取得するステップと、暗号鍵および復号鍵を管理するステップと、暗号鍵を用いて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、共有データベースが、データ提供サーバにおいて暗号化された機微データを共有データとして記憶するステップと、管理サーバが、機微データの属性項目ごとに設定される処理の権限を管理するステップと、共有データに対する処理の要求を受け付けるステップと、処理の要求に係る共有データの属性項目に設定された権限に基づいて、データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、データ提供サーバが、復号要求に応じて、復号鍵を用いて、処理の要求に係る共有データの暗号化された属性値を復号するステップと、復号された属性値を含む処理の要求に係る共有データを提供するステップと、を備える。
【0009】
また、上記目的を達成するため、本開示に係るデータ共有プログラムは、データ提供サーバと、共通データベースと、管理サーバと、を備えるシステムに実行させるプログラムであって、データ提供サーバの制御部が、属性項目ごとの属性値を含む機微データを取得するステップと、暗号鍵および復号鍵を管理するステップと、暗号鍵を用いて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、共有データベースの記憶部が、データ提供サーバにおいて暗号化された機微データを共有データとして記憶するステップと、管理サーバの制御部が、機微データの属性項目ごとに設定される処理の権限を管理するステップと、共有データに対する処理の要求を受け付けるステップと、処理の要求に係る共有データの属性項目に設定された権限に基づいて、データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、データ提供サーバの制御部が、復号要求に応じて、復号鍵を用いて、処理の要求に係る共有データの暗号化された属性値を復号するステップと、復号された属性値を含む処理の要求に係る共有データを提供するステップと、を備える。
【発明の効果】
【0010】
本開示によれば、データ共有システムにおいて、各組織が保有するデータについて、セキュリティに配慮しつつ、データの利活用を容易にすることができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係るデータ共有システム1の構成を示す図である。
【
図2】端末装置100の機能構成の一例を示す機能ブロック図である。
【
図3】データ提供サーバ200の機能構成の一例を示す機能ブロック図である。
【
図4】データ変換サーバ300の機能構成の一例を示す機能ブロック図である。
【
図5】管理サーバ400の機能構成の一例を示す機能ブロック図である。
【
図6】機微データのデータ構造の一例を示した図である。
【
図7】処理の権限を設定する画面の一例を示す図である。
【
図8】所定の変換の対応関係の一例を示す図である。
【
図10】データ共有システム1において開示データが表示されるまでの処理の一例を示すフローチャートである。
【
図11】管理サーバ400のハードウェア構成を示すブロック図である。
【
図12】本実施形態に係るデータ共有システム2の構成を示す図である。
【
図13】実施形態2に係る機微データのデータ構造の一例を示した図である。
【
図14】暗号化された機微データのデータ構造の一例を示す図である。
【
図15】統合データのデータ構造の一例を示す図である。
【
図16】管理サーバ700の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【0012】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【0013】
<本発明の概要>
近年、顧客情報などの大量の機微データを保有する組織が増加している。これにより、自組織だけでなく、他組織が保有する機微データも活用して統計的な分析処理等を行い、ビジネス上の新たな知見や、サービスにつなげるようなクラウドサービスが普及しつつある。機微データは、セキュリティへの配慮や、プライバシーの保護などデータの取り扱いに細心の注意が求められる情報であるため、自組織の保有する機微データの情報漏洩を防ぎつつ、検索や集計分析、統計などのデータ処理を行うことが必要である。
【0014】
そこで、本発明に係るデータ共有システムでは、当該システムに参加する組織等から提供される機微データを、所定の暗号方式(暗号化状態のまま、検索や分析等を含む演算を行うことができる暗号方式)で暗号化し、暗号化及び復号に用いる鍵は、当該機微データを提供した各組織において管理する。これにより、自組織の保有する機微データや、それに関連するデータ処理の実行結果に対する復号処理を自組織で管理することができる。
【0015】
その一方で、全てのデータを所定の暗号方式で暗号化し、上述のように暗号化したまま演算できたとしても、データの内容を全く開示しないような形態のデータ共有は、データの利活用促進を阻害するおそれがある。例えば、機微データの詳細な内容や演算結果を取得する必要はないが、全体としての傾向や、概要が分かれば、統計情報として十分な場合がある。また、例えば、他組織が保有する機微データを含めた共有データを、自組織のデータベースのごとく表示できれば、一覧性がよくなり、データ活用の利便性が高まる。
【0016】
そこで、本発明に係るデータ共有システムでは、属性項目ごとの属性値を含む機微データについて、属性項目ごとに開示レベルを設定し、開示レベルに基づいて、開示データを生成する。これにより、他組織と共有する機微データについて、セキュリティに配慮しつつ、利活用を容易にすることができる。
【0017】
<実施形態1>
実施形態1に係るデータ共有システム1は、プラットフォームに参加する組織である「会社A」が保有する機微データを他組織のユーザと共有するシステムである。
(データ共有システム1の構成)
【0018】
図1は、本実施形態に係るデータ共有システム1の構成を示す図である。
図1を参照して、実施形態1に係るデータ共有システム1の構成について説明する。
【0019】
データ共有システム1は、社内システム10と、データセンタ20と、端末装置600-1,600-2,…,600-N(Nは自然数。特に区別する必要のない限り、「端末装置600」と記載する。)と、を備え、ネットワークNWを介して通信可能に接続される。
【0020】
データ共有システム1は、当該システムに参加する組織が、自組織が保有する機微データについて、他組織が利用できる処理の権限を設定し、他組織と共有する機微データを利用させることができるプラットフォームである。なお、組織とは、システムを利用するユーザであって、企業や団体に限られず、役割ごとに区切られた部門、課、グループ、チーム等の集団、当該集団を構成する個人、システムを利用する個人等であってもよい。
【0021】
ネットワークNWは、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、光回線網、イントラネット等であるが、任意のネットワークから構成されてもよい。また、データ共有システム1を構成する装置等は、ネットワークNWを介さず、ローカルに接続されてもよい。
【0022】
社内システム10は、プラットフォームに参加する組織である会社Aの社内システムである。社内システム10は、端末装置100-1,…,100-M(Mは自然数。特に区別する必要のない限り、「端末装置100」と記載する。)と、データ提供サーバ200と、データ変換サーバ300と、を有する。社内システム10は、オンプレミスでもよいし、クラウド(プライベートクラウドや、ハイブリッドクラウドなど。)であってもよく、端末装置100は、会社A内に物理的に配置されていなくてよい。
【0023】
端末装置100は、会社Aの社内システム10にアクセスする権限を有する者(例えば、会社Aの従業員など。)が用いる情報処理装置であって、例えば、PC(Personal Computer)、スマートフォン、タブレット端末である。また、ヘッドマウントディスプレイ等のウェアラブル端末、AR(Augmented Reality)/VR(Virtual Reality)/MR(Mixed Reality)装置等であってもよい。端末装置100は、データ提供サーバ200に対し、属性項目(カラム)ごとの属性値を含む機微データを送信してもよい。なお、機微データのデータ構造については後述(
図6等)する。
【0024】
データ提供サーバ200は、会社Aが保有する機微データをデータ共有システム1に提供するアプリケーションサーバである。データ提供サーバ200は、端末装置100等から取得した機微データの少なくとも一部の属性値を暗号化し、管理サーバ400に送信する。また、管理サーバ400からの復号要求に応じて、暗号化された属性値や、演算結果等を復号する。なお、データ提供サーバ200は、暗号鍵および復号鍵を自サーバ内で記憶して管理してもよいし、他の情報処理装置に記憶させて管理(例えば、KMS(Key Management System:鍵管理システム)に管理を委託)してもよい。
【0025】
データ変換サーバ300は、データ提供サーバ200から取得したデータに基づいて、データ共有システム1に参加する他組織(
図1の例では、会社A以外の組織)の者に開示するデータを生成するアプリケーションサーバである。データ変換サーバ300が生成した開示データは、例えば、端末装置600(後述)において表示される。データ変換サーバ300は、
図1の例では、データ提供サーバ200と別々に構成されているが、データ提供サーバ200が、データ変換サーバ300の機能を有していてもよい。
【0026】
データセンタ20は、データ共有システム1において共有するデータを管理し、ユーザからの要求に応じた処理を実行する。データセンタ20は、管理サーバ400と、共有データベース500と、を有する。
【0027】
管理サーバ400は、データ提供サーバ200から取得した、暗号化された機微データを、共有データとして共有データベース500に格納する。また、管理サーバ400は、ユーザから受け付けた、共有データに対する処理の要求に応じて、当該共有データ(機微データ)を提供したデータ提供サーバ200に対し、処理の要求に係る共有データの属性値の復号を要求する。
【0028】
共有データベース500は、データ提供サーバ200において暗号化された機微データを共有データとして記憶する。
【0029】
端末装置600は、データ共有システム1を利用するユーザが用いる情報処理装置であって、上述の端末装置100と同様の装置である。端末装置600のユーザは、例えば、会社A以外の組織に属するユーザや、社内システム10にアクセスする権限がないユーザである。
【0030】
端末装置600は、管理サーバ400に対し、共有データベース500に格納される共有データに対する処理の要求を行う。ここで、端末装置600から要求される「処理」とは、例えば、共有データの閲覧、検索、集計処理、統計処理を含む。
【0031】
共有データに対する閲覧の要求は、ユーザが明示的に端末装置600を操作して、管理サーバ400に送信してもよいし、ユーザがデータ共有システム1にログインすると自動的に閲覧の要求が管理サーバ400に送信され、ユーザの端末装置600に予め設定された共有データが表示されるようにしてもよい。ユーザがデータ共有システム1にログインし、例えば、初期画面として他組織の共有データも表示されると、ユーザは、あたかも、自組織のデータベースのように共有データを閲覧することができる。
【0032】
なお、
図1において、データ共有システム1は、1つのデータ提供サーバ200を備えるが、データ共有システム1に複数の組織が参加する場合は、参加する各組織に関連付けられた複数のデータ提供サーバ200を備える。
【0033】
以下、上述したデータ共有システム1を構成する各サーバ等の機能構成、処理について説明する。なお、各機能構成を示す機能ブロックや処理ブロックは、1つの装置やコンピュータプロセッサによって実現するのに限られず、分散したグループによって実現してもよい。
【0034】
(端末装置100の機能構成)
図2は、端末装置100の機能構成の一例を示す機能ブロック図である。
図2を参照して、端末装置100の機能構成の一例について説明する。なお、端末装置600は、端末装置100と同様の機能構成を有するため、本明細書では、端末装置600の機能構成の説明は省略する。
【0035】
端末装置100は、通信部101と、記憶部102と、入力部103と、出力部104と、制御部105と、を備える。端末装置100は、上述したように、例えば、プラットフォーム(データ共有システム1)に参加する会社Aの従業員等が操作する情報処理装置である。
【0036】
通信部101は、端末装置100が社内システム10内のネットワークや、ネットワークNW(以下、「ネットワークNW等」と記載する場合がある。)を介してサーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。所定の通信プロトコルは、TCP/IP(Transmission Control Protocol/Internet Protocol)等である。通信部101は、端末装置を識別する識別子を送信してもよい。
【0037】
通信部101は、受信したデータを制御部105に送り、また、制御部105から受け取ったデータを、ネットワークNW等を介してサーバや装置等に送信するが、通信部101は、端末装置100内の制御部105以外の機能ブロックとデータのやり取りを行ってもよい。なお、通信部101は、ネットワークNW等を介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、セッション鍵(共通鍵)や公開鍵等を用いた周知の技術であるため、説明を省略する。
【0038】
記憶部102は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ装置や、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク等の可搬型の記憶装置である。記憶部102は、端末装置100の各種処理に用いられるコンピュータプログラム、機微データ等を記憶する。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて記憶部102にインストールされてもよい。可搬型記録媒体は、例えばCD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)等である。コンピュータプログラムは、所定のサーバ等からインストールされてもよい。また、記憶部102は、上述したセッション鍵を記憶してもよい。また、記憶部102に格納された機微データは、データ提供サーバ200に送信した後は、情報漏洩を防ぐため、削除されるようにしてもよい。
【0039】
入力部103は、端末装置100のユーザ入力を受け付けるインタフェースである。入力部103は、例えば、キーボードや、タッチパネル、音声入力を検出するマイクであるが、これらに限られない。入力部103は、ユーザから、例えば、機微データ等を受け付けてもよい。
【0040】
出力部104は、情報を出力してユーザに通知するインタフェースである。出力部104は、例えば、ディスプレイや、音声出力するスピーカであるが、これらに限られない。出力部104は、例えば、他の端末装置100や端末装置600、データ変換サーバ300等から受信したデータをディスプレイに表示する。
【0041】
制御部105は、端末装置100の各機能を制御し、予め記憶部102に記憶されているプログラムに基づいて動作するCPU(Central Processing Unit)等のプロセッサである。なお、制御部105として、DSP(Digital Signal Processor)等が用いられてもよい。また、制御部105として、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programming Gate Array)等の制御回路が用いられてもよい。
【0042】
制御部105は、入力部103を介したユーザからの指示に応じて、各種の処理を実行する。例えば、制御部105は、機微データ等を、通信部101を介してデータ提供サーバ200に送信する。また、共有データに対する処理の要求を、通信部101を介して管理サーバ400に送信してもよい。
【0043】
(データ提供サーバ200の機能構成)
図3は、データ提供サーバ200の機能構成の一例を示す機能ブロック図である。
図3を参照して、データ提供サーバ200の機能構成の一例について説明する。
【0044】
データ提供サーバ200は、通信部201と、制御部202と、記憶部203と、鍵管理部204と、暗号化部205と、復号部206と、を備える。
【0045】
通信部201は、端末装置100の通信部101と同様に、ネットワークNW等を介してサーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。通信部201は、受信したデータを制御部202に送る。また、通信部201は、制御部202から受け取ったデータを、ネットワークNWを介してサーバや装置等に送信する。なお、通信部201は、ネットワークNW等を介した装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。
【0046】
通信部201は、属性項目ごとの属性値を含む機微データを取得する「機微データ取得部」として機能する。通信部201は、例えば、プラットフォームに参加する組織から、当該組織が保有する機微データを取得する。
図1の例では、データ提供サーバ200は、例えば、会社Aの従業員が用いる端末装置100から機微データを取得する。
【0047】
機微データは、例えば、会社Aの各事業所の所在地、顧客、事業所ごとの製品の売り上げ等であり、各事業所の属性を示す項目である属性項目(カラム)とその属性値(文字列又は数値)を含む。機微データは、これらに限らず、例えば、個人に関する情報であってもよい。個人に関する情報とは、例えば、年齢、性別、収入、居住地域、購買情報、メールアドレス、電話番号、勤務先などである。また、機微データは、機器に関するログデータ等であってもよく、通信部201は、機器等からログデータを取得してもよい。機微データのデータ構造については後述(
図6参照)する。
【0048】
また、通信部201は、復号部206(後述)において復号された属性値を含む処理の要求に係る共有データを提供する「提供部」として機能する。通信部201は、例えば、データ変換サーバ300(
図4において詳述。)に、復号された属性値を含む当該処理の要求に係る共有データを提供する。なお、通信部201は、例えば、処理として閲覧の要求をした端末装置600(のユーザ)に設定された開示に関する権限が、少なくとも一部の属性値の生データの開示が許可された権限であった場合は、端末装置600に対し、復号された属性値を含む当該処理の要求に係る共有データを送信してもよい。端末装置600は、生データの開示が許可された属性値については、閲覧することができる。
【0049】
制御部202は、端末装置100の制御部105と同様に、データ提供サーバ200の各機能を制御し、予め記憶部203(後述)に記憶されているプログラムに基づいて動作するCPU等のプロセッサである。
【0050】
制御部202は、暗号化部205に対し、通信部201を介して取得した機微データについて暗号化するよう制御する。また、制御部202は、復号部206に対し、通信部201を介して取得した共有データの属性値について復号するよう制御する。
【0051】
記憶部203は、端末装置100の記憶部102と同様の記憶装置等を有する。また、記憶部203は、データ提供サーバ200の各種処理に用いられるコンピュータプログラム等が格納される。また、記憶部203は、例えば、暗号化された機微データや、後述する鍵管理部204が管理する暗号鍵や復号鍵などを記憶する。
【0052】
鍵管理部204は、暗号鍵および復号鍵を管理する。鍵管理部204は、例えば、暗号化部205の要求する暗号方式に応じた鍵を生成してもよい。暗号方式が、例えば、暗号化状態のまま加減算が可能な(加法的な)準同型暗号方式(Paillier方式)の場合は、公開鍵(暗号鍵)と秘密鍵(復号鍵)の組を生成する。
【0053】
また、暗号方式が、暗号文の大小関係と対応する平文の大小関係が一致する順序保存暗号方式(OPE方式:Order Preserving Encryption)や、暗号化状態のまま平文の一致判定が可能な検索可能暗号方式の場合は、秘密鍵(共通鍵)を生成する。このように、暗号鍵と復号鍵は、公開鍵と秘密鍵の組のように異なる鍵である場合と、共通鍵のように同じ鍵である場合とがある。なお、鍵生成アルゴリズムは、周知の技術であるので説明を省略する。
【0054】
鍵管理部204は、生成した鍵や鍵生成のためのパラメータ等を、例えば、記憶部203に記憶させる。鍵管理部204は、生成した鍵と、暗号方式やどのデータ(属性項目(カラム)ごとの属性値等)の暗号化に用いたか等とを対応付けて管理する。なお、鍵管理部204の機能を、データ提供サーバ200外にある鍵管理サーバ(
図1において不図示)に持たせ、データ共有システム1における鍵管理を、鍵管理サーバに行わせるようにしてもよい。
【0055】
暗号化部205は、通信部201が取得した機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する。所定の暗号方式には、通信部201が取得した機微データの少なくとも一部の属性値を暗号化状態のまま演算可能な暗号方式を含み、例えば、準同型暗号方式、順序保存暗号方式、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、検索可能暗号、SHA(Secure Hash Algorithm)、MD5(Message Digest algorithm 5)などである。なお、「演算」とは、加減乗除に関する計算、検索、分析に関する計算を含む。
【0056】
本実施形態では、暗号化部205は、機微データに含まれる属性項目の属性値のうち、データ形式が数値の場合は、準同型暗号方式(Paillier方式、Lifted-Ellgamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等)および/または順序保存暗号方式(OPE方式)を用いて暗号化する。なお、データ処理の内容に応じて、暗号方式により処理効率が異なるので、各属性項目は、準同型暗号方式で暗号化された属性値、順序保存暗号方式で暗号化された属性値、検索可能暗号方式で暗号化された属性値等、複数の暗号方式で保持しておいてもよい。また、データ形式が文字列の場合は、検索可能暗号方式、もしくは暗号文上で完全一致が可能なAES暗号等を用いて暗号化する。なお、データ形式ごとに適用する上記暗号方式は一例であって、どの属性項目の属性値について暗号化するか、また、どの暗号方式で暗号化するか等は、機微データを保有する組織が適宜決定してもよい。
【0057】
復号部206は、管理サーバ400からの復号要求(
図5において詳述。)に応じ、復号鍵を用いて、管理サーバ400が受け付けた処理の要求に係る共有データの暗号化された属性値を復号する。より詳しくは、復号部206は、管理サーバ400からの復号要求がされた共有データのうち、鍵管理部204が管理する暗号鍵で暗号化した属性項目の属性値について、記憶部203から対応する復号鍵を取得して、暗号化した暗号方式に従って復号する。また、復号部206は、属性値だけでなく、上述の属性値を暗号化状態のまま演算可能な暗号方式で演算した実行結果も復号できる。なお、復号アルゴリズムは、周知の技術であるので説明を省略する。
【0058】
また、復号部206は、復号した属性値を含む共有データを制御部202に送る。制御部202は、通信部201を介して、共有データをネットワークNW等に接続するサーバ等に送信する。
【0059】
(データ変換サーバ300の機能構成)
図4は、データ変換サーバ300の機能構成の一例を示す機能ブロック図である。
図4を参照して、データ変換サーバ300の機能構成の一例について説明する。
【0060】
データ変換サーバ300は、通信部301と、制御部302と、記憶部303と、を備える。
【0061】
通信部301は、端末装置100の通信部101と同様に、ネットワークNW等を介してサーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。通信部301は、受信したデータを制御部302に送る。また、通信部301は、制御部302から受け取ったデータを、ネットワークNW等を介してサーバや装置等に送信する。なお、通信部301は、ネットワークNW等を介した装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。
【0062】
制御部302は、端末装置100の制御部105と同様に、データ変換サーバ300の各機能を制御し、予め記憶部303(後述)に記憶されているプログラムに基づいて動作するCPU等のプロセッサである。制御部302は、データ提供サーバ200が提供する共有データに対し、開示レベルに関する情報(
図5において詳述。)に基づいて、所定の変換を行って、開示データを生成する。制御部302は、通信部301に対し、生成した開示データを、処理の要求を送信した端末装置600へ送信するよう制御する。
【0063】
ここで、「所定の変換」は、属性値の抽象化、ノイズ付加、または置換を行う処理のいずれか一つを含む。属性値の抽象化とは、例えば、属性値の情報の粒度を粗くすることである。情報の粒度とは、情報の細かさであり、例えば、粒度が粗いほど、情報が単純化、概数化、グループ化され、粒度が細かいほど、具体化される。すなわち、粒度が粗いほど、情報を一意に特定することが困難になる。
【0064】
属性項目の内容に応じて、どのように属性値を変換するかは、予め、データを提供する者が開示レベルに関する情報として設定しておいてよい。
【0065】
例えば、属性項目が都道府県に対応する場合、開示レベルに関する情報として、都道府県名の粒度を変更し、都道府県名を地域名に変換して開示する旨の設定がされているときは、制御部302は、属性値の都道府県名を地域名に変換した開示データを生成してもよい。例えば、属性値が「東京」であった場合、制御部302は、「関東」(地域名)に変換した開示データを生成する。また、具体的な地域名ではなく、「地域1」のようなグループ名に変換した開示データを生成してもよい。また、属性項目が住所に対応する場合、丁目や番地を削除し、市町村や区名までに変換した開示データを生成してもよい。
【0066】
また、例えば、属性項目が売り上げに対応する場合、開示レベルに関する情報として、数値の粒度を変更し、数値を概数に変換して開示する旨の設定がされているときは、制御部302は、属性値の数値を概数に変換した開示データを生成してもよい。例えば、属性値が「4,329,450円」であった場合、制御部302は、「4,300,000円」のような概数に変換した開示データを生成する。なお、どの位までの概数にするかは、機微データの保有者等が開示レベルに応じて適宜設定することができる。例えば、百万の位までの概数、一万の位までの概数のように、段階的に異ならせてもよい。また、属性項目に係る属性値のうち、特徴値や最頻値のみ概数に変換して開示するようにしてもよい。
【0067】
また、例えば、属性項目が製品ID(製品名)に対応する場合、開示レベルに関する情報として、製品IDの粒度を変更し、製品IDを製品のカテゴリ(種類)に変換して開示する旨の設定がされているときは、制御部302は、属性値の製品IDを製品のカテゴリに変換した開示データを生成してもよい。例えば、属性値が「SL9018BL」のような、製品を識別する製品IDの場合は、製品のカテゴリである「事務用品」に変換した開示データを生成する。なお、設定される開示レベルによって、製品のサブカテゴリに変換するようにしてもよい。例えば、「事務用品」のサブカテゴリとして、「封筒」や「クリップ」というように、さらに製品の種類を特定するような情報を開示してもよい。
【0068】
また、例えば、属性項目が年齢に対応する場合は、数値の粒度を変更し、年齢によって区分けした層(年代)に変換した開示データを生成してもよい。例えば、属性値が「26歳」であった場合、制御部302は、「20代」に変換した開示データを生成する。
【0069】
また、制御部302は、所定の変換として、データ提供サーバ200が提供する共有データに対し、属性値に所定の数値幅を付加して、開示データを生成してもよい。例えば、属性項目が年齢や体重に対応する場合は、差分プライバシー(Differential Privacy)の手法を用い、数値にノイズ(所定の数値幅)を付加する変換をしてもよい。例えば、属性値が「26歳」であった場合は、「23~29歳」のように、3歳の幅を持たせる変換をして開示データを生成する。
【0070】
このように属性値を生データのまま開示するのではなく、所定の変換をして開示することで、機微データの内容を保護しつつ、分析対象として意味のあるデータとして共有することができる。なお、上述した所定の変換は、一例であり、これらに限られない。
【0071】
一方、開示が許可されていない属性項目の属性値については、暗号化された属性値のまま開示してもよいが、黒塗り等のマスキングや「*」等の符号を用いた伏字に置換した開示データを生成してもよい。また、不可逆的なハッシュ等を含む暗号化データや、元のデータを学習して生成させたデータ、ランダムに生成させたデータに変換したり、付加して開示データを生成してもよい。また、開示が許可されていない属性項目の属性値について、非公開である旨のメッセージや、開示するために必要な課金額等の記載に置換した開示データを生成してもよい。
【0072】
また、本実施形態では、制御部302は、生成した開示データを、処理の要求を送信した端末装置600に送信するが、制御部302は、生成した開示データを管理サーバ400に送信し、管理サーバ400から、処理の要求を送信した端末装置600に、当該開示データを送信するようにしてもよい。
【0073】
記憶部303は、端末装置100の記憶部103と同様の記憶装置等を有する。また、記憶部303は、データ変換サーバ300の各種処理に用いられるコンピュータプログラム等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて記憶部303にインストールされてもよい。記憶部303は、上述した、属性値に対する所定の変換について、変換の対応関係を示すテーブルを記憶する。対応関係を示すテーブルについては後述(
図8)する。
【0074】
(管理サーバ400の機能構成)
図5は、管理サーバ400の機能構成の一例を示す機能ブロック図である。
図5を参照して、管理サーバ400の機能構成の一例について説明する。
【0075】
管理サーバ400は、通信部401と、記憶部410と、制御部420と、を備える。
【0076】
通信部401は、端末装置100の通信部101と同様に、管理サーバ400がネットワークNW等を介して各サーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。通信部401は、受信したデータを制御部420に送り、また、制御部420から受け取ったデータを、ネットワークNW等を介してサーバや装置等に送信する。
【0077】
また、通信部401は、共有データベース500に格納される共有データに対する処理の要求を受け付ける「受付部」として機能する。なお、通信部401は、ネットワークNW等を介した装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。
【0078】
記憶部410は、端末装置100の記憶部103と同様の記憶装置等を有する。また、記憶部410は、管理サーバ400の各種処理に用いられるコンピュータプログラム等が格納される。
【0079】
記憶部410は、機微データの属性項目ごとに設定される処理の権限に関する情報である設定ファイル411を有する。処理の権限は、属性項目ごとの属性値の開示に関する権限を含む。属性値の開示に関する権限は、開示を許可するユーザに関する情報を含み、例えば、プラットフォームに参加する組織のうち、機微データの開示を許可する組織を示す情報である。なお、当該組織のうち、部署やグループ、職位が一定以上の者、のように、組織内における集団や、職位に関する情報を含んでもよい。また、メールアドレスやドメイン、開示を許可する個人を特定する情報を含んでもよい。
【0080】
また、属性値の開示に関する権限は、属性値に対する開示レベルに関する情報を含む。例えば、開示レベルを複数の段階に分け、属性値の生データを開示する(レベル高)、属性値(数値や文字)を所定の変換をして開示する(レベル中)、属性値の開示を許可しない(レベル低)、のようにレベル分けしてもよい。
【0081】
また、属性値の開示に関する権限は、複数の段階を有する入力要素を用いて設定されてもよい。例えば、開示レベルの複数の段階について、数値入力や、スライドバー等の入力要素を用いて設定されてもよい。開示レベルを複数の段階(例えば、4以上の段階)に分けることで、情報の粒度をより細かく変更できるようにしてもよい。
【0082】
このように、開示レベルに応じて、属性値の開示内容を段階的に異ならせることができる。例えば、開示データは、復号された属性値、所定の変換がされた属性値、暗号化された属性値のうちの少なくとも一つを含む。したがって、開示レベルに関する情報に基づいて、開示データが生成され、ユーザの端末装置に表示されるため、機微データを提供したユーザにとっては、セキュリティレベルを管理しつつ共有することができ、また、機微データを利用するユーザにとっては、自組織内のデータベースであるかのようにデータ利用することができる。
【0083】
また、例えば、課金額によって、開示する内容を異ならせることで、すべてを非開示にする場合よりも、機微データを利用するユーザに対し、詳細な内容を知りたいという意欲を高め、利用動機やより高い料金を支払う動機付けを与える事ができる。
【0084】
制御部420は、全体制御部421と、権限管理部422と、演算実行部423と、復号要求部424と、を有する。全体制御部421は、端末装置100の制御部105と同様に、管理サーバ400の各機能を制御し、予め記憶部410に記憶されているプログラムに基づいて動作するCPU等のプロセッサである。
【0085】
権限管理部422は、機微データの属性項目ごとに設定される処理の権限を管理する。権限管理部422は、例えば、端末装置100等において入力された、機微データの属性項目ごとに設定される処理の権限に関する情報を、通信部401を介して受け付け、設定ファイル411として記憶部410に記憶させる。なお、処理の権限に関する情報は、データ提供サーバ200において設定され、管理サーバ400と共有してもよいし、予め、データ共有システム1の運営者によって設定されていてもよい。
【0086】
また、権限管理部422は、機微データの属性項目の内容に応じて、開示レベルを設定しておいてもよい。例えば、属性項目が「氏名」のような、個人を特定する情報の場合は、属性値を非開示(開示レベル低)と自動的に設定してもよい。また、権限管理部422は、受け付けた処理の権限に関する情報に基づいて、属性項目の内容と、実際に行われた所定の変換との関係を学習し、開示レベルを自動的に設定するようにしてもよい。
【0087】
また、処理の権限に関する情報は、データを提供したデータ提供サーバ200において管理してもよい。この場合、権限管理部422は、共有データに対する閲覧の処理の要求を通信部401が受け付けるごとに、当該共有データを提供したデータ提供サーバ200に対し、開示可否等を問い合わせる。
【0088】
なお、本実施形態では、処理の権限は、管理サーバ400において管理しているが、データ提供サーバ200において管理するようにしてもよいし、データ提供サーバ200および管理サーバ400の両方で管理するようにしてもよい。
【0089】
演算実行部423は、共有データに対する演算の処理を実行する。そして、演算実行部423は、処理の実行結果を復号要求部424(後述)へ送る。ここで、演算の処理とは、共有データの属性項目の少なくとも一部を対象とする検索処理または統計処理またはその両方の処理を含む。本実施形態では、検索処理は、所定の条件を満たすレコードを抽出する処理のことをいう。また、統計処理は、例えば、集計用の関数により行う処理であって、代表的には、テーブルの行数(レコード)を数える処理(COUNT関数)、テーブルの数値列のデータを合計する処理(SUM関数)、テーブルの数値列のデータを平均する処理(AVG関数)、テーブルの任意列のデータの最大値を求める処理(MAX関数)、テーブルの任意列のデータの最小値を求める処理(MIN関数)などであるが、これらに限られない。対象セグメントごとにまとめる「GROUP BY」、順序を昇順・降順に並び替える「ORDER BY」のようなSQL構文であってもよい。
【0090】
なお、本実施形態では、演算の処理は、管理サーバ400において実行しているが、データ提供サーバ200や、共有データベース500に、演算実行部423と同様の機能を持たせ、演算の処理を実行させてもよい。
【0091】
復号要求部424は、処理の要求に係る共有データの属性項目に設定された処理の権限に基づいて、データ提供サーバ200に対し、当該属性項目に係る属性値の復号要求を行う。復号要求部424は、例えば、通信部401が閲覧の処理の要求を、端末装置600-1から受け付けた場合、設定ファイル411にアクセスして、当該処理の要求に係る共有データの属性項目に設定された処理の権限を参照する。復号要求部424は、当該処理の権限と、端末装置600-1に関連付けられたユーザの識別子等に基づいて、端末装置600-1に関連付けられたユーザが、開示が許可されたユーザであるかを判断する。復号要求部424は、端末装置600-1のユーザが、開示が許可されたユーザであると判断した場合は、データ提供サーバ200に対し、処理の要求に係る共有データの属性値の復号要求を行う。なお、ユーザについて「開示が許可された」とは、生データの開示および、所定の変換をして開示されることが許可されていることを含む。
【0092】
なお、本実施形態では、上述の復号要求に、共有データベース500に格納された共有データのうち、処理の要求に係る共有データを含ませる。しかしながら、データ提供サーバ200において、管理サーバ400に送信した機微データが記憶されている場合は、復号要求に共有データを含ませなくてもよい。また、復号要求には、開示レベルに関する情報を含ませてもよい。データ変換サーバ300は、データ提供サーバ200を介して取得した開示レベルに関する情報に基づいて、所定の変換を行う。
【0093】
また、復号要求部424は、処理の要求に係る共有データに含まれるレコード数に基づいて、復号要求を行ってもよい。処理の要求に係る共有データのレコード数が、所定の数以下(例えば、1個。)の場合は、共有データに所定の変換を行ったとしても、データが特定できるおそれがある。したがって、復号要求部424は、レコード数が所定の数以下の場合は、復号要求しないと判断してもよい。なお、データが特定できるおそれがある場合に復号要求しない条件については、レコード数に限らず、生データとして開示が許可されている属性項目の組み合わせなどに基づいてもよい。
【0094】
また、復号要求部424は、演算実行部423から実行結果を受け付けると、演算の処理の対象である属性項目を含む機微データを提供したデータ提供サーバ200に対し、当該データ提供サーバ200が管理する復号鍵によって実行結果を復号するよう要求する。すなわち、演算の処理の対象である属性項目の属性値について、統計処理のため暗号化状態のまま演算を行った実行結果は、当該属性項目を含む機微データを提供したデータ提供サーバ200が管理する暗号鍵で暗号化されている。このため、復号処理は、暗号鍵に対応する復号鍵を管理するデータ提供サーバ200によって行われる必要がある。そこで、復号要求部424は、処理の要求に係る機微データを提供したデータ提供サーバ200に対し、実行結果の復号要求を行う。データ提供サーバ200の復号部206は、実行結果の復号要求に応じて、上述の共有データの暗号化された属性値の復号と同様に、機微データを暗号化した暗号鍵に対応する復号鍵を用いて、実行結果を復号する。なお、演算の実行結果の開示に関しても、上述のように所定の変換をして開示データを生成してもよい。
【0095】
図6は、機微データのデータ構造の一例を示した図である。
図6において、テーブル1000と、テーブル1100が示されている。
【0096】
本実施形態において、機微データは、会社Aの顧客に関する情報である。テーブル1000は、機微データとして、属性項目1010と、レコード1021,1022,1023と、を含む。
【0097】
属性項目1010は、項目(カラム名)として、「会員番号」、「氏名」、「住所」、「生年月日」、「年齢」、「性別」、「メールアドレス」、「購入金額」などを含む。
【0098】
レコードは、テーブルの一行分のデータであり、属性項目に対応する属性値を含む。
図6の例では、レコード1021,1022,1023の3レコードが含まれている。例えば、レコード1021の属性項目「会員番号」に対応する属性値は「12345」である。同様に、「氏名」は「倉持修一」、「住所」は「東京都東大和市中央4-2-7」、「生年月日」は「1951年3月8日」、「年齢」は「71」、「性別」は「男」、「メールアドレス」は「kuramochi38@example.org」、「購入金額」は「35210」に対応する。
【0099】
テーブル1100は、テーブル1000で示される機微データの属性値がセルごとに暗号化されている。
図3において述べたように、属性値が数値である場合は、準同型暗号方式および/または順序保存暗号方式で暗号化し、属性値が文字列である場合は、AESおよび/または検索可能暗号方式で暗号化してもよい。なお、暗号方式は例示であって、上述の方式に限らない。
【0100】
図6に示すように、属性値が暗号化されると、数字やアルファベット等のランダムな羅列になる。このため、暗号化された機微データをユーザが閲覧しても、データの意味を理解することはできない。なお、本実施形態では、属性項目は暗号化せず、プラットフォームに参加するユーザには属性項目名は共有される。どのような属性項目が共有データに含まれているかをユーザに知らせることで、データ開示のための料金を支払う動機付けを与えることができる。
【0101】
また、属性値は、セルごとに暗号化する他に、カラムごとに暗号化してもよい。属性値を、1レコードごとに暗号化したデータと、カラム全体で暗号化したデータとを生成し、要求される処理の内容に応じて復号する対象を選択できるようにしてもよい。1レコードごとに暗号化したデータは検索や統計の処理には適しているが、データサイズが大きくなる一方で、カラムごとに暗号化したデータは、閲覧の処理については、レコードごとに暗号化したデータよりも復号の処理工数が少なくなるという効果がある。
【0102】
図7は、処理の権限を設定する画面の一例を示す図である。
図7を参照して、属性項目ごとの属性値の開示に関する権限の設定例について説明する。ユーザは、例えば、データ共有システム1のポータルサイトにアクセスし、端末装置等に管理画面を表示させ、当該システム1に提供する機微データの処理の権限を、ポータルサイトの管理画面を介して設定できるようにしてもよい。
【0103】
テーブル2000は、属性値の開示に関する権限を、開示の対象であるユーザ(組織等)ごとに、段階的にスライドバーで開示レベルを示している。
図7の例では、3段階の開示レベルがあり、開示レベル3は属性値を生データで開示、開示レベル2は属性値を所定の変換をして開示、開示レベル1は属性値を非開示、という開示に関する権限が設定される。すなわち、属性項目「項目1」では、会社Bおよび会社Cに対しては開示レベル3、会社Dに対しては開示レベル2、会社Eに対しては開示レベル1が設定されている。なお、開示レベル1(非開示)の場合、内容が分からないように開示されるが、例えば、属性値が暗号化された値で開示したり、属性値が「非開示」である旨の表示や、伏字等のマスキング、開示するための課金額等の表示にしてもよい。
【0104】
なお、属性値の開示に関する権限は、
図7のようなスライドバー以外にも、数値入力であったり、チェックボックスであったり、複数の段階を有する入力要素を用いて設定されてよい。また、組織ごとに設定するのではなく、一括選択・解除できるようにしたり、属性項目の内容によって、よく設定される開示レベルを初期設定としてユーザに提示したりするようにしてもよい。また、
図7では、開示レベルが3段階であるが、これよりも多い段階に区分して、開示する情報の粒度を細かく変更できるようにしてもよい。
【0105】
テーブル2000において設定された処理の権限に関する情報は、管理サーバ400の設定ファイル411として記憶される。
【0106】
図8は、所定の変換の対応関係の一例を示す図である。例えば、データ変換サーバ300は、属性項目の属性値について、テーブル3000に基づいて、所定の変換を行う。なお、テーブル3000は、データ提供サーバ200や、管理サーバ400から取得してもよい。
【0107】
テーブル3000は、属性項目ごとの属性値の変換例を示している。例えば、属性項目「会員番号」に対しては、「ランダマイズ」(数字をランダムに並べ替え)に変換する。例えば、属性項目「住所」に対しては、住所を市町村名までに変換する。属性項目「生年月日」に対しては、生年月日を西暦までに変換する。属性項目「年齢」に対しては、年齢を年代に変換する。属性項目「購入金額」に対しては、上1桁までの位の概数に変換する。
【0108】
なお、「所定の変換」として、開示レベルに応じて、さらに細かく変換を定義してもよい。例えば、住所は、市町村名ではなく、情報の粒度を粗くして、地域(関東、東北など)にしてもよいし、地域名ではなく、クラスタリングしたグループで表示するようにしてもよい。
【0109】
また、属性項目の属性値に対する「所定の変換」を、ユーザがプルダウンなどで複数の選択肢から選択できるようにしてもよい。例えば、
図6において説明したテーブル1000の属性項目を選択すると、プルダウンで、変換の方法が提示され、ユーザが提示された方法の中から選択できるようにしておいてもよい。選択肢として提示する変換は、予めシステムの運営側が設定しておいてもよいし、過去に選択された変換の方法を機械学習して、選択される可能性が高い方法を提案するようにしてもよい。また、選択された変換の方法は、テーブル1000において、表示されるようにしておいてもよい。
【0110】
図9は、開示データの例を示す図である。
図9を参照して、
図6で示した機微データ(
図6のテーブル1000参照)に基づいて生成された開示データの例を説明する。共有データの閲覧を要求したユーザには、開示データ4000や5000のようなデータが提供され、ディスプレイなどに表示される。ユーザに設定された処理の権限によって、表示されるデータの内容が異なる。
【0111】
開示データ4000において、属性項目「氏名」、「生年月日」、「メールアドレス」は、非開示のデータである。属性項目「氏名」、「生年月日」は暗号化された属性値が記載されており、属性項目「メールアドレス」は「******」のような伏字(マスキング)が記載されている。暗号化した値のまま表示するか、マスキングで表示するかは、機微データを提供するユーザやシステム側の事業者が適宜設定してもよい。
【0112】
属性項目「性別」は、生データが開示されている。すなわち、暗号化された属性値を復号した属性値が記載されている。
【0113】
属性項目「会員番号」は、数字をランダムに並べ替えた値が記載されている。属性項目「住所」は、住所を市町村名までに変換したもの、属性項目「年齢」は、年齢を年代に変換したもの、属性項目「購入金額」は、金額を上1桁の概数に変換したものが記載されている。
【0114】
開示データ5000は、機微データ1000に基づいて生成された開示データであるが、開示データ4000とは開示される内容が異なる。
【0115】
開示データ5000において、下から2行分のレコードは、ダミーデータである。生データを学習して生成されたデータであったり、ランダムに生成させたデータであったりしてもよい。一定数以上のレコードを含むデータの閲覧を要求されたが、もともとの共有データに含まれるレコード数が足りない場合などにダミーデータが追加される。
【0116】
属性項目「住所」は、住所を地域名に変換したものが記載されている。属性項目「年齢」は、年齢に、「±3」をランダムに加算して変換した値が記載されている。なお、属性項目「年齢」について、具体的な年齢を開示データとする場合は、属性項目「生年月日」を強制的に非開示にする設定にしてもよい。年齢から、生年月日の誕生年が分かってしまう場合があるからである(その逆も同様である。)。属性項目の組み合わせによって、どちらかの生データが分かってしまうような場合を予め登録しておき、開示する組み合わせの禁忌としておいてもよい。
【0117】
属性項目「性別」は、男性か女性かの性別を数字に変換したものが記載されている。数字で表すことで、性別は明らかにはしないが、どちらかのグループとして開示することができる。
【0118】
属性項目「購入金額」は、非開示のデータであり、「開示には××円必要です」のように開示に必要な料金が表示されている。情報の粒度によって、異なる料金を比較できる態様で表示してもよい。
【0119】
図10は、データ共有システム1において開示データが表示されるまでの処理の一例を示すフローチャートである。
図10を参照して、データ共有システム1における処理の流れの一例を説明する。なお、処理の流れは一例であり、
図10に示す順序に限られない。
【0120】
ステップS101において、管理サーバ400の通信部401は、端末装置600から共有データに対する閲覧の処理の要求を受け付ける。なお、処理の要求は、処理の要求をした端末装置600のユーザ情報など、送信元を識別するための情報を含んでもよい。通信部401は、受け付けた処理の要求を復号要求部424に送る。
【0121】
ステップS102において、復号要求部424は、処理の要求に係る共有データの開示レベルの確認を行う。例えば、復号要求部424は、設定ファイル411にアクセスし、当該処理の要求に係る共有データの属性項目に設定された権限を参照する。
【0122】
ステップS103において、復号要求部424は、データ提供サーバ200に対し、処理の要求に係る共有データの属性値の復号要求を行う。例えば、復号要求部424は、開示レベルとして、生データの開示が許可、または、所定の変換をして開示が許可されている属性値に関して復号要求を行う。ここで、開示が許可されていない(つまり、非開示)属性値に関しては、処理の要求に係る属性値を暗号化したままで、データ提供サーバ200から、処理の要求をした端末装置600に送信してもよい。また、開示が許可されていない属性値も含めて、処理の要求に係る共有データ全てについても復号要求し、後述するステップS105で、開示レベルに従って変換を行ってから、端末装置600に送信するようにしてもよい。
【0123】
ステップS104において、データ提供サーバ200の復号部206は、復号要求に応じて、共有データの属性値を暗号化した暗号鍵に対応する復号鍵を用いて、属性値を復号する。そして、復号部206は、復号された属性値を含む処理の要求に係る共有データを、通信部201を介して、データ変換サーバ300に送信する。また、復号部206は、共有データとともに、開示レベルに関する情報をデータ変換サーバ300に送信する。なお、ステップS102で参照した設定ファイル411において、生データの開示が許可されている属性項目の属性値は、復号部206から、通信部201を介して、閲覧の処理を送信した端末装置600に送信してもよい。データ変換サーバ300を介して端末装置600に送信するよりも、通信工程を削減することができる。
【0124】
ステップS105において、データ変換サーバ300の制御部302は、開示レベルに関する情報に基づいて、共有データに係る属性値に所定の変換を行って、開示データを生成する。また、制御部302は、開示が許可されていない属性値に関しては、マスキングしたり、非開示である旨の表示に変換して、開示データを生成してもよい。開示データの生成については、上述(
図8,
図9等参照)した通りであるため、説明を省略する。データ変換サーバ300は、生成した開示データを、閲覧の処理の要求を送信した端末装置600に送信する。
【0125】
なお、開示データは、データ変換サーバ300から管理サーバ400を介して、端末装置600に送信されるようにしてもよい。管理サーバ400が、データのルーティングを管理することで、データ共有システム1における通信制御を効率化することができる。
【0126】
ステップS106において、端末装置600は、受信した開示データをディスプレイ等に表示させ、処理が終了する。
【0127】
(ハードウェア構成図)
図11は、管理サーバ400のハードウェア構成を示すブロック図である。管理サーバ400は、コンピュータ901に実装される。コンピュータ901は、CPU902と、主記憶装置903と、補助記憶装置904と、インタフェース905と、を備える。
【0128】
管理サーバ400の各構成要素の動作は、プログラムの形式で補助記憶装置904に記憶されている。CPU902は、プログラムを補助記憶装置904から読み出して主記憶装置903に展開し、当該プログラムに従って上記処理を実行する。また、CPU902は、プログラムに従って、記憶領域を主記憶装置903に確保する。当該プログラムは、具体的には、コンピュータ901に、データ処理を行わせるプログラムである。
【0129】
なお、補助記憶装置904は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース905を介して接続される磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等が挙げられる。また、このプログラムがネットワークを介してコンピュータ901に配信される場合、配信を受けたコンピュータ901が当該プログラムを主記憶装置903に展開し、処理を実行してもよい。
【0130】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能を補助記憶装置904に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。なお、
図11に示したハードウェア構成は、データ提供サーバ200、データ変換サーバ300および端末装置100,600も同様の構成としてもよい。これらの装置における各構成要素の動作も、上述の管理サーバ400と同様に、補助記憶装置に記憶されたプログラムに従ったCPUにより実現する。
【0131】
(効果の説明)
上述したように、本実施形態に係るデータ共有システムは、データ提供サーバと、共有データベースと、管理サーバと、を備え、管理サーバは、共有データベースに格納された共有データ(データ提供サーバにおいて暗号化された機微データ)に対する処理の要求を受け付ける。そして、管理サーバは、当該処理の要求に係る共有データの属性項目に設定された権限に基づいて、データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う。データ提供サーバが複数の場合は、管理サーバは、処理の要求に係る共有データの属性項目を含む機微データを提供したデータ提供サーバに対し、復号要求を行う。このように、管理サーバは機微データに対する復号鍵を取得せず、機微データを提供したデータ提供サーバに対して、復号要求を行うため、他者とデータを共有するシステム内においても、自己の保有する機微データを自己の鍵で管理することができ、漏洩防止になる。
【0132】
本実施形態においては、機微データの属性項目ごとに設定される処理の権限は、属性項目ごとの属性値の開示に関する権限を含む。これにより、機微データを提供するユーザは、閲覧の処理の要求があった共有データに係る属性値の開示の可否を、属性項目ごとに設定することができる。また、属性値の開示に関する権限は、開示を許可するユーザに関する情報を含むため、属性値の開示を許可するユーザを柔軟に設定することができる。
【0133】
また、本実施形態においては、属性値の開示に関する権限は、属性値に対する開示レベルに関する情報を含む。これにより、機微データの開示する内容を段階的に設定して共有することができるため、セキュリティに配慮しつつ、データの利活用を促進することができる。
【0134】
また、本実施形態においては、属性値の開示に関する権限は、複数の段階を有する入力要素を用いて設定される。これにより、段階的な開示レベルの入力が容易になる。
【0135】
また、本実施形態においては、開示レベルに関する情報に基づいて、共有データに係る属性値に所定の変換を行って、開示データを生成するデータ変換サーバをさらに備える。所定の変換を行った属性値を含む開示データをユーザに提供することにより、ユーザは、他組織の保有する機微データを、あたかも、自身のデータベースであるかのように扱うことができ、セキュリティに配慮しつつ、データの利活用を促進することができる。
【0136】
また、本実施形態においては、所定の変換は、属性値の抽象化、ノイズ付加、または置換を行う処理を含む。情報の粒度(細かさ)などを変更することで、機微データを具体的に開示することなく、データの概要を開示することができる。
。
【0137】
<実施形態1の変形例1>
実施形態1に係るデータ共有システム1では、機微データを提供するユーザである会社A側において、鍵管理部、暗号化部、復号部、および開示データを生成するデータ変換サーバを有していた。変形例1に係る共有システムでは、データセンタ側において、上述の鍵管理部および暗号化部、復号部の機能、データ変換サーバの機能を有する。管理サーバでは、暗号化された属性値を復号して、処理の要求に係る共有データ(開示データ)を提供する。データ提供サーバでは、属性項目ごとの処理の権限を設定し、管理サーバは当該処理の権限を管理する。
【0138】
信頼できるデータセンタ側において、データの暗復号および所定の変換を行って共有データ(開示データ)を提供し、機微データの提供者は、自己の保有する機微データの処理の権限を設定できるようにすることで、機微データの開示範囲を制御してセキュリティに配慮しつつも、実施形態1と比較して、データ共有システム内の通信効率を向上させることができる。
【0139】
また、データセンタ側が鍵管理等を行うため、データ共有システムのプラットフォームに参加するユーザは、鍵管理等のセキュアな環境を導入、運営するコストを削減でき、プラットフォームに容易に参加することができる。
【0140】
<実施形態2>
実施形態2に係るデータ共有システム2は、プラットフォームに参加する組織である「会社A」、「会社B」、「会社C」が保有する機微データを統合した共有データを他組織のユーザと共有するシステムである。
【0141】
図12は、本実施形態に係るデータ共有システム2の構成を示す図である。
図12を参照して、実施形態2に係るデータ共有システム2の構成について説明する。なお、実施形態1と共通する構成要素には同一の符号を付し、繰り返しの説明を省略する。
【0142】
データ共有システム2は、社内システム10,30,40と、データセンタ50と、端末装置600-1,…,600-Nと、を備え、ネットワークNWを介して通信可能に接続される。
【0143】
社内システム10,30,40は、それぞれ、会社A,会社B,会社Cの社内システムである。社内システム10は、端末装置100-1,…,100-Mと、データ提供サーバ200-1と、データ変換サーバ300-1と、を有する。社内システム30は、端末装置100-(M+1),…,100-P(Pは自然数。)と、データ提供サーバ200-2と、データ変換サーバ300-2と、を有する。社内システム40は、端末装置100-(P+1),…,100-Q(Qは自然数。)と、データ提供サーバ200-3と、データ変換サーバ300-3と、を有する。データ提供サーバ200-1およびデータ変換サーバ300-1は、それぞれ、実施形態1に係るデータ提供サーバ200およびデータ変換サーバ300と同様の機能を有している。
【0144】
端末装置100-1,…,100-Qは、特に区別する必要のない限り「端末装置100」と記載する。また、データ提供サーバ200-1,200-2,200-3は、特に区別する必要のない限り「データ提供サーバ200」と記載する。また、データ変換サーバ300-1,300-2,300-3は、特に区別する必要のない限り「データ変換サーバ300」と記載する。
【0145】
データ提供サーバ200は、端末装置100から機微データを取得する。機微データは、属性項目としてレコードを識別する識別子を含む。
【0146】
データセンタ50は、管理サーバ700と、共有データベース800と、を有する。
【0147】
管理サーバ700は、データ提供サーバ200-1,200-2,200-3から、暗号化された機微データを取得し、共有データベース800に格納する。
【0148】
共有データベース800は、格納された機微データの属性項目として含まれる識別子に基づいて機微データを統合する。なお、機微データを統合する処理は、管理サーバ700において実行されてもよい。
【0149】
また、本実施形態では、データ提供サーバ200は3つであるが、少なくとも2以上の複数であってもよい。
【0150】
図13は、実施形態2に係る機微データのデータ構造の一例を示した図である。本実施形態において、機微データは、個人に関する情報であって、年齢、性別、収入、居住地域、購買情報などの属性項目と、属性値(文字列又は数値)を含む。また、機微データは、統合キーとして、個人を一意に特定できる識別子(共通ID)を属性項目として含む。識別子は、数値、文字列またはそれらの組み合わせであってよい。なお、
図13において、説明を簡略化するため、所定の属性項目を示しているが、これに加え、図示しない属性項目を機微データに含ませてもよい。また、統合キーは個人を一意に特定できる識別子に限られず、複数のテーブルにおけるデータを一意に特定できる値であれば、任意の値を用いてもよい。
【0151】
図13において、属性項目の属性値が格納されたテーブルT1,T2,T3が示されている。テーブルT1は、データ提供サーバ200-1が提供する機微データ(すなわち、会社Aが保有するデータ)を示している。テーブルT1において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ID」、個人の年齢を示す「年齢」、個人の性別を示す「性別」、個人の収入を示す「収入」、個人の商品1に対する購買の有無を示す「購買フラグ1」を含む。テーブルT1において、属性項目「共通ID」,「年齢」,「収入」,「購買フラグ1」の属性値は数値である。なお、
図13において「性別」の属性値はカテゴリ(文字列)であるが、性別と数値を対応させる等して、カテゴリを数値で表すようにしてもよい。また、属性値は、視覚的に数値であっても、データ型として文字列で扱ってもよい。
【0152】
テーブルT1において、属性項目「共通ID」に対し属性値「12345」、属性項目「年齢」に対し属性値「45」、属性項目「性別」に対し属性値「女」、属性項目「収入」に対し属性値「450」、属性項目「購買フラグ1」に対し属性値「1」が格納されている。これは、共通IDが12345である個人は、年齢が45歳、性別が女、収入が450(万円)、商品1を購入済み、ということを意味している。同様に、属性項目「共通ID」の属性値「67890」,「23456」,「90123」,「89012」,「34567」についても、各属性項目に対し属性値が格納される。
【0153】
テーブルT2は、データ提供サーバ200-2が提供する機微データ(すなわち、会社Bが保有するデータ)を示している。データ提供サーバ200-2は、テーブルT1で示される機微データを保有する会社Aとは異なる属性項目を含む機微データを提供する。
【0154】
テーブルT2において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ID」、個人の居住する地域を示す「居住地域」、個人の商品2に対する購買の有無を示す「購買フラグ2」,個人の商品3に対する購買の有無を示す「購買フラグ3」を含む。テーブルT2において、属性項目「共通ID」,「購買フラグ2」,「購買フラグ3」の属性値は数値であり、属性項目「居住地域」の属性値は文字列である。なお、
図13において「居住地域」の属性値はカテゴリ(文字列)であるが、地域と数値を対応させる等して、カテゴリを数値で表すようにしてもよい。例えば、テーブルT2において、属性項目「共通ID」に対し属性値「67890」、属性項目「居住地域」に対し属性値「東京」、属性項目「購買フラグ2」に対し属性値「1」、属性項目「購買フラグ3」に対し属性値「0」が格納されている。これは、共通IDが67890である個人は、居住する地域が東京、商品2を購入済み、商品3は未購入、ということを意味している。同様に、属性項目「共通ID」の属性値「23456」,「89012」,「12345」,「90123」,「34567」についても、各属性項目に対し属性値が格納される。
【0155】
テーブルT1とテーブルT2とでは、「共通ID」以外の属性項目は異なっているが、同一の「共通ID」で示されるレコードは同一の個人に対応する。例えば、テーブルT1の「共通ID」の属性値「67890」によって特定されるレコード(個人)は、テーブルT2の「共通ID」の属性値「67890」によって特定されるレコード(個人)と同一である。
【0156】
テーブルT3は、データ提供サーバ200-3が提供する機微データ(会社Cが保有するデータ)を示している。データ提供サーバ200-3は、テーブルT1およびT2で示される機微データを保有する会社Aおよび会社Bとは異なる機微データを提供する。
【0157】
テーブルT3において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ID」、配偶者の有無を示す「配偶者フラグ」、扶養家族の人数を示す「扶養人数」、個人の商品4に対する購買の有無を示す「購買フラグ4」を含む。テーブルT3において、属性項目「共通ID」,「配偶者フラグ」,「扶養人数」,「購買フラグ4」の属性値は数値である。例えば、テーブルT3において、属性項目「共通ID」に対し属性値「23456」、属性項目「配偶者フラグ」に対し属性値「1」、属性項目「扶養人数」に対し属性値「3」、属性項目「購買フラグ4」に対し属性値「1」が格納されている。これは、共通IDが23456である個人は、配偶者を有し、扶養人数は3人であり、商品4を購入済み、ということを意味している。同様に、属性項目「共通ID」の属性値「90123」,「56789」,「34567」,「78901」,「12345」についても、各属性項目に対し属性値が格納される。
【0158】
テーブルT3と、テーブルT1及びT2とでは、「共通ID」以外の属性項目は異なっている。また、属性項目「共通ID」の属性値は、テーブルT3にのみ「56789」および「78901」が含まれている。すなわち、各テーブルには、同一のレコードの群ではなく、テーブルごとに異なるレコードを含む群であってもよい。なお、本実施形態においては、
図13で示したように、各データ提供サーバが提供する機微データに含まれる属性項目は、「共通ID」(識別子)以外は異なるものとしているが、他の実施形態として、同じ属性項目を含んでいてもよい。その場合、各データ提供サーバが提供する機微データを管理サーバ700で管理してもよい。そして、統合データとしてどのデータ提供サーバが提供する属性値を優先するかは、システム管理者やデータを提供する者等が適宜設定して決定することができる。
【0159】
図14は、暗号化された機微データのデータ構造の一例を示す図である。
図14において、「共通ID」以外の属性項目の属性値が暗号化されたテーブルT1e,T2e,T3eが示されている。
【0160】
テーブルT1eは、データ提供サーバ200-1(会社A)が管理する暗号鍵に基づいて、テーブルT1の「共通ID」以外の属性値が暗号化されている。例えば、属性値が数値である属性項目「年齢」,「収入」,「購買フラグ1」については、準同型暗号方式および/または順序保存暗号方式で暗号化し、属性値が文字列である属性項目「性別」については、検索可能暗号方式で暗号化する。なお、テーブルT1eにおいて、説明を簡単にするため、属性値が数値のデータは、例えば、準同型暗号方式で暗号化された値を示している(以下、テーブルT2e,T3eにおいても同様)。
【0161】
テーブルT2eは、テーブルT1eと同様に、データ提供サーバ200-2(会社B)が管理する暗号鍵に基づいて、テーブルT2の「共通ID」以外の属性値が暗号化されている。
【0162】
また、テーブルT3eも、テーブルT1eと同様に、データ提供サーバ200-3(会社C)が管理する暗号鍵に基づいて、テーブルT3の「共通ID」以外の属性値が暗号化されている。
【0163】
図15は、統合データのデータ構造の一例を示す図である。
図15において、統合テーブルTmは、
図14で示したテーブルT1e,T2e,T3eに含まれる属性項目「共通ID」の属性値(識別子)を統合キーとして、統合されたテーブルである。すなわち、統合データは、属性項目として「共通ID」,「年齢」,「収入」,「購買フラグ1」,「居住地域」,「購買フラグ2」,「購買フラグ3」,「配偶者フラグ」,「扶養人数」,「購買フラグ4」を含むテーブルTmであって、「共通ID」以外の各属性項目の属性値は、
図14において示したように、暗号化されている。
図15で示すようなデータ構造を有する統合データは、共有データとして、共有データベース500に格納される。
【0164】
統合テーブルTmにおいて、属性項目「年齢」,「収入」,「購買フラグ1」(カラム)は、データ提供サーバ200-1(会社A)が提供する機微データである。属性項目「居住地域」,「購買フラグ2」,「購買フラグ3」(カラム)は、データ提供サーバ200-2(会社B)が提供する機微データである。属性項目「配偶者フラグ」,「扶養人数」,「購買フラグ4」(カラム)は、データ提供サーバ200-3(会社C)が提供する機微データである。
【0165】
テーブルT3に含まれ、テーブルT1およびT2には含まれていない「共通ID」の属性値「56789」および「78901」については、テーブルT1およびT2に含まれる属性項目の属性値は、ブランク(NULL)またはダミーの数値を格納するなど、データベースの設計者や管理サーバ400の管理者等が適宜決定してもよい。または、統合データの属性項目「共通ID」以外の属性値が格納されていないレコードについては削除するようにしてもよい。
【0166】
すなわち、
図15の例では、
図14のテーブルT1e,T2e,T3eの属性項目「共通ID」を統合キーとして、横方向へテーブルを統合(「属性項目」(カラム)の追加)及び、縦方向へのテーブルの統合(「レコード」の追加)を含む統合処理が行われている。
【0167】
(管理サーバ700の機能構成)
図16は、管理サーバ700の機能構成の一例を示す機能ブロック図である。
図16を参照して、管理サーバ700の機能構成の一例について説明する。なお、実施形態1に係る管理サーバ400と同様の機能構成については同一の符号を付し、重複する説明は省略する。
【0168】
管理サーバ700は、通信部401と、記憶部710と、制御部720と、を備える。
【0169】
記憶部710は、実施形態1に係る管理サーバ400の記憶部410と同様の機能構成を有し、管理サーバ700の各種処理に用いられるコンピュータプログラム等が格納される。
【0170】
記憶部710は、機微データの属性項目ごとに設定される処理の権限に関する情報である設定ファイル711を有する。設定ファイル711は、属性項目ごとの属性値の開示に関する権限を規定しており、例えば、共有データの属性項目ごとに、開示が許可されるユーザ等が対応付けて記憶している。また、設定ファイル711は、統合データの属性項目ごとのデータ提供元などを対応付けて記憶している。処理の権限の設定については、
図7等で述べた通りであるので、説明を省略する。
【0171】
また、記憶部710は、通信部401がデータ提供サーバ200から受信した、暗号化された機微データを記憶する。
制御部720は、全体制御部421と、権限管理部722と、演算実行部423と、復号要求部724と、統合データ生成部725と、を有する。
【0172】
権限管理部722は、機微データの属性項目ごとに設定される処理の権限を管理し、例えば、各データ提供サーバ200から当該処理の権限に関する情報を受け付け、設定ファイル711として記憶部710に記憶させる。各データ提供サーバ200から処理の権限に関する情報を受け付ける点以外は、実施形態1に係る権限管理部422と機能構成は同じである。
【0173】
復号要求部724は、処理の要求に係る共有データの属性項目に設定された処理の権限に基づいて、データ提供サーバ200に対し、当該属性項目に係る属性値の復号要求を行う。当該共有データが、複数の機微データを統合して生成されたデータの場合、復号要求部724は、設定ファイル711を参照して、処理の要求に係る属性項目に係る属性値の送信元であるデータ提供サーバ200に対し、復号要求を行う。例えば、
図15で示した統合テーブルTmの例では、属性項目「年齢」、「性別」、「収入」、「購買フラグ1」の属性値については、データ提供サーバ200-1へ復号要求を行う。
【0174】
統合データ生成部725は、通信部401を介して各データ提供サーバ200から受信し、記憶部710に記憶される暗号化された機微データを、機微データに属性項目として含まれる識別子(
図13~
図15の例では共通ID)に基づいて統合して統合データを生成する。そして、統合データ生成部725は、生成した統合データを全体制御部421に送り、全体制御部421は、通信部401を介して、統合データを共有データとして共有データベース500に格納する。また、統合データ生成部725は、統合データを生成した後、統合した機微データを記憶部710から削除するようにしてもよい。また、機微データを統合する処理は、管理サーバ700ではなく、暗号化された機微データを取得した他の情報処理装置が行ってもよい。
【0175】
なお、復号要求部724が各データ提供サーバ200に復号要求を行った後、処理の要求に係る共有データの属性値が復号され、データ変換サーバ300において、開示データが生成される点は、実施形態1と同様である。各データ変換サーバ300は、生成した開示データを、処理の要求を送信した端末装置600に送信し、端末装置600において各開示データを統合してもよい。また、各データ変換サーバ300が生成した開示データを、管理サーバ700に送信し、管理サーバ700において、開示データを統合して、処理の要求を送信した端末装置600に統合した開示データを送ってもよい。開示データの統合は、暗号化された機微データの統合処理と同様に行うことができる。
【0176】
なお、
図12において述べたように、統合データ生成部725が上記で行った統合データを生成する処理は、共有データベース800において実行してもよい。
【0177】
(効果の説明)
上述したように、本実施形態に係るデータ共有システムは、複数のデータ提供サーバから提供された機微データを統合したデータを共有データとして、他組織に開示する。この際、管理サーバが、閲覧の処理の要求に係る共有データに含まれる属性値を提供したデータ提供サーバに対し、復号要求を行う。管理サーバは、復号鍵を取得せず、機微データを提供したデータ提供サーバに対して、復号要求を行うため、他者とデータを共有するシステム内においても、自己の保有する機微データを自己の鍵で管理することができ、漏洩防止になる。
【0178】
上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0179】
また、本発明は、以下の各付記に示す態様であってもよい。
【0180】
[付記1]
データ提供サーバと、共有データベースと、管理サーバと、を備えるデータ共有システムであって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共有データベースは、前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶し、
前記管理サーバは、
前記機微データの前記属性項目ごとに設定される処理の権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、
を有し、
前記データ提供サーバは、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
をさらに有する、データ共有システム。
【0181】
[付記2]
前記処理の権限は、前記属性項目ごとの属性値の開示に関する権限を含む、[付記1]に記載のデータ共有システム。
【0182】
[付記3]
前記属性値の開示に関する権限は、開示を許可するユーザに関する情報を含む、[付記2]に記載のデータ共有システム。
【0183】
[付記4]
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含む、[付記2]または[付記3]に記載のデータ共有システム。
【0184】
[付記5]
前記提供部が提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成するデータ変換サーバをさらに備える、[付記4]に記載のデータ共有システム。
【0185】
[付記6]
前記所定の変換は、前記属性値の抽象化、ノイズ付加、または置換を行う処理のいずれか一つを含む[付記5]に記載のデータ共有システム。
【0186】
[付記7]
前記属性値の開示に関する権限は、複数の段階を有する入力要素を用いて設定される、[付記2]から[付記6]のいずれか1つに記載のデータ共有システム。
【0187】
[付記8]
前記開示データは、前記復号された属性値、前記所定の変換がされた属性値、前記暗号化された属性値のうちの少なくとも一つを含む、[付記7]に記載のデータ共有システム。
【0188】
[付記9]
前記データ提供サーバは、少なくとも2以上の複数である、[付記1]から[付記8]のいずれか1つに記載のデータ共有システム。
【0189】
[付記10]
前記共有データは、複数の前記データ提供サーバにおいて前記暗号化された機微データを、当該機微データの前記属性項目として含まれる識別子に基づいて統合された機微データである、[付記9]に記載のデータ共有システム。
【符号の説明】
【0190】
1,2 データ共有システム、100,600 端末装置、200 データ提供サーバ、300 データ変換サーバ、400,700 管理サーバ、500 共有データベース、101,201,301,401 通信部、105,202,302,420,720 制御部、102,203,303,410,710 記憶部、204 鍵管理部、 205 暗号化部、206 復号部、411 設定ファイル、421 全体制御部、422,722 権限管理部、423 演算実行部、424,724 復号要求部、725 統合データ生成部、103 入力部、104 出力部。
【手続補正書】
【提出日】2023-02-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ提供サーバと、共有データベースと、管理サーバと、データ変換サーバと、を備えるデータ共有システムであって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共有データベースは、前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶し、
前記管理サーバは、
前記機微データの前記属性項目ごとに設定される前記属性値の開示に関する権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行う復号要求部と、
を有し、
前記データ提供サーバは、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
をさらに有し、
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含み、
前記データ変換サーバは、前記提供部が提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成し、
前記所定の変換は、前記属性値の抽象化、またはノイズ付加を行う処理のいずれかを少なくとも含む、データ共有システム。
【請求項2】
前記属性値の開示に関する権限は、開示を許可するユーザに関する情報を含む、請求項1に記載のデータ共有システム。
【請求項3】
前記属性値の開示に関する権限は、複数の段階を有する入力要素を用いて設定される、請求項2に記載のデータ共有システム。
【請求項4】
前記開示データは、前記復号された属性値、前記所定の変換がされた属性値、前記暗号化された属性値のうちの少なくとも一つを含む、請求項3に記載のデータ共有システム。
【請求項5】
前記データ提供サーバは、少なくとも2以上の複数である、請求項1から請求項4のいずれか一項に記載のデータ共有システム。
【請求項6】
前記共有データは、複数の前記データ提供サーバにおいて前記暗号化された機微データを、当該機微データの前記属性項目として含まれる識別子に基づいて統合された機微データである、請求項5に記載のデータ共有システム。
【請求項7】
データ提供サーバと、共有データベースと、管理サーバと、データ変換サーバと、を備えるシステムにおけるデータ共有方法であって、
前記データ提供サーバが、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
前記共有データベースが、
前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶するステップと、
前記管理サーバが、
前記機微データの前記属性項目ごとに設定される前記属性値の開示に関する権限を管理するステップと、
前記共有データに対する処理の要求を受け付けるステップと、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、
前記データ提供サーバが、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号するステップと、
前記復号された属性値を含む前記処理の要求に係る共有データを提供するステップと、
を備え、
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含み、
前記データ変換サーバが、前記データ提供サーバが提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成するステップをさらに備え、
前記所定の変換は、前記属性値の抽象化、またはノイズ付加を行う処理のいずれかを少なくとも含む、データ共有方法。
【請求項8】
データ提供サーバと、共有データベースと、管理サーバと、データ変換サーバと、を備えるシステムにおけるデータ共有プログラムであって、
前記データ提供サーバの制御部が、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
前記共有データベースの記憶部が、
前記データ提供サーバにおいて前記暗号化された機微データを共有データとして記憶するステップと、
前記管理サーバの制御部が、
前記機微データの前記属性項目ごとに設定される前記属性値の開示に関する権限を管理するステップと、
前記共有データに対する処理の要求を受け付けるステップと、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、前記データ提供サーバに対し、当該属性項目に係る属性値の復号要求を行うステップと、
前記データ提供サーバの制御部が、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号するステップと、
前記復号された属性値を含む前記処理の要求に係る共有データを提供するステップと、
を備え、
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含み、
前記データ変換サーバが、前記データ提供サーバが提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成するステップをさらに備え、
前記所定の変換は、前記属性値の抽象化、またはノイズ付加を行う処理のいずれかを少なくとも含む、データ共有プログラム。
【請求項9】
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵を用いて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
前記暗号化された機微データを共有データとして記憶する記憶部と、
前記機微データの前記属性項目ごとに設定される前記属性値の開示に関する権限を管理する権限管理部と、
前記共有データに対する処理の要求を受け付ける受付部と、
前記処理の要求に係る共有データの属性項目に設定された前記権限に基づいて、当該属性項目に係る属性値の復号要求を行う復号要求部と、
前記復号要求に応じて、前記復号鍵を用いて、前記処理の要求に係る共有データの前記暗号化された属性値を復号する復号部と、
前記復号された属性値を含む前記処理の要求に係る共有データを提供する提供部と、
を有し、
前記属性値の開示に関する権限は、前記属性値に対する開示レベルに関する情報を含み、
前記提供部が提供する共有データに対し、前記開示レベルに関する情報に基づいて、所定の変換を行って、開示データを生成するデータ変換部をさらに有し、
前記所定の変換は、前記属性値の抽象化、またはノイズ付加を行う処理のいずれかを少なくとも含む、データ共有システム。