(57)【要約】【課題】個票のデータに含まれる個体識別子としての一意識別子と個票のデータの提供者の識別子とを復元可能に秘匿化する。【解決手段】本方法は、第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて、第３の識別子を生成し、データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する処理を含む。【選択図】図１
2014098753.tif 000002
【特許請求の範囲】
【請求項１】
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて、第３の識別子を生成し、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する
処理を含み、コンピュータにより実行される情報処理方法。
【請求項２】
前記第３の識別子の生成が、前記第１の識別子と前記第２の識別子との組に対する暗号化処理を含む
請求項１記載の情報処理方法。
【請求項３】
前記第３の識別子の生成が、前記第２の識別子の総数、又は前記第２の識別子の総数及び前記第１の識別子に対応付けられている第２の識別子の最大数に基づき特定される符号化方式にて前記第１および第２の識別子を符号化する処理を含む
請求項１又は２記載の情報処理方法。
【請求項４】
前記第１の識別子と前記第３の識別子との関係を表すデータを、前記置換する処理後に破棄する処理をさらに含む請求項１乃至３のいずれか１つ記載の情報処理方法。
【請求項５】
特定の第３の識別子を受信すると、当該特定の第３の識別子から、第１の識別子と１又は複数の第２の識別子とを抽出する処理をさらに含む請求項１乃至４のいずれか１つ記載の情報処理方法。
【請求項６】
前記特定の第３の識別子から抽出された第１の識別子の符号から第１の識別子を復号し、
前記特定の第３の識別子から抽出された第２の識別子の符号から１又は複数の第２の識別子を復号する
処理をさらに含む請求項５記載の情報処理方法。
【請求項７】
第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、
抽出された前記第２の識別子の符号から第２の識別子を復号し、
抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する
処理を含み、コンピュータにより実行される情報処理方法。
【請求項８】
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて第３の識別子を生成し、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する
処理を、コンピュータに実行させるためのプログラム。
【請求項９】
第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、
抽出された前記第２の識別子の符号から第２の識別子を復号し、
抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する
処理を、コンピュータに実行させるためのプログラム。
【請求項１０】
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部と、
前記データ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出する抽出部と、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて第３の識別子を生成する生成部と、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する置換部と、
を有する情報処理装置。
【請求項１１】
第１の識別子を受信するデータ受信部と、
前記第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、抽出された前記第２の識別子の符号から第２の識別子を復号し、抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する復号部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報の秘匿化技術に関する。
【背景技術】
【０００２】
近年、多数の個票を集約して有用な情報を抽出することが期待されている。個票とは、何らかの個体に関する状態や行動などのデータを意味し、マイクロデータとも呼ばれる。個体とは、ユーザ、参加者、消費者、患者などとしての個人が代表的なものであるが、組織、動物の個体、通信端末、計器、工業又は商業における部品、製品、商品などであっても良い。個票のデータは、一般に、個体を指し示す識別子（identifier、ＩＤとも呼ばれる）と、その個体の個別の状態や行動などのデータとを組み合わせたデータである。例えば、各個体の年齢や住所は何か、どの個体が何時にどこにいたか、どの店でどの商品群を買ったか、ある日時に行った検査でどのような値が得られたかなどが、個票のデータに含まれる。
【０００３】
一般に、多くの個票のデータを集めて集計したり分析したりすることで有益な情報が得られることがある。例えば、何時ごろどの地域からどの地域へ移動する個体がいるか、どの検査値が重大な事象と相関があるかなどが分かることで、研究、作業の効率化、将来の予測などに役に立つ。このとき、多くの個票のデータが集まることが望ましく、集計や分析に外部の知見や専門性がしばしば求められることから、個票のデータを保持及び取得する者から、別の者に個票のデータを開示することが求められる。ここで開示とは、不特定多数への公開だけでなく、実際に集計や分析を行う第三者への提供も含む。
【０００４】
こうした個票のデータの集約及び開示を行う際には、セキュリティやプライバシーを考慮すべきである。ここでは、個票のデータは一般に個人を特定可能な情報を含み、また機微な情報が含まれることがあるためである。何を機微な情報とみなすかは場合によって異なるが、典型的には健康状態、商品購入やサービス利用の履歴、ある時点での存在位置などが機微な情報とみなされることが多い。こうした機微な情報が他人に知られるとプライバシーに抵触するだけでなく、場合によっては犯罪や経済的や社会的不利益を被ることになるため、セキュリティの課題でもある。したがって、機微な情報を不適切な何者かに知られないよう対策をとることが求められる。
【０００５】
このため、個票のデータに含まれる個体識別子としての一意識別子（ＵＩＤ：Unique IDentifier）と、個票のデータを保持及び取得する者（集約を行う者にデータを提供するので提供者とも呼ぶ）の識別子とを、何らかの方法で秘匿化することが望まれる。
【０００６】
識別子の暗号化については、例えば以下のような技術が存在する。すなわち、元の識別子を単に暗号化するだけでなく、元の識別子に何らかのパラメータを結合させてから暗号化して第二識別子を生成するものである。この技術においてパラメータとは、識別子の送信相手のアドレスや送信する時間帯や状況などを指す。これにより、１つの識別子から送信相手や送信時間又は状況などによって異なる第二識別子を重複なく生成することができ、暗号鍵を知る者だけは第二識別子から元の識別子を知ることができる。しかしながら、この技術を用いると、元の識別子が同じであってもパラメータが異なる場合には、異なる第二識別子が生成されてしまうので、分析者が個票のデータを分析する際には、異なる分析対象物等として取り扱うことになり、結果として分析結果が異なるものになってしまう可能性がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３１１１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、本技術の目的は、一側面によれば、個票のデータに含まれる個体識別子としての一意識別子と個票のデータを提供する提供者の識別子とを復元可能に秘匿化するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本技術の第１の態様に係る情報処理方法は、（Ａ）第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、（Ｂ）第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて、第３の識別子を生成し、（Ｃ）データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する処理を含む。
【００１０】
本技術の第２の態様に係る情報処理方法は、第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、抽出された第２の識別子の符号から第２の識別子を復号し、抽出された第３の識別子の符号から１又は複数の第３の識別子を復号する処理を含む。
【発明の効果】
【００１１】
個票のデータに含まれる個体識別子としての一意識別子と個票のデータを提供する提供者の識別子とを復元可能に秘匿化できるようになる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態の概要を示す図である。
【図２】図２は、実施の形態のシステム概要を示す図である。
【図３】図３は、集約者装置の機能ブロック図である。
【図４】図４は、集約データ生成のための処理フローを示す図である。
【図５】図５は、第１テーブルの一例を示す図である。
【図６】図６は、第２テーブルの一例を示す図である。
【図７】図７は、第２テーブル生成処理の処理フローを示す図である。
【図８】図８は、第２テーブル生成処理を模式的に示すための図である。
【図９】図９は、第３テーブルの一例を示す図である。
【図１０】図１０は、第３テーブル生成処理の処理フローを示す図である。
【図１１】図１１は、符号化方式の一例を示す図である。
【図１２】図１２は、第３テーブル生成処理を模式的に示すための図である。
【図１３】図１３は、集約データの一例を示す図である。
【図１４】図１４は、集約データ生成処理の処理フローを示す図である。
【図１５】図１５は、復元のための処理フローを示す図である。
【図１６】図１６は、復元のための処理を模式的に示すための図である。
【図１７】図１７は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１３】
本技術の実施の形態の適用例について最初に説明する。本実施の形態では、図１に示すように、複数のデータ提供者Ａ乃至Ｃから、提供者ＩＤと、各々ＵＩＤを含む複数の個票のデータとの組み合わせを、集約者に集める（ステップ（１））。個票は、例えば患者の検査結果などであり、データ提供者は、例えば病院である。
【００１４】
集約者は、このようにデータ提供者から提供者ＩＤと複数の個票のデータとの組み合わせを受け取って、加工及び集約した後、分析者に開示する。ここで本実施の形態では、ＵＩＤと提供者ＩＤとから、集約識別子（ＡＩＤ：Aggregate IDentifier）を生成して、個票のＵＩＤをＡＩＤで置換してから分析者に対して開示する（ステップ（２））。なお、集約者は、単に多数の個票のデータをまとめるだけでも良いが、それに加えて並べ替えや同じ個体に関するデータの集約（値を合計するなど）、値の正規化や表現形式の変換、新たな項目の追加などの加工処理を行ってもよい。
【００１５】
分析者は、集約データを分析する知見や専門性を持つ者であり、複数であってもよい。また、集約者は、分析の結果を提供者へ適切に通知（すなわちフィードバック）する役割をも有する。分析者は、専門的技能や背景知識などを利用して分析を行った結果として、例えば、特定のＡＩＤの例えば患者が重篤な症状にあるといったデータを集約者に通知する（ステップ（３））。
【００１６】
集約者は、分析者からフィードバックのデータを受け取ると、ＡＩＤからデータ提供者ＩＤ及びＵＩＤを復元して、データ提供者ＩＤに対応するデータ提供者に対してＵＩＤ及びフィードバックのデータを通知する（ステップ（４））。
【００１７】
このような処理を実行すれば、分析者には、提供者ＩＤ及びＵＩＤの代わりにＡＩＤが提供されるので、分析者では具体的にどの患者についてのデータであるか、どのデータ提供者からきたデータであるかを特定できない。すなわち、適切な秘匿化がなされている。さらに、本実施の形態では、以下で説明するように、集約者は、提供者ＩＤ及びＵＩＤとＡＩＤとの対応関係を表すデータを、秘密に保持しておかなくても良い。すなわち、このような対応関係を表すデータを破棄してしまっても良いので、データ漏洩の発生を抑制することができる。
【００１８】
なお、本実施の形態では、集約者は信頼できるものと仮定する。すなわち、集約者は得たデータを悪用したり不適切に第三者（例えば分析者も含む）に開示したり作為的に改ざんしたりはしないものとする。一方、データ提供者は、自身が提供する個票のデータに関しては信頼できるが、他のデータ提供者が提供するものについては信頼できないものとする。
【００１９】
次に、図１に示した適用例のためのシステムを図２に示す。例えばインターネットなどのネットワーク１には、データ提供者Ａが運用しているデータ提供者装置７ａと、データ提供者Ｂが運用しているデータ提供者装置７ｂと、データ提供者Ｃが運用しているデータ提供者装置７ｃと、集約者が運用している集約者装置３と、分析者が運用している分析者装置５とが接続されている。
【００２０】
データ提供者装置７の数は３に限定されるものではない。また、分析者装置５の数も１に限定されるものではない。集約者装置３についても、複数の場合もあるが、ここではこの集約者装置３に個票のデータが集約されるものとする。
【００２１】
次に、集約者装置３の機能ブロック図を図３に示す。集約者装置３は、データ受信部３１と、第１データ格納部３２と、対応付けデータ生成部３３と、第２データ格納部３４と、集約識別子生成部３５と、第３データ格納部３６と、集約データ生成部３７と、第４データ格納部３８と、データ送信部３９と、設定データ格納部４０と、第５データ格納部４１と、識別子復元部４２と、第６データ格納部４３とを有する。
【００２２】
データ受信部３１は、データ提供者装置７ａ乃至７ｃから、個票のデータとデータ提供者ＩＤとの組み合わせ（以下、１つのデータ提供者からの個票のデータを第１テーブルと呼ぶ）を受信すると、第１データ格納部３２に格納する。また、データ受信部３１は、分析者装置５から、ＡＩＤ及び当該ＡＩＤについてのデータを受信すると、第５データ格納部４１に格納する。
【００２３】
対応付けデータ生成部３３は、第１データ格納部３２に格納されている複数のデータ提供者からのデータを用いて、ＵＩＤとデータ提供者ＩＤの集合との対応付けデータ（以下、第２テーブルと呼ぶ）を生成し、第２データ格納部３４に格納する。
【００２４】
設定データ格納部４０には、例えば暗号鍵が格納されており、集約識別子生成部３５によりデータ提供者ＩＤ集合の符号化方式が決定されると当該符号化方式の識別子又は名称及びパラメータも、設定データ格納部４０に格納される。
【００２５】
集約識別子生成部３５は、第２データ格納部３４に格納されている第２テーブルの各レコードについて、符号化を行った上で設定データ格納部４０に格納されている暗号鍵を用いて集約識別子（ＡＩＤ）を生成し、ＵＩＤとＡＩＤとの対応付けテーブルである第３テーブルを、第３データ格納部３６に格納する。なお、集約識別子生成部３５は、データ提供者ＩＤ集合について用いた符号化方式の識別子を設定データ格納部４０に格納する。
【００２６】
集約データ生成部３７は、第３データ格納部３６に格納されている第３テーブルを用いて、第１データ格納部３２に格納されている各第１テーブルの各レコードに含まれるＵＩＤをＡＩＤで置換することで集約データを生成し、第４データ格納部３８に格納する。
【００２７】
データ送信部３９は、分析者装置５からの要求に応じて第４データ格納部３８に格納されている集約データを送信する。また、データ送信部３９は、識別子復元部４２からの指示に応じて、第６データ格納部４３に格納されているデータを、該当するデータ提供者装置７へ送信する。
【００２８】
識別子復元部４２は、第５データ格納部４１に格納されているＡＩＤ及び付加データのうちＡＩＤから、設定データ格納部４０に格納されているデータを用いて、データ提供者ＩＤ及びＵＩＤを復元し、ＡＩＤに付加されたデータと共にＵＩＤ及びデータ提供者ＩＤを、第６データ格納部４３に格納する。
【００２９】
次に、図４乃至図１６を用いて、集約者装置３の処理内容について説明する。
【００３０】
まず、データ受信部３１は、複数のデータ提供者装置７から、提供者ＩＤと個票群のデータとの組み合わせを受信すると、各々第１テーブルとして、第１データ格納部３２に格納する（図４：ステップＳ１）。例えば図５に示すようなデータが第１データ格納部３２に格納される。データ提供者Ａからのデータは、ＵＩＤと、属性ａの属性値と、属性ｂの属性値とが登録されるようになっている。データ提供者Ｂからのデータについては省略するが、同様の形式のデータが、第１データ格納部３２に格納されるものとする。
【００３１】
例えば、予定されていたデータ提供者Ａ乃至Ｃのデータ提供者ＩＤと個票のデータとの組み合わせが第１データ格納部３２に揃うと、対応付けデータ生成部３３は、第２テーブル生成処理を実行し、処理結果である第２テーブルを第２データ格納部３４に格納する（ステップＳ３）。この第２テーブル生成処理については、図７及び図８を用いて説明する。なお、例えば図６に示すように、第２テーブルは、ＵＩＤに対応付けて提供者ＩＤの集合を格納するテーブルである。
【００３２】
対応付けデータ生成部３３は、第１データ格納部３２において未処理の提供者ＩＤを１つ特定する（ステップＳ２１）。また、対応付けデータ生成部３３は、特定された提供者ＩＤについての第１テーブルから、未処理のＵＩＤを１つ特定する（ステップＳ２３）。
【００３３】
そして、対応付けデータ生成部３３は、特定されたＵＩＤは第２テーブルに登録済みであるか判断する（ステップＳ２５）。特定されたＵＩＤが第２テーブルに登録済みであれば、処理はステップＳ２９に移行する。一方、特定されたＵＩＤが第２テーブルに登録済みでなければ、対応付けデータ生成部３３は、特定されたＵＩＤの行を第２テーブルに追加する（ステップＳ２７）。そして処理はステップＳ２９に移行する。
【００３４】
その後、対応付けデータ生成部３３は、第２テーブルにおいて、特定されたＵＩＤの行に、提供者ＩＤを追加する（ステップＳ２９）。
【００３５】
そして、対応付けデータ生成部３３は、特定された提供者ＩＤについての第１テーブルにおいて未処理のＵＩＤが存在しているか判断する（ステップＳ３１）。未処理のＵＩＤが存在している場合には、処理はステップＳ２３に戻る。一方、未処理のＵＩＤが存在していない場合には、対応付けデータ生成部３３は、第１データ格納部３２において、未処理の提供者ＩＤが存在するか判断する（ステップＳ３３）。未処理の提供者ＩＤが存在する場合には処理はステップＳ２１に戻る。一方、未処理の提供者ＩＤが存在しない場合には、処理は呼出元の処理に戻る。
【００３６】
このような処理の一例を図８を用いて説明する。図８では、データ提供者がＡ、Ｂ、Ｃ及びＤ４つの場合を示しており、ＡＢＣ順に処理を行う。初期段階として、図８下段左端に示すように、第２テーブルは空の状態である。第２テーブルには、ＵＩＤと、当該ＵＩＤについての個票のデータを提供したデータ提供者のデータ提供者ＩＤ集合とが対応付けて登録されるようになっている。
【００３７】
そして、第１段階として、図８の下段左端から２番目のテーブルに示すように、データ提供者Ａについての第１テーブルが処理されると、当該第１テーブルに登録されている各ＵＩＤに対して、提供者ＩＤ「Ａ」が登録されるようになっている。
【００３８】
次に、第２段階として、図８の下段左端から３番目のテーブルに示すように、データ提供者Ｂについての第１テーブルが処理されると、当該第１テーブルに登録されている各ＵＩＤに対して、提供者ＩＤ「Ｂ」が登録されるようになっている。
【００３９】
さらに、第３段階として、図８の下段左端から４番目のテーブルに示すように、データ提供者Ｃについての第１テーブルが処理されると、当該第１テーブルに登録されている各ＵＩＤに対して、提供者ＩＤ「Ｃ」が登録されるようになっている。ここで、ＵＩＤ「０４５」については、提供者ＩＤ集合には「Ａ」及び「Ｃ」が含まれるようになる。
【００４０】
最後に、第４段階として、図８の下段右端のテーブルに示すように、データ提供者Ｄについての第１テーブルが処理されると、当該第１テーブルに登録されている各ＵＩＤに対して、提供者ＩＤ「Ｄ」が登録されるようになっている。ここで、ＵＩＤ「１２３」については、提供者ＩＤ集合には「Ａ」及び「Ｄ」が含まれるようになる。
【００４１】
このように、ＵＩＤによっては、複数のデータ提供者からの個票のデータに含まれるために、複数の提供者ＩＤが、第２テーブルにおいて登録されるようになる。
【００４２】
図４の処理の説明に戻って、集約識別子生成部３５は、第３テーブル生成処理を実行して、処理結果である第３テーブルを第３データ格納部３６に格納する（ステップＳ５）。第３テーブル生成処理については、図１０及び図１１を用いて説明する。第３テーブルは、例えば図９に示すようなテーブルである。図９の例では、ＵＩＤと対応するＡＩＤとが登録されるようになっている。
【００４３】
集約識別子生成部３５は、第２データ格納部３４に格納されている第２テーブルから、提供者ＩＤ集合に対する符号化方式を決定する（ステップＳ４１）。決定された符号化方式についてのデータは、設定データ格納部４０に格納される。
【００４４】
採用可能な符号化方式は複数考えられるが、提供者ＩＤの値域、実際に現れた値の数や分布、第２テーブルに現れる１ＵＩＤあたりの提供者ＩＤの数などに応じて、符号化後のデータサイズや符号化処理の複雑さなどが、採用する方式によって異なるため、そうした状況に応じて選択する。
【００４５】
典型的な符号化方式としては、提供者ＩＤの値を各ビットに対応させる方式、提供者ＩＤを数値として固定長のビット列にしてそれらを並べる方式、提供者ＩＤを文字列として表現した後（場合によっては区切り文字を挟む、長さを表す数値を挟むなどした上で）文字符号化する方式などが挙げられる。このとき、どのような符号化を行うか、符号化の具体的なパラメータなどは第２テーブルの状態に基づき決定するようにしても良い。
【００４６】
符号化方式や符号化のパラメータを動的に選ぶのであれば、集約者装置３はそれらを保持しておくことになる。但し、符号化方式や符号化パラメータは一般にデータ量が小さく、また秘密にしなければならい訳ではないので、本実施の形態の利用シーンの要件に反しない。
【００４７】
ステップＳ４１では、図１１に示すような方式に従って符号化方式を決定する。図１１のテーブルでは、選択時の優先順位、適用の条件、符号化の方式名、符号化に伴うパラメータ、及び各符号化方式の簡単な説明が含まれている。
【００４８】
方式ＢＩＴｎ（ｎは３２から２５６の離散的な整数）の方式では、各提供者ＩＤをそれぞれビット番号に割り当て、該当する提供者ＩＤが提供者ＩＤ集合に含まれていればそのビットを「１」にすることで、ｎビットのビット列として表現する。この場合のパラメータは、各提供者ＩＤについて割り当てたビット番号のデータ（現れた提供者ＩＤの列のデータ）を含む。方式名ＢＩＴｎの方式であれば、データ提供者ＩＤの数が、各々３２、６４、１２８、２５６までであれば効率的に符号化できる。
【００４９】
方式ＩＤＬＩＳＴは、各提供者ＩＤを高々１２８ビットの固定長ビット列に符号化し、それを並べることで表現する。この方式は、１ＵＩＤあたりの提供者ＩＤ集合の要素数の最大値ｍが１６以下であって、提供者ＩＤを高々１２８ビットの固定長ビット列に符号化する手段があれば、採用することができる。なお、この場合のパラメータは、提供者ＩＤを符号化する方式、及び１ＵＩＤあたりの提供者ＩＤ集合の要素数の最大値ｍを含む。
【００５０】
方式ＨＵＦＦＭＡＮは、提供者ＩＤが現れる頻度に応じてハフマン木を生成し、それを用いてハフマン符号化を行う。この符号化方式については、ハフマン木をパラメータとして保持しておく。この符号化を行う場合は、上で述べた方式を採用できない場合である。
【００５１】
なお、これらの符号化においては、符号化後のビット列が固定長である方が都合がよい。なぜなら、提供者ＩＤ集合の要素数とビット列の長さに相関があると提供者ＩＤの数が推定でき、セキュリティやプライバシーの観点から一部の情報が漏れていると言えるためである。従って、最終的に符号の長さを揃える処理を行うことが望ましい。
【００５２】
また、図１１で示した符号化方式及びそれを選ぶための条件に現れる値は一例であり、その他の符号化方式や値を用いても良い。
【００５３】
その後、集約識別子生成部３５は、第２テーブルにおける未処理のＵＩＤを１つ特定する（ステップＳ４３）。そして、集約識別子生成部３５は、特定されたＵＩＤを符号化する（ステップＳ４５）。ＵＩＤについての符号化も様々な方式が考えられるが、ＵＩＤについては一意識別子として長さなどが既に決まっている場合が多いので、単純に１６進数に直す等の符号化でよい。但し、値の数や分布等に基づき、データ提供者ＩＤ集合のように、第２テーブルに基づき符号化方式を決定しても良い。
【００５４】
また、集約識別子生成部３５は、特定されたＵＩＤに対応付けられている提供者ＩＤ集合を正規化する（ステップＳ４７）。例えば、第２テーブルでは、提供者ＩＤは出現順に登録されているが、例えば重複を排除したり、所定の順番にソートしたりする。
【００５５】
さらに、集約識別子生成部３５は、正規化された提供者ＩＤ集合を、ステップＳ４１で決定された符号化方式に従って符号化する（ステップＳ４９）。
【００５６】
その後、集約識別子生成部３５は、ＵＩＤの符号と提供者ＩＤ集合の符号とを連結し（ステップＳ５１）、設定データ格納部４０に格納されている暗号鍵Ｋにより、連結された符号を暗号化することで集約識別子ＡＩＤを生成する（ステップＳ５３）。
【００５７】
暗号化には、ＡＥＳ（Advanced Encryption Standard）などの一般的な共通鍵暗号方式を用い、集約者が用意した秘密鍵を使う。一般に暗号化の結果（暗号文）はビット列やバイト列だが、文字列のほうが都合よければ文字列表現に直してもよい。一般的には、１６進数表現、Base64やBase32符号化による表現などが使われる。
【００５８】
そして、集約識別子生成部３５は、ＵＩＤとＡＩＤとを対応付けて、第３データ格納部３６における第３テーブルに登録する（ステップＳ５５）。
【００５９】
その後、集約識別子生成部３５は、第２テーブルにおいて未処理のＵＩＤが存在しているか判断する（ステップＳ５７）。未処理のＵＩＤが存在していれば処理はステップＳ４３に戻る。一方、未処理のＵＩＤが存在しなければ、処理は呼出元の処理に戻る。
【００６０】
図１０の処理を、具体的に図１２を用いて説明する。第２テーブルの第１レコードにおけるＵＩＤ「０４５」と提供者ＩＤ集合「Ａ，Ｃ」について処理する場合、ＵＩＤ「０４５」については１６進数で符号化すると「００２Ｄ」となる。一方、提供者ＩＤ集合は、第２テーブルの状態から１６ビット（２バイト）で表し（図１１の例とは異なるがＢＩＴ１６と表される符号化方式を採用）、最上位ビットを提供者ＩＤ「Ａ」に割り当て、２番目のビットを提供者ＩＤ「Ｂ」に割り当て、３番目のビットを提供者ＩＤ「Ｃ」に割り当てるということにする。そうすると、提供者ＩＤ集合「Ａ，Ｃ」は、１６進数で「Ａ０００」と符号化される。そして、「００２Ｄ」と「Ａ０００」とを連結して「００２ＤＡ０００」を生成して、暗号鍵Ｋにより暗号化すると１６進数「０７６２ｂ７ｅ９ｂ０４ａ」がＡＩＤとして生成される。そうすると、第３テーブルにおいて、ＵＩＤ「０４５」に対応付けてＡＩＤ「０７６２ｂ７ｅ９ｂ０４ａ」を登録する。
【００６１】
このようにすれば、各ＵＩＤについてのＡＩＤが直ぐさま得られるようになる。
【００６２】
図４の処理の説明に戻って、次に、集約データ生成部３７は、第３データ格納部３６に格納されている第３テーブルを用いて、第１データ格納部３２に格納されている各第１テーブルに対して集約データ生成処理を実行し、処理結果である集約データを第４データ格納部３８に格納する（ステップＳ７）。例えば図１３に示すようなデータ（第４テーブル）が得られるようになる。図１３の例では、ＡＩＤに対応付けて、属性ａの値、属性ｂの値等が登録されるようになっている。なお、集約データ生成処理については図１４を用いて説明する。
【００６３】
集約データ生成部３７は、第１データ格納部３２において未処理の提供者ＩＤを１つ特定する（ステップＳ６１）。また、集約データ生成部３７は、特定された提供者ＩＤについての第１テーブルから未処理のレコードを１つ読み出す（ステップＳ６３）。そして、集約データ生成部３７は、読み出したレコードに含まれるＵＩＤを、第３テーブルにおいて当該ＵＩＤに対応付けられているＡＩＤにより置換し、第４データ格納部３８における第４テーブルに登録する（ステップＳ６５）。
【００６４】
そして、集約データ生成部３７は、特定された提供者ＩＤについての第１テーブルにおいて未処理のレコードが存在しているか判断する（ステップＳ６７）。未処理のレコードが存在している場合には処理はステップＳ６３に戻る。一方、未処理のレコードが存在しない場合には、集約データ生成部３７は、第１データ格納部３２において未処理の提供者ＩＤが存在しているか判断する（ステップＳ６９）。未処理の提供者ＩＤが存在する場合には処理はステップＳ６１に戻る。一方、未処理の提供者ＩＤが存在しない場合には、呼出元の処理に戻る。このようにすれば、図１３に示すような第４テーブルが生成される。
【００６５】
図４の処理の説明に戻って、集約データ生成部３７は、第３テーブルを破棄する（ステップＳ９）。これによって情報漏洩を抑制できる。また、データ送信部３９は、例えば分析者装置５からの要求に応じて、第４データ格納部３８に格納されている集約データを、要求元の分析者装置５へ送信する（ステップＳ１１）。
【００６６】
分析者装置５は、集約データを集約者装置３から受信すると、所定の処理を実行する。この所定の処理については、どのような処理であっても良く、本実施の形態の主要部ではないので、ここでは説明を省略する。但し、特定のＡＩＤについて特定の付加データが得られたものとする。
【００６７】
以下、特定のＡＩＤについて特定の付加データが得られた後の処理について、図１５及び図１６を用いて説明する。まず、データ受信部３１は、分析者装置５からＡＩＤ及び付加データを受信すると（図１５：ステップＳ７１）、第５データ格納部４１に格納する。ＡＩＤは暗号化されているので、識別子復元部４２は、設定データ格納部４０に格納されている暗号鍵Ｋを用いてＡＩＤに対して復号処理を実行する（ステップＳ７３）。
【００６８】
さらに、識別子復元部４２は、復号されたＡＩＤから第１コード及び第２コードを抽出する（ステップＳ７５）。例えば、上位所定ビットがＵＩＤの符号（すなわち第１コード）であり、残余のビットが提供者ＩＤ集合の符号（すなわち第２コード）であるから、それぞれのコードを分離抽出する。
【００６９】
その後、識別子復元部４２は、第１コードからＵＩＤを復元し、第６データ格納部４３に格納する（ステップＳ７７）。ＵＩＤを符号化する際に用いた符号化方式に従ってＵＩＤを復元する。例えば１６進数を１０進数に直す。また、識別子復元部４２は、設定データ格納部４０に格納されている符号化方式及びパラメータに基づき、第２コードから提供者ＩＤ集合を復元し、第６データ格納部４３に格納する（ステップＳ７９）。データ提供者ＩＤ集合を符号化する際に用いられた符号化方式に従い且つパラメータを用いて、データ提供者ＩＤ集合を復元する。
【００７０】
そして、識別子復元部４２は、データ送信部３９に指示を出力し、データ送信部３９は、識別子復元部４２からの指示に応じて、第６データ格納部４３に格納されているＵＩＤ及び付加データを、データ提供者ＩＤ集合から特定されるデータ提供者のデータ提供者装置７を特定し、当該データ提供者装置７にＵＩＤ及び付加データを送信する（ステップＳ８１）。
【００７１】
このようにすれば、分析結果のフィードバックを、適切なデータ提供者に対して行うことができるようになる。
【００７２】
図１５の処理内容について具体的に図１６を用いて説明する。ＡＩＤ「０７６２ｂ７ｅ９ｂ０４ａ」を受信すると、暗号鍵Ｋを用いて暗号の復号を行うと、「００２ＤＡ０００」が得られる。この場合、上位４桁がＵＩＤの符号であり、下位４桁がデータ提供者ＩＤ集合の符号であるから、「００２Ｄ」を１０進数化してＵＩＤ「０４５」を復元する。一方、「Ａ０００」を符号化方式及びパラメータに基づき復号すると「Ａ，Ｃ」が得られる。すなわち、「１０１０００００００００００００」であって、最上位ビットと３番目のビットが「１」となっているので、ＡとＣとが得られる。
【００７３】
以上のような処理を実行すれば、第３テーブルを破棄してしまっても、適切にＵＩＤ及びデータ提供者ＩＤ集合を復元することができるため、ＵＩＤに関係するデータ提供者にのみ当該ＵＩＤ及び付加データを送信することができるようになる。すなわち、情報漏洩を抑制できるようになる。
【００７４】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを入れ替えるようにしても良い。
【００７５】
さらに、ＵＩＤの符号とデータ提供者ＩＤ集合の符号とを連結してから暗号化する例を示したが、ＵＩＤの符号とデータ提供者ＩＤ集合の符号とを別々に暗号化して連結するようにしても良い。さらに符号化は暗号化を含む場合もある。
【００７６】
符号化方式を動的に決定する例を示しているが、データ提供者の数が固定である場合には、それに応じた固定の符号化方式を使用する場合もある。
【００７７】
さらに、集約者装置３について、１台のコンピュータが上で述べた機能を有する例を示したが、複数台のコンピュータにて上記の機能を実現するようにしても良い。
【００７８】
なお、上で述べた集約者装置３は、例えばコンピュータ装置であって、図１７に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７９】
以上述べた本実施の形態をまとめると、以下のようになる。
【００８０】
本実施の形態の第１の態様に係る情報処理方法は、（Ａ）第１の識別子を含む１又は複数のデータブロックと当該１又は複数のデータブロックの提供元の第２の識別子との組み合わせを複数格納するデータ格納部から、第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、（Ｂ）第１の識別子の各々について、当該第１の識別子の符号と、当該第１の識別子に対応付けられている第２の識別子の符号とを連結することにより、第３の識別子を生成し、（Ｃ）データ格納部に格納されている各データブロックについて、当該データブロックに含まれる第１の識別子について生成された第３の識別子により当該データブロックに含まれる第１の識別子を置換する処理を含む。
【００８１】
第１及び第２の識別子を秘匿化でき、さらに、このような手順を逆に処理すれば第１の識別子及び第２の識別子を復元できる。
【００８２】
また、上で述べた第３の識別子の生成が、第１の識別子の符号と第２の識別子の符号とが連結された符号に対する暗号化処理を含むようにしても良い。なお、符号化自体が暗号化を含む場合もある。
【００８３】
さらに、上で述べた第３の識別子の生成が、第２の識別子の総数、又は第２の識別子の総数及び第１の識別子に対応付けられている第２の識別子の最大数に基づき特定される符号化方式にて第２の識別子の符号を決定する処理を含むようにしても良い。状況に応じた適切な符号化方式を採用することで、効率的な符号化が可能となる。
【００８４】
また、本情報処理方法は、第１の識別子と第３の識別子との関係を表すデータを、置換する処理後に破棄する処理をさらに含むようにしても良い。このようにデータを破棄しても復元でき、データ漏洩を抑制することができるようになる。
【００８５】
さらに、本情報処理方法は、例えば他のコンピュータから特定の第３の識別子を受信すると、当該特定の第３の識別子から、第１の識別子の符号と第２の識別子の符号とを抽出し、抽出された第１の識別子の符号から第１の識別子を復号し、抽出された第２の識別子の符号から１又は複数の第２の識別子を復号する処理をさらに含むようにしても良い。このように、第１の識別子及び第２の識別子を復元できれば、第１の識別子に関連する第２の識別子が表す提供元に対してのみ第１の識別子及び当該第１の識別子のデータを送信できるので、情報漏洩を抑制できる。
【００８６】
本実施の形態の第２の態様に係る情報処理方法は、第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、抽出された第２の識別子の符号から第２の識別子を復号し、抽出された第３の識別子の符号から１又は複数の第３の識別子を復号する処理を含む。
【００８７】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００８８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８９】
（付記１）
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて、第３の識別子を生成し、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する
処理を含み、コンピュータにより実行される情報処理方法。
【００９０】
（付記２）
前記第３の識別子の生成が、前記第１の識別子と前記第２の識別子との組に対する暗号化処理を含む
付記１記載の情報処理方法。
【００９１】
（付記３）
前記第３の識別子の生成が、前記第２の識別子の総数、又は前記第２の識別子の総数及び前記第１の識別子に対応付けられている第２の識別子の最大数に基づき特定される符号化方式にて前記第１および第２の識別子を符号化する処理を含む
付記１又は２記載の情報処理方法。
【００９２】
（付記４）
前記第１の識別子と前記第３の識別子との関係を表すデータを、前記置換する処理後に破棄する処理をさらに含む付記１乃至３のいずれか１つ記載の情報処理方法。
【００９３】
（付記５）
特定の第３の識別子を受信すると、当該特定の第３の識別子から、第１の識別子と１又は複数の第２の識別子とを抽出する処理をさらに含む付記１乃至４のいずれか１つ記載の情報処理方法。
【００９４】
（付記６）
前記特定の第３の識別子から抽出された第１の識別子の符号から第１の識別子を復号し、
前記特定の第３の識別子から抽出された第２の識別子の符号から１又は複数の第２の識別子を復号する
処理をさらに含む付記５記載の情報処理方法。
【００９５】
（付記７）
第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、
抽出された前記第２の識別子の符号から第２の識別子を復号し、
抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する
処理を含み、コンピュータにより実行される情報処理方法。
【００９６】
（付記８）
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出し、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて第３の識別子を生成し、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する
処理を、コンピュータに実行させるためのプログラム。
【００９７】
（付記９）
第１の識別子を受信すると、当該第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、
抽出された前記第２の識別子の符号から第２の識別子を復号し、
抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する
処理を、コンピュータに実行させるためのプログラム。
【００９８】
（付記１０）
第１の識別子を含む１又は複数のデータと当該１又は複数のデータの提供元を特定する第２の識別子との組み合わせを複数格納するデータ格納部と、
前記データ格納部から、前記第１の識別子の各々について、当該第１の識別子に対応付けられている第２の識別子を抽出する抽出部と、
前記第１の識別子の各々について、当該第１の識別子と、当該第１の識別子に対応付けられている第２の識別子との組に基づいて第３の識別子を生成する生成部と、
前記データ格納部に格納されている各データについて、当該データに含まれる第１の識別子について生成された第３の識別子により当該データに含まれる第１の識別子を置換する置換部と、
を有する情報処理装置。
【００９９】
（付記１１）
第１の識別子を受信するデータ受信部と、
前記第１の識別子から、第２の識別子の符号と第３の識別子の符号とを抽出し、抽出された前記第２の識別子の符号から第２の識別子を復号し、抽出された前記第３の識別子の符号から１又は複数の第３の識別子を復号する復号部と、
を有する情報処理装置。
【符号の説明】
【０１００】
１  ネットワーク
３  集約者装置
５  分析者装置
７  データ提供者装置
３１  データ受信部
３２  第１データ格納部
３３  対応付けデータ生成部
３４  第２データ格納部
３５  集約識別子生成部
３６  第３データ格納部
３７  集約データ生成部
３８  第４データ格納部
３９  データ送信部
４０  設定データ格納部
４１  第５データ格納部
４２  識別子復元部
４３  第６データ格納部
【図１】
2014098753.tif 000003
【図２】
2014098753.tif 000004
【図３】
2014098753.tif 000005
【図４】
2014098753.tif 000006
【図５】
2014098753.tif 000007
【図６】
2014098753.tif 000008
【図７】
2014098753.tif 000009
【図８】
2014098753.tif 000010
【図９】
2014098753.tif 000011
【図１０】
2014098753.tif 000012
【図１１】
2014098753.tif 000013
【図１２】
2014098753.tif 000014
【図１３】
2014098753.tif 000015
【図１４】
2014098753.tif 000016
【図１５】
2014098753.tif 000017
【図１６】
2014098753.tif 000018
【図１７】
2014098753.tif 000019