(57)【特許請求の範囲】
【請求項１】
収集装置と、
それぞれに異なる識別子が付与されており、前記収集装置から要求された情報を提供する複数の提供装置と、
前記収集装置及び前記複数の提供装置のうちの２つの装置間での情報の送受信を中継する中継装置と、
を備えている情報収集システムであって、
前記収集装置は、前記複数の提供装置のそれぞれと互いに前記中継装置経由で通信して、前記収集装置及び前記複数の提供装置で共有する暗号鍵を生成する手段と、前記複数の提供装置のそれぞれが提供する情報の統計情報を算出するための第１の関数及び第２の関数を決定して、各提供装置に前記第２の関数を通知する手段を備えており、
前記複数の提供装置のそれぞれは、提供する情報から、該提供する情報の復元に使用でき、前記複数の提供装置の識別子にそれぞれ対応する複数の分散情報を生成して、生成した各分散情報を対応する識別子の提供装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、前記生成した分散情報のうちの自装置に割り当てられた識別子に対応する分散情報と、前記複数の提供装置の他の提供装置から受信する自装置に割り当てられた識別子に対応する分散情報とを前記第２の関数の入力として出力値を求め、前記出力値を前記収集装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、を備えており、
前記収集装置は、各提供装置から受信する出力値を前記第１の関数の入力として前記統計情報を算出し、
前記複数の提供装置のそれぞれは、乱数を生成して、生成した乱数を前記収集装置の公開鍵で暗号化して前記中継装置経由で前記収集装置に送信し、
前記収集装置は、各提供装置から受信する暗号化された乱数を前記公開鍵に対する秘密鍵で復号し、前記各提供装置から受信する乱数の総てを掛け合わせて第１の数を求め、所定数を第１の数だけ掛け合わせた数の、所定の素数による剰余を前記暗号鍵とし、前記複数の提供装置の第１の提供装置以外から受信した乱数の総てを掛け合わせて第２の数を求め、前記所定数を前記第２の数だけ掛け合わせた数の、前記所定の素数による剰余を、前記第１の提供装置と前記暗号鍵を共有するために、前記第１の提供装置に前記中継装置経由で送信する、
ことを特徴とする情報収集システム。
【請求項２】
前記複数の提供装置のそれぞれは、閾値秘密分散法により分散情報を生成する、
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の提供装置のそれぞれは、定数項が前記提供する情報に対応する値である所定の次数の多項式に、提供装置の識別子を代入して得られた値を、該提供装置の識別子に対応する分散情報とし、
前記多項式の前記定数項以外の部分は、前記収集装置が指定する、
ことを特徴とする請求項１又は２に記載のシステム。
【請求項４】
それぞれに識別子が付与された複数の通信装置を含む情報収集システムの通信装置であって、
前記情報収集システムの収集装置と中継装置経由で通信することで、前記収集装置及び前記複数の通信装置で共有する暗号鍵を生成する手段と、
情報を取得する手段と、
前記取得した情報から、該取得した情報の復元に使用でき、前記複数の通信装置の識別子にそれぞれ対応する複数の分散情報を生成して、生成した各分散情報を対応する識別子の通信装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、
前記生成した分散情報のうちの自装置に割り当てられた識別子に対応する分散情報と、他の通信装置から受信する自装置に割り当てられた識別子に対応する分散情報とを前記収集装置から通知される関数の入力として出力値を求め、前記出力値を前記暗号鍵で暗号化して前記中継装置経由で前記収集装置に送信する手段と、
を備えており、
前記暗号鍵を生成する手段は、乱数を生成して、生成した乱数を前記収集装置の公開鍵で暗号化して前記中継装置経由で前記収集装置に送信し、前記収集装置から前記中継装置で受信する値と前記生成した乱数に基づき前記暗号鍵を生成し、
前記収集装置から前記中継装置で受信する前記値は、前記収集装置が前記複数の通信装置の内の当該通信装置とは異なる通信装置から受信する乱数の総てを掛け合わせて第１の数を求め、所定数を第１の数だけ掛け合わせた数の、所定の素数による剰余であることを特徴とする通信装置。
【請求項５】
それぞれに識別子が付与された複数の提供装置と中継装置経由で通信する通信装置であって、
前記複数の提供装置と前記中継装置経由で通信することで、前記通信装置及び前記複数の提供装置で共有する暗号鍵を生成する手段と、
前記複数の提供装置のそれぞれが提供する情報の統計情報を算出するための第１の関数及び第２の関数を決定して、各提供装置に前記第２の関数を通知する手段と、
前記複数の提供装置から受信する出力値を前記第１の関数の入力として前記統計情報を算出する手段であって、前記出力値は、提供装置が、前記複数の提供装置の識別子にそれぞれ対応し、当該提供装置が提供する情報から当該提供する情報の復元に使用できる複数の分散情報を生成し、生成した各分散情報を対応する識別子の提供装置に前記暗号鍵で暗号化して前記中継装置経由で送信し、当該提供装置が生成した分散情報のうちの当該提供装置に割り当てられた識別子に対応する分散情報と、当該提供措置が他の提供装置から受信する分散情報とを前記第２の関数の入力として求めたものである、手段と、
を備えており、
前記暗号鍵を生成する手段は、
前記複数の提供装置それぞれから、前記通信装置の公開鍵で暗号化された乱数を受信する手段と、
前記複数の提供装置それぞれから受信する暗号化された乱数を前記公開鍵に対する秘密鍵で復号し、前記複数の提供装置から受信する乱数の総てを掛け合わせて第１の数を求め、所定数を第１の数だけ掛け合わせた数の、所定の素数による剰余を前記暗号鍵とする手段と、
前記複数の提供装置の第１の提供装置以外から受信した乱数の総てを掛け合わせて第２の数を求め、前記所定数を前記第２の数だけ掛け合わせた数の、前記所定の素数による剰余を、前記第１の提供装置と前記暗号鍵を共有するために、前記第１の提供装置に前記中継装置経由で送信する手段と、
を備えていることを特徴とする通信装置。
【請求項６】
請求項４に記載の通信装置としてコンピュータを機能させるプログラム。
【請求項７】
請求項５に記載の通信装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置から情報を収集する技術に関する。
【背景技術】
【０００２】
ある一つの計算処理を多数のコンピュータに分散実行させる仕組みであるグリッドコンピューティングが実用化されている。グリッドコンピューティングにおいて、サーバ装置は、グリッド、つまり、各コンピュータの状況を監視し、計算処理を適切に分割して各コンピュータに分割した計算処理の実行を依頼し、結果を取得する。ここで、非特許文献１は、各コンピュータといった装置に計算処理を依頼する仕組みを提案している。
【０００３】
また、非特許文献２から４には、複数のノードにおいて、ある処理を分散して計算を行う仕組みである、Ｓｅｃｕｒｅ  Ｍｕｌｔｉ−ｐａｒｔｙ  Ｃｏｍｐｕｔａｔｉｏｎ（ＳＭＣ）が開示されている。ここで、ＳＭＣにおいて、各計算処理を行う各通信装置は、互いに、各通信装置と直接通信できることが必要とされている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｄｉｊｉａｎｇ  Ｈｕａｎｇ，  ｅｔ  ａｌ．，“ＭｏｂｉＣｌｏｕｄ：  Ｂｕｉｌｄｉｎｇ  Ｓｅｃｕｒｅ  Ｃｌｏｕｄ  Ｆｒａｍｅｗｏｒｋ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ，”Ｉｎ  Ｐｒｏｃ.  ｏｆ  ｔｈｅ  ２０１０  Ｆｉｆｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍ  Ｅｎｇｉｎｅｅｒｉｎｇ（ＳＯＳＥ)，２０１０年
【非特許文献２】Ｇｏｌｄｒｅｉｃｈ，  Ｏ.，“Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｙ，”  Ｖｏｌｕｍｅ  ２，  Ｂａｓｉｃ  Ａｐｐｌｉｃａｔｉｏｎｓ．  Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  ２００４年
【非特許文献３】Ｇｏｌｄｒｅｉｃｈ，  Ｏ.，  ｅｔ  ａｌ．，“Ｈｏｗ  ｔｏ  ｐｌａｙ  ａｎｙ  ｍｅｎｔａｌ  ｇａｍｅ，”  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｎｉｎｅｔｅｅｎｔｈ  ａｎｎｕａｌ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｔｈｅｏｒｙ  ｏｆ  ｃｏｍｐｕｔｉｎｇ（１９８７），ＡＣＭ，  ｐｐ.２１８−２２９
【非特許文献４】Ｂｅｎ−Ｏｒ，  Ｍ．，  Ｇｏｌｄｗａｓｓｅｒ，  Ｓ．，  ａｎｄ  Ｗｉｇｄｅｒｓｏｎ，  Ａ．，“Ｃｏｍｐｌｅｔｅｎｅｓｓ  ｔｈｅｏｒｅｍｓ  ｆｏｒ  ｎｏｎ−ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｆａｕｌｔ−ｔｏｌｅｒａｎｔ  ｄｉｓｔｒｉｂｕｔｅｄ  ｃｏｍｐｕｔａｔｉｏｎ，”  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｔｗｅｎｔｉｅｔｈ  ａｎｎｕａｌ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｔｈｅｏｒｙ  ｏｆ  ｃｏｍｔｉｎｇ  （１９８８），ＡＣＭ，  ｐｐ．１−１０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在、大多数の人々が携帯電話を所持しており、例えば、これら携帯電話を利用して、アンケート等に答えてもらうことで、多くの情報をすばやく収集することができる。具体的には、例えば、年代別に興味がある商品等に関する情報や、インフルエンザ等が流行した場合、地域毎及び年代別の患者数等に関する情報等、情報の収集者が必要とする情報を素早く収集することができる。また、近年の携帯電話には、温度センサ等の各種センサやＧＰＳ受信機等が搭載されているので、例えば、温度センサが取得した各地の温度といった、アンケートによらない、携帯電話の機能を利用して携帯電話が取得する情報を収集することもできる。
【０００６】
ここで、何らかの情報を収集したいもの（以下、収集者と呼ぶ。）と、収集者が必要とする情報を提供するもの（以下、提供者と呼ぶ。）を結びつけ、収集者が効率的に情報を収集することができる情報収集システムを実現することを考える。なお、以下の説明においては、収集者が使用する通信装置を収集装置と呼び、提供者が使用する通信装置を提供装置と呼ぶものとする。なお、収集者は、各提供者が提供する情報そのものではなく、その統計的な情報、例えば、合計、平均、分散等の各提供者が提供する情報から何らかの計算式で求めることができる情報を必要とするものとする。
【０００７】
まず、上記情報収集システムを実現するためには、収集装置と提供装置を仲介する仕組みが必要となる。また、個人情報の保護の観点から、ある提供者が提供装置を使用して提供する情報の内容については、他の提供者のみならず収集者にも秘密にできる仕組みを設けることも望ましい。つまり、例えば、収集者がある病気にかかったことがあるか否かの年代別の分布を調べたい場合、収集者が取得できるのは各年代別の当該病気にかかったことがある人の合計値のみであり、個々の提供者が病気にかかったことがあるか否かについては収集者にさえ秘密にできることが望ましい。
【０００８】
本発明は、上記仕組みを提供することで、各提供装置が提供する情報を秘密にしたまま、収集装置が、その統計情報を収集できる情報収集システムと、該情報収集システムで使用する通信装置と、該通信装置としてコンピュータを動作させるプログラムを提供するものである。
【課題を解決するための手段】
【０００９】
本発明による情報収集システムは、収集装置と、それぞれに異なる識別子が付与されており、前記収集装置から要求された情報を提供する複数の提供装置と、前記収集装置及び前記複数の提供装置のうちの２つの装置間での情報の送受信を中継する中継装置と、を備えている情報収集システムであって、前記収集装置は、前記複数の提供装置のそれぞれと互いに前記中継装置経由で通信して、前記収集装置及び前記複数の提供装置で共有する暗号鍵を生成する手段と、前記複数の提供装置のそれぞれが提供する情報の統計情報を算出するための第１の関数及び第２の関数を決定して、各提供装置に前記第２の関数を通知する手段を備えており、前記複数の提供装置のそれぞれは、提供する情報から、該提供する情報の復元に使用でき、前記複数の提供装置の識別子にそれぞれ対応する複数の分散情報を生成して、生成した各分散情報を対応する識別子の提供装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、前記生成した分散情報のうちの自装置に割り当てられた識別子に対応する分散情報と、前記複数の提供装置の他の提供装置から受信する自装置に割り当てられた識別子に対応する分散情報とを前記第２の関数の入力として出力値を求め、前記出力値を前記収集装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、を備えており、前記収集装置は、各提供装置から受信する出力値を前記第１の関数の入力として前記統計情報を算出し、前記複数の提供装置のそれぞれは、乱数を生成して、生成した乱数を前記収集装置の公開鍵で暗号化して前記中継装置経由で前記収集装置に送信し、前記収集装置は、各提供装置から受信する暗号化された乱数を前記公開鍵に対する秘密鍵で復号し、前記各提供装置から受信する乱数の総てを掛け合わせて第１の数を求め、所定数を第１の数だけ掛け合わせた数の、所定の素数による剰余を前記暗号鍵とし、前記複数の提供装置の第１の提供装置以外から受信した乱数の総てを掛け合わせて第２の数を求め、前記所定数を前記第２の数だけ掛け合わせた数の、前記所定の素数による剰余を、前記第１の提供装置と前記暗号鍵を共有するために、前記第１の提供装置に前記中継装置経由で送信する、ことを特徴とする。
【００１０】
本発明による通信装置は、それぞれに識別子が付与された複数の通信装置を含む情報収集システムの通信装置であって、前記情報収集システムの収集装置と中継装置経由で通信することで、前記収集装置及び前記複数の通信装置で共有する暗号鍵を生成する手段と、情報を取得する手段と、前記取得した情報から、該取得した情報の復元に使用でき、前記複数の通信装置の識別子にそれぞれ対応する複数の分散情報を生成して、生成した各分散情報を対応する識別子の通信装置に前記暗号鍵で暗号化して前記中継装置経由で送信する手段と、前記生成した分散情報のうちの自装置に割り当てられた識別子に対応する分散情報と、他の通信装置から受信する自装置に割り当てられた識別子に対応する分散情報とを前記収集装置から通知される関数の入力として出力値を求め、前記出力値を前記暗号鍵で暗号化して前記中継装置経由で前記収集装置に送信する手段と、を備えており、前記暗号鍵を生成する手段は、乱数を生成して、生成した乱数を前記収集装置の公開鍵で暗号化して前記中継装置経由で前記収集装置に送信し、前記収集装置から前記中継装置で受信する値と前記生成した乱数に基づき前記暗号鍵を生成し、前記収集装置から前記中継装置で受信する前記値は、前記収集装置が前記複数の通信装置の内の当該通信装置とは異なる通信装置から受信する乱数の総てを掛け合わせて第１の数を求め、所定数を第１の数だけ掛け合わせた数の、所定の素数による剰余であることを特徴とする。
【発明の効果】
【００１１】
不特定の提供者から、個々の提供者が提供した情報の内容を知ることなく、各提供者が提供した情報の統計情報を取得できる情報収集システムが可能になる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態におけるシステム構成図。
【図２】一実施形態における提供装置の構成図。
【図３】一実施形態における分散情報の保存状態を示す図。
【図４】一実施形態における収集装置が収集する情報を示す図。
【発明を実施するための形態】
【００１３】
図１は、本実施形態におけるシステムの概略的な構成図である。図１において、収集装置３は、情報の収集者が使用する通信装置であり、提供装置１は、情報の提供者が使用する通信装置である。また、サーバ装置２は、収集装置３と提供装置１とを結びつけるための装置である。収集装置３と提供装置１は、それぞれ、例えば、パーソナル・コンピュータや、携帯電話等である。なお、図では、３つの提供装置のみを示しているがこれは例示であり、任意の数の提供装置１を使用することができる。さらに、収集装置３と提供装置１を異なる装置として表示しているが、これらは同じ機能を有する装置であってもよい。つまり、収集装置３も、他の収集者から要求された情報を提供する提供装置１として動作することができ、提供装置１は、他の提供者に情報を要求する収集装置３として動作することができる。
【００１４】
収集装置３、サーバ装置２及び提供装置１は、ネットワーク４に接続可能であり、収集装置３はサーバ装置２と通信可能であり、各提供装置１はサーバ装置２と通信可能である。なお、本実施形態においては、互いの身元を秘密にするため、収集装置３と提供装置１や、各提供装置１間での情報の送受信は、必ず、サーバ装置２経由で行う。つまり、サーバ装置２は、収集装置３と各提供装置１のうちの２つの装置間における情報の送受信の中継装置として機能する。
【００１５】
サーバ装置２は、収集者と提供者を仲介するものであり、予め収集者及び提供者と、収集者及び提供者が使用する収集装置３及び提供装置１についての情報が、サーバ装置２のデータベースに登録されている。具体的には、例えば、サーバ装置２は、提供者の年齢、性別、提供者が所持している通信装置の属性（固定端末又は可搬型端末）及び機能等（センサ種別等）の、収集者が情報の提供を依頼する際に提供者を選択する基準として使用する任意の情報を保持している。これら情報には、例えば、提供者の居住地域や、提供装置１が周期的にサーバ装置２に通知する提供装置１の現在位置等を含めることができる。さらに、提供者の職業や、趣味等の情報を含めることもできる。
【００１６】
収集装置３は、何らかの情報を収集したい場合、サーバ装置２に対して、収集したい情報の内容と、提供者の条件を示す依頼メッセージをサーバ装置２に対して送信し、サーバ装置２は、提供者の条件に基づきデータベースに登録されている提供者から、情報提供を依頼する提供者を選択する。そして、サーバ装置２は、選択した提供者の提供装置１に、収集装置３が収集したい情報を示す依頼メッセージを送信する。なお、収集したい情報が、何らかのアンケートに対する回答である場合には、質問事項とその選択肢を示す情報が依頼メッセージには含まれる。また、提供装置１が具備するセンサ等が測定する情報を収集したい場合には、これらセンサ等により必要な情報を測定するプログラムを依頼メッセージに含めることができる。
【００１７】
提供装置１は、依頼メッセージを受信すると、情報提供に協力するか否かを提供者に選択させる画面を表示する。提供者が情報提供に応じると、提供装置１は、受諾メッセージをサーバ装置２に送信し、サーバ装置２は、受諾した提供者の合計数等を収集装置３に送信する。
【００１８】
収集装置３は、提供者の人数が確定すると、収集装置３と、受諾した提供者の提供装置１との間で使用する暗号鍵Ｋｃを共有するための手順を開始する。なお、以下の説明において、受諾した提供者の提供装置１を単に提供装置１と呼ぶ。つまり、例えば、“総ての提供装置１”とは、“受諾した提供者の提供装置１の総て”との意味である。また、以下では、受諾した提供者の数をＮとする。この場合、収集装置３は、各提供装置１に１からＮの互いに異なる番号ｋを割り振る。
【００１９】
まず、収集装置３は、公開鍵暗号方式における公開鍵Ｋｐと、素数ｐと、原始元ｇを、サーバ装置２経由で提供装置１に送信する。このとき、収集装置３は各提供装置１に割り振った番号も通知する。なお、公開鍵Ｋｐと、素数ｐと、原始元ｇについては、収集装置３がネットワーク４上の任意の装置に公開したものを、各提供装置１が当該装置にアクセスして取得する形態とすることもできる。
【００２０】
続いて、番号ｋが割り振られている提供装置１は、０から（ｐ−１）の範囲において、乱数Ｘｋを生成し、生成した乱数Ｘｋを、収集装置３の公開鍵Ｋｐで暗号化してサーバ装置２経由で収集装置３に送信する。収集装置３は、公開鍵Ｋｐに対する秘密鍵Ｋｓで、各提供装置１から受信する暗号化された乱数Ｘｋを復号する。その後、収集装置３は、暗号鍵Ｋｃを、
Ｋｃ＝ｇＸ  ｍｏｄ  ｐ
により求める。なお、Ｘは、全提供装置１の乱数Ｘ１〜乱数ＸＮを掛け合わせた数である。
【００２１】
さらに、収集装置３は、番号ｉ（ｉは１からＮの自然数）の提供装置１に対して、以下の値Ｚｉをサーバ装置２経由で送信する。
Ｚｉ＝ｇＹｉ  ｍｏｄ  ｐ
ここで、Ｙｉは、番号ｉの提供装置１以外の提供装置１から受信した乱数Ｘｋを掛け合わせた数である。
【００２２】
番号ｉの提供装置１は、受信したＺｉと自身が生成した乱数Ｘｉから暗号鍵Ｋｃを生成する。以上の構成により、情報の中継を行うサーバ装置２には秘密にする暗号鍵Ｋｃを、収集装置３と各提供装置１との間で共有できる。なお、以上の処理は、図２に示す収集装置３の暗号鍵共有部１４が実行する。
【００２３】
また、上記暗号鍵の共有処理とは別に、収集装置３は、計算処理のための関数Ｆ１及び関数Ｆ２を決定し、関数Ｆ１を保存すると共に、関数Ｆ２を各提供装置１に送信する。関数Ｆ１及びＦ２は、収集装置３が収集したい統計情報、つまり、例えば、合計、分散等に応じて公知のＳＭＣに従い決定する。なお、関数Ｆ１及びＦ２については、サーバ装置２に対して秘匿する必要はないので、後述する提供装置１における関数計算処理までに提供装置１に通知すれば良い。
【００２４】
暗号鍵Ｋｃの共有後、番号ｋ（ｋは１からＮの自然数）の提供装置１の情報取得部１１は、収集者の依頼に沿った情報を取得する。例えば、収集する情報がアンケートに答えるものであれば、情報取得部１１は、アンケートを提供装置１の画面に表示して提供者に情報の入力を促して、情報を取得する。また、例えば、収集する情報が提供装置１が有する情報であり、それら情報を取得するプログラムが依頼メッセージと共に収集装置３から提供されている場合には、情報取得部１１は、当該プログラムを実行して情報を取得する。情報取得部１１が情報を取得すると、分散実行部１２は、取得した情報Ｉｋから、公知の閾値秘密分散法により、Ｉｋ１〜ＩｋＮのＮ個の情報（以下、閾値秘密分散法により生成した情報を分散情報と呼ぶ。）を生成する。例えば、番号ｋの提供装置１は、シャミアの秘密分散法により、閾値ｔに対して（ｔ−１）次の多項式、
Ａ（ｘ）＝ａｔ−１ｘｔ−１＋・・・・ａ１ｘ＋ａ
をまず求める。ここで、係数ａｔ−１〜ａ１は、閾値ｔと共に各提供装置に対して収集装置３が個別に指定する値であり、定数項のａは、当該提供装置１の情報取得部１１が取得した情報である。この場合、番号ｋの提供装置１は、Ｉｋ１＝Ａ（１）、・・・、ＩｋＮ＝Ａ（Ｎ）と、求めた多項式に提供装置１の番号を代入することで各分散情報を求める。なお、定数項以外の各係数の値に関し、少なくとも各提供装置１が、他の提供装置１で使用している係数を認識できない様に収集装置３は各提供装置１における係数を指定する。つまり、収集装置３は、各提供装置１に個別に係数を指定する。このとき、例えば、収集装置３は、各提供装置に指定する係数の組を異なるものとすることも、提供装置１の一部又は全部に対して同じ係数の組を指定することもできる。
【００２５】
その後、番号ｋの提供装置１は、Ｎ個の分散情報のうちのＩｋｋを自身の分散情報格納部１３に保存し、他の分散情報Ｉｋｉ（ｋ≠ｉ）をサーバ装置２経由で番号ｉの提供装置１に送信する。なお、このとき、分散情報Ｉｋｉは先に共有した暗号鍵Ｋｃで暗号化する。同様に、番号ｋの提供装置１は、他の総ての提供装置１から分散情報Ｉｉｋ（ｋ≠ｉ）をサーバ装置２経由で取得し、取得した分散情報を分散情報格納部１３に保存する。なお、本実施形態においては、サーバ装置２にも各提供装置１の番号が通知されており、各提供装置１は、暗号化された分散情報の宛先を提供装置の番号でサーバ装置２に通知する。図３は、各提供装置１が取得する情報と、取得する情報から生成したＮ個の分散情報と、それら分散情報が保存される提供装置１の関係を示す図である。図３において、各行は、取得した情報から生成される分散情報を示しており、各列は、各提供装置１に保存される分散情報を示している。例えば、番号＃１の提供装置１は、情報Ｉ１を取得し、閾値秘密分散法により、Ｉ１１〜Ｉ１ＮのＮ個の分散情報を生成する。一方、番号＃１の提供装置１は、自身が生成した分散情報Ｉ１１に加えて、他の提供装置１から受信した分散情報Ｉ２１〜ＩＮ１を分散情報格納部１３に保存することになる。
【００２６】
番号ｋの提供装置１の関数処理実行部１５は、分散情報Ｉ１ｋ、Ｉ２ｋ、・・・、ＩＮｋの総てを取得すると、収集装置３から受け取った関数Ｆ２により値Ｒｋ＝Ｆ２（Ｉ１ｋ、Ｉ２ｋ、・・・、ＩＮｋ）を算出し、算出した値Ｒｋを暗号鍵Ｋｃで暗号化してサーバ装置２経由で収集装置３に送信する。収集装置３は、各提供装置１から取得する値Ｒ１〜ＲＮと、関数Ｆ１により、Ｆ１（Ｒ１、・・・、ＲＮ）を算出することで、各提供装置１が取得した情報Ｉｋの合計値や、分散値といった統計情報を算出することができる。なお、閾値秘密分散法により情報を分散しているため、閾値をｔとすると、収集装置３は、Ｎ個の値Ｒ１〜ＲＮのうち、ｔ個の値を取得すれば、各提供装置１が取得した情報Ｉｋの合計値や、分散値といった情報を算出することができる。
【００２７】
例えば、提供者が５人であり、提供者が提供する情報がＹｅｓ又はＮｏであり、収集者はＹｅｓと答えた人数を知りたいものとする。なお、Ｙｅｓは値“１”であり、Ｎｏは値“０”であるものとする。また、各提供装置１における閾値を２とし、分散情報の生成多項式Ａ（ｘ）の係数については、説明を簡単にするため各提供装置で同じ１とする。つまり、生成多項式をＡ（ｘ）＝ｘ＋ａとする。なお、ａは、情報取得部１１が取得した情報に対応する値であり本例においては１又は０である。この場合、各提供装置１は、Ｎｏの場合には、番号＃１の提供装置に値“１”を、番号＃２の提供装置に値“２”を、番号＃３の提供装置に値“３”を、番号＃４の提供装置に値“４”を、番号＃５の提供装置に値“５”を保存することになる。また、Ｙｅｓの場合には、番号＃１の提供装置に値“２”を、番号＃２の提供装置に値“３”を、番号＃３の提供装置に値“４”を、番号＃４の提供装置に値“５”を、番号＃５の提供装置に値“６”を保存することになる。
【００２８】
この場合、各提供装置１は、関数Ｆ２として分散情報の合計値を求める関数を収集装置３から通知される。したがって、Ｙｅｓの人数と、各提供装置１が出力する値の関係は図４に示す通りとなる。収集装置３は、各提供装置１から受信する値に従い、一次多項式をＢ（ｙ）を求め、そのＢ（０）の値を求めることでＹｅｓと答えた人数を取得することができる。つまり、例えば、図４においてＹｅｓの人数が二人の場合、受信する値から一次多項式Ｂ（ｙ）＝５ｙ＋２となり、Ｂ（０）＝２により、Ｙｅｓの人数が分かることになる。なお、上記例では、各提供装置１が同じ多項式により分散情報を求めていたため、仮に各提供装置１が同じ係数を使用していることを認識すると、各提供装置１は、他の提供装置から分散情報を取得することで、当該他の提供装置が取得した情報内容を知ることができる。つまり、番号１の提供装置１が、番号３の提供装置１から値２を受信すると、番号３の提供装置１での情報はＹｅｓであったことが分かる。しかしながら、分散情報の生成多項式を、収集装置３が指定すること等により、提供装置１が他の提供装置１の生成多項式について知識がない状況においては、各提供装置１は、他の提供装置１における情報を知ることができない。しかしながら、例えば、収集装置３が少なくとも２種類の生成多項式の係数の組を提供装置１に対して指定することで、各提供装置１が他の提供装置が取得した情報の内容を知ることをより防ぐことができる。
【００２９】
以上、サーバ装置２を使用することにより収集装置と提供装置を結びつけることができる。また、サーバ装置２を経由して収集装置と提供装置間の情報の送受を行うことで、提供者の身元を収集者から秘匿することができる。さらに、各提供装置が取得した情報については、閾値秘密分散法により、取得した情報を復元するための複数の分散情報に変換して、各分散情報を各提供装置に分散させる。ここで、閾値秘密分散法では、閾値以上の分散情報を取得すると元の情報が復元できることになる。本実施形態においては、提供装置間における分散情報の送受もサーバ装置２経由で行い、これにより、提供装置間で結託して他の提供装置の情報を復元することを防いでいる。
【００３０】
以上の理由により総ての情報の送受は、サーバ装置２を経由することになるが、サーバ装置２が、各提供装置からの情報を取得すると、各提供装置が取得した情報をサーバ装置２は復元できることになる。このため、予め共有した暗号鍵による暗号通信を行うことで、サーバ装置２に対して各分散情報を秘匿する。
【００３１】
以上の構成により、情報の提供者は他人に提供した情報の内容を秘匿しつつ、収集者は必要な情報を収集することが可能になる。なお、上記実施形態において、収集装置３が提供装置１に番号を割り振るとしたが、番号は、最終的に数字に変換できるのであれば任意の文字列等であってもよい。例えば、提供装置１に付与されている識別子等、各提供装置で重複しない値を提供装置１の番号とすることができる。
【００３２】
なお、上記、収集装置３、サーバ装置２、提供装置１は、コンピュータを上述したサーバ装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【図１】
0005727353.tif 000002
【図２】
0005727353.tif 000003
【図３】
0005727353.tif 000004
【図４】
0005727353.tif 000005