The invention discloses a fault detection system of Keccak algorithm based on FPGA, which includes filling and redundancy code generation module, Keccak function operation module and redundancy code verification module. Filling and redundancy code generation module fills the original data into a specified number of bits to form the original code, stores the original data in a register and produces the corresponding number of bits of time redundancy codes and dynamic redundancy check codes X, which are then processed by Keccak function. In the operation module, the three codes are simultaneously processed by three pipelines to generate their corresponding Keccak values. Finally, the Keccak values of the original code, the time redundancy code and the dynamic redundancy check code X are checked by the redundancy code check module, and the check results are output. The system only achieves fault detection scheme with very little throughput reduction and resource utilization increase, and the scheme of double redundant codes ensures that it can detect both temporary and permanent faults and resist most hardware Trojan horses.
【技术实现步骤摘要】
一种基于FPGA的Keccak算法故障检测系统
本专利技术涉及加密算法领域,具体涉及一种基于FPGA的Keccak算法故障检测系统。
技术介绍
Hash算法广泛应用于数字签名、消息认证、密码协议等方面,在信息安全领域中扮演着极其重要的角色。自2004年我国学者王小云教授提出的模差分和消息修改的攻击方法以来,采用Merkle-Damgard结构的一系列Hash函数MD5、SHA-1、SHA-2被暴露出了严重的安全问题。因此,在2007年NIST(美国国家标准与技术研究所)发起了在全球范围内征集新Hash函数标准SHA-3的计划,最终于2015年正式采用Keccak算法为新的安全Hash函数标准SHA-3。Keccak算法的映射分布均匀性和Sponge迭代结构,使得电路微小的故障都会导致输出的Keccak值发生根本性的变化。而Keccak算法的抗原像攻击性(单向性)导致无法只通过原码的Keccak值来确认电路是否正常工作。因此在Keccak算法电路中加入故障检测系统就非常必要。目前业内对与Keccak算法的故障检测方案,无论软硬件都是基于传统的时间冗余方案或结构冗余方案。前者会导致Keccak算法的吞吐率减半并且无法检测永久性故障,后者会导致消耗两倍的硬件资源,且两种方案均无法检测硬件木马攻击导致的硬件故障。
技术实现思路
本专利技术的目的是针对现有技术的不足,提供了一种基于FPGA的Keccak算法故障检测系统,使得在只降低极少吞吐率和增加极少电路资源的前提下,既可以检测临时性故障又可以检测永久性故障还可以抵御大部分的硬件木马攻击。本专利技术的目的可以通过如下技 ...
【技术保护点】
1.一种基于FPGA的Keccak算法故障检测系统,其特征在于,所述系统包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算该三个编码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果。
【技术特征摘要】
1.一种基于FPGA的Keccak算法故障检测系统,其特征在于,所述系统包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算该三个编码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果。2.根据权利要求1所述的一种基于FPGA的Keccak算法故障检测系统,其特征在于:所述填充和冗余码生成模块按照Keccak算法标准将原数据填充到指定比特数形成原码,在填充后一个周期产生时间冗余码,再下一个周期产生动态冗余校验码X,并于这三个周期分别将这三个编码传送给Keccak函数运算模块。3.根据权利要求2所述的一种基于FPGA的Keccak算法故障检测系统,其特征在于:所述时间冗余码是与原码相同的编码,用于检测暂时性故障。4.根据权利要求2所述的一种基于FPGA的Keccak算法故障检测系统,其特征在于:动态冗余校验码成对存储于FPGA中,由动态冗余校验码X和动态冗余校验码Y组成,分别存储于填充和冗余码生成模块以及冗余码校验模块,动态冗余校验码Y是已知正确的由动态冗余校验码X经Keccak算法运算的Keccak值;动态冗余校验码能够检测永久性故障,且随时间增加其故障覆盖率动态增加,还能够检测大部分硬件木马导致的故障。5.根据权利要求1所述的一种基于FPGA的Keccak算法故障检测系统,其特征在于:所述Keccak函数运算模块按照Keccak算法标准构建RTL电路,并由三级流水线组成,将原本Keccak的Sponge迭代结...
【专利技术属性】
技术研发人员:王子甲,李国元,贺小勇,
申请(专利权)人:华南理工大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。