作为目前应用最广泛的侧信道分析方法,功耗侧信道分析对密码装置构成严重威胁。本书系统介绍功耗侧信道分析原理、方法。首先,从CMOS电路物理特性出发,介绍晶体管开关活动与功耗泄漏的量化模型,系统阐述密码装置泄漏机理与攻击原理。其次,详解功耗信号预处理技术,深入介绍传统差分功耗分析、深度学习新型攻击、碰撞攻击等多密钥分析技术。再次,深度剖析掩码方案设计原理与隐藏防护技术。最后,详细介绍功耗侧信道安全评估体系。全书配备实证数据集,形成技术闭环。
样章试读
目录
- 目录
“密码理论与技术丛书”序
前言
主要符号表
第一部分 基础知识
第1章 绪论 3
1.1 经典密码分析 3
1.1.1 穷举攻击 4
1.1.2 统计分析法 4
1.1.3 数学分析法 4
1.2 侧信道分析 5
1.2.1 密码装置信息泄漏 5
1.2.2 攻击流程 5
1.2.3 发展历程 6
1.2.4 攻击分类 7
1.3 功耗侧信道分析 8
1.3.1 预处理技术 9
1.3.2 攻击方法 9
1.3.3 测评技术 11
1.3.4 防护技术 12
1.4 本书组织结构 13
1.5 本章小结 13
参考文献 14
第2章 密码算法与密码装置 20
2.1 密码系统 20
2.1.1 密码系统的组成部分 20
2.1.2 密码系统的分类 21
2.2 常见对称密码算法 22
2.2.1 DES 22
2.2.2 3DES 24
2.2.3 AES 25
2.3 常见公钥密码算法 29
2.3.1 RSA 29
2.3.2 ElGamal 31
2.3.3 ECC 32
2.4 密码装置 33
2.4.1 定义 33
2.4.2 组成部件 33
2.4.3 常见密码装置 34
2.5 本章小结 35
参考文献 35
第二部分 泄漏采样、刻画与预处理
第3章 功耗泄漏与采集 39
3.1 芯片CMOS结构与特点 39
3.1.1 逻辑电路 39
3.1.2 CMOS电路 39
3.1.3 CMOS反相器 40
3.2 功耗泄漏 41
3.2.1 静态功耗 41
3.2.2 动态功耗 42
3.3 功耗泄漏特性 43
3.3.1 功耗的数据依赖性 43
3.3.2 功耗的操作依赖性 43
3.3.3 功耗的装置依赖性 44
3.3.4 功耗的泄漏采集依赖性 44
3.4 功耗泄漏采样 44
3.4.1 采样平台 44
3.4.2 采样方法示例 45
3.4.3 触发器 46
3.5 功耗数据集 46
3.5.1 DPA Contest v4 46
3.5.2 AT89S52-AES数据集 47
3.5.3 ATMega328p-AES数据集 48
3.5.4 ASCAD数据集 48
3.6 本章小结 49
参考文献 49
第4章 泄漏特征与模型刻画 51
4.1 功耗迹组成 51
4.2 功耗迹单点泄漏特征 51
4.2.1 单点泄漏成分分析 51
4.2.2 噪声 52
4.2.3 数据依赖性 54
4.2.4 操作依赖性 56
4.2.5 信噪比 56
4.2.6 归一化类间方差 59
4.3 功耗迹多点泄漏特征分析 60
4.3.1 协方差分析 60
4.3.2 相关性分析 61
4.4 泄漏模型 62
4.4.1 泄漏模型的重要性 62
4.4.2 汉明重量模型 62
4.4.3 汉明距离模型 62
4.4.4 比特模型 64
4.4.5 多元高斯模型 64
4.5 本章小结 65
参考文献 66
第5章 泄漏预处理技术 67
5.1 功耗迹对齐 67
5.1.1 示波器波形自动对齐 67
5.1.2 模式匹配 67
5.1.3 时频分析 68
5.1.4 弹性对齐 71
5.2 降噪 71
5.2.1 均值法 71
5.2.2 滤波法 72
5.2.3 功耗迹选择优法 72
5.3 压缩 75
5.3.1 功耗迹信息冗余 75
5.3.2 功耗迹压缩 75
5.4 降维 76
5.4.1 主成分分析 76
5.4.2 线性判别分析 78
5.4.3 独立成分分析 80
5.5 兴趣点选择 81
5.5.1 兴趣点定义 81
5.5.2 基于累计均值差的兴趣点选择 81
5.6 本章小结 82
参考文献 82
第三部分 泄漏分析与区分器
第6章 功耗侧信道区分器及其分类 87
6.1 区分器的基本概念 87
6.1.1 分类器 87
6.1.2 区分器原理 87
6.2 区分器分类与依据 88
6.2.1 目标子密钥数量 88
6.2.2 模型刻画依赖 88
6.2.3 操作依赖和数据依赖 91
6.2.4 目标样本维度 91
6.3 本章小结 92
参考文献 92
第7章 计时攻击与简单功耗分析 94
7.1 密码算法实现的操作依赖性 94
7.2 计时分析 94
7.2.1 计时分析原理 95
7.2.2 ECC计时分析实例 96
7.3 简单功耗分析 97
7.3.1 简单功耗分析原理 97
7.3.2 RSA简单功耗分析攻击实例 97
7.3.3 ECC简单功耗分析攻击实例 99
7.4 本章小结 99
参考文献 99
第8章 经典分而治之区分器 101
8.1 非刻画类区分器 101
8.1.1 差分功耗分析 101
8.1.2 相关功耗分析 104
8.1.3 互信息分析 107
8.2 刻画类区分器 112
8.2.1 模板攻击 112
8.2.2 随机攻击 116
8.3 本章小结 118
参考文献 118
第9章 深度学习分而治之区分器 119
9.1 多层感知机 119
9.1.1 MLP结构与原理 119
9.1.2 MLP训练 121
9.1.3 MLP特点 122
9.2 卷积神经网络 123
9.2.1 卷积神经网络结构 123
9.2.2 卷积神经网络区分器构建 124
9.2.3 卷积神经网络区分器攻击实例 125
9.3 Transformer 125
9.3.1 Transformer神经网络结构 126
9.3.2 Transformer功耗侧信道攻击实例 128
9.4 自动编码器 130
9.4.1 自动编码器基本原理 130
9.4.2 自动编码器特点 132
9.4.3 自动编码器攻击实例 132
9.5 GAN功耗迹样本生成 134
9.5.1 GAN原理 134
9.5.2 GAN在功耗迹样本生成上的应用 135
9.5.3 攻击实例 136
9.6 本章小结 138
参考文献 139
第10章 侧信道碰撞攻击 141
10.1 多密钥块同步分析概念 141
10.1.1 特点 141
10.1.2 困难性 142
10.2 碰撞攻击原理 143
10.2.1 映射 143
10.2.2 碰撞原理 143
10.3 DES算法中F-函数内部碰撞 144
10.3.1 单个S-盒碰撞 145
10.3.2 多个S-盒间的碰撞 147
10.4 AES算法轮密钥加内部碰撞 149
10.5 针对内部碰撞攻击的功耗区分器 150
10.5.1 经典功耗侧信道碰撞攻击 151
10.5.2 关联增强碰撞攻击 151
10.5.3 随机碰撞攻击 152
10.5.4 最优碰撞攻击 153
10.5.5 配对碰撞关联攻击 154
10.6 本章小结 155
参考文献 155
第11章 代数侧信道攻击 157
11.1 基本思想 157
11.1.1 AES算法S-盒的代数性质与等价布尔方程组 157
11.1.2 AES第一轮线性碰撞的代数攻击 161
11.2 攻击概述 163
11.2.1 代数密码分析 163
11.2.2 代数侧信道攻击方法 164
11.2.3 针对PRESENT算法的代数侧信道攻击 166
11.2.4 软分析侧信道攻击 170
11.3 本章小结 171
参考文献 171
第四部分 攻击防护
第12章 掩码技术 175
12.1 掩码技术原理 175
12.2 经典掩码方案 176
12.2.1 布尔掩码 176
12.2.2 乘法掩码 177
12.2.3 布尔掩码与算术掩码的转换 177
12.2.4 仿射掩码 179
12.2.5 旋转S-盒掩码 179
12.3 掩码技术的实现 181
12.3.1 表重算 181
12.3.2 全局查找表 183
12.3.3 安全S-盒计算 183
12.4 基于编码的掩码技术 184
12.4.1 编码理论基础知识 185
12.4.2 正交直和掩码 186
12.4.3 广义编码掩码 188
12.5 本章小结 190
参考文献 190
第13章 高阶攻击 192
13.1 概念与模型 192
13.1.1 定义 192
13.1.2 高阶分析模型 192
13.2 经典高阶攻击 194
13.2.1 组合函数 194
13.2.2 困难性 195
13.3 机器学习高阶攻击 197
13.3.1 核判别分析 197
13.3.2 流形学习分析 199
13.4 基于深度学习的高阶攻击 204
13.4.1 MLP 204
13.4.2 CNN 205
13.5 本章小结 207
参考文献 207
第14章 隐藏技术 209
14.1 时间维度上的隐藏技术 209
14.1.1 随机插入伪操作 209
14.1.2 操作重排 210
14.2 幅度维度上的隐藏技术 210
14.2.1 降低可利用功耗分量 210
14.2.2 增加噪声 211
14.3 隐藏技术软件实现 211
14.3.1 时间维度 211
14.3.2 幅度维度 211
14.4 隐藏技术硬件实现 212
14.4.1 时间维度 212
14.4.2 幅度维度 213
14.5 DRP逻辑结构 214
14.5.1 概述 214
14.5.2 恒定功耗 215
14.5.3 DRP逻辑结构的相关实现 216
14.6 组合防护技术 218
14.7 本章小结 218
参考文献 218
第15章 公钥密码分析与防护 220
15.1 简单功耗分析 220
15.2 差分功耗分析 221
15.2.1 差分功耗分析原理 221
15.2.2 RSA差分功耗分析实例 222
15.2.3 防护对策 223
15.3 碰撞攻击 224
15.3.1 碰撞攻击原理 224
15.3.2 RSA碰撞攻击实例 225
15.3.3 防护对策 226
15.4 基于深度学习的模板攻击 226
15.4.1 原理 226
15.4.2 RSA的深度学习模板攻击实例 227
15.4.3 防护对策 228
15.5 后量子公钥密码分析及防护 228
15.5.1 功耗侧信道分析 228
15.5.2 防护对策 228
15.6 本章小结 229
参考文献 229
第五部分 安全评估
第16章 泄漏检测和核证 235
16.1 泄漏检测与POI检测 235
16.1.1 非特异性固定-随机T检验 235
16.1.2 非特异性固定-固定T检验 237
16.1.3 非特异性ρ检验 240
16.1.4 自动化POI检测工具 242
16.2 泄漏核证 244
16.2.1 泄漏核证必要性 244
16.2.2 常见评估指标 245
16.2.3 常见概率密度函数估计方法 246
16.2.4 交叉验证和估计误差 246
16.2.5 距离采样和假设误差 247
16.2.6 矩测试和假设误差 248
16.3 基于深度学习的泄漏检测 249
16.3.1 原理 249
16.3.2 检测流程 250
16.4 本章小结 252
参考文献 252
第17章 攻击成功率 254
17.1 成功率的定义 254
17.2 影响成功率的要素 255
17.2.1 样本数量 255
17.2.2 区分器类型和性能 255
17.2.3 攻击位置和信噪比 256
17.3 成功率估计 257
17.3.1 混淆系数估计法 257
17.3.2 成功指数评估法 259
17.3.3 特征值评估法 261
17.4 本章小结 264
参考文献 265
第18章 密钥搜索与排序估计 266
18.1 猜测熵 266
18.1.1 定义 266
18.1.2 猜测熵表现方式 267
18.2 猜测熵估计方法 267
18.2.1 Massey猜测熵估计 267
18.2.2 Choudary猜测熵估计 268
18.3 密钥排序估计 270
18.3.1 基本概念 270
18.3.2 多项式乘法与卷积 271
18.3.3 柱状图密钥排序估计 271
18.3.4 卷积操作和密钥排序实例 273
18.4 密钥枚举算法 275
18.4.1 二维密钥枚举算法 275
18.4.2 最优密钥枚举算法 278
18.5 碰撞链 279
18.5.1 碰撞链的构成与特征 280
18.5.2 测试链 280
18.5.3 容错链 281
18.5.4 全碰撞链 282
18.5.5 重复碰撞跳跃检测算法 282
18.5.6 碰撞树 283
18.5.7 碰撞容错 284
18.6 本章小结 285
参考文献 285
致谢 288
“密码理论与技术丛书”已出版书目 290