図1は、本発明の第一の実施形態である情報システム100の概略図である。
図示するように、情報システム100は、個人情報管理装置110と、情報端末140と、を備え、これらは、ネットワーク150を介して、相互に情報の送受信を行うことができるようにされている。
図2は、個人情報管理装置110の概略図である。
図示するように、個人情報管理装置110は、記憶部111と、制御部120と、入力部125と、出力部126と、送受信部127と、を備える。
記憶部111は、個人情報記憶領域112と、安全変数値群更新時個人情報記憶領域113と、安全変数値群抽出パラメータ記憶領域114と、安全変数値群記憶領域115と、更新状況管理情報記憶領域116と、匿名化条件情報記憶領域117と、匿名個人情報記憶領域118と、匿名化実行日時管理情報記憶領域119と、を備える。
個人情報記憶領域112には、情報システム100において管理する個人情報が記憶される。
例えば、本実施形態においては、図3(個人情報テーブル112aの概略図)に示すような個人情報テーブル112aが個人情報記憶領域112に記憶される。
図示するように、個人情報テーブル112aは、IDフィールド112bと、性別フィールド112cと、年令フィールド112dと、郵便番号フィールド112eと、来店頻度フィールド112fと、来店日フィールド112gと、購入額フィールド112hと、を備え、各レコードに各フィールドで特定される項目に対応する情報を格納することで、レコード毎に各個人の個人情報が格納されるようになっている。
IDフィールド112bには、各レコード(各個人)を識別するための識別情報が格納される。ここで、本実施形態においては、個人情報テーブル112aの上から順番に、「1」から連番となるような自然数を各レコードに割り振っているが、このような形態に限定されるわけではない。
性別フィールド112cには、各個人の性別を特定する情報が格納される。
年令フィールド112dには、各個人の年令を特定する情報が格納される。
郵便番号フィールド112eには、各個人の住所の郵便番号を特定する情報が格納される。
来店頻度フィールド112fには、各個人の来店頻度を特定する情報が格納される。ここで、来店頻度は、特定の期間における特定の店舗の来店回数であってもよく、また、特定の期間における特定の店舗の来店回数から特定の法則で割り出される値であってもよい。
来店日フィールド112gには、各個人が最後に特定の店舗に来店した年月日を特定する情報が格納される。
購入額欄112hには、各個人が特定の店舗で購入した品物の購入金額を特定する情報が格納される。ここで、購入額は、特定の期間における品物の購入金額の合計であってもよく、また、特定の店舗で最後に購入した品物の購入金額であってもよい。
図2に戻り、安全変数値群更新時個人情報記憶領域113には、後述する安全変数値群抽出部112が、安全変数値群を抽出する際に使用した個人情報テーブルが記憶される。
なお、安全変数値群更新時個人情報記憶領域113に記憶される個人情報テーブルは、図3に示す個人情報テーブル112aと同様のフィールドを有するが、各レコードに格納される情報は、後述する安全変数値群抽出部112が安全変数値群を抽出する際に格納されていた情報である。
安全変数値群抽出パラメータ記憶領域114には、後述する安全変数値群抽出部112が安全変数値群を抽出する際のしきい値となるパラメータを特定する情報が格納される。
例えば、本実施形態においては、図4(安全変数値群抽出パラメータテーブル114aの概略図)に示すような安全変数値群抽出パラメータテーブル114aが安全変数値群抽出パラメータ記憶領域114に記憶される。
図示するように、安全変数値群抽出パラメータテーブル114aは、パラメータフィールド114bを有し、後述する後述する安全変数値群抽出部112が安全変数値群を抽出する際のしきい値となるパラメータが格納される。なお、このパラメータについては、個人情報管理装置110のオペレータが、入力部125を介して、適切な値を格納しておけばよい。
図2に戻り、安全変数値群記憶領域115には、個人情報記憶領域112に記憶されている個人情報のうち、後述する後述する安全変数値群抽出部112が安全な変数値であると判断した変数値を特定する情報が格納される。
例えば、本実施形態においては、図5(安全変数値群テーブル115aの概略図)に示すような安全変数値群テーブル115aが安全変数値群記憶領域115に記憶される。
図示するように、安全変数値群テーブル115aは、IDフィールド115bと、安全変数値群フィールド115cと、を備える。
IDフィールド115bには、図3に示す個人情報テーブル112aの各レコードに割り振られたIDを特定する情報が格納される。
安全変数値群フィールド115cには、IDフィールド115bで特定される個人情報テーブル112aのレコードに格納されている変数値のうち、後述する安全変数値群抽出部122が安全な変数値であると判断した変数値名(フィールド名)及び変数値を特定する情報が格納される。
図2に戻り、更新状況管理情報記憶領域116には、個人情報テーブル112aを更新した時と、安全変数値群テーブル115aを更新した時と、を特定する情報が記憶される。
例えば、本実施形態においては、図6(更新状況管理テーブル116aの概略図)に示すような更新状況管理テーブル116aが更新状況管理情報記憶領域116に記憶される。
図示するように、更新状況管理テーブル116aは、IDフィールド116bと、レコード更新日時フィールド116cと、安全変数値群更新日時フィールド116dと、更新種別フィールド116eと、を備える。
IDフィールド116bには、個人情報テーブル112a及び安全変数値群テーブル115aの各レコードに割り振られたIDを特定する情報が格納される。
レコード更新日時フィールド116cには、IDフィールド116bで特定される個人情報テーブル112aのレコードが更新された年月日時間を特定する情報が格納される。
安全変数値群更新日時フィールド116dと、IDフィールド116bで特定される安全変数値群テーブル115aのレコードが更新された年月日時間を特定する情報が格納される。
更新種別フィールド116eには、IDフィールド116bで特定される個人情報テーブル112aのレコードが更新された際の、更新種別を特定する情報が格納される。ここで、本実施形態では、更新種別としてレコードの「追加」及びレコードの「変更」の何れか一方が格納される。
図2に戻り、匿名化条件情報記憶領域117には、個人情報記憶領域112に記憶されている個人情報を匿名化する条件を特定する情報が記憶される。
例えば、本実施形態においては、図7(匿名化条件テーブル117aの概略図)に示すような匿名化条件テーブル117aが匿名化条件情報記憶領域117に記憶される。
図示するように、匿名化条件テーブル117aは、性別フィールド117bと、年令フィールド117cと、郵便番号フィールド117dと、来店頻度フィールド117eと、来店日フィールド117fと、購入額フィールド117gと、を備える。
性別フィールド117bには、個人情報テーブル112aの性別フィールド112cに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの性別フィールド112cに格納された情報(男性又は女性)を性別不明に変換するようにしている。
年令フィールド117cには、個人情報テーブル112aの年令フィールド112dに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの年令フィールド112dに格納された情報(年令)を10歳刻み(例えば、30〜39歳までの年令を30歳に変換)にするようにしている。
郵便番号フィールド117dには、個人情報テーブル112aの郵便番号フィールド112eに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの郵便番号フィールド112eに格納された情報の上位3桁だけを残すように変換するようにしている。
来店頻度フィールド117eには、個人情報テーブル112aの来店頻度フィールド112fに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの来店頻度フィールド112fに格納された情報を10以上又は10以下の何れか一方に振り分けるようにしている。
来店日フィールド117fには、個人情報テーブル112aの来店日フィールド112gに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの来店日フィールド112gに格納された情報(年月日)を年と月のみに変換するようにしている。
購入額フィールド117gには、個人情報テーブル112aの購入額フィールド112hに格納された情報を匿名化する条件(方法)を特定する情報が格納される。例えば、ここでは、個人情報テーブル112aの購入額フィールド112hに格納された情報を1000円刻みに変換するようにしている。
図2に戻り、匿名個人情報記憶領域118には、匿名化した個人情報を特定する情報が格納される。
例えば、本実施形態においては、図8(匿名個人情報テーブル118aの概略図)に示すような匿名個人情報テーブル118aが匿名個人情報記憶領域118に記憶される。
図示するように、匿名個人情報テーブル118aは、IDフィールド118bと、性別フィールド118cと、年令フィールド118dと、郵便番号フィールド118eと、来店頻度フィールド118fと、来店日フィールド118gと、購入額フィールド118hと、を備え、各レコードには、個人情報記憶領域112に記憶されている個人情報テーブル112aの対応するレコードに格納されている情報のうち、後述する安全変数値群抽出部122が安全と判断した変数値と、後述する安全変数値群抽出部122が安全ではないと判断した変数値を匿名化条件テーブル117aに基づいて匿名化した匿名変数値と、が格納される。
図2に戻り、匿名化実行日時管理情報記憶領域119には、個人情報記憶領域112に記憶されている個人情報を匿名化した時を特定する情報が格納される。
例えば、本実施形態においては、図9(匿名化実行日時テーブル119aの概略図)に示すような匿名化実行日時テーブル119aが匿名化実行日時管理情報記憶領域119に記憶される。
図示するように、匿名化実行日時テーブル119aは、IDフィールド119bと、匿名化日時フィールド119cと、を備える。
IDフィールド119bには、個人情報テーブル112aの各レコードに割り振られたIDに対応する情報が格納される。
匿名化日時フィールド119cには、IDフィールド119bで特定される個人情報テーブル112aのレコードに格納された変数値を匿名化した年月日時間を特定する情報が格納される。
図2に戻り、制御部120は、情報処理部121と、安全変数値群抽出部122と、更新情報管理部123と、匿名化処理部124と、を備える。
情報処理部121は、入力部125を介して、個人情報の入力を受け付け、個人情報テーブル112aを生成し、個人情報記憶領域112に記憶する処理を行う。
また、情報処理部121は、個人情報記憶領域112に記憶されている個人情報テーブル112aを所定の表示形式にして出力部126に表示し、入力部125を介して、個人情報テーブル112aに新たなレコードを追加し、個人情報テーブル112aのレコードに格納されている変数値を変更することで、個人情報を更新する処理を行う。
安全変数値群抽出部122は、個人情報テーブル112aの各々のフィールド毎に、当該フィールドに同じ変数値がいくつ格納されているかを、変数値毎にカウント(加算)する処理を行う。
そして、安全変数値群抽出部122は、変数値毎にカウントされた値を、安全変数値群抽出パラメータ記憶領域114に記憶されているパラメータと比較して、当該パラメータ以上の値を安全変数値と判断する。
さらに、安全変数値群抽出部122は、個人情報テーブル112aの各々のレコード毎に、安全変数値を抽出して、安全変数値群テーブル115aを生成して安全変数値群記憶領域115に記憶する処理を行う。
また、安全変数値群抽出部122は、個人情報テーブル112aが更新された場合にも、更新された変数値に関連する変数値毎に、個人情報テーブル112aの各々のフィールドにおいて同じ変数値がいくつ格納されているかをカウントして、パラメータと比較することにより、安全な変数値であるか否かを判断して、安全変数値群テーブル115aを更新する処理を行う。
更新情報管理部123は、情報処理部121において個人情報テーブル112aの更新が行われた場合には、更新状況管理情報記憶領域116に記憶されている更新情報管理テーブル116aに、更新されたレコードのIDと、更新年月日時間と、更新種別と、を特定する情報を格納する処理を行う。
また、更新情報管理部123は、安全変数値群抽出部122において安全編通知群テーブル115が更新された場合には、更新されたレコードのIDに対応するレコードの安全変数値群更新日時フィールド116dに、更新年月日時間を特定する情報を格納する。
匿名化処理部124は、個人情報記憶領域112に記憶されている個人情報テーブル112aの各々のレコードに格納されている変数値を、匿名化条件情報記憶領域117に記憶されている匿名化条件テーブル117aに従って、匿名化する処理を行う。
具体的には、匿名化処理部124は、個人情報テーブル112aの各々のレコードに格納されている変数値のうち、安全変数値群テーブル115aに格納されている安全変数値以外の変数値を特定して、特定した変数値を匿名化条件テーブル117aの対応するフィールドに格納されている条件(方法)に従って、匿名化する処理を行う。
入力部125は、情報の入力を受け付ける。
出力部126は、情報を出力する。
送受信部127は、ネットワーク150を介した情報の送受信を行うためのインターフェースである。
以上に記載した個人情報管理装置110は、例えば、図10(コンピュータ160の概略図)に示すような、CPU(Central Processing Unit)161と、メモリ162と、HDD(Hard Disk Drive)等の外部記憶装置163と、CD−ROM(Compact Disk Read Only Memory)やDVD−ROM(Digital Versatile Disk Read Only Memory)等の可搬性を有する記憶媒体164から情報を読み出す読取装置165と、キーボードやマウスなどの入力装置166と、ディスプレイなどの出力装置167と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置168と、を備えた一般的なコンピュータ160で実現できる。
例えば、記憶部111は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、制御部120は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部125は、CPU161が入力装置166を利用することで実現可能であり、出力部126は、CPU161が出力装置167を利用することで実現可能であり、送受信部127は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図11は、情報端末140の概略図である。
図示するように、情報端末140は、記憶部141と、個人情報記憶領域142と、制御部143と、個人情報分析部144と、入力部145と、出力部146と、送受信部147と、を備える。
記憶部141は、個人情報記憶領域142を備える。
個人情報記憶領域142には、個人情報管理装置110から送受信部147を介して受信した匿名個人情報テーブル118aが記憶される。
制御部143は、個人情報分析部144を備える。
個人情報分析部144は、個人情報記憶領域142に記憶されている匿名個人情報テーブル118aを分析して、分析結果を予め定められた表示形式にして出力部146に出力する処理を行う。
例えば、本実施形態においては、個人情報分析部144は、RFM分析を行うようにしている。RFM分析とは、Recency(Recency:最近の購買日)、Frequency(累計購買回数)、Monetary(累計購買金額)の3つの指標により顧客を分類、あるいはランキングする分析手法として一般的に知られているものである。
なお、図12(分析結果表示画面144aの概略図)は、匿名個人情報テーブル118aに格納されている情報から、RFM分析を行うことで、男性の優良顧客リスト(優良顧客と判断された男性の個人情報を格納したレコードIDのリスト)を表示した分析結果表示画面である。このような顧客リストを匿名個人情報テーブル118aや、匿名個人情報テーブル118aを作成するために用いた元データ、例えば、購買履歴と照らし合わせることにより、優良顧客をターゲットとした購買パターンの把握が可能になる。
入力部145は、情報の入力を受け付ける。
出力部146は、情報を出力する。
送受信部147は、ネットワーク150を介して情報を送受信するためのインターフェースである。
以上に記載した情報端末140は、例えば、図10に示すような一般的なコンピュータ160で実現できる。
例えば、記憶部141は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、制御部143は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部145は、CPU161が入力装置166を利用することで実現可能であり、出力部146は、CPU161が出力装置167を利用することで実現可能であり、送受信部147は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図13は、情報システム100での処理を示すシーケンス図である。
まず、個人情報管理装置110の情報処理部121は、個人情報記憶領域112に記憶されている個人情報テーブル112aを出力部126に出力し、個人情報管理装置110のオペレータより入力部125を介して、個人情報テーブル112aの更新を受け付ける(S10)。
そして、情報処理部121は、個人情報テーブル112aに新たなレコードが追加され、または、個人情報テーブル112aの既存のレコードの変数値が変更されると、更新情報管理部123に、追加もしくは更新されたレコードのIDと、更新種別(変更又は追加)を通知する。
このような通知を受けた更新情報管理部123は、更新状況管理情報記憶領域116に記憶されている更新状況管理テーブル116aを更新する(S11)。
具体的には、更新情報管理部123は、更新状況管理テーブル116aに新たなレコードを追加して、通知されたIDをIDフィールド116bに格納し、更新種別を更新種別フィールド116eに格納し、情報処理部より通知を受け取った年月日時間をレコード更新日時フィールドに格納する。
次に、個人情報管理装置110の安全変数値群抽出部122は、予め定めたタイミング(例えば、情報処理部121から個人情報テーブル112aを更新した際の通知を受けた個数が一定の数に達した場合や、予め定められた時刻になった場合等)で、安全変数値群テーブル122aの更新を行う(S12)。
具体的には、安全変数値群抽出部122は、情報処理部121から個人情報記憶領域に記憶されている個人情報テーブル112aの複製を取得して、更新用個人情報テーブルとする。
なお、以下では、更新用個人情報テーブルのIDフィールドを除く各フィールドの個数をMとし、IDフィールドを除いた各フィールドの変数値には、レコード毎に0〜M−1の自然数が各々割り振られているものとする。また、更新用個人情報テーブルのフィールド名を除く各レコードの個数をNとし、当該各レコードには、0〜N−1の自然数が各々割り振られているものとする。そして、更新用個人情報テーブルの各変数値は、二次元配列D[N][M]に格納され、更新用個人情報テーブルにおけるi(0≦i≦N−1)行目j(0≦j≦M−1)列目の変数値は、D[i][j]で参照されるものとする。
そして、安全変数値群抽出部122は、個人情報テーブル112aに対してまだ安全変数値群の抽出処理を行っていない場合には、更新用個人情報テーブルの各々のフィールド毎に、当該フィールドに同じ変数値がいくつ格納されているかを、変数値毎にカウントした値を、安全変数値群抽出パラメータ記憶領域114に記憶されているパラメータと比較して、当該パラメータ以上の値を安全変数値と判断し、更新用個人情報テーブルの各々のレコード毎に、安全変数値を抽出して、安全変数値群テーブル115aを生成して安全変数値群記憶領域115に記憶する処理を行う。
一方、安全変数値群抽出部122は、個人情報テーブル112aに対して既に安全変数値群の抽出処理を行っている場合には、個人情報テーブル112aにおいて更新された変数値に関連する変数値毎に、更新用個人情報テーブルの各々のフィールドにおいて同じ変数値がいくつ格納されているかをカウントして、パラメータと比較することにより、安全な変数値であるか否かを判断して、安全変数値群テーブル115aを更新する処理を行う。なお、この処理の詳細については、図14を用いて説明する。
さらに、安全変数値群抽出部122は、安全変数値群テーブルの更新を行った場合には、更新用個人情報テーブルを安全値群更新時個人情報記憶領域113に記憶する。
また、更新情報管理部123は、安全変数値群抽出部122において安全変数値群テーブル115aの更新が行われた場合には、個人情報テーブル112aにおいて変数値が更新されたレコードIDに対応する更新状況管理テーブル116aのレコードの安全変数値群更新日時フィールド116dに、安全変数値群抽出部122が更新を行った年月日時間を格納する。
次に、個人情報管理装置110の匿名化処理部124は、予め定めたタイミング(例えば、安全変数値群抽出部122が安全変数値群テーブル122aの更新を行った後)において、匿名個人情報テーブル118aの更新処理を行う(S13)。
具体的には、匿名化処理部124は、更新状況管理情報記憶領域116に記憶されている更新状況管理テーブル116aからIDフィールド116bに格納されている情報の一覧と、安全変数値群更新日時フィールド116dに格納されている情報の一覧と、を取得する。
そして、匿名化処理部124は、取得した安全変数値更新日時と、匿名化実行日時管理情報記憶領域119に記憶されている匿名化日時と、を対応するIDのレコード同士で比較し、安全変数値群更新日時が、匿名化日時よりも新しいレコードのIDを特定する。
次に、匿名化処理部124は、特定したIDに対応する安全変数値群を、安全変数値群記憶領域115に記憶されている安全変数値群テーブル115aから取得し、さらに、匿名化処理部124は、特定したIDに対応する個人情報を、個人情報記憶領域112に記憶されている個人情報テーブル112aから取得する。
そして、匿名化処理部124は、取得した個人情報の内、安全変数値群に対応する変数値がないものを匿名化条件テーブル117aに従って変換して、匿名個人情報テーブル118の対応するIDのレコードの対応するフィールドに格納する。
また、情報処理部121は、特定のタイミングで(例えば、情報端末140からの要求があった時等)、送受信部127を介して、匿名個人情報記憶領域118に記憶されている匿名個人情報テーブル118aを情報端末140に送信する(S14)。
このような匿名個人情報テーブル118aを受信した情報端末140では、個人情報分析部144が、受信した匿名個人情報テーブル118aを個人情報記憶領域142に記憶するとともに、特定のタイミングで(例えば、情報端末140のオペレータより入力部145を介して分析指示の入力を受けた時等)、予め定められた法則に従って匿名個人情報テーブル115aに格納されている情報を分析し(S15)、例えば、性別、来店日、来店頻度、購入額を条件として抽出した、優良顧客を表すデータのリストを出力部146に出力する(S16)。
図14は、安全変数値群テーブル更新処理を示すフローチャートである。
まず、個人情報管理装置110の安全変数値群抽出部122は、安全変数値群抽出パラメータを安全変数値群抽出パラメータ記憶領域114から読み込み、また、個人情報テーブル112aを個人情報記憶領域112から読み込み、更新用個人情報テーブルとする(S20)。
次に、安全変数値群抽出部122は、更新状況管理テーブル116aの各レコードを一つずつ参照するためのカウンタ変数iを0に初期化する(S21)。
次に、安全変数値群抽出部122は、カウンタ変数iがN未満であるか否かを判定し(S22)、N未満である場合(ステップS22でYes)、ステップS23に進み、一方、カウンタ変数iがN未満ではない場合(ステップS22でNo)、ステップS32に進む。ここで、Nはヘッダ行を除いた更新状況管理テーブル116aの行数(レコード数)である。
ステップS23では、安全変数値群抽出部122は、更新状況管理テーブル116aのi行目を参照し、レコード更新日時が、安全変数値群更新日時よりも新しいかどうかを判定する。例えば、更新状況管理テーブル116aの例では、i=0のときはID=1のデータを参照し、レコード更新日時「2007/5/3 10:30」と、安全変数値群更新日時「2007/5/4 0:00」と、を比較する。
そして、レコード更新日時が安全変数値群更新日時よりも新しいと判定された場合(ステップS23でYes)、安全変数値群抽出部122は、更新状況管理テーブル116aのi行目のIDに対応する更新用個人情報テーブルのレコードについて安全変数値群の更新が必要と見なし、ステップS24に進む。一方、レコード更新日時が安全変数値群更新日時よりも新しくない場合には(ステップS23でNo)、更新を不要とみなし、ステップS31に進む。
次に、ステップS24では、安全変数値群抽出部122は、更新状況管理テーブル116aのi行目のレコードの更新種別フィールド116eの相対を参照し、更新種別が変更か否かを判定する。
そして、更新種別が変更と判定された場合(ステップS24でYes)には、ステップS25に進み、一方、更新種別が変更と判定されなかった場合(ステップS24でNo)には、ステップS27に進む。
ステップS25では、安全変数値群抽出部122は、安全変数値群更新時個人情報記憶領域113に記憶されている安全変数値群更新時個人情報テーブルのi番目のレコードと、更新用個人情報テーブルのi番目のレコードを比較して、値が一致しない更新用個人情報テーブルの変数値、すなわち値が更新された変数値を特定する。特定されたm個の変数値と、その変数名の変数番号はそれぞれ、要素数がmの配列Value[]、配列VarName[]に格納される。mは1以上M以下の整数である。
次に、安全変数値群抽出部122は、更新用個人情報テーブルのフィールド毎に、ステップS25で特定した変数値と同じ変数値を有するレコードのIDを抽出し、全てのフィールド毎に抽出したIDを集計することで、重複しないIDの集合を特定する(S26)。具体的には、k=0,1,・・・,N−1のそれぞれにおいて、条件D[k][VarName[0]]=Value[0] or D[k][VarName[1]]=Value[1] or ・・・ D[k][VarName[m-1]]=Value[m-1]が成立するレコードが有する、IDの重複しない集合を求める。
また、ステップS27では、安全変数値群抽出部122は、更新用個人情報テーブルのフィールド毎に、更新用個人情報テーブルのi番目のレコードの各々の変数値と同じ変数値を有するレコードのIDを抽出し、全てのフィールド毎に抽出したIDを集計することで、重複しないIDの集合を特定する。具体的には、配列Value[]、配列VarName[]に、データ301’のi番目のレコードの値を全て格納し、ステップS26と同様の処理により、IDの重複しない集合を求める。
次に、安全変数値群抽出部122は、ステップS26又はステップS27で特定されたIDに対応する更新用個人情報テーブルのレコードに対し、安全変数値群の抽出処理を行う(S28)。ステップS28における1件のレコードデータに対する処理概要は以下の通りである。
まず、安全変数値群抽出部122は、1件のレコードデータが有する変数値の組(変数値群)を1個選択する。変数値群とは、変数名=変数値の組を意味し、図8のデータを例に説明すると、{性別=男性}あるいは{性別=男性、年齢=33}あるいは{性別=男性、年齢=33、郵便番号215}等となる。安全変数値群抽出部122は、このような変数値群を一個選択する。
次に、安全変数値群抽出部122は、更新用個人情報テーブルにおいて、上記の変数値の組を有するレコードデータの件数(同値レコード数)をカウントする。
次に、安全変数値群抽出部122は、上記の同値レコード数が、安全変数値群抽出パレメータ記憶領域114に記憶されているパラメータの値以上であれば、選択した変数値群を安全変数値群として採用する。
そして、安全変数値群抽出部122は、同値レコード数をカウントしていない変数値組に対して以上の処理を繰り返す。
ただし、安全変数値群の性質上、1個のレコードに存在する安全変数値群は1個とは限らず、2個以上存在しうる。本実施形態では各レコードにつき1個の安全変数値組を選択する。そのための典型的な処理の一つは非特許文献1に開示されている。非特許文献1が開示するアルゴリズムでは、予め変数値の組み合わせの優先順位を決めておき、その優先順位に従って変数値群を順にカウントする。カウントした結果、パラメータを満たす変数値群のうち、優先順位が最も大きく、かつ、組に含まれる変数値の個数が最大の変数値群を、当該レコードの最大安全変数値群として抽出する。
次に、安全変数値群抽出部122は、ステップS28で抽出された安全変数値群を案園変数値群記憶領域115に記憶されている安全変数値群テーブル115のID=iのレコードに格納する(S29)。
次に、安全変数値群抽出部122は、更新状況管理テーブル116のID=iのレコードの安全変数値群更新日時フィールド116dに安全変数値を更新した年月日時間を格納する(S30)。
そして、安全変数値群抽出部122は、カウンタ変数iを1増やし(S31)、ステップS22に戻り、処理を繰り返す。
そして、ステップS32では、安全変数値群抽出部122は、更新用個人情報テーブルを安全変数値群更新時個人情報テーブルとして、安全変数値群更新時個人情報記憶領域113に記憶する。
以上が安全変数値群テーブル更新処理の詳細である。
非特許文献1に記載の技術など、従来知られている方法では、個人情報テーブル112aのレコードの1件でも更新されるか、あるいは新たなレコードが追加された場合、個人情報テーブル112aの全てのレコードについて安全変数値群を求め直す必要があった。これに対し本実施例では、安全変数値群更新時個人情報テーブルを記憶しておき、個人情報テーブル112aのレコード更新された際に、更新された変数値が関係するレコードに限定して安全変数値群を求めることが可能になる。
また、個人情報テーブル112aに新たなレコード追加された際も、追加されたレコードが有する変数値が関係するレコードに限定して安全変数値群を求めることが可能になる。
このように、本実施形態によれば、安全変数値群テーブル115aの更新処理を従来技術よりも効率的に行うことができるようになる。
なお、本実施形態では、安全変数値群テーブル115aを最初に生成するときは、非特許文献1等に記載されている従来技術を適用し、安全変数値群テーブル115aの更新時に本発明を適用する例を示したが、本発明の原理上、更新もしくは追加レコードの件数に基づいて安全変数値群抽出処理を使い分ける方法も容易に実現できる。例えば、レコード更新日時が安全変数値群抽出日時よりも新しいレコードの件数をカウントし、この数が所定の件数、例えば10万件よりも小さければ図14に示した安全変数値群更新処理を実行し、10万件よりも大きければ従来技術を用いるようにしてもよい。
また、以上に記載した実施形態では、情報システム100を個人情報管理装置110と、情報端末140と、で構成したが、このような態様に限定されず、例えば、個人情報管理装置110で行う処理に関しては、複数の装置で分散して行ってもよい。
例えば、図15(情報システム100の変形例を示す概略図)に示す情報システム100’のように、個人情報管理装置110の代わりに、個人情報保存装置170、識別リスク管理装置171及び業務情報管理装置172を設けて、これらの装置において個人情報管理装置110で行っている処理を分散して行ってもよい。具体的には、
個人情報保存装置170の記憶部には個人情報記憶領域112を設けておき、個人情報保存装置170の制御部には、情報処理部121を設けておき、識別リスク管理装置171の記憶部には、安全変数値群更新時個人情報記憶領域113、安全変数値群抽出パラメータ記憶領域114、安全変数値群記憶領域115及び更新状況管理情報記憶領域116を設けておき、識別リスク管理装置171の制御部には、安全変数値群抽出部122及び更新情報管理部123を設けておき、業務情報管理装置172の記憶部には、匿名化条件情報記憶領域117、匿名個人情報記憶領域118及び匿名化実行日時管理情報記憶領域119を設けておき、業務情報管理装置172の制御部には、匿名化処理部124を設けておき、これらの装置で情報を適宜送受信することで、個人情報管理装置110と同様の処理を行うことが可能となる。
次に、本発明の第二の実施形態である情報システムについて説明する。ここで、本発明の第二の実施形態では、個人情報管理装置210が第一の実施形態と異なっているため、以下、個人情報管理装置210に関連する事項について説明する。
なお、第二の実施形態では、情報システムの管理者の選択により、第一の実施形態と同様に匿名個人情報テーブルを生成することができるほか、後述するように、アクセス制御個人情報テーブルも生成することができるようにしている。なお、この選択は、入力部125を介して個人情報管理装置210に設定を行えばよい。
図16は、個人情報管理装置210の概略図である。
図示するように、個人情報管理装置210は、記憶部211と、制御部220と、入力部125と、出力部126と、送受信部127と、を備え、記憶部211及び制御部220が第一の実施形態と異なっているため、以下、これらに関連する事項について説明する。
記憶部211は、個人情報記憶領域112と、安全変数値群更新時個人情報記憶領域113と、安全変数値群抽出パラメータ記憶領域114と、安全変数値群記憶領域115と、更新状況管理情報記憶領域116と、匿名化条件情報記憶領域117と、匿名個人情報記憶領域118と、匿名化実行日時管理情報記憶領域119と、アクセス制御情報記憶領域228と、を備え、第一の実施形態と比較して、アクセス制御情報記憶領域228が異なっているため、以下、アクセス制御情報記憶領域228について説明する。
アクセス制御情報記憶領域228には、情報端末140を利用するユーザ毎に、個人情報記憶領域112に記憶されている個人情報テーブル112aに格納されている各々の変数値にアクセス可能か否かを特定する情報が格納される。
例えば、本実施形態においては、情報端末140を利用するユーザ毎に、図17(アクセス制御テーブル228aの概略図)に示すようなアクセス制御テーブル228aがアクセス制御情報記憶領域228に記憶される。
図示するように、アクセス制御テーブル228aは、IDフィールド228bと、性別フィールド228cと、年令フィールド228dと、郵便番号フィールド228eと、来店頻度フィールド228fと、来店日フィールド228gと、購入額フィールド228hと、を備える。
IDフィールド228bには、個人情報テーブル112aのIDフィールド112bに格納されているIDに対応するIDが格納される。
IDフィールド228bで特定されるレコードの、性別フィールド228c、年令フィールド228d、郵便番号フィールド228e、来店頻度フィールド228f、来店日フィールド228g及び購入額フィールド228hには、個人情報テーブル112aの対応するレコード及びフィールドに格納されている情報(変数値)に、情報端末140を利用するユーザがアクセス可能か否かを特定する情報が格納される。
ここで、本実施形態では、「○」の記号が格納されている場合にはアクセス可能であることを示し、「×」の記号が格納されている場合にはアクセス可能でないことを示すようにしているが、このような態様に限定されるわけではない。
図16に戻り、制御部220は、情報処理部121と、安全変数値群抽出部122と、更新情報管理部123と、匿名化処理部124と、アクセス制御部229と、を備え、第一の実施形態と比較して、アクセス制御部229が異なっているため、以下、アクセス制御部229について説明する。
アクセス制御部229は、安全変数値群記憶領域115に記憶されている安全変数値群テーブル115aから、アクセス制御テーブル228aを生成する処理を行う。
具体的には、安全変数値群テーブル115aを参照して、個人情報記憶領域112に記憶されている個人情報テーブル112aにおいて、安全変数値群に含まれている変数値の欄には「○」を格納し、安全変数値群に含まれていない変数値の欄には「×」を格納することで、アクセス制御テーブル228aを生成する。なお、アクセス制御部229は、生成したアクセス制御テーブル228aをアクセス制御情報記憶領域228に記憶する処理を行う。
また、アクセス制御部229は、安全変数値テーブル115aが更新された場合には、安全変数値テーブル115aが更新されたレコードに対応するアクセス制御テーブル228aのレコードの値を更新する処理を行う。
さらに、アクセス制御部229は、情報端末140からのアクセス要求に対して、情報端末140のユーザに対応するアクセス制御テーブル228aでアクセス可能とされている欄にのみ個人情報テーブル112aの変数値を格納したアクセス制御個人情報テーブルを生成して、情報端末140に送信する処理を行う。
以上に記載した個人情報管理装置210は、例えば、図10に示すような一般的なコンピュータ160で実現できる。
例えば、記憶部211は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、制御部220は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部125は、CPU161が入力装置166を利用することで実現可能であり、出力部126は、CPU161が出力装置167を利用することで実現可能であり、送受信部127は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図18は、第二の実施形態における情報システムでの処理を示すシーケンス図である。
ステップS40〜ステップS42の処理については、第一の実施形態における図13のステップS10〜ステップS12と同様の処理であるため、説明を省略する。
ステップS43では、アクセス制御部229は、アクセス制御テーブル228aの更新を行う。
具体的には、アクセス制御部229は、安全変数値群テーブル115aを安全変数値群記憶領域115から読み出す。
そして、アクセス制御部229は、安全変数値群テーブル115aに格納されている安全変数値に対応するアクセス制御テーブル228aの欄には、「○」を、それ以外には「×」を格納することで、アクセス制御テーブル228aの更新を行う。
次に、アクセス制御部229は、予め定められたタイミング(例えば、情報端末140aからのアクセス(取得)要求があった時)において、アクセス制御個人情報テーブルを生成する(S44)。
具体的には、アクセス制御部229は、個人情報記憶領域112から個人情報テーブル112aを取得して、アクセス制御テーブル228aの「×」の値が格納されている欄に対応する欄の変数値を個人情報テーブル112aから削除することで、アクセス制御個人情報テーブルを生成する。
そして、アクセス制御部229は、送受信部127を介して、生成したアクセス制御個人情報テーブルを情報端末140に送信する。
このようなアクセス制御個人情報テーブルを受信した情報端末140では、個人情報分析部144が、受信したアクセス制御個人情報テーブルを個人情報記憶領域142に記憶するとともに、特定のタイミングで(例えば、情報端末140のオペレータより入力部145を介して分析指示の入力を受けた時等)、予め定められた法則に従ってアクセス制御個人情報テーブルに格納されている情報を分析し(S46)、例えば、性別、来店日、来店頻度、購入額を条件として抽出した、優良顧客を表すデータのリストを出力部146に出力する(S47)。
以上に記載したように、アクセス制御テーブル228aをユーザ毎に生成することで、限られた特権ユーザは個人情報テーブル112aの全変数値の参照を許可し、一般ユーザは識別リスクが低い安全変数値群に対応する変数値のみの参照を許可する、という運用が可能になる。
なお、以上に記載した実施形態においては、ユーザ毎にアクセス制御テーブル228aを生成することとしているが、このような態様に限定されず、例えば、情報端末140で分析を行う分析方法毎や情報端末140毎にアクセス制御テーブル228aを生成するようにしてもよい。
また、以上に記載した実施形態において、ユーザ(又は分析方法、情報端末140)毎に安全変数値群抽出パラメータ記憶領域114に記憶されているパラメータを異なる値にして(ユーザ等毎に安全変数値群抽出パラメータテーブル114aを生成して)、アクセス制御テーブル228aを生成するようにしてもよい。このようにすることで、ユーザ(又は分析方法、情報端末140)毎に安全性の判断基準を変えることができる。
次に、本発明の第三の実施形態である情報システムについて説明する。ここで、本発明の第三の実施形態では、個人情報管理装置310が第一の実施形態と異なっているため、以下、個人情報管理装置310に関連する事項について説明する。
図19は、個人情報管理装置310の概略図である。
図示するように、個人情報管理装置310は、記憶部311と、制御部320と、入力部125と、出力部126と、送受信部127と、を備え、記憶部311及び制御部320が第一の実施形態と異なっているため、以下、これらに関連する事項について説明する。
記憶部311は、個人情報記憶領域112と、安全変数値群更新時個人情報記憶領域113と、安全変数値群抽出パラメータ記憶領域114と、安全変数値群記憶領域115と、更新状況管理情報記憶領域116と、匿名化条件情報記憶領域117と、匿名個人情報記憶領域118と、匿名化実行日時管理情報記憶領域119と、ログ情報記憶領域330と、を備え、第一の実施形態と比較して、ログ情報記憶領域330が異なっているため、以下、ログ情報記憶領域330について説明する。
ログ情報記憶領域330には、情報端末140から個人情報管理装置310へのアクセスの履歴を特定する情報が格納される。
例えば、本実施形態においては、図20(ログテーブル330aの概略図)に示すようなログテーブル330aがログ情報記憶領域330に記憶される。
図示するように、ログテーブル330aは、日時フィールド330bと、ユーザフィールド330cと、参照条件フィールド330dと、参照レコードフィールド330eと、参照変数フィールド330fと、を備える。
日時フィールド330bには、情報端末140からアクセスがあった年月日時間を特定する情報が格納される。
ユーザフィールド330cには、情報端末140からアクセスしたユーザを識別するための識別情報(ユーザID)が格納される。ここで、本実施形態では、情報端末140から個人情報管理装置310にアクセスする際には、アクセス要求にユーザIDを含められているものとする。このため、情報端末140を使用するユーザは、個人情報管理装置310にアクセスする前に、入力部145を介して、ユーザIDを入力するものとする。
参照条件フィールド330dには、情報端末140から個人情報管理装置310にアクセスしたユーザが、個人情報記憶領域112に記憶されている個人情報テーブル112aを検索した際の参照条件(検索条件)を特定する情報が格納される。
参照レコードフィールド330eには、情報端末140から個人情報管理装置310にアクセスしたユーザが参照した個人情報テーブル112aのレコードのIDを特定する情報が格納される。
参照変数フィールド330fには、情報端末140から個人情報管理装置310にアクセスしたユーザが参照した個人情報テーブル112aの変数値のフィールド名(変数名)を特定する情報が格納される。
図19に戻り、制御部320は、情報処理部121と、安全変数値群抽出部122と、更新情報管理部123と、匿名化処理部124と、ログ情報生成部331と、ログ情報出力部332と、を備え、第一の実施形態と比較して、ログ情報生成部331及びログ情報出力部332が異なっているため、以下、ログ情報生成部331及びログ情報出力部332について説明する。
ログ情報生成部331は、情報端末140から個人情報管理装置310にアクセスがある毎に、ログ情報記憶領域330に記憶されているログテーブル330aに新たなレコードを追加して、必要な情報を格納する。
ログ情報出力部332は、特定のタイミング(例えば、入力部125を介してログ情報の参照指示の入力を受け付けた場合)で、安全変数値群テーブル115aを参照することで、ログ情報記憶領域330に記憶されているログテーブル330aのうち、安全変数値群に属する変数値以外の変数値が参照されていることを示すレコードを抽出して、例えば、図21(ログ情報の出力画面332aを示す概略図)に示すような予め定められた表示形式の出力画面332aを生成して、出力部126に出力する処理を行う。
以上に記載した個人情報管理装置310は、例えば、図10に示すような一般的なコンピュータ160で実現できる。
例えば、記憶部311は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、制御部320は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部125は、CPU161が入力装置166を利用することで実現可能であり、出力部126は、CPU161が出力装置167を利用することで実現可能であり、送受信部127は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図22は、第三の実施形態における情報システムでの処理を示すシーケンス図である。
ステップS50〜ステップS52の処理については、第一の実施形態における図13のステップS10〜ステップS12と同様の処理であるため、説明を省略する。
ステップS53では、情報端末140は、個人情報管理装置310から必要な情報を参照して、必要な個人情報を取得する(S53)。
そして、ログ情報生成部331は、ステップS53における処理を監視し、必要なログ情報を取得して(S54)、取得したログ情報をログ情報記憶領域330に記憶されているログテーブル330aに格納することで、ログテーブル330の更新を行う(S55)。
そして、ログ情報出力部332は、特定のタイミングにおいて、ログ情報記憶領域330に記憶されているログテーブル330aのうち、安全変数値群に属する変数値以外の変数値が参照されていることを示すレコードを抽出して、ログ情報の出力画面332aを生成し(S56)、出力部126に出力する(S57)。
なお、個人情報を取得した情報端末140では、個人情報分析部144が、受信した個人情報を個人情報記憶領域142に記憶するとともに、特定のタイミングで(例えば、情報端末140のオペレータより入力部145を介して分析指示の入力を受けた時等)、予め定められた法則に従って個人情報を分析し(S58)、例えば、性別、来店日、来店頻度、購入額を条件として抽出した、優良顧客を表すデータのリストを出力部146に出力する(S59)。
このように本実施形態では、個人情報テーブル112aの識別リスクが高いレコードを参照したときのアクセスログを優先的に出力することで、個人を特定できる可能性のある個人情報の利用状況を優先的に把握し、適正な個人情報利用が行われているかどうかの監査等に活用することができる。
以上に記載した実施形態においては、安全変数値群抽出部122は、個人情報テーブル112aの更新後の変数値を有する個人情報テーブル112aのレコードから安全変数値群テーブル115aを更新しているが、このような態様に限定されず、例えば、個人情報テーブル112aの更新前の変数値(変更前の変数値)を有する個人情報テーブル112aのレコードも用いて、安全変数値群テーブル115aを更新するようにしてもよい。