常用密码技术
1 密码
1.1 发送者、接收者和(qie)听者
请想象一个Alice向Bob发送电子邮件的场景。在这个场景中,发出邮件的Alice称为 发送者(sender),而收到邮件的Bob则称为 接收者(receiver)。
在讲解发送者、接收者的概念时,用邮件这个例子会比较便于理解,但实际上发送者和接收者这两个术语的使用范围并不仅仅局限于邮件。当某个人向另一个人发送信息时,发出信息的人称为发送者,而收到信息的人称为接收者。另外,被发送的信息有时也统称为 消息(message)。
-
Alice向Bob发送邮件
邮件是通过互联网从Alice的计算机发送到Bob的计算机的。在发送邮件时,邮件会经过许多台计算机和通信设备进行中转,在这个过程中,就存在被恶意qie听者(eavesdropper)偷看到的可能性。
- Eve(qie听者)看到邮件的内容
窃听者Eve并不一定是人类,有可能是安装在通信设备上的某种qie听器,也可能是安装在邮件软件和邮件服务器上的某些程序。
尽管邮件内容原本应该只有发送者和接收者两个人知道,但如果不采取相应的对策,就存在被第三方知道的风险。
1.2 加密和解密
Alice不想让别人看到邮件的内容,于是她决定将邮件进行加密(encrypt)后再发送出去。
加密之前的消息称为明文(plaintext),加密之后的消息称为密文(cipher-text)。
我们看到明文可以理解其中的含义,而看到密文则无法理解其中的含义。
- 明文加密之后就会变成看不懂的密文
Bob收到了来自Alice的加密邮件,但作为接收者的Bob也是无法直接阅读密文的,于是
Bob需要对密文进行解密(decrypt)之后再阅读。解密就是将密文恢复成明文的过程。
-
密文解密之后就变成了原来的明文
将消息加密后发送的话,即使消息被窃听,窃听者得到的也只是密文,而无法得知加密前的明文内容
-
将消息加密后发送, 窃听者只能得到密文
在上述场景中,Alice将邮件进行加密,而Bob则进行解密,这样做的目的,是为了不让窃听者Eve读取邮件的内容Alice和Bob通过运用密码(cryptography)技术,保证了邮件的机密性(confidentiality)。
1.3 秘钥
1.3.1 密码算法
用于解决复杂问题的步骤,通常称为算法(algorithm)。从明文生成密文的步骤,也就是加密的步骤,称为“加密算法",而解密的步骤则称为“解密算法"。加密、解密的算法合在一起统称为密码算法。
1.3.2 秘钥
密码算法中需要密钥(key)。现实世界中的“钥\'\',是像