Secret-Sharing

我對 Asmuth-Bloom 方案完美性的證明是否正確?

  • January 22, 2019

我試圖了解 Asmuth-Bloom 的秘密分享是如何完美的。到目前為止,我的“證明”(在 4 種方案中的 3 種方案中):

$ y=s + a * m_0 \bmod m_1 * m_2 * m_3 $

有 $ k-1 $ 共享,它將為 CRT 產生一個有效的解決方案,但不是唯一的解決方案。2股收益率 $ x = y’ \bmod m_1 * m_2 $

因此,我們知道 $ y = y’ + z * m_1 * m_2 $ 還有那個 $ y = [0;m_1m_2m_3] $

但由於我們不知道確切的範圍 $ y $ , 自從 $ m_3 $ 失踪,我們不能只是簡單地猜測 $ z $ 因此猜測 $ y $ .

但是,我看到下面的素數序列被大量使用,所以當我們知道 $ m_1 $ 和 $ m_2 $ 我們可以假設 $ m_3 $ 是下一個素數和猜測值 $ z $ 因此 $ y $ 正確的?

數字範例:

$ m_0 = 43,\space m_1=131, \space m_2=137, \space m_3 = 139, \space m_4=149, \space s=42, \space a = 476 $

$ y = 42 + 476 * 43 $

$ y = 20510 \bmod 2494633 $

$ s_1 = (74, 131), \space s_2 = (97, 137), \space s_3 = (77, 139), \space s_4 = (97, 149) $

CRT 有兩股:

$ x \equiv 74 \bmod 131 $

$ x \equiv 97 \bmod 137 $

$ x \equiv 2563 \bmod 17947 $

所以現在我們可以開始猜測了

$ y_0 = 2563 + 0*17947 $

$ y_1 = 2563 + 1*17947 $

$ y_2 = 2563 + 2*17947 $

$ y_n = 2563 + n*17947 $

並且,在知道(或假設)的情況下 $ m_3 $ 是之後的下一個素數 $ 137 $ , 最大值 $ y_{138} = 2563 + 138 * 17947 $

自從 $ 2563 + 139 * 17947 $ 超過 $ m_1m_2m_3 $

所以我們有 $ 138 $ 值來猜測秘密。

$ s_n = y_n \bmod 43 $


從我的結論來看,這不是一個完美的方案,但每個人都說它是。那麼我哪裡錯了?

好的,所以我終於能夠找到解決方案。該方案確實產生了 138 個有效結果來猜測秘密。然而,既然他們已經知道秘訣就在於 $ \mathbb{Z}_{m_0} $ 無論如何,(在上面的例子中)只有 42 個可能的秘密。自從 $ a $ 是均勻分佈的,當你申請時,該方案確實會洩露一些關於秘密的機率資訊 $ \bmod 43 $ 到所有 138 個可能的值,如下所示:在此處輸入圖像描述

例如,攻擊者可以確定 2,3 或 4 比 0 或 1 更有可能。但是,沒有關於秘密本身的資訊洩露。

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