Page 427 - 《软件学报》2026年第2期
P. 427
906 软件学报 2026 年第 37 卷第 2 期
中, 有 523 个比特 1 和 501 个比特 0, 由此推测, 该芯片算法是一种类 RSA 算法. 该芯片算法的指令操作序列可分
为两种, 我们记为 O 1 和 O 2 . 私钥的每个比特 0 对应一个 O 1 , 私钥的每个比特 1 对应一个 O 1 和一个 O 2 .
8 *100 mV Trace
7
6
5
4
3
2
1
0
−1
−2
−3 *100 μs
−4
1 000 1 020 1 040 1 060 1 080 1 100 1 120 1 140 1 160 1 180 1 200
图 12 芯片 A 单条能量波形部分区间
接下来, 通过视觉观察与交叉关联的方法来辨别 O 1 和 O 2 , 如图 13 所示, 结尾位置 565 800–567 160 μs 区域包
含 5 个操作, 根据框选区域的特征可直接通过视觉区分 O 1 和 O 2 , 红色框选区域对应 O 1 , 黑色框选区域对应 O 2 , 这
5 个操作依次为 O 1 、 O 2 、 O 1 、 O 1 、 O 2 , 对应的比特值是 101, 与私钥的第 2、1、0 位正确对应. 同理, 图 14 所示,
起始位置 85 880–87 280 μs 区域包含 4 个操作, 这 4 个操作均为 O 1 , 对应的比特值为 0000, 与私钥的第 1 023、
1 022、1 021、1 020 位正确对应. 继续按照此规律进行分析, 私钥的其余 1 017 个比特位也能够被成功恢复, 因此
存在明显泄露.
8 *100 mV Trace
7
6
5
4
3
2
1
0
−1
−2
−3
−4 *10 μs
56 580 56 600 56 620 56 640 56 660 56 680 56 700
图 13 芯片 A 能量波形操作序列末尾区域
8 *100 mV Trace
7
6
5
4
3
2
1
0
−1
−2
−3
−4 *10 μs
8 600 8 620 8 640 8 660 8 680 8 700 8 720
图 14 芯片 A 能量波形操作序列起始区域
我们继续使用交叉关联的方法对指令操作序列进行分析, 图 15 给出交叉关联分析在波形末尾区域的结果. 根
据交叉关联的分析结果, 能够通过条形带的宽度区分出 O 1 和 O 2 , 进一步证明存在明显泄露. 视觉观察和交叉关联
分析结果说明, 该芯片无法通过简单能量分析测试.

