CN102355348A - 一种容错的des算法加速器 - Google Patents

一种容错的des算法加速器 Download PDF

Info

Publication number
CN102355348A
CN102355348A CN2011101774896A CN201110177489A CN102355348A CN 102355348 A CN102355348 A CN 102355348A CN 2011101774896 A CN2011101774896 A CN 2011101774896A CN 201110177489 A CN201110177489 A CN 201110177489A CN 102355348 A CN102355348 A CN 102355348A
Authority
CN
China
Prior art keywords
module
fault
des
tolerant
key
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.)
Pending
Application number
CN2011101774896A
Other languages
English (en)
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2011101774896A priority Critical patent/CN102355348A/zh
Publication of CN102355348A publication Critical patent/CN102355348A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种容错的DES算法加速器。该加速器为一种采用三模冗余(TMR)和汉明纠错码的方法,实现一种对单粒子翻转(SEUs)容错的DES算法加速器,包括读入模块、存储模块、DES加密运算模块以及自动机控制模块。DES加密运算模块中,采用三模冗余的方式对IP、PC-1和IP-1的容错加固。16个轮函数模块中,对每一轮的结果寄存器采用汉明码来实现检错纠错。在寄存器的输入端设置汉明编码器,输出端设置汉明解码器,进行校验和纠错,之后该输出作为下一轮运算的输入进行后续运算。

Description

一种容错的DES算法加速器
技术领域
本发明涉及集成电路领域的一种算法加速器,尤其是一种带有容错功能的DES算法加速器。
背景技术
DES(Data Encryption Standard)算法由IBM公司开发,并被美国国家标准局(NIST)于1977年采纳作为标准,此后,DES算法一度成为世界上最广泛使用的密码算法。DES是一种对称加密算法,加密和解密采用相同的密钥。加密时把明文(PlainText)以64位为单位分成块,经过16轮迭代,最终产生64位密文(CipherText),每轮迭代使用的48位子密钥由初始的64位密钥产生。
在许多应用中,如航天、金融、核反应堆、交通管制、医疗等领域,如果计算机系统不能稳定可靠地工作,可能造成巨大损失,甚至灾难性后果。以空间宇航应用为例,在宇宙中,集成电路往往受到电磁辐射的影响,单个高能粒子射入半导体敏感区,可能使器件逻辑状态翻转,从而导致系统紊乱而发生事故,这便是单粒子翻转(SEUs,Single Event Upsets)错误,这种错误如果不加以处理将带来极其严重的后果。近年来,人们在追求计算机的高性能的同时,也把高可靠性放在了越来越重要的地位。容错技术为计算机提供了这样的能力:当计算机的一个或多个关键部分发生故障时,能够自行检测和诊断,并采取相应措施,保证计算机完成规定功能,或者牺牲部分性能保证计算机在可接受范围内继续工作。容错技术是提高计算机系统可靠性的主要手段。
各种容错技术都可以归结于冗余(redundancy)技术。几种常见的冗余技术有硬件冗余,信息冗余,时间冗余,以及软件冗余。通常硬件故障用前三种冗余进行加固,而软件故障采用软件冗余来加固。硬件冗余分为静态冗余和动态冗余,最常用的冗余方式是三模冗余(TMR,Triple Modular Redundancy),它采用三个相同的模块接受同一个输入,产生的三个结果送至表决器(voter)进行表决。通常采用多数表决方式,即有两个或两个以上结果相同,则认定为正确结果。信息冗余最常见的形式是利用编码技术进行检错和纠错,即在数据位之外,增加一些冗余的校验位,使原来不相关的数据位变得相关,利用这种相关性可以在数据的处理、存储、传输过程中实现检错和纠错。常用的可靠性编码有奇偶校验码、汉明码、循环冗余码、校验和码、伯格码等。
现有的加速器设计中还未发现有利用FPGA芯片实现带有容错功能的DES算法加速器。
发明内容
本发明要解决的主要技术问题:在较高的吞吐量的前提下,设计一种带有容错功能的DES算法加速器,同时尽可能减小由于容错功能带来的硬件开销。
本发明的技术方案:
与现有的DES算法加速器不同,本发明采用三模冗余(TMR)和汉明纠错码的方法,实现一种对单粒子翻转(SEUs)容错的DES算法加速器。
本发明包括读入模块、存储模块、DES加密运算模块以及自动机控制模块,数据的处理流程分为如下几个步骤:
(一)读入模块将密钥读入存储模块,在FPGA里存储模块可以用RAM来实现;
(二)DES加密运算模块从存储模块中取得密钥,进行加密运算;
(三)在加密完成之后,DES加密运算模块将加密得到的密文写回至存储模块。
以上三个步骤都是在自动机控制模块的控制之下进行的,容错功能的实现是在DES加密运算模块中。
DES加密运算模块包括初始模块、16个轮函数模块和输出模块,初始模块包括明文初始置换IP模块和密钥初始置换PC-1模块,输出模块主要完成IP-1操作得到密文,具体的数据处理流程分为如下几个步骤:
(一)初始模块与第1个轮函数模块相连,它的输入是64位明文以及64位的密钥,把明文置换之后的结果分为左右两个部分L0和R0,密钥置换之后的结果分为左右两个部分C0和D0,均送给第1个轮函数模块进行处理。
(二)16个轮函数模块采用级联的方式相连,每个轮函数模块由明文处理模块和密钥调度模块组成。明文处理模块完成以下操作:①E/P扩展,将32位的Ri-1扩展扩充为48位;②将E/P扩展得到的48位序列与48位的子密钥进行异或操作;③S盒运算,对异或的结果进行S盒运算操作,得到32位结果;④P盒置换;⑤上一轮的左半部分Li-1与P盒置换后的结果进行异或得到本轮的右半部分Ri,本轮的左半部分直接由上一轮的右半部分得到,即Li=Ri-1,Ri=Li-1^f(Ri-1,Ki)。子密钥生成模块主要有两个操作,即循环移位操作LS以及压缩置换PC-2,所得的Ci+1和Di+1送往下一轮。各个子密钥的生成过程如下:初始密钥为64位,去除作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效密钥。初始时,对密钥做置换选择PC-1,然后将得到的56位密钥分为左半部分C0和右半部分D0送往第1个轮函数模块。之后的每一轮中,将左半部分Ci和右半部分Di同时进行向左循环移位LS操作,移位位数为1位或者2位,移位之后的左右两个部分Ci+1和Di+1分别送往下一轮子密钥的生成过程。将循环移位后的两个28位拼接为56位,再做一个密钥选取即压缩置换PC-2,即生成本轮的子密钥Ki
(三)输出模块在DES加密运算模块的最后,它与第16个轮函数模块相连,通过IP-1置换操作得到密文(置换IP-1与IP互为逆置换)。
本发明的容错功能的实现是在DES加密运算模块中,对IP、PC-1和IP-1的容错加固采用三模冗余的方式,即对输入数据的每个位,都同时做三份运算,然后将结果用表决器进行表决。通常采用多数表决的方式,即有两个或两个以上结果相同,则认定为正确结果。16个轮函数模块中,对每一轮的结果寄存器采用汉明码来实现检错纠错。在寄存器的输入端设置汉明编码器,输出端设置汉明解码器,进行校验和纠错,之后该输出作为下一轮运算的输入进行后续运算。
本发明的优点在于:用三模冗余和汉明检错纠错码的方式对DES算法进行了加固,使其具备了对单粒子翻转(SEUs)容错的能力,同时该设计方案具有较高的吞吐率。
附图说明
图1是现有的DES算法加速器结构图。
图2是现有的DES算法加速器单轮运算模块的结构图。
图3是现有的DES算法加速器的S盒运算的结构图。
图4是本发明的总体结构图。
图5是本发明涉及的DES加密运算模块的结构图。
图6是本发明涉及的初始模块的结构图。
图7是本发明涉及的单轮运算模块的结构图。
图8是本发明涉及的表决器的结构图。
图9是本发明涉及的输出模块的结构图。
具体实施方式
图1为现有的DES算法加速器的结构图。现有的DES算法加速器模块由初始模块、16个轮函数模块和输出模块组成,初始模块包括明文初始置换IP和密钥初始置换PC-1,输出模块主要完成IP-1操作得到密文。
首先对初始模块进行说明,IP操作是对64位的明文做一个置换,得到新的64位明文,分成32位的左右两个部分L0和R0送给第1个轮函数模块。PC-1操作是对64位密钥,去除作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效密钥,并做一次置换得到新的56位密钥,分成28位的左右两个部分C0和D0送给第1个轮函数模块。
16个轮函数模块如图2所示,之后进行介绍。以下对输出模块进行说明。输出模块将第16轮的32位的L16和R16拼接为64位,然后进行IP-1操作,得到密文。IP-1与IP互为逆操作,即对序列S有:Ip-1[IP[S]]=IP[IP-1[S]]=S。
图2为现有的DES算法加速器单轮运算模块的结构图。每个轮函数模块由明文处理模块和密钥调度模块组成。明文处理模块完成以下操作:①E/P扩展,将32位的Ri-1扩展扩充为48位;②将E/P扩展得到的48位序列与48位的子密钥进行异或操作,子密钥由密钥调度模块生成;③S盒运算,对异或的结果进行S盒运算操作,得到32位结果,S盒运算在后面介绍;④P盒置换,把32位序列转化为新的32位序列;⑤上一轮的左半部分Li-1与P盒置换后的结果进行异或得到本轮的右半部分Ri,本轮的左半部分直接由上一轮的右半部分得到,即Li=Ri-1,Ri=Li-1^f(Ri-1,Ki)。以上①~④步称为Feistel函数,即图1中所示的f函数。子密钥生成模块主要有两个操作,即循环移位操作LS以及压缩置换PC-2。每一轮中,将左半部分Ci和右半部分Di同时进行向左循环移位操作LS,移位位数为1位或者2位,移位之后的左右两个部分Ci+1和Di+1分别送往下一轮子密钥的生成过程。将循环移位后的两个28位拼接为56位,再进行密钥选取即压缩置换PC-2,生成本轮的48位的子密钥Ki
图3为现有的DES算法加速器的S盒运算的结构图。S盒运算是DES算法的核心,它是算法中唯一的非线性部分,是算法安全的关键。如图3所示,8个S盒每个S盒输入为6位,输出位4位,整体上S盒运算输入为48位,输出为32位。输入的6位中的第1位和第6位表示S盒查找表的行数,中间四位表示S盒查找表的列数,通过查找S盒中对应的数值得到输出的4位二进制数。
图4为本发明的总体结构图。本发明由读入模块、存储模块、DES加密运算模块以及自动机控制模块组成。读入模块将密钥读入存储模块,DES加密运算模块从存储模块中取得数据进行加密运算,并将结果写回至存储模块,以上动作都由自动机控制模块进行控制。
图5本发明涉及的DES加密运算模块的结构图。DES算法加速器模块由初始模块、16个轮函数模块和输出模块组成,初始模块包括明文初始置换IP和密钥初始置换PC-1,输出模块主要完成IP-1操作得到密文。与现有的DES算法加速器的主要不同之处在于,在初始模块、16个轮函数模块和输出模块都进行了容错加固,初始模块和输出模块采用的是三模冗余(TMR)的方式,16个轮函数模块采用汉明码进行检错纠错。
在DES加密运算模块中每一轮的运算结果用寄存器暂存,实现了DES加密运算的全流水,从而达到较高的吞吐率。用Xilinx Virtex 5系列的FPGA芯片设计实现该加密模块,可以达到9Gbps的吞吐率。
图6为本发明涉及的初始模块的结构图。该模块与现有的DES算法加速器的初始模块类似,所不同的是本发明涉及的初始模块进行了容错加固,即对IP和PC-1实现了三模冗余。如图6所示,对64位的明文,同时做三份IP操作,然后将三份结果送往表决器(voter)进行表决判断,表决器的结果即为IP操作的结果,分为左右两个部分L0和R0送给第1个轮函数模块。类似的,对64位的密钥,同时做三份PC-1操作,然后将三份结果送往表决器进行表决判断,表决器的结果即为PC-1操作的结果,分为左右两个部分C0和D0送给第1个轮函数模块。表决器通常采用多数表决的方式,其相关内容将在后面进行介绍。
图7为本发明涉及的单轮运算模块的结构图。该模块与现有的DES算法加速器单轮运算模块类似,所不同的是本发明涉及的单轮运算模块采用汉明码进行检错纠错,实现了寄存器对SEUs的容错。在单轮运算模块中,明文处理模块的结果左半部分Li和右半部分Ri均为32位,密钥处理模块的结果左半部分Ci和右半部分Di均为28位,它们都用寄存器暂存并作为输入传递给下一个单轮运算模块。在寄存器的输入,进行汉明编码,而在寄存器的输出,即下一个单轮运算模块的输入进行汉明解码。根绝汉明编码理论,设数据位为k位,检验位为r位,需满足2r-1≥k+r。因而,寄存器Li和Ri的码字为(38,32),寄存器Ci和Di的码字为(34,28),它们的检验位均为6位。汉明编码可以实现发现2位错,纠正1位错。
图8为本发明涉及的表决器的结构图。本发明采用最为常用的多数表决方式,也即在三模冗余中,如果有两个或者两个以上相同,则认定为正确结果。表决器的结构如图8所示,只使用简单的与门和或门就能实现。对于结果A、B、C,表决器的输出为Z=AB+BC+AC。
图9为本发明涉及的输出模块的结构图。与现有的DES算法加速器的输出模块类似,所不同的是本发明涉及的输出模块对IP-1用三模冗余的方式进行了容错加固。输出模块进行的操作时将第16轮的32位的L16和R16拼接为64位,然后同时做三份IP-1操作,将三份结果送往表决器进行表决判断,表决器的结果即为IP-1操作的结果,即64位的密文。

Claims (4)

1.一种容错的DES算法加速器,其特征在于,该加速器为一种采用三模冗余(TMR)和汉明纠错码的方法,实现一种对单粒子翻转(SEUs)容错的DES算法加速器,包括读入模块、存储模块、DES加密运算模块以及自动机控制模块,数据的处理流程分为如下几个步骤:
(一)读入模块将密钥读入存储模块,在FPGA里存储模块可以用RAM来实现;
(二)DES加密运算模块从存储模块中取得密钥,进行加密运算;
(三)在加密完成之后,DES加密运算模块将加密得到的密文写回至存储模块。
2.根据权利要求1所述的一种容错的DES算法加速器,其特征在于,数据的处理步骤在自动机控制模块的控制之下进行,容错功能的实现是在DES加密运算模块中。
3.根据权利要求1所述的一种容错的DES算法加速器,其特征在于,DES加密运算模块包括初始模块、16个轮函数模块和输出模块,初始模块包括明文初始置换IP模块和密钥初始置换PC-1模块,输出模块主要完成IP-1操作得到密文,具体的数据处理流程分为如下几个步骤:
(一)初始模块与第1个轮函数模块相连,它的输入是64位明文以及64位的密钥,把明文置换之后的结果分为左右两个部分L0和R0,密钥置换之后的结果分为左右两个部分C0和D0,均送给第1个轮函数模块进行处理;
(二)16个轮函数模块采用级联的方式相连,每个轮函数模块由明文处理模块和密钥调度模块组成;
(三)输出模块在DES加密运算模块的最后,它与第16个轮函数模块相连,通过IP-1置换操作得到密文。
4.根据权利要求1所述的一种容错的DES算法加速器,其特征在于,容错功能的实现是在DES加密运算模块中,对IP、PC-1和IP-1的容错加固采用三模冗余的方式,即对输入数据的每个位,都同时做三份运算,然后将结果用表决器进行表决,采用多数表决的方式,即有两个或两个以上结果相同,则认定为正确结果,16个轮函数模块中,对每一轮的结果寄存器采用汉明码来实现检错纠错,在寄存器的输入端设置汉明编码器,输出端设置汉明解码器,进行校验和纠错,之后该输出作为下一轮运算的输入进行后续运算。
CN2011101774896A 2011-06-28 2011-06-28 一种容错的des算法加速器 Pending CN102355348A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101774896A CN102355348A (zh) 2011-06-28 2011-06-28 一种容错的des算法加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101774896A CN102355348A (zh) 2011-06-28 2011-06-28 一种容错的des算法加速器

Publications (1)

Publication Number Publication Date
CN102355348A true CN102355348A (zh) 2012-02-15

Family

ID=45578847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101774896A Pending CN102355348A (zh) 2011-06-28 2011-06-28 一种容错的des算法加速器

Country Status (1)

Country Link
CN (1) CN102355348A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051442A (zh) * 2012-10-16 2013-04-17 中国科学院软件研究所 采用Feistel-PG结构的密码装置及加密方法
CN105955705A (zh) * 2016-04-27 2016-09-21 南京大学 一种可重构的多通道检测算法加速器
CN106603525A (zh) * 2016-12-09 2017-04-26 杭州古北电子科技有限公司 基于Sub‑GHz小无线射频设备的双向无线通信协议
CN107317673A (zh) * 2017-05-25 2017-11-03 云南电网有限责任公司电力科学研究院 一种智能电能表通信加密算法
CN112084071A (zh) * 2020-09-14 2020-12-15 海光信息技术有限公司 一种计算单元运算加固方法、并行处理器及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131719A (zh) * 2006-08-23 2008-02-27 北京同方微电子有限公司 一种用于密码学运算的微处理器内核
CN101354666A (zh) * 2008-05-22 2009-01-28 清华大学 微小卫星星载计算机数据存储用的差错检测和纠错系统
CN101729242A (zh) * 2008-10-29 2010-06-09 苏州中科集成电路设计中心有限公司 对称分组密码的生成方法及其装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131719A (zh) * 2006-08-23 2008-02-27 北京同方微电子有限公司 一种用于密码学运算的微处理器内核
CN101354666A (zh) * 2008-05-22 2009-01-28 清华大学 微小卫星星载计算机数据存储用的差错检测和纠错系统
CN101729242A (zh) * 2008-10-29 2010-06-09 苏州中科集成电路设计中心有限公司 对称分组密码的生成方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高忠杰: "基于FPGA的高可靠R80515的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 201004, 15 April 2010 (2010-04-15), pages 33 - 40 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051442A (zh) * 2012-10-16 2013-04-17 中国科学院软件研究所 采用Feistel-PG结构的密码装置及加密方法
CN103051442B (zh) * 2012-10-16 2015-06-10 中国科学院软件研究所 采用Feistel-PG结构的密码装置及加密方法
CN105955705A (zh) * 2016-04-27 2016-09-21 南京大学 一种可重构的多通道检测算法加速器
CN105955705B (zh) * 2016-04-27 2019-02-26 南京大学 一种可重构的多通道检测算法加速器
CN106603525A (zh) * 2016-12-09 2017-04-26 杭州古北电子科技有限公司 基于Sub‑GHz小无线射频设备的双向无线通信协议
CN107317673A (zh) * 2017-05-25 2017-11-03 云南电网有限责任公司电力科学研究院 一种智能电能表通信加密算法
CN112084071A (zh) * 2020-09-14 2020-12-15 海光信息技术有限公司 一种计算单元运算加固方法、并行处理器及电子设备
CN112084071B (zh) * 2020-09-14 2023-09-19 海光信息技术股份有限公司 一种计算单元运算加固方法、并行处理器及电子设备

Similar Documents

Publication Publication Date Title
US8689087B2 (en) Method and entity for probabilistic symmetrical encryption
Kerenidis et al. Exponential lower bound for 2-query locally decodable codes via a quantum argument
Mozaffari-Kermani et al. Fault detection architectures for post-quantum cryptographic stateless hash-based secure signatures benchmarked on ASIC
Fu et al. On hamming product codes with type-II hybrid ARQ for on-chip interconnects
DE102005028221B4 (de) Vorrichtung und Verfahren zum Schutz der Integrität von Daten
Simon et al. Friet: An authenticated encryption scheme with built-in fault detection
US9886597B2 (en) Method for encoding data on a chip card by means of constant-weight codes
JPH09230786A (ja) データの暗号化方法及び装置
CN102355348A (zh) 一种容错的des算法加速器
CN108632038A (zh) 信息处理装置
WO2014092183A1 (ja) ビット列照合システムと方法とプログラム
Ge et al. Reliable and secure memories based on algebraic manipulation detection codes and robust error correction
Choudhury et al. Design of hamming code encoding and decoding circuit using transmission gate logic
Wang et al. Reliable and secure memories based on algebraic manipulation correction codes
Luo et al. Concurrent error detection for reliable SHA-3 design
US8130956B2 (en) Efficient and low power encrypting and decrypting of data
CN102355349A (zh) 基于容错的idea全流水硬件加密方法
Ghosh et al. Selecting error correcting codes to minimize power in memory checker circuits
Sooraj et al. Fault tolerant FSM on FPGA using SEC-DED code algorithm
Joshi et al. Concurrent error detection for involutional functions with applications in fault-tolerant cryptographic hardware design
Rashidi Error‐correcting cryptographic S‐boxes with multiple error detection and correction
Yang et al. Coded computing for boolean functions
Mohammed Text encryption algorithm based on chaotic neural network and random key generator
Ustaoglu et al. Fault tolerant register file design for MIPS AES-crypto microprocessor
CN102222204A (zh) 基于容错的md5全流水硬件加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120215