第1章 环游密码世界
1.2 密码
- 发送者(sender):当某个人向另一个人发送信息时,发出信息的人称为发送者。
- 接收者(receiver):收到信息的人称为接收者。
- 消息(message):被发送的信息
- 窃听者(eavesdropper):在发送邮件时,邮件会经过多台计算机和通信设备进行中转,在这个过程中就存在被恶意窃听者偷看到的可能性。
- 明文(plaintext):加密之前的消息。
- 密文(ciphertext):加密之后的消息。
- 加密(encrypt)
- 解密(decrypt)
密码(cryptography)技术可保证机密性( confidentiality)
- 密码破译(cryptanalysis):简称破译,有时也称为密码分析。接受者以外的其他人将密文还原成明文。
- 破译者( cryptanalyst):进行破译的人,不一定是坏人,也可能是密码学研究者。他们为了研究密码强度(破译密码的困难程度)也会成为破译者。
1.3 对称密码与公钥密码
- 算法(algorithm):解决复杂问题的步骤。
- 加密算法:加密的步骤
- 解密算法:解密的步骤
- 密码算法:加密算法和解密算法合在一起的统称
- 密钥(key)
- 对称密码(symmetric cryptography):在加密和解密时使用同一密钥的方式。
- 又称公共密钥密码(common-key cryptography)、传统密码(conventional cryptography)、私钥密码(secret-key cryptography)、共享密钥密码(shared-keycryptography)
- 公钥密码(public-key cryptography):在加密和解密时使用不同密钥的方式。
- 又称非对称密码(asymmetric cryptography)
- 混合密码系统(hybrid cryptosystem):将对称密码和公钥密码结合起来的密码方式。
1.4 其他密码技术
密码技术提供的并不仅仅是基于密码的机密性,用于校验消息是否被篡改的完整性、以及用于确认是否是本人的认证等都是密码技术的重要部分。
- 单向散列函数(one-way hash function)
- 散列值(hash):用单向散列函数计算出来的数值
- 又称哈希值、密码校验和(cryptographic checksum)、指纹(fingerprint)、消息摘要(message digest)
- 单向散列函数保证的并不是机密性,而是完整性(integrity)。
- 完整性:“数据是正派的而不是伪造的”
- 消息认证码(message authentication code):作用是确认消息是否来自所期望的通信对象。
- 不仅能够保证完整性,还能提供认证(authentication)机制
- 数字签名(digital signature):一种将现实世界中的签名和盖章移植到数字世界中的技术
- 能够防止伪装(spoofing)、篡改和否认(repudiation)等威胁
- 一种能够确保完整性、提供认证并防止否认的密码技术
- 伪随机数生成器(Pseudo Random Number Generator,PRNG):一种能够模拟产生随机数列的算法。
- 随机数承担着密钥生成的重要职责。
1.5 密码学家的工具箱
- 信息安全所面临的威胁与应对这些威胁的密码技术
1.6 隐写术与数字水印
- 密码:让消息内容变得无法解读
- 隐写术(steganography):隐藏消息本身

- 数字水印:一种将著作权拥有者及购买者的信息嵌入文件中的技术
1.7 密码与信息安全常识
- 不要使用保密的密码算法
- 使用低强度的密码比不进行任何加密更危险
- 任何密码总有一天都会被破解
- 密码只是信息安全的一部分
第2章 历史上的密码
2.1 凯撒密码
- 凯撒密码(Caesar cipher):通过将明文中所使用的字母表按照一定的字数“平移”来进行加密。

-
凯撒密码的加密
-
凯撒密码的解密
-
暴力破解凯撒密码:如果不知道密钥,那么可通过暴力破解来破译