Encryption

Vernam(一次性密碼)密碼有用嗎?

  • February 9, 2019

我的職業是程序員。我不太了解密碼算法是如何實現的,甚至我從哪裡開始,我也不知道密碼分析,但是當我從事區塊鏈技術工作時,我知道如何使用密碼算法。有人可能會說我有一個短暫的興趣。

引起我好奇心的一件事是 Vernam 或 One Time Pad 密碼,因為它可能對許多密碼學新手也有影響。據說 100% 在數學上是不可能破解的,而且實現起來非常簡單。

問題似乎與使用的鍵有關。具體來說:

  1. 不應重複使用密鑰
  2. 鍵序列不應重複
  3. 密鑰需要以某種方式共享

其他加密算法解決(或不遭受)這些問題,但是,如果我們能找到一種合適的、安全的方式來生成和共享唯一密鑰,那麼 Vernam 密碼會變得有用嗎?

在這方面還有什麼需要考慮的嗎?

如您所知,一件事是否有用取決於上下文。如果您餓了,帶有 CAMELLIA256 子密鑰的 4096 位 RSA 密鑰有用嗎?不是真的,除了也許作為思考的食物。

就在此時此刻,世界各地嚴肅且可能很危險的人正在使用一次性衛生巾。OTP 有效。使用一次性密文加密的密文始終可以在 HF 無線電中聽到。有用嗎?當然。問題是:“為誰?”

為什麼一次性便箋簿有用?你沒有隨身攜帶很多設備。紙張不會留下電子痕跡。紙張燃燒。小墊子很容易隱藏。很難將 kleptotrojan 放入鉛筆中。紙很便宜。如果密鑰是真正隨機的、密鑰受到保護並且密鑰與消息一樣長,那麼 Vernam 密碼就是完美的密碼。當您的設備停止工作時,您可以拿出這本小書並想辦法傳遞您的資訊——它的內容將保持私密。您實際上可以看到密鑰被破壞。當你摧毀它時,它就真的消失了。關於使用一次性便箋簿的一切都很容易理解。一次性墊不需要電。如果你失去了你的墊子,那可能會很糟糕,但你不必在所有人面前撤銷它。所有這些聽起來都非常有用,對吧?

所以,直接回答你的問題,“如果我們能找到一種合適的、安全的方式來生成和共享唯一密鑰,那麼 Vernam 密碼會變得有用嗎?”——是的,它已經對全球某些人非常有用,但他們不是在談論它。

“這方面還有什麼需要考慮的嗎?”

是的。

  1. 並不是說“不應該”再次使用密鑰,就好像它是一個選項一樣。它只能使用一次。
  2. 密鑰必須至少與明文一樣長。
  3. 密鑰必須是真正隨機的才能完美。
  4. 必須保護密鑰免受損壞或洩露。
  5. 密鑰必須已通過安全方式共享。

需要注意的一件重要事情是 OTP 不提供完整性保護。這非常重要,因為通常有很多已知的明文,如果沒有完整性保護,攻擊者可以隨意更改。

例如,給定 HTML 中的文件結構,對於具有對 OTP 加密的 HTML 數據流的寫訪問權限的攻擊者來說,注入一些惡意 javascript 並不難。

但是,我確實想專注於您的觀點之一

密鑰需要以某種方式共享

如果我們能夠以理論上安全的資訊方式解決這個問題,使得 OTP 變得有用/實用,為什麼我們不直接使用任何方式來傳輸加密消息?這會完全否定 OTP 的任何用處,不是嗎?

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