在固定初始化向量的情況下知道加密消息的全部內容時的私鑰的安全性
在知道原始消息的全部內容後,當底層加密使用固定的初始化向量時,我是否能夠從加密消息中導出私鑰?
這意味著如果我們通過 加密,考慮到使用了固定的 IV
Text UNENCRYPTED x Private Key =[fixed IV]=> Text ENCRYPTED
,我們能否以某種方式向後計算密鑰?Text ENCRYPTED % Text UNENCRYPTED =[fixed IV]=> Private Key
如果答案是否定的,請解釋為什麼這是不可能的。如果答案是肯定的,那麼計算出的密鑰真的是私鑰還是只是這個特定消息的本地解決方案,不適合解密用相同的未知私鑰加密的其他文本?(後者的意思是
Text ENCRYPTED % Text UNENCRYPTED =[fixed IV]= Pseudo Private Key != Private Key
:)(您可能還注意到不同:
fx(Text UNENCRYPTED, Private Key) = Text ENCRYPTED
如果fy(Text ENCRYPTED, Text UNENCRYPTED) = Private Key
,如何從函式 fx 到 fy?如果固定的 IV 不允許這樣做,請提及一些其他加密方法,這些方法可以使用這種反向計算)
您所描述的稱為已知明文攻擊,任何安全加密算法都應該防止這種情況發生。如果我們採用沒有 IV 的加密函式 $ C = ENC(M, K) $ 我們應該得到一個兩者都知道的系統 $ M $ 和 $ C $ 什麼也沒透露 $ K $ .
我們可以將此主體擴展為 $ C = ENC(M \oplus IV, K) $ 並將其簡化為沒有 IV 的範例; $ M \oplus IV $ 簡單地成為我們的新 $ M $ (你可以說 $ M’ = M \oplus K $ )。該原則也適用於 $ C = ENC(M \oplus IV) \oplus IV $ .
任何未能實現此屬性的加密算法都不能被認為是安全的,因此在您的方案中 $ K $ 如果使用的加密算法是安全的,則不會洩露。
但是,使用固定的 IV 是不好的做法,因為它允許進行統計分析攻擊(請在此處閱讀)。儘管 $ K $ 可能不會洩露 $ M $ 可能會從統計模式中洩漏。