(57)【特許請求の範囲】
【請求項１】
複数のユーザのコンピュータのうち１のコンピュータにより実行される情報処理方法であって、
第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納する第１の処理と、
前記第１のデータ格納部に格納されている前記オリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、前記第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、前記第３のデータ格納部に格納する第２の処理と、
前記第３のデータ格納部に格納されている前記第１及び第２のマスク化マトリクスについてのデータを、前記複数のユーザのコンピュータからのデータを蓄積する第２のコンピュータに送信する第３の処理と、
を含み、
前記第１のマスクマトリクスが、前記複数のユーザが用いる前記第１のマスクマトリクスを合算すると、ゼロ行列となるように生成されており、
前記第２のマスクマトリクスが、前記複数のユーザが用いる前記第２のマスクマトリクスを合算すると、ゼロ行列となるように生成されている
ことを特徴とする情報処理方法。
【請求項２】
前記第３の処理が、
前記第１及び第２のマスク化マトリクスを、準同型暗号方式における特定の者の公開鍵で暗号化し、暗号化された前記第１及び第２のマスク化マトリクスを、前記第２のコンピュータに送信する処理
を含む請求項１記載の情報処理方法。
【請求項３】
前記情報処理方法は、さらに、前記第２のコンピュータにより実行され、
前記第２のコンピュータが、前記複数のユーザのコンピュータからの暗号化された前記第１のマスク化マトリクスに対して、暗号化された、第１のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第１の演算結果を第４のデータ格納部に格納する第４の処理と、
前記第２のコンピュータが、前記第４のデータ格納部に格納されている第１の演算結果を、前記特定の者のコンピュータに送信する第５の処理と、
をさらに含む請求項２記載の情報処理方法。
【請求項４】
前記第２のコンピュータが、前記複数のユーザのコンピュータからの暗号化された前記第２のマスク化マトリクスに対して、暗号化された、第２のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第２の演算結果を第４のデータ格納部に格納する第６の処理と、
前記第２のコンピュータが、前記第４のデータ格納部に格納されている第２の演算結果を、前記特定の者の前記コンピュータに送信する第７の処理と、
をさらに含む請求項３記載の情報処理方法。
【請求項５】
前記情報処理方法は、さらに、前記特定の者の前記コンピュータにより実行され、
前記特定の者の前記コンピュータが、前記第２のコンピュータからの前記第１及び第２の演算結果を前記特定の者の秘密鍵で復号化することで、前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和を生成し、第５のデータ格納部に格納する第８の処理と、
前記特定の者の前記コンピュータが、前記第５のデータ格納部に格納されている前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和から、前記複数のユーザについてのオリジナルマトリクスの少なくともいずれかの要素について分散値を算出する第９の処理と、
をさらに含む請求項４記載の情報処理方法。
【請求項６】
前記第９の処理において、
前記第１のマスク化マトリクスの総和における特定の要素の値Ｓと、前記第２のマスク化マトリクスの総和における特定の要素の値Ｔと、前記複数のユーザの数ｎとから、
１／ｎ×（Ｔ−１／ｎ×Ｓ2）
を計算することで前記分散値を算出する
請求項５記載の情報処理方法。
【請求項７】
第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納し、前記第１のデータ格納部に格納されている前記オリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、前記第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、前記第３のデータ格納部に格納するマスク処理部と、
前記第３のデータ格納部に格納されている前記第１及び第２のマスク化マトリクスについてのデータを、複数のユーザの情報処理装置からのデータを蓄積する第２の情報処理装置に送信する出力部と、
を有し、
前記第１のマスクマトリクスが、前記複数のユーザが用いる前記第１のマスクマトリクスを合算すると、ゼロ行列となるように生成されており、
前記第２のマスクマトリクスが、前記複数のユーザが用いる前記第２のマスクマトリクスを合算すると、ゼロ行列となるように生成されている
ことを特徴とする、前記複数のユーザの前記情報処理装置のうち１の情報処理装置。
【請求項８】
前記出力部が、
前記第１及び第２のマスク化マトリクスを、準同型暗号方式における特定の者の公開鍵で暗号化し、暗号化された前記第１及び第２のマスク化マトリクスを、前記第２の情報処理装置に送信する暗号化処理部
を含む請求項７記載の情報処理装置。
【請求項９】
請求項８記載の情報処理装置と、
前記第２の情報処理装置と、
を有し、
前記第２の情報処理装置が、
前記複数のユーザの情報処理装置からの暗号化された前記第１のマスク化マトリクスに対して、暗号化された、第１のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第１の演算結果を第４のデータ格納部に格納し、第４のデータ格納部に格納されている第１の演算結果を、前記特定の者の情報処理装置に送信し、
前記複数のユーザの情報処理装置からの暗号化された前記第２のマスク化マトリクスに対して、暗号化された、第２のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第２の演算結果を前記第４のデータ格納部に格納し、前記第４のデータ格納部に格納されている第２の演算結果を、前記特定の者の前記情報処理装置に送信する
コンピュータシステム。
【請求項１０】
前記特定の者の前記情報処理装置
をさらに有し、
前記特定の者の前記情報処理装置が、
前記第２の情報処理装置からの前記第１及び第２の演算結果を前記特定の者の秘密鍵で復号化することで、前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和を生成し、第５のデータ格納部に格納し、
前記第５のデータ格納部に格納されている前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和から、前記複数のユーザについてのオリジナルマトリクスの少なくともいずれかの要素について分散値を算出する
請求項９記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データの秘匿化技術に関する。
【背景技術】
【０００２】
例えば、各支店における各商品の月別売上表をサーバで共有し、本部の集計担当者が各種集計処理を実施するケースを考える。例えば図１の左に示すように、支店Ａでは、商品Ａ、商品Ｂ及び商品Ｃの月毎の売上を表す売上表を有し、支店Ｂでは、同じく商品Ａ、商品Ｂ及び商品Ｃの月毎の売上を表す売上表を有する。そして、図１の右に示すように、本部では、全ての支店に関して、商品Ａ、商品Ｂ、商品Ｃそれぞれについての売上合計値（例えばＸ）、全商品についての月毎の売上合計値（例えばＹ）といった集計値を算出する。場合によっては、特定の月における特定の商品についての売上合計値（例えば１月における商品Ａの売上高合計ΣiｍAi1（ｉは支店のパラメータ））や、全売上高というような集計値（例えばＺ）を計算する場合もある。
【０００３】
このような場合に、各支店では細かい売上高を他の支店などに知らせたくなく、本部も細かい情報を把握できなくとも集計値を得られればよい、といった要望が出てくることがある。しかしながら、このような要望に十分対応できるような技術は存在しない。
【０００４】
例えば、データを秘匿化するために、データを暗号化してサーバに保持させるようなことも考えられる。しかし、第三者がこのデータを集計する場合には、結局復号化しなければならず、結果としてデータの中身そのものを第三者が見ることになってしまう。
【０００５】
さらに、元データにノイズ（すなわち乱数）を加えることで、元データを秘匿しつつ、統計的にある程度の精度でクロス集計を可能にするという技術も存在している。このような技術における集計システムでは、各ユーザに対して、指定したパラメータ（具体的には維持確率）を与えて値をランダム化させた上で集計を行い、この集計値から真の集計値を統計的に推定するというものである。但し、この方法は、以下のような問題を有している。すなわち、元データに対してノイズが小さいと元データのおおよその値がわかってしまう。また集計値が近似値である。さらに、クラウド側で集計処理の後統計的推定処理という別の処理を行うことになる。特に、クラウド上の他社サービスに独自機能を追加することは難しい場合があり、実用上は問題となることがある。
【０００６】
また、準同型暗号という技術も存在している。この技術を用いれば、暗号化したままで暗号化前の値の演算が可能となるが、これまでは視聴履歴収集システムや電子投票システムといった特殊なシステムに用いられてきた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１０８４８８号公報
【特許文献２】特開２０００−２３６３０５号公報
【特許文献３】特開２０１０−１２８８６５号公報
【非特許文献】
【０００８】
【非特許文献１】Paillier, P., Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, Proc. Eurocrypt 99, pp.223-238, 1999.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
このように、上で述べた従来技術では、データベース内のデータを、利用に適した形で適切に秘匿することはできない。さらに、上で述べた例における本部は細かい情報を不要といっても、単純な集計結果だけでは、統計的な分析を行うことはできない。
【００１０】
従って、本技術の目的は、一側面として、秘匿化されたデータの統計的な分析に用いられるデータをも適切に秘匿するための技術を提供することである。
【課題を解決するための手段】
【００１１】
本技術に係る情報処理方法は、（Ａ）第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つオリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納する第１の処理と、（Ｂ）第１のデータ格納部に格納されているオリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、第２のデータ格納部に格納されており且つオリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、第３のデータ格納部に格納する第２の処理と、（Ｃ）第３のデータ格納部に格納されている第１及び第２のマスク化マトリクスについてのデータを、複数のユーザのコンピュータからのデータを蓄積する第２のコンピュータに送信する第３の処理とをを含む。そして、上記第１のマスクマトリクスが、複数のユーザが用いる第１のマスクマトリクスを加算すると、ゼロ行列となり、第２のマスクマトリクスが、複数のユーザが用いる第２のマスクマトリクスを加算すると、ゼロ行列となるように生成されている。
【発明の効果】
【００１２】
秘匿化されたデータの統計的な分析に用いられるデータをも適切に秘匿できるようになる。
【図面の簡単な説明】
【００１３】
【図１】図１は、従来技術の問題を説明するための図である。
【図２】図２は、本技術の実施の形態に係るシステム全体の概要図である。
【図３】図３は、マスク配信サーバの機能ブロック図である。
【図４】図４は、ユーザ装置の機能ブロック図である。
【図５】図５は、集計サーバの機能ブロック図である。
【図６】図６は、管理者装置の機能ブロック図である。
【図７】図７は、本実施の形態における処理フローを示す図である。
【図８】図８は、本実施の形態における処理フローを示す図である。
【図９】図９は、本実施の形態における処理フローを示す図である。
【図１０】図１０は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１４】
最初に、本技術の実施の形態の概要を説明する。各ユーザｉについて、例えば各商品の月別売上表のようなオリジナルマトリクスＯＭiが存在する場合、このオリジナルマトリクスＯＭiに第１のマスクマトリクスＭＭ１iを加算する。この第１のマスクマトリクスＭＭ１iは、全ユーザについて加算するとゼロ行列になるように生成されている。但し、ＭＭ１iのいずれもがゼロ行列ではないものとする。
【００１５】
具体的には、ユーザ１については、以下のような行列の加算演算が行われる。他のユーザでも同様の加算演算が行われる。
【００１６】
【数１】
0005724719.tif 000002
【００１７】
なお、例えばオリジナルマトリクスＯＭiの要素値を表すａ乃至ｄは商品名を表し、最初の下付け文字はユーザ番号を表し、２番目の下付け文字は月番号を表す。また、例えば第１のマスクマトリクスＭＭ１iの要素値を表すｍの最初の下付け文字は商品名を表し、次の下付け文字はユーザ番号を表し、３番目の下付け文字は月番号を表す。
【００１８】
このような加算演算で第１のマスク化マトリクスＭＫＭ１iを生成すれば、オリジナルマトリクスＯＭiを復元することはできないので、基本的な秘匿化がなされる。
【００１９】
そして、第１のマスク化マトリクスＭＫＭ１iの総和を計算すると、オリジナルマトリクスＯＭiの総和が得られる。これは、以下のように表される。
【００２０】
ΣiＭＫＭ１i
＝Σi（ＯＭi＋ＭＭ１i）
＝ΣiＯＭi＋ΣiＭＭ１i
＝ΣiＯＭi＋０
＝ΣiＯＭi
【００２１】
オリジナルマトリクスの総和ΣiＯＭiからは、個々のオリジナルマトリクスＯＭiを復元することはできないので、この点においても基本的な秘匿化がなされている。
【００２２】
このようなオリジナルマトリクスの総和ΣiＯＭiが得られれば、全てのユーザに関して、商品Ａ、商品Ｂ、商品Ｃそれぞれについての売上合計値、全商品についての月毎の売上合計値、特定の月における特定の商品についての売上合計値、全売上高というような集計値を計算することも可能になる。
【００２３】
但し、オリジナルマトリクスの総和ΣiＯＭiだけでは、分散σや標準偏差σ1/2といった統計値を算出することはできない。
【００２４】
そこで、本実施の形態では、オリジナルマトリクスＯＭiに含まれる各要素値を二乗することで二乗オリジナルマトリクスＯＭi2をも生成する。そして、各ユーザｉについて、二乗オリジナルマトリクスＯＭi2と第２のマスクマトリクスＭＭ２iとの加算演算を行う。第２のマスクマトリクスＭＭ２iは、第１のマスクマトリクスＭＭ１iと同様の性質を有している。また、基本的な演算はオリジナルマトリクスＯＭiの場合と同じである。
【００２５】
このような加算演算で第２のマスク化マトリクスＭＫＭ２iを生成すれば、二乗オリジナルマトリクスＯＭi2を復元することはできないので、基本的な秘匿化がなされる。
【００２６】
そして、第２のマスク化マトリクスＭＫＭ２iの総和を計算すると、二乗オリジナルマトリクスＯＭi2の総和が得られる。これは、以下のように表される。
【００２７】
ΣiＭＫＭ２i
＝Σi（ＯＭi2＋ＭＭ２i）
＝ΣiＯＭi2＋ΣiＭＭ２i
＝ΣiＯＭi2＋０
＝ΣiＯＭi2
【００２８】
二乗オリジナルマトリクスの総和ΣiＯＭi2からは、個々の二乗オリジナルマトリクスＯＭi2を復元することはできないので、この点においても基本的な秘匿化がなされている。
【００２９】
このような二乗オリジナルマトリクスの総和ΣiＯＭi2が得られれば、オリジナルマトリクスの各要素について要素値の二乗の総和が得られることになる。従って、例えば１月における商品Ａの売上について、ユーザ間の分散σは、以下のように表される。但し、この式自体は分散の算出式の変形例として知られたものである。また、ｎはユーザ数を表す。
σ＝１／ｎ×（Σiａi12−１／ｎ×（Σiａi1）2）
【００３０】
ここで、Σiａi12は、二乗オリジナルマトリクスの総和ΣiＯＭi2の一要素値である。また、Σiａi1は、オリジナルマトリクスの総和ΣiＯＭiの一要素値である。このように、上で述べたような２つのマスク化マトリクスを用意することで、ユーザ間の分散σを得ることができ、管理者がさらなる分析を行うことができる。
【００３１】
但し、上で述べたような単純なマスク化だけでは、第１及び第２のマスク化マトリクスを盗聴又は収集すれば、上で述べたようにオリジナルマトリクスの総和及び二乗オリジナルマトリクスの総和が得られるようになってしまう。盗聴しなくとも、例えば第１及び第２のマスク化マトリクスを、例えばクラウドシステムに集めて、クラウドの集計サーバでその総和を算出すると、算出完了時にオリジナルマトリクスの総和及び二乗オリジナルマトリクスの総和が、クラウドシステムに対して露出してしまう。
【００３２】
そこで、本実施の形態では、準同型暗号を導入する。各ユーザは、準同型暗号における管理者の公開鍵を取得して、第１及び第２のマスク化マトリクスをそれぞれ暗号化する。クラウドシステムなどにおいては、各ユーザから暗号化された第１及び第２のマスク化マトリクスを受信し、例えば管理者からの要求に応じて、暗号化された、第１のマスク化マトリクスの総和及び第２のマスク化マトリクスの総和が得られるように、採用された準同型暗号における演算を実施する。準同型暗号には、様々な方式があるが、例えばＥｌＧａｍａｌ暗号やＰａｉｌｌｅｒ暗号を採用する場合、平文における加算結果を暗号化した値を得るためには、暗号化された値の乗算を行うことになる。このように、平文における加算を実現するために実施すべき演算を、暗号化された値に対して行う。
【００３３】
このようにすれば、通信路だけではなくクラウドシステムなどの集計サーバにおいても、オリジナルマトリクス、二乗オリジナルマトリクス、オリジナルマトリクスの総和及び二乗オリジナルマトリクスの総和が露出することを防止できる。
【００３４】
秘密鍵を有する管理者に対して、個々のオリジナルマトリクス及び二乗オリジナルマトリクスについてはマスクマトリクスによって秘匿化されているが、オリジナルマトリクスの総和及び二乗オリジナルマトリクスの総和を取得することができる。
【００３５】
以下、このような処理を実施するためのコンピュータシステムについて図２乃至図９を用いて説明する。
【００３６】
図２に、本実施の形態に係るコンピュータシステムの一例を示す。例えばインターネットなどのコンピュータネットワーク９には、複数のユーザ装置１乃至３（数は３に限定されず、任意の整数でよい）と、管理者装置５と、クラウドシステムなどに配置される集計サーバ７と、マスクマトリクスＭＭを配布するためのマスク配信サーバ６とが接続されている。
【００３７】
ユーザ装置１乃至３は、例えば支店毎のコンピュータであって、例えば支店の他のコンピュータなどに接続されている。また、管理者装置５は、例えば本部のコンピュータであって、例えば本部の他のコンピュータなどに接続されている。マスク配信サーバ６は、例えばクラウドシステム、管理者及びユーザとは独立に管理及び運営されており、上で述べたような各ユーザのマスクマトリクスＭＭiを加算するとゼロ行列となるように各マスクマトリクスＭＭiを生成して、各ユーザ装置に配布する。集計サーバ７は、各ユーザ装置から受信したデータを蓄積すると共に、例えば管理者装置５からの要求に応じて所定の集計処理を実施し、集計結果を管理者装置５に送信する。
【００３８】
図３に、本実施の形態に係るマスク配信サーバ６の機能ブロック図を示す。マスク配信サーバ６は、マスク生成部６１と、マスク配信部６２と、配信先データ格納部６３とを有する。マスク配信サーバ６は、予め管理者などから第１及び第２のマスクマトリクスＭＭ１及びＭＭ２の配布先のデータを受信して、配信先データ格納部６３に格納しておく。マスク生成部６１は、例えば定期的に又は任意のタイミングで、各ユーザ装置のために上で述べた性質を有する第１及び第２のマスクマトリクスＭＭ１及びＭＭ２を生成し、マスク配信部６２に出力する。マスク配信部６２は、配信先データ格納部６３に格納されている配布先のデータに従って、各ユーザ装置に対して、生成した第１及び第２のマスクマトリクスＭＭ１及びＭＭ２を送信する。
【００３９】
図４に、本実施の形態に係るユーザ装置（例えばユーザ装置１）の機能ブロック図を示す。ユーザ装置１は、オリジナルマトリクス取得部１０１と、オリジナルマトリクス格納部１０２と、マスク受信部１０３と、マスク格納部１０４と、マスク処理部１０５と、二乗処理部１０６と、二乗オリジナルマトリクス格納部１０７と、マスク化マトリクス格納部１０８と、暗号化処理部１０９と、公開鍵格納部１１０と、暗号化データ格納部１１１と、送信部１１２とを有する。
【００４０】
オリジナルマトリクス取得部１０１は、ユーザ装置１に接続されている他のコンピュータなどからオリジナルマトリクスのデータを取得して、オリジナルマトリクス格納部１０２に格納する。場合によっては、オリジナルマトリクス取得部１０１が、オリジナルマトリクスを生成する。また、マスク受信部１０３は、マスク配信サーバ６から第１及び第２のマスクマトリクスＭＭ１及びＭＭ２を受信し、マスク格納部１０４に格納する。二乗処理部１０６は、オリジナルマトリクス格納部１０２に格納されているオリジナルマトリクスの各要素の値を二乗する処理を実施して、二乗オリジナルマトリクス格納部１０７に格納する。
【００４１】
マスク処理部１０５は、オリジナルマトリクス格納部１０２に格納されているオリジナルマトリクスＯＭとマスク格納部１０４に格納されている第１のマスクマトリクスＭＭ１を加算することで第１のマスク化マトリクスＭＫＭ１を生成し、マスク化マトリクス格納部１０８に格納する。さらに、マスク処理部１０５は、二乗オリジナルマトリクス格納部１０７に格納されている二乗オリジナルマトリクスＯＭ2とマスク格納部１０４に格納されている第２のマスクマトリクスＭＭ２を加算することで第２のマスク化マトリクスＭＫＭ２を生成し、マスク化マトリクス格納部１０８に格納する。
【００４２】
暗号化処理部１０９は、予め定められた準同型暗号方式に従って、公開鍵格納部１１０に格納されている管理者装置５のための公開鍵で、第１及び第２のマスク化マトリクスＭＫＭ１及びＭＫＭ２を暗号化することで、暗号化された行列データＥ（ＭＫＭ１）及びＥ（ＭＫＭ２）を生成して、暗号化データ格納部１１１に格納する。送信部１１２は、暗号化データ格納部１１１に格納されている暗号化された行列データＥ（ＭＫＭ１）及び行列データＥ（ＭＫＭ２）を、クラウドシステムにおける集計サーバ７に送信する。
【００４３】
図５に、本実施の形態に係る集計サーバ７の機能ブロック図を示す。集計サーバ７は、データ受信部７１と、データベース（ＤＢ）７２と、集計要求処理部７３と、データ格納部７４とを有する。集計要求処理部７３は、採用されている準同型暗号方式において暗号化したまま平文の加算を実現するための演算を実施する演算部７３１を有する。例えば、平文の加算結果を暗号化した値を得るために、暗号化したデータ同士の乗算を行う。
【００４４】
データ受信部７１は、ユーザ装置１乃至３から、暗号化された行列データＥ（ＭＫＭ１）及びＥ（ＭＫＭ２）を受信すると、ＤＢ７２に格納する。なお、このＤＢ７２は、ユーザ装置１乃至３のためのデータベースであり、管理者装置５からの集計要求に基づき集計処理が実施されるデータを格納するものとする。すなわち、ユーザのグループ毎に分別管理される。また、集計要求処理部７３は、管理者装置５から集計要求を受信すると、ＤＢ７２から、各ユーザ装置からの暗号化された行列データＥ（ＭＫＭ１）を読み出す。そして、集計要求処理部７３の演算部７３１は、暗号化された行列データＥ（ＭＫＭ１）について上で述べたように所定の演算を実施する。処理途中及び処理結果のデータについては、データ格納部７４に格納する。さらに、集計要求処理部７３は、管理者装置５から集計要求を受信すると、ＤＢ７２から、各ユーザ装置からの暗号化された行列データＥ（ＭＫＭ２）を読み出す。そして、集計要求処理部７３の演算部７３１は、暗号化された行列データＥ（ＭＫＭ２）について上で述べたように所定の演算を実施する。処理途中及び処理結果のデータについては、データ格納部７４に格納する。
【００４５】
上でも述べたように、このような処理を実施することでオリジナルマトリクスの総和ΣiＯＭiの暗号化データＥ（ΣiＯＭi）と、二乗オリジナルマトリクスの総和ΣiＯＭi2の暗号化データＥ（ΣiＯＭi2）とが得られる。
【００４６】
集計要求処理部７３は、管理者装置５に対して、オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi）と、二乗オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi2）とを送信する。
【００４７】
図６に、本実施の形態に係る管理者装置５の機能ブロック図を示す。管理者装置５は、集計要求部５１と、受信データ格納部５２と、復号化処理部５３と、秘密鍵格納部５４と、復号化データ格納部５５と、分散算出部５８と、出力処理部５７と、分散格納部５９とを有する。
【００４８】
集計要求部５１は、例えば管理者装置５に接続されている他のコンピュータなどから集計要求を送信するように指示されると、集計要求を集計サーバ７に送信し、集計サーバ７から、オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi）と、二乗オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi2）とを受信し、受信データ格納部５２に格納する。
【００４９】
復号化処理部５３は、秘密鍵格納部５４に格納されている秘密鍵を用いて、オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi）と、二乗オリジナルマトリクスの総和の暗号化データＥ（ΣiＯＭi2）とを復号化して、復号化データ格納部５５に格納する。
【００５０】
分散算出部５８は、オリジナルマトリクスの総和ΣiＯＭiと、二乗オリジナルマトリクスの総和ΣiＯＭi2とを用いて、例えば所定の要素の分散値を算出し、分散格納部５９に格納する。
【００５１】
出力処理部５７は、復号化データ格納部５５に格納されているオリジナルマトリクスの総和ΣiＯＭiをそのまま例えば管理者装置５に接続されている他のコンピュータなどに出力する。なお、オリジナルマトリクスの総和ΣiＯＭiからさらに集計処理を実施しても良い。例えば、１月における全ユーザ及び全商品の売上合計値を算出するようにしてもよいし、１月から６月までにおける全ユーザ及び商品Ａについての売上合計値を算出するようにしても良い。
【００５２】
さらに、出力処理部５７は、分散格納部５９に格納されている分散値を、例えば管理者装置５に接続されている他のコンピュータなどに出力する。
【００５３】
次に、図７乃至図９を用いて図２に示したシステムにおける処理の流れについて説明する。まず、マスク配信サーバ６のマスク生成部６１は、定期的に又は任意のタイミングで、ΣiＭＭi＝０を満たすように、第１及び第２のマスクマトリクスＭＭ１i及びＭＭ２iを生成し、マスク配信部６２に出力する（図７：ステップＳ１）。例えば、配信先データ格納部６３に格納されている配布先のデータから生成個数Ｎを特定して、（Ｎ−１）個のマスクマトリクスＭＭについては、その各要素値を乱数で生成する。そして、（Ｎ−１）個のマスクマトリクスＭＭの総和を算出してその符号を反転させることで、Ｎ個目のマスクマトリクスＭＭNを生成する。その他、Ｎを複数のグループに分けて、各グループで上で述べたような方法でグループ内のマスクマトリクスＭＭの総和が０になるようにマスクマトリクスＭＭを生成するようにしても良い。また、マスクマトリクスＭＭの形状（次元数及び各次元のサイズ）は、予め与えられているものとする。
【００５４】
マスク配信サーバ６のマスク配信部６２は、マスク生成部６１から受け取った第１及び第２のマスクマトリクスＭＭ１i及びＭＭ２iを、配信先データ格納部６３に格納されているユーザ装置のアドレスに配信する（ステップＳ３）。なお、マスク配信サーバ６と各ユーザ装置との間の通信は、例えば公開鍵暗号方式などの暗号によって秘匿化する。
【００５５】
例えばユーザ装置１のマスク受信部１０３は、マスク配信サーバ６から第１及び第２のマスクマトリクスＭＭ１1及びＭＭ２1を受信し、マスク格納部１０４に格納する（ステップＳ５）。この後、任意のタイミング又は定期的に、以下の処理を実施する。
【００５６】
例えば、オリジナルマトリクス取得部１０１が、集計サーバ７に送信すべきオリジナルマトリクスＯＭ1を取得してオリジナルマトリクス格納部１０２に格納すると、マスク処理部１０５は、マスク格納部１０４に格納されている第１のマスクマトリクスＭＭ１1と、オリジナルマトリクス格納部１０２に格納されているオリジナルマトリクスＯＭ1とを加算することで第１のマスク化マトリクスＭＫＭ１1を生成して、マスク化マトリクス格納部１０８に格納する（ステップＳ７）。
【００５７】
また、二乗処理部１０６は、オリジナルマトリクス格納部１０２に格納されているオリジナルマトリクスＯＭ1の各要素を二乗した二乗オリジナルマトリクスＯＭ12を生成して、二乗オリジナルマトリクス格納部１０７に格納する（ステップＳ８）。
【００５８】
マスク処理部１０５は、二乗オリジナルマトリクス格納部１０７に格納されている二乗オリジナルマトリクスＯＭ12と、マスク格納部１０４に格納されている第２のマスクマトリクスＭＭ２12とを加算することで第２のマスク化マトリクスＭＫＭ２1を生成して、マスク化マトリクス格納部１０８に格納する（ステップＳ９）。
【００５９】
その後、暗号化処理部１０９は、公開鍵格納部１１０に格納されている管理者の公開鍵で、準同型暗号方式にて、第１及び第２のマスク化マトリクスＭＫＭ１1及びＭＫＭ２1を暗号化して、暗号化データ格納部１１１に格納する（ステップＳ１１）。そして、送信部１１２は、暗号化データ格納部１１１に格納されており、暗号化された第１及び第２のマスク化マトリクスＥ（ＭＫＭ１1）及びＥ（ＭＫＭ２1）を、集計サーバ７に送信する（ステップＳ１３）。
【００６０】
これに対して、集計サーバ７のデータ受信部７１は、各ユーザ装置から、暗号化された第１及び第２のマスク化マトリクスＥ（ＭＫＭ１i）及びＥ（ＭＫＭ２i）を受信し、ＤＢ７２に格納する（ステップＳ１５）。マスクマトリクスＭＭiが配布された全てのユーザ装置から、暗号化された第１及び第２のマスク化マトリクスＥ（ＭＫＭ１i）及びＥ（ＭＫＭ２i）を受信すれば、以下の処理を実施することができるようになる。
【００６１】
次に、管理者装置５の集計要求部５１は、第１のマスク化マトリクスの総和の集計要求を、集計サーバ７に送信する（図８：ステップＳ２１）。これに対して、集計サーバ７の集計要求処理部７３は、管理者装置５から、第１のマスク化マトリクスの総和の要求を受信する（ステップＳ２３）。そうすると、集計要求処理部７３は、ＤＢ７２から、暗号化された第１のマスク化マトリクスＥ（ＭＫＭ１i）を読み出し、演算部７３１は、暗号化された、第１のマスク化マトリクスの総和が得られるように、暗号化したまま所定の演算を実施して、第１の演算結果（Ｅ（ΣiＭＫＭ１i））をデータ格納部７４に格納する（ステップＳ２５）。
【００６２】
そして、集計要求処理部７３は、第１の演算結果（Ｅ（ΣiＭＫＭ１i））を、要求送信元の管理装置５に送信する（ステップＳ２７）。これに対して管理装置５の集計要求処理部７３は、集計サーバ７から第１の演算結果（Ｅ（ΣiＭＫＭ１i））を受信し、受信データ格納部５２に格納する（ステップＳ２９）。復号化処理部５３は、秘密鍵格納部５４に格納されている秘密鍵を用いて、第１の演算結果を復号化して、復号化データ格納部５５に格納する（ステップＳ３１）。これによって、上で述べたように、オリジナルマトリクスの総和ΣiＯＭiが得られたことになる。
【００６３】
その後、出力処理部５７は、管理者からの要求等に応じて、各種集計演算を実施して、管理者装置５に接続されている他のコンピュータなどに出力する（ステップＳ３３）。
【００６４】
例えば図１の例では、図１の右に示すように、全ての支店に関して、商品Ａ、商品Ｂ、商品Ｃそれぞれについての売上合計値（例えばＸ）、全商品についての月毎の売上合計値（例えばＹ）といった集計値を算出する。場合によっては、特定の月における特定の商品についての売上合計値（例えば１月における商品Ａの売上高合計ΣiｍAi1（ｉは支店のパラメータ））や、全売上高というような集計値（例えばＺ）を計算する場合もある。オリジナルマトリクスの総和ΣiＯＭiをそのまま出力しても良い。
【００６５】
これだけで処理を終了させても良いが、ここではさらに、集計要求部５１は、端子Ａ以降の処理（図９）も実施する。
【００６６】
管理者装置５の集計要求部５１は、第２のマスク化マトリクスの総和の集計要求を、集計サーバ７に送信する（ステップＳ３５）。これに対して、集計サーバ７の集計要求処理部７３は、管理者装置５から、第２のマスク化マトリクスの総和の集計要求を受信する（ステップＳ３７）。そうすると、集計要求処理部７３は、ＤＢ７２から、暗号化された第２のマスク化マトリクスＥ（ＭＫＭ２i）を読み出し、演算部７３１は、暗号化された、第２のマスク化マトリクスの総和が得られるように、暗号化したまま所定の演算を実施して、第２の演算結果（Ｅ（ΣiＭＫＭ２i））をデータ格納部７４に格納する（ステップＳ３９）。
【００６７】
そして、集計要求処理部７３は、第２の演算結果（Ｅ（ΣiＭＫＭ２i））を、要求送信元の管理装置５に送信する（ステップＳ４１）。これに対して管理装置５の集計要求部５１は、集計サーバ７から第２の演算結果（Ｅ（ΣiＭＫＭ２i））を受信し、受信データ格納部５２に格納する（ステップＳ４３）。復号化処理部５３は、秘密鍵格納部５４に格納されている秘密鍵を用いて、第２の演算結果を復号化して、復号化データ格納部５５に格納する（ステップＳ４５）。これによって、上で述べたように、二乗オリジナルマトリクスの総和ΣiＯＭi2が得られたことになる。
【００６８】
そして、分散算出部５８は、復号化データ格納部５５に格納されている、オリジナルマトリクスの総和ΣiＯＭi及び二乗オリジナルマトリクスの総和ΣiＯＭi2を用いて、例えば所定の行列要素（全行列要素であっても良い）についての分散σを算出し、分散格納部５９に格納する（ステップＳ４７）。
【００６９】
分散算出部５８は、以下のような演算を実施する。
σ＝１／ｎ×（Σiａi12−１／ｎ×（Σiａi1）2
【００７０】
ここで、Σiａi12は、二乗オリジナルマトリクスの総和ΣiＯＭi2の一要素値である。また、Σiａi1は、オリジナルマトリクスの総和ΣiＯＭiの一要素値である。ｎはユーザ数である。
【００７１】
このようにして、上で述べたような２つのマスク化マトリクスから、ユーザ間の分散σを得ることができ、管理者が分析を行うことができる。
【００７２】
そして、出力処理部５７は、分散格納部５９に格納されている分散値を、管理者からの要求等に応じて、例えば管理者装置５に接続されている他のコンピュータなどに出力する（ステップＳ４９）。
【００７３】
以上のような処理を実施することで、管理者は各ユーザの個別データについては参照することはできないが、ユーザ全体のデータについては、集計サーバ７に対しても秘匿化したままオリジナルマトリクスの総和ΣiＯＭiを管理者は得ることができるようになる。オリジナルマトリクスの総和ΣiＯＭiが得られると、それを用いてさらなる集計処理を行うことも可能である。
【００７４】
さらに、本実施の形態では、二乗オリジナルマトリクスの総和ΣiＯＭi2も、オリジナルマトリクスの総和ΣiＯＭiと同様に、各ユーザの個別データについては参照できないが、ユーザ全体のデータについては集計サーバ７でも秘匿化したまま得ることができる。これによって、ユーザ間の分散といったデータも得ることができるので、さらなる分析をすることも可能になる。
【００７５】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、集計サーバ７における秘匿性が他の手法にて確保されるのであれば、準同型暗号方式を採用せずに、他の暗号方式を装置間で採用するようにしてもよい。
【００７６】
さらに、図８の処理と図９の処理については、並列に実行したり、同時に実行するようにしても良い。
【００７７】
また、上の例では集計サーバ７が、集計のために演算を実施する例を示したが、単にデータの蓄積のみを行って、演算自体については管理者装置５が行う場合もある。
【００７８】
その他、処理結果が変わらない限り、処理順番を入れ替えたり、並列実行するようにしても良い。さらに、上で述べた機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。
【００７９】
さらに各装置は、１台のコンピュータで実装される場合もあれば、複数台のコンピュータで実装される場合もある。さらに、マスク配信サーバ６を設けずに、郵送その他の手法によって別途マスクマトリクスを配布するようにしても良い。
【００８０】
なお、上で述べたユーザ装置、管理者装置５、マスク配信サーバ６及び集計サーバ７は、コンピュータ装置であって、図１０に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８１】
以上述べた本実施の形態をまとめると、以下のようになる。
【００８２】
本実施の形態に係る情報処理方法は、（Ａ）第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つオリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納する第１のステップと、（Ｂ）第１のデータ格納部に格納されているオリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、第２のデータ格納部に格納されており且つオリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、第３のデータ格納部に格納する第２のステップと、（Ｃ）第３のデータ格納部に格納されている第１及び第２のマスク化マトリクスについてのデータを、複数のユーザのコンピュータからのデータを蓄積する第２のコンピュータに送信する第３のステップとを含む。そして、第１のマスクマトリクスは、複数のユーザが用いる第１のマスクマトリクスを加算すると、ゼロ行列となるように生成されている。また、第２のマスクマトリクスは、複数のユーザが用いる第２のマスクマトリクスを加算すると、ゼロ行列となるように生成されている。
【００８３】
このようにすることで、各ユーザのオリジナルマトリクスは秘匿化されるが、全ユーザの第１のマスク化マトリクスを加算すれば、オリジナルマトリクスの総和を得ることができる。さらに、各ユーザの二乗オリジナルマトリクスについても秘匿化され、全ユーザの第２のマスク化マトリクスを加算すれば、二乗オリジナルマトリクスの総和を得ることができる。両者を併せて演算を行えば、分散をも得ることができ、さらなる分析を実施できる。
【００８４】
また、上で述べた第３のステップが、第１及び第２のマスク化マトリクスを、準同型暗号方式における特定のユーザの公開鍵で暗号化し、暗号化された第１及び第２のマスク化マトリクスを、第２のコンピュータに送信するステップを含むようにしても良い。このように準同型暗号方式を採用すれば、第２のコンピュータで暗号化したまま第１のマスク化マトリクスの総和を得るような演算を行うことができる。第２のマスク化マトリクスについても同様である。
【００８５】
さらに、本情報処理方法において、（Ｄ）第２のコンピュータが、複数のユーザのコンピュータからの暗号化された第１のマスク化マトリクスに対して、暗号化された、第１のマスク化マトリクスの総和が得られるように、準同型暗号方式で暗号化したまま所定の演算を実施し、第１の演算結果を第４のデータ格納部に格納する第４のステップと、（Ｅ）第２のコンピュータが、第４のデータ格納部に格納されている第１の演算結果を、特定のユーザ（例えば管理者）のコンピュータに送信する第５のステップとをさらに含むようにしても良い。準同型暗号は様々なタイプのものがあるので、平文の加算結果を暗号化した値を得るための演算を実施する。
【００８６】
さらに、本情報処理方法において、（Ｆ）第２のコンピュータが、複数のユーザのコンピュータからの暗号化された第２のマスク化マトリクスに対して、暗号化された、第２のマスク化マトリクスの総和が得られるように、準同型暗号方式で暗号化したまま所定の演算を実施し、第２の演算結果を第４のデータ格納部に格納する第６のステップと、（Ｇ）第２のコンピュータが、第４のデータ格納部に格納されている第２の演算結果を、特定のユーザのコンピュータに送信する第７のステップとをさらに含むようにしてもよい。第２のマスク化マトリクスの総和については、例えば特定のユーザが追加的に要求した場合に処理するようにしても良いし、第１のマスク化マトリクスの総和を要求した際に一緒に生成するようにしても良い。
【００８７】
また、本情報処理方法において、（Ｈ）特定のユーザのコンピュータが、第２のコンピュータからの第１及び第２の演算結果を特定のユーザの秘密鍵で復号化することで、第１のマスク化マトリクスの総和及び第２のマスク化マトリクスの総和を生成し、第５のデータ格納部に格納する第８のステップと、（Ｉ）第５のデータ格納部に格納されている第１のマスク化マトリクスの総和及び第２のマスク化マトリクスの総和から、複数のユーザについてのオリジナルマトリクスの少なくともいずれかの要素について分散値を算出する第９のステップとをさらに含むようにしてもよい。このような処理によって、ユーザ間の分散を得ることができるので、さらなる分析を実施することができるようになる。
【００８８】
さらに、上で述べた第９のステップにおいて、第１のマスク化マトリクスの総和における特定の要素の値Ｓと、第２のマスク化マトリクスの総和における特定の要素の値Ｔと、複数のユーザの数ｎとから、１／ｎ×（Ｔ−１／ｎ×Ｓ2）を計算することで分散値を算出するようにしてもよい。
【００８９】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００９０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）
コンピュータにより実行される情報処理方法であって、
第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納する第１の処理と、
前記第１のデータ格納部に格納されている前記オリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、前記第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、前記第３のデータ格納部に格納する第２の処理と、
前記第３のデータ格納部に格納されている前記第１及び第２のマスク化マトリクスについてのデータを、複数のユーザのコンピュータからのデータを蓄積する第２のコンピュータに送信する第３の処理と、
を含み、
前記第１のマスクマトリクスが、前記複数のユーザが用いる前記第１のマスクマトリクスを加算すると、ゼロ行列となるように生成されており、
前記第２のマスクマトリクスが、前記複数のユーザが用いる前記第２のマスクマトリクスを加算すると、ゼロ行列となるように生成されている
ことを特徴とする情報処理方法。
【００９２】
（付記２）
前記第３の処理が、
前記第１及び第２のマスク化マトリクスを、準同型暗号方式における特定のユーザの公開鍵で暗号化し、暗号化された前記第１及び第２のマスク化マトリクスを、前記第２のコンピュータに送信する処理
を含む付記１記載の情報処理方法。
【００９３】
（付記３）
前記第２のコンピュータが、前記複数のユーザのコンピュータからの暗号化された前記第１のマスク化マトリクスに対して、暗号化された、第１のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第１の演算結果を第４のデータ格納部に格納する第４の処理と、
前記第２のコンピュータが、前記第４のデータ格納部に格納されている第１の演算結果を、前記特定のユーザのコンピュータに送信する第５の処理と、
をさらに含む付記２記載の情報処理方法。
【００９４】
（付記４）
前記第２のコンピュータが、前記複数のユーザのコンピュータからの暗号化された前記第２のマスク化マトリクスに対して、暗号化された、第２のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第２の演算結果を第４のデータ格納部に格納する第６の処理と、
前記第２のコンピュータが、前記第４のデータ格納部に格納されている第２の演算結果を、前記特定のユーザのコンピュータに送信する第７の処理と、
をさらに含む付記３記載の情報処理方法。
【００９５】
（付記５）
前記特定のユーザのコンピュータが、前記第２のコンピュータからの前記第１及び第２の演算結果を前記特定のユーザの秘密鍵で復号化することで、前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和を生成し、第５のデータ格納部に格納する第８の処理と、
前記第５のデータ格納部に格納されている前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和から、前記複数のユーザについてのオリジナルマトリクスの少なくともいずれかの要素について分散値を算出する第９の処理と、
をさらに含む付記４記載の情報処理方法。
【００９６】
（付記６）
前記第９の処理において、
前記第１のマスク化マトリクスの総和における特定の要素の値Ｓと、前記第２のマスク化マトリクスの総和における特定の要素の値Ｔと、前記複数のユーザの数ｎとから、
１／ｎ×（Ｔ−１／ｎ×Ｓ2）
を計算することで前記分散値を算出する
付記５記載の情報処理方法。
【００９７】
（付記７）
第１のデータ格納部に格納されているオリジナルマトリクスと、第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第１のマスクマトリクスとを加算して第１のマスク化マトリクスを生成し、第３のデータ格納部に格納し、前記第１のデータ格納部に格納されている前記オリジナルマトリクスの各要素を二乗することで得られる二乗オリジナルマトリクスと、前記第２のデータ格納部に格納されており且つ前記オリジナルマトリクスと同一形状である第２のマスクマトリクスとを加算して第２のマスク化マトリクスを生成し、前記第３のデータ格納部に格納するマスク処理部と、
前記第３のデータ格納部に格納されている前記第１及び第２のマスク化マトリクスについてのデータを、複数のユーザの情報処理装置からのデータを蓄積する第２の情報処理装置に送信する出力部と、
を有し、
前記第１のマスクマトリクスが、前記複数のユーザが用いる前記第１のマスクマトリクスを加算すると、ゼロ行列となるように生成されており、
前記第２のマスクマトリクスが、前記複数のユーザが用いる前記第２のマスクマトリクスを加算すると、ゼロ行列となるように生成されている
ことを特徴とする情報処理装置。
【００９８】
（付記８）
前記出力部が、
前記第１及び第２のマスク化マトリクスを、準同型暗号方式における特定のユーザの公開鍵で暗号化し、暗号化された前記第１及び第２のマスク化マトリクスを、前記第２の情報処理装置に送信する暗号化処理部
を含む付記７記載の情報処理装置。
【００９９】
（付記９）
付記８記載の情報処理装置と、
前記第２の情報処理装置と、
を有し、
前記第２の情報処理装置が、
前記複数のユーザの情報処理装置からの暗号化された前記第１のマスク化マトリクスに対して、暗号化された、第１のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第１の演算結果を第４のデータ格納部に格納し、第４のデータ格納部に格納されている第１の演算結果を、特定のユーザの情報処理装置に送信し、
前記複数のユーザの情報処理装置からの暗号化された前記第２のマスク化マトリクスに対して、暗号化された、第２のマスク化マトリクスの総和が得られるように、前記準同型暗号方式で暗号化したまま所定の演算を実施し、第２の演算結果を前記第４のデータ格納部に格納し、前記第４のデータ格納部に格納されている第２の演算結果を、前記特定のユーザの情報処理装置に送信する
コンピュータシステム。
【０１００】
（付記１０）
前記特定のユーザの情報処理装置
をさらに有し、
前記特定のユーザの情報処理装置が、
前記第２の情報処理装置からの前記第１及び第２の演算結果を前記特定のユーザの秘密鍵で復号化することで、前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和を生成し、第５のデータ格納部に格納し、
前記第５のデータ格納部に格納されている前記第１のマスク化マトリクスの総和及び前記第２のマスク化マトリクスの総和から、前記複数のユーザについてのオリジナルマトリクスの少なくともいずれかの要素について分散値を算出する
付記９記載のコンピュータシステム。
【符号の説明】
【０１０１】
１−３  ユーザ装置
５  管理者装置
６  マスク配信サーバ
７  集計サーバ
１０１  オリジナルマトリクス取得部
１０２  オリジナルマトリクス格納部
１０３  マスク受信部
１０４  マスク格納部
１０５  マスク処理部
１０６  二乗処理部
１０７  二乗オリジナルマトリクス格納部
１０８  マスク化マトリクス格納部
１０９  暗号化処理部
１１０  公開鍵格納部
１１１  暗号化データ格納部
１１２  送信部
５１  集計要求部
５２  受信データ格納部
５３  復号化処理部
５４  秘密鍵格納部
５５  復号化データ格納部
５７  出力処理部
５８  分散算出部
５９  分散格納部
６１  マスク生成部
６２  マスク配信部
６３  配信先データ格納部
７１  データ受信部
７２  ＤＢ
７３  集計要求処理部
７４  データ格納部
【図１】
0005724719.tif 000003
【図２】
0005724719.tif 000004
【図３】
0005724719.tif 000005
【図４】
0005724719.tif 000006
【図５】
0005724719.tif 000007
【図６】
0005724719.tif 000008
【図７】
0005724719.tif 000009
【図８】
0005724719.tif 000010
【図９】
0005724719.tif 000011
【図１０】
0005724719.tif 000012