JP2014164477A - k−匿名データベース制御装置及び制御方法 - Google Patents

k−匿名データベース制御装置及び制御方法 Download PDF

Info

Publication number
JP2014164477A
JP2014164477A JP2013034445A JP2013034445A JP2014164477A JP 2014164477 A JP2014164477 A JP 2014164477A JP 2013034445 A JP2013034445 A JP 2013034445A JP 2013034445 A JP2013034445 A JP 2013034445A JP 2014164477 A JP2014164477 A JP 2014164477A
Authority
JP
Japan
Prior art keywords
data
anonymous
data file
file
updated
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.)
Pending
Application number
JP2013034445A
Other languages
English (en)
Inventor
Norihiro Tsushima
紀宏 津嶋
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.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
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 Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2013034445A priority Critical patent/JP2014164477A/ja
Publication of JP2014164477A publication Critical patent/JP2014164477A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】データベースのk−匿名化処理を高速化する。
【解決手段】k−匿名データベース制御サーバは、元データファイルを入力し、k−匿名データファイルを出力するk−匿名データベース制御サーバであって、他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せ及びこの組合せの各々を識別するための匿名IDを格納する準識別子マスタファイル、及び、元データファイルのデータの各々に関して、準識別子マスタファイルを参照して、準識別子に対応する項目の内容を準識別子に置換し、置換した準識別子の組合せを識別する匿名IDを新匿名IDとして設定したデータを格納した中間データファイルを生成し、中間データファイルのデータの各々に関して、新匿名IDを参照して、k−匿名性を確保できないデータを中間データファイルから削除したk−匿名データファイルを生成するk−匿名データファイル生成部を有する。
【選択図】図1

Description

本発明は、データベース制御装置及び制御方法に関し、特にk−匿名データベース制御装置及び制御方法に関する。
個人を対象としたサービス業を主とする事業者が、個人情報を含む情報を取得し、取得した情報の共有化や二次利用などは、個人情報保護に反する場合がある。そこで、非特許文献1に記載されるように、個人情報を含む情報の取り扱いが個人情報保護に反しない方法が提案されている。
特に、個人情報保護の指標の一つとしてk−匿名性が提案されている(非特許文献1)。個人情報を統合化したデータから特定できる、同じ属性を持つ個人が少なくともk人であるというものである。この指標を満足するデータベースをk−匿名データベースと呼ぶ。個人情報は、氏名などのように個人を特定できる項目である識別子、年齢や住所などように他の項目と組み合わせることにより個人を特定できる項目である準識別子、および個人を特定できるとは考えられない項目に分けられる。k−匿名データベースでは、識別子を含まず(識別子の切り落とし)、準識別子はあいまい化される。他の準識別子と組み合わせても、同じ属性の個人がk人以上いるように、準識別子があいまい化される。
情報大航海ロジェクト「パーソナル情報保護・解析基盤」http://www.meti.go.jp/policy/it_policy/daikoukai/igvp/cp2_jp/common/024/010/post−61.html (2013.2.5)
一般にデータベースは、個人情報を1レコードのデータとして格納している場合、人数の増減に対してはレコードの追加・削除、個人情報の変更に対してはレコードを変更内容によって更新すればよい。
しかしながら、k−匿名データベースでは、k−匿名化していない元のデータベースのデータ(レコード)の追加・削除、および更新に加えて、k−匿名化のために識別子の切り落としや準識別子のあいまい化が必要となる。特に、k−匿名性を保証するための準識別子のあいまい化は、追加、削除、および更新するレコードを含むk−匿名データベース全体のデータに係る処理が必要になるので、データの追加・削除、または更新された元のデータベースからk−匿名データベースを、新たにバッチ処理により構築することが、一般的である。
そこで、特に元のデータベースのデータ数(レコード数)が膨大な場合、更にデータ(レコード)の追加・削除、および更新の頻度が高い場合に、k−匿名化処理の高速化が求められる。k−匿名化処理の高速化のためには、高速に更新を実行するために予め備えることと、更新処理そのものの高速化の少なくとも一方が必要である。
開示するk−匿名データベース制御サーバは、元データファイルを入力し、k−匿名データファイルを出力するk−匿名データベース制御サーバであって、他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せ及びこの組合せの各々を識別するための匿名IDを格納する準識別子マスタファイルを有する。元データファイルのデータの各々に関して、準識別子マスタファイルを参照して、準識別子に対応する項目の内容を準識別子に置換し、置換した準識別子の組合せを識別する匿名IDを新匿名IDとして設定したデータを格納した中間データファイルを生成し、中間データファイルのデータの各々に関して、新匿名IDを参照して、k−匿名性を確保できないデータを中間データファイルから削除したk−匿名データファイルを生成するk−匿名データファイル生成部を有する。
k−匿名データベース制御サーバの他の態様は、元データファイルの更新に応答して、中間データファイルのデータの各々に関して、新匿名IDを旧匿名IDとして設定し、元データファイルの更新されたデータに関して、準識別子マスタファイルを参照して、更新されたデータの更新内容に応じて、更新されたデータの準識別子に対応する項目の内容を準識別子に置換し、置換した準識別子の組合せを識別する匿名IDを新匿名IDとして設定して更新されたデータを中間データファイルに格納し、中間データファイルのデータの各々に関して、更新されたデータの新匿名ID及び旧匿名IDの少なくとも一方を参照して、k−匿名性を確保できないデータを中間データファイルから削除したk−匿名データファイルを生成する。
本発明によれば、高速に更新を実行するために予め備えることとして、高速にk−匿名化処理するための中間データファイルを設けることができる。他にデータベースのデータの更新に伴うk−匿名化処理が高速化できる。
k−匿名データベースシステムの構成例である。 識別子マスタファイルの例である。 準識別子マスタファイルの例である。 生成部の処理フローチャートである。 生成部の処理を説明するための元データファイルの例である。 生成部の処理を説明するための中間データファイルの例である。 生成部の処理を説明するためのk−匿名データファイルの例である。 更新部の処理フローチャートである。 追加処理のフローチャートである。 追加処理を説明するための元データファイルの例である。 追加処理を説明するための中間データファイルの例である。 追加処理を説明するためのk−匿名データファイルの例である。 削除処理のフローチャートである。 削除処理を説明するための元データファイルの例である。 削除処理を説明するための中間データファイルの例である。 削除処理を説明するためのk−匿名データファイルの例である。 変更処理のフローチャートである。 変更処理を説明するための元データファイルの例である。 変更処理を説明するための中間データファイルの例である。 変更処理を説明するためのk−匿名データファイルの例である。
図1に、k−匿名データベースシステムの構成例を示す。k−匿名データベースシステムにおけるk−匿名データベース制御サーバ(以下、制御サーバ)10は、k−匿名データベースの元にするデータベースである元データファイル40を入力し、k−匿名データベースとしてのk−匿名データファイル70を出力する。元データファイル40は、個人情報を含むデータベースを有する元データファイル提供サーバ11から制御サーバ10に提供される。制御サーバ10が出力するk−匿名データファイル70は、k−匿名データベースとしてk−匿名データベースサービスサーバ12によってユーザに公開される。制御サーバ10は、中間データファイル50をもつ。
元データファイル40、中間データファイル50及びk−匿名データファイル70はディスク装置などの記憶装置に格納される。これらのファイルは、データ保護(個人情報保護)の観点から、物理的にまたは論理的に互いに異なる記憶装置に格納されることが望ましい。
制御サーバ10は、k−匿名データファイル生成部(以下、生成部)100及びk−匿名データファイル更新部(以下、更新部)200の処理を実行するCPU20、並びに識別子マスタファイル31、準識別子マスタファイル32、更新日時33及びワーキング領域34を有するメモリ30を含んでいる。ワーキング領域34は、後述するように、生成部100及び更新部200が、WKA、WKB,WKCに分けて作業領域として用いる。
k−匿名データベースのkの値は、同じ属性を持つ個人が少なくともk人であるという意味であるので、k−匿名データベースサービスサーバ12のユーザによるデータの使い勝手の観点からは小さな値が望まれるが、k−匿名データベースから個人情報を特定し難くする観点からは大きな値が望まれる。ここでは、説明を簡単にするために、kの値を2とする。後述する識別子、準識別子およびkの値の決定は、元データファイル40に対応してk−匿名データファイル70を生成するための、個人情報保護を考慮した考え方に依存するものであり、ここでは言及しない。
図2に、識別子マスタファイル31の例を示す。識別子マスタファイル31は、氏名などのように個人を特定できる項目である識別子を格納し、ここでは、後述する元データファイル40のデータ(データレコード)を特定する項目である元IDと元データファイル40の項目として含まれる名前を格納している。識別子マスタファイル31は、前述の個人情報保護の考え方に基づいて予め作られる。
図3に、準識別子マスタファイル32の例を示す。準識別子マスタファイル32は、年齢や住所などように他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せを格納する。ここでは、後述する元データファイル40の項目である年齢を曖昧化した年代34および住所を曖昧化した地域35の組合せの一つ一つに、匿名ID36と呼ぶIDを格納している。すなわち、匿名IDは、他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せの各々を識別する識別子である。図3に示す例では、25〜29歳の年代34の、地域35としてP市S町に住む個人を表す匿名ID36が「5」である。
図3は、2項目の準識別子の組合せを示す2次元テーブルで表しているが、準識別子の項目数に応じて、準識別子マスタファイル32の構成として望ましい形式が選択される。準識別子マスタファイル32は、前述の個人情報保護の考え方に基づいて予め作られる。
準識別子の曖昧化について簡単に説明する。たとえば、他の項目と組み合わせることにより個人を特定できる、年齢を年代34とすることにより、一般に年代34には多くの個人が含まれるので、個人を特定し難くなる。同様に、町名や番地を含む住所を、番地を削除した町名を地域35とすることにより、地域35には多くの個人の住所が含まれるので、個人を特定し難くなる。これが、準識別子の曖昧化の例である。
準識別子マスタファイル32は、他の観点に立つと、元データファイル40の各データを準識別子の組合せによって分類したカテゴリーの一覧表である。したがって、準識別子マスタファイル32の匿名ID36は、各カテゴリーに付した識別子(記号、番号など)である。ここでは、k匿名性に関する識別子との混同を避けるために匿名IDと呼ぶ。
図4に、生成部100の処理フローチャートを示す。生成部100の処理は、元データファイル40からk−匿名データファイル70を生成する処理である。生成部100の処理の説明のために、図5に示す元データファイル40、図6に示す中間データファイル50及び図7に示すk−匿名データファイル70の例を用いる。
図5に示す元データファイル40は、データの項目として元ID41、名前42、年齢43、住所44、支払方法45および金額46を含み、元ID41が「1」〜「10」のデータが格納されている。図6に示す中間データファイル50は、識別子51、準識別子54、その他57、及び管理ID60を格納する。識別子51には、元ID52、名前53がある。準識別子54には、年代55、地域56がある。その他57には、支払方法58、金額59がある。管理ID60には、旧匿名ID61、新匿名ID62および公開フラグ63がある。
生成部100は、たとえば、元データファイル提供サーバ11から元データファイル40を提供する旨のメッセージを受けた制御サーバ10によって起動される。生成部100の実行開始は、他の方法として、制御サーバ10による元データファイル40へのアクセス可能の検知に基づいても良く、多様である。
生成部100は、元データファイル40から中間データファイル50を生成する(ステップ101)。元データファイル40の各データに関して、中間データファイル50の(1)識別子51、(2)準識別子54、および(3)その他を生成する。(1)〜(3)の生成を個別に説明する。
(1)識別子マスタファイル31を参照して、識別子である、元データファイル40の元ID41および名前42を、中間データファイル50の識別子51の元ID52および名前53として格納する。これらの識別子の複写は説明を分かりやすくするためである。後述するように、中間データファイル50からk−匿名データファイル70を生成する段階で、これらの識別子を削除するので、これらの識別子を複写する必要が無い。各データを識別するために、以下の説明では元ID41や元ID52を用いるが、識別子を複写しない場合は、これらに代えて、ファイルのレコード番号などのデータを特定できる情報を用いればよい。
(2)準識別子マスタファイル32を参照して、元データファイル40の年齢43および住所44を、中間データファイル50の準識別子54の年代55および地域56として格納する。たとえば、元ID41が「1」、名前42が「AA」の、年齢43の「33歳」、住所44の「P市S町1−2−3」は、準識別子マスタファイル32では、各々年代34として「40−44」、地域35として「P市S町」であるので、それぞれを準識別子54の年代55および地域56に置換して、中間データファイル50に格納する。
(3)元データファイル40の、識別子および準識別子以外の支払方法45および金額46を、中間データファイル50のその他57の支払方法58および金額59に格納する。元データファイル40の各項目の、識別子マスタファイル31及び準識別子マスタファイル32に定義されていない項目を中間データファイル50のその他57の項目とする。したがって、元データファイル40の各項目は、識別子および準識別子のいずれかに分けられ、その他57に対応する項目が無い場合もある。この場合は(3)の処理は実行されない。
生成部100は、準識別子マスタファイル32を参照して、中間データファイル50の各データの準識別子54と対応する匿名ID36を、そのデータの管理ID60の新匿名ID62として格納する(ステップ102)。たとえば、中間データファイル50の元ID52が「1」のデータの準識別子54は、年代55が「30−34」であり、地域56が「P市S町」であるので、準識別子マスタファイル32を参照すると、匿名ID36として「7」が得られるので、この「7」を元ID52が「1」のデータの新匿名ID62として格納する。旧匿名ID61には何も格納せずに、ブランク又はNULLとする。
生成部100は、中間データファイル50の各データの公開フラグ63に0を格納する(ステップ103)。公開フラグ63は、対応するデータのk−匿名データとしての、公開可(フラグ=1)又は公開不可(非公開:フラグ=0)を示す。公開可は、k−匿名性が確保されているとして公開可能なデータを示す。逆に、非公開は、k−匿名性が確保されていないので、公開不可能なデータを示す。
生成部100は、匿名IDの初期値を作業領域WKAに設定する(ステップ104)。匿名IDの初期値とは、準識別子マスタファイル32の匿名ID36の最小値又は最大値である。ここでは、最小値として説明する。作業領域WKAは、準識別子マスタファイル32に定義されているすべての匿名ID36に関してステップ105〜ステップ110を実行するためのインデックスである。
生成部100は、作業領域WKBおよびWKCをクリアする(ステップ105)。WKCは、カウンタとして用いる。
生成部100は、中間データファイル50の各データに関して、WKAの匿名IDに等しい新匿名ID62のデータの元ID52をWKBに格納し、WKCの内容に1を加算する(ステップ106)。中間データファイル50の各データ(図6の場合、10人分のデータ)に関して、本ステップを終了すると、WKCの値(カウンタ値)に相当する数の元ID52がWKBに格納されている。
生成部100は、WKCの値(カウンタ値)がk以上であるかを判定し(ステップ107)、k以上である場合は、同じ新匿名ID62のデータがk以上であり、k‐匿名性を確保できることを意味するので、WKBに格納しているデータの元ID52に対応する公開フラグ63に1(公開)を格納する(ステップ108)。ステップ107の判定でk未満の場合は、k‐匿名性を確保できないことを意味するので、ステップ108をスキップし(公開フラグ63は0)、ステップ109に移る。
生成部100は、WKAの匿名IDの値を更新する(ステップ109)。ステップ104で最小値を格納したので、1を加算する。
生成部100は、WKAに格納されている匿名IDの値が、準識別子マスタファイル32の匿名ID36の最大値を超えているかにより終了を判定し(ステップ110)、超えていなければ、ステップ105に戻り、ステップ105〜ステップ110のループ処理を繰り返す。
ステップ105〜ステップ110のループ処理を繰り返し、中間データファイル50の各データに関してk‐匿名性を確保できるならば、換言すると同じ新匿名ID62のデータの数がk以上であるならば、それらに対応する公開フラグを1とするので、k−匿名データベースのデータとして公開する。
生成部100は、現在時刻を更新日時33に格納する(ステップ111)。ここでは、k−匿名データファイル70を生成した時刻として更新日時33を格納するが、更新日時33を、元データファイル40を参照した時刻とする場合は、ステップ101の前に実行すればよい。
生成部100は、中間データファイル50から非公開のデータ(図6の公開フラグが0のデータ)並びに識別子51及び管理ID60(図6の識別子51及び管理ID60の各列)を削除した、k−匿名データファイル70を生成する(ステップ112)。図7に示すk−匿名データファイル70を、図6に示す中間データファイル50と比較すると、公開フラグが0であるデータ(元ID52が5、6のデータ)の行と、識別子51及び管理ID60の各列が削除されている。前述のように、中間データファイル50に識別子51を格納しない場合は、識別子51の削除は不要である。
生成部100は、k−匿名データベースサービスサーバ12にk−匿名データファイル70へのアクセスを許可する(ステップ113)。アクセスされた許可されたk−匿名データファイル70は、k−匿名データベースサービスサーバ12によって、k−匿名データベースとしてユーザにサービスされる。
以上のように生成部100は、元データファイル40のデータの各々に関して、準識別子マスタファイル32を参照してデータの各々の準識別子に対応する項目の内容を準識別子54に置換し、置換した準識別子54の組合せを識別する匿名ID36を新匿名ID62として設定したデータを格納した中間データファイル50を生成し、中間データファイル50のデータの各々に関して、新匿名ID62を参照して、k−匿名性を確保できないデータを中間データファイル50から削除したk−匿名データファイル70を生成する。
以上説明した生成部100の処理により、次に説明する更新部200の処理を高速に実行するために予め備えることとして、中間データファイルを設けることができる。
図8に、更新部200の処理フローチャートを示す。更新部200の処理は、元データファイル40に含まれる更新データをk−匿名データファイル70に反映する処理である。元データファイル40に含まれるデータの更新は、新たなデータの追加、格納されているデータの削除、及び格納されているデータの変更である。
更新部200は、生成部100と同様に、たとえば、元データファイル提供サーバ11から更新したデータを特定する情報(たとえば、元ID)を含んだ、元データファイル40を更新した旨のメッセージを受けた制御サーバ10によって起動される。更新部200の実行開始は、他の方法として、制御サーバ10が元データファイルの更新ログをモニターし、元データファイル40の更新の検知に基づいても良く、多様である。以下、更新部200の処理を、生成部100と異なる処理を中心として説明する。
更新部200は、中間データファイル50の各データの新匿名ID62を旧匿名ID61に複写する(ステップ201)。
更新部200は、元データファイル40のデータの更新は、追加、削除、及び変更のいずれであるかを判定する(ステップ202)。追加、削除、及び変更のいずれかの更新を示す情報及び更新されたデータを示す情報(たとえば、元ID41)は、前述のように、元データファイル提供サーバ11からの更新した旨のメッセージに含まれていてもよいし、元データファイル40のデータの更新に伴うログ情報を更新部200が参照して、取得できるようにしても良い。
更新部200は、追加、削除、及び変更のいずれかに応じて、更新されたデータを示す情報(たとえば、元ID41)を、たとえば引数として、追加処理(ステップ300)、削除処理(ステップ400)、及び変更処理(ステップ500)のいずれかを実行する。追加処理、削除処理、及び変更処理については後述する。
更新部200は、k−匿名データベースサービスサーバ12によって、ユーザにサービスされているk−匿名データファイル70へのk−匿名データベースサービスサーバ12からのアクセスを禁止する(ステップ203)。アクセスの禁止は、更新部200とk−匿名データベースサービスサーバ12からのアクセスの競合を避けるためである。
更新部200は、現在時刻を更新日時33に格納し(ステップ204)、中間データファイル50から非公開のデータ(行)並びに識別子51及び管理ID60(列)を削除した、k−匿名データファイル70を生成し(ステップ205)、k−匿名データベースサービスサーバ12にk−匿名データファイル70へのアクセスを許可する(ステップ206)。ステップ204〜206は、生成部100のステップ111〜113と同様であり、更新日時33の意味も同様である。
更新部200の処理を、元データファイル40に更新データは一つであることを前提に説明した。元データファイル40に同時に複数の更新データがある場合は、図8の更新部200の処理を更新データの数に応じて繰り返せばよい。
図9に、追加処理(ステップ300)のフローチャートを示す。追加処理は、元データファイル40への追加データに応じて、k−匿名データファイル70を更新する処理である。追加処理の説明のために、図10に示す元データファイル40、図11に示す中間データファイル50及び図12に示すk−匿名データファイル70の例を用いる。図10に示す元データファイル40には、図5に示す元データファイル40に元ID41が「11」のデータが追加されている。
追加処理は、図10に示す元データファイル40への追加データ(元ID41が「11」のデータ)を中間データファイル50に追加する(ステップ301)。ステップ301は、生成部100のステップ101と同様であるが、対象とするデータが追加データである。
追加処理は、準識別子マスタファイル32を参照して、中間データファイル50の追加データ(元ID52が「11」のデータ)の準識別子54と対応する匿名ID36である「8」を、追加データの新匿名ID62として格納し(ステップ302)、中間データファイル50の追加データの公開フラグ63に0を格納する(ステップ303)。ステップ302およびステップ303の処理は、生成部100のステップ102及びステップ103と同様であるが、生成部100が中間データファイル50の各データを対象としているのに対して、追加処理は追加データを対象としている。
追加処理は、追加データの新匿名ID62「8」をWKAに設定し、WKBおよびWKCをクリアする(ステップ304)。WKAは、後述から明らかになるように更新する必要が無いので、追加データの新匿名ID62「8」をWKAに代えて用いてもよい。すなわち、WKAを使用しなくてもよい。
追加処理は、中間データファイル50の各データに関して、WKAの新匿名ID「8」に等しい新匿名ID62のデータの元ID52をWKBに格納し、WKCの内容に1を加算する(ステップ305)。図11の中間データファイル50についてこのステップを終えると、WKBには、元ID52の値として「5」と「11」が格納され、WKCにはカウント値として「2」が格納されている。
追加処理は、WKCの値(カウンタ値)がk以上であるかを判定し(ステップ306)、k以上である場合は、新匿名ID62「8」のデータがk以上であり、k‐匿名性を確保できることを意味するので、WKBに格納しているデータの元ID52に対応する公開フラグ63に1を格納する(ステップ307)。k=2としているので、元ID52が「5」と「11」の公開フラグ63に1を格納する(図11では、0→1と表記)。
追加処理は、ステップ306でWKCの値(カウンタ値)がk以上でない場合を含めて処理を終了し、図8のステップ203に戻る。
図8のステップ203以降の処理を実行すると、図12に示すk−匿名データファイル70が生成され、k−匿名データベースサービスサーバ12によって、ユーザに提供される。図11に示す中間データファイル50からの、図12に示すk−匿名データファイル70の生成は、前述のステップ205と同様の処理によるものである。
以上の例は、追加データによりk−匿名データファイル70が更新されているが、追加データが中間データファイル50へ追加されるが、追加データの新匿名IDに等しい新匿名IDの他のデータが存在しない場合などは、追加データが非公開になるので、k−匿名データファイル70は実質的に更新されない。
以上の説明から明らかなように、追加処理は追加データを対象とした処理であり、言い換えると追加データの新匿名ID62を対象とした処理であるので、生成部100のWKAに格納した匿名IDを更新に伴うステップ105〜ステップ110のループ処理を実行しなくて良い。たとえば、新匿名ID62の数がたとえば10であるならば、生成部100は10回ループする必要があるが、追加処理では1回の処理でよい。すなわち、新匿名ID62の数が多ければ多いほど、中間データファイル50を用いた追加処理は、中間データファイル50を用いずに常に新規にk−匿名データファイル70を生成する場合に比べて、高速処理(処理時間が短い)が実現できる。
図13に、削除処理(ステップ400)のフローチャートを示す。削除処理は、元データファイル40の削除データに応じて、k−匿名データファイル70を更新する処理である。削除処理の説明のために、図14に示す元データファイル40、図15に示す中間データファイル50及び図16に示すk−匿名データファイル70の例を用いる。図14に示す元データファイル40は、図6に示す元データファイル40から元ID41が「3」のデータが削除されている。図14では、削除データを明示するために、元ID41が「3」の行を残してあるが、図8の更新処理200から削除処理(ステップ400)が呼び出される場合、引数などとして元ID41が「3」が引き継がれるので、元ID41が「3」の行は削除されていても良い。
削除処理は、削除データの旧匿名ID61「4」をWKAに設定し、WKBおよびWKCをクリアする(ステップ401)。更新部200のステップ201で、新匿名ID62が旧匿名ID61に複写されているので、削除データの旧匿名ID61「4」は、図6の中間データファイル50に示すように、削除データの削除前の新匿名ID「4」である。
削除処理は、図14に示す元データファイル40から削除されたデータ(元ID41が「3」のデータ)を中間データファイル50から削除する(ステップ402)。図15の中間データファイル50では、分りやすくするために、元ID52と旧匿名ID61を残し、他の項目を削除して表記してある。
削除処理は、中間データファイル50の各データに関して、WKAの旧匿名ID「4」に等しい新匿名ID62のデータの元ID52をWKBに格納し、WKCの内容に1を加算する(ステップ403)。図15の中間データファイル50についてこのステップを終えると、WKBには、元ID52が「8」が格納され、WKCにはカウント値として「1」が格納されている。
削除処理は、WKCの値(カウンタ値)がk以上であるかを判定し(ステップ404)、k以上でない場合は、新匿名ID62が「4」のデータがk未満であり、k‐匿名性を確保できないことを意味するので、WKBに格納しているデータの元ID52に対応する公開フラグ63に0を格納する(ステップ405)。k=2としているので、元ID52が「8」の公開フラグ63に0を格納する(図15では、1→0と表記)。
削除処理は、ステップ404でWKCの値(カウンタ値)がk以上の場合を含めて処理を終了し、図8のステップ203に戻る。
図8のステップ203以降の処理を実行すると、図16に示すk−匿名データファイル70が生成され、k−匿名データベースサービスサーバ12によって、ユーザに提供される。図15に示す中間データファイル50からの、図16に示すk−匿名データファイル70の生成は、前述のステップ205と同様の処理によるものである。
以上の例は、削除データによりk−匿名データファイル70が更新されているが、削除データが中間データファイル50から削除されるが、削除データの新匿名IDに等しい新匿名IDの他のデータが存在しなかった場合などは、削除データが非公開であったので、k−匿名データファイル70は実質的に更新されない。
以上の説明から明らかなように、削除処理は削除データを対象とした処理であり、言い換えると削除データの旧匿名ID61を対象とした処理であるので、生成部100のWKAに格納した匿名IDを更新に伴うステップ105〜ステップ110のループ処理を実行しなくて良い。すなわち、中間データファイル50を用いた削除処理は、中間データファイル50を用いずに、データの削除に伴い新規にk−匿名データファイル70を生成する場合に比べて、高速処理(処理時間が短い)が実現できる。
図17に、変更処理(ステップ500)のフローチャートを示す。変更処理は、元データファイル40の変更後データに応じた、k−匿名データファイル70のk−匿名データを変更する処理である。変更処理は、以下の説明からも明らかなように、変更データの変更前データの削除処理と変更後データの追加処理の組合せであると考えればよい。以下、変更後データを変更データと呼ぶ。変更処理の説明のために、図18に示す元データファイル40、図19に示す中間データファイル50及び図20に示すk−匿名データファイル70の例を用いる。図18に示す元データファイル40には、図6に示す元データファイル40に元ID41が「7」のデータが変更されている。具体的には、元ID41が「7」の住所44が「P市S町7−8−9」から、図18に示す元データファイル40では、元ID41が「7」の住所44が「Q市T町11−12−13」に変更されている。
変更処理は、図18に示す元データファイル40の変更データ(元ID41が「7」のデータ)に対応して図19に示す中間データファイル50のデータを変更する(ステップ501)。変更した中間データファイル50のデータも変更データと呼ぶ。ステップ501は、生成部100のステップ101と同様であるが、対象とするデータが変更データである。
変更処理は、準識別子マスタファイル32を参照して、中間データファイル50の変更データ(元ID52が「7」のデータ)の準識別子54と対応する匿名ID36である「8」を、変更データの新匿名ID62として格納し(ステップ502)、中間データファイル50の変更データの公開フラグ63に0を格納する(ステップ503)。ステップ502およびステップ503の処理は、生成部100のステップ102及びステップ103と同様であるが、生成部100が中間データファイル50の各データを対象としているのに対して、変更処理は変更データを対象としている。
変更処理は、変更データの新匿名ID62「8」をWKAに設定し、WKBおよびWKCをクリアする(ステップ504)。WKAは、後述から明らかになるように更新する必要が無いので、変更データの新匿名ID62「8」をWKAに代えて用いてもよい。
変更処理は、中間データファイル50の各データに関して、WKAの新匿名ID「8」に等しい新匿名ID62のデータの元ID52をWKBに格納し、WKCの内容に1を加算する(ステップ505)。図19の中間データファイル50についてこのステップを終えると、WKBには、元ID52の値として「5」と「7」が格納され、WKCにはカウント値として「2」が格納されている。
変更処理は、WKCの値(カウンタ値)がk以上であるかを判定し(ステップ506)、k以上である場合は、新匿名ID62「8」のデータがk以上であり、k‐匿名性を確保できることを意味するので、WKBに格納しているデータの元ID52に対応する公開フラグ63に1を格納する(ステップ307)。k=2としているので、元ID52が「5」と「7」の公開フラグ63に1を格納する(図18では、0→1と表記)。ステップ503で、元ID52が「7」の公開フラグ63に0を格納しているので、図18では、元ID52が「7」の公開フラグ63を0→1と表記している。
変更処理は、変更データの旧匿名ID61「7」をWKAに設定し、WKBおよびWKCをクリアする(ステップ508)。更新部200のステップ201で、新匿名ID62が旧匿名ID61に複写されているので、変更データの旧匿名ID61「7」は、図19の中間データファイル50に示すように、変更前データの新匿名ID「7」である。
変更処理は、中間データファイル50の各データに関して、WKAの旧匿名ID「7」に等しい新匿名ID62のデータの元ID52をWKBに格納し、WKCの内容に1を加算する(ステップ509)。図19の中間データファイル50についてこのステップを終えると、WKBには、元ID52が「1」が格納され、WKCにはカウント値として「1」が格納されている。
変更処理は、WKCの値(カウンタ値)がk以上であるかを判定し(ステップ510)、k以上でない場合は、新匿名ID62が「7」のデータがk未満であり、k‐匿名性を確保できないことを意味するので、WKBに格納しているデータの元ID52に対応する公開フラグ63に0を格納する(ステップ511)。k=2としているので、元ID52が「1」の公開フラグ63に0を格納する(図19では、1→0と表記)。
変更処理は、ステップ510でWKCの値(カウンタ値)がk以上の場合を含めて処理を終了し、図8のステップ203に戻る。
図8のステップ203以降の処理を実行すると、図20に示すk−匿名データファイル70が生成され、k−匿名データベースサービスサーバ12によって、ユーザに提供される。図19に示す中間データファイル50からの、図20に示すk−匿名データファイル70の生成は、前述のステップ205と同様の処理によるものである。
以上の説明から明らかなように、変更処理のステップ501〜ステップ507は、図9に示した追加処理のステップ301〜ステップ307と同様であり、ステップ508〜ステップ511は、図13に示した削除処理のステップ402を除いた各ステップと同様であり、変更データの変更前データの削除処理と変更後データの追加処理の組合せである。したがって、追加処理や削除処理に関して説明したように、変更処理においても変更データを対象とした処理であり、言い換えると変更データの新匿名ID62および旧匿名ID61を対象とした処理であるので、生成部100のWKAに格納した匿名IDを更新に伴うステップ105〜ステップ110のループ処理を実行しなくて良い。すなわち、中間データファイル50を用いた変更処理は、中間データファイル50を用いずに、データの変更に伴い新規にk−匿名データファイル70を生成する場合に比べて、高速処理(処理時間が短い)が実現できる。
以上のように更新部200は、元データファイル40の更新に応答して、中間データファイル50のデータの各々に関して、新匿名ID62を旧匿名ID61として設定し、元データファイル40の更新されたデータに関して、準識別子マスタファイル32を参照して、更新されたデータの更新内容(追加、削除、変更)に応じて、元データファイル40の更新されたデータの準識別子に対応する項目の内容を準識別子54に置換し、置換した準識別子54の組合せを識別する匿名ID36を新匿名ID62として設定して更新されたデータを中間データファイル50に格納し、中間データファイル50の更新されたデータの新匿名ID62及び旧匿名ID61の少なくとも一方を参照して、中間データファイル50のデータの各々に関して、k−匿名性を確保できないデータを中間データファイル50から削除したk−匿名データファイル70を生成する。
本実施形態によれば、高速に更新を実行するために予め備えることとして、高速にk−匿名化処理するための中間データファイルを設けることができる。他にデータベースのデータの更新に伴うk−匿名化処理が高速化できる。
10:k−匿名データベース制御サーバ、11:元データファイル提供サーバ、12:k−匿名データベースサービスサーバ、20:CPU、30:メモリ、31:識別子マスタファイル、32:準識別子マスタファイル、33:更新日時、34:ワーキング領域、40:元データファイル、50:中間データファイル、70:k−匿名データファイル、100:k−匿名データファイル生成部、200:k−匿名データファイル更新部。

Claims (14)

  1. 元データファイルを入力し、k−匿名データファイルを出力するk−匿名データベース制御サーバであって、
    他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せ及び前記組合せの各々を識別するための匿名IDを格納する準識別子マスタファイル、及び、
    前記元データファイルの第1のデータの各々に関して、前記準識別子マスタファイルを参照して前記第1のデータの各々の前記項目の内容を前記準識別子に置換し、置換した前記準識別子の組合せを識別する前記匿名IDを新匿名IDとして設定した第2のデータを格納した中間データファイルを生成し、前記中間データファイルの前記第2のデータの各々に関して、前記新匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成するk−匿名データファイル生成部を有することを特徴とするk−匿名データベース制御サーバ。
  2. 前記元データファイルの更新に応答して、前記中間データファイルの前記第2のデータの各々に関して、前記新匿名IDを旧匿名IDとして設定し、前記元データファイルの更新された前記第1のデータに関して、前記準識別子マスタファイルを参照して、更新された前記第1のデータの更新内容に応じて、更新された前記第1のデータの前記項目の内容を前記準識別子に置換し、置換した前記準識別子の組合せを識別する前記匿名IDを前記新匿名IDとして設定して更新された前記第2のデータを前記中間データファイルに格納し、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名ID及び前記旧匿名IDの少なくとも一方を参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成するk−匿名データファイル更新部をさらに有することを特徴とする請求項1記載のk−匿名データベース制御サーバ。
  3. 前記k−匿名データファイル更新部は、更新された前記第1のデータの更新内容が前記元データファイルへの新たな前記第1のデータの追加であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項2記載のk−匿名データベース制御サーバ。
  4. 前記k−匿名データファイル更新部は、更新された前記第1のデータの更新内容が前記元データファイルからの前記第1のデータの削除であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記旧匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項2記載のk−匿名データベース制御サーバ。
  5. 前記k−匿名データファイル更新部は、更新された前記第1のデータの更新内容が前記元データファイルからの前記第1のデータの変更であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名ID及び前記旧匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項2記載のk−匿名データベース制御サーバ。
  6. k−匿名性を確保できない前記第2のデータは、前記中間データファイルの前記第2のデータの各々に関して、更新した前記第2のデータの前記新匿名ID及び/又は前記旧匿名IDと等しい前記新匿名IDの前記第2のデータの数が、予め定めた値であるk未満の前記第2のデータであることを特徴とする請求項2〜5のいずれか1項に記載のk−匿名データベース制御サーバ。
  7. k−匿名性を確保できない前記第2のデータは、互いに等しい前記新匿名IDが設定された前記第2のデータの数が、予め設定された値であるk未満の前記第2のデータであることを特徴とする請求項1記載のk−匿名データベース制御サーバ。
  8. 元データファイルを入力し、k−匿名データファイルを出力するk−匿名データベース制御サーバの制御方法であって、前記k−匿名データベース制御サーバは、
    他の項目と組み合わせることにより個人を特定できる項目を曖昧化した準識別子の組合せ及び前記組合せの各々を識別するための匿名IDを格納する準識別子マスタファイルを有し、
    前記元データファイルの第1のデータの各々に関して、前記準識別子マスタファイルを参照して前記第1のデータの各々の前記項目の内容を前記準識別子に置換し、置換した前記準識別子の組合せを識別する前記匿名IDを新匿名IDとして設定した第2のデータを格納した中間データファイルを生成し、前記中間データファイルの前記第2のデータの各々に関して、前記新匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とするk−匿名データベース制御方法。
  9. 前記k−匿名データベース制御サーバは、前記元データファイルの更新に応答して、前記中間データファイルの前記第2のデータの各々に関して、前記新匿名IDを旧匿名IDとして設定し、前記元データファイルの更新された前記第1のデータに関して、前記準識別子マスタファイルを参照して、更新された前記第1のデータの更新内容に応じて、更新された前記第1のデータの前記項目の内容を前記準識別子に置換し、置換した前記準識別子の組合せを識別する前記匿名IDを前記新匿名IDとして設定して更新された前記第2のデータを前記中間データファイルに格納し、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名ID及び前記旧匿名IDの少なくとも一方を参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項8記載のk−匿名データベース制御方法。
  10. 前記k−匿名データベース制御サーバは、更新された前記第1のデータの更新内容が前記元データファイルへの新たな前記第1のデータの追加であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項9記載のk−匿名データベース制御方法。
  11. 前記k−匿名データベース制御サーバは、更新された前記第1のデータの更新内容が前記元データファイルからの前記第1のデータの削除であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記旧匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項9記載のk−匿名データベース制御方法。
  12. 前記k−匿名データベース制御サーバは、更新された前記第1のデータの更新内容が前記元データファイルからの前記第1のデータの変更であるとき、前記中間データファイルの前記第2のデータの各々に関して、更新された前記第2のデータの前記新匿名ID及び前記旧匿名IDを参照して、k−匿名性を確保できない前記第2のデータを前記中間データファイルから削除した前記k−匿名データファイルを生成することを特徴とする請求項9記載のk−匿名データベース制御方法。
  13. k−匿名性を確保できない前記第2のデータは、前記中間データファイルの前記第2のデータの各々に関して、更新した前記第2のデータの前記新匿名ID及び/又は前記旧匿名IDと等しい前記新匿名IDの前記第2のデータの数が、予め定めた値であるk未満の前記第2のデータであることを特徴とする請求項9〜12のいずれか1項に記載のk−匿名データベース制御方法。
  14. k−匿名性を確保できない前記第2のデータは、互いに等しい前記新匿名IDが設定された前記第2のデータの数が、予め設定された値であるk未満の前記第2のデータであることを特徴とする請求項8記載のk−匿名データベース制御方法。
JP2013034445A 2013-02-25 2013-02-25 k−匿名データベース制御装置及び制御方法 Pending JP2014164477A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013034445A JP2014164477A (ja) 2013-02-25 2013-02-25 k−匿名データベース制御装置及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013034445A JP2014164477A (ja) 2013-02-25 2013-02-25 k−匿名データベース制御装置及び制御方法

Publications (1)

Publication Number Publication Date
JP2014164477A true JP2014164477A (ja) 2014-09-08

Family

ID=51615035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013034445A Pending JP2014164477A (ja) 2013-02-25 2013-02-25 k−匿名データベース制御装置及び制御方法

Country Status (1)

Country Link
JP (1) JP2014164477A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016139261A (ja) * 2015-01-27 2016-08-04 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ 匿名化処理装置、匿名化処理方法及びプログラム
CN106021541A (zh) * 2016-05-26 2016-10-12 徐州医科大学 区分准标识符属性的二次k-匿名隐私保护算法
JP2019175002A (ja) * 2018-03-27 2019-10-10 富士通株式会社 匿名化装置
CN113642036A (zh) * 2021-07-07 2021-11-12 阿里巴巴新加坡控股有限公司 数据处理方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217425A (ja) * 2007-03-05 2008-09-18 Hitachi Ltd 情報出力装置、情報出力方法、及び、情報出力プログラム
WO2012063546A1 (ja) * 2010-11-09 2012-05-18 日本電気株式会社 匿名化装置及び匿名化方法
US20120197915A1 (en) * 2009-10-09 2012-08-02 Nec Corporation Information management apparatus, data processing method and computer program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217425A (ja) * 2007-03-05 2008-09-18 Hitachi Ltd 情報出力装置、情報出力方法、及び、情報出力プログラム
US20120197915A1 (en) * 2009-10-09 2012-08-02 Nec Corporation Information management apparatus, data processing method and computer program
WO2012063546A1 (ja) * 2010-11-09 2012-05-18 日本電気株式会社 匿名化装置及び匿名化方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016139261A (ja) * 2015-01-27 2016-08-04 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ 匿名化処理装置、匿名化処理方法及びプログラム
WO2016121493A1 (ja) * 2015-01-27 2016-08-04 株式会社エヌ・ティ・ティピー・シーコミュニケーションズ 匿名化処理装置、匿名化処理方法及びプログラム
US10817621B2 (en) 2015-01-27 2020-10-27 Ntt Pc Communications Incorporated Anonymization processing device, anonymization processing method, and program
CN106021541A (zh) * 2016-05-26 2016-10-12 徐州医科大学 区分准标识符属性的二次k-匿名隐私保护算法
CN106021541B (zh) * 2016-05-26 2017-08-04 徐州医科大学 区分准标识符属性的二次k‑匿名隐私保护算法
JP2019175002A (ja) * 2018-03-27 2019-10-10 富士通株式会社 匿名化装置
JP7063048B2 (ja) 2018-03-27 2022-05-09 富士通株式会社 匿名化装置
CN113642036A (zh) * 2021-07-07 2021-11-12 阿里巴巴新加坡控股有限公司 数据处理方法、装置及系统
CN113642036B (zh) * 2021-07-07 2023-07-28 阿里巴巴华北技术有限公司 数据处理方法、装置及系统

Similar Documents

Publication Publication Date Title
CN110275884B (zh) 数据存储方法及节点
US10275611B1 (en) Methods and apparatus for sharing and searching encrypted data
US10733055B1 (en) Methods and apparatus related to graph transformation and synchronization
US8719237B2 (en) Method and apparatus for deleting duplicate data
JP6281225B2 (ja) 情報処理装置
US20150293958A1 (en) Scalable data structures
KR101738647B1 (ko) 데이터 유지 시스템
EP3646133B1 (en) Systems and methods of creation and deletion of tenants within a database
JP7408626B2 (ja) テナント識別子の置換
JP2021518021A (ja) データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体
EP2778953A1 (en) Encoded-search database device, method for adding and deleting data for encoded search, and addition/deletion program
JP2020046738A (ja) ブロックチェーン履歴蓄積システム及びブロックチェーン履歴蓄積方法
WO2020095662A1 (ja) 匿名化システムおよび匿名化方法
CN108255959A (zh) 一种Redis中数据查询方法及装置
JP2022549983A (ja) コンテキスト付きのコンテンツ・アイテム共有
JP2014164477A (ja) k−匿名データベース制御装置及び制御方法
WO2023060046A1 (en) Errors monitoring in public and private blockchain by a data intake system
CN108628969B (zh) 一种空间关键字索引方法及平台、存储介质
CN114282071A (zh) 基于图数据库的请求处理方法、装置、设备及存储介质
US20210182314A1 (en) Systems and methods for on-chain / off-chain storage using a cryptographic blockchain
US20170091260A1 (en) Relational file database and graphic interface for managing such a database
AU2019350694B2 (en) Identification of records for post-cloning tenant identifier translation
JP2014164476A (ja) k−匿名データベース制御サーバおよび制御方法
US9256644B1 (en) System for identifying and investigating shared and derived content
US20230153300A1 (en) Building cross table index in relational database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170117