DL-LA:基于深度学习的泄漏评估模型
SCA评估的指引方向
背景介绍
机器学习技术常用于基于模板的攻击(Profiled)场景下辅助分析密码设备的泄漏,使得模板攻击更加便利。2019年CHES会议上,Benjamin Timon首次提出将深度学习应用到了不构建模板、直接进行的攻击(Non-Profiled)场景中,称为DDLA模型[1]。
鉴于机器学习尚未应用到“泄漏评估”这个研究方向,并且传统的经典泄漏评估方法如t-test和X2-test存在以下缺陷:①不能对整条波形检验,只能检验每个单独的样本点;②无法检测多点泄漏;③在“噪声水平低、泄漏阶数高”“有多点泄漏”的情况下,会产生假阴性(即实际上存在泄漏,但评估方法没有检测到泄漏)。
基于以上背景,德国鲁尔波鸿大学的Thorben Moos等人在2021年的CHES会议上提出了Non-Profiled场景下的基于深度学习的泄漏评估模型DL-LA,这是第一个通过训练神经网络作为分类器来进行泄漏检测的方法[2]。
已有工作
在统计学领域,为了回答两组数据是否存在显著差异的问题,采用了假设检验t检验和χ2检验。在侧信道分析中,通常用它们来评估两组测量值是否具有置信度。传统上,这两个组是通过向被攻击设备提供固定(group 0)或随机输入(group 1),即fixed-vs-random来获得的。后来François Durvaux等人的研究表明,使用fixed-vs-fixed的输入会降低数据复杂性[3]。因此,DL-LA的实验采用了fixed-vs-fixed形式的明文数据进行,但DL-LA仍也适用于fixed-vs-random形式的输入数据。
实验内容
DL-LA评估流程
1、攻击者向被攻击设备提供两个不同的固定明文(fixed-vs-fixed)随机交错输入,采集输出波形,进行标准化Xij=(Xij-μi)/σi;
2、采集到的波形分割成一个训练集(N条波形)和一个验证集(M条波形);
3、在训练集上训练神经网络(MLP或CNN);
4、用训练好的网络对验证集的波形进行分类;
5、网络输出一个验证正确率 (validation accuracy,v),计算统计正确分类的波形数SM(SM=v·M);
6、计算通过“随机分类”的方法能正确分类得到SM的概率P;
7、如果概率P小于阈值pth(pth=10-5),那么存在泄漏。
泄漏可视化
因为神经网络是黑盒模型,攻击者无法知道波形各点对攻击结果的影响,论文用敏感性分析(Sensitivity Analysis,SA)对泄漏位置进行可视化。计算方法:
其中,xi是网络的第i个输入,y0是网络的第一层输出向量,Xij是训练集中第条波形的第个i输入值。
泄漏可视化结果如图1所示,横轴是采样点数,纵轴是计算得到的si值。注意:SA的绝对值无意义,不能和任何阈值比较。
图1 DL-LA泄漏检测结果
实验结果
本文作者设计了9组实验,实验内容与对应泄漏类型如表1所示。因为本文涉及的实验较多,且实验结果图的内容基本相近,所以下面仅对下表实验编号为CS5的实验结果展开叙述。
表1 实验内容概览
CS5是FPGA上实现的有TI防护的PRENSENT分组密码的错位波形,泄漏类型单点高阶泄漏。图2和图3是CS5的泄漏检测结果。其中图2为统泄漏检测方法的结果,显然一阶t-test检测不到任何泄漏,二阶、三阶t-test能检测到泄漏,其中三阶t-test需要一百五十万条波形来检测泄漏。X2-test需要80万条波形检测泄漏。
图2 CS5中的传统泄漏检测方法的结果 从上至下:
1)样本能量迹;2)10条重叠能量迹;3)一阶t-test结果;
4)二阶t-test结果;5)三阶t-test结果;6)X2-test结果
下图3是使用DL-LA的泄露检测结果,DL-LA在用80万条波形训练下,在大约第14个迭代轮次(epoch)时就能使置信度超过阈值;在使用更大数据集3百万条波形训练后,在约第六个epoch时就能检测到泄漏。
图3 CS5中的DL-LA泄漏检测方法的结果 从左至右:
1)SA泄露位置;2)使用800 000条能量迹做DL-LA的结果;
3)用3 000 000条能量迹做DL-LA的结果
表2是本文实验的结果,具体列出了传统泄漏检测方法和DL-LA检测泄漏各自所需的波形数量。
表2 9组实验中检测出泄漏所需的波形数
总结
基于上述实验结果,本文作者得出如下结论:
1、利用神经网络进行泄漏评估是可行的,而且在复杂的检测场景中很有前景;
2、MLP和CNN都可以检测单变量一阶泄漏、单变量高阶泄漏和多变量高阶泄漏,而不需要对预期的泄漏类型进行任何预处理或先验信息;
3、由于在DL-LA中需要同时分析整个波形,因此通常需要比传统泄漏检测方法更少的波形;
4、使用相同数量的波形所提供的置信度通常比传统泄漏检测方法大几个数量级;
5、DL-LA中的假阳性风险较低(如果选择相同的置信阈值),因为它为每组波形提供一个置信值,而不是为每个采样点提供一个置信值。
