(57)【特許請求の範囲】
【請求項１】
複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱システムであって、
第１の確率と、前記所望のレベルを確保するための第２の確率とを設定するサーバと、
前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成するクライアントと、を有し、
前記サーバは、前記第１及び第２の確率を用いて第３の確率を算出し、該算出した第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する撹乱システム。
【請求項２】
請求項１に記載の撹乱システムにおいて、
前記第１及び第２の確率は、前記データ値を置換しない確率であり、
前記サーバは、前記第２の確率を前記第１の確率で除算した値を前記第３の確率とする撹乱システム。
【請求項３】
複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱装置であって、
第１の確率と、前記所望のレベルを確保するための第２の確率とを設定する維持確率設定部と、
前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する撹乱部と、を有し、
前記維持確率設定部は、前記第１及び第２の確率を用いて第３の確率を算出し、
前記撹乱部は、前記算出された第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する撹乱装置。
【請求項４】
請求項３に記載の撹乱装置において、
前記第１及び第２の確率は、前記データ値を置換しない確率であり、
前記維持確率設定部は、前記第２の確率を前記第１の確率で除算した値を前記第３の確率とする撹乱装置。
【請求項５】
サーバとクライアントとを有し、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱システムにおける撹乱方法であって、
前記サーバが、第１の確率を設定する処理と、
前記クライアントが、前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する処理と、
前記サーバが、前記所望のレベルを確保するための第２の確率を設定する処理と、
前記サーバが、前記第１及び第２の確率を用いて第３の確率を算出する算出処理と、
前記サーバが、前記算出した第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する処理と、を有する撹乱方法。
【請求項６】
請求項５に記載の撹乱方法において、
前記第１及び第２の確率は、前記データ値を置換しない確率であり、
前記算出処理は、前記サーバが、前記第２の確率を前記第１の確率で除算した値を前記第３の確率とする処理である撹乱方法。
【請求項７】
複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱装置における撹乱方法であって、
前記攪乱装置の維持確率設定部が、第１の確率と、前記所望のレベルを確保するための第２の確率とを設定する処理と、
前記維持確率設定部が、前記第１及び第２の確率を用いて第３の確率を算出する算出処理と、
前記攪乱装置の攪乱部が、前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する処理と、
前記攪乱部が、前記算出された第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する処理と、を有する撹乱方法。
【請求項８】
請求項７に記載の撹乱方法において、
前記第１及び第２の確率は、前記データ値を置換しない確率であり、
前記算出処理において、前記維持確率設定部は、前記第２の確率を前記第１の確率で除算した値を前記第３の確率とする、撹乱方法。
【請求項９】
複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換するコンピュータを、請求項３または請求項４に記載の撹乱装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの秘匿性を確保するための撹乱システム、撹乱装置、撹乱方法及びプログラムに関する。
【背景技術】
【０００２】
近年、データベースに記憶されたデータに含まれる値を統計的手法によって秘匿しつつ、データに含まれる値の集計結果であるクロス集計等を推定する技術が考えられている（例えば、非特許文献１，２参照。）。ここでいうデータとは例えば、個人情報等を含むアンケート結果等のことであり、保護されるべきデータのことである。
【０００３】
なお、クロス集計とは、データを構成する複数の項目のうち、２つまたはそれ以上の項目に着目してデータの集計や統計分析を行うことである。クロス集計は通常、１つまたは２つ程度の項目を縦軸にとり、別の項目を横軸にとった表として表される。
【０００４】
非特許文献１，２に開示されている技術では、データに含まれる値を、予め決められた維持確率に基づいて項目毎に確率的に変化させる。なお、維持確率とは値を確率的に変化させた後においても、その値がそのままの値を維持する確率のことである。つまり、維持確率は、データに含まれる値を置換しない確率ということができる。以降、このように維持確率に基づき、データに含まれる値を確率的に変化させることを撹乱という。また、データに含まれる値のことをデータ値という。
【０００５】
この撹乱によってデータ値が秘匿され、例えばそのデータ値が置換された値を含む撹乱データが漏洩した場合でもデータを保護することができる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】五十嵐  大，千田  浩司，高橋  克巳,「多値属性に適用可能な効率的プライバシー保護クロス集計」，コンピュータセキュリティシンポジウム２００８（２００８年１０月８日〜１０日）
【非特許文献２】高見澤  秀久，有次  正義，「プライバシーを保護するカウント演算の多値属性分類への適用」，  ＤＥＷＳ２００７，  ２００７
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、上述した撹乱の強度が弱いと判断された場合、すなわち、撹乱を行ったが、データの秘匿性が所望のレベルに達していないと判断された場合、データの秘匿性を所望のレベルまで高めるために、撹乱をやり直す必要がある。
【０００８】
例えば、データの提供者が撹乱を行ったが、データの秘匿性が所望のレベルに達していないと判断された場合、データを管理するデータベース管理者が撹乱のやり直しをすることが考えられる。
【０００９】
しかし、この場合、データベース管理者がデータに含まれるデータ値を知らなければ、撹乱をやり直すことができないという問題点がある。
【００１０】
一方で、データベース管理者がデータに含まれるデータ値を知っている場合、撹乱をやり直すと、結果として、そのデータに対して相互に独立した複数の撹乱が行われることとなる。
【００１１】
ところが、データに対して相互に独立した複数の撹乱が行われた場合に得られる情報を用いれば、撹乱が１回だけ行われた場合に得られる情報を用いた場合に比べ、そのデータに含まれるデータ値の推定が容易になる。
【００１２】
つまり、撹乱をやり直すことによって逆に、データの秘匿性のレベルが低下してしまうという問題点がある。
【００１３】
本発明は、データに含まれるデータ値を用いることなく、そのデータの秘匿性を所望のレベルまで高めることを可能にする撹乱システム、撹乱装置、撹乱方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために本発明の撹乱システムは、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱システムであって、
第１の確率と、前記所望のレベルを確保するための第２の確率とを設定するサーバと、
前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成するクライアントと、を有し、
前記サーバは、前記第１及び第２の確率を用いて第３の確率を算出し、該算出した第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する。
【００１５】
また、上記目的を達成するために本発明の撹乱装置は、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱装置であって、
第１の確率と、前記所望のレベルを確保するための第２の確率とを設定する維持確率設定部と、
前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する撹乱部と、を有し、
前記維持確率設定部は、前記第１及び第２の確率を用いて第３の確率を算出し、
前記撹乱部は、前記算出された第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する。
【００１６】
また、上記目的を達成するために本発明の撹乱方法は、サーバとクライアントとを有し、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱システムにおける撹乱方法であって、
前記サーバが、第１の確率を設定する処理と、
前記クライアントが、前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する処理と、
前記サーバが、前記所望のレベルを確保するための第２の確率を設定する処理と、
前記サーバが、前記第１及び第２の確率を用いて第３の確率を算出する算出処理と、
前記サーバが、前記算出した第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する処理と、を有する。
【００１７】
また、上記目的を達成するために本発明の攪乱方法は、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱装置における撹乱方法であって、
前記攪乱装置の維持確率設定部が、第１の確率と、前記所望のレベルを確保するための第２の確率とを設定する処理と、
前記維持確率設定部が、前記第１及び第２の確率を用いて第３の確率を算出する算出処理と、
前記攪乱装置の攪乱部が、前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する処理と、
前記攪乱部が、前記算出された第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する処理と、を有する。
【００１８】
また、上記目的を達成するために本発明のプログラムは、複数の項目から構成され、前記複数の項目のそれぞれに対応付けられた複数の値のうちのいずれかであるデータ値を含むデータの秘匿性を所望のレベルで確保するために、前記データ値を前記複数の値のうちのいずれかの値に確率的に置換する撹乱装置に、
第１の確率と、前記所望のレベルを確保するための第２の確率とを設定する機能と、
前記第１及び第２の確率を用いて第３の確率を算出する算出機能と、
前記第１の確率に基づいて前記データ値を前記複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する機能と、
前記算出された第３の確率に基づいて前記第１の撹乱データに含まれる値を前記複数の値のいずれかの値に置換した第２の撹乱データを生成する機能と、を実現させる。
【発明の効果】
【００１９】
本発明は以上説明したように構成されているので、データに含まれるデータ値を用いることなく、そのデータの秘匿性を所望のレベルまで高めることが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の撹乱システムの実施の一形態の構成を示すブロック図である。
【図２】図１に示した記憶部２１に記憶されたデータの一例を示す図であり、（ａ）は記憶されたデータの構成を説明するための図、（ｂ）は記憶されたデータの具体例を説明するための図である。
【図３】図１及び図２に示した撹乱システムの動作を説明するためのフローチャートである。
【図４】本発明の撹乱装置の実施の一形態の構成を示すブロック図である。
【図５】図４に示した撹乱装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、本発明の実施の形態について図面を参照して説明する。
（第１の実施形態）
図１は、本発明の撹乱システムの実施の一形態の構成を示すブロック図である。
【００２２】
本実施形態の撹乱システムは図１に示すように、サーバ１０と、クライアント２０−１〜２０−ｎとを備えている。
【００２３】
クライアント２０−１〜２０−ｎのそれぞれは、記憶部２１と、撹乱部２２とを備えている。
【００２４】
記憶部２１は、データを記憶している。
【００２５】
図２は、図１に示した記憶部２１に記憶されたデータの一例を示す図であり、（ａ）は記憶されたデータの構成を説明するための図、（ｂ）は記憶されたデータの具体例を説明するための図である。
【００２６】
図１に示した記憶部２１に記憶されたデータは図２（ａ）に示すように、複数の項目（項目１〜ｎ）から構成されている。また、複数の項目のそれぞれに対応付けられた複数の値のいずれかであるデータ値を含んでいる。
【００２７】
図２（ｂ）は、図２（ａ）に示したデータの具体例を示している。図２（ｂ）に示すデータは、個人に関するデータとなっており、図中最も左の列は、個人名を識別するＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）が示されている。そして、項目１が個人の性別、項目２が個人の年齢、項目３が個人の趣味となっている。
【００２８】
図２（ｂ）に示す例の場合、各項目に対応付けられた値としては、性別（項目１）では例えば、男性の場合「０」、女性の場合「１」となる。従って、性別（項目１）に対応付けられた値の数は「２」となる。また、年齢（項目２）では、その個人の年齢となる。ここでは、対象となる個人の年齢は３０歳〜３９歳までとする。従って、年齢（項目２）に対応付けられた値の数は「１０」となる。また、趣味（項目３）では、例えば、スポーツを「１」とし、釣りを「２」とし、旅行を「３」とし、読書を「４」とすると、趣味（項目３）に対応付けられた値の数は「４」となる。
【００２９】
このように、記憶部２１に記憶されたデータにおいては、各項目に対応付けられた値と、各項目に対応付けられた値の数とが予め決められている。以降、各項目ｉに対応付けられた値の数をＭｉと表記し、各項目ｉに対応付けられた値をＶｉ0〜ＶｉMi-1と表記する。
【００３０】
再度、図１を参照すると、撹乱部２２は、データの各項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1を記憶している。撹乱部２２は、サーバ１０から送信され、記憶部２１に記憶されたデータに含まれるデータ値を置換しない確率であり、第１の確率である第１の維持確率ρ1を示す維持確率情報を受信する。そして、受信した維持確率情報が示す第１の維持確率ρ1に基づき、記憶部２１に記憶されたデータに含まれるデータ値を項目ｉ毎に置換する。このとき、撹乱部２２は、実数の値を有する乱数ｒi（０≦ｒi≦１）を項目ｉ毎に生成する。そして、受信した維持確率情報が示す第１の維持確率ρ1と、生成した乱数ｒiとを項目ｉ毎に比較する。この比較の結果、乱数ｒiの値が第１の維持確率ρ1よりも大きな場合（ｒi＞ρ1）、撹乱部２２は、その項目ｉのデータ値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のいずれかに置換する。一方、この比較の結果、乱数ｒiの値が第１の維持確率ρ1以下である場合（ｒi≦ρ1）、撹乱部２２は、その項目ｉのデータ値を置換しない。そして、撹乱部２２は、上述した比較の結果に応じて置換されたデータ値及び置換されなかったデータ値を含む第１の撹乱データを生成してサーバ１０へ送信する。なお、第１の維持確率の詳細については後述する。
【００３１】
サーバ１０は、維持確率設定部１１と、撹乱部１２と、送受信部１３とを備えている。
【００３２】
維持確率設定部１１は、第１の維持確率ρ1を設定する。このとき、維持確率設定部１１は、例えば、『五十嵐大、千田浩司、高橋克巳.「ｋ-匿名性の確率的指標への拡張とその応用例」コンピュータセキュリティシンポジウム２００９，２００９』のＰｋ-匿名性に基づいて第１の維持確率ρ1を設定する。
【００３３】
ここで、Ｐｋ−匿名性について説明する。
【００３４】
Ｐｋ−匿名性では、どのような攻撃者も（１／ｋ）以上の確率で、データと撹乱データとを対応付けられないことを保証する。ｋは、以下に示す式１で表される。
【００３５】
【数１】
0005475608.tif 000002
【００３６】
維持確率設定部１１は、上記の式１において例えば（ｋ＝２）を満足するρを第１の維持確率ρ1として設定する。そして、維持確率設定部１１は、設定した第１の維持確率ρ1を示す維持確率情報をクライアント２０−１〜２０−ｎのそれぞれへ送信するために送受信部１３へ出力する。また、維持確率設定部１１は、クライアント２０−１〜２０−ｎに記憶されたデータの秘匿性を所望のレベルで確保するための第２の維持確率ρ2を設定する。このとき、維持確率設定部１１は、上記の式１において例えば（ｋ＝１００）を満足するρを第２の確率である第２の維持確率ρ2として設定する。このように、第２の維持確率ρ2におけるｋの値は、第１の維持確率ρ1におけるｋの値よりも大きい。この場合、第２の維持確率ρ2に基づいて置換されたデータ値を含むデータの秘匿性のレベルは、第１の維持確率ρ1に基づいて置換されたデータ値を含むデータの秘匿性のレベルよりも高い。第１の維持確率ρ1に基づいて置換されたデータ値を含むデータは、例えばデータを悪用したりする可能性が低いデータベース管理者が参照可能なデータとなることを想定している。一方、第２の維持確率ρ2に基づいて置換されたデータ値を含むデータは、例えば不特定多数の者がアクセス可能であり、攻撃者からの攻撃を受けやすい公開データとなることを想定している。また、維持確率設定部１１は、第１の撹乱データの秘匿性のレベルを、第２の維持確率ρ2に基づいてデータ値を置換した場合と同じレベルまで高めるための維持確率であり、第３の確率である中間維持確率ρmを算出する。そして、維持確率設定部１１は、算出した中間維持確率ρmを示す中間維持確率情報を撹乱部１２へ出力する。なお、中間維持確率ρmを算出する方法の詳細については後述するが、中間維持確率ρmは、第１の維持確率ρ1及び第２の維持確率ρ2を用いて算出される。
【００３７】
送受信部１３は、維持確率設定部１１から出力された維持確率情報を受け付け、受け付けた維持確率情報をクライアント２０−１〜２０−ｎへ送信する。また、送受信部１３は、クライアント２０−１〜２０−ｎのそれぞれから送信された第１の撹乱データを受信し、受信した第１の撹乱データを撹乱部１２へ出力する。
【００３８】
撹乱部１２は、データの各項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1を記憶している。撹乱部１２は、送受信部１３から出力された第１の撹乱データを受け付ける。また、撹乱部１２は、維持確率設定部１１から出力された中間維持確率情報を受け付ける。そして、撹乱部１２は、受け付けた中間維持確率情報が示す中間維持確率ρmに基づき、受け付けた第１の撹乱データに含まれる値を項目ｉ毎に置換する。このとき、撹乱部１２は、実数の値を有する乱数ｒi（０≦ｒi≦１）を項目ｉ毎に生成する。そして、中間維持確率ρmと、生成された乱数ｒiとを項目ｉ毎に比較する。この比較の結果、乱数ｒiの値が中間維持確率ρmよりも大きな場合（ｒi＞ρm）、撹乱部２２は、その項目ｉの値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のいずれかに置換する。一方、この比較の結果、乱数ｒiの値が維持確率ρm以下である場合（ｒi≦ρm）、撹乱部１２は、その項目ｉの値を置換しない。これにより、クライアント２０−１〜２０−ｎのそれぞれに記憶されたデータに含まれるデータ値が、第２の維持確率ρ2に基づいて置換されたことになる。そして、撹乱部１２は、上述した比較の結果に応じて置換された値及び置換されなかった値を含む第２の撹乱データを生成する。なお、第２の撹乱データは、例えば不特定多数の者がアクセス可能なデータベース等に送信される。このデータベースはサーバ１０が備えていてもよいし、外部の装置が備えていてもよい。
【００３９】
次に、維持確率設定部１１が中間維持確率ρmを算出する方法について説明する。
【００４０】
まず、維持確率をρとしてデータの撹乱を行った場合に、各項目ｉのデータ値がそのままの値である確率は、以下に示す式２で表される。
【００４１】
【数２】
0005475608.tif 000003
【００４２】
一方、維持確率をρとしてデータの撹乱を行った場合に、各項目ｉのデータ値が他の値に置換される確率は、以下に示す式３で表される。
【００４３】
【数３】
0005475608.tif 000004
【００４４】
また、維持確率をρとしてデータの撹乱を行った場合に、各項目ｉのデータ値がその項目ｉに対応付けられた値のうちのある特定の値に置換される確率は、以下に示す式４で表される。
【００４５】
【数４】
0005475608.tif 000005
【００４６】
ここで、第１の維持確率ρ1に基づいてデータ値が置換（１回目の撹乱）された後、中間維持確率ρmに基づいて置換（２回目の撹乱）されたときに、あるデータ値がそのままの値であるのは、以下に示す２通りの場合である。
（１）２回の撹乱の両方においてデータ値が元の値のままである場合
（２）１回目の撹乱でデータ値が他の値に置換され、２回目の撹乱でその他の値から元の値に置換される場合
従って、第１の撹乱データの秘匿性のレベルを、第２の維持確率ρ2に基づいてデータ値を置換した場合と同じレベルまで高めるためには、上記の式２〜４を用いると、以下に示す式５の関係が成立する必要がある。
【００４７】
【数５】
0005475608.tif 000006
【００４８】
上記の式５を中間維持確率ρmについて解くと、ρm＝ρ2／ρ1となる。
【００４９】
また、第１の維持確率ρ1に基づいてデータ値が置換（１回目の撹乱）された後、中間維持確率ρmに基づいて置換（２回目の撹乱）されたときに、あるデータ値がある特定の値に置換されるのは、以下に示す３通りの場合である。
（１）１回目の撹乱でデータ値が元の値のままであり、２回目の撹乱でその特定の値に置換される場合
（２）１回目の撹乱でデータ値がその特定の値に置換され、２回目の撹乱でその特定の値のままである場合
（３）１回目の撹乱でデータ値がその特定の値以外の値に置換され、２回目の撹乱でその特定の値に置換される場合
従って、第１の撹乱データの秘匿性のレベルを、第２の維持確率ρ2に基づいてデータ値を置換した場合と同じレベルまで高めるためには、上記の式２〜４を用いると、以下に示す式６の関係が成立する必要がある。
【００５０】
【数６】
0005475608.tif 000007
【００５１】
上記の式６を中間維持確率ρmについて解くと、やはり、ρm＝ρ2／ρ1となる。
【００５２】
従って、第２の維持確率ρ2を第１の維持確率ρ1で除算した値を中間維持確率ρmとすることにより、第１の撹乱データの秘匿性のレベルを、第２の維持確率ρ2に基づいてデータ値を置換した場合と同じレベルまで高めることができる。
【００５３】
次に、上記のように構成された撹乱システムの動作について説明する。
【００５４】
図３は、図１及び図２に示した撹乱システムの動作を説明するためのフローチャートである。
【００５５】
まず、サーバ１０の維持確率設定部１１は、上記のＰｋ−匿名性等によって第１の維持確率ρ1を設定する（ステップＳ１）。ここでは、維持確率設定部１１は、上記の式１において、（ｋ＝２）としたときのρを第１の維持確率ρ1として設定することとする。
【００５６】
そして、維持確率設定部１１は、設定した第１の維持確率ρ1を示す維持確率情報をクライアント２０−１〜２０−ｎへ送信する。
【００５７】
クライアント２０−１〜２０−ｎのそれぞれの撹乱部２２は、サーバ１０から送信された維持確率情報を受信する。
【００５８】
次に、撹乱部２２は、乱数ｒiを項目ｉ毎に生成する（ステップＳ２）。
【００５９】
そして、撹乱部２２は、受信した維持確率情報が示す第１の維持確率ρ1と、生成された乱数とを項目ｉ毎に比較する（ステップＳ３）。
【００６０】
ステップＳ３における比較の結果、生成した乱数ｒiの値が、受信した維持確率情報が示す第１の維持確率ρ1よりも大きな場合（ｒi＞ρ1）、撹乱部２２は、記憶部２１に記憶されたデータに含まれるデータ値のうち、その項目ｉのデータ値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のうちいずれかの値に置換する（ステップＳ４）。
【００６１】
一方、ステップＳ３における比較の結果、生成した乱数ｒiの値が、受信した維持確率情報が示す第１の維持確率ρ1以下である場合には（ｒi≦ρ1）、撹乱部２２は、記憶部２１に記憶されたデータに含まれるデータ値のうち、その項目ｉのデータ値を置換しない。
【００６２】
次に、撹乱部２２は、置換されたデータ値及び置換されなかったデータ値を含む第１の撹乱データを生成する（ステップＳ５）。
【００６３】
そして、撹乱部２２は、生成した第１の撹乱データをサーバ１０へ送信する。
【００６４】
サーバ１０の送受信部１３は、クライアント２０−１〜２０−ｎから送信された第１の撹乱データを受信する。
【００６５】
そして、送受信部１３は、受信した第１の撹乱データを撹乱部１２へ出力する。
【００６６】
送受信部１３から出力された第１の撹乱データを受け付けた撹乱部１２は、乱数ｒiを項目毎に生成する（ステップＳ６）。
【００６７】
また、維持確率設定部１１は、第２の維持確率を設定する（ステップＳ７）。ここでは、維持確率設定部１１は、上記の式１において、（ｋ＝１００）としたときのρを第２の維持確率ρ2として設定することとする。
【００６８】
さらに、維持確率設定部１１は、第２の維持確率ρ2を第１の維持確率ρ1で除算することにより、中間維持確率ρmを算出する（ステップＳ８）。
【００６９】
そして、維持確率設定部１１は、算出した中間維持確率ρmを示す中間維持確率情報を撹乱部１２へ出力する。
【００７０】
維持確率設定部１１から出力された中間維持確率情報を受け付けた撹乱部１２は、受け付けた中間維持確率情報が示す中間維持確率ρmと、生成した乱数ｒiとを項目ｉ毎に比較する（ステップＳ９）。
【００７１】
ステップＳ９における比較の結果、生成された乱数ｒiの値が、受け付けた中間維持確率情報が示す中間維持確率ρmよりも大きな場合（ｒi＞ρm）、撹乱部１２は、受け付けた第１の撹乱データに含まれる値のうち、その項目ｉの値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のうちのいずれかの値に置換する（ステップＳ１０）。
【００７２】
一方、ステップＳ９における比較の結果、生成された乱数ｒiの値が、受け付けた中間維持確率情報が示す中間維持確率ρm以下である場合には（ｒi≦ρm）、撹乱部１２は、受け付けた第１の撹乱データに含まれる値のうち、その項目ｉの値を置換しない。
【００７３】
これにより、クライアント２０−１〜２０−ｎのそれぞれに記憶されたデータに含まれるデータ値が、第２の維持確率ρ2に基づいて置換されたことになる。
【００７４】
そして、撹乱部１２は、置換された値及び置換されなかった値を含む第２の撹乱データを生成する（ステップＳ１１）。
【００７５】
このように本実施形態において撹乱システムは、データ値を置換しない確率である第１の維持確率ρ1と、データ値を置換しない確率であり、所望のレベルを確保するための第２の維持確率ρ2とを設定するサーバ１０を有する。
【００７６】
また、撹乱システムは、第１の維持確率ρ1に基づいてデータ値を、その項目ｉに対応付けられた複数の値のうちのいずれかの値に置換した第１の撹乱データを生成するクライアント２０−１〜２０−ｎを有する。
【００７７】
そして、サーバ１０は、第１の撹乱データに含まれる値を置換しない確率である中間維持確率ρmを第１の維持確率ρ1と第２の維持確率ρ2とを用いて算出し、算出した中間維持確率ρmに基づいて第１の撹乱データに含まれる値を、その項目ｉに対応付けられた複数の値のいずれかの値に置換した第２の撹乱データを生成する。
【００７８】
従って、データに含まれるデータ値を用いることなく、そのデータの秘匿性を所望のレベルまで高めることが可能となる。
【００７９】
なお、上述したように、中間維持確率ρmに基づく置換は、クライアント２０−１〜２０−ｎから送信された第１の撹乱データをサーバ１０が受信した後に行われる。これにより、第１の維持確率ρ1に基づいて置換された第１の撹乱データの秘匿性のレベルを確認した上で、第２の維持確率ρ2を決定することができるという効果も期待できる。
【００８０】
但し、第１の維持確率ρ1を設定したときに、第２の維持確率ρ2も設定して中間維持確率ρmを算出するようにしても、データに含まれるデータ値を用いることなく、そのデータの秘匿性を所望のレベルまで高めることが可能となるのはいうまでもない。
（第２の実施形態）
上述した第１の実施形態では、クライアント２０−１〜２０−ｎにおいて、データに含まれるデータ値を第１の維持確率ρ1に基づいて置換して第１の撹乱データを生成した。そして、サーバ１０において、第１の撹乱データに含まれる値を中間維持確率ρmに基づいて置換した。
【００８１】
本実施形態では、第１の維持確率ρ1に基づく置換と、中間維持確率ρmに基づく置換とを１つの装置である撹乱装置にて行う場合について説明する。
【００８２】
図４は、本発明の撹乱装置の実施の一形態の構成を示すブロック図である。
【００８３】
本実施形態の撹乱装置３０は図４に示すように、維持確率設定部３１と、撹乱部３２と、データ受信部３３を備えている。
【００８４】
データ受信部３３は、例えば複数のクライアント（不図示）のそれぞれから送信されたデータを受信する。なお、複数のクライアントのそれぞれから送信されるデータは例えば、図２（ｂ）に示したようなデータである。そして、データ受信部３３は、受信したデータを記憶する。
【００８５】
維持確率設定部３１は、上述した第１の実施形態における維持確率設定部１１と同様に、上記のＰｋ−匿名性等によって第１の維持確率ρ1及び第２の維持確率ρ2を設定する。また、維持確率設定部３１は、第２の維持確率ρ2を第１の維持確率ρ1で除算することによって中間維持確率ρmを算出する。そして、第１の維持確率ρ1を示す維持確率情報と、中間維持確率ρmを示す中間維持確率情報とを撹乱部３２へ出力する。
【００８６】
撹乱部３２は、データの各項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1を記憶している。また、撹乱部３２は、維持確率設定部３１から出力された維持確率情報と中間維持確率情報とを受け付ける。そして、撹乱部３２は、受け付けた維持確率情報が示す第１の維持確率ρ1に基づき、データ受信部３３に記憶されたデータに含まれるデータ値を項目ｉ毎に、その項目に対応付けられた値Ｖｉ0〜ＶｉMi-1のいずれかに置換する。これにより、第１の撹乱データが生成される。このとき、撹乱部３２は、上述した撹乱部１２，２２と同様に、実数の値を有する乱数ｒi（０≦ｒi≦１）を用いる。さらに、撹乱部３２は、受け付けた中間維持確率情報が示す中間維持確率ρmに基づき、第１の撹乱データに含まれる値を項目ｉ毎に、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のいずれかに置換する。これにより、第２の撹乱データが生成される。このときも、撹乱部３２は、上述した撹乱部１２，２２と同様に、実数の値を有する乱数ｒi（０≦ｒi≦１）を用いる。
【００８７】
なお、第２の撹乱データは、例えば不特定多数の者がアクセス可能な公開データベース等に送信される。
【００８８】
次に、上記のように構成された撹乱装置３０の動作について説明する。
【００８９】
図５は、図４に示した撹乱装置の動作を説明するためのフローチャートである。
【００９０】
まず、維持確率設定部３１は、上記のＰｋ−匿名性等によって第１の維持確率ρ1及び第２の維持確率を設定する（ステップＳ２１）。ここでは、維持確率設定部３１は、上記の式１において、（ｋ＝２）としたときのρを第１の維持確率ρ1として設定し、（ｋ＝１００）としたときのρを第２の維持確率ρ2として設定することとする。
【００９１】
また、維持確率設定部３１は、第２の維持確率ρ2を第１の維持確率ρ1で除算することにより、中間維持確率ρmを算出する（ステップＳ２２）。
【００９２】
そして、維持確率設定部３１は、第１の維持確率ρ1を示す維持確率情報と、中間維持確率ρmを示す中間維持確率情報とを撹乱部３２へ出力する。
【００９３】
撹乱部３２は、維持確率設定部３１から出力された維持確率情報と中間維持確率情報とを受け付ける。
【００９４】
次に、撹乱部３２は、乱数ｒiを項目ｉ毎に生成する（ステップＳ２３）。
【００９５】
そして、撹乱部３２は、受け付けた維持確率情報が示す第１の維持確率ρ1と、生成された乱数とを項目ｉ毎に比較する（ステップＳ２４）。
【００９６】
ステップＳ２４における比較の結果、生成された乱数ｒiの値が、受け付けた維持確率情報が示す第１の維持確率ρ1よりも大きな場合（ｒi＞ρ1）、撹乱部３２は、データ受信部３３に記憶されたデータに含まれるデータ値のうち、その項目ｉのデータ値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のうちのいずれかの値に置換する（ステップＳ２５）。
【００９７】
一方、ステップＳ２４における比較の結果、生成された乱数ｒiの値が、受け付けた維持確率情報が示す第１の維持確率ρ1以下である場合には（ｒi≦ρ1）、撹乱部３２は、データ受信部３３に記憶されたデータに含まれるデータ値のうち、その項目ｉのデータ値を置換しない。
【００９８】
次に、撹乱部３２は、置換されたデータ値及び置換されなかったデータ値を含む第１の撹乱データを生成する（ステップＳ２６）。
【００９９】
次に、撹乱部３２は、乱数ｒiを項目ｉ毎に生成する（ステップＳ２７）。
【０１００】
そして、撹乱部３２は、受け付けた中間維持確率情報が示す中間維持確率ρmと、生成した乱数ｒiとを項目ｉ毎に比較する（ステップＳ２８）。
【０１０１】
ステップＳ２８における比較の結果、生成した乱数ｒiの値が、受け付けた中間維持確率情報が示す中間維持確率ρmよりも大きな場合（ｒi＞ρm）、撹乱部３２は、生成した第１の撹乱データに含まれる値のうち、その項目ｉの値を、その項目ｉに対応付けられた値Ｖｉ0〜ＶｉMi-1のうちのいずれかの値に置換する（ステップＳ２９）。
【０１０２】
一方、ステップＳ２８における比較の結果、生成した乱数ｒiの値が、受け付けた中間維持確率情報が示す中間維持確率ρm以下である場合には（ｒi≦ρm）、撹乱部３２は、受け付けた第１の撹乱データに含まれる値のうち、その項目ｉの値を置換しない。
【０１０３】
これにより、データ受信部３３に記憶されたデータに含まれるデータ値が、第２の維持確率ρ2に基づいて置換されたことになる。
【０１０４】
そして、撹乱部３２は、置換されたデータ値及び置換されなかったデータ値を含む第２の撹乱データを生成する（ステップＳ３０）。
【０１０５】
このように本実施形態において撹乱装置３０は、データ値を置換しない確率である第１の維持確率ρ1と、データ値を置換しない確率であり、所望のレベルを確保するための第２の維持確率ρ2とを設定する。
【０１０６】
そして、撹乱装置３０は、第１の撹乱データに含まれる値を置換しない確率である中間維持確率ρmを第１の維持確率ρ1と第２の維持確率ρ2とを用いて算出する。
【０１０７】
そして、撹乱装置３０は、第１の維持確率ρ1に基づいてデータ値を、その項目ｉに対応付けられた複数の値のうちのいずれかの値に置換した第１の撹乱データを生成する。
【０１０８】
さらに、撹乱装置３０は、中間維持確率ρmに基づいて第１の撹乱データに含まれる値を、その項目ｉに対応付けられた複数の値のいずれかの値に置換した第２の撹乱データを生成する。
【０１０９】
従って、データに含まれるデータ値を用いることなく、そのデータの秘匿性を所望のレベルまで高めることが可能となる。
【０１１０】
なお、上述した第１の実施形態では、サーバ１０における中間維持確率ρmに基づいた置換をデータベース管理者の指示によって行う場合、そのデータベース管理者が悪意を持って中間維持確率ρmに基づいた置換を実施しないという不正を行うことも考えられる。この場合、第１の維持確率ρ1に基づいた置換しか行われていないデータが不特定多数の者に公開されてしまう。つまり、秘匿性が所望のレベルまで達していないデータが公開されてしまうおそれがある。
【０１１１】
一方、本実施形態においては、第１の維持確率ρ1及び中間維持確率ρmに基づいた置換が１つの装置にて行われるため、データベース管理者が上述したような不正を行うのを回避することができる。
【０１１２】
また、上述した第１及び第２の実施形態では、撹乱を２回行うことによってデータの秘匿性を所望のレベルまで高める場合について説明したが、撹乱を３回以上行うことによってデータの秘匿性を所望のレベルまで高めることも可能である。
【０１１３】
例えば、上述した第１及び第２の実施形態においてさらにデータの秘匿性のレベルを高めたい場合を考えてみる。そのレベルを確保するための維持確率を第３の維持確率ρ3とすると、第３の維持確率ρ3を第２の維持確率ρ2で除算した値（ρ3／ρ2）を中間維持確率とし、その中間維持確率（ρ3／ρ2）に基づいて第２の撹乱データに含まれる値を置換すればよい。これにより、第３の維持確率ρ3に基づいてデータ値を置換したときと同じレベルの秘匿性を得ることができる。
【０１１４】
また、第１の維持確率ρ1はデータ値を置換しない確率であるため、（１−ρ1）はデータ値を置換する確率となる。つまり、第１の維持確率ρ1が設定されると、それとともに、データ値を置換する確率（１−ρ1）の値も決定することになる。このとき、データ値は、第１の維持確率ρ1に基づいて置換されても、確率（１−ρ1）に基づいて置換されても、同じレベルの秘匿性を確保することができる。従って、第１の維持確率ρ1の代わりに、確率（１−ρ1）を第１の確率として、データ値を置換してもよいこととなる。これは、第２の維持確率ρ2及び中間維持確率ρmについても同様である。
【０１１５】
また、本発明においては、サーバ、クライアント及び撹乱装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをサーバ、クライアント及び撹乱装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをサーバ、クライアント及び撹乱装置に読み込ませ、実行するものであっても良い。サーバ、クライアント及び撹乱装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、サーバ、クライアント及び撹乱装置に内蔵されたＨＤＤなどを指す。
【符号の説明】
【０１１６】
１０    サーバ
１１，３１    維持確率設定部
１２，２２，３２    撹乱部
１３    送受信部
２０−１〜２０−ｎ    クライアント
２１    記憶部
３０    撹乱装置
３３    データ受信部
【図１】
0005475608.tif 000008
【図２】
0005475608.tif 000009
【図３】
0005475608.tif 000010
【図４】
0005475608.tif 000011
【図５】
0005475608.tif 000012