(57)【要約】【課題】  統計データなどを計算する際に、各データから個人が特定されないようにするとともに、計算量の増大を抑制する。【解決手段】  データ判定部103は、所定の計算に使用するデータの属性から当該データの秘匿化の必要性を判定して、データを秘匿化不要データ、秘匿化必須データ、秘匿化保留データに分類する。データ判定部103は、さらに、秘匿化保留データを秘匿化が必要なデータと秘匿化が不要なデータに分類する。分類に基づき所定の計算が実行される。【選択図】  図1
2014211607.tif 000002
【特許請求の範囲】
【請求項１】
所定の計算に使用するデータの属性から当該データの秘匿化の必要性を判定して、前記データを秘匿化不要データ、秘匿化必須データ、秘匿化保留データに分類する第一の判定手段と、
前記秘匿化保留データに分類されたデータを秘匿化が必要なデータと秘匿化が不要なデータに分類する分類手段と、
前記分類に基づき前記所定の計算を実行する計算手段とを有する情報処理装置。
【請求項２】
前記計算手段は、データを秘匿化する秘匿化手段と、
非秘匿化データを用いる計算を行う第一の計算手段と、
前記秘匿化不要データに分類されたデータおよび前記秘匿化保留データに含まれる秘匿化が不要なデータを前記第一の計算手段に送信し、前記秘匿化必須データに分類されたデータおよび前記秘匿化保留データに含まれる秘匿化が必要なデータを前記秘匿化手段に送信する識別手段とを有する請求項1に記載された情報処理装置。
【請求項３】
前記計算手段は、秘匿化データを用いる計算を行う第二の計算手段を有し、
前記第一の計算手段は、前記秘匿化保留データに含まれる秘匿化が不要なデータを用いた計算結果を前記秘匿化手段に送信し、
前記秘匿化手段は、前記秘匿化必須データに分類されたデータの秘匿化データ、前記秘匿化保留データに含まれる秘匿化が必要なデータの秘匿化データ、前記第一の計算手段から受信した計算結果の秘匿化データを前記第二の計算手段に送信する請求項2に記載された情報処理装置。
【請求項４】
前記計算手段は、非秘匿化データを用いる計算を行う第一の計算手段と、
前記所定の計算の演算単位における演算対象のデータに前記秘匿化必須データまたは秘匿化が必要な前記秘匿化保留データが含まれるか否かを識別する識別手段とを有し、
前記識別手段は、前記演算対象のデータに秘匿化が必要なデータが含まれないと判定した場合、前記演算対象のデータを前記第一の計算手段に送信し、前記第一の計算手段から前記演算単位の演算結果を受信する請求項1に記載された情報処理装置。
【請求項５】
前記計算手段は、データを秘匿化する秘匿化手段と、
秘匿化データを用いる計算を行う第二の計算手段とを有し、
前記識別手段は、前記演算対象のデータに秘匿化が必要なデータが含まれると判定した場合、前記所定の計算に使用するデータ、または、前記第一の計算手段から受信した演算結果および前記所定の計算に使用するデータのうち以降の演算に使用するデータを前記秘匿化手段に送信し、
前記秘匿化手段は、前記識別手段から受信したデータの秘匿化データを前記第二の計算手段に送信する請求項4に記載された情報処理装置。
【請求項６】
さらに、前記第二の計算手段から受信した前記秘匿化データの計算結果から前記所定の計算の結果を復元する復元手段を有する請求項3から請求項5の何れか一項に記載された情報処理装置。
【請求項７】
前記計算手段は、非秘匿化データを用いる計算を行う第一の計算手段と、
前記所定の計算の演算単位における演算にデータの秘匿化が不要か否かの第一の判定、および、前記演算単位における演算対象のデータに前記秘匿化必須データまたは秘匿化が必要な前記秘匿化保留データが含まれるか否かの第二の判定を行う識別手段とを有し、
前記識別手段は、前記演算単位における演算にデータの秘匿化が不要、かつ、前記演算対象のデータに秘匿化が必要なデータが含まれないと判定した場合、前記演算対象のデータを前記第一の計算手段に送信し、前記第一の計算手段から前記演算単位の演算結果を受信する請求項1に記載された情報処理装置。
【請求項８】
前記計算手段は、データを秘匿化する秘匿化手段と、
秘匿化データを用いる計算を行う第二の計算手段と、
前記第二の計算手段から受信した秘匿化データの計算結果から非秘匿化データの計算結果を復元する復元手段とを有し、
前記識別手段は、前記演算単位における演算にデータの秘匿化が必要、または、前記演算対象のデータに秘匿化が必要なデータが含まれると判定した場合、前記第一の計算手段から受信した演算結果を含む前記演算対象のデータを前記秘匿化手段に送信し、
前記秘匿化手段は前記演算対象のデータを秘匿化し、前記第二の計算手段は前記演算対象の秘匿化データに前記演算単位の演算を行い、前記復元手段は前記秘匿化データの演算結果から復元した非秘匿化データの演算結果を前記識別手段に送信する請求項7に記載された情報処理装置。
【請求項９】
前記秘匿化が必要な演算は、その演算結果から演算に使用されたデータを特定可能な演算である請求項8に記載された情報処理装置。
【請求項１０】
前記分類手段は、前記所定の計算に使用するデータの総数またはデータの値に基づき前記分類を行う請求項1から請求項9の何れか一項に記載された情報処理装置。
【請求項１１】
前記分類手段は、前記データの総数が第一の所定数未満の場合、前記秘匿化保留データに分類されたデータが一組になるまで、前記秘匿化保留データに分類されたデータを前記秘匿化必須データに再分類する請求項10に記載された情報処理装置。
【請求項１２】
前記分類手段は、前記属性のデータの標準偏差を前記秘匿化が必要なデータか否かの判定値とする請求項10または請求項11に記載された情報処理装置。
【請求項１３】
前記分類手段は、前記判定値を保有しない場合、前記秘匿化保留データに分類されたデータから前記判定値を算出する請求項12に記載された情報処理装置。
【請求項１４】
前記分類手段は、前記データの総数が第二の所定数未満の場合、前記秘匿化保留データに分類されたデータを前記秘匿化必須データに再分類する請求項13に記載された情報処理装置。
【請求項１５】
前記秘匿化手段は、データと乱数から前記データを分割した複数の秘匿化データを生成する請求項2、請求項3、請求項5、請求項6、請求項8から請求項14の何れか一項に記載された情報処理装置。
【請求項１６】
前記秘匿化手段は、準同型暗号を用いてデータを秘匿化する請求項2、請求項3、請求項5、請求項6、請求項8から請求項14の何れか一項に記載された情報処理装置。
【請求項１７】
前記秘匿化手段は、データに施す計算の回数がN回の場合、N+1組の公開鍵pkと秘密鍵skを生成し、N+1番目の秘密鍵skN+1を除く秘密鍵skxを公開鍵pkx+1で暗号化した暗号化秘密鍵、前記データを公開鍵pk1で暗号化した秘匿化データ、公開鍵pk2からpkN+1を前記第二の計算手段に送信し、前記秘密鍵skN+1を前記復元手段に送信する請求項16に記載された情報処理装置。
【請求項１８】
判定手段が、所定の計算に使用するデータの属性から当該データの秘匿化の必要性を判定して、前記データを秘匿化不要データ、秘匿化必須データ、秘匿化保留データに分類し、
分類手段が、前記秘匿化保留データを秘匿化が必要なデータと秘匿化が不要なデータに分類し、
計算手段が、前記分類に基づき前記所定の計算を実行する情報処理方法。
【請求項１９】
コンピュータを請求項1から請求項17の何れか一項に記載された情報処理装置の各手段として機能させるためのプログラム。
【請求項２０】
請求項19に記載されたプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿計算に関する。
【背景技術】
【０００２】
医療用の統計データ（例：平均値）を作成する際、各データから個人が特定されないように精度よく計算するには、秘匿計算が有効である。秘匿計算とは、第三者がデータを読めないように秘匿化してから計算する方法であり、秘匿化したまま加算または乗算などの計算が行える特徴をもつ（例えば、特許文献1）。
【０００３】
秘匿計算においては、秘匿化前の元のデータ同士を用いる計算よりも処理量が増大する。つまり、計算するデータ数が増大し、計算量が増大する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-176193号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、統計データなどを計算する際に、各データから個人が特定されないようにするとともに、計算量の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００７】
本発明にかかる情報処理は、所定の計算に使用するデータの属性から当該データの秘匿化の必要性を判定して、前記データを秘匿化不要データ、秘匿化必須データ、秘匿化保留データに分類し、前記秘匿化保留データを秘匿化が必要なデータと秘匿化が不要なデータに分類し、前記分類に基づき前記所定の計算を実行する。
【発明の効果】
【０００８】
本発明によれば、統計データなどを計算する際に、各データから個人が特定されないようにするとともに、計算量の増大を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例のデータ分類システムの構成例を示すブロック図。
【図２】データ分類システムによるデータ分類処理を説明するフローチャート。
【図３】入力データの一例を示す図。
【図４】データ分類処理に用いる分類表の一例を示す図。
【図５】DBに格納されるデータの一例を示す図。
【図６】秘匿化保留データの分類処理を説明するフローチャート。
【図７】秘匿化保留データの分類処理を説明するフローチャート。
【図８】実施例2の統計データ計算システムを示すブロック図。
【図９】分類されたデータを用いる統計データの計算処理を説明するフローチャート。
【図１０】分類されたデータを用いる統計データの計算処理を説明するフローチャート。
【図１１】実施例4の統計データ計算システムを示すブロック図。
【図１２】暗号化データの計算方法を説明する図。
【図１３】実施例3の統計データ計算システムを示すブロック図。
【図１４】実施例3における統計データの計算処理を説明するフローチャート。
【図１５】演算情報の一例を示す図。
【図１６】実施例5の統計データ計算システムを示すブロック図。
【図１７】実施例5における統計データの計算処理を説明するフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。なお、以下では、医療用の統計データの情報処理に本発明を適用する例を説明するが、統計データを作成する際に個人の特定が問題になる教育、労働、犯罪などの分野の情報処理にも本発明を適用することができる。
【実施例１】
【００１１】
［概要］
実施例1においては、データ総数とデータの値を参照してデータから個人が特定されるか否かを判定し、データを分類する。個人が特定されないデータ（以下、特定不可データ）として分類されたデータはそのまま扱えばよい。一方、個人が特定されるデータ（以下、特定可データ）として分類されたデータは秘匿化する必要がある。そして、統計データを算出する際は、データごとに処理を切り替えることで個人の特定を防ぐ。
【００１２】
［データ分類システム］
図1のブロック図により実施例のデータ分類システムの構成例を示す。データ分類システムは、入力部102、データ判定部103、データベース(DB)104を有するサーバ101として構成される。
【００１３】
サーバ101は、例えばCPU、RAMなどのメモリ、ハードディスクドライブ(HDD)などの記録媒体を有するコンピュータ装置である。サーバ101のCPUがRAMをワークメモリとしてHDDに格納されたプログラムを実行することで、データ分類システムとして機能する。
【００１４】
入力部102は、例えばキーボードやマウスなどで構成される。ユーザは、入力部102によって例えば名前や身長などの個人データを入力する。また、入力部102は、ネットワークインタフェイスやUSBインタフェイスを備え、ユーザは、ネットワークやUSBメモリを介して個人データを入力してもよい。
【００１５】
以降の説明においては、「名前」や「身長」などのデータの属性を示す名称を総称して「属性」と呼ぶ。また、同じの属性をもつデータのまとまりをデータ群と呼び、処理を簡略化するために、各データ群のデータ総数mは同数とする。
【００１６】
データ判定部103は、データの種類や値などを参照してデータを分類し、DB104に格納する。詳細は後述するが、所定の計算に使用するデータの属性から当該データの秘匿化の必要性を判定して、例えば属性が「名前」のデータは個人を特定可能であり「秘匿化必須データ」に分類される。
【００１７】
●データ分類処理
図2のフローチャートによりデータ分類システムによるデータ分類処理を説明する。
【００１８】
入力部102は、計算対象のデータを入力する(S401)。データは、例えば属性「名前」の『○川×男』や属性「性別」の『男性』などである。データ判定部103は、分類表に基づき、入力されたデータを秘匿化不要データ、秘匿化必須データ、または、秘匿化保留データに分類する(S402)。
【００１９】
図3により入力データの一例を示す。識別番号(ID)によって識別される各レコードには属性「名前」「身長」「体重」「性別」などのデータが記録される。
【００２０】
図4によりデータ分類処理に用いる分類表の一例を示す。「秘匿化不要データ」は、そのデータだけでは個人の特定が困難なデータ群であり、例えば属性「性別」「健康診断日」などのデータ群である。「秘匿化必須データ」は、そのデータのみで個人が特定されるデータ群であり、例えば属性「名前」「ヒトゲノムデータ」「住所」などのデータ群である。「秘匿化保留データ」は、そのデータからは一概に個人が特定されるか否かが分からないデータ群であり、例えば属性「身長」「体重」「収縮期血圧」「拡張期血圧」「血糖値」などのデータ群である。
【００２１】
次に、データ判定部103は、秘匿化保留データの分類処理、つまり秘匿化保留データのデータ群を秘匿化必須データまたは秘匿化不要データに分類する処理を行う(S403)。詳細は後述するが、データ判定部103は、秘匿化保留データのデータ数やデータの値を参照して秘匿化の要・不要を判定する。次に、データ判定部103は、データ分類処理後のデータ群をDB104に格納する(S404)。
【００２２】
図5によりDB104に格納されるデータの一例を示す。データには、付加情報として、属性およびデータ種別が付加される。図5の例はデータ「155」に対して属性「身長」およびデータ分類結果のデータ種別「秘匿化保留データ、正常値」が付加された例を示す。
【００２３】
●秘匿化保留データの分類処理
図6、図7のフローチャートにより秘匿化保留データの分類処理を説明する。
【００２４】
データ判定部103は、秘匿化保留データのデータ群を入力し(S411)、データ総数mに基づき個人が特定されるか否かを判定する(S412)。つまり、データ総数mが所定数以上あれば属性の組み合わせ（例えば身長と体重）によって個人が特定される可能性が低くなり、反対に、データ総数mが所定数未満だと属性の組み合わせから個人が特定される可能性が高い点を考慮した第一の判定を行う。
【００２５】
次に、データ判定部103は、データの値から個人が特定される否かを判定する(S414-S423)。つまり、属性の値が平均値に近い場合、その属性から個人が特定される可能性は低いが、反対に、属性の値が平均値と大幅に異なる場合（例えば身長が203cm）、その属性から個人が特定される可能性が高い点を考慮した第二の判定を行う。
【００２６】
以下、秘匿化保留データの分類処理の各ステップを詳細に説明する。
【００２７】
データ判定部103は、秘匿化保留データのデータ群を入力し(S411)、データ総数mが第一の所定数未満か否かを判定する(S412)。なお、第一の所定数N1は例えば2000である。m＜N1の場合、データ判定部103は、入力したデータ群の中から秘匿化必須データにするデータ群を選択する(S413)。また、m≧N1の場合はデータ群の選択は行わない。
【００２８】
例えば、属性「身長」と「体重」のデータ群が秘匿化保留データの場合、ステップS413において、何れかのデータ群が秘匿化必須データとして選択される。また、図4に示すように、秘匿化保留データの属性をもつデータ群が三つ以上ある場合、ステップS413において、秘匿化保留データのデータ群が一組になるまでデータ群の選択（再分類）を行う。
【００２９】
次に、データ判定部103は、秘匿必須化されなかった秘匿化保留データのデータ群を順次入力する(S414)。以下、ステップS414で入力するデータ群を「注目データ群」と呼ぶ。そして、注目データ群に含まれるデータの値が平均値と大幅に異なる異常値を抽出するための判定値を保有するか否かを判定する(S415)。以前、判定対象の属性において判定値を計算し、その判定値をDB104などに保存している場合、処理をステップS418に進めて保有する判定値を利用することで、判定値算出の処理時間を短縮することができる。
【００３０】
判定値を保有しない場合、データ判定部103は、データ総数mが第二の所定数未満か否かを判定する(S416)。なお、第二の所定数N2は、異常値算出データ数であり例えば2000である。第二の所定数N2は、世論調査などで必要とされる母集団の数が目安であり、当該属性のデータの標準偏差を計算した場合に有意な差が出ない数である。m＜N2の場合、データ判定部103は、注目データ群を秘匿化必須データに再分類し(S424)、処理をステップS426に進める。
【００３１】
一方、m≧N2の場合、データ判定部103は、注目データ群のN2個のデータから統計処理を用いて判定値を算出する(S417)。例えば、判定値は標準偏差σであり、データ分布における-2.5σ未満の値、および、+2.5σ超の値を異常値と判定する。
【００３２】
次に、データ判定部103は、ステップS414で注目データ群のデータの値を順次取得し(S418)、取得した値が異常値か否かを判定し(S419)、判定結果を示す例えばタグを当該データに付加する。つまり、異常値の場合は異常値を示すタグを当該データに付加し(S420)、異常値ではない場合は正常値を示すタグを当該データに付加する(S421)。
【００３３】
次に、データ判定部103は、注目データ群のすべてのデータにタグを付加したか否かを判定し(S422)、タグが未付加のデータがある場合は処理をステップS418に戻す。そして、注目データ群のすべてのデータにタグを付加すると、異常値の判定結果を評価する(S423)。つまり、注目データ群のすべてのデータが異常値であれば場合は注目データ群を秘匿化必須データに再分類し(S424)、注目データ群のすべてのデータが正常値であれば注目データ群を秘匿化不要データに再分類する(S425)。また、注目データ群に異常値のデータと正常値のデータが混在すれば秘匿化保留データのままにする。
【００３４】
異常値と判定した場合に有効にするフラグ、および、正常値と判定した場合に有効にするフラグを用意して、ステップS419の判定に応じてそれらフラグをセットし、それらフラグの状態からステップS423の判定を行えばよい。
【００３５】
また、異常値のデータと正常値のデータが混在するデータ群は秘匿化保留データのままになる。秘匿化保留データのデータ群のデータには正常値、異常値のタグが付加されていて、実施例2で説明する処理に利用される。
【００３６】
その後、データ判定部103は、ステップS413において秘匿必須化されなかったデータ群にステップS414からS423の処理が未了のデータ群（未評価データ群）があるか否かを判定する(S426)。そして、未評価データ群がある場合は処理をステップS414に戻し、未評価データ群がない場合は秘匿化保留データの分類処理を終了する。
【００３７】
このように、データ総数mとデータの値を参照して、データから個人が特定されるか否かを判定し、データ群を、個人を特定不可能な秘匿化不要データと、個人を特定可能な秘匿化必須データに分類する。そして、それらデータから統計データを算出する際、秘匿化不要データ/秘匿化必須データに従いデータ処理を切り替えて、秘匿化不要データはそのまま処理し、秘匿化必須データは秘匿計算により処理することができる。言い替えれば、統計データを計算する際に、データから個人が特定されないように秘匿計算を行うとともに、秘匿計算による計算量の増大を抑制することができる。
【実施例２】
【００３８】
以下、本発明にかかる実施例2の情報処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００３９】
実施例1では、個人が特定可能なデータか否かに応じてデータ群を分類した。その結果、どのデータ群が個人を特定可能か否かを判定することできた。実施例2では、分類したデータ群を用いて、秘匿化必須データのみを秘匿計算することで、統計データの算出における計算量の増加を抑える方法を説明する。
【００４０】
［統計データ計算システム］
図8のブロック図により実施例2の統計データ計算システムを示す。統計データ計算システムは、サーバ201、計算部206、209、211、サーバ213などを有する。
【００４１】
サーバ201は、例えばCPU、RAMなどのメモリ、HDDなどの記録媒体を有するコンピュータ装置であり、CPUがRAMをワークメモリとしてHDDに格納されたプログラムを実行することで、サーバ201の機能が実現される。サーバ201の入力部102、データ判定部103、DB104は、実施例1のデータ分類システムの各部と同様の機能を有する。
【００４２】
サーバ201のデータ識別部216は、DB104から読み出したデータの種類（秘匿化必須データ、秘匿化保留データ、秘匿化不要データ）を識別し、データの種類に応じて、データ秘匿部205または計算部206のデータ計算部207にデータを渡す。
【００４３】
計算部206、209、211はそれぞれ統計データを計算する主体であり、例えばCPU、RAMなどのメモリ、HDDなどの記録媒体、サーバとの通信インタフェイスを有するコンピュータ機器を備える装置やシステムなどである。計算部のCPUがRAMをワークメモリとしてHDDに格納されたプログラムを実行することで、計算部の機能が実現される。
【００４４】
第一の計算部206は、非秘匿化データ計算用のデータ計算部207と、秘匿化データ計算用の秘匿化データ計算部208を有する。データ計算部207は、データ識別部216から非秘匿化データを受信し、非秘匿化データから計算した統計データをサーバ213に送信する。また、データ計算部207は、データ識別部216から秘匿化保留データを受信し、非秘匿化データから計算した統計データをデータ秘匿部205に送信する。
【００４５】
秘匿化データ計算部208は、データ秘匿部205から秘匿化データを受信し、秘匿化データから計算した秘匿化統計データをサーバ213に送信する。
【００４６】
同様に、第二の計算部209の秘匿化データ計算用の秘匿化データ計算部210は、データ秘匿部205から秘匿化データを受信し、秘匿化データから計算した秘匿化統計データをサーバ213に送信する。第三の計算部211の秘匿化データ計算用の秘匿化データ計算部212は、データ秘匿部205から秘匿化データを受信し、秘匿化データから計算した秘匿化統計データをサーバ213に送信する。
【００４７】
データ秘匿部205は、秘匿化必須データ、秘匿化保留データの異常値、および、秘匿化保留データの正常値のみから算出された統計データを対象にデータを秘匿化する。秘匿化保留データの正常値のみから算出された統計データを秘匿化対象にするのは、個人の特定を防いでデータ群の統計データを計算させるには、秘匿化したデータ同士の必要があるからである。
【００４８】
データ秘匿部205は、秘匿化前のデータと乱数から秘匿化前のデータを四つの秘匿化データdata_X、data_Y、data_Z、data_Cに分割する。そして、秘匿化データ計算部208にdata_Xを送信し、秘匿化データ計算部210にdata_Yとdata_Cを送信し、秘匿化データ計算部212にdata_Zとdata_Cを送信する。
【００４９】
秘匿化データ計算部208は、秘匿化データdata_Xから秘匿化統計データresult_data_Xを計算する。秘匿化データ計算部210は、秘匿化データdata_Yとdata_Cから秘匿化統計データresult_data_Xとresult_data_Cを計算する。秘匿化データ計算部212は、秘匿化データdata_Zとdata_Cから秘匿化統計データresult_data_Zとresult_data_Cを計算する。
【００５０】
秘匿化前のデータの復元には、秘匿化データ計算部208、210、212のうち少なくとも二つの秘匿化データ計算部から送信されるデータを取得する必要があり、秘匿化前のデータを保護することができる。なお、複数のデータ計算部を用いて、秘匿化したまま加減算ができる方法（例えば、マルチパーティ計算プロトコル）であれば、その方法に応じてデータ計算部の数を変更することで本実施例を適用することができる。
【００５１】
サーバ213は、例えばCPU、RAMなどのメモリ、HDDなどの記録媒体を有するコンピュータ装置であり、CPUがRAMをワークメモリとしてHDDに格納されたプログラムを実行することで、サーバ213の機能が実現される。
【００５２】
サーバ213の計算結果復元部214は以下のデータを受信する。
・秘匿化データ計算部208の秘匿化統計データresult_data_X
・秘匿化データ計算部210の秘匿化統計データresult_data_Yおよびresult_data_C
・秘匿化データ計算部212の秘匿化統計データresult_data_Zおよびresult_data_C
【００５３】
計算結果復元部214は、上記の秘匿化統計データを用いて式(1)または式(2)により統計データresult_dataを算出し、統計データresult_dataをDB215に格納する。
result_data = result_data_X + result_data_C                    …(1)
result_data = result_data_Y + result_data_Z + result_data_C    …(2)
【００５４】
DB215は、データ計算部207から受信した統計データ、および、計算結果復元部214から入力される統計データを格納する。
【００５５】
［分類されたデータを用いる統計データ計算処理］
図9、図10のフローチャートにより分類されたデータを用いる統計データの計算処理を説明する。
【００５６】
データ識別部216は、DB104からデータ群を読み込み(S601)、図5に示すデータ種別に基づきデータ群の種類を判定する(S602)。データ種別が秘匿化不要データの場合、データ識別部216は、当該データ群をデータ計算部207に送信する(S603)。データ計算部207は、受信したデータから統計データresult_dataを算出し、統計データresult_dataをDB215に格納する(S604)。その後、処理はステップS614に進む。
【００５７】
一方、データ種別が秘匿化保留データの場合、データ識別部216は、当該データ群に含まれる正常値のデータをデータ計算部207に送信する(S605)。データ計算部207は、受信したデータから統計データを算出し、統計データをデータ秘匿部205に送信する(S606)。データ秘匿部205は、受信した統計データを上述した方法で秘匿化した四つのデータを生成し、それら秘匿化データを上述したように三つの秘匿化データ計算部208、210、212に送信する(S607)。
【００５８】
また、データ識別部216は、秘匿化保留データのデータ群に含まれる異常値のデータをデータ秘匿部205に送信する(S608)。データ秘匿部205は、受信したデータを上述した方法で秘匿化した四つのデータを生成し、それら秘匿化データを上述したように三つの秘匿化データ計算部208、210、212に送信する(S609)。その後、処理はステップS612に進む。
【００５９】
他方、データ種別が秘匿化必須データの場合、データ識別部216は、当該データ群をデータ秘匿部205に送信する(S610)。データ秘匿部205は、受信したデータ群を上述した方法で秘匿化した四つのデータ群を生成し、それら秘匿化データ群を上述したように三つの秘匿化データ計算部208、210、212に送信する(S611)。その後、処理はステップS612に進む。
【００６０】
次に、秘匿化データ計算部208、210、212はそれぞれ、秘匿化データを用いて、以下の秘匿化統計データの算出処理を行い、秘匿化統計データを計算結果復元部214に送信する(S612)。
【００６１】
秘匿化保留データの場合、正常値のデータから算出され秘匿化された統計データと、秘匿化された異常値のデータを用いて、秘匿化統計データを算出する。例えば、四つのデータdata1、data2、data3、data4の平均値計算において、data4が異常値の場合を考える。この場合、data4を除く正常値の平均値aveNがデータ計算部207によって算出される。
aveN = (data1 + data2 + data3)/3      …(3)
【００６２】
その後、データ秘匿部205は、aveNを秘匿化したaveN_X、aveN_Y、aveN_Z、aveN_Cを生成する。そして、異常値data4を秘匿化したデータdata4_X、data4_Y、data4_Z、data4_Cを生成する。そして、秘匿化データ計算部208、210、212はそれぞれ次の秘匿化統計データを算出する。なお、算出時に使用するデータ数num=2もデータ秘匿部205で事前に秘匿化し、num_X、num_Y、num_Z、num_Cを生成しておく。
if (秘匿化保留データ) {
if (秘匿化データ計算部208)
result_ave_X = ave_func(aveN_X, data4_X)；
if (秘匿化データ計算部210) {
result_ave_Y = ave_func(aveN_Y, data4_Y)；
result_ave_C = ave_func(aveN_C, data4_C)；
}
if (秘匿化データ計算部212) {
result_ave_Z = ave_func(aveN_Z, data4_Z)；
result_ave_C = ave_func(aveN_C, data4_C)；
}
}                                                              …(4)
ここで、ave_func(O, P)はデータOとPの平均値を算出する演算。
【００６３】
また、秘匿化必須データの場合、データ秘匿部205は、データ群のすべてデータを秘匿化する。データ群が四つのデータdata1、data2、data3、data4であるとすると、次の秘匿化データが生成される。
data1_X、data1_Y、data1_Z、data1_C
data2_X、data2_Y、data2_Z、data2_C
data3_X、data3_Y、data3_Z、data3_C
data4_X、data4_Y、data4_Z、data4_C
【００６４】
そして、秘匿化データ計算部208、210、212はそれぞれ次の秘匿化統計データを算出する。なお、算出時に使用するデータ数num=4もデータ秘匿化部205で事前に秘匿化し、num_X、num_Y、num_Z、num_Cを生成しておく。
if (秘匿化必須データ) {
if (秘匿化データ計算部208)
result_ave_X = ave_func(data1_X, data2_X, data3_X, data4_X)；
if (秘匿化データ計算部210) {
result_ave_Y = ave_func(data1_Y, data2_Y, data3_Y, data4_Y)；
result_ave_C = ave_func(data1_C, data2_C, data3_C, data4_C)；
}
if (秘匿化データ計算部212) {
result_ave_Z = ave_func(data1_Z, data2_Z, data3_Z, data4_Z)；
result_ave_C = ave_func(data1_C, data2_C, data3_C, data4_C)；
}
}                                                              …(5)
ここで、ave_func(O, P, Q, R)は、データO、P、Q、Rの平均値を算出する演算。
【００６５】
次に、計算結果復元部214は、受信した秘匿化統計データを用いて式(1)または式(2)により統計データresult_dataを算出し、統計データresult_dataをDB215に格納する(S613)。
【００６６】
次に、データ識別部216は、すべての統計データを計算したか否かを判定し(S614)、すべての統計データを計算するまで処理をステップS601に戻し、すべての統計データを計算すると統計データ計算処理を終了する。
【００６７】
このように、分類されたデータを用いて、秘匿化が必要なデータのみを秘匿化して統計データ計算処理を行うことで、計算量の増加を抑制することができる。
【００６８】
なお、実施例2では、データと秘匿化データの計算をそれぞれ、同じ計算部206に所属するデータ計算部207と秘匿化データ計算部208に分けて行った。しかし、同じ計算部に所属するデータ計算部と秘匿化データ計算部ならば、それら二つをまとめて計算部とし、計算部内でデータと秘匿化データを分類し、分類されたデータに応じて、計算部の処理をデータ計算と秘匿化データ計算に切り替えてもよい。
【実施例３】
【００６９】
以下、本発明にかかる実施例3の情報処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７０】
実施例2においては、一つの統計データを算出する際に、必要なデータ群が全て同じデータ種別（例えば、秘匿化保留データまたは秘匿化必須データ）に分類されていることを想定した。例えば、一つのデータ群data1、data2、data3の平均値を計算するにはデータ群とデータ数num=3が必要であるが、データ群のデータ種別が秘匿化不要データに分類されている場合、そのデータ数のデータ種別も秘匿化不要データと見做した。
【００７１】
しかし、例えば、データ群は秘匿化不要データであるが、データ数は秘匿化必須データという場合もあり得る。このような場合、秘匿化不要データであるデータ群まで秘匿化して統計データを計算すれば計算量を増大させることになる。以下では、統計データの計算において、演算単位ごとに秘匿化の必要性を判定して、統計データを計算する処理を説明する。
【００７２】
図13のブロック図により実施例3の統計データ計算システムを示す。図13に示す実施例3の構成は、図8に示す実施例2の構成と次の点で異なる。つまり、データ計算部207のデータ送信先の一つがデータ秘匿部205からデータ識別部216に変更されている。
【００７３】
図14のフローチャートにより実施例3における統計データの計算処理を説明する。
【００７４】
データ識別部216は、DB104からデータ群を読み込み(S601)、DB104から最初の演算情報を読み込む(S1301)。演算情報は、データ群のうち演算対象のデータと、それらデータの間の例えば四則演算など、演算単位に演算方法を示す情報である。
【００７５】
図15により演算情報の一例を示す。図15はデータ群data1、data2、data3の平均値を計算する場合の演算情報を示し、最初の演算単位1601は「data1+data2」（加算）である。次の演算単位1602は「（演算単位1601の演算結果）+data3」（加算）である。そして、最後の演算単位1603は「（演算単位1602の演算結果）÷num」（除算）である。
【００７６】
データ識別部216は、演算単位における演算対象のデータ（以下、演算対象データ）が秘匿化必須データまたは秘匿化保留データの異常値（以下、要秘匿化データ）か否かを判定する(S1302)。演算対象データが要秘匿化データに該当する場合、データ識別部216は、データ群をデータ秘匿部205に送信する(S1303)。
【００７７】
データ秘匿部205は、受信したデータ群（または後述する演算結果と使用データ）を秘匿化し、秘匿化データを秘匿化データ計算部208、210、212に送信する(S1304)。秘匿化データ計算部208、210、212はそれぞれ、秘匿化データを用いて秘匿化統計データの算出処理を行い、秘匿化統計データを計算結果復元部214に送信する(S612)。計算結果復元部214は、受信した秘匿化統計データを用いて統計データを算出し、統計データをDB215に格納する(S613)。その後、処理はステップS614に進む。
【００７８】
一方、ステップS1302に判定において、演算対象データが要秘匿化データに該当しない場合、データ識別部216は、演算対象データをデータ計算部207に送信する(S1305)。データ計算部207は、受信した演算対象データの演算を行う(S1306)。
【００７９】
データ計算部207による演算対象データの演算が終わると、データ識別部216は、データ群に対するすべての演算を実施したか否かを判定する(S1307)。すべての演算を実施したと判定した場合、データ識別部216は、データ計算部207に演算結果を統計データとしてDB215に格納させる(S1308)。その後、処理はステップS614に進む。
【００８０】
他方、ステップS1307の判定において、未実施の演算があると判定した場合、データ識別部216は、データ計算部207から演算結果を取得し(S1309)、処理をステップS1301に戻して、次の演算情報を読み込む(S1301)。そして、演算対象データが要秘匿化データか否かを判定する(S1302)。
【００８１】
統計データの演算途中で、要秘匿化データに該当する演算対象データが現われた場合、データ識別部216は、ステップS1309で取得した演算結果とデータ群のうち以降の演算に使用するデータをデータ秘匿部205に送信する(S1303)。そして、ステップS1304、S612、S613の処理が実行され、処理はステップS614に進む。
【００８２】
データ識別部216は、すべての統計データを計算したか否かを判定し(S614)、すべての統計データを計算するまで処理をステップS601に戻し、すべての統計データを計算すると統計データ計算処理を終了する。
【００８３】
なお、実施例3の統計データ計算処理において、秘匿化保留データを計算する場合、当初は正常値のみから統計データを演算し、続いて、正常値の統計データと異常値から統計データを計算する演算情報を与えればよい。
【００８４】
例えば、データ数が秘匿化不要データとして、秘匿化保留データの正常値data1、data2、data3、秘匿化保留データの異常値data4の平均値を計算する場合、まず、正常値同士の加算を二回行う。次に、加算結果を正常値のデータ数（この例では3）で除算した正常値の平均値を計算し、当該平均値と異常値を秘匿化した上で加算する。最後に、秘匿化データの加算結果を、異常値のデータ数に正常値の平均値のデータ数1を加えた数（この例では2）で除算すれば秘匿化保留データの平均値が得られる。
【実施例４】
【００８５】
以下、本発明にかかる実施例4の情報処理を説明する。なお、実施例4において、実施例1-3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８６】
実施例2では、分類されたデータを用いて秘匿化が必要なデータのみを秘匿化し、秘匿計算やマルチパーティ計算プロトコルにより秘匿統計データを計算することで、計算量の増加を抑制する方法を説明した。実施例3では、準同型暗号を用いる例を説明する。準同型暗号は、加算や乗算が可能であり、平均値のような統計データを算出することができる。
【００８７】
［統計データ計算システム］
図11のブロック図により実施例4の統計データ計算システムを示す。統計データ計算システムは、サーバ201、計算部306、サーバ213などを有する。
【００８８】
サーバ201のデータ識別部216は、DB104から読み出したデータの種類（秘匿化必須データ、秘匿化保留データ、秘匿化不要データ）を識別し、データの種類に応じて、データ秘匿部205または計算部306のデータ計算部307にデータを渡す。
【００８９】
サーバ201のデータ秘匿部205は、データ識別部216から秘匿化必須データおよび秘匿化保留データの異常値を受信し、それらデータを秘匿化する。
【００９０】
図12により暗号化データの計算方法を説明する。図12は暗号化されたdata1とdata2をそのまま加算する例を示す。図12には加算を一回行う例を示すが、複数回Nの計算（例えば加算二回、乗算一回ならばN=3）を行う場合は、図12に示すステップS2からS5の演算が計算の回数N分、繰り返される。
【００９１】
N回の計算に必要な公開鍵pkx(x=1, 2, …)と秘密鍵skx(x=1, 2, …)のペアはN+1組であり、一番目のペアpk1、sk1から順に使用される。最後のN+1番目の秘密鍵skN+1以外のx番目の秘密鍵skxはx+1番目の公開鍵pkx+1で暗号化した後に使用される。以下、具体的な処理を説明する。
【００９２】
ステップS1：データ秘匿部205は、秘密鍵sk1からskNまでを、それぞれ公開鍵pk2から公開鍵pkN+1を用いて暗号化する。図12において、秘密鍵sk1が公開鍵pk2によって暗号化され、ENC_pk2(sk1)が生成される。
【００９３】
ステップS2：データ秘匿部205は、計算対象のデータを公開鍵pkxを用いて暗号化する。図12において、data1とdata2が公開鍵pk1によって暗号化され、秘匿化データが生成される。
data1 → ENC_pk1(data1)；
data2 → ENC_pk1(data2)；
【００９４】
ステップS3：秘匿化データ計算部308は、ステップS2で生成された秘匿化データを公開鍵pkx+1を用いて暗号化する。図12において、ENC_pk1(data1)とENC_pk1(data2)がpk2によって暗号化される。
ENC_pk1(data1) → ENC_pk2(ENC_pk1(data1))；
ENC_pk1(data2) → ENC_pk2(ENC_pk1(data2))；
【００９５】
ステップS4：秘匿化データ計算部308は、ステップS3で生成した暗号をENC(skx)を用いて復号する。図12において、ENC_pk2(ENC_pk1(data1))とENC_pk2(ENC_pk1(data2))がENC_pk2(sk1))によって復号される。ただし、この復号によって得られるデータは暗号のままである。
ENC_pk2(ENC_pk1(data1)) → ENC_pk2(data1)；
ENC_pk2(ENC_pk1(data2)) → ENC_pk2(data2)；
【００９６】
ステップS5：秘匿化データ計算部308は、ステップS4で復号したデータを用いて計算を行う。図12において、ENC_pk2(data1)とENC_pk2(data2)が加算される。
ENC_pk2(data1) + ENC_pk2(data2) = ENC_pk2(data1+data2)；
【００９７】
ステップS6：計算結果復元部214は、ステップS5の計算結果を秘密鍵skx+1を用いて復号する。図12において、ENC_pk2(data1+data2)がsk2によって復号される。
ENC_pk2(data1+data2) → data1+data2；
【００９８】
つまり、データ秘匿部205は、予め生成した第一の公開鍵pk1を用いてデータを秘匿化する。そして、秘匿化データ、公開鍵pk2からpkN+1（Nは計算回数）、および、暗号化秘密鍵ENC(sk1)からENC(skN)を秘匿化データ計算部308に送信する。また、秘密鍵skN+1を計算結果復元部214に送信する。
【００９９】
なお、統計量データに必要な演算が可能な準同型暗号であれば、他の方法を用いてよい。例えば、データの「合計」を算出するだけならPaillier暗号を使用すればよい。
【０１００】
計算部306は統計データを計算する主体であり、例えばCPU、RAMなどのメモリ、HDDなどの記録媒体、サーバとの通信インタフェイスを有するコンピュータ機器を備える装置やシステムなどである。計算部306のCPUがRAMをワークメモリとしてHDDに格納されたプログラムを実行することで、計算部の機能が実現される。
【０１０１】
計算部306のデータ計算部307は、データ識別部312から非秘匿化データを受信し、非秘匿化データから計算した統計データをサーバ213に送信する。また、データ計算部307は、データ識別部216から秘匿化保留データを受信し、非秘匿化データから計算した統計データをデータ秘匿部205に送信する。
【０１０２】
計算部306の秘匿化データ計算部308は、データ秘匿部305から秘匿化データ、公開鍵pkx、暗号化秘密鍵ENC(skx)を受信し、それらデータから計算した秘匿化統計データをサーバ213に送信する。
【０１０３】
サーバ213の計算結果復元部214は以下のデータを受信する。
・データ秘匿部205から秘密鍵skN+1
・秘匿化データ計算部308から秘匿化統計データ
【０１０４】
計算結果復元部214は、秘密鍵skN+1を用いて秘匿化統計データから統計データresult_dataを復元し、統計データresult_dataをDB215に格納する。
【０１０５】
DB215は、データ計算部307から受信した統計データ、および、計算結果復元部214から入力される統計データを格納する。
【０１０６】
［分類されたデータを用いる統計データ計算処理］
実施例2の「分類されたデータを用いる統計データ計算処理」と異なる部分を説明する。
【０１０７】
●正常値の統計データ(S606、S607)
秘匿化保留データの正常値のデータから算出された統計データは、データ計算部307からデータ秘匿部205に送信されて秘匿化され、秘匿化統計データは秘匿化データ計算部308に送信される。
【０１０８】
●異常値(S608、S609)
秘匿化保留データの異常値のデータは、データ識別部312からデータ秘匿部305に送信されて秘匿化され、秘匿化データは秘匿化データ計算部308に送信される。
【０１０９】
●秘匿化必須データ(S610、S611)
秘匿化必須データは、データ識別部312からデータ秘匿部305に送信されて秘匿化され、秘匿化データは秘匿化データ計算部308に送信される。その際、データ秘匿部305は、秘匿化データ、公開鍵pk2からpkn+1、および、暗号化秘密鍵ENC(sk1)からENC(skn)を秘匿化データ計算部308に送信する。さらに、秘密鍵skn+1を計算結果復元部214に送信する。
【０１１０】
●秘匿化データ計算部(S612)
秘匿化データ計算部308は、秘匿化データを用いて、以下の秘匿化統計データを算出処理を行い、秘匿課統計データを計算結果復元部214に送信する。
【０１１１】
秘匿化保留データの場合、正常値のデータから算出され秘匿化された統計データと、秘匿化された異常値のデータを用いて、秘匿化統計データを算出する。例えば、四つのデータdata1、data2、data3、data4の平均値計算において、data4が異常値の場合を考える。この場合、data4を除く正常値の平均値aveNがデータ計算部207によって算出される。
aveN = (data1 + data2 + data3)/3      …(6)
【０１１２】
その後、データ秘匿部205は、aveNを秘匿化したENC(aveN)を生成する。そして、異常値data4およびデータ数numを秘匿化したデータENC(data4)およびENC(num)を生成する。そして、秘匿化データ計算部308は、秘匿化統計データENC(result_ave)を算出する。
ENC(result_ave) = ENC{(aveN + data4)/num}      …(7)
【０１１３】
また、秘匿化必須データの場合、データ秘匿部205は、データ群のすべてデータを秘匿化する。データ群が四つのデータdata1、data2、data3、data4とすると、次の秘匿化データが生成される。そして、データ数num=4の秘匿化データも生成される。
ENC(data1)、ENC(data2)、ENC(data3)、ENC(data4)、ENC(num)
【０１１４】
そして、秘匿化データ計算部308は、次の秘匿化統計データを算出する。
ENC(result_ave) = ENC{(data1 + data2 + data3 + data4)/num}      …(8)
【０１１５】
このように、分類されたデータを用いて、秘匿化が必要なデータのみを準同型暗号によって秘匿化して統計データ計算処理を行うことで、計算量の増加を抑制することができる。
【０１１６】
なお、実施例4において、実施例3の統計データ計算処理を適用する場合、図11に示す構成において、図13に示す構成のように、データ計算部307のデータの送信先の一つをデータ秘匿部205からデータ識別部216に切り替えればよい。
【実施例５】
【０１１７】
以下、本発明にかかる実施例5の情報処理を説明する。なお、実施例5において、実施例1-4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１１８】
実施例3では、統計データの計算対象であるデータ（以下、元データ）のデータ種別が分類され、データ種別が付加されたデータに基づき、要秘匿化データか否かを判定する例を示した。実施例5では、演算途中の演算結果から元データが特定されるか否かを検証して、元データが特定されない場合は、元データの秘匿化を行わずに統計データを計算する方法を説明する。つまり、元データが特定されない場合は元データの秘匿化を行わないことで、計算量の増大を抑制することができる。
【０１１９】
演算結果から元データが特定されない例は、同じ属性をもつデータの演算であり、例えば「複数人の身長の合計」は元データが特定されない。
【０１２０】
一方、演算結果から元データが特定される例は、少なくとも一つのデータの属性が他のデータの属性と異なる場合の演算であり、例えば「個人のボディマス指数(BMI)」の演算（BMI=体重/身長2）である。この場合、身長と体重の何れか一方の元データが秘匿化不要データとされた場合、演算結果と秘匿化不要データから他方の元データが特定可能である。
【０１２１】
また、元データが演算結果に残る場合も演算結果から元データが特定される。例えば「ある身長の人数」は、元データである身長と、その身長に対する人数が演算結果である。この場合、元データの身長がそのまま演算結果に残ることになり、元データが特定される。
【０１２２】
従って、同じ属性をもつデータの演算、かつ、演算結果に元データが残らない場合が元データが特定されない場合と言える。以下では、元データが特定されない演算結果を得る演算を「秘匿化不要演算」と呼ぶ。
【０１２３】
図16のブロック図により実施例5の統計データ計算システムを示す。図15に示す実施例5の構成は、図8に示す実施例2の構成と次の点で異なる。つまり、データ計算部207のデータ送信先がデータ秘匿部205とDB215からデータ識別部216に変更され、計算結果復元部214のデータ送信先がDB215からデータ識別部216に変更されている。さらに、データ識別部216のデータ送信先にDB215が追加されている。
【０１２４】
図17のフローチャートにより実施例5における統計データの計算処理を説明する。
【０１２５】
データ識別部216は、DB104からデータ群を読み込み(S601)、DB104から最初の演算情報を読み込む(S1401)。そして、演算情報が示す演算が秘匿化不要演算か否かの第一の判定(S1402)、および、演算情報が示す演算対象データが要秘匿化データか否かの第二の判定を行う(S1403)。
【０１２６】
演算情報が示す演算が秘匿化不要演算に該当しないか、演算対象データが要秘匿化データに該当する場合、データ識別部216は、演算対象データをデータ秘匿部205に送信する(S1404)。
【０１２７】
データ秘匿部205は、受信した演算対象データ（または演算結果と使用データ）を秘匿化し、秘匿化した演算対象データを秘匿化データ計算部208、210、212に送信する(S1405)。秘匿化データ計算部208、210、212はそれぞれ、秘匿化された演算対象データの演算を行い、演算結果を計算結果復元部214に送信する(S1406)。計算結果復元部214は、受信した演算結果を復元し、復元した演算結果をデータ識別部216に送信する(S1407)。その後、処理はステップS1410に進む。
【０１２８】
一方、ステップS1402、S1403の判定において、演算情報が示す演算が秘匿化不要演算に該当し、かつ、演算対象データが要秘匿化データに該当しない場合、データ識別部216は、演算対象データをデータ計算部207に送信する(S1408)。データ計算部207は、受信した演算対象データ（または演算結果と未使用データ）の演算を行い、演算結果をデータ識別部216に送信する(S1409)。
【０１２９】
データ識別部216は、計算結果復元部214またはデータ計算部207から演算結果を受信すると、データ群に対するすべての演算を実施したか否かを判定する(S1410)。すべての演算を実施したと判定した場合、データ識別部216は、受信した演算結果を統計データとしてDB215に格納する(S1411)。その後、処理はステップS614に進む。
【０１３０】
他方、ステップS1140の判定において、未実施の演算があると判定した場合、データ識別部216は、処理をステップS1401に戻して、次の演算情報を読み込み(S1401)、第一の判定(S1402)と第二の判定(S1403)を行う。そして、判定結果に従い、演算結果とデータ群のうち以降の演算に使用するデータをデータ秘匿部205またはデータ計算部207に送信して、次の演算情報が示す演算を実行させる。
【０１３１】
つまり、データ識別部216は、統計データの演算がすべて秘匿化不要演算と秘匿化が不要なデータで行われる場合、データ計算部207だけを使用して統計データを取得する。一方、秘匿化が必要な演算か、演算対象データに要秘匿化データが含まれる演算は、データ秘匿部205、秘匿化データ計算部208、210、212、計算結果復元部214を使用して演算結果を取得する。
【０１３２】
そして、データ識別部216は、統計データをDB215に格納した後、すべての統計データを計算したか否かを判定する(S614)。そして、すべての統計データを計算するまで処理をステップS601に戻し、すべての統計データを計算すると統計データ計算処理を終了する。
【０１３３】
本実施例には、実施例4に記載した準同型暗号の適用も可能である。具体的には、図11に示す統計データ計算システムにおいて、データ計算部307のデータ送信先をデータ秘匿部205とDB215からデータ識別部216に変更し、計算結果復元部214のデータ送信先をDB215からデータ識別部216に変更する。さらに、データ識別部216のデータ送信先にDB215を追加すればよい。
【０１３４】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
2014211607.tif 000003
【図２】
2014211607.tif 000004
【図３】
2014211607.tif 000005
【図４】
2014211607.tif 000006
【図５】
2014211607.tif 000007
【図６】
2014211607.tif 000008
【図７】
2014211607.tif 000009
【図８】
2014211607.tif 000010
【図９】
2014211607.tif 000011
【図１０】
2014211607.tif 000012
【図１１】
2014211607.tif 000013
【図１２】
2014211607.tif 000014
【図１３】
2014211607.tif 000015
【図１４】
2014211607.tif 000016
【図１５】
2014211607.tif 000017
【図１６】
2014211607.tif 000018
【図１７】
2014211607.tif 000019