我对加密存在理论上的怀疑,但在我拥有的任何资源中都找不到答案。如果有人能帮我澄清这个小疑问,我将不胜感激。
我正在研究非对称加密,我想知道如果收件人收到用私钥加密的消息,而该消息由于电干扰等原因被损坏,会发生什么。
我怀疑当收件人解密该消息时会发生什么:我猜该消息要么不会被解密(因此您会收到错误),要么会被解密为难以理解的消息。
任何帮助都非常感谢。
答案1
如果您问的是一个纯理论问题,答案是“这取决于加密算法”。
然而,在实践中:
消息通常不是使用非对称密钥加密。它们通常太长了。相反,使用非对称密钥加密一个短“会话密钥”,然后使用对称 AES 或类似方法使用该会话密钥加密整个消息。
如果非对称加密的会话密钥损坏,整个消息将完全无法解密(最多会导致 100% 的垃圾和 0% 的原始数据)。
如果对称加密的消息数据损坏,结果取决于所使用的密码模式(例如,对于分组密码 CBC 或 CTR 或 GCM 或其他)。较早的块将被解密,损坏的块将成为垃圾,而后续块可以不可以根据模式而定是垃圾。
大多数广泛使用的加密系统还包括某种形式的完整性保护,以防止商榷篡改,这也能防止常规数据损坏。例如,AEAD 密码,或单独的 HMAC,或类似 PGP 的“MDC”的东西。
如果存在此完整性标签,程序通常会完全拒绝返回它确定已损坏的消息,因为它不知道损坏的原因。