(57)【特許請求の範囲】
【請求項１】
N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(r∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)の入力を受け付ける入力部と、
前記N個の属性ATT(1),...,ATT(N)の一部であるm(j)(ただしm(j)＜N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成する提供情報生成部と、
前記提供情報D(n(j,1),...,n(j,m(j)))を出力する出力部と、
を有し、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である匿名データ装置。
【請求項２】
請求項１の匿名データ装置であって、
前記秘匿化匿名属性値s(r,1),...,s(r,N)の秘密計算が可能であり、
前記提供情報D(n(j,1),...,n(j,m(j)))は、前記R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)を秘密計算によって集計して得られる集計表を含む、匿名データ装置。
【請求項３】
請求項１の匿名データ装置であって、
前記提供情報D(n(j,1),...,n(j,m(j)))は、前記R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)をランダムに並び替えたR個の集合SUB(q(1),j),SUB(q(2),j),...,SUB(q(R),j)( ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})に対応するR個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)(ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})又は前記R個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)を復元して得られる属性値の集合を含む、匿名データ装置。
【請求項４】
請求項１から３の何れかの匿名データ装置であって、
m(j)≦M, 1≦M＜Nであり、前記匿名化属性値v(r,1),...,v(r,N)に含まれる任意のM個の匿名化属性値v(r,w(1)),...,v(r,w(M))({w(1),...,w(M)}⊂{1,...,N})が含む正しい属性値に対応する値を表現するためのデータ量の合計が所定値以下である、匿名データ装置。
【請求項５】
N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(r∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)を出力するデータ提供装置と、
前記秘匿化匿名属性値s(r,1),...,s(r,N)の入力を受け付け、前記N個の属性ATT(1),...,ATT(N)の一部であるm(j)(ただしm(j)<N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成し、前記提供情報D(n(j,1),...,n(j,m(j)))を出力する匿名データ装置と、
前記提供情報D(n(j,1),...,n(j,m(j)))の入力を受け付ける分析装置と、
を有し、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である匿名データ提供システム。
【請求項６】
匿名データ装置が実行する方法であって、
入力部で、N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(r∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)の入力を受け付けるステップと、
提供情報生成部で、前記N個の属性ATT(1),...,ATT(N)の一部であるm(j)(ただしm(j)<N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成するステップと、
出力部で、前記提供情報D(n(j,1),...,n(j,m(j)))を出力するステップと、
を有し、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である方法。
【請求項７】
データ提供装置で、N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(r∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)を出力するステップと、
匿名データ装置で、前記秘匿化匿名属性値s(r,1),...,s(r,N)の入力を受け付けるステップと、
前記匿名データ装置で、前記N個の属性ATT(1),...,ATT(N)の一部であるm(j)(m(j)<N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成するステップと、
前記匿名データ装置で、前記提供情報D(n(j,1),...,n(j,m(j)))を出力するステップと、
分析装置で、前記提供情報D(n(j,1),...,n(j,m(j)))の入力を受け付けるステップと、
を有し、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である方法。
【請求項８】
請求項１から４の何れかの匿名データ装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを統計的に匿名化して提供する技術に関する。
【背景技術】
【０００２】
従来、データベースにおける個別データを統計的手法により匿名化する技術として、非特許文献１に記載された維持-置換撹乱によるPk-匿名化がある。
非特許文献１では、データ提供者から提供されたデータの集まりであるテーブルを匿名化する。一人のデータ提供者からのデータのまとまりはテーブル上で行として表現され、レコードと呼ばれる。各レコードはいくつかの予め定められた項目に対する値から成り立ち、この項目のことを属性と呼ぶ。属性に対する値を属性値と呼ぶ。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】五十嵐大， 千田浩司， 高橋克巳， “k-匿名性の確率的指標への拡張とその適用例，” CSS2009， 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
たとえデータ提供者そのものを特定するための情報がレコードに含まれていなくても、レコードに含まれる属性値からデータ提供者を特定するための情報が得られ、その匿名性が低下する場合がある。一般に、レコードに対応する属性の個数が多いほど、そのレコードを提供したデータ提供者の匿名性が低下する。また、各属性値が持つ情報が大きいほど、それらを含むレコードを提供したデータ提供者の匿名性が低下する。従って、データ提供者の匿名性を統計的に所望の高さに維持しようとすれば、当該レコードに対応する属性の個数や各属性値の情報の大きさを制限しなければならない。そのため、提供されるレコードに対応する属性の個数が多いほど各属性値の情報を小さくしなければならず、データの有用性が低下する。
【課題を解決するための手段】
【０００５】
本発明では、匿名データ装置が、N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(r∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)の入力を受け付け、N個の属性ATT(1),...,ATT(N)の一部であるm(j)(ただしm(j)＜N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成し、提供情報D(n(j,1),...,n(j,m(j)))を出力する。
【０００６】
ここで、匿名データ装置には、N個の属性ATT(1),...,ATT(N)すべてに対応する秘匿化匿名属性値s(r,1),...,s(r,N)が与えられるが、秘匿化匿名属性値s(r,1),...,s(r,N)は秘匿化されているため、Nの大きさにかかわらず匿名データ装置に対する匿名性が維持できる。匿名データ装置から出力される提供情報D(n(j,1),...,n(j,m(j)))は、m(j)(m(j)＜N)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))のみに対応するものであるため、提供情報D(n(j,1),...,n(j,m(j)))の提供を受けるものに対する統計的な匿名性を所望の高さに維持しつつ、Nを大きくできる。
【発明の効果】
【０００７】
本発明では、提供情報の有用性を保ちつつ、レコードに対応する属性の個数を増加させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態の匿名データ提供システムの機能構成を説明するための図である。
【図２】図２Ａは、実施形態のデータ提供装置の機能構成を説明するための図である。図２Ｂは、実施形態の匿名データ装置の機能構成を説明するための図である。図２Ｃは、実施形態の分析装置の機能構成を説明するための図である。
【図３】図３Ａは、実施形態のデータ提供装置の処理を説明するための図である。図３Ｂは、実施形態の匿名データ装置の処理を説明するための図である。図３Ｃは、実施形態の分析装置の処理を説明するための図である。
【発明を実施するための形態】
【０００９】
〔概要〕
実施形態の概要を説明する。
実施形態では、データ提供者から提供されたデータの集まりであるテーブル形式のデータベースを匿名化する。一人のデータ提供者からのデータのまとまりはテーブル上で行として表現され、レコードと呼ばれる。各レコードはいくつかの予め定められた項目に対する値から成り立ち、この項目のことを属性と呼ぶ。属性に対する値を属性値と呼ぶ。
【００１０】
実施形態の匿名データ提供システムは、データ提供装置、匿名データ装置、及び分析装置を有する。データ提供装置は、N個(N≧2)の属性ATT(1),...,ATT(N)それぞれの匿名化属性値v(r,1),...,v(r,N)(ただしr∈{1,...,R}, R≧2)を秘匿化することで得られた秘匿化匿名属性値s(r,1),...,s(r,N)を出力する。秘匿化匿名属性値s(r,1),...,s(r,N)は、匿名データ装置に入力されて格納され、秘匿化匿名属性値s(r,1),...,s(r,N)からなるデータベースが構築される。匿名データ装置は、N個の属性ATT(1),...,ATT(N)の一部であるm(j)(ただしm(j)＜N, j∈{1,...,J}, J≧1)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成して出力する。提供情報D(n(j,1),...,n(j,m(j)))は、分析装置に入力されて利用される。
【００１１】
ここで、匿名データ装置には、N個の属性ATT(1),...,ATT(N)すべてに対応する秘匿化匿名属性値s(r,1),...,s(r,N)が与えられるが、秘匿化匿名属性値s(r,1),...,s(r,N)は秘匿化されているため、Nの大きさにかかわらず匿名データ装置に対する匿名性が維持できる。また、匿名データ装置から出力される提供情報D(n(j,1),...,n(j,m(j)))は、m(j)(m(j)＜N)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))のみに対応するものであるため、分析装置に対する統計的な匿名性を所望の高さに維持しつつ、Nを大きくできる。例えばm(j)≦M, 1≦M＜Nであり、匿名化属性値v(r,1),...,v(r,N)に含まれる任意のM個の匿名化属性値v(r,w(1)),...,v(r,w(M))(ただし{w(1),...,w(M)}⊂{1,...,N})が含む正しい属性値に対応する値を表現するためのデータ量の合計が所定値以下である場合、Nの大きさにかかわらず、分析装置に対する統計的な匿名性の高さを、当該所定値以下のデータ量で表現される属性値から得られる匿名性の高さ程度に制限できる。従って、提供情報の有用性を保ちながら、レコードに対応する属性の個数を増加させることができる。
【００１２】
好ましくは、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である。言い換えると、例えば、集合{n(j1,1),...,n(j1,m(j1))}は集合{n(j2,1),...,n(j2,m(j2))}の要素を含まず、集合{n(j2,1),...,n(j2,m(j2))}は集合{n(j1,1),...,n(j1,m(j1))}の要素を含まない。すなわち、分析装置に提供された提供情報D(n(j1,1),...,n(j1,m(j1)))に対応する属性と提供情報D(n(j2,1),...,n(j2,m(j2)))に対応する属性とは重複しない。これにより、提供情報D(n(j1,1),...,n(j1,m(j1)))と提供情報D(n(j2,1),...,n(j2,m(j2)))とは独立した情報となる。この場合、分析装置は、提供情報D(n(j1,1),...,n(j1,m(j1))),D(n(j2,1),...,n(j2,m(j2)))から、同一のrに対応するm(j1)及びm(j2)よりも多い個数の属性値に関する情報を得ることが困難となる。その結果、分析装置に対する所望の高さの統計的な匿名性を十分に維持できる。
【００１３】
また例えば、秘匿化匿名属性値s(r,1),...,s(r,N)の秘密計算が可能であり、提供情報D(n(j,1),...,n(j,m(j)))は、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)を秘密計算によって集計して得られる集計表を含む。また例えば、提供情報D(n(j,1),...,n(j,m(j)))は、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)をランダムに並び替えたR個の集合SUB(q(1),j),SUB(q(2),j),...,SUB(q(R),j)(ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})に対応するR個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)(ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})又は当該R個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)を復元して得られる属性値の集合を含む。SUB(r,j)=SUB’(r,j)(r∈{1,...,R})であってもよいし、SUB(r,j)≠SUB’(r,j)であってもよい。これらの提供情報D(n(j,1),...,n(j,m(j)))は、集合SUB(1,j),SUB(2,j),...,SUB(R,j)の順序に関する情報（集合SUB(r,j)のそれぞれのrに関する情報）を含まない。そのため、分析装置に対する所望の高さの統計的な匿名性を十分に維持できる。特に、このような提供情報であって、なおかつ、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である場合、分析装置は、提供情報D(n(j1,1),...,n(j1,m(j1))),D(n(j2,1),...,n(j2,m(j2)))から、同一のrに対応するm(j1)及びm(j2)よりも多い個数の属性値に関する情報を一切得ることができない。その結果、分析装置に対する所望の高さの統計的な匿名性を確実に維持できる。
【００１４】
匿名データ装置から出力される提供情報D(n(j,1),...,n(j,m(j)))は秘匿化された情報であってもよいし、秘匿化されていない情報であってもよい。提供情報D(n(j,1),...,n(j,m(j)))が秘匿化された情報である場合、匿名データ装置にはデータ提供者の情報が一切漏れない。提供情報D(n(j,1),...,n(j,m(j)))が秘匿化されていない情報で或る場合、匿名データ装置に対するデータ提供者の匿名性は、分析装置に対するデータ提供者の匿名性と同等となる。
【００１５】
〔第１実施形態〕
第１実施形態を説明する。
＜構成＞
図１に例示するように、第１実施形態の匿名データ提供システム１は、データ提供装置１１０−１〜Ｒ（R≧2）、匿名データ装置１２０−１〜Ｔ（T≧1）、及び分析装置１３０を有する。これらはネットワークや可搬型記録媒体などを介して情報のやり取りが可能である。説明の簡略化のため、本形態では１個の分析装置１３０のみを説明するが、分析装置が複数存在してもよい。
【００１６】
図２Ａに例示するように、第１実施形態のデータ提供装置１１０−ｒ（r∈{1,...,R}）は、入力部１１１−ｒ、出力部１１１−ｒ、記憶部１１３−ｒ、メモリ１１４−ｒ、制御部１１５−ｒ、匿名化部１１６−ｒ、及び秘匿化部１１７−ｒを有する。図２Ｂに例示するように、第１実施形態の匿名データ装置１２０−ｔ（t∈{1,...,T}）は、入力部１２１−ｔ、出力部１２２−ｔ、記憶部１２３−ｔ、メモリ１２４−ｔ、制御部１２５−ｔ、及び提供情報生成部１２６−ｔを有する。図２Ｃに例示するように、第１実施形態の分析装置１３０は、入力部１３１、出力部１３２、記憶部１３３、メモリ１３４、制御部１３５、及び分析部１３６を有する。
【００１７】
データ提供装置１１０−１〜Ｒ、匿名データ装置１２０−１〜Ｔ、及び分析装置１３０は、例えば、CPU(central processing unit), RAM(random-access memory), ROM(read-only memory)等を備えた公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される特別な装置である。データ提供装置１１０−１〜Ｒ、匿名データ装置１２０−１〜Ｔ、及び分析装置１３０は、それぞれが有する制御部１１５−ｒ，１２５−ｔ，１３５の制御のもとで各処理を実行する。各処理部から出力されたデータは、それぞれの装置が有するメモリ１１４−ｒ，１２４−ｔ，１３４に格納され、必要に応じて読み出されて他の処理に利用される。
【００１８】
＜秘匿データの保管処理＞
図３Ａに例示するように、各データ提供装置１１０−ｒ（図２Ａ）の入力部１１１−ｒに、レコードを構成するN個(N≧2)の属性ATT(1),...,ATT(N)それぞれの属性値ν(r,1),...,ν(r,N)が入力され、記憶部１１３−ｒに格納される（ステップＳ１１１）。本形態のNは整数の定数である。以下にN=4、ATT(1)=「年齢」, ATT(2)=「性別」, ATT(3)=「住所」, ATT(4)=「年収」である場合の１個のレコードを例示する（ステップＳ１１１）。
【表１】
0005670366.tif 000002
【００１９】
レコードを構成するN個の属性値ν(r,1),...,ν(r,N)は匿名化部１１６−ｒに入力される。匿名化部１１６−ｒは、N個の属性値ν(r,1),...,ν(r,N)を匿名化し、N個の匿名化属性値v(r,1),...,v(r,N)を生成して出力する。匿名化とは、レコードからデータ提供者そのものを特定するための情報（氏名等）を排除するだけでなく、レコードに含まれる正しい属性値のデータ量を削減することを意味する。例えば、レコードに含まれる属性値の粒度を低下させたり、一部の属性値を所定の確率で異なる値に置換したりすることが匿名化に相当する。例えば表１のレコードの場合、属性「年齢」「性別」「住所」「年収」それぞれの属性値を「30代」「男」「東京都」「500万円代」に変換したり、所定の確率で異なる属性値にランダム置換したりすること（例えば、非特許文献１の維持−置換撹乱）が匿名化に相当する。本形態の匿名化部１１６−ｒは、匿名化属性値v(r,1),...,v(r,N)に含まれる任意のM個の匿名化属性値v(r,w(1)),...,v(r,w(M))({w(1),...,w(M)}⊂{1,...,N})が含む正しい属性値に対応する値を表現するためのデータ量の合計が所定値以下であるように秘匿化する（m(j)≦M, 1≦M＜N）。言い換えると、本形態の匿名化部１１６−ｒは、匿名化属性値v(r,1),...,v(r,N)からどのような組み合わせのM個の匿名化属性値v(r,w(1)),...,v(r,w(M))が選択されたとしても、それらから得られる正しい属性値に対応する値を表現するためのデータ量の合計が所定値以下となるように秘匿化する。なお、正しい属性値に対応する値とは、正しい属性値そのものや正しい属性値の上位概念を意味する。例えば表１の例の場合、属性「年齢」の正しい属性値「32歳」に対応する値は「32歳」や「30代」である（ステップＳ１１２）。
【００２０】
匿名化属性値v(r,1),...,v(r,N)は秘匿化部１１７−ｒに入力される。秘匿化部１１７−ｒは、匿名化属性値v(r,1),...,v(r,N)を秘匿化し、それによって得られたN個の秘匿化匿名属性値s(r,1),...,s(r,N)を出力する（ステップＳ１１３）。秘匿化とは、秘匿化後の値から秘匿化前の値を得ることを困難にする処理を意味する。例えば、秘密分散や暗号化などが秘匿化の例である。また、秘匿化後の値で秘密計算が可能な秘匿化方式も存在する。秘密計算が可能な秘匿化方式の具体例は、秘匿回路方式（例えば、参考文献１：柴田賢介, 千田浩司, 五十嵐大, 山本太郎, 高橋克巳，“表計算ソフトをフロントエンドとした委託型２パーティ秘匿回路計算システム”， CSS2009, 2009.）、加法的秘密分散方式（例えば、参考文献２：千田浩司, 濱田浩気, 五十嵐大, 高橋克巳， “軽量検証可能３パーティ秘匿関数計算の再考”， CSS2010, 2010.）、エルガマル暗号方式（例えば、参考文献３：千田浩司, 谷口展郎, 山本剛, 岡崎聖人, 塩野入理, 金井敦， “エルガマル暗号に基づく秘匿回路計算の実装と応用”， CSS2005, pp. 475 - 480, 2005.）などである。N個の秘匿化匿名属性値s(r,1),...,s(r,N)は出力部１１２−ｒに入力される。出力部１１２−ｒは、秘匿化匿名属性値s(r,1),...,s(r,N)を出力する（ステップＳ１１４）。
【００２１】
秘匿化匿名属性値s(r,1),...,s(r,N)は、ネットワーク等を介して匿名データ装置１２０−１〜Ｔに送られる。秘匿化方式に応じ、各匿名データ装置１２０−１〜Ｔに送られる秘匿化匿名属性値s(r,1),...,s(r,N)が同一である場合と同一でない場合とがある。秘匿化匿名属性値s(r,1),...,s(r,N)は、匿名データ装置１２０−ｔ（図２Ｂ）のそれぞれの入力部１２１−ｔに入力され、記憶部１２３−ｔに格納される。これにより、記憶部１２３−ｔには、属性ATT(1),...,ATT(N)及びr={1,...,R}に秘匿化匿名属性値s(r,1),...,s(r,N)が対応付けられたデータベースが格納される。以下にN=4、ATT(1)=「年齢」, ATT(2)=「性別」, ATT(3)=「住所」, ATT(4)=「年収」である場合のデータベースを例示する。なお、SEC(α)はαが秘匿化された値を表す。
【表２】
0005670366.tif 000003
【００２２】
＜データの提供＞
図３Ｃに例示するように、分析装置１３０（図２Ｃ）の出力部１３２は、N個の属性ATT(1),...,ATT(N)から選択されたm(j)(m(j)≦M, 1≦M＜N)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))({n(j,1),...,n(j,m(j))}⊂{1,...,N})を表す識別子である属性識別子を出力する（ステップＳ１３１）。なお、本形態のMは整数の定数である。属性識別子は、ネットワーク等を経由して匿名データ装置１２０−ｔのそれぞれに送られる。
【００２３】
図３Ｂに例示するように、属性識別子は匿名データ装置１２０−ｔ（図２Ｂ）の入力部１２１−ｔに入力され、記憶部１２３ｔに格納される（ステップＳ１２１）。属性識別子は提供情報生成部１２６−ｔに入力される。提供情報生成部１２６−ｔは、属性識別子が表すm(j)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))を記憶部１２３−ｔから抽出する。提供情報生成部１２６−ｔは、抽出した秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成する。以下に提供情報D(n(j,1),...,n(j,m(j)))を例示する。
【００２４】
[提供情報の例１（集計表）]
この例は、秘匿化匿名属性値s(r,1),...,s(r,N)の秘密計算が可能であることを前提とする。提供情報生成部１２６−ｔは、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)を秘密計算によって集計して得られる集計表を提供情報D(n(j,1),...,n(j,m(j)))とする。
集計表の具体例は、秘密計算によって行われるクロス集計によって得られる秘匿化されたクロス集計表である。クロス集計とはテーブルの複数の属性に着目し、着目したすべての属性の属性値が等しいレコードを集計する集計法である。クロス集計表は、着目された複数の属性の属性値の組と当該属性値の組に適合するレコードの個数とが対応付けられた表となる（例えば、参考文献４：永井彰，五十嵐大，濱田浩気，松林達史，“クロネッカー積を含む行列積演算の最適化による効率的なプライバシー保護データ公開技術”，SCIS2010, 2010.参照）。以下に、m(j)=2とし、２個の属性ATT(1)=「年齢」, ATT(2)=「性別」に着目した秘匿化されたクロス集計表を例示する。
【表３】
0005670366.tif 000004
【００２５】
集計表の他の具体例は、秘密計算によって行われる単純集計によって得られる秘匿化された単純集計表である。単純集計とはテーブルの一つの属性に着目し、着目した属性の属性値が等しいレコードを集計する集計法である。単純集計表は、着目された属性の属性値と当該属性値に適合するレコードの個数とが対応付けられた表となる。以下に、m(j)=1とし、属性ATT(1)=「年齢」に着目した秘匿化された単純集計表を例示する。
【表４】
0005670366.tif 000005
【００２６】
なお、提供情報生成部１２６−ｔは、秘匿化された集計表をそのまま提供情報D(n(j,1),...,n(j,m(j)))としてもよいし、秘匿化された集計表から秘匿化されていない集計表を復元し、それを提供情報D(n(j,1),...,n(j,m(j)))としてもよい。
【００２７】
[提供情報の例２（表形式のデータベース）]
提供情報生成部１２６−ｔは、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)をランダムに並び替えたR個の集合SUB(q(1),j),SUB(q(2),j),...,SUB(q(R),j)(ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})に対応するR個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)(ただしq(r)∈{1,...,R}, {q(1),...,q(R)}={1,...,R})、又は当該R個の集合SUB’(q(1),j),SUB’(q(2),j),...,SUB’(q(R),j)を復元して得られる属性値の集合（表形式のデータベース）を提供情報D(n(j,1),...,n(j,m(j)))とする。例えば、提供情報生成部１２６−ｔは、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)をランダムに並び替えたR個の集合SUB(5,j),SUB(3,j),...,SUB(6,j)に対応するR個の集合SUB’(5,j),SUB’(3,j),...,SUB’(6,j)、又はこれらを復元して得られる属性値の集合を提供情報D(n(j,1),...,n(j,m(j)))とする。なお、SUB(r,j)のそれぞれからrを特定することはできない。SUB(r,j)=SUB’(r,j)(r∈{1,...,R})であってもよいし、SUB(r,j)≠SUB’(r,j)であってもよい。SUB(r,j)≠SUB’(r,j)であり、SUB(r,j)及びSUB’(r,j)からSUB(r,j)とSUB’(r,j)との対応関係を知ることが困難なのであれば、匿名データ装置１２０−ｔや分析装置１３０に対して高い匿名性を維持できる。このような並び替え方法の一例は、「濱田造気，五十嵐大，千田浩司，高橋克巳，“３パーティ秘匿関数計算上のランダム置換プロトコル”，2011年3月8日，情報処理学会シンポジウム論文集，2010巻，9号，pp.561-566.（参考文献５）」に開示されている。提供情報生成部１２６−ｔは、提供情報の例１の集計表から生成した表形式のデータベースを提供情報D(n(j,1),...,n(j,m(j)))としてもよい。集計表から表形式のデータベースを生成するには、集計表の各集計値について、当該集計値に対応する属性値の組み合わせからなるレコードを、それぞれ当該集計値分ずつ生成していけばよい。
【００２８】
提供情報生成部１２６−ｔは、生成した提供情報D(n(j,1),...,n(j,m(j)))を出力する（ステップＳ１２２）。提供情報D(n(j,1),...,n(j,m(j)))は出力部１２２−ｔに入力される。出力部１２２−ｔは提供情報D(n(j,1),...,n(j,m(j)))を出力する（ステップＳ１２３）。提供情報D(n(j,1),...,n(j,m(j)))は、ネットワーク等を介して分析装置１３０に送られ、図３Ｃに例示するように、分析装置１３０（図２Ｃ）の入力部１３１に入力され、記憶部１３３に格納される（ステップＳ１３２）。
【００２９】
分析部１１３は、記憶部１３３から提供情報D(n(j,1),...,n(j,m(j)))を抽出し、提供情報D(n(j,1),...,n(j,m(j)))を用いて所望のデータを生成して出力する。例えば提供情報D(n(j,1),...,n(j,m(j)))が秘匿化された情報であれば、分析部１１３は、例えば提供情報D(n(j,1),...,n(j,m(j)))を復元して得られる情報を出力する。例えば提供情報D(n(j,1),...,n(j,m(j)))が集計表であれば、分析部１１３は、例えば当該集計表から表形式のデータベースを生成する（ステップＳ１３３）。分析部１１３から出力されたデータは出力部１３２から出力される（ステップＳ１３４）。
【００３０】
なお、ステップＳ１２１〜Ｓ１２３，Ｓ１３１〜Ｓ１３３の処理は、すべてのj∈{1,...,J}について実行される。ステップＳ１２１〜Ｓ１２３，Ｓ１３１〜Ｓ１３３の処理がそれぞれ１回ずつ実行され、その際に各ステップですべてのj∈{1,...,J}についての処理がまとめて実行されてもよい。或いは、各j∈{1,...,J}についてのステップＳ１２１〜Ｓ１２３，Ｓ１３１〜Ｓ１３３の処理がjを更新しながら繰り返されてもよい。また、各j∈{1,...,J}についてのステップＳ１２１〜Ｓ１２３，Ｓ１３１，Ｓ１３２の処理がjを更新しながら繰り返され、すべてのj∈{1,...,J}についてステップＳ１２１〜Ｓ１２３，Ｓ１３１，Ｓ１３２の処理が実行された後、ステップＳ１３３，Ｓ１３４の処理が実行されてもよい。また好ましくは、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である。
【００３１】
〔第２実施形態〕
第２実施形態は第１実施形態の具体例である。本形態では、データ提供装置で行われる匿名化処理として非特許文献１の５章に開示された維持-置換撹乱を用い、データ提供装置で行われる秘匿化や匿名データ装置で行われる秘密計算として参考文献２に開示された技術を用いる。参考文献２では、秘匿化情報を３者に秘密分散（加法的秘密分散）して秘密計算を行う。そのため、本形態の匿名データ装置の個数は３個（T=3）となる。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する部分については第１実施形態と同一の参照番号を用いて説明を簡略以下する。
【００３２】
＜構成＞
図１に例示するように、第２実施形態の匿名データ提供システム２は、データ提供装置２１０−１〜Ｒ（R≧2）、匿名データ装置２２０−１〜３（T=3）、及び分析装置２３０を有する。これらはネットワークや可搬型記録媒体などを介して情報のやり取りが可能である。説明の簡略化のため、本形態では１個の分析装置２３０のみを説明するが、分析装置が複数存在してもよい。
【００３３】
図２Ａに例示するように、第２実施形態のデータ提供装置２１０−ｒ（r∈{1,...,R}）は、入力部１１１−ｒ、出力部１１１−ｒ、記憶部１１３−ｒ、メモリ１１４−ｒ、制御部２１５−ｒ、匿名化部２１６−ｒ、及び秘匿化部２１７−ｒを有する。図２Ｂに例示するように、第２実施形態の匿名データ装置２２０−ｔ（t∈{1,2,3}）は、入力部１２１−ｔ、出力部１２２−ｔ、記憶部１２３−ｔ、メモリ１２４−ｔ、制御部２２５−ｔ、及び提供情報生成部２２６−ｔを有する。図２Ｃに例示するように、第２実施形態の分析装置２３０は、入力部１３１、出力部１３２、記憶部１３３、メモリ１３４、制御部２３５、及び分析部２３６を有する。
【００３４】
データ提供装置２１０−１〜Ｒ、匿名データ装置２２０−１〜３、及び分析装置２３０は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される特別な装置である。データ提供装置２１０−１〜Ｒ、匿名データ装置２２０−１〜３、及び分析装置２３０は、それぞれが有する制御部２１５−ｒ，２２５−ｔ，２３５の制御のもとで各処理を実行する。各処理部から出力されたデータは、それぞれの装置が有するメモリ１１４−ｒ，１２４−ｔ，１３４に格納され、必要に応じて読み出されて他の処理に利用される。
【００３５】
＜事前処理＞
各属性ATT(n)(ただしn∈{1,...,N})にそれぞれ対応する維持確率ρ(n)（ただし0≦ρ(n)≦1）、及び各属性ATT(n)(ただしn∈{1,...,N})にそれぞれ対応する属性値を正整数に変換するための対応表TAB（属性値と整数との対応表）が何れかの匿名データ装置２２０−ｔから出力され、データ提供装置２１０−１〜Ｒのそれぞれに設定される。維持確率とは、維持-置換撹乱で属性値が維持される確率を表す。維持-置換撹乱で属性値が維持されない場合には本来の属性値がランダムな属性値に変更される。本来の属性値がランダムな属性値に変更された場合であっても、ランダムな属性値が本来の属性値に一致する場合もある。維持確率は、ランダムな属性値が本来の属性値に一致する場合にも属性値が維持されていないとみた確率である。好ましくは、維持確率ρ(n) (ただしn∈{1,...,N})は、維持-置換撹乱によって生成された匿名化属性値v(r,1),...,v(r,N)に含まれる任意のM個の匿名化属性値v(r,w(1)),...,v(r,w(M))(ただし{w(1),...,w(M)}⊂{1,...,N})が含む正しい属性値に対応する値を表現するためのデータ量の合計が所定値以下となるような値である（m(j)≦M, 1≦M＜N）。或いは、以下のσ値が閾値以上となる維持確率ρ(η)(ただしη∈{1,...,N})が選択されることが望ましい。σ値は、直感的に「どのデータからもデータ提供者をσ個以下の候補に絞り込めない」ということを保証する指標である。
【数１】
0005670366.tif 000006
ただし、AS={w(1),...,w(M)}⊂{1,...,N}}であり、L(η)は属性ATT(η)の属性値の個数（要素の個数）である。例えば属性ATT(2)=「性別」である場合、L(2)=2である。また、参考文献２の秘密計算では正整数の属性値しか扱うことができず、属性値を整数として扱う必要性から対応表TABが必要となる。
【００３６】
＜秘匿データの保管処理＞
図３Ａに例示するように、各データ提供装置２１０−ｒ（図２Ａ）の入力部１１１−ｒに、レコードを構成するN個(N≧2)の属性ATT(1),...,ATT(N)それぞれの属性値ν(r,1),...,ν(r,N)が入力され、記憶部１１３−ｒに格納される（ステップＳ１１１）。
【００３７】
レコードを構成するN個の属性値ν(r,1),...,ν(r,N)は匿名化部２１６−ｒに入力される。匿名化部２１６−ｒは、以下のようにN個の属性値ν(r,1),...,ν(r,N)を匿名化し、N個の匿名化属性値v(r,1),...,v(r,N)を生成して出力する。
【００３８】
まず匿名化部２１６−ｒは、対応表TABに従って、N個の属性値ν(r,1),...,ν(r,N)をN個の属性整数値υ(r,1),...,υ(r,N)に変換する。次に匿名化部２１６−ｒは、維持確率ρ(n)(ただしn∈{1,...,N})で属性ATT(n)に対応する属性整数値υ(r,n)の維持-置換撹乱を行い、正整数である匿名化属性値v(r,n)を生成する。維持確率ρ(n)をυ(n)行v(n)列成分を遷移確率(A(n))υ(n)v(n)とする遷移確率行列A(n)で表現すると以下のようになる。
【数２】
0005670366.tif 000007
ただし、L(n)は属性ATT(n)の属性値の個数である。υ(r,n)=v(r,n)となる確率がρ(n)+(1-ρ(n))/L(n)であり、υ(r,n)≠v(r,n)である各v(r,n)となる確率がそれぞれ(1-ρ(n))である。ここでυ(r,n)≠v(r,n)であるv(r,n)は(L(n)-1)種類存在する。そのため、ρ(n)+(1-ρ(n))/L(n)の確率でυ(r,n)=v(r,n)となり、(1-ρ(n))・(L(n)-1)/L(n)（「・」は乗算演算子）の確率でυ(r,n)≠v(r,n)となる（ステップＳ２１２）。
【００３９】
匿名化属性値v(r,1),...,v(r,N)は秘匿化部２１７−ｒに入力される。秘匿化部２１７−ｒは、匿名化属性値v(r,1),...,v(r,N)を以下のように秘匿化し、それによって得られたN個の秘匿化匿名属性値s(r,1),...,s(r,N)を出力する。本形態では、３個の匿名データ装置２２０−t（t∈{1,2,3}）に対し、互いに同一とは限らない秘匿化匿名属性値s(r,1),...,s(r,N)が出力される。以下では匿名データ装置２２０−t（t∈{1,2,3}）に対して出力される秘匿化匿名属性値s(r,n)(n∈{1,...,N})をst(r,n)（t∈{1,2,3}）と表記する。
【００４０】
まず秘匿化部２１７−ｒは、匿名化属性値v(r,n)(n∈{1,...,N})を、L(n)個の整数F(1,r,n),...,F(L(n),r,n)からなる整数列であって上位からv(r,n)番目の値F(v(r,n),r,n)が1であってv(r,n)番目以外の値が0である整数列F(r,n)に変換する。前述のようにL(n)は属性ATT(n)の属性値の個数である。例えば、L(2)=2, v(r,2)=1である場合、F(r,2)=10となる。
【００４１】
次に秘匿化部２１７−ｒは、この変換によって得られたN個の整数列F(r,n)(n∈{1,...,N})を構成する各整数に対する加法的秘密分散を行う。すなわち、まず秘匿化部２１７−ｒは、L(n)個のランダムな整数F0(1,r,n),...,F0(L(n),r,n)からなる整数列F0(r,n)(n∈{1,...,N})と、L(n)個のランダムな整数F1(1,r,n),...,F1(L(n),r,n)からなる整数列F1(r,n)(n∈{1,...,N})を生成する。次に秘匿化部２１７−ｒは、F2(ω,r,n)=F(ω,r,n)-F0(ω,r,n)-F1(ω,r,n) mod p (ω∈{1,...,L(n)}, n∈{1,...,N})を計算する。ただし、pは素数定数である。秘匿化部２１７−ｒは、以下のような秘匿化匿名属性値st(r,n)（t∈{1,2,3}, n∈{1,...,N}）を生成する。
s1(r,n)=(F0(1,r,n),...,F0(L(n),r,n), F1(1,r,n),...,F1(L(n),r,n))
s2(r,n)=(F1(1,r,n),...,F1(L(n),r,n), F2(1,r,n),...,F2(L(n),r,n))
s3(r,n)=(F2(1,r,n),...,F2(L(n),r,n), F0(1,r,n),...,F0(L(n),r,n))
すなわち、秘匿化部２１７−ｒは、以下のような秘匿化匿名属性値st(r,n)（t∈{1,2,3}, n∈{1,...,N}）を生成する。
st(r,n)=(Ft-1(1,r,n),...,Ft-1(L(n),r,n), Ft mod 3(1,r,n),...,Ft mod 3(L(n),r,n))
秘匿化匿名属性値st(r,1),...,st(r,N)（t∈{1,2,3}）は出力部１１２−ｒに入力される（ステップＳ２１３）。
【００４２】
出力部１１２−ｒは、秘匿化匿名属性値st(r,1),...,st(r,N)（t∈{1,2,3}）を出力する（ステップＳ２１４）。秘匿化匿名属性値st(r,1),...,st(r,N)は、ネットワーク等を介して匿名データ装置２２０−ｔ（t∈{1,2,3}）に送られる。秘匿化匿名属性値st(r,1),...,st(r,N)は、匿名データ装置２２０−ｔ（図２Ｂ）のそれぞれの入力部１２１−ｔに入力され、記憶部１２３−ｔに格納される。これにより、記憶部１２３−ｔには、属性ATT(1),...,ATT(N)及びr={1,...,R}に秘匿化匿名属性値st(r,1),...,st(r,N)が対応付けられたデータベースが格納される。
【００４３】
＜データの提供＞
図３Ｃに例示するように、分析装置２３０（図２Ｃ）の出力部１３２は、N個の属性ATT(1),...,ATT(N)から選択されたm(j)(ただしm(j)≦M, 1≦M＜N)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))(ただし{n(j,1),...,n(j,m(j))}⊂{1,...,N})を表す識別子である属性識別子を出力する（ステップＳ１３１）。なお、本形態のMは整数の定数である。属性識別子は、ネットワーク等を経由して匿名データ装置２２０−ｔ（t∈{1,2,3}）のそれぞれに送られる。
【００４４】
図３Ｂに例示するように、属性識別子は匿名データ装置２２０−ｔ（図２Ｂ）の入力部１２１−ｔに入力され、記憶部１２３ｔに格納される（ステップＳ１２１）。属性識別子は提供情報生成部２２６−ｔに入力される。提供情報生成部２２６−ｔは、属性識別子が表すm(j)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))({n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値st(r,n(j,1)),...,st(r,n(j,m(j)))を記憶部１２３−ｔから抽出する。提供情報生成部２２６−ｔは、抽出した秘匿化匿名属性値st(r,n(j,1)),...,st(r,n(j,m(j)))からなる集合SUBt(r,j)={st(r,n(j,1)),...,st(r,n(j,m(j)))}を用い、R個の集合SUBt(1,j),SUBt(2,j),...,SUBt(R,j)に対応する提供情報Dt(n(j,1),...,n(j,m(j)))を生成する。本形態では、秘匿化されたクロス集計表が生成され、秘匿化されたクロス集計表又はそれから復元されたクロス集計表が提供情報Dt(n(j,1),...,n(j,m(j)))とされる。以下に提供情報Dt(n(j,1),...,n(j,m(j)))の生成方法を例示する。
【００４５】
まず提供情報生成部２２６−ｔは、属性識別子が表す属性ATT(n’)(n’∈{n(j,1),...,n(j,m(j))})の属性値となり得る値κ(n’)を、前記の対応表TABに従って、正整数値k(n’)に変換する。言い換えると、提供情報生成部２２６−ｔは、属性識別子が表すm(j)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))の属性値となり得るm(j)個の値κ(n(j,1)),...,κ(n(j,m(j)))を、前記の対応表TABに従って、m(j)個の正整数値k(n(j,1)),...,k(n(j,m(j)))に変換する。なお、この変換処理は事前になされていてもよい。ここで、正整数値k(n(j,1)),...,k(n(j,m(j)))からなる集合CELL(c)={k(n(j,1)),...,k(n(j,m(j)))}をセルと呼ぶ。セルCELL(c)(c∈{1,...,MAX})は属性ATT(n(j,1)),...,ATT(n(j,m(j)))の属性値となり得るすべてのm(j)個の値κ(n(j,1)),...,κ(n(j,m(j)))の組み合わせについて設定される。MAXはm(j)個の値κ(n(j,1)),...,κ(n(j,m(j)))の組み合わせ総数である。例えば、属性識別子が2個の属性ATT(1),ATT(2)(ただしm(j)=2, L(1)=5, L(2)=2)を表す場合、属性ATT(1),ATT(2)の属性値となり得る2個の値κ(1),κ(2)の組み合わせは10通り存在し(MAX=10)、それぞれの組み合わせに対応するセルCELL(c)(ただしc∈{1,...,10})が設定される。
【００４６】
次に、提供情報生成部２２６−ｔは、属性識別子が表す属性ATT(n’)(ただしn’∈{n(j,1),...,n(j,m(j))})に対応する秘匿化匿名属性値st(r,n’)=(Ft-1(1,r,n’),...,Ft-1(L(n’),r,n’), Ft mod 3(1,r,n’),...,Ft mod 3(L(n’),r,n’))を記憶部１２３−ｔから抽出し、以下の積PROt-1(r,c), PROt mod 3(r,c) (ただしr∈{1,...,R}, c∈{1,...,MAX})を計算する。
【数３】
0005670366.tif 000008
【００４７】
次に、提供情報生成部２２６−ｔは、積PROt-1(r,c), PROt mod 3(r,c)のr∈{1,...,R}についての和PSt-1(c), PSt mod 3(c) (c∈{1,...,MAX})を以下のように計算する。
【数４】
0005670366.tif 000009
【００４８】
(PSt-1(c), PSt mod 3(c))(c∈{1,...,MAX})は、秘匿化されたクロス集計表のCELL(c)に対応する秘匿化された秘匿値となっている。提供情報生成部２２６−ｔは、(PSt-1(1), PSt mod 3(1)),...,(PSt-1(MAX), PSt mod 3(MAX))を提供情報Dt(n(j,1),...,n(j,m(j)))として出力する（ステップＳ２２２）。提供情報Dt(n(j,1),...,n(j,m(j)))は出力部１２２−ｔに入力される。出力部１２２−ｔは提供情報Dt(n(j,1),...,n(j,m(j)))を出力する（ステップＳ２２３）。
【００４９】
提供情報Dt(n(j,1),...,n(j,m(j)))は、ネットワーク等を介して分析装置２３０に送られ、図３Ｃに例示するように、分析装置２３０（図２Ｃ）の入力部１３１に入力され、記憶部１３３に格納される（ステップＳ２３２）。
【００５０】
分析部２１３は、記憶部１３３から２個以上の異なるt∈{1,2,3}に対応する提供情報Dt(n(j,1),...,n(j,m(j)))を抽出し、これらを用いてクロス集計表を復元して出力する。例えば、分析部２１３は、D1(n(j,1),...,n(j,m(j)))=(PS0(1), PS1(1)),...,(PS0(MAX), PS1(MAX)), D2(n(j,1),...,n(j,m(j)))=(PS1(1), PS2(1)),...,(PS1(MAX), PS2(MAX))を用い、以下のようにクロス集計表に含まれる各集計値E(c)(ただしc∈{1,...,MAX})を生成して出力する。
E(c)=PS0(c)+PS1(c)+PS2(c) mod p  ...(7)
或いは、分析部２１３は、式(7)によって得られた集計値E(c)(ただしc∈{1,...,MAX})に対し、さらに参考文献４の3章の「3.3.3 反復ベイズ手法を用いた再構築処理」に記載された反復ベイズ手法を施し、それによって得られた再構築値からなる再構築クロス集計表を生成して出力してもよい。すなわち、分析部２１３は、遷移確率行列A(n(j,1)),...,A(n(j,m(j)))のクロネッカー積A(j)とy→=(E(1),...,E(MAX))とを「Input」として、参考文献４の3章の「Algorithm 1 Reconstruction」を実行し、それによって出力される再構築値x→=(E’(1),...,E’(MAX))の要素E’(1),...,E’(MAX)からなる再構築クロス集計表を生成して出力してもよい。例えば分析部２１３は、ιを1ずつ増加させながらx→ι+1=x→ι・(A(j)・(y→/(x→ι・A))t)tを繰り返し、x→ι+1とx→ιとの距離が閾値以下となった時点でのx→ιをx→とする。ただし、(α)tはαの転置を表す。或いは、分析部１１３がクロス集計表又は再構築クロス集計表を表形式のデータベースに変換してから出力してもよい。なお、各セルCELL(c)の再構築値E’(c)(ただしc∈{1,...,MAX})は整数とは限らず、一般に実数である。しかしながら、再構築値E’(c)(ただしc∈{1,...,MAX})の合計値はレコードの総数Rと等しい。このような再構築クロス集計表を表形式のデータベースに変換する方法としては、例えば、「特開2011-145869号公報（参考文献６）」に開示された方法がある。参考文献６の方法を用いる場合、分析部１１３は、再構築クロス集計表の各再構築値E’(c)について、当該再構築値E’(c)に対応する属性値の組み合わせからなるレコードを、それぞれ当該再構築値E’(c)の整数部の値ずつ生成する。さらに分析部１１３は、各再構築値E’(c) (c∈{1,...,MAX})の小数部を加算していき、その加算値SUMが１となった時点での再構築値E’(c)に対応する属性値の組み合わせからなるレコードをさらに１個生成し、かつ、加算値SUMから１を減じた値を新たな加算値SUMとしていく処理を、すべての再構築値E’(c) (c∈{1,...,MAX})の小数部の加算が終了するまで実行する（ステップＳ２３３）。分析部２１３から出力されたデータは出力部１３２から出力される（ステップＳ２３４）。
【００５１】
なお、ステップＳ１２１，Ｓ２２２，Ｓ２２３，Ｓ１３１，Ｓ２３２，Ｓ２３３の処理は、すべてのj∈{1,...,J}について実行される。ステップＳ１２１，Ｓ２２２，Ｓ２２３，Ｓ１３１，Ｓ２３２，Ｓ２３３の処理がそれぞれ１回ずつ実行され、その際に各ステップですべてのj∈{1,...,J}についての処理がまとめて実行されてもよい。或いは、各j∈{1,...,J}についてのステップＳ１２１，Ｓ２２２，Ｓ２２３，Ｓ１３１，Ｓ２３２，Ｓ２３３の処理がjを更新しながら繰り返されてもよい。また、各j∈{1,...,J}についてのステップＳＳ１２１，Ｓ２２２，Ｓ２２３，Ｓ１３１，Ｓ２３２の処理がjを更新しながら繰り返され、すべてのj∈{1,...,J}についてステップＳ１２１，Ｓ２２２，Ｓ２２３，Ｓ１３１，Ｓ２３２の処理が実行された後、ステップＳ２３３，Ｓ２３４の処理が実行されてもよい。また好ましくは、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である。
【００５２】
また、上記では、提供情報生成部２２６−ｔが(PSt-1(1), PSt mod 3(1)),...,(PSt-1(MAX), PSt mod 3(MAX))を提供情報Dt(n(j,1),...,n(j,m(j)))として出力したが（ステップＳ２２２）、提供情報生成部２２６−ｔが他の匿名データ装置２２０−ｔ’から(PSt’-1(1), PSt’ mod 3(1)),...,(PSt’-1(MAX), PSt’ mod 3(MAX))を受け取り、式(7)に従って各集計値E(c)(c∈{1,...,MAX})を求め、それらを提供情報として出力してもよい。或いは、提供情報生成部２２６−ｔが式(7)によって得られた各集計値E(c)に対し、さらに参考文献４の3章の「反復ベイズ手法を用いた再構築処理」を施し、それによって得られた再構築値からなる再構築クロス集計表を提供情報として出力してもよい。或いは、提供情報生成部２２６−ｔがクロス集計表又は再構築クロス集計表を表形式のデータベースに変換し、それを提供情報として出力してもよい。
【００５３】
本形態では、秘密計算として参考文献２に開示された技術を用いた。参考文献２の秘密計算は、特に加算及び乗算を効率的に実行できる秘密計算であり、一般的に重い処理である秘密計算を非常に効率よく実行できる。参考文献２の秘密計算による加算は、通常の加算とほぼ同等の処理量で実行でき、参考文献２の秘密計算による乗算は、1秒あたり理論値で約500万回実行できる(素数32bit, 双方向500Mbpsで計算) 。そのため、属性の個数をN=3とし、各属性ATT(n)の属性値の個数をL(n)=10とし、レコードの総数をR=100万とした場合、乗算回数は(3-1)×1,000,000×103 = 2,000,000,000となり、7分弱で計算を完了できる。また、匿名化に関しては維持-置換撹乱はもともとレコードごとに独立に実行可能なため、データ提供者が複数人いる場合も有用性のロスなく匿名化できる。その他の匿名性は第１実施形態と同等である。
【００５４】
〔第３実施形態〕
第３実施形態は第１，２実施形態の具体例である。本形態では、データ提供装置で行われる匿名化処理として第２実施形態と同様の維持-置換撹乱を用い、データ提供装置で行われる秘匿化や匿名データ装置で行われる秘密計算として参考文献１に開示された技術を用いる。参考文献１の秘密計算は２者で実行される。そのため、本形態の匿名データ装置の個数は２個（T=2）となる。以下では、第１，２実施形態との相違点を中心に説明し、第１，２実施形態と共通する部分については第１実施形態と同一の参照番号を用いて説明を簡略以下する。
【００５５】
＜構成＞
図１に例示するように、第３実施形態の匿名データ提供システム３は、データ提供装置３１０−１〜Ｒ（R≧2）、匿名データ装置３２０−１，２（T=2）、及び分析装置３３０を有する。これらはネットワークや可搬型記録媒体などを介して情報のやり取りが可能である。説明の簡略化のため、本形態では１個の分析装置３３０のみを説明するが、分析装置が複数存在してもよい。
【００５６】
図２Ａに例示するように、第３実施形態のデータ提供装置３１０−ｒ（r∈{1,...,R}）は、入力部１１１−ｒ、出力部１１１−ｒ、記憶部１１３−ｒ、メモリ１１４−ｒ、制御部３１５−ｒ、匿名化部２１６−ｒ、及び秘匿化部３１７−ｒを有する。図２Ｂに例示するように、第３実施形態の匿名データ装置３２０−ｔ（t∈{1,2}）は、入力部１２１−ｔ、出力部１２２−ｔ、記憶部１２３−ｔ、メモリ１２４−ｔ、制御部３２５−ｔ、及び提供情報生成部３２６−ｔを有する。図２Ｃに例示するように、第３実施形態の分析装置３３０は、入力部１３１、出力部１３２、記憶部１３３、メモリ１３４、制御部３３５、及び分析部３３６を有する。
【００５７】
データ提供装置３１０−１〜Ｒ、匿名データ装置３２０−１，２、及び分析装置３３０は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される特別な装置である。データ提供装置３１０−１〜Ｒ、匿名データ装置３２０−１，２、及び分析装置３３０は、それぞれが有する制御部３１５−ｒ，３２５−ｔ，３３５の制御のもとで各処理を実行する。各処理部から出力されたデータは、それぞれの装置が有するメモリ１１４−ｒ，１２４−ｔ，１３４に格納され、必要に応じて読み出されて他の処理に利用される。
【００５８】
＜事前処理＞
データ提供装置２１０−１〜Ｒ及び匿名データ装置３２０−ｔがデータ提供装置３１０−１〜Ｒ及び匿名データ装置３２０−ｔに置換される以外、第２実施形態と同じである。
【００５９】
＜秘匿データの保管処理＞
図３Ａに例示するように、各データ提供装置３１０−ｒ（図２Ａ）の入力部１１１−ｒに、レコードを構成するN個(N≧2)の属性ATT(1),...,ATT(N)それぞれの属性値ν(r,1),...,ν(r,N)が入力され、記憶部１１３−ｒに格納される（ステップＳ１１１）。
【００６０】
レコードを構成するN個の属性値ν(r,1),...,ν(r,N)は匿名化部２１６−ｒに入力される。匿名化部２１６−ｒは、第２実施形態と同様にN個の属性値ν(r,1),...,ν(r,N)を匿名化し、N個の匿名化属性値v(r,1),...,v(r,N)を生成して出力する（ステップＳ２１２）。
【００６１】
匿名化属性値v(r,1),...,v(r,N)は秘匿化部３１７−ｒに入力される。秘匿化部３１７−ｒは、匿名化属性値v(r,1),...,v(r,N)を以下のように秘匿化し、それによって得られたN個の秘匿化匿名属性値s(r,1),...,s(r,N)を出力する。本形態では、２個の匿名データ装置３２０−t（ただしt∈{1,2}）に対し、異なる秘匿化匿名属性値s(r,1),...,s(r,N)が出力される。以下では匿名データ装置３２０−t（ただしt∈{1,2}）に対して出力される秘匿化匿名属性値s(r,n)(n∈{1,...,N})をst(r,n)（ただしt∈{1,2}）と表記する。
【００６２】
まず秘匿化部３１７−ｒは、匿名化属性値v(r,n)(n∈{1,...,N})を、L(n)個の整数F(1,r,n),...,F(L(n),r,n)からなる整数列であって上位からv(r,n)番目の値F(v(r,n),r,n)が1であってv(r,n)番目以外の値が0である整数列F(r,n)に変換する。
【００６３】
次に秘匿化部３１７−ｒは、この変換によって得られた各整数列F(r,n)(n∈{1,...,N})を構成する各整数F(1,r,n),...,F(L(n),r,n)に対し、参考文献１の3章3.1節「提案手法」に開示されたプロトコル中の1,2の処理を行う。まず秘匿化部３１７−ｒは、クロス集計を行う論理回路の入力ワイヤーi(ω,r,n)(ω∈{1,...,L(n)},n∈{1,...,N})のそれぞれに対し、0,1にそれぞれ対応する２個のSEビットの乱数値Wi(ω,r,n),0, Wi(ω,r,n),1∈{0,1}seと、１個のランダムビットci(ω,r,n)∈{0,1}と、ランダムビットci(ω,r,n)の反転ビットci(ω,r,n)-と生成し、以下のようなPWi,0(ω,r,n)，PWi,1(ω,r,n)を生成する。ただし、SEは正整数の定数である。
PWi,0(ω,r,n)=(Wi(ω,r,n),0, ci(ω,r,n))  ...(7)
PWi,1(ω,r,n)=(Wi(ω,r,n),1, ci(ω,r,n)-)  ...(8)
【００６４】
さらに秘匿化部３１７−ｒは、整数F(ω,r,n)(ω∈{1,...,L(n)},n∈{1,...,N})のそれぞれを、F(ω,r,n)=DF1(ω,r,n)(+)DF2(ω,r,n)を満たす整数DF1(ω,r,n),DF2(ω,r,n)∈{0,1}に分割する。ただし、(+)は排他的論理和演算子を表す。例えば、まず秘匿化部３１７−ｒは、乱数DF1(ω,r,n)∈{0,1}を生成し、F(ω,r,n)=DF1(ω,r,n)(+)DF2(ω,r,n)を満たす整数DF2(ω,r,n)∈{0,1}を生成する。次に秘匿化部２１７−ｒは、上述のPWi,0(ω,r,n)，PWi,0(ω,r,n)（式(7)(8)）を用い、整数DF2(ω,r,n)に対応する＜Wi(ω,r,n),b(ω,r,n), b(ω,r,n)(+)ci(ω,r,n)＞（b(ω,r,n)=DF2(ω,r,n)∈{0,1}）をそれぞれ生成する。秘匿化部２１７−ｒは、例えば以下のような秘匿化匿名属性値st(r,n)（t∈{1,2}, n∈{1,...,N}）を生成する。
s1(r,n)=(DF1(1,r,n),...,DF1(L(n),r,n), <PWi,0(1,r,n)，PWi,1(1,r,n))>,...,<PWi,0(L(n),r,n)，PWi,1(L(n),r,n)>)
s2(r,n)=(<Wi(1,r,n),b(1,r,n), b(1,r,n)(+)ci(1,r,n)>,...,<Wi(L(n),r,n),b(L(n),r,n), b(L(n),r,n)(+)ci(L(n),r,n)>)
秘匿化匿名属性値st(r,1),...,st(r,N)（t∈{1,2}）は出力部１１２−ｒに入力される（ステップＳ３１３）。
【００６５】
出力部１１２−ｒは、秘匿化匿名属性値st(r,1),...,st(r,N)（t∈{1,2}）を出力する（ステップＳ３１４）。秘匿化匿名属性値st(r,1),...,st(r,N)は、ネットワーク等を介して匿名データ装置３２０−ｔ（t∈{1,2}）に送られる。秘匿化匿名属性値st(r,1),...,st(r,N)は、匿名データ装置３２０−ｔ（図２Ｂ）のそれぞれの入力部１２１−ｔに入力され、記憶部１３−ｔに格納される。これにより、記憶部１２３−ｔには、属性ATT(1),...,ATT(N)及びr={1,...,R}に秘匿化匿名属性値st(r,1),...,st(r,N)が対応付けられたデータベースが格納される。
【００６６】
＜データの提供＞
図３Ｃに例示するように、分析装置３３０（図２Ｃ）の出力部１３２は、N個の属性ATT(1),...,ATT(N)から選択されたm(j)(m(j)≦M, 1≦M＜N)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))({n(j,1),...,n(j,m(j))}⊂{1,...,N})を表す識別子である属性識別子を出力する（ステップＳ１３１）。なお、本形態のMは整数の定数である。属性識別子は、ネットワーク等を経由して匿名データ装置２２０−ｔ（t∈{1,2,3}）のそれぞれに送られる。
【００６７】
図３Ｂに例示するように、属性識別子は匿名データ装置２２０−ｔ（図２Ｂ）の入力部１２１−ｔに入力され、記憶部１２３ｔに格納される（ステップＳ１２１）。属性識別子は提供情報生成部２２６−ｔに入力される。提供情報生成部２２６−ｔは、属性識別子が表すm(j)個の属性ATT(n(j,1)),...,ATT(n(j,m(j)))({n(j,1),...,n(j,m(j))}⊂{1,...,N})のそれぞれに対応する秘匿化匿名属性値st(r,n(j,1)),...,st(r,n(j,m(j)))を記憶部１２３−ｔから抽出する。提供情報生成部３２６−ｔは、抽出した秘匿化匿名属性値s(r,n(j,1)),...,s(r,n(j,m(j)))からなる集合SUB(r,j)={s(r,n(j,1)),...,s(r,n(j,m(j)))}を用い、R個の集合SUB(1,j),SUB(2,j),...,SUB(R,j)に対応する提供情報D(n(j,1),...,n(j,m(j)))を生成する。本形態では、秘匿化されたクロス集計表が生成され、秘匿化されたクロス集計表又はそれから復元されたクロス集計表が提供情報D(n(j,1),...,n(j,m(j)))とされる。以下に提供情報D(n(j,1),...,n(j,m(j)))の生成方法を例示する。なお、以下では匿名データ装置３２０−ｔで生成される提供情報D(n(j,1),...,n(j,m(j)))をDt(n(j,1),...,n(j,m(j)))と表記する。
【００６８】
[提供情報生成部３２６−１の処理]
まず提供情報生成部３２６−１は、第２実施形態と同様に、属性識別子が表す属性ATT(n’)(ただしn’∈{n(j,1),...,n(j,m(j))})の属性値となり得る値κ(n’)を、前記の対応表TABに従って、正整数値k(n’)に変換する。この変換処理は事前になされていてもよい。
【００６９】
次に、提供情報生成部３２６−１は、属性識別子が表す属性ATT(n’)(ただしn’∈{n(j,1),...,n(j,m(j))})に対応する秘匿化匿名属性値s1(r,n’)=(DF1(1,r,n’),...,DF1(L(n’),r,n’), <PWi,0(1,r,n’)，PWi,1(1,r,n’))>,...,<PWi,0(L(n’),r,n’)，PWi,1(L(n’),r,n’)>)を記憶部１２３−１から抽出する。提供情報生成部３２６−１は、入力ビット列x=(X(1,r,n’),...,X(L(n),r,n’)（ただしX(ω,r,n’)∈{0,1}）がDF2(1,r,n’),...,DF2(L(n),r,n’)である場合に以下の論理演算LO(c,x)(ただしc∈{1,...,MAX})を実行する論理回路を設定する。
【数５】
0005670366.tif 000010
【００７０】
さらに提供情報生成部３２６−１は、設定した当該論理回路を構成する各論理ゲート（ＡＮＤゲートやＸＯＲゲート等）の処理内容を表す真理値表を乱数化したテーブル（参考文献１の2章2.1節(c)、参考文献７：A. C. Yao., “how to generate and exchange secrets,” Proc. of FOCS ’86, pp. 162-167, IEEE Press, 1986.等参照）を生成し、当該真理値表を乱数化したテーブルの集合TLO(c,x)(c∈{1,...,MAX})を生成する。以下に、入力χ(0),χ(1)∈{0,1}に対してg(z;χ(0),χ(1))∈{0,1}を出力する１個の論理ゲートGATE(z)の処理内容を表す真理値表を乱数化したテーブルを例示する。このようなテーブルを各論理ゲートGATE(z)について生成することで集合TLO(c,x)が得られる。
【数６】
0005670366.tif 000011
【００７１】
ただし、cu(z;β)∈{0,1}は当該論理ゲートGATE(z)の入力χ(β)(β∈{0,1})に対応するランダムビットであり、cu(β)-はcu(z;β)の反転ビットである。当該論理ゲートGATE(z)の入力χ(β)がi番目の入力ワイヤーに対応する場合、PWi,0(ω,r,n)に含まれるci(ω,r,n)がcu(z;β)となり、PWi,1(ω,r,n)に含まれるci(ω,r,n)-がcu(z;β)-となる。当該論理ゲートGATE(z)の入力χ(β)がいずれの入力ワイヤーにも対応しない場合、当該論理ゲートGATE(z)の前段の論理ゲート(z-1)の出力に対応するランダムビットcd(z-1)∈{0,1}がcu(z;β)となる。このランダムビットcd(z-1)は提供情報生成部３２６−１で生成されたものである。cd(z)∈{0,1}は、当該論理ゲートGATE(z)の出力に対して提供情報生成部３２６−１で生成されたランダムビットである。ただし、当該論理ゲートGATE(z)が最終段のゲートである場合にはcd(z)=0とされる。Wd(z),γ∈{0,1}se(γ∈{0,1})は、当該論理ゲートGATE(z)に対して提供情報生成部３２６−１で生成されたSEビットの乱数値である。Wu(z;β),γ∈{0,1}seは、論理ゲートGATE(z)の入力χ(β)(β∈{0,1})に対応するビット値γ(ただしγ∈{0,1})に対して生成されたSEビットの乱数値である。当該論理ゲートGATE(z)の入力χ(β)がi番目の入力ワイヤーに対応する場合、PWi,0(ω,r,n)に含まれるWi(ω,r,n),0がWu(z;β),0となり、PWi,1(ω,r,n)に含まれるWi(ω,r,n),1がWu(z;β),1となる。Hは疑似ランダム関数であり、Hの例はハッシュ関数である。また、組（「ラベル」と呼ぶ）cu(z;0),cu(z;1)は秘匿値(Wd(z),g(z;0,0),g(z;0,0)(+)cd(z))(+)H(Wu(z;0),0,cu(z;1))(+)H(Wu(z;1),0,cu(z;0))に対応付けられ、ラベルcu(z;0),cu(z;1)-は秘匿値(Wd(z),g(z;0,1),g(z;0,1)(+)cd(z))(+)H(Wu(z;0),0,cu(z;1)-)(+)H(Wu(z;1),1,cu(z;0))に対応付けられ、ラベルcu(z;0)-,cu(z;1)は秘匿値(Wd(z),g(z;1,0),g(z;1,0)(+)cd(z))(+)H(Wu(z;0),1,cu(z;1))(+)H(Wu(z;1),0,cu(z;0)-)に対応付けられ、ラベルcu(z;0)-,cu(z;1)-は秘匿値(Wd(z),g(z;1,1),g(z;1,1)(+)cd(z))(+)H(Wu(z;0),1,cu(z;1)-)(+)H(Wu(z;1),1,cu(z;0)-)に対応付けられる。
【００７２】
すべてのセルCELL(c)(ただしc∈{1,...,MAX})に対応する集合TLO(c,x)は提供情報D1(n(j,1),...,n(j,m(j)))として出力部１２２−１に入力される。
【００７３】
[提供情報生成部３２６−２の処理]
まず提供情報生成部３２６−２は、属性識別子が表す属性ATT(n’)(n’∈{n(j,1),...,n(j,m(j))})に対応する秘匿化匿名属性値の要素(<Wi(1,r,n’),b(1,r,n’), b(1,r,n’)(+)ci(1,r,n’)>,...,<Wi(L(n),r,n’),b(L(n),r,n’), b(L(n),r,n’)(+)ci(L(n),r,n’)>)を記憶部１２３−２から抽出する。要素(<Wi(1,r,n’),b(1,r,n’), b(1,r,n’)(+)ci(1,r,n’)>,...,<Wi(L(n),r,n’),b(L(n),r,n’), b(L(n),r,n’)(+)ci(L(n),r,n’)>)は、提供情報D2(n(j,1),...,n(j,m(j)))として出力部１２２−２に入力される（ステップＳ３２２）。
【００７４】
出力部１２２−ｔ（t∈{0,1}）は、提供情報Dt(n(j,1),...,n(j,m(j)))を出力する（ステップＳ３２３）。提供情報Dt(n(j,1),...,n(j,m(j)))は、ネットワーク等を介して分析装置３３０に送られ、図３Ｃに例示するように、分析装置３３０（図２Ｃ）の入力部１３１に入力され、記憶部１３３に格納される（ステップＳ３３２）。
【００７５】
分析部３１３は、記憶部１３３から提供情報D1(n(j,1),...,n(j,m(j)))，提供情報D2(n(j,1),...,n(j,m(j)))を抽出し、これらを用いて各集計値E(c)(ただしc∈{1,...,MAX})を復元して出力する。この復元方法は周知であるため詳細な説明は省略する（例えば、参考文献７等参照）。一例として、式(10)が入力ワイヤーi=i’,i’’に対応する初段の論理ゲートGATE(z)の処理内容を表す真理値表を乱数化したテーブルであると仮定する。分析部３１３は、提供情報D2(n(j,1),...,n(j,m(j)))に含まれる＜Wi’,b’, b’(+)ci’＞及び＜Wi’’,b’’, b’’(+)ci’’＞を用い、b’(+)ci’， b’’(+)ci’’に一致するラベルを式(10)から検出する。検出したラベルに対応付けられた秘匿値は(Wd(z),g(z;b’,b’’),g(z;b’,b’’)(+)cd(z))(+)H(Wi’,b’, b’’(+)ci’’)(+)H(Wi’’,b’’, b’(+)ci’)と表現できる。分析部３１３は、＜Wi’,b’, b’(+)ci’＞及び＜Wi’’,b’’, b’’(+)ci’’＞を用い、HASH(z)=H(Wi’,b’, b’’(+)ci’’)(+)H(Wi’’,b’’, b’(+)ci’)を計算する。さらに分析部３１３は、(Wd(z),g(z;b’,b’’),g(z;b’,b’’)(+)cd(z))(+)H(Wi’,b’, b’’(+)ci’’)(+)H(Wi’’,b’’, b’(+)ci’)(+)HASH=(Wd(z),g(z;b’,b’’),g(z;b’,b’’)(+)cd(z))を計算する。得られた＜Wd(z),g(z;b’,b’’),g(z;b’,b’’)(+)cd(z)＞は、GATE(z+1)の出力が入力される次の論理ゲートGATE(z+1)の処理内容を表す真理値表を乱数化したテーブルに対する、同様な検索処理及びHASH(z+1)の計算に利用される。このような検索処理が繰り返されることにより、最終的に演算結果が得られる。
【００７６】
或いは、分析部３１３は、得られた各集計値E(c)に対し、さらに参考文献４の3章の「反復ベイズ手法を用いた再構築処理」を施し、それによって得られた再構築値からなる再構築クロス集計表を生成して出力してもよい。或いは、分析部３１３がクロス集計表又は再構築クロス集計表を表形式のデータベースに変換してから出力してもよい（ステップＳ２３３）。分析部２１３から出力されたデータは出力部１３２から出力される（ステップＳ２３４）。
【００７７】
なお、ステップＳ１２１，Ｓ３２２，Ｓ３２３，Ｓ１３１，Ｓ３３２，Ｓ３３３の処理は、すべてのj∈{1,...,J}について実行される。ステップＳ１２１，Ｓ３２２，Ｓ３２３，Ｓ１３１，Ｓ３３２，Ｓ３３３の処理がそれぞれ１回ずつ実行され、その際に各ステップですべてのj∈{1,...,J}についての処理がまとめて実行されてもよい。或いは、各j∈{1,...,J}についてのステップＳ１２１，Ｓ３２２，Ｓ３２３，Ｓ１３１，Ｓ３３２，Ｓ３３３の処理がjを更新しながら繰り返されてもよい。また、各j∈{1,...,J}についてのステップＳＳ１２１，Ｓ３２２，Ｓ３２３，Ｓ１３１，Ｓ３３２の処理がjを更新しながら繰り返され、すべてのj∈{1,...,J}についてステップＳ１２１，Ｓ３２２，Ｓ３２３，Ｓ１３１，Ｓ３３２の処理が実行された後、ステップＳ３３３，Ｓ３３４の処理が実行されてもよい。また好ましくは、J≧2であり、j1,j2∈{1,...,J}, j1≠j2について、{n(j1,1),...,n(j1,m(j1))}∩{n(j2,1),...,n(j2,m(j2))}が空集合である。
【００７８】
また、上記では、提供情報生成部３２６−ｔが各集計値E(c)(ただしc∈{1,...,MAX})を復元し、それらを提供情報として出力してもよい。或いは、提供情報生成部３２６−ｔが得られた各集計値E(c)に対し、さらに参考文献４の3章の「反復ベイズ手法を用いた再構築処理」を施し、それによって得られた再構築値からなる再構築クロス集計表を提供情報として出力してもよい。或いは、提供情報生成部３２６−ｔがクロス集計表又は再構築クロス集計表を表形式のデータベースに変換し、それを提供情報として出力してもよい。
【００７９】
参考文献１の秘密計算では論理回路を高速に計算できる(理論値約50万素子/秒)。参考文献１の秘密計算は、参考文献２よりも演算効率が劣るものの、データサーバ装置が２個で済むといった利点がある。属性の個数をN=3とし、各属性ATT(n)の属性値の個数をL(n)=10とし、レコードの総数をR=100万とした場合、論理積回数は(3-1)×1,000,000×103 = 2,000,000,000となり、トーナメント方式の集計を行えば論理積の集計の回数は1,000,000×2 ×103 = 2,000,000,000となり、2時間程度で計算を完了することができ、バッチ処理としては十分な性能を得ることができる。匿名性は第１，２実施形態と同等である。
【００８０】
〔その他の変形例〕
本発明は上述の各実施形態に限定されるものではない。例えば、各実施形態では、各データ提供装置が各rに対応する秘匿化匿名属性値を出力することとしたが、少なくとも一部のデータ提供装置が複数のrに対応する秘匿化匿名属性値を出力してもよい。また、データ提供装置の個数とRとが一致していなくてもよい。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００８１】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００８２】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００８３】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００８４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００８５】
各実施形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００８６】
１１０，２１０，３１０  データ提供装置
１２０，２２０，３２０  匿名データ装置
１３０，２３０，３３０  分析装置
【図１】
0005670366.tif 000012
【図２】
0005670366.tif 000013
【図３】
0005670366.tif 000014