(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023150937
(43)【公開日】2023-10-16
(54)【発明の名称】情報提供装置、情報提供方法及び情報提供プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20231005BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022060294
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】田中 哲士
(72)【発明者】
【氏名】櫻井 陽一
(72)【発明者】
【氏名】澤田 匡史
(72)【発明者】
【氏名】相津 琢磨
(57)【要約】
【課題】秘密計算システムによって秘匿されたデータに関する十分な情報を分析者に提供すること。
【解決手段】情報提供装置は、秘密分散により断片化されシェアの状態で複数のサーバに保管された元のデータの分布の種類を特定する。情報提供装置は、特定した分布の種類に従い、疑似データを作成する。例えば、疑似データは、分布に従ってランダムに生成されたデータである。元のデータの分布が正規分布である場合、情報提供装置は、正規分布に従ったランダムなデータを生成する。情報提供装置は、作成した疑似データを分析者に提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
秘密分散により断片化されシェアの状態で複数のサーバに保管された元のデータの分布の種類を特定する特定部と、
前記特定部によって特定された分布の種類に従い、疑似データを作成する作成部と、
前記作成部によって作成された疑似データを提供する提供部と、
を有することを特徴とする情報提供装置。
【請求項2】
前記特定部によって前記分布の種類が正規分布と特定された場合、前記作成部は、指定された平均値及び分散値を持つ正規分布に従うランダムなデータを前記疑似データとして作成することを特徴とする請求項1に記載の情報提供装置。
【請求項3】
前記特定部は、秘密計算による統計的検定を行うことで分布の種類を特定することを特徴とする請求項1又は2に記載の情報提供装置。
【請求項4】
前記特定部は、前記元のデータのレコードをソートしたときの所定の分位点数を代表値として用いて統計的検定を行うことを特徴とする請求項3に記載の情報提供装置。
【請求項5】
情報提供装置によって実行される情報提供方法であって、
秘密分散により断片化されシェアの状態で複数のサーバに保管されたデータの分布の種類を特定する特定工程と、
前記特定工程によって特定された分布の種類に従い、疑似データを作成する作成工程と、
前記作成工程によって作成された疑似データを提供する提供工程と、
を含むことを特徴とする情報提供方法。
【請求項6】
コンピュータを、請求項1から4のいずれか1項に記載の情報提供装置として機能させるための情報提供プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報提供装置、情報提供方法及び情報提供プログラムに関する。
【背景技術】
【0002】
従来、秘密計算システムは、データを秘匿したまま統計的な演算を行い、演算の結果得られた統計量をユーザに提供する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、秘密計算システムによって秘匿されたデータに関する十分な情報を分析者に提供することができない場合があるという問題がある。
【0005】
例えば、分析者は、データから計算された統計量だけでなく、データのレコード自体及び散布図等を見ることで、より効率が良く高精度な分析を行うことができる。
【0006】
一方で、データのレコード自体又は散布図を提供することは、個人情報保護法において規定されている個人情報の第三者提供及び目的外利用の制限に抵触することがある。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、秘密分散により断片化されシェアの状態で複数のサーバに保管された元のデータの分布の種類を特定する特定部と、前記特定部によって特定された分布の種類に従い、疑似データを作成する作成部と、前記作成部によって作成された疑似データを提供する提供部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、秘密計算システムによって秘匿されたデータに関する十分な情報を分析者に提供することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る秘密計算システムについて説明する図である。
【
図2】
図2は、実施形態に係る情報提供装置の構成例を示す図である。
【
図3】
図3は、分位点数を用いた検定について説明する図である。
【
図4】
図4は、実施形態に係る情報提供装置の処理の流れを示すフローチャートである。
【
図5】
図5は、情報提供プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る情報提供装置、情報提供方法及び情報提供プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0011】
実施形態では、情報提供装置、情報提供方法及び情報提供プログラムは、秘密計算システムの一部の機能によって実現されるものとする。
【0012】
図1は、実施形態に係る秘密計算システムについて説明する図である。
図1に示すように、秘密計算システム1は、サーバ群10及び情報提供装置20を有する。
【0013】
サーバ群10は、サーバ10a、サーバ10b及びサーバ10cを含む。サーバ群10に含まれるサーバの数は
図1に示すものに限られず、2以上であればよい。
【0014】
また、秘密計算システム1は、分析者が使用する分析者端末30及び管理者が使用する管理者端末40との間でデータのやり取りを行うことができる。
【0015】
秘密計算システム1において、データは複数のシェアと呼ばれる断片に分割される。シェアは、サーバ群10に含まれるサーバ10a、サーバ10b及びサーバ10cに分散して保管される(秘密分散)。
【0016】
秘密計算システム1は、サーバ群10に含まれる複数のサーバ間でデータの演算と交換を行うマルチパーティ計算を行うことで秘密計算を実行する。
【0017】
サーバ群10の各サーバに保管された個々のシェアは、それぞれ意味のないデータである。そのため、1つのシェアから元のデータを復元することはできない。一方、複数のシェアを揃えることで元のデータを復元することが可能になる。
【0018】
例えば、秘密計算システム1には、個人ごとの属性及び身体に関するデータが登録される場合がある。属性及び身体に関するデータは個人情報であり、例えば年齢、性別、身長、体重等が含まれる。秘密計算システム1は、登録されたデータを断片化したシェアを各サーバに格納する。
【0019】
一方、データの利用者は、登録されたデータそのものを閲覧することはできないが、登録されたデータに基づく統計量を閲覧することができる。例えば、データに個人の性別及び体重が含まれている場合、利用者は、各個人の性別及び体重を閲覧することはできないが、「男性の平均体重」を閲覧することができる。
【0020】
また、その際、秘密計算システム1は、各サーバに保管されたシェアを復元することなく「男性の平均体重」を計算することができる。
【0021】
秘密計算システム1は、シェアを復元することなく各種の統計演算を行うことができる。例えば、秘密計算システム1は、行結合、列結合等の表の操作、レコード数の集計、総和、平均、最大値、最小値、標本分散等の統計量の計算、t検定等の統計的検定(以下、単に検定と呼ぶ場合がある。)を行うことができる。さらに、秘密計算システム1は、回帰分析及び主成分分析といった分析を行うことができる。
【0022】
一例として、秘密計算システム1はShamirの閾値秘密分散法という手法を使って秘密分散を行うことができる。このとき、秘密計算システム1は、元のデータを切片とする多項式を通る3つの座標をシェアとして各サーバに保管する。また、多項式の傾きはランダムに決定されるため、元のデータが同じであってもシェアが毎回同じであるとは限らない。
【0023】
秘密計算システム1は、複数のシェアから元のデータを復元することができる。多項式が1次式であれば、秘密計算システム1は、2つの座標(シェアに相当)を結ぶ直線と軸との交点から切片(元のデータに相当)を求めることができる。一方で、1つの座標からは直線が定まらないため、元のデータを復元することはできない。
【0024】
また、秘密計算システム1は、シェアを復元することなく元のデータを使った計算を行うことができる。例えば、座標で表されたシェア同士を加算した結果は、各シェアの元のデータ同士を加算した結果のシェアに相当する。
【0025】
情報提供装置20は、分析者にサーバ群10に保管されたシェアに基づく情報を提供する。情報提供装置20は、シェアから計算された統計量だけでなく、疑似データを提供する。
【0026】
疑似データは、シェアの元になったデータに似せて疑似的に作成されたデータである。例えば、疑似データは、元のデータと同様のデータ分布に従うランダムなデータである。なお、以降の説明における分布は、確率分布と言い換えられてもよい。
【0027】
図1を用いて、疑似データの提供に関する処理の流れを説明する。まず、秘密計算システム1は、データ秘密分散でサーバ群10の各サーバに保存しておく(ステップS1)。
【0028】
サーバ群10に保存されたデータそのものは個人情報であり、共有不可である。そのため、分析者はサーバ群10に保存されたデータを閲覧することはできない。
【0029】
そこで、分析者は、分析に用いる疑似データの提供を管理者に依頼する(ステップS2)。例えば、分析者は、分析者端末30を介して管理者端末40に対して依頼を行う。
【0030】
管理者は、疑似データの作成を依頼されたデータのデータ分布の種類を秘密計算により取得する(ステップS3)。このとき、情報提供装置20は、秘密計算により元のデータの検定を行い分布の種類を特定し、特定した分布の種類を管理者に提示する。
【0031】
そして、管理者は、提示された分布の種類を確認し、管理者端末40を介してデータ分布を入力する(ステップS4)。データ分布は、分布の種類に応じた特徴パラメータである。例えば、提示された分布の種類が正規分布である場合、管理者は平均値μ及び分散値σ2を入力する。
【0032】
データ分布は、分析者によって指定されたものであってもよい。また、データ分布は、情報提供装置20が検定の結果を基に自動的に決定したものであってもよい。
【0033】
情報提供装置20は、指定されたデータ分布に基づき、疑似データを作成する(ステップS5)。例えば、分布の種類が正規分布であり、平均値μ及び分散値σ2が指定された場合、情報提供装置20は、平均値がμであり分散値σ2がである正規分布に従うランダムなデータを生成する。
【0034】
また、情報提供装置20が生成するデータの件数は、管理者によって指定された数であってもよい。また、疑似データは個人情報でないため、共有可能である。さらに、疑似データは不特定多数の利用者がダウンロード可能な状態で提供されてもよい。また、情報提供装置20は、疑似データを利用可能な分析環境を提供してもよい。
【0035】
図2を用いて、情報提供装置20の構成を説明する。
図2は、実施形態に係る情報提供装置の構成例を示す図である。
【0036】
情報提供装置20の各部について説明する。
図1に示すように、情報提供装置20は、通信部21、記憶部22及び制御部23を有する。
【0037】
通信部21は、他の装置の間でデータの通信を行う。例えば、通信部21はNIC(Network Interface Card)である。通信部21は他の装置との間でデータの送受信を行うことができる。
【0038】
記憶部22は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部22は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部22は、情報提供装置20で実行されるOS(Operating System)や各種プログラムを記憶する。
【0039】
制御部23は、情報提供装置20全体を制御する。制御部23は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部23は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
【0040】
制御部23は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部23は、特定部231、作成部232及び提供部233を有する。
【0041】
特定部231は、秘密分散により断片化されシェアの状態で複数のサーバ(サーバ群10)に保管された元のデータの分布の種類を特定する。
【0042】
特定部231は、秘密計算による統計的検定を行うことで分布の種類を特定することができる。例えば、特定部231は、シェアを使ってt検定、カイ2乗検定等を行う。
【0043】
秘密計算による分布の検定は、元のデータのレコードが分布に従っているかを見る必要がある。一方で、レコードを復元することは秘密分散の性質上望ましくない。
【0044】
そこで、特定部231は、元のデータのレコードをソートしたときの所定の分位点数を代表値として用いて統計的検定を行う。これにより、特定部231は、レコードを復元することなく、高速に検定を行うことができる。
【0045】
図3を用いて、分位点数を代表値として用いた統計的検定について説明する。
図3は、分位点数を用いた検定について説明する図である。
【0046】
例えば、元のデータがある確率分布に従っている場合、元のデータに含まれるレコードを昇順にソートしたときのp%の分位点数のレコードは、確率分布のp%の分位点数に従うと考えられる。
【0047】
そこで、特定部231は、分位点数関数を用いて、元データの所定の分位点数を代表値として用いて検定を行う。例えば、元のデータ又は正規化済みの元のデータが標準正規分布に従う場合、
図3に示すように、p=20、40、60、80の場合の分位点数は、概ね-0.842、-0.253、0.253、0.842となる。
【0048】
このように、十分な数の分位点数を使って分布との一致をチェックすることで、特定部231は、高速に検定を行うことができる。
【0049】
作成部232は、特定部231によって特定された分布の種類に従い、疑似データを作成する。
【0050】
例えば、特定部231によって分布の種類が正規分布と特定された場合、作成部232は、指定された平均値及び分散値を持つ正規分布に従うランダムなデータを疑似データとして作成する。
【0051】
提供部233は、作成部232によって作成された疑似データを提供する。提供部233は、疑似データを所定のサーバに保存し、当該サーバから疑似データをダウンロード可能なURLを配布してもよい。
【0052】
図4は、実施形態に係る情報提供装置の処理の流れを示すフローチャートである。
図4に示すように、まず、情報提供装置20は、秘密分散によりシェアとして保存された元のデータのデータ分布の種類を特定する(ステップS101)。
【0053】
次に、情報提供装置20は、データ分布の指定を受け付ける(ステップS102)。例えば、情報提供装置20は、特定した分布の種類に応じた特徴パラメータ(例えば、平均値及び分散値)の入力を受け付ける。
【0054】
続いて、情報提供装置20は、指定されたデータ分布に基づき疑似データを作成する(ステップS103)。そして、情報提供装置20は、作成した疑似データを提供する(ステップS104)。なお、ステップS101及びステップS103は、秘密計算により行われる。
【0055】
[実施形態の効果]
これまで説明してきたように、特定部231は、秘密分散により断片化されシェアの状態で複数のサーバに保管された元のデータの分布の種類を特定する。作成部232は、特定部231によって特定された分布の種類に従い、疑似データを作成する。提供部233は、作成部232によって作成された疑似データを提供する。
【0056】
このように、情報提供装置20は、統計量だけでなく疑似データを作成して分析者に提供する。この結果、実施形態によれば、秘密計算システムによって秘匿されたデータに関する十分な情報を分析者に提供することが可能になる。
【0057】
特定部231によって分布の種類が正規分布と特定された場合、作成部232は、指定された平均値及び分散値を持つ正規分布に従うランダムなデータを疑似データとして作成する。これにより、分析者の希望に応じた疑似データの作成を行うことができる。
【0058】
特定部231は、秘密計算による統計的検定を行うことで分布の種類を特定する。これにより、元のデータと同じ分布に従う疑似データを提供することが可能になる。
【0059】
特定部231は、元のデータのレコードをソートしたときの所定の分位点数を代表値として用いて統計的検定を行う。これにより、検定を高速に行うことが可能になる。
【0060】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0061】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0062】
[プログラム]
一実施形態として、情報提供装置20は、パッケージソフトウェアやオンラインソフトウェアとして上記の情報提供処理を実行する情報提供プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の情報提供プログラムを情報処理装置に実行させることにより、情報処理装置を情報提供装置20として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0063】
また、情報提供装置20は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の情報提供処理に関するサービスを提供する情報提供サーバ装置として実装することもできる。例えば、情報提供サーバ装置は、元のデータの指定を入力とし、疑似データを出力とする情報提供サービスを提供するサーバ装置として実装される。
【0064】
図5は、情報提供プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0065】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0066】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、情報提供装置20の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、情報提供装置20における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0067】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0068】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0069】
1 秘密計算システム
10 サーバ群
10a、10b、10c サーバ
20 情報提供装置
21 通信部
22 記憶部
23 制御部
30 分析者端末
40 管理者端末
231 特定部
232 作成部
233 提供部