Ecb
AES 擴散(排列)如何不影響每個區塊中的 ECB 企鵝模式?
根據我的理解,AES 在它加密的每個塊中引入了擴散,即使使用 ECB 作為操作模式也是如此。如果是這種情況,如何在每個塊中保留模式?
在這篇部落格https://words.filippo.io/the-ecb-penguin/中保留了企鵝的輪廓、眼睛、身體、腿。我期待企鵝的扭曲部分。
仔細看看下面的圖片:-
Tux 右眼左側的紫色條為 6 x 1 像素。這相當於加密 RGB 圖像(24 位/像素)時單個 AES 塊的“覆蓋”。
由於AES密鑰是固定的,相鄰塊之間沒有關係,唯一的變數就是所謂的純文字,例如Tux。因此,6 像素條在微觀上是加擾的(塊內擴散),但在宏觀上觀察時仍然存在 Tux 的印象(沒有塊間擴散)。如果背景是恆定的,則加密圖像部分是恆定的。
並且隨著測試圖像變大,相對失真會減小。這是你問題的關鍵。我建議原始 Tuxes 比您連結到的圖像大得多。這就解釋了為什麼普通的 Tux 和密碼 Tux 實際上是相同的輪廓。正如您所建議的那樣,您會期望看到更多鋸齒狀的邊緣來加密 Tux,因為 6 像素塊撕碎了他的輪廓。尤其是黑色部分,顏色相當純正。這並不是很明顯,因此我只能得出結論,加密是在更大的肖像上執行的,然後縮小以進行發布。網路傳說。
這說明了塊原語需要某種“模式”操作。這將在相鄰的塊之間建立一種關係,將可憐的 Tux 擾亂成一個無法區分的彩色方塊,如下所示:-
@CodesInChaos 回答(見評論)。我自己創建了 aes-ecb 企鵝,我看到很多細節,比如眼睛、身體缺失,但輪廓保留了一些噪音。