没有合适的资源?快使用搜索试试~ 我知道了~
基于模板和KNN算法的能量分析攻击对比研究.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 97 浏览量
2022-06-01
08:35:46
上传
评论
收藏 332KB DOCX 举报
温馨提示
试读
12页
基于模板和KNN算法的能量分析攻击对比研究.docx
资源推荐
资源详情
资源评论
0 引言
随着移动通信过程中对信息安全需求的提高,通信终端设备通常采用加密
的安全芯片(如手机 SIM 卡等)保证用户身份认证信息的硬件安全。但随着技
术的发展,密码芯片的安全性面临着威胁,其中最大的威胁来自功耗分析攻击 。
它通过采集密码芯片工作时的能量迹,利用统计分析等手段猜测密码算法的密
钥,对终端密码设备的安全构成了极大的威胁。
1999 年 ,Paul 和 Joshua 等
[1
]
提 出 了 差 分 能 量 分 析 ( differential power
analysis , DPA )恢 复 DES ( data encryption standard )的 密钥 。 2003 年,
Chari 等
[2
]
通过采集大量能量迹样本建立统计信息,利用模板攻击( template
attack,TA)获取密钥。2004 年, Rechberger 和 Oswald 对模板攻击方法的
实际问题进行讨论,并分析了特征点数量对攻击成功率的影响,提出使用差分
能量分析攻击寻找特征点的方法
[4
]
。2006 年,Archambeau 等
[5
]
提出从侧信道信
息中选取特征点构成样本的主子空间( principal subspace),以减少模板攻击
的运算量。2011 年, Gabrielet 等
[8
]
首次将机器学习技术应用到侧信道攻击中,
利用具有明显汉明重量泄露的数据集进行功率分析攻击,利用最小二乘支持向
量 机 ( LS-SVM ) 成 功 攻 击 了 一 些 高 级 加 密 标 准 ( advanced encryption
standard,AES)的软件实现。2013 年,Lerman 等
[9
]
提出一种半监督的模板
攻击方法,这一方法放松了模板攻击中必须完全掌握被攻击设备的限制。可见 ,
模板攻击和基于机器学习的 KNN 算法的能量分析攻击日益成为能量分析攻击具
有威胁的攻击手段。2019 年,Kim 等
[10
]
介绍了一种使用卷积神经网络分析侧通
道的方法。马向亮
[11
]
使用基于能量分析技术分析芯片后门指令,Ryad 等
[12
]
使用
CNN 攻击了有掩码、扰乱防御的基于单片机上的算法实现,文献[13
]利用 CNN
对单片机上的算法实现进行了掩码和抗干扰攻击。 2020 年,Cai 等
[14
]
提出了差
分功率分析攻击的能量曲线压缩方法,段晓毅等
[15
]
使用数据增强技术解决了机器
学习中 SBOX(substitution box)输出值的汉明重量不平衡问题。
本文对基于 TA 和 KNN 算法的能量分析攻击进行了对比研究。在对皮尔逊
相关系数(Pearson correlation coefficient,PCC)、互信息和最大信息系数
( maximal information coefficient , MIC ) 、 距 离 相 关 系 数 ( distance
correlation coefficient,dcorr) 3 种降维方法研究的基础上,选出适合两种能
量分析攻击的特征点,进一步研究特征点数量 p 对两种能量分析方法的攻击成
功率以及 3 种降维方法对两种能量分析方法的攻击成功率的影响等。
1 能量分析攻击
1.1 基于模板的能量分析攻击
TA 过程主要可以分为两个阶段:第一阶段为建立模板阶段,第二阶段为模
板匹配阶段。最常用的模板攻击模型是多元高斯模型。
其 中 , 建 立 模 板 阶 段 , 构 建 的 模 板 实 际 是 一 个 二 元 组
T=<t¯,C>T=<t¯,C>,由同一时刻该点的电压均值 t 和计算不同点的协方差矩
阵 CC 组成。分为如下 3 步。
第一步:对 L 位密钥的 2
L
种可能密钥进行建模。
第二步:每一种可能密钥对同一个明文进行 m 次加密,得到 m 条能量/电磁
曲线,然后在每条曲线上寻找 n 个与密钥相关的特征点。计算这 n 个点的平均
值,得到 t¯t¯,如式(1)所示。
t¯=<t¯1,t¯2,⋯,t¯n>t¯=<t¯1,t¯2,⋯,t¯n>
=<1m∑i=1mti1,1m∑i=1mti2,⋯,1m∑i=1mtin>
(1)=<1m∑i=1mti1,1m∑i=1mti2,⋯,1m∑i=1mtin> (1)
第三步:计算不同点的协方差。协方差是构建不同点的相关性,如式( 2)
所示。
Cn×n=⎡⎣⎢⎢⎢⎢⎢cov(N1,N1)cov(N2,N1)⋮cov(Nn,N1)cov(N1,N2)
cov(N2,N2)⋮cov(Nn,N2)⋯⋯⋱⋯
cov(N1,Nn)cov(N2,Nn)⋮cov(Nn,Nn)⎤⎦⎥⎥⎥⎥⎥
(2)Cn×n=[cov(N1,N1)cov(N1,N2)⋯cov(N1,Nn)cov(N2,N1)cov(N2,N2)⋯
cov(N2,Nn)⋮⋮⋱⋮cov(Nn,N1)cov(Nn,N2)⋯cov(Nn,Nn)] (2)
模 板 匹 配 阶 段 是 利 用 极 大 似 然 法 则 , 计 算 能 量 迹 t 与 模 板
T=<t¯,C>T=<t¯,C>匹配的概率,概率最大的是匹配最好的模板,对应的密钥
是最可能的正确密钥。其概率计算式如式(3)所示。
p(t′;⟨t¯,C⟩)=1(2π)m|C|√exp[−12(t′−t¯) TC−1(t′−t¯)] (3)p(t′;
〈t¯,C〉)=1(2π)m|C|exp[−12(t′−t¯) TC−1(t′−t¯)] (3)
1.2 基于 KNN 算法的能量分析攻击
KNN 作为监督学习中一种分类算法,该算法的中心思想为:若某样本在特
征空 间中的 k 个 最近 邻样本 多 数属 于 某一个 类别 , 则该样 本属于 这 个类 别 。
KNN 算法原理如图
1
所示。
图 1
图 1算法原理
KNN 算法的完整步骤如下:
● 计算测试数据与各个训练数据之间的距离;
● 按照距离的递增关系进行排序;
● 选取距离最小的 k 个点;
● 确定前 k 个点所在类别的出现频率;
● 返回前 k 个点中出现频率最高的类别作为测试数据的预测分类。
其中,k 值的选择对训练模型的拟合效果至关重要。k 值过大或过小会造成
训练模型过拟合或欠拟合。因此,为了解决这个问题,一开始可以先选择一个
较小的 k 值,然后再使用交叉验证的方法最终得到一个适合模型的终值。
KNN 在各类开发库中应用广泛。 Python3.8 Scikit-Learn 机器学习库中的
KNN 算法函数是此类库函数中一个经典的例子。本文中,该函数输入为测试集
功耗曲线以及对应的类标签(即 AES-256 算法的字节代替环节第一个 SBOX 输
出汉明重量值),输出则为具有分类功能的模型(函数默认近邻数量 k=5,距离
默认欧氏距离 p=2)。再将测试集功耗曲线给到该模型进行分类预测。在测试
过程中,最后需要将上述得到的汉明重量值与测试集数据实际对应的标签值进
行对比,以得到基于 KNN 算法进行能量分析攻击时的攻击成功率。
2 降维技术的原理及实现
进行能量分析攻击的第一步是将庞杂的能量数据进行降维,去除噪声,将
攻击对象(密钥等敏感数据)有关的点保留,即进行特征点选择。
2.1 特征点选择
剩余11页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3548
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功