(57)【特許請求の範囲】
【請求項１】
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開する処理と、
前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納する処理と、
前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成処理と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信する処理と、
前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する処理と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施する処理と、
前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する処理と、
を含み、コンピュータにより実行される名寄せ処理方法。
【請求項２】
前記生成処理が、
１の第２の属性値が展開されたレコードについては、当該レコードの第２の属性値の秘匿化値を第１の集合に追加する処理と、
前記複数の第２の属性値が展開されたレコードについては、当該複数の第２の属性値の秘匿化値を表す代表値を生成し、第２の集合に追加する追加処理と、
前記第１の集合のデータと前記第２の集合のデータとを含む前記秘匿名寄せ用データを生成する処理と、
前記代表値を、前記複数の第２の属性値の秘匿化値が対応付けられているレコードに対応付けて前記第２のデータ格納部に格納する処理と、
を含む請求項１記載の名寄せ処理方法。
【請求項３】
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和である
請求項２記載の名寄せ処理方法。
【請求項４】
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和であり、
前記追加処理が、
ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られるビット列である特徴値を生成し、
前記特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、前記第２の集合に、前記代表値と前記特徴値とのセットを追加し、
前記特徴値の全てのビットが０であるという条件を満たす場合に、前記複数の第２の属性値の秘匿化値を、前記第１の集合に追加する
処理を含む請求項２記載の名寄せ処理方法。
【請求項５】
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和であり、
前記追加処理が、
ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られる第１のビット列と、ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値０となっている第２のケースで１をセットし、当該第２のケース以外であれば０をセットすることで得られる第２のビット列との少なくともいずれかである特徴値を生成し、
前記第１のビット列及び前記第２のビット列のいずれもが全て０という条件を満たす場合に、前記複数の第２の属性値の秘匿化値を、前記第１の集合に追加し、
前記特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、前記第２の集合に、前記代表値と前記特徴値とのセットを追加する、
処理を含む請求項２記載の名寄せ処理方法。
【請求項６】
前記処理結果が、
前記第１の集合に対する処理結果として、マッチングがとれた前記第２の属性値の秘匿化値を含み、
前記第２の集合に対する処理結果として、前記代表値と、マッチングがとれた秘匿化値を特定するための処理結果ビット列とを含む第２の処理結果を含み、
前記削除処理が、
前記第２のデータ格納部において前記代表値が対応付けられていないレコードに対応付けられている秘匿化値のうち、マッチングがとれた第２の属性値の秘匿化値に含まれない秘匿化値を削除し、
前記第２のデータ格納部において前記代表値が対応付けられているレコードのうち、前記第２の処理結果に含まれる前記代表値が対応付けられているレコードについて、前記第２の処理結果に含まれる前記処理結果ビット列から特定される秘匿化値以外の秘匿化値を削除する
処理を含む請求項２乃至５のいずれか１つ記載の名寄せ処理方法。
【請求項７】
前記絞り込み処理が、
前記第２のデータ格納部において、複数の秘匿化値が対応付けられているレコードについての秘匿化値のうち、単一の秘匿化値が対応付けられているレコードについての秘匿化値と同一の秘匿化値を削除する処理を、削除される秘匿化値が無くなるか、複数の秘匿化値が対応付けられているレコードが無くなるまで繰り返す繰り返し処理と、
削除される秘匿化値が無くなった場合には、複数の秘匿化値が対応付けられている１のレコードについての秘匿化値を１つの秘匿化値に絞り込んだ後で、前記繰り返し処理を実施する処理と、
を含む
請求項２乃至６のいずれか１つ記載の名寄せ処理方法。
【請求項８】
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記代表値と、特定された前記秘匿化値とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する請求項３記載の名寄せ処理方法。
【請求項９】
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記代表値と、特定された前記秘匿化値と前記特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する請求項４記載の名寄せ処理方法。
【請求項１０】
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記第１のコンピュータから受信した秘匿名寄せ用データの前記第２の集合に含まれる前記特徴値が前記第１のビット列であれば、前記代表値と、特定された前記秘匿化値と前記代表値とセットになっている特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信し、
前記第１のコンピュータから受信した秘匿名寄せ用データの前記第２の集合に含まれる前記特徴値が前記第２のビット列であれば、前記代表値と、特定された前記秘匿化値のビットを反転させたビット列と前記代表値とセットとなっている前記特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する請求項５記載の名寄せ処理方法。
【請求項１１】
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開する処理と、
前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納する処理と、
前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成処理と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信する処理と、
前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する処理と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施する処理と、
前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する処理と、
を、コンピュータに実行させるためのプログラム。
【請求項１２】
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開し、前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納し、前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する第１の処理部と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信し、前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する通信部と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施し、前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する第２の処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データを秘匿しつつ名寄せ処理を実施するための技術に関する。
【背景技術】
【０００２】
複数のデータ提供者が保持するデータベースに登録された個人情報を統合して分析する場合に、同一人物の複数のレコードを紐付ける、いわゆる名寄せ処理が行われることになる。
【０００３】
この名寄せ処理において、現実のデータには個人を特定する情報（住所、氏名、年齢、性別など）の値に揺れがあったり、カナや漢字の違いなどがあるため、辞書やルールを利用して、類似度等により突き合わせを行うことが一般的である。類似度等を算出するためには、実データ同士を突き合わせることになるが、この処理を第三者など他者に委託すると、個人情報漏洩の恐れがある。
【０００４】
一方、単純にルールに従って又は暗号やハッシュ関数等によりデータベース内の個人情報を別の値に置換した上で、第三者等に名寄せ処理を委託すれば、個人情報漏洩の可能性は低くなる。しかしながら、カナ氏名と漢字氏名のようにデータベースにより表記が異なり名寄せができなかったり、性別や住所（県など）は置換した値の分布から元の値が推定される恐れがある。特に、日本語の場合には、氏名にカナ表記、漢字表記（異体字含む）など表記の揺れが極めて大きく、データベースによってはそのいずれかのみが登録されているケースがある。カナと漢字の対応は一般には多対多のため、単純に共通の値に置き換えて一致させるというような手法は採用できない。
【０００５】
なお、検索処理の高速化を目的とした従来技術には、以下のような技術が存在している。すなわち、索引作成処理において、拡張項の各属性名と属性値の組及び関数子に対してハッシュ値を求め、それらのハッシュ値の論理和演算により、検索対象となる集合の索引値と問い合わせの索引値とを予め作成しておく。索引作成処理で作成された集合の索引値と問い合わせの索引値との論理演算結果により、パターン照合の可能性のある拡張項を判定する拡張項判定処理を行った後、パターン照合処理を行う。このような技術は、個人情報を秘匿したまま名寄せ処理を行うことを想定しておらず、拡張項判定処理ではパターン照合の可能性のある拡張項が特定されるだけで、完全な絞り込みができるわけではない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３２４０９４号公報
【特許文献２】特開平６−１２４３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本技術の目的は、一側面によれば、個人情報を秘匿したまま名寄せ処理を可能にするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本技術に係る名寄せ処理方法は、（Ａ）名寄せ対象の複数のレコードを格納するデータベースに格納されている複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開する処理と、（Ｂ）複数のレコードの各々について、当該レコードについて展開された１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納する処理と、（Ｃ）複数のレコードについての第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成処理と、（Ｄ）秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信する処理と、（Ｅ）秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた第２の属性値の秘匿化値を含む処理結果を受信する処理と、（Ｆ）第２のデータ格納部において、処理結果に含まれる第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施する処理と、（Ｆ）第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する処理とを含む。
【発明の効果】
【０００９】
一側面によれば、個人情報を秘匿したまま名寄せ処理が可能になる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るシステムの構成例を示す図である。
【図２】図２は、コンピュータＡの機能ブロック図である。
【図３】図３は、コンピュータＡのデータベースに格納されるデータの一例を示す図である。
【図４】図４は、コンピュータＢのデータベースに格納されるデータの一例を示す図である。
【図５】図５は、第１データ格納部に格納される辞書データの一例を示す図である。
【図６】図６は、秘匿名寄せ処理サーバの機能ブロック図を示す図である。
【図７】図７は、秘匿名寄せ用データ生成処理の処理フローを示す図である。
【図８】図８は、集合Ｈ０の一例を示す図である。
【図９】図９は、第２データ格納部に格納されるデータの一例を示す図である。
【図１０】図１０は、代表値の算出法を説明するための図である。
【図１１】図１１は、特徴値算出処理の処理フローを示す図である。
【図１２】図１２は、特徴値算出法を説明するための図である。
【図１３】図１３は、秘匿名寄せ用データ生成処理の処理フローを示す図である。
【図１４】図１４は、集合Ｈ１の一例を示す図である。
【図１５】図１５は、秘匿名寄せ処理サーバにおけるマッチング処理の処理フローを示す図である。
【図１６】図１６は、集合Ｃ０について説明するための図である。
【図１７】図１７は、秘匿名寄せ処理サーバにおける第２データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、秘匿名寄せ処理サーバにおけるマッチング処理の処理フローを示す図である。
【図１９】図１９は、集合Ｃ１のデータの一例を示す図である。
【図２０】図２０は、対応付け特定処理の処理フローを示す図である。
【図２１】図２１は、代表値算出ありレコードに対するハッシュ値削除処理の処理フローを示す図である。
【図２２】図２２は、第２データ格納部に格納されるデータの一例を示す図である。
【図２３】図２３は、第２データ格納部に格納されるデータの一例を示す図である。
【図２４】図２４は、第２データ格納部に格納されるデータの一例を示す図である。
【図２５】図２５は、代表値算出ありレコードに対するハッシュ値削除処理の処理フローを示す図である。
【図２６】図２６は、第２データ格納部に格納されるデータの一例を示す図である。
【図２７Ａ】図２７Ａは、コンピュータＡから受信されるデータの一例を示す図である。
【図２７Ｂ】図２７Ｂは、コンピュータＢから受信されるデータの一例を示す図である。
【図２８】図２８は、第２の実施の形態における特徴値算出処理の処理フローを示す図である。
【図２９】図２９は、第３の実施の形態における秘匿名寄せ用データ生成処理の処理フローを示す図である。
【図３０】図３０は、第３の実施の形態におけるマッチング処理の処理フローを示す図である。
【図３１】図３１は、第３の実施の形態における特徴値算出ありのレコードに対するハッシュ値削除処理の処理フローを示す図である。
【図３２】図３２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
本実施の形態に係るシステム構成の概要を図１に示す。例えばインターネットなどのネットワーク１には、名寄せ処理の対象となるデータを保持するＡ社のコンピュータＡと、名寄せ処理の対象となるデータを保持するＢ社のコンピュータＢと、秘匿名寄せ処理を行う秘匿名寄せ処理サーバ３と、コンピュータＡとコンピュータＢとから受信した、名寄せ処理後のデータについて所定の分析処理を実施する分析サーバ５とが接続されている。
【００１２】
分析サーバ５は、同一人物についてのレコードには共通するＩＤが付与された状態でコンピュータＡ及びＢからデータを受信して処理するので、従来の分析処理と同様の分析処理を実施する。
【００１３】
コンピュータＡは、例えば図２に示すような構成を有する。コンピュータＡは、データベース１０１と、展開処理部１０２と、第１データ格納部１０３と、第２データ格納部１０４と、第３データ格納部１０５と、通信部１０６と、第４データ格納部１０７と、削除処理部１０８とを有する。
【００１４】
データベース１０１には、名寄せ対象のデータが登録されている。データベース１０１には、例えば図３に示すような氏名（漢字氏名）、住所（例えば都道府県＋区又は市）、性別、検査結果１及び２とが登録されているものとする。氏名、住所及び性別が、名寄せのキーとなる属性である。なお、図３に示すようなデータは、Ａ社のデータであって、Ｂ社のデータは、例えば図４に示すようなデータであるものとする。図４の例では、氏名（かな氏名）、住所（県）、性別、検査結果３及び４が登録されているものとする。このように、氏名及び住所については、表記法が異なっているので、そのままハッシュ値などで比較しても一致しない。
【００１５】
展開処理部１０２は、データベース１０１に格納されているデータに対して、第１データ格納部１０３に格納されているデータに基づき処理を行って、第２データ格納部１０４及び第３データ格納部１０５に処理結果を格納する。
【００１６】
なお、第１データ格納部１０３には、データベース１０１に格納されている、名寄せのキーとなる属性の属性値を展開するための辞書データ及びルールデータが格納されている。例えば、図５に模式的に示すように、読み及び異体字辞書のデータが格納されている。例えば、漢字に対して１又は複数の読み（かな）が対応付けられている場合や、異体字の変換についてのデータが登録されている。また、分析処理を一緒に行うＡ社及びＢ社との取り決めに基づくルールも登録されている。例えば、氏名については「かな」を用い、住所については都道府県までを用いるといったルールである。さらに、ハッシュ関数で用いる共通キーのデータをも、第１データ格納部１０３に格納しておく。本例では、Ｂ社のデータ（図４）に合わせるように、Ａ社のデータ（図３）を展開することを想定する。
【００１７】
通信部１０６は、第３データ格納部１０５に格納されているデータを秘匿名寄せ処理サーバ３に送信し、秘匿名寄せ処理サーバ３から処理結果を受信すると、第４データ格納部１０７に格納する。削除処理部１０８は、第４データ格納部１０７に格納されている、秘匿名寄せ処理サーバ３の処理結果を用いて、第２データ格納部１０４に登録されているデータに対して対応付け特定処理を実施する。この対応付け特定処理が完了すると、通信部１０６は、第２データ格納部１０４に格納されているデータを、分析サーバ５に送信する。
【００１８】
コンピュータＢは、コンピュータＡと同様の構成を有するが、データベース１０１に格納されているデータが異なっており、第１データ格納部１０３に格納されている辞書及びルールからすると、処理内容も異なる場合もある。
【００１９】
次に、図６に秘匿名寄せ処理サーバ３の構成を示す。秘匿名寄せ処理サーバ３は、通信部３１と、第１データ格納部３２と、第２データ格納部３４と、マッチング処理部３３とを有する。通信部３１は、コンピュータＡ及びＢからデータを受信すると、第１データ格納部３２に格納する。マッチング処理部３３は、以下で述べるような処理を実施して処理結果を第２データ格納部３４に格納する。通信部３１は、第２データ格納部３４に格納されている、マッチング処理部３３の処理結果を、コンピュータＡ及びＢに送信する。
【００２０】
次に、図７乃至図２７Ｂを用いて、図１に示したシステムの処理内容を説明する。まず、図７乃至図１４を用いて、コンピュータＡから秘匿名寄せ処理サーバ３に秘匿名寄せ用データを送信するまでの処理について説明する。まず、展開処理部１０２は、カウンタｉを１に初期化する（図７：ステップＳ１）。そして、展開処理部１０２は、データベース１０１から、ｉ番目のレコードのデータを読み出す（ステップＳ３）。なお、ここではｉ番目のレコードのデータを全て読み出すような形で説明するが、名寄せのキーとなる属性の属性値のみを読み出すようにしても良い。
【００２１】
そして、展開処理部１０２は、ｉ番目のレコードにおいて名寄せのキーとなる属性の属性値Ｒiが、複数の属性値に展開されるのか否かを判断する（ステップＳ５）。この際には第１データ格納部１０３に格納されている辞書データ及びルールから、例えば、氏名「池谷」を「いけたに」「いけや」といったように、属性値Ｒiが複数の属性値に展開されるか判断する。なお、ルールによっては、氏名だけではなく他の属性についても展開される可能性がある。従って、名寄せのキーとなる複数の属性について、複数の属性値に展開される場合、それらの全ての組み合わせが生成されることになる。例えば、名寄せのキーとなる属性が３つで、それぞれ４つの属性値に展開されると、３×４＝１２通りの属性値に展開される。
【００２２】
名寄せのキーとなる属性の属性値Ｒiが複数の属性値に展開されることがない場合には、展開処理部１０２は、属性値Ｒiのハッシュ値を算出して、他の属性の属性値と共に第２データ格納部１０４に格納し、当該ハッシュ値を集合Ｈ０に追加して、第３データ格納部１０５に格納する（ステップＳ７）。そして処理は端子Ｂを介して図１３のステップＳ３５に移行する。
【００２３】
ステップＳ７では、例えば第１データ格納部１０３に格納されている共通キーＫと、属性値Ｒiとをビット結合した結果を、周知のハッシュ関数に入力することで、ハッシュ値を得る。また、集合Ｈ０は、例えば図８に示すように、ハッシュ値（「２８」「１９」など）の集合である。
【００２４】
また、第２データ格納部１０４には、例えば図９に示すように、ハッシュ値と、以下で説明する代表値と特徴値とのセットと、氏名と、住所と、性別と、検査結果１及び２とが登録されるようになっている。ステップＳ７では、図９の例においては２番目のレコードのように、ハッシュ値と、読み出したレコードの属性値とが登録される。第２データ格納部１０４には、ハッシュ値と、以下で説明する代表値と特徴値とのセットとを登録するようにして、属性値そのものの代わりに、データベース１０１内における処理の対象となるレコードへのリンクなどを登録するようにしても良い。
【００２５】
一方、名寄せのキーとなる属性の属性値Ｒiが複数の属性値に展開される場合には、展開処理部１０２は、第１データ格納部１０３に格納されているデータ（辞書など）に基づき、属性値Ｒiの展開値（ｒ1，ｒ2，．．．ｒn）を取得する（ステップＳ９）。ここではｎ個の展開値が得られたものとする。また、展開処理部１０２は、第１データ格納部１０３に格納されている共通キーＫと、属性値Ｒiの各展開値とから、ハッシュ値（ｈ1，ｈ2，．．．，ｈn）を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１）。ｎ個のハッシュ値が得られる。
【００２６】
そして、展開処理部１０２は、ハッシュ値（ｈ1，ｈ2，．．．，ｈn）のビット単位の論理和である代表値ＯＨを算出し、例えばメインメモリ等の記憶装置に格納する（ステップＳ１３）。図１０に示すように、ｎ＝５の場合、ｈ1乃至ｈ5についてのビット単位の論理和を算出して、代表値ＯＨ＝「１０１１１１１１０１０１１」を算出する。
【００２７】
その後、展開処理部１０２は、算出したハッシュ値から特徴値生成処理を実施する（ステップＳ１５）。特徴値生成処理については、図１１及び図１２を用いて説明する。なお、特徴値生成処理が終了すると、処理は端子Ａを介して図１３のステップＳ３１に移行する。
【００２８】
展開処理部１０２は、カウンタｋを１に初期化する（図１１：ステップＳ２１）。そして、展開処理部１０２は、全ハッシュ値ｈiにおける最下位ビットからｋビット目のビット位置に、「１」が１つだけであれば、特徴値ＣＨにおける最下位ビットからｋビット目のビット位置に「１」を設定し、それ以外の場合には「０」を設定する（ステップＳ２３）。そして、展開処理部１０２は、ｋがハッシュ値のビット数以上となったか判断する（ステップＳ２５）。ｋがハッシュ値のビット数未満であれば、展開処理部１０２は、ｋを１インクリメントし（ステップＳ２７）、ステップＳ２３に戻る。一方、ｋがハッシュ値のビット数以上となった場合には、呼び出し元の処理に戻る。
【００２９】
図１０で示したのと同じ例であれば、図１２に示すように、最下位ビットから６ビット目については、ハッシュ値ｈ1乃至ｈnのうちハッシュ値ｈ3のみ「１」となっており、８ビット目については、ハッシュ値ｈ1のみ「１」となっており、９ビット目については、ハッシュ値ｈ5のみ「１」となっており、１０ビット目については、ハッシュ値ｈ4のみ「１」となっている。従って、特徴値ＣＨは、最下位ビットから６ビット目、８ビット目、９ビット目及び１０ビット目が「１」にセットされ、それ以外のビットに「０」がセットされたビット列が得られる。
【００３０】
図１３の処理の説明に移行して、展開処理部１０２は、ステップＳ１５で有効な特徴値を生成できたか判断する（ステップＳ３１）。図１１の処理では、どのビット位置でも「１」が１つのみという条件を満たさない場合があるので、特徴値ＣＨが全ビット「０」となってしまう場合がある。このように全ビット「０」の特徴値ＣＨの場合、以下の処理において論理積を演算してもその演算結果も「０」となるので意味のある演算ができない。従って、本実施の形態では、全ビット「０」の特徴値は有効な特徴値ではないと判断する。
【００３１】
有効な特徴値が得られた場合には、展開処理部１０２は、ハッシュ値（ｈ1，ｈ2，．．．，ｈn）と、代表値ＯＨ及び特徴値ＣＨのセットとを処理に係るレコードに対応付けて第２データ格納部１０４に格納すると共に、代表値ＯＨ及び特徴値ＣＨを集合Ｈ１に追加して第３データ格納部１０５に格納する（ステップＳ３３）。そして処理はステップＳ３５に移行する。
【００３２】
例えば、図１４に示すようなデータが、集合Ｈ１に追加される。図１４に示すように、代表値と特徴値のセットが、登録されるようになっている。このように集合Ｈ０（図８）と集合Ｈ１とは区別して取り扱われる。
【００３３】
また、図９に示した例では、第２データ格納部１０４に格納されるデータの第１レコードに示すように、複数のハッシュ値と、代表値ＯＨ及び特徴値ＣＨのセットとが登録される。
【００３４】
一方、有効な特徴値が生成されなかった場合には、展開処理部１０２は、ステップＳ１１で算出されたハッシュ値（ｈ1，ｈ2，．．．，ｈn）を第２データ格納部１０４に格納し、集合Ｈ０に追加して第３データ格納部１０５に格納する（ステップＳ３２）。そして処理はステップＳ３５に移行する。図９に示した例では、第２データ格納部１０４に格納されるデータの第５レコードに示すように、複数のハッシュ値が登録される。
【００３５】
ステップＳ３５に移行すると、展開処理部１０２は、カウンタｉを１インクリメントし（ステップＳ３５）、ｉがレコード数Ｎを超えたか判断する（ステップＳ３７）。ｉがレコード数Ｎ以下であれば、処理は端子Ｃを介して図７のステップＳ３に戻る。一方、ｉがレコード数Ｎを超えた場合には、展開処理部１０２は通信部１０６に処理完了を通知して、通信部１０６は、第２データ格納部１０４に格納されている集合Ｈ０のデータ（図８）及び集合Ｈ１のデータ（図１４）を含む秘匿名寄せ用データを生成し、秘匿名寄せ処理サーバ３に送信する（ステップＳ３９）。
【００３６】
以上のような処理を実施することで、有効な特徴値ＣＨが生成された場合には多数のハッシュ値の代わりに代表値ＯＨ及び特徴値ＣＨを送信することになる。従って、送信データ量が削減される。
【００３７】
なお、属性値の展開数が予め設定された閾値を超えた場合にのみ特徴値を算出するような処理に変形しても良い。
【００３８】
次に、図１５乃至図１９を用いて、秘匿名寄せ処理サーバ３の処理内容について説明する。なお、秘匿名寄せ処理サーバ３の通信部３１は、既に、コンピュータＡとコンピュータＢとから秘匿名寄せ用データを受信し、第１データ格納部３２に格納しているものとする。また、上でも述べたように、コンピュータＢでは、名寄せのキーとなる属性の属性値は展開されないでハッシュ値のみが算出されており、秘匿名寄せ用データには集合Ｈ０（コンピュータＢからのデータであるから以後Ｈ０ｂと表すものとする）のみが含まれているものとする。また、コンピュータＡからの秘匿名寄せ用データに含まれる集合Ｈ０をＨ０ａと表し、集合Ｈ１をＨ１ａと表すものとする。
【００３９】
秘匿名寄せ処理サーバ３のマッチング処理部３３は、第２データ格納部３４から、コンピュータＡからのデータＨ０ａ及びＨ１ａと、コンピュータＢからのデータＨ０ｂとを読み出す（図１５：ステップＳ４１）。そして、マッチング処理部３３は、集合Ｈ０ａと集合Ｈ０ｂとの共通集合Ｃ０を生成し、第２データ格納部３４に格納する（ステップＳ４３）。例えば、図１６に示すようなＨ０１ａ及びＨ０１ｂが取得された場合、ハッチングが付されている「１９」「５５」「３４」「２３」というハッシュ値が共通するハッシュ値Ｃ０として特定される。第２データ格納部３４に格納される共通集合Ｃ０のデータは、例えば図１７に示すようなハッシュ値の集合である。
【００４０】
そして、マッチング処理部３３は、集合Ｈ０ｂからＣ０に属するハッシュ値を除外して、新たな集合Ｈ０ｂを生成する（ステップＳ４５）。その後、マッチング処理部３３は、カウンタｉ及びｊをそれぞれ１に初期化する（ステップＳ４７）。
【００４１】
そして、マッチング処理部３３は、集合Ｈ１ａのｉ番目の代表値ｏｈiと、集合Ｈ０ｂのｊ番目のハッシュ値ｂjの論理積Ａ（＝ｏｈi AND ｂj）を算出する（ステップＳ４９）。処理は端子Ｄを介して図１８の処理に移行する。
【００４２】
図１８の処理の説明に移行して、マッチング処理部３３は、論理積Ａがハッシュ値ｂｊに一致しているか判断する（ステップＳ５１）。代表値ｏｈｉとの論理積が元の値ｂjと一致するということは、代表値ｏｈｉの元となるハッシュ値と一致する可能性があるということを表す。
【００４３】
論理積Ａがハッシュ値ｂjと一致する場合には、マッチング処理部３３は、集合Ｈ１ａのｉ番目の特徴値ｃｈｉとｂjとから復元要素値Ｓiを算出し、集合Ｃ１に代表値ｏｈｉと復元要素値Ｓiのセットを追加して、第２データ格納部３４に格納する（ステップＳ５３）。本実施の形態では、ｃｈｉとｂjとのビット単位の論理積にて、復元要素値Ｓi（＝ｃｈｉ AND ｂj）を生成する。そしてステップＳ５５に移行する。
【００４４】
例えば、図１９に示すような集合Ｃ１のデータが、第２データ格納部３４に格納される。図１９の例では、代表値と復元要素値とのセットが、１又は複数セット格納されている。
【００４５】
一方、論理積Ａがハッシュ値ｂjに一致しない場合又はステップＳ５３の後に、マッチング処理部３３は、ｊを１インクリメントし（ステップＳ５５）、ｊが集合Ｈ０ｂに含まれるハッシュ値の個数ｍを超えたか判断する（ステップＳ５７）。ｊがｍ以下であれば端子Ｅを介して図１５のステップＳ４９に戻る。
【００４６】
一方、ｊがｍを超えた場合には、マッチング処理部３３は、ｊを１に初期化すると共に、ｉを１インクリメントする（ステップＳ５９）。そして、マッチング処理部３３は、ｉが、集合Ｈ１ａに含まれる代表値及び特徴値のセット数であるｎを超えたか判断する（ステップＳ６１）。ｉがｎ以下であれば、端子Ｅを介してステップＳ４９に戻る。一方、ｉがｎを超えた場合には、マッチング処理部３３の処理は完了しているので、マッチング処理部３３は、通信部３１に処理完了を通知する。そうすると、通信部３１は、第２データ格納部３４に格納されている集合Ｃ０及びＣ１を含む処理結果をコンピュータＡに送信し、集合Ｃ０を含む処理結果を、コンピュータＢに送信する（ステップＳ６３）。
【００４７】
このような処理を実施すれば、共通するハッシュ値の集合Ｃ０に加えて、代表値で特定されるレコードに対して共通するハッシュ値候補が特徴値で秘匿化された形でコンピュータＡに返信されることになる。コンピュータＢについては、ここでは展開しないことが前提となっているので、共通するハッシュ値の集合Ｃ０が通知される。
【００４８】
次に、コンピュータＡが秘匿名寄せ処理サーバ３からの処理結果を受信した際の対応付け特定処理について図２０乃至図２７Ｂを用いて説明する。
【００４９】
コンピュータＡの通信部１０６は、秘匿名寄せ処理サーバ３から集合Ｃ０及びＣ１を含む処理結果を受信し、第４データ格納部１０７に格納する（図２０：ステップＳ７１）。そして、削除処理部１０８は、第４データ格納部１０７に格納されている集合Ｃ１のデータ及び第２データ格納部１０４に格納されているデータを用いて、代表値算出ありのレコードに対するハッシュ値削除処理を実施する（ステップＳ７３）。この代表値算出ありのレコードに対するハッシュ値削除処理については、図２１及び図２２を用いて説明する。
【００５０】
削除処理部１０８は、カウンタｉを１に初期化する（図２１：ステップＳ１０１）。そして、削除処理部１０８は、集合Ｃ１に含まれる代表値ｏｈｉに対応付けられている１又は複数の復元要素値Ｓを特定する（ステップＳ１０３）。同一代表値ｏｈｉについて複数の値セットが集合Ｃ１に含まれる場合があるので、その場合には複数の復元要素値Ｓを特定する。
【００５１】
そして、削除処理部１０８は、代表値ｏｈｉで第２データ格納部１０４を検索して当該代表値ｏｈｉを含むレコードを特定する（ステップＳ１０５）。また、削除処理部１０８は、カウンタｊを１に初期化する（ステップＳ１０７）。
【００５２】
その後、削除処理部１０８は、各復元要素値Ｓと、特定されたレコードに登録されているハッシュ値ｈjとのビット単位の論理積を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１０９）。復元要素値Ｓは、上で述べたように特徴値ｃｈｉと、代表値ｏｈｉの元となるハッシュ値と一致する可能性があるハッシュ値ｂjとの論理積演算結果である。このため、ｂjと一致するハッシュ値ｈjと復元要素値Ｓとの論理積演算の結果は非ゼロとなるが、ｂjと一致しないハッシュ値ｈjと復元要素値Ｓとの論理積演算の結果は全ビット０となる。
【００５３】
例えば、図１２に示す特徴値ＣＨ＝０００１１１０１０００００とハッシュ値ｈ４＝１００１０００００１０００との論理積演算結果Ｓは、「０００１０００００００００」である。この論理積演算結果Ｓとの論理積を算出した場合に、ハッシュ値ｈ１乃至ｈ５のうち非ゼロとなるのはハッシュ値ｈ４のみである。このように代表値ｏｈｉに対応付けられているハッシュ値のうち、非ゼロのハッシュ値を特定する。
【００５４】
その後、削除処理部１０８は、ｊが、特定されたレコードに登録されているハッシュ値の数を超えたか判断する（ステップＳ１１１）。ｊが、特定されたレコードに登録されているハッシュ値の数以下であれば、削除処理部１０８は、ｊを１インクリメントして（ステップＳ１１２）、処理はステップＳ１０９に戻る。一方、ｊが、特定されたレコードに登録されているハッシュ値の数を超えている場合には、削除処理部１０８は、算出した論理積の値が非ゼロとなったハッシュ値以外のハッシュ値を、第２データ格納部１０４において特定されたレコードから削除する（ステップＳ１１３）。復元要素値Ｓが複数の場合には、複数のハッシュ値の論理積演算結果が非ゼロと判断される場合がある。このような場合にはいずれかの論理積演算にて非ゼロが算出されたハッシュ値以外のハッシュ値を削除する。
【００５５】
そして、削除処理部１０８は、ｉを１インクリメントし（ステップＳ１１５）、ｉが、集合Ｃ１における代表値の数を超えたか判断する（ステップＳ１１７）。ｉが、集合Ｃ１における代表値の数以下である場合には、処理はステップＳ１０３に戻る。一方、ｉが集合Ｃ１における代表値の数を超えた場合には、処理は呼び出し元の処理に戻る。
【００５６】
図２２に示すように、第２データ格納部１０４に格納されている第１レコード及び第３レコードにおいて、代表値が登録されているものとする。第１レコードについては、ハッシュ値「８５」及び「２４」については、ステップＳ１０９で算出された論理積が非ゼロになったものとする。また、第３レコードについては、ハッシュ値「１９」及び「４７」については、ステップＳ１０９で算出された論理積が非ゼロになったものとする。
【００５７】
図２０の処理の説明に戻って、削除処理部１０８は、第２データ格納部１０４において、代表値算出無しのレコードに対して登録されているハッシュ値のうち、処理結果に含まれる集合Ｃ０に含まれないハッシュ値を削除する（ステップＳ７５）。図２３に示すように、第２レコード、第４レコード及び第５レコードには、代表値が対応付けられていない。これらのレコードについて算出されたハッシュ値は「２８」「１９」「５５」「８８」のうち、図１７に示した集合Ｃ０に含まれるハッシュ値「１９」「５５」「３４」「２３」に含まれないハッシュ値は、「２８」「８８」である。よって、「２８」「８８」が削除される。
【００５８】
その後、削除処理部１０８は、第２データ格納部１０４において、単一のハッシュ値が登録されているレコードの当該ハッシュ値を特定する（ステップＳ７７）。図２３の例では、第４レコード及び第５レコードについて登録されているハッシュ値「１９」及び「５５」が、ステップＳ７７で特定される。図２４では、丸で囲まれているハッシュ値である。
【００５９】
さらに、削除処理部１０８は、特定されたハッシュ値を、複数のハッシュ値が登録されているレコードから削除する（ステップＳ７９）。図２４に示すように、第３レコードの「１９」が、ステップＳ７７で特定された「１９」と一致するので、これを削除する。図２４の例では、ステップＳ７７で特定された「５５」が登録されたレコードは他に存在しない。そして、ステップＳ７９で１つでもハッシュ値を削除できた場合には（ステップＳ８１：Ｙｅｓルート）、処理はステップＳ７７に戻る。図２４の例では、ステップＳ７９で削除できたので、ステップＳ７７に戻る。
【００６０】
次にステップＳ７７を実施すると、ハッシュ値「１９」「４７」「５５」が特定されるが、ステップＳ７９では削除できるハッシュ値は存在していない。
【００６１】
一方、ステップＳ７９でハッシュ値を削除できなかった場合には（ステップＳ８１：Ｎｏルート）、処理は端子Ｆを介して図２５の処理に移行する。
【００６２】
図２５の処理の説明に移行して、削除処理部１０８は、第２データ格納部１０４において、複数のハッシュ値が登録されているレコードが存在しているか判断する（ステップＳ８３）。既にレコードに対してハッシュ値が１つのみ又は０個対応付けられている状態であれば、処理は完了する。一方、複数のハッシュ値が登録されているレコードが存在している場合には、削除処理部１０８は、複数のハッシュ値が登録されているレコードのうち１つのレコードを選択して、選択されたレコードにおける複数のハッシュ値のうち１つのハッシュ値をランダムに選択し、残余のハッシュ値を削除する（ステップＳ８５）。そして処理は端子Ｇを介して図２０のステップＳ７７に戻る。
【００６３】
図２４の例では、第１レコードについては２つのハッシュ値がまだ登録されているので、このレコードを選択し、そのうち「８５」をランダムに選択したものとする。そうすると、図２６に示すような状態になる。図２６の状態では、これ以上複数のハッシュ値が登録されているレコードは存在していないので、このまま処理が終了することになる。
【００６４】
このような処理を実施すれば、第２データ格納部１０４に格納されているハッシュ値を、レコードの共通ＩＤとして使用できるようになっている。
【００６５】
従って、削除処理部１０８は、通信部１０６に対して処理完了を通知すると、通信部１０６は、第２データ格納部１０４に格納されているハッシュ値と検査結果１及び２とを読み出して、分析サーバ５に送信する。
【００６６】
コンピュータＢについても同様の処理を実施する。但し、集合Ｃ１のデータは受信しないので、集合Ｃ１に関する処理は行われない。
【００６７】
したがって、分析サーバ５では、図２７Ａ及び図２７Ｂに示すようなデータが集められることになる。図２７Ａについては、図２６でハッシュ値が特定されなかった第２レコード以外のデータが抽出されている。ＩＤは、ハッシュ値である。図２７Ｂについては、図２７Ａと同じハッシュ値がＩＤとして列挙され、対応する検査結果３及び４のデータが含まれる。
【００６８】
これによって分析サーバ５は、同一人物について検査結果１乃至４のデータを用いて所定の分析を行うことができ、例えばコンピュータＡ及びＢに分析結果を配布することができる。
【００６９】
［実施の形態２］
第１の実施の形態では、特徴値算出処理（図１１）において、処理対象のレコードについての全ハッシュ値ｈiの各ビット位置について、「１」が１つだけであれば「１」をセットし、それ以外の場合には「０」をセットする処理を行っていた。しかしながら、図１１の処理だけであると、特徴的なハッシュ値が存在する場合であっても、全てのビット位置が０となってしまうケースが出現する。具体的には、特定のビット位置において、「０」が１つだけである場合である。簡単な具体例では、
１０１
１１０
０１１
という３つのハッシュ値が得られた場合図１１の処理を行うと、各ビット位置について、「１」の数は２つであるから「０００」が特徴値となってしまう。一方、「０」の数は各ビット位置について１個であるから、これに着目する方が好ましい。
【００７０】
そこで、例えば図２８に示すような特徴値算出処理を実施する。
【００７１】
展開処理部１０２は、カウンタｋを１に初期化する（図２８：ステップＳ１２１）。そして、全ハッシュ値ｈiにおける最下位ビットからｋビット目のビット位置に、「１」が１つだけであれば、特徴値ＣＨ１（以下の処理で生成される特徴値と区別するため特徴値ＣＨ１と示す）における最下位ビットからｋビット目のビット位置に「１」を設定し、それ以外の場合には「０」を設定する（ステップＳ１２３）。そして、展開処理部１０２は、ｋがハッシュ値のビット数以上となったか判断する（ステップＳ１２５）。ｋがハッシュ値のビット数未満であれば、展開処理部１０２は、ｋを１インクリメントし（ステップＳ１２７）、処理はステップＳ１２３に戻る。ここまでは図１１と同じである。
【００７２】
一方、ｋがハッシュ値のビット数以上となった場合には、展開処理部１０２は、特徴値ＣＨ１の全ビットが０であるか判断する（ステップＳ１２９）。特徴値ＣＨ１の少なくとも１ビットが「１」となっていれば、処理は呼び出し元の処理に戻る。図１１と同様に有効な特徴値が生成できた場合には、それで処理を終了する。
【００７３】
一方、特徴値ＣＨ１の全ビットが０である場合には、展開処理部１０２は、カウンタｋを１に初期化する（ステップＳ１３１）。そして、全ハッシュ値ｈiにおける最下位ビットからｋビット目のビット位置に、「０」が１つだけであれば、特徴値ＣＨ２における最下位ビットからｋビット目のビット位置に「１」を設定し、それ以外の場合には「０」を設定する（ステップＳ１３３）。そして、展開処理部１０２は、ｋがハッシュ値のビット数以上となったか判断する（ステップＳ１３５）。ｋがハッシュ値のビット数未満であれば、展開処理部１０２は、ｋを１インクリメントし（ステップＳ１３７）、処理はステップＳ１３３に戻る。一方、ｋがハッシュ値にビット数以上となった場合には、処理は呼び出し元の処理に戻る。
【００７４】
以上のような処理を実施すると、レコード毎に特徴値ＣＨ１又はＣＨ１及びＣＨ２が生成されることになる。なお、特徴値ＣＨ１のいずれか１ビットが「１」となっていても、特徴値ＣＨ２を併せて生成するようにしても良い。
【００７５】
また、特徴値ＣＨ２も全ビット０の場合には特徴値として用いることができないので、図１３のステップＳ３１では、特徴値ＣＨ１及びＣＨ２のいずれかにおいて少なくとも１ビットが「１」となっているか判断して、有効な特徴値が生成されているかを判断する。
【００７６】
また、この場合、ステップＳ３３では、特徴値ＣＨ１と特徴値ＣＨ２のいずれかを第２データ格納部１０４に登録し、集合Ｈ１に追加する。区別するために、例えば特徴値の先頭ビットなどに特徴値ＣＨ１と特徴値ＣＨ２とを区別するフラグを設けたり、別データとして特徴値を区別するためのデータを付加する。必ず特徴値ＣＨ１及び特徴値ＣＨ２を生成する場合には、両方共に、第２データ格納部１０４に登録し、集合Ｈ１に登録するようにしても良い。
【００７７】
本実施の形態では、秘匿名寄せ処理サーバ３においても図１８のステップＳ５３が変更になる。具体的には、特徴値ＣＨ１が少なくとも１ビット非ゼロであれば第１の実施の形態と同じであるが、特徴値ＣＨ２を用いて処理する場合には、ハッシュ値ｂjそのものではなく、全ビット反転させた「¬ｂj」と特徴値ＣＨ２との論理積を算出する。
【００７８】
同様に、コンピュータＡの削除処理部１０８は、図２１のステップＳ１０９において、復元要素値Ｓと、ハッシュ値ｈjの全ビットを反転させた「¬ｈj」との論理積演算を行う。この結果がゼロか非ゼロかで判断する。
【００７９】
このような処理を行うことで、より多くのケースでハッシュ値をまとめることができるようになる。
【００８０】
［実施の形態３］
上で述べた実施の形態において、コンピュータＡからの特徴値と、コンピュータＢからのハッシュ値（又は全ビット反転させたハッシュ値）との論理積である復元要素値を算出するのは、コンピュータＢに特定のハッシュ値が存在することを秘匿することが主目的である。しかし、名寄せした上で分析処理を共有するということを前提にするならば、ハッシュ値であれば他方に開示しても良い場合もある。この場合には、上で述べたような特徴値とハッシュ値の論理積の演算結果である復元要素値を用いないようにしても良い。
【００８１】
この場合には特徴値を算出しないでも良い。具体的には、図２９に示すような処理フローとなる。図７及び図１３に示した第１の実施の形態とは処理フローの構成が異なり、個別ステップについては一部のステップを除き同様であるから、同じ処理については同じステップ番号を付している。ここでは詳細な説明は省略し、異なる点のみを説明する。
【００８２】
図２９の処理フローでは、ステップＳ１５、ステップＳ３１及びステップＳ３２が削除されている。さらに、ステップＳ３３の代わりに、ステップＳ１４１が実行される。ステップＳ１４１では、展開処理部１０２は、ハッシュ値（ｈ1，ｈ2，．．．，ｈn）及び代表値ＯＨを処理に係るレコードに対応付けて第２データ格納部１０４に格納すると共に、代表値ＯＨを集合Ｈ１に追加して第３データ格納部１０５に格納する。
【００８３】
このような処理フローを実施すると、処理に係るレコードの属性値が複数の属性値に展開されても、ステップＳ３２のようにそれらのハッシュ値が集合Ｈ０に追加されることが無くなる。但し、属性値の個数が閾値以下であるか判断して閾値以下であればステップＳ３２の処理を実施して、閾値を超える場合には代表値ＯＨを用いるようにしても良い。
【００８４】
なお、本実施の形態では、秘匿名寄せ処理サーバ３の処理も変更される。具体的には、図３０に示すような処理フローとなる。第１の実施の形態との差は、ステップＳ５３のみであるから、それ以外については同じステップ番号を付与して、詳細な説明は省略する。すなわち、図１８のステップＳ５３の代わりにステップＳ１４３では、マッチング処理部３３が、復元要素値を算出することなく、集合Ｃ１に、代表値ｏｈｉとハッシュ値ｂjとのセットを追加する。
【００８５】
さらに、図２１に示した代表値算出ありのレコードに対するハッシュ値削除処理は、図３１に示すような処理となる。
【００８６】
まず、削除処理部１０８は、カウンタｉを１に初期化する（ステップＳ１５１）。そして、削除処理部１０８は、集合Ｃ１に含まれる代表値ｏｈｉに対応付けられている１又は複数のハッシュ値ｂを特定する（ステップＳ１５３）。
【００８７】
そして、削除処理部１０８は、代表値ｏｈｉで第２データ格納部１０４を検索して当該代表値ｏｈｉを含むレコードを特定する（ステップＳ１５５）。
【００８８】
その後、削除処理部１０８は、第２データ格納部１０４において、特定されたレコードに登録されているハッシュ値から、ステップＳ１５３で特定されたハッシュ値ｂ以外のハッシュ値を削除する（ステップＳ１５７）。
【００８９】
そして、削除処理部１０８は、ｉを１インクリメントし（ステップＳ１５９）、ｉが、集合Ｃ１における代表値の数を超えたか判断する（ステップＳ１６１）。ｉが、集合Ｃ１における代表値の数以下である場合には、処理はステップＳ１５３に戻る。一方、ｉが集合Ｃ１における代表値の数を超えた場合には、処理は呼び出し元の処理に戻る。
【００９０】
このようにすれば第１の実施の形態と同様の処理結果を得ることができるようになり、さらに処理量を減らすことができる。
【００９１】
以上の本技術の実施の形態を説明したが、本技術はこれらに限定されるものではない。例えば、機能ブロック図は一例であって、必ずしても実際のプログラムモジュール構成とは一致しない。また、データの格納態様も一例であって、必ずしも異なるデータ格納態様を採用しても良い。
【００９２】
さらに、処理フローについても同様の処理結果を得られるならば、ステップの実行順番を入れ替えたり、並列実行するようにしても良い。
【００９３】
なお、上で述べた各装置は、コンピュータ装置であって、図３２に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９４】
以上述べた本実施の形態をまとめると、以下のようになる。
【００９５】
本実施の形態に係る名寄せ処理方法は、（Ａ）名寄せ対象の複数のレコードを格納するデータベースに格納されている複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開するステップと、（Ｂ）複数のレコードの各々について、当該レコードについて展開された１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納するステップと、（Ｃ）複数のレコードについての第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成ステップと、（Ｄ）秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信するステップと、（Ｅ）秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた第２の属性値の秘匿化値を含む処理結果を受信するステップと、（Ｆ）第２のデータ格納部において、処理結果に含まれる第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施するステップと、（Ｆ）第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施するステップとを含む。
【００９６】
名寄せのキーとなる属性の属性値を、表記の揺れなどに対応して１又は複数の第２の属性値に展開するため、可能性のある属性値について秘匿化したままマッチングを行うことができるようになる。また、秘匿名寄せ処理を実施するコンピュータから処理結果を受信した後も、効果的に秘匿化値を絞り込むことができ、絞り込まれた後の秘匿化値を、複数のレコードの各々についての共通ＩＤとして用いることができるようになる。
【００９７】
また、上で述べた生成ステップが、（ｃ１）１の第２の属性値が展開されたレコードについては、当該レコードの第２の属性値の秘匿化値を第１の集合に追加するステップと、（ｃ２）複数の第２の属性値が展開されたレコードについては、当該複数の第２の属性値の秘匿化値を表す代表値を生成し、第２の集合に追加する追加ステップと、（ｃ３）第１の集合のデータと第２の集合のデータとを含む秘匿名寄せ用データを生成するステップと、（ｃ４）代表値を、複数の第２の属性値の秘匿化値が対応付けられているレコードに対応付けて第２のデータ格納部に格納するステップとを含むようにしても良い。
【００９８】
第２の属性値の数が多くなると送信すべきデータ量も多くなるので、このような代表値を生成すれば、送信すべきデータ量を削減することができるようになる。なお、所定の条件には、第２の属性値の数に関する条件が含まれる場合もある。
【００９９】
さらに、上で述べた代表値は、上記複数の第２の属性値の秘匿化値の論理和である場合もある。このようにすれば、複数の第２の属性値の第１の特徴を代表値に重畳させることができる。
【０１００】
また、上で述べた代表値が、複数の第２の属性値の秘匿化値の論理和である場合には、上で述べた追加ステップが、ビット単位で、複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られるビット列である特徴値を生成するステップと、特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、第２の集合に、代表値と特徴値とのセットを追加するステップと、特徴値の全てのビットが０であるという条件を満たす場合に、複数の第２の属性値の秘匿化値を、第１の集合に追加するステップとを含むようにしても良い。
【０１０１】
さらに、上で述べた代表値が、複数の第２の属性値の秘匿化値の論理和である場合には、上で述べた追加ステップが、ビット単位で、複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られる第１のビット列と、ビット単位で、複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値０となっている第２のケースで１をセットし、当該第２のケース以外であれば０をセットすることで得られる第２のビット列との少なくともいずれかである特徴値を生成するステップと、第１のビット列及び第２のビット列のいずれもが全て０という条件を満たす場合に、複数の第２の属性値の秘匿化値を、第１の集合に追加するステップと、特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、第２の集合に、代表値と特徴値とのセットを追加するステップとを含むようにしても良い。
【０１０２】
第２のビット列を導入することで、複数の第２の属性値の秘匿化値をそのまま送信するケースを削減できるようになる。すなわち、送信すべきデータ量を削減できる可能性が高まる。
【０１０３】
さらに、上で述べた処理結果が、第１の集合に対する処理結果として、マッチングがとれた第２の属性値の秘匿化値を含み、第２の集合に対する処理結果として、代表値と、マッチングがとれた秘匿化値を特定するための処理結果ビット列とを含む第２の処理結果を含む場合もある。このような場合には、上で述べた削除処理が、（ｅ１）第２のデータ格納部において代表値が対応付けられていないレコードに対応付けられている秘匿化値のうち、マッチングがとれた第２の属性値の秘匿化値に含まれない秘匿化値を削除する処理と、（ｅ２）第２のデータ格納部において代表値が対応付けられているレコードのうち、第２の処理結果に含まれる代表値が対応付けられているレコードについて、第２の処理結果に含まれる処理結果ビット列から特定される秘匿化値以外の秘匿化値を削除する処理とを含むようにしても良い。
【０１０４】
なお、処理結果ビット列から特定される秘匿化値は、上で述べた第１のビット列であれば、処理結果ビット列とのビット単位の論理積演算で非ゼロの演算結果が得られる秘匿化値であり、第２のビット列であれば、処理結果ビット列とのビット反転後のビット単位の論理積演算で非ゼロの演算結果が得られる秘匿化値である場合もある。
【０１０５】
さらに、上で述べた絞り込み処理が、（ｆ１）第２のデータ格納部において、複数の秘匿化値が対応付けられているレコードについての秘匿化値のうち、単一の秘匿化値が対応付けられているレコードについての秘匿化値と同一の秘匿化値を削除する処理を、削除される秘匿化値が無くなるか、複数の秘匿化値が対応付けられているレコードが無くなるまで繰り返す繰り返し処理と、（ｆ２）削除される秘匿化値が無くなった場合には、複数の秘匿化値が対応付けられている１のレコードについての秘匿化値を１つの秘匿化値に絞り込んだ後で、上記繰り返し処理を実施する処理とを含むようにしても良い。
【０１０６】
また、上で述べた秘匿名寄せ処理を実施するコンピュータが、（Ｇ１）第１のコンピュータから受信した秘匿名寄せ用データの第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定するステップと、（Ｇ２）第１のコンピュータから受信した秘匿名寄せ用データの前記第２の集合に含まれる代表値と、第２のコンピュータから受信した秘匿名寄せ用データの第１の集合に含まれる秘匿化値のうち共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定するステップと、（Ｇ３）代表値と、特定された秘匿化値とのセットと、共通する秘匿化値とを第１のコンピュータ及び第２のコンピュータに処理結果として送信するステップとを実行するようにしても良い。
【０１０７】
このようにすれば、第１のコンピュータ及び第２のコンピュータで秘匿化したまま共通ＩＤを絞り込むことができるようになる。
【０１０８】
また、上で述べた秘匿名寄せ処理を実施するコンピュータが、（Ｈ１）第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定するステップと、（Ｈ２）第１のコンピュータから受信した秘匿名寄せ用データの第２の集合に含まれる代表値と、第２のコンピュータから受信した秘匿名寄せ用データの第１の集合に含まれる秘匿化値のうち共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定するステップと、（Ｈ３）代表値と、特定された秘匿化値と特徴値とのビット単位の論理積演算結果とのセットと、共通する秘匿化値とを第１のコンピュータ及び第２のコンピュータに処理結果として送信するステップとを実行するようにしても良い。これによって第２のコンピュータからの秘匿化値をマスクした上で、第１のコンピュータで共通ＩＤを絞り込むことができるようになる。
【０１０９】
さらに、上で述べた秘匿名寄せ処理を実施するコンピュータが、（Ｊ１）第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定するステップと、（Ｊ２）第１のコンピュータから受信した秘匿名寄せ用データの第２の集合に含まれる代表値と、第２のコンピュータから受信した秘匿名寄せ用データの第１の集合に含まれる秘匿化値のうち共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定するステップと、（Ｊ３）第１のコンピュータから受信した秘匿名寄せ用データの第２の集合に含まれる特徴値が第１のビット列であれば、代表値と、特定された秘匿化値と代表値とセットになっている特徴値とのビット単位の論理積演算結果とのセットと、共通する秘匿化値とを第１のコンピュータ及び第２のコンピュータに処理結果として送信するステップと、（Ｊ４）第１のコンピュータから受信した秘匿名寄せ用データの第２の集合に含まれる特徴値が第２のビット列であれば、代表値と、特定された秘匿化値のビットを反転させたビット列と代表値とセットとなっている特徴値とのビット単位の論理積演算結果とのセットと、共通する秘匿化値とを第１のコンピュータ及び第２のコンピュータに処理結果として送信するステップとを実行するようにしても良い。このように第１のビット列及び第２のビット列が含まれる場合にも適切に処理結果を生成できるようになる。
【０１１０】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。
【０１１１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１２】
（付記１）
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開する処理と、
前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納する処理と、
前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成処理と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信する処理と、
前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する処理と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施する処理と、
前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する処理と、
を含み、コンピュータにより実行される名寄せ処理方法。
【０１１３】
（付記２）
前記生成処理が、
１の第２の属性値が展開されたレコードについては、当該レコードの第２の属性値の秘匿化値を第１の集合に追加する処理と、
前記複数の第２の属性値が展開されたレコードについては、当該複数の第２の属性値の秘匿化値を表す代表値を生成し、第２の集合に追加する追加処理と、
前記第１の集合のデータと前記第２の集合のデータとを含む前記秘匿名寄せ用データを生成する処理と、
前記代表値を、前記複数の第２の属性値の秘匿化値が対応付けられているレコードに対応付けて前記第２のデータ格納部に格納する処理と、
を含む付記１記載の名寄せ処理方法。
【０１１４】
（付記３）
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和である
付記２記載の名寄せ処理方法。
【０１１５】
（付記４）
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和であり、
前記追加処理が、
ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られるビット列である特徴値を生成し、
前記特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、前記第２の集合に、前記代表値と前記特徴値とのセットを追加し、
前記特徴値の全てのビットが０であるという条件を満たす場合に、前記複数の第２の属性値の秘匿化値を、前記第１の集合に追加する
処理を含む付記２記載の名寄せ処理方法。
【０１１６】
（付記５）
前記代表値が、前記複数の第２の属性値の秘匿化値の論理和であり、
前記追加処理が、
ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値１となっているケースで１をセットし、当該ケース以外であれば０をセットすることで得られる第１のビット列と、ビット単位で、前記複数の第２の属性値の秘匿化値のいずれかの秘匿化値のみがビット値０となっている第２のケースで１をセットし、当該第２のケース以外であれば０をセットすることで得られる第２のビット列との少なくともいずれかである特徴値を生成し、
前記第１のビット列及び前記第２のビット列のいずれもが全て０という条件を満たす場合に、前記複数の第２の属性値の秘匿化値を、前記第１の集合に追加し、
前記特徴値の少なくとも１ビットが０ではないという条件を満たす場合に、前記第２の集合に、前記代表値と前記特徴値とのセットを追加する、
処理を含む付記２記載の名寄せ処理方法。
【０１１７】
（付記６）
前記処理結果が、
前記第１の集合に対する処理結果として、マッチングがとれた前記第２の属性値の秘匿化値を含み、
前記第２の集合に対する処理結果として、前記代表値と、マッチングがとれた秘匿化値を特定するための処理結果ビット列とを含む第２の処理結果を含み、
前記削除処理が、
前記第２のデータ格納部において前記代表値が対応付けられていないレコードに対応付けられている秘匿化値のうち、マッチングがとれた第２の属性値の秘匿化値に含まれない秘匿化値を削除し、
前記第２のデータ格納部において前記代表値が対応付けられているレコードのうち、前記第２の処理結果に含まれる前記代表値が対応付けられているレコードについて、前記第２の処理結果に含まれる前記処理結果ビット列から特定される秘匿化値以外の秘匿化値を削除する
処理を含む付記２乃至５のいずれか１つ記載の名寄せ処理方法。
【０１１８】
（付記７）
前記絞り込み処理が、
前記第２のデータ格納部において、複数の秘匿化値が対応付けられているレコードについての秘匿化値のうち、単一の秘匿化値が対応付けられているレコードについての秘匿化値と同一の秘匿化値を削除する処理を、削除される秘匿化値が無くなるか、複数の秘匿化値が対応付けられているレコードが無くなるまで繰り返す繰り返し処理と、
削除される秘匿化値が無くなった場合には、複数の秘匿化値が対応付けられている１のレコードについての秘匿化値を１つの秘匿化値に絞り込んだ後で、前記繰り返し処理を実施する処理と、
を含む
付記２乃至６のいずれか１つ記載の名寄せ処理方法。
【０１１９】
（付記８）
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記代表値と、特定された前記秘匿化値とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する付記２記載の名寄せ処理方法。
【０１２０】
（付記９）
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記代表値と、特定された前記秘匿化値と前記特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する付記４記載の名寄せ処理方法。
【０１２１】
（付記１０）
前記秘匿名寄せ処理を実施するコンピュータが、
第１のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値と第２のコンピュータから受信した秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値とのうち共通する秘匿化値を特定し、
前記第１のコンピュータから受信した前記秘匿名寄せ用データの前記第２の集合に含まれる代表値と、前記第２のコンピュータから受信した前記秘匿名寄せ用データの前記第１の集合に含まれる秘匿化値のうち前記共通する秘匿化値を除外した秘匿化値の各々についてビット単位の論理積演算を実施し、当該論理積演算の結果が元の秘匿化値と同一ビット列となる秘匿化値を特定し、
前記第１のコンピュータから受信した秘匿名寄せ用データの前記第２の集合に含まれる前記特徴値が前記第１のビット列であれば、前記代表値と、特定された前記秘匿化値と前記代表値とセットになっている特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信し、
前記第１のコンピュータから受信した秘匿名寄せ用データの前記第２の集合に含まれる前記特徴値が前記第２のビット列であれば、前記代表値と、特定された前記秘匿化値のビットを反転させたビット列と前記代表値とセットとなっている前記特徴値とのビット単位の論理積演算結果とのセットと、前記共通する秘匿化値とを前記第１のコンピュータ及び前記第２のコンピュータに処理結果として送信する
処理を実施する付記５記載の名寄せ処理方法。
【０１２２】
（付記１１）
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開する処理と、
前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納する処理と、
前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する生成処理と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信する処理と、
前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する処理と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施する処理と、
前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する処理と、
を、コンピュータに実行させるためのプログラム。
【０１２３】
（付記１２）
名寄せ対象の複数のレコードを格納するデータベースに格納されている前記複数のレコードの各々について、当該レコードにおいて同一性の判断が行われる所定の属性の属性値を、第１のルールに従って又は属性値に対応する１又は複数の値を格納している第１のデータ格納部を用いて１又は複数の第２の属性値に展開し、前記複数のレコードの各々について、当該レコードについて展開された前記１又は複数の属性値を第２のルールに従って秘匿化し、当該レコードに対応付けて前記１又は複数の第２の属性値の秘匿化値を、第２のデータ格納部に格納し、前記複数のレコードについての前記第２の属性値の秘匿化値から秘匿名寄せ用データを生成する第１の処理部と、
前記秘匿名寄せ用データを、秘匿名寄せ処理を実施するコンピュータに送信し、前記秘匿名寄せ処理を実施するコンピュータから、マッチングがとれた前記第２の属性値の秘匿化値を含む処理結果を受信する通信部と、
前記第２のデータ格納部において、前記処理結果に含まれる前記第２の属性値の秘匿化値に含まれない秘匿化値に対する削除処理を実施し、前記第２のデータ格納部において、単一の秘匿化値が対応付けられているレコードについての秘匿化値を用いて、複数の秘匿化値が対応付けられているレコードについての秘匿化値の絞り込み処理を実施する第２の処理部と、
を有する情報処理装置。
【符号の説明】
【０１２４】
１０１  データベース
１０２  展開処理部
１０３  第１データ格納部
１０４  第２データ格納部
１０５  第３データ格納部
１０６  通信部
１０７  第４データ格納部
１０８  削除処理部
３１  通信部
３２  第１データ格納部
３３  マッチング処理部
３４  第２データ格納部
【図１】
0005761043.tif 000002
【図２】
0005761043.tif 000003
【図３】
0005761043.tif 000004
【図４】
0005761043.tif 000005
【図５】
0005761043.tif 000006
【図６】
0005761043.tif 000007
【図７】
0005761043.tif 000008
【図８】
0005761043.tif 000009
【図９】
0005761043.tif 000010
【図１０】
0005761043.tif 000011
【図１１】
0005761043.tif 000012
【図１２】
0005761043.tif 000013
【図１３】
0005761043.tif 000014
【図１４】
0005761043.tif 000015
【図１５】
0005761043.tif 000016
【図１６】
0005761043.tif 000017
【図１７】
0005761043.tif 000018
【図１８】
0005761043.tif 000019
【図１９】
0005761043.tif 000020
【図２０】
0005761043.tif 000021
【図２１】
0005761043.tif 000022
【図２２】
0005761043.tif 000023
【図２３】
0005761043.tif 000024
【図２４】
0005761043.tif 000025
【図２５】
0005761043.tif 000026
【図２６】
0005761043.tif 000027
【図２７Ａ】
0005761043.tif 000028
【図２７Ｂ】
0005761043.tif 000029
【図２８】
0005761043.tif 000030
【図２９】
0005761043.tif 000031
【図３０】
0005761043.tif 000032
【図３１】
0005761043.tif 000033
【図３２】
0005761043.tif 000034