(57)【要約】【課題】漏洩対策におけるデータの有用性への影響を低減させる。【解決手段】処理部１２は、複数のレコードを含むデータの中から削除されるレコードを示す削除パターン１５ａ，１５ｂ，１５ｃを生成し、削除パターン１５ａ，１５ｂ，１５ｃそれぞれに基づいてデータに含まれるレコードを削除することにより、データの複数のサブセットを生成する。記憶部１１は、複数のサブセットそれぞれと当該サブセットの提供先を示す提供先識別子とを対応付けた対応情報１３を記憶する。【選択図】図１
2019121138.tif 000002
【特許請求の範囲】
【請求項１】
複数のレコードを含むデータの中から削除されるレコードを示す複数の削除パターンを生成し、前記複数の削除パターンそれぞれに基づいて前記データに含まれるレコードを削除することにより、前記データの複数のサブセットを生成する処理部と、
前記複数のサブセットそれぞれと当該サブセットの提供先を示す提供先識別子とを対応付けた対応情報を記憶する記憶部と、
を有するデータ加工装置。
【請求項２】
前記処理部は更に、漏洩データを取得し、前記複数の削除パターンの中から前記漏洩データに含まれるレコードを削除対象に指定していない削除パターンを検索し、前記検索された削除パターンに対応する提供先識別子を抽出する、
請求項１に記載のデータ加工装置。
【請求項３】
前記処理部は、前記データから異なる提供先識別子に対して異なる削除パターンを生成し、前記異なる削除パターンに基づいて異なるサブセットを生成する、
請求項２記載のデータ加工装置。
【請求項４】
前記異なる削除パターンの生成では、前記処理部は、提供先数と前記漏洩データから漏洩元を推定できる推定可能確率とを受け付け、前記提供先数と前記推定可能確率とに基づいて各削除パターンが削除対象に指定するレコードの数を決定する、
請求項３記載のデータ加工装置。
【請求項５】
前記異なる削除パターンの生成では、前記処理部は、前記データの中から他のレコードと同じ値を含まない複数の識別可能レコードを抽出し、前記複数の識別可能レコードの中から各削除パターンが削除対象に指定するレコードを選択する、
請求項３記載のデータ加工装置。
【請求項６】
前記異なるサブセットの生成では、前記処理部は、削除対象に指定するレコードの数に応じて、前記複数のレコードのうち前記複数の識別可能レコード以外の複数の識別不能レコードの中から一部のレコードを追加的に削除する、
請求項５記載のデータ加工装置。
【請求項７】
前記異なる削除パターンの算出では、前記処理部は、所定の基準に基づいて前記複数のレコードの少なくとも一部を複数のグループに分類し、各削除パターンが削除対象に指定する２以上のレコードの中に異なるグループに属するレコードを混在させる、
請求項３記載のデータ加工装置。
【請求項８】
コンピュータが実行するデータ加工方法であって、
複数のレコードを含むデータの中から削除されるレコードを示す複数の削除パターンを生成し、
前記複数の削除パターンそれぞれに基づいて前記データに含まれるレコードを削除することにより、前記データの複数のサブセットを生成し、
前記複数のサブセットそれぞれと当該サブセットの提供先を示す提供先識別子とを対応付けた対応情報を記憶部に記憶する、
データ加工方法。
【請求項９】
コンピュータに、
複数のレコードを含むデータの中から削除されるレコードを示す複数の削除パターンを生成し、
前記複数の削除パターンそれぞれに基づいて前記データに含まれるレコードを削除することにより、前記データの複数のサブセットを生成し、
前記複数のサブセットそれぞれと当該サブセットの提供先を示す提供先識別子とを対応付けた対応情報を記憶部に記憶する、
処理を実行させるデータ加工プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ加工装置、データ加工方法およびデータ加工プログラムに関する。
【背景技術】
【０００２】
ある組織が他の組織にとって価値の高いデータを収集し保有していることがある。その場合、ある組織は特定の他の組織に対して、外部に漏洩しないよう機密管理を行うことを条件にデータを提供することがある。例えば、様々な生物についてＤＮＡ（Deoxyribonucleic Acid）の塩基配列を示すＤＮＡデータを収集している事業者は、ＤＮＡを分析する研究機関に対してＤＮＡデータを提供することがある。
【０００３】
ある組織は複数の他の組織に対して同様のデータを提供することがある。一方、何れかの提供先の組織においてデータの機密管理が適切に行われなかった結果、データが契約に反して外部に漏洩してしまう可能性がある。提供元の組織は、インターネットなど提供先の組織以外の情報源からデータを入手したことにより、漏洩の事実に気付くことがある。その場合、提供元の組織は、複数の提供先の組織のうち何れの組織からデータが漏洩したかを特定できることが好ましい。データを漏洩させた組織自身も漏洩の事実に気付いていないことがあるため、漏洩元を特定することは再発防止のために有用である。
【０００４】
しかし、同一のデータをそのまま複数の他の組織に対して提供してしまうと、漏洩したデータから漏洩元を特定することが困難となる。そこで、データ提供時に提供先の組織に応じて異なる態様でデータを加工する方法が提案されている。
【０００５】
例えば、マルチキャスト配信されたデータの漏洩元を電子透かしを用いて特定できるようにする送信装置が提案されている。提案の送信装置は、オリジナルデータをコピーして異なる電子透かしを付加した２通りのコピーデータを生成し、各コピーデータを時系列に複数のデータ区間に分割する。送信装置は、複数のデータ区間それぞれについて２通りのコピーデータの何れか一方を選択することで、異なる受信装置に対して異なる電子透かしの時系列パターンを割り当てるようにする。
【０００６】
また、身長や体重などの数値型カラムを含む表形式データの漏洩元を特定できるようにする情報処理装置が提案されている。提案の情報処理装置は、表形式データの提供時に、数値型カラムに記載されている複数の数値に対して和がゼロになるようなノイズを付加する。情報処理装置は、提供先の識別子からノイズを生成することで、異なる複数の提供先と異なる複数のノイズパターンとを関連付けている。
【０００７】
また、文字情報に対して不正使用発見のための情報を埋め込む文字情報編集装置が提案されている。提案の文字情報編集装置は、形状が類似しており文字コードが異なる同形文字ペアを示す文字辞書を保持する。文字情報編集装置は、文字情報の中から同形文字ペアの一方の文字を検索し、検索された文字を同形文字ペアの他方の文字に置換する。
【０００８】
また、文書画像に不可視な制御情報を埋め込む文書処理装置が提案されている。提案の文書処理装置は、制御情報を二進数のビット列で表現し、１ビットを隣接する２つの文字の間の空白に割り当てる。文書処理装置は、ビットの値が「０」であるか「１」であるかによって空白の長さが変わるように文字間隔を調整する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２１２７９９号公報
【特許文献２】特開２０１３−１９１１２１号公報
【特許文献３】特開２０００−３５２９２８号公報
【特許文献４】特開２０１０−１２４４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、提供されるデータにノイズが付加されると、データに含まれる値の真正性が保証されないことになり、データの特性や使用方法によっては提供先にとってのデータの価値が大きく低下してしまうことがある。例えば、ＤＮＡデータでは一部の塩基配列が改変されると、ＤＮＡデータ全体の価値が大きく低下するおそれがある。
【００１１】
１つの側面では、本発明は、漏洩対策におけるデータの有用性への影響を低減するデータ加工装置、データ加工方法およびデータ加工プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、記憶部と処理部とを有するデータ加工装置が提供される。処理部は、複数のレコードを含むデータの中から削除されるレコードを示す複数の削除パターンを生成し、複数の削除パターンそれぞれに基づいてデータに含まれるレコードを削除することにより、データの複数のサブセットを生成する。記憶部は、複数のサブセットそれぞれと当該サブセットの提供先を示す提供先識別子とを対応付けた対応情報を記憶する。
【００１３】
また、１つの態様では、コンピュータが実行するデータ加工方法が提供される。また、１つの態様では、コンピュータに実行させるデータ加工プログラムが提供される。
【発明の効果】
【００１４】
１つの側面では、漏洩対策におけるデータの有用性への影響が低減される。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態のデータ加工装置を説明する図である。
【図２】第２の実施の形態の情報処理装置のハードウェア例を示す図である。
【図３】情報処理装置の機能例を示すブロック図である。
【図４】元データテーブルの例を示す図である。
【図５】パラメータテーブルの例を示す図である。
【図６】度数分布テーブルの例を示す図である。
【図７】グループテーブルの例を示す図である。
【図８】識別可能データテーブルの例を示す図である。
【図９】対応表の例を示す図である。
【図１０】修正度数分布テーブルの例を示す図である。
【図１１】提供データテーブルの例を示す図である。
【図１２】漏洩データテーブルの例を示す図である。
【図１３】元データ分析の手順例を示すフローチャートである。
【図１４】提供データ生成の手順例を示すフローチャートである。
【図１５】漏洩元推定の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１７】
図１は、第１の実施の形態のデータ加工装置を説明する図である。
第１の実施の形態のデータ加工装置１０は、あるデータから複数の提供先に提供する複数のサブセットを生成する。また、データ加工装置１０は、加工されたデータが提供された後、データの漏洩が発見された場合に当該複数の提供先の中から漏洩元を推定する。ただし、データの加工と漏洩元の推定を異なる装置で行うこともできる。データ加工装置１０は、クライアントコンピュータでもよいしサーバコンピュータでもよい。
【００１８】
データ加工装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）などの不揮発性のストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリに記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１９】
記憶部１１は、対応情報１３を記憶する。対応情報１３は、データの複数のサブセットと、提供先識別子１４ａ，１４ｂ，１４ｃなどの複数の提供先識別子とを対応付ける。データの複数のサブセットは、例えば、削除パターン１５ａ，１５ｂ，１５ｃなどの複数の削除パターンによって特定される。各削除パターンは、複数のレコードを含むデータの中から削除されるレコードを示す。削除されるレコードは、データの中の一部のレコードであって、例えば、データの中で各レコードを識別するためのレコード識別子を用いて特定される。各提供先識別子は、データ提供先の個人または組織を示す。
【００２０】
処理部１２は、データの中から削除されるレコードを決定して、異なる複数の削除パターンを生成する。処理部１２は、複数の削除パターンそれぞれに基づいてデータに含まれる一部のレコードを削除することにより、データの複数のサブセットを生成する。
【００２１】
ある提供先識別子が示す提供先には、当該提供先識別子に対応付けられた削除パターンに基づいてデータから生成されるサブセットが提供される。提供されるサブセットには、削除パターンが削除対象として指定するレコードが含まれていない。異なる提供先識別子には異なる削除パターンが対応付けられていることが好ましい。ただし、異なる削除パターンは、削除対象のレコードの集合が完全に一致していなければよく、一部の削除対象のレコードが重複していてもよい。
【００２２】
例えば、提供先識別子１４ａに対して削除パターン１５ａが対応付けられる。削除パターン１５ａは、データの中のレコード＃４，＃５，＃１２を削除対象に指定している。また、提供先識別子１４ｂに対して削除パターン１５ｂが対応付けられる。削除パターン１５ｂは、データの中のレコード＃３，＃７，＃１０を削除対象に指定している。また、提供先識別子１４ｃに対して削除パターン１５ｃが対応付けられる。削除パターン１５ｃは、データの中のレコード＃２，＃８，＃９を削除対象に指定している。
【００２３】
処理部１２は、漏洩データ１６を取得する。漏洩データ１６は、例えば、データ加工装置１０の外部から入力されて記憶部１１に記憶される。漏洩データ１６は、元のデータに含まれる複数のレコードのうち一部のレコードを含む。漏洩データ１６は、複数の提供先のうち何れか１つの提供先から漏洩したことが疑われるレコードの集合であり、当該１つの提供先に提供されたサブセットの全体または一部分である。漏洩データ１６は、例えば、インターネットや名簿屋など提供先とは異なる情報源から入手される。
【００２４】
漏洩データ１６を取得すると、処理部１２は、対応情報１３が示す複数の削除パターンの中から、漏洩データ１６に含まれる何れのレコードも削除対象に指定していない削除パターンを検索する。削除対象に指定されたレコードは提供されていないため漏洩し得ないからである。処理部１２は、検索された削除パターンに対応付けられた提供先識別子を対応情報１３から抽出し、抽出した提供先識別子が示す提供先を漏洩データ１６の漏洩元であると推定する。処理部１２は、推定した漏洩元を示す漏洩元情報１７を生成して出力する。漏洩元情報１７は、例えば、抽出された提供先識別子を含む。
【００２５】
例えば、漏洩データ１６にレコード＃２，＃４，＃５，＃８が含まれている。対応情報１３に登録された削除パターン１５ａはレコード＃４，＃５を削除対象に指定している。よって、削除パターン１５ａに対応付けられた提供先識別子１４ａの提供先は、漏洩データ１６を漏洩し得ないため漏洩元の候補から除外される。また、削除パターン１５ｃはレコード＃２，＃８を削除対象に指定している。よって、削除パターン１５ｃに対応付けられた提供先識別子１４ｃの提供先は、漏洩データ１６を漏洩し得ないため漏洩元の候補から除外される。一方、削除パターン１５ｂはレコード＃２，＃４，＃５，＃８の何れも削除対象に指定していない。よって、削除パターン１５ｂに対応付けられた提供先識別子１４ｂの提供先は、漏洩データ１６を漏洩し得るため漏洩元と推定される。
【００２６】
ただし、漏洩元の推定は、データ加工装置１０が有する処理部１２以外のユニットが行ってもよいし、データ加工装置１０以外の情報処理装置が行ってもよい。
第１の実施の形態のデータ加工装置１０によれば、複数の提供先にデータが提供される場合に、複数のサブセットと複数の提供先識別子との対応関係を示す対応情報１３が生成される。漏洩データ１６が取得されると、対応情報１３に基づいて、漏洩データ１６に含まれる何れのレコードも削除対象に指定されていない提供先識別子が検索され、検索された提供先識別子が漏洩データ１６の漏洩元を示す情報として出力される。
【００２７】
これにより、データ提供先が複数存在する場合であっても、漏洩データ１６から漏洩元を推定することが可能となる。よって、漏洩元に再発防止を要求するなどデータの保護を強化することが可能となる。また、レコードの値にノイズを付加する方法と比べて、レコードの真正性を確保することができ、データの有用性への影響を低減することができる。
【００２８】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
第２の実施の形態の情報処理装置１００は、組織が保有する元データを加工して、複数の他の組織それぞれに対して提供する提供データを生成する。また、情報処理装置１００は、漏洩データを取得した場合、漏洩データを分析して漏洩元の組織を推定する。第２の実施の形態の説明では、元データとして塩基配列のレコードを複数含むＤＮＡデータを想定する。提供元の組織としては大量のＤＮＡデータを収集する事業者を想定し、提供先の組織としてはＤＮＡデータを利用した研究開発を行う研究機関などを想定する。ＤＮＡデータは、外部に漏洩させないことを条件に有償または無償で提供される。
【００２９】
図２は、第２の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。情報処理装置１００は、第１の実施の形態のデータ加工装置１０に対応する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。なお、処理部１２は処理に応じて、ネットワーク等で互いに接続された複数の情報処理装置のＣＰＵで実現されてもよい。
【００３０】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを含んでもよく、情報処理装置１００は複数のプロセッサを有してもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００３１】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００３２】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、情報処理装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００３３】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、情報処理装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００３４】
入力信号処理部１０５は、情報処理装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウス、タッチパネル、タッチパッド、トラックボール、キーボード、リモートコントローラ、ボタンスイッチなど、任意の種類の入力デバイスを用いることができる。また、情報処理装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００３５】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００３６】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００３７】
通信インタフェース１０７は、ネットワーク１１４を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【００３８】
図３は、情報処理装置の機能例を示すブロック図である。
情報処理装置１００は、元データ記憶部１２１、パラメータ記憶部１２２、提供データ記憶部１２３、対応表記憶部１２４および漏洩データ記憶部１２５を有する。これらの記憶部は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。また、情報処理装置１００は、削除レコード数算出部１３１、識別可能レコード抽出部１３２、グルーピング部１３３、削除パターン生成部１３４、レコード削除部１３５、レコード度数低減部１３６および漏洩元推定部１３７を有する。これらの処理部は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００３９】
元データ記憶部１２１は、ＤＮＡの塩基配列を示すレコードを複数含む元データを記憶する。ＤＮＡの塩基配列は、Ａ（アデニン）、Ｇ（グアニン）、Ｃ（シトシン）、Ｔ（チミン）という４種類の塩基を含む配列である。元データにおける複数の塩基配列の長さは同一でなくてもよい。元データでは各塩基配列が上記の４種類の文字を用いて表現されていてもよいし、対応する数値や他の記号を用いて表現されていてもよい。
【００４０】
パラメータ記憶部１２２は、元データから提供データを生成するときに使用されるパラメータ値を記憶する。パラメータ値は、例えば、ユーザによって情報処理装置１００に対して入力される。情報処理装置１００は、元データから一部のレコードを削除することで元データのサブセットを提供データとして生成する。パラメータ値は、削除レコード数を決定するために使用される。パラメータ値は、想定される提供先の最大数である最大提供先数と、漏洩データから漏洩元を一意に特定できる確率を示す推定能力とを含む。最大提供先数が大きいほど削除レコード数を大きくすることになる。また、ユーザが希望する推定能力が高いほど削除レコード数を大きくすることになる。ただし、削除レコード数をパラメータ値としてユーザが直接入力することも可能である。
【００４１】
提供データ記憶部１２３は、元データから一部のレコードを削除することで生成された提供データを記憶する。提供先によって提供データは異なる。提供データ記憶部１２３は、複数の提供先に対応する複数セットの提供データを記憶し得る。提供データ記憶部１２３に記憶された提供データは、ネットワーク１１４を介して提供先の情報処理装置に対して送信されてもよい。また、提供データ記憶部１２３に記憶された提供データは、可搬記録媒体に書き込まれて提供先に対して送付されてもよい。
【００４２】
対応表記憶部１２４は、提供先を識別する提供先識別子と元データから削除したレコードを示す削除パターンとを対応付けた対応表を記憶する。対応表は提供データの生成時に作成されて保持され、漏洩元の推定時に参照される。
【００４３】
漏洩データ記憶部１２５は、提供先の組織以外の情報源から入手された漏洩データを記憶する。漏洩データは、例えば、ユーザによって入手されて情報処理装置１００に入力される。漏洩データは、インターネットなどのネットワーク上に公開されたサーバ装置から入手されることがある。また、漏洩データは、いわゆる名簿屋などの情報提供業者から入手されることがある。漏洩データは、複数の提供先のうちの何れか１つから漏洩したものであり、当該提供先に対応する提供データの一部または全部に相当する。提供データは、提供先の内部の従業員による不正行為によって漏洩することがある。また、提供データは、提供先の外部からのセキュリティ攻撃によって漏洩することがある。漏洩データに含まれるレコードが多い方が、漏洩元の推定が容易となる。
【００４４】
削除レコード数算出部１３１は、パラメータ記憶部１２２に記憶されたパラメータ値を用いて削除レコード数を算出する。例えば、提供データの中から任意の数のレコードがランダムに漏洩すると仮定する。すなわち、提供データから抽出可能なサブセットの全てのパターンが、等確率で漏洩対象となるものと仮定する。すると、削除レコード数ｒ、最大提供先数ｐおよび推定能力ｃの間に、近似的に次の不等式が成立すると考えることができる。ｒ≧ｌｏｇ２（（ｐ−１）／（１−ｃ））。削除レコード数算出部１３１は、削除レコード数ｒとして、この不等式を満たす最小の整数を採用すればよい。削除レコード数算出部１３１は、算出した削除レコード数をグルーピング部１３３および削除パターン生成部１３４に通知する。
【００４５】
識別可能レコード抽出部１３２は、元データ記憶部１２１に記憶された元データに含まれる複数のレコードを比較し、同じ塩基配列の出現数（度数）をカウントして度数分布を生成する。識別可能レコード抽出部１３２は、度数が１である塩基配列をもつレコード、すなわち、元データの中で１回しか出現しない塩基配列をもつレコードを識別可能レコードとして取り扱う。識別可能レコードは、塩基配列自体によって一意に識別できる。一方、識別可能レコード抽出部１３２は、識別可能レコード以外のレコード、すなわち、度数が１より大きい塩基配列をもつレコードを識別不能レコードとして取り扱う。
【００４６】
識別可能レコード抽出部１３２は、識別可能レコードをグルーピング部１３３に通知する。また、識別可能レコード抽出部１３２は、生成した度数分布をレコード削除部１３５に通知する。なお、ＤＮＡデータに含まれる各塩基配列は長いことが多く、完全に同一の塩基配列をもつレコードが出現する確率は小さい。よって、元データに含まれるレコードの多くは識別可能レコードであり、識別不能レコードは少数であると期待される。
【００４７】
グルーピング部１３３は、識別可能レコード抽出部１３２が元データから抽出した識別可能レコードを複数のグループに分類する。グルーピングの基準は予めグルーピング部１３３に設定されていてもよいし、ユーザが情報処理装置１００に適宜入力してもよい。
【００４８】
グルーピングでは、提供先の組織が興味をもつ可能性のある識別可能レコードの集合を１つのグループとすることが好ましい。すなわち、提供先の組織は、提供データに含まれる全てのレコードに興味があるとは限らず、提供データから一部のレコードを抽出して研究開発などに使用することがある。抽出しなかったレコードは提供先の組織において破棄されることがあり、抽出したレコードに比べて漏洩する可能性が低い。そこで、グルーピング部１３３は、特定のグループのみからレコードが漏洩した場合でも漏洩元を推定できるように、識別可能レコードを提供先の興味を基準にしてグルーピングする。
【００４９】
例えば、ある種の研究開発では塩基配列の先頭の塩基が重要な意味をもつため、塩基配列の先頭が特定の塩基であるレコードのみ使用される可能性があると仮定する。この場合、グルーピング部１３３は、識別可能レコードを塩基配列の先頭の塩基に基づいて最大４つのグループに分類することが考えられる。すなわち、塩基配列の先頭がＡのグループ、Ｇのグループ、ＣのグループおよびＴのグループが生成され得る。このようなレコードの使用方法に関する知見は、例えば、ユーザによって入力される。
【００５０】
グルーピング部１３３は、グルーピング結果と削除レコード数算出部１３１から通知された削除レコード数とに基づいて、複数の識別可能レコードをソートする。識別可能レコードのソートでは、できる限り同じグループに属する識別可能レコードが連続して出現しないように並べ替えられる。これにより、ある提供先に対応する提供データを生成する際に、できる限り異なるグループに属する識別可能レコードが削除対象レコードとして選択されるようになる。グルーピング部１３３は、ソートした識別可能レコードのリストを削除パターン生成部１３４に通知する。
【００５１】
削除パターン生成部１３４は、提供先の組織を識別する提供先識別子を取得する。提供先識別子は、例えば、ユーザが情報処理装置１００に入力する。削除パターン生成部１３４は、グルーピング部１３３から通知された識別可能レコードのリストの中から、削除レコード数算出部１３１から通知された削除レコード数だけ識別可能レコードを選択する。例えば、削除パターン生成部１３４は、識別可能レコードのリストの先頭から順に、削除レコード数だけ識別可能レコードを選択する。削除パターン生成部１３４は、選択した識別可能レコードを削除対象レコードとして決定し、削除対象レコードの集合を示す削除パターンを生成する。削除パターン生成部１３４は、提供先識別子と削除パターンとを対応付けて、対応表記憶部１２４に記憶された対応表に登録する。また、削除パターン生成部１３４は、生成した削除パターンをレコード削除部１３５に通知する。
【００５２】
レコード削除部１３５は、塩基配列と度数を対応付けた度数分布を識別可能レコード抽出部１３２から取得し、削除パターン生成部１３４から通知された削除パターンが示す塩基配列を、取得した度数分布から削除して修正度数分布を生成する。レコード削除部１３５は、修正度数分布をレコード度数低減部１３６に通知する。
【００５３】
レコード度数低減部１３６は、レコード削除部１３５から修正度数分布を取得し、修正度数分布の中から度数が１より大きい塩基配列、すなわち、識別不能レコードの塩基配列を検出する。レコード度数低減部１３６は、検出した塩基配列の度数を、識別可能レコードの削除割合と整合するように低減させる。識別可能レコードのみが削除対象となり識別不能レコードが削除対象にならないとすると、提供データに含まれる識別不能レコードの割合が元データよりも大きくなってしまうためである。識別不能レコードに相当する塩基配列の度数を低減させることで、識別可能レコードの削除の影響を軽減でき、提供データがもつ特性を元データの特性に近付けることができる。
【００５４】
例えば、元データに含まれる識別可能レコードの数をｎ、削除レコード数をｒ、ある塩基配列の度数をｎｔ（ｎｔは１より大きい整数）とすると、低減度数ｒｔが次のように算出される。ｒｔ＝ｒ／ｎ×ｎｔ。ただし、この等式の右辺が割り切れない場合、四捨五入や切り捨てや切り上げなどにより低減度数ｒｔを整数にする。レコード度数低減部１３６は、修正度数分布における度数ｎｔをｎｔ−ｒｔに変更する。レコード度数低減部１３６は、度数調整後の修正度数分布を提供データとして提供データ記憶部１２３に格納する。このとき、修正度数分布にレコードＩＤが含まれている場合はレコードＩＤが削除される。
【００５５】
なお、削除レコード数算出部１３１、識別可能レコード抽出部１３２およびグルーピング部１３３の処理は、１つの元データに対して１回実行すればよい。一方、削除パターン生成部１３４、レコード削除部１３５およびレコード度数低減部１３６の処理は、１つの提供先識別子に対して１回実行される。３つの提供先が存在する場合、削除パターン生成部１３４、レコード削除部１３５およびレコード度数低減部１３６の処理が３回実行され、３つの提供先に対応する３セットの提供データが生成される。
【００５６】
漏洩元推定部１３７は、漏洩データ記憶部１２５に記憶された漏洩データを分析して漏洩元を推定する。漏洩元推定部１３７は、元データ記憶部１２１に記憶された元データまたは識別可能レコード抽出部１３２が生成した度数分布を参照して、漏洩データに含まれる識別可能レコードを特定する。漏洩元推定部１３７は、対応表記憶部１２４に記憶された対応表に含まれる削除パターンと、漏洩データに出現する識別可能レコードとを照合して、漏洩元の候補を絞り込む。提供データに含まれていなかった識別可能レコードは当該提供データを受け取った組織からは漏洩し得ない。このため、漏洩データに出現する識別可能レコードが削除パターンに含まれている提供先は漏洩元から除外することができる。
【００５７】
漏洩元推定部１３７は、推定した漏洩元を示す情報を出力する。例えば、漏洩元推定部１３７は、漏洩元と推定された提供先を示す提供先識別子を出力する。漏洩元推定部１３７は、漏洩元を示す情報をディスプレイ１１１に表示してもよいし、漏洩元を示す情報をネットワーク１１４を介して他の情報処理装置に送信してもよい。なお、漏洩元を１つに絞り込むことができなかった場合、漏洩元推定部１３７は、推定失敗を示すメッセージを出力してもよいし、漏洩元の候補を示す情報を出力してもよい。
【００５８】
なお、図３では、漏洩元推定部１３７は情報処理装置１００に組み込まれているが、情報処理装置１００から切り離し、例えば、漏洩元を推定する装置として他の情報処理装置に組み込まれ、ネットワーク経由で情報処理装置１００に接続されてもよい。
【００５９】
図４は、元データテーブルの例を示す図である。
元データテーブル１４１は、元データ記憶部１２１に記憶される。元データテーブル１４１は、レコードＩＤおよび塩基配列の項目を含む。レコードＩＤの項目には、レコードを識別する識別番号が登録される。塩基配列の項目には、塩基配列の各塩基をＡ，Ｇ，Ｃ，Ｔまたはこれに対応する数字や記号を用いて表した文字列が登録される。
【００６０】
ここでは説明を簡単にするため、全ての塩基配列を長さ３の配列としている。ただし、塩基配列は長さがより大きくてもよく、長さが統一されていなくてもよい。また、ここではレコードＩＤとして連番の識別番号を使用している。ただし、レコードＩＤとして塩基配列のハッシュ値など他の数値や記号を使用してもよい。また、ここでは元データテーブル１４１の各レコードがレコードＩＤを含んでいる。ただし、レコードＩＤと塩基配列とが対応付けられていれば、各レコードが明示的にレコードＩＤを含まなくてもよい。例えば、元データテーブル１４１の先頭からのオフセットなど、各レコードの位置から当該レコードのレコードＩＤを特定できるようにしてもよい。
【００６１】
また、第２の実施の形態では元データとしてＤＮＡデータを使用しているが、他の種類の元データを情報処理装置１００が扱うことも可能である。元データとしては、公開されることが好ましくない秘密情報が使用され得る。例えば、年齢、性別、住所などの複数の個人情報項目を含み、１つのレコードが１人分の個人情報を表している個人情報セットが挙げられる。また、経度、緯度、時刻などの複数の測定情報項目を含み、１つのレコードが人または物の一時点の位置を表している位置情報セットが挙げられる。
【００６２】
元データは、好ましくは、対象ドメインを構成する全ての人または物に関する情報を網羅的に含んでいる全数データではなく、一部の人または物に関する情報をサンプルとして含んでいるサンプルデータである。元データがサンプルデータであれば、元データから少数のレコードを削除しても提供データの価値は低下しないと期待される。
【００６３】
図５は、パラメータテーブルの例を示す図である。
パラメータテーブル１４２は、パラメータ記憶部１２２に記憶される。パラメータテーブル１４２は、パラメータ名とパラメータ値とを対応付けて記憶する。パラメータには、最大提供先数ｐ、推定能力ｃおよび削除レコード数ｒが含まれる。
【００６４】
最大提供先数ｐと推定能力ｃはユーザによって入力される。削除レコード数ｒは最大提供先数ｐと推定能力ｃから算出され、ｒ≧ｌｏｇ２（（ｐ−１）／（１−ｃ））を満たす最小の整数である。ただし、ユーザが削除レコード数ｒを直接入力してもよい。一例として、最大提供先数ｐ＝３、推定能力ｃ＝０．７５がユーザから入力される。これは、提供先の組織が最大で３つ存在すること、および、７５％の確率で漏洩データから漏洩元を特定できる推定能力が要求されることを示している。この場合、最大提供先数ｐ＝３のもとで推定能力ｃ＝０．７５を達成するために削除レコード数ｒ＝３が決定される。
【００６５】
図６は、度数分布テーブルの例を示す図である。
度数分布テーブル１４３は、識別可能レコード抽出部１３２によって元データテーブル１４１から生成される。度数分布テーブル１４３は、塩基配列、度数およびレコードＩＤの項目を含む。塩基配列の項目には、塩基配列を示す文字列が登録される。度数の項目には、元データテーブル１４１に当該塩基配列が出現した回数が登録される。レコードＩＤの項目には、当該塩基配列を含むレコードのレコードＩＤが登録される。ただし、度数が１である塩基配列を含む識別可能レコードのレコードＩＤを登録すればよく、度数が１より大きい塩基配列を含む識別不能レコードのレコードＩＤは省略してもよい。
【００６６】
例えば、元データテーブル１４１に含まれるレコード＃１〜＃１２のうち、レコード＃１，＃６，＃１１はレコードＩＤ以外の値が同一である識別不能レコードである。レコード＃１，＃６，＃１１は塩基配列「ＡＡＡ」を含むため、塩基配列「ＡＡＡ」の度数は３である。一方、レコード＃１〜＃１２のうち、レコード＃２〜＃５，＃７〜＃１０，＃１２はレコードＩＤ以外の値も同一のものが存在しない識別可能レコードである。これら９個のレコードそれぞれに含まれる塩基配列の度数は１である。よって、度数分布テーブル１４３には、度数３の塩基配列１個と、度数１の塩基配列９個が登録される。
【００６７】
図７は、グループテーブルの例を示す図である。
グループテーブル１４４は、グルーピング部１３３によって度数分布テーブル１４３から生成される。グループテーブル１４４は、グループＩＤ、レコードＩＤおよび塩基配列の項目を含む。グループＩＤの項目には、グループを識別する識別子が登録される。レコードＩＤの項目には、識別可能レコードのレコードＩＤが登録される。塩基配列の項目には、識別可能レコードに含まれる塩基配列を示す文字列が登録される。
【００６８】
グルーピングでは、度数分布テーブル１４３から度数が１である識別可能レコードのみ抽出され、識別可能レコードが複数のグループに分類される。１つのグループは１以上の識別可能レコードを含む。よって、グループテーブル１４４では、１つのグループＩＤに対して１以上のレコードＩＤが対応付けられる。
【００６９】
ここでは、塩基配列の先頭の塩基に基づいて識別可能レコードを分類するよう、グルーピング部１３３が設定されていると仮定する。グループＧＣは、先頭の塩基が「Ｃ」である塩基配列を示すグループであり、レコード＃２，＃４，＃８，＃１０の４個の識別可能レコードを含む。グループＧＧは、先頭の塩基が「Ｇ」である塩基配列を示すグループであり、レコード＃３，＃９，＃１２の３個の識別可能レコードを含む。グループＧＴは、先頭の塩基が「Ｔ」である塩基配列を示すグループであり、レコード＃５，＃７の２個の識別可能レコードを含む。ここでは、先頭の塩基が「Ａ」である塩基配列を含む識別可能レコードが存在しないため、「Ａ」に対応するグループは生成されていない。
【００７０】
なお、グルーピング部１３３は、元データの種類に応じて様々なグルーピング基準を採用することが可能である。ユーザの知見に基づいて、適切なグルーピング基準が選択される。例えば、個人情報セットの識別可能レコードは、１０代、２０代、３０代といった年齢層で分類することもできるし、住所に含まれる行政区画名で分類することもできる。また、例えば、位置情報セットの識別可能レコードは、１０時、１１時、１２時といった時間帯で分類することもできるし、経度および緯度の範囲で分類することもできる。
【００７１】
図８は、識別可能データテーブルの例を示す図である。
識別可能データテーブル１４５は、グルーピング部１３３によってグループテーブル１４４から生成される。識別可能データテーブル１４５は、識別可能レコードについてレコードＩＤおよび塩基配列を含む。識別可能データテーブル１４５では、グループテーブル１４４に基づいて複数の識別可能レコードがソートされている。できる限り同じグループに属する識別可能レコードが連続しないように並べられている。
【００７２】
例えば、識別可能データテーブル１４５の先頭から順に、グループＧＣのレコード＃４、グループＧＧのレコード＃１２、グループＧＴのレコード＃５、グループＧＣのレコード＃１０、グループＧＧのレコード＃３、グループＧＴのレコード＃７と並んでいる。これは、グループＧＣ，ＧＧ，ＧＴから１つずつ順番に（巡回的に）識別可能レコードを選択したものである。これに続いて、グループＧＣのレコード＃８、グループＧＧのレコード＃９、グループＧＣのレコード＃２と並んでいる。
【００７３】
図９は、対応表の例を示す図である。
対応表１４６は、対応表記憶部１２４に記憶される。対応表１４６は、提供先識別子および削除パターンの項目を含む。提供先識別子の項目には、ユーザから入力された識別子が登録される。提供先識別子として提供先の組織の名称を用いてもよい。削除パターンの項目には、削除する識別可能レコードのレコードＩＤが列挙される。
【００７４】
削除パターンは、識別可能データテーブル１４５の上から順に削除レコード数ｒだけ識別可能レコードを抽出することで生成できる。例えば、最初に提供先識別子Ｘが入力されると、識別可能データテーブル１４５の上から順にレコード＃４，＃１２，＃５が選択され、削除パターン「４，５，１２」が生成される。次に、提供先識別子Ｙが入力されると、識別可能データテーブル１４５の上から順にレコード＃１０，＃３，＃７が選択され、削除パターン「３，７，１０」が生成される。次に、提供先識別子Ｚが入力されると、識別可能データテーブル１４５の上から順にレコード＃８，＃９，＃２が選択され、削除パターン「２，８，９」が生成される。
【００７５】
なお、第２の実施の形態では異なる提供先の間で削除対象レコードが重複しないように削除パターンを生成している。ただし、異なる提供先の間で削除パターンが完全に一致しなければよく、一部の削除対象レコードが重複してもよい。また、識別可能レコード数ｎが十分に大きい場合、すなわち、識別可能レコード数ｎが削除レコード数ｒと最大提供先数ｐの積よりも十分に大きい場合、簡易的な方法で削除対象レコードを選択することもできる。例えば、ｎ個の識別可能レコードの中からｒ個をランダムに選択する方法によっても、異なる提供先の間で削除対象レコードが重複しない可能性が高い。
【００７６】
図１０は、修正度数分布テーブルの例を示す図である。
修正度数分布テーブル１４７は、レコード削除部１３５によって度数分布テーブル１４３と対応表１４６から生成される。修正度数分布テーブル１４７は、度数分布テーブル１４３をコピーして幾つかの識別可能レコードを削除したものである。修正度数分布テーブル１４７は提供先識別子毎に生成される。ユーザから提供先識別子Ｘが入力されたとき、度数分布テーブル１４３がコピーされると共に、対応表１４６から提供先識別子Ｘに対応する削除パターン「４，５，１２」が検索される。度数分布テーブル１４３のコピーからレコード＃４，＃５，＃１２を削除したものが修正度数分布テーブル１４７となる。
【００７７】
図１１は、提供データテーブルの例を示す図である。
提供データテーブル１４８は、レコード度数低減部１３６によって修正度数分布テーブル１４７から生成され、提供データ記憶部１２３に格納される。提供データテーブル１４８は提供先識別子毎に生成される。修正度数分布テーブル１４７から提供データテーブル１４８を生成するにあたって、塩基配列と度数を残してレコードＩＤが削除される。ただし、提供データテーブル１４８にレコードＩＤを残すようにしてもよい。
【００７８】
また、修正度数分布テーブル１４７から提供データテーブル１４８を生成するにあたって、識別不能レコードに相当する塩基配列の度数が修正される。ある塩基配列の度数ｎｔ、識別可能レコード数ｎ、削除レコード数ｒから低減度数ｒｔ＝ｒ／ｎ×ｎｔが算出され、度数ｎｔがｎｔ−ｒｔに変更される。例えば、塩基配列「ＡＡＡ」の度数ｎｔ＝３、識別可能レコード数ｎ＝９、削除レコード数ｒ＝３から低減度数ｒｔ＝１が算出され、度数ｎｔ＝３がｎｔ−ｒｔ＝３−１＝２に変更される。識別可能レコードについての塩基配列と度数は、修正度数分布テーブル１４７と同じである。
【００７９】
図１２は、漏洩データテーブルの例を示す図である。
漏洩データテーブル１４９は、漏洩データ記憶部１２５に記憶される。漏洩データテーブル１４９は、塩基配列、度数およびレコードＩＤの項目を含む。ただし、レコードＩＤは入手した漏洩データ自体には含まれておらず、情報処理装置１００が塩基配列から特定して付加したものである。漏洩元推定部１３７は、元データテーブル１４１または度数分布テーブル１４３から塩基配列に対応するレコードＩＤを検索して、漏洩データテーブル１４９の塩基配列に対して付加する。塩基配列に対応するレコードＩＤが複数検索された場合、すなわち、識別不能レコードに含まれる塩基配列である場合、当該塩基配列に対しては度数分布テーブル１４３と同様にレコードＩＤを省略することができる。
【００８０】
漏洩データテーブル１４９に出現する識別可能レコードと対応表１４６から、漏洩元を推定することができる。例えば、漏洩データテーブル１４９には識別可能レコードとしてレコード＃２，＃４，＃５，＃８が出現している。提供先識別子Ｘに対応する削除パターンにはレコード＃４，＃５が含まれる。よって、提供先識別子Ｘが示す提供先は漏洩元である可能性が低い。同様に、提供先識別子Ｚに対応する削除パターンにはレコード＃２，＃８が含まれる。よって、提供先識別子Ｚが示す提供先は漏洩元である可能性が低い。一方、提供先識別子Ｙに対応する削除パターンにはレコード＃２，＃４，＃５，＃８の何れも含まれていない。よって、提供先識別子Ｙが示す提供先はこれらの識別可能レコードを漏洩させることが可能であり、漏洩元である可能性がある。
【００８１】
このように、情報処理装置１００は漏洩データ自体から漏洩元を推定することができる。また、上記の漏洩データは、提供先識別子Ｙが示す提供先が受け取ったレコード＃２，＃４，＃５，＃８，＃９，＃１２のうちの一部のみ含んでいる。しかし、漏洩データが提供データのサブセットであっても漏洩元を推定し得る。
【００８２】
次に、情報処理装置１００の処理手順について説明する。
図１３は、元データ分析の手順例を示すフローチャートである。
元データ分析は、１セットの元データに対して１回実行される。
【００８３】
（Ｓ１０）削除レコード数算出部１３１は、パラメータ記憶部１２２に記憶されたパラメータテーブル１４２から最大提供先数ｐと推定能力ｃを取得する。
（Ｓ１１）削除レコード数算出部１３１は、ステップＳ１０で取得した最大提供先数ｐと推定能力ｃから削除レコード数ｒを決定する。削除レコード数ｒは、例えば、ｒ≧ｌｏｇ２（（ｐ−１）／（１−ｃ））を満たす最小の整数である。
【００８４】
（Ｓ１２）識別可能レコード抽出部１３２は、元データ記憶部１２１に記憶された元データテーブル１４１から度数分布テーブル１４３を生成する。このとき、識別可能レコード抽出部１３２は、元データテーブル１４１に含まれるレコード同士を比較して塩基配列毎の度数をカウントする。また、識別可能レコード抽出部１３２は、度数が１である塩基配列に対しては当該塩基配列を含むレコードのレコードＩＤを付加する。
【００８５】
（Ｓ１３）識別可能レコード抽出部１３２は、度数分布テーブル１４３から度数が１である塩基配列とレコードＩＤを識別可能レコードとして抽出する。
（Ｓ１４）グルーピング部１３３は、所定のグルーピング基準に従って、ステップＳ１３で抽出された識別可能レコードを複数のグループに分類し、グループテーブル１４４を生成する。例えば、グルーピング部１３３は、塩基配列の先頭の塩基が同一である識別可能レコードを集めてグループを形成する。
【００８６】
（Ｓ１５）グルーピング部１３３は、グループテーブル１４４に識別可能レコードが残っているか、すなわち、ステップＳ１４で生成した複数のグループの少なくとも１つに識別可能レコードが残っているか判断する。グループテーブル１４４に識別可能レコードがある場合はステップＳ１６に処理が進み、無い場合は元データ分析が終了する。
【００８７】
（Ｓ１６）グルーピング部１３３は、ステップＳ１４で生成した複数のグループを残っている識別可能レコードの数の降順にソートする。グルーピング部１３３は、識別可能レコード数が多い順にグループ名をＧ１，Ｇ２，…と変更する。
【００８８】
（Ｓ１７）グルーピング部１３３は、変数ｉ＝１に初期化する。
（Ｓ１８）グルーピング部１３３は、変数ｉの値がステップＳ１１で決定された削除レコード数ｒ以下であり、かつ、グループＧｉに識別可能レコードが残っているか（グループＧｉが空集合でないか）判断する。この条件を満たす場合、ステップＳ１９に処理が進む。この条件を満たさない場合、すなわち、変数ｉの値が削除レコード数ｒより大きいかまたはグループＧｉが空集合である場合、ステップＳ１５に処理が進む。
【００８９】
（Ｓ１９）グルーピング部１３３は、グループＧｉから識別可能レコードを１つ抽出し、抽出した識別可能レコードを識別可能データテーブル１４５の末尾に登録する。グループＧｉから抽出する識別可能レコードは、例えば、ランダムに選択される。
【００９０】
（Ｓ２０）グルーピング部１３３は、変数ｉの値を１だけ増加させる。そして、ステップＳ１８に処理が進む。
例えば、図７のグループテーブル１４４の場合、｜ＧＣ｜＝４，｜ＧＧ｜＝３，｜ＧＴ｜＝２であるため、Ｇ１＝ＧＣ，Ｇ２＝ＧＧ，Ｇ３＝ＧＴとソートされる。内側ループにおいてｉ＝１のときにグループＧ１＝ＧＣからレコード＃４が選択され、ｉ＝２のときにグループＧ２＝ＧＧからレコード＃１２が選択され、ｉ＝３のときにグループＧ３＝ＧＴからレコード＃５が選択される。ｉ＝４になるとｉ＞ｒであるため内側ループが打ち切られる。
【００９１】
次に、｜ＧＣ｜＝３，｜ＧＧ｜＝２，｜ＧＴ｜＝１であるため、Ｇ１＝ＧＣ，Ｇ２＝ＧＧ，Ｇ３＝ＧＴとソートされる。上記と同様に、内側ループにおいてｉ＝１のときにグループＧ１＝ＧＣからレコード＃１０が選択され、ｉ＝２のときにグループＧ２＝ＧＧからレコード＃３が選択され、ｉ＝３のときにグループＧ３＝ＧＴからレコード＃７が選択される。ｉ＝４になるとｉ＞ｒであるため内側ループが打ち切られる。
【００９２】
次に、｜ＧＣ｜＝２，｜ＧＧ｜＝１，｜ＧＴ｜＝０であるため、Ｇ１＝ＧＣ，Ｇ２＝ＧＧ，Ｇ３＝ＧＴとソートされる。内側ループにおいてｉ＝１のときにグループＧ１＝ＧＣからレコード＃８が選択され、ｉ＝２のときにグループＧ２＝ＧＧからレコード＃９が選択される。ｉ＝３になるとグループＧ３＝ＧＴ＝φであるため内側ループが打ち切られる。次に、｜ＧＣ｜＝１，｜ＧＧ｜＝｜ＧＴ｜＝０であるため、Ｇ１＝ＧＣ，Ｇ２＝ＧＧ，Ｇ３＝ＧＴとソートされる。内側ループにおいてｉ＝１のときにグループＧ１＝ＧＣからレコード＃２が選択される。ｉ＝２になるとグループＧ２＝ＧＧ＝φであるため内側ループが打ち切られる。そして、｜ＧＣ｜＝｜ＧＧ｜＝｜ＧＴ｜＝０であるため、元データ分析が終了する。
【００９３】
図１４は、提供データ生成の手順例を示すフローチャートである。
提供データ生成は、１つの提供先識別子に対して１回実行される。
（Ｓ３０）削除パターン生成部１３４は、提供先識別子ｄを取得する。提供先識別子ｄは、例えば、１セットの提供データを生成したいときにユーザから指定される。
【００９４】
（Ｓ３１）削除パターン生成部１３４は、対応表記憶部１２４に記憶された対応表１４６に提供先識別子ｄが登録されているか判断する。提供先識別子ｄが登録されている場合はステップＳ３２に処理が進み、登録されていない場合はステップＳ３３に処理が進む。
【００９５】
（Ｓ３２）削除パターン生成部１３４は、対応表１４６から提供先識別子ｄに対応する削除パターンＰを検索する。そして、ステップＳ３５に処理が進む。
（Ｓ３３）削除パターン生成部１３４は、識別可能データテーブル１４５の上から順に削除レコード数ｒだけ識別可能レコードを抽出する。
【００９６】
（Ｓ３４）削除パターン生成部１３４は、ステップＳ３３で抽出したｒ個の識別可能レコードのレコードＩＤを列挙した削除パターンＰを生成する。削除パターン生成部１３４は、提供先識別子ｄと削除パターンＰを対応付けて対応表１４６に登録する。
【００９７】
（Ｓ３５）レコード削除部１３５は、度数分布テーブル１４３をコピーする。レコード削除部１３５は、ステップＳ３２またはステップＳ３４の削除パターンＰに従って、度数分布テーブル１４３のコピーから一部の識別可能レコードを削除する。すなわち、度数分布テーブル１４３のコピーから、削除パターンＰに列挙されたレコードＩＤをもつ識別可能レコードを削除する。これにより、修正度数分布テーブル１４７が生成される。
【００９８】
（Ｓ３６）レコード度数低減部１３６は、修正度数分布テーブル１４７から識別不能レコードに相当する塩基配列、すなわち、度数が１より大きい塩基配列を１つ選択する。
（Ｓ３７）レコード度数低減部１３６は、識別可能レコード数ｎ、削除レコード数ｒおよび選択した塩基配列の度数ｎｔから低減度数ｒｔを決定する。低減度数ｒｔは、例えば、ｒｔ＝ｒ／ｎ×ｎｔによって算出される非負整数である。
【００９９】
（Ｓ３８）レコード度数低減部１３６は、修正度数分布テーブル１４７における選択した塩基配列の度数をｎｔからｎｔ−ｒｔに変更する。
（Ｓ３９）レコード度数低減部１３６は、修正度数分布テーブル１４７から識別不能レコードに相当する塩基配列の全てを選択したか判断する。該当の全ての塩基配列を選択した場合はステップＳ４０に処理が進み、それ以外の場合はステップＳ３６に処理が進む。
【０１００】
（Ｓ４０）レコード度数低減部１３６は、修正度数分布テーブル１４７からレコードＩＤの項目を削除することで提供データテーブル１４８を生成する。レコード度数低減部１３６は、提供データテーブル１４８を提供データ記憶部１２３に格納する。
【０１０１】
図１５は、漏洩元推定の手順例を示すフローチャートである。
漏洩元推定は、１セットの漏洩データに対して１回実行される。
（Ｓ５０）漏洩元推定部１３７は、漏洩データ記憶部１２５に記憶された漏洩データテーブル１４９を取得する。この時点で漏洩データにはレコードＩＤが含まれていない。
【０１０２】
（Ｓ５１）漏洩元推定部１３７は、対応表記憶部１２４に記憶された対応表１４６を参照して、これまでＤＮＡデータを提供した提供先の集合を特定する。ここで特定される提供先の集合は、初期状態における漏洩元候補の集合となる。
【０１０３】
（Ｓ５２）漏洩元推定部１３７は、漏洩データテーブル１４９に含まれる複数の塩基配列の中から１つの塩基配列を選択する。
（Ｓ５３）漏洩元推定部１３７は、選択した塩基配列を含むレコードのレコードＩＤを、元データテーブル１４１または度数分布テーブル１４３から検索する。
【０１０４】
（Ｓ５４）漏洩元推定部１３７は、ステップＳ５３においてレコードＩＤが１つに特定されたか、すなわち、選択した塩基配列が識別可能レコードに相当するか判断する。レコードＩＤが１つに特定された場合はステップＳ５５に処理が進み、レコードＩＤが２以上検索された場合はステップＳ５２に処理が進む。
【０１０５】
（Ｓ５５）漏洩元推定部１３７は、特定されたレコードＩＤを含む削除パターンを対応表１４６から検索する。漏洩元推定部１３７は、ステップＳ５１で特定した漏洩元候補の集合から、検索された削除パターンに対応する提供先を除外する。
【０１０６】
（Ｓ５６）漏洩元推定部１３７は、漏洩データテーブル１４９に含まれる全ての塩基配列を選択したか判断する。全ての塩基配列を選択した場合はステップＳ５７に処理が進み、未選択の塩基配列がある場合はステップＳ５２に処理が進む。
【０１０７】
（Ｓ５７）漏洩元推定部１３７は、ステップＳ５５で除外されずに残った提供先を漏洩元と推定する。好ましくは、この時点で漏洩元候補は１つに絞り込まれている。漏洩元推定部１３７は、漏洩元の提供先識別子など漏洩元を示す漏洩元情報を出力する。例えば、漏洩元推定部１３７は、ディスプレイ１１１に漏洩元情報を表示させる。
【０１０８】
第２の実施の形態の情報処理装置１００によれば、複数の組織にデータを提供した場合であっても、漏洩データ自体から漏洩元の組織を推定することができる。よって、漏洩元の組織に再発防止を要求するなどデータの保護を強化することが可能となる。また、提供するデータに識別性を付与する方法として、データから少数のレコードを削除する方法が用いられる。よって、レコードの値にノイズを付加する方法と比べて、レコードの真正性を確保することができ、提供先にとってのデータの価値が低下するのを防止できる。また、空白の長さなどの修飾情報を変化させる方法と比べて、提供先の組織がデータを正規化するなど修飾情報が消えてしまうような操作を行っても、識別性が喪失しない。
【０１０９】
また、所望の推定能力から削除レコード数が決定されるため、漏洩元を一意に特定できる確率とデータの有用性とのバランスを調整することが容易となる。また、提供先の組織によるデータの使用方法の観点からレコードが複数のグループに分類され、異なるグループに属するレコードが混在して削除される。よって、提供先の組織が１つのグループに属するレコードのみを使用しており当該１つのグループに属するレコードのみを漏洩させた場合であっても、漏洩元を特定できる可能性が高くなる。また、識別可能レコードの削除割合と整合するように識別不能レコードも削除されるため、削除後のデータが削除前のデータに近い特性を維持することが可能となる。
【符号の説明】
【０１１０】
１０  データ加工装置
１１  記憶部
１２  処理部
１３  対応情報
１４ａ，１４ｂ，１４ｃ  提供先識別子
１５ａ，１５ｂ，１５ｃ  削除パターン
１６  漏洩データ
１７  漏洩元情報
【図１】
2019121138.tif 000003
【図２】
2019121138.tif 000004
【図３】
2019121138.tif 000005
【図４】
2019121138.tif 000006
【図５】
2019121138.tif 000007
【図６】
2019121138.tif 000008
【図７】
2019121138.tif 000009
【図８】
2019121138.tif 000010
【図９】
2019121138.tif 000011
【図１０】
2019121138.tif 000012
【図１１】
2019121138.tif 000013
【図１２】
2019121138.tif 000014
【図１３】
2019121138.tif 000015
【図１４】
2019121138.tif 000016
【図１５】
2019121138.tif 000017