One-Time-Pad

為某些數據創建密鑰的 OTP 是否是一種安全的秘密共享方案?

  • July 23, 2017

假設我有一些數據已使用已知的安全算法和密鑰 k 加密。我想將密鑰的“片段”分發給我的 n 個同事,並且只有在使用所有密鑰時才能訪問數據。

我創建了一個一次性鍵盤並異或密鑰,然後將該 OTP 提供給同事 1,並為每個同事重複此操作。我對此有幾個問題:

  • 一旦密鑰被加密,那塊最初是密鑰是否重要,或者現在所有塊都相等?
  • 假設我的同事都在沒有我的情況下見面,總共有 n-1 個鍵,他們可以用集體數據做些什麼嗎?
  • 創建這麼多一次性便箋簿是否會以某種方式造成漏洞,或者 OTP 的強度是否適用於隨後創建的每個片段?

既然您提到一次性密碼,我將處理一次性密碼 (OTP) 秘密拆分,而不是更複雜的方案。在這種情況下,您不會將密鑰分割成碎片,而是創建長度完全相同的其他密鑰,然後將原始密鑰丟棄。重新創建原始密鑰的唯一方法是將所有生成的密鑰重新組合在一起。這裡有一個很好的教程。你應該能夠從這個提取物中理解方法: -

選擇

一次拿一顆子彈:-

  1. 所有新鍵都同樣重要。如果沒有所有新密鑰,您將無法重新組裝原始密鑰。一把失去的鑰匙不會給你任何東西。
  2. 除了第 1 點,他們無能為力。如果您使用了字節,則每個原始關鍵字元仍然具有 1/256 的確定性。顯然,如果密鑰只有一個字節長,這將無法抵禦暴力攻擊。所以使用長密鑰或密鑰派生函式,但這會偏離 OTP 的精神純度。
  3. 您可能會使用一個一次性墊來溢出原始密鑰。您不會創建其他密鑰。如果您的 OTP 生成器設備產生真正的隨機性,那麼額外 OTP 的存在不會造成任何數學漏洞。您當然需要確保許多新密鑰的安全,因為它們都是必需的。這本身可能就是一個問題。有更複雜的密鑰拆分技術不需要 OTP,並且可以拆分一個秘密,然後只需要一個密鑰子集來重新組合原始密鑰。在某些情況下,您可能會認為這更安全(如果某些特工要被敵人消滅)。

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