Page 430 - 《软件学报》2026年第2期
P. 430

魏淙洺 等: 私有算法密码芯片非入侵式攻击检测框架                                                        909

















                                          图 21 芯片   C  单条能量波形交叉关联分析结果

                  3.2   私有算法密码芯片的差分能量分析测评
                    本节对几款不同的密码芯片开展黑盒条件下差分能量分析测评应用实验. 其中, 芯片                           B、芯片   D–F  使用的是
                 公钥密码算法, 芯片      G  使用的是分组密码算法, 芯片       D–F  厂家声称增加了侧信道防护手段.
                  3.2.1    私有公钥密码的差分能量分析测评
                    在第  3.1.1  节中, 我们对芯片   B  执行了简单能量分析检测, 测试结果表明, 芯片             B  能通过简单能量分析检测.
                 由于私有密码算法差分能量分析方法中的               TVLA-2  方法能够有效检测简单能量分析检测不出来的指令执行模式
                 差异, 我们使用    TVLA-2  方法进一步检验芯片       B  的安全性. 与此同时, 为了验证防护的效果, 我们对相同厂商几款
                 声称添加了防护的公钥密码芯片也执行              TVLA-2  检测.
                    (1) 对芯片  B  执行  TVLA-2  检测
                    设置密文为固定值, 芯片使用固定私钥和随机私钥进行解密, 以                    12.5 MSa/s 采样率采集得到    10 000  条能量波
                 形, 如图  22  所示, 每条波形有   7 000 000  个采样点. 其中, 使用固定私钥和随机私钥采集得到的波形数量约为                 1:1.


                               8  *100 mV                TVLA fixed 1
                               7
                               6
                               5
                               4
                               3
                               2
                               1
                               0
                              −1
                              −2
                              −3
                              −4                                                       *10 ms
                                          10        20         30        40         50
                                                   图 22 芯片   B  能量波形

                    对采集的    10 000  条能量波形执行静态对齐, 然后进行         TVLA-2  分析, 得到的   t 值结果曲线如图     23  所示, 阈值
                 4.5  在图中以黄色水平线进行标示. 可以看出, 整个解密过程中存在大量区域                    t 值高于阈值   4.5, 存在明显信息泄露.
                 实验结果说明了即使密码设备通过了简单能量分析检测, 仍可能存在能量信息泄露.
                    (2) 对带防护的芯片     D  执行  TVLA-2  检测
                    我们对带防护的芯片        D  以相同的设置采集得到        10 000  条能量波形, 如图  24  所示, 每条波形有   8 500 000  个采
                 样点. 其中, 使用固定私钥和随机私钥采集得到的波形数量约为                   1:1.
                    可以观察到, 在波形的       20–640 ms 区间内, 芯片执行算法消耗能量较高, 我们猜测该区间内芯片在执行算法解
                 密. 对采集的   10 000  条能量波形执行静态对齐后, 针对算法解密结束的位置叠加多条波形进行查看, 如图                        25  所示,
                                                                                    O 2  操作的总数量约为私钥
                 能够发现算法多次解密的时间基本一致. 除此之外, 可以估算出, 解密过程中执行                        O 1  和
                 比特数的    2  倍. 因此, 我们猜测不论算法的密钥为何值, 解密过程均交替执行                  O 1  和  O 2  操作, 或者  O 1  和  O 2  的伪
                 操作.
   425   426   427   428   429   430   431   432   433   434   435