Encryption

一次性墊是否安全?

  • May 15, 2016

我在 Wikipedia 上閱讀了有關一次性便箋簿 (OTP)的資訊。這安全嗎?我真的可以像維基百科中所說的那樣使用模組化添加作為加密嗎?

而且明文和OTP一樣長,所以當我發送(plaintext,OTP)時,我是先(plaintext+OldOTP)和(NewOTP+OldOTP)然後將它們組合起來,還是我做其他事情?

編輯:一個答案指出-“您不能使用較短的 OTP 傳輸較長的 OTP”但是如果您將 OTP 用作分組密碼,將較長的 NewOTP 分成較短的密碼和單獨的密碼怎麼辦?您不明白我的意思,OTP 將用作分組密碼,並且這些塊將作為一條消息發送,其中一兩個塊中將包含一個新的 OTP,將用作分組密碼回复。

這安全嗎?

是的,一次性密碼 (OTP) 可以被證明是理論上安全的資訊。有關這意味著什麼以及如何執行此操作的草圖,請參閱我之前的回答。

我真的可以像維基百科中所說的那樣使用模組化添加作為加密嗎?

是的,鑑於操作數都是所述組的一部分,任何組操作都可用於形成類似於一次性密碼的完全秘密加密方案,這包括但不限於:

  • 添加在 $ \mathbb F_2 $ (也稱為“XOR”或一次性墊)
  • 添加在 $ E_{a,b}(\mathbb F_p) $ (形成的橢圓 Weierstrass 曲線上的點集 $ \mathbb F_p $ )
  • 添加在 $ \mathbb F_p $ (也稱為模組化添加)

Katz-Lindell在引理 11.15 及以下(在討論 ElGamal 加密時)的《現代密碼學導論》 (第 2 版)中也承認了這一點。證明的想法是您使用的事實是密鑰是從可能的密鑰集中統一獲取的,並且您將這種隨機性“轉移”到密文中。

而且明文和OTP一樣長,所以當我發送(plaintext,OTP)時,我是先(plaintext+OldOTP)和(NewOTP+OldOTP)然後將它們組合起來,還是我做其他事情?

  1. 通常,您實際上不會將 OTP 與您的消息一起發送(明確),因為在這種情況下 OTP 是沒有用的。
  2. 請注意,您兩次使用“OldOTP”,這與它的名稱one -time-pad (OTP) 相矛盾,因此不安全。
  3. 進一步注意,您不能使用 OTP 傳輸更長的 OTP,因為使用 $ n $ -bit OTP,您只能傳輸一個 $ n $ -bit 消息,因此只有一個 $ n $ -bit OTP,它根本沒有幫助你。
  4. OTP 的通常用法是將 OTP 安全地傳輸給接收者,然後在消息中僅使用一次,如(Message + TheOneAndOnlyOTP)

如果您的意思是完全安全,那麼 YES OTP 確實是完全安全的。但是,如果您的意思是實際上安全,那麼 NO OTP 實際上並不安全。

原因是因為 OTP 需要使用完全隨機數作為雙方的密鑰,但在實踐中使用完全隨機密鑰並非易事,使用偽隨機數生成器生成密鑰可能會帶來其弱點系統使其實際上不安全。範例謎機

相反,以 RSA 為例,它依賴於計算兩個極大素數的乘積的因子是非常困難的假設,並且不能在密鑰的有效期內執行。因此 RSA 實際上是安全的,而不是完全安全的。

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