(57)【要約】      （修正有）【課題】スター型ネットワークにおける暗号化データを集計するシステムを提供する。【解決手段】中央エンティティアグリゲータは、複数の参加者における各参加者から、入力値のそれぞれの暗号化された多項式共有を表す暗号文のセットを受信する。暗号文のセットにおける各暗号文は、複数の参加者における特定の参加者に関連付けられる。中央エンティティアグリゲータは、複数の参加者から受信した各暗号文を暗号化ドメインにおいて集計することによって各参加者についての暗号化された部分値を計算し、その参加者に対して暗号化された部分値を含むメッセージを送信する。この暗号化された部分値は、対応する参加者の公開鍵に基づいて暗号化される。さらに中央エンティティアグリゲータは、各参加者から復号された部分値を受信し、複数の参加者における参加者のセットから受信した復号された部分値のセットに基づいて目標値を計算する。【選択図】図１Ａ
2017167531.tif 000002
【特許請求の範囲】
【請求項１】
スター型ネットワークにおけるデータの暗号化ドメインアグリゲーションを容易とするコンピュータ実装方法において、
前記スター型ネットワークを介して複数の参加者の各参加者から入力値の暗号文のセットを受信することであって、前記暗号文のセットがその参加者の前記入力値のそれぞれの暗号化された多項式共有を表し、前記各暗号文のセットにおける各暗号文が前記複数の参加者における特定の参加者に関連付けられていることと、
前記複数の参加者から受信したその参加者に関連付けられた各暗号文を前記暗号化ドメインにおいて集計することによって各参加者についての暗号化された部分値を計算することであって、前記暗号化された部分値がその参加者の公開鍵に基づいて暗号化されていることと、
各参加者についての前記暗号化された部分値を含むメッセージを対応する参加者に対して送信することと、
各参加者から前記暗号化された部分値の復号を表す復号された部分値を受信することと、
前記複数の参加者における参加者のセットから受信した復号された部分値のセットに基づいて目標値を計算することとを備える、方法。
【請求項２】
各参加者の公開鍵が準同形暗号化方式に基づいている、請求項１に記載の方法。
【請求項３】
各参加者に関連付けられた各暗号文の前記アグリゲーションが、加算、加重和、ヒストグラム、平均値、分散及び高次モーメント、線形結合、分類器及びカウントクエリのうちのいずれかの計算である、請求項１に記載の方法。
【請求項４】
さらに、前記複数の参加者に対して大きな素数を送信することを備え、各参加者における多項式秘密共有が、前記大きい素数を使用した剰余値を計算することによって実行される、請求項１に記載の方法。
【請求項５】
スター型ネットワークにおけるデータの暗号化ドメインアグリゲーションを容易とするコンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行されたときに前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
前記スター型ネットワークを介して複数の参加者の各参加者から入力値の暗号文のセットを受信することであって、前記暗号文のセットがその参加者の前記入力値のそれぞれの暗号化された多項式共有を表し、前記各暗号文のセットにおける各暗号文が前記複数の参加者における特定の参加者に関連付けられていることと、
前記複数の参加者から受信したその参加者に関連付けられた各暗号文を前記暗号化ドメインにおいて集計することによって各参加者についての暗号化された部分値を計算することであって、前記暗号化された部分値がその参加者の公開鍵に基づいて暗号化されていることと、
各参加者についての前記暗号化された部分値を含むメッセージを対応する参加者に対して送信することと、
各参加者から前記暗号化された部分値の復号を表す復号された部分値を受信することと、
前記複数の参加者における参加者のセットから受信した復号された部分値のセットに基づいて目標値を計算することとを備える、コンピュータシステム。
【請求項６】
各参加者の公開鍵が準同形暗号化方式に基づいている、請求項５に記載のコンピュータシステム。
【請求項７】
各参加者に関連付けられた各暗号文の前記アグリゲーションが、加算、加重和、ヒストグラム、平均値、分散及び高次モーメント、線形結合、分類器及びカウントクエリのうちのいずれかの計算である、請求項５に記載のコンピュータシステム。
【請求項８】
前記方法が、さらに、前記複数の参加者に対して大きな素数を送信することを備え、各参加者における多項式秘密共有が、前記大きい素数を使用した剰余値を計算することによって実行される、請求項５に記載のコンピュータシステム。
【請求項９】
コンピュータによって実行されたときに、スター型ネットワークにおけるデータの暗号化ドメインアグリゲーションを容易とする方法を前記コンピュータに実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
前記スター型ネットワークを介して複数の参加者の各参加者から入力値の暗号文のセットを受信することであって、前記暗号文のセットがその参加者の前記入力値のそれぞれの暗号化された多項式共有を表し、前記各暗号文のセットにおける各暗号文が前記複数の参加者における特定の参加者に関連付けられていることと、
前記複数の参加者から受信したその参加者に関連付けられた各暗号文を前記暗号化ドメインにおいて集計することによって各参加者についての暗号化された部分値を計算することであって、前記暗号化された部分値がその参加者の公開鍵に基づいて暗号化されていることと、
各参加者についての前記暗号化された部分値を含むメッセージを対応する参加者に対して送信することと、
各参加者から前記暗号化された部分値の復号を表す復号された部分値を受信することと、
前記複数の参加者における参加者のセットから受信した復号された部分値のセットに基づいて目標値を計算することとを備える、記憶媒体。
【請求項１０】
前記方法が、さらに、
前記複数の参加者を多数の群に分割することと、
各群に難読化ツールを割り当てることであって、前記難読化ツールが前記難読化ツールからの暗号文における難読化値を加算することと、
各群についての目標値を計算することであって、前記目標値が難読化値を含むこととを備える、請求項９に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、複数の装置からのデータのアグリゲーションに関する。より具体的には、本開示は、スター型ネットワークにおける暗号化データのアグリゲーションに関する。
【背景技術】
【０００２】
インターネット及び電子商取引の普及は、多数の装置からの膨大量のディジタルコンテンツを作成し続けている。個々のコントリビュータは、測定のためにそのようなデータを集計することができるアグリゲーションエンティティに対してそれらのローカルデータを送信することができる。例えば、電力使用量データは、多数のスマートメータから電力会社によって集計されることができる。同様に、健康モニタリングエンティティは、ウェアラブル（例えば、スマートウォッチ）及びスマートフォンによって提供されるフィットネス関連データについての統計的尺度を計算することができ、オンラインエンティティは、インターネットユーザからブラウザのアクティビティについての統計情報を取得することができる。
【０００３】
ユーザは、付加価値サービスと引き換えに個々のデータのアグリゲーションに同意することができるが、彼らの個々の行動に関する個人情報を共有することに消極的であることがある。上記例において、電力使用量データは、住宅所有者の日常パターンについての情報を明らかにし、フィットネスデータは、機密の医療情報を明らかにし、ブラウザアクティビティは、個人の生活の詳細情報を明らかにすることがある。この信頼できないエンティティ間の相互作用における主要なプライバシー制約は、任意の個々のユーザによって保持されるデータは任意の他の参加者又はアグリゲータに明らかにすべきではないということである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
セキュアなアグリゲーションを容易とするために、各ユーザは、全ての難読化された入力が集計値を計算するためにアグリゲータによって後に合成されることができるように、その入力を難読化する必要がある。しかしながら、スター接続されたトポロジにおいて、ユーザは、相互に通信しない。その結果、ユーザは、他のエンティティに知られていない独自の鍵を使用してそのローカルデータを暗号化することができるのみである。
【課題を解決するための手段】
【０００５】
１つの実施形態は、スター型ネットワークにおけるデータの暗号化ドメインアグリゲーションを容易とするシステムを提供する。動作中において、システムは、スター型ネットワークを介して複数の参加者における各参加者から入力値の暗号文のセットを受信する。暗号文のセットは、その参加者の入力値のそれぞれの暗号化された多項式共有を表す。暗号文のセットにおける各暗号文は、複数の参加者における特定の参加者に関連付けられている。システムは、複数の参加者から受信したその参加者に関連付けられた各暗号文を暗号化ドメインにおいて集計することによって各参加者についての暗号化された部分値を計算し、その参加者に対して暗号化された部分値を含むメッセージを送信する。この暗号化された部分値は、対応する参加者の公開鍵に基づいて暗号化される。システムは、各参加者から復号された部分値を受信し、複数の参加者における参加者のセットから受信した復号された部分値のセットに基づいて目標値を計算する。
【０００６】
この実施形態の変形例において、各参加者の公開鍵は、準同形暗号化方式に基づいている。
【０００７】
この実施形態の変形例において、各参加者に関連付けられた各暗号文のアグリゲーションは、以下のいずれかの計算である：加算、加重和、ヒストグラム、平均、分散及び高次モーメント、線形結合、分類器出力、カウントクエリ。
【０００８】
この実施形態の変形例において、システムは、複数の参加者に対して大きな素数を送信する。各暗号文は、対応する参加者の公開鍵を使用して暗号化された参加者値である。システムは、大きな素数を法とするその参加者に対応する既知の値において多項式を評価し且つその参加者に関連付けられた入力値を使用することによって各参加者についての参加者値を生成する。
【０００９】
この実施形態の変形例において、システムは、参加者のセットにおける参加者の数が閾値よりも大きいかどうかを判定することによって目標値を計算する。参加者の数が閾値よりも大きい場合、システムは、目標多項式の係数のセットを判定する。そして、システムは、基準値及び係数に基づいて目標多項式を評価する。
【００１０】
この実施形態の変形例において、システムは、複数の参加者を多数の群に分割し、各群に難読化ツールを割り当て、各群についての目標値を計算する。難読化ツールは、その入力値に難読化値を加算する。したがって、群について計算された目標値は、難読化値を含む。
【００１１】
さらなる変形例において、複数の参加者は、以前のラウンドの難読化ツールである。群における難読化ツールではない参加者は、その後、以前のラウンドに含まれる難読化値の影響を相殺するために暗号文において負の難読化値を含む。
【００１２】
さらなる変形例において、システムは、現在の参加者数が群のサイズ以下であると判定し、難読化ツールなしで現在の参加者によって最終群を形成し、最終群についての目標値を計算する。
【００１３】
この実施形態の変形例において、暗号化された部分値を計算することは、アグリゲーションにおけるランダム値（例えば、加法的なランダム値）を含むことを備える。
【図面の簡単な説明】
【００１４】
【図１Ａ】図１Ａは、本発明の実施形態にかかる、スター型ネットワークを介した個々の参加者についての暗号化データの例示的な分散型集合を示している。
【図１Ｂ】図１Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける例示的な暗号化データアグリゲーションを図示している。
【図２Ａ】図２Ａは、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とするアグリゲータの方法を図示するフローチャートである。
【図２Ｂ】図２Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とする参加者の方法を図示するフローチャートである。
【図３】図３は、本発明の実施形態にかかる、スター型ネットワークにおける例示的な階層的暗号化データアグリゲーションを図示している。
【図４Ａ】図４Ａは、本発明の実施形態にかかる、スター型ネットワークにおける階層的暗号化データアグリゲーションを容易とするアグリゲータの方法を図示するフローチャートである。
【図４Ｂ】図４Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける階層的暗号化データアグリゲーションを容易とする参加者の方法を図示するフローチャートである。
【図５】図５は、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とする例示的な分散型コンピュータ及び通信システムを図示している。
【発明を実施するための形態】
【００１５】
図面において、同様の参照符号は、同じ図要素を指している。
【００１６】
以下の説明は、当業者が実施形態を作製して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義された一般的な原理は、本開示の要旨及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示される原理及び特徴と一致する最も広い範囲が与えられるべきである。
【００１７】
概要
本発明の実施形態は、スター型ネットワークにおいて暗号化データを集計するシステム及び方法を提供する。スター型ネットワークにおける多数のユーザ装置は、データを生成することができる。そのような装置は、参加者と称することができる。スター型ネットワークにおいて、これらの参加者は、中央エンティティにのみ結合され、相互には結合されない。単一のエンティティとすることができるか又は単一のエンティティに存在することができるアグリゲータ（例えば、ハードウェア装置又はサーバ上で実行されるソフトウェアの一部）は、関心のある目標値（例えば、月における平均電力使用量）を計算するためにこれらの参加者のデータを収集して集計することができる。そのようなアグリゲーションの例は、これらに限定されるものではないが、加算、加重和、ヒストグラム、平均、分散及び高次モーメント、線形結合、分類器及びカウントクエリを含む。
【００１８】
そのようなアグリゲーションは、アグリゲータに対して個々の参加者のデータを公開することなく、関心のある目標値を取得する必要がある。通常、個々のデータを復号することなく関心のある目標値を取得するために準同形暗号化方式の共通鍵が使用されることができる。しかしながら、スター型ネットワークにおいて、各参加者は、暗号化のために独自の鍵を使用する。その結果、アグリゲータによって受信された暗号化データは、共通鍵を有しない。アグリゲータが参加者に共通鍵を配布する場合、個々の参加者のからのデータは、アグリゲータに公開されることになる。一方、アグリゲータとは異なる信頼できるエンティティは、参加者に暗号化鍵を配布することができ、アグリゲータが所定の方法で結果を合成したときに鍵が削除されることを保証することができる。しかしながら、このアプローチは、信頼できるエンティティがアグリゲータと共謀した場合にプライバシーの損失というリスクをもたらす。さらに、参加者がそのデータを共有し且つ利用不可能になった（例えば、オフラインになった）場合、アグリゲータによって計算された関心のある目標値は、エラーが発生しやすくなる。
【００１９】
この問題を解決するために、本発明の実施形態は、スター型ネットワークにおける暗号化データの耐故障性アグリゲーションを容易とする。動作中において、各参加者は、（参加者の入力データと称することもできる）ユーザデータ及び秘密係数のセットを表す定数を含む多項式を生成する。参加者は、異なる既知の点のセットの多項式を評価する。いくつかの実施形態において、そのような既知の点の数は参加者の数であり、各個別の点は参加者に対応する。参加者に関連付けられた個別の点において多項式を評価することによって生成された値は、その参加者についての参加者値と称することができる。参加者は、対応する参加者の公開鍵を使用して各参加者値を暗号化し、アグリゲータに対してその暗号化値を送信する。
【００２０】
そして、アグリゲータは、全ての参加者から受信した特定の参加者についての暗号化された参加者値を準同形に集計する。このように、アグリゲータは、個別の既知の点のそれぞれにおける関心のある暗号化された部分値を取得する。関心のある暗号化された部分値のそれぞれは、参加者の１つの公開鍵に基づいて暗号化されることから、アグリゲータは、対応する参加者に対して関心のある暗号化された部分値を送信する。いくつかの実施形態において、アグリゲータは、関心のある暗号化された不安定な部分値を取得するために暗号化された部分値にランダム値を準同形に加算し、それにより、参加者が関心のある部分値を発見することができないことを保証する。参加者は、関心のある部分値を取得するために関心のある暗号化された不安定な部分値を復号する。しかしながら、この値は部分和であることから、復号後であっても、参加者は、個々の入力データ又は関心のある目標値へのアクセスを有しない。関心のある復号された部分値を受信すると、アグリゲータは、その一定値が全ての参加者からの集計された一定の係数を含み、したがって関心のある目標値を表す目標多項式の係数を取得するために多項式補間を実行する。そして、アグリゲータは、集計された一定の係数を取得するために目標多項式を（例えば、「０」の値において）評価する。
【００２１】
このアグリゲーションプロセスは、暗号化アグリゲーション技術と称することができる。本技術の性能は、階層的計算に基づいてさらに改善することができる。アグリゲータは、少数の参加者を含む小さい群に参加者をグループ化し、信頼できない難読化ツールとして各群における１つの参加者を選択することができる。アグリゲータは、各群について暗号化アグリゲーション技術を実行する。しかしながら、各群の難読化ツールは、ランダム値によってその入力データをマスクし、それにより、各群について誤ったアグリゲーションを有するアグリゲータを提供する。次の段階において、アグリゲータは、現在の参加者として難読化ツールを検討する。
【００２２】
アグリゲータは、新たな群に難読化ツール（すなわち、現在の参加者）をグループ化し、各群について難読化ツールを割り当てる。この段階において、難読化ツールではないそれぞれの現在の参加者は、入力データとして以前のラウンドのマスク動作を反転した値を使用する。そして、アグリゲータは、各群についての暗号化アグリゲーション技術を再度実行する。アグリゲータは、１つの群のみが形成されることができるまでこのプロセスを継続する。このラウンドにおいて、アグリゲータは、いかなる難読化ツールも選択せず、最終群についての暗号化アグリゲーション技術を実行する。最終群は、難読化ツールを有しないことから、残りの各参加者は、入力データとして以前のラウンドのマスク動作を反転した値を使用する。その結果、最終群についての暗号化アグリゲーション技術の実行後、アグリゲータは、全ての参加者についての関心のある目標値を取得する。
【００２３】
例示的なネットワーク及び通信
図１Ａは、本発明の実施形態にかかる、スター型ネットワークを介した個々の参加者についての暗号化データの例示的な分散型集合を示している。この例において、多数の参加者１３２、１３４、１３６及び１３８がスター型ネットワーク１０２に結合されている。いくつかの実施形態において、これらの参加者は、それぞれ、ユーザ１２２、１２４、１２６及び１２８についてのユーザ装置である。ユーザ装置から生成されたユーザデータは、装置（例えば、ユーザの自宅の電力使用量を測定するスマートメータ）とのユーザの相互作用に依存しないことに留意すべきある。参加者１３２、１３４、１３６及び１３８は、中央エンティティ１０４にのみ結合され、相互には結合されていない。
【００２４】
いくつかの実施形態において、中央エンティティ１０４は、関心のある目標値を計算するために参加者１３２、１３４、１３６及び１３８からの入力データ（例えば、月の平均電力使用量）を収集して集計することができるアグリゲータ１０４として動作することができる。そのようなアグリゲーションの例は、限定されるものではないが、加算、加重和、ヒストグラム、平均、分散及び高次モーメント、線形結合、分類器及びカウントクエリを含む。そのようなアグリゲーションは、アグリゲータ１０４に対していかなる個々の参加者のデータも公開することなく、関心のある目標値を取得する必要がある。しかしながら、スター型ネットワーク１０２において、参加者１３２、１３４、１３６及び１３８からの暗号化データは、共通鍵を有しない。アグリゲータ１０４が共通鍵を配布する場合、参加者１３２、１３４、１３６及び１３８からのデータは、アグリゲータ１０４に公開されることになる。さらにまた、鍵管理エンティティはまた、アグリゲータ１０４に参加者１３２、１３４、１３６及び１３８からのデータを公開することができる。さらに、参加者１３２などの参加者が利用不可能になった場合、アグリゲータ１０４によって計算された関心のある目標値は、エラーが発生しやすくなる。
【００２５】
この問題を解決するために、アグリゲータ１０４は、参加者１３２、１３４、１３６及び１３８に関連して、ネットワーク１０２における暗号化データの耐故障性アグリゲーションを容易とする。参加者１３２、１３４、１３６及び１３８がアグリゲータ１０４についての入力データ１１２、１１４、１１６及び１１８をそれぞれ有すると仮定する。動作中において、アグリゲータ１０４は、参加者１３２、１３４、１３６及び１３８に対して大きな素数ｐを送信する。素数を受信すると、参加者１３２は、入力データ１１２及び秘密係数のセットを表す一定の係数を含む多項式を生成する。いくつかの実施形態において、多項式は、以下の形態とすることができる：ｐ（ｉ）（ｘ）＝ｄｉ＋ｐ１（ｉ）ｘ＋ｐ２（ｉ）ｘ２＋・・・＋ｐｎ（ｉ）ｘｎ  ｍｏｄ  ｐ。ここで、ｄｉは、入力データ１１２を表す。ｍ個の参加者が存在する場合、ｎ＜ｍである。「０」の値において多項式を評価することは、入力データ１１２（すなわち、ｐ（ｉ）（０）＝ｄｉ）を生み出すことにも留意すべきである。ここで、ｉは、参加者１３２に対応している。参加者１３２は、参加者１３２、１３４、１３６及び１３８についての参加者値１４２、１４４、１４６及び１４８をそれぞれ生成するために４つの個別の既知の点において多項式を評価する。ここで、各個別の点は、参加者に対応している。
【００２６】
参加者１３２は、参加者１３２、１３４、１３６及び１３８の公開鍵をそれぞれ使用して参加者値１４２、１４４、１４６及び１４８を暗号化する。個別の点ｊが参加者１３２に関連付けられていると仮定する。ｋｊが参加者１３２についての公開鍵である場合、参加者値１４２の暗号文と称される暗号化された参加者値１４２は、Ｅｋｊ（ｐ（ｉ）（ｊ））とすることができる。ここで、Ｅｋｊは、ｋｊに基づいて生成された暗号文を表す。そして、参加者１３２は、アグリゲータ１０４に対してＥｋｊ（ｐ（ｉ）（ｊ））を送信する。同様に、参加者１３２は、アグリゲータ１０４に対して参加者値１４４、１４６及び１４８の暗号文を送信する。いくつかの実施形態において、参加者とアグリゲータ１０４との間の通信は、メッセージを生成することと、メッセージに値を含めることと、メッセージについての出力を判定することと、出力ポートを介してメッセージを送信することとを含む。
【００２７】
同様に、参加者１３４は、参加者１３２、１３４、１３６及び１３８についての参加者値１５２、１５４、１５６及び１５８をそれぞれ生成するために、参加者１３２によって使用されるように同じ４つの個別の既知の点においてその多項式を評価する。同様にして、参加者１３６は、参加者１３２、１３４、１３６及び１３８についての参加者値１６２、１６４、１６６及び１６８をそれぞれ生成するために、同じ４つの個別の既知の点においてその多項式を評価する。参加者１３８は、参加者１３２、１３４、１３６及び１３８についての参加者値１７２、１７４、１７６及び１７８をそれぞれ生成するために、同じ４つの個別の既知の点においてその多項式を評価する。換言すれば、参加者１３２、１３４、１３６及び１３８は、同じ４つの個別の既知の点において多項式を評価する。参加者１３４は、参加者１３２、１３４、１３６及び１３８のそれぞれの公開鍵を使用して参加者値１５２、１５４、１５６及び１５８を暗号化する。同様に、参加者１３６は、参加者１３２、１３４、１３６及び１３８のそれぞれの公開鍵を使用して、参加者値１６２、１６４、１６６及び１６８を暗号化し、参加者１３８は、参加者値１７２、１７４、１７６及び１７８を暗号化する。そして、参加者１３２、１３４、１３６及び１３８は、アグリゲータ１０４に対して各暗号文を送信する。
【００２８】
図１Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける例示的な暗号化データアグリゲーションを図示している。暗号文を受信すると、アグリゲータ１０４は、全ての参加者から受信した特定の参加者についての暗号文を準同形に集計する。例えば、参加者値１４２、１５２、１６２及び１７２は、それぞれ、参加者１３２、１３４、１３６及び１３８からの参加者１３２についてのものである。アグリゲータ１０４は、参加者１３２についての関心のある暗号化された部分値１８０を生成するために参加者値１４２、１５２、１６２及び１７２の暗号文を準同形に集計する。いくつかの実施形態において、アグリゲータ１０４は、関心のある暗号化された不安定な部分値１８１を生成するために参加者１３２からの値をマスクするために関心のある暗号化された部分値１８０にランダム値１１０（例えば、加法的なランダム値）を加算する。
【００２９】
個別の点ｊが参加者１３２に関連付けられ且つアグリゲーション演算が加算である場合、アグリゲータ１０４は、関心のある暗号化された部分値１８０を取得するために、
【００３０】
【数１】
2017167531.tif 000003
【００３１】
を
【００３２】
【数２】
2017167531.tif 000004
【００３３】
として計算する。ここで、ｉは、参加者１３２、１３４、１３６及び１３８に対応しており、ｍ＝４である。アグリゲータ１０４によって生成されたランダム値１１０がｒｊである場合、関心のある暗号化された不安定な部分値１８１は、
【００３４】
【数３】
2017167531.tif 000005
【００３５】
となる。その結果、参加者１３２が関心のある暗号化された部分値１８１を復号したとき、参加者１３２は、
【００３６】
【数４】
2017167531.tif 000006
【００３７】
を取得することができない。このようにして、アグリゲータ１０４は、個別の既知の点ｊとして関心のある暗号化された部分値１８０を取得する。
【００３８】
関心のある暗号化された不安定な部分値１８１は、参加者１３２の公開鍵に基づいて暗号化されることから、アグリゲータ１０４は、参加者１３２に対して関心のある暗号化された不安定な部分値１８１を送信する。そして、参加者１３２は、関心のある復号された不安定な部分値１８２を取得するために関心のある暗号化された不安定な部分値１８１を復号する。関心のある復号された不安定な部分値１８２（例えば、
【００３９】
【数５】
2017167531.tif 000007
【００４０】
）は、関心のある実際の部分値（例えば、
【００４１】
【数６】
2017167531.tif 000008
【００４２】
）をマスクするためにランダム値を（例えば、ｒｊ）含むことに留意すべきである。参加者１３２は、アグリゲータ１０４に対して関心のある復号された不安定な部分値１８２を送信する。このようにして、参加者１３４、１３６及び１３８は、それぞれ、アグリゲータ１０４に対して関心のある復号された不安定な部分値１８４、１８６及び１８８を送信する。
【００４３】
関心のある復号された不安定な部分値１８２、１８４、１８６及び１８８を受信すると、アグリゲータ１０４は、関心のある対応する部分値１９２、１９４、１９６及び１９８を取得するために関心のある復号された不安定な部分値１８２、１８４、１８６及び１８８からランダム値を削除する。そして、アグリゲータ１０４は、個別の点についての係数を計算することができる。例えば、個別の点ｊについて、アグリゲータ１０４は、係数
【００４４】
【数７】
2017167531.tif 000009
【００４５】
を計算することができる。アグリゲータ１０４が少なくとも閾値（例えば、ｎ＋１）よりも多い多数の参加者から関心のある復号された部分値を受信した場合、アグリゲータ１０４は、目標多項式の係数を取得するために多項式補間を実行することができる。この目標多項式は、
【００４６】
【数８】
2017167531.tif 000010
【００４７】
の形式とすることができる。そして、アグリゲータ１０４は、関心のある目標値１９０を取得するために「０」の値において目標多項式を評価する。
【００４８】
スター型ネットワークにおいて、全ての参加者は、全ての時間オンラインではないことがある。参加者値の暗号文をアグリゲータ１０４に提供した後、参加者は、利用不可能になる（例えば、オフラインになる）ことがある。しかしながら、ｍ個の参加者のうち少なくともｎ＋１個の参加者（ここで、ｎ＜ｍ）が利用可能である場合、アグリゲータ１０４は、目標多項式の係数（例えば、ｑ１、ｑ２、・・・、ｑｎ）を導出するために多項式補間を使用することができる。アグリゲータは、関心のある目標値を取得するために「０」の値（すなわち、基準値）において目標多項式を評価するために導出係数を使用することができる。これは、（ｍ−ｎ−１）個の参加者が利用不可能になった場合であっても暗号化されたアグリゲーションプロセスに対する耐故障性を提供する。この耐故障性はまた、参加者数の動的な増減（すなわち、参加者の動的追加又は削除）を容易とする。
【００４９】
暗号化されたアグリケーションのための計算
図２Ａは、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とするアグリゲータの方法を図示するフローチャートである。動作中において、アグリゲータは、全ての参加者に対して大きな素数をブロードキャストする（動作２０２）。アグリゲータは、図１Ａに関連して説明したように、各参加者についての準同形暗号化方式に基づいて暗号化された暗号文のセットを受信する（動作２０４）。アグリゲータは、図１Ｂに関連して説明したように、受信した暗号文に基づいて各参加者についての関心のある暗号化された部分値を計算し（動作２０６）、対応する参加者に対して各参加者についての関心のある暗号化された部分値を送信する（動作２０８）。関心のある暗号化された部分値は、関心のある暗号化された不安定な部分値とすることができることに留意すべきである。
【００５０】
そして、アグリゲータは、各参加者から関心のある復号された部分値を受信し、受信した関心のある復号された部分値に基づいて、対応する参加者についての関心のある目標値を計算する（動作２１０）。アグリゲータは、アクティブな参加者数が閾値以上であるかどうかを確認する（動作２１２）。そうである場合、アグリゲータは、図１Ｂに関連して説明したように、関心のある目標値を計算するためにアクティブな参加者からの関心のある部分値に基づいて目標多項式を評価する（動作２１４）。
【００５１】
図２Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とする参加者の方法を図示するフローチャートである。動作中において、参加者は、アグリゲータから大きな素数を受信し（動作２５２）、大きな素数及びローカル入力値に基づいて多項式を生成する（動作２５４）。そして、参加者は、図１Ａに関連して説明したように、対応する参加者値を生成するために各参加者に関連付けられた個別の点において多項式を評価する（動作２５６）。
【００５２】
参加者は、準同形暗号化方式を使用して対応する参加者の公開鍵を使用して生成された各参加者値を暗号化することによって暗号文のセットを生成し（動作２５８）、アグリゲータに対して暗号文のセットを送信する（動作２６０）。そして、参加者は、参加者についての関心のある暗号化された部分値を受信する（動作２６２）。ここで、関心のある部分値は、参加者の公開鍵を使用して暗号化される。この関心のある暗号化された部分値は、関心のある暗号化された不安定な部分値とすることができる。そして、参加者は、図１Ｂに関連して説明したように、（例えば、参加者の秘密鍵を使用して）関心のある暗号化された部分値を復号し、アグリゲータに対して関心のある復号された部分値を送信する（動作２６４）。
【００５３】
階層的暗号化アグリゲーション
暗号化アグリゲーション技術の性能は、階層的計算に基づいてさらに改善することができる。図３は、本発明の実施形態にかかる、スター型ネットワークにおける例示的な階層的暗号化データアグリゲーションを図示している。この例において、アグリゲータ１０４は、少数の参加者を含む小さな群３０２、３０４、３０６及び３０８に参加者をグループ化することができる。そして、アグリゲータ１０４は、信頼できない難読化ツールとして各群における参加者の１つを選択する。アグリゲータ１０４は、図１Ａ及びＢに関連して説明したように、各群について暗号化アグリゲーション技術を実行する。各群の難読化ツールは、計算の各レベルにおいてその入力データに対してランダム値とすることができる難読化値を導入する。ｔ番目の群のｌ番目の参加者が難読化ツールであり且つｄｌ（ｔ）が入力値である場合、難読化ツールは、ランダム値（例えば、整数）ｓｔを選択し、入力値としてｄｌ（ｔ）＋Ｓｔを使用する。
【００５４】
例えば、参加者１３２、１３４及び１３６は、群３０６のメンバとすることができる。アグリゲータ１０４は、群３０６についての信頼できない難読化ツールとして参加者１３６を選択することができる。ここで、参加者１３６は、難読化値によってその入力データをマスクする。その結果、アグリゲータ１０４は、間違ったアグリゲーション群３０６を受信する。アグリゲータ１０４は、群３０６について暗号化アグリゲーション技術を実行する。しかしながら、群３０６の参加者は、難読化値に起因して誤ったアグリゲーションをアグリゲータ１０４に提供する。この最初のラウンドは、計算ラウンドと称することができる。次のラウンドにおいて、アグリゲータは、現在の参加者として難読化ツールを検討する。例えば、アグリゲータ１０４は、現在の参加者として以前のラウンドの難読化ツールである参加者１３６を検討する。
【００５５】
アグリゲータ１０４は、難読化ツール（すなわち、現在の参加者）を新たな群３１２及び３１４にグループ化し、各群についての難読化ツールを割り当てる。アグリゲータ１０４は、群３１４についての難読化ツールとして参加者１３６を割り当てる。この段階において、難読化ツールではない各現在の参加者は、入力データとして以前のラウンドのマスク動作を反転した値を使用する。群３１４において、参加者１３６を除く全ての参加者は、入力データとして以前のラウンドのマスク動作を反転した値を使用する。参加者が以前のラウンドの入力値としてｄｌ（ｔ）＋ｓｔを使用している場合、参加者は、入力値として（−ｓｔ）を使用する。そして、アグリゲータ１０４は、群３１２及び３１４についての暗号化アグリゲーション技術を再度実行する。
【００５６】
アグリゲータ１０４は、現在の参加者数が群の大きさ以下になるまでこのプロセスを継続する。これらの現在の参加者は、最終参加者と称することができる。そして、アグリゲータ１０４は、最終参加者を含む最終群３２０を形成する。このラウンドにおいて、アグリゲータ１０４は、最終群３２０についていかなる難読化ツールも選択せず、最終群３２０についての暗号化アグリゲーション技術を実行する。最終群３２０は、難読化ツールを有しないことから、残りの各参加者は、入力データとして以前のラウンドのマスク動作を反転した値を使用する（例えば、−ｓｔ）。その結果、最終群３２０についての暗号化アグリゲーション技術を実行した後、アグリゲータ１０４は、全ての参加者についての関心のある目標値を取得する。
【００５７】
階層的暗号化アグリゲーションの計算
図４Ａは、本発明の実施形態にかかる、スター型ネットワークにおける階層的暗号化データアグリゲーションを容易とするアグリゲータの方法を図示するフローチャートである。動作中において、アグリゲータは、現在の参加者を群に分割し、各群についての難読化ツールを割り当てる（動作４０２）。そして、アグリゲータは、現在のラウンドが計算ラウンドであるかどうかを確認する（動作４０４）。現在のラウンドが計算ラウンドである場合、アグリゲータは、現在の参加者からの関心のある復号された値に基づいて各群についての関心のある難読化された部分値を計算するために暗号化アグリゲーション技術を実行する（動作４０６）。関心のある復号された値は、難読化ツールからの難読化値を含む。
【００５８】
現在のラウンドが計算ラウンドでない場合、現在の参加者は、以前のラウンドの難読化ツールである。そして、アグリゲータは、参加者からの負の難読化値及び難読化ツールからの負の難読化値に基づいて、各群についての関心のある難読化された部分値を計算するために暗号化アグリゲーション技術を実行する（動作４０８）。暗号化アグリゲーション技術を実行すると（動作４０６又は４０８）、アグリゲータは、次のラウンドについての現在の参加者として現在の難読化ツールを促進する（動作４１０）。
【００５９】
アグリゲータは、現在の参加者数が群の大きさ以下であるかどうかを確認する。現在の参加者数が群の大きさ以下でない（すなわち、より多い）場合、アグリゲータは、現在の参加者を群に分割するように継続し、各群についての難読化ツールを割り当てる（動作４０２）。現在の参加者数が群の大きさ以下である場合、アグリゲータは、最終参加者として現在の参加者を割り当て、難読化ツールなしに最終群を形成する（動作４１４）。そして、アグリゲータは、最終参加者からの負の難読化値に基づいて各群についての関心のある目標値を計算するために暗号化アグリゲーション技術を実行する（動作４１６）。
【００６０】
図４Ｂは、本発明の実施形態にかかる、スター型ネットワークにおける階層的暗号化データアグリゲーションを容易とする参加者の方法を図示するフローチャートである。動作中において、参加者は、参加者が現在のラウンドについての難読化ツールであるかどうかを確認する（動作４５２）。参加者が現在のラウンドについての難読化ツールである場合、参加者は、難読化値を生成して入力値に加算し（動作４５４）、アグリゲータに対して関心のある復号された部分値を提供するように暗号化アグリゲーション技術を実行するために難読化された入力値を使用する（動作４５６）。
【００６１】
参加者が現在のラウンドについての難読化ツールでない（例えば、定期的な参加者である）場合、参加者は、現在のラウンドが計算ラウンドであるかどうかを確認する（動作４５８）。現在のラウンドが計算ラウンドである場合、参加者は、アグリゲータに対して関心のある復号された部分値を提供するように暗号化アグリゲーション技術を実行するために入力値を使用する（動作４６０）。一方、現在のラウンドが計算ラウンドでない場合、参加者は、アグリゲータに対して関心のある復号された部分値を提供するように暗号化アグリゲーション技術を実行するために入力値として負の難読化値を使用する（動作４６２）。
【００６２】
例示的なコンピュータ及び通信システム
図５は、本発明の実施形態にかかる、スター型ネットワークにおける暗号化データアグリゲーションを容易とする例示的な分散型コンピュータ及び通信システムを図示している。分散計算システム５００は、コンピューティング装置５０４と、ユーザ装置５５０とを含む。コンピューティング装置５０４は、スター型ネットワーク５１０に結合されたアグリゲータとして動作することができる。ユーザ装置５５０は、ネットワーク５１０に結合された参加者として動作することができる。
【００６３】
コンピューティング装置５０４は、プロセッサ５１２と、メモリ５１４と、記憶装置５２０とを含む。メモリ５１４は、管理メモリとして機能する揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））を含むことができ、１つ以上のメモリプールを記憶するために使用されることができる。さらにまた、コンピューティング装置５０４は、表示装置５４６、キーボード５４２及びポインティング装置５４４に結合されることができる。記憶装置５２０は、オペレーティングシステム５２２、アグリゲーションシステム５３０及びデータ５２４を記憶することができる。データ５２４は、ユーザ装置５５０から受信した任意のデータと、アグリゲーションシステム５３０によって計算されたデータとを含むことができる。アグリゲーションシステム５３０は、コンピューティング装置５０４がアグリゲータとして動作するのを可能とする。
【００６４】
アグリゲーションシステム５３０は、コンピューティング装置５０４によって実行されたとき、本開示に記載された方法及び／又は処理をコンピューティング装置５０４に実行させることができる命令を含むことができる。具体的には、アグリゲーションシステム５３０は、ユーザ装置５５０に対してメッセージを送信し且つユーザ装置５５０からメッセージを受信する命令を含むことができる（通信機構５３２）。例えば、アグリゲーションシステム５３０は、ユーザ装置５５０に対して大きな素数を送信することができる。アグリゲーションシステム５３０はまた、（例えば、準同形暗号化方式に基づいて）関心のある部分的な暗号化された値、関心のある難読化された部分的な暗号化された値、及び関心のある目標の暗号化された値を計算する命令を含むことができる（計算機構５３４）。アグリゲーションシステム５３０は、（例えば、多項式補間に基づいて）目標多項式の係数を計算する命令を含むことができる（補間機構５３６）。
【００６５】
ユーザ装置５５０は、プロセッサ５５２と、メモリ５５４と、記憶装置５６０とを含む。メモリ５５４は、管理メモリとして機能する揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））を含むことができ、１つ以上のメモリプールを記憶するために使用されることができる。記憶装置５６０は、オペレーティングシステム５６２、参加者システム５７０及びデータ５６４を記憶することができる。データ５６４は、コンピューティング装置５０４から受信した任意のデータと、参加者システム５７０によって計算されたデータとを含むことができる。参加者システム５７０は、ユーザ装置５５０が参加者として動作するのを可能とする。
【００６６】
参加者システム５７０は、ユーザ装置５５０によって実行されたとき、本開示に記載された方法及び／又は処理をユーザ装置５５０に実行させることができる命令を含むことができる。具体的には、参加者システム５７０は、コンピューティング装置５０４に対してメッセージを送信し且つコンピューティング装置５０４からのメッセージを受信する命令を含むことができる（通信機構５７２）。参加者システム５７０はまた、多項式を生成し且つ異なる参加者についての多項式を評価する命令を含むことができる（多項式管理機構５７４）。参加者システム５７０は、準同形公開鍵暗号化方式に基づいてデータを暗号化及び復号する命令を含むことができる（暗号化機構５７６）。
【００６７】
いくつかの実施形態において、コンピューティング装置５０４及びユーザ装置５５０は、階層的暗号化アグリゲーション技術に参加する。そして、アグリゲーションシステム５３０は、群を作成し且つ各群についての難読化ツールを割り当てる命令を含むことができる（群管理機構５３８）。そして、アグリゲーションシステム５３０はまた、ユーザ装置５５０からの関心のある部分値をマスキングする命令を含むことができる（群管理機構５３８）。一方、参加者システム５７０は、その後、難読化ツールとして参加者システム５７０を動作させる命令を含むことができる（難読化機構５７８）。そのような命令は、難読化値によってユーザ装置５５０の入力値をマスクし且つユーザ装置５５０の入力値として負の難読化値を使用する命令を含む。
【００６８】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体とすることができるコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、及びディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られている又は今後開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００６９】
詳細な説明のセクションに記載された方法及び処理は、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化されることができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具体化され且つコンピュータ読み取り可能な記憶媒体内に記憶された方法及び処理を実行する。
【００７０】
さらにまた、上述した方法及び処理は、ハードウェアモジュール又は装置に含めることができる。ハードウェアモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュール若しくは特定の時点でコードの一部を実行する専用又は共用プロセッサ、及び、現在知られている又は今後開発される他のプログラマブル論理装置を含むことができる。ハードウェアモジュール又は装置は、起動されると、それらの中に含まれる方法及び処理を実行する。
【図１Ａ】
2017167531.tif 000011
【図１Ｂ】
2017167531.tif 000012
【図２Ａ】
2017167531.tif 000013
【図２Ｂ】
2017167531.tif 000014
【図３】
2017167531.tif 000015
【図４Ａ】
2017167531.tif 000016
【図４Ｂ】
2017167531.tif 000017
【図５】
2017167531.tif 000018