JP2022523182A - モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 - Google Patents
モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 Download PDFInfo
- Publication number
- JP2022523182A JP2022523182A JP2021548139A JP2021548139A JP2022523182A JP 2022523182 A JP2022523182 A JP 2022523182A JP 2021548139 A JP2021548139 A JP 2021548139A JP 2021548139 A JP2021548139 A JP 2021548139A JP 2022523182 A JP2022523182 A JP 2022523182A
- Authority
- JP
- Japan
- Prior art keywords
- value
- modular representation
- lift
- secret
- mathematical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000873 masking effect Effects 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims description 79
- 238000004891 communication Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 21
- 241000499489 Castor canadensis Species 0.000 claims description 17
- 235000011779 Menyanthes trifoliata Nutrition 0.000 claims description 17
- 238000005266 casting Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000003068 static effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 7
- 238000009739 binding Methods 0.000 description 6
- 230000027455 binding Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
セキュアなマルチパーティ計算は、バックエンドでモジュラー整数表現を使用して実数演算を実装する。実施の一部として、第1のモジュラー表現において複数のパーティによって共同で記憶された秘密共有値は、より大きな最上位ビットを有する第2のモジュラー表現にキャストされる。パーティは、範囲が2等分に分割された、第1の表現における秘密共有マスキング値を使用して、その秘密共有値と秘密共有マスキング値との和をマスクして、明らかにする。パーティは、マスキング値を含む範囲の半分を識別する秘密共有ビットを、和とともに使用して、第2のモジュラー形式で秘密共有値を表す秘密共有のセットを共同で構築する。以前の作業とは対照的に、開示された解決策は、効率性またはセキュリティを犠牲にすることなく、ゼロではないエラーの確率を排除する。【選択図】図4
Description
関連出願
本出願の主題は、2019年2月22日出願の米国仮特許出願第62809543号に関連しており、その全体が参照により本明細書に組み込まれる。本出願の主題はまた、2018年8月30日に出願され、2019年3月7日に世界知的財産機関国際公開第WO2019046651A2号として公開された特許協力条約出願第PCT/US2018/048963号に関連しており、その全体が参照により本明細書に組み込まれる。
本出願の主題は、2019年2月22日出願の米国仮特許出願第62809543号に関連しており、その全体が参照により本明細書に組み込まれる。本出願の主題はまた、2018年8月30日に出願され、2019年3月7日に世界知的財産機関国際公開第WO2019046651A2号として公開された特許協力条約出願第PCT/US2018/048963号に関連しており、その全体が参照により本明細書に組み込まれる。
プライバシー保護マルチパーティ計算(MPC)技術により、多数のパーティが、入力を秘密にしながら、共有または明らかにされた出力を生成する機能を共同で評価することができる。このような計算は、例えば、入力データが、それらのデータを開示することができない別個のプライベートデータソースから来るが、機密データに基づいた公開結果が必要な場合に、医療および金融において使用される。
MPCは通常、多数の参加者間で時間的および地理的に分割される。参加者は、それぞれが別個のコンピューティングシステムを表し、典型的には、k個のパーティおよび1つの信頼できるディーラーを含む。本明細書で使用されるように、パーティおよびプレイヤーという用語は、互換的に使用され、マルチパーティ計算に参加している個々のパーティコンピュータシステムを指している。
計算を実装するためのコードのコンパイル後、信頼できるディーラーは、まず、MPCのオフライン段階を実行する。オフライン段階では、信頼できるディーラーは、マスク(マスキングデータ、トリプレットとも呼ばれる)を生成し、各パーティがそのマスクの共有のみを知っており、いずれも共有の合計によって表される平文マスク値を知らないように、これらのマスクの共有をパーティに分配する。マスクの決定は、典型的には、マスクがデータに関連して適切に構成されるように、統計分析の観点から操作されることが予想されるデータに依存する。
次いで、k個のパーティは、定義されたMPCプロトコルに従ってパーティがメッセージを交換またはブロードキャストすることができる同期ステップを用いて、MPCのオンライン段階を共同で実行する。オンライン段階は、信頼できるディーラーがアクセスすることができないファイアウォール環境で実行することができる。
MPCは、平文擬似コード(plaintext pseudocode)の分配等価物(distrobuted equivalent)であり得、これは、MPCフレンドリーな基本動作の単一の静的割り当て(SSA)グラフとして説明することができる。SSAグラフのノードは平文変数であり、各パーティは変数のローカルビュー(または秘密共有)を得る。このローカルビューをMPCコンテナとして示す。MPCフレンドリーな基本操作は、MPCコンテナおよび任意選択的にいくつかの静的パラメータを入力として取り、MPCコンテナを出力として生成するビルトインと呼ばれる。
図1は、マルチパーティ計算のk個のパーティに対するMPCコンテナの概略を示す。全体的に、MPCコンテナは、SSA内の1つの変数、すなわち、公開(すべてのパーティによって知られているが、信頼できるディーラーによって知られていない)または秘密共有
(各パーティがその共有のみを知っている)、1つのマスク
(ディーラーによって知られ、すべてのパーティ間で共有されている秘密)、および任意選択的なマスク値a=x+λ(すべてのパーティによって知られているが、典型的にはディーラーによって知られていない)のいずれかであり得る平文値xに関するすべての情報を保持する。注記:二重四角括弧表記
は、秘密共有値を示すために本明細書で使用される。
局所的に、各パーティは、以下のようにフィールドを有する構造であり得る、MPCコンテナのトレースを有する:
-公開値x(コンテナが公開されている場合)
-公開価値の1つのシェアxj
-コンテナのマスクの1つのシェアλj
-マスク値a(コンテナがマスクされ、明らかにされている場合)。
-公開値x(コンテナが公開されている場合)
-公開価値の1つのシェアxj
-コンテナのマスクの1つのシェアλj
-マスク値a(コンテナがマスクされ、明らかにされている場合)。
K個のコンテナの結合を分析すると、次のようになる:コンテナの平文の値は、定義上、すべてのシェアの合計Σxjであり、コンテナが公開されている場合、すべてのパーティは平文の値を知っており、各パーティはこの値xを事前設定している。この場合、MPCプロトコルで他のフィールドを使用する必要はない。コンテナのマスクはλ=Σλjである。マスクの値は、(オフライン段階中に)信頼できるディーラーのみが知っている。オンライン段階中、実際のマスクを知っている、または学習しているパーティはいない。マスク値aはλ+xに等しい。特殊なマスクアンドリビール動作は、各パーティにそのxj+λjをブロードキャストするように指示し、これにより、各パーティは、同じフィールドa=x+λを共同で再構築し、記憶することができるようになる。ビルトインに現れる全ての他の技術的またはローカル変数は、エフェメラル変数と呼ばれる。
2つの以前の作業は、MPCの文脈において実数を表すために、浮動小数点表示とは対照的に、固定小数点整数表現の使用を提案している。以前の作業の最初のものは、以下、P.MohasselおよびY.Zhangにより「SecureML」と称され、2017 IEEE Symposium on Security and Privacy,SP 2017,San Jose,CA,USA、2017年5月22~26日、19~38ページ、2017において”SecureML:A system for scalable privacy-preserving machine learning”と題される。以前の作業の2番目のものは、以下、P.MohasselとP.Rindalにより「ABY3」と称され、Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security,CCS 2018,Toronto,ON,Canada、2018年10月15~19日、35~52ページ、2018において“ABY3”と題される.
modReal表現。これらの作業では、実数演算は、固定サイズの整数型(例えば、int64、すなわち、整数モジュロ264)に対する加算、減算およびラウンド分割の評価を通じて、実装される。例えば、2つの30ビット整数xおよびyを乗算し、結果のうちの30個の最上位ビットを保持するために(浮動小数点乗算に類似して)、最初にxyを計算し(オーバーフローなしで積を64ビット整数に適合させることによって)、次いで、結果を30ビット右シフトすることができる。2つの作業は、x=centermodq(x1+...+xk)となるように、これらの動作を、
(いくつかの整数qについて)としてk個のパーティ(secureMLではk=2、ABY3ではk≧3)の間で平文
が秘密共有されるMPC設定に適合させる。署名された数学的リフトcentermodq(x)は、
となるように一意の整数
であると定義される。算術共有に対する実数のこの特定の表現をmodReal表現と呼ぶ。
SecureML,Section4.1,subsection title:“Arithmetic Operations on Shared Decimal Numbers”は、次のように示唆している。各数の
ビットが数の分数部を表すように定義されるように、(小数点以降の2進数字)共通整数表現に記憶された2つの2進10進数xおよびyの固定小数点積を考える。この場合、
は、整数バックエンドを使用してネイティブに表すことができる整数となる。ただし、積z=x’y’は、いくつかの整数
に対して乗算が
において行われたとして、表現の分数部に最大
ビットを有することになる。しかしながら、特にMPCの状況において、小数点の後に追加の2進数字を維持することは、実用的ではない場合がある。SecureMLは、最後の
ビットを無視または切り捨てることによって、結果の分数部を表すビット数を減らすことを示唆している。たとえば、積は
のように表すことができ、ここで、
であり、結果が
のみを含むと考える。
その後、secureMLは上記の切り捨て技法を秘密共有値
に拡張する。事実上、
のそれぞれの秘密シェアを保持する2つのパーティは、それぞれの個々のシェアを切り捨てることができる。その後、高い確率で、2つの切り捨てられたシェアがzの切り捨て
を再構築できることが定理1で示される。X1とx2が非常に小さいxの2つの秘密シェアである場合、非常に高い確率で、2つのシェアx1とx2は、2つの反対側の半円mod内
にある。2つのパーティでのみ機能する解決策は、シェアを切り捨てるためにローカル手順に依存するが、結果として生じる秘密共有値が誤っている確率はゼロではない。
ABY3は、§5.1.1におけるsecureMLの2パーティ切り捨て技法の制限に取り組み、§5.2.2は、MPC設定で3つ以上のパーティに及ぶ切り捨てのための追加技法を提示する。しかしながら、繰り返しになるが、これら追加技法は、実際には無視できない確率で失敗する可能性がある。
2つの以前の作業では、ビーバートリプレットモジュロqを使用して乗算が実施され、各シェアに対して局所的にラウンドを実施することができ(
によって境界付けられた平文値の小さなエラーを犠牲にして)、各シェアにおいて局所的に加算を行うことができる。分割のための2つのバリアントが提案される:最初のバリアントは、secureMLにおいて、2つのパーティ間の通信がない2つのパーティ解決策であり、2つ目のバリアントは、ABY3において、k個のパーティに対するビーバートリプレットベース解決策である。どちらの場合でも、除算の結果はほとんどの場合正しいが、いくつかの小さいがゼロではない確率で、検出できない巨大なオーバーフローが発生する。M個の整数要素および共有モジュロqの平文範囲のオーバーフロー確率は、M/qである。2つの30ビット整数を乗算する上述の例では、オーバーフロー確率は261/264=1/8であり、精度を20ビットに低下させると241/264に低下する。オーバーフローが発生すると、オーバーフローは大きくなる(secureML以降、オーバーフローの振幅は緩和されたが、それでも、新しいABY3の改訂版では、結果の最上位ビットが変更される)。したがって、これらの間違った値を含む任意の集計関数が影響を受ける。オーバーフローの確率は係数あたりであるため、(ロジスティック回帰、線形回帰、ニューラルネットなどのほとんどのML使用ケースの場合のように)N個の係数のベクトルまたはマトリクスに計算を行うと、少なくとも1つの破壊的オーバーフローの存在がNによって乗算され、無視できないものになる。
数百万の係数を扱うために、2つの以前の作業によって提案された2つの可能な対策は、精度を低下させる(64ビットのバックエンドで最大10ビットの精度を提供する)か、バックエンドサイズを例えば128ビットに増加させる(4~16倍遅くする)かのいずれかである。なお、10ビットの固定小数点精度は、平文の正確な分布(例えば、特徴スケールの入力、シグモイドの出力など)を知っている数値的に安定した使用ケースでは十分であること。しかし、秘密平文分布の不確実性のために、固定小数点指数が実数値よりも4または5ビット高いと推定される場合、大きなアンダーフロー状況に遭遇することもある。
セキュアなマルチパーティ計算の文脈において、第1のモジュラー表現において多数のパーティによって共同で記憶された秘密共有値は、より大きな最上位ビットを有する第2のモジュラー表現にキャストされる。キャストには、信頼できるディーラーが、範囲が2つに分かれているマスキング値をパーティと秘密共有することを含む。パーティは、マスキング値を使用して、秘密共有値とマスキング値の合計をマスクし、明らかにする。信頼できるディーラーは、マスキング値を含む範囲の半分を少し符号化するビットを、パーティと秘密共有する。パーティは、合計とともに秘密共有ビットを使用して、第2のモジュラー形式で秘密共有値を表す秘密共有のセットを共同で再構築する。以前の作業とは対照的に、開示された解決策は、効率性またはセキュリティを犠牲にすることなく、ゼロではないエラーの確率を排除する。この方法は、以下の詳細な説明のセクション3.1にさらに詳細に記載されている。
方法は、秘密共有値に対してマルチパーティ計算を実施するように構成されたセキュアなマルチパーティコンピューティングシステム(SMPCS)によって実施され得、SMPCSは、信頼できるディーラーコンピューティングシステムおよびセキュアなネットワーク化通信における複数のパーティコンピューティングシステムを含む。本方法は、秘密共有値を第1のモジュラー表現から第2のモジュラー表現にキャストするためのものであり、第1のモジュラー表現は、第1のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、第2のモジュラー表現は、第2のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、第2のモジュラー表現の最上位ビット位置は、第1のモジュラー表現の最上位ビット位置よりも大きい。
一実施形態によれば、パーティコンピューティングシステムの各々は、第1のモジュラー表現の秘密共有値のそれぞれの秘密シェアを記憶する。信頼できるディーラーコンピューティングシステムは、マスキング値を記憶し、マスキング値が第1のモジュラー表現内のパーティコンピューティングシステム間で秘密共有されるように、第1のモジュラー表現におけるマスキング値のそれぞれの秘密シェアをパーティコンピューティングシステムの各々に通信する。信頼できるディーラーコンピューティングシステムは、マスキング値が存在するサブ範囲を決定することであって、サブ範囲が、第1のモジュラー表現の範囲を表す複数の所定の非重複サブ範囲から選択される、決定すること、決定されたサブ範囲を数値サブ範囲識別子に符号化すること、数値サブ範囲識別子がパーティコンピューティングシステム間で秘密共有されるように、パーティコンピューティングシステムの各々に、数値サブ範囲識別子のそれぞれの秘密シェアを通信することを行う。信頼できるディーラーコンピューティングシステムは、マスキング値に対して少なくとも第1の数学的リフトを実施することによって、第1の変換において、マスキング値を変換されたマスキング値に変換する。信頼できるディーラーコンピューティングシステムは、変換されたマスキング値が第2のモジュラー表現においてパーティコンピューティングシステム間で秘密共有されるように、第2のモジュラー表現の変換されたマスキング値のそれぞれの秘密シェアをパーティコンピューティングシステムの各々に通信する。パーティコンピューティングシステムは、秘密共有値の秘密シェアまたはマスキング値の秘密シェアを明らかにすることなく、秘密共有値とマスキング値との和をマスク値として共同で計算し、明らかにする。
SMPCSは、第2の変換において、マスク値に対して少なくとも第2の数学的リフトを実施することによって、マスク値を第1の変換されたマスク値に変換する。SMPCSは、第3の変換において、マスク値に対して少なくとも第3の数学的リフトを実施することによって、マスク値を第2の変換されたマスク値に変換し、第1の数学的リフト、第2の数学的リフト、および第3の数学的リフトは、それぞれ互いに異なる。パーティコンピューティングシステムは、パーティコンピューティングシステムの各々が、第1の変換されたマスク値、第2の変換されたマスク値、各パーティコンピューティングシステムについて、数値サブ範囲識別子のそれぞれの秘密シェア、および各パーティコンピューティングシステムについて、変換されたマスキング値のそれぞれの秘密シェア、に基づき、第2のモジュラー表現の秘密共有値のそれぞれの秘密シェアを計算するように、パーティコンピューティングシステムが、第2のモジュラー表現の秘密共有値を共同で計算する。
第1の数学的リフトおよび第2の数学的リフトが、第1のモジュラー表現の範囲の4分の1ずれた値を互いに対して生成し、第2の数学的リフトおよび第3の数学的リフトが、第1のモジュラー表現の範囲の半分ずれた値を互いに対して生成する、方法が行われ得る。
第1の数学的リフト、第2の数学的リフト、および第3の数学的リフトは、
によってパラメータ化されたquartermodリフトであって、(Mmsb-1)が第1のモジュラー表現の最上位ビット位置である、quartermodリフトと、
によってパラメータ化されたquartermodリフトと、
によってパラメータ化されたposmodリフトからなる群からそれぞれ選択される、方法が行われ得る。
第1の数学的リフトが、
によってパラメータ化されたマスキング値に対するquartermodリフトであり、第2の数学的リフトが、
によってパラメータ化されたマスキング値に対するcentermodリフトであり、第3の数学的リフトが、
によってパラメータ化されたマスキング値に対するposmodリフトであり、(Mmsb-1)が、第1のモジュラー表現の最上位ビット位置である、方法が行われ得る。
2Mによってパラメータ化されたxに対するquartermodリフトが
となるように一意のリアル(unique real)
として定義され、2Mによってパラメータ化されたxに対するcentermodリフトが
となるように一意のリアル
として定義され、2Mによってパラメータ化されたxに対するposmodリフトが
となるように一意のリアル
として定義される、方法が行われ得る。
第1の変換は、第1の数学的リフトの結果を、
の最も近い倍数にラウンドすることであって、p’lsbは第2のモジュラー表現の最下位ビット位置である、ラウンドすること、およびラウンドのモジュロ
を取ることであって、(M’msb-1)は、第2のモジュラー表現の最上位ビット位置である、取ることをさらに含み、第2の変換は、第2の数学的リフトの結果を
の最も近い倍数にラウンドすること、およびラウンドのモジュロ
を取ることをさらに含み、第3の変換は、第3の数学的リフトの結果を
の最も近い倍数にラウンドすること、およびラウンドのモジュロ
を取ることをさらに含む、方法が行われ得る。
「複数の所定の非重複サブ範囲」が、2つの等しいサイズのサブ範囲からなり、数値サブ範囲識別子が、数字0および1からなる群から選択される、方法が行われ得る。
秘密共有された数値サブ範囲識別子が、第2のモジュラー表現において秘密共有値を計算する際に使用するために、第1の変換されたマスク値と第2の変換されたマスク値との間で選択するために、パーティコンピューティングシステムによって共同で使用される、方法が行われ得る。
第1のモジュラー表現および第2のモジュラー表現が、実数の固定小数点整数表現である、方法が行われ得る。
方法は、秘密共有値に対してマルチパーティ計算を実施するように構成されたSMPCSによって実施され得、SMPCSは、セキュアなネットワーク化通信における複数のパーティコンピューティングシステムを含む。本方法は、秘密共有値を第1のモジュラー表現から第2のモジュラー表現にキャストするためのものであり、第1のモジュラー表現は、第1のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、第2のモジュラー表現は、第2のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、第2のモジュラー表現の最上位ビット位置は、第1のモジュラー表現の最上位ビット位置よりも大きい。
一実施形態によれば、パーティコンピューティングシステムの各々は、第1のモジュラー表現に秘密共有値のそれぞれの秘密シェアを記憶する。SMPCSは、マスキング値がパーティコンピューティングシステム間で共有されるように、マスキング値のそれぞれの秘密シェアをパーティコンピューティングシステムの各々に通信する。SMPCSは、パーティコンピューティングシステムの各々に、マスキング値が存在するサブ範囲の指示のそれぞれの秘密シェアを通信し、サブ範囲は、第1のモジュラー表現の範囲を表す複数の所定の非重複サブ範囲から選択され、その結果、サブ範囲指示は、パーティコンピューティングシステム間で秘密共有される。SMPCSは、マスキング値に対して少なくとも第1の数学的リフトを実施することによって、第1の変換において、マスキング値を変換されたマスキング値に変換する。SMPCSは、変換されたマスキング値が第2のモジュラー表現においてパーティコンピューティングシステム間で秘密共有されるように、第2のモジュラー表現の変換されたマスキング値のそれぞれの秘密シェアをパーティコンピューティングシステムの各々に通信する。パーティコンピューティングシステムは、秘密共有値の秘密シェアまたはマスキング値の秘密シェアを明らかにすることなく、秘密共有値とマスキング値との和をマスク値として共同で計算し、明らかにする。SMPCSは、第2の変換において、マスク値に対して少なくとも第2の数学的リフトを実施することによって、マスク値を第1の変換されたマスク値に変換する。SMPCSは、第3の変換において、マスク値に対して少なくとも第3の数学的リフトを実施することによって、マスク値を第2の変換されたマスク値に変換し、第1の数学的リフト、第2の数学的リフト、および第3の数学的リフトは、それぞれ互いに異なる。パーティコンピューティングシステムは、パーティコンピューティングシステムの各々が、第1の変換されたマスク値、第2の変換されたマスク値、各パーティコンピューティングシステムについて、サブ範囲指示のそれぞれの秘密シェア、および各パーティコンピューティングシステムについて、変換されたマスキング値のそれぞれの秘密シェア、に基づき、第2のモジュラー表現の秘密共有値のそれぞれの秘密シェアを計算するように、パーティコンピューティングシステムが、第2のモジュラー表現の秘密共有値を共同で計算する。
「複数の所定の非重複サブ範囲」が、2つの等しいサイズのサブ範囲からなり、数値サブ範囲識別子が、数字0および1からなる群から選択される、方法が行われ得る。
秘密共有された数値サブ範囲識別子が、第2のモジュラー表現において秘密共有値を計算する際に使用するために、第1の変換されたマスク値と第2の変換されたマスク値との間で選択するために、パーティコンピューティングシステムによって共同で使用される、方法が行われ得る。
第1のモジュラー表現および第2のモジュラー表現が、実数の固定小数点整数表現である、方法が行われ得る。
それぞれの初期モジュラー表現に記憶された第1の秘密共有値と、それぞれの初期モジュラー表現に記憶された第2の秘密共有値との乗算を行うための方法は、第1の秘密共有値と、第2の秘密共有値との両方が共通のモジュラー表現に記憶されるように、第1の秘密共有値と、第2の秘密共有値とのうちの少なくとも1つを、キャストするための前述の方法のいずれか1つに従い、共通のモジュラー表現にキャストすることと、共通のモジュラー表現における第1の秘密共有値および第2の秘密共有値に対してビーバー乗算を実施するとと、を含むことができる。
それぞれの初期モジュラー表現にそれぞれ記憶される複数の秘密共有値と、対応する複数の静的係数とを結合するための方法は、複数の秘密共有値の全てが共通のモジュラー表現に記憶されるように、複数の秘密共有値のうちの少なくとも1つを、キャストするための前述の方法のいずれか1つに従い、共通のモジュラー表現にキャストすることと、共通のモジュラー表現に記憶された複数の秘密共有値と、対応する複数の静的係数との線形結合を実施することと、を含むことができる。
秘密共有値に対する連続関数を評価する方法は、秘密共有値に基づき、複数の確定済みフーリエ級数からフーリエ級数を選択することであって、複数の確定済みフーリエ級数の各々が、連続関数のドメインの関連するサブ間隔上の連続関数を近似するように構成されている、選択することと、選択に基づき、キャストするための前述の方法のいずれか1つに従い、秘密共有値を、第1のモジュラー表現から第2のモジュラー表現にキャストすることと、選択されたフーリエ級数を使用して、第2のモジュラー表現における秘密共有値上の連続関数の値を近似することと、を含むことができる。
システムは、前述の方法のいずれか1つを実施するように構成されている、複数のコンピュータシステムを含むことができる。
非一時的コンピュータ可読媒体は、複数のコンピュータシステムによって実行されると、複数のコンピュータシステムに、前述の方法のいずれか1つを実施させるように、コンピュータコードで符号化され得る。
以下の説明では、それに従って本開示の発明の対象が実施され得る、様々な実施形態について述べる。実施形態によっては、1つの/ある/別の実施形態などといった表現を使用して記述されることがあり、そのうちの複数の場合が、必ずしも同じ実施形態を指すわけではない。このような場合に関連する特定の特徴、構造、または特性は、特に断りのない限り、様々な実施形態において、任意の好適な方式で組み合わせられ得る。例として、本開示は、実施形態のためのいくつかのオプションまたは可能性のセットまたはリストを示してもよく、そのような場合、本開示は、セットまたはリスト内のアイテムのすべての明らかに実行可能な組み合わせおよび/または順列を具体的に企図する。
1 概要
本開示では、マルチパーティ計算(MPC)設定におけるモジュラー整数表現を使用して、高い数値精度で実数演算を実施するための新規の技術を提示する。特に、第1のモジュラー表現に記憶された秘密共有値を第2のモジュラー表現にキャストするための方法を開示する。以前の作業とは対照的に、開示された解決策は、線形回帰およびロジスティック回帰などの機械学習技術にとって重要である、効率性およびセキュリティを犠牲にすることなく、エラーを有利に排除する。
本開示では、マルチパーティ計算(MPC)設定におけるモジュラー整数表現を使用して、高い数値精度で実数演算を実施するための新規の技術を提示する。特に、第1のモジュラー表現に記憶された秘密共有値を第2のモジュラー表現にキャストするための方法を開示する。以前の作業とは対照的に、開示された解決策は、線形回帰およびロジスティック回帰などの機械学習技術にとって重要である、効率性およびセキュリティを犠牲にすることなく、エラーを有利に排除する。
MPCに対してフル閾値セキュリティモデルを採用し、計算をオフライン段階とオンライン段階に分ける。オフライン段階(入力データとは無関係)は、信頼できるディーラーまたは誠実だが好奇心旺盛なディーラーのいずれかによって実施され得る。この段階のより強力なモデルと検証可能性は、忘れられた転送や切り取り選択などの標準的な技術を介して達成することができる。オンライン段階では、結果の加算共有が計算される。
私たちの作業では、以前の作業と同じ共有の定義を維持しているが、オーバーフローを完全に排除する小さな項(M/q≦1/2)を追加することで、トリプレット(マスキング値)の定義を変更する。この方法は、オンライン段階中に1回の通信を維持し、全体的な実行時間を保持するわずかな2進演算だけを追加する。新しい方法は常に正しく、セキュリティは無条件であり、任意の数のパーティに対して機能する。
簡単にまとめると、ABY3におけるオーバーフローは、例えば、除算演算中に、ランダムマスクr′modq(オフライン段階中に選択される)およびマスク値a=x′-r′modqから小さな平文x∈Zを再構築する必要があるという事実に由来する。後者は、クラスmodqと互換性のない除算演算を適用する前に、オンライン段階中に明らかにされる。そのためには、r′とaの両方が[-q/2,q/2]で暗黙的に整数にリフトされる。より正確には、ABY3 §5.1.1、5.1.2では、これらの2つの暗黙的なセンタ化されたリフトは、1)
がランダムであるトリプレットr=r′/2dの定義において、および2)明らかに
かつ局所的な計算(x′-r′)/2dの演算において、の2つの演算中に生ずる。これらの2つのリフトは、a-r′がリアルを超えてx′に等しいというさらなる仮定と常に互換性があるとは限らない(均等性は、小さい確率で+qまたは-qだけ異なる場合がある)。新しい設定では、無条件のセキュリティを保証するr’の全範囲を保持する。依然として、群
を2等分し、オフライン段階中、r′を含む半群を符号化する追加のビットを秘密共有し、秘密共有ビットを同じトリプレットに追加する。各半群は、パーティが両方のリフトを計算し、次いで、オンライン段階中に共有ビットを使用して、正しいリフトを気づかずに選択することができるように、a~r’について異なるリフトに対応する。
2平文値および秘密共有の表現
2.1 浮動小数点表示および固定小数点表示
平文の実数xは、
として浮動小数点の形式で表すことができる。
-仮数mは、1/2≦|m|<1、および
-指数e∈Z(データ依存)となるように正規化される。
この表現は、mとeの両方が平文値xに依存するという意味で、明らかにデータ依存である。特に、指数eの値は正確に
である。浮動小数点表示は、指数eを決定するために、xのサイズに関する情報を必要とするため、この値eがマルチパーティ計算の前にコンパイラによって知られていないため、データに依存し、MPCフレンドリーではない。
2.1 浮動小数点表示および固定小数点表示
平文の実数xは、
-仮数mは、1/2≦|m|<1、および
-指数e∈Z(データ依存)となるように正規化される。
この表現は、mとeの両方が平文値xに依存するという意味で、明らかにデータ依存である。特に、指数eの値は正確に
マルチパーティ計算を開始する前のコンパイラの視点から、指数は、公開と見なされるか、または公開として扱われることができるが、仮数は、私的として扱われることができる。コンパイラは、計算の前に秘密数xを知らないため、コンパイラがmに対して上記の正規化を保証する正確なeを決定することは不可能である。次の2つの例に示すように、オーバーフローまたはアンダーフローを容易に起こす可能性があるため、この表現も適していない。
オーバーフローX=10.1(2)とy=10(2)の2つの数(2進)を掛けるとする。これらの両方は、指数2を有する。しかしながら、結果の事前計算された公開指数がまだ2である場合、計算は、x×y=101(2)のため、オーバーフローする。したがって、オーバーフローを回避するには、少なくとも3の指数が必要となる。
アンダーフロー仮数のビット数がバインドされ(4ビット)、x2=1.1(2)×1.1(2)=10.01(2)を計算したいとするシナリオを仮定する。この制限で、事前に計算された指数が2ではなく3であった場合、精度は失われ、つまり、結果は10.01(2)ではなく010.0(2)になる。
したがって、プログラム内の各値について指数に十分に良いバインドを保管する中間的な方法を採用する。このバインドは、特定の統計分析によって、専用コンパイラを介して、静的に推定され得る。この方法は、秘密値そのものを明らかにすることなく、秘密値について可能な限り正確に公開バインドを保持する。その観点から、実数表現は、固定小数点と浮動小数点の両方の特徴を組み合わせることによってハイブリッドとなる。
コンパイラの観点からは、指数は公的であると見なすことができるが、仮数は私的であると見なすことができる。しかしながら、コンパイラは確かに秘密数xを知らないので、コンパイラがmについて上記の正規化を保証する正確な指数eを判定することは不可能である。
2.2 リアルのハイブリッド平文表現
固定小数点(整数)表示で実数を表すための次のパラメータを導入する。
-plsbは、最下位ビットのビット位置を示し、
-(pmsb-1)は、最上位ビットのビット位置を示し、
-ρ=pmsb-plsbは、平文の数値ウィンドウ、すなわち固定小数点精度を表す。
パラメータpmsbおよびplsbは、動作されると予想されるデータの統計分析に基づいて、コンパイラによって決定され得る。実際には、制限因子は、数値ウィンドウρのサイズ(すなわち、仮数mのビット数、等価的に、コンパイラによって保持される指数バインドと、保持されるべき小数部分の二進数桁の数との差)である。Ρが小さいほど、バックエンドで算術が効率的になる。したがって、静的解析は、以下の2つの条件を確保する必要がある。
-静的に決定されたバインドは、オーバーフローを回避するのに十分である。
-バインドは、精度の損失を避けるために、できる限り正確である(ρの制限を考慮)。
固定小数点(整数)表示で実数を表すための次のパラメータを導入する。
-plsbは、最下位ビットのビット位置を示し、
-(pmsb-1)は、最上位ビットのビット位置を示し、
-ρ=pmsb-plsbは、平文の数値ウィンドウ、すなわち固定小数点精度を表す。
パラメータpmsbおよびplsbは、動作されると予想されるデータの統計分析に基づいて、コンパイラによって決定され得る。実際には、制限因子は、数値ウィンドウρのサイズ(すなわち、仮数mのビット数、等価的に、コンパイラによって保持される指数バインドと、保持されるべき小数部分の二進数桁の数との差)である。Ρが小さいほど、バックエンドで算術が効率的になる。したがって、静的解析は、以下の2つの条件を確保する必要がある。
-静的に決定されたバインドは、オーバーフローを回避するのに十分である。
-バインドは、精度の損失を避けるために、できる限り正確である(ρの制限を考慮)。
例えば、x=1は、pmsb=1を有し、x=3は、pmsb=2を有する。なお、クラス
は厳密には[ステップ
において2]と
の間のすべての実数(この場合は有理数)を表す。なお、Plsbはしばしば負である(正確な整数部分と、少数部分から数ビットの精度を計算したい場合)が、一般的に、これである必要はない。負のplsbは、小数部分のビットを検討していることを意味する。Ρ=pmsb-plsbは、数値を表すのに必要なビット数を本質的に示している。負のplsbが多いほど、フロートの精度が高くなり、それを表すのに必要なビットが多くなる。
実施例1pmsb=40およびplsb=-10について、Ρ=40-(-10)=50である。この場合、最下位ビットは位置-10にあり、最上位ビットは位置39にあり、最下位非分数ビットは位置0にある。
実施例2Plsb=-2およびpmsb=5について、数値は1011.1(2)として2進値で表され、
では01011.10(2)として表される。この場合、2つの分数ビットは、ビット位置-2および-1を占め、非分数ビットは、位置0~4を占める。
与えられた実数は、多くの異なる平文クラスに属することができることに注意する(すなわち、上記の例の11.5は
に属しているが、
や
にも属している)。
実施例1pmsb=40およびplsb=-10について、Ρ=40-(-10)=50である。この場合、最下位ビットは位置-10にあり、最上位ビットは位置39にあり、最下位非分数ビットは位置0にある。
実施例2Plsb=-2およびpmsb=5について、数値は1011.1(2)として2進値で表され、
与えられた実数は、多くの異なる平文クラスに属することができることに注意する(すなわち、上記の例の11.5は
図2は、固定小数点表示におけるビットpmsbとplsbとの関係、およびアンダーフローおよびオーバーフロー条件において影響を受けるであろう、関連するビットを示す。
平文オーバーフローセット(Plaintext overflow)
は群でもリングでもなく、特に、加法、減法、乗法などの実算術演算の下では安定していない。たとえば、数値3は
に属すが、3+3、-3-3、および3×3はすべてバインド
を超えている。より一般的には、式の結果が出力された平文セットの
を超える場合には、平文オーバーフローと呼ぶ。
平文オーバーフローのリスクを回避するために、pmsbが少なくともlog2(x)であることを確実にする。しかし、変数のパラメータpmsbとplsbは、コンパイル時に(値xの実数値を知る前に)指定する必要があるため、リスクを軽減するには、pmsbをすべての可能な値の上限に設定する必要がある。これにより、変数に実数値を割り当てるときにオーバーフローが発生しないことが確実にされる。これはまた、実際(または浮動小数点)の精度が、固定小数点の精度pmsb-plsbよりも常に小さいことを意味している。
平文アンダーフロー。固定指数が大きすぎる場合、平文情報を完全に失う可能性がある。例えば、x=1×10-3およびy=6×10-6、xy=6×10-6である場合、浮動小数点数表示については、1小数桁が、積の仮数を表すのに十分であり、計算された指数は、
である。
一方、固定小数点の世界では、入力の平文パラメータが、4小数桁の精度に対応する(pmsb、plsb)=(0、-14)に設定されている場合、一般的な誤りは、積pmsbが、2つの入力pmsbの和であると仮定することであり、ここでは、同じ14ビットの固定小数点の精度の結果を期待することであり、パラメータ(pmsb、plsb)=(0、-14)では、この場合、結果は、次のように計算される。0.0010×0.0060=0.0000で、結果が完全に失われる。このようなケースは平文アンダーフローと呼ばれ、この例では効果的に14ビットの固定小数点の精度があるが、計算された結果は浮動小数点の観点から完全に間違っている。
2.3 ModReal-実数のモジュラー表現
ModReal表現は、例えば、64ビットまたは128ビットの整数に基づくことができる、モジュラー整数表現の実算術を指している。この表現は、小数点の後に固定数の二進数字を含む、実数の固定小数点表示を有するコンピュータプロセッサの固定小数点ユニットを使用することができる。
ModReal表現は、例えば、64ビットまたは128ビットの整数に基づくことができる、モジュラー整数表現の実算術を指している。この表現は、小数点の後に固定数の二進数字を含む、実数の固定小数点表示を有するコンピュータプロセッサの固定小数点ユニットを使用することができる。
マルチパーティ計算においてセキュリティを達成するために、特定のサイズの平文値は、典型的には、より大きなパラメータを有する値のクラスに属する値を共有するために秘密共有される。さらに、秘密シェアは、より大きなクラスからの値によってマスクされる。これらのより大きな秘密共有クラスは、2つの整数Mmsbおよびplsbによってパラメータ化される。すべての場合において、平文の最下位位置と一致するため、同じ記号plsbを自発的に使用するが、秘密共有されたデータに使用されるパラメータMmsbは、通常、対応する平文に使用されるpmsbよりも大きくなる。
-plsbは、マスク/共有の最下位ビットのビット位置を示す。
-(Mmsb-1)は、マスク/共有の最上位ビットのビット位置を示す。
-plsbは、マスク/共有の最下位ビットのビット位置を示す。
-(Mmsb-1)は、マスク/共有の最上位ビットのビット位置を示す。
定義2(実数のモジュラー表現)パラメータMmsbとplsbが与えられると、実数の秘密共有のモジュラー表現に使用されるクラスは、有限アーベル群として定義される。
なお、
は
に対して同類形態(アーベル群として)であり、使用する自然な
-モジュール構造を有する。
実施例。Plsb=-2およびpmsb=6の場合、数値x=11.5=12+1+2+8は、2進数で1011.1として表され、
では001011.10として表される。反対の数値x′=-11.5=52.5=1/2+4+16+32mod64は2進数で110100.1として表され、
では110100.10として表される。なお、xとx′の整数部分のビットは反対である。最初のビットは数字の符号を与え、最初のビットが0の場合、数字は正、それ以外の場合は負である。
2.4 ModReal数学リフト
秘密共有の考えを定義する前に、全体を通して使用されるトーラス
(正の整数Mに対して)から
(実数)へのいくつかの自然なリフトを提示する。ここで、リフトとは、自然全射の一部を意味する
整数2Mでパラメータ化された、
から
への4つの数学的リフトを次のように定義する。
-
は、
となるように一意の実数
として定義される
-
は、
となるように一意のリアル
として定義される
-
は、
となるように一意のリアル
として定義される
-
は、
として定義される。この差は、xがどの半空間に属するかによって、0または2Mのいずれかである。
秘密共有の考えを定義する前に、全体を通して使用されるトーラス
-
-
-
-
2.5 共有のモジュラー表現
モジュラー表現は、秘密共有された実数の共有を表すために有利に使用され得る。
モジュラー表現は、秘密共有された実数の共有を表すために有利に使用され得る。
MPC共有の非モジュラー表現に対するモジュラー表現の利点は、例によって示され得る。
実施例1。まず、上記の非モジュラークラス
を使用して、各共有の非モジュラー表現のケースを考える。平文整数42は、
において[33,97、-88]として、または
において[164301、-806845,642586]として、3つのパーティ間で秘密共有され得る。正確な平文整数を再計算するには、3つのシェアすべてが必要である。しかしながら、第1のシナリオでは、最初の2つのシェアの和は、27=128と比較してかなり大きく、平文整数が正であることを強く示している。問題は、より大きな表現を犠牲にして、より大きなpmsbを使用する2番目の実施例で緩和される。
実施例2:次に、
において[33,97,40]として3つのパーティ間で秘密共有される同じ整数42を考える。正確な整数の平文を再計算するには、3つのシェアすべてが必要であるが、今回は、
がグループであり、均一分布を有するため、最初の2つのシェアは、平文の値に関する情報を全く提供しない。そのような共有のセキュリティは、kのうちk-1のパーティの連合にとっては情報理論的である。
3 キャスト演算(Casting Operations)
モジュラー整数の形態で表される秘密共有された実数に対する加算や乗算などの基本的な算術演算をサポートするために、まず、互換性のあるクラス(平文クラスと秘密共有クラス)で2つのオペランドをキャストできることを確実にする必要がある。したがって、キャスト演算が、所与のセットのパラメータに対する表現を、別のセットのパラメータに対する表現に効率的に変換することを可能にすることが重要である。このセクションでは、所与のクラス
からのモジュラー共有のセットを、異なるパラメータM’msb、p’lsbを持つ別のクラス
からのモジュラー共有の別のセットに変換する方法を説明する。キャスト演算は、パラメータplsbおよびMmsbを減少または増加させるかに応じて、通信を必要とする場合も必要としない場合もある。
モジュラー整数の形態で表される秘密共有された実数に対する加算や乗算などの基本的な算術演算をサポートするために、まず、互換性のあるクラス(平文クラスと秘密共有クラス)で2つのオペランドをキャストできることを確実にする必要がある。したがって、キャスト演算が、所与のセットのパラメータに対する表現を、別のセットのパラメータに対する表現に効率的に変換することを可能にすることが重要である。このセクションでは、所与のクラス
図3は、パラメータplsbおよびMmsbのいずれかを増加または減少させるかに応じて、クラス間の表現をキャストするための4つのキャスト演算を示す。これらの4つのキャスト演算には、Extend、Round、Project、およびLiftが含まれる(Liftは上記の4つの自然リフトとは異なる)。
図4は、例示的な入力値に対する4つのキャスト演算のそれぞれの例示的な適用を示す。例示される実施例では、平文値x=1011.1(2)に対するモジュラー共有は、
においてモジュラーシェアx1=001000.10およびx2=000011.00を有する2つのパーティ間で秘密共有される。この実施例は、シェアx1が異なるパラメータplsbまたはMmsbを持つ別のモジュラー数にどのようにキャストされるかを示している。簡単化のため、演算はスカラーで提示されるが、より一般的に、これらの演算はすべて、任意のベクトル/行列/テンソルの各係数に対して独立して実施されるべきである。
Extend(p’lsb<plsb):拡張キャスト演算は、各入力共有に追加の最下位ビットを追加し、新しい最下位ビットを新しい表現において0に設定して、表現の新しいビットを埋める。Extend演算は、パーティ間の通信を必要としない。
Round(p’lsb>plsb):Roundキャスト演算は、各入力共有から最下位ビットを削除する。Roundキャスト演算は、共有を保有するパーティ間の通信の有無にかかわらず、実装することができる。Roundキャスト演算が通信なしで実装されている場合、各パーティは、それぞれの共有から最下位ビットをローカルに除去するためにroundする。この実装は、キャリー関連のエラーにより、平文のp’lsb最下位ビットが正しいことを保証するものではない。しかしながら、Roundキャスト演算は、秘密共有の合計が、p’lsbが正しい平文の値になることを確実にするために、パーティ間に通信を有して実装することができる。shareRefreshと呼ばれる、精度を維持するRoundキャスト演算のそのような実装を以下に示すが、実行時間、メモリ、および通信の点でより高価である。
Lift(M’msb>Mmsb):Liftキャスト演算は、オフラインおよびオンライン段階だけでなく、パーティ間の通信を必要とする。100%の場合正しく結果を計算するLiftキャスト演算の実装を以下に示す。この実装は、動作が確率的であり、失敗の確率がゼロではない以前の作業に対して改善される。
以下では、一実施形態によるLiftキャスト演算の実施形態をオンライン段階およびオフライン段階について説明する。p’lsb=plsbと必ずしも仮定しないことで、わずかにより一般的な方法で行われる。これは、多くの場合、2つの別々のものではなく、通信を必要とする、単一の演算にLiftとshareRefreshといったキャスト演算を合併することができるという実用的な利点がある。
3.1 整数モジュラー表現における秘密共有に対するLiftキャスト演算の実装
このセクションでは、第1のモジュラークラス
からの共有のセットを第2のモジュラークラス
の共有の別のセットに変換またはキャストする方法を説明し、このとき、第2のクラスのM’msbは、第1のクラスのMmsbよりも大きく、第2のクラスのp’lsbは、第1のクラスのplsbよりも小さく、等しく、または大きくてもよい。整数モジュラー表現の秘密共有に対するこの特定のキャスト演算を、Lift(上記のより一般的な自然リフトと区別するために大文字にする)と呼ぶ。一実施形態において、Lift演算は、部分的にオフライン(パーティ間の通信なし)で、および部分的にオンライン(パーティ間の通信あり)で、信頼できるディーラーを含むマルチパーティ計算のためのシステムにおいて実行される。
このセクションでは、第1のモジュラークラス
一実施形態によれば、Lift演算は、以下のようにマスクされ明らかにされた、秘密共有されたMPCコンテナ(上記の背景技術のセクションで紹介したことを思い出す)に動作する。
-
を用いた平文
の秘密共有
-
においてその合計λが一様にランダムであり、パーティによって知られていないマスク共有
-すべてのパーティによって明らかにされ、知られているマスクされた値
-
定義4。
とする範囲
を非交和
として区分し、
である、
選択変数またはビットを次のように定義する。
特に、bλ=0は
と等価であり、次のように書き換えることができる
同様に、bλ=1は
と等価であり、次のように書き換えることができる
選択変数またはビットを次のように定義する。
特に、bλ=0は
キャスト演算は、quartermodN(λ):λ∈I0またはλ∈I1について、ビットbλに符号化され得る、これらの2つの可能性を利用する。
とすると、2つの数学的リフトを考えることができる(ともに
において)。
秘密共有された値xがx∈[-N/4,N/4]の範囲内であることを要求することができ、この条件を満たされると、次の等式を観察することができる。
またはより簡潔に
この式を次のように論理的に書き換えることができる。
bλの値に応じて、値と
の間で効果的に選択するために、
bλの値に応じて、値と
xについて共有モジュロ
を得るためには(第二クラスへのxのマスキングの解除)、上記の等式を自然な全射
を介してトーラス
に投影することができる。信頼できるディーラーは、quartermodN(λ)の画像
を事前に計算し、秘密共有することができるため、パーティは、上記の式(1)に基づくνと合わせて、オンライン段階で
の知識から回復することができる
これは、より具体的には、以下のように行うことができる。J∈{0,1}について、
とする。パーティは、明らかになったマスク値aに基づいて、(a1-a0)を決定することができる。信頼できるディーラーは、bλを事前計算し、パーティ間で
として秘密共有する。bλの秘密共有は
で行うことができるが、(a1-a0)の2進表現の最上位のM’msb-Mmsbビットを除くすべてのビットが常にゼロになることに留意する。したがって、信頼できるディーラーは、パーティが
の共有および(a1-a0)に対して乗算を実施するために、より小さいモジュラークラス
を使用してビットbλを秘密共有することで十分である。
要約すると、信頼できるディーラーは次のことを行う必要がある。
1.ランダムなマスクを生成する
2.選択ビットbλを計算し、
で秘密共有する
3.そのλの特定のリフトUを
で計算し、
で秘密共有する。より正確に言えば、
ここで、関数
は、実数zと整数
を取り、zを
の最も近い整数倍にラウンドし、υは、
において
として秘密共有され得る。
1.ランダムなマスクを生成する
3.そのλの特定のリフトUを
コンピューティングのオンライン段階では、パーティは、
にリフトa0およびa1を使用し、上記のcentermodN(x)+quartermodN(λ)の計算において、気づかない選択のために最上位M’Msb-Mmsbビットのみを抽出する。
3.1.1 Lift演算の擬似コードの実装
図5は、一実施形態による、Lift演算のオフライン段階の疑似コードの実装を示す。図6は、本実施形態によるLift演算のオンライン段階の疑似コード実装を示す。
図5は、一実施形態による、Lift演算のオフライン段階の疑似コードの実装を示す。図6は、本実施形態によるLift演算のオンライン段階の疑似コード実装を示す。
上述したroundTo関数に加えて、図5および図6に示すLift演算は、クラスの値および仕様を入力とし、クラスの提供された仕様の表現において合計が入力値となる複数の秘密共有を出力する秘密共有関数を利用する。
3.2 shareRefresh演算
定義5.(Mmsb,plsb)および(M’msb,p’lsb)をM’msb≦Mmsbとなるような2対のパラメータとする。地図
が次のように定義される:
について、z0は
および設定されたパラメータにおける任意の代表である
これは次のように書き換えられることが観察され得る。
定義5.(Mmsb,plsb)および(M’msb,p’lsb)をM’msb≦Mmsbとなるような2対のパラメータとする。地図
命題1。定義5は明確に定義されており、すなわち、代表z0の選択に依存しない。
証明。Z∈Mparamsおよびz1、z2を
におけるzの2つの代表とする。定義により、
となるような
が存在する。p’lsb≦M’msb≦Mmsbのため、
である。特に、
である。M’msb≦Mmsbのため、
が得られる。
ここから、paramsとparams’は命題1の前提を満たすものと想定する。
一実施形態において、shareRefresh演算は、部分的にはオフライン(パーティ間の通信なし)で、部分的にはオンライン(パーティ間の通信あり)で実行される。図7は、一実施形態による、shareRefresh演算のオフライン段階の疑似コードの実装を示す。図8は、本実施形態によるshareRefresh演算のオンライン段階の疑似コードの実装を示す。
4 ビーバー乗算
4.1 ModRealバックエンドでの乗算
2つの秘密共有
間の乗算は、
において定義され、このとき、
は、出力パラメータと呼ばれる。これらのパラメータは、通常、静的解析中にコンパイラによって決定される。
4.1 ModRealバックエンドでの乗算
2つの秘密共有
4.3 モジュラーバックエンドでのビーバー乗算(秘密-秘密)
図9は、一実施形態による、モジュラー表現における2つの秘密共有値に対するビーバー乗算演算の疑似コードの実装を示す。図10は、ビーバー乗算演算の概略を示す。
図9は、一実施形態による、モジュラー表現における2つの秘密共有値に対するビーバー乗算演算の疑似コードの実装を示す。図10は、ビーバー乗算演算の概略を示す。
4.4 モジュラーバックエンドでのビーバーの乗算(秘密-公開)
図11は、一実施形態による、モジュラー表現における1つの秘密共有値および1つの公開値に対するビーバー乗算演算の疑似コードの実装を示す。図12は、ビーバー乗算演算の概略を示す。
図11は、一実施形態による、モジュラー表現における1つの秘密共有値および1つの公開値に対するビーバー乗算演算の疑似コードの実装を示す。図12は、ビーバー乗算演算の概略を示す。
5 線形組合せ
C(1),...,c(n)を、倍精度浮動小数点数として与えられた公開実数とし、
を対応するパラメータ
を有する秘密共有とするここで
において、素数pについて、vp(m)は、整数
のp進付値を示す実際には、これらの整数は、64ビット符号付き整数として表すことができる。公開ベクトル
は、係数の近似である。上記24の選択は、タイプフロート32の平文に類似させるためのものであり、それによって、仮数は、24ビットとなる。
C(1),...,c(n)を、倍精度浮動小数点数として与えられた公開実数とし、
目標は、
の秘密シェアを、対応するパラメータ
で計算することである。入力共有は、浮動小数点表現またはモジュラー表現のいずれかで同時にあると仮定する。一実施形態において、混合された入力は、サポートされておらず、明示的なキャストを必要とする。しかしながら、出力バックエンドは、入力バックエンドとは異なってもよい(例えば、浮動小数点表現での入力を有し、モジュラー表現での出力を有してもよい)。
5.1 デフォルト出力パラメータ
出力に対して平文パラメータが利用可能でない場合、コンパイラの統計分析器は、結果の統計を推定するために、以下の伝播式を使用してもよい:すべての平文が、平均および分散
の独立変数である場合、Var(x(i))、出力の平均および分散
は
となる。なお、最後の式は、独立変数に対してのみ真である。一実施形態において、合計の分散について以下の推定値を使用する:
出力に対して平文パラメータが利用可能でない場合、コンパイラの統計分析器は、結果の統計を推定するために、以下の伝播式を使用してもよい:すべての平文が、平均および分散
となる。なお、最後の式は、独立変数に対してのみ真である。一実施形態において、合計の分散について以下の推定値を使用する:
この伝播式に基づいて、コンパイラは、出力コンテナについて妥当なpmsb、plsbを既に推定し、次いで、Mmsb>pmsbを割り当てて、計算の正確性およびセキュリティを確保することができる。コンパイラが独立性の仮定を行うことができない場合、結果の統計を推定するために、例えば偽の値へのシミュレーションなど、他の手法を使用するべきである。
5.2 クリーニングステップ
一実施形態において、線形組合せを実行する前に、コンパイラは、以下のように線形組合せ入力を事前処理する:全ての1≦i≦nについて、
-α(i)=0のすべてのインデックスiを削除する。
-次のすべてのインデックスiを削除する。
これは、項が無視可能であり、廃棄することができることを意味する。なお、項を1つずつ動的に削除する場合、上記の不等式の右辺は変化しない(削除された項は、最大値に等しいplsbを持つことはできない)。
一実施形態において、線形組合せを実行する前に、コンパイラは、以下のように線形組合せ入力を事前処理する:全ての1≦i≦nについて、
-α(i)=0のすべてのインデックスiを削除する。
-次のすべてのインデックスiを削除する。
図13は、クリーニングステップが実施され得る例示的な入力を示す。この例では、pmsb位置が、残りの間隔の最大plsb位置の左側にあるため、ラベル1との間隔は、無視できるものとして廃棄されるべきである。
さらに、
を残りのインデックスセットとすることで、以下の基準に従ってテストすることができる(出力パラメータは、入力パラメータウィンドウと交差する必要がある)。
-不等式を確実にする
それ以外の場合は、結果が無視できるか、ゼロであることを宣言する。
-以下の不等式を確実にする
さもなければ、未定義の挙動が得られる。
-不等式を確実にする
-以下の不等式を確実にする
5.3 線形結合ビルトイン:ModRealケース
一実施形態において、コンパイラは、線形結合のための2つの作業パラメータ、
を提供する。これらは、次の性質を満たすように選択される。
-入力のModReal共有クラス
へのリフトは、オーバーフローなしで、十分な精度を維持しながら個々のスカラー積
が計算され得ることを確実にする(後者は正確に定義される必要がある)。
-すべての個々の項(スカラー積、n個)のすべての秘密シェア(k個)の合計は、オーバーフローなしでこのクラスで計算され得る(後者は正確に定義される必要がある)。
これにより、以下のデフォルトのパラメータ選択が合理的になる。
一実施形態において、コンパイラは、線形結合のための2つの作業パラメータ、
-入力のModReal共有クラス
-すべての個々の項(スカラー積、n個)のすべての秘密シェア(k個)の合計は、オーバーフローなしでこのクラスで計算され得る(後者は正確に定義される必要がある)。
これにより、以下のデフォルトのパラメータ選択が合理的になる。
各1≦i≦nについて、i番目の入力コンテナは、まず、パラメータ
および
でModReal数字にキャストされる。
のとき、リフトトリプレットが必要となる(コンテナのマスクλと、2つのエフェメラルな事前計算されたデータb、νを伴う。次に、
による乗算は、他の値とともに蓄積されるパラメータ
のシリアライズ可能な値を生成する。最後に、合計を出力パラメータにキャストする。
図14は、一実施形態による、ModReal表現による線形結合演算の疑似コードの実装を示す。図15は、線形結合演算の概略を示す。
6 実数値関数のフーリエ近似
通常、複素数値関数f(x)のフーリエ近似が次の形で与えられる。
このとき、Tは周期であり
である。係数anは一般の複素数であるが、f(x)が実数値関数の場合、n>0について
となる。すると、
となる。
これにより、以下の変換が得られる。
フーリエ項は、n=0.1,…,についてトリプル(cn,n,φn)となり、このとき
は実係数であり、φnは位相である。
通常、複素数値関数f(x)のフーリエ近似が次の形で与えられる。
これにより、以下の変換が得られる。
次いで、オンライン計算は、以下のように実行される:
1.
の要素として
を計算する。
2.
およびbλの秘密共有を使用して、正しいリフト
を計算する。これは、
のため可能である。
3.n=0.1、…Nについてe2πna/Tを計算する(これには、元の
だけでなく、リフトaが必要である)。
4.
の秘密シェアを計算する。これは、特定の平文クラスのローカル乗算が決定されることを必要とする。
1.
2.
3.n=0.1、…Nについてe2πna/Tを計算する(これには、元の
4.
結果の平文パラメータを決定するために、計算全体がηビットの最大数値ウィンドウ内で発生するという制約を課す(例えば、バックエンドで64ビット整数のみを使用したい場合、η=64)。
まず、
は、微小バインド、すなわち、
を用いて推定することができる。
最適な
を得るために、pを数値ウィンドウ、つまり、
とする。
とすると、制約は不等式によって与えられる。
2p+ε+2≦η、
すなわち、
最適な
2p+ε+2≦η、
すなわち、
これは、計算の出力に対して最大数値ウィンドウを決定する必要があることを意味する。この不等式がなぜ成立するかを知るには、積の乗算ごとにpビットの精度が必要な場合、
したがって、2pである。これらの項のεの合計を取って、モジュラー共有クラスの2つの追加ビットを加える必要がある。したがって、
これに加え、コンパイラは、フーリエ級数ビルトインのための作業パラメータを提供する必要がある。
-
-
-
作業パラメータを決定するには、最下位ビット位置を決定することから始める(これは、十分な精度を保証するために行う)。以下の式が妥当である。
-
-
この選択には、いくつかの正当化が必要である:パラメータ
は、e2πina/Tの計算において、サイズpの数値ウィンドウを持っていることを確実にする。実際、その量の最上位ビット位置は0であるため、小数部分には少なくともp個の2進数字が必要である。しかし、計算は、ビーバーへの両方の入力には同じ数値ウィンドウが必要である、つまり、マップとして見ることができる乗算が必要であると仮定する。
-
7 通信モデル
図16Aおよび16Bは、マルチパーティ計算(MPC)のオフライン段階中のコンピューティングシステム間の通信チャネルの概略を示す。図16Aは、信頼できるディーラーモデルのための通信チャネルを示し、図16Bは、誠実だが好奇心旺盛なモデルのためのチャネルを示す。信頼できるディーラーモデルでは、ディーラーは、プライベートチャネルを介して数値マスキングデータ(トリプレットとも呼ばれる)を各パーティに送る。誠実だが好奇心旺盛なモデルでは、パーティは、パーティ全員の間で共有している、プライベート放送チャネルにアクセスすることができ、各パーティは、ディーラーと追加のプライベートチャネルを共有する。プライベートチャネルは、破線で示されている。この信頼できるディーラーモデルでは、ディーラーはマスキングデータを生成し、プライベートチャネルを使用して、データのそれぞれのシェアを、各パーティに送る(一方向矢印)。誠実だが好奇心旺盛なモデルでは、パーティは、数値マスキングデータの生成のための共同し、このために、ディーラーがアクセスできない、追加のプライベート放送チャネルを必要とする。3つのパーティだけが示されているが、モデルは、任意の数のパーティ拡張することができる。
図16Aおよび16Bは、マルチパーティ計算(MPC)のオフライン段階中のコンピューティングシステム間の通信チャネルの概略を示す。図16Aは、信頼できるディーラーモデルのための通信チャネルを示し、図16Bは、誠実だが好奇心旺盛なモデルのためのチャネルを示す。信頼できるディーラーモデルでは、ディーラーは、プライベートチャネルを介して数値マスキングデータ(トリプレットとも呼ばれる)を各パーティに送る。誠実だが好奇心旺盛なモデルでは、パーティは、パーティ全員の間で共有している、プライベート放送チャネルにアクセスすることができ、各パーティは、ディーラーと追加のプライベートチャネルを共有する。プライベートチャネルは、破線で示されている。この信頼できるディーラーモデルでは、ディーラーはマスキングデータを生成し、プライベートチャネルを使用して、データのそれぞれのシェアを、各パーティに送る(一方向矢印)。誠実だが好奇心旺盛なモデルでは、パーティは、数値マスキングデータの生成のための共同し、このために、ディーラーがアクセスできない、追加のプライベート放送チャネルを必要とする。3つのパーティだけが示されているが、モデルは、任意の数のパーティ拡張することができる。
図17は、一実施形態によるオンライン段階中のパーティ間の通信チャネルの概略を示す。パーティは、実線で示される公開放送チャネルを介してマスク値を送受信する。オンライン段階は、信頼できるディーラーモデルと誠実だが好奇心旺盛なモデルとで同じであり、ディーラーは不在である。
本明細書に開示される方法は、信頼できるディーラーモデルに関して説明される場合もあるが、これらの方法は、誠実であるが好奇心旺盛なモデルと使用することもできる。
8 コンピュータ実装形態
本明細書に開示されている実施形態の構成要素は、方法、プロセス、アプリケーション、プログラム、モジュラー、エンジン、機能などと呼ばれる場合があり、非一時的コンピュータ可読媒体に命令として具体化された専用ソフトウェアを使用して、1つ以上のコンピュータまたはコンピュータシステムを構成することによって実装され得る。1つ以上のコンピュータまたはコンピュータシステムは、ネットワーク化コンピュータシステムとして、有線ネットワークおよび/または無線ネットワークを通して、任意選択的にネットワーク化され得る1つ以上のスタンドアローンコンピュータ、クライアントコンピュータおよび/またはサーバコンピュータとすることができるか、またはそれらを含むことができる。
本明細書に開示されている実施形態の構成要素は、方法、プロセス、アプリケーション、プログラム、モジュラー、エンジン、機能などと呼ばれる場合があり、非一時的コンピュータ可読媒体に命令として具体化された専用ソフトウェアを使用して、1つ以上のコンピュータまたはコンピュータシステムを構成することによって実装され得る。1つ以上のコンピュータまたはコンピュータシステムは、ネットワーク化コンピュータシステムとして、有線ネットワークおよび/または無線ネットワークを通して、任意選択的にネットワーク化され得る1つ以上のスタンドアローンコンピュータ、クライアントコンピュータおよび/またはサーバコンピュータとすることができるか、またはそれらを含むことができる。
専用ソフトウェアは、その1つ以上のインスタンスを含み得、それぞれは、例えば、クライアントソフトウェア、サーバソフトウェア、デスクトップアプリケーションソフトウェア、アプリソフトウェア、データベースソフトウェア、オペレーティングシステムソフトウェア、およびドライバソフトウェアのうちの1つ以上を含み得る。クライアントソフトウェアは、システムを、1つ以上のサーバおよび/またはデータベースに対する要求を送信し、情報を受信するクライアントとして動作させるように構成される。サーバソフトウェアは、システムを、1つ以上のクライアントに対する要求を受信し、情報を送信する1つ以上のサーバとして動作させるように構成され得る。デスクトップアプリケーションソフトウェアおよび/またはアプリソフトウェアは、デスクトップおよび/またはポータブルコンピュータ上でデスクトップアプリケーションまたはアプリを動作することができる。データベースソフトウェアは、データおよび/または情報を記憶し、データを取得、記憶、および/または更新するためのクライアントソフトウェアによる要求に応答するために、システム上の1つ以上のデータベースを動作させるように構成され得る。オペレーティングシステムソフトウェアおよびドライバソフトウェアは、コンピュータまたはコンピュータシステムの他のソフトウェアによって使用されるハードウェアまたはプロセスへのインターフェースとして、プラットフォームおよび/またはドライバとしてオペレーティングシステムを提供するように構成され得る。例として、本明細書に開示される実施形態によって作成、使用、または動作される任意のデータは、コンピュータシステム上で動作するデータベースに記憶され、そこからアクセスされ、および/または修正され得る。
図18は、様々な実施形態による、開示されている構成要素を実装するように適宜構成され得る一般的なコンピュータアーキテクチャ1800を示す。コンピューティングアーキテクチャ1800は、コンピュータ1801、ネットワーク1818、および1つ以上のリモートコンピュータ1830など、様々なよくあるコンピューティング要素を含み得る。ただし、本明細書に開示されている実施形態は、この一般的なコンピューティングアーキテクチャ1800による実装形態に限られるものではない。
図18を参照するに、コンピュータ1801は、例えば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、またはモバイルコンピューティングデバイスなど、様々な汎用コンピュータのいずれかとすることができる。コンピュータ1801は、プロセッシングユニット1802、システムメモリ1804、およびシステムバス1806を含み得る。
プロセッシングユニット1802は、互いに独立して動作することができる、1つ以上の処理コアをそれぞれ含み得る様々な市販のコンピュータプロセッサのいずれかとする、または、それらのうちの1つ以上を含むことができる。コンピュータには、グラフィックスプロセッシングユニット1803などの付加的共プロセッシングユニットも備わっていることがある。
システムメモリ1804は、動的ランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)または他のランダムアクセスメモリ素子など、揮発性素子を含み得る。システムメモリ1804は、読み取り専用メモリまたはフラッシュメモリなど、不揮発性素子も含み得るか、または代替として、それらを含み得る。
コンピュータ1801は、ディスクドライブ、ソリッドステートディスク、またはリムーバブルメモリカードなど、ローカル不揮発性二次記憶域1808を含み得る。ローカル記憶域1808は、1つ以上のリムーバブルおよび/または非リムーバブル記憶ユニットを含み得る。ローカル記憶域1808は、コンピュータ上で実行する様々なアプリケーションを開始し、管理するオペレーティングシステムを記憶するために使用され得る。ローカル記憶域1808は、本明細書に開示されている実施形態の構成要素を実装するように構成され、またオペレーティングシステム下で1つ以上のアプリケーションとして実行され得る、専用ソフトウェアを記憶するためにも使用され得る。
コンピュータ1801は、通信デバイス1812も含み得、この通信デバイスを通して、コンピュータは、有線および/または無線のコンピュータネットワーク1818上で、1つ以上のリモートコンピュータ1830などの他のデバイスと通信する。通信デバイス1812は、例えば、有線コンピュータネットワーク上でデータを通信するためのネットワークインタフェースを含み得る。通信デバイス1812は、例えば、Wi-Fi、Bluetooth、および/または移動電話網上の通信向けの1つ以上の無線送信機を含み得る。
コンピュータ1801は、コンピュータネットワーク1818を通してネットワーク記憶域1820にアクセスすることもできる。ネットワーク記憶域は、例えば、ローカルネットワークに位置するネットワークアタッチドストレージデバイス、または1つ以上のリモートデータセンタでホストされるクラウドベース記憶域を含み得る。オペレーティングシステムおよび/または専用ソフトウェアは、代替として、ネットワーク記憶域1820に記憶され得る。
コンピュータ1801は、キーボード、マウス、タッチスクリーン、カメラ、マイクロホン、加速度計、温度計、磁気計、または任意の他のセンサなど、様々な入力デバイス1814を備え得る。ディスプレイ、スピーカ、プリンタ、偏心回転質量振動モータなどの出力デバイス1816も含まれ得る。
様々な記憶域1808、通信デバイス1812、出力デバイス1816、および入力デバイス1814は、コンピュータのハウジング内に統合され得るか、またはコンピュータ上の様々な入力/出力インタフェースデバイスを通して接続され得、この場合、参照番号1808、1812、1814、および1816は、場合によって、デバイスへの接続用のインターフェースを示すか、またはデバイスそのものを示すことがある。
以上の態様のいずれも、コンピュータシステムとして、このようなコンピュータシステムによって行われるプロセスとして、このようなコンピュータシステムのいずれかの個々の構成要素として、または、コンピュータプログラム命令が記憶されるコンピュータ記憶域を含む製造品として、1つ以上のインスタンスにおいて具体化され得、コンピュータプログラム命令は、1つ以上のコンピュータによって処理されると、このようなコンピュータシステムまたはこのようなコンピュータシステムのいずれかの個々の構成要素を提供するように、1つ以上のコンピュータを構成する。サーバ、コンピュータサーバ、ホスト、またはクライアントデバイスはそれぞれ、コンピュータまたはコンピュータシステムとして具体化され得る。コンピュータシステムは、通信ネットワークを通してつなげられる多数のコンピュータによって作業が実施される、分散型コンピューティング環境において実施され得る。分散型コンピューティング環境では、コンピュータプログラムは、ローカルおよびリモート両方のコンピュータ記憶媒体に位置され得る。
本明細書に記載したものなどの、また1つ以上のコンピュータ上で動作する、コンピュータシステムの各構成要素は、コンピュータの1つ以上のプロセッシングユニットと、1つ以上のプロセッシングユニットによって処理される1つ以上のコンピュータプログラムとを使用して実装され得る。コンピュータプログラムは、命令がコンピュータ内の1つ以上のプロセッシングユニットによって処理される、プログラムモジュールなどのコンピュータ実行可能命令および/またはコンピュータ解釈式命令を含む。通常、このような命令は、プロセッシングユニットによって処理されると、プロセッシングユニットに、データに対して作業を行うように命令するか、または、様々な構成要素もしくはデータ構造を実装するようにプロセッサまたはコンピュータを構成する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを定義する。
モジュール、エンジン、プロセス、機能などと呼ばれることがある本明細書に開示されている実施形態の構成要素は、例えば、専用ハードウェアロジックコンポーネントを使用することによって、専用ソフトウェアを用いて汎用コンピューティングリソースを構成することによって、または、専用ハードウェアと構成済み汎用コンピューティングリソースとの組合せによって、ハードウェアにおいて実装され得る。使用され得る図示の種類のハードウェアロジックコンポーネントは、例えば、フィールドプログラマブルゲートアレイ(FPGA:Field-Programmable Gate Array)、特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)、特定用途向け標準製品(ASSP:Application-Specific Standard Product)、システムオンチップシステム(SOC:System-on-a-chip system)、および複雑なプログラマブルロジックデバイス(CPLD:Complex Programmable Logic Device)を含む。
9 結びのコメント
ある実施形態に関して主題を説明したが、本明細書に示されている様々な特徴および利点を提供することもしないこともある他の実施形態が、本開示によって考えられるとして理解されるべきである。上記の具体的な実施形態は、単に例として開示され、本特許の主題の範囲は、以下の特許請求の範囲によって規定される。特許請求の範囲では、「based upon(~に基づく)」という用語は、結果または効果をもたらす際、直接的および/または間接的に、また場合によっては他の要因と合わせて、ある要因が考慮される状況を含むものとする。特許請求の範囲では、一部分というのは、あるもののうちの1つもないよりも大きく、あるものの全部までを含むものとし、あるものの暗号化は、そのものの一部分の暗号化を含むものとする。方法クレーム(特許範囲)では、いずれの参照文字も単に説明の便宜上使用され、方法を行う際の特定の順番を示すものではない。
ある実施形態に関して主題を説明したが、本明細書に示されている様々な特徴および利点を提供することもしないこともある他の実施形態が、本開示によって考えられるとして理解されるべきである。上記の具体的な実施形態は、単に例として開示され、本特許の主題の範囲は、以下の特許請求の範囲によって規定される。特許請求の範囲では、「based upon(~に基づく)」という用語は、結果または効果をもたらす際、直接的および/または間接的に、また場合によっては他の要因と合わせて、ある要因が考慮される状況を含むものとする。特許請求の範囲では、一部分というのは、あるもののうちの1つもないよりも大きく、あるものの全部までを含むものとし、あるものの暗号化は、そのものの一部分の暗号化を含むものとする。方法クレーム(特許範囲)では、いずれの参照文字も単に説明の便宜上使用され、方法を行う際の特定の順番を示すものではない。
Claims (20)
- 秘密共有値に対してマルチパーティ計算を実施するように構成されたセキュアなマルチパーティコンピューティングシステムによって実施される方法であって、前記セキュアなマルチパーティコンピューティングシステムが、信頼できるディーラーコンピューティングシステム、およびセキュアなネットワーク化通信における複数のパーティコンピューティングシステムを含み、前記方法が、秘密共有値を第1のモジュラー表現から第2のモジュラー表現にキャストするためのものであり、前記方法が、
前記パーティコンピューティングシステムの各々が、前記第1のモジュラー表現の前記秘密共有値のそれぞれの秘密シェアを記憶することであって、
前記第1のモジュラー表現は、前記第1のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有する、記憶することと、
前記信頼できるディーラーコンピューティングシステムが、マスキング値を記憶し、前記マスキング値が前記第1のモジュラー表現内の前記パーティコンピューティングシステム間で秘密共有されるように、前記第1のモジュラー表現における前記マスキング値のそれぞれの秘密シェアを前記パーティコンピューティングシステムの各々に通信することと、
前記信頼できるディーラーコンピューティングシステムが、
前記マスキング値が存在するサブ範囲を決定することであって、前記サブ範囲が、前記第1のモジュラー表現の前記範囲を表す複数の所定の非重複サブ範囲から選択される、決定すること、
前記決定されたサブ範囲を数値サブ範囲識別子に符号化すること、
前記数値サブ範囲識別子が前記パーティコンピューティングシステム間で秘密共有されるように、前記パーティコンピューティングシステムの各々に、前記数値サブ範囲識別子のそれぞれの秘密シェアを通信すること、を行うことと、
前記信頼できるディーラーコンピューティングシステムが、前記マスキング値に対して少なくとも第1の数学的リフトを実施することによって、第1の変換において、前記マスキング値を変換されたマスキング値に変換することと、
前記信頼できるディーラーコンピューティングシステムが、前記変換されたマスキング値が、前記第2のモジュラー表現において前記パーティコンピューティングシステム間で秘密共有されるように、前記第2のモジュラー表現の前記変換されたマスキング値のそれぞれの秘密シェアを前記パーティコンピューティングシステムの各々に通信することであって、
前記第2のモジュラー表現は、前記第2のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、前記第2のモジュラー表現の前記最上位ビット位置は、前記第1のモジュラー表現の前記最上位ビット位置よりも大きい、通信することと、
前記パーティコンピューティングシステムが、前記秘密共有値の前記秘密シェアまたは前記マスキング値の前記秘密シェアを明らかにすることなく、前記秘密共有値と前記マスキング値との和をマスク値として共同で計算し、明らかにすることと、
第2の変換において、前記マスク値に対して少なくとも第2の数学的リフトを実施することによって、前記マスク値を第1の変換されたマスク値に変換することと、
第3の変換において、前記マスク値に対して少なくとも第3の数学的リフトを実施することによって、前記マスク値を第2の変換されたマスク値に変換することと、を行うことであって、
前記第1の数学的リフト、前記第2の数学的リフト、および前記第3の数学的リフトは、それぞれ互いに異なる、行うことと、
前記パーティコンピューティングシステムの各々が、
前記第1の変換されたマスク値、
前記第2の変換されたマスク値、
各パーティコンピューティングシステムについて、前記数値サブ範囲識別子の前記それぞれの秘密シェア、および
各パーティコンピューティングシステムについて、前記変換されたマスキング値の前記それぞれの秘密シェア、に基づき、前記第2のモジュラー表現の前記秘密共有値のそれぞれの秘密シェアを計算するように、前記パーティコンピューティングシステムが、前記第2のモジュラー表現の前記秘密共有値を共同で計算することと、を含む、方法。 - 前記第1の数学的リフトおよび前記第2の数学的リフトは、前記第1のモジュラー表現の前記範囲の4分の1ずれた値を互いに対して生成し、
前記第2の数学的リフトおよび前記第3の数学的リフトは、前記第1のモジュラー表現の前記範囲の2分の1ずれた値を互いに対して生成する、請求項1に記載の方法。 - 前記第1の変換は、
前記第1の数学的リフトの結果を、
の最も近い倍数にラウンドすることであって、p’lsbは、前記第2のモジュラー表現の前記最下位ビット位置である、ラウンドすることと、
前記ラウンドのモジュロ
を取ることであって、(M’msb-1)は、前記第2のモジュラー表現の前記最上位ビット位置である、取ることと、をさらに含み、
前記第2の変換は、
前記第2の数学的リフトの結果を
の最も近い倍数にラウンドすることと、
前記ラウンドのモジュロ
を取ることと、をさらに含み、
前記第3の変換は、
前記第3の数学的リフトの結果を
の最も近い倍数にラウンドすることと、
前記ラウンドのモジュロ
を取ることと、をさらに含む、請求項5に記載の方法。 - 前記「複数の所定の非重複サブ範囲」は、2つの等しいサイズのサブ範囲からなり、前記数値サブ範囲識別子は、数値0および1からなる群から選択される、請求項1に記載の方法。
- 前記秘密共有された数値サブ範囲識別子は、前記第2のモジュラー表現において前記秘密共有値を計算する際に使用するために、前記第1の変換されたマスク値と前記第2の変換されたマスク値との間で選択するために前記パーティコンピューティングシステムによって共同で使用される、請求項8に記載の方法。
- 前記第1のモジュラー表現および前記第2のモジュラー表現が、実数の固定小数点整数表現である、請求項1に記載の方法。
- 秘密共有値に対してマルチパーティ計算を実施するように構成されたセキュアなマルチパーティコンピューティングシステムによって実施される方法であって、前記セキュアなマルチパーティコンピューティングシステムが、セキュアなネットワーク化通信における複数のパーティコンピューティングシステムを含み、前記方法が、秘密共有値を第1のモジュラー表現から第2のモジュラー表現にキャストするためのものであり、前記方法が、
前記パーティコンピューティングシステムの各々が、前記第1のモジュラー表現の前記秘密共有値のそれぞれの秘密シェアを記憶することであって、
前記第1のモジュラー表現は、前記第1のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有する、記憶することと、
マスキング値が前記パーティコンピューティングシステム間で秘密共有されるように、前記パーティコンピューティングシステムの各々に、前記マスキング値のそれぞれの秘密シェアを通信することと、
前記パーティコンピューティングシステムの各々に、前記マスキング値が存在するサブ範囲の指示のそれぞれの秘密シェアを通信することであって、前記サブ範囲は、前記サブ範囲の指示が前記パーティコンピューティングシステム間で秘密共有されるように、前記第1のモジュラー表現の前記範囲を表す複数の所定の非重複サブ範囲から選択される、通信することと、
前記マスキング値に対して少なくとも第1の数学的リフトを実施することによって、第1の変換において、前記マスキング値を変換されたマスキング値に変換することと、
前記変換されたマスキング値が、前記第2のモジュラー表現において前記パーティコンピューティングシステム間で秘密共有されるように、前記第2のモジュラー表現の前記変換されたマスキング値のそれぞれの秘密シェアを、前記パーティコンピューティングシステムの各々に通信することであって、
前記第2のモジュラー表現は、前記第2のモジュラー表現の最上位ビット位置および最下位ビット位置によって画定される範囲を有し、前記第2のモジュラー表現の前記最上位ビット位置は、前記第1のモジュラー表現の前記最上位ビット位置よりも大きい、通信することと、
前記パーティコンピューティングシステムが、前記秘密共有値の前記秘密シェアまたは前記マスキング値の前記秘密シェアを明らかにすることなく、前記秘密共有値と前記マスキング値との和をマスク値として共同で計算し、明らかにすることと、
第2の変換において、前記マスク値に対して少なくとも第2の数学的リフトを実施することによって、前記マスク値を第1の変換されたマスク値に変換することと、
第3の変換において、前記マスク値に対して少なくとも第3の数学的リフトを実施することによって、前記マスク値を第2の変換されたマスク値に変換すること、を行うことであって、
前記第1の数学的リフト、前記第2の数学的リフト、および前記第3の数学的リフトは、それぞれ互いに異なる、行うことと、
前記パーティコンピューティングシステムの各々が、
前記第1の変換されたマスク値、
前記第2の変換されたマスク値、
各パーティコンピューティングシステムについて、前記サブ範囲の指示の前記それぞれの秘密シェア、および
各パーティコンピューティングシステムについて、前記変換されたマスキング値の前記それぞれの秘密シェア、に基づき、前記第2のモジュラー表現の前記秘密共有値のそれぞれの秘密シェアを計算するように、前記パーティコンピューティングシステムが、前記第2のモジュラー表現の前記秘密共有値を共同で計算することと、を含む、方法。 - 前記「複数の所定の非重複サブ範囲」は、2つの等しいサイズのサブ範囲からなり、前記数値サブ範囲識別子は、数値0および1からなる群から選択される、請求項11に記載の方法。
- 前記秘密共有された数値サブ範囲識別子は、前記第2のモジュラー表現において前記秘密共有値を計算する際に使用するために、前記第1の変換されたマスク値と前記第2の変換されたマスク値との間で選択するために前記パーティコンピューティングシステムによって共同で使用される、請求項13に記載の方法。
- 前記第1のモジュラー表現および前記第2のモジュラー表現が、実数の固定小数点整数表現である、請求項11に記載の方法。
- それぞれの初期モジュラー表現に記憶された第1の秘密共有値と、それぞれの初期モジュラー表現に記憶された第2の秘密共有値との乗算を実施するための方法であって、
請求項11に記載の方法に従い、前記第1の秘密共有値および前記第2の秘密共有値の両方が共通のモジュラー表現に記憶されるように、前記第1の秘密共有値および前記第2の秘密共有値のうちの少なくとも1つを前記共通のモジュラー表現にキャストすることと、
前記共通のモジュラー表現における前記第1の秘密共有値および前記第2の秘密共有値に対してビーバー乗算を実施することと、を備える、方法。 - それぞれの初期モジュラー表現にそれぞれ記憶される複数の秘密共有値と、対応する複数の静的係数とを結合するための方法であって、
請求項11に記載の方法に従い、前記複数の秘密共有値の全てが共通のモジュラー表現に記憶されるように、前記複数の秘密共有値のうちの少なくとも1つを前記共通のモジュラー表現にキャストすることと、
前記共通のモジュラー表現に記憶された前記複数の秘密共有値と、前記対応する複数の静的係数との線形結合を実施することと、を備える、方法。 - 秘密共有値に対する連続関数を評価するための方法であって、
前記秘密共有値に基づき、複数の確定済みフーリエ級数からフーリエ級数を選択することであって、前記複数の確定済みフーリエ級数の各々が、前記連続関数のドメインの関連するサブ間隔上の前記連続関数を近似するように構成されている、選択することと、
前記選択に基づき、請求項11に記載の方法に従って、前記秘密共有値を第1のモジュラー表現から第2のモジュラー表現にキャストすることと、
前記選択されたフーリエ級数を使用して、前記第2のモジュラー表現における前記秘密共有値上の前記連続関数の値を近似することと、を備える、方法。 - 複数のコンピュータシステムを備えるシステムであって、前記複数のコンピュータシステムが、請求項1~18のいずれか一項に記載の方法を実施するように構成されている、システム。
- 複数のコンピュータシステムによって実行されると、前記複数のコンピュータシステムに、請求項1~18のいずれか一項に記載の方法を実施させる、コンピュータコードで符号化された非一時的コンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962809543P | 2019-02-22 | 2019-02-22 | |
US62/809,543 | 2019-02-22 | ||
PCT/US2020/019551 WO2020172683A1 (en) | 2019-02-22 | 2020-02-24 | Arithmetic for secure multi-party computation with modular integers |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022523182A true JP2022523182A (ja) | 2022-04-21 |
Family
ID=69846600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021548139A Pending JP2022523182A (ja) | 2019-02-22 | 2020-02-24 | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11050558B2 (ja) |
EP (1) | EP3928462A1 (ja) |
JP (1) | JP2022523182A (ja) |
KR (1) | KR20210127168A (ja) |
CN (1) | CN113841356B (ja) |
AU (1) | AU2020225657A1 (ja) |
CA (1) | CA3128241A1 (ja) |
IL (1) | IL285484B1 (ja) |
SG (1) | SG11202108072QA (ja) |
WO (1) | WO2020172683A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3072638A1 (en) | 2017-08-30 | 2019-03-07 | Inpher, Inc. | High-precision privacy-preserving real-valued function evaluation |
JP2022523182A (ja) | 2019-02-22 | 2022-04-21 | インファー,インク. | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 |
CN113761469B (zh) * | 2021-08-10 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的最高位进位计算方法 |
CN114584396B (zh) * | 2022-04-25 | 2024-01-26 | 北京原语科技有限公司 | 一种多方安全计算协议的数据转换方法 |
CN115225264A (zh) * | 2022-06-17 | 2022-10-21 | 上海富数科技有限公司广州分公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
US20240184522A1 (en) * | 2022-10-19 | 2024-06-06 | TripleBlind, Inc. | Fast secure multiparty comparison optimized for common computing architectures |
CN116248266B (zh) * | 2022-12-16 | 2023-11-14 | 北京海泰方圆科技股份有限公司 | 基于秘密分享的安全多方计算方法及系统 |
CN116108473B (zh) * | 2023-04-10 | 2023-06-27 | 极术(杭州)科技有限公司 | 多方安全计算中的数据处理方法及装置 |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7945784B1 (en) * | 2005-08-19 | 2011-05-17 | Adobe Systems Incorporated | Method and system to perform secret sharing |
US20090327141A1 (en) * | 2007-04-18 | 2009-12-31 | Rabin Michael O | Highly efficient secrecy-preserving proofs of correctness of computation |
KR100966071B1 (ko) * | 2007-12-18 | 2010-06-28 | 한국전자통신연구원 | 겹선형 사상을 이용한 다자간 키 공유 방법 및 그 시스템 |
WO2011047085A2 (en) * | 2009-10-13 | 2011-04-21 | Certimix, Inc. | Method and apparatus for efficient and secure creating transferring, and revealing of messages over a network |
FR2960727B1 (fr) | 2010-05-26 | 2016-04-15 | Oberthur Technologies | Procede d'evaluation d'une fonction |
US9077539B2 (en) | 2011-03-09 | 2015-07-07 | Microsoft Technology Licensing, Llc | Server-aided multi-party protocols |
WO2012158621A1 (en) | 2011-05-13 | 2012-11-22 | Indiana University Reaserch And Technology Coporation | Secure and scalable mapping of human sequencing reads on hybrid clouds |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US9252942B2 (en) | 2012-04-17 | 2016-02-02 | Futurewei Technologies, Inc. | Method and system for secure multiparty cloud computation |
WO2013172790A1 (en) | 2012-05-16 | 2013-11-21 | Nanyang Technological University | Methods for determining a result of applying a function to an input and evaluation devices |
US8839410B2 (en) * | 2012-11-20 | 2014-09-16 | Sap Ag | Type-system for mixed protocol secure computation |
KR20150122162A (ko) * | 2013-03-04 | 2015-10-30 | 톰슨 라이센싱 | 프라이버시 보호 카운팅을 위한 방법 및 시스템 |
US10083310B1 (en) * | 2013-03-13 | 2018-09-25 | Hrl Laboratories, Llc | System and method for mobile proactive secure multi-party computation (MPMPC) using commitments |
US9450938B1 (en) * | 2013-03-13 | 2016-09-20 | Hrl Laboratories, Llc | Information secure proactive multiparty computation (PMPC) protocol with linear bandwidth complexity |
WO2014174516A1 (en) * | 2013-04-25 | 2014-10-30 | B.G. Negev Technologies And Applications Ltd. | Accumulating automata and cascaded equations automata for non-interactive and perennial secure multi-party computation |
US10003460B2 (en) * | 2013-10-10 | 2018-06-19 | Nippon Telegraph And Telephone Corporation | Secret quotient transfer device, secret bit decomposition device, secret modulus conversion device, secret quotient transfer method, secret bit decomposition method, secret modulus conversion method, and programs therefor |
WO2015166216A1 (en) | 2014-05-02 | 2015-11-05 | Barclays Bank Plc | Transaction authentication |
US10333696B2 (en) * | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
US10467389B2 (en) | 2015-01-15 | 2019-11-05 | Secretskydbltd | Secret shared random access machine |
US9813243B1 (en) * | 2015-03-30 | 2017-11-07 | EMC IP Holding Company LLC | Methods and apparatus for password-based secret sharing schemes |
US10749671B2 (en) * | 2015-04-03 | 2020-08-18 | Nec Corporation | Secure computation system, server apparatus, secure computation method, and program |
US9813234B2 (en) | 2015-05-11 | 2017-11-07 | The United States of America, as represented by the Secretery of the Air Force | Transferable multiparty computation |
US10791123B2 (en) * | 2015-11-25 | 2020-09-29 | Yaron Gvili | Selectivity in privacy and verification with applications |
WO2017094009A1 (en) | 2015-12-03 | 2017-06-08 | Dyadic Security Ltd | Securing sql based databases with cryptographic protocols |
US10972260B2 (en) * | 2015-12-10 | 2021-04-06 | Nec Corporation | Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method |
US9929860B1 (en) * | 2015-12-30 | 2018-03-27 | Emc Corporation | Methods and apparatus for generalized password-based secret sharing |
US9954684B2 (en) | 2016-02-29 | 2018-04-24 | PreVeil LLC | Secure sharing |
WO2017179059A1 (en) | 2016-04-14 | 2017-10-19 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Self-stabilizing secure and heterogeneous systems |
JP6973385B2 (ja) | 2016-05-13 | 2021-11-24 | 日本電気株式会社 | 認証システム、認証方法およびプログラム |
US11042358B2 (en) | 2016-08-18 | 2021-06-22 | Nec Corporation | Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor |
CN110089071B (zh) * | 2016-11-04 | 2023-02-17 | 诺基亚技术有限公司 | 安全的分布式数据处理 |
US20190386814A1 (en) * | 2016-11-07 | 2019-12-19 | Sherjil Ahmed | Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency |
US10360390B2 (en) * | 2016-12-14 | 2019-07-23 | Sap Se | Oblivious order-preserving encryption |
US10547592B2 (en) * | 2017-01-19 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Computing a global sum that preserves privacy of parties in a multi-party environment |
WO2018135563A1 (ja) * | 2017-01-20 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
US10565524B2 (en) * | 2017-01-31 | 2020-02-18 | Hewlett Packard Enterprise Development Lp | Performing privacy-preserving multi-party analytics on horizontally partitioned local data |
EP3602422B1 (en) * | 2017-03-22 | 2022-03-16 | Visa International Service Association | Privacy-preserving machine learning |
DE102017209014A1 (de) * | 2017-05-30 | 2018-12-06 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Anfügen von Transaktionen an eine Blockkette |
US10910087B2 (en) * | 2017-06-27 | 2021-02-02 | Hyunghoon Cho | Secure secret-sharing-based crowdsourcing for large-scale association studies of genomic and phenotypic data |
EP3439233B1 (en) * | 2017-07-31 | 2020-12-30 | Koninklijke Philips N.V. | Distributing a computation output |
US20200151356A1 (en) * | 2017-08-11 | 2020-05-14 | Duality Technologies, Inc. | System and method for fast and efficient searching of encrypted ciphertexts |
EP4325770A3 (en) * | 2017-08-15 | 2024-04-24 | nChain Licensing AG | Threshold ecdsa for securing bitcoin wallet |
CA3072638A1 (en) | 2017-08-30 | 2019-03-07 | Inpher, Inc. | High-precision privacy-preserving real-valued function evaluation |
JP6974804B2 (ja) * | 2017-12-05 | 2021-12-01 | 日本電気株式会社 | 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム |
US11606203B2 (en) * | 2017-12-14 | 2023-03-14 | Robert Bosch Gmbh | Method for faster secure multiparty inner product with SPDZ |
WO2019133858A1 (en) * | 2017-12-29 | 2019-07-04 | Bonnie Berger Leighton | Realizing private and practical pharmacological collaboration |
WO2019170908A1 (en) * | 2018-03-09 | 2019-09-12 | Koninklijke Philips N.V. | Batch-wise verification of multiparty computations |
US10797868B2 (en) * | 2018-05-31 | 2020-10-06 | Irdeto B.V. | Shared secret establishment |
US11201734B2 (en) * | 2018-06-04 | 2021-12-14 | Robert Bosch Gmbh | Method and system for fault tolerant and secure multiparty computation with SPDZ |
US11580417B2 (en) * | 2018-07-10 | 2023-02-14 | City University Of Hong Kong | System and method for processing data and managing information |
US11087223B2 (en) * | 2018-07-11 | 2021-08-10 | International Business Machines Corporation | Learning and inferring insights from encrypted data |
CN109120398B (zh) * | 2018-08-03 | 2021-07-27 | 河南师范大学 | 一种基于区块链系统的秘密共享方法与装置 |
US11334547B2 (en) * | 2018-08-20 | 2022-05-17 | Koninklijke Philips N.V. | Data-oblivious copying from a first array to a second array |
US10885205B2 (en) * | 2018-10-31 | 2021-01-05 | Nec Corporation Of America | Secure multiparty computation |
US20220141000A1 (en) * | 2019-02-12 | 2022-05-05 | Nec Corporation | Information processing apparatus, secure computation method, and program |
JP2022523182A (ja) * | 2019-02-22 | 2022-04-21 | インファー,インク. | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 |
-
2020
- 2020-02-24 JP JP2021548139A patent/JP2022523182A/ja active Pending
- 2020-02-24 AU AU2020225657A patent/AU2020225657A1/en active Pending
- 2020-02-24 WO PCT/US2020/019551 patent/WO2020172683A1/en unknown
- 2020-02-24 CN CN202080016170.2A patent/CN113841356B/zh active Active
- 2020-02-24 EP EP20712780.4A patent/EP3928462A1/en active Pending
- 2020-02-24 SG SG11202108072QA patent/SG11202108072QA/en unknown
- 2020-02-24 CA CA3128241A patent/CA3128241A1/en active Pending
- 2020-02-24 KR KR1020217026016A patent/KR20210127168A/ko unknown
- 2020-02-24 IL IL285484A patent/IL285484B1/en unknown
- 2020-11-09 US US17/093,008 patent/US11050558B2/en active Active
-
2021
- 2021-06-29 US US17/362,889 patent/US11716196B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210058241A1 (en) | 2021-02-25 |
CN113841356A (zh) | 2021-12-24 |
CN113841356B (zh) | 2024-06-04 |
EP3928462A1 (en) | 2021-12-29 |
IL285484B1 (en) | 2024-03-01 |
KR20210127168A (ko) | 2021-10-21 |
SG11202108072QA (en) | 2021-09-29 |
CA3128241A1 (en) | 2020-08-27 |
WO2020172683A1 (en) | 2020-08-27 |
US11050558B2 (en) | 2021-06-29 |
US20210399879A1 (en) | 2021-12-23 |
US11716196B2 (en) | 2023-08-01 |
AU2020225657A1 (en) | 2021-08-19 |
IL285484A (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022523182A (ja) | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 | |
JP7272363B2 (ja) | 高精度プライバシ保護実数値関数評価 | |
US10778410B2 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
US20170180115A1 (en) | Homomorphic Encryption with Optimized Homomorphic Operations | |
CN107004084B (zh) | 用于加密操作的乘法掩码 | |
CN111857649B (zh) | 一种用于隐私保护机器学习的定点数编码及运算系统 | |
CN113761469B (zh) | 一种保护数据隐私的最高位进位计算方法 | |
Moon et al. | An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
Basilakis et al. | Efficient parallel binary operations on homomorphic encrypted real numbers | |
JPWO2018008547A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
Harmon et al. | Pie: p-adic encoding for high-precision arithmetic in homomorphic encryption | |
Ganesan et al. | Efficient ml models for practical secure inference | |
CN114721623A (zh) | 多方安全除法 | |
CN115529120A (zh) | 一种保密计算系统 | |
JP2007057811A (ja) | 剰余系の計算方法及び装置並びにプログラム | |
CN116055049B (zh) | 多方安全计算方法、装置、系统、电子设备和存储介质 | |
CN112182593A (zh) | 一种数据处理方法、装置和电子设备 | |
JP7331951B2 (ja) | 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP7331952B2 (ja) | 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
CN116127523B (zh) | 一种隐私计算中的数据处理方法、装置及电子设备 | |
CN117075844A (zh) | 数据分解任务的处理方法、装置、存储介质及电子装置 | |
CN114722435A (zh) | 多方安全乘法 | |
US11755288B2 (en) | Secure transformation from a residue number system to a radix representation | |
Harmon et al. | Check for Mercury: Constant-Round Protocols for Multi-Party Computation with Rationals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240312 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240603 |