CN109460309B - 一种基于FPGA的Keccak算法故障检测系统 - Google Patents
一种基于FPGA的Keccak算法故障检测系统 Download PDFInfo
- Publication number
- CN109460309B CN109460309B CN201811123524.4A CN201811123524A CN109460309B CN 109460309 B CN109460309 B CN 109460309B CN 201811123524 A CN201811123524 A CN 201811123524A CN 109460309 B CN109460309 B CN 109460309B
- Authority
- CN
- China
- Prior art keywords
- code
- keccak
- redundant
- original
- dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 29
- 238000004519 manufacturing process Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 5
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000000427 antigen Substances 0.000 description 1
- 102000036639 antigens Human genes 0.000 description 1
- 108091007433 antigens Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的Keccak算法故障检测系统,包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算该三个编码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果。所述系统只在极少量降低吞吐率和增加资源使用率的情况下实现故障检测方案,并且双冗余码的方案保证了既能检测临时性故障也可以检测永久性故障还能够抵御大多数硬件木马的攻击。
Description
技术领域
本发明涉及加密算法领域,具体涉及一种基于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算法故障检测系统,使得在只降低极少吞吐率和增加极少电路资源的前提下,既可以检测临时性故障又可以检测永久性故障还可以抵御大部分的硬件木马攻击。
本发明的目的可以通过如下技术方案实现:
一种基于FPGA的Keccak算法故障检测系统,包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算该三个编码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果。
进一步地,所述填充和冗余码生成模块按照Keccak算法标准将原数据填充到指定比特数形成原码,在填充后一个周期产生时间冗余码,再下一个周期产生动态冗余校验码X,并于这三个周期分别将这三个编码传送给Keccak函数运算模块。
进一步地,所述时间冗余码是与原码相同的编码,用于检测暂时性故障。
进一步地,动态冗余校验码成对存储于FPGA中,由动态冗余校验码X和动态冗余校验码Y组成,分别存储于填充和冗余码生成模块以及冗余码校验模块,动态冗余校验码Y是已知正确的由动态冗余校验码X经Keccak算法运算的Keccak值;动态冗余校验码能够检测永久性故障,且随时间增加其故障覆盖率动态增加,还能够检测大部分硬件木马导致的故障。
进一步地,所述Keccak函数运算模块按照Keccak算法标准构建RTL电路,并由三级流水线组成,将原本Keccak的Sponge迭代结构拆分重组后在其中插入两级流水线,与原本的一级寄存器共同形成三级流水线。
进一步地,所述冗余码校验模块先将上述原码的Keccak值与上述时间冗余码的Keccak值比较,不匹配则输出暂时性故障,再将上述动态冗余校验码X的Keccak值与上述动态冗余校验码Y比较,不匹配则输出永久性故障,如果无故障,则输出原码的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值。
本发明与现有技术相比,具有如下优点和有益效果:
本发明提供的基于FPGA的Keccak算法故障检测系统,只在极少量降低吞吐率和增加资源使用率的情况下实现故障检测方案,并且双冗余码的方案保证了既能检测临时性故障也可以检测永久性故障还能够抵御大多数硬件木马的攻击。
附图说明
图1为本发明实施例基于FPGA的Keccak算法故障检测系统的数据流程示意图。
图2(a)为无故障检测的Keccak模块所消耗的时间成本示意图,图2(b)为无流水线结构的Keccak故障检测方案所消耗的时间成本示意图,图2(c)为流水线结构的Keccak故障检测方案所消耗的时间成本示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
本实施例提供了一种基于FPGA的Keccak算法故障检测系统,包括填充和冗余码生成模块、Keccak函数运算模块和冗余码校验模块,填充和冗余码生成模块将原数据填充到指定比特数形成原码,存于寄存器中并生产对应比特数的时间冗余码和动态冗余校验码X,再由Keccak函数运算模块中三级流水线同时运算该三个编码生成其对应的Keccak值,最后由冗余码校验模块校验原码、时间冗余码和动态冗余校验码X的Keccak值,输出校验结果;
所述填充和冗余码生成模块按照Keccak算法标准将原数据填充到指定比特数形成原码,在填充后一个周期生产时间冗余码,再下一个周期产生动态冗余校验码X,并于这三个周期分别将这三个编码传送给Keccak函数运算模块;
填充和冗余码生成模块以及冗余码校验模块分别生成动态冗余校验码X和动态冗余校验码Y,用于解决传统时间冗余方案无法检测永久性故障和硬件木马故障的问题。动态冗余校验码是存储在电路中、可以动态存取的编码对,每对动态冗余效验码是由动态冗余校验码X和动态冗余校验码Y组成的,动态冗余校验码Y是已知正确的由动态冗余校验码X经Keccak算法运算的Keccak值。当动态冗余校验码X经过被测Keccak运算电路之后,将计算后的动态冗余校验码X的Keccak值与冗余码校验模块的动态冗余校验码Y比较,如果相同则表明没有永久性故障和木马攻击故障。且由于其为动态码,校验码组越多则故障覆盖率越高。
所述冗余码校验模块先将上述原码的Keccak值与上述时间冗余码的Keccak值比较,不同则输出暂时性故障,再将上述动态冗余校验码X的Keccak值与上述动态冗余校验码Y比较,不匹配则输出永久性故障,如果无故障,则输出原码的Keccak值。
具体地,所述Keccak函数运算模块按照Keccak算法标准构建RTL电路,并由三级流水线组成,将原本Keccak的Sponge迭代结构拆分重组后在其中插入两级流水线,与原本的一级寄存器共同形成三级流水线。三级流水线方案用于解决传统时间冗余方案中吞吐率减半(由于本系统是双冗余码方案,实际上如果不采用流水线将会使吞吐率变为之前的三分之一)的问题。如图2(a)为无故障检测的Keccak模块所消耗的时间,图2(b)为无流水线结构的Keccak故障检测方案,如图所示该方案完成一次运算的时间成本是无故障检测的3倍,图2(c)为带流水线结构的Keccak故障检测方案,通过三级流水线设计避免了多余的时间成本,如图所示该方案完成一次运算时间与无故障检测的Keccak模块所消耗的时间一致。原码、时间冗余码和动态冗余效验码分别随时间周期流过三级流水线的每一级,保证了三种编码的同时运算又互不干扰。
具体地,所述系统的数据流程示意图如图1所示,运作过程如下:
S1、将原数据在填充和冗余码生成模块填充到1088bits形成原码,并于到填充完成的一个周期将数据传输给Keccak函数运算模块,在下两个周期分别生成1088bits的时间冗余码和动态冗余校验码X,并于这两个周期分别将时间冗余码和动态冗余校验码X传输给Keccak函数运算模块;
S21、Keccak函数运算模块将连续三个周期分别传输来的原码、时间冗余码和动态冗余效验码X经过第一级运算存储到流水线1中,然后分别经过第二级运算存储到流水线2中,再经过第三级运算存储到流水线3中,最后分别通过流水线3于三个周期进入下一轮迭代;
S22、数据在Keccak函数运算模块经过24轮Keccak轮函数算法迭代后,即完成Keccak轮函数运算生成相应的Keccak值,再将数据传输给冗余码校验模块;
S3、冗余码校验模块接收到数据后,第一个周期将原码的Keccak值保存;第二个周期将原码的Keccak值与时间冗余码的Keccak值比较,如果不同则输出临时性故障;第三个周期将动态冗余效验码X的Keccak值与动态冗余效验码Y比较,如果不同则输出永久性故障,如果均无故障则输出原码的Keccak值。
由上述步骤可以完成临时性故障和永久性故障检测并输出原码的Keccak值,原本要72个周期完成的工作变为只要24个周期,并在未使电路翻倍的情况下检测到了永久性故障和木马故障。
根据本发明的实施例,使用Verilog HDL语言完成所述基于FPGA的Keccak算法故障检测系统设计,并采用Vivado进行仿真综合最后上板验证。通过验证与标准输出一致,并可以检测临时性和永久性故障。
本设计在Xilinx xc7a100tcsg324器件上运行最高频率可以达到360MHz;吞吐率可以达到15.667Gbps。对比只有Keccak算法功能而无故障检测系统的设计,吞吐率只降低了13%,资源只多使用了12%,相较于原本吞吐率降低50%或资源多使用100%的传统方案是一个巨大的提示。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。
Claims (5)
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迭代结构拆分重组后在其中插入两级流水线,与原本的一级寄存器共同形成三级流水线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811123524.4A CN109460309B (zh) | 2018-09-26 | 2018-09-26 | 一种基于FPGA的Keccak算法故障检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811123524.4A CN109460309B (zh) | 2018-09-26 | 2018-09-26 | 一种基于FPGA的Keccak算法故障检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109460309A CN109460309A (zh) | 2019-03-12 |
CN109460309B true CN109460309B (zh) | 2020-09-22 |
Family
ID=65607005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811123524.4A Expired - Fee Related CN109460309B (zh) | 2018-09-26 | 2018-09-26 | 一种基于FPGA的Keccak算法故障检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460309B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068996A1 (en) * | 2009-12-04 | 2011-06-09 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
CN105320575A (zh) * | 2015-10-27 | 2016-02-10 | 首都师范大学 | 一种双模冗余流水线的自校验及恢复装置与方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720766B2 (en) * | 2012-04-19 | 2017-08-01 | Industry-Academic Cooperation Foundation Chosun University | Self-healing, fault-tolerant FPGA computation and architecture |
-
2018
- 2018-09-26 CN CN201811123524.4A patent/CN109460309B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068996A1 (en) * | 2009-12-04 | 2011-06-09 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
CN105320575A (zh) * | 2015-10-27 | 2016-02-10 | 首都师范大学 | 一种双模冗余流水线的自校验及恢复装置与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109460309A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160320451A1 (en) | Simulation verification method for fpga function modules and system thereof | |
CN103890732B (zh) | 数字错误校正 | |
US20160098333A1 (en) | Detection of fault injection attacks | |
Canto et al. | Error detection schemes assessed on FPGA for multipliers in lattice-based key encapsulation mechanisms in post-quantum cryptography | |
CN101350716A (zh) | 用于可变位宽的哈希值的有效生成的系统和方法 | |
CN103150441B (zh) | 一种软硬件协同仿真的验证平台及其构建方法 | |
US11985226B2 (en) | Efficient quantum-attack resistant functional-safe building block for key encapsulation and digital signature | |
US20190319802A1 (en) | Parallel processing techniques for hash-based signature algorithms | |
Tomashevich et al. | Protecting cryptographic hardware against malicious attacks by nonlinear robust codes | |
Wang et al. | Reliable and secure memories based on algebraic manipulation correction codes | |
CN109460309B (zh) | 一种基于FPGA的Keccak算法故障检测系统 | |
US11061997B2 (en) | Dynamic functional obfuscation | |
Bandeira et al. | Impact of radiation-induced soft error on embedded cryptography algorithms | |
Shumsky et al. | Robustness of security-oriented binary codes under non-uniform distribution of codewords | |
JP2014038294A (ja) | 故障攻撃検出回路および暗号処理装置 | |
CN106372523A (zh) | 一种modem文件安全保护方法及系统 | |
Harish | Towards designing energy-efficient secure hashes | |
CN115664849A (zh) | Bmc及其加密数据生成系统、方法、设备及存储介质 | |
CN109711204A (zh) | 基于路径延迟指纹的硬件木马检测方法 | |
Mukhopadhyay et al. | Hierarchical verification of Galois field circuits | |
Han et al. | Progressive data retrieval for distributed networked storage | |
Jamuna et al. | Design and implementation of reliable encryption algorithms through soft error mitigation | |
Ustaoglu et al. | Fault tolerant register file design for MIPS AES-crypto microprocessor | |
CN104378174A (zh) | 一种基于研磨机系统的通信数据包校验方法 | |
US11271721B2 (en) | Distributed secure array using intra-dice communications to perform data attestation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200922 |