IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特表2024-515332秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム
<>
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図1
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図2
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図3
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図4
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図5
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図6
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図7
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図8
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図9
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図10
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図11
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図12
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図13
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図14
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図15
  • 特表-秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-08
(54)【発明の名称】秘匿マルチパーティ計算に基づく極値の決定方法、装置、コンピュータ機器及びコンピュータプログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240401BHJP
【FI】
G09C1/00 650Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023566958
(86)(22)【出願日】2022-07-27
(85)【翻訳文提出日】2023-10-30
(86)【国際出願番号】 CN2022108090
(87)【国際公開番号】W WO2023020216
(87)【国際公開日】2023-02-23
(31)【優先権主張番号】202110946118.3
(32)【優先日】2021-08-18
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ヨン
(72)【発明者】
【氏名】ジャン,ジー
(72)【発明者】
【氏名】リウ,シュー
(72)【発明者】
【氏名】リウ,ユホン
(72)【発明者】
【氏名】チェン,ポン
(72)【発明者】
【氏名】タオ,ヤンギュー
(57)【要約】
データセキュリティの技術分野に関する、秘匿マルチパーティ計算に基づく極値の決定方法、装置、機器及び記憶媒体を提供する。該方法は、t番目のラウンドの連合計算により得られたt番目の平均値を取得するステップと、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、第iのノード機器の有効ノードデータがt番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行うステップと、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の有効ノードデータが極値であると決定するステップと、を含む。該方法によれば、ノード機器は、プライバシーデータ及び各データ間の大小関係を漏洩する必要がなく、秘匿マルチパーティ計算に基づく平均値の計算方法により、暗号化及び復号の操作と関係がなく、計算複雑度及び通信オーバーヘッドが比較的に小さく、計算効率を向上させることができる。
【選択図】図2
【特許請求の範囲】
【請求項1】
連合計算システムにおける第iのノード機器が実行する、秘匿マルチパーティ計算に基づく極値の決定方法であって、前記連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数であり、該決定方法は、
t番目のラウンドの連合計算により得られたt番目の平均値を取得するステップであって、前記t番目の平均値は、前記n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、前記n個のノードデータは、m個の有効ノードデータを含み、前記平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である、ステップと、
前記第iのノード機器の有効ノードデータが前記t番目の平均値よりも大きい場合、前記第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、前記第iのノード機器の有効ノードデータが前記t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行うステップと、
n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定するステップと、を含む、方法。
【請求項2】
前記第iのノード機器の有効ノードデータが前記t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行うステップは、
前記第iのノード機器の有効ノードデータが前記t番目の平均値よりも小さい場合、前記無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、前記第iのノード機器に対応する有効ノードデータが極値ではないと決定するステップと、
前記第iのノード機器の有効ノードデータが前記t番目の平均値に等しい場合、前記無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、t+1番目の平均値と前記無効ノードデータとの関係に基づいて極値を決定するステップと、を含む、請求項1に記載の方法。
【請求項3】
前記t+1番目の平均値と前記無効ノードデータとの関係に基づいて極値を決定するステップは、
前記t+1番目の平均値が前記無効ノードデータよりも大きい場合、前記第iのノード機器に対応する有効ノードデータが極値ではないと決定するステップと、
前記t+1番目の平均値が前記無効ノードデータに等しく、且つt+1がn-1である場合、前記第iのノード機器の有効ノードデータが極値であると決定するステップと、
前記t+1番目の平均値が前記無効ノードデータに等しく、且つt+1がn-1よりも小さい場合、前記無効ノードデータと後続の連合計算により得られた平均値との関係に基づいて極値を決定するステップと、を含む、請求項2に記載の方法。
【請求項4】
前記第iのノード機器は第1のノード機器であり、
前記t番目のラウンドの連合計算により得られたt番目の平均値を取得するステップは、
第1の乱数を生成するステップと、
第1のノードデータと前記第1の乱数との和を第1のデータ和として計算し、前記第1のデータ和を第2のノード機器に送信するステップであって、前記第2のノード機器は、第2のデータ和を計算し、前記第2のデータ和を第3のノード機器に送信し、前記第2のデータ和は、前記第1のデータ和と第2のノードデータとの和である、ステップと、
第nのノード機器により送信された第nのデータ和を受信するステップであって、前記第nのデータ和は、n個のノードデータと前記第1の乱数との和である、ステップと、
前記第nのデータ及び前記第1の乱数に基づいて前記t番目の平均値を決定するステップと、を含む、請求項1乃至3の何れかに記載の方法。
【請求項5】
第j-1のノード機器により送信された第j-1のデータ和を受信するステップであって、前記第j-1のデータ和は、第1のノードデータ乃至第j-1のノードデータと前記第1の乱数との和であり、jは1よりも大きく、且つn以下の整数である、ステップと、
前記第j-1のデータ和に基づいて第jのデータ和を決定するステップであって、前記第jのデータ和は、前記第j-1のデータ和と前記第jのノードデータとの和であり、第jのノードデータは、前記第jのノード機器の有効ノードデータ又は無効ノードデータである、ステップと、
jがnに等しくない場合、前記第jのデータ和を第j+1のノード機器に送信し、jがnに等しい場合、前記第jのデータ和を前記第1のノード機器に送信するステップと、をさらに含む、請求項4に記載の方法。
【請求項6】
前記t番目のラウンドの連合計算により得られたt番目の平均値を取得するステップは、
n-1個の乱数を生成するステップであって、前記n-1個の乱数の和は第iのノードデータであり、前記第iのノードデータは、前記第iのノード機器の有効ノードデータ又は無効ノードデータである、ステップと、
前記n-1個の乱数をそれぞれ他のn-1個のノード機器に送信するステップであって、各ノード機器は、前記第iのノード機器により送信された1個の乱数を受信する、ステップと、
前記他のn-1個のノード機器によりそれぞれ送信された乱数を受信し、受信したn-1個の乱数の和を第iのデータ和として計算するステップと、
前記第iのデータ和を前記他のn-1個のノード機器にそれぞれ送信するステップと、
前記他のn-1個のノード機器により送信されたn-1個のデータ和を受信し、受信したn-1個のデータ和及び前記第iのデータに基づいて前記t番目の平均値を決定するステップと、を含む、請求項1乃至3の何れかに記載の方法。
【請求項7】
t+1はn-1であり、前記t番目のラウンドの連合計算により得られたt番目の平均値を取得した後に、前記方法は、
第2の乱数を生成するステップであって、前記第2の乱数は正の数である、ステップと、
前記第2の乱数を第i+1のノード機器に送信するステップであって、前記第i+1のノード機器は、第1のデータ積を計算し、前記第1のデータ積を第i+2のノード機器に送信し、前記第1のデータ積は、前記第2の乱数と第i+1のノード機器の有効ノードデータとの積である、ステップと、
第i-1のノード機器により送信された第n-1のデータ積を受信するステップであって、前記第n-1のデータ積は、前記n個のノード機器のうちの前記第iのノード機器以外のn-1個のノード機器の有効ノードデータと前記第2の乱数との積である、ステップと、
前記第iのノード機器の有効ノードデータのn-1乗と前記第n-1のデータ積との差に基づいて、数値比較演算子を決定するステップと、
前記数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第iのノードデータがn-2番目の平均値以上である場合、前記第iのノード機器に対応する有効ノードデータが極値であると決定するステップであって、前記第iのノードデータは有効ノードデータ又は無効ノードデータである、ステップと、をさらに含む、請求項1乃至3の何れかに記載の方法。
【請求項8】
nは3であり、t+1は2であり、前記第iのノード機器は第2のノード機器であり、前記t番目のラウンドの連合計算により得られたt番目の平均値を取得した後に、前記方法は、
第3の乱数を生成するステップであって、前記第3の乱数は正の数である、ステップと、
前記第3の乱数又は前記第3の乱数の逆数を第3のノード機器に送信し、第1の積を第1のノード機器に送信するステップであって、前記第1の積は、前記第3の乱数と第2のノード機器の有効ノードデータとの積であり、前記第3のノード機器は、第2の積を計算し、前記第2の積を前記第1のノード機器に送信し、前記第2の積は、前記第3の乱数の逆数と第3のノード機器の有効ノードデータとの積であり、前記第1のノード機器は、前記第1の積及び前記第2の積を受信し、前記第1の積及び前記第2の積に基づいて第1の数値比較演算子を計算し、前記第1の数値比較演算子は、前記第1のノード機器の有効ノードデータの2乗と第3の積との差であり、前記第3の積は、第2のノードデータと第3のノードデータとの積である、ステップと、をさらに含む、請求項1乃至3の何れかに記載の方法。
【請求項9】
前記第3のノード機器により送信された第4の積及び前記第1のノード機器により送信された第5の積を受信するステップであって、前記第3のノード機器は、第4の乱数を生成し、前記第4の乱数を前記第1のノード機器に送信し、前記第1のノード機器は、前記第4の乱数に基づいて前記第5の積を決定し、前記第4の積は、前記第3のノード機器の有効ノードデータと前記第4の乱数との積であり、前記第5の積は、前記第4の乱数の逆数と前記第1のノード機器の有効ノードデータとの積である、ステップと、
前記第4の積及び前記第5の積に基づいて第2の数値比較演算子を計算するステップであって、前記第2の数値比較演算子は、前記第2のノード機器の有効ノードデータの2乗と第6の積の差であり、前記第6の積は、前記第1のノード機器の有効ノードデータと前記第3のノード機器の有効ノードデータとの積である、ステップと、
前記第2の数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第2のノードデータがn-2番目の平均値以上である場合、前記第2のノード機器に対応する有効ノードデータが極値であると決定するステップであって、前記第2のノードデータは、前記第2のノード機器の有効ノードデータ又は前記無効ノードデータである、ステップと、をさらに含む、請求項8に記載の方法。
【請求項10】
nが3より大きい場合、グループ分け方式で前記n個のノード機器を少なくとも1つの層の機器グループに分けるステップであって、各層の機器グループは、少なくとも3つの上位層の機器グループを含み、第1の層の機器グループの各機器グループは、1つのノード機器又は少なくとも3つのノード機器により構成される、ステップと、
前記第iのノード機器の有効ノードデータが第mの層の機器グループにおける前記第iのノード機器の参加先グループの極値である場合、前記第iのノード機器の有効ノードデータに基づいて第m+1の層の機器グループ間の連合計算を行うステップであって、mは正の整数である、ステップと、
前記第iのノード機器の有効ノードデータが最後の層の機器グループにおける各有効機器ノードの極値である場合、前記第iのノード機器の有効ノードデータがn個のノード機器のn個の有効ノードデータのうちの極値であると決定するステップと、をさらに含む、請求項1乃至3の何れかに記載の方法。
【請求項11】
前記t番目のラウンドの連合計算により得られたt番目の平均値を取得する前に、前記方法は、
最大値計算指令に応答して、前記第iのノード機器の元の有効ノードデータを前記第iのノード機器の有効ノードデータとして決定するステップ、をさらに含み、
前記n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定するステップは、
n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータが前記n-1番目の平均値以上である場合、前記第iのノード機器の元の有効ノードデータが最大値であると決定するステップ、を含む、請求項1乃至3の何れかに記載の方法。
【請求項12】
前記t番目のラウンドの連合計算により得られたt番目の平均値を取得する前に、前記方法は、
最小値計算指令に応答して、前記第iのノード機器の元の有効ノードデータの反数を前記第iのノード機器の有効ノードデータとして決定するステップ、をさらに含み、
前記n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定するステップは、
n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータが前記n-1番目の平均値以上である場合、前記第iのノード機器の元の有効ノードデータが最小値であると決定するステップ、を含む、請求項1乃至3の何れかに記載の方法。
【請求項13】
秘匿マルチパーティ計算に基づく極値の決定装置であって、
t番目のラウンドの連合計算により得られたt番目の平均値を取得する第1の取得モジュールであって、前記t番目の平均値は、n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、前記n個のノードデータは、m個の有効ノードデータを含み、前記平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である、第1の取得モジュールと、
第iのノード機器の有効ノードデータが前記t番目の平均値よりも大きい場合、前記第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う第1の計算モジュールと、
前記第iのノード機器の有効ノードデータが前記t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う第2の計算モジュールと、
n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定する第1の決定モジュールと、を含む、装置。
【請求項14】
プロセッサと、少なくとも1つの命令、少なくとも1つのプログラム、コードセット又は命令セットが記憶されたメモリと、を含むコンピュータ機器であって、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コードセット又は命令セットは、請求項1乃至3の何れかに記載の秘匿マルチパーティ計算に基づく極値の決定方法を実現するように、前記プロセッサによりロードされて実行される、コンピュータ機器。
【請求項15】
命令を含むコンピュータプログラムであって、前記命令は、コンピュータにおいて実行される際に、コンピュータに請求項1乃至3の何れかに記載の秘匿マルチパーティ計算に基づく極値の決定方法を実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2021年8月18日に出願した出願番号が2021109461183であり、発明の名称が「秘匿マルチパーティ計算に基づく極値の決定方法、装置、機器及び記憶媒体」である中国特許出願に基づく優先権を主張し、その全ての内容を参照により本発明に援用する。
【0002】
本発明の実施例は、データセキュリティの技術分野に関し、特に秘匿マルチパーティ計算に基づく極値の決定の技術に関する。
【背景技術】
【0003】
秘匿マルチパーティ計算の研究は、主に、信頼可能な第三者がいない場合にどのように約束関数を安全に計算するかに関するものである。秘匿マルチパーティ計算は、安全なデータ協力及び融合応用を実現することができ、データがドメイン外に出ず、合法的に準拠する前提でマルチパーティのデータソースを連合して計算、分析、学習を行い、データ価値の共有を実現する。
【0004】
関連技術では、秘匿マルチパーティ計算に基づく極値を決定することは、少なくとも2つの参加者がそれぞれ異なるデータを所有し、且つそれぞれの所有するデータのサイズを比較して、最大値又は最小値を計算する必要があることを意味する。マルチパーティのデータサイズの比較方法は、通常、紛失通信(Oblivious Transfer:OT)技術又は準同型暗号化技術に基づいて実装される。
【0005】
しかし、紛失通信に基づくサイズ比較方法は、計算複雑度が低いが、二者のデータ比較のみをサポートし、マルチパーティのシナリオに拡張すると、比較的に多くの通信インタラクションを実行する必要があり、通信オーバーヘッドが大きく、効率が低く、クロス公衆網通信の応用シナリオに適用しない。準同型暗号化技術に基づくサイズ比較方法は、計算複雑度が比較的に高く、実際の応用価値が低い。
【発明の概要】
【0006】
本発明の実施例は、秘匿マルチパーティ計算に基づく極値を決定するための計算複雑度及び通信オーバーヘッドを低減させることができる、秘匿マルチパーティ計算に基づく極値の決定方法、装置、機器及び記憶媒体を提供する。その技術的手段は、以下の通りである。
【0007】
1つの態様では、連合計算システムにおける第iのノード機器が実行する、秘匿マルチパーティ計算に基づく極値の決定方法であって、前記連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数であり、該決定方法は、t番目のラウンドの連合計算により得られたt番目の平均値を取得するステップであって、前記t番目の平均値は、前記n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、前記n個のノードデータは、m個の有効ノードデータを含み、前記平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である、ステップと、前記第iのノード機器の有効ノードデータが前記t番目の平均値よりも大きい場合、前記第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、前記第iのノード機器の有効ノードデータが前記t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行うステップと、n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定するステップと、を含む、方法を提供する。
【0008】
もう1つの態様では、秘匿マルチパーティ計算に基づく極値の決定装置であって、t番目のラウンドの連合計算により得られたt番目の平均値を取得する第1の取得モジュールであって、前記t番目の平均値は、n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、前記n個のノードデータは、m個の有効ノードデータを含み、前記平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である、第1の取得モジュールと、第iのノード機器の有効ノードデータが前記t番目の平均値よりも大きい場合、前記第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う第1の計算モジュールと、前記第iのノード機器の有効ノードデータが前記t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う第2の計算モジュールと、n-1番目のラウンドの連合計算の後、前記第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、前記第iのノード機器の有効ノードデータが極値であると決定する第1の決定モジュールと、を含む、装置を提供する。
【0009】
もう1つの態様では、プロセッサと、少なくとも1つの命令、少なくとも1つのプログラム、コードセット又は命令セットが記憶されたメモリと、を含むコンピュータ機器であって、前記少なくとも1つの命令、前記少なくとも1つのプログラム、前記コードセット又は命令セットは、上記の態様に記載の秘匿マルチパーティ計算に基づく極値の決定方法を実現するように、前記プロセッサによりロードされて実行される、コンピュータ機器を提供する。
【0010】
もう1つの態様では、少なくとも1つのコンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、上記の態様に記載の秘匿マルチパーティ計算に基づく極値の決定方法を実現するように、プロセッサによりロードされて実行される、記憶媒体を提供する。
【0011】
本発明の1つの態様では、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供する。コンピュータ機器のプロセッサは、該コンピュータ機器に上記の態様に記載の秘匿マルチパーティ計算に基づく極値の決定方法を実行させるように、コンピュータ読み取り可能な記憶媒体からコンピュータ命令を読み取って実行する。
【0012】
本発明の実施例の技術的手段は、少なくとも以下の有利な効果を奏する。
【0013】
本発明の実施例では、n個のノード機器に対応するデータの平均値を計算し、各ノード機器は、自分のデータと現在のラウンドの連合計算の平均値の大きさとを比較することで、自分のデータが平均値よりも小さい場合、自分のデータが極値ではないと判断し、平均値以上である場合、有効ノードデータを無効ノードデータに置き換えて次のラウンドの平均値計算を行いことができる。これによって、連合計算の平均値を収束させ、即ち、極値に段々接近させることができるため、n-1番目のラウンドの時に結果を取得し、秘匿マルチパーティ計算に基づく極値の決定の問題を有効に解決することができる。また、ノード機器は、プライバシーデータ及び各データ間の大小関係を漏洩する必要がなく、秘匿マルチパーティ計算に基づく平均値の計算方法により、暗号化及び復号の操作と関係がなく、計算複雑度及び通信オーバーヘッドが比較的に小さく、計算効率を向上させることができる。
【図面の簡単な説明】
【0014】
図1】本発明の実施例に係る実施環境の概略図である。
図2】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図3】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図4】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図5】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図6】本発明の実施例に係る秘匿三者間計算に基づく平均値の計算の概略図である。
図7】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図8】本発明の実施例に係る秘匿三者間計算に基づく平均値の計算の概略図である。
図9】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図10】本発明の実施例に係る秘匿三者間計算に基づく極値の決定の概略図である。
図11】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図12】本発明の実施例に係る秘匿三者間計算に基づく極値の決定の概略図である。
図13】本発明の実施例に係る多層の機器グループのグループ分けの概略図である。
図14】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。
図15】本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定装置の構成を示すブロック図である。
図16】本発明の実施例に係るコンピュータ機器の構成を示すブロック図である。
【発明を実施するための形態】
【0015】
以下は、本発明の目的、技術的手段及び利点をより明確にするために、図面を参照しながら本発明の実施形態を更に詳細に説明する。
【0016】
まず、本発明の実施例に関連する用語を説明する。
【0017】
1)秘匿マルチパーティ計算:n個の参加者P、P、…、Pが存在し、そのうち、参加者Pは入力データXを有し、如何なる他の参加者に自分の入力データを漏洩せず、如何なる信頼可能な機関の協力を借りずに、該n個の参加者は、共同で関数f(X、X、…、X)を計算する。秘匿マルチパーティ計算は、豊富な理論基礎があり、暗号学(例えば準同型暗号化)、秘密共有、差分プライバシーなどの様々なセキュリティメカニズムを応用することによって、入力データの安全性を保証し、既に理論研究段階から工程化及び大規模の応用実装段階に入った。
【0018】
2)秘密共有:秘密共有は、秘密を分割して保存する暗号技術であり、リスクを分散し、侵入を容認するように秘密が過度に集中することを回避することを目的とし、情報セキュリティ及びデータプライバシーにおいて重要な手段である。秘密共有の考え方は、適切な方法で秘密を分割することであり、分割された各共有部分は異なる参加者により管理され、個々の参加者は秘密情報を回復することができず、複数の参加者が協力して秘密情報を回復することができる。さらに重要なこととして、これらの対応する範囲内の参加者の何れかに問題が発生した場合であっても、秘密を完全に復元することができる。
【0019】
近年、ユーザのプライバシー、データセキュリティ、合法的なコンプライアンス、ビジネス上の競合などの要因により、分散したデータソースを計算、分析、学習のために合法的に統合することが困難である。このような背景では、秘匿マルチパーティ計算(Secure Multi-party Computation:MPC)に基づく解決手段が急速に発展しており、該解決手段により、分散しているデータソースを1つにまとめる必要がなく、複数の分散しているデータソースを連携させて連合計算、連合データ分析、連合機械学習を行うことができる。秘匿マルチパーティ計算は、安全なデータ協力及び融合応用を実現することができ、データがドメイン外に出ず、合法的に準拠する前提で、マルチパーティのデータソースを連合して計算、分析、学習を行い、データ価値の共有を実現することができる。関連技術では、秘匿マルチパーティ計算を実現するスキームは、通常、計算複雑度が高く、通信オーバーヘッドが大きいなどの問題がある。
【0020】
上記の技術的問題を解決するために、本発明の実施例は、半正直(semi-honest)セキュリティモデルを提案する。半正直セキュリティモデルでは、各参加者のデータが漏洩しないことを保証することができる。半正直なセキュリティモデルは、正直だが好奇心が強い(honest-but-curious)セキュリティモデルとも称され、参加者A及び参加者Bの両方がデータサイズの比較及び同等のテストを厳格に遵守し、悪意を持って該プロトコルから逸脱したり、悪意を持って相手を積極的に攻撃したりすることはないが、参加者が該プロトコルの実行中にさらなる多い情報を取得しようとする可能性はある。
【0021】
図1は、本発明の実施例に係る連合計算システムを示すブロック図である。該連合計算システムは、n個のノード機器(参加者とも称される)、即ち、ノード機器P、ノード機器P、…、ノード機器Pを含み、nは2よりも大きい整数である。任意のノード機器は、独立した物理サーバであってもよいし、複数の物理サーバにより構成されたサーバクラスタ又は分散型システムであってもよいし、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、コンテンツ配信ネットワーク(Content Delivery Network:CDN)、並びにビッグデータ及び人工知能プラットフォームなどの基礎クラウドコンピューティングサービスを提供するクラウドサーバであってもよい。また、任意の2つのノード機器は、例えば異なる会社のデータソース又は同一の会社の異なる部門のデータソースなどの異なるデータソースを有する。異なるノード機器には、異なるデータが記憶されている。異なるノード機器間は、無線ネットワーク又は有線ネットワークを介して接続されている。
【0022】
n個のノード機器にはそれぞれ自分のデータが格納されており、該データを漏洩することはできない。連合計算システムにおけるノード機器が極値を決定する必要がある場合、各ノード機器は、まず、秘匿マルチパーティ計算により平均値を求め、そして、自分のデータと平均値との大小関係を比較することによって、自分のデータが平均値よりも小さい場合、極値ではないと決定して、このラウンドの計算において「除外された」データを確定した後に、「失格した」データを無効ノードデータに置き換えて(例えば、0に置き換えて)次のラウンドの平均値計算に参加する。また、各ラウンドの計算後に少なくとも1つのノード機器のデータが「除外される」ため、平均値計算時の平均係数が連合計算のラウンド数の増加につれて減少するように制御して、平均値の計算を収束させることによって、極値でないデータを逐次に「除外する」ことができる。該プロセスにおいて、各参加者のデータを漏洩することがなく、インタラクションの回数が少なく、暗号化及び復号の演算を行う必要がないため、通信オーバーヘッドが小さく、計算効率が高い。
【0023】
1つの好ましい態様では、上記の連合計算システムにおける複数のノード機器は、ブロックチェーンとして構成されてもよく、ノード機器は、ブロックチェーン上のノードであり、秘匿マルチパーティ計算に基づく極値を決定するプロセスに関連するデータは、ブロックチェーンに保存されてもよい。
【0024】
図2は、本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。該方法は、以下のステップを含む。
【0025】
ステップ201において、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。
【0026】
t番目の平均値は、n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、n個のノードデータは、m個の有効ノードデータを含み、平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である。
【0027】
連合計算システムにおける各ノード機器は、まず、秘匿マルチパーティ計算により平均値を求め、そして、自分のデータと平均値との大小関係を比較する(ここで、平文で比較する)ことによって、自分のデータが平均値よりも小さい場合、極値ではないと決定して、このラウンドの計算において「除外された」(平均値以下の)データを確定した後に、「失格した」データを無効ノードデータに置き換えて(例えば、0に置き換えて)次のラウンドの平均値計算に参加する。また、各ラウンドの計算後に少なくとも1つのノード機器のデータが「除外される」ため、平均値計算時の平均係数(即ち、平均値計算の分母)が連合計算のラウンド数の増加につれて減少するように制御して、平均値の計算を収束させることによって、極値でないデータを逐次に「除外する」ことができる。
【0028】
1つの可能な態様では、連合計算システムは、n個のノード機器のノードデータ及び平均係数に基づいて秘匿マルチパーティ計算を行い、現在のラウンド、即ち、t番目のラウンドの連合計算のt番目の平均値を取得する。ここで、n個のノードデータは、直前のラウンドの除外されていない有効ノードデータ、及び無効ノードデータを含む。ここで、有効ノードデータは、ノード機器が所有するデータの真実値であり、無効ノードデータは、t番目のラウンドの連合計算前に平均値以下の有効ノードデータを置き換えるために使用され、例えば無効ノードデータは0であり、対応するノード機器が後続の平均値計算に参加しないことを意味する。
【0029】
例えば、各ラウンドの連合計算後に少なくとも1つのノード機器の有効ノードデータはt番目の平均値以下であり、即ち、少なくとも1つの有効ノードデータは無効ノードデータに置き換えられるが、データの秘密性のため、各ノード機器は、自分のデータが除外されたか否かを把握できるだけであり、本ラウンドの計算後に実際に除外されたデータ(即ち、実際には平均値より小さい有効ノードデータがいくつあるか)を把握することができない。このため、平均係数を(n+1-t)に設定し、2番目のラウンドから、各ラウンドの平均値計算において少なくとも1つのデータを除外し、平均係数ラウンドごとに逓減し、n-1番目のラウンドの時に最大2つの有効ノードデータしか存在しないことを確保する。従って、t番目の平均値Mの計算式は、M=(X+X+…+X)/(n+1-t)であり、ここで、Xは、第iのノード機器が平均値計算に参加するために使用するデータ(有効ノードデータ又は無効ノードデータ)であり、ここで、1番目のラウンドの計算において、Xは全て有効ノードデータである。
【0030】
ステップ202において、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0031】
第iのノード機器の有効ノードデータがt番目の平均値より大きいことは、該有効ノードデータが極値である可能性があることを意味する。従って、第iのノード機器は、その有効ノードデータが除外されるまで、即ち、その有効ノードデータがあるラウンドの平均値以下になるまで、又は極値として決定されるまで、その有効ノードデータに基づいて、次のラウンド(t+1番目のラウンド)の連合計算を行い続けてもよい。
【0032】
ステップ203において、第iのノード機器の有効ノードデータがt番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0033】
第iのノード機器の有効ノードデータがt番目の平均値以下である場合、第iのノード機器は、有効ノードデータの代わりに無効ノードデータを用いて次の平均値計算を行う。
【0034】
なお、第iのノード機器の有効ノードデータがt番目の平均値より小さい場合、第iのノード機器は、有効ノードデータが極値ではないと決定でき、その後に無効ノードデータに基づいて平均値の計算に参加すればよく、大小関係の比較を行う必要がない。一方、第iのノード機器の有効ノードデータがt番目の平均値に等しい場合、該データが極値であり、且つ、他のノード機器の有効ノードデータが同様に極値である場合、即ち、少なくとも2つのノードの所有するデータが等しく、且つ最大である場合がある。平均値計算が収束するように、平均値が最大値よりも大きい場合(平均係数がラウンドごとに逓減するからである)を回避するために、第iのノード機器の有効ノードデータがt番目の平均値に等しい場合、第iのノード機器は、同様に有効ノードデータを無効ノードデータに置き換えて次の平均値計算を行うが、依然として大小関係の比較を行う必要がある。
【0035】
例えば、4つのデータ「1、2、3、4」について、1番目のラウンドで算出された平均値が5/2であり、3と4が5/2より大きい場合、2番目のラウンドでは、3と4は依然として計算に参加し、1と2は0に置き換えられ、平均係数は1を減算し、(0+0+3+4)/3を計算する。
【0036】
ステップ204において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の有効ノードデータが極値であると決定する。
【0037】
tが(n-1)である場合、各ラウンドに少なくとも1つの有効ノードデータが無効ノードデータに置き換えられるため、n-1ラウンドは、最大2つの有効ノードデータしかなく、且つ平均係数mは2であるため、n-1番目のラウンドの連合計算を行った後、極値の計算結果を得ることができる。第iのノード機器の有効ノードデータは前の(n-2)ラウンドに平均値よりも大きく、且つ(n-1)番目のラウンドに(2つの等しい最大値が対応して存在する場合に等しい)(n-1)番目の平均値以上である場合、その有効ノードデータは極値である。
【0038】
上述したように、本発明の実施例では、n個のノード機器に対応するデータの平均値を計算し、各ノード機器は、自分のデータと現在のラウンドの連合計算の平均値の大きさとを比較することで、自分のデータが平均値よりも小さい場合、自分のデータが極値ではないと判断し、平均値以上である場合、有効ノードデータを無効ノードデータに置き換えて次のラウンドの平均値計算を行いことができる。これによって、連合計算の平均値を収束させ、即ち、極値に段々接近させることができるため、n-1番目のラウンドの時に結果を取得し、秘匿マルチパーティ計算に基づく極値の決定の問題を有効に解決することができる。また、ノード機器は、プライバシーデータ及び各データ間の大小関係を漏洩する必要がなく、秘匿マルチパーティ計算に基づく平均値の計算方法により、暗号化及び復号の操作と関係がなく、計算複雑度及び通信オーバーヘッドが比較的に小さく、計算効率を向上させることができる。
【0039】
なお、n個の参加者(即ち、ノード機器)がそれぞれ所有する数字X、X、…、Xに浮動小数点数が存在する場合、まず、全てのデータに対して整数変換を行ってから連合計算を行ってもよく、整数変換の方法は大きな整数を乗算することを含む。例えば、参加者Pは、
(外1)
とし、ここで、INTは整数を取ることを表し、Qは大きな整数であり、例えば10の6乗であり、Qはn個の参加者の協議により決定される。そして、整数を取った数値の平均値を計算し、極値を決定する。整数への変換の主な目的は、モジュロ演算により各数値の値範囲をさらに隠すことである。秘匿三者間計算に基づく極値を決定することを一例として、三者間が計算精度Qを協議した後、数値計算範囲をさらに協議し、即ち、
(外2)
又は
(外3)
を満たすように、
整数n(モジュラスと称される)の選択を協議する必要がある。
【0040】
1つの好ましい態様では、平均値の計算及び大小関係の比較が円滑に行われることを確保するために、本発明に係る有効ノードデータは、全て正の数を用いてもよく、ノード機器のデータが負の数である場合、1番目のラウンドの連合計算の前にそれに対して負数符号化を行い、負数符号化されたデータを有効ノードデータとする。X<0である場合、ノード機器は、X=X+nとし、即ち、負の数を符号化する(ここで、Xは、丸められたデータである)ため、計算中に
(外4)
又は
(外5)
が発生した場合、ノード機器は、実際の計算結果が負の数であり、即ち、実際の結果が
(外6)
であると判定することができる。
【0041】
図3は、本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。該方法は、以下のステップを含む。
【0042】
ステップ301において、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。
【0043】
ステップ302において、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0044】
ステップ301~ステップ302の具体的な態様は、上記のステップ201~ステップ202を参照してもよく、ここでその説明を省略する。
【0045】
ステップ303において、第iのノード機器の有効ノードデータがt番目の平均値よりも小さい場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、第iのノード機器に対応する有効ノードデータが極値ではないと決定する。
【0046】
1つの好ましい態様では、第iのノード機器の有効ノードデータがt番目の平均値よりも小さいことは、このラウンドの連合計算プロセスに有効ノードデータが第iのノード機器の有効ノードデータよりも大きい他のノード機器が存在することを意味し、従って、このステップは、第iのノード機器の有効データが極値ではないと決定することができる。後続の各ラウンドの平均値計算において、第iのノード機器は、無効ノードデータに基づいて演算に参加すればよく、有効ノードデータは演算に参加せず、平均値との大小関係の比較も必要ない。
【0047】
ステップ304において、第iのノード機器の有効ノードデータがt番目の平均値に等しい場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、t+1番目の平均値と無効ノードデータとの関係に基づいて極値を決定する。
【0048】
1つの好ましい態様では、第iのノード機器の有効ノードデータはt番目の平均値に等しく、これは、このラウンドの計算プロセスに2つの場合があることを意味する。1つの場合は、有効ノードデータが第iのノード機器の有効ノードデータよりも大きい他のノード機器が存在すると共に、有効ノードデータが第iのノード機器の有効ノードデータよりも小さい他のノード機器が存在することである。この場合、第iのノード機器の有効ノードデータは極値ではなく、例えば、データ「1、2、3」の1番目のラウンドにおける平均値は2である。もう1つの場合は、第iのノード機器の有効ノードデータが極値であると共に、有効ノードデータが極値である他のノード機器も存在することである。例えば、データ「1、1、3、3」の1番目のラウンドにおける平均値は2であり、2番目のラウンドは、「0、0、3、3」及び平均係数3に基づいて計算を行い、得られた平均値は3である。このため、第iのノード機器の有効ノードデータが極値ではないことを直接決定することができず、連合計算を行い、平均値との大小関係の比較を行い続ける必要がある。
【0049】
各連合計算ラウンド後に少なくとも1つの有効ノードデータが「除外」され、計算が徐々に収束することを確保するため、第iのノード機器の有効ノードデータが平均値に等しい場合、第iのノード機器は無効ノードデータに基づいて後続の連合計算に参加する。
【0050】
1つの好ましい態様では、第iのノード機器の有効ノードデータがt番目の平均値に等しく、且つtが(n-1)に等しくない場合、後続の計算において大小関係の比較を行う必要がある。ステップ304は、以下のステップを含む。
【0051】
ステップ304aにおいて、t+1番目の平均値が無効ノードデータよりも大きい場合、第iのノード機器に対応する有効ノードデータが極値ではないと決定する。
【0052】
第iのノード機器が無効ノードデータ(本発明の実施例における無効ノードデータは0である)に基づいて(t+1)番目のラウンド連合計算を行った後、(t+1)番目の平均値が無効ノードデータよりも大きい場合、(t+1)番目のラウンド計算プロセスにt番目のラウンドにおいて「進出」した(即ち、t番目の平均値より大きい)有効ノードデータが存在することを意味し、上記の1つ目の場合に対応するため、第iのノード機器の有効ノードデータが極値ではないことを決定してもよい。
【0053】
例えば、データ「1、2、2、3」は、1番目のラウンドの平均値が2であり、この場合、有効ノードデータが2であるノード機器は、有効ノードデータが2よりも大きい他のノード機器が存在するか否かを決定することができない。2番目のラウンドは、「0、0、0、3」及び平均係数3に基づいて計算を行い、平均値1が得られ、この平均値は、無効ノードデータ0よりも大きい。この場合、1番目のラウンドに有効ノードデータが2よりも大きい他のノード機器が存在すると決定してもよい。従って、有効ノードデータ2は、極値ではない。
【0054】
ステップ304bにおいて、t+1番目の平均値が無効ノードデータに等しく、且つt+1がn-1である場合、第iのノード機器の有効ノードデータが極値であると決定する。
【0055】
第iのノード機器が無効ノードデータに基づいて(t+1)番目のラウンド連合計算を行った後、(t+1)番目の平均値が無効ノードデータに等しく、且つ(t+1)が(n-1)であり、即ち、最後のラウンドの計算である場合、最後に有効ノードデータが存在しないことを意味し、即ち、有効ノードデータのうちの極値が既に無効ノードデータに置き換えられたことを意味するため、直前のラウンドにおいて平均値に等しい有効ノードデータは極値である。
【0056】
ステップ304cにおいて、t+1番目の平均値が無効ノードデータに等しく、且つt+1がn-1よりも小さい場合、無効ノードデータと後続の連合計算により得られた平均値との関係に基づいて極値を決定する。
【0057】
(t+1)番目の平均値が無効ノードデータに等しく、且つ(t+1)が(n-1)よりも小さく、即ち、最後のラウンドの連合計算に達していない場合、t番目のラウンドにおいてt番目の平均値に等しい有効ノードデータが最大値であると決定してもよいが、計算の収束を確保するために、平均係数が(n-1)になるまで平均値の計算を行い続ける必要がある。
【0058】
別の好ましい態様では、第iのノード機器の有効ノードデータがt番目の平均値に等しく、且つtが(n-1)に等しく、即ち、最後のラウンドの計算である場合、第iのノード機器の有効ノードデータが極値であると直接的に決定してもよく、ノード機器は連合計算を行わない。
【0059】
例えば、図4は、平均値に基づいて大小関係及び極値の決定を行うプロセスのフローチャートである。該プロセスは、以下のステップを含む。ステップ401において、平均係数(n+1-t)に基づいてt番目の平均値を計算する。ステップ402において、t=1又はX≧Mt-1が成立するか否かを判断し、YESの場合、ステップ403を実行し、NOの場合、ステップ405を実行する。ステップ403において、X>Mか、それともX≦Mかを判断し、X>Mの場合、ステップ406を実行し、X≦Mの場合、ステップ404を実行する。ステップ404において、tがn-1であるか否かを判断し、YESの場合、ステップ408を実行し、NOの場合、ステップ405を実行する。ステップ405において、無効ノードデータに基づいて後続の連合計算を行い、X<Mの場合、後続の大小関係の比較を行わず、X=Mの場合、無効ノードデータと平均値に基づいて大小関係の比較を行う。ステップ406において、tが(n-1)であるか否かを判断し、YESの場合、ステップ409を実行し、NOの場合、ステップ407を実行する。ステップ407において、有効ノードデータに基づいて(t+1)番目のラウンドの連合計算を行う。ステップ408において、X=Mが成立するか否かを判断し、YESの場合、ステップ409を実行し、NOの場合、ノード機器Pに対応する有効ノードデータXが極値ではないと決定してフローを終了する。ステップ409において、ノード機器Pに対応する有効ノードデータXが極値であると決定する。ここで、tは連合計算のラウンド数であり、Mt-1は(t-1)番目のラウンドの連合計算により得られた(t-1)番目の平均値であり、Mはt番目のラウンドの連合計算により得られたt番目の平均値であり、Xは第kのノード機器の有効ノードデータである。
【0060】
ステップ305において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の有効ノードデータが極値であると決定する。
【0061】
ステップ305の具体的な態様は、上記のステップ203を参照してもよく、ここでその説明を省略する。
【0062】
本発明の実施例では、ノード機器は有効ノードデータとt番目の平均値の大きさを比較し、有効ノードデータが極値であるか否かを判断し、有効ノードデータがt番目の平均値以下である場合、有効ノードデータを無効ノードデータに置き換えて後続の連合計算を行い、有効ノードデータがt番目の平均値に等しい場合、引き続き無効ノードデータと後続の平均値に基づいて大きさの比較を行うことによって、平均値計算の収束を保証することができると共に、可能な極値を見落とすことを回避し、極値計算の信頼性を確保することができる。
【0063】
上記の実施例では、秘匿マルチパーティ計算に基づく平均値に基づいて極値を決定するプロセスを示した。秘匿マルチパーティ計算に基づく平均値を計算するために、本発明の実施例は1つの実現方式を提供する。図5は、本発明の実施例に係る秘匿マルチパーティ計算方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第1のノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。ここで、第1のノード機器は、第1の乱数を生成するためのノード機器であり、n個のノード機器の何れかは第1のノード機器として平均値を計算してもよい。該方法は、以下のステップを含む。
【0064】
ステップ501において、第1の乱数を生成する。
【0065】
第1のノード機器は、現在のラウンドの連合計算が開始された後、まず、第1の乱数Rを生成する。該第1の乱数Rは正の数である。
【0066】
ステップ502において、第1のデータ和を第2のノード機器に送信する。
【0067】
第1のデータ和は、第1の乱数と第1のノードデータとの和である。第2のノード機器は、第2のデータ和を計算し、第2のデータ和を第3のノード機器に送信し、第2のデータ和は、第1のデータ和と第2のノードデータとの和である。ここで、第jのノードデータは、第jのノード機器の有効ノードデータ又は無効ノードデータであり、jはn以下の正の整数である。
【0068】
第1のノード機器Pは、第1の乱数R1を生成した後、第1のデータ和(R+X)を第2のノード機器Pに送信する。第2のノード機器Pは、第1のデータ和(R+X)を受信した後、第1のデータ和(R+X)及び第2のノードデータXに基づいて第2のデータ和(R+X+X)を計算し、第2のデータ和(R+X+X)を第3のノード機器に送信する。このように、最終的に、第nのノード機器は、第nのデータ和(R+X+X+…+X)を第1のノード機器に送信する。
【0069】
ステップ503において、第nのノード機器により送信された第nのデータ和を受信する。
【0070】
ステップ504において、第nのデータ及び第1の乱数に基づいてt番目の平均値を決定する。
【0071】
第1のノード機器Pは、第nのノード機器により送信された第nのデータ和(R+X+X+…+X)を受信した後、ノードデータ和(R+X+X+…+X-R)を計算し、即ち、n個のノードデータの和を取得する。これによって、n個の参加者の合計を完了した上で、平均係数(n+1-t)に基づいてt番目の平均値を決定する。
【0072】
好ましくは、第1のノード機器は、t番目の平均値を計算した後、他の各ノード機器にt番目の平均値又はn個の参加者の合計結果(X+X+…+X)を送信してもよい。或いは、第nのノード機器がt番目の平均値又はn個の参加者の合計結果(X+X+…+X)を受信するまで、第1のノード機器はt番目の平均値又はn個の参加者の合計結果(X+X+…+X)を第2のノード機器に送信し、第2のノード機器は第3のノード機器に送信し、…、第n-1のノード機器は第nのノード機器に送信してもよい。本発明の実施例はこれに限定されない。
【0073】
データ和を送信する順序、並びに開始位置及び終了位置は、n個のノード機器が自ら交渉して決定してもよい。データのセキュリティをさらに向上させるために、該順序を変更してもよく、即ち、第1のノード機器として交互に平均値を計算してもよい。
【0074】
ステップ505において、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0075】
ステップ506において、第iのノード機器の有効ノードデータがt番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0076】
ステップ507において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の有効ノードデータが極値であると決定する。
【0077】
ステップ506~ステップ507の具体的な態様は、上記のステップ202~ステップ204を参照してもよく、ここでその説明を省略する。
【0078】
本発明の実施例では、第1のノード機器が第1の乱数を生成し、第1の乱数と第1のノードデータとの和を第2のノード機器に送信し、後続のノード機器が順次に受信したデータ和を受信して自分のデータを追加して次のノード機器に送信し、最終的に第1のノード機器が受信したデータ和と第1の乱数に基づいてn個のノードデータのデータの和を取得してもよい。これによって、平均値を計算する。このプロセスにおいて、各ノード機器は、いずれも他の任意のノード機器のデータを取得することができないため、データの安全性を保証し、秘匿マルチパーティ計算の需要を満たすことができる。
【0079】
上記の実施例では、第iのノード機器が第1のノード機器である場合の平均値の計算プロセスを説明したが、該処理をより明確に説明するために、第1のノード機器でない他の第jノード機器について、t番目の平均値を取得する際に、以下のステップを具体的に実行する。
【0080】
ステップ1において、第j-1のノード機器により送信された第j-1のデータ和を受信する。第j-1のデータ和は、第1のノードデータ乃至第j-1のノードデータと第1の乱数との和であり、jは1よりも大きく、且つn以下の整数である。
【0081】
ステップ2において、第j-1のデータ和に基づいて第jのデータ和を決定する。第jのデータ和は、第j-1のデータ和と第jのノードデータとの和である。
【0082】
ステップ3において、jがnに等しくない場合、第jのデータ和を第j+1のノード機器に送信し、jがnに等しい場合、第jのデータ和を第1のノード機器に送信する。
【0083】
本発明の実施例における平均値の計算は、リング状のトポロジーに基づいて実現され、第1のノード機器を除いて、各ノード機器は、前のノード機器により送信された第(j-1)のデータ和に基づいて第jのデータ和を計算し、第jのデータ和を次のノード機器に送信し、最終的に第nのノード機器は第nのデータ和を第1のノード機器に送信し、データの閉ループを完了する。ここで、第(j-1)のデータ和は、第1のノードデータ乃至第(j-1)ノードデータと第1の乱数との和、即ち(R+X+X+…+Xj-1)であり、第jのデータ和は、第(j-1)のデータ和と第jのノードデータとの和、即ち、第1のノードデータ乃至第jのノードデータと第1の乱数との和(R+X+X+…+Xj-1+X)である。
【0084】
例えば、図6は、3つのノード機器が極値を決定する際の平均値を共同で計算するプロセスを示す。参加者Pは、第1の乱数R1を生成し、参加者P2に(R+X)を送信する。参加者Pは、(R+X)を受信した後、(R+X+X)を計算し、参加者P3に(R+X+X)を送信する。参加者Pは、(R+X+X)を受信した後、(R+X+X+X)を計算し、参加者Pに(R+X+X+X)を送信する。参加者Pは、(R+X+X+X)を受信した後、第1の乱数Rに基づいて(R+X+X+X-R)を計算して三者のデータ和(X+X+X)を取得して、さらに三者の平均値、即ち(X+X+X)/(n+1-t)を計算する。ここで、nは3であり、tは現在のラウンド数である。
【0085】
上記の実施例は、リング状のトポロジーに基づく秘匿マルチパーティ計算に基づく平均値を計算するプロセスを示しており、別の好ましい態様では、n個のノード機器の間で、ピアツーピアネットワーク(Peer-to-Peer:P2P)により秘匿マルチパーティ計算に基づく平均値を計算してもよい。図7は、本発明の他の実施例に係る秘匿マルチパーティ計算方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。該方法は、以下のステップを含む。
【0086】
ステップ701において、n-1個の乱数を生成する。
【0087】
ここで、(n-1)個の乱数の和は第iのノードデータであり、該第iのノードデータは、第iのノード機器の有効ノードデータ又は無効ノードデータである。
【0088】
P2Pネットワークでは、平均値を計算する際に、各ノード機器は、何れも(n-1)個の乱数を生成する。n-1個の乱数の和は第iのノードデータであり、即ち、r+r+…+rn-1=Xである。ここで、第iのノードデータは、有効ノードデータ又は無効ノードデータである。
【0089】
ステップ702において、n-1個の乱数をそれぞれ他のn-1個のノード機器に送信する。各ノード機器は、第iのノード機器により送信された1個の乱数を受信する。
【0090】
第iのノード機器は、各ノード機器が第iのノードデータにより送信された1つの乱数を受信するように、(n-1)個のノードデータを他の(n-1)個のノード機器にそれぞれ送信する。
【0091】
ステップ703において、他のn-1個のノード機器によりそれぞれ送信された乱数を受信し、受信したn-1個の乱数の和を第iのデータ和として計算する。
【0092】
各ノード機器は何れも(n-1)個の乱数を生成し、それぞれ他のノード機器に送信する必要があるため、第iのノード機器は、他の(n-1)個のノード機器がそれぞれ送信した乱数、即ち合計(n-1)個の乱数を受信する。
【0093】
第iのノード機器は、(n-1)個の乱数を受信した後、第iデータ和を計算し、即ち、受信したn-1個の乱数を加算する。例えば、第1のノード機器は、第2のノード機器乃至第nのノード機器それぞれが送信した乱数の和を計算し、第1のデータ和を取得する。
【0094】
ステップ704において、第iのデータ和を他のn-1個のノード機器に送信する。
【0095】
各ノード機器は、第iのデータの和を計算した後、それを他の(n-1)ノード機器に送信する。
【0096】
ステップ705において、他のn-1個のノード機器により送信されたn-1個のデータ和を受信し、受信したn-1個のデータ和及び第iのデータに基づいてt番目の平均値を決定する。
【0097】
各ノード機器は、他の(n-1)個のノード機器により送信されたデータ和、即ち合計(n-1)個のデータ和を受信し、該(n-1)個のデータ和と自身が計算した第iのデータ和とを加算し、n個のノードデータの和を取得し、さらに求めたn個のノードデータの和に基づいてt番目の平均値を計算する。このプロセスは、ノードデータを分割し、各ノード機器が各ノードデータの一部を取得して、平均値を共同で計算する。
【0098】
例えば、図8は、3人の参加者が極値を決定する際に秘匿マルチパーティ計算に基づく平均値を計算するプロセスを示す。参加者Pは、乱数R1,2及びR1,3を生成し、X=R1,2+R1,3を満たす場合、それぞれ参加者P及び参加者PにR1,2及びR1,3を送信し、同様に、参加者Pは、乱数R2,1及びR2,3を生成し、X=R2,1+R2,3を満たす場合、それぞれ参加者P及び参加者PにR2,1及びR2,3を送信し、参加者Pは、乱数R3,1及びR3,2を生成し、X=R3,1+R3,2を満たす場合、それぞれ参加者P及び参加者PにR3,1及びR3,2を送信する。参加者P1は、第1のデータ和S=R2,1+R3,1を計算し、参加者Pは、第2のデータ和S=R1,2+R3,2を計算し、参加者Pは、第3のデータ和S=R2,3+R1,3を計算する。参加者Pは、Sを参加者PとPに送信し、参加者Sは、Sを参加者PとPに送信し、参加者Pは、Sを参加者PとPに送信する。参加者P、P、Pは、それぞれ三者の数値の和S+S+S=R2,1+R3,1+R1,2+R3,2+R2,3+R1,3=X+X+Xを計算する。そして、3人の参加者は、t番目のラウンドの平均値(X+X+X)/(n+1-t)を計算してもよい。
【0099】
ステップ706において、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0100】
ステップ707において、第iのノード機器の有効ノードデータがt番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0101】
ステップ708において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の有効ノードデータが極値であると決定する。
【0102】
ステップ706~ステップ708の具体的な態様は、上記のステップ202~ステップ204を参照してもよく、ここでその説明を省略する。
【0103】
本発明の実施例では、各ノード機器は、自分のノードデータをn-1個の乱数に分割し、n-1個の乱数をそれぞれ他のn-1個のノード機器に送信し、各ノード機器がそれぞれ各ノードデータの一部に基づいて合計演算を行い、最終的に求めたデータ和を交換し、現在のラウンドの平均値を取得する。このプロセスにおいて、各ノード機器は、いずれも他の任意のノード機器の完全なデータを取得することができないため、データの安全性を保証し、秘匿マルチパーティ計算の需要を満たすことができる。
【0104】
上記の各実施例では、(n-1)番目のラウンドの連合計算において、実際に参加する有効ノードデータは2つまでしか存在しない。これによって、(n-1)番目のラウンドの計算プロセスにおいて、参加者の有効ノードデータが漏洩する恐れがある(即ち、そのうちの一方の有効ノードデータを持つ参加者は、(n-1)番目の平均値に基づいて他方の参加者の有効ノードデータを計算することができる)。従って、本発明に係る極値の決定スキームの安全性をさらに向上させるために、(n-1)番目のラウンドの大小関係の比較を行う際に、上記の平均値の計算に基づく大小関係の比較を採用せず、各ノード機器は、X n-1-X…Xをそれぞれ計算してもよい。ここで、Xはノード機器の有効ノードデータであり、マイナス記号の後の積にXが含まれておらず、X以外の他の(n-1)個のノードデータの積である。(n-2)番目のラウンドの計算においてXが第(n-2)の平均値よりも小さい場合、第iのノード機器の有効ノードデータは極値ではない。(n-2)番目のラウンドの計算においてXが第(n-2)の平均値以上であり、且つ(n-1)番目のラウンドにおいて上記の式X n-1-X…Xの計算結果が0以上である場合、第iのノード機器の有効ノードデータは極値である。
【0105】
図9は、本発明の別の実施例に係る秘匿マルチパーティ計算方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。tがn-2であり、且つt+1がn-1である場合、該方法は、以下のステップを含む。
【0106】
ステップ901において、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。
【0107】
ステップ901の具体的な態様は、上記のステップ201を参照してもよく、ここでその説明を省略する。
【0108】
ステップ902において、第2の乱数を生成する。第2の乱数は正の数である。
【0109】
第iのノード機器Pは、データプライバシーを保護するために、正の第2の乱数R2iを生成する。
【0110】
ステップ903において、第2の乱数を第i+1のノード機器に送信する。
【0111】
第i+1のノード機器は、第1のデータ積R2ii+1を計算し、第1のデータ積を第i+2のノード機器に送信し、第1のデータ積は、第2の乱数と第i+1のノード機器の有効ノードデータとの積である。
【0112】
各ノード機器は、算出したデータ積を次のノード機器に送信し、第i-1のノード機器が第(n-1)のデータ積R2i…Xを算出するまで、後続の各ノード機器は、受信したデータ積に自分の有効ノードデータを乗算し、計算結果を次のノード機器に送信する。データ積R2i…Xには、第iのノードの有効ノードデータXiが含まれない。
【0113】
ステップ904において、第i-1のノード機器により送信された第n-1のデータ積を受信する。
【0114】
第(n-1)のデータ積は、n個のノード機器のうちの第iのノード機器以外のn-1個のノード機器の有効ノードデータと第2の乱数との積、即ちR2i…Xである。
【0115】
第(i-1)のノード機器は、第(n-1)のデータ積を生成した後、それを第iのノード機器に送信する。
【0116】
ステップ905において、第n-1のデータ積に基づいて数値比較演算子を決定する。
【0117】
数値比較演算子は、第iのノード機器に対応する有効ノードデータのn-1乗と第n-1のデータ積との差である。
【0118】
第iのノード機器は、第(n-1)のデータ積R2i…Xを取得した後、第2の乱数で除算し、数値比較演算子X n-1-X…Xの符号(即ち、ゼロよりも大きいか、ゼロに等しいか、それともゼロよりも小さいか)を計算する。なお、整数の領域で計算を行う場合、|X…X|<n/2、又は|X…X|<n/3、且つ|X n-1-X…X|<n/2、又は|X n-1-X…X|<n/3をさらに満たす必要がある。
【0119】
ステップ906において、数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第iのノードデータがn-2番目の平均値以上である場合、第iのノード機器に対応する有効ノードデータが極値であると決定する。
【0120】
例えば、図10は、3人の参加者がn-1番目のラウンド(即ち、2番目のラウンド)の極値を決定するプロセスを示す。参加者Pは、第2の乱数Rを生成し、参加者PにRを送信し、参加者Pは、Rを計算して参加者Pに送信し、参加者Pは、Rを受信し、Rを計算して参加者Pに送信し、参加者Pは、Rを受信し、X -Xを計算する。同様に、参加者P及び参加者Pは、それぞれ上記のステップを実行して、X -X及びX -Xを計算する。
【0121】
本発明の実施例では、(n-1)番目のラウンドの極値を決定する際に、平均値の計算に基づく方式を採用して大小関係の比較を行うことではなく、秘匿マルチパーティ計算に基づく乗算の方式により数値比較演算子を計算することによって、2つの有効ノードデータしか残っていない場合、1つの有効ノードデータを有するノード機器は、もう1つの有効ノードデータを計算することができ、データ安全性をさらに向上させることができる。
【0122】
上記の実施例は、秘匿マルチパーティ計算に基づく乗算により(n-1)番目のラウンドの極値を決定する1つのプロセスを例示する。1つの好ましい態様では、3人の参加者の場合、即ち、n=3の場合、(n-1)番目のラウンド(即ち、2番目のラウンド)の極値を決定する方法のもう1つのプロセスも存在する。図11は、本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。nが3であり、且つt+1がn-1である場合、該方法は、以下のステップを含む。
【0123】
ステップ1101において、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。
【0124】
ステップ1101の具体的な態様は、上記のステップ201を参照してもよく、ここでその説明を省略する。
【0125】
ステップ1102において、第3の乱数を生成する。第3の乱数は正の数である。
【0126】
第2のノード機器は、データプライバシーを保護するために、第3の乱数Rを生成する。
【0127】
ステップ1103において、第3の乱数又は第3の乱数の逆数を第3のノード機器に送信し、第1の積を第1のノード機器に送信する。
【0128】
第1の積は、第3の乱数と第2のノード機器の有効ノードデータとの積であり、第3のノード機器は、第2の積を計算し、第2の積を第1のノード機器に送信し、第2の積は、第3の乱数の逆数と第3のノード機器の有効ノードデータとの積であり、第1のノード機器は、第1の積及び第2の積を受信し、第1の積及び第2の積に基づいて第1の数値比較演算子を計算し、第1の数値比較演算子は、第1のノード機器の有効ノードデータの2乗と第3の積との差であり、第3の積は、第2のノードデータと第3のノードデータとの積である。
【0129】
例えば、図12に示すように、参加者Pは、第3の乱数Rを生成し、R又は1/Rを参加者Pに送信し、第1の積Rを生成して参加者Pに送信し、また、参加者Pは、R又は1/Rを受信すると、第2の積X/Rを生成し、第2の積X/Rを参加者Pに送信する。このように、参加者Pは、第1の積R及び第2の積X/Rに基づいてXを計算し、第1のデータ比較演算子X -Xを計算することができる。
【0130】
ステップ1104において、第3のノード機器により送信された第4の積及び第1のノード機器により送信された第5の積を受信する。
【0131】
第3のノード機器は、第4の乱数を生成し、第4の乱数を第1のノード機器に送信し、第1のノード機器は、第4の乱数に基づいて第5の積を決定し、第4の積は、第3のノード機器の有効ノードデータと第4の乱数との積であり、第5の積は、第4の乱数の逆数と第1のノード機器の有効ノードデータとの積である。
【0132】
同様に、参加者PがX -Xを計算する必要がある場合、第4の乱数Rは、参加者P(又は参加者P)によって生成され、参加者Pは、第4の積Rを計算して参加者Pに送信し、参加者Pは、第4の乱数R又は第4の乱数の逆数1/Rを参加者Pに送信し、参加者Pは、第5の積X/Rを計算して参加者Pに送信する。
【0133】
ステップ1105において、第4の積及び第5の積に基づいて第2の数値比較演算子を計算する。
【0134】
第2の数値比較演算子は、第2のノード機器の有効ノードデータの2乗と第6の積の差であり、第6の積は、第1のノード機器の有効ノードデータと第3のノード機器の有効ノードデータとの積である。
【0135】
参加者Pは、第4の積R及び第5の積X/Rに基づいてXを計算し、第2の数値比較演算子X -Xを計算する。
【0136】
ステップ1106において、第2の数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第2のノードデータがn-2番目の平均値以上である場合、第2のノード機器に対応する有効ノードデータが極値であると決定する。
【0137】
第2のノードデータは、第2のノード機器の有効ノードデータ又は無効ノードデータである。
【0138】
本発明の実施例では、(n-1)番目のラウンドの極値を決定する際に、平均値の計算に基づく方式を採用して大小関係の比較を行うことではなく、秘匿マルチパーティ計算に基づく乗算の方式により数値比較演算子を計算することによって、2つの有効ノードデータしか残っていない場合、1つの有効ノードデータを有するノード機器は、もう1つの有効ノードデータを計算することができ、データ安全性をさらに向上させることができる。
【0139】
上記の実施例は、3人の参加者が極値を決定するプロセスを例示しているが、実際には、参加者の数が奇数である場合、該方法を使用して(n-1)番目のラウンドの極値を決定してもよい。
【0140】
なお、X n-1-X…Xを計算することに加えて、ノード機器は、他の形式の式、例えば、X 2n-2-X …X を計算してもよい。ここで、マイナス記号の後の積は、X を含まず、X以外の他の(n-1)個のノードデータの平方の積である。ノード機器が使用する計算式について、本発明の実施例はこれに限定されない。
【0141】
1つの好ましい態様では、参加者の数が多い場合、ノード機器を階層的に分割し、各階層が極値の計算を完了した後、次の階層の計算を行ってもよい。これによって、通信オーバーヘッド及び極値決定の時間を低減させることができる。例えば、nが5である場合、参加者をP、P、Pという1つの層の3つのグループに分けてもよい。nが7である場合、参加者をP、P、及びPという1つの層の3つのグループに分けてもよい。即ち、1つの参加者は、複数のグループに出現してもよく、各グループは、1つのノード機器又は少なくとも3つのノード機器により構成されてもよい。nが大きい場合、複数の層のグループに分けてもよい。
【0142】
平均値を計算する前に、秘匿マルチパーティ計算に基づく極値を決定する方法は、次のステップをさらに含む。
【0143】
ステップ4において、nが3より大きい場合、グループ分け方式でn個のノード機器を少なくとも1つの層の機器グループに分ける。各層の機器グループは、少なくとも3つの上位層の機器グループを含み、第1の層の機器グループの各機器グループは、1つのノード機器又は少なくとも3つのノード機器により構成される。
【0144】
例えば、Nが27である場合、第1の層は9つの機器グループを含み、各グループは、3つの参加者を含み、即ち、G={P}、G={P}、…、G={P252627}となり、第2の層は、第1の層の9つのグループを3つのグループに分け、各第2の層のグループは、3つの第1の層のグループ、即ち、{G}、{G}、{G}を含む。
【0145】
ステップ5において、第iのノード機器の有効ノードデータが第mの層の機器グループにおける第iのノード機器の参加先グループの極値である場合、第iのノード機器の有効ノードデータに基づいて第m+1の層の機器グループ間の連合計算を行う。mは正の整数である。
【0146】
下位層のグループから少なくとも1つの極値の所有者が決定されると、その中からグループの代表を選択し、次の層(即ち、上位層)のグループ間の極値の決定を行う。ここで、少なくとも2つの参加者が極値を有する場合、各参加者の計算リソースについて余裕があるか否か、ネットワーク通信が強いか否か、信頼性と安全性及び計算複雑度などの角度から1つの参加者を選択するようにトリガし、或いはランダムに選択してもよいが、本発明の実施例はこれに限定されない。
【0147】
図13に示すように、参加者P、P及びPからなる第1の機器グループにおいて参加者Pが極値を有すると決定され、参加者P、P及びPからなる第2の機器グループにおいて参加者Pが極値を有すると決定され、参加者P、P及びPからなる第3の機器グループにおいて参加者Pが極値を有すると決定された場合、参加者P、P及びPは、次の層のグループ間の極値の決定を行う。
【0148】
ステップ6において、第iのノード機器の有効ノードデータが最後の層の機器グループにおける各有効機器ノードの極値である場合、第iのノード機器の有効ノードデータがn個のノード機器のn個の有効ノードデータのうちの極値であると決定する。
【0149】
最後の層の極値を行い、且つ最終のラウンドの連合計算が完了した後、第iのノード機器の有効ノードデータが極値である場合、第iのノード機器の有効ノードデータがn個のノード機器のn個の有効ノードデータのうちの極値であると決定する。
【0150】
本発明の実施例では、ノード機器の数が多い場合、グループ分けによりグループ内の極値の決定を行った後に、グループ間の極値の決定を行い、多層的なグループ分けを行ってもよい。これによって、通信オーバーヘッドを低減させ、計算の複雑度を低減させ、極値の決定の効率を向上させることができる。
【0151】
上記の各実施例は、秘匿マルチパーティ計算に基づく極値の決定方法を示した。ここで、該極値は、最大値であってもよいし、最小値であってもよい。最大値を決定する際に、上記のステップに従って最大値を比較し、最大値を取得する。最小値を決定する際に、各ノード機器は、まず、ローカルの元の有効ノードデータに対して反数取得操作を行い、その反数を有効ノードデータとして極値の比較を行い、得られたのは反数の最大値であり、そして、反数取得を行って最小値を決定する。図14は、本発明の他の実施例に係る秘匿マルチパーティ計算方法のフローチャートである。本実施例では、該方法が連合計算システムにおける第iのノード機器により実行されることを一例にして説明する。連合計算システムは、n個のノード機器を含み、nは2よりも大きい整数であり、iはn以下の正の整数である。nが3であり、且つt+1がn-1である場合、該方法は、以下のステップを含む。
【0152】
ステップ1401において、最大値計算指令に応答して、第iのノード機器の元の有効ノードデータを第iのノード機器の有効ノードデータとして決定する。
【0153】
ステップ1402において、最小値計算指令に応答して、第iのノード機器の元の有効ノードデータの反数を第iのノード機器の有効ノードデータとして決定する。
【0154】
n個のノード機器のデータから最大値を決定する必要がある場合、ノード機器は、元の有効ノードデータを有効ノードデータとして決定して後続の連合計算を行ってもよい。n個のノード機器のデータから最小値を決定する必要がある場合、上記のプロセスは、平均値よりも小さいデータを段階的に除外することによって極値を決定するため、ノード機器は、元の有効ノードデータの反数を有効ノードデータとして決定して後続の連合計算を行い、反数のうちの最大値を決定することによって、最小値の決定を実現する。
【0155】
ステップ1403において、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。
【0156】
ステップ1404において、第iのノード機器の有効ノードデータがt番目の平均値よりも大きい場合、第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0157】
ステップ1405において、第iのノード機器の有効ノードデータがt番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0158】
ステップ1403~ステップ1405の具体的な態様は、上記のステップ201~ステップ203を参照してもよく、ここでその説明を省略する。
【0159】
ステップ1406において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の元の有効ノードデータが最大値であると決定する。
【0160】
(n-1)番目のラウンドの連合計算(即ち、最後のラウンドの連合計算)の後、第iのノード機器の有効ノードデータが第(n-1)の平均値以上であり、該有効ノードデータはn個の有効ノードデータのうちの最大値である。有効ノードデータは元の有効ノードデータ自身であるため、第iのノード機器の元の有効ノードデータが最大値であると決定する。
【0161】
ステップ1407において、n-1番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、第iのノード機器の元の有効ノードデータが最小値であると決定する。
【0162】
(n-1)番目のラウンドの連合計算の後、第iのノード機器の有効ノードデータは第(n-1)の平均値以上であり、該有効ノードデータはn個の有効ノードデータのうちの最大値である。有効ノードデータは元の有効ノードデータの反数であるため、第iのノード機器の元の有効ノードデータが最小値であると決定する。
【0163】
本発明の実施例では、最小値の決定を行う際に、元の有効ノードデータに対して反数求め演算を行い、反数に基づいて該秘匿マルチパーティ計算に基づく極数の決定プロセスを行うことによって、反数のうちの最大値を決定することができ、即ち、元の有効ノードデータのうちの最小値を取得することができる。最大値の決定を行う際に、直接に元の有効ノードデータに基づいて連合計算を行う。従って、本発明に係るスキームは、最大値の決定の需要を満たすことができると共に、最小値の決定の需要を満たすことができる。
【0164】
図15は、本発明の実施例に係る秘匿マルチパーティ計算に基づく極値の決定装置の構成を示すブロック図である。該装置は、以下の構成を含む。
【0165】
第1の取得モジュール1501は、t番目のラウンドの連合計算により得られたt番目の平均値を取得する。該t番目の平均値は、n個のノード機器のn個のノードデータ及び平均係数に基づいて計算され、n個のノードデータは、m個の有効ノードデータを含み、平均係数は、連合計算のラウンド数の増加につれて減少し、tはn-1よりも小さい正の整数であり、mはn以下の正の整数である。
【0166】
第1の計算モジュール1502は、第iのノード機器の有効ノードデータが該t番目の平均値よりも大きい場合、該第iのノード機器の有効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0167】
第2の計算モジュール1503は、該第iのノード機器の有効ノードデータが該t番目の平均値以下である場合、無効ノードデータに基づいてt+1番目のラウンドの連合計算を行う。
【0168】
第1の決定モジュール1504は、n-1番目のラウンドの連合計算の後、該第iのノード機器の有効ノードデータがn-1番目の平均値以上である場合、該第iのノード機器の有効ノードデータが極値であると決定する。
【0169】
好ましくは、第2の計算モジュール1503は、以下の各部を含む。
【0170】
第1の計算部は、該第iのノード機器の有効ノードデータが該t番目の平均値よりも小さい場合、該無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、該第iのノード機器に対応する有効ノードデータが極値ではないと決定する。
【0171】
第2の計算部は、該第iのノード機器の有効ノードデータが該t番目の平均値に等しい場合、該無効ノードデータに基づいてt+1番目のラウンドの連合計算を行い、t+1番目の平均値と該無効ノードデータとの関係に基づいて極値を決定する。
【0172】
好ましくは、該第2の計算部は、該t+1番目の平均値が該無効ノードデータよりも大きい場合、該第iのノード機器に対応する有効ノードデータが極値ではないと決定し、該t+1番目の平均値が該無効ノードデータに等しく、且つt+1がn-1である場合、該第iのノード機器の有効ノードデータが極値であると決定し、該t+1番目の平均値が該無効ノードデータに等しく、且つt+1がn-1よりも小さい場合、該無効ノードデータと後続の連合計算により得られた平均値との関係に基づいて極値を決定する。
【0173】
好ましくは、第iのノード機器は、第1のノード機器である。第1の取得モジュール1501は、以下の各部を含む。
【0174】
第1の生成部は、第1の乱数を生成する。
【0175】
第1の送信部は、第1のノードデータと第1の乱数との和を第1のデータ和として計算し、第1のデータ和を第2のノード機器に送信する。該第2のノード機器は、第2のデータ和を計算し、該第2のデータ和を第3のノード機器に送信し、該第2のデータ和は、該第1のデータ和と第2のノードデータとの和であり、ここで、第jのノードデータは、該第jのノード機器の有効ノードデータ又は無効ノードデータであり、jはn以下の正の整数である。
【0176】
第1の受信部は、第nのノード機器により送信された第nのデータ和を受信する。該第nのデータ和は、n個のノードデータと該第1の乱数との和である。
【0177】
第1の決定部は、該第nのデータ及び該第1の乱数に基づいて該t番目の平均値を決定する。
【0178】
好ましくは、第1の取得モジュール1501は、以下の各部をさらに含む。
【0179】
第2の受信部は、第j-1のノード機器により送信された第j-1のデータ和を受信する。該第j-1のデータ和は、第1のノードデータ乃至第j-1のノードデータと該第1の乱数との和であり、jは1よりも大きく、且つn以下の整数である。
【0180】
第2の決定部は、該第j-1のデータ和に基づいて第jのデータ和を決定する。該第jのデータ和は、該第j-1のデータ和と該第jのノードデータとの和である。
【0181】
第2の送信部は、jがnに等しくない場合、該第jのデータ和を第j+1のノード機器に送信し、jがnに等しい場合、該第jのデータ和を該第1のノード機器に送信する。
【0182】
好ましくは、第1の取得モジュール1501は、以下の各部を含む。
【0183】
第2の生成部は、n-1個の乱数を生成する。該n-1個の乱数の和は第iのノードデータであり、該第iのノードデータは、該第iのノード機器の有効ノードデータ又は無効ノードデータである。
【0184】
第3の送信部は、該n-1個の乱数をそれぞれ他のn-1個のノード機器に送信する。各ノード機器は、該第iのノード機器により送信された1個の乱数を受信する。
【0185】
第3の受信部は、該他のn-1個のノード機器によりそれぞれ送信された乱数を受信し、受信したn-1個の乱数の和を第iのデータ和として計算する。
【0186】
第4の送信部は、該第iのデータ和を該他のn-1個のノード機器にそれぞれ送信する。
【0187】
第4の受信部は、該他のn-1個のノード機器により送信されたn-1個のデータ和を受信し、受信したn-1個のデータ和及び該第iのデータに基づいて該t番目の平均値を決定する。
【0188】
好ましくは、t+1はn-1である。該装置は、以下のモジュールをさらに含む。
【0189】
第1の生成モジュールは、第2の乱数を生成する。該第2の乱数は正の数である。
【0190】
第1の送信モジュールは、該第2の乱数を第i+1のノード機器に送信する。該第i+1のノード機器は、第1のデータ積を計算し、該第1のデータ積を第i+2のノード機器に送信し、該第1のデータ積は、該第2の乱数と第i+1のノード機器の有効ノードデータとの積である。
【0191】
第1の受信モジュールは、第i-1のノード機器により送信された第n-1のデータ積を受信する。該第n-1のデータ積は、該n個のノード機器のうちの該第iのノード機器以外のn-1個のノード機器の有効ノードデータと該第2の乱数との積である。
【0192】
第2の決定モジュールは、該第iのノード機器の有効ノードデータのn-1乗と該第n-1のデータ積との差に基づいて、数値比較演算子を決定する。
【0193】
第3の決定モジュールは、該数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第iのノードデータがn-2番目の平均値以上である場合、該第iのノード機器に対応する有効ノードデータが極値であると決定する。該第iのノードデータは有効ノードデータ又は無効ノードデータである。
【0194】
好ましくは、nは3であり、t+1は2であり、該第iのノード機器は第2のノード機器である。該装置は、以下のモジュールをさらに含む。
【0195】
第2の生成モジュールは、第3の乱数を生成する。該第3の乱数は正の数である。
【0196】
第2の送信モジュールは、該第3の乱数又は該第3の乱数の逆数を第3のノード機器に送信し、第1の積を第1のノード機器に送信する。該第1の積は、該第3の乱数と第2のノード機器の有効ノードデータとの積であり、該第3のノード機器は、第2の積を計算し、該第2の積を該第1のノード機器に送信し、該第2の積は、該第3の乱数の逆数と第3のノード機器の有効ノードデータとの積であり、該第1のノード機器は、該第1の積及び該第2の積を受信し、該第1の積及び該第2の積に基づいて第1の数値比較演算子を計算し、該第1の数値比較演算子は、該第1のノード機器の有効ノードデータの2乗と第3の積との差であり、該第3の積は、第2のノードデータと第3のノードデータとの積である。
【0197】
好ましくは、該装置は、以下のモジュールをさらに含む。
【0198】
第2の受信モジュールは、該第3のノード機器により送信された第4の積及び該第1のノード機器により送信された第5の積を受信する。該第3のノード機器は、第4の乱数を生成し、該第4の乱数を該第1のノード機器に送信し、該第1のノード機器は、該第4の乱数に基づいて該第5の積を決定し、該第4の積は、該第3のノード機器の有効ノードデータと該第4の乱数との積であり、該第5の積は、該第4の乱数の逆数と該第1のノード機器の有効ノードデータとの積である。
【0199】
第3の計算モジュールは、該第4の積及び該第5の積に基づいて第2の数値比較演算子を計算する。該第2の数値比較演算子は、該第2のノード機器の有効ノードデータの2乗と第6の積の差であり、該第6の積は、該第1のノード機器の有効ノードデータと該第3のノード機器の有効ノードデータとの積である。
【0200】
第4の決定モジュールは、該第2の数値比較演算子が0以上であり、且つn-2番目のラウンドの連合計算における第2のノードデータがn-2番目の平均値以上である場合、該第2のノード機器に対応する有効ノードデータが極値であると決定する。該第2のノードデータは、該第2のノード機器の有効ノードデータ又は該無効ノードデータである。
【0201】
好ましくは、該装置は、以下のモジュールをさらに含む。
【0202】
グループ分けモジュールは、nが3より大きい場合、グループ分け方式で該n個のノード機器を少なくとも1つの層の機器グループに分ける。各層の機器グループは、少なくとも3つの上位層の機器グループを含み、第1の層の機器グループの各機器グループは、1つのノード機器又は少なくとも3つのノード機器により構成される。
【0203】
第4の計算モジュールは、該第iのノード機器の有効ノードデータが第mの層の機器グループにおける該第iのノード機器の参加先グループの極値である場合、該第iのノード機器の有効ノードデータに基づいて第m+1の層の機器グループ間の連合計算を行う。mは正の整数である。
【0204】
第5の決定モジュールは、該第iのノード機器の有効ノードデータが最後の層の機器グループにおける各有効機器ノードの極値である場合、該第iのノード機器の有効ノードデータがn個のノード機器のn個の有効ノードデータのうちの極値であると決定する。
【0205】
好ましくは、該装置は、以下のモジュールをさらに含む。
【0206】
第6の決定モジュールは、最大値計算指令に応答して、該第iのノード機器の元の有効ノードデータを該第iのノード機器の有効ノードデータとして決定する。
【0207】
第1の決定モジュール1504は、第3の決定部をさらに含む。
【0208】
第3の決定部は、n-1番目のラウンドの連合計算の後、該第iのノード機器の有効ノードデータが該n-1番目の平均値以上である場合、該第iのノード機器の元の有効ノードデータが最大値であると決定する。
【0209】
好ましくは、該装置は、以下のモジュールをさらに含む。
【0210】
第7の決定モジュールは、最小値計算指令に応答して、該第iのノード機器の元の有効ノードデータの反数を該第iのノード機器の有効ノードデータとして決定する。
【0211】
第1の決定モジュール1504は、第4の決定部をさらに含む。
【0212】
第4の決定部は、n-1番目のラウンドの連合計算の後、該第iのノード機器の有効ノードデータが該n-1番目の平均値以上である場合、該第iのノード機器の元の有効ノードデータが最小値であると決定する。
【0213】
以上のことから、本発明の実施例では、n個のノード機器に対応するデータの平均値を計算し、各ノード機器は、自分のデータと現在のラウンドの連合計算の平均値の大きさとを比較することで、自分のデータが平均値よりも小さい場合、自分のデータが極値ではないと判断し、平均値以上である場合、有効ノードデータを無効ノードデータに置き換えて次のラウンドの平均値計算を行いことができる。これによって、連合計算の平均値を収束させ、即ち、極値に段々接近させることができるため、n-1番目のラウンドの時に結果を取得し、秘匿マルチパーティ計算に基づく極値の決定の問題を有効に解決することができる。また、ノード機器は、プライバシーデータ及び各データ間の大小関係を漏洩する必要がなく、秘匿マルチパーティ計算に基づく平均値の計算方法により、暗号化及び復号の操作と関係がなく、計算複雑度及び通信オーバーヘッドが比較的に小さく、計算効率を向上させることができる。
【0214】
図16は、本発明の実施例に係るコンピュータ機器の構成を示すブロック図である。
【0215】
コンピュータ機器1600は、中央処理ユニット(Central Processing Unit:CPU)1601、ランダムアクセスメモリ(Random Access Memory:RAM)1602及び読み取り専用メモリ(Read Only Memory:ROM)1603を含むシステムメモリ1604、並びにシステムメモリ1604及び中央処理ユニット1601に接続されるシステムバス1605を含む。コンピュータ機器1600は、コンピュータ内の様々な機器間の情報の伝送をサポートする基本入力/出力(Input/Output:I/O)コントローラ1606、並びにオペレーティングシステム1613、アプリケーションプログラム1614及び他のプログラムモジュール1615を記憶するための大容量記憶装置1607をさらに含む。
【0216】
基本入力/出力コントローラ1606は、情報を表示するディスプレイ1608、ユーザが情報を入力するためのマウス、キーボードなどの入力装置1609を含む。ここで、ディスプレイ1608及び入力装置1609は、何れもシステムバス1605に接続された入力/出力コントローラ1610を介して中央処理ユニット1601に接続される。基本入力/出力コントローラ1606は、キーボード、マウス、又は電子スタイラスなどの複数の他のデバイスからの入力を受け付けて処理するための入力/出力コントローラ1610をさらに含んでもよい。同様に、入力/出力コントローラ1610は、ディスプレイ、プリンタ又は他のタイプの出力デバイスへの出力をさらに提供する。
【0217】
大容量記憶装置1607は、システムバス1605に接続された大容量記憶コントローラ(図示せず)を介して中央処理ユニット1601に接続される。大容量記憶装置1607及び関連するコンピュータ読み取り可能な媒体は、コンピュータ機器1600に不揮発性記憶を提供する。即ち、大容量記憶装置1607は、ハードディスク又は読み取り専用光ディスク(Compact Disc Read-Only Memory:CD-ROM)ドライバなどのコンピュータ読み取り可能な媒体(図示せず)を含むことができる。
【0218】
一般性を失うことなく、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するための任意の方法又は技術で実装される揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、RAM、ROM、消去可能プログラマブル読み取り専用メモリ(Erasable Programmable Read Only Memory:EPROM)、フラッシュメモリ又は他のソリッドステートストレージ、CD-ROM、デジタルビデオディスク(Digital Video Disc:DVD)又は他の光学ストレージ、カートリッジ、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイスを含む。なお、当業者であれば、コンピュータ記憶媒体は上記のものに限定されないことを理解するであろう。上述したシステムメモリ1604及び大容量記憶装置1607をメモリと総称することができる。
【0219】
本発明の様々な実施例によれば、コンピュータ機器1600は、インターネットなどのネットワークを介してネットワークに接続されたリモートコンピュータによっても動作可能である。即ち、コンピュータ機器1600は、システムバス1605に接続されたネットワークインターフェースユニット1611を介してネットワーク1612に接続されてもよく、或いは、ネットワークインターフェースユニット1611を使用して、他のタイプのネットワーク又はリモートコンピュータシステム(図示せず)に接続されてもよい。
【0220】
該メモリには、少なくとも1つの命令、少なくとも1つのプログラム、コードセット又は命令セットが記憶され、該少なくとも1つの命令、少なくとも1つのプログラム、コードセット又は命令セットは、上記の各実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法を実現するように、1つ又は複数のプロセッサにより実行される。
【0221】
本発明の実施例は、少なくとも1つの命令が記憶されたコンピュータ読み取り可能な記憶媒体であって、該少なくとも1つの命令は、上記の各実施例に係る秘匿マルチパーティ計算に基づく極値の決定方法を実現するように、プロセッサによりロードされて実行される、記憶媒体をさらに提供する。
【0222】
本発明の1つの態様では、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供する。コンピュータ機器のプロセッサは、該コンピュータ機器に上記の態様に記載の秘匿マルチパーティ計算に基づく極値の決定方法を実行させるように、コンピュータ読み取り可能な記憶媒体からコンピュータ命令を読み取って実行する。
【0223】
当業者は、上記の1つ以上の例において、本発明の実施例に記載された機能が、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実現され得ることを認識するであろう。ソフトウェア実装を使用する場合、これらの機能は、コンピュータ読み取り可能な記憶媒体に記憶され、或いはコンピュータ読み取り可能な記憶媒体上の1つ又は複数の命令又はコードとして送信されてもよい。コンピュータ読み取り可能な記憶媒体は、コンピュータ記憶媒体及び通信媒体を含み、通信媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む。記憶媒体は、汎用コンピュータ又は専用コンピュータがアクセス可能な任意の利用可能な媒体とすることができる。
【0224】
以上は、単なる本発明の好ましい実施例であり、本発明を限定するものではなく、本発明の主旨及び原則の範囲内でなされた修正、均等物の置換、改良などは、本発明の範囲内に含まれるものとする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
【国際調査報告】