Page 422 - 《软件学报》2026年第2期
P. 422
魏淙洺 等: 私有算法密码芯片非入侵式攻击检测框架 901
行直接分析, 信息泄露一般来源于密码相关的不规则操作序列. 不规则操作序列指包含一系列操作, 且包含的操作
是不以固定形式循环出现的序列. 简单能量分析检测不规则操作序列并判断其是否和密钥等关键信息相关. 目前
已有的国际标准 ISO/IEC 17825:2016、国内标准 GM/T 0083-2020 中, 给出了简单能量泄露测试流程, 芯片检测人
员可以通过流程中的测试方法判断芯片是否存在简单能量分析泄露, 但这些标准中给出的测试方法都是针对公开
算法, 对于私有算法没有相关检测说明.
简单能量分析的核心是判定能量波形中是否存在“不规则操作序列”, 以及该序列与密钥是否存在关系. 对于
已知算法, 检测人员可根据算法过程直接锁定可能存在简单能量分析泄露的位置进行检测; 但对于未知算法, 其问
题在于检测人员无法确定密钥与中间操作之间的关系, 因而无法定位可能存在简单能量分析泄露的位置进行检
测, 只能针对整条波形中各段位置分别进行不规则操作序列判定, 并由厂商对不规则操作序列与密钥之间的关系
进行确认.
本文提出的私有算法密码芯片非入侵式攻击检测框架中, 简单能量分析的泄露测试流程如图 7 所示, 该流程
包括 4 个步骤.
开始
采集能量/电磁信号波形
波形预处理
视觉观察
是
识别出不规则操作序列
否 厂商判定不
否
使用交叉关联的方法执行分析 规则操作序列与密钥
是否相关?
否 是
识别出不规则操作序列
是
厂商判定 是
不规则操作序列与密钥
是否相关?
否
通过 失败
图 7 私有算法简单能量/电磁分析测试流程
(1) 采集密码算法运行时产生的能量/电磁信号波形.
(2) 对采集的波形进行预处理, 如采用低通滤波、对齐等波形处理方式. 预处理能提高分析效率, 使分析结果
更明显.
(3) 通过视觉观察的方式, 对波形进行分析. 视觉观察阶段检测人员需要肉眼观测来识别波形中是否存在不规
则操作序列, 若检测人员能够识别出不规则操作序列, 则由厂商根据所分析算法的实现过程对不规则操作序列进
行判定, 如果其与密钥等关键信息是无关的, 则继续进行下一步骤, 否则测试失败.
(4) 使用交叉关联的方法对波形进行分析, 检测人员通过计算交叉关联分析结果图来可视化单条能量波形中
的重复执行模式, 从而识别不规则指令操作序列, 具体方法介绍详见第 1.3 节. 若分析结果显示波形中存在不规则
操作序列, 则由厂商根据所分析算法的实现过程对不规则操作序列进行判定, 若其与密钥等关键信息无关, 则测试
通过, 进入差分能量/电磁攻击测试. 否则, 测试失败.
为了进一步说明简单能量分析检测方法的适用性, 我们分别对私有公钥密码算法和私有分组密码算法进行
探讨.

