如果我有一个使用AES CBC加密的加密文件,是否会更改文件中某处的随机字节会导致它无法再解密?
我的理解是否正确,直到更改字节的所有内容都可以解密,但从那时起它就不会解密?
答案 0 :(得分:8)
这不太正确。 AES以块(特别是128位块)加密/解密数据。另外,在CBC模式中,第(i + 1)块的加密/解密取决于 (i)阻止。
因此,如果随机字节落在第i个块内(为简单起见假设字节不在两个块之间交叉),当你去解密第i个块时,它会给你错误的解密(即一个块) 128位将是不正确的)。另外,由于下一个块是使用第i个块加密的,所以第(i + 1)个块也将不正确地解密(另外128个比特,也就是16个字节)。从那里开始,后续的块将是正确的(与之前的所有块一样)。
有关详细信息,我在维基百科上阅读了Modes of Encryption。
还有一件事:更改随机字节可能无法防止解密发生 - 它只会产生原始明文(当然)。
希望有所帮助!