(57)【要約】【課題】秘匿化後のデータを活用し易くするための技術を提供する。【解決手段】開示の技術は、第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応付けて保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出ステップと、抽出された、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを外部装置に送信するステップとを含む。【選択図】図１３
2014066831.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応付けて保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出ステップと
抽出された、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを外部装置に送信するステップと
をコンピュータに実行させるためのデータ処理プログラム。
【請求項２】
前記抽出ステップにおいて、前記データ格納部から、内容の少なくとも一部が一致する前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する
請求項１に記載のデータ処理プログラム。
【請求項３】
前記第１の秘匿化データは、前記第１のデータとは無関係に、かつ前記第１の秘匿化データに基づいて前記第１のデータが一意に特定できるように生成されたデータであり、
前記第２の秘匿化データは、前記第２のデータとは無関係に、かつ前記第２の秘匿化データに基づいて前記第２のデータが一意に特定できるように生成されたデータである
請求項１又は２に記載のデータ処理プログラム。
【請求項４】
前記第１のデータは、第１のレコードに含まれる第１の項目の値であり、
前記第２のデータは、第２のレコードに含まれる第２の項目の値であり、
前記第１の項目又は前記第２の項目を用いて表される条件を含む、前記第１のレコード又は前記第２のレコードを要求する問い合わせを受け付けるステップをさらに実行させる
請求項１ないし３のいずれか１項に記載のデータ処理プログラム。
【請求項５】
秘匿化前の値が同一である、第１の秘匿化データ及び第２の秘匿化データの組み合わせを受信するステップと、
前記第１のデータを前記第１の秘匿化データで置き換えた第１の秘匿化レコードと、前記第２のデータを前記第２の秘匿化データで置き換えた第２の秘匿化レコードとを保持する第２のデータ格納部から、受信した前記組み合わせを用いて、前記第１の秘匿化レコード若しくは前記第２の秘匿化レコードを抽出し、又は前記第１の秘匿化レコード及び前記第２の秘匿化レコードを集計するステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【請求項６】
第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部と、
前記データ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを抽出し、抽出された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出部と
を有するデータ処理装置。
【請求項７】
第１のレコードに含まれる第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のレコードに含まれる第２のデータと、当該第２の
データを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部と、
前記データ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを抽出し、抽出された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出部と
を有する第１のデータ処理装置と、
前記第１のレコードのうち前記第１のデータを前記第１の秘匿化データで置き換えた第１の秘匿化レコードと、前記第２のレコードのうち前記第２のデータを前記第２の秘匿化データで置き換えた第２の秘匿化レコードとを保持する第２のデータ格納部と、
前記第１のデータ処理装置から前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを受信し、当該組み合わせを用いて前記第１の秘匿化レコードと前記第２の秘匿化レコードとを処理する処理部と
を有する第２のデータ処理装置と
を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿化されているデータを活用するための技術に関する。
【背景技術】
【０００２】
顧客等の個人情報を保持するシステムにおいて、情報漏えいを抑止するための技術が存在する。例えば、システムが個人情報を含むデータを活用するような場合には、個人情報にかかわる部分を元のデータとは異なるデータに置き換えることにより秘匿化したデータを用いることがある。
【０００３】
また、あるユーザのデータを他のユーザに伝達するシステムにおいて、保持するデータに基づいて異なるデータを生成し、生成したデータを用いて、開示するための情報をさらに生成する技術が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００９／０７８１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データを活用するために、システムが、対象のデータを取捨選択したり、グループ分けしたりする処理を行うことがある。例えば、システムが、多くのレコードを含むテーブルからある条件に合致するレコードを絞り込んで集計したり、異なるテーブルに格納された複数のレコードを結合したり、重複したレコードを削除したりする処理を行う。
【０００６】
しかしながら、レコードの一部の内容（値）が、元の内容とは無関係な内容で置き換えられることによって秘匿化されている場合、システムが、複数のレコード間の関係を特定できないことがある。例えば、テーブルに格納されている複数のレコードが同一人に関するものであるか否か、システムが特定できなければ、データを活用する上で不都合が生ずる。すなわち、秘匿化されている値に基づいてデータの絞り込みを行ったり、秘匿化された値をキーとしてレコードを結合したりする処理を、システムが実施できなくなるという問題がある。
【０００７】
そこで、１つの側面では、本発明は、秘匿化後のデータを活用し易くする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の技術の一側面によれば、第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応付けて保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出ステップと、抽出された、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを外部装置に送信するステップとをコンピュータに実行させるためのデータ処理プログラムが提供される。
【発明の効果】
【０００９】
秘匿化後のデータを活用し易くする技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るシステム構成の一例を示す図である。
【図２】図２は、プライベートサーバ１の機能ブロック図の一例を示す図である。
【図３】図３は、秘匿化サーバ２の機能ブロック図の一例を示す図である。
【図４】図４は、分析サーバ３の機能ブロック図の一例を示す図である。
【図５】図５は、情報処理装置の装置構成の一例を示す図である。
【図６】図６は、生データテーブルに保持されているデータの一例を示す図である。
【図７】図７は、秘匿化処理の処理フローの一例を示す図である。
【図８】図８は、秘匿管理データ格納部２０４に格納される秘匿管理テーブルの一例を示す図である。
【図９】図９は、秘匿化後データテーブルに登録されるデータの一例を示す図である。
【図１０】図１０は、生データテーブルに保持されているデータの一例を示す図である。
【図１１】図１１は、秘匿化後データテーブルに保持されるデータの一例を示す図である。
【図１２】図１２は、秘匿管理テーブルに登録されるデータの一例を示す図である。
【図１３】図１３は、分析処理の処理フローの一例を示す図である。
【図１４】図１４は、秘匿化後データの組み合わせの一例を示す図である。
【図１５】図１５は、結合された秘匿化後データの一例を示す図である。
【図１６】図１６は、生データの一例を示す図である。
【図１７】図１７は、生データの一例を示す図である。
【図１８】図１８は、生データの一例を示す図である。
【図１９】図１９は、秘匿化後データテーブルの一例を示す図である。
【図２０】図２０は、秘匿化後データテーブルの一例を示す図である。
【図２１】図２１は、秘匿化後データテーブルの一例を示す図である。
【図２２】図２２は、秘匿管理テーブルの一例を示す図である。
【図２３】図２３は、秘匿化後データの組み合わせの一例を示す図である。
【図２４】図２４は、処理結果の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、一実施形態に係るシステムについて説明する。以下の実施形態の構成は例示であり、本発明に係るシステムは、実施形態の構成には限定されない。
【００１２】
図１に、実施の形態に係るシステム構成の一例を示す。本実施の形態に係るシステムは、複数のプライベートサーバ１（図１では、１ａ，１ｂ・・・）と、秘匿化サーバ２と、分析サーバ３とを有する。プライベートサーバは、例えば業務データが登録される業務データベース（ＤＢ）を有する。なお、本実施の形態において、業務データとは、何らかの業務において蓄積した、例えば個人情報のような、外部に公開したくない内容を含むデータをいう。なお、個人情報とは、第三者に知られると個人のプライバシーが侵害されるおそれがある情報をいうものとする。本実施の形態においては、秘匿化されていない業務データを、生データと記す。
【００１３】
プライベートサーバ１と秘匿化サーバ２とは、ネットワークを介して接続されている。秘匿化サーバ２は、生データをプライベートサーバ１から受信する。そして、秘匿化サーバ２は、受信した生データのうち例えば個人情報を、異なるデータに置き換えることにより秘匿化し、秘匿化後の業務データを生成する。秘匿化後の業務データは、秘匿化された個人情報と、秘匿化されていないその他の情報とを含む。
【００１４】
秘匿化サーバ２と分析サーバ３とは、ネットワークを介して接続されている。分析サーバ３は、秘匿化後の業務データを秘匿化サーバ２から受信する。そして、秘匿化後の業務データを用いて、例えばデータマイニングのような分析処理を行う。また、分析サーバ３は、秘匿化サーバ２に、秘匿化されたデータ間の関連性を示すデータを要求し、秘匿化サーバ２から、関連性のあるデータの組み合わせを示す情報を取得することもある。
【００１５】
なお、図１の例では複数のプライベートサーバ１を示したが、プライベートサーバ１は１つであってもよい。また、秘匿化サーバ２及び分析サーバ３のうち少なくとも一方を複数有する構成にして、複数の秘匿化サーバ２又は複数の分析サーバ３が並列に処理を行うようにしてもよい。
【００１６】
図２に、プライベートサーバ１の機能ブロック図の一例を示す。プライベートサーバ１は、生データを保持する生データ格納部１０１と、送信部１０２とを有する。生データ格納部１０１は、例えば個人情報を含む業務データを保持する。また、送信部１０２は、生データ格納部１０１と接続されている。そして、送信部１０２は、生データ格納部１０１から生データを読み出し、秘匿化サーバ２に送信する。なお、プライベートサーバ１が、図示していない処理部を含むようにして、処理部によって行われる業務処理の中で、生データが生データ格納部１０１に格納されるようにしてもよい。
【００１７】
図３に、秘匿化サーバ２の機能ブロック図の一例を示す。秘匿化サーバ２は、受信部２０１と、データ格納部２０２と、秘匿化処理部２０３と、秘匿管理データ格納部２０４と、送信部２０５と、データ抽出部２０６とを有する。受信部２０１は、プライベートサーバ１から生データを受信し、データ格納部２０２に格納する。データ格納部２０２は、生データ、秘匿化後の業務データ、生データのうち秘匿化する対象の項目を示す設定データ等を格納する。秘匿化処理部２０３は、データ格納部２０２から生データ及び設定データを読み出し、生データのうち、秘匿化する項目の内容を元のデータとは異なるデータに置き換えることにより秘匿化後の業務データを生成する。そして、秘匿化処理部２０３は、秘匿化後の業務データをデータ格納部２０２に格納するとともに、秘匿化前のデータと秘匿化後のデータとを対応付けて秘匿管理データ格納部２０４に格納する。また、送信部２０５は、データ格納部２０２から秘匿化後の業務データを読み出し、分析サーバ３に送信する。
【００１８】
さらに、本実施の形態では、受信部２０１は、例えば生データ又は秘匿化後の業務データに対するデータ抽出等の処理要求を、分析サーバ３から受信する。データ抽出部２０６は、処理要求に含まれる処理の条件を分析し、条件に含まれる項目（列とも表す）等を抽出する。そして、例えば、抽出された項目に登録されている秘匿化前の内容が同一であるレコードの組み合わせを、秘匿管理データ格納部２０４から特定し、特定されたレコードにおいて秘匿化前のデータに対応付けて保持されている秘匿化後のデータの組み合わせを抽出する。そして、送信部２０５は、抽出された秘匿化後のデータの組み合わせを、分析サーバ３に送信する。
【００１９】
図４に、分析サーバ３の機能ブロック図の一例を示す。分析サーバ３は、受信部３０１と、データ格納部３０２と、入力部３０３と、送信部３０４と、分析処理部３０５と、出力部３０６とを有する。受信部３０１は、秘匿化サーバ２から、秘匿化後の業務データや、対応関係のある秘匿化後データの組み合わせを受信し、データ格納部３０２に格納する。また、入力部３０３は、例えばユーザから、業務データを分析するための命令の入力を受け付け、データ格納部３０２に格納する。この命令は、例えばＳＱＬの問い合わせ（クエリ）によって入力される。なお、この命令は、他の端末装置から受信部３０１を介して入力されるようにしてもよい。この場合、入力部３０３を設けないようにすることもできる。また、送信部３０４は、入力された命令に基づいて、秘匿化サーバ２に、対応関係の
ある秘匿化後のデータの組み合わせの送信を求める処理要求を送信する。そして、分析処理部３０５は、入力された命令、データ格納部３０２に格納されている秘匿化後の業務データ、及び対応関係のある秘匿化後のデータの組み合わせに基づいて、業務データの分析を行い、分析結果をデータ格納部３０２に格納する。また、出力部３０６は、データ格納部３０２から、秘匿化後の業務データやその分析結果等を出力する。なお、出力部３０６がデータを出力する代わりに、送信部３０４がデータを他の端末装置に送信するようにしてもよい。この場合、出力部３０６を設けないようにすることもできる。
【００２０】
図５に、情報処理装置の装置構成の一例を示す。プライベートサーバ１、秘匿化サーバ２、及び分析サーバ３は情報処理装置であり、ＣＰＵ（Central Processing Unit）１０
０１、主記憶装置１００２、補助記憶装置１００３、通信ＩＦ（Interface）１００４、
入出力ＩＦ（Interface）１００５、ドライブ装置１００６、通信バス１００７を備えて
いる。ＣＰＵ１００１は、プログラムを実行することにより本実施の形態で説明する処理を行う。主記憶装置は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等である。主記憶装置１００２は、ＣＰＵ１００１が読み出したプログラムやデータをキャッシュしたり、ＣＰＵの作業領域を展開したりする。補助記憶装置１００３は、例えばＨＤＤ（Hard-disk Drive）やＳＳＤ（Solid State Drive）、フラッシュメモリ等である。補助記憶装置１００３は、データベースを含む様々なデータや、ＣＰＵ１００１により実行されるプログラムを記憶する。通信ＩＦ１００４は、他のコンピュータ装置との間でデータを送受信する。通信ＩＦ１００４は、例えば有線又は無線のネットワークカードである。入出力ＩＦ１００５は、キーボードやマウス等と接続され、ユーザから入力を受け付けたり、ディスプレイやプリンタ等と接続され、データを出力したりする。また、入出力ＩＦは、タッチパネルのように、入力及び出力を行う装置と接続される場合もある。ドライブ装置１００６は、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray Disc）等に記録されたデータを読み出す。以上のような構成要素が、通信バス１００７で接続されている。なお、これらの構成要素は複数設けられていてもよい。ＣＰＵ１００１により実行されるプログラムは、例示したディスクや、ＵＳＢメモリ等のフラッシュメモリ、その他の可搬性のある記録媒体を介して提供されるようにしてもよい。そして、ＣＰＵ１００１が、プログラムを実行することにより、情報処理装置をプライベートサーバ１、秘匿化サーバ２又は分析サーバ３として働かせる。
【００２１】
＜秘匿化処理＞
次に、生データの一部又は全部を秘匿化する秘匿化処理について説明する。なお、予めプライベートサーバ１の送信部１０２は、生データ格納部１０１に格納された生データを読み出し、読み出した生データを秘匿化サーバ２に送信しているものとする。一方、秘匿化サーバ２の受信部２０１は、プライベートサーバ１から生データを受信し、受信した生データをデータ格納部２０２に保持しているものとする。データ格納部２０２には、例えば図６に示すような生データテーブル（以下、「集合Ａ」とも表す）が格納されており、受信した生データが登録されているものとする。また、データ格納部２０２には、図示していない設定テーブルが格納されており、設定テーブルには、生データテーブル（例えば「集合Ａ」）に関連付けて、秘匿化する対象の列（項目）を示す情報（例えば「ＩＤ」）が登録されているものとする。
【００２２】
図６に、集合Ａに保持されているデータの一例を示す。集合Ａは、ＩＤ、性別、金額、利用回数及びその他の列を含む。生データテーブルは、様々な業務データを保持するテーブルであり、図６に例示した集合Ａには限られない。このような生データテーブルの各々を、本実施の形態では「データ群」とも表す。
【００２３】
図７に、秘匿化処理の処理フローを示す。まず、秘匿化サーバ２の秘匿化処理部２０４
は、設定テーブルから、生データテーブルに関連付けて登録されている、秘匿化する対象の列を示す情報を読み出す（図７：Ｓ１）。本実施の形態では、生データテーブル「集合Ａ」に関連付けて、秘匿化する対象の列を示す情報「ＩＤ」が登録されており、これが読み出されるものとする。すなわち、本実施の形態では、図６に示した生データテーブル「集合Ａ」に登録されているレコードの内容のうち、列「ＩＤ」に登録されているデータ（内容）を秘匿化する。
【００２４】
次に、秘匿化処理部２０３は、データ格納部２０２に格納されている生データテーブルから、未処理のレコードを１件読み出す（Ｓ２）。例えば、図６に示した集合Ａから１行目のレコードが読み出される。
【００２５】
そして、秘匿化処理部２０３は、レコード数を１インクリメントする（Ｓ３）。この「レコード数」は、例えば、集合Ａのレコード数を１からカウントされ、集合Ａについての秘匿化処理が終了するまでの間、データ格納部２０２に一時的に保持されるものとする。
【００２６】
その後、秘匿化処理部２０３は、秘匿化後のデータを生成する（Ｓ４）。本実施の形態では、レコードを読み出した順序、すなわちレコードの位置に基づいて秘匿化後のデータを生成する。秘匿化前のデータ（すなわち、内容）とは無関係に秘匿化後のデータを生成するため、第三者にとっては秘匿化後のデータから秘匿化前のデータを類推することが難しくなる。また、集合Ａにおけるレコード位置に基づいて秘匿化後のデータを生成するため、秘匿化後のデータは、集合Ａにおいて秘匿化対象の列に登録されるデータの中で一意な値になる。よって、秘匿化前のデータと秘匿化後のデータとの対応関係を保持しておけば、秘匿化後のデータから秘匿化前のデータが一意に特定できる。ここでは、Ｓ３でインクリメントされたレコード数を用いて、「Ａ．Ｒｅｃ１」という秘匿化後のデータが生成されるものとする。
【００２７】
なお、秘匿化後のデータを生成する方法は、レコードの位置に基づいて生成する方法には限定されない。例えば、秘匿化処理部２０３が、秘匿化対象の列に登録されるデータの中で一意となるような、ランダムな文字列を生成するようにしてもよいし、レコードによって適用する秘匿方法を変更するようにしてもよい。例えば、ランダムな文字列を生成する方法を採用しても、秘匿化後のデータから秘匿化前のデータを類推することは困難になる。なお、ランダムに生成した文字列が、すでに処理されたレコードに係る秘匿化後のデータのいずれとも異なることを確認したうえで、秘匿化後のデータとして採用するようにすれば、秘匿化後のデータから秘匿化前のデータが一意に特定できることが保証される。
【００２８】
その後、秘匿化処理部２０３は、秘匿化前のデータと秘匿化後のデータとを対応付けて、秘匿管理データ格納部２０４に格納する（Ｓ５）。
【００２９】
図８に、秘匿管理データ格納部２０４に格納される秘匿管理テーブルの一例を示す。図８の秘匿管理テーブルは、データ群、秘匿項目名、秘匿化前データ及び秘匿化後データの列を有する。そして、各列の内容には、それぞれ、処理対象の生データテーブルを示す「集合Ａ」、秘匿化対象の列を示す「ＩＤ」、秘匿化前のデータである「User-001」、Ｓ４において生成された秘匿化後のデータ「Ａ．Ｒｅｃ１」が登録されている。
【００３０】
また、秘匿化処理部２０３は、Ｓ２で読み出したレコードのうち、秘匿化前のデータを秘匿化後のデータに置き換えて、秘匿化後のレコードを生成し、データ格納部２０２の秘匿化後データテーブルに格納する（Ｓ６）。
【００３１】
図９に、秘匿化後データテーブルに登録されるデータの一例を示す。秘匿化後データテーブルは、生データテーブルと同一の列を有する。Ｓ６において、図５の１行目に示した
レコードを処理する場合、秘匿化前のデータ「User-001」が秘匿化後のデータ「Ａ．Ｒｅｃ１」に置き換えられ、図９の１行目に示すようなレコードが生成される。秘匿化対象でない列に登録されるデータは、それぞれ生データテーブルに登録されているデータと同様である。
【００３２】
その後、秘匿化処理部２０３は、生データテーブルに未処理のレコードが存在するか判断する（Ｓ７）。未処理のレコードが存在すれば（Ｓ７：Ｙｅｓ）、Ｓ２の処理に戻る。そして、Ｓ２〜Ｓ６までの処理を繰り返し、例えば図６の２行目に示すレコードから、図８の２行目に示すレコード及び図９の２行目に示すレコードを生成し、データ格納部２０２に格納する。一方、未処理のレコードが存在しなければ（Ｓ７：Ｎｏ）、Ｓ８の処理に遷移する。
【００３３】
Ｓ７において未処理のレコードが存在しないと判断された場合、秘匿化サーバ２の送信部２０５は、秘匿化後データテーブルに登録されている秘匿化後のレコードを読み出し、分析サーバ３に送信する（Ｓ８）。以上で、秘匿化処理が終了する。
【００３４】
上で述べたように、本実施の形態では、秘匿化前のデータ（すなわち、登録されている内容）とは無関係に秘匿化後のデータを生成するため、秘匿化後のデータから秘匿化前のデータを類推することは難しい。このような秘匿化後のデータを含む秘匿化後のレコードが、分析サーバ３に送信される。
【００３５】
＜分析処理＞
次に、分析サーバ３が、秘匿化後の業務データを分析する処理について説明する。分析サーバ３は、秘匿化後の業務データを用いて、秘匿化されていない項目について、データを抽出したり集計したりすることはできる。すなわち、図９のテーブルから、例えば秘匿化されていない「金額」の列に登録された値を集計するような処理を行うことはできる。しかし、「ＩＤ」の列は秘匿化されているため、例えば、図９のテーブルから、「ＩＤ」の列に同じ値が登録されているレコードごとに「金額」の列に登録された値を集計するような処理を行うことはできない。
【００３６】
このような処理を可能にするため、分析サーバ３は、分析処理の中で、秘匿化前のデータが同一である秘匿化後データの組み合わせを秘匿化サーバ２に問い合わせることがある。なお、予め分析サーバ３の受信部３０１は、秘匿化サーバ２から秘匿化後のレコードを受信し、データ格納部３０２の秘匿化後データテーブルに登録しているものとする。例えば、図９に示した秘匿化後の業務データ「集合Ａ」が登録されている。また、本実施の形態では、「集合Ａ」とは異なる生データテーブル「集合Ｂ」の一部を秘匿化した秘匿化後のレコードも用いられるものとする。
【００３７】
図１０に、生データテーブル「集合Ｂ」に保持されているデータの一例を示す。集合Ｂは、支店番号、Ｉｄ、金額、種別１、及び種別２の列を含む。また、「集合Ｂ」が有する項目のうち秘匿化対象の項目は、「Ｉｄ」であり、図１０に示した生データから図１１に示すような秘匿化後の業務データが生成される。
【００３８】
図１１に、秘匿化後データテーブルに保持されるデータの一例を示す。集合Ｂを秘匿化したレコードは、「Ｉｄ」に秘匿化後のデータが登録されている。また、秘匿化対象でない列には、図１０と同じデータが登録されている。そして、秘匿化前の「Ｉｄ」の列に登録されているデータと秘匿化後の「Ｉｄ」の列に登録されているデータとの対応関係を表すデータが、秘匿管理テーブルに登録されている。
【００３９】
図１２に、秘匿管理テーブルに登録されるデータの一例を示す。図１２の秘匿管理テー
ブルは、データ群、秘匿化対象項目、秘匿化前データ、及び秘匿化後データの列を有する。本実施の形態では、集合Ａ及び集合Ｂに含まれる秘匿化前後のデータが１つのテーブルに登録されているものとする。以上のような前提のもと、分析処理について説明する。
【００４０】
図１３に、分析処理の処理フローを示す。まず、分析サーバ３の入力部３０３は、入出力ＩＦを介して、分析処理を実行するための処理要求をユーザから受け、データ格納部３０２に格納する。例えば、ユーザは以下に示すようなＳＱＬの問い合わせ（クエリ）を入力する。
ｓｅｌｅｃｔ  集合Ａ．ＩＤ，集合Ａ．金額，集合Ｂ．種別１，集合Ｂ．種別２
ｆｒｏｍ  集合Ａ  ｌｅｆｔ  ｏｕｔｅｒ  ｊｏｉｎ  集合Ｂ
ｏｎ（集合Ａ．ＩＤ＝集合Ｂ．Ｉｄ）                  ・・・（１）
【００４１】
そして、送信部３０４は、入力された処理要求をデータ格納部３０２から読み出し、秘匿化サーバ２へ送信する（図１３：Ｓ１１）。本実施の形態では、送信部３０４は、例えば上記の問い合わせ（ＳＥＬＥＣＴ文）をそのまま送信する。なお、上記問い合わせの結合条件（１）に含まれる、テーブル名（すなわち、データ群の名称）及び項目名（すなわち、列名）を抽出し、抽出したテーブル名及び列名を含む処理要求を、送信部３０４が送信するようにしてもよい。一方、秘匿化サーバ２の受信部２０１は、処理要求を受信し、データ格納部２０２へ格納する（Ｓ１２）。
【００４２】
そして、データ抽出部２０６は、データ格納部２０２から処理要求を読み出し、秘匿管理データ格納部２０４からレコードを抽出するための条件を生成する（Ｓ１３）。データ抽出部２０６は、例えば、処理要求に含まれるテーブル名及び項目名を用いて、当該テーブル名及び項目名を含む抽出条件を生成する。
【００４３】
上に示した問い合わせの場合、結合条件であるｏｎ句（１）に基づいて、秘匿管理テーブルから抽出対象にするデータ群（すなわち、テーブル名）及び秘匿化対象にする項目（すなわち、項目名）を特定する。具体的には、「集合Ａ」及び「ＩＤ」並びに「集合Ｂ」及び「Ｉｄ」が特定される。また、列に登録された内容が同一であることが結合条件とされていることから（ｏｎ句において列名が「＝」で接続されていることから）、秘匿化前のデータが同一であるという条件を加える。
【００４４】
秘匿管理テーブルからレコードを抽出するための抽出条件として、例えば、以下に示すような条件が生成される。
（データ群＝“集合Ａ”  かつ  秘匿項目名＝“ＩＤ”  又は
データ群＝“集合Ｂ”  かつ  秘匿項目名＝“Ｉｄ”）  かつ
秘匿化前データの内容が同一であること
【００４５】
なお、本実施の形態では、Ｓ１１において、分析サーバ３から結合条件を含む問い合わせが送信される例を示したが、問い合わせはこのようなＳＥＬＥＣＴ文に限られない。例えば、以下に例示するような抽出条件を含む問い合わせ、その他様々な問い合わせが、分析サーバ３から送信されるようにしてもよい。
ｗｈｅｒｅ  集合Ａ．ＩＤ＝集合Ｂ．Ｉｄ                ・・・（２）
ｗｈｅｒｅ  集合Ａ．ＩＤ＝‘Ａ．Ｒｅｃ１’            ・・・（３）
ｗｈｅｒｅ  集合Ｂ．Ｉｄ  ｌｉｋｅ  ‘％Ｒｅｃ％２’  ・・・（４）
【００４６】
処理要求が、上記（２）のような抽出条件（ｗｈｅｒｅｒ句）を含む場合は、すでに説明したｏｎ句の場合と同様の、秘匿管理テーブルに対する抽出条件が生成される。
【００４７】
また、処理要求が、上記（３）の場合は、まず、処理要求に含まれる抽出条件に基づい
て、秘匿管理テーブルから抽出対象にするデータ群及び秘匿化対象にする項目名を特定する。具体的には、データ群「集合Ａ」及び秘匿化対象項目名「ＩＤ」が特定される。また、列に登録された内容が‘Ａ．Ｒｅｃ１’であることが抽出条件とされているときは、秘匿管理テーブルから秘匿化後データに「Ａ．Ｒｅｃ１」が登録されているレコードの秘匿化前データの内容を特定し、秘匿化前データに登録されている内容が、特定された秘匿化前データの内容と同一であることを、秘匿管理テーブルに対する抽出条件とする。
【００４８】
この場合には、秘匿管理テーブルから抽出処理を行う条件として、以下に示すような条件が生成される。
データ群＝“集合Ａ”  かつ  秘匿項目名＝“ＩＤ”  かつ
秘匿化前データの列に、上記特定された秘匿化前データの内容と同一の内容が登録されていること
【００４９】
また、処理要求が、上記（４）の場合は、処理要求に含まれる抽出条件に基づいて、秘匿管理テーブルから抽出対象にするデータ群及び秘匿化対象にする項目を特定する。具体的には、データ群「集合Ｂ」及び秘匿化対象項目名「Ｉｄ」が特定される。また、列に登録された内容が「％Ｒｅｃ％２」であることが抽出条件とされているときは、秘匿管理テーブルにおいて、秘匿化後データに「％Ｒｅｃ％２」が登録されているレコードの、秘匿化前データの内容を特定し、特定された秘匿化前データの内容と同一の内容が秘匿化前データの列に登録されていることを抽出条件とする。すなわち、秘匿管理テーブルから、秘匿化後データの列に、「％Ｒｅｃ％２」のワイルドカード「％」を任意の文字列に置き換えたデータが登録されているレコードを特定する。さらに、特定されたレコードの秘匿化前データの内容を特定し、特定された内容が秘匿化前データの列に登録されていることを抽出条件に加える。
【００５０】
この場合には、秘匿管理テーブルから抽出処理を行う条件として、以下に示すような条件が生成される。
データ群＝“集合Ｂ”  かつ  秘匿項目名＝“Ｉｄ”  かつ
秘匿化前データの列に、上記特定された秘匿化前データの内容と同一の内容が登録されていること
【００５１】
以上のように、データ抽出部２０６は、処理要求に基づいて秘匿管理テーブルからレコードを抽出するための抽出条件を生成する。上で例示したように、秘匿管理テーブルからレコードを抽出するための抽出条件とは、処理要求に含まれる項目を含む条件である。具体的には、抽出条件とは、処理要求に含まれる項目に登録されている内容が、所定の条件を満たすというものである。より具体的には、抽出条件とは、処理要求に含まれる複数の項目に同一の値が登録されているという条件、又は処理要求に含まれる項目に、処理要求に含まれる１又は複数の値のいずれかが登録されているという条件等である。
【００５２】
次に、データ抽出部２０６は、所定の条件に基づき、未送信のデータであって、所定の条件を満たすレコードが存在するか判断する（Ｓ１４）。すなわち、データ抽出部２０６は、生成した抽出条件に基づき、秘匿管理データ格納部２０４の中に、未送信のデータであって、抽出条件に該当するデータが存在するか否か判断する。例えば、データ抽出部２０６は、秘匿管理データ格納部２０４に対し、ＳＥＬＥＣＴ文を用いた問い合わせを行ってもよいし、上記抽出条件を用いてカーソルを定義し、カーソルを移動させて該当するデータを取り出す（すなわち、ＦＥＴＣＨを行う）ようにしてもよい。なお、該当するレコードが存在しない場合（Ｓ１４：Ｎｏ）は、処理を終了する。
【００５３】
一方、該当するレコードが存在する場合（Ｓ１４：Ｙｅｓ）、データ抽出部２０６は、該当するレコードを抽出する。そして、抽出されたレコードから、秘匿化前データが同一
であるレコードに登録された、秘匿化後データの組み合わせを生成し、データ格納部２０２に格納する（Ｓ１５）。上記（１）の結合条件を含む処理要求を受け付けた場合、データ抽出部２０６は、図１２のテーブルから１行目のレコードと６行目のレコードとを抽出し、抽出されたレコードに含まれる秘匿化後データの組み合わせを生成する。例えば、図１４に示すような組み合わせが生成される。
【００５４】
図１４は、秘匿化後データの組み合わせの一例を示す図である。秘匿化後データの組み合わせを表すテーブルは、項目１、秘匿化後データ１、項目２、及び秘匿化後データ２の列を含む。秘匿化前データの内容が一致する秘匿化後データの組み合わせは、「秘匿化後データ１」及び「秘匿化後データ２」の列に登録されている。また、これらのデータがいずれのテーブルのいずれの項目に登録されているデータであるかを示す情報が、「項目１」及び「項目２」の列に登録されている。ここで、Ｓ１２で受信した問い合わせに含まれるデータ群及び秘匿項目名が登録される。
【００５５】
そして、送信部２０５は、データ格納部２０２から秘匿化前データが同一である秘匿化後データの組み合わせを読み出し、分析サーバ３へ送信する（Ｓ１６）。ここでは、図１４に示したような秘匿化後データの組み合わせが送信される。その後、Ｓ１４の処理に戻り、Ｓ１４〜Ｓ１６の処理を繰り返す。
【００５６】
一方、分析サーバ３の受信部３０１は、秘匿化後データの組み合わせを秘匿化サーバ２から受信し、データ格納部３０２に格納する（Ｓ１７）。例えば、図１４に示したような秘匿化後データの組み合わせが格納される。
【００５７】
その後、分析処理部３０５は、ユーザから入力された処理要求（すなわち、問い合わせ）の結果を示す情報を生成し、生成した情報を出力部３０６がユーザに出力する（Ｓ１８）。具体的には、分析処理部３０５は、データ格納部３０２に格納されている、秘匿化後データの組み合わせ、及び上記（１）に示した結合条件に基づいて、データ格納部３０２に格納されている秘匿化後データテーブル「集合Ａ」及び「集合Ｂ」のデータを結合する。図１４に示した情報から、集合ＡのＩＤの列に登録されているＡ．Ｒｅｃ１と、集合ＢのＩｄの列に登録されているＢ．Ｒｅｃ３とは、秘匿化前のデータが同一であることがわかる。このように、Ｓ１７で受信した秘匿化後データの組み合わせを用いることで、秘匿化前の内容が同一である秘匿化後データの組み合わせを特定することができる。したがって、分析処理部３０５は、上記（１）に示した結合条件に基づいて、図１５に示すような結合結果のデータを生成することができる。
【００５８】
図１５に、結合された秘匿化後データの一例を示す。図１５のテーブルには、集合Ａ．ＩＤ、集合Ａ．金額、集合Ｂ．種別１、及び集合Ｂ．種別２の列が含まれている。これらは、Ｓ１１においてユーザに入力された処理要求（ＳＥＬＥＣＴ文）の中で選択の対象とされた項目（列）である。
【００５９】
また、図１５の結合結果において、秘匿化対象であるＩＤの列の内容は秘匿化後データが登録されている。したがって、秘匿化対象の項目に登録されているデータが分析サーバ３のユーザに知られることはない。以上のように、本実施の形態では、秘匿化前のデータを分析サーバ３に開示することなく、分析サーバ３は秘匿化後の業務データの分析を行うことができる。また、分析サーバ３は、分析処理を終えると、例えば秘匿化後データの組み合わせのような処理の過程で一時的に受信した情報をデータ格納部３０２から削除する。以上で、分析処理が終了する。
【００６０】
このように、分析サーバ３は、分析処理に用いる範囲で秘匿化後データの対応関係を示すデータを受信し、処理に用いる最低限の対応関係を一時的に保持する。よって、秘匿化
後データの対応関係を分析サーバ３が常時保持するような場合よりも、情報の機密性は高くなる。また、特に、秘匿化前の内容とは無関係な内容になるように秘匿化後のデータを生成するため、秘匿化後のデータから秘匿化前のデータを類推することは困難になる。よって、例えば、図１のプライベートサーバ１及び秘匿化サーバ２を、店舗や企業ごとに設けられたプライベートネットワーク上に配置し、分析サーバ３を、インターネット等のパブリックネットワーク上に配置すれば、分析サーバ３は、秘密を保持しつつ、プライベートサーバをまたいでデータを分析することもできるようになる。
【００６１】
また、本実施の形態のＳ１４〜Ｓ１８では、まず秘匿化サーバ２のデータ抽出部２０６が秘匿化前のデータが同一である秘匿化後のデータの組み合わせを生成するたびに分析サーバ３にデータを送信し、分析サーバ３では受信したデータから順に処理を行う。したがって、例示した結合処理のような場合には特に、一種のパイプライン処理のように、秘匿化サーバ２及び分析サーバ３が並列に処理を行うことができ、スループットの低下を抑えることができる。
【００６２】
＜変形例＞
次に、秘匿化処理及びデータ分析処理について、別の業務データを用いて、変形例を交えつつ説明する。本実施の形態では、複数の病院が保持するデータを用いて、２以上の病院にレセプトデータを有する患者について、通院したことのある病院の数を集計し、病歴を結合し、さらにレセプトの点数を集計する。本実施の形態では説明しないが、さらに、類似した病歴を有するグループを分析して、予防医療の研究に役立てるようなデータの活用方法も考えられる。
【００６３】
図１６〜１８に、３つの病院が保持するレセプトデータ（生データ）の一例を示す。図１６は、病院Ａが保持する生データの一例である。病院Ａの生データテーブルは、氏名、被保険者番号、疾患、及びレセプトの列を有する。なお、本実施の形態では、被保険者番号に基づいて個人が特定できるものとする。
【００６４】
なお、複数の列（項目）に登録されている内容を結合することにより、レコードを一意に特定するようにしてもよい。すなわち、本実施の形態では「被保険者番号」により個人を特定できるものとしたが、例えば、「記号」及び「番号」のような複数の項目から個人を特定するようにしてもよい。このような場合、秘匿管理テーブルには、項目ごとに秘匿化前後のデータの対応関係を格納するようにしてもよいし、複数の項目に登録された内容を１つに連結して、連結したデータと秘匿化後データの対応関係を格納するようにしてもよい。
【００６５】
図１７は、病院Ｂが保持する生データの一例である。病院Ｂの生データテーブルは、被保険者番号、氏名、年齢、疾患、初診日、及びレセプトの列を有する。
【００６６】
図１８は、病院Ｃが保持する生データの一例である。病院Ｃの生データテーブルは、氏名、被保険者番号、回数、レセプト、及び疾患の列を有する。
【００６７】
以上のような生データが、病院Ａ〜Ｃが有するプライベートサーバ１Ａ〜１Ｃのデータ格納部１０１Ａ〜１０１Ｃに保持されている。そして、プライベートサーバ１Ａ〜１Ｃの送信部１０２Ａ〜１０２Ｃは、生データテーブルに格納されている情報を秘匿化サーバ２に送信する。複数のプライベートサーバ１と秘匿化サーバ２とは、例えば専用線又はＶＰＮ（Virtual Private Network）で接続されている。
【００６８】
そして、秘匿化サーバ２の受信部２０１はデータを受信し、データ格納部２０２に格納されている生データテーブルに登録する。そして、秘匿化処理部２０３が各病院の生デー
タテーブルを用いて秘匿化処理を行い、図１９〜２１に示すような秘匿化後データテーブルを生成する。
【００６９】
図１９は、病院Ａの秘匿化後データテーブルの一例である。病院Ａの秘匿化後データテーブルは、氏名、被保険者番号、疾患、及びレセプトの列を有する。本実施の形態では、図１６に示した生データのうち、氏名及び被保険者番号が秘匿化の対象に設定されているものとする。また、被保険者番号は、本システムにおいて、患者に対して一意に振られる値であり、複数のテーブル間でレコードを関連付けることができる項目である。よって、被保険者番号の列に登録されているデータは、例えばレコードの位置に基づいて、生データテーブルごとに一意となるようなデータに置き換えられる。そして、被保険者番号の列に登録されている秘匿化前後のデータを、秘匿管理テーブルに保持しておく。一方、氏名の列は、本システムにおいて、レコード間の関連性を特定するために用いることはない。したがって、被保険者番号と同様の方法により秘匿化処理を行ってもよいし、秘匿化後のデータから秘匿化前のデータが一意に特定できないような方法で秘匿化してもよい。図１９の例では、氏名の列に登録されたすべてのデータが「＊＊＊＊」になっている。なお、秘匿化対象の項目について、どのような方法で秘匿化するかは、例えば予め設定テーブルに登録しておく。
【００７０】
図２０は、病院Ｂの秘匿化後データテーブルの一例である。病院Ｂの秘匿化後データテーブルは、被保険者番号、氏名、年齢、疾患、初診日、及びレセプトの列を有する。本実施の形態では、図１７に示した生データのうち、被保険者番号及び氏名が秘匿化の対象に設定されているものとする。被保険者番号の列に登録されているデータは、レコードの位置に基づいて、例えば生データテーブルごとに一意となるようなデータに置き換えられている。また、すべてのレコードの氏名の列に、「＊＊＊＊」が登録されている。
【００７１】
図２１は、病院Ｃの秘匿化後データテーブルの一例である。病院Ｃの秘匿化後データテーブルは、氏名、被保険者番号、回数、レセプト、及び疾患の列を有する。本実施の形態では、図１８に示した生データのうち、氏名及び被保険者番号が秘匿化の対象に設定されているものとする。被保険者番号の列に登録されているデータは、レコードの位置に基づいて、例えば生データテーブルごとに一意となるようなデータに置き換えられている。また、すべてのレコードの氏名の列に、「＊＊＊＊」が登録されている。
【００７２】
なお、秘匿化後のデータは、あるデータ群（テーブル）の秘匿化対象の項目に登録されるデータの中で一意な値になるように生成してもよいし、秘匿化サーバ２が処理するすべてのデータ群の秘匿化対象の項目に登録されるデータの中で一意な値になるように生成してもよい。すなわち、秘匿管理テーブルにおいて、データ群及び秘匿項目名の列にそれぞれ同一の内容が登録されるレコードにおいて、秘匿化後データの列に登録される内容が一意になるようにしてもよいし、秘匿管理テーブルのすべてのレコードにおいて、秘匿化後データの列に登録される内容が一意になるようにしてもよい。
【００７３】
また、秘匿化前のデータを、例えば準同型暗号化することによって秘匿化する方法を採用してもよい。ここで、準同型暗号化とは、同一の暗号キーを用いることにより、同一の元データからは同一の秘匿化データが生成されるような、準同型性を有する暗号方式をいう。このような方法を採用すれば、秘匿により匿名性を保ちつつ、秘匿化後のデータからもレコード間の関連付けが可能となる。
【００７４】
しかしながら、元の内容が同一であれば秘匿化後の内容も同一になるため、データ及びレコード間の関連性が類推され得るというデメリットもある。すなわち、第三者が秘匿化後のテーブルから、秘匿化後の内容が同一であるレコードを抽出し、秘匿化されていない内容を手掛かりに類推する場合、第三者が秘匿化前の内容（例えば、特定の個人）を推測
できてしまうおそれがある。よって、先に説明したレコードの位置に基づく方法やランダムな値を採用する方法の方が、システムの機密性が向上し、情報漏えいのリスク下がるという効果がある。
【００７５】
また、秘匿化処理部２０３は、秘匿化後のデータを生成するとともに、秘匿管理テーブルに秘匿化前後のデータの組み合わせも保持しておく。例えば、設定テーブルに、秘匿化前後のデータを保持する対象の項目（列）が予め登録されているものとする。そして、秘匿化前後のデータの組み合わせとして、例えば、図２２に示すようなレコードが登録される。
【００７６】
図２２は、秘匿管理テーブルの一例である。本実施の形態における秘匿管理テーブルのデータ構造は、図１２に示した秘匿管理テーブルと同様である。また、秘匿管理テーブルの内容は、図１６〜１８に示した生データテーブル及び図１９〜２１に示した秘匿化後データテーブルにおいて、被保険者番号の列に登録されているデータが、対応付けられて登録されている。そして、秘匿化サーバ２は、分析サーバ３へ、図１９〜２１に示した秘匿化後の業務データを送信する。
【００７７】
一方、分析サーバ３は、秘匿化後の業務データに対して様々な分析処理を行う。本実施の形態に示す病院のレセプトデータの場合、例えば、医療費の統計をとったり、病歴を解析したりする。しかしながら、本実施の形態でも、レコード間の関連付けをすることができるデータ（すなわち、被保険者番号）が秘匿化されている。よって、分析サーバ３は、秘匿化サーバ２に処理要求を送信し、秘匿化前のデータが所定の条件に該当する秘匿化後データの組み合わせを取得する。
【００７８】
分析サーバ３は、秘匿化サーバ２への処理要求として、例えば、ＳＱＬの問い合わせ（クエリ）を送信する。処理要求は、上で例示したような問い合わせには限られない。例えば、テーブル名及び列名（項目名）を含んでいれば、秘匿化サーバ２は秘匿管理テーブルから秘匿化前データが所定の条件に該当する秘匿化後データの組み合わせを抽出することができる。
【００７９】
なお、図示していないが、１つの秘匿化後データテーブルの中に、秘匿化前データが同一である複数種類の秘匿化後データが存在する場合もある。すなわち、同一の患者が同一の病院へ複数回通えば、複数のレセプトデータ（すなわち、レコード）が登録されることがある。このような場合は、秘匿化前データが同一である（すなわち、同一の患者に関連する）すべての秘匿化後データを、１つの組み合わせとして分析サーバ３に送信するようにしてもよい。このようにすれば、患者ごとにレセプトデータを集計することができる。
【００８０】
また、図１３のＳ１１では、ユーザが処理要求を入力するものとして説明したが、ユーザ自身が問い合わせを入力するのではない態様とすることも可能である。例えば、問い合わせの作成を支援するＧＵＩ（Graphical User Interface）を備えたアプリケーションが、ユーザの操作に基づいて問い合わせを生成するようにしてもよいし、ユーザからの入力を受けることなく、例えば予め設定されたバッチ処理の中で分析サーバ３から処理要求が送信されるようにしてもよい。さらに、分析サーバ３から処理要求を受けることなく、あらかじめ設定された条件に基づいて、秘匿化サーバ２が自動的に秘匿化後データの組み合わせを抽出及び送信するようにしてもよい。
【００８１】
秘匿化サーバ２は、分析サーバ３から処理要求を受けると、秘匿化後データの組み合わせを抽出する。例えば、図２２に示した秘匿管理テーブルから、図２３に示すような、秘匿化後データの組み合わせが生成される。なお、上で述べた実施の形態では、秘匿化前データが同一である秘匿化後データの組み合わせを取得する例を挙げた。しかし、秘匿化前
データの少なくとも一部が一致する秘匿化後データの組み合わせを取得するようにしてもよい。例えば、被保険者番号の上位所定数の桁が、地域や企業ごとに固有の値であると仮定する。そして、このような前提が周知であると仮定する。このような場合において、地域や企業ごとに集計処理を行うとき、分析サーバ３が、秘匿化サーバ２へ、秘匿化前データの一部とワイルドカードとを含む処理要求を送信し、秘匿化サーバ２は、分析サーバ３へ、秘匿化前データの一部が一致する秘匿化後データの一覧（組み合わせ）を返すようにしてもよい。
【００８２】
図２３に、秘匿化後データの組み合わせを表すテーブルの一例を示す。図２３のテーブルは、項目１、秘匿化後データ１、項目２、秘匿化後データ２、項目３、及び秘匿化後データ３の列を有する。それぞれの列には、秘匿化前データが所定の条件に該当する（ここでは秘匿化前データに登録されている内容が同一の）秘匿化後データの組み合わせが登録されている。秘匿化サーバ２は、このような秘匿化後データの組み合わせを生成して、分析サーバ３に送信する。
【００８３】
一方、分析サーバ３は、秘匿化サーバ２から秘匿化後データの組み合わせを受信すると、受信した秘匿化後データの組み合わせをデータ格納部３０２に格納する。そして、分析処理部３０５は、図１９〜２１に示した秘匿化後データテーブルと、図２３に示した秘匿化後データの組み合わせとを用いて、分析処理を行う。上でも述べたように、本実施の形態では、「２以上の病院にレセプトデータを有する患者の各々について、通院履歴のある病院の数を集計し、病歴を結合し、さらにレセプトの点数を集計する」という分析処理を行う。例えば、分析処理部３０５は、秘匿化後データテーブルに複数の問い合わせを行い、得られた情報を集計及び編集することにより結果のデータを生成する。分析処理部３０５は、処理の結果として、例えば図２４に示すようなテーブルを生成することができる。
【００８４】
図２４は、処理結果の一例を示すテーブルである。図２４に示すテーブルは、被保険者番号、病院数、疾患１、疾患２、疾患３、疾患４、疾患５、及びレセプト合計の列を有する。このような結果のテーブルを得るためには、例えば次のような集計及び編集を行う。
【００８５】
すなわち、本実施の形態において抽出対象である、「２以上の病院に通院履歴を有する患者」として、図２３に示した秘匿化後データの組み合わせが得られた２つのレコードに係る患者を処理対象とする。また、「通院履歴のある病院の数」は、図２３の各レコードに含まれる病院の数を、重複を除いて集計することにより得られる。そして、「病歴」は、図２３の各レコードに含まれる秘匿化後の被保険者番号を用いて、秘匿化後データテーブルから疾患の列に登録されているデータを取得し、結合することによって図２４に示した一覧表を生成することができる。また、「レセプトの点数の合計」は、図２３の各レコードに含まれる秘匿化後の被保険者番号を用いて、秘匿化後データテーブルからレセプトの列に登録されているデータを取得し、図２３におけるレコード（１行）ごとに集計することにより得られる。このような処理は一例であり、分析処理部３０５は、様々な集計、編集、その他の処理を行うことができる。
【００８６】
以上のように、本実施の形態に示した技術によれば、秘匿化前のデータの内容と無関係に秘匿化後のデータを生成することにより、秘匿化前のデータが類推されにくくなる。同時に、データを活用する場面においては、秘匿化前のデータが所定の条件に該当する秘匿化後のレコードを秘匿化サーバ２から適宜取得することができるため、秘匿化後のデータが活用し易くなるという効果が得られる。
【００８７】
以上の実施の形態に関し、さらに以下の付記を開示する。
【００８８】
（付記１）
第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応付けて保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出ステップと
抽出された、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを外部装置に送信するステップと
をコンピュータに実行させるためのデータ処理プログラム。
【００８９】
（付記２）
前記抽出ステップにおいて、前記データ格納部から、内容の少なくとも一部が一致する前記第１のデータ及び前記第２のデータの組み合わせを特定し、特定された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する
付記１に記載のデータ処理プログラム。
【００９０】
（付記３）
前記第１の秘匿化データは、前記第１のデータとは無関係に、かつ前記第１の秘匿化データに基づいて前記第１のデータが一意に特定できるように生成されたデータであり、
前記第２の秘匿化データは、前記第２のデータとは無関係に、かつ前記第２の秘匿化データに基づいて前記第２のデータが一意に特定できるように生成されたデータである  付記１又は２に記載のデータ処理プログラム。
【００９１】
（付記４）
前記第１のデータは、第１のレコードに含まれる第１の項目の値であり、
前記第２のデータは、第２のレコードに含まれる第２の項目の値であり、
前記第１の項目又は前記第２の項目を用いて表される条件を含む、前記第１のレコード又は前記第２のレコードを要求する問い合わせを受け付けるステップをさらに実行させる
付記１ないし３のいずれか１項に記載のデータ処理プログラム
【００９２】
（付記５）
秘匿化前の値が同一である、第１の秘匿化データ及び第２の秘匿化データの組み合わせを受信するステップと、
前記第１のデータを前記第１の秘匿化データで置き換えた第１の秘匿化レコードと、前記第２のデータを前記第２の秘匿化データで置き換えた第２の秘匿化レコードとを保持する第２のデータ格納部から、受信した前記組み合わせを用いて、前記第１の秘匿化レコード若しくは前記第２の秘匿化レコードを抽出し、又は前記第１の秘匿化レコード及び前記第２の秘匿化レコードを集計するステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【００９３】
（付記６）
第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部と、
前記データ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを抽出し、抽出された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出部と
を有するデータ処理装置。
【００９４】
（付記７）
第１のレコードに含まれる第１のデータと、当該第１のデータを秘匿化した第１の秘匿化データとを対応付けて保持し、第２のレコードに含まれる第２のデータと、当該第２のデータを秘匿化した第２の秘匿化データとを対応付けて保持するデータ格納部と、
前記データ格納部から、所定の条件に基づき前記第１のデータ及び前記第２のデータの組み合わせを抽出し、抽出された前記第１のデータ及び前記第２のデータにそれぞれ対応して保持されている、前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを抽出する抽出部と
を有する第１のデータ処理装置と、
前記第１のレコードのうち前記第１のデータを前記第１の秘匿化データで置き換えた第１の秘匿化レコードと、前記第２のレコードのうち前記第２のデータを前記第２の秘匿化データで置き換えた第２の秘匿化レコードとを保持する第２のデータ格納部と、
前記第１のデータ処理装置から前記第１の秘匿化データ及び前記第２の秘匿化データの組み合わせを受信し、当該組み合わせを用いて前記第１の秘匿化レコードと前記第２の秘匿化レコードとを処理する処理部と
を有する第２のデータ処理装置と
を有するデータ処理システム。
【符号の説明】
【００９５】
１（１ａ，１ｂ）  プライベートサーバ
２  秘匿化サーバ
３  分析サーバ
１０１  生データ格納部
１０２  送信部
２０１  受信部
２０２  データ格納部
２０３  秘匿化処理部
２０４  秘匿管理データ格納部
２０５  送信部
２０６  データ抽出部
３０１  受信部
３０２  データ格納部
３０３  入力部
３０４  送信部
３０５  分析処理部
３０６  出力部
【図１】
2014066831.tif 000003
【図２】
2014066831.tif 000004
【図３】
2014066831.tif 000005
【図４】
2014066831.tif 000006
【図５】
2014066831.tif 000007
【図６】
2014066831.tif 000008
【図７】
2014066831.tif 000009
【図８】
2014066831.tif 000010
【図９】
2014066831.tif 000011
【図１０】
2014066831.tif 000012
【図１１】
2014066831.tif 000013
【図１２】
2014066831.tif 000014
【図１３】
2014066831.tif 000015
【図１４】
2014066831.tif 000016
【図１５】
2014066831.tif 000017
【図１６】
2014066831.tif 000018
【図１７】
2014066831.tif 000019
【図１８】
2014066831.tif 000020
【図１９】
2014066831.tif 000021
【図２０】
2014066831.tif 000022
【図２１】
2014066831.tif 000023
【図２２】
2014066831.tif 000024
【図２３】
2014066831.tif 000025
【図２４】
2014066831.tif 000026