(57)【特許請求の範囲】
【請求項１】
それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
前記データ入力装置は、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするデータ秘匿型統計処理システム。
【請求項２】
前記部分データのそれぞれが、各々異なる前記演算装置へ送信されることを特徴とする請求項１に記載のデータ秘匿型統計処理システム。
【請求項３】
前記演算装置は、
複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
前記データ処理装置は、
複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えることを特徴とする請求項１又は２に記載のデータ秘匿型統計処理システム。
【請求項４】
前記演算装置が行う所定の演算は、複数の前記部分データの総和の演算を含み、
前記データ処理装置が行う所定の統計処理は、複数の前記演算結果の総和を計算する処理を含むことを特徴とする請求項３に記載のデータ秘匿型統計処理システム。
【請求項５】
前記データ処理装置は、
前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、
前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段とを備えることを特徴とする請求項１〜４のいずれか１項に記載のデータ秘匿型統計処理システム。
【請求項６】
前記複数のデータ入力装置のそれぞれは、
前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、
前記複数の演算装置のそれぞれは、
前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えることを特徴とする請求項１〜４のいずれか１項に記載のデータ秘匿型統計処理システム。
【請求項７】
前記複数の演算装置の数は、一つのオリジナルデータから得られる部分データの個数と同じかそれよりも大きいことを特徴とする請求項１〜６のいずれか１項に記載のデータ秘匿型統計処理システム。
【請求項８】
前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、
前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであることを特徴とする請求項１〜７のいずれか１項に記載のデータ秘匿型統計処理システム。
【請求項９】
それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
前記データ入力装置は、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
前記演算装置は、
複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
前記データ処理装置は、
複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
前記データ入力装置は、前記オリジナルデータを分割した各々の部分の値からＭ個の部分データを生成し、互いに異なる２つの部分同士を乗算した値に基づいて１〜Ｍ個の部分データを生成し、（Ｍ＋１）〜（２Ｍ）個の部分データをそれぞれ対応する演算装置へ送信するものであり、
前記演算装置が行う所定の演算は、複数の前記部分データの総和及び２乗和の少なくとも一方の演算を含み、
前記データ処理装置が行う所定の統計処理は、複数の前記演算結果のうち、前記各々の部分の値に対応する部分データの２乗和及び前記部分同士を乗算した値に対応する部分データの総和について、総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
【請求項１０】
それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
前記データ入力装置は、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
前記演算装置は、
複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
前記データ処理装置は、
複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
前記データ入力装置は、前記オリジナルデータを分割した各々の部分を２乗した値からＭ個の部分データを生成し、互いに異なる２つの部分同士を乗算した値に基づいて１〜Ｍ個の部分データを生成し、（Ｍ＋１）〜（２Ｍ）個の部分データをそれぞれ対応する演算装置へ送信するものであり、
前記演算装置が行う所定の演算は、複数の前記部分データの総和の演算を含み、
前記データ処理装置が行う所定の統計処理は、複数の前記演算結果の総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
【請求項１１】
それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置とを備え、
前記データ入力装置は、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信する手段とを備え、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算を行って生成される部分データとを含み、
前記演算装置は、
複数の前記データ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
前記データ処理装置は、
複数の前記演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備え、
前記複数のデータ入力装置は、同数ずつの互いに対応する第１のデータ入力装置と第２のデータ入力装置とを含み、
前記第１のデータ入力装置及び前記第２のデータ入力装置は、前記オリジナルデータを分割した各々の部分の値からＭ個の部分データを生成し、Ｍ個の部分データのそれぞれを、（Ｍ２）個の前記演算装置のうち対応するＭ個の演算装置へ送信するものであり、
前記演算装置が行う所定の演算は、前記第１のデータ入力装置からの部分データ列と前記第２のデータ入力装置からの部分データ列との内積を求める演算を含み、
前記データ処理装置が行う所定の統計処理は、前記（Ｍ２）個の演算装置から受信した演算結果の総和を計算する処理を含むことを特徴とするデータ秘匿型統計処理システム。
【請求項１２】
秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であって、
それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、
前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備え、
前記部分データは、前記オリジナルデータを取得したデータ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成し、それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信したものであり、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とする統計処理結果提供サーバ装置。
【請求項１３】
秘匿すべきオリジナルデータを取得する手段と、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの１つとして、それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように送信する手段とを備えるデータ入力装置であって、
前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められ、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするデータ入力装置。
【請求項１４】
他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムであって、
前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものであって、
前記プログラムは、前記コンピュータに、
前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備えさせるものであり、
前記部分データは、前記オリジナルデータを取得したデータ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成し、それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように、前記複数の演算装置のうち対応する演算装置へ送信したものであり、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするプログラム。
【請求項１５】
秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムであって、
前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
前記プログラムは、前記コンピュータに、
全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割し、Ｍ以上の個数の部分データを生成する手段と、
前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの１つとして、それぞれの前記部分データを、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように送信する手段とを備えさせるものであり、
前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められ、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とするプログラム。
【請求項１６】
秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータをＭ個（Ｍは２以上の整数）に分割して生成したＭ以上の個数の部分データを出力し、
複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、（Ｍ−１）個の前記部分データを入手しても前記オリジナルデータが復元できないように複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして、前記演算を行った結果を出力し、
データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求め、
前記Ｍ以上の個数の部分データは、前記オリジナルデータを分割した各々の部分の値にそれぞれ基づいて生成される部分データと、複数の前記部分の値に基づく演算であって前記複数のオリジナルデータに基づく統計処理の一部を成す演算を行って生成される部分データとを含むことを特徴とする統計処理結果提供サービス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人のプライバシ等に関する秘匿すべきデータに対して、データの秘匿性を維持しながら統計処理を行い、その結果を提供するための技術に関する。
【背景技術】
【０００２】
近年、個人情報や行動記録などの「ライフログ」を解析し、さまざまなビジネスシーンに活用する事例が増えている。例えば、ＰＯＳデータなどの購買履歴、電子マネーの利用履歴、交通網の乗車履歴、車のＧＰＳ情報、携帯電話やスマートフォンなどの通話履歴や利用履歴、血圧や体重等のヘルスケアに関する測定履歴、さらに病歴等、あらゆる場面でデータを解析することが求められている。
【０００３】
「ライフログ」から得られる情報は有益なものが多く、行動パターンの推定やリコメンド、ターゲットマーケティング、新製品や新手法の研究開発等、多くの応用が考えられる。一方で、データを解析する際のプライバシ情報の取り扱いに関する懸念も大きい。
【０００４】
また、クラウド・コンピューティングの技術を利用し、個人や企業等のユーザが、自身のデータを、手元の機器に保存せずに、ネットワークを介してデータセンタ等へ送信して保存できるようにするサービスも、普及している。この場合も、クラウド上に保存されるデータにプライバシ情報が含まれると、情報漏洩への懸念が大きくなる。
【０００５】
プライバシ情報を保護しつつデータを解析して有用な知識を見出すための技術としては、プライバシ保護データマイニング（ＰＰＤＭ）と呼ばれる技術が開発されており（非特許文献１参照）、保存されているデータ自体が第三者に流出しても秘密の情報は漏洩しないようにするための技術としては、秘密分散と呼ばれる技術が提案されている（特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２０３１４号公報
【特許文献２】特表２０１２−５３０３９１号公報
【特許文献３】特開２００５−２５０８６６号公報
【非特許文献】
【０００７】
【非特許文献１】佐久間 淳、小林重信「プライバシ保護データマイニング」、人工知能学会誌  Ｖｏｌ．２４  Ｎｏ．２（２００９）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＰＰＤＭには、信頼できる第三者機関の存在を想定し、秘匿すべきオリジナルデータを当該第三者機関へ渡す方式があるが、そのように信頼できる第三者機関は、実際には実現困難である上に、秘密の情報が集約される当該第三者機関から情報が漏洩すると、その被害が甚大となることから、現実的な解決策にはならない。
【０００９】
ＰＰＤＭのうち、信頼できる第三者機関を利用しない方式は、ある組織が有するオリジナルデータを外部から秘匿しながら、そのオリジナルデータの集合に対する解析の結果を当該組織の外部において求めるものであり、解析処理を行う外部の者は、オリジナルデー
タを渡されることなく、何らかの秘匿化処理が行われたデータを渡されて、解析処理を行う。その際、外部の者が、渡されたデータから、組織内に秘匿されているオリジナルデータを求めることができないようにするために、種々の手法が開発されている。
【００１０】
しかしながら、信頼できる第三者機関を利用しない方式も、組織の内部では、秘匿すべきオリジナルデータを保持していることを前提としている。したがって、当該組織の保持しているオリジナルデータが第三者に流出し、プライバシ情報が漏洩するリスクについては、ＰＰＤＭ自体は、無防備であることになる。
【００１１】
そうすると、従来の技術では、ＰＰＤＭとオリジナルデータの保持を暗号化された状態で行う技術とを組み合わせることにより、秘匿すべきデータの安全性を保つことになるが、いくら暗号化された状態であっても、オリジナルデータが存在する以上は、暗号化強度に応じて膨大となるものの計算能力と時間さえかければ、復号化してオリジナルデータを求めることができてしまう。よって、情報漏洩のリスクは、排除できないものとして残ることになる。
【００１２】
これに対して、秘密分散技術は、秘密情報を幾つか（Ｎ個とする）のデータに分割して、分散させて保持することにより、Ｎ個のうちのＫ個（Ｋ＜Ｎ）のデータが第三者に流出して、それらが集められても、秘密情報を復元することはできないようにして、情報漏洩を防ぐものである。
【００１３】
このように秘密情報を分散させるということは、オリジナルデータを保持しないということであり、Ｎ及びＫの値を大きくすることにより、確実に情報漏洩のリスクを低減することができる。つまり、Ｋ箇所で、保持しているデータの流出が起きても、秘密情報は漏洩しないことが担保されるため、Ｋの値を十分に大きくし、それぞれのデータ保持場所でのセキュリティを高くすることにより、Ｋ個の全ての場所からデータが流出する可能性を、極めて小さくすることが可能である。
【００１４】
しかしながら、秘密分散技術により安全に保持されている秘密情報を解析したい場合、分割された状態のままで解析をすることができないため、一旦、データ全部を一箇所に集めてオリジナルの秘密情報を復元した上で、解析処理を行わなければならない。そうすると、たとえ通常の保存時に秘密分散技術を利用していても、解析をする際にオリジナルデータを保持することになるため、データの流出が即、情報漏洩につながるというリスクは、依然として残ることになる。
【００１５】
本発明は、上述した状況に鑑み、オリジナルデータの受け渡しも保存も行わないことにより、オリジナルデータを保持しないようにして、秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることを可能にすることを目的とする。
【課題を解決するための手段】
【００１６】
本発明の原理に従う一つの例に係るデータ秘匿型統計処理システムは、それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置を備える。
【００１７】
この構成によれば、各データ入力装置が取得したオリジナルデータは、部分データにさ
れて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、データ処理装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、各演算装置が、部分データについて演算を行い、データ処理装置が、複数の演算装置からの演算結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
【００１８】
上記の構成において、前記データ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうち対応する演算装置へ、保護された通信路により送信する手段を備えるようにしてもよい。
【００１９】
これにより、オリジナルデータをＭ個に分割して、Ｍ個の演算装置に送信した場合、最大（Ｍ−１）個までの部分データが第三者に流出しても、オリジナルデータを復元することができないようにすることが可能になる。したがって、Ｍ個の演算装置がそれぞれの部分データを保存して、一部の演算装置からデータが第三者に流出したとしても、オリジナルデータの秘匿性を維持可能とすることができる。また、データ入力装置からの通信路の保護により、通信の傍受によって全部の部分データ（即ちオリジナルデータ）が第三者に取得されることを防止することができる。
【００２０】
なお、秘密の比率は、各々のデータ入力装置によって異なるようにすることが望ましい。また、各々のデータ入力装置が生成する部分データの個数は、一つの統計処理の対象となる集合に属するオリジナルデータの全てについて同一とする方が、運用管理が簡単化されるが、異なることを許容しても構わない。
【００２１】
上記の構成において、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、前記データ処理装置が、前記複数の演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えるようにしてもよい。
【００２２】
これにより、Ｍ個の演算装置のそれぞれが、Ｎ個のデータ入力装置から部分データを受信し、Ｎ個の部分データから演算した結果をデータ処理装置へ送信し、データ処理装置が、Ｍ個の演算結果を処理することで、Ｎ個のオリジナルデータについて統計処理を行った結果を求めることが可能になる。
【００２３】
このとき、各演算装置は、Ｎ個のオリジナルデータに対応するＮ個のデータを受け取るが、それは部分データであってオリジナルデータの情報を含んでおらず、データ処理装置は、オリジナルデータを構成するＭ個の部分データに対応するＭ個の演算結果を受け取るが、それはオリジナルデータの集合についての情報であって個々のオリジナルデータの情報を含んでいない。よって、各演算装置とデータ処理装置に、いずれのオリジナルデータも取得させることなく、統計処理の結果が得られることになる。
【００２４】
上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理装置が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
【００２５】
これにより、Ｎ個のオリジナルデータの総和（Ｘ1＋Ｘ2＋…＋ＸN）という統計処理の
結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、ｉ番目
のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiとなるように
、ｍ個の部分データｘjiを生成し、ｊ番目の演算装置（ｊ＝１，２，…，ｍ）が、Ｎ個の部分データの総和（ｘj1＋ｘj2＋…＋ｘjN）の値を求め、データ処理装置が、ｍ個の演算装置が求めた値の総和を求めれば、（Ｘ1＋Ｘ2＋…＋ＸN）の値が求められる。
【００２６】
上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものと、互いに異なる２つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和及び２乗和の少なくとも一方の演算を含み、前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果のうち前記各々の部分の値に対応するものについて２乗和を計算する処理と、前記所定の個数の演算結果のうち前記部分同士を乗算した値に対応するものについて総和を計算する処理を含むものとしてもよい。
【００２７】
これにより、Ｎ個のオリジナルデータの２乗和（Ｘ12＋Ｘ22＋…＋ＸN2）という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、ｉ番目のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiとなるよ
うに、ｍ個の部分データｘjiを生成し、さらに、ｍ個の部分データ［Σj≠k（ｘjiｘki）］（以下、「ｘ’ji」と記す）を生成し、ｊ番目の演算装置（ｊ＝１，２，…，ｍ）が、Ｎ個の部分データｘjiの２乗和（ｘj12＋ｘj22＋…＋ｘjN2）の値を求め、ｊ番目の演算
装置（ｊ＝ｍ＋１，ｍ＋２，…，２ｍ）が、Ｎ個の部分データｘ’jiの総和（ｘ’j1＋ｘ’j2＋…＋ｘ’jN）の値を求め、データ処理装置が、２ｍ個の演算装置が求めた値の総和を求めれば、（Ｘ12＋Ｘ22＋…＋ＸN2）の値が得られる。
【００２８】
別の例として、ｉ番目のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i
＋…＋ｘmiとなるように、ｍ個の部分データｘjiを生成し、さらに、ｍ＋１番目の部分データ［Σj（Σj≠k（ｘjiｘki））］（以下、「ｘ”i」と記す）を生成し、ｊ番目の演算装置（ｊ＝１，２，…，ｍ）が、Ｎ個の部分データｘjiの２乗和（ｘj12＋ｘj22＋…＋ｘjN2）の値を求め、ｍ＋１番目の演算装置が、Ｎ個の部分データｘ”iの総和（ｘ”1＋ｘ
”2＋…＋ｘ”N）の値を求め、データ処理装置が、ｍ＋１個の演算装置が求めた値の総和を求めるのでも、（Ｘ12＋Ｘ22＋…＋ＸN2）の値が得られる。
【００２９】
代替となる構成として、上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分を２乗した値から生成されるものと、互いに異なる２つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
【００３０】
これによっても、Ｎ個のオリジナルデータの２乗和（Ｘ12＋Ｘ22＋…＋ＸN2）という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、ｉ番目のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiとな
るようにｘjiを定めて、ｍ個の部分データｘji2と、ｍ個の部分データｘ’jiとを生成し
、ｊ番目の演算装置（ｊ＝１，２，…，ｍ）が、Ｎ個の部分データｘji2の総和（ｘj12＋ｘj22＋…＋ｘjN2）の値を求め、ｊ番目の演算装置（ｊ＝ｍ＋１，ｍ＋２，…，２ｍ）が、Ｎ個の部分データｘ’jiの総和（ｘ’j1＋ｘ’j2＋…＋ｘ’jN）の値を求め、データ処理装置が、２ｍ個の演算装置が求めた値の総和を求めれば、（Ｘ12＋Ｘ22＋…＋ＸN2）の値が得られる。
【００３１】
別の例として、ｉ番目のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i
＋…＋ｘmiとなるようにｘjiを定めて、ｍ個の部分データｘji2と、１個の部分データｘ
”iとを生成し、ｊ番目の演算装置（ｊ＝１，２，…，ｍ）が、Ｎ個の部分データｘji2の総和（ｘj12＋ｘj22＋…＋ｘjN2）の値を求め、ｍ＋１番目の演算装置が、Ｎ個の部分デ
ータｘ”iの総和（ｘ”1＋ｘ”2＋…＋ｘ”N）の値を求め、データ処理装置が、ｍ＋１個の演算装置が求めた値の総和を求めるのでも、（Ｘ12＋Ｘ22＋…＋ＸN2）の値が得られる。
【００３２】
上述した例では、総和を求めるのにｍ個の演算装置を用い、２乗和を求めるのに２ｍ個もしくはｍ＋１個の演算装置を用いているが、いずれの場合も、同時に（ｍ−１）箇所でデータ流出があっても、オリジナルデータの秘匿性は維持可能である。
【００３３】
また、各々の演算装置は、データ入力装置から受信したデータが何であるかに関わらず、受信したデータに対して総和及び２乗和の演算をして、この２つの演算結果をデータ処理装置に送信するという、統一的な処理を行う構成とし、データ処理装置が、行いたい統計処理に従ってデータ処理装置からの演算結果を選択（例えば、１〜ｍ番目の演算装置については２乗和の方の結果を選択し、ｍ＋１〜２ｍ番目の演算装置については総和の方の結果を選択する等）して、計算対象とするように構成してもよい。
【００３４】
上記のようにオリジナルデータの集合の総和及び２乗和という統計処理の結果を求めることができる構成を利用して、標本平均の算出、標本分散の算出、標本偏差の算出、最尤推定、Ｔ分布を用いた区間推定、母比率の信頼区間の推定、母分散の推定、母平均の検定、母集団Ａ及びＢに関する母平均の差の検定、母比率の検定、母集団Ａ及びＢの母分散の比較検定、分散分析のうちの少なくとも１つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
【００３５】
上記の構成において、前記複数のデータ入力装置は、同数ずつの互いに対応する第１のデータ入力装置と第２のデータ入力装置とを含み、前記第１のデータ入力装置及び前記第２のデータ入力装置が行う送信は、前記所定の個数の部分データのそれぞれを、所定の個数の２乗個の前記演算装置のうち対応する所定の個数の演算装置へ送信するものであり、前記演算装置が行う所定の演算は、前記第１のデータ入力装置からの部分データ列と前記第２のデータ入力装置からの部分データ列との内積を求める演算を含み、前記データ処理装置が行う統計処理は、前記所定の個数の２乗個の演算装置から受信した所定の個数の２乗個の前記演算結果の総和を計算する処理を含むものとしてもよい。
【００３６】
これにより、第１のオリジナルデータの集合（Ｎ個のオリジナルデータＸi）と第２の
オリジナルデータの集合（Ｎ個のオリジナルデータＹi）の内積（Ｘ1Ｙ1＋Ｘ2Ｙ2＋…＋
ＸNＹN）という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、ｉ番目の第１のデータ入力装置（ｉ＝１，２，…，Ｎ）が、Ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiとなるように、ｍ個の部分データｘjiを生成し、ｉ番目の第２のデー
タ入力装置（ｉ＝１，２，…，Ｎ）が、Ｙi＝ｙ1i＋ｙ2i＋…＋ｙmiとなるように、ｍ個
の部分データｙkiを生成し、ｊｋ番目の演算装置（ｊｋ＝１，２，…，ｍ2）が、Ｎ個の
部分データｘjiとＮ個の部分データｙkiとの内積（ｘj1ｙk1＋ｘj2ｙk2＋…＋ｘjNｙkN）の値を求め、データ処理装置が、ｍ2個の演算装置が求めた値の総和を求めれば、（Ｘ1Ｙ1＋Ｘ2Ｙ2＋…＋ＸNＹN）の値が求められる。
【００３７】
上記のように２つのオリジナルデータの集合の内積という統計処理の結果を求めることができる構成を利用して、共分散の算出、相関係数の算出、回帰分析のうちの少なくとも１つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
【００３８】
上記のデータ秘匿型統計処理システムにおいて、前記データ入力装置が、前記オリジナルデータを分割する際に発生させた乱数を用いて前記秘密の比率を定め、分割した後に前
記秘密の比率の記憶を消去する手段をさらに備えるようにしてもよい。
【００３９】
これにより、オリジナルデータを構成する複数の部分データのうちの一つしか第三者に流出しておらず、オリジナルデータの秘匿性が維持されるべき場合でも、秘密の比率を知られてしまうと、オリジナルデータが復元できてしまうという情報漏洩のリスクを、低減することが可能になる。その都度ランダムに秘密の比率を定めるようにすれば、比率が推測されてしまう可能性が少なくなるし、秘密の比率の記憶を消去しておけば、情報漏洩の可能性も少なくなる。
【００４０】
上記のシステムにおいて、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データのそれぞれを、該部分データを送信したデータ入力装置と関連付けて保存する手段と、前記データ入力装置との関連付けを示す要求に応じて、前記複数の部分データのうち、該データ入力装置と関連付けて保存されている部分データを返送する手段をさらに備えるようにしてもよい。
【００４１】
これにより、データ入力装置が取得したオリジナルデータを即座に分割し、複数の演算装置に分散して保存させることで、データ入力装置もオリジナルデータを保持しないことになり、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
【００４２】
上記の構成において、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割して生成した部分データの全てを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段を備えるようにしてもよい。
【００４３】
これにより、秘密の比率の記憶が残っていなくても、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データを全て集めることで、オリジナルデータを復元することが可能になる。
【００４４】
代替となる構成として、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割した各々の部分のうち一つについての前記比率を記憶する手段と、前記オリジナルデータを分割して生成した部分データのうち、記憶されている前記一つの比率に該当する部分データを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段とを備えるようにしてもよい。
【００４５】
これにより、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データのうちの一つを取得することで、オリジナルデータを復元することが可能になる。
【００４６】
上記のシステムにおいて、前記データ処理装置が、前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段を備えるようにしてもよい。
【００４７】
これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択したり、演算装置の数を指定したりすることが可能になり、時々の状況に応じた負荷分散や、安全度の細かい設定等が可能になる。また、各演算装置が有する部分データが、所望の統計処理の対象となるオリジナルデータの部分データであるかそうでないかを、演算装置に伝えることが可能になり、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
【００４８】
上記のシステムにおいて、前記複数のデータ入力装置のそれぞれが、前記部分データを
前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、前記複数の演算装置のそれぞれが、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えるようにしてもよい。
【００４９】
これにより、各データ入力装置自身が送信先の演算装置を選択することと、各演算装置自身が統計処理の対象に含めるべき部分データを選別することとが可能になり、データ処理装置が、各オリジナルデータの内容を取得しないだけでなく、各オリジナルデータに関係する情報をも取り扱わないようにすることができ、さらなるデータの安全性を実現することができる。
【００５０】
上記のいずれの構成においても、前記複数の演算装置の数を、一つのオリジナルデータから得られる部分データの個数である所定の数と同じかそれよりも大きくし、前記所定の個数の部分データが、それぞれ異なる演算装置に送信されるようにするとよい。
【００５１】
上述したシステムにおいて、前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであってもよい。
【００５２】
これにより、例えば、統計処理の主体となる事業者が、データ処理装置を運営管理し、既存の複数のクラウドサービス事業者から提供されるデータの保存及び演算サービスを利用して、統計処理結果提供サービスを行うようなことが可能になる。
【００５３】
本発明の原理に従う一つの例に係る統計処理結果提供サーバ装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であり、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備える。複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものとする。
【００５４】
この構成によれば、オリジナルデータが部分データにされて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、サーバ装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。また、第三者が一部の部分データを取得してもオリジナルデータは復元されないため、オリジナルデータの秘匿性を維持可能とすることができる。なお、秘密の比率は、オリジナルデータを分割する機器内にのみ、少なくとも分割時に存在するだけで、誰にも知られないか、オリジナルデータの保有者しか知ることのできないものである。
【００５５】
上記のサーバ装置において、前記複数の演算装置に前記オリジナルデータに属する全ての部分データが揃ったことを確認する手段と、前記確認のされた部分データのそれぞれを対象として対応する演算装置における前記所定の演算が行われるように、前記複数の演算装置のそれぞれへ指示を行う手段をさらに備えるようにしてもよい。
【００５６】
これにより、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。例えば、同じオリジナルデータに属するある部分データは
対応する演算装置に受信され保存されているが、別の部分データは対応する演算装置に受信されていない場合に、各演算装置が、自身に保存されている部分データ全てを対象に演算してしまうと、それらの演算装置からの演算結果を処理した結果は、誤ったものとなってしまう。ここで、複数の演算装置を統括的に利用するサーバ装置が、全ての部分データが揃っているものを各演算装置に伝えれば、正しい統計処理結果を得ることが可能になる。
【００５７】
上記の構成において、サーバ装置が、前記確認のために、前記複数の演算装置のそれぞれから、該演算装置に保存された部分データが属するオリジナルデータの識別番号を受信する手段をさらに備えるようにしてもよい。
【００５８】
これにより、サーバ装置は、複数の演算装置を見渡して、全ての部分データが揃っている状態になったか否かを、各演算装置から個々の部分データを取得するようなことなく、確認することが可能になる。
【００５９】
上記の構成において、サーバ装置が、前記確認がされたオリジナルデータの識別番号の集合をシーケンス番号と対応付けて前記複数の演算装置へ通知する手段と、前回の通知の後に前記確認がされたオリジナルデータの識別番号の集合を次のシーケンス番号と対応付けて前記複数の演算装置へ通知する手段をさらに備え、前記複数の演算装置のそれぞれに、１つのシーケンス番号の指定と共に前記所定の演算の指示を送信することにより、指定されたシーケンス番号以前の複数のシーケンス番号に対応する識別番号の集合を併せて前記所定の演算の対象とする部分データが特定されるようにしてもよい。
【００６０】
これにより、数多くの部分データが各演算装置に受信され蓄積されていく間に、随時、各演算装置が有する数多くの部分データのうちどれが、全ての部分データが揃っている状態になったかという情報を、サーバ装置が各演算装置に共有させることが可能になる。
【００６１】
上記の構成において、サーバ装置は、あるオリジナルデータの集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得した後に、該あるオリジナルデータの集合に限定された数のオリジナルデータを加えた集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得することを禁止する手段をさらに備えるようにしてもよい。
【００６２】
上述したように、サーバ装置は、Ｎ個の部分データから演算した結果を、Ｍ個の演算装置のそれぞれから受信して処理することで、Ｎ個のオリジナルデータについて統計処理を行った結果を求めるのであるから、ある時点で、ｉ＝１，…，Ｎのオリジナルデータについての統計処理結果を求め、次の時点で、ｉ＝１，…，Ｎ，Ｎ＋１のオリジナルデータについての統計処理結果を求めて、両者の差分を取れば、ｉ＝Ｎ＋１のオリジナルデータを求めることができてしまう。
【００６３】
そのような時点で演算結果を取得することを禁止することにより、サーバ装置が、実質的に各演算装置から個々の部分データを取得してオリジナルデータを復元するような、悪意のある動作を行わないことを担保することが可能になる。
【００６４】
上記のサーバ装置において、それぞれが前記オリジナルデータを取得して前記部分データを生成する手段を有する複数のデータ入力装置と通信する手段と、利用可能な演算装置の中から、前記所定の統計処理を行うための前記複数の演算装置を選択する手段と、前記複数のデータ入力装置のそれぞれへ、選択された前記複数の演算装置に対して複数の前記部分データを送信できるように、前記複数の演算装置の情報を通知する手段をさらに備えるようにしてもよい。
【００６５】
これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択することが可能になり、また、データ入力装置の数が多くても、サーバ装置からの通知によって一元的に部分データの送信先を設定することができるため、運用管理が簡単化される。
【００６６】
本発明の原理に従う一つの例に係るデータ入力装置は、秘匿すべきオリジナルデータを取得する手段と、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの１つとして、前記所定の個数の部分データのそれぞれを、保護された通信路により送信する手段とを備える。そして、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
【００６７】
この構成によれば、秘匿すべきオリジナルデータが漏洩するリスクを低減しつつ、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
【００６８】
上記のデータ入力装置において、送信した前記所定の個数の部分データを、それぞれ対応する前記演算装置に、許可された者からのみアクセスできるように保存させる手段と、取得した前記オリジナルデータの記憶を消去する手段とをさらに備えるようにし、前記オリジナルデータは、前記許可された者によりそれぞれ対応する前記演算装置に取得された前記所定の個数の部分データに基づいて復元されるものとしてもよい。
【００６９】
これにより、本来の保有者が後でオリジナルデータを取得したい場合への備えを、データ入力装置においてオリジナルデータを保存するのではなく、複数の演算装置に分散して保存されている部分データを取得してオリジナルデータを復元可能とすることにより、実現することができるため、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
【００７０】
上記のデータ入力装置において、前記サーバ装置にアクセスするための情報を記憶する手段と、前記対応する演算装置を特定するための情報を前記サーバ装置から受信する手段とをさらに備えるようにしてもよい。
【００７１】
これにより、データ入力装置は、サーバ装置にアクセスするための情報さえ記憶していれば、オリジナルデータを幾つに分割してどのように部分データを生成し、どの複数の演算装置へ渡すか等を、サーバ装置からの指定に従って行うことが可能になる。
【００７２】
上記のデータ入力装置において、前記部分データに、システムにおいて一意となる識別情報を付与する手段と、前記識別情報に基づいて求められる値が、前記複数の演算装置のそれぞれが担当する範囲のうちのいずれの範囲に属するかに従って、前記対応する演算装置を特定する手段とをさらに備えるようにしてもよい。
【００７３】
これにより、データ入力装置は、自身で、各部分データの送信先となる演算装置を決定することが可能になり、サーバ装置が、各オリジナルデータに関係する情報を取り扱わないようにすることができるとともに、一つのオリジナルデータから得られる各部分データが、それぞれ異なる演算装置に送信されるようにすることも可能になり、さらなるデータ
の安全性を実現することができる。
【００７４】
上記のデータ入力装置において、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことを確認した後に、確認済みであることを示す情報をいずれかの演算装置へ送信して登録する手段をさらに備えるようにしてもよい。
【００７５】
この構成と、以下に例示する各演算装置の構成とにより、各演算装置が有する部分データのうち、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
【００７６】
本発明の原理に従う一つの例に係る演算装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と通信する手段と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段とを備える。そして、前記サーバ装置は、複数の前記演算装置からの演算結果に基づいて、所定の統計処理を行うものであり、前記演算装置は、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とをさらに備える。
【００７７】
上述したデータ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置の発明は、それぞれ互いに他の要素の発明としても、本システム全体もしくは個々の装置において行なわれる方法の発明としても、汎用のコンピュータシステムを本システムとして動作させるためのプログラム（又はそのプログラムを記録した記録媒体）の発明としても、汎用のコンピュータを個々の装置として動作させるためのプログラム（又はそのプログラムを記録した記録媒体）の発明としても、勿論成立するものである。以下に、そのうちの幾つかを例示する。
【００７８】
本発明の原理に従う一つの例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものである。そして、前記プログラムは、前記コンピュータに、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備えさせるものであり、複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものである。
【００７９】
本発明の原理に従う別の例に係るプログラムは、秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置がある。そして、前記プログラムは、前記コンピュータに、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密
の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの１つとして、保護された通信路により送信する手段とを備えさせるものであり、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
【００８０】
本発明の原理に従うさらに別の例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおける複数の演算装置のうちの一つとして動作させるためのプログラムである。前記他のコンピュータとして、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置とがある。そして、前記プログラムは、前記コンピュータに、前記複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段と、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とを備えさせるものであり、前記サーバ装置は、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行うものである。
【００８１】
本発明の原理に従う一つの例に係る統計処理結果提供サービス方法は、秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割して得られた所定の個数の部分データを出力し、複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして前記演算を行った結果を出力し、データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める。
【発明の効果】
【００８２】
本発明によれば、オリジナルデータを保持しないようにして秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることが可能になる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施の形態に係るデータ秘匿型統計処理システム（以下、「本システム」という）において総和を求める例を説明する図
【図２】本システムにおいて総和を求める別の例を説明する図
【図３】本システムにおいて２乗和を求める例を説明する図
【図４】本システムにおいて２乗和を求める別の例を説明する図
【図５】本システムにおいて内積を求める例を説明する図
【図６】本システムの構成例を示す図
【図７】本システムにおける統計処理結果提供サーバの構成例を示す図
【図８】本システムにおける処理手順の例（１）〜（３）を説明する図
【図９】本システムにおける処理手順の例（４）〜（６）を説明する図
【図１０】本システムにおける処理手順の例（７）〜（９）を説明する図
【図１１】本システムにおける処理手順の例（１０）〜（１２）を説明する図
【図１２】本システムにおける処理手順の例（１３）〜（１５）を説明する図
【図１３】本システムにおける処理手順の例（１６）〜（１８）を説明する図
【図１４】本システムにおける処理手順の例（１９）〜（２１）を説明する図
【図１５】本システムにおける処理手順の例（２２）〜（２４）を説明する図
【図１６】本システムの別の構成例を示す図
【図１７】本システムにおける別の処理手順の例（１）〜（２）を説明する図
【図１８】本システムにおける別の処理手順の例（３）〜（５）を説明する図
【図１９】本システムにおける別の処理手順の例（６）〜（８）を説明する図
【図２０】本システムのさらに別の構成例を示す図
【図２１】本システムにおけるさらに別の処理手順の例（１）〜（２）を説明する図
【図２２】本システムにおけるさらに別の処理手順の例（３）〜（６）を説明する図
【図２３】本システムにおけるさらに別の処理手順の例（７）〜（１０）を説明する図
【図２４】本システムを教育の分野において応用する例を説明する図
【図２５】本システムを医療の分野において応用する例を説明する図
【図２６】本システムを流通業（小売業）の分野において応用する例を説明する図
【図２７】本システムをテレマティクスの分野において応用する例を説明する図
【発明を実施するための形態】
【００８４】
以下、本発明の実施の形態にについて、例示のために、図面を用いて説明する。本システムは、プライバシ保護を考慮したクラウド型のデータ処理を行うためのシステムである。
【００８５】
現在、多数のセンサやＩＣカードが普及しており、例えば、車は数億台、スマートフォンは十億台超、センサは数十億〜数兆個という、膨大な数のデータ生成源（本システムにおけるデータ入力デバイスとなり得るもの）が存在する。これらを対象とするＭ２Ｍ（マシンｔｏマシン）型のサービスも、種々考案されている。
【００８６】
これらのサービスの多くが、データの蓄積と解析処理を、データの本来の所有者ではない第三者がリソースを提供するクラウドを利用して、行うことが想定される。そうすると、クラウドにおいて扱われるデータには、プライバシ情報が大量に含まれることになり、データがクラウドの外部へ流出したときの情報漏洩のリスクが、より深刻になる。したがって、クラウドを利用する際には、情報漏洩のリスクを低減するために、クラウドにおけるデータの蓄積から解析処理まで通して、クラウド上のデータを秘匿化した状態にすることが、強く望まれる。
【００８７】
そこで、本システムでは、データ生成源からオリジナルデータを集める際に、オリジナルデータを秘匿化できるような分割（以下、「秘匿分割」ということがある）を行う。そして、オリジナルデータはどこへも渡さず、分割されたデータを複数のクラウドへ渡して、蓄積及び解析処理をさせる。このようにすれば、単一のクラウドからデータが流出しても、そこからオリジナルデータを復元することはできなくなる。
【００８８】
そして、本システムでは、各クラウドで個別に、統計解析処理を行い、クラウドとは別の解析事業者（「統計処理結果提供サービス事業者」ともいう）が、各クラウドの処理結果を集めて、本来の統計処理の結果を得る。ここで、各クラウドサービスを提供する事業者は、複数のクラウドから一度にデータが流出する可能性を低くするためにも、複数のクラウド上のデータを合わせてオリジナルデータを導き出そうとする試みをさせないためにも、別々の事業者とすることが好ましい。どのクラウドサービスを利用するかは、解析事
業者もしくはデータ生成源の所有者が決めればよい。
【００８９】
なお、クラウドサービスでは一時的な計算資源の利用も可能であるため、本システムを、データの永続保存が不要（オリジナルデータの復元が不要）な場合に適用する際には、クラウドサービスを用いて必要なときに必要なだけの計算資源を確保し、演算処理を行ったのち、不要になった計算資源を開放する（その演算処理のために保存した部分データを全て消去する）ようにしてもよい。これにより、より情報漏洩に対する安全性を高めることができることに加えて、物理的に冗長な計算資源を維持せずに済むようにすることが可能である。
【００９０】
解析事業者は、データ生成源の所有者とは異なる者でもよいし、例えば、一つの企業が自身の所有する多数のデータ生成源からのデータについて第三者のクラウドサービスを利用して蓄積及び解析処理を行う場合には、解析事業者がデータ生成源を所有する企業自身であってもよい。各データ生成源の所有者がそれぞれ異なる個人であって、解析事業者とも、解析事業者による統計処理結果を提供される利用者企業とも、異なるという応用例もあり得る。
【００９１】
本システムでは、このようにオリジナルデータを秘匿分割して複数のクラウドに分散させた状態を保ちながら処理を行って、多数のオリジナルデータの総和、２乗和、内積等を求めることができる。例えば、総和と２乗和が求められるだけでも、統計処理として、平均値や分散値を求めたり、基本的な推定や検定を行ったりすることができるため、多様な応用が可能である。しかも、オリジナルデータをどこにも存在させず、秘匿分割された状態のまま、且つ、一つのオリジナルデータから秘匿分割により生成された複数のデータが一箇所に集まることなく分散された状態のまま、統計処理の結果を求められるため、安全性を十分に高くすることが可能である。
【００９２】
図１は、各オリジナルデータを２つに分割して、Ｎ個のオリジナルデータの総和を求める本システムの例を示している。図中、説明のため、各々のデータ入力デバイス１０−１〜１０−Ｎが、各々のオリジナルデータｘ1〜ｘNを分割して、クラウドサービス設備３０−１及び３０−２へアップロードするように描かれているが、本システムでは、１つのデータ入力デバイスが複数のオリジナルデータについて、取得、秘匿分割、アップロードを行うことも、勿論可能である。なお、Ｎは、２以上の整数であり、億や兆の単位の数とすることも可能である。
【００９３】
各々のデータ入力デバイス１０−ｉは、オリジナルデータｘiを取得すると、ｘi＝ｘ1i＋ｘ2iを満たすようにｘiを分割する。どのような比率で分割するかは、その都度、デバ
イス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする（この処理を、「ランダムシェアによる秘匿分割」という）。
【００９４】
これにより、個々のｘ1i，ｘ2iは、ｘiについて完全秘匿性を持つことになる（このこ
とを、「Ｈ（ｘi｜ｘ1i）＝Ｈ（ｘi）＆Ｈ（ｘi｜ｘ2i）＝Ｈ（ｘi）」と表す）。これにより、単一のクラウドにおけるデータ流出ではオリジナルデータを復元できないことが、担保される。
【００９５】
そして、各々のデータ入力デバイス１０−ｉは、第１のクラウドサービス設備３０−１へ部分データｘ1iをアップロードし、第２のクラウドサービス設備３０−２へ部分データｘ2iをアップロードする。
【００９６】
各々のクラウドサービス設備３０−ｊは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、あ
る時点で、第１のクラウドサービス設備３０−１にはＮ個の部分データ｛ｘ11，ｘ12，…，ｘ1N｝が保存されており、第２のクラウドサービス設備３０−２にはＮ個の部分データ｛ｘ21，ｘ22，…，ｘ2N｝が保存されている状態になる。
【００９７】
この時点で、第１のクラウドサービス設備３０−１は、Ｎ個の部分データｘ1iの総和を計算した結果ｆ（Ｘ1）を統計処理結果提供サーバ５０へ送信し、第２のクラウドサービ
ス設備３０−２は、Ｎ個の部分データｘ2iの総和を計算した結果ｆ（Ｘ2）を統計処理結
果提供サーバ５０へ送信する。Ｎが膨大な数である場合、クラウド上の計算機リソースを使って処理ができることも、重要な利点となる。
【００９８】
統計処理結果提供サーバ５０は、送信されてきた結果について、総和を求める処理を行う。「ｆ（Ｘ1）＋ｆ（Ｘ2）」の値は、（ｘ1i＋ｘ2i）のｉを１からＮまで合計した値と等しくなるから、オリジナルデータｘiの総和を求めたことになる。本システムにより提
供されるサービスの利用者は、統計解析の結果のみを参照する。
【００９９】
なお、統計処理結果提供サーバ５０は、各クラウドからＮ個の部分データについて計算処理を行った結果であるｆ（Ｘi）のみを取得し、個々の部分データには関知しないため
、統計処理結果提供サーバ５０を運営する解析事業者に対しても、オリジナルデータの秘匿性を高く保つことが可能である。
【０１００】
図１は、各オリジナルデータを２個に分割する例であるが、図２は、各オリジナルデータをｍ個（２より多い数）に分割して、Ｎ個のオリジナルデータの総和を求める本システムの例を示している。図２の場合、ｍ箇所の独立した異なるクラウド上で、分散して処理を行うことになる。
【０１０１】
各々のデータ入力デバイス１０−ｉは、オリジナルデータｘiを取得すると、ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiを満たすようにｘiを分割する。どのような比率で分割するかは、その
都度、デバイス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする。
【０１０２】
このランダムシェアによる秘匿分割により、個々のｘ1i，ｘ2i，…，ｘmiは、ｘiにつ
いて完全秘匿性を持ち、また、例えば、ｘ1i〜ｘ(m-1)iの値が分かっても、ｘmiの値が分からなければ、ｘiを復元できないことから、同時に (ｍ−１) 箇所のデータ流出があっ
ても、秘匿性は維持されることになる。
【０１０３】
そして、各々のデータ入力デバイス１０−ｉは、ｍ個のクラウドサービス設備３０−ｊのそれぞれへ対応する部分データｘjiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備３０−ｊにもＮ個の部分データ｛ｘj1，ｘj2，…，ｘjN｝が保存されている状態になる。
【０１０４】
この時点で、各々のクラウドサービス設備３０−ｊは、Ｎ個の部分データｘjiの総和を計算した結果ｆ（Ｘj）を統計処理結果提供サーバ５０へ送信する。統計処理結果提供サ
ーバ５０は、送信されてきた結果について、総和を求める処理を行う。「ｆ（Ｘ1）＋ｆ
（Ｘ2）＋…＋ｆ（Ｘm）」の値は、（ｘ1i＋ｘ2i＋…＋ｘmi）のｉを１からＮまで合計した値と等しくなるから、オリジナルデータｘiの総和を求めたことになる。
【０１０５】
図３は、各オリジナルデータを２つに分割して、Ｎ個のオリジナルデータの２乗和を求める本システムの例を示している。図１では、ｉが１からＮまでのｘiの総和を求める処
理をｆ（Ｘi）と記述しているが、図３及び図４では、同じ総和を求める処理をｆΣ（Ｘi）と表し、ｉが１からＮまでのｘiの２乗和を求める処理をｆS（Ｘi）と記述する。
【０１０６】
また、図３では、統計処理結果提供サーバ５０が、第１のクラウドサービス設備３０−１からの２乗和ｆS（Ｘ1）と、第２のクラウドサービス設備３０−２からの２乗和ｆS（
Ｘ2）と、第３のクラウドサービス設備３０−３からの総和ｆΣ（Ｘ12）とを用いて、Ｎ
個のオリジナルデータの２乗和ｆS（Ｘ）を求める点を説明しているが、同時に、第１の
クラウドサービス設備３０−１からの総和ｆΣ（Ｘ1）と、第２のクラウドサービス設備
３０−２からの総和ｆΣ（Ｘ2）とを用いて、Ｎ個のオリジナルデータの総和ｆΣ（Ｘ）
を求めることも可能である。
【０１０７】
各々のデータ入力デバイス１０−ｉは、オリジナルデータｘiを取得すると、ランダム
シェアによる秘匿分割を行い、ｘiはｘi＝ｘ1i＋ｘ2iを満たすように分割される。統計処理の結果として２乗和を求めたい場合、各データ入力デバイス１０−ｉはさらに、ｘ1iとｘ2iを乗算した値を求めて、ｘ1i，ｘ2i，ｘ1iｘ2iの３つを、ｘiの部分データとして生
成する。図３のようにｘ1iｘ2iをも生成してアップロードすべきか、図１のようにｘ1iとｘ2iだけでよいかを、統計処理結果提供サーバ５０が各データ入力デバイス１０−ｉに指示するようにしてもよい。
【０１０８】
そして、各々のデータ入力デバイス１０−ｉは、第１のクラウドサービス設備３０−１へ部分データｘ1iをアップロードし、第２のクラウドサービス設備３０−２へ部分データｘ2iをアップロードし、第３のクラウドサービス設備３０−３へ部分データｘ1iｘ2iをアップロードする。この場合、３つのクラウドのうちの１つにおいてデータが流出しても、オリジナルデータは復元されない。
【０１０９】
各々のクラウドサービス設備３０−ｊは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第１のクラウドサービス設備３０−１にはＮ個の部分データ｛ｘ11，ｘ12，…，ｘ1N｝が保存されており、第２のクラウドサービス設備３０−２にはＮ個の部分データ｛ｘ21，ｘ22，…，ｘ2N｝が保存されており、第３のクラウドサービス設備３０−３にはＮ個の部分データ｛ｘ11ｘ21，ｘ12ｘ22，…，ｘ1Nｘ2N｝が保存されている状態になる。
【０１１０】
この時点で、第１のクラウドサービス設備３０−１は、Ｎ個の部分データｘ1iの総和と２乗和をそれぞれ計算した結果ｆΣ（Ｘ1）とｆS（Ｘ1）を統計処理結果提供サーバ５０
へ送信し、第２のクラウドサービス設備３０−２は、Ｎ個の部分データｘ2iの総和と２乗和をそれぞれ計算した結果ｆΣ（Ｘ2）とｆS（Ｘ2）を統計処理結果提供サーバ５０へ送
信し、第３のクラウドサービス設備３０−３は、Ｎ個の部分データｘ1iｘ2iの総和と２乗和をそれぞれ計算した結果ｆΣ（Ｘ12）とｆS（Ｘ12）を統計処理結果提供サーバ５０へ
送信する。
【０１１１】
統計処理結果提供サーバ５０は、送信されてきた結果の中から、ｆS（Ｘ1）とｆS（Ｘ2）とｆΣ（Ｘ12）とを選択して、ｆΣ（Ｘ12）については２倍した上で、これら全てを合計する処理を行う。「ｆS（Ｘ1）＋２ｆΣ（Ｘ12）＋ｆS（Ｘ2）」の値は、（ｘ1i＋ｘ2i）2のｉを１からＮまで合計した値と等しくなるから、オリジナルデータｘi2の総和（即
ちｘiの２乗和）を求めたことになる。
【０１１２】
図３の構成において、統計処理結果提供サーバ５０が、送信されてきた結果の中から、ｆΣ（Ｘ1）とｆΣ（Ｘ2）とを選択して、総和を求める処理を行えば、オリジナルデータｘiの総和が求められる。いずれの場合も、第３のクラウドからのｆS（Ｘ12）の結果は用いられないし、２乗和のみを求める場合、第１及び第２クラウドからのｆΣ（Ｘj）の結
果は用いられない。また、図３の構成で総和のみを求める場合、第１及び第２クラウドからのｆS（Ｘj）の結果は用いられず、第３のクラウドからのいずれの結果も用いられない
ことになる。
【０１１３】
結果が用いられない計算処理を行うことはリソースの浪費とも捉えられるが、クラウド上には豊富な計算機リソースがあることに加え、統計処理結果提供サーバ５０で行いたい統計処理の内容に関わらず、各クラウドにおける計算処理の内容を同一にすることには、以下の利点がある。
【０１１４】
図３の構成では、各クラウドサービス設備３０−ｊは、アップロードされてきたデータが、ｘiを分割した部分ｘjiであるのか、２つの部分を乗算したｘjiｘkiであるのか、さ
らにいえばオリジナルデータなのか部分データなのかさえ、関知することなく、単に、入力されたデータに対して、ｉが１からＮまでの総和及び２乗和を計算するという処理を、画一的に行う。よって、各クラウドにおいて行われる計算処理の内容から、統計処理結果提供サーバ５０で行われる統計処理の内容や、各クラウドに保存されているデータの意味等を推測されることがなく、安全性をより高めることが可能である。
【０１１５】
図３は、各オリジナルデータを２個に分割する例であるが、図４は、各オリジナルデータをｍ個（２より多い数）に分割して、Ｎ個のオリジナルデータの２乗和を求める本システムの例を示している。図４の場合、２ｍ箇所の独立した異なるクラウド上で分散して処理を行うことになる。この場合、２ｍ個のクラウドのうちの（ｍ−１）個においてデータが流出しても、オリジナルデータは復元されない。
【０１１６】
各々のデータ入力デバイス１０−ｉは、オリジナルデータｘiを取得すると、ランダム
シェアによる秘匿分割を行い、ｘi＝ｘ1i＋ｘ2i＋…＋ｘmiを満たすようにｘiを分割する。そして、まず、ｍ個の部分データｘji（ｊ＝１，２，…，ｍ）を生成する。
【０１１７】
各データ入力デバイス１０−ｉはさらに、ｘjiの値とｘji以外のｘkiを合計した値とを乗算した値をｘ’jiとして、ｍ個の部分データｘ’ji（ｊ＝１，２，…，ｍ）を生成する。例えば、ｍ＝４であれば、ｘ’1i＝ｘ1iｘ2i＋ｘ1iｘ3i＋ｘ1iｘ4iと、ｘ’2i＝ｘ2iｘ1i＋ｘ2iｘ3i＋ｘ2iｘ4iと、ｘ’3i＝ｘ3iｘ1i＋ｘ3iｘ2i＋ｘ3iｘ4iと、ｘ’4i＝ｘ4iｘ1i＋ｘ4iｘ2i＋ｘ4iｘ3iとを生成する。
【０１１８】
そして、各々のデータ入力デバイス１０−ｉは、ｍ個のクラウドサービス設備３０−ｊ（ｊ＝１，２，…，ｍ）のそれぞれへ対応する部分データｘjiをアップロードし、さらにｍ個のクラウドサービス設備３０−ｊ（ｊ＝ｍ＋１，ｍ＋２，…，ｍ＋ｍ）のそれぞれへ対応する部分データｘ’jiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備３０−ｊにもｉが１からＮまでのＮ個の部分データが保存されている状態になる。
【０１１９】
この時点で、各々のクラウドサービス設備３０−ｊは、Ｎ個の部分データ（ｊ＝１〜ｍについてはｘji、ｊ＝ｍ＋１〜２ｍについてはｘ’jiになるが、各クラウドはその相違を関知しない）の総和及び２乗和をそれぞれ計算した結果（ｊ＝１〜ｍについてはｆΣ（Ｘi）とｆS（Ｘi）、ｊ＝ｍ＋１〜２ｍについてはｆΣ（Ｘ’i）とｆS（Ｘ’i）になるが、各クラウドはその相違を関知しない）を統計処理結果提供サーバ５０へ送信する。
【０１２０】
統計処理結果提供サーバ５０は、送信されてきた結果の中から、ｊ＝１〜ｍのクラウドからの結果についてはｆS（Ｘi）を、ｊ＝ｍ＋１〜２ｍのクラウドからの結果についてはｆΣ（Ｘ’i）を選択して、これら全てを合計する処理を行う。「ｆS（Ｘ1）＋ｆS（Ｘ2
）＋…＋ｆS（Ｘm）＋ｆΣ（Ｘ’1）＋ｆΣ（Ｘ’2）＋…＋ｆΣ（Ｘ’m）」の値は、（
ｘ1i＋ｘ2i＋…＋ｘmi）2のｉを１からＮまで合計した値と等しくなるから、オリジナル
データｘi2の総和（即ちｘiの２乗和）を求めたことになる。
【０１２１】
図４の構成でも、図３と同様に、オリジナルデータｘiの総和と２乗和の両方を求める
ことができ、各クラウドから出力される結果のうち、ｊ＝１〜ｍのクラウドからのｆΣ（Ｘi）が総和に利用され、ｊ＝１〜ｍのクラウドからのｆS（Ｘi）とｊ＝ｍ＋１〜２ｍの
クラウドからのｆΣ（Ｘ’i）とが２乗和に利用されることになる。
【０１２２】
上述したように総和と２乗和が得られると、以下に例示するように、基本的な統計解析手法への幅広い応用が可能になる。
【０１２３】
標本平均ｍは、ｍ＝σ／Ｎ＝ｆΣ（Ｘ）／Ｎにより求めることができ、最尤推定は、母集団が正規分布に従うとき、母集団に最尤平均値＝ｍとして行うことができる。
【０１２４】
標本分散ｓ2は、ｓ2＝（Ｓ−σ2）／Ｎ＝（ｆS（Ｘ）−｛ｆΣ（Ｘ）｝2）／Ｎにより
求めることができ、標準偏差ｓは、標本分散ｓ2の正の平方根として求めることができる
。
【０１２５】
Ｔ分布を用いた区間推定は、Ｔ＝（ｍ−μ）／（ｓ／Ｎ1/2） が自由度（Ｎ−１）のｔ分布に従うことから、例えば、母平均μの信頼度９５％の信頼区間を、
ｍ−1.96×ｓ／Ｎ1/2≦μ≦ｍ＋1.96×ｓ／Ｎ1/2
と推定することができる。以上により、母集団の平均を推定することが可能になる。
【０１２６】
母比率の信頼区間の推定は、標本比率ｒ（例えば、Ｎ人のうちｒ人がＹＥＳと答えた)
が、ｒ＝ｆΣ（Ｘ）により求められると、母比率Ｒの９５％信頼区間を、
ｒ−1.96×（ｒ（１−ｒ）／Ｎ）1/2≦Ｒ≦ｒ＋1.96×（ｒ（１−ｒ）／Ｎ）1/2
と推定することができる。これは、ＹＥＳ／ＮＯや選択式（又は機械のｏｎ／ｏｆｆ）の統計データに応用することができる。
【０１２７】
母分散の推定は、母集団は分散σ2の正規分布で、Ｎ個の標本の不偏分散をｓ2とすると、Ｚ＝（Ｎ−１）×ｓ2／σ2が自由度（Ｎ−１）のχ2分布に従うことから、母分散σ2につき、同分布の下側９５％点ｋ1、上側９５％点ｋ2との関係が、
（Ｎ−１）×ｓ2／ｋ2≦σ2≦（Ｎ−１）×ｓ2／ｋ1
となることが推定することができる。これにより、母集団のばらつきを推定することが可能になる。
【０１２８】
母平均の検定（ｔ検定）は、Ｔ＝（ｍ−μ）／（ｓ／Ｎ1/2） が自由度（Ｎ−１）のｔ分布に従うことを応用して、行うことができる。また、母集団Ａ，Ｂに関する母平均の差の検定は、Ｔ＝（ｍA−ｍB）／（Ｚ11/2×Ｚ21/2）が自由度（ＮA＋ＮB−２）のｔ分布 
に従うことを応用して、行うことができる。但し、
Ｚ1＝１／ＮA＋１／ＮB
Ｚ2＝（（ＮA−１）×ｓA2＋（ＮB−１）×ｓB2)／（ＮA＋ＮB−２）
である。これにより、母集団の平均を検定することが可能になる。
【０１２９】
母比率の検定（χ2検定）は、χ2＝（Ｎ−１）×ｓ2／σ2 は自由度（Ｎ−１）のχ2分布に従うことを応用して、行うことができる。また、母集団Ａ，Ｂの母分散の比較検定（Ｆ検定）は、Ｆ＝（ｓA2／σA2)／（ｓB2／σB2)が自由度ｋA，ｋBのＦ分布に従うことから、母分散が同じであると仮定すると、Ｆ＝ｓA2／ｓB2が自由度ＮA−１，ＮB−１のＦ分布に従うことを応用して、行うことができる。これにより、母集団のばらつきを検定することが可能になる。
【０１３０】
一次元配置の分散分析は、例えば、施策１，２，…，ｋに効果の差があるかどうかを検
討するために行うことができ、全体平均ｍ＝ΣiΣjｘij／Ｎ（但し、Ｎ＝ΣiＮi)、グル
ープ平均ｍi＝Σjｘij／Ｎi、グループ間変動Ｑ1＝Σi（ｍi−ｍ）2、グループ内変動Ｑ2＝ΣiΣj（ｘij−ｍi）2 であるとき、Ｆ＝Ｑ1／Ｑ2は自由度（ｋ−１），ｋ×（Ｎ−１
）のＦ分布に従うことを応用して、行うことができる。これは、例えば、施策、投薬、改修、改善、キャンペーン、広告等の取り組みの効果を確認する際に有効である。
【０１３１】
二次元配置の分散分析は、上述した一次元配置の分散分析の簡単な拡張から、繰り返し有りと繰り返し無しの両方のケースについて、行うことができる。これは、複数の取り組みの組合せによる効果を確認する際に有効である。
【０１３２】
以上、一つの要素に対する統計解析について説明したが、本システムは、複数の要素に対する統計解析にも、適用可能である。例えば、２つの要素への応用として、内積、共分散、相関係数、さらには、回帰方程式、決定係数等を求めることも可能である。
【０１３３】
図５は、２つの要素の各オリジナルデータｘi，ｙiをそれぞれ２つに分割して、Ｎ対のオリジナルデータの内積を求める本システムの例を示している。図５は、各オリジナルデータを２個に分割する例であるが、各オリジナルデータをｍ個（２より多い数）に分割して、ｍ2個の独立した異なるクラウド上で分散して処理を行うことにより、Ｎ対のオリジ
ナルデータの内積を求めることも、勿論可能である。
【０１３４】
第１の要素に属するオリジナルデータｘiを取得する各々のデータ入力デバイス１０−
ｉは、取得したオリジナルデータｘiに対してランダムシェアによる秘匿分割を行い、ｘiはｘi＝ｘ1i＋ｘ2iを満たすように分割される。第２の要素に属するオリジナルデータｙiを取得する各々のデータ入力デバイス２０−ｉは、取得したオリジナルデータｙiに対し
てランダムシェアによる秘匿分割を行い、ｙiはｙi＝ｙ1i＋ｙ2iを満たすように分割される。
【０１３５】
そして、各々のデータ入力デバイス１０−ｉは、第１及び第２のクラウドサービス設備３０−１，２へ部分データｘ1iをアップロードし、第３及び第４のクラウドサービス設備３０−３，４へ部分データｘ2iをアップロードし、各々のデータ入力デバイス２０−ｉは、第１及び第３のクラウドサービス設備３０−１，３へ部分データｙ1iをアップロードし、第２及び第４のクラウドサービス設備３０−２，４へ部分データｙ2iをアップロードする。
【０１３６】
各々のクラウドサービス設備３０−ｊは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第１のクラウドサービス設備３０−１には第１の要素のＮ個の部分データ｛ｘ11，ｘ12，…，ｘ1N｝及び第２の要素のＮ個の部分データ｛ｙ11，ｙ12，…，ｙ1N｝が保存されており、第２のクラウドサービス設備３０−２には第１の要素のＮ個の部分データ｛ｘ11，ｘ12，…，ｘ1N｝及び第２の要素のＮ個の部分データ｛ｙ21，ｙ22，…，ｙ2N｝が保存されており、第３のクラウドサービス設備３０−３には第１の要素のＮ個の部分データ｛ｘ21，ｘ22，…，ｘ2N｝及び第２の要素のＮ個の部分データ｛ｙ11，ｙ12，…，ｙ1N｝が保存されており、第４のクラウドサービス設備３０−３には第１の要素のＮ個の部分データ｛ｘ21，ｘ22，…，ｘ2N｝及び第２の要素のＮ個の部分データ｛ｙ21，ｙ22，…，ｙ2N｝が保存されている状態になる。
【０１３７】
この時点で、第１のクラウドサービス設備３０−１は、Ｎ対の部分データｘ1iとｙ1iの内積を計算した結果ｆP（Ｘ1，Ｙ1）を統計処理結果提供サーバ５０へ送信し、第２のク
ラウドサービス設備３０−２は、Ｎ対の部分データｘ1iとｙ2iの内積を計算した結果ｆP
（Ｘ1，Ｙ2）を統計処理結果提供サーバ５０へ送信し、第３のクラウドサービス設備３０
−３は、Ｎ対の部分データｘ2iとｙ1iの内積を計算した結果ｆP（Ｘ2，Ｙ1）を統計処理
結果提供サーバ５０へ送信し、第４のクラウドサービス設備３０−４は、Ｎ対の部分データｘ2iとｙ2iの内積を計算した結果ｆP（Ｘ2，Ｙ2）を統計処理結果提供サーバ５０へ送
信する。
【０１３８】
統計処理結果提供サーバ５０は、送信されてきた結果の全てを合計する処理を行う。「ｆP（Ｘ1，Ｙ1）＋ｆP（Ｘ1，Ｙ2）＋ｆP（Ｘ2，Ｙ1）＋ｆP（Ｘ2，Ｙ2）」の値は、（ｘ1i＋ｘ2i）と（ｙ1i＋ｙ2i）を乗算した値をｉが１のものからＮのものまで合計した値と等しくなるから、オリジナルデータｘiとｙiの内積を求めたことになる。
【０１３９】
上述したように内積、さらに必要に応じて総和及び２乗和が得られると、以下に例示するように、様々な統計解析手法への幅広い応用が可能になる。
【０１４０】
共分散ＣｏｖXYは、ｍX，ｍYをそれぞれＸ，Ｙの標本平均として、
ＣｏｖXY＝１／Ｎ×Σ（ｘi−ｍX）（ｙi−ｍY）
であり、ｍX＝ｆΣ（Ｘ）／Ｎ，ｍY＝ｆΣ（Ｙ）／Ｎであるから、
ＣｏｖXY＝（ｆP（Ｘ，Ｙ）−ｆΣ（Ｘ）ｆΣ（Ｙ））／Ｎ
として求められる。
【０１４１】
相関係数ＣＣXYは、ｓX，ｓYをそれぞれＸ，Ｙの標本偏差として、
ＣＣXY＝ＣｏｖXY／ｓXｓY
として求められる。ここで、ｓX＝［（ｆS（Ｘ）−｛ｆΣ（Ｘ）｝2）／Ｎ］1/2，ｓY＝
［（ｆS（Ｙ）−｛ｆΣ（Ｙ）｝2）／Ｎ］1/2である。
【０１４２】
そして、上述したように、平均ｍX，ｍY、分散ｓX2，ｓY2、共分散ＣｏｖXYが求められれば、回帰分析における１次式の係数を求める公式への応用が可能であり、変動、残差平方和、決定係数も計算可能である。
【０１４３】
図６は、図１〜５を参照して説明した本システムが採り得る構成の一例を示している。データ入力デバイス１０−１〜１０−Ｎ（図示しないが、内積を求める場合の２０−１〜２０−Ｎも、同様の構成を有する）と、クラウドサービス設備３０−１〜３０−Ｍと、統計処理結果提供サーバ５０とが、ネットワーク４０（例えば、インターネット）を介して接続されている。
【０１４４】
なお、各データ入力デバイス１０と各クラウドサービス設備３０との間、各クラウドサービス設備３０と統計処理結果提供サーバ５０との間、統計処理結果提供サーバ５０と各データ入力デバイス１０との間に、それぞれ別個の通信網（例えば、無線網と有線網等）がある構成としてもよい。
【０１４５】
それぞれの間の通信の安全性に関しては、現存する十分な安全性を持った通信の暗号化を行う。特に、各データ入力デバイス１０と各クラウドサービス設備３０との間は、個々の通信は、分割されたデータしか含んでいないが、あるデータ入力デバイスからｍ個のクラウドサービス設備への通信の全てを傍受すれば、オリジナルデータが復元できてしまうことから、例えば、オンラインショッピングや電子決済、商取引、ネットバンキング等などで利用されているのと同程度の安全性を持った暗号化技術を用いることが好ましい。
【０１４６】
図６に示すとおり、各データ入力デバイス１０は、データ取得部１１０と、取得したオリジナルデータを秘匿分割する秘匿分割部１２０と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備３０へアップロードするアップロード部１３０を備える。データ取得部１１０は、機器が自動的にオリジナルデータを生成するも
のでもよいし、人間がオリジナルデータを入力するのでもよいし、別のデータベース等からオリジナルデータを抽出するのでもよい。
【０１４７】
各データ入力デバイス１０の備える制御部１４０は、統計処理結果提供サーバ５０中の管理部（管理サーバ）５００からの指示に従って、秘匿分割部１２０におけるデータの分割数や生成すべき部分データの種類を制御する。制御部１４０はまた、管理サーバ５００からの指示に従って、アップロード部１３０における各部分データのアップロード先を制御する。
【０１４８】
但し、アップロード先となるクラウドサービス設備が予め決まっている場合は、統計処理結果提供サーバ５０と通信することなく、制御部１４０の内部に埋め込まれている制御情報に従って、これらの制御を行えばよい。
【０１４９】
各クラウドサービス設備３０は、各データ入力デバイス１０からアップロードされたデータを保存するデータ保存部３１０と、保存された多数の部分データについて総和（３２２）、２乗和（３２４）、内積（３２６）等の演算処理を行う計算部３２０を備える。いずれの演算処理も、データ入力デバイスの数Ｎに対して計算量Ｏ（Ｎ）で演算が可能であり、億や兆のような単位の大きな数のＮに対しても、実用的なレベルでシステムをスケール（拡張）することができる。
【０１５０】
なお、計算部３２０は、本システムの用途に応じて必要な演算処理だけを備えれば十分であり、例えば、内積を求める用途には使わないことが予め決まっている場合は、内積演算部は備えなくてよい。あるいは、用途の拡大に備えて、計算部３２０に、種々の演算部を構成可能にしておき、管理サーバ５００からの指示に従って、統計処理毎に用いる演算部を選択するようにしてもよい。
【０１５１】
各クラウドサービス設備３０の備える制御部３３０は、統計処理結果提供サーバ５０中の管理部（管理サーバ）５００からの指示に従って、計算部３２０が所定の演算処理を行うタイミングと、その演算処理の対象としてデータ保存部３１０から読み出すべきデータとを特定する。
【０１５２】
各データ入力デバイス１０は、例えば、コンピューティング機能を有する機器に本方式のためのプログラムをインストールすることにより、構成される。その機器は、汎用のコンピュータでも、プログラムが予め組み込まれて製造される専用の機器でもよい。秘匿分割前にオリジナルデータを一時記憶している部分や、秘匿分割のための秘密の比率を使用する部分等については、特に、ハードウェア又はソフトウェア上のセキュリティを高めたモジュール内に設けるようにしてもよい。
【０１５３】
各データ入力デバイス１０が、専用の機器で、記憶容量が少ない場合等には、機器内に埋め込んでおく初期情報を最小限にするため、統計処理を司るマネージャ（管理サーバ５００）のアドレス（ＵＲＬもしくはＩＰアドレス等）と、マネージャとの通信を暗号化するための鍵（公開鍵方式又は共通鍵方式）とを初期情報とし、各クラウド３０のアドレス等は、マネージャを利用して取得するようにしてもよい。
【０１５４】
各クラウドサービス設備３０は、一般に提供されているクラウドサービスの設備を利用して、実現することができる。
【０１５５】
統計処理結果提供サーバ５０は、例えば、汎用のサーバに本方式のためのプログラムをインストールすることにより、構成可能であり、統計処理結果提供サービス自体を、クラウド上の計算サービスとして実現してもよい。
【０１５６】
図７は、統計処理結果提供サーバ５０の内部構成の一例を示している。統計処理結果提供サーバ５０は、統計処理部５７０とともに、各データ入力デバイス１０や各クラウドサービス設備３０を制御する機能を備える管理部（管理サーバ）５００と、その統計処理の結果を利用者へ提供するための結果提供インタフェース５９０を備える。
【０１５７】
統計処理結果提供サーバ５０が、独立の複数の利用者に対して結果を提供するために、独立の複数の統計処理を行うことを可能とする場合、各々の統計処理について、管理サーバ５００の機能が設けられることになり、その各々をマネージャと呼ぶ。例えば、各マネージャに異なるＵＲＬを割り当てる等により、マネージャの識別が可能である。
【０１５８】
図６及び後述する図７における各部の機能は、ハードウェア又はソフトウェア、もしくはハードウェアとソフトウェアの組み合わせにより、実現することができる。複数の統計処理が並存する場合、着目する統計処理ｌを司るマネージャ５０−ｌが、管理サーバ５００として機能する。
【０１５９】
図８〜１５は、本システムにおける処理手順の一例を説明するためのものである。本例の手順を実現する管理サーバ５００が、例えば、図７に示す各部を備えるものとなる。
【０１６０】
本例の手順を開始する前に、統計処理結果提供サービス事業者は、その統計処理のために用いるクラウドの個数と、各クラウドに必要な計算リソース（台数、ＣＰＵ、メモリ等）を見積もり、本システムの設計を行う。そして、独立なクラウドサービス事業者を必要な個数選択して、クラウドリソースを契約する。その後、以下の手順を行い、必要な統計処理結果を得たら、情報漏洩のリスクを確実になくすため、データを初期化（完全削除）して、クラウドリソースを解約する。
【０１６１】
図８は、マネージャの通知部５１０と各データ入力デバイス１０との間で行われる準備段階の手順を示す。各データ入力デバイスは、予め決められたマネージャに問い合わせ［１］、マネージャは、Ｍ個の利用可能なクラウド群の中から、図１の例では２つのクラウドを選択して［２］、その情報を各データ入力デバイスへ通知する［３］。マネージャは、図３〜５の例ではどのクラウドにどの種類のデータをアップロードするかを示す情報も、各データ入力デバイスへ通知する［３］。また、マネージャは、処理対象データ利用クラウド登録部５２０において、各々のオリジナルデータのＩＤ（１デバイス１データの場合、データ入力デバイスのＩＤでもよい）に対応させて、データ入力デバイスへ通知した内容を記憶する［２］。
【０１６２】
図９は、各データ入力デバイス１０が、マネージャから通知された内容に従って、秘匿分割［４］により得られた各部分データを各クラウドサービス設備へアップロードする［５］［６］手順を示す。各データ入力デバイス１０は、部分データに加えて、マネージャのアドレス等の識別情報と、データのＩＤも、アップロードする。なお、［５］と［６］は、同時に行っても、時間差を設けて行ってもよく、また、各データ入力デバイス１０における［４］〜［６］の実行タイミングは、独立でよい。つまり、データ入力デバイス間で同期を取る必要はなく、各々のデータ入力デバイス１０でオリジナルデータ取得されたタイミングで、［４］〜［６］が実行される。
【０１６３】
図１０は、各クラウドサービス設備３０が、それぞれのタイミングで、マネージャのアップロード状態把握部５３０へ、アップロードされたデータのＩＤを通知する［８］［９］手順を示す。これらの通知を受けたマネージャは、処理対象データ利用クラウド登録部５２０において各データＩＤに対応させて登録されている複数のクラウドのうち、通知されたクラウドにアップロード済みのマークを付す等により、状態一時記憶部５３０に、登
録された複数のクラウドの一部から通知を受けた状態になったデータＩＤについて、その状態を記憶する［９］。これにより、マネージャは、部分データ自体を受信することなく、どのデータの部分データがどのクラウドに保存されたかを管理することが可能になる。
【０１６４】
図１１は、マネージャの計算対象データ特定部５５０が、各クラウドサービス設備３０との間で、全てのクラウドに部分データが受信されているデータＩＤを共有するための手順を示す。マネージャは、状態一時記憶部５３０に記憶されているデータＩＤが、登録されている全てのクラウドから通知を受けている状態になると、そうなったデータＩＤ又はデータＩＤ群に対応するシーケンス番号を払い出し、シーケンス情報登録部５６０に、払い出したシーケンス番号とそのＩＤ又はＩＤ群とを登録する［１０］。そして、登録されたＩＤ又はＩＤ群の記憶を状態一時記憶部５３０から消去する［１０］。
【０１６５】
マネージャの計算対象データ特定部５５０は、その後、所定のタイミングで、シーケンス番号と対応するＩＤ又はＩＤ群とを、各クラウドサービス設備３０に通知する［１１］。この通知は、シーケンス番号が払い出される毎に行ってもよいし、幾つかのシーケンス番号の情報をまとめて通知するようにしてもよい。各クラウドサービス設備３０は、自身が保存しているアップロードされた部分データのＩＤと、通知されたシーケンス番号との対応を記憶する［１２］。
【０１６６】
図９に示すように、例えば、ＩＤ＝３の部分データが、クラウドＢには届いているが、クラウドＡには届いていない場合、図１０に示す管理により、図１１で、クラウドＡ及びＢの全てに部分データが届いているＩＤ＝１，２だけが、シーケンス番号＝１に対応することが通知される。
【０１６７】
図１２は、図９の続きであり、ＩＤ＝４の各部分データと、ＩＤ＝５の各部分データが、各データ入力デバイス１０での秘匿分割により生成され［１３］、各クラウドサービス設備へアップロードされている［１４］［１５］。
【０１６８】
図１３は、図１２のアップロードを受けた各クラウドが、図１０で説明したように、マネージャへの通知を行い［１６］［１７］、マネージャが状態を記憶する［１８］様子を示している。
【０１６９】
図１４は、図１３の通知を受けたマネージャが、図１１で説明したシーケンス番号を払い出した後に、登録されている全てのクラウドから通知を受けている状態になったデータＩＤ又はデータＩＤ群に対応して、新たなシーケンス番号を払い出し［１９］、各クラウドへ通知して［２０］、対応を記憶させる［２１］様子を示している。
【０１７０】
例えば、ＩＤ＝３の部分データがクラウドＢに届かないまま、クラウドＡ及びＢの全てにＩＤ＝４，５の部分データが届いたとすると、マネージャは、ＩＤ＝４，５を、新たなシーケンス番号＝２に対応させて、登録する。
【０１７１】
ここで、過去に遡って統計処理をする用途がないものであれば、マネージャは、シーケンス番号＝１に対応して登録されているＩＤ＝１，２を、シーケンス番号＝２に対応するものとして追加し、シーケンス番号＝１についての登録を削除してしまっても構わない。また、各クラウドは、マネージャから通知されたとおり、ＩＤ＝１，２はシーケンス番号＝１に対応し、ＩＤ＝４，５はシーケンス番号＝２に対応するものとして記憶して、後にシーケンス番号＝２が指定された場合に、指定されたシーケンス番号及びそれより小さいシーケンス番号に対応するＩＤ群のデータが指定されたと解釈してもよいし、その解釈を示すようにシーケンス番号を書き換えて記憶してもよい。
【０１７２】
図１５は、マネージャが統計処理の結果を求める段階の手順を示す。マネージャの統計処理部５７０における計算依頼部５７５が、部分データを保存する全てのクラウドに対して、現在の（過去に遡って統計処理をする場合には指定した時点の）シーケンス番号を引数として、計算処理をするよう依頼する［２２］。このとき、マネージャから各クラウドへ渡される情報は、シーケンス番号のみとすることができる。図３又は図４の例では、各クラウドで行われる処理は、総和及び２乗和の計算である。
【０１７３】
依頼を受けた各クラウドサービス設備３０では、既に、指定されたシーケンス番号にどのＩＤ群が対応するかが記憶されているため、これらのＩＤ群の部分データにつき計算処理を行って、その結果の値をマネージャへ返送する［２３］。
【０１７４】
マネージャの統計処理部５７０における集計部５７７は、依頼した全てのクラウドから結果が返送されると、それらの値を合計等して、求める統計値を算出する［２４］。図３のように、一部のクラウドからの値については２倍する等、どのクラウドからの結果かによってマネージャにおいて行う処理が異なる場合は、処理対象データ利用クラウド登録部５２０に記憶されているクラウドとアップロードされるデータの種類との対応を示す情報を参照する。
【０１７５】
上述したように、マネージャが管理するシーケンス番号を利用することで、全てのクラウドに部分データが揃ったデータ（上記の例では、ＩＤ＝１，２，４，５）を対象にして、統計処理の結果を求めることができ、データの整合性が保証される。
【０１７６】
なお、シーケンス番号を利用して、マネージャが、各クラウドに対して、計算処理の対象としてよいデータＩＤの情報を頻繁に共有することにより、通信の負荷を分散させるとともに、統計処理のために計算を依頼する際のレスポンスを速くすることが可能になる。
【０１７７】
すなわち、データＩＤの情報共有をせず（計算対象データ特定部５５０を備えず）に、マネージャが、各クラウドに計算処理を依頼する際に、対象とすべき（全てのクラウドに部分データが揃っている）データＩＤの全てを通知する（上記の例では、シーケンス番号＝２の代わりに、ＩＤ＝１，２，４，５という情報を通知する）構成でも、本システムを実現することができるが、膨大な数のデータに対して統計処理を行う場合、シーケンス番号を利用した情報共有をしておく方が望ましい。
【０１７８】
本システムにおいては、マネージャと、他の装置との間のＡＰＩ（インタフェース）は、オリジナルデータは勿論、オリジナルデータを構成する個々の部分データも、一切、受け渡しされることがないように構成される。また、オリジナルデータを取り扱う各データ入力デバイスと、他の装置との間のＡＰＩは、データ入力デバイスからのアクセスのみが行われ（図８の［１］、図９の［５］［６］等）、データ入力デバイスが外部からアクセスされることがないように構成される。そして、オリジナルデータは存在せず秘匿化されているものの、部分データは保持する各クラウドと、他の装置との間のＡＰＩは、クラウドから部分データを取り出すことがないように構成される。これらのＡＰＩによっても、秘匿すべきデータの安全性が保たれる。
【０１７９】
上記のＡＰＩに加えて、マネージャの統計処理部５７０を、あるシーケンス番号に対応するデータ群についての処理をした後、一定量（例えば、１万等、個々のデータについての推測を事実上不可能にするくらいの大量）以上のデータＩＤが処理対象として追加されるまでは、次の計算依頼を各クラウドへ送信しない構成とすると、さらに安全である。これは、マネージャが、例えば、シーケンス番号＝２（ＩＤ＝１，２，４，５）の総和を求めた後に、シーケンス番号＝３（ＩＤ＝１，２，４，５，７）の総和を求めると、引き算することにより、追加された個別要素であるＩＤ＝７のオリジナルデータが求められてし
まうためである。
【０１８０】
図６〜１５で説明した本システムの構成例においては、各データ入力デバイスの生成した各部分データがそれぞれどのクラウドサービス設備に保存されるかという情報を、統計処理結果提供サーバ（マネージャ）が管理しているため、悪意を持った攻撃者に同サーバがクラックされると、各データの所有者や保存場所等のヒントを攻撃者に与える可能性がある。
【０１８１】
そのような可能性までをも低減するためには、各データ入力デバイスと統計処理結果提供サーバが通信することがなく、各データ入力デバイス自身が各部分データを保存するクラウドサービス設備（アップロード先）を決定できるようにして、統計処理結果提供サーバは各データ入力デバイスを特定する情報を取り扱わないようにするとよい。
【０１８２】
具体例としては、各データ入力デバイスが、コンシステントハッシュ（例えば、D.Karger et al. "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web," Proceedings of the 29th Annual ACM
Symposium of Theory of Computing, pp.654-663 (1997)、I.Stoica et al. "Chord: A scalable peer-to-peer lookup service for internet applications," ACM SIGCOMM Computer Communication Review 31(4), p.149 (2001)等を参照）の仕組みを利用して、データの保存先となるクラウドサービス設備を決定することができる。
【０１８３】
図１６は、そのように構成した本システムの例であり、図６及び図７の例と同一の符号を付したブロックは、図６及び図７に関して説明したのと同一の機能を有する。
【０１８４】
図１６では、データ入力デバイス１５−１〜１５−Ｎと、クラウドサービス設備３５−１〜３５−Ｍと、統計処理結果提供サーバ５５が、ネットワーク４０を介して接続されているが、各データ入力デバイス１５と統計処理結果提供サーバ５５との間では、通信が行われない。
【０１８５】
各データ入力デバイス１５は、データ取得部１１０と、秘匿分割部１２０と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備３５へアップロードするアップロード部１３０に加えて、コンシステントハッシュによりアップロード先を決定するためのキー生成部１６０及びハッシュ計算部１７０を備える。
【０１８６】
各データ入力デバイス１５の備える制御部１５０は、秘匿分割部１２０におけるデータの分割数や生成すべき部分データの種類を制御することに加えて、キー生成部１６０に、秘匿分割されたデータ毎に一意となるキー（例えば、ＵＵＩＤ（ユニバーサリーユニーク識別子）、ＩＰｖ６（インターネットプロトコルバージョン６）アドレス等）を生成させ、ハッシュ計算部１７０に、生成されたキーと、時刻と、シーケンス番号との合計を求めさせ、その合計値から、ハッシュ値を算出させることを行う。
【０１８７】
例えば、各クラウドサービス設備３５に、予め所定の範囲を持った値群（range）を割
り当てておくことにより、算出されたハッシュ値がそのrangeに含まれるクラウドサービ
ス設備を、データのアップロード先として特定することができる。この仕組みにより、制御部１５０が、部分データ毎に算出されたハッシュ値に従って、アップロード部１３０における各部分データのアップロード先を指定することで、各データ入力デバイスは、統計処理結果提供サーバ（マネージャ）に対して、アップロード先となるクラウドを問い合わせる必要がなくなる。
【０１８８】
各クラウドサービス設備３５の備える制御部３３５は、統計処理結果提供サーバ５５中
の管理部（管理サーバ）５０５からの指示に従って、計算部３２０が所定の演算処理を行うタイミングを特定する。その演算処理の対象としてデータ保存部３１０から読み出すべきデータは、制御部３３５自身が特定する。
【０１８９】
統計処理結果提供サーバ５５は、管理サーバ５０５と、結果提供インタフェース５９０とを備える。管理サーバ５０５は、統計処理部５７２を備え、各クラウドサービス設備３５へ計算処理を依頼し（計算依頼部５７６）、各依頼に対して返却される計算結果を集計して（集計部５７８）、統計処理の結果を求める。
【０１９０】
図１６における統計処理結果提供サーバ５５（管理サーバ５０５）は、図７の統計処理結果提供サーバ５０（管理サーバ５００）と異なり、アップロード先のクラウドを各データ入力デバイスに通知するための機能や、アップロード状態を把握したり計算対象となるデータを特定したりするための機能を備えない。よって、統計処理結果提供サーバ５５（マネージャ）は、個々のデータに関連するヒントを一切持たない。
【０１９１】
また、マネージャは、自身の行う統計処理について、どのクラウドが利用され得るか（上述したrangeが割り当てられていると各データ入力デバイスが認識しているクラウドが
どれか）は把握しており、統計処理を行う際には、利用され得る全てのクラウドに対して総和および２乗和の計算を依頼するが、各クラウドにおける計算がどのデータ入力デバイスからのデータを対象として行われたものかは把握できないため、マネージャに対しても、データのセキュリティを担保することが可能となる。
【０１９２】
さらに、コンシステントハッシュを利用することで、クラウドの数が増えてもスケーラビリティを担保することが可能であり、分散処理に強いシステムを実現することができるという利点もある。
【０１９３】
図１７〜１９は、図１６の構成例において、各データ入力デバイスＸiが、取得したデ
ータＡiを、２つの部分データａi及びｂiに秘匿分割して、複数（本例では４つだが、多
数とすることが可能）のクラウドから任意に選択した２つのクラウドにアップロードし、統計処理を行うための処理手順の一例を示している。
【０１９４】
図１７は、各データ入力デバイス１５の内部で行われる準備段階の手順を示す。各データ入力デバイスは、２つの部分データのアップロード先のクラウドを決定するために、ＵＵＩＤを利用して、２つのキー（ｋ1及びｋ2）を生成する［１］。そして、それぞれのキー（ｋ1及びｋ2）に対して、時刻（ｔｉｍｅ）と、シーケンス番号ｎ（１及び２）とを足し、それぞれの合計値のハッシュ値（ｈ1及びｈ2）を算出する。
【０１９５】
ここで、各クラウドには、0000〜ffffまでの値が割り振られており、リング（環）が形成されている。例えば、クラウドが４つの場合、クラウドＡには0000〜3fffまでの範囲の値群を、クラウドＢには4000〜7fffまでの範囲の値群を、クラウドＣには8000〜bfffまでの範囲の値群を、クラウドＤにはc000〜ffffまでの範囲の値群を割り当てることができる。本例では、割り当てる範囲を等分割しているが、あるクラウドに割り当てる値群の範囲を、別のクラウドに割り当てる値群の範囲よりも大きくしてもよい。そして、算出されたハッシュ値（ｈ1及びｈ2）が、割り当てられた値群の中に含まれるクラウドを、それぞれ対応する部分データ（ａi及びｂi）のアップロード先として決定する［２］。
【０１９６】
図１８は、各データ入力デバイス１５が、秘匿分割［３］により得られた各部分データ（ａi及びｂi）を、各クラウドサービス設備３５へアップロードする［４］［５］手順を示す。各データ入力デバイス１５は、部分データのみをアップロードするのでもよいし、部分データに加えてマネージャのアドレス等（統計処理の識別情報となるもの）をアップ
ロードしてもよい。
【０１９７】
また、［４］と［５］は、同時に行っても、時間差を設けて行ってもよいところ、一つのデータから秘匿分割で得られた全ての部分データが各クラウドに保存されるまでのタイムラグの間に、当該データを対象とする統計処理が行われてしまうと、結果に誤りが生じる。これを防ぐために、所定時間以上前の時刻が付されたデータに計算対象を限定する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。但し、図１６の構成例では、データのＩＤは、アップロードされない。
【０１９８】
［４］と［５］の具体的な処理は、次のようになる。各データ入力デバイスＸiは、そ
れぞれのタイミングで、［２］のｎ＝１で生成したハッシュ値ｈ1に相当するクラウドに
対して、［３］の部分データａi（及び必要に応じて時刻）を送信する。図１８の例では
、データ入力デバイスＸ1はクラウドＢに対して、データ入力デバイスＸ2はクラウドＡに対して、データ入力デバイスＸ3はクラウドＡに対して、部分データａiを送信している。
【０１９９】
上述した部分データａiのアップロード先での保存が、キーバリューストアによって行
われる場合、部分データａiは、対応するハッシュ値ｈ1と共に送信される。そうすると、各クラウドは、ハッシュ値ｈ1をキーとし、部分データａi（及び必要に応じて時刻）をバリューとして、データ保存部３１０への保存を行い、データ入力デバイスＸiへ受領確認
通知を行う［４］。
【０２００】
同様に、各データ入力デバイスＸiは、それぞれのタイミングで、［２］のｎ＝２で生
成したハッシュ値ｈ2に相当するクラウドに対して、［３］の部分データｂi（及び必要に応じて時刻）を送信する。図１８の例では、データ入力デバイスＸ1はクラウドＣに対し
て、データ入力デバイスＸ2はクラウドＣに対して、データ入力デバイスＸ3はクラウドＤに対して、部分データｂiを送信している。
【０２０１】
部分データｂiは、対応するハッシュ値ｈ2と共に送信され、各クラウドにおいて、ハッシュ値ｈ2をキーとし、部分データｂi（及び必要に応じて時刻）をバリューとして、データ保存部３１０への保存が行われる。そして、データ入力デバイスＸiへ受領確認通知が
返される［５］。
【０２０２】
図１９は、統計処理結果提供サーバ（マネージャ）５５が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず（各データ入力デバイスが任意にアップロード先を選択するため、一部のクラウドがどのデータ入力デバイスからも選択されていないという状態も生じ得るが、マネージャではその状態を把握せずに）、計算処理（例えば、総和及び２乗和の計算）をするよう依頼する［６］。
【０２０３】
依頼を受けた各クラウドサービス設備３５では、データ保存部３１０に保存されている部分データを対象として計算処理を行い、その結果の値をマネージャへ返送する［７］。このとき、上述したタイムラグを考慮して、データ保存部３１０に保存されているデータのうち、現在時刻から所定時間以上前となる時刻が付されたものだけを、計算処理の対象とするようにしてもよい。また、一度統計処理の対象となった部分データを再び対象としないよう、計算処理をした部分データをデータ保存部３１０から削除するか、計算処理の対象を未処理の部分データに限定するようにしてもよい。
【０２０４】
マネージャは、依頼した全てのクラウドから結果が返送される（対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される）と、それら
の値を合計等して、求める統計値を算出する［８］。
【０２０５】
以上の構成により、少なくとも図１及び図２の例の総和を求めることが可能である。図３及び図４の例の２乗和を求めるためには、図１７に例示したクラウドのリングを少なくとも２つ設けておき、ｍ個の部分データｘjiについては、第１のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードし、ｍ個の部分データｘ’jiについては、第２のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードする。
【０２０６】
そして、マネージャ５５は、各クラウドが第１のリングと第２のリングのいずれに属しているのかは把握しており、第１のリングに属するクラウドからの結果についてはｆs（
Ｘi）即ち総和を選択し、第２のリングに属するクラウドからの結果についてはｆΣ（Ｘ
’i）即ち２乗和を選択して、これらを合計する処理を行う。これにより、オリジナルデ
ータｘiの２乗和を求めることができる。また、第１のリングに属するクラウドからの結
果のうちのｆs（Ｘi）を選択して、これらを合計する処理を行えば、オリジナルデータｘiの総和が求められる。
【０２０７】
図１６〜１９で説明した構成例において、一つのデータを秘匿分割して得られた複数の部分データのうち、一部はクラウドに保存されているが、残りが保存されていない状態である場合に、そのような状態のデータを確実に除いて、統計処理の結果を求めることができるように、マーカーという仕組みを導入してもよい。
【０２０８】
具体的には、各データ入力デバイスが、秘匿分割により得られた各部分データ用のハッシュ値に加えて、マーカー用のハッシュ値を算出し、一つのデータを構成する全ての部分データがクラウド上に保存されたことを確認した後で、クラウド上にマーカーを設定する。このマーカーを指し示す情報を、各データ入力デバイスが各部分データをクラウドに保存する際に、部分データと一緒に保存しておく。
【０２０９】
これにより、統計処理結果提供サーバが計算処理をクラウドに依頼した際に、クラウドは、保存された部分データに紐づくマーカーが、設定されている場合、すなわち、そのデータを構成する全ての部分データが、それぞれいずれかのクラウドに保存済みである場合にのみ、データを計算の対象に含めることができ、データ入力デバイスからクラウドへのアップロードが途中であるデータが計算されるのを、確実に防ぐことができる。
【０２１０】
上記の仕組みは、３相コミットメント（例えば、Dale Skeen, "A Formal Model of Crash Recovery in a Distributed System," IEEE Transactions on Software Engineering 9(3), pp.219-228 (May 1983)等を参照）の技術を応用して実現することも可能である。
上記のマーカーが、３相コミットメントの調整者に対応し、各データ入力デバイスが、３相コミットメントの参加者に対応するが、その際、各データ入力デバイスは、一意なキーにＵＵＩＤ等を利用するため、毎回アドレスが変わることで自らを隠蔽することになる。
【０２１１】
図２０は、そのように構成した本システムの例であり、図１６の例と同一の符号を付したブロックは、図１６に関して説明したのと同一の機能を有する。
【０２１２】
図２０では、データ入力デバイス１７−１〜１７−Ｎと、クラウドサービス設備３７−１〜３７−Ｍと、統計処理結果提供サーバ５５が、ネットワーク４０を介して接続されているが、各データ入力デバイス１７と統計処理結果提供サーバ５５との間では、通信が行われない。
【０２１３】
各データ入力デバイス１７は、データ取得部１１０と、秘匿分割部１２０と、キー生成
部１６０及びハッシュ計算部１７０と、アップロード部１９０とを備え、アップロード部１９０は、秘匿分割により得られた部分データを各クラウドサービス設備３７へアップロードする機能に加えて、マーカーを設定する情報（以下、「マーカー情報」という）をいずれかのクラウドサービス設備３７へアップロードする機能を有する。
【０２１４】
各データ入力デバイス１７の備える制御部１８０は、図１６の制御部１５０が有する機能に加えて、マーカー用に、キー生成部１６０における一意なキー（ＵＵＩＤ等）の生成と、ハッシュ計算部１７０における生成されたキーと、時刻と、シーケンス番号との合計値からのハッシュ値の算出とを、行わせる機能を有する。また、制御部１８０は、アップロード部１９０と連携して、秘匿分割により得られた全ての部分データがクラウド上に保存されたことを確認した後に、マーカー情報をアップロードする。
【０２１５】
各クラウドサービス設備３７の備えるデータ保存部３１７は、アップロードされた各部分データと共に、マーカー情報の保存先を指し示す情報を保存する機能を有し、各クラウドサービス設備３７は、データ保存部３１７に加えて、アップロードされたマーカー情報を保存するためのマーカー保存部３５０と、自身のもしくは他のクラウドサービス設備３７のマーカー保存部３５０におけるマーカー情報の保存状況を問い合わせるためのマーカー問い合わせ部３４０とを備える。
【０２１６】
各クラウドサービス設備３７の備える制御部３３７は、統計処理結果提供サーバ５５中の管理部（管理サーバ）５０５からの指示に従って、計算部３２０が所定の演算処理を行うタイミングを特定する。制御部３３７は、その演算処理をデータ保存部３１７に保存された部分データのうちのどれを対象として行うべきかを、マーカー問い合わせ部３４０と連携して、特定する。
【０２１７】
図２１〜２３は、図２０の構成例において、各データ入力デバイスＸiが、取得したデ
ータＡｉを、２つの部分データａi及びｂiに秘匿分割して、複数（本例では４つだが、多数とすることが可能）のクラウドから任意に選択した２つのクラウドにアップロードし、マーカーｍiを用いて整合性を担保しながら、統計処理を行うための処理手順の一例を示
している。
【０２１８】
図２１は、各データ入力デバイス１７の内部で行われる準備段階の手順を示す。各データ入力デバイスは、２つの部分データ及びマーカー情報のアップロード先のクラウドを決定するために、ＵＵＩＤを利用して、３つのキー（ｋ0、ｋ1、ｋ2）を生成する［１］。
【０２１９】
そして、それぞれのキー（ｋ0、ｋ1、ｋ2）に対して、時刻（ｔｉｍｅ）と、シーケン
ス番号ｎ（０、１、２）とを足し、それぞれの合計値のハッシュ値（ｈ0、ｈ1、ｈ2）を
算出する。そして、算出されたハッシュ値（ｈ0、ｈ1、ｈ2）が、割り当てられた値群の
中に含まれるクラウドを、それぞれ対応するマーカー及び部分データ（ｍi、ａi、ｂi）
のアップロード先として決定する［２］。
【０２２０】
図２２は、各データ入力デバイス１７が、秘匿分割［３］により得られた各部分データ（ａi及びｂi）を、各クラウドサービス設備３７へアップロードし［４］［５］、その受領確認が得られた後に、それら部分データに対応するマーカー（ｍi）を、クラウドサー
ビス設備３７へアップロードする［６］手順を示す。
【０２２１】
各データ入力デバイス１７は、それぞれの部分データと一緒に、マーカー情報の保存先を指し示す情報（ｍiに対応するハッシュ値ｈ0）をアップロードする。これらに加えて、図１６の構成例と同様に、マネージャのアドレス等（統計処理の識別情報となるもの）をアップロードしてもよい。なお、図２０の構成例でも、データのＩＤは、アップロードさ
れない。
【０２２２】
また、一つのデータから秘匿分割で得られた複数の部分データのうちの一部についてのアップロードのトランザクションがエラーとなった場合に、残りの部分データについてのトランザクションを解除する（保存されたデータを削除する等）ために、トランザクションにかかる時間の上限を超えたこと（タイムアウト）を検出する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。
【０２２３】
［４］〜［６］の具体的な処理は、次のようになる。各データ入力デバイスＸiは、そ
れぞれのタイミングで、［２］のｎ＝１で生成したハッシュ値ｈ1に相当するクラウドに
対して、［３］の部分データａi及びハッシュ値ｈ0（及び必要に応じて時刻）を送信する。図２２の例では、データ入力デバイスＸ1はクラウドＢに対して、データ入力デバイス
Ｘ2はクラウドＡに対して、データ入力デバイスＸ3はクラウドＡに対して、部分データａi及びハッシュ値ｈ0を送信している。
【０２２４】
上述した部分データａi及びハッシュ値ｈ0のアップロード先での保存が、キーバリューストアによって行われる場合、部分データａi及びハッシュ値ｈ0は、対応するハッシュ値ｈ1と共に送信される。そうすると、各クラウドは、ハッシュ値ｈ1をキーとし、部分データａi及びハッシュ値ｈ0（及び必要に応じて時刻）をバリューとして、データ保存部３１７への保存を行い、データ入力デバイスＸiへ受領確認通知を行う［４］。
【０２２５】
同様に、各データ入力デバイスＸiは、それぞれのタイミングで、［２］のｎ＝２で生
成したハッシュ値ｈ2に相当するクラウドに対して、［３］の部分データｂi及びハッシュ値ｈ0（及び必要に応じて時刻）を送信する。図２２の例では、データ入力デバイスＸ1はクラウドＣに対して、データ入力デバイスＸ2はクラウドＣに対して、データ入力デバイ
スＸ3はクラウドＤに対して、部分データｂi及びハッシュ値ｈ0を送信している。
【０２２６】
部分データｂi及びハッシュ値ｈ0は、対応するハッシュ値ｈ2と共に送信され、各クラ
ウドにおいて、ハッシュ値ｈ2をキーとし、部分データｂi及びハッシュ値ｈ0（及び必要
に応じて時刻）をバリューとして、データ保存部３１７への保存が行われる。そして、データ入力デバイスＸiへ受領確認通知が返される［５］。
【０２２７】
各データ入力デバイスＸiは、［４］及び［５］の受領確認通知を受信する（データの
クラウド上での保存に成功する）と、［２］のｎ＝０で生成したハッシュ値ｈ0に相当す
るクラウドに対して、マーカー（ｍi）を設定する値（例えば、１）を送信する。図２２
の例では、データ入力デバイスＸ1はクラウドＡに対して、データ入力デバイスＸ2はクラウドＢに対して、データ入力デバイスＸ3はクラウドＤに対して、マーカー（ｍi）を設定する値を送信している。
【０２２８】
上述したマーカー（ｍi）のクラウド上での設定が、キーバリューストアによって行わ
れる場合、マーカーを設定する値（例えば、１）は、対応するハッシュ値ｈ0と共に送信
される。そうすると、各クラウドは、ハッシュ値ｈ0をキーとし、値１をバリューとして
、マーカー保存部３５０への保存を行い、データ入力デバイスＸiへ受領確認通知を行う
［６］。
【０２２９】
図２３は、統計処理結果提供サーバ（マネージャ）５５が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず、計算処理（例えば、総和及び２乗和の計算）をするよう依頼する［７］。
【０２３０】
依頼を受けた各クラウドサービス設備３７では、データ保存部３１７に部分データと一緒に保存されているハッシュ値ｈ0（マーカー情報の保存先を指し示す情報）を読み出し
、そのハッシュ値ｈ0に相当するクラウドに対して、マーカーが設定されているか、すな
わち、ハッシュ値ｈ0をキーとしてマーカーを設定する値（１）がマーカー保存部３５０
に保存されているかの確認を行う［８］。
【０２３１】
図２３の例では、クラウドＡは、自身が保存している部分データａ2、ａ3についてのマーカー問い合わせ［８］を、それぞれクラウドＢ、Ｄに対して行い、クラウドＢは、自身が保存している部分データａ1についてのマーカー問い合わせ［８］をクラウドＡに対し
て行い、クラウドＣは、自身が保存している部分データｂ1、ｂ2についてのマーカー問い合わせ［８］を、それぞれクラウドＡ、Ｂに対して行い、クラウドＤは、自身が保存している部分データｂ3についてのマーカー問い合わせ［８］を自身の内部で行っている。
【０２３２】
問い合わせを受けたクラウドは、問い合わせに係るキー（ハッシュ値ｈ0）とバリュー
の組を自身が保存していればそのバリュー（１）を、マーカー（ｍi）の値として、問い
合わせ元のクラウドへ返送する。保存していなければ、エラーを示す値（１以外の値）を、マーカーの値として返送する。
【０２３３】
問い合わせ元のクラウドでは、［８］で返送されたマーカー（ｍi）の値が１であれば
、そのハッシュ値ｈ0と一緒に保存されていた部分データを対象として計算処理を行い、
その結果の値をマネージャへ返送する［９］。マーカーの値が１以外である部分データは、計算対象に含めないことにより、一つのデータを構成する全ての部分データがクラウド上に揃っているデータのみに基づいて、正確な統計処理を行うことが可能である。
【０２３４】
また、問い合わせ元のクラウドは、問い合わせ先のクラウドから１という値が返送されなかったマーカーのハッシュ値ｈ0と一緒に保存されていた時刻をチェックして、その時
刻が現在時刻から所定時間（例えば１０分）以上前であれば、トランザクションが正常に完了されなかったとみなして、一緒に保存されていた部分データを削除してもよい。所定時間以内であれば、まだトランザクションの途中である可能性があるとみなして、その部分データを計算対象には含めずに、そのまま残せばよい。
【０２３５】
マネージャは、依頼した全てのクラウドから結果が返送される（対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される）と、それらの値を合計等して、求める統計値を算出する［１０］。
【０２３６】
なお、図６〜１５で説明した例と、図１６〜１９で説明した例と、図２０〜２３で説明した例とは、それぞれ適宜組み合わせて実施することも可能である。
【０２３７】
例えば、図５の例の内積を求める構成として、１つのデータ毎に４つのクラウドを各データ入力デバイス自身が（マネージャから指示を受けることなく）特定できるようにしつつ、各データ入力デバイスから各クラウドへ、部分データと共にデータのＩＤ（ｉ）をアップロードする（クラウドからマネージャへは報告しない）ことで、統計処理結果提供サーバ（マネージャ）が管理する情報を少なくすることが可能になる。このときに、４つのクラウドのいずれか又は他のクラウドにマーカーを登録し、各クラウドが内積を計算する対象をマーカーが登録されている部分データに限ることで、マネージャが管理を行わずに正確な統計処理結果を求めることも可能になる。
【０２３８】
また、例えば、図１６〜１９について説明したのと同様に、図２０〜２３においても、２乗和を求めるために、クラウドのリングを少なくとも２つ設けることができる。その場
合に、マーカーを登録するクラウドとして、第１のリングに属するクラウドを選択しても、第２のリングに属するクラウドを選択しても、いずれのリングにも属さないクラウドを選択しても構わない。
【０２３９】
以上、統計処理について述べてきたが、本システムは、オリジナルデータの所有者が、統計処理のために部分データをアップロードする各クラウドを利用して、オリジナルデータを秘匿化して分散保存しておき、他者はこれにアクセスできないようにしつつ、本人は参照したいときにいつでもオリジナルデータを復元できるように構成することも可能である。
【０２４０】
このためには、各クラウドサービス設備３０のデータ保存部３１０に、鍵によるアクセス権限の検証機能を追加し、例えば、データ入力デバイス１０から各クラウドサービス設備３０へ部分データをアップロードする際に、その鍵の情報も付加してアップロードする。そして、各クラウドサービス設備３０のデータ保存部３１０は、部分データとともに鍵によるアクセス情報を保存しておき、部分データに対するアクセスを受けると、アクセスしてきた者が対応する鍵を所有していることが検証された場合のみ、部分データの取得を許可する。
【０２４１】
別の例として、各クラウドサービス設備３０のデータ保存部３１０に、予めデータの所有者の鍵の情報を保存しておき、部分データがアップロードされた際に、その部分データに対応する鍵の情報を付加して（例えば、部分データをその鍵で暗号化して）保存するようにしてもよい。いずれの例でも、オリジナルデータの所有者は、部分データを保存する全てのクラウドにアクセスして、それぞれ鍵を用いて部分データを取得し、全ての部分データを集めることにより、オリジナルデータを復元することができる。
【０２４２】
図２４〜２７は、本システムのあり得る応用例について、そのごく一部を説明するものである。図２４は、教育分野への応用であり、例えば、オンライン試験や模擬試験等を対象とする統計処理に適用可能である。図２５は、医療（ヘルスケア）分野への応用であり、例えば、血圧、体重、体脂肪率等を対象とする統計処理に適用可能である。図２６は、流通業分野への応用であるが、それに限らず、例えば、生活実態調査等の匿名アンケート調査における統計処理にも適用可能である。図２７は、テレマティクス（自動車）分野への応用であり、例えば、速度、加速度等の走行情報を対象とする統計処理に適用可能であるが、それ以外の分野におけるリスク管理への応用等も可能である。
【０２４３】
以上、本発明の実施形態について例示的に説明したが、本明細書における説明により本発明が限定されるものではなく、上述の実施形態を本発明の範囲内で当業者が適宜、種々に変形、応用して実施できることは勿論である。
【図１】
0005895080.tif 000002
【図２】
0005895080.tif 000003
【図３】
0005895080.tif 000004
【図４】
0005895080.tif 000005
【図５】
0005895080.tif 000006
【図６】
0005895080.tif 000007
【図７】
0005895080.tif 000008
【図８】
0005895080.tif 000009
【図９】
0005895080.tif 000010
【図１０】
0005895080.tif 000011
【図１１】
0005895080.tif 000012
【図１２】
0005895080.tif 000013
【図１３】
0005895080.tif 000014
【図１４】
0005895080.tif 000015
【図１５】
0005895080.tif 000016
【図１６】
0005895080.tif 000017
【図１７】
0005895080.tif 000018
【図１８】
0005895080.tif 000019
【図１９】
0005895080.tif 000020
【図２０】
0005895080.tif 000021
【図２１】
0005895080.tif 000022
【図２２】
0005895080.tif 000023
【図２３】
0005895080.tif 000024
【図２４】
0005895080.tif 000025
【図２５】
0005895080.tif 000026
【図２６】
0005895080.tif 000027
【図２７】
0005895080.tif 000028