Secret-Sharing

秘密共享方案可驗證性

  • June 28, 2021

這種秘密共享方案發生在有限域上的多項式環中 $ F_p[x] $ , $ p $ 是一個大素數,採用以下簡化方式:

  1. 莊家選擇私人多項式 $ f(x) $ .
  2. 每個參與者 $ P_i, i \in N $ , 有一個公共多項式 $ m_i(x) $ , 和 $ deg(m_i(x)) \leq deg(f(x)) $ .
  3. 經銷商計算私人秘密份額 $ P_i $ 作為 $ s_i(x) = f(x) \mod m_i(x) $ 並將其發送到 $ P_i $ .

我需要一個方法 $ P_i $ 驗證私有秘密共享 $ s_i(x) $ 計算得很好。

假設有一個多項式承諾方案,允許您承諾某個多項式 $ p(x) $ 作為 $ p(\beta)G $ .

$ \beta $ 是每個人都不知道的值(以及 $ p(\beta) $ ),包括經銷商,以及 $ G $ 是橢圓曲線的點生成器 $ F_p $ .

這種多項式承諾方案還允許對某個承諾多項式進行證明評估,即,您可以證明某個點 (a, b) 屬於該承諾多項式。

有了這個,我的想法來驗證私人秘密共享 $ s_i(x) $ 如下:

  1. 自從 $ f(x) = m_i(x)k_i(x) + s_i(x) $ , 經銷商承諾 $ f(x) $ 和 $ k_i(x) $ 作為 $ f(\beta)G $ 和 $ k_i(\beta)G $ , 分別發送給 $ P_i $ .
  2. $ P_i $ 要求評估隨機 $ z $ .
  3. 經銷商送 $ f(z) $ 和 $ k_i(z) $ 至 $ P_i $ ,以及它們屬於承諾多項式的證明。
  4. $ P_i $ 驗證 $ f(z) = k_i(z)m_i(z) + s_i(z) $ .

我的想法是兩個多項式 $ p(x) $ 和 $ p’(x) $ , 有度數 $ n $ 和 $ m $ , 最多可以有 $ max(n, m) $ 交點,所以如果經銷商承諾多項式 $ f’(x) $ 和/或 $ k’(x) $ 代替 $ f(x) $ 和/或 $ k(x) $ ,方程對那些承諾多項式成立的機率可以忽略不計。

我不知道如何證明或反駁這一點,所以如果有人可以幫助我,我將不勝感激。

我相當肯定,您提出的秘密共享方案實際上在任何方面都不安全:

如果一方收到 $ s_i(x) $ ,則秘密多項式的形式為 $ f(x)=s_i(x)+m_i(x) \cdot r(x) $ 對於一些多項式 $ r(x) $ . 這並不等同於所有可能的多項式。更糟糕的是:如果你允許當事人選擇 $ m_i $ 自己和任意程度,當事人可以選擇做他們基本上得到的 $ f(x) $ 在明確。

例子: $ f(x) $ 有學位 $ d $ , 然後 $ m_i(x)=x^{d+1} $ 回饋 $ f(x) $ . 即使次數受到限制,也不是所有的多項式都是可能的。

但即使我們假設秘密共享是安全的,那麼您提出的算法也會破壞它:

如果一方可以驗證他們的共享是否正確創建,那麼該方可以使用這個程序來了解一些關於 $ f $ 反而。對於任何秘密共享方案,在其個人共享之上為各方提供額外的知識很可能會破壞資訊理論的安全性(否則必須被證明)。而且由於您的構造中根本沒有計算上的難題,因此它甚至不具有計算安全性。

您描述的秘密共享方案似乎利用了中國剩餘定理。我認為您的問題是如何證明生成的正確性 $ s_i(x) $ 給經銷商?如果是這樣,我有一個粗略的想法來證明它。

眾所周知,多項式 $ p $ 由它的係數決定 $ {c_0,…,c_d} $ 和學位 $ d $ . 因此,我們有以下步驟來證明的正確性 $ s_i(x) $ . 假設一個可信方同意參與這個方案。

  1. 受信任方生成一些公共參數 $ {g^{z^i}}{i\in[d]} $ , $ {g^{\alpha * z^i}}{i\in[d]} $ 在哪裡 $ \alpha $ , $ z $ 是隨機值和驗證密鑰 $ \Omega=g^\alpha $ .
  2. 正如您在原始方案的第 3 步中所述,經銷商計算 $ s(x) $ 然後生成以下證明值: $ \pi ={ A:=g^{f(z)}=g^{\sum_{i=0}^d{c_i * z^i}},B:=g^{\alphaf(z)}=g^{\sum_{i=0}^d{c_i * \alpha * z^i}},C:=g^{k(z)}=g^{\sum_{i=0}^d{c’_i * z^i}},D:=g^{\alphak(z)}=g^{\sum_{i=0}^d{c’_i * \alpha * z^i}}} $ .
  3. 經銷商轉發 $ \pi $ 和 $ s(x) $ 給參與者。
  4. 接收 $ \pi $ 和 $ s(x) $ ,參與者檢查以下等式是否成立。 $ e(A,\Omega)=e(B,g), e(C,\Omega)=e(D,g), e(A,g)=e(C,g^{m(z)})*e(g^{s(z)},g) $ .

引用自:https://crypto.stackexchange.com/questions/77358