算法初接触 | 安全算法[加密的基础知识]

107 阅读2分钟

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

加密的基础知识

图解

01

1.jpg
假设A想通过互联网向B发送消息。数据要经过互联网上各种各样的网络和设备才能到达B那里。如果像上图这样直接发送数据的话……

02

2.jpg
数据可能会被第三者恶意窃听

03

3.jpg
因此,我们需要给想要保密的数据加密。加密后的数据被称为“密文”

04

4.jpg
把密文发送给B

05

5.jpg
B收到密文后,需要解除加密才能得到原本的数据。把密文恢复为原本数据的操作就叫作“解密”

06

6.jpg
像这样对数据进行加密,就不用担心会被人窃听了

解说
在现代互联网社会中,加密技术变得十分重要。这里,我们再来说明一下加密的具体操作。
首先,计算机会用由0和1这两个数字表示的二进制来管理所有数据。如下图所示,数据虽然有文本、音频、图像等不同的形式,但是在计算机中都是用二进制来表示的。
7.jpg
在此基础上,思考如何加密数据。
对计算机来说,数据就是一串有意义的数字罗列。密文也是数字罗列,只不过它是计算机无法理解的无规律的数字罗列。
也就是说,加密就是数据经过某种运算后,变成计算机无法理解的数的过程见下图。
8.jpg
在加密运算上会用到“密钥”。所以加密就是用密钥对数据进行数值运算,把数据变成第三者无法理解的形式的过程见下图。
9.jpg
反过来,解密就是像下图这样,通过密钥进行数值计算,把密文恢复成原本数据的过程。
7f3e2aedf4d1d654260f1ee145c46bc.jpg
像这样,将数据变成第三者的计算机无法理解的形式,然后再将其恢复成原本数据的一系列操作就是加密技术。