1.2.1 Alice 与 Bob 要讲解密码,我们需要为参与信息交互的人和计算机起几个名字。如果光用 A、B 之类的 符号未免显得无趣,因此在本书中我们用 Alice、Bob 等人名来指代这些信息交互的参与者 (表 1-1)。 1.2.2 发送者、接收者和窃听者 请想象一下 Alice 向 Bob 发送电子邮件的场景。在这个场景中,发出邮件的 Alice 称为发送 ,而收到邮件的 Bob 则称为接收者(receiver)。 在讲解发送者、接收者的概念时,用邮件这个例子会比较便于理解,但实际上发送者和 接收者这两个术语的使用范围并不仅仅局限于邮件。当某个人向另一个人发送信息时,发出 信息的人称为发送者,而收到信息的人称为接收者。另外,被发送的信息有时也统称为消 息(message)(图 1-1)。 邮件是通过互联网从 Alice 的计算机发送到 Bob 的计算机的。在发送邮件时,邮件会经过 许多台计算机和通信设备进行中转,在这个过程中,就存在被恶意窃听者(eavesdropper)偷看 到的可能性(图 1-2)。 由于窃听者的英文叫作 eavesdropper,因此我们给他起了一个发音相近的名字叫作 Eve。 窃听者 Eve 并不一定是人类,有可能是安装在通信设备上的某种窃听器,也可能是安装在邮件软件和邮件服务器上的某些程序。 尽管邮件内容原本应该只有发送者和接收者两个人知道,但如果不采取相应的对策,就存 在被第三方知道的风险。 1.2.3 加密与解密 Alice 不想让别人看到邮件的内容,于是她决定将邮件进行加密(encrypt)后再发送出去。 加密之前的消息称为明文(plaintext),加密之后的消息称为密文(ciphertext)。 我们看到明文可以理解其中的含义,而看到密文则无法理解其中的含义。 Bob 收到了来自 Alice 的加密邮件,但作为接收者的 Bob 也是无法直接阅读密文的,于是 Bob 需要对密文进行解密(decrypt)之后再阅读。解密就是将密文恢复成明文的过程。 将消息加密后发送的话,即使消息被窃听,窃听者得到的也只是密文,而无法得知加密前 的明文内容。 1.2.4 密码保证了消息的机密性 在上述场景中,Alice 将邮件进行加密,而 Bob 则进行解密,这样做的目的,是为了不让窃 听者 Eve 读取邮件的内容。Alice 和 Bob 通过运用密码(cryptography)技术,保证了邮件的机密性(confidentiality)。 1.2.5 破译 进行加密之后,Eve 只能得到密文。如果 Eve 无论如何都想知道明文的内容,就需要采取 某种手段将密文还原为明文。 正当的接收者将密文还原为明文称为“解密”,但接收者以外的其他人试图将密文还原为明 文,则称为密码破译(cryptanalysis),简称为破译,有时也称为密码分析。 进行破译的人称为破译者(cryptanalyst)。破译者并不一定是坏人,密码学研究者为了研究 密码强度(即破译密码的困难程度),也经常需要对密码进行破译,在这样的情况下,研究者也 会成为破译者。 小测验 1 日记的密码 (答案见 1.9 节) Alice 习惯用文字处理软件来写日记。为了不让别人看到,她在每次保存到磁盘时都会进行 加密,而在阅读日记时,再进行解密。 在这个场景中,发送者和接收者分别是谁呢?