硬件实现的SMS4加密算法计算过程中容易出现故障,为防止攻击者利用故障信息进行故障攻击从而破解SMS4算法,提出一种针对SMS4算法的故障检测方案。该方案首先分析了硬件实现的SMS4算法出现故障的位置及其影响,然后在关键路径上建立了3个检测点,通过实时监测检测点来定位算法执行过程中出现的故障。一旦成功检测到故障,立即重新执行算法以保证攻击者难以获取有效的故障信息。将提出的方案和原无故障检测的算法分别在Xilinx公司的Virtex-7和Altera公司的Cyclone II EP2C35F76C6两个现场可编程门阵列(FPGA)上综合实现,在Virtex-7上,提出的带故障检测的方案比原算法占用逻辑资源增加30%,吞吐量相当;在EP2C35F76C6上比原算法增加0.1%的硬件资源,吞吐量达到原来的93%。实验结果表明,在尽量不影响吞吐量的前提下,提出的方案占用硬件资源小,并且可以有效地检测出故障,从而避免SMS4算法受到故障攻击。
Fauhs will frequently occur during the computational process of the hardware based SMS4 algorithm. The attacker can easily break the algorithm by using the fault information and performing the fault attack. In order to solve this issue, a new fault detection method for SMS4 was proposed. Firstly, locations of the fault occurrence and the impact of the faults were analyzed. Then, three detection position points on the critical path were targeted, and by monitoring these three points in real-time to locate the faults. Once a fault was successfully detected, the system would immediately re-execute the algorithm to avoid the attacker obtaining the fault information. Furthermore, the proposed SMS4 with fault detection and the original SMS4 without fault detection were implemented on two Field Programmable Gate Array (FPGA) platforms respectively, including Virtex-7 of Xilinx and Cyclone Ⅱ of Altera. Compared with the original SMS4, hardware resource of the proposed SMS4 with fault detection was increased by 30% with similar throughput on Virtex-7. Hardware resource of the proposed SMS4 with fault detection was increased by 0. 1% and the throughput was around 93% on EP2C35F76C6. The experimental results show that the proposed algorithm can effectively detect faults using affordable hardware resource to avoid fault attack without affecting throughput.