(58)【調査した分野】(Int.Cl.,DB名)
匿名化対象データ及び一般化階層データを同じ秘密鍵を用いて暗号化する機能と、処理結果を暗号化匿名化対象データ及び暗号化一般化階層データとして匿名化装置に送信する機能と、前記匿名化装置から受信した匿名化暗号データを復号して匿名化データを生成する機能とを有するデータ管理装置と、
ネットワーク経由で接続された前記データ管理装置に対して匿名化処理サービスを提供する匿名化装置であり、前記暗号化匿名化対象データ及び前記暗号化一般化階層データを受信する機能と、前記暗号化匿名化対象データを前記暗号化一般化階層データに従って匿名化する機能と、処理結果を前記匿名化暗号データとして前記データ管理装置に送信する機能とを有する匿名化装置と
を有するパーソナル情報管理システム。
【背景技術】
【0002】
クラウドコンピューティングや分散処理技術の発展により、これまで企業や団体で蓄積されてきた大量のデータの分析や利活用が現実的な時間で可能となってきている。これらのデータには、多くの場合、(1)氏名や住所のように個人を特定できる情報、(2)年齢、職業、学歴のように必ずしも個人を特定するものではないが個人に関連する情報が含まれている。以下、これらの情報を「パーソナル情報」と呼ぶ。パーソナル情報を利活用する現場では、プライバシーの保護に対する十分な配慮が求められる。
【0003】
しかし、プライバシーの保護は、個人情報保護法で定める個人情報をデータから削除するだけでは十分でないことがある。例えば識別番号のようにそれ自体で個人を特定できる情報をデータから削除しても、それぞれ単独では個人を特定できない属性情報(例えば年齢、国籍、職業)の組み合わせにより、個人を特定できる場合がある。このような場合が、パーソナル情報を利活用する上での技術課題の一つとして知られている。
【0004】
この技術課題を解決するための手段の一つに、k−匿名化技術がある。ここで、「k−匿名性を満たす」とは、データを構成する属性を組み合わせても個人を一意に特定することができず、同じ属性値の組み合わせを有するデータがデータベース内に少なくともk個存在する状態を言う。「k−匿名化技術」は、前述の「k−匿名性を満たす」ようにデータを加工(匿名化)処理する技術をいう。k−匿名化技術では、匿名化対象のデータに対して、どのように加工(匿名化)するかを定義した情報「一般化階層定義」を用い、データの匿名化処理を行う。つまり、匿名化対象データと一般化階層データの両方を処理装置(例えばコンピュータ)に入力することで、匿名化データが生成される。その処理動作例は、特許文献1や非特許文献1に詳細に述べられている。
【発明を実施するための形態】
【0013】
以下、添付の図面に基づいて、本発明の実施の形態を説明する。ただし、本発明の実施の態様は、本発明の一例に過ぎず、本発明の技術的範囲を限定するものではない。
【0014】
(1)パーソナル情報管理システムの全体構成
図1に、パーソナル情報管理システムの全体構成の一例を示す。本システムは、インターネット経由で接続された匿名化データ管理装置100と匿名化装置200で構成される。匿名化データ管理装置100は、匿名化処理サービスを利用する側のサーバ又は端末装置である。匿名化装置200は、匿名化処理サービスを提供する側のサーバ装置又は端末装置である。
図1では、説明を簡単にするために、匿名化データ管理装置100と匿名化装置200をそれぞれ1台ずつ描いているが、いずれも複数台存在しても良い。本システムは、匿名化処理サービスの利用者と提供者が異なる場合を想定している。匿名化処理サービスは、例えばクラウドサービスの一つとして提供される。
【0015】
(1−1)匿名化データ管理装置100の構成
匿名化データ管理装置100は、例えばコンピュータ(サーバを含む)として構成される。すなわち、匿名化データ管理装置100は、各種のプログラムを実行するCPU、BIOS等を記憶するROM、各種のプログラムに実行領域や作業領域を提供するRAM、各種のプログラムやデータを格納するハードディスク装置、入出力インタフェース(通信インタフェースを含む)、入力装置(例えばマウス、キーボード)、出力装置(例えばディスプレイ)等で構成される。後述する処理部はプログラムの実行を通じて提供される。また、後述する各種のデータは、RAMやハードディスク装置に記憶される。
【0016】
匿名化対象データ入力処理部101は、匿名化対象であるデータ(匿名化対象データ110)をRAM上にロードする処理部である。一般化階層データ作成処理部102は、匿名化処理の実行時に必要となる一般化階層データ111を作成する処理部である。ここで、一般化階層データ111は、匿名化対象データ110を匿名化するときの変換方法を定義するデータである。匿名化対象データ暗号化処理部103は、匿名化対象データ入力処理部101がロードした匿名化対象データ110を秘密鍵113によって暗号化する処理部である。一般化階層データ暗号化処理部104は、一般化階層データ作成処理部102が作成した一般化階層データ111を秘密鍵113によって暗号化する処理部である。ここで、匿名化対象データの暗号化に使用する秘密鍵113と一般化階層データ111の暗号化に使用する秘密鍵113は同じものである。
【0017】
暗号化匿名化対象データ出力処理部105は、匿名化対象データ暗号化処理部103による暗号化により生成された暗号化匿名化対象データ114を、インターネット経由で匿名化装置200に出力する処理部である。暗号化一般化階層データ出力処理部106は、一般化階層データ暗号化処理部104による暗号化により生成された暗号化一般化階層データ115を、インターネット経由で匿名化装置200に出力する処理部である。
【0018】
匿名化暗号データ入力処理部107は、匿名化処理により生成された匿名化暗号データ112をインターネット経由で匿名化装置200から受け取ってRAM上にロードする処理部である。匿名化暗号データ復号処理部108は、前述した秘密鍵113を使用して、RAM上にロードされた匿名化暗号データ112を復号化する処理部である。匿名化データ出力部109は、復号化によって生成された平文(最終的な匿名化処理結果としての匿名化データ116)をハードディスク装置に書き込む処理部である。以上のように、匿名化データ管理装置100は、匿名化サービスの利用に先立って、匿名化対象データ110及び一般化階層データ111を暗号化する処理と、匿名化装置200から戻される匿名化暗号データ112を復号して特定の属性が匿名化された匿名化データ116を生成する処理とを実行する。
【0019】
(1−2)匿名化装置200の構成
匿名化装置200は、例えばコンピュータ(サーバを含む)として構成される。すなわち、匿名化装置200は、各種のプログラムを実行するCPU、BIOS等を記憶するROM、各種のプログラムに実行領域や作業領域を提供するRAM、各種のプログラムやデータを格納するハードディスク装置、入出力インタフェース(通信インタフェースを含む)、入力装置(例えばマウス、キーボード)、出力装置(例えばディスプレイ)等で構成される。後述する処理部はプログラムの実行を通じて提供される。また、後述する各種のデータは、RAMやハードディスク装置に記憶される。
【0020】
暗号化匿名化対象データ入力処理部201は、インターネット経由で暗号化匿名化対象データ114(暗号化された状態の匿名化対象データ)を受信する処理部である。暗号化一般化階層データ入力処理部202は、インターネット経由で暗号化一般化階層データ115(暗号化された状態の一般階層化データ)を受信する処理部である。暗号化データ匿名化処理部203は、前述の暗号化一般化階層データ115に基づいて暗号化匿名化対象データ114を匿名化する処理部である。この匿名化処理により匿名化暗号データ112が生成される。匿名化暗号データ出力処理部204は、匿名化暗号データ112をインターネット経由で匿名化データ管理装置100に返却する処理部である。以上のように、匿名化装置200は、暗号化された状態の匿名化対象データ110(暗号化匿名化対象データ114)を、同じく暗号化された状態の一般化階層データ111(暗号化一般化階層データ115)によって匿名化する処理と、生成された匿名化暗号データ112をデータの提供元である匿名化データ管理装置100に戻す処理とを実行する。
【0021】
このように、匿名化装置200は、匿名化したいデータを受け取る機能部と、匿名化したいデータに適用する一般化階層データを受け取る機能部と、匿名化したいデータの匿名化処理を実行する機能部と、匿名化処理の結果である匿名化暗号データを出力する機能部を備えていれば良い。従って、匿名化装置200には、平文の状態でデータを匿名化する既存の匿名化装置と同様の仕組みを流用することができる。匿名化処理の対象であるデータと、匿名化処理で使用する変換方法を定義する一般化階層データとの区別が可能であれば、匿名化装置200は、入出力するデータが暗号化されているかどうかを意識せずに済む。
【0022】
(2)パーソナル情報管理システムで実行される処理の概要
図2に、パーソナル情報管理システムで実行されるデータ処理の概要を示す。当該データ処理の実行により、データの中身を第三者に晒すことなくデータを匿名化できる。まず、匿名化データ管理装置100によって、匿名化対象データ入力処理S201、一般化階層データ作成処理S202、匿名化対象データ暗号化処理S203、一般化階層データ暗号化処理S204、暗号化匿名化対象データ出力処理S205、暗号化一般化階層データ出力処理S206が実行される。以降の処理は、匿名化装置200に引き継がれる。
【0023】
処理を引き継いだ匿名化装置200は、暗号化匿名化対象データ入力処理S207、暗号化一般化階層データ入力処理S208、暗号化匿名化対象データ匿名化処理S209、匿名化暗号データ出力処理S210を実行する。以上で、匿名化装置200の処理は終了する。本実施例における匿名化装置200は、暗号化された状態のデータをそのまま匿名化する。この後の処理は、再び、匿名化データ管理装置100が実行する。匿名化データ管理装置100は、匿名化暗号データ入力処理S211、匿名化暗号データ復号処理S212、匿名化の結果であるデータを最終的に平文として出力する匿名化データ出力処理S213を実行する。以下では、各処理において実行される処理内容を詳細に説明する。
【0024】
(2−1)匿名化対象データ入力処理S201
匿名化対象データ入力処理部101が、ハードディスク装置等の記憶領域上に格納されている匿名化対象データ110を匿名化データ管理装置100のRAM上にロードする。なお、匿名化対象データ110は、必ずしも匿名化データ管理装置100と同一筐体内のハードディスク装置等に格納されている必要はなく、第三者に対してセキュリティが確保されたネットワークストレージ上に格納されていても良い。
【0025】
(2−2)一般化階層データ作成処理S202
一般化階層データ作成処理部102が、匿名化処理で必要となる一般化階層データ111を作成する。一般化階層データ111の作成には、既知の手法(例えば特許文献1に記載の技術)を用いれば良い。例えば特許文献1に記載の技術を適用する場合、一般化階層データ作成処理部102は、匿名化対象データ110とその属性値種別情報(個々の属性の種別を示す情報であり、例えば「文字列」、「順序保存型」、「その他」で与えられる)を入力した後、匿名化対象データ110の各属性から全ての属性値の頻度を取得し、取得された頻度情報と前記属性値種別情報に基づいてHuffman符号木またはShannon−Fano符号木またはHu−Tucker符号木を作成する。作成された木の構造が一般化階層データである。
【0026】
(2−3)匿名化対象データ暗号化処理S203
匿名化対象データ暗号化処理部103は、
図3に示す手順に従って、匿名化対象データ110を暗号化する。まず、匿名化対象データ暗号化処理部103は、秘密鍵113を匿名化データ管理装置100のRAM上にロードし(S301)、ロードした秘密鍵113で匿名化対象データ110を暗号化し(S302)、処理結果を暗号化匿名化対象データ114として出力する(S303)。暗号化前後のデータ例を
図4に示す。
【0027】
暗号化する前の匿名化対象データ110は、
図4の左側に示すような表形式のデータであり、列名を表すヘッダ行400と、それ以降のデータ行401で構成される。匿名化対象データ110を暗号化した後のデータである暗号化匿名化対象データ114は、
図4の右側に示すような表形式のデータであり、列名を表す暗号化ヘッダ行402と、それ以降の暗号化データ行403で構成される。暗号化ヘッダ行402はヘッダ行400を秘密鍵113によって列ごとに暗号化したものであり、暗号化データ行403はデータ行401を秘密鍵113によって1レコードの列ごとに暗号化したものである。
【0028】
(2−4)一般階層化データ暗号化処理S204
一般化階層データ暗号化処理部104は、
図5に示す手順に従って、一般化階層データ111を暗号化する。まず、一般化階層データ暗号化処理部104は、秘密鍵113を匿名化データ管理装置100の主記憶上にロードし(S501)する。秘密鍵113は、匿名化対象データ110の暗号化に使用する秘密鍵と同じであるので、匿名化対象データ暗号化処理S203で既にRAM上にロードしてある秘密鍵113を使用しても良い。その場合には、S501の処理は省略される。
【0029】
次に、一般化階層データ暗号化処理部104は、秘密鍵113で一般化階層データ111を暗号化し(S502)、処理結果を暗号化一般化階層データ115として出力する(S503)。暗号化前後のデータ例を
図6に示す。暗号化する前の一般化階層データ111は、
図6の左側に示すような木構造のデータである。一般化階層データ111を暗号化した後のデータである暗号化一般化階層データ115は、
図6の右側に示すような木構造のデータである。暗号化一般化階層データ115は、一般化階層データ111の個々のノードの値を秘密鍵113によって暗号化したものである。
【0030】
(2−5)暗号化匿名化対象データ出力処理S205
暗号化匿名化対象データ出力処理部105は、S203で生成された暗号化匿名化対象データ114をインターネット経由で匿名化装置200に出力する。
【0031】
(2−6)暗号化一般化階層データ出力処理S206
暗号化一般化階層データ出力処理部106は、S204で生成された暗号化一般化階層データ115をインターネット経由で匿名化装置200に出力する。
【0032】
(2−7)暗号化匿名化対象データ入力処理S207
暗号化匿名化対象データ入力処理部201は、インターネット経由で暗号化匿名化対象データ114を受信し、匿名化装置200のRAM上にロードする。本実施例の場合、匿名化処理の対象であるデータは暗号化されているが、暗号化匿名化対象データ入力処理部201は、暗号化されていないデータの匿名化処理にも利用できる。本実施例の場合、暗号化匿名化対象データ入力処理部201は、受信したデータが暗号化匿名化対象データ114であることを例えばファイル名等から判別する。
【0033】
(2−8)暗号化一般化階層データ入力処理S208
暗号化一般化階層データ入力処理部202は、インターネット経由で暗号化一般化階層データ115を受信し、匿名化装置200のRAM上にロードする。なお、暗号化されていないデータの秘匿化する際には、暗号化されていない一般化階層データが入力される。本実施例の場合、暗号化一般化階層データ入力処理部202は、受信したデータが暗号化一般化階層データ115であることを例えばファイル名等から判別する。
【0034】
(2−9)暗号化匿名化対象データ匿名化処理S209
暗号化データ匿名化処理部203は、匿名化装置200のRAM上にロードされた暗号化匿名化対象データ114を、暗号化一般化階層データ115の記述に従って匿名化し、匿名化暗号データ112を生成する。ここでの匿名化処理は、暗号化された状態のデータに対して直接実行される。このため、匿名化処理サービスがクラウドサービスとして提供される場合でも、利用者のデータが第三者に晒される可能性を排除できる。また、万一、暗号化匿名化対象データが漏洩する事故が生じた場合でも、パーソナル情報の安全性を保つことができる。なお、匿名化暗号データ112の作成には、既知の手法(例えば特許文献1に記載の技術)を用いることができる。例えば暗号化データ匿名化処理部203は、暗号化一般化階層データ115の属性値と一致した暗号化匿名化対象データ114の属性値を、暗号化一般化階層データ115の木構造において根(親)側に位置する属性値に置換する。
【0035】
(2−10)匿名化暗号データ出力処理S210
匿名化暗号データ出力処理部204は、生成された匿名化暗号データ112をインターネット経由で匿名化データ管理装置100に出力する。本実施例の場合、匿名化暗号データ112は、暗号化匿名化対象データ114の属性値を匿名化したデータであるので、匿名化対象データ110を暗号化した状態である。もっとも、暗号化されていないデータを匿名化する場合には、暗号化されていないデータが出力されることになる。
【0036】
(2−11)匿名化暗号データ入力処理S211
匿名化暗号データ入力処理部107は、インターネット経由で匿名化暗号データ112を受信すると、当該データを匿名化データ管理装置100のRAM上にロードする。
【0037】
(2−12)匿名化暗号データ復号処理S212
匿名化暗号データ復号処理部108は、
図7に示すように、秘密鍵113を匿名化データ管理装置100のRAM上にロードし(S701)、その秘密鍵113を用いて匿名化暗号データ112を復号し(S702)、匿名化データ116を生成する。
【0038】
暗号化前後のデータ例を
図8に示す。復号前の匿名化暗号データ112は、
図8の左側に示すような表形式のデータであり、列名を表す復号前ヘッダ行800と、それ以降の復号前データ行801からなる。匿名化暗号データ112を復号した後の平文データである匿名化データ116は、
図8の右側に示すような表形式のデータであり、列名を表す匿名化データヘッダ行802と、それ以降の匿名化データ行803からなる。匿名化データヘッダ行802は復号前ヘッダ行800を秘密鍵113によって列ごとに復号したものであり、匿名化対象データ110のヘッダ行400と同じものになる。匿名化データ行803は復号前データ行801を秘密鍵113によって1レコードの列ごとに復号したものである。本実施例の場合、「神奈川県川崎市」や「神奈川県横浜市」はいずれも神奈川県に匿名化されている。また、年齢の“35”や“37”はいずれも“30-39”に匿名化されている。
【0039】
(2−13)匿名化データ出力処理S213
匿名化データ出力部109は、平文に復号されたデータである匿名化データ116をハードディスク装置等の記憶装置に書き出す。
【0040】
(3)まとめ
図9に、前述した実施例を通じて実現されるサービスの提供イメージを示す。
図9に示すように、匿名化対象データの暗号化は匿名化したい列に対してだけ行えば良い。また、匿名化したい属性のみ暗号化しても良い。本実施例に係るパーソナル情報管理システムの場合には、匿名化データ管理装置100においてデータの暗号化と復号化を実行し、クラウドサービスを提供する匿名化装置200は暗号化された状態のデータに対して直接匿名化処理を実行する。このため、サービスの利用者は、匿名化対象データ110と一般化階層データ111の内容をサービスの提供者に対して秘密にしたまま匿名化サービスを利用することができる。また、本実施例の場合、同じ秘密鍵113を用いて暗号化された一般化階層データ(暗号化一般化階層データ115)と暗号化匿名化対象データ114を併せて匿名化装置200に送信する。この場合、匿名化対象データの属性値を暗号化した後の値と、当該値に対応する一般化階層データの属性値を暗号化した後の値との一致が保証されるため、暗号化された状態のデータを直接匿名化することができる。
【0041】
なお、本発明は、上述した実施例の構成に限定されるものでなく、様々な変形例を含んでいる。例えば上述した実施例は、本発明を分かりやすく説明するために、一部の実施例について詳細に説明したものであり、必ずしも説明した全ての構成を備える必要は無い。また、ある実施例の一部を他の実施例の構成に置き換えることが可能であり、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成に他の構成を追加し、又は、各実施例の一部構成を他の構成で置換し、又は各実施例の一部構成を削除することも可能である。
【0042】
また、上述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、上記の各構成、機能等は、それぞれの機能を実現するプログラムをプロセッサが解釈して実行することにより実現しても良い。すなわち、各構成等をソフトウェアにより実現しても良い。この場合、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。