[发明专利]一种基于FPGA的Keccak算法故障检测系统有效
申请号: | 201811123524.4 | 申请日: | 2018-09-26 |
公开(公告)号: | CN109460309B | 公开(公告)日: | 2020-09-22 |
发明(设计)人: | 王子甲;李国元;贺小勇 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/08 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 裴磊磊 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga keccak 算法 故障 检测 系统 | ||
1.一种基于FPGA的Keccak算法故障检测系统,其特征在于,所述系统包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算原码、时间冗余码和动态冗余效验码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果;
所述系统的运作过程如下:
S1、将原数据在填充和冗余码生成模块填充到指定比特数形成原码,并于到填充完成的一个周期将数据传输给Keccak函数运算模块,在下两个周期分别生成对应比特数的时间冗余码和动态冗余校验码X,并于这两个周期分别将时间冗余码和动态冗余校验码X传输给Keccak函数运算模块;
S21、Keccak函数运算模块将连续三个周期分别传输来的原码、时间冗余码和动态冗余效验码X经过第一级运算存储到流水线1中,然后分别经过第二级运算存储到流水线2中,再经过第三级运算存储到流水线3中,最后分别通过流水线3于三个周期进入下一轮迭代;
S22、数据在Keccak函数运算模块经过24轮Keccak轮函数算法迭代后,即完成Keccak轮函数运算生成相应的Keccak值,再将数据传输给冗余码校验模块;
S3、冗余码校验模块接收到数据后,第一个周期将原码的Keccak值保存;第二个周期将原码的Keccak值与时间冗余码的Keccak值比较,如果不同则输出临时性故障;第三个周期将动态冗余效验码X的Keccak值与动态冗余效验码Y比较,如果不同则输出永久性故障,如果均无故障则输出原码的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迭代结构拆分重组后在其中插入两级流水线,与原本的一级寄存器共同形成三级流水线。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811123524.4/1.html,转载请声明来源钻瓜专利网。