[發明專利]一種基于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.szxzyx.cn/pat/books/201811123524.4/1.html,轉載請聲明來源鉆瓜專利網。





