(57)【要約】【課題】匿名化処理に要する時間を抑制可能な匿名化技術を提供すること。【解決手段】匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得し、複数の属性ごとに予め定められた優先順位を取得し、複数のレコードを、属性単位でｋ匿名化し、属性単位で匿名化された属性単位匿名化レコードから、取得された優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで属性単位匿名化レコードを複数の属性にまたがって匿名化する。【選択図】図１
2017182508.tif 000002
【特許請求の範囲】
【請求項１】
匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得部と、
前記複数の属性に対して予め定められた優先順位を取得する順位取得部と、
前記取得部により取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化部と、
個別属性匿名化部により属性単位で匿名化された属性単位匿名化レコードから、前記順位取得部により取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化部と、
を有する匿名化装置。
【請求項２】
前記複数属性匿名化部は、異なる属性値を新たな１つの属性値とすることで匿名性を判定し、匿名性が担保されていない場合には、異なる属性値を新たな１つの属性値とした属性より優先順位の高い属性の異なる属性値を新たな１つの属性値として匿名性を判定することを繰り返すことで前記属性単位匿名化レコードを複数の属性にまたがって匿名化することを特徴とする請求項１に記載の匿名化装置。
【請求項３】
匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、
前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、
前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、
個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、
を有する匿名化方法。
【請求項４】
匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、
前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、
前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、
個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の匿名化技術に関する。
【背景技術】
【０００２】
従来、多くの情報をビッグデータとして収集し、それらを解析することによって新たな情報を取得することが行われている。ビッグデータには、個人の情報などそのままでは解析にかけることができない情報も含まれている。そのため、収集された情報を二次利用することが可能となるように、収集された情報に対して匿名化処理が行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−０４６０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の匿名化処理では、大容量データで複数の属性を跨った匿名化処理を行う場合、処理時間は情報数、属性数、及び属性値数に応じて匿名化処理に要する時間が大幅に増加するという問題点があった。
上記事情に鑑み、本発明は、匿名化処理に要する時間を抑制可能な匿名化技術を提供することを目的としている。
【課題を解決するための手段】
【０００５】
本発明の一態様は、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得部と、前記複数の属性に対して予め定められた優先順位を取得する順位取得部と、前記取得部により取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化部と、個別属性匿名化部により属性単位で匿名化された属性単位匿名化レコードから、前記順位取得部により取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化部と、を有する匿名化装置である。
【０００６】
本発明の一態様は、上記匿名化装置であって、前記複数属性匿名化部は、異なる属性値を新たな１つの属性値とすることで匿名性を判定し、匿名性が担保されていない場合には、異なる属性値を新たな１つの属性値とした属性より優先順位の高い属性の異なる属性値を新たな１つの属性値として匿名性を判定することを繰り返すことで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する。
【０００７】
本発明の一態様は、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、を有する匿名化方法である。
【０００８】
本発明の一態様は、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【０００９】
本発明により、匿名化処理に要する時間を抑制可能となる。
【図面の簡単な説明】
【００１０】
【図１】匿名化システム１のシステム構成を表すシステム構成図である。
【図２】匿名化装置２０の処理の流れの具体例を示すフローチャートである。
【図３】匿名化装置２０の処理の流れの具体例を示すフローチャートである。
【図４】同値レコードグループ化処理の流れの具体例を示すフローチャートである。
【図５】図３のフローチャートに示される処理の処理内容を示す図である。
【図６】条件情報が階層内属性値間結合定義の場合における属性単位でのｋ匿名化の一例を示す図である。
【図７】匿名化装置によるｋ匿名化の処理結果を示す図である。
【図８】条件情報が閾値定義の場合の結合処理例を示す図である。
【図９】条件情報が階層内属性値間結合定義の場合の結合処理例を示す図である。
【図１０】条件情報が時系列データにおける重心の場合の結合処理例を示す図である。
【発明を実施するための形態】
【００１１】
図１は、匿名化システム１のシステム構成を表すシステム構成図である。匿名化システム１は、非匿名化情報記憶部１０、匿名化装置２０、及び匿名化情報記憶部３０を備える。
【００１２】
非匿名化情報記憶部１０は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。非匿名化情報記憶部１０は、匿名化されていない情報（以下「非匿名化情報」という。）を記憶する。非匿名化情報は、少なくとも１以上の属性を含む。１又は複数の属性の組み合わせによって表される情報のかたまりをレコードと呼ぶ。例えば、血圧値のレコードは、測定日時と、測定対象の人物を示す識別情報（例えば氏名、診察券番号など）と、血圧値と、の各属性の値を有する。また、一つの属性が時系列のデータとして表された情報のかたまりもレコードと呼ぶ。例えば、ｎ個の時系列データをｎ次元における点と見做すと、ｎ個の時系列データは複数の点で表される。さらに、１つの属性が階層化されて表された情報のかたまりをレコードと呼ぶ。非匿名化情報は、このようなレコードとして表されてもよい。
【００１３】
非匿名化情報記憶部１０によって記憶される非匿名化情報において、匿名化の対象となっている属性（以下「匿名化対象属性」という。）は、例えば数値によって表される。例えば、匿名化対象属性は、価格、血圧、気温、消費電力量、給与、動作の回数（例：購入回数、閲覧回数）、年齢である。なお、非匿名化情報記憶部１０が記憶する情報の一部には、既に匿名化された情報が含まれていてもよい。
【００１４】
非匿名化情報記憶部１０は、さらに条件情報を記憶する。条件情報は、非匿名化情報に関する各種条件を示す情報である。条件情報の具体例として、閾値定義、情報連結定義、階層内属性値間結合定義、時系列データにおける重心、優先順位がある。閾値定義は、属性の値に関して予め与えられた閾値を示す情報である。閾値によって複数のクラスが定義される。例えば、属性が血圧である数値に対して予め与えられる閾値定義として、血圧の値が９０以下の低血圧というクラス、血圧の値が９０〜１４０の正常血圧というクラス、血圧の値が１４０以上の高血圧というクラス、という３つのクラスの定義がある。情報連結定義は、一つの属性の値に関して与えられる複数のサブ属性を示す情報である。例えば、属性が年月日である数値に対して予め与えられる情報連結定義として、最初の４桁の数値が年を表し、次の２桁の数値が月を表し、最後の２桁の数値が日を表す、という定義がある。この場合、年、月、日という３つのサブ属性が定義されている。
【００１５】
階層内属性値間結合定義は、一つの属性に関する各階層の各値に与えられる同一階層内で結合可能な他の値を示す情報である。ここで、結合可能とは、ある階層のある値が属するグループに、同一階層内の他の値を含めることができることを表す。時系列データにおける重心とは、複数の時系列データをｎ次元上の点で表した場合に、それらの点で構成される図形の重心である。優先順位は、複数の属性に対して予め定められており、有用性を担保するためのものである。例えば、重要な属性の属性値の匿名性を高めると有用性が損なわれる。そこで、重要な属性に高い優先順位を設定しておくことで、有用性が担保される。
【００１６】
匿名化装置２０は、非匿名化情報記憶部１０に記憶される非匿名化情報の複数のレコードを、ｋ匿名化する。匿名化装置２０は、メインフレームやワークステーションやパーソナルコンピュータなどの情報処理装置を用いて構成される。匿名化装置２０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備える。匿名化装置２０は、匿名化プログラムを実行することによって、条件情報設定部２０１、個別属性匿名化部２０２、及び複数属性匿名化部２０３を備える装置として機能する。なお、匿名化装置２０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されても良い。
【００１７】
条件情報設定部２０１は、非匿名化情報記憶部１０から、匿名化対象属性に関する条件情報を取得する。条件情報設定部２０１は、取得した条件情報を、個別属性匿名化部２０２、及び複数属性匿名化部２０３が参照可能な情報としてメモリに設定する。個別属性匿名化部２０２は、非匿名化情報記憶部１０から、複数のレコードを取得し、条件情報を参照して、レコードを属性ごとに属性単位でｋ匿名化し、属性単位でｋ匿名化されたレコードを複数属性匿名化部２０３に出力する。
【００１８】
属性ごとに属性単位でｋ匿名化されていても、レコードは複数の属性を備えるため、複数のレコード全体がｋ匿名化されているとは限らない。そこで、複数属性匿名化部２０３は、属性単位でｋ匿名化されたレコードを複数の属性にまたがってｋ匿名化し、複数のレコード全体をｋ匿名化する。そして、複数属性匿名化部２０３は、ｋ匿名化された複数のレコードを匿名化情報記憶部３０に出力する。
【００１９】
匿名化情報記憶部３０は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。匿名化情報記憶部３０は、匿名化装置２０によって出力された、ｋ匿名化されたレコードを記憶する。
【００２０】
図２は、匿名化装置２０の処理の流れの具体例を示すフローチャートである。このフローチャートは、レコード数がＮＲのレコード全体をｋ匿名化する場合の処理を示している。まず、条件情報設定部２０１は、複数のレコードに関する条件情報を非匿名化情報記憶部１０から取得し、取得した条件情報を、個別属性匿名化部２０２、及び複数属性匿名化部２０３が参照可能な情報としてメモリに設定する（ステップＳ１０１）。
【００２１】
個別属性匿名化部２０２は、複合対象となる属性を含むレコードを非匿名化情報記憶部１０から取得する（ステップＳ１０２）。複合対象となる属性は、ｋ匿名化対象の属性である。例えば、レコードが３種類の属性を持つ場合に、そのうちの２種類の属性のみをｋ匿名化するときには、２種類の属性の属性値が複合対象となる非匿名化情報となる。さらに、非匿名化情報の更新が発生した場合、個別属性匿名化部２０２が取得するレコードは、属性値の変更があった属性に限る。このように属性値の変更があった属性のみを匿名化するため、より高速化を図ることができる。
【００２２】
個別属性匿名化部２０２は、取得した非匿名化情報のうちのレコードを属性単位でｋ匿名化する（ステップＳ１０３）。属性単位でｋ匿名化されたレコードは、複数属性匿名化部２０３に出力される。
【００２３】
複数属性匿名化部２０３は、複数のレコード全体をｋ匿名化するために、まずループカウンタｉを１で初期化する（ステップＳ１０４）。複数属性匿名化部２０３は、優先順位が最も低い属性の属性値を昇順でソートする（ステップＳ１０５）。複数属性匿名化部２０３は、カウンタｉを一時記憶するための変数ｔに代入し、同値のレコード数を示す変数ｊに１を代入する（ステップＳ１０６）。
【００２４】
複数属性匿名化部２０３は、同値レコードグループ化処理を行う（ステップＳ１０７）。この同値レコードグループ化処理では、全属性の属性値が全て同じレコードを１つのグループとする。同値レコードグループ化処理では、属性値が異なるレコードが出現した場合に処理を終了する。
【００２５】
複数属性匿名化部２０３は、変数ｊがｋ以上か否かを判定する（ステップＳ１０８）。このステップＳ１０８における「ｋ」はｋ匿名化のｋである。従って、ステップＳ１０８で肯定判定された場合には、同値のレコードがｋ以上存在するので、ｊ個のレコードはｋ匿名化されていることを示している。
【００２６】
変数ｊがｋ以上の場合には（ステップＳ１０８−ＹＥＳ）、複数属性匿名化部２０３は、ｒ（ｔ）のレコードとその個数（ｊ個）を匿名化情報記憶部３０に出力することで登録する（ステップＳ１０９）。複数属性匿名化部２０３は、カウンタｉがレコード数ＮＲと等しいか否かを判定する（ステップＳ１１０）。カウンタｉがレコード数ＮＲと等しい場合には（ステップＳ１１０−ＹＥＳ）、複数属性匿名化部２０３は、全レコードに対する処理が終了したので、本処理を終了する。
【００２７】
カウンタｉがレコード数ＮＲと異なる場合には（ステップＳ１１０−ＮＯ）、複数属性匿名化部２０３は、カウンタｉを１増分する（ステップＳ１１１）。複数属性匿名化部２０３は、ｒ（ｉ）が処理済みか否かを判定する（ステップＳ１１２）。ｒ（ｉ）が処理済みとは、ステップＳ１０９で示したように、匿名化情報記憶部３０に出力され、登録されたレコードであることを示す。ｒ（ｉ）が処理済みの場合には（ステップＳ１１１−ＹＥＳ）、複数属性匿名化部２０３は、再びステップＳ１１１でカウンタｉを１増分する。ｒ（ｉ）が処理済みではない場合には（ステップＳ１１１−ＮＯ）、複数属性匿名化部２０３は、ステップＳ１０５に戻る。
【００２８】
上記ステップＳ１０８において、変数ｊがｋ未満の場合には（ステップＳ１０８−ＮＯ）、ｋ匿名性が担保されていないため、複数属性匿名化部２０３は、次の図３に示されるように、優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させる。上記「異なる属性値を新たな１つの属性値とする」ことを、以下の説明では「結合」と表現することがある。結合を具体的に説明すると、ステップＳ１０８でＮＯとなった時点で、ｒ（ｔ）からｒ（ｉ―１）まで、同値のレコードが存在する。これらのレコードと、ｒ（ｉ）以降のレコード（例えばｒ（ｓ）、ｒ（ｕ）…）とを、ある属性の新たな１つの属性値とすることが結合である。なお、結合するレコードは、１つの場合もあれば、複数の場合もある。こうして結合されたレコード全体でｋ匿名化が担保されいているか否かが判定される。また、あるレコードが結合可能なレコードか否かについては、条件情報により判定される。結合処理の具体例については後述する。
【００２９】
図３に移り、複数属性匿名化部２０３は、ループカウンタｎを１で初期化する（ステップＳ１２０）。カウンタｎは、各属性における結合処理回数を示す。複数属性匿名化部２０３は、ループカウンタｍを１で初期化する（ステップＳ１２１）。カウンタｍは、結合処理を行う属性を示す。カウンタｍが大きいほど、優先順位が高い属性であることを示している。
【００３０】
複数属性匿名化部２０３は、優先順位ｍの属性の属性値を昇順でソートする（ステップＳ１２２）。複数属性匿名化部２０３は、当該属性にて結合可能な未処理の属性値が存在するか否かを判定する（ステップＳ１２３）。ここで、結合可能な未処理の属性値が存在しない場合の例は以下の通りである。
・属性が数値情報の場合では当該属性の最大の属性値が処理済である。
・属性が閾値定義によりグループ化された数値情報の場合では、当該グループの最大の属性値が処理済である。
・属性が階層化された情報の場合では当該属性値に結合可能な属性値がすべて処理済である。これら３つの例に限らず、結合可能な未処理の属性値が存在しない場合には（ステップＳ１２３−ＮＯ）、複数属性匿名化部２０３は、ステップＳ１２８に進む。
【００３１】
結合可能な未処理の属性値が存在する場合には（ステップＳ１２３−ＹＥＳ）、複数属性匿名化部２０３は、優先順位ｍの属性について結合処理を行う（ステップＳ１２４）。複数属性匿名化部２０３は、ステップＳ１２４において新たに結合したレコード数を、変数ｊに加算する（ステップＳ１２５）。
【００３２】
複数属性匿名化部２０３は、変数ｊがｋ以上か否かを判定する（ステップＳ１２６）。このステップＳ１２５における「ｋ」もｋ匿名化のｋである。従って、ステップＳ１２６で肯定判定された場合には、結合処理によって、ｊ個のレコードはｋ匿名化されていることを示している。変数ｊがｋ以上の場合には（ステップＳ１２６−ＹＥＳ）、複数属性匿名化部２０３は、ｒ（ｔ）のうち、結合した属性部分を変更したレコードと、その個数（ｊ個）を匿名化情報記憶部３０に出力することで登録し（ステップＳ１２７）、図２のステップＳ１１０に進む。
【００３３】
上記ステップＳ１２６において、変数ｊがｋ未満の場合には（ステップＳ１２６−ＮＯ）、ｋ匿名性が担保されていないため、複数属性匿名化部２０３は、ｎがＮ以下か否かを判定する（ステップＳ１２８）。上記Ｎは、属性数である。ｎがＮより大きい場合には（ステップＳ１２８−ＮＯ）、複数属性匿名化部２０３は、ｍとＮとが等しいか否かを判定する（ステップＳ１３１）。ｍとＮとが等しい場合には（ステップＳ１３１−ＹＥＳ）、複数属性匿名化部２０３は、ｎを増分して（ステップＳ１３２）、ステップＳ１２１に進む。ｍとＮとが異なる場合には（ステップＳ１３１−ＮＯ）、複数属性匿名化部２０３は、ｍを増分して（ステップＳ１３０）、ステップＳ１２２に進む。すなわち、優先順位を１つ上げた属性において結合処理が行われる。
【００３４】
ステップＳ１２８において、ｎがＮ以下の場合には（ステップＳ１２８−ＹＥＳ）、複数属性匿名化部２０３は、ｍとｎとが等しいか否かを判定する（ステップＳ１２９）。ｍとｎとが異なる場合には（ステップＳ１２９−ＮＯ）、複数属性匿名化部２０３は、上記ステップＳ１３０に進む。ｍとｎとが等しい場合には（ステップＳ１２９−ＹＥＳ）、複数属性匿名化部２０３は、上記ステップＳ１３２に進む。
【００３５】
上記ステップＳ１２３に示されるように、結合可能なものがない場合には、複数属性匿名化部２０３は、上記ステップＳ１２８に進む。このように、当該属性にて結合可能なものがない場合には、別の属性での結合を実施することとなる。
【００３６】
図４は、図２のステップＳ１０７の同値レコードグループ化処理の流れの具体例を示すフローチャートである。まず、複数属性匿名化部２０３は、カウンタｉを１増分する（ステップＳ３０１）。複数属性匿名化部２０３は、ｒ（ｉ）が処理済みか否かを判定する（ステップＳ３０２）。ｒ（ｉ）が処理済みの場合には（ステップＳ３０２−ＹＥＳ）、複数属性匿名化部２０３は、再びステップＳ３０１でカウンタｉを１増分する。ｒ（ｉ）が処理済みではない場合には（ステップＳ３０２−ＮＯ）、複数属性匿名化部２０３は、ｒ（ｔ）とｒ（ｉ）とが等しいか否かを判定する（ステップＳ３０３）。ここで、ｒ（＊）は、＊番目のレコード全体を示す。また、ｒ（ｔ）とｒ（ｉ）とが等しいとは、ｒ（ｔ）の属性値に対応するｒ（ｉ）の属性値が全て等しいことを意味する。
【００３７】
ｒ（ｔ）とｒ（ｉ）とが等しい場合には（ステップＳ３０３−ＹＥＳ）、レコード数が増加するため、複数属性匿名化部２０３は、変数ｊを１増分し（ステップＳ３０４）、ステップＳ３０１に戻る。ｒ（ｔ）とｒ（ｉ）とが異なる場合には（ステップＳ３０３−ＮＯ）、複数属性匿名化部２０３は、処理を終了する。
【００３８】
図５は、図３のフローチャートに示される処理の処理内容を示す図である。図３においては、一例として属性数が５の場合を処理内容を示している。また、図３において、横軸は優先度１の属性の結合処理回数を示し、縦軸は各属性の優先度を示す。また、横軸は図３のフローチャートにおける「ｎ」を示し、縦軸は図３のフローチャートにおける「ｍ」を示している。
【００３９】
図５（ａ）は、図３のフローチャートに示される処理の順番を示す図である。まず、ｎ＝１、ｍ＝１で、優先度が１の属性において結合処理が行われる。次いで、ｎ＝２、ｍ＝１〜２で、優先度が１、２の属性において結合処理が行われる。次いで、ｎ＝３、ｍ＝１〜３で、優先度が１〜３の属性において結合処理が行われる。次いで、ｎ＝４、ｍ＝１〜４で、優先度が１〜４の属性において結合処理が行われる。次いで、ｎ＝５、ｍ＝１〜５で、優先度が１〜５の属性において結合処理が行われる。以下、ｋ匿名化されるまで、結合処理回数を増加していくこととなる。
【００４０】
図５（ｂ）は、図３のフローチャートに示される処理の「ｎ」と「ｍ」との関係を示す図である。各矢印５０〜５４は、それぞれｎ＝１〜５に対応している。また、各々の矢印５０〜５４において、始点から終点へ向かうことで優先度が増加する様子は、ｍが増加することを示している。
【００４１】
従って、矢印５０は、ｎ＝１、ｍ＝１の処理（優先度が１の属性における結合処理）が行われることを示している。矢印５１は、ｎ＝２、ｍ＝１〜２の処理（優先度が１〜２における属性の結合処理）が行われることを示している。矢印５２は、ｎ＝３、ｍ＝１〜３の処理（優先度が１〜３の属性における結合処理）が行われることを示している。矢印５３は、ｎ＝４、ｍ＝１〜４の処理（優先度が１〜４の属性における結合処理）が行われることを示している。矢印５４は、ｎ＝５、ｍ＝１〜５の処理（優先度が１〜５の属性における結合処理）が行われることを示している。以下、ｋ匿名化されるまで、矢印に示される順番で結合処理が行われ、矢印の終点まで結合処理が行われると、必要に応じて右の矢印に移行し、再び結合処理が行われることとなる。
【００４２】
さらに、非匿名化情報の更新が発生した場合、複数属性匿名化部２０３が処理対象とする属性は変更が発生した属性に限定し、変更が発生していない属性については前回匿名化処理結果を転用する。このように属性値の結合処理による匿名化を属性値の変更があった属性に限定することで、より高速化を図ることができる。
【００４３】
図６は、個別属性匿名化部２０２によるｋ匿名化（ｋ＝３）の一例を示す図である。なお、図６は、レコードが３個の属性を備え、属性１は階層化された情報、属性２及び３が数値情報であるレコードの例を示している。また、図６に例示する属性単位でのｋ匿名化は、一般階層木を用いてｋ匿名化を行うものであり、このｋ匿名化は既存技術によるものである。つまり、複数属性匿名化部２０３の前処理を実行する個別属性匿名化部２０２においては、既存技術を使用した匿名化処理でも良い。
【００４４】
図６において、図６（ａ）は、非匿名化情報を示している。図６（ｂ）は、属性１における一般化階層を示している。図６（ｃ）は、属性１において、レベル１によるｋ匿名化を示している。図６（ｄ）は、属性２における一般化階層を示している。図６（ｅ）は、属性２において、レベル１によるｋ匿名化を示している。図６（ｆ）は、属性３における一般化階層を示している。図６（ｇ）は、属性３において、レベル２によるｋ匿名化を示している。図６（ｃ）（ｅ）（ｇ）に示されるように、いずれの場合もｋ匿名化されている。
【００４５】
図７は、複数属性匿名化部２０３によるｋ匿名化の処理結果を示す図である。図７（ａ）は、図６で示した属性単位でのｋ匿名化結果を示している。図７（ｂ）は、複数属性匿名化部２０３によるｋ匿名化の処理結果を示す図である。
【００４６】
図２に示した処理に基づき説明すると、まずレコード１からレコード４までは、同値レコードであり（ステップＳ１０７）、かつ４個存在するため（ステップＳ１０８で肯定判定）、ｋ匿名化されている。次いで、レコード５からレコード７までは、同値レコードであり（ステップＳ１０７）、かつ３個存在するため（ステップＳ１０８で肯定判定）、ｋ匿名化されている。
【００４７】
次いで、レコード８からレコード１１までは、同値レコードであり（ステップＳ１０７）、かつ４個存在するため（ステップＳ１０８で肯定判定）、ｋ匿名化されている。そして、レコード１２からレコード１４までは、同値レコードであり（ステップＳ１０７）、かつ３個存在するため（ステップＳ１０８で肯定判定）、ｋ匿名化されている。
【００４８】
以上の処理により、レコード数が１４のレコード全体がｋ匿名化される。そして、図７（ｂ）に示されるように、ｋ匿名化されたレコードが、匿名化情報記憶部３０に登録される。
【００４９】
上述したように、図６における属性単位でのｋ匿名化は、一般階層木を用いたｋ匿名化を行うものであり、このｋ匿名化は既存技術によるものである。一方、図７に示した複数属性匿名化部２０３によるｋ匿名化は、従来技術のように一般階層木を用いてｋ匿名化するものではない。一般階層木を用いたｋ匿名化では、ｋ匿名化されるまで、次々と親の階層でｋ匿名化されているか否かを判定するものであるが、複数属性匿名化部２０３によるｋ匿名化は、優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで属性単位匿名化レコードを複数の属性にまたがってｋ匿名化するものであるため、一般階層木を用いた従来技術のｋ匿名化とは全く異なるものである。
【００５０】
次に、複数属性匿名化部２０３の結合処理例について説明する。図８は、数値情報の場合の結合処理例を示す図である。図８（ａ）に示されるように、属性値「３１−４０」を持つレコードが２個のため、ｋ匿名性（ｋ＝３）を担保できない。この場合には、図８（ｂ）に示されるように、隣接する属性値「４１−５０」を持つレコードと、属性値「３１−４０」を持つレコードとを新たな１つの属性値「３１−５０」を持つレコードとする。これにより、属性値「３１−５０」を持つレコードが５つとなるため、結合された５つのレコードはｋ匿名化されたレコードとなる。なお、図８での結合処理は属性ｍ以外の属性値がすべて一致しているレコードに限ることを前提条件とする。
【００５１】
図９は、属性が階層化された情報で条件情報として階層内属性値間結合定義を持つ場合の結合処理例を示す図である。図９（ａ）に示されるように、属性値「京都府」を持つレコードが２個のため、ｋ匿名性（ｋ＝３）を担保できない。そこで複数属性匿名化部２０３は、結合可能属性値を参照する。結合可能属性値とは、自然な結合が可能な属性値を示すものである。図９の例では、地理的に隣接している京都府と大阪府は結合可能であるが、隣接していない京都府と兵庫県は結合できないことを示している。これにより有用性を担保することが可能となる。なお、図９での結合処理は属性ｍ以外の属性値がすべて一致しているレコードに限ることを前提条件とする。
【００５２】
この場合には、図９（ｂ）に示されるように、属性値「京都」を持つレコードと、結合可能な属性値「大阪府」を持つレコードとを新たな１つの属性値「京都府、大阪府」を持つレコードとする。これにより、属性値「京都府、大阪府」を持つレコードが５つとなるため、結合された５つのレコードはｋ匿名化されたレコードとなる。
【００５３】
図１０は、条件情報が時系列データにおける重心の場合の結合処理例を示す図である。なお、図１０に示される時系列データでは、データが数値であることから、図１０は、数値情報の結合処理例の一つとして、時系列データにおける重心の場合の結合処理例を示している。図１０（ａ）に示されるように、第１時系列のレコードが２個のため、ｋ匿名性（ｋ＝３）を担保できない。そこで複数属性匿名化部２０３は、ともに空欄でないカラムの個数が最大となるレコードを結合対象属性値候補として選出する。次に時系列データにおける重心を参照し、前記結合対象属性値候補のうち当該レコードとの重心距離が所定の値以下のレコードのみに前記結合対象属性値候補を絞り込む。絞り込まれた前記結合対象属性値候補のうち、重心距離が最小のレコードを結合対象とする。ただし、前記結合対象属性値候補の絞り込み処理において該当するレコードが存在しない場合は、ともに空欄ではないカラムの個数が次に多いレコードを結合対象属性値候補として選出し、以降同一の処理を繰り返す。条件情報が時系列データにおける重心の場合、各々の時系列データの重心が条件情報として含まれている。なお、図１０の各レコードの空欄は、匿名化を行ったことを示している。
【００５４】
図１０の場合には、例えば、結合対象属性値候補絞込みのための条件がマンハッタン距離≦２であるとした場合、第１時系列とともに空欄ではないカラムの個数が最大である第５時系列を結合対象属性値候補として選出する。第１時系列と第５時系列間のマンハッタン距離は１となるため第５時系列は所定の値以内となる唯一のレコードとなり結合対象に選出される。この場合、第１時系列と第５時系列とを新たな１つの属性値「左端の属性値「月ＡＭ」が１で、その１つ右の属性値「月ＡＭ」が０」でそれ以外は空欄のレコードとする。これにより、「左端の属性値「月ＡＭ」が１で、その１つ右の属性値「月ＡＭ」が０」でそれ以外は空欄のレコードが６つとなるため、結合された６つのレコードはｋ匿名化されたレコードとなる。なお、重心間の距離を求めるための距離関数は、距離の公理（非負性、非退化性、対称性、三角不等式）を満たすものであれば、どのような関数であってもよい。なお、数値に加え、数値以外の属性値を持つ他の属性を持つレコードの結合では、数値以外の他の属性の属性値が全て一致してることがレコードを結合する前提である。
【００５５】
このように構成された匿名化装置２０では、匿名性及び有用性の双方を保つことが可能になる。具体的には以下のとおりである。
【００５６】
まず、優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで、全てのレコードの組み合わせを総当たりして匿名化する場合と比較して、匿名化処理に要する時間を抑制可能となる。また、匿名化装置２０は、優先順位が低い属性ほど、異なる属性値を新たな１つの属性値とするレコードを増加させることで属性単位匿名化レコードを複数の属性にまたがってｋ匿名化する。従って、例えばあまり匿名化させたくない属性ほど高い優先順位に設定することで、低い優先順位が設定された属性よりは匿名性が低くなるため、有用性を担保することが可能となる。
【００５７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５８】
１…匿名化システム，  １０…非匿名化情報記憶部，  ２０…匿名化装置，  ３０…匿名化情報記憶部，  ２０１…条件情報設定部，  ２０２…個別属性匿名化部，  ２０３…複数属性匿名化部
【図１】
2017182508.tif 000003
【図２】
2017182508.tif 000004
【図３】
2017182508.tif 000005
【図４】
2017182508.tif 000006
【図５】
2017182508.tif 000007
【図６】
2017182508.tif 000008
【図７】
2017182508.tif 000009
【図８】
2017182508.tif 000010
【図９】
2017182508.tif 000011
【図１０】
2017182508.tif 000012
【手続補正書】
【提出日】平成29年4月26日(2017.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得部と、
前記複数の属性に対して予め定められた優先順位を取得する順位取得部と、
前記取得部により取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化部と、
個別属性匿名化部により属性単位で匿名化された属性単位匿名化レコードから、前記順位取得部により取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化部と、
を有する匿名化装置。
【請求項２】
前記複数属性匿名化部は、互いに異なる複数の属性値を新たな１つの属性値とすることで匿名性を判定し、匿名性が担保されていない場合には、互いに異なる複数の属性値を新たな１つの属性値とした属性より優先順位の高い属性の互いに異なる複数の属性値を新たな１つの属性値として匿名性を判定することを繰り返すことで前記属性単位匿名化レコードを複数の属性にまたがって匿名化することを特徴とする請求項１に記載の匿名化装置。
【請求項３】
匿名化装置における匿名化方法であって、
匿名化装置が、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、
匿名化装置が、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、
匿名化装置が、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、
匿名化装置が、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、
を有する匿名化方法。
【請求項４】
匿名化装置が、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、
匿名化装置が、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、
匿名化装置が、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、
匿名化装置が、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、
を匿名化装置のコンピュータに実行させるためのコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
本発明の一態様は、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得部と、前記複数の属性に対して予め定められた優先順位を取得する順位取得部と、前記取得部により取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化部と、個別属性匿名化部により属性単位で匿名化された属性単位匿名化レコードから、前記順位取得部により取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化部と、を有する匿名化装置である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の一態様は、上記匿名化装置であって、前記複数属性匿名化部は、互いに異なる複数の属性値を新たな１つの属性値とすることで匿名性を判定し、匿名性が担保されていない場合には、互いに異なる複数の属性値を新たな１つの属性値とした属性より優先順位の高い属性の互いに異なる複数の属性値を新たな１つの属性値として匿名性を判定することを繰り返すことで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の一態様は、匿名化装置における匿名化方法であって、匿名化装置が、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、匿名化装置が、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、匿名化装置が、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、匿名化装置が、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、を有する匿名化方法である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の一態様は、匿名化装置が、匿名化されていない複数の属性の値を有する非匿名化情報である複数のレコードを取得するレコード取得ステップと、匿名化装置が、前記複数の属性に対して予め定められた優先順位を取得する順位取得ステップと、匿名化装置が、前記取得ステップにより取得された前記複数のレコードを、属性単位で匿名化する個別属性匿名化ステップと、匿名化装置が、個別属性匿名化ステップにより属性単位で匿名化された属性単位匿名化レコードから、前記順位取得ステップにより取得された前記優先順位が低い属性ほど、互いに異なる複数の属性値を新たな１つの属性値とするレコードを増加させることで前記属性単位匿名化レコードを複数の属性にまたがって匿名化する複数属性匿名化ステップと、を匿名化装置のコンピュータに実行させるためのコンピュータプログラムである。