Algorithm-Design
翻轉密文的任意位會使其更安全嗎?
假設我想將文本文件上傳到惡意云儲存提供商。如果在加密文件之後(例如使用 AES 方案),我翻轉了密文的某些位,例如根據以下方案,文件是否會更安全地防止解密:
010010001000010000010000001...
顯然,“儲存”或“記住”方案的成本是最小的,而且可以很容易地設計出更複雜的方案
首先,您的更改不涉及密鑰,因此它不是真正的密碼。它需要一種模式的知識,但這違背了Kerckhoffs 原則;算法知識不應影響安全性。
其次,您只翻轉特定位。這取決於操作模式對解密的改變程度。如果使用流密碼或流操作模式,則僅翻轉明文中的那些特定位。結果很可能很容易與隨機區分開來,這讓攻擊者知道解密成功。對於 CBC 等其他操作模式,情況可能會有所不同。
第三:你說更複雜的方案很容易推導出來。這很像揮手。一個明顯的方案是另一種具有固定密鑰的密碼。是的,這可行,但在這種情況下,您必須與對方溝通密鑰/算法。基本上你會有雙重加密,但沒有必要的密鑰管理。
最後,AES 已經被認為是安全的。AES-256 甚至被認為可以抵禦涉及量子電腦的攻擊。擁有一個複雜度非常低的附加層並沒有多大意義。AES 本身要復雜得多。
使用額外的模式可能會使在基於密碼的加密中找到密鑰稍微複雜一些(因為字典攻擊比暴力破解 AES 更可行),但即便如此,我還是更願意關注密碼本身的安全性。
它會增加一些複雜性嗎?當然可以,但不太可能對攻擊產生太大影響。即使是這樣,它也取決於攻擊者現在知道該方案,這違反了 Kerckhoffs 原則。