跳转到内容

计算机科学基础/加密

来自维基教科书,开放的书籍,开放的世界

为了确保安全通信的进行,必须使用加密方法。 网页上的安全通信对于电子商务等领域很重要。 加密用于对消息进行编码,以确保除了预期接收者之外没有人知道消息内容。

在互联网上以数据包形式传输的消息。 当您考虑数据包时,它们更像是明信片而不是信件。 每个数据包的内容都是明文(暴露给所有人查看),因为位在传输时是公开的。

保护这些数据包在传输过程中和接收后的最佳方式是使用加密技术。 加密只是将信息(明文)转换为无法理解的文本(密文)的过程,以避免不必要的第三方拦截消息。 为了让接收者理解密文,他们必须使用解密方法。 解密将密文还原为明文的过程反过来。

加密和解密这两个部分是密码学的一部分。 密码学(秘密写作)是研究在第三方存在的情况下安全通信技术的方法和实践。 这不是一个新的实践,早在公元前 2000 年就出现了。

凯撒密码

[编辑 | 编辑源代码]

凯撒密码是替换密码的一个例子。 这种密码使用逐字母翻译来加密消息。 密码只是一个将消息转换为模糊形式的方法(算法),并反转转换。 下面可以看出这种特定密码的一个例子,您用底行对应的字母替换顶行中的每个字母

Caesar Cipher example.
凯撒密码示例。

使用凯撒密码,有 25 种可能的变体,每种变体代表一种不同的移位量。 关于加密和解密规则需要注意的是移位量。 如果我们知道使用了凯撒密码,那么我们可以尝试字母表的所有 25 种可能的移位来解密消息。 但是,已经创建了工具来 加密解密 使用此密码创建的消息。

替换密码

[编辑 | 编辑源代码]

替换密码是使用一个符号根据统一规则替换另一个符号的密码。 下面的示例显示了一个替换表,它定义了字母重新排序的规则。 使用下面的示例可以执行多少种可能的重新排序?

Substitution cipher
替换密码
Number of methods possible.
可能的数量。

这种类型的密码似乎是牢不可破的,但这并非如此。 频率分析用于解码替换密码。 用于破解一般替换密码的这种技术使用语言中出现的字母频率。 下面的图像显示了带有符号的原始消息。 我们将使用频率分析来解码密码。

Original encoded ciphertext.
原始编码的密文。

在将最常用的字符替换为 E 和 T 后,我们可以开始使用其他常见符号和句子结构来填补空白。

Process of using conjectural decoding.
使用推测解码的过程。

最后,在用常用的字母替换符号后,我们看到下面显示了整个消息。

Complete ciphertext message.
完整的密文消息。

维吉尼亚密码

[编辑 | 编辑源代码]

维吉尼亚密码类似于凯撒密码,但它使用多个凯撒密码来编码消息。 很长一段时间,维吉尼亚密码被认为是牢不可破的,直到 19 世纪,查尔斯·巴贝奇发现了一种方法。

This table shows the key to the cipher thomasbbryan. This cipher was used by an attorney named Thomas B. Bryan in 1894 to communicate with his client.
此表显示了密码 thomasbbryan 的密钥。 这种密码在 1894 年被一位名叫托马斯·B·布莱恩的律师用来与他的委托人交流。
Key description
密钥描述

上面使用的替换表用于加密和解密消息。 我们使用第二列“thomasbbryan”来唯一识别表。 此密钥用于指定使用哪种密码。

维吉尼亚密码在 1863 年解码该密码的方法被发现之前是牢不可破的。 尽管该密码不再安全,但在当时它是安全通信的一大进步。

维尔南密码

[编辑 | 编辑源代码]

在维吉尼亚密码中发现的弱点是重复使用相同的密钥。 为了解决这个问题,创建了维尔南密码。 密钥与明文一样长,因此不需要重复。 例如,如果我们想使用维尔南密码加密长度为 100 的消息,我们可能会使用 100 个扩展到 100 行的凯撒密码。 这是一种一次性密码本,用于加密消息。 维尔南密码在二战和冷战期间被广泛使用。

原则上,一次性密码本在密码学方面是最棒的。 这种过程是数学上可证明的。 维尔南密码的操作方式类似于凯撒密码。 凯撒密码使用一个数字密钥作为移位密码,维尔南密码通过使用许多不同的移位密码来操作,每个密钥字母都有一个唯一的移位密码。 这是通过根据字母在字母表中对应的值对字符进行移位来完成的。 例如,如果密钥的字母是“A”,则会导致 1 个移位。

如果使用得当,一次性密码本是牢不可破的,但很难在各方之间传输一次性密码本而不会被拦截。 另一个挑战是密码(一次性密码本)不实用。 如果有办法传输消息,那么由于长度和复杂性,这个人也可以直接发送消息本身。

如今,我们使用更具创新性的方法来确保通信安全。 复杂的密码(程序)使用更短的密钥,这些密钥是双方同意保密的位序列。 这种方法之所以有效,是因为计算机将 ASCII 编码的明文消息分成块。 组成该块的位根据特定方法进行转换,该方法取决于创建的密钥。

目前还没有破解密钥密码的捷径。 即使使用暴力攻击也很困难,因为这需要猜测所有可能的密钥,但随着攻击的进行,该过程根据密钥的大小以指数级增长。 密钥长度仅增加一位就会使破解密码所需的工作量增加一倍。 通过创建更长的密钥,可以使工作量超过实际的计算能力。 因此,破解这些密码是可能的,但计算上不可行,需要数百年的时间或更长时间才能破解。

使用密钥加密带来的挑战是,随着网络成员数量的增加,所需的密钥数量也会增加。 对于每对成员,必须创建一个新的共享密钥。 随着需要更多组合,创建唯一的密钥变得更加复杂。 另一个挑战是在两个成员之间没有安全通道的情况下,在两个成员之间安全地建立密钥。

公钥加密

[编辑 | 编辑源代码]

1976 年,惠特菲尔德·迪菲和马丁·赫尔曼提出了公钥加密的概念。 这个想法是两个数学相关的密钥,一个公钥和一个私钥。 这些密钥是成对的,但在计算上不可能相互连接。 使用私钥加密的消息只能由公钥解密,反之亦然。

当用户选择一个密钥并使用接收者的公钥加密消息并将密文发送给接收者时。 然后,接收者使用其私钥解密密文以获得密钥。 私钥保密,绝不发送给其他用户。 两个人可以使用密钥(也称为会话密钥)进行通信。 消息的机密性得到保证,因为除了接收者之外,没有人能够解密来自发起者的消息。

确保消息来自发件人的方法是使用数字签名方案。 签名应该便于用户生成,但难以被其他人伪造。 数字签名还可以与签名的消息内容相关联。 消息的真实性得到验证,因为密文只能使用目标方的私钥解密。

华夏公益教科书