第1章 密码学及其应用概述 1 1.1 安全通信 1 1.1.1 可能的攻击 2 1.1.2 对称和公钥算法 3 1.1.3 密钥长度 4 1.2 密码学应用 5 第2章 传统密码系统 7 2.1 移位密码 7 2.2 仿射密码 8 2.3 维吉内尔密码 9 2.3.1 算出密钥长度 11 2.3.2 算出密钥的第一种方法 11 2.3.3 算出密钥的第二种方法 13 2.4 替换密码 14 2.5 夏洛克·福尔摩斯 16 2.6 Playfair和ADFGX密码 18 2.7 分组密码 20 2.8 二进制数和ASCII码 23 2.9 一次一密 24 2.10 伪随机序列的生成 25 2.11 线性反馈移位寄存序列 26 2.12 Enigma密码机 30 习题 33 上机练习 35 第3章 基本数论 38 3.1 基本概念 38 3.1.1 整除性 38 3.1.2 素数 38 3.1.3 最大公因子 39 3.2 求解ax+by=d 41 3.3 同余式 42 3.3.1 除法 43 3.3.2 使用分式 45 3.4 中国剩余定理 45 3.5 模指数 47 3.6 费马小定理和欧拉定理 48 3.7 本原根 50 3.8 矩阵模n取逆 51 3.9 模n平方根 52 3.10 勒让德和雅可比符号 53 3.11 有限域 57 3.11.1 除法 59 3.11.2 GF(28) 60 3.11.3 线性移位寄存器序列 61 3.12 连分数 62 习题 64 上机练习 68 第4章 数据加密标准 69 4.1 引言 69 4.2 DES算法的简化版 69 4.3 差分密码分析 72 4.3.1 3轮的差分密码分析 72 4.3.2 4轮的差分密码分析 73 4.4 DES 75 4.5 工作模式 80 4.5.1 电子密码本 80 4.5.2 密码分组链接 80 4.5.3 密码反馈 814.5.4 输出反馈 83 4.5.5 计数器 84 4.6 破解DES 85 4.7 中间相遇攻击 87 4.8 口令安全 88 习题 89 上机练习 90 第5章 高级加密标准:Rijndael 91 5.1 基本算法 91 5.2 层的描述 92 5.2.1 ByteSub变换 93 5.2.2 ShiftRow变换 93 5.2.3 MixColumn变换 93 5.2.4 AddRoundKey变换 94 5.2.5 密钥扩展方案 94 5.2.6 S盒的构成 94 5.3 解密算法 95 5.4 设计中的考虑 97 习题 97 第6章 RSA算法 99 6.1 RSA算法 99 6.2 对RSA的攻击 102 6.2.1 低指数攻击 102 6.2.2 短明文 104 6.2.3 时间攻击 105 6.3 素性判定 106 6.4 因子分解 109 6.4.1 二次筛法 110 6.4.2 理论方法 112 6.5 RSA挑战 112 6.6 协约验证上的应用 113 6.7 公钥概念 114 习题 115 上机练习 118 第7章 离散对数 120 7.1 离散对数 120 7.2 计算离散对数 120 7.2.1 Pohlig-Hellman算法 121 7.2.2 大步骤,小步骤 123 7.2.3 指标计算 123 7.2.4 计算模4的离散对数 124 7.3 位提交 125 7.4 Diffie-Hellman 密钥交换 126 7.5 ElGamal公钥密码系统 127 习题 128 上机练习 129 第8章 散列函数 130 8.1 散列函数 130 8.2 简单的散列函数示例 132 8.3 SHA散列算法 133 8.4 生日攻击 136 8.5 多重碰撞 138 8.6 随机预示模型 139 8.7 用散列函数加密 141 习题 142 上机练习 143 第9章 数字签名 1459.1 RSA签名方案 145 9.2 ElGamal签名方案 146 9.3 散列和签名 148 9.4 对签名的生日攻击 148 9.5 数字签名算法 148 习题 150 上机练习 151 第10章 安全协议 152 10.1 中间人攻击和冒名顶替者 152 10.2 密钥分配 154 10.2.1 密钥的事先分配 154 10.2.2 可鉴别的密钥分配 155 10.3 Kerberos协议 158 10.4 PKI 160 10.5 X.509证书 161 10.6 PGP协议 164 10.7 SSL和TLS协议 165 10.8 SET协议 167 习题 168 第11章 数字现金 170 11.1 数字现金 170 11.1.1 参与者 171 11.1.2 初始化 171 11.1.3 银行 171 11.1.4 消费者 171 11.1.5 商家 171 11.1.6 创建货币 171 11.1.7 消费货币 172 11.1.8 商家在银行存款 172 11.1.9 欺骗控制 173 11.1.10 匿名性 173 习题 174 第12章 秘密分享方案 175 12.1 秘密分拆 175 12.2 阈方案 175 习题 179 上机练习 180 第13章 游戏 181 13.1 通过电话抛硬币 181 13.2 通过电话玩牌 182 习题 185 第14章 零知识技术 187 14.1 基本建构 187 14.2 Feige-Fiat-Shamir认证方案 188 习题 190 第15章 信息论 192 15.1 概率论回顾 192 15.2 熵 193 15.3 赫夫曼编码 196 15.4 完全保密 198 15.5 英语的熵 199 习题 203 第16章 椭圆曲线 205 16.1 加法运算 205 16.2 模p椭圆曲线 208 16.2.1 模p椭圆曲线上点的个数 209 16.2.2 椭圆曲线上的离散对数 210 16.2.3 表示明文 210 16.3 用椭圆曲线因式分解 211 16.4 特征为2的椭圆曲线 213 16.5 椭圆曲线密码系统 215 16.5.1 椭圆曲线ElGamal密码系统 215 16.5.2 椭圆曲线Diffie-Hellman密钥交换 216 16.5.3 椭圆曲线ElGamal数字签名 216 16.6 基于标识的加密 217 习题 219 上机练习 222 第17章 格方法 223 17.1 格 223 17.2 格归约 224 17.2.1 二维格 224 17.2.2 LLL 算法 226 17.3 对RSA算法的攻击 227 17.4 NTRU系统 229 习题 232 第18章 纠错码 233 18.1 引言 233 18.2 纠错码 237 18.3 一般码的界 239 18.3.1 上界 239 18.3.2 下界 241 18.4 线性码 243 18.5 汉明码 247 18.6 格雷码 248 18.7 循环码 253 18.8 BCH码 257 18.9 瑞德-所罗门码 262 18.10 McEliece密码系统 263 18.11 其他问题 265 习题 265 上机练习 267 第19章 密码学中的量子技术 268 19.1 量子实验 268 19.2 量子密钥分发 270 19.3 Shor的算法 271 19.3.1 分解 272 19.3.2 离散傅里叶变换 272 19.3.3 Shor的算法 274 19.3.4 结语 277 习题 278 附录A 附录B 附录C 推荐阅读 297 参考文献 298 索引 301 |