什么是加密及其工作原理?

1,001 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

加密对数据进行编码,因此只有知道如何对其进行解码的程序才能读取它。大多数加密程序使用“密钥”将明文转换为密文。

什么是加密?

加密对数据进行编码,因此只有知道如何解码的程序才能读取数据。它使用一种算法,一组有序的步骤来改变信息,这样接收方就无法读取信息,除非应用一种类似的算法将其返回到原始状态。

编码数据称为加密。解码叫做解密。原始的未加密数据称为明文,加密后的数据称为密文。因此,我们将明文加密为密文,再将密文解密为明文。

弄清楚如何在没有算法的情况下解码数据称为“破解加密”。

我们使用加密来保护信息,这样只有需要看到它的人和程序才能看到它。我们这样做有很多原因,比如保护财务信息,或者只是为了保护我们的隐私。

如果使用密码管理器,它会将密码存储在一个加密文件中。许多计算机在加密文件的基础上更进一步,使用完全加密的磁盘,如果没有解锁加密的密码,你就无法读取这些磁盘。因此,如果有人偷了电脑,他们不能简单地取出磁盘,用另一个系统读取。

在每天浏览网页时都使用加密,因为几乎每个网站都通过传输层安全(TLS)转移到加密连接。

加密是如何工作的?

大多数加密程序使用“密钥”将明文转换为密文,而相应的解密程序则使用密钥对其进行解密。正如将在下面看到的,最完善的系统不会使用相同的密钥来加密和解密数据。

如果有足够的时间和资源,可以通过“暴力”攻击来破解加密。这总是可能的,但加密算法的目标就是使破解过程花费大量时间或大量资源。

因此,随着计算机变得更强大,更有能力破解以前被认为安全的加密算法,现代加密技术不断得到加强。用暴力手段强行通过过去考虑过的方案在今天可能很容易。

加密密钥通常是用随机数或更准确地说是伪随机数创建的,并由另一种算法生成。

公钥和私钥

最常见的加密方案使用密钥对。每个密钥对包括一个只有所有者应该拥有的私钥和一个所有者与受信任方共享的公钥。这些键依赖于单向函数来保证数据的安全。因此,一个密钥可以加密数据,而只有另一个密钥可以解密数据。

当有人想将数据发送给密钥所有者时,他们使用公钥对数据进行加密并发送密文。由于密钥和算法的性质,只有私钥才能解密文本。因此,密钥对所有者可以从多个人那里接收数据,而且只有他们可以读取消息,而发送数据的人不能读取彼此的邮件。

还可以使用私钥对带有数字签名的消息进行“签名”,接收方可以使用您的公钥进行验证。这有助于通过确保发送了消息来对消息进行身份验证。

公钥证书

公钥证书通常称为数字证书或“证书”,是证明公钥有效性的文件。它们通过验证加密数据的发送方来执行数据加密的身份验证部分。

证书包含有关密钥、所有者和来自验证证书内容的实体的数字签名的信息。这个实体是信任链的关键部分。如果信任它们,就知道可以信任证书和密钥。

例如,在TLS中,证书的主题通常是一台计算机或其他设备,由签名机构验证与您通信的计算机是否是其自称的计算机。这有助于防止中间人攻击。

结论

加密不需要太复杂,数据加密中的底层算法涉及大量复杂的数学运算,但一旦理解了它们,机制就相当简单了。如果理解了密钥是如何工作的,就可以理解如何保护数据的传输。