"データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理ステップと、を、コンピュータに実行させるための秘匿データ処理プログラム。前記マスク処理ステップが、1から前記所定数までの乱数を均一に又は予め定められたピークを有する分布に従って生成することで、前記所定数セットのマスク値を選択するステップを含む、請求項1記載の秘匿データ処理プログラム。前記予め定められた演算が、前記属性値と演算結果との関係が全単射となる請求項1又は2記載の秘匿データ処理プログラム。データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップと、を、コンピュータに実行させるための秘匿データ処理プログラム。分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するステップと、を、コンピュータに実行させるための秘匿データ処理プログラム。分析処理を実施したコンピュータから受信した複数の分析データセットのうち出現頻度が上位所定数又は上位所定割合の複数の分析データセットを、前記分析データ格納部に格納するステップをさらに、前記コンピュータに実行させるための請求項4又は5記載の秘匿データ処理プログラム。前記予め定められた演算が、前記属性値と演算結果との関係が全単射となる請求項4乃至6のいずれか1つ記載の秘匿データ処理プログラム。データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理ステップと、を含み、コンピュータにより実行される秘匿データ処理方法。データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップと、を含み、コンピュータにより実行させる秘匿データ処理方法。分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するステップと、を含み、コンピュータにより実行させる秘匿データ処理方法。データベースにおけるマスク対象属性の数分のマスク値を、所定数セット格納するマスクデータ格納部と、前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理部と、を有する情報処理装置。データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部と、前記マスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出し、分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するアンマスク処理部と、を有する情報処理装置。データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部と、マスク化属性値を含む複数の分析データセットを格納する分析データ格納部と、前記分析データ格納部に格納されておいる前記複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、前記マスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納し、前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するアンマスク処理部と、を有する情報処理装置。従って、本技術の目的は、一側面において、データを秘匿化したまま分析処理を適切に実施できるようにするための新規な技術を提供することである。本技術の第1の態様に係る秘匿データ処理方法は、Aデータベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、Bマスク対象属性の属性値を含む複数のレコードの各々について、マスクデータ格納部に格納されている所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで複数のレコードのマスク化データを生成し、データ格納部に格納するマスク処理ステップとを含む。本技術の第2の態様に係る秘匿データ処理方法は、Aデータベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、B分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップとを含む。本技術の第3の態様に係る秘匿データ処理方法は、A分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、所定数のアンマスク分析データセットを生成し、分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、Bアンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、アンマスク分析データの種類と対応する出現頻度とを表すデータを、アンマスク分析データ格納部に格納するステップとを含む。最初に、本技術の実施の形態において行われる処理について簡単に説明説明しておく。従来のマスク処理は、図2に示されるように、属性間でマスクする値に、それぞれ独立した乱数を与えていた。これにより、属性間の相関が分断され、適切な分析結果を得ることができなかった。これに対し、本技術の実施の形態においては図6a及びbに示されるように、複数のマスク値を含むマスク値集合をN個事前に用意しておき、これらの中から1つを、データベースの行毎に乱数によって選択し、当該マスク値集合でレコードをマスクする。マスク値集合とは、各マスク対象属性に対するマスク値を1つの集合として表したものである。例えば、図6a及びbに示すようにマスク対象属性が3種類の場合において、2種類のマスク値集合を乱数で切り替える場合、図6bに示されるように、マスク値集合として、{F1,G1,H1}と{F2,G2,H2}の2種類準備しておく。ただし、{F1,G1,H1}と{F2,G2,H2}は、全て定数である。F1及びF2は第1の属性を、G1及びG2は第2の属性を、H1及びH2は第3の属性をマスクするためのマスク値であり、行毎に{F1,G1,H1}又は{F2,G2,H2}のいずれかを乱数により選択して、属性値のマスクに用いる。{F1,G1,H1}と{F2,G2,H2}のように、属性間で連動させたマスク値を用いることで、属性間の相関をマスク値でシフトした状態で保存しながらマスク化することができるため、Aprioriアルゴリズム等を用いた場合でも分析精度の低下が発生しない。ここで分析精度の低下が抑制される理由を説明する。例えば、マスク化を行わない通常のテーブルに対してAprioriアルゴリズムを適用して数え上げを行った結果が{A,B,D}の出現頻度が10回であったとする。この際、2種類のマスク値集合{F1,G1,H1}と{F2,G2,H2}とを乱数で選択する方式を用いると、{AF1,BG1,DH1}と{AF2,BG2,DH2}とが合計10回出現する。乱数に偏りがない場合には、平均的にはそれぞれ5回ずつ出現する。このようなマスク化を解除し、アンマスク化した数え上げ結果を得るためには、{F1,G1,H1}と{F2,G2,H2}とを用いることになるが、これらの値を知っていれば、アンマスク化した数え上げ結果を得ることができる。後に、アンマスク化した数え上げ結果を得る手法を詳細に説明する。よって数え上げ結果に対して{F1,G1,H1}と{F2,G2,H2}との値をアンマスクのために用いるという特質を利用することで、これらの値を鍵として用いた安全なデータマイニングを実現することができる。すなわち、マスク化したままの状態で、分析処理を行うことで、オープンな環境下での分析を安全に実施しつつ、得られた分析結果に対して、アンマスクを行うことで、適切な分析結果を得ることができる。高い計算機の処理能力を必要とするデータの分析処理を、クラウドコンピューティング環境で実施することで、メインのシステムコストを低く抑えつつ、演算結果が出力された後の復号処理を、自社の閉じた安全な計算環境で実施することで、システムのコスト削減と、機密情報の漏洩防止を両立すること実現できる。さらに、本実施の形態では、オリジナルデータへの再変換のコストが少なくなっている。すなわち、従来手法によるPPDMを用いた場合、図3に示したように、マスクされたデータのテーブルと、ほぼ同サイズの、マスク値のテーブルを保持することになっていたのに対し、図7に模式的に示すように、マスク値のテーブルの代わりに、いずれのマスク値集合を選択したかを表すマスク選択データ及び使用したマスク値集合のデータを保持すればよい。マスク値のテーブルを保持する方法と異なり、マスク選択データを保持するためのデータ量は非常に小さいため、オリジナルデータへの再変換のコストを削減することができる。[実施の形態1]図8に本実施の形態に係るシステムの構成図を示す。本実施の形態では、例えばインターネット等のネットワーク1を介して、データ分析サービスを提供するクラウドコンピューティング環境5が、複数のユーザに対して提供されている。各ユーザは、ネットワーク1にユーザ装置3及び7を接続して、当該ユーザ装置3及び7を用いてクラウドコンピューティング環境5を利用する。クラウドコンピューティング環境5には、ユーザ装置3及び7から受信したデータを蓄積するデータベース53と、各種の分析処理を実施する分析装置51とを有する。本実施の形態では、分析装置51で実施される分析処理は、上で述べたAprioriアルゴリズムの他クロス集計など各種の分析処理を含むが、従来から行われていたものと同じである。図9に、ユーザ装置3の機能ブロック図を示す。ユーザ装置3は、データ送信部31と、データ収集部41と、データ格納部32と、初期処理部33と、マスクデータ格納部35と、マスク処理部34と、データ受信部36と、分析データ格納部37と、マスク化データ格納部38と、アンマスク処理部39と、アンマスク分析データ格納部40と、オリジナルデータ格納部42とを有する。データ収集部41は、オリジナルのデータを収集する処理を行い、収集したオリジナルのデータをデータ格納部32に格納する。なお、このようにユーザのシステム内のデータを自動的に収集するようにしても良いし、ユーザの指示に応じて、データ格納部32に格納するようにしても良い。初期処理部33は、設定又はユーザの指示に応じてマスク値集合を生成して、マスクデータ格納部35に格納する。マスク処理部34は、マスクデータ格納部35に格納されているマスク値集合を用いてマスク処理を実施して、マスク化されたデータをデータ格納部32に格納する。オリジナルのデータを置換するように格納しても良いし、別領域に格納するようにしても良い。なお、マスク処理部34は、上で述べたマスク選択データについても、データ格納部32に格納する。また、マスク選択データについても別データ格納部に格納するようにしてもよい。データ送信部31は、マスク化データを、クラウドコンピューティング環境5におけるデータベース53にネットワーク1を介して格納する。一方、ユーザ装置3からの指示、ネットワーク1に接続されているユーザ端末からの指示、又は定期的に、分析装置51は、データベース53に格納されているマスク化データについて上で述べたように所定の分析処理を実施し、マスク化された分析データを生成して、ユーザ装置3に送信する。ユーザ装置3のデータ受信部36は、受信した分析データを分析データ格納部37に格納する。アンマスク処理部39は、分析データ格納部37に格納されているマスク化された分析データに対して、マスクデータ格納部35に格納されているマスク値集合を用いて以下で説明するアンマスク処理を実施し、処理結果をアンマスク分析データ格納部40に格納する。なお、本実施の形態の主旨ではないが、オリジナルデータを復元したい場合には、例えばデータ受信部36がデータベース53からマスク化データを読み出し、そのマスク化データをマスク化データ格納部38に格納する。アンマスク処理部39は、マスク化データ格納部38に格納されているマスク化データに対して、マスクデータ格納部35に格納されているマスク値集合及びデータ格納部32に格納されているマスク選択データを用いてマスク処理の逆演算を実施して、処理結果であるオリジナルデータをオリジナルデータ格納部42に格納する。本実施の形態では、オリジナルデータは、複数のレコードを含むデータベースのデータであるものとする。次に、本実施の形態に係る初期処理部33の処理について図10を用いて説明する。初期処理部33は、ユーザの指示又は設定に基づき、マスク対象属性の個数K及びマスク値集合の個数Nを特定するステップS1。そして、初期処理部33は、カウンタcを1に初期化するステップS3。さらに、初期処理部33は、k個のマスク値を乱数で生成し、マスク値集合Mask[c]={Mc1,Mc2,Mck}として、マスクデータ格納部35に格納するステップS5。そして、初期処理部33は、cを1インクリメントしてステップS7、cがN以下であるか判断するステップS9。cがN以下であればステップS5に戻る。一方、cがNを超える場合には、処理を終了する。このような処理を実施することで、k個の乱数を含むマスク値集合がNセット生成されて、マスクデータ格納部35に格納されることになる。k個の乱数は、k個のマスク対象属性の何れかに用いられる。次に、図11を用いて、マスク処理部34の処理について説明する。まず、マスク処理部34は、データ格納部32に格納されているオリジナルデータに含まれるレコードのカウンタであるLを1に初期化するステップS11。そして、マスク処理部34は、データ格納部32から、オリジナルデータのL行目におけるマスク対象属性の属性値Dを読み出すステップS13。上でも述べたように、マスク対象属性はk個あるので、D={DataL1,DataL2,DataLk}を読み出すことになる。また、マスク処理部34は、1乃至N以下の範囲内で、ある分布に従って乱数rを生成するステップS15。ある分布とは、r=sとなる確率が最も高くなるような分布である。これは以下で説明するアンマスク処理のためである。そして、マスク処理部34は、Lとrの対応関係をマスク選択データとして、データ格納部32に格納するステップS17。これによってオリジナルデータを復元できるようになる。さらに、マスク処理部34は、マスク値集合Mask[r]を用いたマスク化を行うことでマスク化データDmを生成するステップS19。Mask[r]={Mr1,Mr2,Mrk}をマスクデータ格納部35から読み出し、Dm={fDataL1Mr1,fDataL2Mr2,fDataLkMrk}を生成する。ここで関数fx,y=zは、xとzとの関係が全単射の関係であれば、どのような関数であっても良い。すなわち、fx,y=zで示されるように、xからzを求める関数に対して、zからxを一意に決定するためのf1z,y=xで示される逆関数f1が存在すればよい。このような関数の一例としては、以下のようなものがある。加算:z=fx,y=xy,f1z,y=z-y=x加算剰余:z=fx,y=xymodT,f1z,y=z-ymodT=x減算:z=fx,y=x-y,f1z,y=zy=x減算剰余:z=fx,y=x-ymodT,f1z,y=zymodT=x排他的論理和XOR:z=fx,y=xXORy,f1z,y=zXORy=x乗算:z=fx,y=xy,f1z,y=z/y=x乗算剰余:z=fx,y=xymodT,f1z,y=zy1modT=xなお、Tは定数であり、例えば、T=232等のワード値のデータパターン数を表す定数が用いられる。上記関数は、他の関数であっても良いが、なるべく簡単な演算のものが好ましい。なぜなら、fx,yはデータベースをマスク化するための演算を表すが、データマイニングにおいては、用途によってはデータベースに入力するデータがリアルタイムに収集され、且つそのデータ量が膨大となるためである。例えば、世界中に配置された多数のセンシングデバイスから収集された観測データを、リアルタイムでマスク化しながらデータベースに格納する場合、fx,yの演算処理が大きな計算時間を伴うならば、マスク化処理に大きな負荷がかかり、データ収集のリアルタイム性が失われる。よって、マスク化処理の関数fx,yは、上記の事例に示されるような、簡単な演算処理が望ましい。その後、マスク処理部34は、データ格納部32において、オリジナルデータのL行目におけるマスク対象属性の属性値Dを、マスク化データDmで置換するステップS21。ここでは、オリジナルデータをユーザ装置3内では保存しない場合を示しており、保存しておく場合にはステップS21で別の領域にマスク化データとマスク対象属性以外の属性の属性値を格納する。その後、マスク処理部34は、LはLを1インクリメントしてステップS23、Lが、オリジナルデータのレコード数Lmax以下であるか判断するステップS25。LがLmax以下である場合にはステップS13に戻る。一方、LがLmaxを超えた場合には処理を終了する。このような処理を実施することで、各マスク対象属性の属性値をマスクすることができる。また、その際には、レコード内のマスク対象属性の属性値を、関連性を持たせたマスク化値でマスクするので、分析処理を適切に行うことができる。なお、オリジナルデータを復元するためのマスク選択データのサイズも小さいため、データ保持のためのデータ容量を削減することができる。なお、分析処理は、例えばAprioriアルゴリズムであり、ここでは説明を省略する。すなわち、マスク化したままで従来のとおり分析処理を実施しているので、分析結果についてもマスク化されたままである。次に、図12乃至図14を用いて、アンマスク時の処理について説明する。まず、データ受信部36は、分析装置51から分析処理の結果である分析データを受信し、分析データ格納部37に格納するステップS31。分析データはマスク化されたままであり、Aprioriアルゴリズムであればアイテム集合とその出現頻度のデータを含む。そして、アンマスク処理部39は、分析データ格納部37に格納されている分析データの中から、出現頻度が高い上位U個のアイテム集合Ciを抽出するステップS33。アイテム集合については以下のように表すものとする。C1={I11,I12,I1max1}C2={I21,I22,I2max2}CU={IU1,IU2,IUmaxU}また、アンマスク処理部39は、マスクデータ格納部35に格納されているマスク値集合のうち、出現頻度が最も高いマスク値集合Mask[s]を読み出すステップS35。また、アンマスク処理部39は、アイテム集合についてのカウンタi及びアイテムについてのカウンタjを1に初期化するステップS37。さらに、アンマスク処理部39は、アンマスク分析データDiに空集合をセットするステップS39。そして、アンマスク処理部39は、アイテム集合Ciのj番目のアイテム値Iijを特定するステップS41。処理は端子Aを介して図13の処理に移行する。図13の処理の説明に移行して、アンマスク処理部39は、Iijはマスク対象属性の属性値であるか判断するステップS43。例えばAprioriアルゴリズムにおいて取り扱われるA、B、C等のアイテムは、上では簡略化のため属性値例えば性別という属性に対する属性値は男及び女の2種類として表現しているが、実際には、個々のアイテムは属性値だけでなく属性と属性値の組み合わせ、例えば性別=男性として表現しているため、マスク対象属性の属性値であるか否かを判断することができる。すなわち、男性部分はマスク化されているが、性別部分についてはマスク化されていない。Iijはマスク対象属性の属性値でない場合には、アンマスク処理部39は、IijをIに設定するステップS45。マスク対象属性でなければ、その属性値をアンマスクしなくても良いからである。その後ステップS51に移行する。一方、Iijはマスク対象属性の属性値である場合には、アンマスク処理部39は、Mask[s]において、Iijに係る属性のマスク値を特定し、Mに設定するステップS47。上でも述べたように、Iijがいずれのマスク対象属性の属性値であるかが分かれば、対応するマスク値も特定できる。そして、アンマスク処理部39は、IijをMでアンマスクし、アンマスク値をIに設定するステップS49。すなわち、I=f1Iij,M=f1fData,M,M=Dataとなる。但し、これは正しいマスク値集合が適用された場合である。その後、アンマスク処理部39は、集合DiにIを追加するステップS51。そして、アンマスク処理部39は、jを1インクリメントしステップS53、jがjの最大値であるjmax以下であるか判断するステップS55。jがjmax以下であれば端子Bを介してステップS41に戻る。一方、jがjmaxを超えている場合には、アンマスク処理部39は、iを1インクリメントすると共に、jを1に初期化するステップS57。そして、アンマスク処理部39は、iがU以下であるか判断するステップS59。iがU以下であれば端子Cを介してステップ39に戻る。一方、iがUを超えている場合には、アンマスク処理部39は、集合Diをアンマスク分析データ格納部40に格納するステップS61。なお、集合Diの出現頻度でソートした結果を格納するようにしても良い。なお、ユーザからの指示に応じて、アンマスク分析データ格納部40に格納されているデータは、ユーザに提示される。これで処理を終了する。このように、本実施の形態では、分析データに含まれるアイテム集合Ciがどのマスク値集合でマスク化されているか不明であるので、出現頻度が最も高いマスク値集合でアンマスクする。このような処理の有効性について以下に具体例で説明する。図14の左側に示すように、オリジナルデータに対してAprioriアルゴリズムで分析した結果、アイテム集合{A,B,D}が2000回、アイテム集合{A,B,C,E}が1900回、アイテム集合{A,D,E,F}が1800回検出されているとする。また、2つのマスク値集合が用いられており、Mask[1]={M11,M12,M1k}の出現割合が0.6で、Mask[2]={M21,M22,M2k}の出現割合が0.4であるものとする。このような場合、マスク化データに対する分析結果は、図14の中央に示すように、{A,B,D}については、{fA,M11,fB,M12,fD,M14}という形で検出されるか、{fA,M21,fB,M22,fD,M24}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1200回、後者が800回検出される。同様に、{A,B,C,E}については、{fA,M11,fB,M12,fC,M13,fE,M15}という形で検出されるか、{fA,M21,fB,M22,fC,M23,fE,M25}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1140回、後者が760回検出される。さらに、{A,D,E,F}については、{fA,M11,fD,M14,fE,M15,fF,M16}という形で検出されるか、{fA,M21,fD,M24,fE,M25,fF,M26}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1080回、後者が720回検出される。このように、マスク化の段階でマスク値の出現頻度に偏りがあり、Mask[1]の出現頻度が高い場合には、マスク化分析データ例えばアイテム集合においてもMask[1]でマスクされたマスク化分析データの出現頻度の順位は維持される。従って、マスク化分析データ例えばアイテム集合のうち出現頻度の上位のものここではU=3に対して、Mask[1]でアンマスクすれば、図14の右側に示すように、正しい結果が得られるようになる。出現頻度の正確な値は得られないが、順位は同じであり、データの傾向を把握する上では十分である。なお、マスク値集合の出現頻度の偏り方によっては順位についてもある程度の振れが発生する可能性があるが、傾向を把握する上では十分である。以上のような処理を実施すれば、データをマスクしたままで分析処理を行うことができ、その分析結果を適切にアンマスクして分析結果を活用することができるようになる。なお、上では最初にU個のアイテム集合に絞り込んだ上で、アンマスクを実施するようになっているが、出現頻度の値を対応付けて保持しておけば、アンマスク後に出現頻度の値でソートして、上位U個を採用するようにしても良い。[実施の形態2]次に、第2の実施の形態について図15乃至図19を用いて説明する。なお、システム全体構成、クラウドコンピューティング環境5内の分析装置51及びデータベース53の構成、ユーザ装置3の構成については、実施の形態1と同じであるから、説明を省略する。また、初期処理の内容についても図10で説明したものと同じであるから、説明を省略する。次に、本実施の形態に係るマスク処理について図15を用いて説明する。まず、マスク処理部34は、データ格納部32に格納されているオリジナルデータに含まれるレコードのカウンタであるLを1に初期化するステップS61。そして、マスク処理部34は、データ格納部32から、オリジナルデータのL行目におけるマスク対象属性の属性値Dを読み出すステップS63。上でも述べたように、マスク対象属性はk個あるので、D={DataL1,DataL2,DataLk}を読み出すことになる。また、マスク処理部34は、1乃至N以下の範囲内で、均一な乱数rを生成するステップS65。第1の実施の形態とは異なり、本実施の形態では、出現頻度が均一になるように乱数を発生させる。そして、マスク処理部34は、Lとrの対応関係をマスク選択データとして、データ格納部32に格納するステップS66。これによってオリジナルデータを復元できるようになる。さらに、マスク処理部34は、マスク値集合Mask[r]を用いたマスク化を行うことでマスク化データDmを生成するステップS67。Mask[r]={Mr1,Mr2,Mrk}をマスクデータ格納部35から読み出し、Dm={fDataL1Mr1,fDataL2Mr2,fDataLkMrk}を生成する。本実施の形態では、関数fx,y=zは、xとzとの関係が全単射の関係であって且つfa,b≠f1a,bを満たす関数となる。すなわち、加算、加算剰余、乗算、乗算剰余、減算、減算剰余は使用可能であるが、排他的論理和は利用不可能である。この理由については、アンマスク処理の説明において併せて説明する。その他については第1の実施の形態と同様である。その後、マスク処理部34は、データ格納部32において、オリジナルデータのL行目におけるマスク対象属性の属性値Dを、マスク化データDmで置換するステップS69。ここでは、オリジナルデータをユーザ装置3内では保存しない場合を示しており、保存しておく場合にはステップS69で別の領域にマスク化データ及びマスク対象属性以外の属性の属性値を格納する。その後、マスク処理部34は、LはLを1インクリメントしてステップS71、Lが、オリジナルデータのレコード数Lmax以下であるか判断するステップS73。LがLmax以下である場合にはステップS63に戻る。一方、LがLmaxを超えた場合には処理を終了する。なお、分析処理は、例えばAprioriアルゴリズムであり、ここでは説明を省略する。すなわち、マスク化したままで従来のとおり分析処理を実施しているので、分析結果についてもマスク化されたままである。次に、図16乃至図19を用いてアンマスク処理の説明を行う。ここでは、最初に第1の実施の形態との差異を具体例を用いて説明する。図14と同様に、オリジナルデータに対してAprioriアルゴリズムで分析した結果、アイテム集合{A,B,D}が2000回、アイテム集合{A,B,C,E}が1900回、アイテム集合{A,D,E,F}が1800回検出されているとする。また、2つのマスク値集合が用いられており、Mask[1]={M11,M12,M1k}の出現割合が0.5で、Mask[2]={M21,M22,M2k}の出現割合が0.5であるものとする。すなわち、出現頻度は同じである。このような場合、マスク化データに対する分析結果は、図16の右に示すように、{A,B,D}については、{AM11,BM12,DM14}という形で検出されるか、{AM21,BM22,DM24}という形で検出される。なお、マスク化の演算には加算を採用している。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1000回、後者が1000回検出される。同様に、{A,B,C,E}については、{AM11,BM12,CM13,EM15}という形で検出されるか、{AM21,BM22,CM23,EM25}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が950回、後者が950回検出される。さらに、{A,D,E,F}については、{AM11,DM14,EM15,FM16}という形で検出されるか、{AM21,DM24,EM25,FM26}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が900回、後者が900回検出される。このようにマスク値集合の出現頻度に偏りがない場合には、正しくアンマスクできないと正しい分析結果を得られないが、どのマスク化分析データ例えばアイテム集合にどのマスク値集合が適用されているのかは不明である。従って、本実施の形態では、各マスク値集合を、全てのマスク化分析データ例えばアイテム集合に適用してみる。ここでは2つのマスク値集合が存在するので、2つのマスク値集合を3つのアイテム集合のそれぞれに適用してアンマスク化し、同じアンマスク化の結果が得られた場合には、その出現頻度を合計して最終的な分析結果として採用する。正しいマスク値集合を用いれば正しいアイテム集合が復元され、間違ったマスク値集合を用いれば誤ったアイテム集合が復元される。しかし、もともといずれかのマスク値集合でマスク化されているので、全てのマスク値集合を適用すれば、N回正しいアイテム集合が復元されるのに対し、間違ったマスク値集合を適用した場合には一致するようなアイテム集合が生成されず集約できない。そのため、出現頻度が高いアイテム集合に、正しい分析結果が浮かんでくることになる。図16の下段左側に示すように、Mask[1]={M11,M12,M1k}を適用すると、以下のような結果が得られる。{AM11-M11,BM12-M12,DM14-M14}={A,B,D}1000回{AM21-M11,BM22-M12,DM24-M14}1000回アンマスク失敗{AM11-M11,BM12-M12,CM13-M13,EM15-M15}={A,B,C,E}950回{AM21-M11,BM22-M12,CM23-M13,EM25-M15}950回アンマスク失敗{AM11-M11,DM14-M14,EM15-M15,FM16-M16}={A,D,E,F}900回{AM21-M11,DM24-M14,EM25-M15,FM26-M16}900回アンマスク失敗図16の下段右側に示すように、Mask[2]={M21,M22,M2k}を適用すると、以下のような結果が得られる。{AM11-M21,BM12-M22,DM14-M24}1000回アンマスク失敗{AM21-M21,BM22-M22,DM24-M24}={A,B,D}1000回{AM11-M21,BM12-M22,CM13-M23,EM15-M25}950回アンマスク失敗{AM21-M21,BM22-M22,CM23-M23,EM25-M25}={A,B,C,E}950回{AM11-M21,DM14-M24,EM15-M25,FM16-M26}アンマスク失敗900回{AM21-M21,DM24-M24,EM25-M25,FM26-M26}={A,D,E,F}900回以上の結果を集計すれば、{A,B,D}2000回、{A,B,C,E}1900回、{A,D,E,F}1800回という結果が得られ、オリジナルデータについてAprioriアルゴリズムを適用した場合と同様の結果が得られる。なお、ステップS65では、均一な乱数を発生させると述べたが、不均一な乱数であっても、上で述べた処理を行えば、正しくアンマスクされたアイテム集合は集約されるので、{A,B,D}2000回という結果は同じで、アンマスク失敗の場合に出現頻度にばらつきが発生するだけである。さらに、上でも述べたように、本実施の形態では排他的論理和が使用できない。すなわち、fa,b≠f1a,bが要件である。上で使用した{A,B,D}の例を考えると、{A,B,D}2000回に対して、アンマスク失敗の場合には1000回にしかならないので、{A,B,D}が正しいことが分かる。{AM11-M21,BM12-M22,DM14-M24}1000回アンマスク失敗{AM21-M11,BM22-M12,DM24-M14}1000回アンマスク失敗しかしながら、fa,b=aXORbで、f1a,b=aXORbであるとすると、以下のような結果が得られる。{A,B,D}2000回{AXORM11XORM21,BXORM12XORM22,DXORM14XORM24}1000回アンマスク失敗{AXORM21XORM11,BXORM22XORM12,DXORM24XORM14}1000回アンマスク失敗このようにアンマスク失敗のケースが集約されて2000回となってしまって区別ができなくなる。このため排他的論理和を使用することができない。このような処理を行うために、図17乃至図19に示すような処理を実施する。まず、データ受信部36は、分析装置51から分析処理の結果である分析データを受信し、分析データ格納部37に格納するステップS81。分析データはマスク化されたままであり、Aprioriアルゴリズムであればアイテム集合とその出現頻度のデータを含む。そして、アンマスク処理部39は、分析データ格納部37に格納されている分析データの中から、出現頻度が高い上位N×U個のアイテム集合Ci及び出現頻度Fiを抽出するステップS83。アイテム集合Ciについては以下のように表すものとする。C1={I11,I12,I1max1}C2={I21,I22,I2max2}CU={IUN1,IUN2,IUNmaxU}なお、マスク値集合がN個ある場合には、アイテム集合はN倍の数になるので、このことを勘案してN×U個抽出することにする。また、アンマスク処理部39は、マスクデータ格納部35に格納されているマスク値集合Mask[r]r=1乃至Nを読み出すステップS85。本実施の形態では、N個のマスク値集合を用いるのでN個全て読み出す。また、アンマスク処理部39は、アイテム集合についてのカウンタi、アイテムについてのカウンタj、マスク値集合のカウンタrを1に初期化するステップS87。さらに、アンマスク処理部39は、アンマスク分析データDirに空集合をセットするステップS89。そして、アンマスク処理部39は、アイテム集合Ciのj番目のアイテム値Iijを特定するステップS91。処理は端子Dを介して図18の処理に移行する。図18の処理の説明に移行して、アンマスク処理部39は、Iijはマスク対象属性の属性値であるか判断するステップS93。ステップS43と同様に、マスク対象属性の属性値であるか否かを判断することができるものとする。Iijはマスク対象属性の属性値でない場合には、アンマスク処理部39は、IijをIに設定するステップS95。マスク対象属性でなければ、その属性値をアンマスクしなくても良いからである。その後ステップS101に移行する。一方、Iijはマスク対象属性の属性値である場合には、アンマスク処理部39は、Mask[r]において、Iijに係る属性のマスク値を特定し、Mに設定するステップS97。上でも述べたように、Iijがいずれのマスク対象属性の属性値であるかが分かれば、対応するマスク値も特定できる。そして、アンマスク処理部39は、IijをMでアンマスクし、アンマスク値をIに設定するステップS99。すなわち、I=f1Iij,M=f1fData,M,M=Dataとなる。但し、アンマスクが成功するか失敗するかは、判断できない。その後、アンマスク処理部39は、集合DirにIを追加するステップS101。そして、アンマスク処理部39は、jを1インクリメントしステップS103、jがjの最大値であるjmax以下であるか判断するステップS105。jがjmax以下であればステップS93に戻る。一方、jがjmaxを超えている場合には、アンマスク処理部39は、Dirの出現頻度Fiを、頻度Girに設定するステップS107。rが変化してもiが同じであれば同じ値が設定されるが、これは図16の下段における左右で同じ値が設定される状況を示している。そして、アンマスク処理部39は、rを1インクリメントし、jを1に初期化するステップS109。その後、アンマスク処理部39は、rはN以下であるか判断するステップS111。rがN以下である場合には、端子Eを介してステップS91に戻る。一方、rがNを超えると、端子Fを介して図19の処理に移行する。図19の処理の説明に移行して、アンマスク処理部39は、iを1インクリメントし、j及びrを1に初期化するステップS113。さらに、アンマスク処理部39は、iがN×U以下であるか判断するステップS115。iがN×U以下である場合には端子Gを介してステップS89に戻る。一方、iがN×Uを超えた場合には、アンマスク処理部39は、同一のDirの出現頻度Girを集計し、出現頻度が高い順にソートするステップS117。そして、アンマスク処理部39は、Dirのうち出現頻度が高い上位U個場合によっては上位所定割合の個数を、分析結果の集合Diとして、アンマスク分析データ格納部40に格納するステップS119。上で述べた例では、{A,B,D}{A,B,C,E}{A,D,E,F}が、アンマスク分析データ格納部40に格納される。なお、ユーザからの指示に応じて、アンマスク分析データ格納部40に格納されているデータは、ユーザに提示される。以上のような処理を実施すれば、マスク処理においてマスク値集合を選択するために発生させる乱数についての制限が無くなり、さらに正確な分析結果を得ることができるようになる。[実施の形態3]上でも述べたように分析処理はAprioriアルゴリズムだけではなく、集計処理であってもよい。集計処理は、単純な処理であるが、分析結果の持つ意味が人間にとって非常に理解が容易であることから、非常に幅広く用いられている分析法の1つである。特に、2属性の組み合わせの頻度を求めるクロス集計は、データに含まれる2つの属性間の相関関係を容易に可視化するための方法として非常に良く用いられる。一般的なクロス集計の例を図20A乃至図20Cに示す。図20Aでは、年収、購入額、職業の各属性が3通りの値を有する例を示している。すなわち、年収はa1,a2,a3により、購入額はb1,b2,b3により、職業はc1,c2,c3により分類されており、これらの属性間の相関をクロス集計によって可視化することができる。図20Bに示すように、年収と購入額のクロス集計を行う場合には、これらの2属性の組み合わせである{a1,b1}{a1,b2}{a1,b3}{a2,b1}{a2,b2}{a2,b3}{a3,b1}{a3,b2}{a3,b3}の出現頻度をカウントすると、図20Bに示されるようなデータが得られる。これをテーブル形式で見やすくすると、図20Cに示すようなテーブルとなる。このようなクロス集計の場合、Aprioriアルゴリズムと同様に、アイテムの組み合わせの出現頻度を計算するが、以下の点でAprioriアルゴリズムと異なる。a2アイテムの組み合わせの出現頻度をカウントAprioriアルゴリズムでは、設定次第で任意のアイテム個数の組み合わせをカウントする。b出現頻度が高い又は低いアイテムの組み合わせ、いずれについてもカウント結果を表示Aprioriアルゴリズムでは、出現頻度が一定以上のアイテムのみカウント結果を残す以上の相違はあるが、クロス集計は最終的に2アイテムの出現頻度を集計する。このようなクロス集計を実施する場合の基本的な処理内容は、第2の実施の形態と同様である。すなわち、初期処理は第1の実施の形態と同じであり、マスク処理についても第2の実施の形態と同様である。但し、アンマスク処理については、図17のステップS83のみが異なる。すなわち、ステップS83では、出現頻度が高い上位N×U個のアイテム集合を抽出するが、クロス集計処理の場合には、全ての結果を用いるので、抽出処理を実施することはなく、全ての結果をそのまま用いる。なお、図21を用いて本実施の形態におけるアンマスク処理の概要を説明する。例えば、オリジナルデータのクロス集計を実施すると、図21の左側に示すように、{a1,b1}1000回、{a1,b2}600回、{a2,b1}560回、{a2,b2}800回が得られたものとする。2つのマスク値集合が用いられており、Mask[1]={M11,M12}の出現割合が0.5で、Mask[2]={M21,M22}の出現割合が0.5であるものとする。すなわち、出現頻度は同じである。一方、図21の右側に示すような、マスク化データに対するクロス集計処理の結果が得られたものとする。すなわち、{a1M11,b1M12}500回、{a1M21,b1M22}500回、{a1M11,b2M12}300回、{a1M21,b2M22}300回、{a2M11,b1M12}280回、{a2M21,b1M22}280回、{a2M11,b2M12}400回、{a2M21,b2M22}400回である。そして、第2の実施の形態と同様に、いずれのマスク値集合が適用されるかは不明であるから、図21の下段に示すように、各属性値組み合わせに対して各マスク値集合を適用する。具体的には、以下のとおりである。すなわち、図21の下段左側のように、Mask[1]={M11,M12}を適用すると、以下のような結果が得られる。{a1M11-M11,b1M12-M12}={a1,b1}500回{a1M21-M11,b1M22-M12}500回アンマスク失敗{a1M11-M11,b2M12-M12}={a1,b2}300回{a1M21-M11,b2M22-M12}300回アンマスク失敗{a2M11-M11,b1M12-M12}={a2,b1}280回{a2M21-M11,b1M22-M12}280回アンマスク失敗{a2M11-M11,b2M12-M12}={a2,b2}400回{a2M21-M11,b2M22-M12}400回アンマスク失敗図16の下段右側に示すように、Mask[2]={M21,M22}を適用すると、以下のような結果が得られる。{a1M11-M21,b1M12-M22}500回アンマスク失敗{a1M21-M21,b1M22-M22}={a1,b1}500回{a1M11-M21,b2M12-M22}300回アンマスク失敗{a1M21-M21,b2M22-M22}={a1,b2}300回{a2M11-M21,b1M12-M22}280回アンマスク失敗{a2M21-M21,b1M22-M22}={a2,b1}280回{a2M11-M21,b2M12-M22}400回アンマスク失敗{a2M21-M21,b2M22-M22}={a2,b2}400回以上の結果を集計すれば、{a1,b1}1000回、{a1,b2}600回、{a2,b1}560回,{a2,b2}800回という結果が得られ、オリジナルデータについてクロス集計処理を実施した場合と同様の結果が得られる。この場合も、ステップS65では、均一な乱数を発生させると述べたが、不均一な乱数であっても、上で述べた処理を行えば、正しくアンマスクされた属性値組み合わせは集約されるので、{a1,b1}1000回という結果は同じで、アンマスク失敗の場合に出現頻度にばらつきが発生するだけである。以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図8乃至図9の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない。また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行しても良い場合もある。なお、上で述べたユーザ装置3及び7、分析装置51は、コンピュータ装置であって、図22に示すように、メモリ2501とCPUCentralProcessingUnit2503とハードディスクドライブHDD:HardDiskDrive2505と表示装置2509に接続される表示制御部2507とリムーバブルディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティングシステムOS:OperatingSystem及び本実施例における処理を実施するためのアプリケーションプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーションプログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブルディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。以上述べた本実施の形態をまとめると、以下のようになる。本実施の形態における第1の態様に係る秘匿データ処理方法は、Aデータベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、Bマスク対象属性の属性値を含む複数のレコードの各々について、マスクデータ格納部に格納されている所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで複数のレコードのマスク化データを生成し、データ格納部に格納するマスク処理ステップとを含む。このようにすれば、レコード内の属性間の相関関係を保持しつつマスク化データを生成することができるようになる。また、マスク化データから元のデータを復元するためのデータについても、マスク値の選択結果を保持すればよいので、復元のためのデータ量を削減できる。なお、上で述べたマスク処理ステップが、1から所定数までの乱数を均一に又は予め定められたピークを有する分布に従って生成することで、所定数セットのマスク値を選択するステップを含むようにしてもよい。後者のような乱数を用いれば、アンマスク処理を簡略化して簡略化した結果を得ることができるようになる。さらに、予め定められた演算が、属性値と演算結果との関係が全単射となるようになっている。このようにすれば、マスク化データの復元が可能となる。本実施の形態における第2の態様に係る秘匿データ処理方法は、Aデータベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、B分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップとを含む。このようにすることで、高速にマスク化データの分析結果を簡略化した形で得ることができるようになる。本技術の第3の態様に係る秘匿データ処理方法は、A分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、所定数のアンマスク分析データセットを生成し、分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、Bアンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、アンマスク分析データの種類と対応する出現頻度とを表すデータを、アンマスク分析データ格納部に格納するステップとを含む。このような処理を実施することで正確な分析結果を復元できるようになる。なお、第2の態様に係る秘匿データ処理方法は、分析処理を実施したコンピュータから受信した複数の分析データセットのうち出現頻度が上位所定数又は上位所定割合の複数の分析データセットを、分析データ格納部に格納するステップを含むようにしても良い。分析処理の種類によっては、抽出処理を実施することが好ましい場合もある。Aprioriアルゴリズムの場合には抽出するようにしてもよい。また、予め定められた演算が、属性値と演算結果との関係が全単射となる場合もある。なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD-ROMなどの光ディスク、光磁気ディスク、半導体メモリ例えばROM、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。"