第1章 绪论 1
1.1密码学基础 2
1.1.1密码编码学 2
1.1.2传统密码分析学 5
1.2密码旁路分析概述 8
1.2.1发展历程 9
1.2.2基本原理 12
1.2.3发展动因 13
1.2.4方法分类 15
1.2.5威胁分析 16
1.2.6研究热点 18
1.3本书的章节安排 19
第2章 数学基础 21
2.1代数学 21
2.1.1数论 21
2.1.2代数 22
2.2信息论 25
2.2.1信息和熵 25
2.2.2互信息 26
2.3计算复杂性 27
2.3.1算法与问题 27
2.3.2算法的计算复杂性 28
2.3.3问题的计算复杂性 28
2.4概率论 29
2.4.1事件与概率 29
2.4.2期望与方差 30
2.4.3概率分布 31
2.4.4中心极限定理 32
2.5数理统计 32
2.5.1参数估计 32
2.5.2假设检验 33
2.6注记与补充阅读 34
第3章 旁路泄露与旁路分析建模 35
3.1密码算法设计与实现 35
3.1.1密码设计 35
3.1.2密码实现 37
3.2旁路泄露 40
3.2.1泄露特性 40
3.2.2泄露分类 41
3.2.3泄露模型 42
3.3泄露分析策略 43
3.4旁路分析建模 44
3.4.1术语与定义 44
3.4.2分析框架 46
3.4.3分析模型 47
3.4.4评估模型 49
3.5注记与补充阅读 51
第4章 计时分析 52
4.1时间泄露 52
4.1.1泄露来源 52
4.1.2采集方法 53
4.1.3预处理方法 55
4.2计时分析原理 55
4.3模幂运算计时分析 56
4.3.1模幂运算时间差异 56
4.3.2计时信息分析方法 58
4.3.3 RSA计时攻击实例 66
4.4乘法运算计时分析 71
4.4.1乘法运算时间差异 71
4.4.3 AES计时攻击实例 71
4.5注记与补充阅读 74
第5章 功耗/电磁分析 76
5.1功耗/电磁泄露 77
5.1.1泄露机理 77
5.1.2泄露采集 81
5.1.3泄露模型 83
5.1.4统计特性 85
5.2旁路信号预处理方法 87
5.2.1信号对齐方法 87
5.2.2有效点选取方法 89
5.3基于功耗/电磁旁路信号的密钥恢复问题描述 93
5.4简单分析 93
5.4.1简单功耗分析方法 93
5.4.2 RSA简单分析攻击实例 94
5.5相关性分析 95
5.5.1相关性分析方法 96
5.5.2相关性系数计算方法 97
5.5.3 DES相关性分析攻击实例 98
5.6模板分析 101
5.6.1模板分析方法 101
5.6.2常用判别分析方法 103
5.6.3 RC4模板分析攻击实例 105
5.7注记与补充阅读 109
第6章 Cache分析 111
6.1 Cache访问泄露 112
6.1.1 Cache工作原理 112
6.1.2 Cache命中与失效 113
6.1.3命中与失效泄露分析 115
6.1.4 Cache命中与失效采集 117
6.2时序驱动Cache分析 119
6.2.1基本原理 119
6.2.2 Cache碰撞计时分析方法 119
6.2.3 Cache计时模板分析方法 120
6.2.4 AES时序驱动攻击实例 125
6.3访问驱动Cache分析 138
6.3.1基本原理 138
6.3.2查找表在Cache中分布分析 139
6.3.3查找表在Cache中地址定位方法 141
6.3.4 Cache访问地址分析方法 142
6.3.5 AES访问驱动攻击实例 145
6.4踪迹驱动Cache分析 151
6.4.1基本原理 151
6.4.2基于Cache命中与失效踪迹的分组密码密钥分析方法 153
6.4.3基于平方和乘法踪迹的公钥密码幂指数分析方法 153
6.4.4 AES踪迹驱动攻击实例 157
6.4.5 RSA踪迹驱动攻击实例 159
6.5注记与补充阅读 162
第7章 差分故障分析 164
7.1密码运行故障 164
7.1.1故障注入 164
7.1.2故障模型 167
7.2故障分析原理 169
7.3通用的差分故障分析方法 170
7.4分组密码差分故障分析方法与攻击实例 171
7.4.1按块扩散SPN结构分组密码分析 171
7.4.2按位扩散SPN结构分组密码分析 176
7.4.3平衡Feistel结构分组密码分析 182
7.5公钥密码差分故障分析方法与攻击实例 190
7.5.1基于操作步骤故障的RSA密码分析 190
7.5.2基于参数故障的RSA密码分析 194
7.5.3基于乘法器故障的RSA密码分析 197
7.5.4基于符号变换故障的ECC密码分析 201
7.6注记与补充阅读 204
第8章 代数旁路分析 205
8.1基本原理 206
8.1.1代数分析 206
8.1.2代数旁路分析原理 208
8.2多推断代数旁路分析方法 209
8.2.1问题提出 209
8.2.2符号与定义 209
8.2.3多推断代数旁路分析 210
8.2.4开销分析 211
8.2.5适用性分析 211
8.3 AES汉明重量代数功耗攻击实例 214
8.3.1汉明重量推断与表示 214
8.3.2数据复杂度评估方法 215
8.3.3实验结果与分析 216
8.4 AES访问驱动代数Cache攻击实例 217
8.4.1两种泄露模型 217
8.4.2密码访问Cache地址推断与表示 218
8.4.3数据复杂度评估方法 219
8.44实验结果与分析 220
8.5 AES踪迹驱动代数Cache攻击实例 220
8.5.1密码Cache访问事件序列推断与表示 220
8.5.2数据复杂度评估方法 222
8.5.3实验结果与分析 223
8.6多种密码代数故障攻击实例 224
8.6.1故障方程构建方法 225
8.6.2密码攻击实例 227
8.6.3其他应用 242
8.7注记与补充阅读 247
第9章 旁路立方体分析 248
9.1基本原理 249
9.1.1立方体分析 249
9.1.2旁路立方体分析 250
9.2扩展的旁路立方体分析方法 252
9.2.1非线性旁路立方体分析 252
9.2.2分而治之旁路立方体分析 253
9.2.3迭代旁路立方体分析 254
9.2.4黑盒旁路立方体分析 254
9.3密码旁路立方体攻击实例 255
9.3.1单比特泄露模型分析 255
9.3.2汉明重量泄露模型分析 262
9.3.3汉明重量泄露模型攻击实验 268
9.4注记与补充阅读 277
附录 278
附录A RSA公钥密码算法设计 278
附录B ECC公钥密码算法设计 279
附录C AES分组密码算法设计 280
附录D DES分组密码算法设计 280
附录E Camellia分组密码算法设计 282
附录F PRESENT分组密码算法设计 282
附录G EPCBC分组密码算法设计 283
附录H LED分组密码算法设计 283
附录I Piccolo分组密码算法设计 284
附录J GOST分组密码算法设计 284
附录K RC4序列密码算法设计 285
附录L Helix序列密码算法设计 286
参考文献 289
索引 311