安全算法
传输数据时的四个问题
窃听
A向B发送的消息可能会在传输途中被X偷看(如下图)。这就是“窃听”。
假冒
A以为向B发送了消息,然而B有可能是X冒充的(如下图);反过来,B以为从A那里收到了消息,然而A也有可能是X冒充的。
篡改
即便B确实收到了A发送的消息,但也有可能像图这样,该消息的内容在途中就被X更改了。这种行为就叫作“篡改”。
除了被第三者篡改外,通信故障导致的数据损坏也可能会使消息内容发生变化。
事后否认
B从A那里收到了消息,但作为消息发送者的A可能对B抱有恶意,并在事后声称“这不是我发送的消息”(参考下图)。
这种情况会导致互联网上的商业交易或合同签署无法成立。这种行为便是“事后否认”。
解决这些问题的安全技术
为了解决这些问题,我们需要使用哪些安全技术呢?来简单了解一下每个问题的应对方法吧。
为了应对第一个问题“窃听”,我们会使用 “加密”技术。
为了应对第二个问题“假冒”,我们会使用“消息认证码”(下图左)或“数字签名”(下图右)技术。
为了应对第三个问题“篡改”,我们同样会使用“消息认证码”或“数字签名”技术。其中“数字签名”技术还可以用于预防第四个问题“事后否认”。
参考: 我的第一本算法书 5-1 安全和算法