第一章 绪论 1
1.1 密码学 1
1.2 数据安全 3
1.3 密码体制 6
1.3.1 公开密码体制 9
1.3.2 数字签名 11
1.4 信息论 13
1.4.1 熵与暧昧度 14
1.4.2 完全保密 18
1.4.3 唯一解距 20
1.5 复杂性理论 24
1.5.1 算法复杂性 24
1.5.2 复杂性与NP——完全问题 26
1.5.3 基于计算难解问题上的密码 28
1.6 数论 29
1.6.1 同余式与模运算 29
1.6.2 逆元素的计算 32
1.6.3 伽罗瓦(Galols)域内的计算 40
习题 44
第二章 加密算法 47
2.1 换位密码 47
2.2 简单代替密码 49
2.2.1 单字母频率分析 52
2.3 多名码代替密码 56
2.3.1 Beale密码 57
2.3.2 高阶多名码 58
2.4 多表代替密码 59
2.4.1 Vigenere和Beaufort密表 60
2.4.2 重合指数 62
2.4.3 Kasiski法 64
2.4.4 滚动密钥密码 66
2.4.5 园盘密码与哈格林(Hagelin)密码机 67
2.4.6 Vernam密码与一次一密 68
2.5 多码代替密码 69
2.5.1 Playfair密码 69
2.5.2 Hill密码 70
2.6 乘积密码 71
2.6.1 代替—置换密码 72
2.6.2 数据加密标准(DES) 72
2.6.3 时间—存贮权衡法 79
2.7 指数密码 81
2.7.1 Pohling-Hellman体制 83
2.7.2 Rivest-Shamlr-Adleman(RSA)体制 84
2.7.3 智力扑克 89
2.7.4 不经意传输 93
2.8 背包密码 95
2.8.1 Merkle-Hellman背包体制 95
2.8.2 Graham-Shamir背包体制 99
2.8.3 Shamir仅用于签名的背包体制 100
2.8.4 一个可破的NP-完全背包体制 102
习题 104
第三章 密码技术 107
3.1 分组(块)密码与序列(流)密码 107
3.2 同步流密码 110
3.2.1 线性反馈移位寄存器 110
3.2.2 输出—块反馈方式 113
3.2.3 计数器方法 114
3.3 自同步(流)密码 115
3.3.1 自动密钥密码 116
3.3.2 密码反馈方式 116
3.4 分组(块)密码 117
3.4.1 分组链接与密码分组链接 119
3.4.2 带子密钥的分组(块)密码 121
3.5 端点的加密 123
3.5.1 端对端与链路的加密 124
3.5.2 保密同态 126
3.6 单向密码 129
3.6.1 口令和用户鉴别 130
3.7 密钥管理 132
3.7.1 保密密钥 132
3.7.2 公开密钥 136
3.7.3 分组(块)加密密钥的生成 138
3.7.4 会话密钥的分配 139
3.8 限值方案 144
3.8.1 Lagrange插值多项式方案 144
3.8.2 同余类方案 147
习题 149
第四章 存取控制 152
4.1 存取矩阵模型 152
4.1.1 保护状态 152
4.1.2 状态转移 154
4.1.3 保护策略 159
4.2 存取控制机构 160
4.2.1 安全性与精确性 160
4.2.2 可靠性与共享 161
4.2.3 设计原则 164
4.3 存取层次 165
4.3.1 特权状态 165
4.3.2 嵌套程序单元 166
4.4 授权表 166
4.4.1 有主的对象 167
4.4.2 撤消 169
4.5 权力 172
4.5.1 入口点受到保护的转换域 173
4.5.2 抽象数据模型 174
4.5.3 基于权力的寻址 178
4.5.4 权限的撤消 180
4.5.5 锁和钥匙 181
4.5.6 询问约束 182
4.6 可验证的安全系统 183
4.6.1 安全核心 184
4.6.2 抽象层次 186
4.6.3 验证 187
4.7 可靠系统的理论 190
4.7.1 单一操作系统 191
4.7.2 一般系统 192
4.7.3 一般系统上的定理 195
4.7.4 占用——转让系统 197
习题 205
第五章 信息流控制 207
5.1 信息流的格阵模型 207
5.1.1 信息流策略 207
5.1.2 信息的状态 208
5.1.3 状态转换和信息流 208
5.1.4 格阵结构 213
5.1.5 格阵的流动特性 216
5.2 流控制机制 217
5.2.1 安全性和完备性 217
5.2.2 流动通道 219
5.3 基于执行的机制 220
5.3.1 暗流安全性的动态实现 220
5.3.2 安全流的存取控制 223
5.3.3 数据标志机 224
5.3.4 单累加器机 226
5.4 基于编译程序的机制 228
5.4.1 流的描述 228
5.4.2 安全性要求 229
5.4.3 语义证明 232
5.4.4 一般的数据及控制结构 233
5.4.5 并发与同步 235
5.4.6 非正常终止 237
5.5 程序证明 239
5.5.1 赋值语句 240
5.5.2 复合语句 241
5.5.3 交替语句 242
5.5.4 迭代语句 244
5.5.5 过程调用语句 244
5.5.6 安全性 247
5.6 实际运用中的流控制 249
5.6.1 系统证明 249
5.6.2 扩展 251
5.6.3 一种保护装置的应用 252
习题 254
第六章 推理控制 258
6.1 统计数据库模型 258
6.1.1 信息状态 258
6.1.2 统计数据类型 260
6.1.3 敏感统计数据的泄露 262
6.1.4 完全保密及保护 264
6.1.5 泄漏的复杂性 265
6.2 推理控制技术 265
6.2.1 安全性和完备性 265
6.2.2 公布的方法 266
6.3 攻击方法 268
6.3.1 大小查询集攻击 268
6.3.2 跟踪器攻击 269
6.3.3 线性系统攻击 275
6.3.4 中值攻击 279
6.3.5 插入和删除攻击 280
6.4 限制统计的技巧 281
6.4.1 单元隐匿 282
6.4.2 蕴含查询 286
6.4.3 分割 290
6.5 加入干扰的技术 292
6.5.1 回答扰乱(取整) 292
6.5.2 随机抽样询问 294
6.5.3 数据扰乱 299
6.5.4 数据交换 302
6.5.5 随机回答(询问) 304
6.6 归结 306
习题 306