算法初接触 | 安全算法[安全和算法]

95 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天

安全和算法

一、互联网中不可或缺的安全技术

通过互联网交换数据时,数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备,从而导致内容被盗取。
因此,要想安全地使用互联网,安全技术是不可或缺的。本章将要学习的就是保障安全的各种算法和利用了这些算法的机制。

二、传输数据时的四个问题

首先,介绍一下用互联网传输数据时可能会发生的四个主要问题。
窃听
A向B发送的消息可能会在传输途中被X偷看如图。这就是“窃听”。
1.jpg

假冒
A以为向B发送了消息,然而B有可能是X冒充的如下图;反过来,B以为从A那里收到了消息,然而A也有可能是X冒充的。
2.jpg
这种问题就叫作“假冒”

篡改
即便B确实收到了A发送的消息,但也有可能像下图这样,该消息的内容在途中就被X更改了。
3.jpg
这种行为就叫作“篡改”。除了被第三者篡改外,通信故障导致的数据损坏也可能会使消息内容发生变化。

事后否认
B从A那里收到了消息,但作为消息发送者的A可能对B抱有恶意,并在事后声称“这不是我发送的消息” (参考下图)
4.jpg
这种情况会导致互联网上的商业交易或合同签署无法成立。这种行为便是“事后否认”

以上四个四个主要问题不光发生在用户之间交流的时候,也有可能发生在用户浏览网页的时候。

三、解决这些问题的安全技术

为了解决这些问题,来了解一下每个问题的应对方法
为了应对第一个问题“窃听”,我们会使用“加密”技术。
5.jpg
为了应对第二个问题“假冒”,我们会使用“消息认证码”(下图左)或“数字签名”(下图右)技术。
6.jpg
为了应对第三个问题“篡改”,我们同样会使用“消息认证码”或“数字签名”技术。其中“数字签名”技术还可以用于预防第四个问题“事后否认”

问题和相应的解决方法可总结成如下页表格
732b4cc5be29239e22ea8a16ea07579.jpg