JP5836152B2 - 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム - Google Patents

秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム Download PDF

Info

Publication number
JP5836152B2
JP5836152B2 JP2012034946A JP2012034946A JP5836152B2 JP 5836152 B2 JP5836152 B2 JP 5836152B2 JP 2012034946 A JP2012034946 A JP 2012034946A JP 2012034946 A JP2012034946 A JP 2012034946A JP 5836152 B2 JP5836152 B2 JP 5836152B2
Authority
JP
Japan
Prior art keywords
data
value
random number
disturbance
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012034946A
Other languages
English (en)
Other versions
JP2013171170A (ja
JP2013171170A5 (ja
Inventor
伊藤 隆
伊藤  隆
松田 規
規 松田
充洋 服部
充洋 服部
拓海 森
拓海 森
貴人 平野
貴人 平野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012034946A priority Critical patent/JP5836152B2/ja
Publication of JP2013171170A publication Critical patent/JP2013171170A/ja
Publication of JP2013171170A5 publication Critical patent/JP2013171170A5/ja
Application granted granted Critical
Publication of JP5836152B2 publication Critical patent/JP5836152B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、例えば、データ値を秘匿して集計を行う秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法、データ撹乱プログラム、データ復元装置、データ復元方法およびデータ復元プログラムに関するものである。
クラウドコンピューティングの進展により、クラウドサーバ上で大量のデータを扱うことが容易になり、これに伴って、企業のデータをクラウドサーバ上に保管するケースが増えている。また、クラウドサーバ上に保管した顧客データやログデータなどを、クラウド事業者側で分析するサービスも提案されつつある。
一方で、このようなデータは企業機密や個人情報などのプライバシ情報を含むことが多く、これらをそのままの形でクラウド事業者に委託することはセキュリティ上の不安がある。
従来の暗号技術を用いてデータを暗号化してクラウドサーバに保管することは可能であるが、データを暗号化してしまうとクラウド事業者側でのデータ分析は難しくなる。
そこで、近年、プライバシ情報を保護してデータ分析を行うための「プライバシ保護データマイニング」が盛んに研究されている。
非特許文献1では、複数のクロス集計表の和をクラウドサーバ上で集計するシステムにおいて、集計結果の個々の要素を秘匿したまま、クラウド事業者が集計処理を実行するための方式が開示されている。また、各行・各列の和がゼロであるような行列「ゼロ和行列」を利用することで、クラウド事業者に各行・各列の合計値だけは知らせる方式についても開示されている。
この他にも、プライバシ保護データマイニングに関する方式が特許文献1〜3などで開示されている。
但し、非特許文献1にて開示されている技術はクラウド事業者に各行・各列の合計値を知らせるものであり、特定の合計値(例えば各行の合計値)のみ知らせて他の合計値をクラウド事業者に対して秘匿する方法については開示も示唆もされていない。
また、非特許文献1の方式は秘密情報のサイズが大きいため、集計表のサイズが大きい場合や秘密情報の更新が必要な場合に非効率である。
特開2008−234605号公報 特開2011−145869号公報 特開2011−248066号公報
牛田芽生恵,伊藤孝一,片山佳則,小櫻文彦,津田宏,"ゲートウェイによるクラウド間のデータ秘匿集計技術,"2011年暗号と情報セキュリティシンポジウム(SCIS2011),2011.
本発明は、例えば、データ値を集計するデータ集計装置に対して正しい集計値を秘匿できるようにすることを目的とする。
本発明の秘匿集計システムは、データ撹乱装置と、データ集計装置と、データ復元装置とを有する。
前記データ撹乱装置は、
複数のデータ値を含んだ元データを記憶する元データ記憶部と、
前記元データに含まれるデータ値の個数と同じ個数の乱数値を複数の乱数値として算出し、算出した前記複数の乱数値を含んだ乱数データを生成する乱数データ生成部と、
前記乱数データに含まれる前記複数の乱数値を用いて前記元データに含まれる前記複数のデータ値を更新することによって前記元データに含まれるデータ値の個数と同じ個数のデータ値を複数の撹乱値として算出し、算出した前記複数の撹乱値を含んだ撹乱データを生成する撹乱データ生成部とを備える。
前記データ集計装置は、
前記データ撹乱装置によって生成された前記撹乱データを記憶する撹乱データ記憶部と、
前記撹乱データに含まれる前記複数の撹乱値を集計して撹乱集計値を算出し、算出した前記撹乱集計値を含んだ撹乱集計データを生成する撹乱集計データ生成部とを備える。
前記データ復元装置は、
前記データ集計装置によって生成された前記撹乱集計データを記憶する撹乱集計データ記憶部と、
前記データ撹乱装置によって生成される前記乱数データを記憶する乱数データ記憶部と、
前記乱数データに含まれる前記複数の乱数値を集計して乱数集計値を算出し、算出した前記乱数集計値を用いて前記撹乱集計データに含まれる前記撹乱集計値を更新することにより、前記元データに含まれる前記複数のデータ値を集計した値を示すデータ集計値を算出する集計値復元部とを備える。
本発明によれば、例えば、データ値を集計するデータ集計装置に対して正しい集計値を秘匿することができる。
実施の形態1における秘匿集計システム100の構成図。 実施の形態1における端末装置401の機能構成図。 実施の形態1における情報管理装置201の機能構成図。 実施の形態1におけるデータベース管理装置301の機能構成図。 実施の形態1における秘匿集計システム100の前処理を示すフローチャート。 実施の形態1におけるログデータ491の一例を示す図。 実施の形態1における集約後のログデータ491の一例を示す図。 実施の形態1におけるログファイル491bの一例を示す図。 実施の形態1における元データ291の一例を示す図。 実施の形態1における乱数データ292の一例を示す図。 実施の形態1における撹乱データ293の一例を示す図。 実施の形態1における秘匿集計システム100のデータ値秘匿集計処理を示すフローチャート。 実施の形態1における通知条件データ399の一例を示す図。 実施の形態1における集計作業データ391aの一例を示す図。 実施の形態1における集計データ391の一例を示す図。 実施の形態1における秘匿集計システム100の集計値秘匿集計処理を示すフローチャート。 実施の形態1における集計値要求データ295の一例を示す図。 実施の形態1における集計作業データ391aの一例を示す図。 実施の形態1における集計データ391の一例を示す図。 実施の形態1における乱数集計データ292aの一例を示す図。 実施の形態1における復元集計データ294の一例を示す図。 実施の形態1における秘匿集計システム100の元データ復元処理を示すフローチャート。 実施の形態1における撹乱値要求データ296の一例を示す図。 実施の形態1における乱数作業データ292b(一様乱数)の一例を示す図。 実施の形態1における乱数データ292(ゼロ和行)の一例を示す図。 実施の形態1における乱数追加データ292cの一例を示す図。 実施の形態1におけるゼロ和行列の乱数データ292の一例を示す図。 実施の形態1におけるゼロ和行の乱数データ292の一例を示す図。 実施の形態1における時間帯毎の元データ291の一例を示す図。 実施の形態1における時間帯毎の乱数データ292の一例を示す図。 実施の形態1における時間帯毎の撹乱データ293の一例を示す図。 実施の形態1における情報管理装置201、データベース管理装置301および端末装置401のハードウェア資源の一例を示す図。 実施の形態2における秘匿集計システム100の構成図。 実施の形態2における端末装置401の機能構成図。 実施の形態2における情報管理装置201の機能構成図。 実施の形態2における秘匿集計システム100の前処理を示すフローチャート。 実施の形態2におけるログデータ491の一例を示す図。 実施の形態2における元データ291の一例を示す図。 実施の形態2における乱数データ292の一例を示す図。 実施の形態2における撹乱データ293の一例を示す図。 実施の形態3における乱数追加データ292dの一例を示す図。 実施の形態3における乱数データ292の一例を示す図。
実施の形態1.
データ値を集計するデータ集計装置に対して正しい集計値を秘匿する秘匿集計システムについて説明する。
図1は、実施の形態1における秘匿集計システム100の構成図である。
実施の形態1における秘匿集計システム100の構成について、図1に基づいて説明する。
秘匿集計システム100は、情報管理装置201と、データベース管理装置301、複数の端末装置401A−Cとを有する。
情報管理装置201、データベース管理装置301および複数の端末装置401A−Cはネットワーク101を介して通信接続する。
複数の端末装置401A−Cは、集計する元データの元になるログデータ(個別データ)を生成し、生成したログデータを情報管理装置201に送信する装置である。
例えば、端末装置401AはユーザAが使用する端末である。端末装置401Aは、ユーザAによる端末の使用内容(例えば、日時と印刷枚数)を示すログデータを生成し、生成したログデータを情報管理装置201に送信する。同様に、端末装置401B、Cは、ユーザB、Cによる端末の使用内容を示すログデータを生成し、生成したログデータを情報管理装置201に送信する。
複数の端末装置401A−Cの処理の詳細については後述する。
情報管理装置201(データ撹乱装置、データ集計装置の一例)は、複数の端末装置401A−Cから送信される複数のログデータを受信し、受信した複数のログデータをまとめて元データを生成する。元データは集計する対象のデータである。例えば、元データは、各ユーザの印刷枚数(データ値の一例)を時間帯別にまとめたデータである。
情報管理装置201は、元データに含まれる複数のデータ値を乱数を用いて撹乱して撹乱データを生成し、生成した撹乱データをデータベース管理装置301に送信する。
情報管理装置201は、データベース管理装置301から送信される撹乱データを集計した集計データを受信する。データベース管理装置301は撹乱データに含まれる撹乱されたデータ値を集計するため、集計データは正しくない集計値(撹乱集計値)を含む。
情報管理装置201は、データ値の撹乱に用いた乱数を用いて撹乱集計値から正しい集計値を算出する。
情報管理装置201の処理の詳細については後述する。
データベース管理装置301(データ集計装置の一例)は、情報管理装置201から送信される撹乱データを受信し、受信した撹乱データに含まれるデータ値を集計する。
データベース管理装置301は、集計により得られる1つまたは複数の集計値を含んだ集計データを生成し、生成した集計データを情報管理装置201に送信する。但し、撹乱データに含まれるデータ値は乱数によって撹乱されているため、少なくともいずれかの集計値は正しい値ではない。例えば、データベース管理装置301は、集計値としてユーザ別の印刷枚数の合計値と時間帯別の印刷枚数の合計値とを算出する。この場合、ユーザ別の印刷枚数の合計値と時間帯別の印刷枚数の合計値とのうち少なくともいずれかの合計値は正しい値ではない。
データベース管理装置301の処理の詳細については後述する。
図2は、実施の形態1における端末装置401の機能構成図である。
実施の形態1における端末装置401の機能構成について、図2に基づいて説明する。
図1に示した複数の端末装置401A−Cは、それぞれに図2に示す機能構成を備える。
端末装置401は、端末記憶部411と、情報生成部421と、端末通信部431とを備える。
端末記憶部411は、端末装置401で使用するデータを記憶する。
例えば、端末記憶部411は、情報生成部421によって生成されるログデータ491を記憶する。
情報生成部421は、ユーザによる端末の使用内容(例えば、日時と印刷枚数)を示すログデータ491を生成する。
情報生成部421の処理の詳細については後述する。
端末通信部431は、端末装置401の通信処理を行う。
例えば、端末通信部431は、情報生成部421によって生成されたログデータ491を情報管理装置201に送信する。
図3は、実施の形態1における情報管理装置201の機能構成図である。
実施の形態1における情報管理装置201の機能構成について、図3に基づいて説明する。
情報管理装置201(データ撹乱装置、データ復元装置の一例)は、情報管理記憶部211と、情報撹乱部221と、統計量復元部222と、情報復元部223と、情報管理通信部231と、乱数生成部232とを備える。
情報管理記憶部211(元データ記憶部、撹乱集計データ記憶部、乱数データ記憶部の一例)は、情報管理装置201で使用するデータを記憶する。
例えば、情報管理記憶部211は、以下のようなデータを記憶する。
情報管理記憶部211は、情報管理通信部231によって受信される複数のログデータ491や集計データ391を記憶する。
情報管理記憶部211は、情報撹乱部221によって生成される元データ291や撹乱データ293を記憶する。
情報管理記憶部211は、乱数生成部232によって生成される乱数データ292や乱数データ292を生成するための乱数シード299(シード値ともいう)を記憶する。乱数シード299は情報管理記憶部211に予め記憶する。
情報管理記憶部211は、統計量復元部222によって生成される復元集計データ294を記憶する。
情報管理通信部231(撹乱装置通信部、復元装置通信部の一例)は、情報管理装置201の通信処理を行う。
例えば、情報管理通信部231は、以下のような通信処理を行う。
情報管理通信部231は、複数の端末装置401A−Cから送信される複数のログデータ491を受信する。
情報管理通信部231は、情報撹乱部221によって生成される撹乱データ293をデータベース管理装置301に送信する。
情報管理通信部231は、データベース管理装置301から送信される集計データ391や撹乱データ293を受信する。
乱数生成部232(乱数データ生成部の一例)は、乱数シード299を用いて乱数データ292を生成する。
乱数生成部232の処理の詳細については後述する。
情報撹乱部221(撹乱データ生成部、元データ生成部の一例)は、情報管理通信部231によって受信される複数のログデータ491をまとめて元データ291を生成する。
情報撹乱部221は、乱数生成部232によって生成される乱数データ292を用いて元データ291を撹乱して撹乱データ293を生成する。
情報撹乱部221の処理の詳細については後述する。
統計量復元部222(集計値復元部の一例)は、情報管理通信部231によって受信される集計データ391(撹乱集計データ)を乱数データ292を用いて復元して復元集計データ294を生成する。
統計量復元部222の処理の詳細については後述する。
情報復元部223(元データ復元部の一例)は、データベース管理装置301に撹乱データ293を要求し、データベース管理装置301から取得した撹乱データ293を乱数データ292を用いて復元して元データ291を生成する。
情報復元部223の処理の詳細については後述する。
図4は、実施の形態1におけるデータベース管理装置301の機能構成図である。
実施の形態1におけるデータベース管理装置301の機能構成について、図4に基づいて説明する。
データベース管理装置301(データ集計装置の一例)は、データベース記憶部311と、データベース処理部321と、データベース通知部322と、データベース通信部331とを備える。
データベース記憶部311(撹乱データ記憶部の一例)は、データベース管理装置301で使用するデータを記憶する。
例えば、データベース記憶部311は、通知条件データ399、データベース通信部331によって受信される撹乱データ293およびデータベース処理部321によって生成される集計データ391を記憶する。
通知条件データ399は、集計データ391を生成して情報管理装置201に通知する条件を設定したデータである。通知条件データ399は、データベース記憶部311に予め記憶される。
データベース処理部321(撹乱集計データ生成部の一例)は、撹乱データ293を集計して集計値を算出する。
データベース処理部321の処理の詳細については後述する。
データベース通知部322(撹乱集計データ生成部の一例)は、情報管理装置201に通知する集計値を通知条件データ399に基づいて判定し、通知する集計値を含んだ集計データ391を生成する。
データベース通信部331(集計装置通信部の一例)は、データベース管理装置301の通信処理を行う。
例えば、データベース通信部331は、以下のような通信処理を行う。
データベース通信部331は、情報管理装置201から送信される撹乱データ293を受信する。
データベース通信部331は、データベース通知部322によって生成される集計データ391を情報管理装置201に送信する。
図5は、実施の形態1における秘匿集計システム100の前処理を示すフローチャートである。
実施の形態1における秘匿集計システム100の前処理について、図5に基づいて説明する。
S101において、各端末装置401A−Cの情報生成部421はログデータ491を生成し、端末通信部431はログデータ491を情報管理装置201に送信する。
図6は、実施の形態1におけるログデータ491の一例を示す図である。
実施の形態1におけるログデータ491について、図6に基づいて説明する。
ログデータ491は、集計対象のデータ値を示すデータ項目「印刷枚数」と、集計範囲を選択するためのデータ項目「年月日」「時刻」「ユーザ名」とを含む。
以下、集計対象のデータ値を示すデータ項目「印刷枚数」を「集計項目」といい、集計範囲を選択するためのデータ項目「年月日」「時刻」「ユーザ名」を「集計範囲項目」という。
図6のログデータ491に含まれるログレコード491aは、2012年2月1日の8時30分にユーザ名「sato」で識別されるユーザが印刷を1枚したことを示している。
各端末装置401A−Cの端末通信部431は、ログレコード491aが生成される度に、1つのログレコード491aを含んだログデータ491を情報管理装置201に送信する。
但し、各端末装置401A−Cの端末通信部431は、所定のタイミング(例えば、定期的)で1つまたは複数のログレコード491aを含んだログデータ491を情報管理装置201に送信してもよい。
また、端末通信部431は、ログレコード491aを秘匿するために、集計範囲項目「年月日」「時刻」「ユーザ名」に基づいて集計項目「印刷枚数」を集約したデータ(図7参照)をログデータ491として情報管理装置201に送信してもよい。
図7は、実施の形態1における集約後のログデータ491の一例を示す図である。
例えば、情報生成部421は時間帯毎に集計項目「印刷枚数」のデータ値を集約(合計)して図7に示すようなログデータ491を生成し、端末通信部431は図7に示すような集約後のログデータ491を情報管理装置201に送信してもよい。
図5に戻り、秘匿集計システム100の前処理の説明を続ける。
S101の後、S102に進む。
S102において、情報管理装置201の情報管理通信部231は、S101で各端末装置401A−Cから送信されたログデータ491を受信し、受信したログデータ491を情報管理記憶部211に記憶する。
例えば、情報管理通信部231は、複数のログデータ491をログファイル491bとして記憶する(図8参照)。
図8は、実施の形態1におけるログファイル491bの一例を示す図である。
S102の後、S110に進む。
S110において、情報管理装置201の情報撹乱部221は、情報管理記憶部211から複数のログデータ491(図6のログファイル491b)を取得し、取得した複数のログデータ491を集約して元データ291を生成する。
図9は、実施の形態1における元データ291の一例を示す図である。
実施の形態1における元データ291について、図9に基づいて説明する。
元データ291は、ログデータ491(図6参照)に含まれる集計範囲「年月日」「ユーザ名」「時間帯」の組み合わせ毎に集計項目(印刷枚数)のデータ値を集約(合計)したデータである。言い換えると、元データ291は、データ値の属性の種類「年月日」「ユーザ名」「時間帯」の組み合わせ毎に属性値(年月日、ユーザ名、時間帯)を示すデータである。但し、データ値の属性の種類は「年月日」「ユーザ名」「時間帯」に限らない。
図9の元データ291は、ユーザ名「sato」で識別されるユーザによる0時から4時までの印刷枚数と4時から8時までの印刷枚数が0枚であることを示している。また、8時から12時までの印刷枚数が7枚であり、12時から16時までの印刷枚数が10枚であり、16時から20時までの印刷枚数が1枚であり、20時から24時までの印刷枚数が12枚であることを示している。
図5に戻り、秘匿集計システム100の前処理の説明を続ける。
S110の後、S120に進む。
S120において、情報管理装置201の乱数生成部232は、S110で生成された元データ291に含まれるデータ値毎に乱数値を算出し、データ値毎に算出した乱数値を設定して乱数データ292を生成する。例えば、乱数生成部232は、図10に示すような乱数データ292を生成する。
図10は、実施の形態1における乱数データ292の一例を示す図である。
図10の乱数データ292は、ユーザ名と時間帯との組み合わせ毎に乱数値を示している。各乱数値は、ユーザ名と時間帯との組み合わせが同じであるデータ値に対応付けられる。例えば、ユーザ名「sato」と時間帯「0〜4時」との組み合わせの乱数値「31」は、図9に示した元データ291のユーザ名「sato」と時間帯「0〜4時」との組み合わせのデータ値「0」に対応付けられている。
ユーザ名別に各時間帯の乱数値を合計した値は「0」である。つまり、乱数データ292の各行は乱数値の合計がゼロになるゼロ和行である。例えば、ユーザ名「sato」の各時間帯の乱数値の合計は「0(=31+(−37)+3+(−38)+6+35)」である。
一方、時間帯別に各ユーザ名の乱数値を合計した値は「0」でない。つまり、乱数データ292の各列は乱数値の合計がゼロになるゼロ和列ではない。例えば、時間帯「0〜4時」の各ユーザ名の乱数値の合計は「58(=31+29+(−22)+16+4)」である。
乱数データ292の生成方法については別途説明する。
図5に戻り、秘匿集計システム100の前処理の説明を続ける。
S120の後、S130に進む。
S130において、情報管理装置201の情報撹乱部221は、S110で生成した元データ291とS120で生成された乱数データ292とを用いて撹乱データ293を生成する。
撹乱データ293を生成した後、情報撹乱部221は元データ291および乱数データ292を情報管理記憶部211から削除しても構わない。
このとき、情報撹乱部221は、以下のように撹乱データ293を生成する。
情報撹乱部221は、元データ291に含まれるデータ値毎に乱数データ292に含まれる乱数値のうち対応付けられた乱数値を加算した値を算出する。以下、データ値に乱数値を加算した値を「撹乱値」という。
情報撹乱部221は、データ値毎に算出した撹乱値を設定して撹乱データ293を生成する。
例えば、情報撹乱部221は、図11に示すような撹乱データ293を生成する。
図11は、実施の形態1における撹乱データ293の一例を示す図である。
図11の撹乱データ293は、ユーザ名と時間帯との組み合わせ毎に撹乱値を示している。各撹乱値は、ユーザ名と時間帯との組み合わせが同じであるデータ値と乱数値とを合計した値である。
例えば、ユーザ名「sato」と時間帯「0〜4時」との組み合わせの撹乱値「31」は、ユーザ名「sato」と時間帯「0〜4時」との組み合わせのデータ値「0」(図9参照)と乱数値「31」(図10参照)とを合計した値である。ユーザ名と時間帯とを組み合わせた別の組み合わせについても同様である。
撹乱データ293はゼロ和行の乱数データ292を元データ291に加算したものであるため、撹乱データ293の行毎に撹乱値を合計して得られる集計値(ユーザ別の印刷枚数)は、元データ291の行毎にデータ値を合計して得られる集計値に等しい。
つまり、撹乱データ293の行毎に撹乱値を合計して得られる集計値は正しい値である。
例えば、図11の撹乱データ293のユーザ名「sato」の印刷枚数「30(=31+(−37)+10+(−28)+7+47)」と、図9の元データ291のユーザ名「sato」の印刷枚数「30(=0+0+7+10+1+12)」は等しい。
但し、撹乱データ293はゼロ和列でない乱数データ292を元データ291に加算したものであるため、撹乱データ293の列毎に撹乱値を合計して得られる集計値(時間帯別の印刷枚数)は、元データ291の列毎にデータ値を合計して得られる集計値と異なる。
つまり、撹乱データ293の列毎に撹乱値を合計して得られる集計値は本当の集計値とは異なる値である。
例えば、図11の撹乱データ293の時間帯「0〜4時」の印刷枚数「63(=31+29+(−22)+21+4)」と、図9の元データ291の時間帯「0〜4時」の印刷枚数「5(=0+0+0+5+0)」は異なる。
図5に戻り、秘匿集計システム100の前処理の説明を続ける。
S130の後、S140に進む。
S140において、情報管理装置201の情報管理通信部231は、S130で生成された撹乱データ293をデータベース管理装置301に送信する。
S140の後、S141に進む。
S141において、データベース管理装置301のデータベース通信部331は、S140で情報管理装置201から送信された撹乱データ293を受信し、受信した撹乱データ293をデータベース記憶部311に記憶する。
S141により、秘匿集計システム100の前処理は終了する。
上記した秘匿集計システム100の前処理により、行毎の合計値(集計値)が正しくて列毎の合計値が正しくない撹乱データ293(図11参照)が、データベース管理装置301のデータベース記憶部311に記憶される。
図12は、実施の形態1における秘匿集計システム100のデータ値秘匿集計処理を示すフローチャートである。
実施の形態1における秘匿集計システム100のデータ値秘匿集計処理について、図12に基づいて説明する。
データ値秘匿集計処理とは、データベース管理装置301が元データ291のデータ値とは異なる値(撹乱値)を示す撹乱データ293を用いて正しい集計値を算出し、情報管理装置201(または他のコンピュータ(情報処理装置))がデータベース管理装置301から正しい集計値を取得する処理である。
正しい集計値とは、元データ291のデータ値を集計して得られる値に等しい集計値である。
秘匿集計システム100は、図12に示すデータ値秘匿集計処理を定期的に実行する。
S210において、データベース管理装置301のデータベース処理部321は、データベース記憶部311に予め記憶された通知条件データ399を参照し、算出する集計値の種類を選択する。
データベース処理部321は、データベース記憶部311から撹乱データ293を取得し、選択した集計値の種類について撹乱データ293を集計し、選択した種類の集計値を算出する。
データベース処理部321は、算出した集計値を設定して集計作業データ391aを生成する。
例えば、データベース処理部321は、図13に示すような通知条件データ399に基づいて集計値の種類を選択し、図14に示すような集計作業データ391aを生成する。
図13は、実施の形態1における通知条件データ399の一例を示す図である。
図13の通知条件データ399は、「通知内容」「通知時期」「通知条件」「通知先」を含んでいる。
「通知内容」は、通知する集計値の内容(種類)を示している。
「通知時期」は、集計値を算出するタイミングを示している。
「通知条件」は、集計値を通知する条件を示している。
「通知先」は、集計値を通知するために用いるアドレス(例えば、メールアドレスやIPアドレス)を示している。
例えば、データベース処理部321は、通知条件データ399の項番(1)のレコードを参照し、毎日、ユーザ別の一日あたりの印刷枚数を算出する。
図14は、実施の形態1における集計作業データ391aの一例を示す図である。
図14の集計作業データ391aは、「ユーザ別の一日あたりの印刷枚数」について図11の撹乱データ293を集計した場合に生成される。図14の集計作業データ391aは、図11の撹乱データ293にユーザ別の「集計値」の項目を設けたものである。
通知条件データ399の「通知内容」には、正しい値が得られる集計値の種類(撹乱データ293の行毎の集計値(ユーザ別の印刷枚数))を設定する(図13参照)。
このため、集計作業データ391aが示す集計値は正しい値である。つまり、集計作業データ391aが示す集計値(図14参照)は、元データ291が示すデータ値(図9参照)を合計して得られる集計値に等しい。
例えば、図14の集計作業データ391aが示すユーザ名「sato」の印刷枚数の集計値「30」と、図9の元データ291が示すユーザ名「sato」の各時間帯の印刷枚数を合計して得られる集計値「30(=0+0+7+10+1+12)」は等しい。
図12に戻り、S210の説明を続ける。
S210の後、S220に進む。
S220において、データベース管理装置301のデータベース通知部322は、通知条件データ399に基づいて、S210で生成された集計作業データ391aに含まれる集計値のうち通知条件を満たす集計値を判定する。
例えば、データベース通知部322は、通知条件データ399(図13参照)の項番(1)の通知内容について生成された集計作業データ391a(図14参照)に含まれる集計値のうち、通知条件データ399の項番(1)の通知条件「100以上」を満たす集計値を判定する。この場合、通知条件「100以上」を満たす集計値はユーザ名「watanabe」の集計値「110」である。
通知条件を満たす集計値がある場合(YES)、S230に進む。
通知条件を満たす集計値がない場合(NO)、データ値秘匿集計処理は終了する。
S230において、データベース管理装置301のデータベース通知部322は、S220で判定した通知条件を満たす集計作業データ391aの集計値を設定して集計データ391を生成する。集計データ391に設定した集計値は、正しい集計値を示す集計作業データ391aから抽出した正しい集計値である。
例えば、データベース通知部322は、図15に示すような集計データ391を生成する。
図15は、実施の形態1における集計データ391の一例を示す図である。図15の集計データ391は「通知内容」「ユーザ名」「集計値」を含んでいる。
S230の後、S231に進む。
S231において、データベース管理装置301のデータベース通信部331は、S230で生成された集計データ391を情報管理装置201(または他のコンピュータ(情報処理装置))に送信する。このとき、データベース通信部331は、通知条件データ399の「通知先」(図13参照)に設定されているアドレスを送信先アドレスとして用いる。
S231の後、S232に進む。
S232において、情報管理装置201の情報管理通信部231(または他のコンピュータ)は、S231でデータベース管理装置301から送信された集計データ391を受信し、受信した集計データ391を出力装置(ディスプレイやプリンタなど)に出力する。
出力される集計値は正しい集計値である。つまり、集計データ391に設定された集計値は、元データ291が示すデータ値を集計して得られる集計値に等しい。
S232により、データ値秘匿集計処理は終了する。
図12のデータ値秘匿集計処理では、データベース管理装置301が通知条件データ399を設けて通知条件を満たす集計値を情報管理装置201(または他のコンピュータ)に通知している。
但し、情報管理装置201(または他のコンピュータ)が集計値の種類を指定してデータベース管理装置301に集計値を要求してもよい。
図16は、実施の形態1における秘匿集計システム100の集計値秘匿集計処理を示すフローチャートである。
実施の形態1における秘匿集計システム100の集計値秘匿集計処理について、図16に基づいて説明する。
集計値秘匿集計処理とは、データベース管理装置301が元データ291のデータ値とは異なる値(撹乱値)を示す撹乱データ293を用いて正しくない集計値を算出し、情報管理装置201がデータベース管理装置301によって算出された正しくない集計値を正しい集計値に復元する処理である。
正しくない集計値とは、元データ291のデータ値を集計して得られる値と異なる集計値である。
S301において、情報管理装置201の統計量復元部222は、集計値の種類を設定して集計値要求データ295を生成する。集計値要求データ295に設定する集計値の種類は、情報管理記憶部211に予め記憶してもよいし、情報管理装置201に対して利用者が指定してもよい。
集計値要求データ295に設定する集計値の種類は、データベース管理装置301が正しい値を得られない集計値の種類(撹乱データ293の列毎の集計値(時間帯別の印刷枚数))である。但し、データベース管理装置301が正しい値を得られない集計値の種類を集計値要求データ295に設定しても構わない。
例えば、統計量復元部222は、図17に示すような集計値要求データ295を生成する。
図17は、実施の形態1における集計値要求データ295の一例を示す図である。
図17の集計値要求データ295は、「通知内容(集計値の種類)」と「通知先(アドレス)」とを含んでいる。
図16に戻り、集計値秘匿集計処理の説明を続ける。
S301の後、S302に進む。
S302において、情報管理装置201の情報管理通信部231は、S310で生成された集計値要求データ295をデータベース管理装置301に送信する。
S302の後、S303に進む。
S303において、データベース管理装置301のデータベース通信部331は、S302で情報管理装置201から送信された集計値要求データ295を受信する。
S303の後、S310に進む。
S310において、データベース管理装置301のデータベース処理部321は、データベース記憶部311から撹乱データ293を取得する。
データベース処理部321は、S303で受信された集計値要求データ295に設定されている集計値の種類について撹乱データ293を集計して集計値を算出し、算出した集計値を設定して集計作業データ391aを生成する。但し、データベース処理部321が算出する集計値は正しい値ではない。
データベース処理部321は、生成した集計作業データ391aに含まれる集計値を設定して集計データ391を生成する。
例えば、データベース処理部321は、図18に示すような集計作業データ391aを生成し、図19に示すような集計データ391を生成する。
図18は、実施の形態1における集計作業データ391aの一例を示す図である。
図19は、実施の形態1における集計データ391の一例を示す図である。
図18の集計作業データ391aおよび図19の集計データ391は、「時間帯別の印刷枚数」について図11の撹乱データ293を集計した場合に生成される。図18の集計作業データ391aは、図11の撹乱データ293に時間帯別の「集計値」の項目を設けたものである。
集計作業データ391aおよび集計データ391が示す集計値は正しい値ではない。つまり、集計作業データ391aおよび集計データ391が示す集計値は、元データ291が示すデータ値(図9参照)を合計して得られる集計値と異なる。
例えば、図18の集計作業データ391aおよび図19の集計データ391が示す時間帯「0〜4時」の印刷枚数の集計値「63」と、図9の元データ291が示す時間帯「0〜4時」の各ユーザの印刷枚数を合計して得られる集計値「5(=0+0+0+5+0)」は異なる。
図16に戻り、集計値秘匿集計処理の説明を続ける。
S310の後、S320に進む。
S320において、データベース管理装置301のデータベース通信部331は、S310で生成された集計データ391を情報管理装置201に送信する。このとき、データベース通信部331は、S303で受信した集計値要求データ295の「通知先」(図17参照)に設定されているアドレスを送信先アドレスとして用いる。
S320の後、S321に進む。
S321において、情報管理装置201の情報管理通信部231は、S320で送信された集計データ391を受信する。
S321の後、S330に進む。
S330において、情報管理装置201の乱数生成部232は、前処理(図5のS120)と同じ乱数データ292(図10参照)を生成する。但し、前処理(図5のS130)で乱数データ292を削除しない場合、S330の処理は不要である。
乱数データ292の生成方法については別途説明する。
S330の後、S340に進む。
S340において、情報管理装置201の統計量復元部222は、S301で集計値要求データ295に設定した集計値の種類について、S330(または前処理)で生成された乱数データ292を集計して乱数集計データ292aを生成する。
例えば、統計量復元部222は、図20に示すような乱数集計データ292aを生成する。
図20は、実施の形態1における乱数集計データ292aの一例を示す図である。
図20の乱数集計データ292aは、「時間帯別の印刷枚数」の乱数値について図10の乱数データ292を集計した場合に生成される。図20の乱数集計データ292aは、図10の乱数データ292に時間帯別の「集計値」の項目を設けたものである。
図16に戻り、集計値秘匿集計処理の説明を続ける。
S340の後、S350に進む。
S350において、情報管理装置201の統計量復元部222は、S321で受信された集計データ391が示す集計値からS340で生成された乱数集計データ292aが示す集計値を減算し、正しい集計値を示す復元集計データ294を生成する。
例えば、統計量復元部222は、図21に示すような復元集計データ294を生成する。
図21は、実施の形態1における復元集計データ294の一例を示す図である。
図21の復元集計データ294は、図19の集計データ391が示す集計値から図20の乱数集計データ292aが示す集計値を減算した値を示す。図21の復元集計データ294が示す集計値は正しい集計値である。
例えば、図21の復元集計データ294が示す時間帯「0〜4時」の集計値「5」は、図9の元データ291の時間帯「0〜4時」の集計値「5(=0+0+0+5+0)」に等しい。
図16に戻り、集計値秘匿集計処理の説明を続ける。
統計量復元部222は、生成した復元集計データ294(図21参照)を出力装置に出力する。
S350により、集計値秘匿集計処理は終了する。
図16の集計値秘匿集計処理では、情報管理装置201が集計値の種類を指定してデータベース管理装置301に集計値を要求している。
但し、データベース管理装置301が記憶する通知条件データ399(図13参照)にデータベース管理装置301が正しい値を得られない集計値の種類について通知条件を設定してもよい。通知条件を満たす場合、データベース管理装置301は集計値を情報管理装置201に通知する。
図22は、実施の形態1における秘匿集計システム100の元データ復元処理を示すフローチャートである。
実施の形態1における秘匿集計システム100の元データ復元処理について、図22に基づいて説明する。
元データ復元処理とは、情報管理装置201がデータベース管理装置301から撹乱データ293を取得し、取得した撹乱データ293から元データ291を復元する処理である。
前処理(図5のS130)で元データ291を削除しない場合、元データ復元処理は不要である。
S401において、情報管理装置201の情報復元部223は、要求する撹乱データ293を指定して撹乱値要求データ296を生成する。
例えば、情報復元部223は、図23に示すような撹乱値要求データ296を生成する。
図23は、実施の形態1における撹乱値要求データ296の一例を示す図である。
図23の撹乱値要求データ296は、「通知内容(撹乱データ293の識別情報)」と「通知先(アドレス)」とを含んでいる。
図22に戻り、元データ復元処理の説明を続ける。
S401の後、S402に進む。
S402において、情報管理装置201の情報管理通信部231は、S401で生成された撹乱値要求データ296をデータベース管理装置301に送信する。
S402の後、S403に進む。
S403において、データベース管理装置301のデータベース通信部331は、S402で情報管理装置201から送信された撹乱値要求データ296を受信する。
S403の後、S410に進む。
S410において、データベース管理装置301のデータベース処理部321は、S403で受信された撹乱値要求データ296が要求する撹乱データ293をデータベース記憶部311から取得する。
S410の後、S411に進む。
S411において、データベース管理装置301のデータベース通信部331は、S410で取得された撹乱データ293を情報管理装置201に送信する。
S411の後、S412に進む。
S412において、情報管理装置201の情報管理通信部231は、S411でデータベース管理装置301から送信された撹乱データ293を受信する。
S412の後、S420に進む。
S420において、情報管理装置201の乱数生成部232は、前処理(図5のS120)と同じ乱数データ292(図10参照)を生成する。但し、前処理(図5のS130)で乱数データ292を削除しない場合、S420の処理は不要である。
乱数データ292の生成方法については別途説明する。
S420の後、S430に進む。
S430において、情報管理装置201の情報復元部223は、S412で受信された撹乱データ293とS420(または前処理)で生成された乱数データ292とを用いて元データ291を生成し、生成した元データ291を出力装置に出力する。
例えば、情報復元部223は、図11の撹乱データ293が示す撹乱値から図10の乱数データ292が示す乱数値を減算して図9の元データ291が示すデータ値を算出する。
例えば、情報復元部223は、図11の撹乱データ293が示すユーザ名「tanaka」の時間帯「0〜4時」の撹乱値「21」から図10の乱数データ292が示すユーザ名「tanaka」の時間帯「0〜4時」の乱数値「16」を減算する。これにより、図9の元データ291が示すユーザ名「tanaka」の時間帯「0〜4時」の印刷枚数「5(=21−16)」が算出される。
S430により、元データ復元処理は終了する。
次に、情報管理装置201の乱数生成部232による乱数データ292の生成方法について、図24、図25、図26および図10に基づいて説明する。
図24は、実施の形態1における乱数作業データ292b(一様乱数)の一例を示す図である。
図25は、実施の形態1における乱数データ292(ゼロ和行)の一例を示す図である。
図26は、実施の形態1における乱数追加データ292cの一例を示す図である。
前処理(図3のS120)、集計値秘匿集計処理(図16のS330)および元データ復元処理(図22のS420)において、情報管理装置201の乱数データ292は、以下の手順(1)から(3)によって乱数データ292を生成する。
(1)乱数生成部232は、情報管理記憶部211から乱数シード299を取得する。
(2)乱数生成部232は、元データ291(図9参照)に含まれるデータ値毎に、乱数シード299とデータ値の属性(識別情報)とを入力にして所定のランダム関数を実行する。これにより、元データ291に含まれるデータ値毎に乱数値(一様乱数)が算出される。但し、乱数値は一様乱数以外の乱数(例えば、正規乱数)であっても構わない。
乱数生成部232は、元データ291に含まれるデータ値毎に算出した乱数値(一様乱数)を設定して乱数作業データ292bを生成する。
このランダム関数は、乱数シード299とデータ値の属性との組み合わせによって異なる乱数値(一様乱数)を算出するためのプログラムである。このランダム関数に同じ乱数シード299と同じデータ値の属性とを入力した場合、いつも同じ乱数値が算出される。これを「確定的な乱数値の生成」という。
データ値の属性はデータ値を識別する情報である。例えば、図9の元データ291のデータ値の属性は「年月日」「時間帯」「ユーザ名」である。「時間帯」の代わりに列番号を使用し、「ユーザ名」の代わりに行番号を使用してもよい。
図9の元データ291に対する乱数作業データ292bを図24に示す。
(3)乱数生成部232は、乱数作業データ292bの行毎に乱数値の和が「0」になるように乱数作業データ292bの各乱数値を調整する。これにより、乱数データ292が生成される。
例えば、乱数生成部232は、以下の(a)(b)または(c)のようにして乱数データ292を生成する。
(a)乱数生成部232は、乱数作業データ292bの行毎に乱数値の平均値を算出し、算出した平均値を各乱数値から減算する。平均値の端数は行内のいずれかの乱数値に対して加算または減算すればよい。
図24の乱数作業データ292bから生成される乱数データ292を図25に示す。図25の乱数データ292の行毎の乱数値の和は「0」である。例えば、ユーザ名「sato」の各時間帯の乱数値の和は「0(=23+(−20)+(−17)+(−17)+13+18)」である。
(b)乱数生成部232は、乱数作業データ292bの行毎に乱数値の和を算出し、算出した乱数値の和を行内の少なくともいずれかの乱数値から減算する。
例えば、図24の乱数作業データ292bに対して、ユーザ名「sato」の各時間帯の乱数値の和「157(=49+6+9+9+39+45)」をユーザ名「sato」の時間帯「20〜24時」の乱数値「45」から減算する。この場合、ユーザ名「sato」の時間帯「20〜24時」の乱数値は「−112(=45−157)」になり、ユーザ名「sato」の各時間帯の乱数値の和は「0(=49+6+9+9+39+(−112))」になる。
また、乱数値の和「157」を複数の値「78」「79」に分けて複数の値「78」「79」を複数の乱数値「(時間帯:16〜20時)39」「(時間帯:20〜24時)45」から減算してもよい。この場合、時間帯「16〜20時」の乱数値は「−39(=39−78)」になり、時間帯「20〜24時」の乱数値は「−34(=45−79)」になる。また、各時間帯の乱数値の和は「0(=49+6+9+9+(−39)+(−34))」になる。
(c)乱数生成部232は、適当に第一の乱数列(r,r,…,r)を生成し、第一の乱数列の要素をランダムに並べ替えて第二の乱数列(s,s,…,s)を生成し、第一の乱数列と第二の乱数列との各要素の差を算出してゼロ和の数列(t,t,…,t)(ここで、t=r−s、iは1からnの整数)を生成する。
上記手順(3)で生成される乱数データ292の各乱数値は一様分布に近い分布となるため、この乱数データ292によって元データ291の各データ値を保護することができる。
但し、乱数値の分布の平均がゼロであるため、時間帯毎の乱数値の和の分布がゼロをピークにした正規分布に近い分布になる。特に、データの行数(ユーザ数)が多くなると時間帯毎の平均値がゼロに収束する。この場合、データベース管理装置301によって時間帯毎の集計値が推測されてしまう可能性がある。
乱数生成部232は、上記手順(3)で生成した乱数データ292を以下の手順(4)(5)で更新することによって、上記の懸念を解消することができる。
(4)乱数生成部232は、乱数値の和が「0」である一つのゼロ和行の乱数追加データ292cを生成する。ゼロ和行の生成方法は上記手順(1)から(3)と同様である。
例えば、乱数生成部232は、図26に示すような乱数追加データ292cを生成する。
(5)乱数生成部232は、上記手順(3)で生成した乱数データ292の行毎に乱数追加データ292cのゼロ和行を加算(または行毎に減算)する。
例えば、乱数生成部232は、図25の乱数データ292の行毎に図26の乱数追加データ292cのゼロ和行を加算する。これにより、図10の乱数データ292が生成される。例えば、図10の乱数データ292の「sato」「0〜4時」の乱数値「31」は、図25の乱数データ292の「sato」「0〜4時」の乱数値「23」に図26の乱数追加データ292cの「0〜4時」の乱数値「8」を加算した値である。
図27は、実施の形態1におけるゼロ和行列の乱数データ292の一例を示す図である。
図28は、実施の形態1におけるゼロ和行の乱数データ292の一例を示す図である。
乱数生成部232は、上記手順(3)でゼロ和行・非ゼロ和列の乱数データ292を生成する代わりに、ゼロ和行・ゼロ和列(ゼロ和行列)の乱数データ292(図27参照)を生成してもよい。ゼロ和行列は、上記手順(3)で生成されたゼロ和行・非ゼロ和列の乱数データ292の各列に対し、上記手順(3)の(a)と同様の処理を行うことで生成できる。乱数生成部232は、生成したゼロ和行列の乱数データ292を上記手順(4)(5)と同じ手順で更新してゼロ和行・非ゼロ和列の乱数データ292(図28参照)を生成する。
これにより、集計値秘匿集計処理(図16参照)のS340における乱数集計データ292aの生成が容易になる。このとき、統計量復元部222は、乱数追加データ292c(図26参照)の各時間帯の乱数値に乱数データ292の行数を乗算することにより、乱数データ292の各時間帯の乱数値の和(集計値)を算出することができる。例えば、図28の乱数データ292の時間帯「0〜4時」の乱数値の和「40(=28+26+(−26)+12+0)」は、図26の乱数追加データ292cの時間帯「0〜4時」の乱数値「8」に図28の乱数データ292の行数「5」を乗算した値「40(=8×5)」に等しい。
次に、秘匿集計システム100の応用例について説明する。
<応用例1>
上記の説明では、秘匿集計システム100は、データベース管理装置301に対して「ユーザ毎の印刷枚数」を開示し、「時間帯毎の印刷枚数」を秘匿する。つまり、データベース管理装置301は、「ユーザ毎の印刷枚数」を正しく算出するが、「時間帯毎の印刷枚数」を正しく算出しない。
但し、秘匿集計システム100は、「ユーザ毎の印刷枚数」以外の情報を開示し、「時間帯毎の印刷枚数」以外の情報を秘匿することもできる。
例えば、秘匿集計システム100は、「一日の印刷枚数」を開示し、「ユーザ毎の印刷枚数」「時間帯毎の印刷枚数」を秘匿することができる。
この場合、情報管理装置201の乱数生成部232は、以下の手順(1)から(3)によって乱数データ292を生成する。
(1)乱数生成部232は、元データ291と同じサイズで総和がゼロである乱数データ292を生成する(図27参照)。総和がゼロである乱数データ292は元データ291のデータ値(印刷枚数)を秘匿するためのデータである。
(2)乱数生成部232は、ゼロ和行の乱数追加データ292cを生成し、(1)の乱数データ292の各行に乱数追加データ292cのゼロ和行を加算(または減算)して(1)の乱数データ292を更新する(図28参照)。(1)の乱数データ292を更新した後の(2)の乱数データ292は、元データ291の各列のデータ値の合計・平均をさらに秘匿するためのデータである。
(3)乱数生成部232は、ゼロ和列の乱数追加データ292cを生成し、(2)の乱数データ292の各列に乱数追加データ292cのゼロ和列を加算(または減算)して(2)の乱数データ292を更新する(処理方法は(2)と同様)。(2)の乱数データ292を更新した後の(3)の乱数データ292は、元データ291の各行のデータ値の合計・平均をさらに秘匿するためのデータである。情報撹乱部221は(3)の乱数データ292を用いて撹乱データ293を生成する。
(1)総和がゼロである乱数データ292に対して(2)ゼロ和行および(3)ゼロ和列を加算(または減算)しているため、(2)(3)によって更新された乱数データ292の乱数値の和はゼロである。
つまり、乱数データ292は、開示する集計値(一日の印刷枚数)に関する乱数値の和(乱数値の総和)がゼロであり、秘匿する集計値(ユーザ毎の印刷枚数、時間帯毎の印刷枚数)に関する乱数値の和(行毎の乱数値の和、列毎の乱数値の和)がゼロでない。
<応用例2>
上記の説明では、秘匿集計システム100は、2次元(ユーザ名、時間帯)の表形式の元データ291について秘匿集計を行う。
但し、秘匿集計システム100は、3次元以上(ユーザ名、時間帯、曜日など)の表形式の元データ291について秘匿集計を行うこともできる。N次元の元データ291は、N種類の属性の組み合わせ毎にデータ値を示すデータである。
例えば、秘匿集計システム100は、「ユーザ毎または曜日毎の印刷枚数」を開示し、「時間帯毎の印刷枚数」を秘匿することができる。
この場合、情報管理装置201の乱数生成部232は、以下の手順(1)から(4)によって乱数データ292を生成する。
(1)乱数生成部232は、元データ291と同じサイズで乱数データ292を生成する。つまり、乱数生成部232は、ユーザ名と時間帯と曜日との組み合わせ毎に乱数値を算出して乱数データ292を生成する。但し、乱数データ292のユーザ名と曜日との組み合わせ毎の乱数値の和はゼロである。乱数データ292は元データ291のデータ値(印刷枚数)を秘匿するためのデータである。
(2)乱数生成部232は、曜日と時間帯との組み合わせ毎に乱数値を算出して第一の乱数追加データ292cを生成する。但し、第一の乱数追加データ292cの曜日毎の乱数値の和はゼロである。乱数生成部232は、(1)の乱数データ292に対して曜日と時間帯との組み合わせ毎に第一の乱数追加データ292cの乱数値を加算(または減算)することにより、(1)の乱数データ292を更新する。(1)の乱数データ292を更新した後の(2)の乱数データ292は、元データ291の各曜日の時間帯毎のデータ値の合計・平均をさらに秘匿するためのデータである。
(3)乱数生成部232は、ユーザ名と時間帯との組み合わせ毎に乱数値を算出して第二の乱数追加データ292cを生成する。但し、第二の乱数追加データ292cのユーザ毎の乱数値の和はゼロである。乱数生成部232は、(2)の乱数データ292に対してユーザ名と時間帯との組み合わせ毎に第二の乱数追加データ292cの乱数値を加算(または減算)することにより、(2)の乱数データ292を更新する。(2)の乱数データ292を更新した後の(3)の乱数データ292は、元データ291の各ユーザの時間帯毎のデータ値の合計・平均をさらに秘匿するためのデータである。情報撹乱部221は、(3)の乱数データ292を用いて撹乱データ293を生成しても構わない。但し、元データ291の時間帯毎のデータ値の合計・平均が統計的に推測されてしまう可能性がある。
(4)乱数生成部232は、時間帯毎に乱数値を算出して第三の乱数追加データ292cを生成する。但し、第三の乱数追加データ292cの乱数値の和はゼロである。乱数生成部232は、(3)の乱数データ292に対して曜日とユーザ名との組み合わせ毎に第三の乱数追加データ292cの乱数値を加算(または減算)することにより、(3)の乱数データ292を更新する。(3)の乱数データ292を更新した後の(4)の乱数データ292は、元データ291の時間帯毎のデータ値の合計・平均をさらに秘匿するためのデータである。情報撹乱部221は(4)の乱数データ292を用いて撹乱データ293を生成する。
つまり、乱数データ292は、開示する集計値(ユーザ毎または曜日毎の印刷枚数)に関する乱数値の和(ユーザ名または曜日毎の乱数値の和)がゼロであり、秘匿する集計値(時間帯毎の印刷枚数)に関する乱数値の和(時間帯毎の乱数値の和)がゼロでない。
次に、秘匿集計システム100の補足説明を行う。
秘匿集計システム100の前処理(図5参照)のS130において、情報撹乱部221は元データ291のデータ値に乱数データ292の乱数値を加算して撹乱データ293を生成した。
但し、情報撹乱部221は、元データ291のデータ値から乱数データ292の乱数値を減算して撹乱データ293を生成しても構わない。
この場合、集計値秘匿集計処理(図16参照)のS350において、統計量復元部222は集計データ391の集計値に乱数集計データ292aの集計値を加算して復元集計データ294を生成する。また、元データ復元処理(図22参照)のS430において、情報復元部223は撹乱データ293の撹乱値に乱数データ292の乱数値を加算して元データ291を生成する。
秘匿集計システム100の前処理(図5参照)のS120(および集計値秘匿集計処理(図16参照)のS330、元データ復元処理(図22参照)のS420)において、乱数生成部232はゼロ和行・非ゼロ和列の乱数データ292(図10)を生成した。
但し、乱数生成部232は非ゼロ和行・ゼロ和列の乱数データ292を生成しても構わない。
この場合、撹乱データ293の列毎の集計値(時間帯毎の印刷枚数)は正しい値であるが、撹乱データ293の行毎の集計値(ユーザ毎の印刷枚数)は正しい値ではない。
データベース管理装置301は、合計値以外の統計量(例えば、平均値)を集計値として算出してもよい。
情報管理装置201を複数の装置で構成しても構わない。例えば、情報管理装置201をデータ撹乱装置とデータ復元装置とに分けて構成しても構わない。この場合、データ撹乱装置は、前処理(図5参照)で撹乱データ293を生成する。また、データ復元装置は、集計値秘匿集計処理(図16参照)で復元集計データ294を生成し、元データ復元処理(図22参照)で元データ291を復元する。
秘匿集計システム100の前処理(図5参照)において、情報管理装置201は、一日分の元データ291、乱数データ292および撹乱データ293を生成した。
但し、情報管理装置201は、時間帯毎に元データ291(図29参照)、乱数データ292(図30参照)および撹乱データ293(図31参照)を生成してもよい。このとき、乱数シード299とデータ値の属性(年月日、ユーザ名、時間帯)とを用いて確定的に乱数値を算出することにより、乱数シード299を時間帯毎に生成することができる。
図29は、実施の形態1における時間帯毎の元データ291の一例を示す図である。
図30は、実施の形態1における時間帯毎の乱数データ292の一例を示す図である。
図31は、実施の形態1における時間帯毎の撹乱データ293の一例を示す図である。
情報管理装置201と端末装置401との通信および情報管理装置201とデータベース管理装置301との通信において、認証処理やアクセス制御などを実施してもよい。
情報管理装置201とデータベース管理装置301との通信において、ユーザ名などの情報(例えば各データの項目名)を暗号化してもよい。例えば、同じ平文を同じ暗号文に暗号化する確定的暗号を用いる。これにより、データベース管理装置301に対してユーザ名などの情報を秘匿することができる。情報管理装置201は、必要に応じて、データベース管理装置301から受信したデータに含まれる情報を復号してユーザ名などの情報を得る。
データベース管理装置301は、撹乱データ293を暗号化してデータベース記憶部311に記憶しても構わない。撹乱データ293を使用する際、データベース管理装置301は暗号化した撹乱データ293をデータベース記憶部311から読み出し、読み出した撹乱データ293を復号する。例えば、データベース管理装置301は、確定的暗号や確率的暗号などの暗号化方式を用いて撹乱データ293を暗復号する。
次に、秘匿集計システム100のハードウェアについて補足する。
図32は、実施の形態1における情報管理装置201、データベース管理装置301および端末装置401のハードウェア資源の一例を示す図である。
図32において、情報管理装置201、データベース管理装置301および端末装置401(それぞれコンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905(通信装置)、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、秘匿集計プログラム、データ撹乱プログラム、データ集計プログラム、データ復元プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1において、例えば、以下のような秘匿集計システム100について説明した。
秘匿集計システム100は、プライバシ情報を含むデータ(元データ291)をクラウド事業者(データベース管理装置301)などに外部委託して集計を行うシステムとして利用することができる。
秘匿集計システム100は、秘匿したい統計量(時間帯毎の印刷枚数)をクラウド事業者に対して確実に秘匿しつつ、クラウド事業者に集計処理を行わせる。
情報管理装置201は、単一の秘密情報として乱数シード299を用いて乱数データ292を確定的に生成する。このため、秘密情報のサイズが小さい。情報管理装置201は、乱数データ292を用いて撹乱データ293を生成し、元データ291の集計値や元データ291を復元する。
実施の形態2.
端末装置401が撹乱データ293を生成する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
図33は、実施の形態2における秘匿集計システム100の構成図である。
実施の形態2における秘匿集計システム100の構成について、図33に基づいて説明する。
秘匿集計システム100は、実施の形態1(図1参照)と同様に、情報管理装置201とデータベース管理装置301と複数の端末装置401A−Cとを備える。
但し、各端末装置401A−Cは、情報管理装置201の代わりに、撹乱データ293を生成するデータ撹乱装置として動作する。
図34は、実施の形態2における端末装置401の機能構成図である。
実施の形態2における端末装置401の機能構成について、図34に基づいて説明する。
端末装置401(データ撹乱装置の一例)は、実施の形態1の構成(図2参照)に加えて、情報撹乱部422(元データ生成部、撹乱データ生成部の一例)と乱数生成部432(乱数データ生成部の一例)とを備える。
端末装置401は、情報撹乱部422と乱数生成部432とを備えることにより、元データ291、乱数データ292および撹乱データ293を生成する。
情報撹乱部422および乱数生成部432は、実施の形態1における情報管理装置201の情報撹乱部221および乱数生成部232と同様の構成である。元データ291、乱数データ292および撹乱データ293の生成方法は、実施の形態1における情報管理装置201による生成方法と同様である。
端末通信部431(撹乱装置通信部の一例)は、情報撹乱部422によって生成される撹乱データ293をデータベース管理装置301に送信する。
図35は、実施の形態2における情報管理装置201の機能構成図である。
実施の形態2における情報管理装置201の機能構成について、図35に基づいて説明する。
端末装置401(データ復元装置の一例)は、実施の形態1の構成(図3)から情報撹乱部221を除いた構成である。
データベース管理装置301の機能構成は、実施の形態1(図4参照)と同様である。
図36は、実施の形態2における秘匿集計システム100の前処理を示すフローチャートである。実施の形態2における秘匿集計システム100の前処理について、図36に基づいて説明する。
S101B、S110BからS141Bはそれぞれ、実施の形態1で説明したS101、S110からS141と同様の処理である。但し、各端末装置401A−Cが撹乱データ293を生成し、生成した撹乱データ293をデータベース管理装置301に送信する。
S101Bにおいて、各端末装置401A−Cの情報生成部421はログデータ491を生成する。
図37は、実施の形態2におけるログデータ491の一例を示す図である。
S101Bの後、S110Bに進む。
S110Bにおいて、各端末装置401A−Cの情報撹乱部422はログデータ491を集約して元データ291を生成する。
図38は、実施の形態2における元データ291の一例を示す図である。
S110Bの後、S120Bに進む。
S120Bにおいて、各端末装置401A−Cの乱数生成部432は乱数データ292を生成する(図10参照)。
但し、他のユーザについての乱数値が不要である場合、乱数生成部432は、一部のユーザについての乱数値を含んだ乱数データ292を生成しても構わない。これにより、乱数データ292の生成に要する処理時間を短縮することができる。
図39は、実施の形態2における乱数データ292の一例を示す図である。
S120Bの後、S130Bに進む。
S130Bにおいて、各端末装置401A−Cの情報撹乱部422は元データ291と乱数データ292とを用いて撹乱データ293を生成する。
図40は、実施の形態2における撹乱データ293の一例を示す図である。
S130Bの後、S140Bに進む。
S140Bにおいて、各端末装置401A−Cの端末通信部431は撹乱データ293をデータベース管理装置301に送信する。
S140Bの後、S141Bに進む。
S141Bにおいて、データベース管理装置301のデータベース通信部331は各端末装置401A−Cから送信された撹乱データ293を受信し、受信した撹乱データ293をまとめてデータベース記憶部311に記憶する(図11参照)。
S141Bにより、秘匿集計システム100の前処理は終了する。
データ値秘匿集計処理(図12参照)、集計値秘匿集計処理(図16参照)および元データ復元処理(図22参照)は、実施の形態1と同様である。
以下に、秘匿集計システム100の補足説明を行う。
秘匿集計システム100は、実施の形態1と同様の効果を奏することができる。
秘匿集計システム100は、情報管理装置201に元データ291が記憶されないため、情報管理装置201から元データ291が漏えいしてしまうことを防ぐことができる。
情報管理装置201が撹乱データ293から元データ291を復元することを防ぐため、情報管理装置201から情報復元部223を削除してもよい。また、各端末装置401A−Cが統計量復元部222および情報復元部223を備えてもよい。
以下の手順(1)から(5)により、端末装置401が復元集計データ294および元データ291を生成し、情報管理装置201が復元集計データ294を生成できても元データ291を生成できないようにすることができる。
(1)各端末装置401A−Cは、データ値撹乱用の乱数シード299a(秘密情報)と集計値撹乱用の乱数シード299b(秘密情報)とを記憶する。情報管理装置201は、各端末装置401A−Cと同じ集計値撹乱用の乱数シード299bを記憶する。但し、情報管理装置201は、データ値撹乱用の乱数シード299aを記憶しない。
(2)各端末装置401A−Cの乱数生成部432は、データ値撹乱用の乱数シード299aを用いてゼロ和行列の乱数データ292を生成する。
(3)各端末装置401A−Cの乱数生成部432は、集計値撹乱用の乱数シード299bを用いて乱数追加データ292c(例えば、ゼロ和行の乱数追加データ292c)を生成する。各端末装置401A−Cの乱数生成部432は、ゼロ和行列の乱数データ292の乱数値に乱数追加データ292cの乱数値を加算(または減算)して乱数データ292を更新する。
(4)各端末装置401A−Cの情報撹乱部422は、元データ291のデータ値に乱数データ292のデータ値を加算して撹乱データ293を生成する。
(5)情報管理装置201の乱数生成部232は、集計値撹乱用の乱数シード299bを用いて(3)と同じ乱数追加データ292cを生成し、生成した乱数追加データ292cの乱数値を集計して乱数集計データ292aを生成する。情報管理装置201の統計量復元部222は集計データ391の集計値に乱数集計データ292aの集計値を減算(または加算)して復元集計データ294を生成する。情報管理装置201の乱数生成部232はデータ値撹乱用の乱数シード299aが無いため(2)と同じ乱数データ292を生成できず、情報管理装置201は撹乱データ293から元データ291を復元することができない。
上記のように各装置に与える秘密情報を選択することで、各装置でのデータの復元の度合いを制御することができる。
実施の形態3.
秘匿集計システム100の応用例について説明する。
以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。
実施の形態1において、データベース管理装置301に対して「ユーザ毎の印刷枚数」を開示し、「時間帯毎の印刷枚数」を秘匿する例について説明した。
但し、データベース管理装置301に対して、さらに、「午前・午後の総印刷枚数(もしくは午前・午後の傾向)」を秘匿することもできる。
この場合、情報管理装置201の乱数生成部232は、以下の手順(1)から(7)により、乱数データ292を生成する。
図41は、実施の形態3における乱数追加データ292dの一例を示す図である。
図42は、実施の形態3における乱数データ292の一例を示す図である。
乱数生成部232は、実施の形態1で説明した手順(1)から(5)により、乱数データ292(図10参照)を生成する。
(6)乱数生成部232は、午前の時間帯用の乱数値と、午後の時間帯用の乱数値との和が「0」であるゼロ和行の乱数追加データ292d(図41参照)を生成する。
(7)乱数生成部232は、乱数データ292の午前の時間帯の各乱数値に乱数追加データ292dの午前の時間帯用の乱数値を加算(または減算)し、乱数データ292の午後の時間帯の各乱数値に乱数追加データ292dの午後の時間帯用の乱数値を加算(または減算)して乱数データ292を更新する(図42参照)。
この乱数データ292を使用することにより、午前の印刷枚数および午後の印刷枚数(および傾向)の秘匿性を保証することができる。
100 秘匿集計システム、101 ネットワーク、201 情報管理装置、211 情報管理記憶部、221 情報撹乱部、222 統計量復元部、223 情報復元部、231 情報管理通信部、232 乱数生成部、291 元データ、292 乱数データ、292a 乱数集計データ、292b 乱数作業データ、292c,292d 乱数追加データ、293 撹乱データ、294 復元集計データ、295 集計値要求データ、296 撹乱値要求データ、299 乱数シード、301 データベース管理装置、311 データベース記憶部、321 データベース処理部、322 データベース通知部、331 データベース通信部、391 集計データ、391a 集計作業データ、399 通知条件データ、401 端末装置、411 端末記憶部、421 情報生成部、422 情報撹乱部、431 端末通信部、432 乱数生成部、491 ログデータ、491a ログレコード、491b ログファイル、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、911 ディスプレイ、912 キーボード、913 マウス、914 ドライブ、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (10)

  1. データ撹乱装置と、データ集計装置と、データ復元装置とを有する秘匿集計システムであって、
    前記データ撹乱装置は、
    複数のデータ値を含んだ元データを記憶する元データ記憶部と、
    前記元データに含まれるデータ値の個数と同じ個数の乱数値を複数の乱数値として算出し、算出した前記複数の乱数値を含んだ乱数データを生成する乱数データ生成部と、
    前記乱数データに含まれる前記複数の乱数値を用いて前記元データに含まれる前記複数のデータ値を更新することによって前記元データに含まれるデータ値の個数と同じ個数のデータ値を複数の撹乱値として算出し、算出した前記複数の撹乱値を含んだ撹乱データを生成する撹乱データ生成部とを備え、
    前記データ集計装置は、
    前記データ撹乱装置によって生成された前記撹乱データを記憶する撹乱データ記憶部と、
    前記撹乱データに含まれる前記複数の撹乱値を集計して撹乱集計値を算出し、算出した前記撹乱集計値を含んだ撹乱集計データを生成する撹乱集計データ生成部とを備え、
    前記データ復元装置は、
    前記データ集計装置によって生成された前記撹乱集計データを記憶する撹乱集計データ記憶部と、
    前記データ撹乱装置によって生成される前記乱数データを記憶する乱数データ記憶部と、
    前記乱数データに含まれる前記複数の乱数値を集計して乱数集計値を算出し、算出した前記乱数集計値を用いて前記撹乱集計データに含まれる前記撹乱集計値を更新することにより、前記元データに含まれる前記複数のデータ値を集計した値を示すデータ集計値を算出する集計値復元部とを備え
    前記元データ記憶部は、データ値の属性を示す第一の属性値と第二の属性値との組み合わせ毎のデータ値を含んだデータを前記元データとして記憶し、
    前記乱数データ生成部は、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を生成し、前記第一の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロになり、前記第二の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロにならないように、前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を調整し、
    前記第二の属性値毎の乱数値を生成し、前記第二の属性値毎の乱数値の合計がゼロになるように前記第二の属性値毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算することによって、前記複数の乱数値算出する
    ことを特徴とする秘匿集計システム。
  2. 前記乱数データ生成部は、
    複数の第二の属性値を分割する複数の属性値グループの属性値グループ毎の乱数値を生成し、属性値グループ毎の乱数値の合計がゼロになるように属性値グループ毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算した後、前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、属性値グループ毎の調整後の乱数値のうち当該第二の属性値が含まれる属性値グループの調整後の乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とする請求項1に記載の秘匿集計システム。
  3. データ撹乱装置に備わる元データ記憶部が、複数のデータ値を含んだ元データを記憶し、
    前記データ撹乱装置に備わる乱数データ生成部が、前記元データに含まれるデータ値の個数と同じ個数の乱数値を複数の乱数値として算出し、算出した前記複数の乱数値を含んだ乱数データを生成し、
    前記データ撹乱装置に備わる撹乱データ生成部が、前記乱数データに含まれる前記複数の乱数値を用いて前記元データに含まれる前記複数のデータ値を更新することによって前記元データに含まれるデータ値の個数と同じ個数のデータ値を複数の撹乱値として算出し、算出した前記複数の撹乱値を含んだ撹乱データを生成し、
    データ集計装置に備わる撹乱データ記憶部が、前記データ撹乱装置によって生成された前記撹乱データを記憶し、
    前記データ集計装置に備わる撹乱集計データ生成部が、前記撹乱データに含まれる前記複数の撹乱値を集計して撹乱集計値を算出し、算出した前記撹乱集計値を含んだ撹乱集計データを生成し、
    データ復元装置に備わる撹乱集計データ記憶部が、前記データ集計装置によって生成された前記撹乱集計データを記憶し、
    前記データ復元装置に備わる乱数データ記憶部が、前記データ撹乱装置によって生成される前記乱数データを記憶し、
    前記データ復元装置に備わる集計値復元部が、前記乱数データに含まれる前記複数の乱数値を集計して乱数集計値を算出し、算出した前記乱数集計値を用いて前記撹乱集計データに含まれる前記撹乱集計値を更新することにより、前記元データに含まれる前記複数のデータ値を合計した値を示すデータ集計値を算出する秘匿集計方法であって、
    前記元データは、データ値の属性を示す第一の属性値と第二の属性値との組み合わせ毎のデータ値を含んだデータであり、
    前記乱数データ生成部は、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を生成し、前記第一の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロになり、前記第二の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロにならないように、前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を調整し、
    前記第二の属性値毎の乱数値を生成し、前記第二の属性値毎の乱数値の合計がゼロになるように前記第二の属性値毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とする秘匿集計方法。
  4. 前記乱数データ生成部は、
    複数の第二の属性値を分割する複数の属性値グループの属性値グループ毎の乱数値を生成し、属性値グループ毎の乱数値の合計がゼロになるように属性値グループ毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算した後、前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、属性値グループ毎の調整後の乱数値のうち当該第二の属性値が含まれる属性値グループの調整後の乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とする請求項3に記載の秘匿集計方法。
  5. 請求項3または請求項4記載の秘匿集計方法をコンピュータに実行させるための秘匿集計プログラム。
  6. 複数のデータ値を含んだ元データを記憶する元データ記憶部と、
    前記元データに含まれるデータ値の個数と同じ個数の乱数値を複数の乱数値として算出し、算出した前記複数の乱数値を含んだ乱数データを生成する乱数データ生成部と、
    前記乱数データに含まれる前記複数の乱数値を用いて前記元データに含まれる前記複数のデータ値を更新することによって前記元データに含まれるデータ値の個数と同じ個数のデータ値を複数の撹乱値として算出し、算出した前記複数の撹乱値を含んだ撹乱データを生成する撹乱データ生成部とを備え、
    前記元データ記憶部は、データ値の属性を示す第一の属性値と第二の属性値との組み合わせ毎のデータ値を含んだデータを前記元データとして記憶し、
    前記乱数データ生成部は、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を生成し、前記第一の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロになり、前記第二の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロにならないように、前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を調整し、
    前記第二の属性値毎の乱数値を生成し、前記第二の属性値毎の乱数値の合計がゼロになるように前記第二の属性値毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とするデータ撹乱装置。
  7. 前記乱数データ生成部は、
    複数の第二の属性値を分割する複数の属性値グループの属性値グループ毎の乱数値を生成し、属性値グループ毎の乱数値の合計がゼロになるように属性値グループ毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算した後、前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、属性値グループ毎の調整後の乱数値のうち当該第二の属性値が含まれる属性値グループの調整後の乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とする請求項6に記載のデータ撹乱装置。
  8. 数データ生成部が、複数のデータ値を含んだ元データに含まれるデータ値の個数と同じ個数の乱数値を複数の乱数値として算出し、算出した前記複数の乱数値を含んだ乱数データを生成し、
    乱データ生成部が、前記乱数データに含まれる前記複数の乱数値を用いて前記元データに含まれる前記複数のデータ値を更新することによって前記元データに含まれるデータ値の個数と同じ個数のデータ値を複数の撹乱値として算出し、算出した前記複数の撹乱値を含んだ撹乱データを生成するデータ撹乱方法であって、
    前記元データは、データ値の属性を示す第一の属性値と第二の属性値との組み合わせ毎のデータ値を含んだデータであり、
    前記乱数データ生成部は、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を生成し、前記第一の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロになり、前記第二の属性値が同じである複数の組み合わせのそれぞれの乱数値の合計がゼロにならないように、前記第一の属性値と前記第二の属性値との組み合わせ毎の乱数値を調整し、
    前記第二の属性値毎の乱数値を生成し、前記第二の属性値毎の乱数値の合計がゼロになるように前記第二の属性値毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とするデータ撹乱方法。
  9. 前記乱数データ生成部は、
    複数の第二の属性値を分割する複数の属性値グループの属性値グループ毎の乱数値を生成し、属性値グループ毎の乱数値の合計がゼロになるように属性値グループ毎の乱数値を調整し、
    前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、前記第二の属性値毎の調整後の乱数値のうち前記第二の属性値が一致する乱数値を加算または減算した後、前記第一の属性値と前記第二の属性値との組み合わせ毎の調整後の乱数値に、属性値グループ毎の調整後の乱数値のうち当該第二の属性値が含まれる属性値グループの調整後の乱数値を加算または減算することによって、前記複数の乱数値を算出する
    ことを特徴とする請求項8に記載のデータ撹乱方法。
  10. 請求項8または請求項9記載のデータ撹乱方法をコンピュータに実行させるためのデータ撹乱プログラム。
JP2012034946A 2012-02-21 2012-02-21 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム Expired - Fee Related JP5836152B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012034946A JP5836152B2 (ja) 2012-02-21 2012-02-21 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012034946A JP5836152B2 (ja) 2012-02-21 2012-02-21 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム

Publications (3)

Publication Number Publication Date
JP2013171170A JP2013171170A (ja) 2013-09-02
JP2013171170A5 JP2013171170A5 (ja) 2014-12-25
JP5836152B2 true JP5836152B2 (ja) 2015-12-24

Family

ID=49265127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012034946A Expired - Fee Related JP5836152B2 (ja) 2012-02-21 2012-02-21 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム

Country Status (1)

Country Link
JP (1) JP5836152B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6098087B2 (ja) * 2012-09-21 2017-03-22 富士通株式会社 解析方法、解析装置および解析プログラム
JP6313944B2 (ja) * 2013-09-30 2018-04-18 富士通クラウドテクノロジーズ株式会社 匿名化システム、匿名化方法及び匿名化プログラム
JP6501989B2 (ja) * 2016-12-19 2019-04-17 三菱電機株式会社 秘匿化装置、データ分析装置、秘匿化方法、データ分析方法、秘匿化プログラム及びデータ分析プログラム

Also Published As

Publication number Publication date
JP2013171170A (ja) 2013-09-02

Similar Documents

Publication Publication Date Title
US9373004B2 (en) Methods and systems for deleting requested information
US8464075B2 (en) System and method for policy-driven file segmentation and inter-cloud file storage and retrieval
US7822206B2 (en) Systems and methods for management and auto-generation of encryption keys
US10237060B2 (en) Media agnostic, distributed, and defendable data retention
US20180254901A1 (en) Method and system for secure delegated access to encrypted data in big data computing clusters
WO2012132943A1 (ja) 秘密分散システム、装置及び記憶媒体
US20110276490A1 (en) Security service level agreements with publicly verifiable proofs of compliance
US11082220B1 (en) Securing recovery data distributed amongst multiple cloud-based storage services
US9064122B2 (en) Job processing system, job processing method, and non-transitory computer-readable medium
EP4131046A1 (en) Data processing method, apparatus and system, device, and medium
JP2008004018A (ja) 個人情報・秘密情報管理システムおよび個人情報・秘密情報管理方法
US11475121B2 (en) Confidential information processing system and confidential information processing method
JP2023008395A (ja) マルチパーティ型準同型暗号によるセキュアでロバストな連合学習システム及び連合学習方法
CN111950022A (zh) 一种基于结构化数据的脱敏方法、装置与系统
JP5836152B2 (ja) 秘匿集計システム、秘匿集計方法、秘匿集計プログラム、データ撹乱装置、データ撹乱方法およびデータ撹乱プログラム
CN110650191A (zh) 一种分布式存储系统的数据读写方法
WO2018208786A1 (en) Method and system for secure delegated access to encrypted data in big data computing clusters
JP5492241B2 (ja) 秘匿計算システム、集計装置及び集計結果復号プログラム
US12032714B2 (en) Distributed governance for sharing of big data
US20130061059A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
KR20140055093A (ko) 분산 데이터 저장, 복원 시스템 및 방법
EP4028923A1 (en) Method and system for securely sharing a digital file
JP2009087160A (ja) ログ集計システム、暗号化ログ生成装置及びプログラム
CN106471510A (zh) 复合文档访问
Khan et al. Secure distributed big data storage using cloud computing

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151102

R150 Certificate of patent or registration of utility model

Ref document number: 5836152

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees