CN109460309B - 一种基于FPGA的Keccak算法故障检测系统 - Google Patents

一种基于FPGA的Keccak算法故障检测系统 Download PDF

Info

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
Application number
CN201811123524.4A
Other languages
English (en)
Other versions
CN109460309A (zh
Inventor
王子甲
李国元
贺小勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201811123524.4A priority Critical patent/CN109460309B/zh
Publication of CN109460309A publication Critical patent/CN109460309A/zh
Application granted granted Critical
Publication of CN109460309B publication Critical patent/CN109460309B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error 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算法故障检测系统
技术领域
本发明涉及加密算法领域,具体涉及一种基于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迭代结构拆分重组后在其中插入两级流水线,与原本的一级寄存器共同形成三级流水线。
CN201811123524.4A 2018-09-26 2018-09-26 一种基于FPGA的Keccak算法故障检测系统 Expired - Fee Related CN109460309B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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