第1章 概述 1
1.1 信息社会和信息安全 1
1.2 随机数的历史 2
1.3 随机数的定义 5
1.3.1 例子 5
1.3.2 定义 8
1.4 随机数发生器的定义 9
1.5 本书的章节安排 11
参考文献 12
第2章 随机数和密码 13
2.1 保密通信 13
2.2 密码技术概述 15
2.2.1 加密技术 15
2.2.2 数字签名 17
2.2.3 密码协议 18
2.2.4 量子密码 19
2.3 理想保密和实际保密 20
2.3.1 理想保密 20
2.3.2 实际保密 22
2.4 密码学中使用随机数的例子 23
2.5 随机性的度量 24
2.5.1 熵的定义 24
2.5.2 熵和RNG 28
参考文献 31
第3章 伪随机数产生器理论 32
3.1 计算复杂性理论 33
3.2 单向函数 34
3.2.1 基本概念 34
3.2.2 单向函数族 37
3.3 伪随机数发生器的定义 38
3.4 伪随机性和不可预测性 43
3.5 伪随机数发生器的构造 45
3.5.1 基于单个单向置换构造 45
3.5.2 基于单向置换族构造 47
3.5.3 BBS发生器 48
3.6 伪随机发生器的应用 51
3.6.1 伪随机函数 51
3.6.2 伪随机置换 55
参考文献 57
第4章 实际的伪随机数发生器 58
4.1 设计原理 58
4.1.1 伪随机数发生器的一般框架 58
4.1.2 伪随机数发生器的设计需求 59
4.2 线性反馈移位寄存器 61
4.2.1 构成 61
4.2.2 周期性 62
4.2.3 m-序列的统计特性 63
4.2.4 B-M算法 65
4.3 基于分组密码算法构造PRNG 66
4.3.1 基于OFB工作模式构造 66
4.3.2 基于CTR工作模式构造 67
4.3.3 AES 71
4.3.4 SMS4 81
4.3.5 KASUMI 84
4.4 基于序列密码的伪随机数发生器 90
4.4.1 序列密码 90
4.4.2 ZUC 91
4.4.3 Enocoro-128 97
4.4.4 MUGI 101
4.4.5 Rabbit 105
4.4.6 KCipher-2 108
4.5 Yarrow 113
4.5.1 组成 113
4.5.2 状态空间 114
4.5.3 转换函数 115
4.5.4 输出函数 117
4.5.5 安全性 117
4.6 伪随机数发生器标准 117
4.6.1 ANSI X9.17伪随机比特发生器 117
4.6.2 FIPS 186中的伪随机比特发生器 118
4.6.3 SP800-90 119
4.6.4 基于分组算法的PRNG 131
4.6.5 基于数论问题的PRNG 137
参考文献 141
第5章 真随机数发生器 142
5.1 设计原理 142
5.1.1 安全性质 142
5.1.2 真随机数发生器组成 145
5.1.3 熵源 146
5.2 评估方法 157
5.2.1 连续性测试 157
5.2.2 IID测试 160
5.2.3 估计IID源的最小熵 166
5.2.4 估计非IID源的最小熵 167
5.3 一些常见的真随机数发生器 172
5.3.1 /dev/random 172
5.3.2 Intel随机数发生器 179
参考文献 180
第6章 量子随机数发生器 182
6.1 概述 182
6.2 量子真随机数发生器 182
6.2.1 离散变量量子随机数发生器 183
6.2.2 连续变量量子随机数发生器 186
6.3 量子真随机数发生器设计方法 190
6.3.1 量子随机源的选取 190
6.3.2 探测采样 192
6.4 一个连续变量QRNG设计方案 194
6.4.1 现有量子随机数发生器的技术局限 194
6.4.2 量子噪声源——超辐射发光二极管 195
6.4.3 基于放大自发辐射的量子随机数发生器实验方案 195
6.4.4 数据后处理 196
6.4.5 统计检验 201
6.5 总结 202
参考文献 202
第7章 随机性的统计检验 203
7.1 随机性统计检验原理与方法 203
7.1.1 概率统计基础——几种概率分布 203
7.1.2 统计检验方法 205
7.2 几种常用的随机性统计测试包 208
7.2.1 五项基本随机性测试 208
7.2.2 ENT随机性测试 210
7.2.3 Diehard随机性测试 213
7.2.4 NIST的16项随机性测试 215
7.2.5 我国商用密码随机性检测规范 225
7.3 分组密码算法的随机性检测 227
7.3.1 密文的局部随机性检测 227
7.3.2 基于二项分布的随机性检测项目 228
7.3.3 明文-密文严格雪崩效应测试 230
7.3.4 密钥编排算法的随机性检验 231
7.4 序列密码算法的随机性检测 233
7.4.1 密钥流的局部随机性检测 233
7.4.2 种子密钥的扩散性检测 233
7.5 杂凑函数的随机性检测 233
7.5.1 摘要流的局部随机性检测 233
7.5.2 消息的扩散性检测 234
7.5.3 密钥的扩散性检测 234
参考文献 234
第8章 随机数发生器的分析方法 236
8.1 攻击分类 236
8.2 分析微软Windows操作系统的随机数发生器 241
8.2.1 WRNG的描述 241
8.2.2 密码分析 245
8.3 Dual_EC_PRNG的陷门 246
参考文献 247