本发明涉及集成电路安全和电磁故障注入,尤其涉及一种针对密码芯片的高空间精度电磁故障注入方法。
背景技术:
1、随着半导体工艺和集成电路技术的快速发展,集成电路的集成度不断提升,功能变得更加复杂。集成电路在多个关键领域,如电子产品、网络通信、医疗电子、航空航天和军事等,发挥着基础和核心作用。然而,这也带来了日益突出的信息安全问题。密码芯片作为信息安全的关键组件,负责实现加密算法,因此容易受到物理攻击的威胁。密码芯片的防护已成为研究的重点。
2、针对密码芯片的攻击主要分为侧信道攻击和故障注入攻击两种。故障注入攻击通过在芯片执行加密算法期间引入故障扰动,获取故障密文输出,进而分析以获取密钥等敏感信息。现有的电磁故障注入(emfi)方法,虽然无需接触芯片且能进行空间定位攻击,但在空间精度方面存在较大局限性,目前的研究还停留在平面敏感位置的定位,而仅在平面上定位得到的敏感位置,使得注入的有效性难以进一步提升。因此现有技术尚未考虑目标芯片物理结构的不同,也未调整探头的空间位置,无法实现高空间精度的电磁故障注入,使得电磁故障注入攻击可能因空间精度不足而失败,大大增加了后期试验次数,延长了测试周期。
3、目前还没有一种有效的方法来解决这一问题。
技术实现思路
1、针对目前的电磁故障注入技术在空间精度上存在不足,无法精确控制故障注入的位置,导致攻击效果受限的问题,本发明提供了一种针对密码芯片的高空间精度电磁故障注入方法,包括如下步骤:
2、将明文输入待测密码芯片,获得所述待测密码芯片输出的第一密文;
3、选择所述第一密文中的目标bit位;
4、确定可以使目标bit位的数值反转的敏感位置数据,所述敏感位置数据为电磁探头放置的三维坐标以及电磁探头放置时与所述待测密码芯片的水平角度;
5、按照所述敏感位置数据设置电磁探头,向待测密码芯片发射电磁脉冲,获取所述待测密码芯片输出的第二密文,并监测所述目标bit位的数值;
6、若所述目标bit位的数值发生反转,则进入下一步;若所述目标bit位的数值未发生反转,重新确定敏感位置数据;
7、保存数据向量,所述数据向量包括第一密文、第二密文,并改变输入明文,选择下一目标bit位,重复上述全部操作,若已遍历所述第二密文中每一个bit位,则进入下一步;
8、采用差分故障分析算法对保存的数据向量进行分析,破解待测密码芯片的密钥信息。
9、进一步的,将明文输入所述待测密码芯片,获得所述待测密码芯片输出的第一密文之前还包括:
10、准备电磁故障注入实验装置,具体包括一台上位机,一台电磁脉冲发生器,一个电磁探头,一个xyz方向三轴位移平台和一个待测密码芯片;所述上位机用来控制和操作实验平台中的各个设备,并使用串口实现与待测密码芯片之间的通信,所述脉冲发生器用于产生电磁脉冲信号,所述电磁探头用于产生高压瞬态电磁场,所述xyz方向三轴位移平台用于精确调整电磁探头与待测密码芯片的相对位置;
11、将待测密码芯片固定于xyz方向三轴位移平台上。
12、进一步的,电磁探头放置的三维坐标中x、y坐标确认方法为:对所述待测密码芯片进行网格化划分,在每个网格处以密文中每个bit位为目标,进行如下操作:
13、设当前网格的坐标为(x,y),将所述电磁探头置于所述网格上方高h处,h>0,以同一角度向所述待测密码芯片发射电磁脉冲,重复若干次发射过程,统计每次发射后仅出现目标bit位的数值发生反转的次数;
14、根据所述反转的次数计算所述目标bit位的数值发生反转的概率p1;
15、若所述概率p1大于预设值p10,则当前网格的坐标的x、y值为目标bit位的敏感位置数据的x、y坐标值;否则对下一网格进行前两步操作;直至确定密文中每个bit位对应的敏感位置数据的x、y坐标值。
16、进一步的,电磁探头放置的三维坐标中z坐标确认方法为:
17、在目标bit位对应的敏感位置的x、y坐标处,调整所述电磁探头与所述待测密码芯片的距离,以同一角度进行若干次电磁脉冲发射操作,统计每次发射后仅出现目标bit位的数值发生反转的次数;
18、根据所述反转的次数计算所述目标bit位的数值发生反转的概率p2;
19、若所述概率p2大于预设值p20,则当前网格的坐标的z值为目标bit位的敏感位置数据的z坐标值;否则对下一网格进行前两步操作;直至确定密文中每个bit位对应的敏感位置数据的z坐标值。
20、进一步的,电磁探头放置时与所述待测密码芯片的角度,确认方法为:
21、在目标bit位对应的x、y、z坐标处,调整所述电磁探头与所述待测密码芯片的角度,进行若干次电磁脉冲发射操作,统计每次发射后仅出现目标bit位的数值发生反转的次数;
22、根据所述反转的次数计算所述目标bit位的数值发生反转的概率p3;
23、若所述概率p3大于预设值p30,则当前所述电磁探头与所述待测密码芯片的角度为目标bit位的敏感位置数据的角度值;否则对下一网格进行前两步操作;直至确定密文中每个bit位对应的敏感位置数据的角度值。
24、进一步的,p1<p2<p3,p10<p20<p30。
25、进一步的,调整所述电磁探头与所述待测密码芯片的距离为:所述电磁探头相对所述待测密码芯片移动,采用由远到近的方式,遍历(x,y)坐标垂直上方的空间位置。
26、进一步的,调整所述电磁探头与所述待测密码芯片的角度为:以(x,y,z)坐标处为球心,遍历可以将电磁脉冲发射到待测密码芯片的角度。
27、进一步的,采用差分故障分析算法对保存的数据向量进行分析,破解待测密码芯片的密钥信息,具体为:
28、获取一组数据向量,包括第一密文、第二密文;
29、计算每一组数据向量中第一密文和第二密文之间的差异,得到候选故障集;
30、对所述候选故障集进行交集运算,得到所述待测密码芯片的密钥。
31、本发明实施例具有以下技术效果:
32、其一,本发明根据目标芯片的物理结构和集成电路特性,调整电磁探头的空间位置,包括x、y、z三个维度的精确定位以及与芯片表面的角度,使得电磁故障注入更加精确地作用于芯片的关键区域,从而提高了故障注入的针对性和有效性;
33、其二,通过精确控制电磁探头的位置和角度,实现了对注入的电磁脉冲产生的电动势的调整,而电动势是影响注入有效性的关键因素。本发明能够识别出能够有效提升故障注入成功率的敏感位置,不仅减少了在后期测试中进行盲目试验的次数,而且显著提升了整体的测试效率和准确性;
34、其三,本发明通过收集同一密钥在不同的输入明文下输出的错误密文,利用差分故障分析(dfa)破解待测密码芯片的密钥信息,有助于密码芯片设计者针对电磁故障注入,及时改善防护措施,增强芯片的安全性。