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 , 进一步证明存在明显泄露. 视觉观察和交叉关联
                 分析结果说明, 该芯片无法通过简单能量分析测试.
   422   423   424   425   426   427   428   429   430   431   432