沙米爾的秘密分享比這種簡單的 2 密碼技術更好嗎?
我正在尋找一種保護消息的 解決方案,這樣
password1
(通常給受信任的人#1)和password2
(給受信任的人#2)都需要解密消息。因此,單獨的人#1 或單獨的人#2 不能解密消息。
Shamir’s Secret Sharing似乎給出了一個解決方案(使用有限域算術)。
問題:以下簡單解決方案如何比 Shamir 解決方案弱,以及 Shamir 解決方案相對於此的優勢:
ciphertext = encrypt(encrypt(plaintext, password1), password2)
(
encrypt
任何傳統的對稱加密解決方案在哪裡)?範例案例(題外話,但僅作為範例):
plaintext
是您的數字“遺囑”(包含您想在死後傳遞給親人的有用密碼),password1
由您的律師/公證人保存,password2
給出給你的生活伴侶。
你描述了一個 $ n $ -的- $ n $ 嵌套門限加密方案:有 $ n $ 共享一個密鑰,它需要所有 $ n $ 其中(以正確的順序,所以我希望你標記它們)來恢復明文。同樣,有一個簡單的 $ 1 $ -的- $ n $ 連接的門檻值加密方案,例如,OpenPGP 用於多接收者消息的加密方案。
這些句柄都不是 $ k $ -的- $ n $ 為了 $ 1 < k < n $ ; 例如, $ 2 $ -的- $ 3 $ *,*你想確保
- 你和你的律師,或
- 你和你的情婦,或者
- 你的情婦和你的律師,
可以合作恢復秘密,但他們都不能單獨做(絕對不是你的丈夫)。
顯然,可以組合嵌套和連接來達到相同的效果——做 $ 1 $ -的- $ 3 $ 其中每份是一個 $ 2 $ -的- $ 2 $ 例如,門檻值系統本身,就像上面的列表一樣——但是這種方式會有一些成本的組合爆炸,尤其是當 $ k \approx n/2 $ 因此成本隨著中心二項式係數的增長而增長。
相比之下,沙米爾的秘密共享方案只需花費 $ \log_2 n + b $ a 的每股比特數 $ b $ -bit secret,無論門檻值如何 $ k $ 是,總共 $ n \log_2 n + n b $ 一些成本,或 $ k \log_2 n + k b $ 用於恢復秘密的儲存位。
請注意,秘密共享方案在實踐中幾乎從來都不是您想要的(也許除了揭示臨終的秘密)。
例如,如果您共同控制一個銀行賬戶,並且您希望確保銀行賬戶的任何轉賬都得到三個簽名者中的兩個的授權,那麼使用與秘密共享方案分開的單個簽名密鑰是一個糟糕的系統——如果您這樣做,那麼每次您簽署支票時,您都必須重新建構單一簽名密鑰,並且擁有您重新建構它的電腦的人現在擁有單方面簽署支票的權力。
通常最好使用門檻值簽名,其中最簡單的系統只是不同授權方的簽名的串聯。