安全处理器跳转指令固定执行时间的测试方法与流程

文档序号:13625749阅读:343来源:国知局

本发明涉及嵌入式处理器测试领域,特别是涉及一种安全处理器跳转指令固定执行时间的测试方法。



背景技术:

嵌入式处理器目前会受到各种攻击,其中时序攻击是很重要也很有效果的一种攻击方式。其利用存储器不同指令种类固有的执行速度差异,分析指令特征以进行针对性的攻击,而跳转指令因为涉及到关键路径的判断,更是攻击的重点。因此现在一般设计的嵌入式处理器都对此有所防御,增加固定指令执行时间的功能。以跳转指令为例,在常规速度性能优先的情况下,直接跳转指令的执行时间为1clk(时钟);而在固定跳转时间的设置条件下,执行时间可固定为3clk。



技术实现要素:

本发明要解决的技术问题是提供一种安全处理器跳转指令固定执行时间的测试方法,能有效进行自动化测试,无人工干预。

为解决上述技术问题,本发明的安全处理器跳转指令固定执行时间的测试方法,是采用如下技术特征实现的:

编写嵌入式汇编程序,使用计数器在固定跳转指令时间功能开启与关闭的情况下,分别计算设定次数的跳转指令的执行时钟数,根据固定跳转指令时间增加的时钟数,判断是否在原先不固定跳转指令时间的基础上增加相应的倍数;多次执行所述设定次数的固定次数的跳转指令,判断多次执行时间的一致性。

所述设定次数为100次。

固定跳转时间是控制器的一个功能,在安全功能审查时,又因为控制器指令时序的不易控制与时间很短,很难在样品上以某个程序或现象体现。采用本发明的方法,在样品阶段能够以直观的方式说明固定跳转时间这个功能的有效性。并且能有效进行自动化测试,无人工干预。以计数器的方式计算时钟clk个数,精确到了指令执行的最小单位,能够精准的得出为了安全,固定的时间增加了多少,是否符合设计预期。在rom或ram中存储所述嵌入式汇编程序,使用本发明方法,也可以用于设计芯片前端验证用例,以避免一般用例验证不准确。

具体实施方式

所述安全处理器跳转指令固定执行时间的测试方法,涉及的是具有安全抗时序攻击的嵌入式处理器的跳转指令执行时间的测试。具体实现的方法是,编写嵌入式汇编程序,使用计数器在固定跳转指令执行时间功能开启与关闭的情况下,分别计算设定次数的跳转指令的执行时钟数。因安全处理器固定跳转时间时,跳转指令的执行周期会增加n个clk周期(n根据不同的处理器而不同),又因为一次执行多出的n个clk时间太少不方便计算,易出现误差,故以执行多次m次的方式计算。根据固定跳转指令时间增加的时钟数,判断是否在原先不固定跳转指令时间的基础上增加相应的clk数:m*n个(*表示乘号)。多次执行所述设定次数的固定次数的跳转指令,判断多次执行时间的一致性。m,n均为大于1的正整数。

在实施时,先关闭固定跳转指令执行时间功能,因一次跳转的时间不足以在芯片端有所体现,故采用跳转100次的方式进行统计,利用计数器记录这段时间所需要的时钟个数count1。打开固定跳转指令执行时间功能,重复以上操作,得到时钟个数count2。根据设计预期,固定跳转时间会使得指令执行时间增加n个时钟clk,故判断count2-count1>=n*100±e,e为余量,可以按情况设定。若满足,则固定跳转时间符合设计预期。

本发明的测试方案还包括m次进行固定跳转时间情况下的跳转测试,得到m个count21~count2m,确认时间的一致性。

本发明的测试方案需要编写嵌入式汇编程序以实现以上步骤,因为嵌入式汇编程序能够有效地控制指令执行序列,避免c语言因为编译器编译出现的指令不可控。

本发明测试方案准确性的前提是:嵌入式汇编程序的执行载体必须是处理器读取程序时间迅速的存储空间,如rom或者ram。不能是读取程序代码时间长的存储器,否则计时时间中夹杂了大量的程序执行时间,不能很好的体现跳转指令本身的差异。

以下是本发明的汇编源码(以arm处理器):

以上通过具体实施方式和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。



技术特征:

技术总结
本发明公开了一种安全处理器跳转指令固定执行时间的测试方法,编写嵌入式汇编程序,在固定跳转指令执行时间功能打开与关闭的情况下,执行跳转指令100次,分别使用计数器记录时间,根据规则比对时间。本发明能有效自动化测试,无人工干预。

技术研发人员:戴昭君
受保护的技术使用者:上海华虹集成电路有限责任公司
技术研发日:2016.07.27
技术公布日:2018.02.06
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1