我一直使用AES-CBC進行加密,每次加密純文本時都使用隨機IV。據我所知,這是推薦的方法。爲什麼隨機IV適合AES-CBC但不適用於AES-GCM
我一直在尋找到AES-GCM/AES-CTR,主要用於AEAD。我還沒有實現任何東西,但是從我讀過的所有東西中,基本上nonce只是一個簡短的IV,並且每個加密調用都有一個內部計數器。開發人員/需要確保在32位計數器循環返回之前的隨機數發生變化,否則相同的隨機數(IV)可能會與相同的密鑰一起使用,從而可能加密相同的純文本並泄漏加密密鑰。
我真的不明白的是爲什麼能夠AES-CBC是罰款與隨機IV,但一些什麼我已閱讀指示AES-GCM一個隨機數(IV)是一個壞主意。我能想到的唯一情況是AES-CBC的IV比AES-GCM的nonce更長,因此AES-GCM可能出現重複隨機數的可能性更大。
我需要加密從幾個字節到10 - 20 GB的任何地方的數據。我知道AES-GCM對於在計數器週期之前可以加密的數據大小(〜60GB)有限制。由於我的數據低於此限制,因此我可以解決此限制。
能有人能夠解釋爲什麼一個隨機數不建議AES-GCM一些輕?
我對此有疑問。使用AES-CBC,我使用長期密鑰並生成隨機IV並將加密數據保存到IV,並將數據保存到磁盤,並且一切正常。在這個實施中,我不關心AEAD。使用AES-GCM/CTR,我仍然想使用長時間密鑰。我的計劃是設置加密,使用隨機數/密鑰加密數據,並使用加密數據保存隨機數。爲了解密,我將設置隨機數並解密數據。使用AES-GCM/CTR可以簡單安全地保存隨機數? – garys
對於AES-CTR/GCM,我期望對於密碼的每次設置,內部計數器都設置爲0,所以如果我正在爲長期存儲加密數據,是不是有一個感知的使用順序NONCE與數據?如果我在相同的密碼會話中使用相同的NONCE加密PlainText1,PlainText2,PlainText3,是否需要按相同的順序解密這些內容? – garys
我投票結束這個題目作爲題外話,因爲它屬於crypto.stackexchange.com –