《程序员密码学》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(加)TOM ST DENIS (英)SIMON JOHNSON著;沈晓斌译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2007
  • ISBN:9787111216605
  • 页数:328 页
图书介绍:本书介绍程序员在开发中需要的密码学知识。引导软件开发人员在其开发过程中如何去解决各种密码学相关的问题。

第1章 概述 1

1.1 简介 1

1.2 威胁模型 2

1.3 什么是密码学 3

1.3.1 密码学的目标 3

1.4 资产管理 7

1.4.1 保密性和认证 8

1.4.2 数据的生命周期 8

1.5 常识 9

1.6 开发工具 10

1.7 总结 11

1.8 本书的组织结构 11

1.9 常见问题 13

第2章 ASN.1编码 14

2.1 ASN.1概述 14

2.2 ASN.1语法 15

2.2.1 ASN.1显式值 15

2.2.2 ASN.1容器 16

2.2.3 ASN.1修改器 17

2.3 ASN.1数据类型 19

2.3.1 ASN.1头字节 19

2.3.2 ASN.1长度编码 21

2.3.3 ASN.1布尔类型 22

2.3.4 ASN.1整数类型 22

2.3.5 ASN.1位串类型 23

2.3.6 ASN.1八位位组串类型 24

2.3.7 ASN.1空类型 24

2.3.8 ASN.1对象标识符类型 24

2.3.9 ASN.1序列和集合类型 25

2.3.10 ASN.1可打印字符串和IA5String类型 28

2.3.11 ASN.1世界协调时类型 28

2.4 实现 29

2.4.1 ASN.1长度程序 29

2.4.2 ASN.1原始编码器 32

2.5 总结 65

2.5.1 创建链表 65

2.5.2 解码链表 68

2.5.3 Flexi链表 69

2.5.4 其他提供者 70

2.6 常见问题 70

第3章 随机数生成 72

3.1 简介 72

3.2 熵的度量 74

3.2.1 位计数 75

3.2.2 字计数 75

3.2.3 间隙计数 75

3.2.4 自相关测试 75

3.3 它能有多糟 77

3.4 RNG设计 78

3.4.1 RNG事件 78

3.4.2 RNG数据收集 82

3.4.3 RNG处理和输出 85

3.4.4 RNG估算 89

3.4.5 RNG的设置 91

3.5 PRNG算法 92

3.5.1 PRNG的设计 92

3.5.2 PRNG的攻击 93

3.5.3 Yarrow PRNG 94

3.5.4 Fortuna PRNG 96

3.5.5 NIST的基于散列的DRBG 100

3.6 总结 104

3.6.1 RNG与PRNG 104

3.6.2 PRNG的使用 105

3.6.3 示例平台 105

3.7 常见问题 107

第4章 高级加密标准 109

4.1 简介 109

4.1.1 分组密码 110

4.1.2 AES的设计 111

4.2 实现 121

4.2.1 一个8位的实现 122

4.2.2 优化的8位实现 127

4.2.3 优化的32位实现 129

4.3 实用的攻击 143

4.3.1 侧信道 144

4.3.2 处理器缓存 144

4.3.3 Bernstein攻击 145

4.3.4 Osvik攻击 146

4.3.5 挫败侧信道 146

4.4 链接模式 147

4.4.1 密码分组链接 148

4.4.2 计数器模式 151

4.4.3 选择一个链接模式 153

4.5 总结 153

4.5.1 荒诞的说法 156

4.5.2 提供者 157

4.6 常见问题 158

第5章 散列函数 161

5.1 简介 161

5.1.1 散列摘要长度 162

5.2 SHS的设计与实现 164

5.2.1 MD强化 165

5.2.2 SHA-1的设计 165

5.2.3 SHA-256的设计 173

5.2.4 SHA-512的设计 180

5.2.5 SHA-224的设计 186

5.2.6 SHA-384的设计 187

5.2.7 零复制散列 188

5.3 PKCS#5密钥衍生 189

5.4 总结 191

5.4.1 散列算法可以做哪些事 191

5.4.2 散列算法不能用来做哪些事 192

5.4.3 和口令一起工作 194

5.4.4 性能上的考虑 196

5.4.5 PKCS#5的例子 197

5.5 常见问题 199

第6章 消息认证码算法 202

6.1 简介 202

6.2 安全准则 203

6.2.1 MAC密钥的寿命 204

6.3 标准 204

6.4 分组消息认证码 204

6.4.1 CMAC的安全性 206

6.4.2 CMAC的设计 207

6.5 散列消息认证码 215

6.5.1 HMAC的设计 216

6.5.2 HMAC的实现 217

6.6 总结 222

6.6.1 MAC函数可以做哪些事 222

6.6.2 MAC函数不能用来做哪些事 224

6.6.3 CMAC与HMAC 224

6.6.4 重放保护 225

6.6.5 先加密再MAC 226

6.6.6 加密和认证 227

6.7 常见问题 236

第7章 加密和认证模式 239

7.1 简介 239

7.1.1 加密和认证模式 239

7.1.2 安全目标 240

7.1.3 标准 240

7.2 设计与实现 240

7.2.1 额外的认证数据 240

7.2.2 GCM的设计 241

7.2.3 GCM的实现 244

7.2.4 GCM的优化 262

7.2.5 CCM的设计 264

7.2.6 CCM的实现 265

7.3 总结 274

7.3.1 这些模式可以用来做哪些事 275

7.3.2 选择一个Nonce 275

7.3.3 额外的认证数据 276

7.3.4 MAC标记数据 276

7.3.5 构造举例 277

7.4 常见问题 281

第8章 大整数算术 283

8.1 简介 283

8.2 什么是BigNum 283

8.3 算法 284

8.3.1 表示 284

8.3.2 乘法 285

8.3.3 平方 293

8.3.4 Montgomery约简 299

8.4 总结 303

8.4.1 核心算法 303

8.4.2 大小与速度 304

8.4.3 BigNum库的性能 304

8.4.4 TomsFastMath算法库 305

8.5 常见问题 306

第9章 公钥算法 307

9.1 简介 307

9.2 钥密码的目标 308

9.2.1 保密性 308

9.2.2 不可否认和真实性 308

9.3 RSA公钥密码 309

9.3.1 RSA简述 309

9.3.2 PKCS#1 310

9.3.3 RSA的安全 314

9.3.4 RSA参考资料 315

9.4 椭圆曲线密码学 316

9.4.1 什么是椭圆曲线 316

9.4.2 椭圆曲线代数 317

9.4.3 椭圆曲线加密系统 318

9.4.4 椭圆曲线的性能 323

9.5 总结 324

9.5.1 ECC与RSA 324

9.5.2 标准 326

9.5.3 参考资料 326

9.6 常见问题 327