Encryption

我應該在 AES 之前最後添加隨機性嗎?

  • June 14, 2016

看到 AES,更改字元會極大地影響加密文本。我想讓解密我發送的 AES 變得更加困難。所以,這似乎可以通過添加一些特殊程式碼和一些隨機字節來完成RNDBYTES在明文末尾添加一些特殊程式碼和一些隨機字節來完成,並且在解密時去除特殊程式碼之後的隨機性。這種加密相同文本的方式看起來會有所不同,這正是我所需要的。但這安全嗎?我應該為此使用特殊算法還是 CSPRNG 就足夠了?應該多長時間?

我在 CBC 模式下使用它,但實現並沒有添加我想要的隨機性,加密時的相同消息看起來相同。但是加密程式碼的接收者應該能夠在知道密鑰的情況下解密,而無需知道RNDBYTES. 這只是為了防止連接之外的聰明人觀察重複模式。

編輯:黑客可能知道其他密文和明文的某些部分。

我想讓解密我發送的 AES 變得更加困難。

從根本上說,您嘗試做的事情是完全沒有必要的。如果 AES 真的被破壞了,那麼這會產生任何可衡量的差異的情況是極不可能的。如果 AES 沒有被破壞,那麼這樣做首先是浪費精力。

您的想法會使 AES 在任何情況下都更難解密的合理理由為零。

實際上,您可以更好地利用您的時間。如果正確使用 AES(例如,像 GCM 這樣的廣受好評的模式、非重複隨機數以及具有合適 PBKDF 的加密隨機密鑰或強密碼),它將成為您的密碼系統中最強大的部分,數量級高出多個數量級。將額外的時間集中在這部分問題上,套用 Bruce Schneier的話說,就像通過在地上種植一根木樁來保護你的房子,並希望攻擊者撞到它,而不是建造其餘的圍欄。

編輯:重新閱讀您的問題後,您似乎通過使用靜態(或無)初始化向量(IV)嚴重濫用了 CBC 模式。永遠不要在具有相同密鑰的加密之間重用初始化向量。此外,CBC IV 要求對手無法預測。您的加密庫應該具有在加密任何明文之前和解密任何密文之前設置初始化向量的功能。使用加密安全的隨機數生成器生成一個,將其傳遞給您的加密庫,然後將 IV 與密文一起發送,以便接收者可以對其進行解密。

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