(57)【特許請求の範囲】
【請求項１】
複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるデータ共有システムであって、
前記データ提供サーバは、
属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、
暗号鍵および復号鍵を管理する鍵管理部と、
前記暗号鍵に基づいて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、
を有し、
前記共通データベースは、
前記複数のデータ提供サーバにおいて前記暗号化された機微データを、当該機微データに前記属性項目として含まれる識別子に基づいて統合した統合データを格納し、
前記管理サーバは、
前記共通データベースに格納される前記統合データに対するデータ処理の処理要求を受け付ける受付部と、
前記データ処理を実行する実行部と、
前記データ提供サーバに対し、前記データ処理の実行結果の復号処理の処理要求を行う復号要求部と、
を有し、
前記データ提供サーバは、前記管理サーバの前記復号要求部からの前記復号処理の処理要求に応じて、前記復号鍵に基づいて、前記実行結果を復号する復号部をさらに有する、
データ共有システム。
【請求項２】
前記共通データベースは、前記属性項目をカラムとして有するテーブルを格納し、
前記データ処理は、前記統合データの属性項目の少なくとも一部を対象とする検索処理および／または統計処理を含む、請求項１に記載のデータ共有システム。
【請求項３】
前記復号要求部は、前記実行結果に含まれるレコードの数に基づいて、前記復号処理の処理要求を行う、請求項２に記載のデータ共有システム。
【請求項４】
前記復号要求部は、前記データ処理の対象である前記属性項目を含む機微データを提供したデータ提供サーバに対し、当該データ提供サーバが管理する復号鍵によって前記実行結果を復号するよう要求する、請求項１から請求項３のいずれか一項に記載のデータ共有システム。
【請求項５】
前記復号要求部は、前記データ処理の対象である前記属性項目を含む機微データを提供したデータ提供サーバに対し、前記実行結果の復号の可否を問い合わせ、当該問い合わせの許可応答に応じて、当該データ提供サーバが管理する復号鍵によって前記実行結果を復号するよう要求する、請求項１から請求項３のいずれか一項に記載のデータ共有システム。
【請求項６】
前記復号要求部は、前記データ提供サーバが復号した前記実行結果を取得し、当該取得した実行結果を、前記データ処理の処理要求の送信元に提供する、請求項４または請求項５に記載のデータ共有システム。
【請求項７】
前記復号要求部は、前記データ処理の対象である属性項目を含む機微データを提供した前記データ提供サーバに対し、当該データ提供サーバが管理する復号鍵によって前記実行結果を復号し、当該復号した実行結果を、前記データ処理の処理要求の送信元に提供するよう要求する、請求項１から請求項３のいずれか一項に記載のデータ共有システム。
【請求項８】
前記実行部は、前記データ処理の実行の可否を規定した設定ファイルに基づいて、前記データ処理を実行する、請求項１から請求項７のいずれか一項に記載のデータ共有システム。
【請求項９】
前記暗号方式は、準同型暗号方式、順序保存暗号方式、ＡＥＳ、ＤＥＳ、検索可能暗号、ＳＨＡ、ＭＤ５のうちの少なくとも一つを含む、請求項１から請求項８のいずれか一項に記載のデータ共有システム。
【請求項１０】
前記データ処理は、前記機微データを統合する処理を含み、
前記実行部は、前記統合データを生成し、前記共通データベースに格納する、請求項１から請求項９のいずれか一項に記載のデータ共有システム。
【請求項１１】
複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるシステムにおけるデータ共有方法であって、
前記データ提供サーバが、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵に基づいて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
を実行し、
前記共通データベースが、
前記複数のデータ提供サーバにおいて前記暗号化された機微データを、当該機微データに前記属性項目として含まれる識別子に基づいて統合した統合データを格納するステップを実行し、
前記管理サーバが、
前記共通データベースに格納される前記統合データに対するデータ処理の処理要求を受け付けるステップと、
前記データ処理を実行するステップと、
前記データ提供サーバに対し、前記データ処理の実行結果の復号処理の処理要求を行うステップと、
を実行し、
前記データ提供サーバは、前記管理サーバからの前記復号処理の処理要求に応じて、前記復号鍵に基づいて、前記実行結果を復号するステップをさらに実行する、
データ共有方法。
【請求項１２】
複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるシステムに実行させるデータ共有プログラムであって、
前記データ提供サーバが、
属性項目ごとの属性値を含む機微データを取得するステップと、
暗号鍵および復号鍵を管理するステップと、
前記暗号鍵に基づいて、前記機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、
を実行し、
前記共通データベースが、
前記複数のデータ提供サーバにおいて前記暗号化された機微データを、当該機微データに前記属性項目として含まれる識別子に基づいて統合した統合データを格納するステップを実行し、
前記管理サーバが、
前記共通データベースに格納される前記統合データに対するデータ処理の処理要求を受け付けるステップと、
前記データ処理を実行するステップと、
前記データ提供サーバに対し、前記データ処理の実行結果の復号処理の処理要求を行うステップと、
を実行し、
前記データ提供サーバは、前記管理サーバからの前記復号処理の処理要求に応じて、前記復号鍵に基づいて、前記実行結果を復号するステップをさらに実行する、
データ共有プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ共有システム、データ共有方法、およびデータ共有プログラムに関する。
【背景技術】
【０００２】
インターネット上で提供される電子商取引サービスにおいて、自社保有のデータはもとより、社外のデータも活用し、利用者の性別、住所、取引情報などの個人情報を、サービス提供者側がマーケティング等を目的として統計分析を行う技術がある。例えば、特許文献１には、サービス提供者が利用者の個人情報を得ることなく、取引履歴の分析を得ることができる電子商取引システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−１２５８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のシステムでは、統計分析を行いたいサービス提供サーバ側が、他のすべてのサービス提供サーバに対して暗号化鍵を送信し、他のサービス提供サーバは、当該送信された暗号化鍵を用いてデータを暗号化して、統計分析を行う第三者機関サーバに送信する。このため、他のサービス提供サーバにとっては、自身が保有するデータが他者の暗号化鍵によって暗号化されるため、情報漏洩や不正利用等の情報セキュリティ上の問題が発生する可能性が危惧される。
【０００５】
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、各社が保有するデータを、データの詳細を他社に開示することなく、安全に活用することができるデータ共有システムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本開示に係るデータ共有システムは、複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるデータ共有システムであって、データ提供サーバは、属性項目ごとの属性値を含む機微データを取得する機微データ取得部と、暗号鍵および復号鍵を管理する鍵管理部と、暗号鍵に基づいて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、を有し、共通データベースは、複数のデータ提供サーバにおいて暗号化された機微データを、当該機微データに属性項目として含まれる識別子に基づいて統合した統合データを格納し、管理サーバは、共通データベースに格納される統合データに対するデータ処理の処理要求を受け付ける受付部と、データ処理を実行する実行部と、データ提供サーバに対し、データ処理の実行結果の復号処理の処理要求を行う復号要求部と、を有し、データ提供サーバは、管理サーバの復号要求部からの復号処理の処理要求に応じて、復号鍵に基づいて、実行結果を復号する復号部をさらに有する。
【０００７】
上記目的を達成するため、本開示に係るデータ共有方法は、複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるシステムにおける方法であって、データ提供サーバが、属性項目ごとの属性値を含む機微データを取得するステップと、暗号鍵および復号鍵を管理するステップと、暗号鍵に基づいて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、を実行し、共通データベースが、複数のデータ提供サーバにおいて暗号化された機微データを、当該機微データに属性項目として含まれる識別子に基づいて統合した統合データを格納するステップを実行し、管理サーバが、共通データベースに格納される統合データに対するデータ処理の処理要求を受け付けるステップと、データ処理を実行するステップと、データ提供サーバに対し、データ処理の実行結果の復号処理の処理要求を行うステップと、を実行し、データ提供サーバは、管理サーバからの復号処理の処理要求に応じて、復号鍵に基づいて、実行結果を復号するステップをさらに実行する。
【０００８】
また、上記目的を達成するため、本開示に係るデータ共有プログラムは、複数のデータ提供サーバと、共通データベースと、管理サーバと、を備えるシステムに実行させるプログラムであって、データ提供サーバが、属性項目ごとの属性値を含む機微データを取得するステップと、暗号鍵および復号鍵を管理するステップと、暗号鍵に基づいて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化するステップと、を実行し、共通データベースが、複数のデータ提供サーバにおいて暗号化された機微データを、当該機微データに属性項目として含まれる識別子に基づいて統合した統合データを格納するステップを実行し、管理サーバが、共通データベースに格納される統合データに対するデータ処理の処理要求を受け付けるステップと、データ処理を実行するステップと、データ提供サーバに対し、データ処理の実行結果の復号処理の処理要求を行うステップと、を実行し、データ提供サーバは、管理サーバからの復号処理の処理要求に応じて、復号鍵に基づいて、実行結果を復号するステップをさらに実行する。
【発明の効果】
【０００９】
本開示によれば、データ共有システムにおいて、各社が保有するデータの内容を他社に開示することなく、安全に活用することができる。
【図面の簡単な説明】
【００１０】
【図１】データ共有システム１の構成を示す図である。
【図２】データ提供サーバ１００の機能構成の一例を示す機能ブロック図である。
【図３】機微データのデータ構造の一例を示した図である。
【図４】暗号化された機微データのデータ構造の一例を示す図である。
【図５】統合データのデータ構造の一例を示す図である。
【図６】管理サーバ２００の機能構成の一例を示す機能ブロック図である。
【図７】設定ファイルのデータ構造の一例を示す図である。
【図８】端末装置４００の機能構成の一例を示す機能ブロック図である。
【図９】統合データを共通データベースに格納する処理の一例を示すフローチャートである。
【図１０】データ処理の一例を示すフローチャートである。
【図１１】管理サーバ２００のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【００１２】
＜本発明の概要＞
近年、顧客情報などの大量の機微データを保有する組織が増加している。これにより、自組織だけでなく、他組織が保有する機微データも活用して統計的な分析処理等を行い、ビジネス上の新たな知見や、サービスにつなげるようなクラウドサービスが普及しつつある。しかしながら、機微データは、セキュリティへの配慮や、プライバシーの保護などデータの取り扱いに細心の注意が求められるため、自組織の保有する機微データの情報漏洩を防ぎつつ、検索や集計分析、統計などのデータ処理を行うことが求められる。
【００１３】
そこで、本発明に係るデータ共有システムでは、当該システムに参加する組織等から提供される機微データを、所定の暗号方式（暗号化状態のまま、検索や分析等を含む演算を行うことができる暗号方式）で暗号化してデータ処理する一方、暗号化及び復号に用いる鍵は、当該機微データを提供した各組織において管理する。これにより、自組織の保有する機微データや、それに関連するデータ処理の実行結果に対する復号処理を自組織で管理することができる。また、機微データについて、その詳細な内容を他組織に意図せず開示することなく、安全に活用することができる。
【００１４】
＜実施形態１＞
（データ共有システム１の構成）
図１は、本実施形態に係るデータ共有システム１の構成を示す図である。図１を参照して、実施形態１に係るデータ共有システム１の構成について説明する。
【００１５】
データ共有システム１は、データ提供サーバ１００−１，１００−２，…，１００−Ｎ（Ｎは自然数）と、管理サーバ２００と、共通データベース３００と、端末装置４００と、を備え、ネットワークＮＷを介して通信可能に接続される。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、光回線網、イントラネット等であるが、任意のネットワークから構成されてもよい。データ共有システム１は、当該システムに参加する各組織が、それぞれの組織が保有するデータを、他組織にデータの詳細な内容を開示することなく利用できるプラットフォームである。なお、組織とは、企業や団体に限られず、役割ごとに区切られた部門、課、グループ、チーム等の集団であってもよい。
【００１６】
以下の説明では、データ提供サーバ１００−１，１００−２，…，１００−Ｎは、特に区別する必要のない限り、データ提供サーバ１００と記載する。また、本実施形態においては、共通データベース３００は、ネットワークＮＷを介して管理サーバ２００と接続されているが、これに限られず、管理サーバ２００とローカルに接続されていてもよい。
【００１７】
データ提供サーバ１００は、プラットフォームに参加する組織と関連付けられており、組織が保有する機微データを暗号化し、管理サーバ２００に送信する。図１において、例えば、データ提供サーバ１００―１は「会社Ａ」、データ提供サーバ１００−２は「会社Ｂ」、データ提供サーバ１００−Ｎは「会社Ｘ」に関連付けられている。
【００１８】
機微データは、属性項目（カラム）ごとの属性値を含み、データ提供サーバ１００は、機微データの少なくとも一部の属性値が暗号化された機微データを管理サーバ２００に送信する。機微データのデータ構造については後述する。また、データ提供サーバ１００は、暗号鍵および復号鍵を自サーバ内で記憶して管理してもよいし、他の情報処理装置に記憶させて管理（例えば、ＫＭＳ(Key Management Service：鍵管理システム）に管理を委託）してもよい。
【００１９】
管理サーバ２００は、各データ提供サーバ１００から取得した、暗号化された機微データを、当該機微データに属性項目として含まれる識別子に基づいて統合して統合データを生成し、共通データベース３００に格納する。また、管理サーバ２００は、共通データベースに格納される統合データに対するデータ処理の処理要求に応じて、統合データを暗号化状態のままでデータ処理を実行する。そして、暗号化されている実行結果の復号処理の処理要求を、当該データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバ１００に対して行う。
【００２０】
共通データベース３００は、上述のように管理サーバ２００において生成された統合データを格納する。なお、本実施形態では、管理サーバ２００が統合データを生成しているが、統合データは、管理サーバ２００が生成する代わりに、他の情報処理装置等で行うように構成してもよい。
【００２１】
端末装置４００は、データ共有システム１のユーザが用いる情報処理装置であって、例えば、ＰＣ（Personal Computer）、スマートフォン、タブレット端末である。また、ヘッドマウントディスプレイ等のウェアラブル端末、ＡＲ（Augmented Reality）／ＶＲ（Virtual Reality）／ＭＲ（Mixed Reality）装置等であってもよい。なお、ユーザは、例えば、会社Ａの社員など、プラットフォームに参加し、機微データを提供する組織の従業員であってもよく、この場合、端末装置４００は、ユーザが所属する組織のデータ提供サーバ１００と紐づけられた構成としてもよい。
【００２２】
端末装置４００は、管理サーバ２００に対し、共通データベース３００に格納される統合データを対象としたデータ処理の処理要求を行う。データ処理は、例えば、検索・集計処理および／または統計処理を含む。また、データ処理は、機微データを統合する処理を含んでもよい。データ処理の処理要求は、例えば、ＳＱＬ文などのＣＬＩ（Command Line Interface)もしくはＧＵＩ（Graphical User Interface）によって記載される。
【００２３】
以下、上述したデータ共有システム１を構成する各サーバ等の機能構成、処理について説明する。なお、各機能構成を示す機能ブロックや処理ブロックは、１つ、または複数の装置、コンピュータプロセッサ、コンピュータプロセッサの分散グループによって実現されてもよい。
【００２４】
（データ提供サーバ１００の機能構成）
図２は、データ提供サーバ１００の機能構成の一例を示す機能ブロック図である。図２を参照して、データ提供サーバ１００の機能構成の一例について説明する。
【００２５】
データ提供サーバ１００は、通信部１０１と、制御部１０２と、記憶部１０３と、鍵管理部１０４と、暗号化部１０５と、復号部１０６と、を備える。
【００２６】
通信部１０１は、データ提供サーバ１００がネットワークＮＷを介してサーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。所定の通信プロトコルは、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol）等である。通信部１０１は、受信したデータを制御部１０２に送り、また、制御部１０２から受け取ったデータを、ネットワークＮＷを介してサーバや装置等に送信するが、通信部１０１は、データ提供サーバ１００内の制御部１０２以外の機能ブロックとデータのやり取りを行ってもよい。なお、通信部１０１は、ネットワークＮＷを介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、共通鍵（セッション鍵など）や公開鍵等を用いた周知の技術であるため、説明を省略する。
【００２７】
通信部１０１は、機微データ取得部に相当し、例えば、プラットフォームに参加する組織から、当該組織が保有する機微データを取得する。図１において、会社Ａと関連付けられるデータ提供サーバ１００−１は、会社Ａの社員が操作する端末装置４００から機微データを取得してもよい。本実施形態において、機微データは、例えば、個人に関する情報であって、年齢、性別、収入、居住地域、購買情報などの個人の属性を示す項目である属性項目（カラム）の属性値（文字列又は数値）である。また、機微データは、属性項目として、統合データ生成のための統合キーとなる識別子（文字列、数値、またはそれらの組み合わせ）を含み、個人を一意に特定する共通ＩＤ等を識別子としてもよい。機微データは、識別子に基づいて統合され、統合データが生成される。機微データは、個人に関する情報に限られず、機器に関するログデータ等であってもよい。機微データ及び機微データのデータ構造の詳細については後述する。
【００２８】
制御部１０２は、データ提供サーバ１００の各機能を制御し、予め記憶部１０３に記憶されているプログラムに基づいて動作するＣＰＵ（Control Processing Unit）等のプロセッサである。なお、制御部１０２として、ＤＳＰ（Digital Signal Processor）等が用いられてもよい。また、制御部１０２として、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programming Gate Array）等の制御回路が用いられてもよい。
【００２９】
制御部１０２は、暗号化部１０５に対し、通信部１０１を介して取得した機微データについて暗号化するよう制御する。また、制御部１０２は、復号部１０６に対し、通信部１０１を介して取得したデータ処理の実行結果について復号するよう制御する。
【００３０】
また、制御部１０２は、管理サーバ２００から、実行結果の復号の可否の問い合せに応じて、復号の可否について判断するようにしてもよい。例えば、データ処理の処理要求元が、実行結果を利用する権限を有するかなどに基づいて復号の可否を判断する。権限を有すると判断した場合は、制御部１０２は、通信部１０１を介して、管理サーバ２００に許可応答を送信し、管理サーバ２００から送信される実行結果を復号するよう復号部１０６を制御する。
【００３１】
記憶部１０３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶部１０３は、データ提供サーバ１００の各種処理に用いられるコンピュータプログラム、データベース、テーブル、鍵等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて記憶部１０３にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）等である。コンピュータプログラムは、所定のサーバ等からインストールされてもよい。
【００３２】
記憶部１０３は、例えば、暗号化された機微データや、復号されたデータ処理の実行結果、並びに、後述する鍵管理部１０４が管理する暗号鍵や復号鍵を記憶する。
【００３３】
鍵管理部１０４は、暗号鍵および復号鍵を管理する。鍵管理部１０４は、例えば、暗号化部１０５の要求する暗号方式に応じた鍵を生成してもよい。暗号方式が、例えば、暗号化状態のまま加減算が可能な（加法的な）準同型暗号方式（Paillier方式）の場合は、公開鍵（暗号鍵）と秘密鍵（復号鍵）の組を生成する。
【００３４】
また、暗号方式が、暗号文の大小関係と対応する平文の大小関係が一致する順序保存暗号方式（OPE方式:Order Preserving Encryption）や、暗号化状態のまま平文の一致判定が可能な検索可能暗号方式の場合は、秘密鍵（共通鍵）を生成する。このように、暗号鍵と復号鍵は、公開鍵と秘密鍵の組のように異なる鍵である場合と、共通鍵のように同じ鍵である場合とがある。なお、鍵生成アルゴリズムは、周知の技術であるので説明を省略する。
【００３５】
鍵管理部１０４は、生成した鍵や鍵生成のためのパラメータ等を、例えば、記憶部１０３に記憶させる。鍵管理部１０４は、生成した鍵と、暗号方式やどのデータ（属性項目（カラム）等）の暗号化に用いたか等とを対応付けて管理する。
【００３６】
暗号化部１０５は、通信部１０１が取得した機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する。所定の暗号方式には、通信部１０１が取得した機微データの少なくとも一部の属性値を暗号化状態のまま演算可能な暗号方式を含み、例えば、準同型暗号方式、順序保存暗号方式、ＡＥＳ(Advanced Encryption Standard)、ＤＥＳ（Data Encryption Standard）、検索可能暗号、ＳＨＡ（Secure Hash Algorithm）、ＭＤ５（Message Digest algorithm 5）などである。なお、「演算」とは、加減乗除に関する計算、検索、分析に関する計算を含む。本実施形態では、暗号化部１０５は、機微データに含まれる属性項目の属性値のうち、データ形式が数値の場合は、準同型暗号方式（Paillier方式、Lifted-Ellgamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等）および／または順序保存暗号方式（OPE方式）を用いて暗号化する。なお、データ処理の内容に応じて、暗号方式により処理効率が異なるので、各属性項目は、準同型暗号方式で暗号化された属性値と、順序保存暗号方式で暗号化された属性値、後述する検索可能暗号方式で暗号化された属性値等、複数の暗号方式で保持しておいてもよい。また、データ形式が文字列の場合は、検索可能暗号方式、もしくは暗号文上で完全一致が可能なＡＥＳ暗号等を用いて暗号化する。なお、データ形式ごとに適用する上記暗号方式は一例であって、どの属性項目の属性値について暗号化するか、また、どの暗号方式で暗号化するか等は、機微データを保有する組織が適宜決定してもよい。また、個人の意思に従って、機微データを暗号化するか否かを決定してもよい。
【００３７】
本実施形態において、暗号化部１０５は、属性項目として含まれる識別子は、暗号化の対象としない。これにより、管理サーバ２００は、各データ提供サーバ１００から受信した機微データを、識別子に基づいて統合し、統合データを生成する。統合データの生成処理については後述する。暗号化アルゴリズムは、周知の技術であるので説明を省略する。なお、他の実施形態として、暗号化部１０５は、属性項目として含まれる識別子を暗号化の対象としてもよい。
【００３８】
また、暗号化部１０５は、管理サーバ２００の要求に応じて、管理サーバ２００から送信された所定のデータ（処理要求としてのＳＱＬ文など）を暗号化する。
【００３９】
復号部１０６は、通信部１０１が取得したデータ処理の実行結果を復号する。より詳しくは、復号部１０６は、管理サーバ２００から復号処理の処理要求がされた実行結果のうち、鍵管理部１０４が管理する暗号鍵で暗号化した属性項目についてのデータ処理の実行結果を、記憶部１０３から対応する復号鍵を取得して、暗号化した暗号方式に従って復号する。なお、復号アルゴリズムは、周知の技術であるので説明を省略する。
【００４０】
また、復号部１０６は、復号した実行結果を制御部１０２に送り、制御部１０２は、復号した実行結果を、管理サーバ２００に送信する。または、制御部１０２は、管理サーバ２００からの要求に応じて、復号した実行結果を、データ処理の処理要求元（端末装置４００）に送信してもよい。
【００４１】
図３は、機微データのデータ構造の一例を示した図である。本実施形態において、機微データは、個人に関する情報であって、年齢、性別、収入、居住地域、購買情報などの属性項目（カラム：列）の属性値（文字列又は数値）である。また、機微データは、統合キーとして、個人を一意に特定できる識別子（共通ＩＤ）を属性項目として含む。識別子は、数値、文字列またはそれらの組み合わせであってよい。なお、図３において、説明を簡略化するため、所定の属性項目を示しているが、これに加え、図示しない属性項目を機微データに含ませてもよい。また、機微データは、個人に関する情報に限られず、ＩｏＴ・ＮＷ機器、産業用機器などのシステムに関する機密情報（センシングデータやログデータ等）であってもよい。また、統合キーは個人を一意に特定できる識別子に限られず、複数のテーブルにおけるデータを一意に特定できる値であれば、任意の値を用いてもよい。
【００４２】
図３において、属性項目の属性値が格納されたテーブルＴ１，Ｔ２，Ｔ３が示されている。テーブルＴ１は、データ提供サーバ１００−１が提供する機微データ（すなわち、会社Ａが保有するデータ）を示している。テーブルＴ１において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ＩＤ」、個人の年齢を示す「年齢」、個人の性別を示す「性別」、個人の収入を示す「収入」、個人の商品１に対する購買の有無を示す「購買フラグ１」を含む。テーブルＴ１において、属性項目「共通ＩＤ」，「年齢」，「収入」，「購買フラグ１」の属性値は数値である。なお、図３において「性別」の属性値はカテゴリ（文字列）であるが、性別と数値を対応させる等して、カテゴリを数値で表すようにしてもよい。
【００４３】
テーブルＴ１において、属性項目「共通ＩＤ」に対し属性値「１２３４５」、属性項目「年齢」に対し属性値「４５」、属性項目「性別」に対し属性値「女」、属性項目「収入」に対し属性値「４５０」、属性項目「購買フラグ１」に対し属性値「１」が格納されている。これは、共通ＩＤが１２３４５である個人は、年齢が４５歳、性別が女、収入が４５０（万円）、商品１を購入済み、ということを意味している。同様に、属性項目「共通ＩＤ」の属性値「６７８９０」，「２３４５６」，「９０１２３」，「８９０１２」，「３４５６７」についても、各属性項目に対し属性値が格納される。
【００４４】
テーブルＴ２は、データ提供サーバ１００−２が提供する機微データ（すなわち、会社Ｂが保有するデータ）を示している。データ提供サーバ１００−２は、テーブルＴ１で示される機微データを保有する会社Ａとは異なる属性項目を含む機微データを提供する。
【００４５】
テーブルＴ２において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ＩＤ」、個人の居住する地域を示す「居住地域」、個人の商品２に対する購買の有無を示す「購買フラグ２」，個人の商品３に対する購買の有無を示す「購買フラグ３」を含む。テーブルＴ２において、属性項目「共通ＩＤ」，「購買フラグ２」，「購買フラグ３」の属性値は数値であり、属性項目「居住地域」の属性値は文字列である。なお、図３において「居住地域」の属性値はカテゴリ（文字列）であるが、地域と数値を対応させる等して、カテゴリを数値で表すようにしてもよい。例えば、テーブルＴ２において、属性項目「共通ＩＤ」に対し属性値「６７８９０」、属性項目「居住地域」に対し属性値「東京」、属性項目「購買フラグ２」に対し属性値「１」、属性項目「購買フラグ３」に対し属性値「０」が格納されている。これは、共通ＩＤが６７８９０である個人は、居住する地域が東京、商品２を購入済み、商品３は未購入、ということを意味している。同様に、属性項目「共通ＩＤ」の属性値「２３４５６」，「８９０１２」，「１２３４５」，「９０１２３」，「３４５６７」についても、各属性項目に対し属性値が格納される。
【００４６】
テーブルＴ１とテーブルＴ２とでは、「共通ＩＤ」以外の属性項目は異なっているが、同一の「共通ＩＤ」で示されるレコードは同一の個人に対応する。例えば、テーブルＴ１の「共通ＩＤ」の属性値「６７８９０」によって特定されるレコード（個人）は、テーブルＴ２の「共通ＩＤ」の属性値「６７８９０」によって特定されるレコード（個人）と同一である。
【００４７】
テーブルＴ３は、データ提供サーバ１００−３が提供する機微データ（会社Ｃが保有するデータ）を示している。データ提供サーバ１００−３は、テーブルＴ１およびＴ２で示される機微データを保有する会社Ａおよび会社Ｂとは異なる機微データを提供する。
【００４８】
テーブルＴ３において、機微データは、属性項目として、個人を一意に特定する識別子である「共通ＩＤ」、配偶者の有無を示す「配偶者フラグ」、扶養家族の人数を示す「扶養人数」、個人の商品４に対する購買の有無を示す「購買フラグ４」を含む。テーブルＴ３において、属性項目「共通ＩＤ」，「配偶者フラグ」，「扶養人数」，「購買フラグ４」の属性値は数値である。例えば、テーブルＴ３において、属性項目「共通ＩＤ」に対し属性値「２３４５６」、属性項目「配偶者フラグ」に対し属性値「１」、属性項目「扶養人数」に対し属性値「３」、属性項目「購買フラグ４」に対し属性値「１」が格納されている。これは、共通ＩＤが２３４５６である個人は、配偶者を有し、扶養人数は３人であり、商品４を購入済み、ということを意味している。同様に、属性項目「共通ＩＤ」の属性値「９０１２３」，「５６７８９」，「３４５６７」，「７８９０１」，「１２３４５」についても、各属性項目に対し属性値が格納される。
【００４９】
テーブルＴ３と、テーブルＴ１及びＴ２とでは、「共通ＩＤ」以外の属性項目は異なっている。また、属性項目「共通ＩＤ」の属性値は、テーブルＴ３にのみ「５６７８９」および「７８９０１」が含まれている。すなわち、各テーブルには、同一のレコードの群ではなく、テーブルごとに異なるレコードを含む群であってもよい。なお、本実施形態においては、図３で示したように、各データ提供サーバが提供する機微データに含まれる属性項目は、「共通ＩＤ」（識別子）以外は異なるものとしているが、他の実施形態として、同じ属性項目を含んでいてもよい。その場合、統合データとしてどのデータ提供サーバが提供する属性値を優先するかは、システム管理者等が適宜設定して決定することができる。
【００５０】
図４は、暗号化された機微データのデータ構造の一例を示す図である。図４において、「共通ＩＤ」以外の属性項目の属性値が暗号化されたテーブルＴ１ｅ，Ｔ２ｅ，Ｔ３ｅが示されている。
【００５１】
テーブルＴ１ｅは、データ提供サーバ１００−１（会社Ａ）が管理する暗号鍵に基づいて、テーブルＴ１の「共通ＩＤ」以外の属性値が暗号化されている。例えば、属性値が数値である属性項目「年齢」，「収入」，「購買フラグ１」については、準同型暗号方式および／または順序保存暗号方式で暗号化し、属性値が文字列である属性項目「性別」については、検索可能暗号方式で暗号化する。なお、テーブルＴ１ｅにおいて、説明を簡単にするため、属性値が数値のデータは、例えば、準同型暗号方式で暗号化された値を示している（以下、テーブルＴ２ｅ，Ｔ３ｅにおいても同様）。
【００５２】
テーブルＴ２ｅは、データ提供サーバ１００−２（会社Ｂ）が管理する暗号鍵に基づいて、テーブルＴ２の「共通ＩＤ」以外の属性値が暗号化されている。例えば、属性値が数値である属性項目「購買フラグ２」，「購買フラグ３」については、準同型暗号方式および／または順序保存暗号方式で暗号化し、属性値が文字列である属性項目「居住地域」については、検索可能暗号方式で暗号化する。
【００５３】
また、テーブルＴ３ｅは、データ提供サーバ１００−３（会社Ｃ）が管理する暗号鍵に基づいて、テーブルＴ３の「共通ＩＤ」以外の属性値が暗号化されている。例えば、属性値が数値である属性項目「配偶者フラグ」，「扶養人数」，「購買フラグ４」については、準同型暗号方式および／または順序保存暗号方式で暗号化する。
【００５４】
なお、各テーブルにおいて、「共通ＩＤ」以外の全ての属性項目の属性値を同じ暗号鍵で暗号化せず、例えば、データの重要度等に応じて、異なる鍵で暗号化するようにしてもよい。また、属性項目の公開条件等に従って、暗号化対象の属性値を設定してもよい。例えば、データ提供サーバ１００−３は、機微データを保有する組織（会社Ｃ）の指示に従って、テーブルＴ３の属性項目「購買フラグ４」の属性値は暗号化しない等の設定をしてもよい。
【００５５】
また、図４において、図３で属性値が同じデータについては、暗号化データも同じ数値として記載しているが、セキュリティを高めるため、次のような方法を用いてもよい。例えば、検索処理用に、そのまま暗号化した属性値（検索用データ）と、属性値の前後にランダムな値を付加して暗号化した属性値（通信用データ）の両者の暗号化データを保持する。そして、検索処理の際は、検索用データにより完全一致の検索処理を行い、通信する際は、通信用データを用いるようにしてもよい。この場合、復号した後は、付加したランダムな値は削除して出力する。また、図４においては、「共通ＩＤ」以外の属性値が暗号化されていたが、属性項目自体や、共通ＩＤの属性値を暗号化対象にしてもよい。
【００５６】
図５は、統合データのデータ構造の一例を示す図である。図５において、統合テーブルＴｍは、図４で示したテーブルＴ１ｅ，Ｔ２ｅ，Ｔ３ｅに含まれる属性項目「共通ＩＤ」の属性値（識別子）を統合キーとして、統合されたテーブルである。すなわち、統合データは、属性項目として「共通ＩＤ」，「年齢」，「性別」，「収入」，「購買フラグ１」，「居住地域」，「購買フラグ２」，「購買フラグ３」，「配偶者フラグ」，「扶養人数」，「購買フラグ４」を含むテーブルＴｍであって、「共通ＩＤ」以外の各属性項目の属性値は、図４において示したように、暗号化されている。図５で示すようなデータ構造を有する統合データは、共通データベース３００に格納される。共通データベース３００は、例えば、属性項目をカラム（列）として有するテーブルを格納するリレーショナルデータベースである。なお、本明細書では、統合テーブルのロウ（行）を「レコード」と記載する。
【００５７】
統合テーブルＴｍにおいて、属性項目「年齢」，「性別」，「収入」，「購買フラグ１」（カラム）は、データ提供サーバ１００−１（会社Ａ）が提供する機微データである。属性項目「居住地域」，「購買フラグ２」，「購買フラグ３」（カラム）は、データ提供サーバ１００−２（会社Ｂ）が提供する機微データである。属性項目「配偶者フラグ」，「扶養人数」，「購買フラグ４」（カラム）は、データ提供サーバ１００−３（会社Ｃ）が提供する機微データである。
【００５８】
テーブルＴ３に含まれ、テーブルＴ１およびＴ２には含まれていない「共通ＩＤ」の属性値「５６７８９」および「７８９０１」については、テーブルＴ１およびＴ２に含まれる属性項目の属性値は、ブランク（NULL）またはダミーの数値を格納するなど、データベースの設計者や管理サーバ２００の管理者等が適宜決定してもよい。または、統合データの属性項目「共通ＩＤ」以外の属性値が格納されていないレコードについては削除するようにしてもよい。
【００５９】
すなわち、図５の例では、図４のテーブルＴ１ｅ，Ｔ２ｅ，Ｔ３ｅの属性項目「共通ＩＤ」を統合キーとして、横方向へテーブルを統合（「属性項目」（カラム）の追加）及び、縦方向へのテーブルの統合（「レコード」の追加）を含む統合処理が行われている。なお、共通データベース３００は、上記で例示したリレーショナルデータベースに限らず、ＮｏＳＱＬ、ＮｅｗＳＱＬや、Ｇｒａｐｈ  Ｄａｔａｂａｓｅ等のデータベース種であってもよい。
【００６０】
（管理サーバ２００の機能構成）
図６は、管理サーバ２００の機能構成の一例を示す機能ブロック図である。図６を参照して、管理サーバ２００の機能構成の一例について説明する。
【００６１】
管理サーバ２００は、通信部２０１と、記憶部２１０と、制御部２２０と、を備える。
【００６２】
通信部２０１は、管理サーバ２００がネットワークＮＷを介して各サーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。通信部２０１は、受信したデータを制御部２２０に送り、また、制御部２２０から受け取ったデータを、ネットワークＮＷを介してサーバや装置等に送信する。
【００６３】
また、通信部２０１は、共通データベース３００に格納される統合データに対するデータ処理（後述）の処理要求を受け付ける受付部として機能する。なお、通信部２０１は、ネットワークＮＷを介した装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、周知の技術であるため、説明を省略する。
【００６４】
記憶部２１０は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶部２１０は、管理サーバ２００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて記憶部２１０にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）等である。コンピュータプログラムは、所定のサーバ等からインストールされてもよい。
【００６５】
記憶部２１０は、データ処理に関する設定ファイル２１１を有する。設定ファイル２１１は、データ処理の実行の可否を規定しており、例えば、統合データの属性項目ごとに、データ処理の実行権限を有するユーザ等が対応付けて記憶している。また、設定ファイル２１１は、統合データの属性項目ごとのデータ提供元などを対応付けて記憶している。なお、設定ファイル２１１は、管理サーバ２００の管理者や、データ提供サーバ１００の管理者や関連付けられる組織が適宜設定することができる。
【００６６】
また、記憶部２１０は、通信部２０１がデータ提供サーバ１００から受信した、暗号化された機微データを記憶する。
【００６７】
図７は、設定ファイルのデータ構造の一例を示す図である。図７において、設定ファイル２１１は、図５で示した統合データが含む「属性項目」について、データ処理を行う「権限を有するユーザ」と、その属性項目（カラム）の「データを提供したサーバ」（データ提供サーバ）とを対応付けて記憶している。
【００６８】
属性項目についてデータ処理を行う権限とは、データ処理の対象として指定した属性項目の属性値についての統計処理や検索処理を実行する権限である。例えば、属性項目「年齢」を対象として、属性値の平均値や最大値、最小値を求めるような統計処理や、所定の年齢以上のレコード数を求めるといった検索処理などのデータ処理を実行する権限のことである。また、例えば、属性項目「性別」を対象として、女性のレコードを抽出し、抽出したレコード数や、所定の属性項目の属性値の平均値等を求めるという統計処理を行う権限であってもよい。
【００６９】
ここで、属性項目「年齢」は、「権限を有するユーザ」が「Ｕ１，Ｕ２，Ｕ３」であり、属性項目「性別」は、「権限を有するユーザ」が「ＡＬＬ」（すべてのユーザ）である。したがって、統合データに対するデータ処理として、属性項目「性別」が属性値「女性」であるレコードについて、属性項目「年齢」の平均を求める場合は、処理要求をしたユーザが「Ｕ１，Ｕ２，Ｕ３」の場合は処理要求を実行する権限を有する。「Ｕ１，Ｕ２，Ｕ３」以外のユーザは、「年齢」に関するデータ処理を実行する権限を有しないので、属性項目「女性」の属性項目「年齢」の平均を求めるというデータ処理は実行できない。
【００７０】
図６に戻って、制御部２２０は、全体制御部２２１と、統合データ生成部２２２と、実行部２２３と、復号要求部２２４と、を有する。全体制御部２２１は、管理サーバ２００の各機能を制御し、予め記憶部２１０に記憶されているプログラムに基づいて動作するＣＰＵ（Control Processing Unit）等のプロセッサである。なお、全体制御部２２１として、ＤＳＰ（Digital Signal Processor）等が用いられてもよい。また、全体制御部２０４として、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programming Gate Array）等の制御回路が用いられてもよい。
【００７１】
統合データ生成部２２２は、全体制御部２２１の制御により、通信部２０１を介して各データ提供サーバ１００から受信し、記憶部２１０に記憶される暗号化された機微データを、機微データに属性項目として含まれる識別子（図３〜図５の例では共通ＩＤ）に基づいて統合して統合データを生成する。そして、統合データ生成部２２２は、生成した統合データを全体制御部２２１に送り、全体制御部２２１は、通信部２０１を介して、統合データを共通データベース３００に格納する。また、統合データ生成部２２２は、統合データを生成した後、統合した機微データを記憶部２１０から削除するようにしてもよい。
【００７２】
また、統合データ生成部２２２は、統合データに含まれる属性項目を、設定ファイル２１１に記憶させる。統合データに含まれる属性項目は、設定ファイル２１１に基づいて、開示されてもよい。これにより、データ共有システム１に参加するユーザは、どの属性項目に対して、データ処理の処理要求ができるのか把握することができる。また、属性項目を開示しても、属性項目の属性値自体は暗号化されて共通データベース３００に格納されるので、共通データシステム１に参加するユーザは、セキュアに統合データを活用することができる。なお、統合データ生成部２２２における機微データを統合する処理は、統合データに対するデータ処理として実行部２２３（後述）が行うようにしてもよいし、暗号化された機微データを取得した他の情報処理装置が行ってもよい。
【００７３】
実行部２２３は、統合データに対するデータ処理の処理要求に基づき、データ処理を実行する。そして、実行部２２３は、実行結果を復号要求部２２４へ送る。ここで、データ処理とは、統合データの属性項目の少なくとも一部を対象とする検索処理および／または統計処理を含む。本実施形態では、検索処理は、所定の条件を満たすレコードを抽出する処理のことをいう。また、統計処理は、例えば、集計用の関数により行う処理であって、代表的には、テーブルの行数（レコード）を数える処理（ＣＯＵＮＴ関数）、テーブルの数値列のデータを合計する処理（ＳＵＭ関数）、テーブルの数値列のデータを平均する処理（ＡＶＧ関数）、テーブルの任意列のデータの最大値を求める処理（ＭＡＸ関数）、テーブルの任意列のデータの最小値を求める処理（ＭＩＮ関数）などであるが、これらに限られない。対象セグメントごとにまとめる「ＧＲＯＵＰ  ＢＹ」、順序を昇順・降順に並び替える「ＯＲＤＥＲ  ＢＹ」のようなＳＱＬ構文であってもよい。
【００７４】
データ処理の処理要求は、例えば、ＳＱＬ文によって記述されたクエリであってもよい。より具体的には、図５で示した統合データであるテーブルＴｍを対象としたＳＱＬ文として、例えば、「select avg(年齢) from ‘テーブルＴｍ’ where ‘居住地域’＝東京;」で示されるＳＱＬ文をデータ処理の処理要求として通信部２０１が受け付ける。実行部２２３は、ＳＱＬ文に基づき、通信部２０１を介して、共通データベース３００にアクセスし、テーブルＴｍについて、属性項目「居住地域」の属性値が「東京」であるレコードを抽出し、抽出したレコードについて、属性項目「年齢」の属性値の平均値を計算する処理を実行するが、テーブルＴｍのデータは、上述のように暗号化されているため、以下のような処理を行う。
【００７５】
例えば、実行部２２３は、where句の条件一致判定のため、設定ファイル２１１を参照して、属性項目「居住地域」を暗号化したデータ提供サーバ１００の情報を取得する。そして、where句の条件文を属性項目「居住地域」を暗号化したデータ提供サーバ１００（図７の例では、データ提供サーバ１００−２）に通信部２０１を介して送信する。その際、暗号状態で検索が可能な方式（ＡＥＳや検索可能暗号など）で暗号化するよう要求し、暗号化されたwhere句の条件文を取得する。例えば、データ提供サーバ１００−２は、実行部２２３の要求に応じて、上述のクエリ「select avg(年齢) from ‘テーブルＴｍ’ where ‘居住地域’＝東京;」に対し、属性項目「居住地域」を暗号化する際に用いた暗号鍵で「東京」を暗号化する。そして、暗号化されたwhere句を含む「select avg(年齢) from ‘テーブルＴｍ’ where ‘居住地域’＝avf3h54…;」を管理サーバ２００の実行部２２３に返す。
【００７６】
属性項目「年齢」の属性値は、暗号化状態のまま加減算が可能な（加法的な）準同型暗号方式で暗号化されているため、実行部２２３は、抽出されたレコードについて、周知の方法により平均値を算出する。以上のように、実行部２２３は、ＳＱＬ文を実行することができる。そして、実行結果（上記の例では、「居住地域」の属性値が「東京」である個人の「年齢」の属性値の平均を示す暗号文）を出力する。
【００７７】
また、実行部２２３は、データ処理の処理要求を受け付けると、設定ファイル２１１に基づいて、データ処理の実行の可否を判断するようにしてもよい。上述したように、設定ファイル２１１は、統合データの属性項目ごとに、データ処理の実行権限を有するユーザと対応付けて記憶しているため、実行部２２３は、データ処理の処理要求を行ったユーザが、データ処理の対象としている属性項目に関してデータ処理を行う権限を有しているか判断する。権限を有していないと判断した場合は、実行部２２３は、処理要求したユーザに対し、通信部２０１を介して、権限を有していない等のエラー通知を行うようにしてもよい。権限を有していると判断した場合は、実行部２２３は、データ処理を実行して、実行結果を復号要求部２２４へ送る。
【００７８】
また、実行部２２３は、例えば、ＳＱＬ文から、データ処理の対象である属性項目が統合データに含まれているか否かの判断に基づいて、データ処理を実行してもよい。実行部２２３は、設定ファイル２１１を参照して、統合データに含まれている属性項目の情報を取得する。そして、データ処理の対象とされる属性項目が統合データに含まれていないと判断した場合は、実行部２２３は、処理要求したユーザに対し、通信部２０１を介して、データ処理の対象とされる属性項目が統合データに含まれていない等のエラー通知を行うようにしてもよい。また、ユーザが間違えて属性項目をデータ処理の対象とした可能性があるため、エラー通知に代えて、別の属性項目を対象としてデータ処理を行う旨の提案を行ってもよい。これによりユーザフレンドリーな通知を行うことができる。
【００７９】
復号要求部２２４は、データ提供サーバ１００に対し、実行部２２３が実行したデータ処理の実行結果の復号処理の処理要求を行う。この際、復号要求部２２４は、実行結果に含まれるレコード数に基づいて、復号処理の処理要求を行ってもよい。例えば、処理要求としてＳＱＬ文に記載された条件から抽出されたレコード数が「１」の場合は、統計処理の結果（統計値）が、その抽出されたレコードの属性値と一致してしまい、生データを開示することとなる。したがって、管理サーバ２００や、データ提供サーバ１００の管理者は、復号条件として、復号要求部２２４は、抽出されたレコード数が「１」の場合は、復号処理の処理要求を行わないことを予め設定しておいてもよい。また、統計処理の内容に応じて、抽出されたレコード数が「１」以外の数であっても、復号処理の処理要求を行わないようにしてもよい。なお、復号要求部２２４は、上述のレコードの数のほかに、レコードインデックス、属性項目（カラム）の属性、キーワード、ユーザ属性等のレコードに関する条件に基づいて復号処理の処理要求を行ってもよい。例えば、一部のデータには特定のユーザのみ復号可能（具体的には、レコード項番１０１−２００はユーザＡのみが復号可能など）、特定のキーワードを含むデータは復号禁止（具体的には、住所カラムに「東京」というキーワードが入っていると復号禁止）、などを復号処理の処理要求を行う条件としてもよい。
【００８０】
復号要求部２２４は、データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバ１００に対し、当該データ提供サーバ１００が管理する復号鍵によって実行結果を復号するよう要求する。すなわち、データ処理の対象である属性項目の属性値について、統計処理のため暗号化状態のまま演算を行った実行結果は、当該属性項目を含む機微データを提供したデータ提供サーバ１００が管理する暗号鍵で暗号化されている。このため、復号処理は、暗号鍵に対応する復号鍵を管理するデータ提供サーバ１００によって行われる必要がある。そこで、復号要求部２２４は、設定ファイル２１１を参照して、データ処理の対象である属性項目を提供したデータ提供サーバ１００の情報を取得し、当該データ提供サーバ１００に対し、復号処理を行うよう処理要求する。
【００８１】
また、復号要求部２２４は、データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバ１００に対し、実行結果の復号の可否を問い合わせ、当該問い合わせの許可応答に応じて、当該データ提供サーバ１００が管理する復号鍵によって実行結果を復号するよう要求してもよい。例えば、データ提供サーバ１００において、予め定められた復号条件を満たすか否か、または、機微データを保有する組織の責任者等が、実行結果を復号してよいか否かを判断し、復号の許可応答があった場合には実行結果を送信して、復号処理を行うよう要求してもよい。これにより、データ提供サーバ１００側で処理要求者の実行権限の有無など独自の復号条件を設定することができる。なお、復号要求部２２４は、設定ファイル２１１および、実行結果の復号の可否の問い合わせに基づいて復号処理を行うように処理要求してもよい。
【００８２】
また、復号要求部２２４は、データ提供サーバ１００が復号した実行結果を、通信部２０１を介して取得し、当該取得した実行結果を、データ処理の処理要求の送信元（端末装置４００）に提供する。なお、データ処理の処理要求の送信元である端末装置４００は、復号した実行結果を暗号化するための公開鍵を、データ処理の処理要求とともに、管理サーバ２００に送信しておいてもよい。この場合、復号要求部２２４は、復号処理の処理要求とともに、端末装置４００の公開鍵もデータ提供サーバ１００に送信する。データ提供サーバ１００は、受信した公開鍵によって、復号した実行結果を暗号化し、管理サーバ２００に送信する。端末装置４００は、管理サーバ２００から、端末装置４００の公開鍵で暗号化された実行結果を受信し、端末装置４００の秘密鍵で復号して実行結果を取得できる。これにより、管理サーバ２００に実行結果を開示することなく、データ処理を行うことができる。
【００８３】
また、復号要求部２２４は、データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバ１００に対し、当該データ提供サーバ１００が管理する暗号鍵によって実行結果を復号し、当該復号した実行結果を、データ処理の処理要求の送信元（端末装置４００）に提供するよう要求してもよい。管理サーバ２００を介することなく直接データ処理の処理要求の送信元に実行結果を送信することにより、通信工程を減らすことができる。この際も、上述と同様に、あらかじめ端末装置４００の公開鍵を、復号された実行結果を暗号化するために、データ処理の処理要求とともに管理サーバ２００に送信しておいてもよい。なお、上記では、実行結果を端末装置４００の公開鍵で暗号化する例を述べたが、データ共有システム１などにおいて、予め共有している共通鍵で暗号化してもよい。
【００８４】
（端末装置４００の機能構成）
図８は、端末装置４００の機能構成の一例を示す機能ブロック図である。図８を参照して、端末装置４００の機能構成の一例について説明する。
【００８５】
端末装置４００は、通信部４０１と、記憶部４０２と、入力部４０３と、出力部４０４と、制御部４０５と、を備える。端末装置４００は、上述したように、例えば、プラットフォーム（データ共有システム１）に参加する組織に所属するユーザが操作する情報処理装置であってもよい。
【００８６】
通信部４０１は、データ提供サーバ１００の通信部１０１と同様の機能を有し、端末装置４００がネットワークＮＷを介してサーバや装置等と所定の通信プロトコルに従って通信を行うための通信インタフェース回路を有する。通信部４０１は、受信したデータを制御部４０５に送り、また、制御部４０５から受け取ったデータを、ネットワークＮＷを介してサーバや装置等に送信する。
【００８７】
記憶部４０２は、データ提供サーバ１００の記憶部１０３と同様の機能を有する記憶装置であって、端末装置４００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて記憶部４０２にインストールされてもよい。また、記憶部４０２は、端末装置４００からデータ処理の実行結果を暗号化するための暗号鍵（公開鍵）と、当該暗号鍵で暗号化された実行結果を復号するための復号鍵（秘密鍵）とを記憶してもよい。
【００８８】
入力部４０３は、端末装置４００のユーザ入力を受け付けるインタフェースである。入力部４０３は、例えば、キーボードや、タッチパネル、音声入力を検出するマイクであるが、これらに限られない。ユーザは、入力部４０３を介して、データ処理の処理要求を入力する。処理要求は、例えば、ＳＱＬによって記載される。
【００８９】
出力部４０４は、情報を出力してユーザに通知するインタフェースである。出力部４０４は、例えば、ディスプレイや、音声出力するスピーカであるが、これらに限られない。出力部４０４は、データ処理の実行結果をディスプレイに表示する等してユーザに提供する。
【００９０】
制御部４０５は、端末装置４００の各機能を制御し、予め記憶部４０２に記憶されているプログラムに基づいて動作するＣＰＵ（Control Processing Unit）等のプロセッサである。制御部４０５は、入力部４０３により入力されたデータ処理の処理要求を、通信部４０１を介して管理サーバ２００に送信する。この際、制御部４０５は、処理要求を、記憶部４０２に記憶された公開鍵とともに、管理サーバ２００に送信してもよい。また、制御部４０５は、通信部４０１を介して、データ処理の実行結果を取得する。データ処理の実行結果が端末装置４００の公開鍵により暗号化されている場合は、公開鍵と対になる秘密鍵により復号し、実行結果を取得する。なお、実行結果は、データ共有システム１において予め、または適宜構築されたセキュアな通信のための共通鍵により暗号化されるようにしてもよい。
【００９１】
図９は、統合データを共通データベースに格納する処理の一例を示すフローチャートである。図９を参照して、プラットフォーム（データ共有システム１）に参加する組織が提供する機微データが統合され、共通データベース３００に格納される処理の流れについて説明する。なお、処理の流れは一例であり、図９で示す順序に限られない。また、図９で示す、複数のテーブルを一つのテーブルに統合する処理は一例であることはいうまでもない。
【００９２】
ステップＳ１０１において、データ提供サーバ１００の通信部１０１は、プラットフォームに参加する組織等から機微データを取得する。通信部１０１は、取得した機微データを制御部１０２に送る。制御部１０２は、記憶部１０３に機微データを記憶させる。
【００９３】
ステップＳ１０２において、データ提供サーバ１００の制御部１０２は、暗号化部１０５に対し、ステップＳ１０１で取得した機微データに暗号化処理を行うよう制御する。
【００９４】
暗号化部１０５は、制御部１０２の制御に応じて、記憶部１０３から機微データを読み込み、例えば、属性項目（カラム）のデータ形式等を確認する。そして、暗号化部１０５は、属性項目のデータ形式や属性項目の内容に応じた暗号化処理を実行する。例えば、属性項目の属性値のデータ形式が数値の場合は、準同型暗号方式および／または順序保存暗号方式を用いて暗号化する。データ形式が文字列の場合は、検索可能暗号方式を用いて暗号化する。なお、暗号化部１０５は、属性項目が識別子（共通ＩＤ）の属性値については、暗号化してもよいし、しなくてもよい。暗号化されていたとしても、データ統合処理のための統合キーとして用いることができるからである。また、暗号化処理のために、暗号化部１０５は、鍵管理部１０４に対し、暗号鍵を要求し、暗号化する暗号方式に応じた鍵を取得する。暗号化部１０５は、暗号化した機微データを記憶部１０３に記憶させる。
【００９５】
ステップＳ１０３において、データ提供サーバ１００の通信部１０１は、制御部１０２からの制御により、記憶部１０３に記憶された、暗号化された機微データを管理サーバ２００に送信する。なお、ステップＳ１０１からステップＳ１０３の処理は、プラットフォーム（データ共有システム１）に参加する各組織に関連付けられたデータ提供サーバ１００において、並列的に処理が実行されていてもよい。
【００９６】
ステップＳ１０４において、管理サーバ２００の通信部２０１は、暗号化された機微データを各データ提供サーバ１００から取得する。通信部２０１は、暗号化された機微データを全体制御部２２１に送る。全体制御部２２１は、暗号化された機微データを記憶部２１０に記憶させる。
【００９７】
ステップＳ１０５において、管理サーバ２００の統合データ生成部２２２は、全体制御部２２１の制御により、記憶部２１０に記憶された暗号化された機微データを読み出し、機微データの属性項目として含まれる識別子（共通ＩＤ）に基づいて機微データを統合して統合データを生成する。統合データ生成部２２２は、生成した統合データを記憶部２１０に記憶させる。
【００９８】
ステップＳ１０６において、管理サーバ２００の通信部２１０は、全体制御部２２１からの制御により、記憶部２１０に記憶された統合データを共通データベース３００に送信する。共通データベース３００は、受信した統合データを格納する。
【００９９】
図１０は、データ処理の一例を示すフローチャートである。図１０を参照して、管理サーバ２００におけるデータ処理の流れの一例を説明する。なお、データ処理の流れは一例であり、図１０に示す順序に限られない。
【０１００】
ステップＳ２０１において、通信部２０１は、端末装置４００からデータ処理の処理要求を受け付ける。なお、データ処理の処理要求は、例えば、ＳＱＬによって記載されていてもよい。また、処理要求は、復号された実行結果を暗号化するために、端末装置４００において管理される暗号鍵を含んでもよい。また、処理要求は、処理要求した端末装置４００のユーザ情報など、送信元を識別するための情報を含んでもよい。通信部２０１は、受け付けたデータ処理の処理要求を全体制御部２２１に送る。
【０１０１】
ステップＳ２０２において、実行部２２３は、全体制御部２２１からの制御により、設定ファイル２１１に基づき、データ処理の実行可否について判断する。実行部２２３は、例えば、図７に示した設定ファイル２１１を参照して、データ処理の処理要求を送信したユーザが実行権限を有するか否か、また、処理要求に含まれる、データ処理の対象とする属性項目が、統合データに含まれるかを判断する。実行部２２３が、設定ファイル２１１に基づいて、データ処理が実行可能と判断した場合（ステップＳ２０２において、Ｙ）は、処理はステップＳ２０３に進む。実行部２２３が、データ処理が実行できないと判断した場合（ステップＳ２０２において、Ｎ）は、処理はステップＳ２０８に進む。
【０１０２】
ステップＳ２０３において、実行部２０３は、共通データベース３００から統合データを取得し、データ処理の実行を行う。データ処理については前述したとおりであるので、詳細な説明は省略するが、機微データは暗号化状態のまま演算可能な暗号方式で暗号化されているため、実行部２０３は、データ処理の処理要求に応じて、機微データを暗号化状態のまま演算することができ、実行結果も暗号化状態のままである。実行部２０３は、実行結果を復号要求部２２４に送る。
【０１０３】
ステップＳ２０４において、復号要求部２２４は、実行結果の復号の可否を判断する。より具体的には、復号要求部２２４は、実行結果に含まれるレコード数（例えば、データ処理として処理要求された統計処理等のために抽出されたレコード数）に基づいて、復号の可否を判断する。復号要求部２２４が、実行結果に含まれるレコード数が「１」であると判断した場合（ステップＳ２０４において、Ｎ）は、処理はステップＳ２０８に進む。一方、そうでない場合（ステップＳ２０４において、Ｙ）は、処理はステップＳ２０５に進む。なお、復号要求部２２４は、復号処理の可否をレコード数に基づいて判断する他に、データ処理の対象となる属性項目を含む機微データを提供したデータ提供サーバ１００に、復号処理を許可するか否か問い合わせてもよい。そして、問い合わせから所定の期間に回答を受信しなければ、処理をステップＳ２０８に進めるようにしてもよい。
【０１０４】
ステップＳ２０５において、復号要求部２２４は、実行結果の復号処理の処理要求を行う。復号要求部２２４は、例えば、設定ファイル２１１を参照して、統計処理の対象として指定された属性項目を提供したデータ提供サーバ１００に対し、通信部２０１を介して、復号処理の処理要求を行う。データ提供サーバ１００は、復号処理の処理要求に応じて、復号鍵に基づいて、実行結果の復号処理を行う。なお、復号処理の処理要求には、データ処理の処理要求を行った端末装置４００の暗号鍵を含ませ、データ提供サーバ１００は、当該暗号鍵によって復号された実行結果を暗号化してもよい。これにより、データを提供したデータ提供サーバ１００およびデータ処理の処理要求をした端末装置４００以外には、実行結果を開示しないようにすることができ、情報漏洩を防ぐことができる。
【０１０５】
ステップＳ２０６において、復号要求部２２４は、通信部２０１を介して、復号された実行結果を取得する。
【０１０６】
ステップＳ２０７において、復号要求部２２４は、取得した実行結果を、データの処理要求を送信した端末装置４００に提供する。端末装置４００は、取得した実行結果が端末装置４００の公開鍵で暗号化されていれば、秘密鍵を用いて復号する。
【０１０７】
また、ステップＳ２０８において、全体制御部２２１は、ステップＳ２０２における実行部２２３の実行不可の判断、ステップＳ２０４における復号要求部２２４の復号不可の判断に応じて、通信部２０１を介して、データ処理の実行結果を提供できない旨のエラーの通知を行う。この際、実行権限がない等の理由を通知してもよい。
以上のようにして、データ共有システム１ではデータ処理を行う。
【０１０８】
（ハードウェア構成図）
図１１は、管理サーバ２００のハードウェア構成を示すブロック図である。管理サーバ２００は、コンピュータ５０１に実装される。コンピュータ５０１は、ＣＰＵ５０２と、主記憶装置５０３と、補助記憶装置５０４と、インタフェース５０５と、を備える。
【０１０９】
管理サーバ２００の各構成要素の動作は、プログラムの形式で補助記憶装置５０４に記憶されている。ＣＰＵ５０２は、プログラムを補助記憶装置５０４から読み出して主記憶装置５０３に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ５０２は、プログラムに従って、記憶領域を主記憶装置５０３に確保する。当該プログラムは、具体的には、コンピュータ５０１に、データ処理を行わせるプログラムである。
【０１１０】
なお、補助記憶装置５０４は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース５０５を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムがネットワークを介してコンピュータ５０１に配信される場合、配信を受けたコンピュータ５０１が当該プログラムを主記憶装置５０３に展開し、処理を実行してもよい。
【０１１１】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能を補助記憶装置５０４に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。なお、図１１に示したハードウェア構成は、データ提供サーバ１００および端末装置４００も同様の構成としてもよい。これらの装置における各構成要素の動作も、上述の管理サーバ２００と同様に、補助記憶装置に記憶されたプログラムに従ったＣＰＵにより実現する。
【０１１２】
（効果の説明）
上述したように、本実施形態に係るデータ共有システムは、複数のデータ提供サーバと、共通データベースと、管理サーバとを備え、管理サーバは、各データ提供サーバから提供された、所定の暗号方式で暗号化された機微データを統合した統合データに対して、データ処理の処理要求を受け付ける。そして、管理サーバは、暗号化状態のままデータ処理を行い、データ処理の実行結果を、当該データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバに対し、当該データ提供サーバが管理する復号鍵に基づいて、復号するよう要求する。機微データを統合した統合データは暗号化状態のまま共通データベースに格納され、管理サーバにおいてデータ処理される。このように、管理サーバは、機微データに対する復号鍵を取得せず、暗号化された機微データや、実行結果を復号することはできないので、機微データやそれを活用したデータ処理（統計処理など）の実行結果が、漏洩することを防止することができる。
【０１１３】
また、本実施形態においては、共通データベースは、属性項目をカラムとして有するテーブルを格納し、データ処理は、統合データの属性項目の少なくとも一部を対象とする検索処理および／または統計処理であるから、データ共有システムに参加する組織は、他組織が保有する属性項目の属性値を利用して検索処理や統計処理を行うことができる。これにより、自組織が疎なデータしか有さない場合であっても、データ共有システムに参加する他組織のデータを活用することができる。
【０１１４】
また、本実施形態においては、実行結果の復号処理の処理要求は、実行結果に含まれるレコード数に基づいて、復号処理の処理要求を行う。これにより、レコード数が１の場合に実行結果を復号することを防ぎ、生データが開示されることを防止することができる。
【０１１５】
また、本実施形態においては、管理サーバが、データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバに対し、当該データ提供サーバが管理する復号鍵によって実行結果を復号するよう要求する。実行結果を復号できるのは、当該機微データを提供し、暗号化したデータ提供サーバのみであるので、機微データを保有する組織は、機微データをセキュリティ上安全に管理することができる。
【０１１６】
また、本実施形態においては、管理サーバが、データ処理の対象である属性項目を含む機微データを提供したデータ提供サーバに対し、実行結果の復号の可否を問い合わせ、問い合わせの許可応答に応じて、データ提供サーバが管理する復号鍵によって実行結果を復号するよう要求する。これにより、実行結果の復号の可否をデータ提供サーバ側でも管理することができ、情報漏洩を防止することができる。
【０１１７】
また、本実施形態においては、管理サーバ、または、データ提供サーバが、当該データ提供サーバが復号した実行結果をデータ処理の処理要求の送信元に提供する。これにより、データ処理の処理要求の送信元は、実行結果を取得することができる。
【０１１８】
また、本実施形態においては、データ処理の実行の可否を規定した設定ファイルに基づいて、データ処理を実行する。これにより、データ処理の実行前に、データ処理を実行するか否かを判断できるため、例えば、データ処理の実行権限を有しない者がした処理を実行せずにすみ、データ処理量を削減することができる。
【０１１９】
また、本実施形態においては、準同型暗号方式、順序保存暗号方式、ＡＥＳ、ＤＥＳ、検索可能暗号、ＳＨＡ、ＭＤ５のうちの少なくとも一つで機微データを暗号化する。これにより、暗号化状態のままでデータ処理を行うことができ、機微データの情報漏洩を防止しつつ、利活用することができる。
【０１２０】
また、本実施形態においては、管理サーバが機微データを統合して統合データを生成し、共通データベースに格納する。これにより、データ共有システムに参加する組織は、自組織が保有する機微データを、他組織に開示することなく統合データとして容易に利活用することができる。
【０１２１】
＜実施形態１の変形例１＞
端末装置４００は、会社Ａなど、プラットフォームに参加し、機微データを提供するデータ提供サーバ１００−１と関連付けられた組織の従業員が用いる情報処理装置である。この場合、端末装置４００は、予め、データ提供サーバ１００−１が管理する暗号鍵を取得しておいてもよい。
【０１２２】
データ処理の処理要求として送信するＳＱＬ文の条件文が、データ提供サーバ１００−１が提供する属性項目を含む条件一致判定である場合、端末装置４００は、データ提供サーバ１００−１から取得した暗号鍵に基づいて、条件文を検索可能暗号方式で暗号化して管理サーバ２００に送信する。これにより、管理サーバ２００において、データ処理の実行を行う際に、データ提供サーバ１００−１にＳＱＬ文の条件文を暗号化するよう要求する処理を省くことができ、処理効率を向上させるという効果がある。
【０１２３】
上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【符号の説明】
【０１２４】
１  データ共有システム、１００  データ提供サーバ、２００  管理サーバ、３００  共通データベース、４００  端末装置、１０１，２０１，４０１  通信部、１０２，２２０，４０５  制御部、１０３，２１０，４０２  記憶部、１０４  鍵管理部、  １０５  暗号化部、１０６  復号部、２１１  設定ファイル、２２１  全体制御部、２２２  統合データ生成部、２２３  実行部、２２４  復号要求部、４０３  入力部、４０４  出力部。
【要約】
【課題】データ共有システムにおいて、各社が保有するデータの内容を他社に開示することなく、安全に活用すること。
【解決手段】データ提供サーバは、機微データを取得する機微データ取得部と、鍵を管理する鍵管理部と、暗号鍵に基づいて、機微データの少なくとも一部の属性値を所定の暗号方式で暗号化する暗号化部と、を有し、共通データベースは、複数のデータ提供サーバにおいて暗号化された機微データを識別子に基づいて統合した統合データを格納し、管理サーバは、共通データベースに格納される統合データに対するデータ処理の処理要求を受け付ける受付部と、データ処理を実行する実行部と、データ提供サーバに対し、データ処理の実行結果の復号処理の処理要求を行う復号要求部と、を有し、データ提供サーバは、管理サーバの復号要求部からの復号処理の処理要求に応じて、復号鍵に基づいて、実行結果を復号する復号部をさらに有する。
【選択図】図１【図１】
0006803598.tif 000002
【図２】
0006803598.tif 000003
【図３】
0006803598.tif 000004
【図４】
0006803598.tif 000005
【図５】
0006803598.tif 000006
【図６】
0006803598.tif 000007
【図７】
0006803598.tif 000008
【図８】
0006803598.tif 000009
【図９】
0006803598.tif 000010
【図１０】
0006803598.tif 000011
【図１１】
0006803598.tif 000012