JP6693135B2 - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP6693135B2 JP6693135B2 JP2016004610A JP2016004610A JP6693135B2 JP 6693135 B2 JP6693135 B2 JP 6693135B2 JP 2016004610 A JP2016004610 A JP 2016004610A JP 2016004610 A JP2016004610 A JP 2016004610A JP 6693135 B2 JP6693135 B2 JP 6693135B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- anonymized
- individual
- input
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、情報処理装置、情報処理方法およびプログラムに関する。 The present invention relates to an information processing device, an information processing method, and a program.
元データを、k−匿名性を備えるように加工するk−匿名化の手法が提案されている(特許文献1)。過去に取得したストリームデータに対してk−匿名性を満たすように匿名化する規則を算出し、新たに取得したストリームデータを匿名化する手法が提案されている(特許文献2)。 A method of k-anonymization that processes original data to have k-anonymity has been proposed (Patent Document 1). There is proposed a method of calculating a rule for anonymizing stream data acquired in the past so as to satisfy k-anonymity and anonymizing newly acquired stream data (Patent Document 2).
その他に、元データ中の個票の各項目に記録されたデータを木構造状に階層化し、出現頻度のカウント結果に基づいて各個票の項目を一般化する匿名化の手法が提案されている(特許文献3)。 In addition, a method of anonymization is proposed in which the data recorded in each item in the original data is hierarchized in a tree structure and the items in each item are generalized based on the count result of appearance frequency. (Patent Document 3).
特許文献1および特許文献3に開示されている手法は、あらかじめ収集した個票を匿名化する手法である。逐次発生する追加の個票を適切に処理するためには、当初処理した個票と追加の個票とを合わせて処理する必要があり、データの処理に時間を要する。そのため、追加の個票が逐次発生する場合には、匿名化の処理が困難である。
The method disclosed in
特許文献2には、逐次発生する追加の個票を処理する手法が開示されている。しかし、追加の個票と、過去に処理した個票との共通点が少ない場合には、匿名性を確保できず、追加の個票から個人を特定することが可能となる場合がある。
一つの側面では、逐次発生する追加の個票の匿名化に要する処理負荷を軽減する情報処理装置等を提供することを目的とする。 In one aspect, an object is to provide an information processing device or the like that reduces the processing load required for anonymization of additional individual pieces that occur sequentially.
情報処理装置は、複数の項目にそれぞれ関連付けられたデータを有する入力個票を逐次取得する取得部と、前記取得部が取得した前記入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に逐次変換する変換部とを備え、前記変換部は、前記入力個票を前記匿名化済個票と同一の出力個票に変換することができない場合に、該匿名化済個票が有する項目に関連付けられたすべてのデータを他のデータに置換した置換個票に変換する。 The information processing device sequentially acquires an input individual vote having data associated with each of a plurality of items, and the input individual vote acquired by the acquisition unit, based on a rule, for each of the plurality of items. A conversion unit that sequentially converts any one of a plurality of anonymized individual votes having associated data into the same output individual vote , wherein the conversion unit converts the input individual vote to the anonymized individual vote. When it is not possible to convert to the same output individual form, all the data associated with the items included in the anonymized individual form are converted to the replacement individual form which is replaced with other data.
一つの側面では、逐次発生する追加の個票の匿名化に要する処理負荷を軽減できる。 According to one aspect, it is possible to reduce the processing load required for anonymization of additional individual pieces that occur sequentially.
[実施の形態1]
図1は、情報処理システム10の構成を示す説明図である。情報処理システム10は、サーバ11、第1クライアント21および第2クライアント25を備える。サーバ11、第1クライアント21および第2クライアント25は、ネットワークを介して接続されている。
[Embodiment 1]
FIG. 1 is an explanatory diagram showing the configuration of the
サーバ11は、サーバCPU(Central Processing Unit)12、主記憶装置13、補助記憶装置14、通信部15およびバスを備える。本実施の形態のサーバ11は、ストリーミングデータの匿名化の処理を行う情報処理装置である。本実施の形態のサーバ11は、汎用のパーソナルコンピューター、大型計算機等の情報機器等である。また、本実施の形態のサーバ11は、大型計算機上で動作する仮想マシンでも良い。
The
サーバCPU12は、本実施の形態に係るプログラムを実行する演算制御装置である。サーバCPU12には、一または複数のCPUまたはマルチコアCPU等が使用される。サーバCPU12は、バスを介してシミュレーション装置10を構成するハードウェア各部と接続されている。
The
主記憶装置13は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置13には、サーバCPU12が行う処理の途中で必要な情報およびサーバCPU12で実行中のプログラムが一時的に保存される。
The
補助記憶装置14は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置14には、サーバCPU12に実行させるプログラム、匿名化済データDB(Data Base)31、匿名化オートマトン32およびプログラムの実行に必要な各種情報が保存される。通信部15は、ネットワークとの通信を行うインターフェイスである。
The
第2クライアント25は、入力個票を逐次取得してネットワークに送るクライアントである。第2クライアント25は、店舗等に設置された情報端末および一般消費者等が使用するパソコン、タブレット、スマートフォンなどの情報機器である。以後の説明では第2クライアント25を操作するユーザを第2ユーザと記載する。
The
入力個票は、たとえばWebサイトの会員登録、通信販売の取引記録、ポイントカードのポイント付与記録等から取得する。入力個票は、複数の項目に対応するデータを含む所定の形式で、第2クライアント25からネットワークに逐次送られる。
The input form is acquired from, for example, membership registration on the website, transaction records of mail-order sales, point grant records of point cards, and the like. The input form is sequentially sent from the
第1クライアント21は、たとえばマーケティング等に匿名化済データを活用するユーザが使用するクライアントである。匿名化済データについては後述する。本実施の形態の第1クライアント21は、汎用のパーソナルコンピューター、大型計算機等の情報機器を使用する。以後の説明では、第1クライアント21を操作するユーザを第1ユーザと記載する。第1クライアント21は、入力個票をサーバCPU12が匿名化した出力個票を逐次受け取る。
The
なお、第1クライアント21および第2クライアント25は、サーバ11と同様にCPU、主記憶装置、補助記憶装置および通信部を備える。さらに、第1クライアント21および第2クライアント25は、キーボード、タッチパネル、マウス等の入力インターフェイスおよび液晶ディスプレイ、有機ELディスプレイ、プリント等の出力インターフェイスを備える。第1クライアント21および第2クライアント25の内部構成については、図示を省略する。
The
図2は、元データの例を示す説明図である。元データは本実施の形態の情報処理システム10とは別の情報処理装置に保存されている。元データは、たとえばWebサイトの会員登録、通信販売の取引記録、ポイントカードのポイント付与記録等のデータである。図2の1つの行は、元データに含まれる1個の個票を示す。個票は、たとえば一人分の会員登録情報、または一回の取引の記録等、一つの塊として取り扱われるデータである。図2では、例として郵便番号、生年、性別の3つの項目を含む個票を示す。なお、図2では郵便番号の上3桁のみを記録した例を示す。
FIG. 2 is an explanatory diagram showing an example of original data. The original data is stored in an information processing device different from the
元データの個票にはこれらの他にたとえば住所、氏名、電話番号、メールアドレス、家族構成、購買した商品、支払い方法等の項目が含まれる場合がある。したがって、元データには個人情報が含まれる可能性がある。個人情報が含まれる元データを二次利用することは、法的に制限されている。図2に示す元データには、数十個から数百万個程度の個票が記録されている。なお、以下の説明では元データの個票を元データ個票と記載する。 In addition to these, the individual data of the original data may include items such as address, name, telephone number, mail address, family structure, purchased product, and payment method. Therefore, the original data may include personal information. Secondary use of original data containing personal information is legally restricted. In the original data shown in FIG. 2, several tens to several million individual votes are recorded. In the following description, the original data individual form will be referred to as the original data individual form.
図3は、匿名化済データDB31のレコードレイアウトを示す説明図である。匿名化済データDB31は、匿名化済データを記録するDBである。
FIG. 3 is an explanatory diagram showing a record layout of the anonymized
匿名化済データについて説明する。匿名化済データとは個票から個人を特定できないように加工したデータを意味する。匿名化済データは、たとえばマーケティング分析、サービスの最適化等に利用することができる。以後の説明では、匿名化済データを利用することを二次利用と記載する。 Anonymized data will be described. Anonymized data means data processed so that an individual cannot be identified from individual votes. The anonymized data can be used for marketing analysis, service optimization, and the like. In the following description, using anonymized data is described as secondary use.
どの個票にも、同一内容の個票が当該個票自身も含めてk個以上存在する状態を、k−匿名性という。ここでkは2以上の整数である。k−匿名性が確保されていれば、個票と紐付けられる個人をk人未満に絞り込んで特定することができない。本実施の形態の匿名化済データDB31は、k−匿名性を有する。
The state in which there are k or more individual votes including the same content in any individual vote is called k-anonymity. Here, k is an integer of 2 or more. If k-anonymity is ensured, it is not possible to narrow down the number of individuals associated with the individual votes to less than k and specify. The anonymized
なお、本実施の形態の匿名化済データDB31は、たとえばPk−匿名性を有しても良い。Pk−匿名性とは、個票から個人を特定することができる可能性が1/k未満である状態を意味する。
The anonymized
匿名化済データDB31は、郵便番号フィールド、生年フィールドおよび性別フィールドを有する。郵便番号フィールドには、郵便番号が記録されている。なお、図3では郵便番号の上3桁のみを記録した例を示す。生年フィールドには、年齢が記録されている。性別フィールドには、性別が記録されている。郵便番号フィールド、年齢フィールドおよび性別フィールドに記録された「*」については後述する。
The anonymized
匿名化済データDB31は、1個の匿名化済個票について1つのレコードを有する。匿名化済データDB31は、これらの他にたとえば住所、氏名、電話番号、メールアドレス、家族構成、購買した商品、支払い方法等を匿名化した情報を記録するフィールドを有しても良い。
The anonymized
匿名化は、本実施の形態の情報処理システム10とは別の情報処理装置で行われる。図3中の匿名化済データDB31は、図2に示す元データを匿名化した例を示す。元データの1行目の元データ個票を匿名化したデータが、匿名化済データDB31の1行目のレコードである。
Anonymization is performed by an information processing device different from the
元データと匿名化済データとの関係について説明する。図2の1行目に記載した元データ個票については、郵便番号、年齢、性別の3項目とも図3の匿名化済データDB31の1レコード目に記録されている。元データに同一内容の元データ個票が複数含まれており、元データ個票から個人を特定することができない場合には、このように元データ個票と同一の匿名化済個票が匿名化済データDB31に含まれていても良い。
The relationship between the original data and the anonymized data will be described. Regarding the original data individual form described in the first line of FIG. 2, all three items of postal code, age, and sex are recorded in the first record of the anonymized
図2の2行目に記載した元データ個票については、性別を「*」に置換して図3の匿名化済データDB31の2レコード目に記録されている。ここで「*」は性別を隠したことを意味している。性別を隠すことにより、性別だけが異なる複数の元データ個票が同一の匿名化済個票に変換される。このように元データ個票を処理することにより、元データが所定の条件の匿名性を備える匿名化済データに変換される。
In the original data individual form described in the second line of FIG. 2, the gender is replaced with “*” and recorded in the second record of the anonymized
各項目のデータを「*」で置換することを、以後の説明では一般化と記載する。一般化は、元データ個票を匿名化する手法の一つである。元データの3行目については、生年を「*」に置換した匿名化済個票が匿名化済データDB31に記録されている。ここで「*」は年齢を一般化したことを意味している。
Replacing the data of each item with “*” is referred to as generalization in the following description. Generalization is one of the methods of anonymizing the original data individual votes. Regarding the third line of the original data, the anonymized individual vote in which the year of birth is replaced with “*” is recorded in the anonymized
データに使用しない値または符号等であれば、たとえば「−」、「/」、「999」等の任意の値または符号等を「*」の代わりに使用することができる。以後の説明では、一般化に使用する値または符号等を一般化符号と記載する。なお、項目によって異なる一般化符号を使用しても良い。 Any value or sign such as "-", "/", or "999" that is not used for data can be used instead of "*". In the following description, a value or code used for generalization will be referred to as a generalized code. Note that generalized codes that differ depending on the item may be used.
元データを匿名化する方法は、一般化に限定しない。たとえば、住所を都道府県名で置き換える、氏名をイニシヤルで置き換える、一部の項目のデータを他の個票の同じ項目のデータと入れ替える、一部の項目を削除する等の方法で、元データを匿名化することができる。また、これらの方法と一般化とを組み合わせても良い。本実施の形態の情報処理装置10は、任意の方法で匿名化した匿名化済データDB31を使用することができる。
The method of anonymizing the original data is not limited to generalization. For example, replace the address with the prefecture name, replace the name with the initial, replace the data of some items with the data of the same item in other votes, delete some items, and replace the original data. Can be anonymized. Further, these methods may be combined with generalization. The
匿名化済データDB31は、数十個から数百万個程度のレコードを有する。すなわち匿名化済データDB31には、数十個から数百万個程度の匿名化済個票が記録されている。
The anonymized
図4から図6は、匿名化オートマトン32の作成過程を示す説明図である。図7は、匿名化オートマトン32を示す説明図である。匿名化オートマトン32は、入力個票を受け付けて、所定の規則に基づく処理を行い、匿名化した匿名化済個票に変換する仮想的な機械である。すなわち、匿名化オートマトン32は、入力個票を匿名化する処理の規則を表現した仮想的な機械である。匿名化オートマトン32は、匿名化済データDB31に記録された匿名化済個票に基づいて作成される有限オートマトンである。匿名化オートマトン32が入力個票を処理する手順については後述する。
4 to 6 are explanatory diagrams showing a process of creating the
図4は、匿名化オートマトン32を作成する第1の段階である階層木を示す。サーバCPU12は、図3を使用して説明した匿名化済データDB31に記録された匿名化済個票を入力として、図4に示す階層木を作成する。階層木は、親ノード60、中間ノード61および受容ノード63を有する。親ノード60および中間ノード61は円で示す。受容ノード63は二重楕円で示す。以後の説明では、親ノード60、中間ノード61および受容ノード63をまとめてノードと記載する場合がある。
FIG. 4 shows a hierarchical tree which is the first stage of creating the
親ノード60、中間ノード61および受容ノード63は実線で示す遷移枝65で接続されている。中間ノード61および受容ノード63には、それぞれ一本の遷移枝65が入力する。
The
中間ノード61からは1本以上の遷移枝65が出力する。遷移枝65を選択する条件は、各々の矢印の近傍のラベルに表示してある。受容ノード63は、匿名化済データDB31に記録されている各匿名化済個票と対応している。受容ノード63からは遷移枝65が出力しない。
One or
階層木は、第1階層の親ノード60から第4階層の受容ノード63までの四階層の階層構造を有する。階層の数は、匿名化済データDB31のフィールドの数に1を加算した数である。一の階層に含まれる中間ノード61とその次の階層に含まれる中間ノード61または受容ノード63とを結ぶ遷移枝65のラベルは、匿名化済データDB31の1つのフィールドに含まれるデータである。
The hierarchical tree has a hierarchical structure of four layers from the
親ノード60、中間ノード61および受容ノード63を示す円または二重楕円内の「n」に続く番号は、図3を使用して説明した匿名化DB31のレコードを上から順番に処理した場合に、サーバCPU12がノードを生成する順番を示す。
The numbers following “n” in the circle or the double ellipse indicating the
以後の説明では、中間ノード61を特定する必要がある場合には円内に示す記号を用いて、たとえば中間ノード61n2のように記載する。同様に、受容ノード63を特定する必要がある場合には二重楕円内に示す記号を用いて、たとえば受容ノード63n4のように記載する。
In the following description, when it is necessary to specify the
以下の図および説明では、受容ノード63は項目の名称を省略して表示する。たとえば図4の受容ノード63n16に記載された「*,20,女」は、郵便番号は「*」、年齢は「20」、性別は「女」であることを意味している。
In the following figures and description, the
サーバCPU12が、図4に示す階層木を作成する方法について説明する。サーバCPU12は、親ノード60を作成する。サーバCPU12は、図中に「n1」と示すように、親ノード60に1番の番号を付与する。
A method for the
サーバCPU12は、匿名化済DB31から1番目のレコード「198,50,男」を取得する。サーバCPU12は、親ノード60から出力する遷移枝65および中間ノード61n2を追加する。サーバCPU12は、追加した遷移枝65に、1番目のレコードの第1フィールドに記録されたデータに対応するラベル「〒:198」を付与する。追加した遷移枝65は、郵便番号が「198」である入力個票が親ノード60に入力した場合に、サーバCPU12が行う処理が中間ノード61n2に遷移することを意味する。
The
サーバCPU12は、中間ノード61n2から出力する遷移枝65および中間ノード61n3を追加する。サーバCPU12は、追加した遷移枝65に、1番目のレコードの第2フィールドに記録されたデータに対応するラベル「年:50」を付与する。
The
次の第3フィールドは、1番目のレコードの最後のフィールドであるので、サーバCPU12は、中間ノード61n3から出力する遷移枝65および受容ノード63n4を追加する。サーバCPU12は、追加した遷移枝65に、1番目のレコードの第3フィールドに記録されたデータに対応するラベル「性:男」を付与する。サーバCPU12は、受容ノード63n4に第1レコードに記録された匿名化済個票「198,50,男」を関連付ける。
Since the next third field is the last field of the first record, the
サーバCPU12は、匿名化済データDB31から2番目のレコード「198,20,*」を取得する。サーバCPU12は、作成中の階層木の親ノード60から、2番目のレコードの第1フィールドに記録されたデータに対応する遷移枝65が出ているか否かを判定する。郵便番号が「198」である遷移枝65は既に存在する。したがって、サーバCPU12はその遷移枝65の先の中間ノード61n2を次の処理対象とする。
The
サーバCPU12は、作成中の階層木の中間ノード61n2から、2番目のレコードの第2フィールドに記録されたデータに対応する遷移枝65が出ているか否かを判定する。生年が「20」である遷移枝65は存在しない。したがって、サーバCPU12は、中間ノード61n2から出力する遷移枝65および中間ノード61n5を追加する。サーバCPU12は、追加した遷移枝65に、2番目のレコードの第2フィールドに記録されたデータに対応するラベル「年:20」を付与する。サーバCPU12は作成した中間ノード61n5を次の処理対象とする。
The
サーバCPU12は、作成中の階層木の中間ノード61n5から、2番目のレコードの第3フィールドに記録されたデータに対応する遷移枝65が出ているか否かを判定する。中間ノード61n5から出力する遷移枝65はまだ存在しない。次の第3フィールドは、2番目のレコードの最後のフィールドであるので、サーバCPU12は、中間ノード61n5から出力する遷移枝65および受容ノード63を追加する。サーバCPU12は、追加した遷移枝65に、2番目のレコードの第3フィールドに記録されたデータに対応するラベル「性:*」を付与する。サーバCPU12は、受容ノード63n6に第2レコードに記録された匿名化済個票「198,20,*」を関連付ける。
The
サーバCPU12は、以後同様にして匿名化済データDB31からレコードを取得し、親ノード60から順番に対応する遷移枝65の有無を判定し、無い場合には遷移枝65およびノードを階層木に追加する。サーバCPU12が、匿名化済データDB31に含まれるすべてのレコードを処理することにより、図4に示す階層木が完成する。
Similarly, the
図5は、匿名化オートマトン32を作成する第2の段階が終了した状態を示す。サーバCPU12は、第2の段階では、図4を使用して説明した階層木から、不要なノードを削除する。具体的には、図4の階層木から中間ノード61n5および中間ノード61n9が削除されている。
FIG. 5 shows a state in which the second stage of creating the
中間ノード61の削除について説明する。一般化符号「*」の遷移枝65のみが出力している中間ノード61は、匿名化オートマトン32による処理に寄与していない。サーバCPU12は、一般化符号「*」の遷移枝65のみが出力している中間ノード61を階層木から削除する。サーバCPU12は、削除した中間ノード61に入力していた遷移枝65を、削除した中間ノード61から出力していた遷移枝65の先の中間ノード61または受容ノード63に接続する。
The deletion of the
さらに具体的に説明する。サーバCPU12は、各中間ノード61から出力している遷移枝65のラベルが一般化符号「*」のみであるか否かを順次判定する。たとえば中間ノード61n5からは、「性:*」の遷移枝65のみが出力している。サーバCPU12は、中間ノード61n5および「性:*」の遷移枝65を消去する。サーバCPU12は、中間ノード61n5に入力していた「年:20」のラベルが付与された遷移枝65を、「性:*」の遷移枝65と接続していた受容ノード63n6に接続する。
A more specific description will be given. The
図6は、匿名化オートマトン32を作成する第3の段階を説明する説明図である。第3の段階では、サーバCPU12はバイパス枝67(図7参照)を作成する。バイパス枝67は、一部の中間ノード61から出力し、別の中間ノード61または受容ノード63に入力する。
FIG. 6 is an explanatory diagram illustrating a third stage of creating the
サーバCPU12は、図5を使用して説明した作成途中の匿名化オートマトン32からノード列69を作成する。サーバCPU12は、ノード列69に1から始まる連番で番号を付与する。また、サーバCPU12は、各ノード列69内のノードに、親ノード60側を1として連番で番号を付与する。
The
1つのノード列69は、親ノード60と、一つの受容ノード63と、両者の間の中間ノード61とを含む。サーバCPU12は、受容ノード63と同じ数のノード列69を作成する。サーバCPU12は、一のノード列69に含まれる中間ノード61から出力し、他のノード列69に含まれる中間ノード61に入力するバイパス枝67を作成する。
One
以後の説明では、サーバCPU12が、左端のノード列69から連番で番号を付与した場合を例にして説明する。
In the following description, the case where the
サーバCPU12は、第1ノード列69の第1ノードである親ノード60から処理を開始する。サーバCPU12は、親ノード60が受容ノード63であるか否かを判定する。サーバCPU12は、親ノード60は受容ノード63では無いと判定する。サーバCPU12は、親ノード60から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。親ノード60から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は第1ノード列696の第2ノードである。中間ノード61n2を次の処理対象とする。
The
サーバCPU12は、中間ノード61n2が受容ノード63であるか否かを判定する。サーバCPU12は、中間ノード61n2は受容ノード63では無いと判定する。サーバCPU12は、中間ノード61n2から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n2から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は第1ノード列69の第3ノードである、中間ノード61n3を次の処理対象とする。
The
サーバCPU12は、中間ノード61n3が受容ノード63であるか否かを判定する。サーバCPU12は、中間ノード61n3は受容ノード63では無いと判定する。サーバCPU12は、中間ノード61n3から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n3から、一般化符号「*」のラベルを付与された遷移枝65は出力していないので、サーバCPU12は中間ノード61n3から出力するバイパス枝67の作成可否を判定する処理を開始する。
The
中間ノード61n3から出力するバイパス枝67の作成可否を判定する処理について説明する。処理中の中間ノード61n3は親ノード60では無いので、サーバCPU12は第1ノード列69内の一つ前のノードである中間ノード61n2を判定対象とする。
A process of determining whether or not to create the
サーバCPU12は、中間ノード61n2から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n2から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は、その遷移枝65が入力する中間ノード61n7が、第1ノード列69に含まれているか否かを判定する。中間ノード61n7は、第1ノード列69に含まれていないので、サーバCPU12は、中間ノード61n3から出力して、中間ノード61n7に向かうバイパス枝67を作成する。以上によりサーバCPU12は、中間ノード61n3の処理を終了する。サーバCPU12は第1ノード列69の第4ノードである、受容ノード63n4を次の処理対象とする。
The
受容ノード63n4は、第1ノード列69の最後のノードであるので、サーバCPU12は、第2ノード列69の処理に移動する。サーバCPU12は、第2ノード列69の第1ノードである親ノード60から処理を開始する。親ノード60および中間ノード61n2の処理は、第1ノード列69で説明した処理と同一であるので、説明を省略する。なお、サーバCPU12は、一度処理したノードを記憶しておき、2回目以降の処理を省略しても良い。サーバCPU12は第2ノード列69の第3ノードである。受容ノード63n6を次の処理対象とする。
Since the reception node 63n4 is the last node of the
受容ノード63n4は、第2ノード列69の最後のノードであるので、サーバCPU12は、第3ノード列69の処理に移動する。サーバCPU12は、第3ノード列69の第1ノードである親ノード60から処理を開始する。親ノード60および中間ノード61n2の処理は、第1ノード列69で説明した処理と同一であるので、説明を省略する。サーバCPU12は第3ノード列69の第3ノードである。中間ノード61n7を次の処理対象とする。
Since the reception node 63n4 is the last node of the
サーバCPU12は、中間ノード61n7が受容ノード63であるか否かを判定する。サーバCPU12は、中間ノード61n7は受容ノード63では無いと判定する。サーバCPU12は、中間ノード61n7から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n7から、一般化符号「*」のラベルを付与された遷移枝65が出力していないので、サーバCPU12は中間ノード61n7から出力するバイパス枝67の作成可否を判定する処理を開始する。
The
中間ノード61n7から出力するバイパス枝67の作成可否を判定する処理について説明する。処理中の中間ノード61n7は親ノード60では無いので、サーバCPU12は第3ノード列69内の一つ前のノードである中間ノード61n2を判定対象とする。
A process of determining whether or not the
サーバCPU12は、中間ノード61n2から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n2から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は、その遷移枝65が入力する中間ノード61n7が、第3ノード列69に含まれているか否かを判定する。中間ノード61n7は、第3ノード列69に含まれているので、サーバCPU12は、第3ノード列69内のもう一つ前のノードである親ノード60を判定対象とする。
The
サーバCPU12は、親ノード60から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。親ノード60から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は、その遷移枝65が入力する中間ノード61n12が、第3ノード列69に含まれているか否かを判定する。中間ノード61n12は、第3ノード列69に含まれていないので、サーバCPU12は、中間ノード61n7から出力して、中間ノード61n12に向かうバイパス枝67を作成する。以上によりサーバCPU12は、中間ノード61n7の処理を終了する。サーバCPU12は第3ノード列69の第4ノードである、受容ノード63n8を次の処理対象とする。
The
バイパス枝67の作成を断念する例について、第5ノード列69を例にして説明する。サーバCPU12は、第5ノード列69の第1ノードである親ノード60から処理を開始する。親ノード60の処理は、第1ノード列69で説明した処理と同一であるので、説明を省略する。サーバCPU12は第5ノード列69内の第2ノードである、中間ノード61n12を次の処理対象とする。
An example of giving up the creation of the
サーバCPU12は、中間ノード61n12が受容ノード63であるか否かを判定する。サーバCPU12は、中間ノード61n12は受容ノード63では無いと判定する。サーバCPU12は、中間ノード61n12から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。中間ノード61n12から、一般化符号「*」のラベルを付与された遷移枝65が出力していないので、サーバCPU12は中間ノード61n12から出力するバイパス枝67の作成可否を判定する処理を開始する。
The
中間ノード61n12から出力するバイパス枝67の作成可否を判定する処理について説明する。処理中の中間ノード61n12は親ノード60では無いので、サーバCPU12は第5ノード列69内の一つ前のノードである親ノード60を判定対象とする。
A process of determining whether or not to create the
サーバCPU12は、親ノード60から一般化符号「*」のラベルを付与された遷移枝65またはバイパス枝67が出力しているか否かを判定する。親ノード60から、一般化符号「*」のラベルを付与された遷移枝65が出力しているので、サーバCPU12は、その遷移枝65が入力する中間ノード61n12が、第5ノード列69に含まれているか否かを判定する。中間ノード61n12は、第5ノード列69に含まれているので、サーバCPU12は、第5ノード列69から中間ノード61n12に向かうバイパス枝67を作成できないと判定する。
The
判定対象は親ノード60であるので、サーバCPU12はバイパス枝67を作成せずに中間ノード61n12の処理を終了する。
Since the determination target is the
以上の処理を繰り返すことにより、サーバCPU12は一のノード列69から他のノード列69に遷移するバイパス枝67を作成する。すべてのノードの処理が完了することにより、匿名化オートマトン32が完成する。
By repeating the above processing, the
図7は、完成した匿名化オートマトン32を示す。匿名化オートマトン32は、親ノード60、中間ノード61および受容ノード63を有する。親ノード60、中間ノード61および受容ノード63は実線で示す遷移枝65および破線で示すバイパス枝67で接続されている。中間ノード61は、入力個票を処理する途中過程を示す。遷移枝65およびバイパス枝67は、入力個票を処理する経路を示す。遷移枝65およびバイパス枝67は、本実施の形態の判定枝の例である。
FIG. 7 shows the completed anonymized
親ノード60からは1本以上の遷移枝65が出力する。中間ノード61には、1本の遷移枝65が入力する。中間ノード61からは1本以上の遷移枝65が出力する。受容ノード63には、1本の遷移枝65が入力する。受容ノード63から出力する遷移枝65は存在しない。バイパス枝67は、一部の中間ノード61から出力し、別の中間ノード61または受容ノード63に入力する。
One or
匿名化オートマトン32を使用して、サーバCPU12が入力個票を処理する方法の概略を説明する。外部から親ノード60に入力個票が入力される。入力個票は、遷移枝65、バイパス枝67および中間ノード61を経由して、受容ノード63に到達する。遷移枝65およびバイパス枝67を選択する条件は、各々の矢印の近傍のラベルに表示されている。到達した受容ノード63は、入力個票を匿名化した結果を示す。受容ノード63は、匿名化済データDB31に記録されている匿名化済個票のいずれか一つと対応している。
An outline of a method in which the
図8は、ストリーミングデータの例を示す説明図である。ストリーミングデータは、第2クライアント25が逐次生成してネットワークに送出する入力個票である。図8の1行が、1個の入力個票を示す。サーバCPU12は、通信部15を介して入力個票を逐次受信する。サーバCPU12が入力個票を受信するタイミングおよび受信する入力個票の数は定まっていない。
FIG. 8 is an explanatory diagram showing an example of streaming data. The streaming data is an input piece that the
図9は、匿名化処理後のストリーミングデータの例を示す説明図である。図9は、図8のデータを、図7を使用して説明した匿名化オートマトン32を使用して匿名化処理した例を示す。サーバ11が匿名化オートマトン32を使用して行う具体的な処理の例を説明する。
FIG. 9 is an explanatory diagram showing an example of streaming data after anonymization processing. FIG. 9 shows an example in which the data of FIG. 8 is anonymized by using the
サーバCPU12が、図8の1行目に示す「198,20,女」の入力個票を第2クライアント25から取得した場合を例にして説明する。サーバCPU12は、入力個票を親ノード60に入力する。親ノード60からは、郵便番号によって分かれる遷移枝65が3本出ている。
An example will be described in which the
入力個票の郵便番号は「198」であるので、サーバCPU12は、郵便番号が198の遷移枝65に沿って遷移する中間ノード61nBおよび郵便番号を特定しない一般化符号「*」の遷移枝65に沿って遷移する中間ノード61nFに遷移可能であると判定する。中間ノード61nBに遷移可能なデータの範囲の方が、中間ノード61nFに遷移可能なデータの範囲よりも狭いので、サーバCPU12は、中間ノード61nBに向かう遷移枝65を選択して、中間ノード61nBに処理を移す。なお、以後の説明では、一般化符号「*」の遷移枝65と、それ以外の遷移枝65とを選択可能である場合の判定については記載を省略する。
Since the postal code of the input vote is "198", the
中間ノード61nBからは、年齢によって分かれる遷移枝65が3本出ている。入力個票の年齢は20であるので、サーバCPU12は「198,20,*」の受容ノード63に向かう遷移枝65を選択する。受容ノード63に到達したので、サーバCPU12は、「198,20,女」の入力個票を匿名化処理した結果は、「198,20,*」であると判定する。
From the intermediate node 61nB, three
サーバCPU12が、図8の2行目に示す「198,30,男」の入力個票を第2クライアント25から取得した場合を例にして説明する。サーバCPU12は、入力個票を親ノード60に入力する。親ノード60からは、郵便番号によって分かれる遷移枝65が3本出ている。入力個票の郵便番号は「198」であるので、サーバCPU12は中間ノード61nBに向かう遷移枝65を選択して、中間ノード61nBに処理を移す。
An example will be described in which the
中間ノード61nBからは、年齢によって分かれる遷移枝65が3本出ている。入力個票の年齢は30であるので、一般化符号「*」以外の2本の遷移枝65のいずれのラベルとも一致しない。サーバCPU12は、一般化符号である「*」にあてはまると判定して、中間ノード61nDに向かう遷移枝65を選択する。
From the intermediate node 61nB, three
中間ノード61nDからは、性別によって分かれる遷移枝65が2本出ている。入力個票の性別は男であるので、サーバCPU12は、「198,*,男」の受容ノード63に向かう遷移枝65を選択する。受容ノード63に到達したので、サーバCPU12は、「198,30,男」の入力個票を匿名化処理した結果は、「198,*,男」であると判定する。
From the intermediate node 61nD, two
サーバCPU12が、図8の5行目に示す「198,60,女」の入力個票を第2クライアント25から取得した場合を例にして説明する。サーバCPU12は、入力個票を親ノード60に入力する。親ノード60からは、郵便番号によって分かれる遷移枝65が3本出ている。入力個票の郵便番号は「198」であるので、サーバCPU12は中間ノード61nBに向かう遷移枝65を選択して、中間ノード61nBに処理を移す。
An example will be described in which the
中間ノード61nBからは、年齢によって分かれる遷移枝65が3本出ている。入力個票の年齢は60であるので、3本の遷移枝65のいずれのラベルとも一致しない。サーバCPU12は、一般化符号「*」にあてはまると判定して、中間ノード61nDに向かう遷移枝65を選択する。
From the intermediate node 61nB, three
中間ノード61nDからは、性別によって分かれる遷移枝65が2本出ている。入力個票の性別は女であるので、2本の遷移枝65のいずれのラベルとも一致しない。サーバCPU12は、一般化符号「*」にあてはまると判定して、中間ノード61nFに向かうバイパス枝67を選択する。
From the intermediate node 61nD, two
中間ノード61nFからは、年齢によって分かれる遷移枝65が2本出ている。入力個票の年齢は60であるので、2本の遷移枝65のいずれのラベルとも一致しない。また、中間ノード61nDからは、「*」のラベルの遷移枝65およびバイパス枝67は出力していない。したがって、サーバCPU12は、入力個票を受容ノード63に当てはめることはできない。サーバCPU12は、「198,60,女」の入力個票を匿名化処理した結果は、すべての項目を一般化符号に置換した「*,*,*」であると判定する。以後の説明では、すべての項目を一般化符号に置換した個票を置換個票という。
From the intermediate node 61nF, two
以上に説明した匿名化オートマトン32による処理を簡単にまとめる。サーバCPU12は、取得した入力個票を親ノード60に入力する。サーバCPU12は、匿名化オートマトン32の遷移枝65およびバイパス枝67に沿ってノードを遷移させる。以後の説明では、遷移枝65およびバイパス枝67をまとめて判定枝と記載する。
The processing by the anonymized
入力個票と一致する判定枝が無く、「*」の判定枝が出ている場合には、サーバCPU12は「*」の判定枝を選択する。入力個票と一致する判定枝が無く、「*」の判定枝も無い場合には、サーバCPU12は置換個票が匿名化処理の結果であると判定する。処理が受容ノード63に到達した場合には、サーバCPU12は受容ノード63の内容が入力拠標を匿名化処理した結果であると判定する。
When there is no determination branch that matches the input individual number and the determination branch of “*” is output, the
サーバCPU12は、第2クライアント25から逐次送信される入力個票を受信して、以上に説明した匿名化処理を行う。サーバCPU12は匿名化処理の結果である、出力個票を第1クライアント21に逐次送信する。
The
図10は、プログラムの処理の流れを示すフローチャートである。図10に示すプログラムは、匿名化済みのデータを取得して匿名化オートマトン32を作成し、ストリーミングデータを匿名化して出力するプログラムである。図10を使用して、本実施の形態のプログラムの処理の流れを説明する。
FIG. 10 is a flowchart showing the flow of processing of the program. The program shown in FIG. 10 is a program that acquires anonymized data, creates the anonymized
サーバCPU12は、通信部15を介してネットワークから匿名化済データDB31を取得して(ステップS501)、補助記憶装置14に記憶する。なお、匿名化済データDB31は、あらかじめ補助記憶装置14に記憶されていても良い。
The
サーバCPU12は、階層木作成のサブルーチンを起動する(ステップS502)。階層木作成のサブルーチンは、匿名化済データDB31に記録された匿名化済個票に基づいて階層を有する木構造である階層木を作成するサブルーチンである。階層木作成のサブルーチンは、匿名化オートマトン32を作成する第1の段階のサブルーチンである。階層木作成のサブルーチンの処理の流れは後述する。
The
サーバCPU12は、ノード削減のサブルーチンを起動する(ステップS503)。ノード削減のサブルーチンは、階層を有する木構造から不要な中間ノード61および親ノード60を削除して、中間ノード61の削減および親ノード60の変更を行うサブルーチンである。ノード削減のサブルーチンは、匿名化オートマトン32を作成する第2の段階のサブルーチンである。ノード削減のサブルーチンの処理の流れは後述する。
The
サーバCPU12は、バイパス追加のサブルーチンを起動する(ステップS504)。バイパス追加のサブルーチンは、作成途中の匿名化オートマトン32にバイパス枝67を追加して、匿名化オートマトン32を完成させるサブルーチンである。バイパス追加のサブルーチンは、匿名化オートマトン32を作成する第3の段階のサブルーチンである。バイパス追加のサブルーチンの処理の流れは後述する。
The
サーバCPU12は、完成したオートマトン32を補助記憶装置14に保存する(ステップS505)。
The
第2クライアント25のCPUは、第2ユーザが入力等を行うことにより生成した入力個票を取得する(ステップS601)。第2クライアント25のCPUは取得した入力個票をサーバ11に送信する(ステップS602)。
The CPU of the
サーバCPU12は、入力個票を受信する(ステップS510)。サーバCPU12は、匿名化のサブルーチンを起動する(ステップS511)。匿名化のサブルーチンは、入力個票をステップS505で保存したオートマトン32に入力して、匿名化するサブルーチンである。匿名化のサブルーチンの処理の流れは後述する。
The
サーバCPU12は、匿名化した出力個票を第1クライアント21のCPUに送信する(ステップS512)。第1クライアント21のCPUは、受信した出力個票を保存する(ステップS701)。
The
サーバCPU12は、処理を終了するか否かを判定する(ステップS515)。処理を終了する場合とは、たとえばネットワークを介してストリーミングデータの処理を終了するという入力を受け付けた場合である。
The
処理を終了しないと判定した場合(ステップS515でNO)、サーバCPU12はステップS510に戻る。処理を終了すると判定した場合(ステップS515でYES)、サーバCPU12は処理を終了する。
When it is determined that the processing is not to be ended (NO in step S515), the
図11は、階層木作成のサブルーチンの処理の流れを示すフローチャートである。階層木作成のサブルーチンは、匿名化済データDB31に記録された匿名化済個票に基づいて階層を有する木構造を作成するサブルーチンである。図4を使用して説明した階層木は、階層木作成のサブルーチンが図3を使用して説明した匿名化済データDB31を処理することにより作成した階層木である。
FIG. 11 is a flowchart showing the flow of processing of a subroutine for creating a hierarchical tree. The subroutine for creating a hierarchical tree is a subroutine for creating a tree structure having a hierarchy based on the anonymized individual records recorded in the anonymized
図11を使用して、階層木作成の処理の流れを説明する。なお、サーバCPU12は、補助記憶装置14または主記憶装置13上に階層木を作成および記憶する。
The processing flow of hierarchical tree creation will be described with reference to FIG. The
サーバCPU12は、親ノード60を作成する(ステップS801)。サーバCPU12は、カウンタIを初期値1に設定する(ステップS802)。サーバCPU12は、変数Nを初期値1に設定する(ステップS803)。サーバCPU12は、親ノード60に1番の番号を付与する。
The
サーバCPU12は、匿名化済データDB31からI番目のレコードを取得する(ステップS804)。サーバCPU12はカウンタJを初期値1に設定する(ステップS805)。
The
サーバCPU12は、作成中の階層木の第Nノードから、ステップS804で取得したレコードの第Jフィールドに記録された階層を示す遷移枝65が出ているか否かを判定する(ステップS806)。該当する遷移枝65が無いと判定した場合には(ステップS806でNO)、サーバCPU12は作成中の階層木に、処理中の匿名化済個票に対応する遷移枝65およびノードを追加する(ステップS807)。サーバCPU12は、追加したノードに連番の番号を付与する。
The
該当する遷移枝65があると判定した場合(ステップS806でYES)、サーバCPU12は変数Nを該当する遷移枝65の先のノードの番号に設定する(ステップS808)。またステップS807でノード61を追加した場合、サーバCPU12は変数Nを追加したノードの番号に設定する(ステップS808)。
When it is determined that there is the corresponding transition branch 65 (YES in step S806), the
サーバCPU12は、ステップS804で取得したレコードのすべてのフィールドの処理を終了したか否かを判定する(ステップS809)。処理が終了していないと判定した場合(ステップS809でNO)、サーバCPU12はカウンタJに1を加算する(ステップS812)。その後、サーバCPU12はステップS806に戻る。
The
すべてのフィールドの処理が終了したと判定した場合(ステップS809でYES)、サーバCPU12は、匿名化済データDB31のすべてのレコードの処理が終了したか否かを判定する(ステップS810)。処理が終了していないと判定した場合(ステップS810でNO)、サーバCPU12はカウンタIに1を加算する(ステップS811)。その後、サーバCPU12はステップS803に戻る。
When it is determined that the processing of all fields is completed (YES in step S809), the
すべてのレコードの処理が完了したと判定した場合(ステップS810でYES)、サーバCPU12は処理を終了する。なお、サーバCPU12がステップS807で追加したノードのうち、出力する遷移枝65を有するノードは中間ノード61であり、出力する遷移枝65を有さないノードは受容ノード63である。
When it is determined that the processing of all records is completed (YES in step S810), the
図12は、ノード削減のサブルーチンの処理の流れを示すフローチャートである。ノード削減のサブルーチンは、階層を有する木構造から不要な中間ノード61および親ノード60を削除して、中間ノード61の削減および親ノード60の変更を行うサブルーチンである。図12を使用して、ノード削減のサブルーチンの処理の流れを説明する。ノード削減のサブルーチンは、たとえば図4を使用して説明した階層木を、図5を使用して説明したように変更する。
FIG. 12 is a flowchart showing the flow of processing of a node reduction subroutine. The node reduction subroutine is a subroutine for deleting unnecessary
サーバCPU12はカウンタNを初期値1に設定する(ステップS821)。サーバCPU12は、第Nノードから出力する遷移枝65のラベルが一般化符号「*」のみであるか否かを判定する(ステップS822)。
The
一般化符号「*」の遷移枝65のみであると判定した場合(ステップS822でYES)、サーバCPU12は第Nノードを削除する(ステップS823)。サーバCPU12は、削除した中間ノード61に入力していた遷移枝65を、削除した中間ノード61の後ろの中間ノード61または受容ノード63に接続する。
When it is determined that there is only the
一般化符号「*」の遷移枝65のみでは無いと判定した場合(ステップS822でNO)およびステップS823の終了後、サーバCPU12はすべての中間ノード61の処理を終了したか否かを判定する(ステップS824)。終了していないと判定した場合(ステップS824でNO)、サーバCPU12はカウンタNに1を加算する(ステップS825)。その後、サーバCPU12はステップS822に戻る。
If it is determined that there is not only the
終了したと判定した場合(ステップS824でYES)、サーバCPU12は処理を終了する。
If it is determined that the processing is completed (YES in step S824), the
図13および図14は、バイパス追加のサブルーチンの処理の流れを示すフローチャートである。バイパス追加のサブルーチンは、作成途中の匿名化オートマトン32にバイパス枝67を追加して、匿名化オートマトン32を完成させるサブルーチンである。図6、図13および図14を使用して、バイパス追加のサブルーチンの処理の流れを説明する。
13 and 14 are flowcharts showing the flow of the processing of the bypass addition subroutine. The bypass addition subroutine is a subroutine that completes the
サーバCPU12はカウンタMを初期値1に設定する(ステップS831)。サーバCPU12はカウンタKを初期値1に設定する(ステップS832)。
The
サーバCPU12は、第Mノード列69の第Kノードが受容ノード63であるか否かを判定する(ステップS833)。受容ノード63では無いと判定した場合(ステップS833でNO)、第Mノード列の第Kノードから一般化符号「*」の遷移枝65またはバイパス枝67が出力しているか否かを判定する(ステップS834)。一般化符号「*」の遷移枝65またはバイパス枝67が出力していないと判定した場合(ステップS834でNO)、サーバCPU12は変数AにKを代入する(ステップS835)。
The
サーバCPU12は、変数Aが1であるか否かを判定する(ステップS836)。ここで、変数Aが1である場合は、第Mノード列69の第Aノードが親ノード60であることを意味する。変数Aが1では無いと判定した場合(ステップS836でNO)、サーバCPU12は変数Aから1を減算する(ステップS837)。
The
サーバCPU12は、第Mノード列69の第Aノードから、一般化符号「*」の遷移枝65またはバイパス枝67が出力しているか否かを判定する(ステップS838)。一般化符号「*」の遷移枝65またはバイパス枝67が出力していないと判定した場合(ステップS838でNO)、サーバCPU12はステップS836に戻る。
The
一般化符号「*」の遷移枝65またはバイパス枝67が出力していると判定した場合(ステップS838でYES)、サーバCPU12は変数Nを一般化符号「*」の遷移枝65が入力する中間ノード61の番号に設定する(ステップS839)。
When it is determined that the
サーバCPU12は、第Mノード列69が第N中間ノード61を含むか否かを判定する(ステップS840)。第Mノード列69が第N中間ノード61を含むと判定した場合(ステップS840でYES)、サーバCPU12はステップS836に戻る。
The
第Mノード列69が第N中間ノード61を含まないと判定した場合(ステップS840でNO)、サーバCPU12は第Mノード列69の第Kノードから、第N中間ノード61に向かうバイパス枝67を作成中のオートマトン32に追加する(ステップS841)。バイパス枝67が選択される条件は、第Kノードから出力している遷移枝65と同じ項目のデータが、一般化符号「*」であることである。
When it is determined that the
第Mノード列69の第Kノードが受容ノード63である場合(ステップS833でYES)、サーバCPU12は第Mノード列69の最終ノードまでの処理が完了したか否かを判定する(ステップS842)。第Mノード列69の第Kノードから一般化符号「*」の遷移枝65またはバイパス枝67が出力している場合(ステップS834でYES)も、サーバCPU12は第Mノード列69の最終ノードまでの処理が完了したか否かを判定する(ステップS842)。変数Aが1である場合(ステップS836でYES)およびステップS841の終了後も、サーバCPU12は第Mノード列69の最終ノードまでの処理が完了したか否かを判定する(ステップS842)。
When the Kth node of the
処理が完了していないと判定した場合(ステップS842でNO)、サーバCPU12はカウンタKに1を加算する(ステップS843)。その後、サーバCPU12はステップS833に戻る。
When it is determined that the processing is not completed (NO in step S842), the
処理が完了したと判定した場合(ステップS842でYES)、サーバCPU12はすべてのノード列69の処理が終了したか否かを判定する(ステップS844)。終了していないと判定した場合(ステップS844でNO)、サーバCPU12はカウンタMに1を加算する(ステップS845)。その後、サーバCPU12はステップS832に戻る。
When it is determined that the processing is completed (YES in step S842), the
終了していると判定した場合(ステップS844でYES)、サーバCPU12は処理を終了する。
When it is determined that the processing is completed (YES in step S844), the
図15は、匿名化のサブルーチンの処理の流れを示すフローチャートである。匿名化のサブルーチンは、入力個票をステップS505で保存したオートマトン32に入力して、匿名化するサブルーチンである。図15を使用して、匿名化のサブルーチンの処理の流れを説明する。
FIG. 15 is a flowchart showing the flow of processing of the anonymization subroutine. The anonymization subroutine is a subroutine for anonymizing by inputting the input pieces into the
サーバCPU12は、変数Nを初期値1に設定する(ステップS861)。サーバCPU12は、第Nノードから入力個票に対応する遷移枝65またはバイパス枝67が出力しているか否かを判定する(ステップS862)。
The
出力していないと判定した場合(ステップS862でNO)、サーバCPU12はすべての項目が一般化符号「*」である置換個票を出力データに設定する(ステップS863)。サーバCPU12は、その後処理を終了する。
When it is determined that it has not been output (NO in step S862), the
出力していると判定した場合(ステップS862でYES)、サーバCPU12は変数Nを出力している遷移枝65の先のノードの番号に設定する(ステップS871)。この際、サーバCPU12は、一般化符号「*」が指定されている遷移枝65よりも具体的なデータが指定されている遷移枝65を優先する。
When it is determined that the variable N is being output (YES in step S862), the
サーバCPU12は、第Nノードが受容ノード63であるか否かを判定する(ステップS872)。受容ノード63では無いと判定した場合(ステップS872でNO)、サーバCPU12はステップS862に戻る。
The
受容ノード63であると判定した場合(ステップS872でYES)、サーバCPU12はその受容ノード63の内容を有する個票を出力データに設定する(ステップS873)。その後、サーバCPU12は処理を終了する。
When it is determined that the receiving
本実施の形態によると、匿名化オートマトン32を使用することにより、ストリーミングデータである入力個票を1個ずつ逐次匿名化することができる。匿名化オートマトン32の出力は、既存の匿名化済データに含まれている匿名化済個票と一致しているので、入力個票は匿名化される。
According to the present embodiment, by using the
ステップS871で、一般化符号「*」が指定されている遷移枝65よりも具体的なデータが指定されている遷移枝65を優先することにより、匿名性を確保できる範囲で狭い定義域に入力個票を一般化する。また、バイパス枝67を使用することにより、適切な受容ノード63に到達しない場合に別のノード列69を用いた一般化を試みる。
In step S871, by inputting the
本実施の形態によると、過度な一般化を避けながら匿名性を確保することができる。したがって、ストリーミングデータの入力個票に対して、二次利用に適した匿名化を行うことができる。 According to this embodiment, anonymity can be secured while avoiding excessive generalization. Therefore, it is possible to anonymize the input data of the streaming data suitable for secondary use.
なお、匿名化済データDB31および匿名化オートマトン32は、ネットワークで接続された外部の記憶装置に記憶されていても良い。
The anonymized
匿名化済データDB31を作成する際に匿名化する手法は一般化に限定しない。また、匿名化済データDB31は、k−匿名性を有するDBに限定しない。任意の匿名化手法を用いて、任意の水準の匿名性を有する匿名化済データDB31を使用することができる。
The method of anonymizing when creating the anonymized
[実施の形態2]
実施の形態2は、匿名化する際の項目の優先順位を変更することが可能な情報処理システム10に関する。なお、実施の形態1と共通する部分については、説明を省略する。
[Embodiment 2]
The second embodiment relates to an
図16は、実施の形態2の匿名化処理後のストリーミングデータの例を示す説明図である。図17は、実施の形態2の匿名化オートマトン32を示す説明図である。図16は、図8に示したストリーミングデータを図17に示す匿名化オートマトン32を使用して匿名化した結果を示す。
FIG. 16 is an explanatory diagram showing an example of streaming data after anonymization processing according to the second embodiment. FIG. 17 is an explanatory diagram showing the
図16に示す本実施の形態により匿名化したストリーミングデータと、図9に示す実施の形態1により匿名化したストリーミングデータとの相違点について説明する。本実施の形態では、元データの性別のデータを一般化せずに出力することを優先している。一方、実施の形態1では郵便番号のデータを一般化せずに出力することを優先している。このように、匿名化オートマトン32を変更することにより、どの項目を優先的に出力するかを変更することができる。なお、性別と郵便番号のどちらを優先することが望ましいかは、匿名化済データを二次利用する目的によって異なる。
Differences between the streaming data anonymized by the present embodiment shown in FIG. 16 and the streaming data anonymized by the first embodiment shown in FIG. 9 will be described. In the present embodiment, it is prioritized to output the data of the original data of the gender without generalization. On the other hand, in the first embodiment, priority is given to outputting the postal code data without generalizing it. Thus, by changing the
図18は、実施の形態2のプログラムの処理の流れを示すフローチャートである。図18を使用して、本実施の形態のプログラムの処理の流れを説明する。 FIG. 18 is a flowchart showing the flow of processing of the program according to the second embodiment. The processing flow of the program according to the present embodiment will be described with reference to FIG.
サーバCPU12は、通信部15を介してネットワークから匿名化済データDB31を取得して(ステップS501)、補助記憶装置14に記憶する。サーバCPU12は、あらかじめ補助記憶装置14に記憶されている項目の優先順位を取得する(ステップS531)。なお、サーバCPU12はネットワークを介して第1クライアント21等から項目の優先順位を取得しても良い。
The
サーバCPU12は、ステップS531で取得した優先順位にしたがって、匿名化済データDB31のフィールドを入れ替える(ステップS532)。たとえば、サーバCPU12は、最も優先順位が高い項目が記録されたフィールドを第1フィールドに、二番目に優先順位が高い項目が記録されたフィールドを第2フィールドにする。
The
サーバCPU12は、階層木作成のサブルーチンを起動する(ステップS502)。以後の処理は、図10を使用して説明した実施の形態1と同一であるので、説明を省略する。
The
前述の図17は、サーバCPU12がステップS531で性別、年齢、郵便番号の順序の優先順位を取得して作成したオートマトンを示す。
FIG. 17 described above shows the automaton created by the
本実施の形態によると、二次利用の目的に合わせてストリーミングデータを匿名化する情報処理装置を提供することができる。 According to the present embodiment, it is possible to provide an information processing device that anonymizes streaming data according to the purpose of secondary usage.
[実施の形態3]
実施の形態3は、一部の項目のみを匿名化する情報処理システム10に関する。なお、実施の形態1と共通する部分については、説明を省略する。
[Third Embodiment]
The third embodiment relates to an
図19は、実施の形態3のストリーミングデータの例を示す説明図である。図20は、実施の形態3の匿名化処理後のストリーミングデータの例を示す説明図である。図19に示すように、本実施の形態のストリーミングデータは、性別、生年、郵便番号に加えて、疾患の項目を含む入力個票である。図20に示すように、性別、生年および郵便番号の項目は匿名化を行うが、疾患の項目は匿名化せずに出力する。以後の説明では、匿名化せずに出力する項目を、非匿名化項目と記載する。 FIG. 19 is an explanatory diagram showing an example of streaming data according to the third embodiment. FIG. 20 is an explanatory diagram showing an example of streaming data after anonymization processing according to the third embodiment. As shown in FIG. 19, the streaming data according to the present embodiment is an input individual vote including an item of disease in addition to sex, year of birth, and zip code. As shown in FIG. 20, the items of sex, year of birth, and zip code are anonymized, but the items of diseases are output without anonymization. In the following description, items that are output without anonymization are referred to as non-anonymized items.
また、本実施の形態においては、匿名化済データDB31のフィールドの配列順序と、ストリーミングデータの入力個票の項目の配列順序とが異なっている。ストリーミングデータの個票の項目の配列順序は、あらかじめ補助記憶装置14に記憶されているか、または入力個票に含まれている。
Further, in the present embodiment, the arrangement order of the fields of the anonymized
図21は、実施の形態3の匿名化のサブルーチンの処理の流れを示すフローチャートである。図21に示すサブルーチンは、図7を使用して説明したサブルーチンの代わりに使用するサブルーチンである。図21を使用して、本実施の形態の匿名化のサブルーチンの処理の流れを説明する。 FIG. 21 is a flowchart showing the flow of processing of the anonymization subroutine of the third embodiment. The subroutine shown in FIG. 21 is a subroutine used in place of the subroutine described with reference to FIG. The process flow of the anonymization subroutine of this embodiment will be described with reference to FIG.
サーバCPU12は、変数Nを初期値1に設定する(ステップS861)。サーバCPU12は、第N中間ノード61から入力個票に対応する遷移枝65またはバイパス枝67が出力しているか否かを判定する(ステップS862)。
The
出力していないと判定した場合(ステップS862でNO)、サーバCPU12は匿名化する対象の項目すべてを一般化符号「*」で置換したデータを出力データに設定する(ステップS875)。
When it is determined that the output has not been performed (NO in step S862), the
出力していると判定した場合(ステップS862でYES)、サーバCPU12は変数Nを出力している遷移枝65の先の中間ノード61の番号に設定する(ステップS871)。この際、サーバCPU12は、一般化符号「*」が指定されている遷移枝65よりも具体的なデータが指定されている遷移枝65を優先する。
When it is determined that the variable N is being output (YES in step S862), the
サーバCPU12は、第Nノードが受容ノード63であるか否かを判定する(ステップS872)。受容ノード63では無いと判定した場合(ステップS872でNO)、サーバCPU12はステップS862に戻る。
The
受容ノード63であると判定した場合(ステップS872でYES)、サーバCPU12はその受容ノード63の内容を出力データに設定する(ステップS873)。ステップS873およびステップS875の終了後、サーバCPU12は出力データに非匿名化項目を追加する(ステップS876)。その後、サーバCPU12は処理を終了する。
When it is determined that the receiving
本実施の形態によると、たとえば疾患名等の二次利用の際に重要度の高い項目のデータを完全に残した状態で、入力個票を匿名化することができる。また、本実施の形態によると匿名化済データDB31を作成する際の元データとは異なる項目を含むストリーミングデータの入力個票を匿名化することができる。
According to the present embodiment, it is possible to anonymize the input individual vote in a state in which the data of highly important items are completely left in the secondary use such as disease names. In addition, according to the present embodiment, it is possible to anonymize the input form of streaming data that includes items different from the original data when creating the anonymized
なお、サーバCPU12はステップS876の後、本サブルーチンの処理を終了する前に、匿名化済データDB31に記録されたデータに合わせて出力個票の項目の順番を変更しても良い。このようにすることにより、たとえば第1ユーザが匿名化済データDB31とストリーミングデータとを組み合わせて使用することが容易に行える。
It should be noted that the
[実施の形態4]
実施の形態4は、大きな階層木を作成した後に、不要な遷移枝65を削除して匿名化オートマトン32を作成する情報処理システム10に関する。なお、実施の形態1と共通する部分については、説明を省略する。
[Embodiment 4]
The fourth embodiment relates to an
図22および図23は、実施の形態4の階層木の作成過程を示す説明図である。図22について説明する。図22は、階層木作成の初期段階を示す。図22では、各階層の中間ノード61は、それぞれ同一の種類および数の遷移枝65を有する。なお、図22および図23では、受容ノード63の番号は図示を省略する。
22 and 23 are explanatory diagrams showing a process of creating a hierarchical tree according to the fourth embodiment. 22 will be described. FIG. 22 shows an initial stage of creating a hierarchical tree. In FIG. 22, the
具体的には、第2階層の中間ノード61はすべて、年齢が「20」「50」「*」の3本の遷移枝65を有する。第3階層の中間ノード61はすべて、性別が「男」「女」「*」の3本の遷移枝65を有する。各階層間の遷移枝65の数は、各フィールドに含まれるデータの種類の数と一致している。各受容ノード63の内容は、親ノード60から受容ノード63に到達するまでに経由する遷移枝65に対応する。
Specifically, all the
図23は、匿名化済データDB31に含まれる匿名化済個票と一致しない受容ノード63を削除する過程を示す。たとえば、図23の左端に記載した「198,20,男」という個票は、匿名化済データDB31に含まれていない。サーバCPU12は、このような受容ノード63を階層木から削除することにより、匿名化の処理が不十分な個票を出力することを防止する。
FIG. 23 shows a process of deleting a receiving
サーバCPU12は、受容ノード63を削除する場合には、その受容ノード63に入力する遷移枝65も削除する。この際、出力する遷移枝65を有さない中間ノード61が発生する場合には、サーバCPU12はその中間ノード61も削除する。以上の処理が完了することにより、図4を使用して説明した階層木と同様の階層木が完成する。
When deleting the
図24は、実施の形態4の階層木作成のサブルーチンの処理の流れを示すフローチャートである。図24に示すサブルーチンは、図11を使用して説明したサブルーチンの代わりに使用するサブルーチンである。図24を使用して、本実施の形態の階層木作成のサブルーチンの処理の流れを説明する。 FIG. 24 is a flow chart showing the flow of processing of the hierarchical tree creating subroutine of the fourth embodiment. The subroutine shown in FIG. 24 is a subroutine used instead of the subroutine described with reference to FIG. The processing flow of the subroutine for creating a hierarchical tree according to the present embodiment will be described with reference to FIG.
サーバCPU12は、親ノード60を作成する(ステップS901)。サーバCPU12は、カウンタJを初期値1に設定する(ステップS902)。
The
サーバCPU12は、匿名化済データDB31の第Jフィールドに含まれるデータの種類を抽出する(ステップS903)。図3に示す匿名化済データDB31を例にして説明する。第1フィールドである郵便番号のフィールドには「198」「998」「*」の3種類のデータが含まれている。したがって、サーバCPU12はJ=1である場合には、「198」「998」「*」の3個のデータを抽出する。
The
サーバCPU12は、第J+1階層にステップS903で抽出した各データに対応する遷移枝65および中間ノード61を作成する(ステップS904)。たとえば、J=1である場合には、サーバCPU12は中間ノード61n2、中間ノード61n3、中間ノード61n4の3個の中間ノード61および遷移枝65を作成する。なお、ステップS914で作成するノードのうち、出力する遷移枝65を有さないノードは、受容ノード63である。
The
サーバCPU12は、匿名化済データDB31のすべてのフィールドの処理が終了したか否かを判定する(ステップS905)。処理が終了していないと判定した場合(ステップS905でNO)、サーバCPU12はカウンタJに1を加算する(ステップS906)。その後、サーバCPU12はステップS903に戻る。
The
処理が終了したと判定した場合(ステップS905でYES)、サーバCPU12は、変数Nを初期値1に設定する(ステップS910)。サーバCPU12は、N番目の受容ノード63に対応する個票が匿名化済データDB31内に存在するか否かを判定する(ステップS911)。存在しないと判定した場合(ステップS911でNO)、サーバCPU12は受容ノード63を作成中の階層木から削除する(ステップS912)。サーバCPU12は、削除した受容ノード63に入力する遷移枝65も削除する。この際、出力する遷移枝65を有さない中間ノード61が発生する場合には、サーバCPU12は遷移枝65を有さない中間ノード61も削除する。
When it is determined that the process is completed (YES in step S905), the
受容ノード63が存在すると判定した場合(ステップS911でYES)およびステップS912の終了後、サーバCPU12はすべての受容ノード63の処理が終了したか否かを判定する(ステップS913)。終了していないと判定した場合には(ステップS913でNO)、サーバCPU12はカウンタNに1を加算する(ステップS914)。その後、サーバCPU12はステップS911に戻る。
When it is determined that the accepting
終了したと判定した場合には(ステップS913でYES)、サーバCPU12は処理を終了する。
If it is determined that the processing is completed (YES in step S913), the
本実施の形態によると、実施の形態1とは異なるアルゴリズムで匿名化オートマトン32を作成することができる。なお、匿名化オートマトン32の作成方法は、本実施の形態および実施の形態1に記載した方法に限定しない。親ノード60および匿名化済データDB31に含まれる匿名化済個票に対応する受容ノード63を備えれば、任意の方法で作成した匿名化オートマトン32を使用することができる。
According to this embodiment, the
図7に示す匿名化オートマトン32は、匿名化オートマトン32の機能を説明するためのイメージである。匿名化オートマトン32は、状態遷移表その他任意の形式で表現されて、補助記憶装置14に記憶されていても良い。
The
[実施の形態5]
実施の形態5は、ストリーミングデータを蓄積して、匿名化オートマトン32を再作成する情報処理システム10に関する。なお、実施の形態1と共通する部分については、説明を省略する。
[Fifth Embodiment]
The fifth embodiment relates to an
図25は、実施の形態5の情報処理システム10の構成を示す説明図である。情報処理システム10は、サーバ11、第1クライアント21、第2クライアント25および匿名化サーバ18を備える。サーバ11、第1クライアント21、第2クライアント25および匿名化サーバ18は、ネットワークを介して接続している。
FIG. 25 is an explanatory diagram showing the configuration of the
匿名化サーバ18は、元データ個票を取得して匿名化済データDB31を作成するサーバである。本実施の形態の匿名化サーバ18は、汎用のパーソナルコンピューター、大型計算機等の情報機器等である。また、本実施の形態のサーバ11と匿名化サーバ18とは、同一のハードウェア上で動作する仮想マシンでも良い。匿名化サーバ18は、本実施の形態の作成部の一例である。
The
匿名化サーバ18は、サーバ11と同様にCPU、主記憶装置、補助記憶装置および通信部を備える。匿名化サーバ18の補助記憶装置には、匿名化前の元データが記憶される。匿名化サーバ18の内部構成については、図示を省略する。
Like the
図26は、実施の形態5のプログラムの処理の流れを示すフローチャートである。図26を使用して、本実施の形態の処理の流れを説明する。 FIG. 26 is a flowchart showing the flow of processing of the program according to the fifth embodiment. The processing flow of this embodiment will be described with reference to FIG.
匿名化サーバ18のCPUは、多数の元データ個票を取得する(ステップS951)。なお、元データ個票は、第2クライアント25から逐次発生する個票を蓄積したものであっても良い。
The CPU of the
匿名化サーバ18のCPUは、取得した元データ個票を匿名化して、匿名化済データDB31を作成する(ステップS952)。元データ個票を匿名化するには、たとえばk−匿名化、Pk−匿名化、米国HIPAA(Health Insurance Portability and Accountability Act)プライバシールールなどの法令やガイドラインに基づいた匿名化等、任意の手法を使用することができる。匿名化サーバ18のCPUは、匿名化済データDB31をサーバ11に送信する。
The CPU of the
サーバCPU12は、通信部15を介して匿名化済データDB31を取得して(ステップS501)、補助記憶装置14に取得する。以後、ステップS512までのサーバCPU12が行う処理および第1クライアント21のCPUが行う処理は実施の形態1と同一であるので説明を省略する。
The
第2クライアント25のCPUは、第2ユーザが入力等を行うことにより生成した入力個票を取得する(ステップS601)。第2クライアント25のCPUは取得した入力個票をサーバ11および匿名化サーバ18に送信する(ステップS611)。
The CPU of the
匿名化サーバ18のCPUは、入力個票を受信し(ステップS953)、補助記憶装置に設けた入力個票記憶部に保存する。匿名化サーバ18は、第2クライアント25が入力個票を送信する都度、ステップS953を繰り返す。
The CPU of the
匿名化サーバ18のCPUは、ステップS951で取得した元データ個票とステップS953で受信した入力個票をまとめて元データとして、新たな匿名化済データDB31を作成する(ステップS954)。この際、匿名化サーバ18のCPUは、本実施の形態の再作成部の機能を実現する。匿名化サーバ18のCPUがステップS954を実施するタイミングは、任意に定めることができる。たとえば匿名化サーバ18は、1週間ごと、1ヶ月ごと等、所定の時期にステップS954を実施する。また、匿名化サーバ18のCPUは、ステップS953で受信した入力個票が所定の数を超えた場合にステップS954を実行しても良い。
The CPU of the
匿名化サーバ18のCPUは、新たな匿名化済データDB31を作成したことを、サーバ11に通知する(ステップS955)。
The CPU of the
サーバCPU12は、処理を終了するか否かを判定する(ステップS515)。処理を終了すると判定した場合(ステップS515でYES)、サーバCPU12は処理を終了する。
The
処理を終了しないと判定した場合(ステップS515でNO)、サーバCPU12は新たな匿名化済データDB31が存在するか否かを判定する(ステップS552)。新たな匿名化EB31の存在の有無は、匿名化サーバ18がステップS955で送信した通知を受信したか否かにより判定する。
When it is determined that the processing is not to be ended (NO in step S515), the
存在しないと判定した場合(ステップS552でNO)、サーバCPU12はステップS510に戻る。存在すると判定した場合(ステップS552でYES)、サーバCPU12はステップS501に戻る。
If it is determined that there is not any (NO in step S552), the
本実施の形態によると、ストリーミングデータを反映して、随時匿名化オートマトン32を更新する情報処理システム10を提供することができる。入力個票データが時間の経過とともに変化するトレンドを有する場合にも、陳腐化せず、有用な匿名化済データを提供することが可能である。
According to the present embodiment, it is possible to provide the
[実施の形態6]
実施の形態6は、匿名化オートマトン32の作成とストリーミングデータの匿名化とを異なるサーバで行う情報処理システム10に関する。なお、実施の形態5と共通する部分については、説明を省略する。
[Sixth Embodiment]
The sixth embodiment relates to an
図27は、実施の形態6のプログラムの処理の流れを示すフローチャートである。図27を使用して、本実施の形態の処理の流れを説明する。 FIG. 27 is a flowchart showing the flow of processing of the program according to the sixth embodiment. The processing flow of this embodiment will be described with reference to FIG.
匿名化サーバ18のCPUは、多数元データ個票を取得する(ステップS951)。なお、元データは、第2クライアント25から逐次発生する入力個票を蓄積したデータであっても良い。
The CPU of the
匿名化サーバ18のCPUは、取得した元データ個票を匿名化して、匿名化済データDB31を作成する(ステップS952)。匿名化サーバ18のCPUは、階層木作成のサブルーチンを起動する(ステップS961)。階層木作成のサブルーチンには、図11を使用して説明したサブルーチンまたは図24を使用して説明したサブルーチンを使用することができる。
The CPU of the
匿名化サーバ18のCPUは、ノード削減のサブルーチンを起動する(ステップS962)。ノード削減のサブルーチンには、図12を使用して説明したサブルーチンを使用することができる。
The CPU of the
匿名化サーバ18のCPUは、バイパス追加のサブルーチンを起動する(ステップS963)。バイパス追加のサブルーチンには、図13および図14を使用して説明したサブルーチンを使用することができる。
The CPU of the
匿名化サーバ18のCPUは、完成した匿名化オートマトン32をサーバ11に送信する(ステップS964)。サーバCPU12は、匿名化オートマトン32を取得する(ステップS561)。
The CPU of the
第2クライアント25のCPUは、第2ユーザが入力等を行うことにより生成した入力個票を取得する(ステップS601)。第2クライアント25のCPUは取得した入力個票をサーバ11および匿名化サーバ18に送信する(ステップS611)。
The CPU of the
サーバCPU12は、第2クライアント25からストリーミングデータの入力個票を受信する(ステップS510)。サーバCPU12は、匿名化のサブルーチンを起動する(ステップS511)。匿名化のサブルーチンには、図15を使用して説明したサブルーチンまたは図21を使用して説明したサブルーチンを使用することができる。なお、サーバCPU12は、ステップS511の終了後、ステップS510で受信した入力個票を補助記憶装置14等から削除することが望ましい。
The
サーバCPU12は、匿名化した出力個票を第1クライアント21のCPUに送信する(ステップS512)。第1クライアントのCPUは、受信した出力個票を保存する(ステップS701)。
The
サーバCPU12は、処理を終了するか否かを判定する(ステップS515)。処理を終了しないと判定した場合(ステップS515でNO)、サーバCPU12はステップS561に戻る。処理を終了すると判定した場合(ステップS515でYES)、サーバCPU12は処理を終了する。
The
匿名化サーバ18のCPUは、入力個票を受信して(ステップS953)、主記憶装置13または補助記憶装置に記憶する。匿名化サーバ18は、第2クライアント25が入力個票を送信する都度、ステップS953を繰り返す。
The CPU of the
匿名化サーバ18のCPUは、匿名化済データDB31を再作成するか否かを判定する(ステップS954)。再作成を行う条件は、任意に設定することができる。たとえば匿名化サーバ18のCPUは、1週間ごと、1ヶ月ごと等に再作成する(ステップS954でYES)と判定しても良い。また、匿名化サーバ18のCPUは、ステップS953で受信した入力個票が所定の数を超えた場合に再作成する(ステップS954でYES)と判定しても良い。
The CPU of the
匿名化済データDB31を再作成する(ステップS954でYES)と判定した場合、匿名化サーバ18のCPUは、ステップS952に戻る。匿名化済データDB31を再作成しない(ステップS954でNO)と判定した場合、匿名化サーバ18のCPUは、ステップS953に戻る。
When it is determined to recreate the anonymized data DB 31 (YES in step S954), the CPU of the
本実施の形態によると、匿名化オートマトン32とストリーミングデータの入力個票の匿名化とを異なるハードウェアで行う情報処理システム10を提供することができる。大量の個人情報を取り扱う匿名化サーバ18のセキュリティレベルを高く設定することにより、個人情報を保護することが可能である。
According to the present embodiment, it is possible to provide the
[実施の形態7]
図28は、実施の形態7の情報処理装置11の動作を示す機能ブロック図である。情報処理装置11は、サーバCPU12による制御に基づいて以下のように動作する。
[Embodiment 7]
FIG. 28 is a functional block diagram showing operations of the
取得部51は、複数の項目にそれぞれ関連付けられたデータを有する入力個票を取得する。変換部52は、取得部51が取得した入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に変換する。
The
[実施の形態8]
実施の形態8は、汎用のコンピュータとプログラム47とを組み合わせて動作させることにより、本実施の形態のサーバ11を実現する形態に関する。図29は、実施の形態8の情報処理システム10の構成を示す説明図である。図29を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
[Embodiment 8]
The eighth embodiment relates to a mode in which the
本実施の形態の情報処理システム10は、サーバコンピュータ45、第1クライアント21および第2クライアント25を備える。サーバコンピュータ45、第1クライアント21および第2クライアント25は、ネットワークを介して接続している。
The
サーバコンピュータ45は、サーバCPU12、主記憶装置13、補助記憶装置14、通信部15、読取部17およびバスを備える。サーバコンピュータ45は、汎用のパソコン等の情報処理装置である。
The server computer 45 includes a
プログラム47は、可搬型記録媒体48に記録されている。サーバCPU12は、読取部17を介してプログラム47を読み込み、補助記憶装置14に保存する。またサーバCPU12は、サーバコンピュータ45内に実装されたフラッシュメモリ等の半導体メモリ49に記憶されたプログラム47を読出しても良い。さらに、サーバCPU12は、通信部15および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム47をダウンロードして補助記憶装置14に保存しても良い。
The
プログラム47は、サーバコンピュータ45の制御プログラムとしてインストールされ、主記憶装置13にロードして実行される。これにより、サーバコンピュータ45は上述したサーバ11として機能する。
The
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
The technical features (constituent elements) described in the respective embodiments can be combined with each other, and by combining them, new technical features can be formed.
The embodiments disclosed this time are to be considered as illustrative in all points and not restrictive. The scope of the present invention is defined not by the above meaning but by the scope of the claims, and is intended to include meanings equivalent to the scope of the claims and all modifications within the scope.
(付記1)
複数の項目にそれぞれ関連付けられたデータを有する入力個票を取得する取得部と、
前記取得部が取得した前記入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に変換する変換部とを備える
情報処理装置。
(Appendix 1)
An acquisition unit that acquires an input individual number having data associated with each of a plurality of items,
Conversion for converting the input vote acquired by the acquisition unit into the same output vote as any one of the plurality of anonymized votes having data associated with the plurality of items, based on a rule An information processing device including a unit.
(付記2)
前記変換部は、前記入力個票を前記匿名化済個票と同一の出力個票に変換することができない場合に、該匿名化済個票が有する項目に関連付けられたすべてのデータを他のデータに置換した置換個票に変換する
付記1に記載の情報処理装置。
(Appendix 2)
When the conversion unit cannot convert the input individual number into the same output individual number as the anonymized individual number, all the data associated with the item of the anonymized individual number is converted to another one. The information processing apparatus according to
(付記3)
前記規則は、前記入力個票を、各項目に関連付けられたデータが該入力個票の各項目に関連付けられたデータまたは該データを置換した他のデータと同一である出力個票に変換する規則である
付記1または付記2に記載の情報処理装置。
(Appendix 3)
The rule is a rule for converting the input vote into an output vote in which the data associated with each item is the same as the data associated with each item of the input vote or other data that replaces the data. The information processing apparatus according to
(付記4)
前記規則は、前記匿名化済個票が有する項目およびデータに対応する複数階層の判定枝を有し、各階層の該判定枝により出力個票が定められ、
前記変換部は、前記入力個票の項目に関連付けられたデータが前記判定枝に対応する場合に該判定枝を選択し、選択した該判定枝によって定められた出力個票に入力個票を変換する
付記1から付記3のいずれか一つに記載の情報処理装置。
(Appendix 4)
The rule has a plurality of layers of decision branches corresponding to the items and data that the anonymized individual vote has, and the output votes are determined by the decision branches of each layer,
The conversion unit selects the determination branch when the data associated with the item of the input individual corresponds to the determination branch, and converts the input individual into the output individual defined by the selected determination branch. The information processing apparatus according to any one of
(付記5)
前記変換部は、取得した前記入力個票を逐次変換する
付記1から付記4のいずれか一つに記載の情報処理装置。
(Appendix 5)
The information processing apparatus according to any one of
(付記6)
前記変換部は、前記匿名化済個票が有さない項目に関連付けられた前記入力個票のデータを変換しない
付記1から付記5のいずれか一つに記載の情報処理装置。
(Appendix 6)
The information processing apparatus according to any one of
(付記7)
前記匿名化済個票は、一部または全部の項目に関連付けられたデータを他のデータに置換した個票である
付記1から付記6のいずれか一つに記載の情報処理装置。
(Appendix 7)
The anonymized individual vote is an individual vote in which data associated with some or all items is replaced with other data. The information processing apparatus according to any one of
(付記8)
前記匿名化済個票は、k−匿名性を有する
付記1から付記7に記載の情報処理装置。
(Appendix 8)
The information processing device according to
(付記9)
前記規則は、
入力ノードと、
前記匿名化済個票に関連付けられており、前記入力ノードから遷移可能な複数の受容ノードと、
前記入力ノードから前記受容ノードに至る遷移の条件を示す複数の判定枝と、
前記判定枝に接続された複数のノードとを備える
有限オートマトンである付記1から付記8のいずれか一つに記載の情報処理装置。
(Appendix 9)
The rules are
An input node,
A plurality of accepting nodes that are associated with the anonymized individual vote and that can transition from the input node;
A plurality of decision branches indicating conditions of transition from the input node to the accept node,
The information processing device according to any one of
(付記10)
前記有限オートマトンは、一のノードから前記入力個票に基づいて遷移可能な複数のノードが存在する場合には、遷移対象となるデータの範囲が狭いノードに遷移する付記9に記載の情報処理装置。
(Appendix 10)
The information processing apparatus according to appendix 9, wherein the finite state automaton makes a transition to a node having a narrow range of data to be transitioned when there are a plurality of nodes that can transition based on the input number from one node. ..
(付記11)
前記有限オートマトンは、
入力ノードから一の受容ノードにつながる一のノード列に含まれるノードから、他のノード列に含まれるノードに遷移するバイパス枝を備える付記9または付記10に記載の情報処理装置。
(Appendix 11)
The finite automaton is
11. The information processing apparatus according to
(付記12)
前記バイパス枝は、前記一のノード列に含まれるノードから、該ノードから他のいずれのノードにも遷移できない個票を遷移させる付記11に記載の情報処理装置。
(Appendix 12)
12. The information processing device according to
(付記13)
複数の項目にそれぞれ関連付けられたデータを有する複数の元データ個票から匿名化済個票を作成する作成部を備える
付記1から付記12のいずれか一つに記載の情報処理装置。
(Appendix 13)
The information processing apparatus according to any one of
(付記14)
複数の項目にそれぞれ関連付けられたデータを有する元データ個票を記憶する元データ記憶部と、
前記元データ記億部に記憶された元データ個票から匿名化済個票を作成する作成部と、
取得した入力個票を記憶する入力個票記憶部と、
前記元データ記憶部に記憶された元データ個票と前記入力個票記憶部に記憶された入力個票とから前記匿名化済個票を再作成する再作成部とを備える
付記1から付記12のいずれか一つに記載の情報処理装置。
(Appendix 14)
An original data storage unit that stores an original data individual piece having data associated with each of a plurality of items,
A creation unit for creating anonymized individual votes from the original data individual votes stored in the original data storage section,
An input number storage unit that stores the acquired input number,
Note 1 to Note 12 further comprising: a recreating unit for recreating the anonymized individual vote from the original data individual form stored in the original data storage unit and the input individual form stored in the input individual form storage unit. The information processing apparatus described in any one of 1.
(付記15)
複数の項目にそれぞれ関連付けられたデータを有する入力個票を取得し、
取得した入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に変換する
処理をコンピュータに実行させる情報処理方法。
(Appendix 15)
Acquire the input number that has the data respectively associated with multiple items,
Causes the computer to execute the processing of converting the acquired input individual vote into the same output individual vote as any one of the plurality of anonymized individual votes having the data respectively associated with the plurality of items. Information processing method.
(付記16)
複数の項目にそれぞれ関連付けられたデータを有する入力個票を取得し、
取得した入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票にする
処理をコンピュータに実行させるプログラム。
(Appendix 16)
Acquire the input number that has the data respectively associated with multiple items,
A program for causing a computer to execute a process for converting the acquired input individual vote into the same output individual vote as one of the plurality of anonymized individual votes having data associated with each of the plurality of items ..
10 情報処理システム
11 サーバ(情報処理装置)
12 サーバCPU
13 主記憶装置
14 補助記憶装置
15 通信部
17 読取部
18 匿名化サーバ
21 第1クライアント
25 第2クライアント
31 匿名化済データDB
32 匿名化オートマトン(規則)
45 サーバコンピュータ
47 プログラム
48 可搬型記憶媒体
49 半導体メモリ
51 取得部
52 変換部
60 親ノード
61 中間ノード
63 受容ノード
65 遷移枝
67 バイパス枝
69 ノード列
10
12 server CPU
13
32 Anonymized Automata (rule)
45
Claims (8)
前記取得部が取得した前記入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に逐次変換する変換部とを備え、
前記変換部は、前記入力個票を前記匿名化済個票と同一の出力個票に変換することができない場合に、該匿名化済個票が有する項目に関連付けられたすべてのデータを他のデータに置換した置換個票に変換する
情報処理装置。 An acquisition unit that sequentially acquires input individual numbers each having data associated with a plurality of items,
The input individual vote acquired by the acquisition unit is sequentially converted into the same output individual vote as any one of the plurality of anonymized individual votes having the data respectively associated with the plurality of items based on the rule. And a conversion unit ,
When the conversion unit cannot convert the input individual number into the same output individual number as the anonymized individual number, all the data associated with the item of the anonymized individual number is converted to another one. An information processing device that converts the data into replacement individual data .
請求項1に記載の情報処理装置。 The rule is a rule for converting the input vote into an output vote in which the data associated with each item is the same as the data associated with each item of the input vote or other data that replaces the data. Is
The information processing apparatus according to claim 1 .
前記変換部は、前記入力個票の項目に関連付けられたデータが前記判定枝に対応する場合に該判定枝を選択し、選択した該判定枝によって定められた出力個票に入力個票を変換する
請求項1または請求項2に記載の情報処理装置。 The rule has a plurality of layers of decision branches corresponding to the items and data that the anonymized individual vote has, and the output votes are determined by the decision branches of each layer,
The conversion unit selects the determination branch when the data associated with the item of the input individual corresponds to the determination branch, and converts the input individual into the output individual defined by the selected determination branch. The information processing apparatus according to claim 1 or 2 .
前記変換部は、前記入力個票を前記匿名化済個票のうちのいずれか一つの匿名化済個票の匿名化項目と同一の匿名化項目を有するとともに、前記入力個票の前記非匿名化項目と同一の非匿名化項目を有する出力個票に変換する
請求項1から請求項3のいずれか一つに記載の情報処理装置。 The input vote, the anonymized vote and the output vote include anonymized items and non-anonymized items,
The converting unit, together with the input microdata have the same anonymous items and anonymized item of any one of the anonymous already microdata of said anonymized already microdata, the non-anonymous said input microdata The information processing apparatus according to any one of claims 1 to 3 , wherein the information is converted into an output individual form having the same non-anonymized item as the generalized item .
入力ノードと、
前記匿名化済個票に関連付けられており、前記入力ノードから遷移可能な複数の受容ノードと、
前記入力ノードから前記受容ノードに至る遷移の条件を示す複数の判定枝と、
前記判定枝に接続された複数のノードとを備える
有限オートマトンである請求項1から請求項4のいずれか一つに記載の情報処理装置。 The rules are
An input node,
A plurality of accepting nodes that are associated with the anonymized individual vote and that can transition from the input node;
A plurality of decision branches indicating conditions of transition from the input node to the accept node,
The information processing apparatus according to any one of claims 1 to 4 , which is a finite state automaton including a plurality of nodes connected to the determination branch.
入力ノードから一の受容ノードにつながる一のノード列に含まれるノードから、他のノード列に含まれるノードに遷移するバイパス枝を備える請求項5に記載の情報処理装置。 The finite automaton is
The information processing apparatus according to claim 5 , further comprising a bypass branch that transitions from a node included in one node sequence connected from the input node to one reception node to a node included in another node sequence.
取得した入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に逐次変換し、
前記入力個票を前記匿名化済個票と同一の出力個票に変換することができない場合に、該匿名化済個票が有する項目に関連付けられたすべてのデータを他のデータに置換した置換個票に変換し、
変換した出力個票を送信する
処理をコンピュータに実行させる情報処理方法。 Through the network line, sequentially obtain the input form with the data associated with each item,
Based on the rules, the obtained input votes are sequentially converted into the same output votes as any one of a plurality of anonymized votes having data associated with the plurality of items ,
When it is not possible to convert the input individual vote into the same output individual vote as the anonymized individual vote, all data associated with the items of the anonymized individual vote are replaced with other data Convert into individual votes,
An information processing method for causing a computer to execute a process of transmitting a converted output form .
取得した入力個票を、規則に基づいて、前記複数の項目にそれぞれ関連付けられたデータを有する複数の匿名化済個票のいずれか一つと同一の出力個票に逐次変換し、
前記入力個票を前記匿名化済個票と同一の出力個票に変換することができない場合に、該匿名化済個票が有する項目に関連付けられたすべてのデータを他のデータに置換した置換個票に変換する
処理をコンピュータに実行させるプログラム。 Sequentially acquire the input number of items having data associated with each of a plurality of items,
Based on the rules, the obtained input votes are sequentially converted into the same output votes as any one of a plurality of anonymized votes having data associated with the plurality of items ,
When it is not possible to convert the input individual vote into the same output individual vote as the anonymized individual vote, all data associated with the items of the anonymized individual vote are replaced with other data A program that causes a computer to execute the process of converting into individual pieces .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016004610A JP6693135B2 (en) | 2016-01-13 | 2016-01-13 | Information processing apparatus, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016004610A JP6693135B2 (en) | 2016-01-13 | 2016-01-13 | Information processing apparatus, information processing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017126170A JP2017126170A (en) | 2017-07-20 |
JP6693135B2 true JP6693135B2 (en) | 2020-05-13 |
Family
ID=59364315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016004610A Active JP6693135B2 (en) | 2016-01-13 | 2016-01-13 | Information processing apparatus, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6693135B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL197579A0 (en) * | 2009-03-12 | 2009-12-24 | Univ Ben Gurion | Efficient multi-dimensional suppression for k-anonymity |
JP6256035B2 (en) * | 2014-01-20 | 2018-01-10 | 富士通株式会社 | Data editing program, data editing method, and data editing apparatus |
JP6456162B2 (en) * | 2015-01-27 | 2019-01-23 | 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ | Anonymization processing device, anonymization processing method and program |
-
2016
- 2016-01-13 JP JP2016004610A patent/JP6693135B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017126170A (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuan et al. | Tourism information technology research trends: 1990-2016 | |
Ma et al. | Entire space multi-task model: An effective approach for estimating post-click conversion rate | |
Das et al. | Real-time sentiment analysis of twitter streaming data for stock prediction | |
Szekely et al. | Building and using a knowledge graph to combat human trafficking | |
US9760735B2 (en) | Anonymous information exchange | |
TWI508011B (en) | Category information providing method and device | |
US10078843B2 (en) | Systems and methods for analyzing consumer sentiment with social perspective insight | |
US9639627B2 (en) | Method to search a task-based web interaction | |
US20160004757A1 (en) | Data management method, data management device and storage medium | |
Mans et al. | Business process mining success | |
US20170039286A1 (en) | Integrated data mining system architecture for extraction, processing and consumption of user data for customizing search engine output and other applications | |
CN107683481A (en) | Encryption data is calculated using deferred evaluation | |
Kitchin | Big data and official statistics: Opportunities, challenges and risks | |
Ibrahim et al. | The hybrid BFGS-CG method in solving unconstrained optimization problems | |
Ingwersen et al. | A new data architecture for advancing life cycle assessment | |
Li et al. | Step-based data sharing and exchange in one-of-a-kind product collaborative design for cloud manufacturing | |
Rodrigues et al. | Real-time Twitter data analysis using Hadoop ecosystem | |
Papachristou et al. | Machine learning for clothing manufacture as a mean to respond quicker and better to the demands of clothing brands: a Greek case study | |
Staar et al. | Corpus processing service: a knowledge graph platform to perform deep data exploration on corpora | |
JP6693135B2 (en) | Information processing apparatus, information processing method, and program | |
Fensel et al. | Bringing online visibility to hotels with Schema. org and multi-channel communication | |
MOERTINI et al. | EFFICIENT TECHNIQUES FOR PREDICTING SUPPLIERS CHURN TENDENCY IN E-COMMERCE BASED ON WEBSITE ACCESS DATA. | |
Gupta et al. | Large-scale information extraction from emails with data constraints | |
US9530094B2 (en) | Jabba-type contextual tagger | |
Sugu et al. | Bibliometric analysis of published literature on e-wallet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180912 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190820 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191016 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6693135 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |