咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >防故障注入攻击的FSM状态寄存器安全设计研究 收藏
防故障注入攻击的FSM状态寄存器安全设计研究

防故障注入攻击的FSM状态寄存器安全设计研究

作     者:王子铭 

作者单位:哈尔滨工业大学 

学位级别:硕士

导师姓名:崔爱娇

授予年度:2019年

学科分类:11[军事学] 1105[军事学-军队指挥学] 0839[工学-网络空间安全] 08[工学] 110505[军事学-密码学] 110503[军事学-军事通信学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:故障注入 时序违规 有限状态机 状态跳转 状态寄存器 

摘      要:随着集成电路IC行业和制造工业的发展,加密芯片已经广泛应用于各个领域。它具有保护密钥和信息的能力,它保证了只有合法的使用者才能通过加密芯片进行数据交互。目前,已经有多种恶意攻击方案来攻击加密芯片从而破解密钥,有些恶意攻击者并不需要合法的授权就能获得敏感信息。一般的,我们将这类旁路攻击大致分为两种,一种是被动式的攻击,另一种则是主动式的。在被动式的旁路攻击中,常见的有时间攻击法、功耗分析法、电磁攻击法等等。攻击者可以通过功耗统计图上区分出AES高级对称加密算法迭代的轮数,从而对加密芯片的密钥进行破解。被动式的旁路攻击一般都需要攻击者采集大量的信息,重复大量的实验操作,之后还需要对采集的数据进行分析与统计。重复并大量的数据的采集和分析使得攻击者望而却步。所以被动式的攻击方式逐渐被其他更有效的攻击方式所取代。而主动式的攻击方式摒弃论了繁杂的数据采集,能够实现对芯片进行恶意攻击来获取敏感信息。其中,故障注入攻击是最典型的攻击方法,它是指攻击者通过改变芯片工作的外界环境,在芯片工作中引入故障。之后,攻击者可以通过分析错误的引入故障的结果来破解密钥。故障注入攻击不仅使得攻击者具有主动攻击芯片的能力,之后在进行密钥分析时,与功率分析、时间分析、电磁分析相比大大缩小了密钥搜索的范围。从这个角度讲,故障注入攻击无疑给加密芯片带来了非常严重的威胁。现有的故障注入技术和解决方案,大多是在芯片的数据路径进行分析。攻击者一般是通过故障注入改变芯片的中间计算结果,再利用差分分析方法(DFA)进行密钥分析。例如,在AES加密过程中,攻击者可以采用紫外光线(UV)改变一个/多个比特在中间迭代计算结果中。但是,研究者发现在控制路径实则存在着更大的安全性漏洞,攻击者可以因此改变整个加密芯片的加密流程,从而获得想要的加密过程与结果。在加密芯片中,FSM有限状态机是整个芯片的控制单元,它具有控制芯片内部信号以及芯片的特定操作。以AES为例,FSM决定着芯片具体的加密流程,所以FSM的重要性不言而喻。目前已经被证实,FSM也会遭受到故障注入攻击。攻击者已经通过在蒙哥马利阶梯算法的FSM中引入故障,从而破解密钥。一般的,攻击者可以通过建立时间违规或者过早锁存在FSM的状态寄存器中引入故障,这些可能会导致状态的错误跳转,从而导致芯片的中间加密结果提前暴露。攻击者一般可以通过超频、低电压供应和加热芯片来实现这些时序上的故障。这些攻击方式与光攻击,紫外线攻击和聚焦离子术(FIB)等高精度的攻击数据路径的攻击方式相比不仅价格低廉而且高效。所以这些故障注入攻击方式对加密芯片的威胁更大,也是本文的重点研究对象。实际中,FSM是一种时序结构,由寄存器及寄存器之间的组合逻辑实现,其中寄存器一般是受是时钟信号触发。状态机中状态寄存器的值非常重要,它代表着芯片当前运算状态也决定了最终的运算结果。如果状态机在进行状态跳转时,出现状态跳转错误,可能会导致加密芯片加密结果错误或者中间迭代计算结果提前暴露。为了保证芯片的FSM中的状态能够正常跳转,有研究者提出对状态跳转进行检测和保护,他们提出保护FSM中重要状态,只有被授权的状态才能够访问这些重要状态。以及之后的研究者,提出对整个FSM的保护,将所有的状态跳转进行存储,从而禁止了不合法的状态跳转。但是这些防护手段只是从状态跳转的角度出发进行防护,对于有些合法性的攻击无法进行防护,并且没有在源头对状态错误跳转进行检测与纠正。在本文中,为了防止时序违规而导致状态寄存器值锁存错误的现象,我们提出一种新型的状态寄存器。这种状态寄存器可以检测是否出现时序违规现象,并且在建立时间违规情况下,也能够使得状态寄存器获得正确的值。当状态寄存器存在时序约束违规时,我们发现正确的值可能会在原始时钟信号之后才到达。所以我们提出加入并行的主锁存器,在原始时钟时钟信号来临后,还能够进行多次采样。并且值得注意的是,在低功耗或者加热的故障情况下,逻辑毛刺已经变得不可忽略。显然的,仅仅依靠两个并行的主锁存器,并不能保证纠正正确。所以针对这种情况,我们提出利用三个主锁存器来实现检测,三个主锁存器的值经过选择器进行三选二输出的值来代替原来的主锁存器的输出。这三个主锁存器分别由不同的延迟时钟信号控制并且是在低电平导通,原始寄存器是由原始时钟控制,其他两个锁存器由不同延时的时钟信号控制,分别是1/2时钟周期延时和3/4时钟周期延时。所以,无论故障发生在1/2时钟周期前还是后,都能够进行纠正。当出现时序错误时,尽管原始寄存器锁存到了错误的值,但是其他两个并行的主寄存器可能锁存到了正确的值。我们可以通过比较三个锁存器的值,来检测是否出现时序违规。为了防止混淆过早锁存和正常状态跳转,我们将分别对三个锁存器的值进行分析。在原始时钟上升沿来临之后,如果出现过早锁存现象,与正常跳转相比,下一状态会提

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分