需要 y 個可能的密碼中的 x 個來解密
有沒有辦法設置加密,以便需要總(y)個使用者/密碼中的一個數字(x)來進行解密?
背景:這主要是一個思想實驗,儘管它們可能存在,但我沒有現實世界的應用程序。我記得最初是從愛德華·斯諾登(我相信的 Neil deGrasse Tysons播客)的採訪中得到這個想法的,但找不到任何關於這個概念的後續資訊。
假設範例 1:一個虛構的技術國家有 3 個“領導者”。為了發動戰爭,他們中的 2 人必須同意並提供他們的加密密鑰來解密所需的命令/程式碼。
假設範例 2:美國有 435 名國會議員。在未來的某個時候,必須使用加密方法通過賬單。他們中的 50% 必須提供他們的密鑰/密碼才能獲得萬能鑰匙並通過法律。
簡單的解決方案:對於每個組合使用者,按順序加密主解密密鑰(按使用者名字母順序)。對於第一個範例,只有 3 種組合,只需 3 種不同方式加密主密鑰是微不足道的。不幸的是,這不能很好地擴展。對於第二個範例,435 個中的 218 個給我們約 3*10^129。(作為參考,宇宙中有10^80 個原子。)
他們是執行此類加密的一種更具程序性的方式嗎?我對加密了解得越多,就越能看到相對簡單的數學算法的驚人應用。
這是密碼學中一個經過充分研究的問題。您正在尋找的東西被稱為秘密共享計劃。這是一個我們獲取主密鑰的方案,並從中生成 $ N $ 股份,並與任何集合 $ T $ 共享,我們可以重建主秘密(我們不能 $ T-1 $ 其中)。我們可以做 $ N $ 和 $ T $ 我們喜歡多大,所以它適用於“435 中的任何 218”的情況。
有關更多詳細資訊以及實現它的實用方法的指針,請參閱本文。
比特幣風格的區塊鏈可以在這裡提供解決方案。如果每個投票都使用“受信任的”私鑰簽名並添加到鏈中,該鏈又與前一個塊進行雜湊處理,則它可能能夠提供不可變的投票分類賬。特別是如果這樣的鏈條在許多不同的決策過程中執行了很長時間,例如在參議院或議會中通過的所有法案。
比特幣解決瞭如今看來的一切。