假设我有一台服务器使用对称密钥加密文件,例如 AES-CBC,并将其发送给解密它的客户端。解密时是否提供数据完整性?或者有人可能在文件仍然加密时篡改文件,然后当客户端解密它时,生成一个修改过的文件?
我通常会在使用数字签名或 MAC 方面讨论数据完整性和真实性,但从未在加密的背景下讨论过数据完整性和真实性。我还看到了显示加密比散列更昂贵的基准,但这不是我的主要考虑因素。
更新
我尝试了一个实验,我使用 Linux 中的 openssl 工具对文件进行加密。然后,我尝试以各种方式修改文件(更改字节、删除字节、附加字节)。在每种情况下,当我尝试解密时,都会收到“解密错误”消息。我使用的命令是:
openssl enc -aes-128-cbc -in test -out test.enc
openssl enc -d -aes-128-cbc -in test.enc -out test.dec