本书较为全面地介绍了密码旁路分析的基本原理和方法,以帮助读者系统地掌握典型密码旁路分析的研究现状、数学基础、基本原理、分析方法和应用实例,为深入理解其技术内涵和开展相关领域研究奠定基础。
全书共包括9章和附录。第1章概要介绍密码学的相关知识和密码旁路分析的研究现状。第2章和第3章分别介绍密码旁路分析的数学基础、旁路泄露与旁路分析建模。第4~7章分别阐述计时分析、功耗/电磁分析、Cache分析、差分故障分析4种经典的密码旁路分析原理与方法。第8章和第9章分别描述代数旁路分析、旁路立方体分析两种传统数学分析和经典旁路分析的组合分析方法。附录给出本书涉及的典型密码算法设计规范。
样章试读
目录
- 目录
前言
缩略词表
第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.2 计时信息分析方法 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工作原理 1 12
6.1.2 Cache命中与失效 1 13
6.1.3 命中与失效泄露分析 115
6.1.4 Cache命中与失效采集 1 17
6.2 时序驱动Cache分析 119
6.2.1 基本原理 119
6.2.2 Cache碰撞计时分析方法 1 19
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踪迹驱动攻击实例 1 59
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 平衡Feiste1结构分组密码分析 1 82
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.4.4 实验结果与分析 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