基于聚类的简单能量分析自动化测评方案
侧信道分析又叫非入侵式攻击,是密码模块安全检测的重要项目。在ISO/IEC 17825-2016标准和GM/T 0083-2020标准中,简单能量分析(Simple Power Analysis,SPA)均为非入侵式攻击检测的核心项目,它通过观察密码模块在加密过程中能量消耗的变化规律,寻找与密钥相关的特定操作的特征,进而恢复密钥。
然而,在实际的密码模块测评实践中,SPA存在着一定的问题:
- 主观性。SPA在实际测评中主要依赖于测评人员的肉眼观察,因此需要测评人员具有丰富的侧信道安全性测评经验;同时,其结论具有较强的主观性,不同测评人员可能会得到截然不同的结论;
- 易漏判。能量波形的部分特征是人眼难以捕捉的,尤其是在有限时间条件下、或测评人员疲劳时,有些特征未必能够精准获得;
- 低效率。在实际测评时,人工判断的方法效率偏低,难以满足当下快速、自动化的安全性测评需求。
为了突破上述技术瓶颈,数缘科技提出了一种基于聚类算法[1]的简单能量分析自动化测评方案[2],并集成于数缘科技自主研发的MathMagic Detector侧信道分析测评工具中。该方案引入聚类总体准确率作为测评的量化度量指标之一,实现了人工智能聚类算法与侧信道分析的有机结合。我们在SAKURA-G FPGA开发板上实现了一个带随机延时的ECC签名过程,并对其能量波形进行安全性测评,以此为例,下面将依次介绍如何使用该工具快速完成切分、降维、聚类三步骤。
聚类侧信道分析的一般步骤
切分
切分指将采集到的能量或电磁等侧信道波形以操作为单位切分为多个有序的波形段。Detector侧信道分析测评工具支持按照波形尖峰高度特征将波形中的各波形段切分出来,同时支持以可区分尖峰间的波形段宽度为标准将波形段宽度特征提取出来,方便对波形中的每个感兴趣波形段进行分析。
我们采集到一条FPGA在执行带随机延时的ECC签名过程的能量波形,作为待切分波形,下图是其局部放大图。可以看出,该波形的尖峰并不明显,对这类波形直接切分的效果并不理想,并且也不适合按照宽度进行切分。所以我们需要进行预处理,以使尖峰特征更为明显。
待切分波形局部放大图
在预处理过程中,首先依照经验对其进行低通滤波,滤波权重设置为120滤波后得到的波形的局部放大图如下图所示。可以看出明显的正尖峰,但是从图上难以直接看出两种操作的区别。也就是说,如果用肉眼观测的方法进行安全性测评,最终得到的结果很有可能是无泄露。
低通滤波后波形局部放大图
我们对滤波后的波形进行切分,再将该切分结果标记至原始波,从而得到更加精准的切分结果。低通滤波后的波形和原始波形的切分结果分别如下图所示。
对低通滤波波形进行切分后的单段波形
对原始波形进行切分后的单段波形
这样,我们就按照波形中的大尖峰特征将各操作对应的波形段切分出来,完成了切分的操作。为了便于分析,接下来需要对这些波形段进行降维处理。
02
降维
切分后的波形段通常包含较多采样点,每个采样点被看成是高维空间中的一个维度。降维是指把切分得到的高维波形段降到低维空间。采样点数过多会严重影响聚类的分析速率,所以进行聚类分析前我们需要对波形段进行降维处理。降维可以用原始变量的线性组合作为新的变量来表示原始数据,用较少的特征来表示波形段的绝大多数信息。
本例采用主成分分析方法,把波形段降维到二维空间,即用2个数构成的一对维度变量表示每个波形段。以波形段0~63为例,降维得到的能量波形段如下图所示,降维后的每段波仅有2个数。
降维后的能量波形段
对于ECC签名中的约380个操作,可将其每个操作对应的波形段降维后的2个数分别作为横纵坐标绘制可视化图形,每个波形段对应二维空间中的一个点,该可视化图形结果如下图所示。
降至二维的可视化图形
这样,我们就将每个切分后的波形段对应到二维空间中的一个点,并绘制出可视化图形,完成了降维操作,接下来就可以进行最后一个步骤——聚类了。
03
聚类
基于聚类的简单能量分析自动化测评方案主要思想为:首先通过聚类将各个操作对应的波形段自动划分为两类;随后根据已知正确密钥对应的两种操作,将波形段划分为两类;再根据每个点在上述两种分类中所在类别是否吻合,计算出聚类分析的总体准确率;最后,测评人员根据总体准确率来衡量该密码模块的安全性。
聚类,是一种无监督的机器学习方法,它可以自动通过输入数据的特征将其自然分组,使同一类的数据尽可能聚集到一起,而不同类数据尽量分离。由于一些密码算法包含两种或多种重复的密码操作,如果能通过聚类的方式将这些在波形上重复执行的密码操作划分为不同的几个类别,再结合具体密码运算的内部结构,就存在恢复出敏感信息的可能性。Detector侧信道分析测评工具支持层次聚类、K均值聚类、高斯混合聚类、DBSCAN聚类、Mean-Shift聚类五种聚类方法,示例中采用的是高斯混合聚类方法,如下图所示。
聚类操作页面
聚类得到的两个集合被记为聚类结果A、聚类结果B,其中的点用不同的颜色进行区分。拆分密钥得到两个集合被记为正确结果1、正确结果2,其中的点用不同的形状进行区分。得到的可视化图形如下图所示。
聚类得到的可视化图形
将聚类结果与已知的正确操作结果进行对比,判断聚类结果中带错误标签的数据点,并可视化得到二维聚类错误点图,如下图所示,其中红色为即为聚类分析错误的点,灰色的点为分析正确的点。
根据正确密钥对应的操作来标记出聚类分析错误的点
Detector侧信道分析测评工具进行聚类分析时,引入聚类总体准确率作为测评的量化度量指标。聚类分析的总体准确率是聚类分析正确的操作数与总操作数的比值。如果准确率较高,说明聚类分析失败的点的个数较少,意味着根据侧信道采集到的能量泄露信息,通过聚类分析的方法,攻击者能以一定的容错率还原出密钥,进而说明该密码芯片存在安全性风险;准确率较低时则相反。在实际测评中,可以设定一个阈值α,来作为总体准确率的衡量标准。总体准确率高于α时,就可以认为该密码芯片存在被破解的潜在风险。日志栏会输出聚类分析总体准确率,如下图所示。
日志栏输出聚类分析总体准确率
这样,基于聚类的自动化侧信道分析测评方法,我们完成了针对一款ECC实现的侧信道安全测评。本例中,采用传统的肉眼观测方法很可能得到无明显泄露的结果,但新方案协助我们快速地找到了信息泄露、并精准定义了泄露程度,这也印证了新方案的有效性。
总结
本文首次引入聚类总体准确率作为简单能量分析的量化度量指标,基于Detector侧信道分析测评软件进行工具实现,并对一款带防护的ECC硬件实现进行测评应用示范,取得了良好的效果。
