JP2016115112A - データ匿名化装置、プログラム、及び方法 - Google Patents

データ匿名化装置、プログラム、及び方法 Download PDF

Info

Publication number
JP2016115112A
JP2016115112A JP2014252803A JP2014252803A JP2016115112A JP 2016115112 A JP2016115112 A JP 2016115112A JP 2014252803 A JP2014252803 A JP 2014252803A JP 2014252803 A JP2014252803 A JP 2014252803A JP 2016115112 A JP2016115112 A JP 2016115112A
Authority
JP
Japan
Prior art keywords
data
word
character string
users
log data
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.)
Withdrawn
Application number
JP2014252803A
Other languages
English (en)
Inventor
孝徳 及川
Takanori Oikawa
孝徳 及川
伊藤 孝一
Koichi Ito
孝一 伊藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014252803A priority Critical patent/JP2016115112A/ja
Publication of JP2016115112A publication Critical patent/JP2016115112A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 本発明の課題は、所定の匿名性を損なうことなくデータを匿名化することを目的とする。【解決手段】 上記課題は、複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出する抽出部と、前記複数ユーザーに関する前記データの、前記抽出部によって抽出された前記単語に含まれない文字列を所定文字列に置換する加工を行う置換加工部と、前記置換加工部によって加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証する検証部と、前記置換加工部によって加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する匿名化処理部とを有するデータ匿名化装置により達成される。【選択図】 図6

Description

本発明は、データを匿名化する技術に関する。
近年、プライバシ保護を目的として、様々な技術が提案されている。例えば、プライバシ保護の技術の一つにデータの匿名化がある。匿名化では、置換、削除等により、データの1単語(1以上の行、レコード等)を個人識別性が無いように加工する。個人識別性とは、データの持ち主、データの管理元等のそのデータに関して知識のある人が見たとき、データの持ち主を特定できることである。
具体的には、匿名化処理後のデータの1単位を見たときに、データの持ち主を所定の人数以上にしか絞り込めないようにデータを加工する。例えば、閾値以上のユーザーの文書データに出現する単語の組み合せを「匿名化不要語組み」として定義して抽出し、匿名化処理時には、対象文字列の「匿名化不要語組み」以外の単語を別文字列に置換する技術等が知られている。
特許5095281号
しかしながら、上述した技術では、「匿名化不要語組み」の単語と、置換に用いた別文字列でなる文字列において、即ち、別文字列で匿名化された文字列において、単語と別文字列の位置関係から、匿名化処理後の文字列が、定めた閾値未満のユーザー数まで特定されてしまう場合がある。
したがって、1つの側面では、本発明は、所定の匿名性を損なうことなくデータを匿名化することを目的とする。
一態様によれば、複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出する抽出部と、前記複数ユーザーに関する前記データの、前記抽出部によって抽出された前記単語に含まれない文字列を所定文字列に置換する加工を行う置換加工部と、前記置換加工部によって加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証する検証部と、前記置換加工部によって加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する匿名化処理部とを有するデータ匿名化装置が提供される。
また、上記課題を解決するための手段として、上記方法を行う装置、コンピュータに上記処理を実行させるためのプログラム、及び、そのプログラムを記憶した記憶媒体とすることもできる。
所定の匿名性を損なうことなくデータを匿名化できる。
データを匿名化して提供するシステムの構成例を示す図である。 置換方法を説明するための図である。 図2の置換方法では匿名性を満たさない第一の例を説明するための図である。 図2の置換方法では匿名性を満たさない第二の例を説明するための図である。 データ匿名化装置のハードウェア構成を示す図である。 図3の第1の例に対する本実施例における匿名化処理を説明するための図である。 図4の第2の例に対する本実施例における匿名化処理を説明するための図である。 データ匿名化装置の機能構成例を示す図である。 データ匿名化処理を説明するためのフローチャート図である。 ログデータから作成された判定用ログデータの例を示す図である。 開示単語セットから作成した単語系列一覧のデータ例を示す図である。 開示単語判定処理を説明するための図である。 匿名化処理を説明するための図である。
以下、本発明の実施の形態を図面に基づいて説明する。データの匿名化は、データ全体の内容を解読困難にすることを目的するものではなく、データ内に機密情報が含まれていても、どのユーザーのものであるのかを特定できないようにすることであり、通常、データからユーザーを特定できないようにデータの一部を置換することで、ユーザーと機密情報の関連付けを困難にすることである。
データの匿名化について図1で説明する。図1は、データを匿名化して提供するシステムの構成例を示す図である。図1に示すシステム1000は、複数のユーザー7が利用するユーザー端末4と、匿名化装置100と、閲覧者5の閲覧者端末6とを有する。複数のユーザー7は、同一組織又は企業に属するユーザーであってもよいし、複数の組織又は複数の企業のユーザーであってもよい。
データの匿名化では、n人のうちのどのユーザーであるかを特定できないこと、換言すると、n+1人のユーザーまで特定される可能性を許容することを匿名化の条件とすることで、閾値nが定義される。閾値nは、データをn人以下のユーザーにまで特定できないことを指定する。閾値nは、匿名化する範囲となる組織単位又は企業単位で与えられる。
図1では、複数のユーザー7は1つの組織に属し、閾値n=3が与えられた場合で説明する。
匿名化装置100は、複数のユーザー7が利用するユーザー端末4からのログデータ51を閾値nで匿名化して、匿名化済ログデータ5を閲覧者5に提供する装置である。匿名化装置100が扱うログデータ51は、機密情報、ユーザー個人を特定可能な情報等を含むデータである。匿名化済ログデータ52は、n人以下のユーザーに絞り込むことが困難となったデータである。
複数のユーザー端末4は、複数のユーザー7によって利用される端末である。各ユーザー端末4は、唯一のユーザー7によって利用される端末であってもよいし、複数のユーザー7によって利用される端末であってもよい。
ユーザー7がユーザー端末4を利用すると、ユーザー端末4でログが生成され、ログデータ51が匿名化装置100に送信される。このように各ユーザー端末4で生成されたログは、ログデータ51によって匿名化装置100に収集される。
収集された複数のログデータ51のうち、ユーザーAのログデータ51は、
「name = Tanaka
C:/usr/tanaka/data」
である。ユーザーBのログデータ51は、
「name = Tanaka
C:/usr/tanaka/data」
である。ユーザーCのログデータ51は、
「name = Kawada
C:/usr/Kawada/data」
である。
匿名化装置100は、置換方法によって各ログデータ51を匿名化し、匿名化済ログデータ5を閲覧者5に参照可能とする。例えば、ユーザーAのログデータ51を匿名化済ログデータ5は、
「name = tok001
C:/usr/tok002/data」
となる。ユーザーBのログデータ51を匿名化済ログデータ5は、
「name = tok001
C:/usr/tok002/data」
となる。ユーザーCのログデータ51を匿名化済ログデータ5は、
「name = tok001
C:/usr/tok002/data」
となる。
置き換え後のこれら3つの匿名化済ログデータ5は、少なくともユーザーA、B、及びCの3人のうちのどのユーザーのデータであるかを特定できない。従って、閾値n=3の条件を満たす。
閲覧者5は、匿名化装置100から提供される匿名化済ログデータ5を解析し、解析した結果を複数のユーザー7の組織に提供する。匿名化済ログデータ5がログデータである場合、閲覧者5は、複数のユーザー端末4を含む組織のシステムに何らかの異常が発生していないかを監視し、その結果を組織に報告する。結果には、異常を示す、又は、異常の原因となった匿名化済ログデータ5を含んでもよい。組織側の管理者が、報告された匿名化済ログデータ5から匿名化される前のログデータ51を特定すればよい。
次に、匿名化するための種々の置換方法について説明する。置換方法には、「黒塗り」、「トークン化」、「暗号化」等の既存技術がある。
「黒塗り」による置換方法では、置換箇所の内容に関係なく、全て同じ文字列に置換する。ログデータ51が
「Password = HIMITSU」
の場合、「黒塗り」により「HIMITSU」が「*******」で置き換えられ、
「Password = *******」
が、匿名化された匿名化済ログデータ5となる。このように、「黒塗り」による置換方法では、置換箇所の情報を全く残さない。
「トークン化」による置換方法では、同じ置換箇所が同じ文字列になるように置換する。ログデータ51が
「'service.exe' is started
'event.exe' is started
'service.exe' is stopped」
の場合、「トークン化」により「service.exe」が「tok01」で置き換えられ、また、「event.exe」が「tok02」で置き換えられ、
「'tok01.exe' is started
'tok02.exe' is started
'tok01.exe' is stopped」
が、匿名化された匿名化済ログデータ5となる。このように、「トークン化」による置換方法では、置換箇所同士の一致・不一致が分かる。
「暗号化」による置換方法では、鍵を持つユーザー7だけが、閲覧できる文字列に置換され、ログデータ51が
「Password = HIMITSU」
の場合、「暗号化」により「HIMITSU」が「98exioaorwDl」で置き換えられ、
「Password = 98exioaorwDl」
が、匿名化された匿名化済ログデータ5となる。このように、「暗号化」による置換方法では、置換箇所に対し、閲覧権限を付与できる。
上述したような置換方法を用いるために、ログデータ51の文字列を単語単位に分割する。そして、閾値n以上のユーザー7のデータに出現する1以上の単語を、開示単語として抽出して、開示単語セットが生成される。開示単語セットに含まれる各単語に対して置き換えは行われない。開示単語セットに含まれいない、開示箇所以外の単語が、置き換え対象となる。
開示箇所以外の単語の置き換えについて図2で説明する。図2は、置換方法を説明するための図である。図2において、ユーザーAのログデータ51を「name = Yamada. path = c:/data」とし、ユーザーBのログデータ51を「name = Tanaka. path = c:/db」とし、ユーザーCのログデータ51を「name = Sato. path = c:/doc」とする。
各ログデータ51を単語に分割する。単語分割は、文字種で分割し、文字種間に区切り文字「,」を挿入した文字列を作成する。単語分割により、ユーザーAのログデータ51は{name,=,Yamada,.,path,=,c,:,/,data,}のように表され、ユーザーBのログデータ51は{name,=,Tanaka,.,path,=,c,:,/,db}のように表され、ユーザーCのログデータ51は{name,=,Sato,.,path,=,c,:,/,db}のように表される。
次に、閾値n=3で開示単語の抽出を行う。ユーザーA、B及びCのログデータ51の全てに含まれる単語を開示単語として残し、開示単語以外の単語は省略する。この例では、{name,=,.,path,=,c,:,/}が開示単語セット51tとして抽出される。
そして、各ユーザーA、B及びCのログデータ51において省略した文字列を別の文字列に置換する。この例では、トークン化での置き換え例を示す。ユーザーAのログデータ51は「name = tok01. path = c:/tok02」を示す匿名化済ログデータ5となり、ユーザーBのログデータ51は「name = tok01. path = c:/tok02」を示す匿名化済ログデータ5となり、ユーザーCのログデータ51は「name = tok01. path = c:/tok02」を示す匿名化済ログデータ5となる。
このように、図2の例では、匿名化された3つの各匿名化済ログデータ5のユーザーを特定することができないため、匿名性を満たしている。
次に、上述した置換方法では匿名性を満たさない2つの例について図3及び図4で説明する。図3は、図2の置換方法では匿名性を満たさない第一の例を説明するための図である。図3の第一の例では、同じ開示単語セット51tが適用される文字列において置換箇所の有無が異なる場合に、匿名性を満たさないことを説明する。第一の例では、閾値n=3とする。
図3において、ユーザーAのログデータ51は「name = db . path=c:/data」であり、ユーザーBのログデータ51は「name = storage . path=d:/db」であり、ユーザーCのログデータ51は「name = admin . path=c:/db/data」であるとする。
各ログデータ51を単語に分割する。単語分割により、文字種間に区切り文字「,」を挿入した文字列を作成する。単語分割により、ユーザーAのログデータ51は{name,=,db,. ,path,=,c,:,/,data}のように表され、ユーザーBのログデータ51は{name,=,storage,.,path,=,d,:,/,db}のように表され、ユーザーCのログデータ51は{name,=,admin,.,path,=,c,:,/,db,/,data}のように表される。
次に、閾値n=3で開示単語の抽出を行う。ユーザーA、B及びCのログデータ51の全てに含まれる単語を開示単語として残し、開示単語以外の単語は省略する。この例では、{name,=,db}が開示単語セット51tとして抽出される。
そして、開示単語セット51tに含まれる各開示単語を開示し、それ以外の単語に対して置換処理を行う。その結果、ユーザーAに関して匿名化されたデータ「name = db tok01」を得て、ユーザーBに関して匿名化された匿名化済ログデータ5「name = tok01 db」を得て、ユーザーCに関して匿名化された匿名化済ログデータ5「name = tok01 db tok02」を、匿名化済ログデータ5として得る。
この第一の例での結果では、3つの匿名化済ログデータ5において、ユーザーCのログデータ51の「db」の前後に単語があるということを知る者であれば、一番下の匿名化済ログデータ5がユーザーCのログデータ51であることを一意に判別してしまう。
図4は、図2の置換方法では匿名性を満たさない第二の例を説明するための図である。図4の第二の例では、各ログデータ51を、複数の開示単語セット51tの少なくとも1つ以上を用いて匿名化した際に、匿名性を満たさないことを説明する。複数の開示単語セット51tのうちのある開示単語セット51tを適用した際のユーザー数が閾値nに満たない場合に、匿名性を満たさないことを説明する。第二の例では、閾値n=2とする。
図4において、ユーザーAのログデータ51は「isActive = false」であり、ユーザーBのログデータ51は「isActive = false」であり、ユーザーCのログデータ51は「isActive = true」であるとする。
各ログデータ51を単語に分割し、文字種間に区切り文字「,」を挿入した文字列を作成する。単語分割により、ユーザーAのログデータ51は{isActive,=,false}のように表され、ユーザーBのログデータ51は{isActive,=,false}のように表され、ユーザーCのログデータ51は{isActive,=,true}のように表される。
次に、閾値n=2で開示単語の抽出を行う。ユーザーA、B及びCのログデータ51の2人又は3人に共通に含まれる単語を開示単語として残し、開示単語以外の単語は省略する。ユーザーAとBの2人のログデータ51に共通する単語を残した場合、{isActive,=,false}が開示単語セット51tとして抽出される。また、ユーザーA、B及びCのログデータ51の3人に共通する単語を残した場合、{isActive,=}が開示単語セット51tとして抽出される。
そして、開示単語セット51tに含まれる各開示単語を開示し、それ以外の単語に対してトークン化による置換処理を行う。その結果、ユーザーAに関して匿名化されたデータ「isActive = false」、ユーザーBに関して匿名化されたデータ「isActive = false」、及び、ユーザーCに関して匿名化されたデータ「isActive = tok01」を、匿名化済ログデータ5として得る。
この第二の例での結果では、3つの匿名化済ログデータ5において、ユーザーCのログデータ51の「isActive」の値がfalseでないことを知る者であれば、一番下の匿名化済ログデータ5がユーザーCのログデータ51であることを一意に判別してしまう。
上述したように、閾値に基づいて開示単語を判別したのみでは、匿名化処理後に必ずしも閾値に基づく匿名性を維持することができない。従って、本実施例では、匿名化処理後に、匿名化済ログデータ5の閾値nを損なうことなくデータを匿名化する技術を提供する。
本実施例に係るデータ匿名化処理を行うデータ匿名化装置は、図5に示すようなハードウェア構成を有する。図5は、データ匿名化装置のハードウェア構成を示す図である。
図5において、データ匿名化装置100は、コンピュータによって制御される情報処理装置であって、CPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、通信I/F(インターフェース)17と、ドライブ装置18とを有し、バスBに接続される。
CPU11は、主記憶装置12に格納されたプログラムに従ってデータ匿名化装置100を制御する。主記憶装置12には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を記憶又は一時保存する。
補助記憶装置13には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、CPU11に実行されることによって、各種処理が実現される。
入力装置14は、マウス、キーボード等を有し、ユーザがデータ匿名化装置100による処理に必要な各種情報を入力するために用いられる。表示装置15は、CPU11の制御のもとに必要な各種情報を表示する。通信I/F17は、有線又は無線などのネットワークを通じて通信を行う。通信I/F17による通信は無線又は有線に限定されるものではない。
データ匿名化装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってデータ匿名化装置100に提供される。
ドライブ装置18は、ドライブ装置18にセットされた記憶媒体19(例えば、CD−ROM等)とデータ匿名化装置100とのインターフェースを行う。
また、記憶媒体19に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体19に格納されたプログラムは、ドライブ装置18を介してデータ匿名化装置100にインストールされる。インストールされたプログラムは、データ匿名化装置100により実行可能となる。
尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
上述した匿名性を満たさない第1の例(図3)及び第2の例(図4)との比較において、本実施例を図6及び図7で説明する。図6は、図3の第1の例に対する本実施例における匿名化処理を説明するための図である。
図6において、ユーザA、B及びCのログデータ51の内容は、図3と同様である。本実施例との比較を容易とするため、関連技術の側に図3の内容を示し、本実施例の側に以下に説明する本実施例に係る匿名化処理の概要を示している。この比較例においても、閾値n=3で匿名性を維持することを条件とする。
関連技術では、単語分割後に開示単語を抽出することで得た2つの開示単語セット51tは、ログデータ51に対して、匿名化する前には閾値n=3で匿名性を満たす。しかしながら、一方の{name,=,db}を選択して置換した後の匿名化済ログデータ5では、閾値n=3の匿名性を満たさない。
本実施例では、各ログデータ51の行頭から行末までの隣接と非隣接とを区別して、非隣接箇所に所定文字列で置き換える。非隣接箇所は、そこに文字列が存在し、非隣接箇所の文字列の前、後、又は前後に開示単語が存在する部分である。
所定文字列は、一の文字種の文字列であっても良いし、2以上の文字種で構成されても良い。ここでは、[GAP]を所定文字列とする。所定文字列で置き換えた結果が、閾値n=3の匿名性を満たすか否かを確認する。
2つの開示単語セット51tから{name,=,db}を選択した場合、単語分割及び非隣接箇所の所定文字列への置き換えによって、ユーザーA、B、Cの順に、
{name,=,db,[GAP]}、
{name,=,[GAP],db}、
{name,=,[GAP],db,[GAP]}
となる。この結果が、閾値n=3の匿名性を満たすか否かが確認される。即ち、開示単語と所定文字列[GAP]が示すパターンが、閾値である3個の結果全てで一致しない。従って、この開示単語セット51t({name,=,db})を採用しない。
次に、2つの開示単語セット51tから未選択の{name,=,.,path,=,:,/}を選択し、単語分割及び非隣接箇所の所定文字列への置き換える。その結果は、ユーザーA、B、Cの順に、
{name,=,[GAP],path,=,:,/[GAP]}、
{name,=,[GAP],path,=,:,/[GAP]}、
{name,=,[GAP],path,=,:,/[GAP]}
となる。この結果では、開示単語と所定文字列[GAP]が示すパターン51gが、閾値である3個の結果全てで一致する。従って、この開示単語セット51t({name,=,.,path,=,:,/})を、匿名化するために採用する。つまり、匿名化後においても閾値n=3の匿名性を維持する{name,=,.,path,=,:,/}が、匿名化処理で採用する開示単語セット51tとして選択される。
匿名化処理の結果、ユーザーA、B、Cの順に、
name = tok01 . path=tok02:/tok03、
name = tok01 . path=tok02:/tok03、
name = tok01 . path=tok02:/tok03
の匿名化済ログデータ5を得る。3つの匿名化済ログデータ5において、単語系列のパターンが一致するため、どの匿名化済ログデータ5がどのユーザーのデータであるのかは判別できない。従って、匿名化後においても閾値n=3の匿名性が確保されている。
図7は、図4の第2の例に対する本実施例における匿名化処理を説明するための図である。図7において、ユーザA、B及びCのログデータ51の内容は、図4と同様である。本実施例との比較を容易とするため、関連技術の側に図4の内容を示し、本実施例の側に以下に説明する本実施例に係る匿名化処理の概要を示している。この比較例においても、閾値n=2で匿名性を維持することを条件とする。
関連技術では、単語分割後に開示単語を抽出することで得た2つの開示単語セット51tは、ログデータ51に対して、匿名化する前には閾値n=2で匿名性を満たす。しかしながら、{isActive,=}を適用して置換した後のユーザーCの匿名化済ログデータ5では、閾値n=2の匿名性を満たさない。
本実施例では、ログデータ51毎に複数の開示単語セット51tのいずれかを選択せず、抽出元が重複している場合に、複数の開示単語セット51tから1つを選択して全てのログデータ51に適用する。
各ログデータ51の行頭から行末までの隣接と非隣接とを区別して、非隣接箇所に所定文字列で置き換える。所定文字列は、第一の例と同様に所定文字列[GAP]とする。所定文字列で置き換えた結果が、閾値n=2の匿名性を満たすか否かを確認する。
2つの開示単語セット51tから{isActive,=}を適用した場合、単語分割及び非隣接箇所の所定文字列への置き換えの結果は、ユーザーA、B、Cの順に、
{isActive = [GAP]}、
{isActive = [GAP]}、
{isActive = [GAP]}
となる。この結果から、ユーザーAのログデータ51(ログA)、ユーザーBのログデータ51(ログB)、及び、ユーザーCのログデータ51(ログC)間で閾値n=2の匿名性を満たす。即ち、開示単語と所定文字列[GAP]が示すパターンが、3人のログデータ51で同一である。
2つの開示単語セット51tから{isActive,=,false}を適用した場合、単語分割及び非隣接箇所の所定文字列への置き換えの結果は、ユーザーA、B、Cの順に、
{isActive = false}、
{isActive = false}、
{isActive = [GAP]}
となる。この結果から、ユーザーAのログデータ51(ログA)及びユーザーBのログデータ51(ログB)間で閾値n=2の匿名性を満たす。即ち、開示単語と所定文字列[GAP]が示すパターンが、2人のログデータ51で同一である。
閾値n=2の条件を満たす2つの開示単語セット51tの両方において、ユーザーAのログデータ51(ログA)であるのか、ユーザーBのログデータ51(ログB)でるのかを特定できない。特定不可能な抽出元(ユーザA及びユーザB)が重複しているため、どちらか一方を採用する。重複の無い抽出元を含む方を選択する。この場合、{isActive,=}を選択して匿名化する。その結果は、ユーザーA、B、Cの順に、
{isActive = tok001}、
{isActive = tok001}、
{isActive = tok001}
の匿名化済ログデータ5を得る。3つの匿名化済ログデータ5において、開示単語と所定文字列[GAP]が示すパターンが一致するため、どの匿名化済ログデータ5がどのユーザーのデータであるのかは判別できない。従って、匿名化後においても閾値n=2の匿名性が確保されている。
次に、データ匿名化装置100の機能構成例について説明する。図8は、データ匿名化装置の機能構成例を示す図である。図8において、データ匿名化装置100は、主に、開示単語系列抽出部60と、匿名化処理部65とを有する。開示単語系列抽出部60と、匿名化処理部65とは、CPU11が対応するプログラムを実行することで実現される。
開示単語系列抽出部60は、複数のログデータ51から、指定された閾値nに基づいて、1つ以上の開示単語系列51tを抽出する。抽出された開示単語セット51tは、補助記憶装置13に記憶される。
開示単語系列抽出部60は、更に、単語分割部61と、単語系列列挙部62と、単語系列ソート部63と、開示単語判定部64と、匿名化処理部65とを有する。
単語分割部61は、あるユーザー7(例えば、ユーザーA)のログデータ51の文字列を単語単位に分割し、区切り文字「,」を挿入して、開示単語セット51tを生成する。単語単位とは、文字種毎の単位である。文字種間に区切り文字「,」が挿入される。
単語系列列挙部62は、行頭から行末までの非隣接箇所は所定文字列[GAP]で置き換えて、開示単語と所定文字列[GAP]が示すパターンが異なる単語系列55を列挙する。開示単語と所定文字列[GAP]が示すパターンが異なる単語系列55を一覧にした単語系列一覧56が補助記憶装置13に記憶される。
単語系列ソート部63は、単語系列列挙部62によって作成された単語系列一覧56をソートする。
開示単語判定部64は、単語系列一覧56の各単語系列55について、閾値nの条件を満たす単語系列55を判定し、匿名化処理に用いる開示単語系列群57として記憶する。ここでは、全てのユーザー7のログデータ51を用いて、ユーザーAのログデータ51を用いて作成した各単語系列55の閾値nの匿名性を確認する。閾値nの匿名性を満たす単語系列55が複数ある場合には、開示単語判定部64は、抽出元が重複しない開示単語を含む単語系列55を選択する(図7)。
匿名化処理部65は、匿名化処理部65によって判定された開示単語系列群57を用いて、ログデータ51内の単語系列55の所定文字列[GAP]に相当する文字列を、トークン化による置換方法で他の文字列に置換する。ログデータ51が匿名化された匿名化済データ52が補助記憶部13に記憶される。
次に、データ匿名化装置100によって行われるデータ匿名化処理について図9で説明する。図9は、データ匿名化処理を説明するためのフローチャート図である。図9において、ユーザー端末4からログデータ51と閾値nの入力を受け付けて(ステップS10)、単語分割部61は、ログデータ51から判定用ログデータ59(図10)を作成し(ステップS11)、各判定用ログデータ59を単語毎に分割する(ステップS12)。判定用ログデータ59の作成については、図10で説明される。
単語系列列挙部62は、単語分割した判定用ログデータ59から、非隣接箇所を所定文字列[GAP]で置き換えた単語系列55を全て列挙する(ステップS13)。全ての単語系列55を示す単語系列一覧56が補助記憶装置13に記憶される。そして、単語系列ソート部63は、単語系列列挙部62が列挙した単語系列55をソートする(ステップS14)。単語系列一覧56がソートされる。
開示単語判定部64は、ソートした単語系列Si(i=0〜k)(各単語系列55)の全てに対して、ステップS17及びS18を繰り返す(ステップS17)。単語系列一覧56から順に単語系列Siが読み込まれ、以下の処理が行われる。
開示単語判定部64は、単語系列Siが判定用ログデータ59に対して閾値nを満たすか否かを判定する(ステップS16)。閾値nを満たさない場合、次の単語系列Si+1を読み込むためステップS15へと戻り上述同様の処理を繰り返す。
一方、閾値nを満たす場合、開示単語判定部64は、判定用ログデータ59から単語系列Siを含む行を削除し(ステップS17)、開示単語系列群57に単語系列Siを追加する(ステップS18)。
閾値nの匿名性を満たす単語系列Siが複数ある場合には、開示単語判定部64は、抽出元が重複しない開示単語を含む単語系列Siを選択して(図7)、ステップS17及びS18の処理を行うことが望ましい。
単語系列一覧56に存在する全ての単語系列Siについて処理を終えると、匿名化処理部65による匿名化処理が行われる。
匿名化処理部65は、ログデータ51の各行Li(i=0〜m)の全てに対して、ステップS19〜S23を繰り返す(ステップS19)。ログデータ51の先頭行から順に1行が読み込まれる。匿名化処理部65は、更に、開示単語系列群57の各単語系列Pj(j=0〜r)に対して、ステップS21〜S23を繰り返す(ステップS20)。開示単語系列群57から順に1つの単語系列Pjが読み込まれる。
匿名化処理部65は、行データLiが単語系列Pjを含むか否かを判断する(ステップS21)。、行データLiが単語系列Pjを含む場合、匿名化処理部65は、行データLi内の単語系列Pj以外の単語を置換して、匿名化済ログデータ52に追加する(ステップS22)。この場合、匿名化処理部65は、開示単語系列群57の各単語系列Pjの繰り返し処理を終了し、次の行データLi+1に対する処理を行う。
一方、行データLiが単語系列Pjを含まない場合、匿名化処理部65は、次の単語系列Pj+1を取得して、上述した同様の処理を行う。全ての単語系列Pjに対して置換処理を終了した場合、次の行データLi+1をログデータ51から取得して上述した同様の処理を行う。
ログデータ51の全ての行データLiに対して置換処理が終了すると、匿名化済ログデータ52が補助記憶部13に出力される(ステップS23)。匿名化済ログデータ52は、閲覧者5の閲覧者端末5へ送信可能な状態となる。
図10は、ログデータから作成された判定用ログデータの例を示す図である。図10では、ユーザーA、B、Cのログデータ51に基づく判定用ログデータの一例として判定用ログデータ59を示している。
判定用ログデータ59は、ユーザー名とログデータ51の1行の2つを組み合わせた形式で作成される(ステップS11)。ユーザー名は、ユーザー端末4のログ処理部がログデータ51をデータ匿名化装置100に送信する際に通知される情報であり、ユーザー端末4に設定されたユーザー名等であればよい。ユーザー名として、端末を特定できるIPアドレス等のユーザー端末4に固有の情報であってもよい。
判定用ログデータ59は、ログデータ51の各行毎に、ユーザー名が先頭に付加されて作成される。
ユーザーAのログデータ51が、
name = db . path=c:/data
isActive = false
である場合、1行毎にユーザー名が付加され、
ユーザA name = db . path=c:/data
ユーザA isActive = false
このような2つの判定用ログデータ59が作成される。従って、判定用ログデータ59は、ユーザー名を示すユーザー名部分59uと、ログデータ51の1行分を示すログ部分59dとを有する。
ユーザーB及びCについても同様である。この例では、1行毎に判定用ログデータ59が作成されるが、2行毎、又は、3行以上の単位で判定用ログデータ59を作成してもよい。
単語分割部61は、複数のユーザー7のログデータ51から判定用ログデータ59を生成し、生成した各判定用ログデータ59のログ部59dを文字種で分割し、文字種間に区切り文字「,」を挿入した文字列を作成する(ステップS12)。
単語系列列挙62は、単語分割部61によって作成された文字種間に区切り文字「,」が挿入された文字列に対して、閾値nを満たす開示単語を抽出し、開示単語の組を示す開示単語セット51tを作成する。
単語系列列挙62は、作成した開示単語セット51t毎に、ログ部59dの文字種間の隣接又は非隣接を判定し、隣接と非隣接の組み合せた単語系列55を全て作成する(ステップS13)。
図11は、開示単語セットから作成した単語系列一覧のデータ例を示す図である。図11に示す単語系列一覧56は、ユーザーA、B、及びCを含む複数のユーザー7のログデータ51を収集した場合で示している。図11では、ソート後の単語系列一覧56を示している(ステップS14)。
単語系列一覧56において、例えば、開示単語セット51tが{name,=,db}の場合、14個の単語系列一覧56−1が作成された例を示している。開示単語セット51tが{name,=,.,path,=,:,/}の場合の一例として、単語系列一覧56−2{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}を示している。
次に、開示単語判定部64による、匿名化処理の前に匿名化後においても閾値nを満たす開示単語列を判定する開示単語判定処理について説明する。図12は、開示単語判定処理を説明するための図である。閾値n=2が与えられているとする。
図12において、開示単語判定部64は、図11に示すような単語系列一覧56から1つずつ単語系列Siを読み出して、判定用ログデータ59のログ部59dから、読み出した単語系列Siと、開示単語と非隣接箇所とで表されるパターンが一致するデータを抽出する(ステップS31)。
図12の例では、単語系列Siが{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}の場合に、抽出された判定用ログデータ59の例が示される。文字9pが非隣接箇所に相当し、単語系列Si内の所定文字列[GAP]の出現位置と一致する場合に抽出される。
開示単語判定部64は、抽出した判定用ログデータ59が閾値nの匿名性を満たすか否かを判定する(ステップS32)。開示単語判定部64は、ユーザー名部分59uを参照して、ユーザー7の人数をカウントして、閾値n以上の値を示すか否かを判断する。この例では、ユーザーA、B、及びCの異なる3人をカウントし、閾値n=2を満たす。従って、開示単語判定部64は、{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}は、閾値n=2の匿名性を満たすと判断する。
閾値n=2の匿名性を満たすと判断した場合、開示単語判定部64は、複数の判定用ログデータ59から抽出した判定用ログデータ59を削除する(ステップS33)。
そして、開示単語判定部64は、単語系列一覧56から次の単語系列Si+1を読み出して、上述同様の処理を繰り返す。単語系列一覧56の最後の単語系列Siとの照合が終了すると、開示単語判定部64による開示単語判定処理は終了する。
上述した開示単語判定処理によって、少なくとも{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}を含む開示単語系列群57が補助記憶装置13に出力される。{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}を一例として、図19のステップS19からS22における匿名化処理部65による匿名化処理について図13で説明する。
図13は、匿名化処理を説明するための図である。図13において、匿名化処理部65は、ログデータ51から、判定用ログデータ59の作成時と同一の行単位でデータ(行データLi)を順に読み込む(ステップS19)。ここでは、1行単位で読み込むものとする。
匿名化処理部65は、ログデータ51から読み込んだ行データLiを、開示単語系列群57の各単語系列Pjと照合して、行データLiが単語系列Pjを含むか否かを判断する(ステップS21)。
行データLiは「name = db . path=c:/data」であり、単語系列Pjは{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}である場合、「name = db . path=c:/data」が{name,=,[GAP],.,path,=, [GAP],:,/,[GAP]}のパターンを含むか否かが判断される。この例では、行データLiは、単語系列Pjを含むと判断される。
匿名化処理部65は、トークン化による置換方法により、行データLiを匿名化する(ステップS22)。匿名化処理部65は、行データLiにおいて所定文字列[GAP]に相当する文字列部分を別の文字列に置き換える。
例えば、文字列「db」は別の文字列「tok01」に置き換えられ、文字列「c」は別の文字列「tok02」に置き換えられ、文字列「data」は別の文字列「tok03」に置き換えられる。そして、匿名化処理部65は、非隣接箇所の文字列が置換られた行データLiを匿名化済ログデータ52に追加する。
全ての行データLiについて処理を終えると、匿名化処理部65は、匿名化済ログデータ52を出力する(ステップS23)。閾値n=2の匿名性を満たす匿名化済ログデータ52が出力され、外部機関等の閲覧者5へ提供可能となる。
上述したように、本実施例では、匿名化処理の前に、匿名化後において条件とされたユーザー数以下を特定できないことを確認して、開示する単語を決定する。従って、開示単語以外の文字列を置き換え後においても、指定されたユーザー数以上で匿名性を確保することができる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出する抽出部と、
前記複数ユーザーに関する前記データの、前記抽出部によって抽出された前記単語に含まれない文字列を所定文字列に置換する加工を行う置換加工部と、
前記置換加工部によって加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証する検証部と、
前記置換加工部によって加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する匿名化処理部と
を有するデータ匿名化装置。
(付記2)
前記置換加工部は、
前記データにおいて、前記組み合わされた前記単語間が互いに隣接しない箇所を前記所定文字列で置き換える
ことを特徴とする付記1記載のデータ匿名化装置。
(付記3)
前記置換加工部は、前記データを加工することで、前記組み合わされた前記単語と前記所定文字列とでなる複数の単語系列を作成し、
前記検証部は、前記指定数以上のユーザーの前記データに前記複数の単語系列のうち2以上が出現する場合、出現した該単語系列同士において抽出元の重複の無い単語系列を選択する
ことを特徴とする付記2記載のデータ匿名化装置。
(付記4)
前記抽出部は、前記データを、所定行数単位で前記単語の組み合せを抽出することを特徴とする付記3記載のデータ匿名化装置。
(付記5)
複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出し、
前記複数ユーザーに関する前記データの、前記抽出された単語に含まれない文字列を所定文字列に置換する加工を行い、
加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証し、
加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する
処理をコンピュータに実行させるデータ匿名化プログラム。
(付記6)
複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出し、
前記複数のユーザーに関する前記データの、前記抽出された単語に含まれない文字列を所定文字列に置換する加工を行い、
加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証し、
加工された前記データが匿名性を満たす場合、加工前の該データを、前記所定文字列の位置に応じて匿名化する
処理をコンピュータが行うデータ匿名化方法。
4 ユーザー端末
5 閲覧者
6 閲覧者端末
7 ユーザー
11 CPU
12 主記憶装置
13 補助記憶装置
14 入力装置
15 表示装置
17 通信I/F
18 ドライブ装置
19 記憶媒体
51 ログデータ
51t 開示単語セット
51g パターン
52 匿名化済ログデータ
55 単語系列
56 単語系列一覧
57 開示単語系列群
60 開示単語系列抽出部
61 単語分割部
62 単語系列列挙部
63 単語系列ソート部
64 開示単語判定部
65 匿名化処理部

Claims (6)

  1. 複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出する抽出部と、
    前記複数ユーザーに関する前記データの、前記抽出部によって抽出された前記単語に含まれない文字列を所定文字列に置換する加工を行う置換加工部と、
    前記置換加工部によって加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証する検証部と、
    前記置換加工部によって加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する匿名化処理部と
    を有するデータ匿名化装置。
  2. 前記置換加工部は、
    前記データにおいて、前記組み合わされた前記単語間が互いに隣接しない箇所を前記所定文字列で置き換える
    ことを特徴とする請求項1記載のデータ匿名化装置。
  3. 前記置換加工部は、前記データを加工することで、前記組み合わされた前記単語と前記所定文字列とでなる複数の単語系列を作成し、
    前記検証部は、前記指定数以上のユーザーの前記データに前記複数の単語系列のうち2以上が出現する場合、出現した該単語系列同士において抽出元の重複の無い単語系列を選択する
    ことを特徴とする請求項2記載のデータ匿名化装置。
  4. 前記抽出部は、前記データを、所定行数単位で前記単語の組み合せを抽出することを特徴とする請求項3記載のデータ匿名化装置。
  5. 複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出し、
    前記複数ユーザーに関する前記データの、前記抽出された単語に含まれない文字列を所定文字列に置換する加工を行い、
    加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証し、
    加工された前記データが匿名性を満たす場合、加工前の前記データを、前記所定文字列の位置に応じて匿名化する
    処理をコンピュータに実行させるデータ匿名化プログラム。
  6. 複数ユーザーに関するデータの中から、指定数以上の前記ユーザーのデータに含まれ、且つ、開始から同じ順序で出現する単語の組み合せを抽出し、
    前記複数のユーザーに関する前記データの、前記抽出された単語に含まれない文字列を所定文字列に置換する加工を行い、
    加工された前記データが前記指定数以上のユーザーで匿名性を満たすか否かを検証し、
    加工された前記データが匿名性を満たす場合、加工前の該データを、前記所定文字列の位置に応じて匿名化する
    処理をコンピュータが行うデータ匿名化方法。
JP2014252803A 2014-12-15 2014-12-15 データ匿名化装置、プログラム、及び方法 Withdrawn JP2016115112A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014252803A JP2016115112A (ja) 2014-12-15 2014-12-15 データ匿名化装置、プログラム、及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014252803A JP2016115112A (ja) 2014-12-15 2014-12-15 データ匿名化装置、プログラム、及び方法

Publications (1)

Publication Number Publication Date
JP2016115112A true JP2016115112A (ja) 2016-06-23

Family

ID=56142009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014252803A Withdrawn JP2016115112A (ja) 2014-12-15 2014-12-15 データ匿名化装置、プログラム、及び方法

Country Status (1)

Country Link
JP (1) JP2016115112A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113544684A (zh) * 2019-03-11 2021-10-22 日本电信电话株式会社 数据置换装置、数据置换方法、程序
US11907967B2 (en) 2021-02-22 2024-02-20 Deepintent, Inc. Automatic data integration for performance measurement of multiple separate digital transmissions with continuous optimization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113544684A (zh) * 2019-03-11 2021-10-22 日本电信电话株式会社 数据置换装置、数据置换方法、程序
US11907967B2 (en) 2021-02-22 2024-02-20 Deepintent, Inc. Automatic data integration for performance measurement of multiple separate digital transmissions with continuous optimization

Similar Documents

Publication Publication Date Title
US9288211B2 (en) Providing access control for public and private document fields
CA2906475C (en) Method and apparatus for substitution scheme for anonymizing personally identifiable information
US20170154188A1 (en) Context-sensitive copy and paste block
US20160012225A1 (en) System and method for the detection of malware
CN103632080B (zh) 一种基于USBKey的移动数据应用安全保护方法
US20180012039A1 (en) Anonymization processing device, anonymization processing method, and program
JP6597066B2 (ja) 個人情報匿名化方法、プログラム、及び情報処理装置
US10846243B2 (en) Access management method, information processing device, program, and recording medium
US8584247B1 (en) Systems and methods for evaluating compliance checks
US20120174227A1 (en) System and Method for Detecting Unknown Malware
US20130067572A1 (en) Security event monitoring device, method, and program
WO2013132476A1 (en) Enterprise level data management
US20180137149A1 (en) De-identification data generation apparatus, method, and non-transitory computer readable storage medium thereof
JP5757072B2 (ja) ログ作成装置、ログ作成方法およびログ作成プログラム
JP2019020794A (ja) 文書管理装置、文書管理システム及びプログラム
JP2016115112A (ja) データ匿名化装置、プログラム、及び方法
US20230315846A1 (en) System and method for detecting leaked documents on a computer network
JP7046970B2 (ja) 漏洩したデータを識別し、疑わしい漏洩者に有罪性を割り当てるためのシステム及び方法
CN104283930B (zh) 安全索引的关键字搜索系统及建立该系统的方法
JP7047537B2 (ja) 情報管理装置、情報管理方法、及び情報管理プログラム
US10817614B2 (en) Automatic detection of relatedness in pools of encrypted data
JP7219726B2 (ja) リスク評価装置、リスク評価方法及びリスク評価プログラム
JP5621490B2 (ja) ログ管理プログラム、ログ管理装置及びログ管理方法
JP2012083920A (ja) 操作制限管理プログラム、操作制限管理装置及び操作制限管理方法
US20220255962A1 (en) Systems and methods for creation, management, and storage of honeyrecords

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225