01
“只要解出来,算你了不起”
古典密码:高手过招的智慧博弈
1.1 换种表示:编码 / 004
1.1.1 初的编码:莫尔斯电码 / 006
1.1.2 莫尔斯电码的困境 / 011
1.1.3 波特码与 ASCII 码 / 016
1.1.4 琳琅满目的各国编码标准 / 022
1.1.5 Unicode 与 UTF / 024
1.1.6 Base16、Base32 与 Base64 / 027
1.2 换个位置:移位密码 / 030
1.2.1 移位密码的起源:斯巴达密码棒 / 031
1.2.2 栅栏密码 / 032
1.2.3 带密钥的栅栏移位密码 / 034
1.2.4 其他移位密码 / 036
1.2.5 知乎上的移位密码破解实例 / 038
1.3 换种符号:代换密码 / 041
1.3.1 代换密码的起源:恺撒密码 / 042
1.3.2 简单的代换密码 / 043
1.3.3 复杂的代换密码 / 046
1.3.4 将字母代换成符号 / 049
1.3.5 代换密码的安全性 / 052
1.4 密码吧神帖的破解 / 056
1.4.1 层密码:莫尔斯电码 / 057
1.4.2 第二层密码:手机键盘代换密码 / 057
1.4.3 第三层密码:计算机键盘代换密码 / 058
1.4.4 第四层和第五层密码:格栅密码与字母逆序 / 059
02
“今天有小雨,无特殊情况”:
战争密码:生死攸关的较量
2.1 将古典进行到底:次世界大战中的密码 / 068
2.1.1 齐默尔曼电报 / 068
2.1.2 ADFGX 密码 / 072
2.1.3 ADFGVX 密码 / 074
2.2 维吉尼亚密码:安全密码设计的思路源泉 / 076
2.2.1 维吉尼亚密码的发明史 / 076
2.2.2 维吉尼亚密码的缺陷 / 079
2.2.3 维吉尼亚密码的破解 / 082
2.2.4 《消失》:不能用频率分析法攻击的文本 / 086
2.3 恩尼格玛机:第二次世界大战德军的密码 / 088
2.3.1 恩尼格玛机的核心:转子 / 089
2.3.2 恩尼格玛机的组成和使用方法 / 093
2.3.3 恩尼格玛机的工作原理 / 095
2.3.4 恩尼格玛机的破解方法 / 102
03
“曾爱搭不理,现高攀不起”:
数论基础:密码背后的数学原理
3.1 质数的定义:整数之间的整除关系 / 116
3.1.1 简单的运算:加、减、乘、除 / 117
3.1.2 加、减、乘、除引发的两次数学危机 / 120
3.1.3 质数的定义 / 125
3.1.4 哥德巴赫猜想 / 125
3.2 质数的性质 / 129
3.2.1 质数的分布 / 130
3.2.2 质数螺旋与孪生质数 / 131
3.2.3 质数的判定 / 136
3.2.4 公约数及其应用 / 140
3.3 同余算数及其性质 / 142
3.3.1 同余算数 / 142
3.3.2 模数为 2 的同余算数:计算机的基础 / 143
3.3.3 模数为N 的同余算数:奇妙的互质 / 148
3.3.4 模数为p 的同余算数:规整了很多 / 153
3.3.5 看似简单却又如此困难:整数分解问题与离散对数问题 / 154
3.4 身份证号码中隐藏的数学玄机 / 160
3.4.1 身份证号码的出生日期码扩展 / 160
3.4.2 身份证号码的校验方法 / 162
3.4.3 身份证校验码所蕴含的数学原理 / 168
3.4.4 有关身份证号码的扩展问题 / 170
04
“你说你能破,你行你上呀”:
安全密码:守护数据的科学方法
4.1 “谁来都没用,上帝也不行”:对称密码 / 176
4.1.1 对称密码的基本概念 / 176
4.1.2 避免密钥重复使用的另一种加密构想:滚动密钥 / 179
4.1.3 一次一密:从看似不可破解到可证明不可破解 / 184
4.1.4 完备保密性的缺陷与计算不可区分性 / 189
4.1.5 实现计算不可区分性:DES 与 AES / 191
4.2 “给我保险箱,放好撞上门”:公钥密码 / 194
4.2.1 信件安全传递问题 / 195
4.2.2 狄菲 - 赫尔曼密钥分发协议 / 199
4.2.3 狄菲与赫尔曼的好帮手默克尔 / 205
4.2.4 撞门的保险箱:公钥加密 / 209
4.2.5 RSA 公钥加密方案与盖默尔公钥加密方案 / 210
4.3 “钥匙防调包,本人签个字”:数字签名 / 214
4.3.1 威力十足的中间人攻击 / 214
4.3.2 防止钥匙或保险箱调包的数字签名 / 217
4.3.3 RSA 数字签名方案 / 220
4.4 RSA 的破解之道 / 223
4.4.1 质数选得足够大,合数质因子分解难度并不一定大 / 225
4.4.2 在使用 RSA 时,永远不要使用相同的合数 / 226
4.4.3 公钥和私钥都不能选得特别小 / 227
4.4.4 RSA 中的其他安全问题 / 229
后 记 / 233
^ 收 起