新しい答え(10/24):次の論文は、あなたの問題に対するエレガントで効率的な解決策を提供すると思います:
これらは、次の2つの有用なプロパティを使用して、公開鍵暗号化アルゴリズムを構築する方法を示しています。E(⋅ )
相加的に準同型。とE (y )が与えられれば、誰でもE (x + y )を計算できます。E(x )E(y)E(x + y)
乗算できます(1回)。与えられたとE (Y )(いずれも、乗算操作の結果として生成された)、誰でもすることができるコンピューティングE (X ⋅ Y )。結果は加算演算で使用できますが、乗算演算では使用できません(乗算の結果は汚染されており、汚染された値は別の乗算への入力として使用できません)。E(x )E(y)E(X ⋅ Y)
結果は、二次多変量多項式が与えられ、E (x 1)、… 、E (x n)が与えられると、誰でもΨ (x 1、… 、x n)。これはあなたの状況にとても役立ちます。Ψ (x1、… 、xん)E(x1)、… 、E(xん)Ψ (x1、… 、xん)
具体的には、あなたの状況では、我々は多項式を形成することができます
これは二次多変量多項式であるため、E (b i)がすべて与えられれば、誰でもE (Ψ (b 1、… 、b N))を計算できることに注意してください。
Ψ (b1、b2、… 、bN)= ∑私≠ j[ b私(1 − bj)] 。
E(b私)E(Ψ (b1、… 、bN))。また、
なので、この多項式の値を正確に計算しようとしていることに注意してください。
R = Ψ (b1、… 、bN)
これは、上記で参照した論文の暗号化スキームのしきい値バージョンを使用して、問題に自然なプロトコルを提案します。
- 誰もが共同でこのスキームのしきい値バージョンの公開/秘密鍵ペアを生成します。これにより、公開鍵はすべての人に知られ、秘密鍵はすべての人の間で共有されます(この公開鍵で暗号化された暗号文を復号化するには、すべての当事者の協力が必要です)。公開鍵は、N人の参加者全員にブロードキャストされます。NN
- 私E(b私)E(b私)
- E(R )= E(Ψ (b1、… 、bN))E(b1)、… 、E(bN)
- NRE(R )
- 誰もが何らかの方法で(おそらくZKの証明によって)、各ステップを正しく実行したことを証明します。
詳細を記入する必要がありますが、このスケッチ/アウトラインを拡張して、問題を効率的かつ安全に解決するプロトコルを取得できます。
私の古い答え:
S= ∑jbj
S< N/ 2
SRSRQS∈ { Q 、N− Q }
私、jE(c私、j)c私、j= b私⊕ Bj⊕EΣ私< jc私、j= Rこれから。解決すべき詳細がいくつかあり、脅威モデルは期待したものとは異なる場合がありますが、このようなものを作成できる可能性があります。