Stream-Cipher
安全 PRG 和語義安全加密之間的區別
我正在斯坦福大學的 Coursera 學習密碼學課程。我有以下問題
我有一個問題,為什麼在 G(k) 中附加 0,即 G’(k) = G(k) || 0 被認為是不安全的 PRG,因為消息中的 0 是在未加密的情況下複製的。而在語義安全 E’(k,m) = 0 || E(k,m) 即前置 0 被認為是語義安全的。這里為什麼附加 0 不會破壞語義安全
$$ sic $$?
我認為 Coursera 上的 SU Cryptography 課程非常好,達到一定程度非常全面。您應該在 Coursera 論壇上討論這些主題,恕我直言,您將獲得更準確的指導。
您在這裡有兩個問題,您應該知道安全 PRNG 和語義安全加密的定義。消息的安全性在兩者之間有所不同,需要安全。對於 PRNG,它是輸出,對於加密,它是明文消息。
我有一個問題,為什麼在 G(k) 中附加 0,即 G’(k) = G(k) || 0 被認為是不安全的 PRG,因為消息中的 0 是在未加密的情況下複製的。
表達式( G’(k) = G(k) || 0 )實際上意味著您將零附加到生成的消息中。這意味著您可以預測(否則為隨機)消息的末尾會有 0。這是非常不安全的 PRNG。
而在語義安全 E’(k,m) = 0 || E(k,m) 即前置 0 被認為是語義安全的。為什麼附加 0 不會破壞語義安全?
即使您在密文中添加了任何內容,它仍然沒有透露任何有關明文消息的資訊。