Stream-Cipher

流密碼是否提供完美的保密性?

  • April 6, 2019

從這裡的WAR10CK :

如果我確實使用 RC4 或 AES-CTR 創建了一台機器並讓 TRNG 不斷地向它提供穩定的隨機位流。如果在每條消息後清除比特流,它是否滿足 OTP 的完美保密要求?

首先,永遠不要使用 RC4。

其次,這取決於您如何使用該流…

如果您使用 AES-CTR 作為流密碼(在此處查看更多資訊),您將指定一個密鑰 $ K $ (和一個隨機數 $ IV $ )。AES 的 CTR 模式將生成一個比特流,其長度與消息匹配。所需要做的就是將它與消息進行異或。

在此處輸入圖像描述

為了破譯。一個人需要鑰匙 $ K $ (或隨機數 $ IV $ ),重新生成流和 XOR 以檢索明文。

如果發生蠻力攻擊,它將在 nonce + 鍵上(它的大小小於消息)。

另一方面,如果:

  1. 你要提前生成一個非常長的真正隨機位流,
  2. 通過安全的方式將其發送給您的合作夥伴,並且
  3. 僅使用該流的一部分為他加密消息(不重複使用生成的流)。

那麼你正在做的是 Vernam Cipher,而不是流密碼(除非我錯了)。這就是他們在 USA 和 URSS 之間交換消息的方式(交換隨機位磁碟以供一次性使用)。是的,這將是非常安全的。


完美保密的要求之一是密鑰空間必須與消息空間具有相同的大小。因此密鑰和消息必須具有相同的長度。在OTP或 Vernam Cipher 中,就是這種情況。在流密碼中,鑑於密鑰用於生成長度更大的流,它不滿足完美保密要求(但仍然相當安全)。

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