第1章 引言 1
1.1 密码学与密码设备 1
1.2 密码设备攻击 3
1.3 能量分析攻击 5
1.4 能量分析攻击防御对策 10
1.5 小结 11
第2章 密码设备 12
2.1 组成部件 12
2.2 设计与实现 13
2.2.1 设计步骤 14
2.2.2 半定制化设计 15
2.3 逻辑元件 18
2.3.1 逻辑元件类型 18
2.3.2 互补型CMOS 19
2.4 小结 20
第3章 能量消耗 22
3.1 CMOS电路的能量消耗 22
3.1.1 静态能量消耗 23
3.1.2 动态能量消耗 24
3.1.3 毛刺 26
3.2 适用于设计者的能量仿真与能量模型 28
3.2.1 模拟级 28
3.2.2 逻辑级 29
3.2.3 行为级 30
3.2.4 比较 31
3.3 适用于攻击者的能量仿真与能量模型 31
3.3.1 汉明距离模型 32
3.3.2 汉明重量模型 32
3.3.3 其他能量模型 34
3.3.4 比较 35
3.4 能量分析攻击测量配置 35
3.4.1 典型测量配置 35
3.4.2 能量测量电路与电磁探针 37
3.4.3 数字采样示波器 38
3.4.4 测量配置示例 39
3.5 测量配置质量标准 42
3.5.1 电子噪声 43
3.5.2 转换噪声 44
3.6 小结 47
第4章 能量迹的统计特征 49
4.1 能量迹的组成 49
4.2 能量迹单点特征 50
4.2.1 电子噪声 50
4.2.2 数据依赖性 53
4.2.3 操作依赖性 56
4.3 能量迹单点泄漏 56
4.3.1 信号与噪声 56
4.3.2 信噪比 58
4.4 能量迹多点特征 63
4.4.1 相关性 63
4.4.2 多元高斯模型 65
4.5 能量迹压缩 66
4.5.1 能量迹关联点 67
4.5.2 示例 68
4.6 置信区间与假设检验 70
4.6.1 采样分布 70
4.6.2 置信区间 71
4.6.3 μ的置信区间与假设检验 71
4.6.4 μX-μY的置信区间与假设检验 75
4.6.5 ρ的置信区间与假设检验 77
4.6.6 ρ0-ρ1的置信区间与假设检验 78
4.7 小结 79
第5章 简单能量分析 81
5.1 概述 81
5.2 能量迹直观分析 82
5.2.1 软件实现的能量迹直观分析示例 82
5.3 模板攻击 84
5.3.1 概述 85
5.3.2 模板构建 85
5.3.3 模板匹配 87
5.3.4 对MOV指令的模板攻击示例 88
5.3.5 对AES密钥编排的模板攻击示例 90
5.4 碰撞攻击 91
5.4.1 对软件实现的碰撞攻击示例 92
5.5 注记与补充阅读 93
第6章 差分能量分析 97
6.1 概述 97
6.2 基于相关系数的攻击 100
6.2.1 对软件实现的攻击示例 101
6.2.2 对硬件实现的攻击示例 105
6.3 相关系数的计算与仿真 111
6.3.1 软件示例 113
6.3.2 硬件示例 116
6.4 能量迹数量估算 119
6.4.1 经验法则 120
6.4.2 示例 121
6.5 相关系数的替代方法 122
6.5.1 均值差 123
6.5.2 均值距 125
6.5.3 广义极大似然检验 125
6.6 基于模板的DPA攻击 126
6.6.1 概述 127
6.6.2 对软件实现的攻击示例 128
6.7 注记与补充阅读 129
第7章 隐藏技术 135
7.1 概述 135
7.1.1 时间维度 135
7.1.2 振幅维度 136
7.1.3 隐藏技术的实现方法 138
7.2 体系结构级对策 138
7.2.1 软件实现 138
7.2.2 硬件实现 139
7.3 元件级对策 141
7.3.1 DRP逻辑结构概述 141
7.3.2 DRP逻辑结构的恒定能量消耗 143
7.3.3 半定制化设计DRP逻辑结构 144
7.4 DRP逻辑结构示例 146
7.4.1 基于灵敏放大器的DRP逻辑 147
7.4.2 波动差分逻辑 152
7.5 注记与补充阅读 156
第8章 对隐藏技术的攻击 160
8.1 概述 160
8.1.1 时间维度 160
8.1.2 振幅维度 161
8.2 对失调能量迹的DPA攻击 163
8.2.1 失调缘由 163
8.2.2 能量迹对齐 164
8.2.3 能量迹预处理 166
8.2.4 示例 169
8.3 对DRP逻辑的攻击 172
8.3.1 平衡互补性导线 172
8.3.2 非平衡互补性逻辑 174
8.4 注记与补充阅读 175
第9章 掩码技术 178
9.1 概述 178
9.1.1 布尔掩码与算术掩码 179
9.1.2 秘密共享 179
9.1.3 盲化 180
9.1.4 可证明安全性 180
9.2 体系结构级对策 180
9.2.1 软件实现 181
9.2.2 硬件实现 183
9.3 元件级对策 188
9.3.1 掩码型逻辑结构概述 188
9.3.2 半定制化设计与掩码型逻辑结构 190
9.4 掩码型逻辑结构示例 190
9.4.1 掩码型DRPL逻辑结构 190
9.5 注记与补充阅读 193
第10章 对掩码技术的攻击 196
10.1 概述 196
10.1.1 二阶DPA攻击 197
10.2 DPA攻击 198
10.2.1 乘积类掩码技术 198
10.2.2 掩码重用攻击 199
10.2.3 有偏掩码攻击 200
10.3 对软件实现的二阶DPA攻击 200
10.3.1 预处理 200
10.3.2 基于预处理后能量迹的DPA攻击 201
10.3.3 对掩码型AES实现的攻击示例 203
10.3.4 对掩码乱序型AES实现的攻击示例 204
10.4 对软件实现的基于模板的二阶DPA攻击 205
10.4.1 在能量迹预处理前使用模板 206
10.4.2 在能量迹预处理中使用模板 207
10.4.3 在能量迹预处理后使用模板 207
10.5 基于模板的DPA攻击 208
10.5.1 概述 209
10.5.2 对掩码型AES实现的攻击示例 209
10.6 对硬件实现的二阶DPA攻击 210
10.6.1 预处理 211
10.6.2 基于预处理后能量迹的DPA攻击 211
10.6.3 对掩码型S盒实现的攻击示例 212
10.6.4 对MDPL的攻击示例 212
10.7 注记与补充阅读 214
第11章 结论 218
11.1 特定结论 218
11.2 一般性结论 223
参考文献 225
附录A 差分能量分析 250
A.1 背景知识 250
A.2 能量分析简介 251
A.3 防御SPA 253
A.4 对DES实现的差分能量分析 253
A.5 对其他算法实现的差分能量分析 257
A.6 防御DPA 257
A.7 其他相关攻击 258
A.8 结论 258
参考文献 258
附录B 高级加密标准 260
B.1 算法描述 261
B.1.1 AES加密算法的结构 261
B.1.2 轮变换 261
B.1.3 密钥编排 264
B.2 软件实现 265
B.2.1 微控制器 265
B.2.2 AES汇编实现 266
B.3 硬件实现 268
B.3.1 加密核 268
B.3.2 S盒 270
作者索引 271
主题索引 276