(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載の情報保護システムであって、前記情報保護システムは更に表示装置を備え、当該表示装置に前記元データセット、前記時間発展データセット、前記判定装置での判定結果のいずれか1つ以上を表示する
ことを特徴とする情報保護システム。
請求項1記載の情報保護システムであって、前記情報保護システムは、前記k値が前記基準値を満足しない場合、前記時間発展開始年ないし前記一般化単位を変更して時間発展シミュレーションを行う
ことを特徴とする情報保護システム。
操作端末とネットワークを介して接続する、k−匿名化処理装置におけるk値の時間依存評価シミュレーション装置を含む情報保護システム上で動作する情報保護プログラムであって、
前記k値の時間依存評価シミュレーション装置は、
CPUと、前記操作端末から送信される準識別子情報を含む元データ(t=t)を格納する個人情報記憶装置と、
判定結果を表示する表示装置と、
前記ネットワークとの通信接続を制御する通信装置と、
シミュレーション管理装置を備え、
前記CPUは、
前記元データ(t=t)ないし時間(t=t+n)でのデータセットにおけるk−匿名化処理を行うk−匿名化処理装置と、
当該k−匿名化処理装置の処理結果が妥当であるかを判定する判定装置と、を有し、
前記シミュレーション管理装置は、
前記操作端末を用いてシミュレーション実行者により定義された前記元データでの準識別子情報を管理する準識別子管理装置と、
前記準識別子情報、当該準識別子情報の時間発展によるk値の分布を計算する計算式、時間発展の開始年を含むシミュレーション実行条件内容を管理するシミュレーション定義装置と、
前記シミュレーション実行条件内容に基づき時間発展された準識別子を含むデータセット(t=t+n)を生成する時間発展データセット生成装置と、
を有し、前記元データおよび前記データセットデータにおけるt、nは、時間を示し、当該nは、0を含まない整数または小数であり、
前記情報保護プログラムは、
前記シミュレーション実行条件内容から実際に実行するシュミュレーションがシミュレーション実行者により決定されたとき、
前記時間展開データセット装置において、前記シミュレーション実行条件内容における計算式で時間発展に伴うデータセット(t=t+n)を時間展開データセットとし生成する機能と、
前記k−匿名化処理装置において、前記時間展開データセット装置より生成された時間展開データセットに対して前記準識別子情報の一般化単位を用いてk−匿名化処理を実行する機能と、
前記判定装置において、前記k−匿名化処理装置よりk−匿名化された時間展開データセットにおける一般単位毎のk値が予め設定した基準値を満足するかを判定する機能と、
前記評価装置で前記k−匿名化処理装置によりk−匿名化されたデータセットにおける準識別子の一般化単位が妥当であるかを評価する機能と、
前記表示装置において、前記評価装置による評価結果を表示する機能と、
を有することを特徴とする情報保護プログラム。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
【0020】
また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、MP(Micro Processor)やCPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源(例えばメモリ)及び通信インターフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
【0021】
また、各要素、例えば、コントローラは番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本実施例の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【0022】
<システム構成>
図1
図1は、k−匿名化処理におけるk値の時間依存評価シミュレーション機能を実現する情報保護システムの構成図である。情報保護システムは、k値の時間依存評価シミュレーション装置(評価シミュレーション装置と略す)1と、ネットワーク101を介して評価シミュレーション装置1と接続する操作端末100から構成される。
【0023】
また、評価シミュレーション装置1は、シミュレーション管理装置10、CPU-a11、記憶装置a12、ネットワーク101との通信接続を制御する通信装置13、k−匿名化処理の結果や判定結果及びシミュレーション状況を確認するための表示装置14を備える。
【0024】
また、CPU-a11は、元データないし時間t=t+n(n:0以上の整数)でのデータセットにおけるk−匿名化処理を行うk−匿名化処理装置105と、k−匿名化処理装置105の処理結果が妥当であるかを判定する判定装置114を備える。記憶装置a12には、元データ(時間t=t)30を格納する元データ(時間t=t)格納用記憶媒体(メモリやHDD)を備える。
【0025】
シミュレーション管理装置10は、CPU-b15と記憶装置b16を備える。CPU-b15は、データセット(時間t=t+n)108を生成し管理するデータセット(時間t=t+n)生成装置107、実行するシミュレーション内容を定義し管理するシミュレーション定義装置109、定義された準識別子を管理する準識別子管理装置112を備える。
【0026】
記憶装置bは、データセット(時間t=t+n)108を格納するデータセット(時間t=t+n)格納用記憶媒体、シミュレーション定義マスタ50の情報を格納するシミュレーション定義マスタ格納用記憶媒体、シミュレーションジャーナル60の情報を格納するシミュレーションジャーナル格納用記憶媒体、準識別子管理マスタ40の情報を格納する準識別子管理マスタ格納用記憶媒体を備える。これら記憶媒体はメモリやHDDなどである。
【0027】
シミュレーション実行者は、操作者端末100を用いて、ネットワーク101を介して、k−匿名化処理装置105の処理結果を表示装置14で確認する。処理結果は、判定装置114によって妥当かどうかが判定され、その判定結果も表示装置14に表示される。なお、処理結果や判定結果を操作者端末100が取得し、操作者端末100の表示部(図示せず)に表示させてもよい。
【0028】
従来技術では、元データ(時間t=t)30をk−匿名化処理装置105で匿名化処理して、その処理結果を表示装置14で表示させていただけであった。このk−匿名化処理装置105は、前述の非特許文献1に記載されている構成を用いてよいし、他の構成でもよい。なお、k−匿名化処理内容は一般に知られているもので、その例として非特許文献1や特許文献1に記載のものがある。
【0029】
一方、シミュレーション実行者は、操作者端末100を用いて、元データ(時間t=t)30での準識別子を定義する。操作者端末100は、定義された準識別子の情報を受け付けて、ネットワーク101経由で評価シミュレーション装置1に送信する。評価シミュレーション装置1は、受信した準識別子の情報を、準識別子管理装置112に送る。準識別子管理装置112は、受信した準識別子の情報を準識別子管理マスタ40に格納するとともに、シミュレーション定義装置109に送る。
【0030】
また、シミュレーション実行者は、シミュレーション内容を検討する。検討結果(どのような計算で時間発展させるかの計算式、シミュレーション期間、k値の基準値、初期一般化単位等)を操作端末100経由で評価シミュレーション装置1に送信する。操作端末100は、受け付けたシミュレーション内容を、評価シミュレーション装置1に送信し、評価シミュレーション装置1は受信したシミュレーション内容を、シミュレーション定義装置109に送る。シミュレーション定義装置109は、受信したシミュレーション内容のうち計算式に関する情報以外をシミュレーション定義マスタ50に格納して管理する。また、計算式に関する情報は、シミュレーションジャーナル60に登録する。
【0031】
シミュレーション実行者は、登録されたシミュレーションから実際に実行するシミュレーションを決定する。その動作は、例えば、シミュレーション実行者は、操作端末100にプルダウンメニューで表示された登録シミュレーション名称と内容から、実行するシミュレーション名称を選択する。操作端末100は、選択されたシミュレーション名称を評価シミュレーション装置1に送信する。
【0032】
評価シミュレーション装置1は受信したシミュレーション名称をシミュレーション定義装置109に送り、シミュレーション定義装置109は、実際に実行するシミュレーションの詳細情報(実行シミュレーション詳細情報)をシミュレーションジャーナル60及びシミュレーション定義マスタ50から取得する。
【0033】
そして、シミュレーション定義装置109は、取得した実行シミュレーション詳細情報をデータセット(時間t=t+n)生成装置107で、時間発展させたデータセット(時間t=t+n)108を生成する。そして、生成したデータセット(時間t=t+n)108を、データセット(時間t=t+n)生成装置107はk−匿名化処理装置105を用いて匿名化処理をして、処理結果を表示装置14で表示する。また、処理結果を判定装置114によって妥当性が判定され、その判定結果も表示装置14で表示する。
【0034】
ここで、「t=t+n」という表現は、ある時間「t」から時間発展させて、次のシミュレーション結果を表示させる時間(これを「t+n」と表現)にした場合の時間、即ち次のシミュレーションの時間である「t+n」の時間、を表現している。時間nの単位は、年、月、日、時、分、秒、期などで、どれを用いてもシミュレーションすることができる。また、整数でなく、0.5年などの小数でもよい。このような単位を選択することで、時間的に詳細なシミュレーションが可能となる。また、長期的なシミュレーションを可能できるので、分析効率を向上できる。
【0035】
<データ構造と関連性>
図2
図2は、各データの構造と、データ間の関連性を示す対応図である。評価シミュレーション装置1で使用または管理されるデータとして、元データテーブル30、準識別子管理マスタ(JSM:Jun Shikibetsu Master)テーブル40、シミュレーション定義マスタ(SDM:Simulation Definition Master)テーブル50、シミュレーションジャーナルテーブル(SJT:Simulation Journal Table)60がある。
【0036】
元データテーブル30は、例えば、図に示すように、識別子として、識別子1(名前)、識別子2(会員ID)を有し、準識別子として、準識別子1(年齢)、準識別子2(住所)、準識別子3(入居年)、準識別子4(保険割引ステージ)を有し、その他情報としてその他1(年収)、その他2(車所有)を有する。評価シミュレーション装置1では、元データテーブル30のうち、準識別子候補を決める。この例では、「生年(年齢)」、「住所」、「入居年」、「保険割引ステージ」を準識別子として選択している。
【0037】
元データテーブル30の準識別子で、準識別子管理マスタテーブル40を構成する。準識別子管理マスタテーブル40は、JSM_準識別子IDとJSM_準識別子を有する。つまり、元データテーブル30の準識別子と、準識別子管理マスタ(JSM)テーブル40のJSM_準識別子とが対応する。
【0038】
シミュレーション定義マスタ(SDM)テーブル50は、SDM_シミュレーションIDと、SDM_シミュレーション名を有する。シミュレーションジャーナルテーブル(SJT)60は、SJT_シミュレーションIDと、SJT_準識別子ID、SJT_計算式を有する。シミュレーション定義マスタ(SDM)テーブル50のSDM_シミュレーションIDと、シミュレーションジャーナルテーブル(SJT)60のSJT_シミュレーションIDとが対応する。また、準識別子管理マスタテーブル40のJSM_準識別子IDと、シミュレーションジャーナルテーブル(SJT)60のSJT_準識別子IDが対応する。これらのデータやテーブルを用いて、評価シミュレーション装置1は、k−匿名化処理におけるk値の時間依存評価シミュレーションを実行する。
【0039】
<データ構造と関連性>
図3
図3は、元データテーブルの構成例を示す図である。元データテーブル30は、番号(#)301、識別子302、準識別子303、その他情報304を有する。前述のように、識別子302には名前、会員番号(会員ID)の情報を格納する欄を、準識別子303には年齢(生年)、住所、入居年数(入居年)、保険割引ステージの情報を格納する欄を、その他情報304には年収、車所有の情報を格納する欄を有する。
【0040】
<準識別子管理マスタテーブル>
図4
図4は、準識別子管理マスタ(JSM)テーブルの構成例を示す図である。準識別子管理マスタ(JSM)テーブル40は、JSM_準識別子ID401とJSM_準識別子402を有する。JSM_準識別子ID401は、JSM_準識別子を一意に識別するためのIDである。JSM_準識別子ID401に対応するJSM_準識別子402に選択された準識別子の候補を格納する。
【0041】
本例では、JSM_準識別子ID401が“1”から“4”に対応するJSM_準識別子402のエントリに、“年齢(生年)”、“住所”、“入居年数(入居年)”、“保険割引ステージ”という情報を格納している。
【0042】
<シミュレーション定義マスタ(SDM)テーブル>
図5
図5は、シミュレーション定義マスタ(SDM)テーブルの構成例を示す図である。シミュレーション定義マスタ(SDM)テーブル50は、シミュレーションを一意に識別するためのSDM_ID501と、SDM_シミュレーション名502を有する。評価シミュレーション装置1は、シミュレーション実行者からの実行したいシミュレーション情報を受信すると、シミュレーション定義マスタ(SDM)テーブル50に実行したいシミュレーションを登録して、IDを採番する。また、採番されたシミュレーションにおける準識別子の時間発展に関する計算式をシミュレーションジャーナルテーブル(SJT)60に登録する。
【0043】
本例では、SDM_ID501が“1”から“3” に対応するSDM_シミュレーション名502のエントリに、“年齢だけ時間経過評価”、“年齢と住居年数を時間経過評価”、“保険割引ステージ評価1”の情報を格納している。
【0044】
<シミュレーションジャーナルテーブル>
図6
図6は、シミュレーションジャーナルテーブル(SJT)の構成例示す図である。シミュレーションジャーナルテーブル(SJT)60は、全てのシミュレーションの計算式を管理するテーブルの一例である。シミュレーションジャーナルテーブル(SJT)60は、番号(#)601、シミュレーションを一意に識別するためのSJT_シミュレーションID602、準識別子を一意に識別するためのSJT_準識別子ID603、SJT_計算式604を有する。
【0045】
例えば、SJT_シミュレーションID602が“1”のシミュレーションは、
図5のシミュレーション定義マスタ50から「年齢だけ時間経過評価」を実行するシミュレーションである。そのため、年齢(SJT_準識別子ID603が“1”)だけが毎年時間発展して「(年齢(t+n)=年齢(t)+n)」という計算式で表現でき、他の準識別子は「固定」としている。
【0046】
また、SJT_シミュレーションIDが“2”のシミュレーションは、シミュレーション定義マスタ50から「年齢と住居年数とを時間経過評価」を実行するシミュレーションである。そのため、年齢(SJT_準識別子ID603が“1”)と住居年数(SJT_準識別子ID603が“2”)が毎年時間発展して「(年齢(t+n)=年齢(t)+n)」、「(住居年数(t+n)=住居年数(t)+n)」という計算式で表現でき、他の準識別子は「固定」としている。
【0047】
更に、SJT_シミュレーションIDが“3”のシミュレーションは、シミュレーション定義マスタ50から「保険割引ステージ評価1(年齢と住居年数と保険割引ステージの時間経過評価)」を実行するシミュレーションであるので、年齢(SJT_準識別子ID603が“1”)と住居年数(SJT_準識別子ID603が“2”)が毎年時間発展して「(年齢(t+n)=年齢(t)+n)」、「住所(t+n)=住所(t)+n」、「(住居年数(t+n)=住居年数(t)+n)」という計算式に加えて、「保険割引ステージ(t+n)」は、
(1)ブロンズ:(年齢(t+n)+入居年数(t+n))*0.01<0.4の場合
(2)シルバー:(年齢(t+n)+入居年数(t+n))*0.01<0.5の場合
(3)ゴールド:(年齢(t+n)+入居年数(t+n))*0.01<0.6の場合
(4)プラチナ:(年齢(t+n)+入居年数(t+n))*0.01≧0.6の場合
(0.6以上で、保険割引ステージがプラチナとなる)
で算出される。つまり、本発明では、準識別子間(年齢と入居年数)の相関の計算を行うことで、別の準識別子に対するシミュレーションを行うことができる。
【0048】
上記の計算式は一例であり、例えば、年代によって車の事故率が変化することに着目して、車両保険(損害保険)の保険料や保険割引率、付帯オプション等を変えられるようにしてもよい。また、年齢や年代によって、年収が変化(増収ないし減収)することに着目し信用情報での与信度を変えられるようにしてもよい。住宅ローンの借り入れ残額等も年齢等と組み合わせて、シミュレーションを、評価シミュレーション装置1で実行してもよい。
【0049】
次に、処理の動作について、シミュレーション管理装置10を、処理を実行する主体として説明するが、その他の装置、例えば、評価シミュレーション装置1が主体でもかまわない。
【0050】
<k値の時間依存評価シミュレーションの全体処理>
図7
図7は、k−匿名化処理におけるk値の時間依存評価シミュレーションの全体処理を示すフローチャートである。
【0051】
S701で、シミュレーション管理装置10は、元データ(t=t)テーブル30を記憶装置a12からロードする。
【0052】
S702で、シミュレーション管理装置10は、S701でのk値の基準値を設定する。S703で、シミュレーション管理装置10は、シミュレーションする期間を設定する。S704で、シミュレーション管理装置10は、元データ(t=t)テーブル30より準識別子を定義する。k−匿名化処理装置105が、ロードした元データ(t=t)テーブル30を所定のk値で匿名化処理を施す。その結果を判定装置114で判定し妥当であれば、シミュレーション管理装置10は、匿名化処理を施したk値と、k−匿名化処理結果を採用する。
【0053】
S705で、シミュレーション管理装置10は、S704で定義した準識別子を準識別子管理マスタ(JSM)テーブル40に登録する。S706で、シミュレーション管理装置10は、シミュレーション名とシミュレーションの方法を、シミュレーション定義マスタ(SDM)テーブル50と、シミュレーションジャーナルテーブル(SJT)60に登録する。S707で、シミュレーション管理装置10は、シミュレーションを実行する。
【0054】
以上の処理が、k−匿名化処理におけるk値の時間依存評価シミュレーションの全体処理である。次に、詳細な処理内容を
図8以降で説明する。
【0055】
<準識別子の選択・登録処理>
図8
図8は、準識別子の選択・登録処理を示すフローチャートである。本処理は、
図7のS704及びS705の処理に相当する。
【0056】
S801で、シミュレーション管理装置10は、元データ(t=t)テーブル30から、準識別子を選別する。
【0057】
S802で、シミュレーション管理装置10は、準識別子管理装置112に選別された準識別子のフィールド名を準識別子管理マスタ(JSM)テーブル40に登録する。つまり、準識別子管理装置112は、準識別子管理マスタ(JSM)テーブル40のJSM_準識別子ID401における最大番号の次の番号を採番し、採番された番号に対応するJSM_準識別子402に準識別子のフィールド名を格納する。
【0058】
以上の処理で、準識別子の選別と準識別子管理マスタ(JSM)テーブル40への登録が完了する。次に、実行するシミュレーション内容の設定処理について説明する。
【0059】
<シミュレーション内容の設定処理>
図9
図9は、実行するシミュレーション内容の設定処理を示すフローチャートである。本処理は、
図7のS706の処理に相当する。
【0060】
S901で、シミュレーション管理装置10は、シミュレーション定義装置109へ実行するシミュレーションの名称をシミュレーション定義マスタ(SDM)テーブル50に登録してSDM_シミュレーションIDを採番するよう指示する。シミュレーション定義装置109は、シミュレーション名称をシミュレーション定義マスタ(SDM)テーブル50に登録し、SDM_シミュレーションIDを採番する。
【0061】
S902で、シミュレーション管理装置10は、シミュレーション定義装置109に実行するシミュレーションで、各準識別子を時間発展させる計算式をシミュレーションジャーナルテーブル(SJT)60に登録するよう指示する。シミュレーション定義装置109は、シミュレーションジャーナルテーブル(SJT)60のSJT_シミュレーションID602にシミュレーション定義マスタ(SDM)テーブル50のSDM_ID501の情報を、SJT_準識別子603に、準識別子管理マスタ(JSM)テーブル40のJSM_準識別子ID401の情報を、SJT_計算式604に各準識別子を時間発展させる計算式を格納する。
【0062】
S903で、シミュレーション管理装置10は、シミュレーション定義装置109にシミュレーションジャーナルテーブル(SJT)60に、全ての準識別子のシミュレーションID、準識別子ID、計算式を登録するよう指示する。指示を受けたシミュレーション定義装置109は、S902の処理を全準識別子について実行して、所定の情報をシミュレーションジャーナルテーブル(SJT)60に設定する。
【0063】
以上の処理で、実行するシミュレーションで必要な計算式やシミュレーションIDを確定させることができる。次に、実際のシミュレーション実行処理の動作について説明する。
【0064】
<シミュレーション実行処理>
図10
図10は、シミュレーション実行処理を示すフローチャートである。本処理は、
図7のS707の処理に相当する。
【0065】
S1001で、シミュレーション管理装置10は、シミュレーションする準識別子の一般化単位を設定する。ここでは、シミュレーション管理装置10は、年齢の一般化単位を“3歳”と設定し、住所の一般化単位を“1丁目”と設定する。
【0066】
S1002で、シミュレーション管理装置10は、設定された一般化単位を組み合わせて「セル」を設定する。つまり、
図12に示すようにシミュレーション管理装置10は、縦軸方向に住所の番地を1番地刻みで、横軸方向に年齢を1歳刻みで配置した矩形領域をまず設定する。そして、1丁目1番地から1丁目11番地までで、年齢の一般化単位を“3歳”刻みの「セル」(図中の太い黒線で囲われた部分)を1つ以上設定する。
図12では、4つの「セル」を設定している。
【0067】
S1003で、シミュレーション管理装置10は、iにシミュレーション開始年を設定する(i=シミュレーション開始年)。例えば、シミュレーション管理装置10は、i=西暦2015年と設定する。
【0068】
S1004で、シミュレーション管理装置10は、シミュレーションジャーナルテーブル(SJT)60を参照して、i年(=2015年)のデータセットを作成する。
【0069】
S1005で、シミュレーション管理装置10は、k−匿名化処理装置105にi年のデータセットを送信し、k−匿名化処理を実行させる。
【0070】
S1006で、シミュレーション管理装置10は、S1005でのk−匿名化処理の処理結果が妥当かどうかを判定装置114で判定させる。そして、設定されたシミュレーションをする準識別子の一般化単位の組み合わせで表現される各セルでのk値を算出する。つまり、シミュレーション管理装置10は、妥当と判断されたk値の候補を決定する。
【0071】
S1007で、シミュレーション管理装置10は、k値を算出した結果、設定された基準値よりも小さなk値となるかを判断する。算出したk値が設定された基準値より小さい場合(Yes)、シミュレーション管理装置10は、S1008を実行する。例えば、算出したk値が“2”で、設定された基準値が“5”であれば、匿名化の基準を満足しない(個人を特定されてしまう)と、シミュレーション管理装置10は判断する。
【0072】
算出したk値が設定された基準値より大きい場合(No)、シミュレーション管理装置10は、S1009を実行する。つまり、算出したk値が“7”であれば、設定された基準値が“5”より大きいので、匿名化の基準を満足する(個人を特定される可能性は1/k(=7)以下である)と、シミュレーション管理装置10は判断する。
【0073】
S1008で、シミュレーション管理装置10は、k値が設定された基準値よりも小さな値のセルの情報を、表示装置14の画面に表示してシミュレーション実行者に通知する。また、シミュレーション管理装置10は、基準値よりも小さな値のセルの情報を操作端末100に送信し、操作端末100の表示画面に表示して基準値を満足しないと警告してもよい。
【0074】
S1009で、シミュレーション管理装置10は、i=i+1とする。つまり、シミュレーションを実行する年を、シミュレーション開始年に1年加えた年とする。この時、i年は2016年となる。S1010で、シミュレーション管理装置10は、iの値(年)がシミュレーション終了年以上であるかを判断する。iの値(年)がシミュレーション終了年以上であれば、シミュレーション管理装置10は、シミュレーションを終了する。iの値(年)がシミュレーション終了年未満であれば、シミュレーション管理装置10は、再びS1004以降の処理を実行する。
【0075】
以上のシミュレーションにより、将来に設定されたk値が基準値を満足するか否かを判断できるので、匿名化を担保することができる。
【0076】
<n年後のデータセットの生成処理>
図11
図11は、n年後のデータセットの生成処理を示すフローチャートである。本処理は、
図10のS1004でi=i+nとして算出する処理である。
【0077】
S1101で、シミュレーション管理装置10は、シミュレーション定義マスタ(SDM)テーブル50から、シミュレーションするシミュレーションID(SDM_ID501の情報)を選択する。
【0078】
S1102で、シミュレーション管理装置10は、シミュレーションジャーナルテーブル(JST)60から、S1101で選択したシミュレーションID(SDM_ID501の情報)における全てのSJT_準識別子ID603と計算式を取得する。例えば、シミュレーション管理装置10は、SDM_ID501が“2”の「年齢と住居年数を時間経過評価」を選択すると、対応するSJT_シミュレーションIDが同じ“2”である項目(番号(#)601が“5”から“8”)のSJT_準識別子ID603と、SJT_計算式604とを取得する。
【0079】
S1103で、シミュレーション管理装置10は、データセット(時間t=t+n)生成装置107にデータセット(時間t=t+n)の生成を指示する。データセット(時間t=t+n)生成装置107は、取得した計算式を用いて各準識別子の時間t=t+nにおける値を計算して、時間t=t+nにおけるデータセット(時間t=t+n)を生成する。そして、データセット(時間t=t+n)生成装置107は、生成したデータセット(時間t=t+n)を記憶装置b16にデータセット(時間t=t+n)108として格納する。そして、シミュレーション管理装置10は、n年後のデータセットの生成処理を終了する。
【0080】
本n年後のデータセットの生成処理により、元データを変更することなく現存させることができ、更にn年後のデータセット(時間t=t+n)を生成でき、また生成したデータセット(時間t=t+n)を保存することができる。なお、nの値は、本例のシミュレーションのように1年単位でもよいし、前述のように0.5年という小数を用いることができる。更に、将来ではなく、過去に向かってシミュレーションを行うことも本実施例では可能であるので、マイナス値(−1年、−0.5年)も用いることができる。
【0081】
<シミュレーション実行結果1>
図12
図12は、一般化単位を3歳とし年齢を変化させた場合のシミュレーション実行結果を示す図である。
図12に、「年齢だけ時間経過評価」するシミュレーションの結果の例を示す。ここでは、「k値が5人以上であること」を基準値として設定した。また、
図12では、一般化単位を「0歳から開始し3歳単位」としている。シミュレーション開始年を2015年として1年毎の時間経過評価シミュレーションを実行する。
【0082】
まず、2015年(●:黒塗り丸印が、2015年時点で所定の住所に居住している所定の年齢である人を表す)は、全てのセルで基準値「k値が5人以上であること」を満たしている。例えば、住所が1丁目の1番地から11番地に居住している31歳から33歳の人のk値は“8”である。同じく、34歳から36歳の人のk値は“7”、37歳から39歳の人のk値は“13”、40歳から42歳の人のk値は“9”である。そのため、2015年時点では、所が1丁目の1番地から11番地に居住している3歳単位の年代に分けた各セル(黒い太線で囲われた部分)は、基準値「k値が5人以上であること」を満足していることが分かる。
【0083】
一方、2015年から1年経過した2016年(◎:二重丸が、2016年時点で所定の住所に居住している所定の年齢である人を表す)は、全てのセルで基準値「k値が5人以上であること」を満たしていない。31歳から33歳の人のk値は“6”で、37歳から39歳の人のk値は“13”で基準値「k値が5人以上であること」を満足している。しかし、34歳から36歳の人のk値は“4”、40歳から42歳の人のk値も“4”であるので、基準値「k値が5人以上であること」を満足していない。
【0084】
そのため、k−匿名化処理装置105の匿名化処理結果を、判定装置114が判定した結果はk値が不全(健全ではない)となる。そこで、判定装置114は表示装置14の画面ないし操作端末100の画面にアラートとして通知する。そして、そのシミュレーション結果を基に一般化単位を見直す。その結果を、
図13に示す。
【0085】
<シミュレーション実行結果2>
図13
図13は、一般化単位を5歳とし年齢を変化させた場合のシミュレーション実行結果を示す図である。
図13で示すように、一般化単位を「0歳から開始し5歳単位」にすることで、全てのセル(黒い太線で囲われた部分)で、2015年(●:黒塗り丸印)も2016年(◎:二重丸)も基準値「k値が5人以上であること」をクリアできることが分かる。
【0086】
つまり、2015年の30歳から34歳の人のk値は“10”、35歳から39歳の人のk値は“18”、40歳から44歳の人のk値は“9”であり、基準値「k値が5人以上であること」を満足している。同じく、2016年の30歳から34歳の人のk値は“12”、35歳から39歳の人のk値は“15”、40歳から44歳の人のk値は“12”であり、基準値「k値が5人以上であること」を満足している。
【0087】
一般化単位の変更は、開始年齢を
図3に示す元データテーブル30の準識別子303の年齢が最小となる会員のデータとし、セルの分割年数を1年から10年くらいまで変化させて、それぞれのセルの分割年数で時間経過シミュレーションを繰り返し、基準値を満足するかを判断し、満足した複数の分割年数の中から適当な年数を選択することもできる。また、算出したk値も含めシミュレーション結果をシミュレーション管理装置10の記憶装置b16に格納しておくことで、k値を変えた場合(例えば、k値=5からk値=7)でも、k値の健全性を判断できる。
【0088】
このように、時間経過シミュレーションを行うことで、設定したk値の健全性(将来でも匿名化を維持できるか否かの尺度)を判定できるので、安定した情報保護システムを提供できる。
【0089】
<シミュレーション実行結果3>
図14、
図15
図14は、年齢及び住居年数を変化させ一般化単位をそれぞれ5歳とした場合のシミュレーション実行前の状態を示す図である(2015年時点)。
図15は、年齢及び住居年数を変化させ一般化単位をそれぞれ5歳とした場合のシミュレーション実行後の状態を示す図である(2016年予測)。
【0090】
2015年の結果(
図14)では、全てのセル(黒い太線で囲われた部分)で基準値「k値が5人以上であること」をクリアしている。一方、2016年(
図15)では、住居年数が5年から9年で年齢が35歳から39歳のセルと、住居年数が10年から14年で年齢が40歳から44歳のセル(二重線で囲った部分)は、k値が“4”と“3”である。そのため、基準値「k値が5人以上であること」をクリアしていないと判断できる。
【0091】
この場合、準識別子である「年齢」、「住居年数」、「住所」のいずれかの一般化単位を予め大きくして、かつ将来を見越して倍数として利用可能な単位を設定するなど、検討の余地が広がり、データの可用性の向上と情報損失を抑える、という効果を得ることができる。
【0092】
以上説明したように、本発明の情報保護システムでは、時間発展する準識別子の計算式で将来のk値を算出する手段と、算出されたk値と予め設定された基準値とを比較する手段と、比較した結果を表示する手段とを備え、時間発展シミュレーションの実行を可能とする。そのため、準識別子を有する個人情報のデータセットのk−匿名化処理で、時間発展でも準識別子の適切な一般化単位を設定できる。また、匿名化されたデータセットの分析を継続させることができる。
【0093】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
【0094】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(SolID State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。