CN102355348A - 一种容错的des算法加速器 - Google Patents
一种容错的des算法加速器 Download PDFInfo
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种容错的DES算法加速器。该加速器为一种采用三模冗余(TMR)和汉明纠错码的方法,实现一种对单粒子翻转(SEUs)容错的DES算法加速器,包括读入模块、存储模块、DES加密运算模块以及自动机控制模块。DES加密运算模块中,采用三模冗余的方式对IP、PC-1和IP-1的容错加固。16个轮函数模块中,对每一轮的结果寄存器采用汉明码来实现检错纠错。在寄存器的输入端设置汉明编码器,输出端设置汉明解码器,进行校验和纠错,之后该输出作为下一轮运算的输入进行后续运算。
Description
技术领域
本发明涉及集成电路领域的一种算法加速器,尤其是一种带有容错功能的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个轮函数模块中,对每一轮的结果寄存器采用汉明码来实现检错纠错,在寄存器的输入端设置汉明编码器,输出端设置汉明解码器,进行校验和纠错,之后该输出作为下一轮运算的输入进行后续运算。
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)
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)
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 | 苏州中科集成电路设计中心有限公司 | 对称分组密码的生成方法及其装置 |
-
2011
- 2011-06-28 CN CN2011101774896A patent/CN102355348A/zh active Pending
Patent Citations (3)
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)
Title |
---|
高忠杰: "基于FPGA的高可靠R80515的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 201004, 15 April 2010 (2010-04-15), pages 33 - 40 * |
Cited By (8)
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 |