Stream-Cipher
當 RC4 流被破壞時會發生什麼?
我想使用 RC4 加密一個大文件。但是如果加密文件被破壞(字節被修改或失去)會發生什麼?我還能正確解密文件的其餘部分嗎?
如果不是,最好的解決方案是什麼?將文件分成 X 塊,然後分別加密?
如果使用 RC4 加密的大文件部分損壞,未損壞的部分仍然可以完全破譯,包括損壞部分之後的內容,如果損壞修改了此數據的值,而不是其長度(例如,串列通信可能發生長度損壞,但不太可能發生在硬碟上)。這是所有流密碼的屬性。
一個例外是當有一個 IV 與 key 結合在一起形成 RC4 的完整 key 輸入,並且這個 IV 被破壞了;那麼整個文件就無法破譯,基本上就好像密鑰失去了一樣。
另一個實際的例外是,如果解密程序在遇到損壞的磁碟塊時有些停止,或者在這種情況下使密鑰流與密文不同步(這不是看不見的!);要在不修復程序的情況下從中恢復,可以首先將損壞的文件複製到良好的媒體上,將損壞的塊替換為任意數據(而不是刪除)。
最後,解密程序可以包括檢查文件完整性的規定,如果明文被破壞,則拒絕輸出明文;在這種情況下,此解密程序需要更改以跳過此檢查。