CN102355349A - 基于容错的idea全流水硬件加密方法 - Google Patents
基于容错的idea全流水硬件加密方法 Download PDFInfo
- Publication number
- CN102355349A CN102355349A CN2011101775028A CN201110177502A CN102355349A CN 102355349 A CN102355349 A CN 102355349A CN 2011101775028 A CN2011101775028 A CN 2011101775028A CN 201110177502 A CN201110177502 A CN 201110177502A CN 102355349 A CN102355349 A CN 102355349A
- Authority
- CN
- China
- Prior art keywords
- fault
- data
- tolerant
- result
- register
- 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
- Storage Device Security (AREA)
Abstract
本发明公开了基于容错的IDEA全流水硬件加密方法。该方法包括两个步骤:首先在每次计算结果产生时对结果进行海明码编码,在每次计算需要操作数时,对寄存器中已编码的数据进行海明码解码,从而使得数据在寄存器传输过程中具有容错能力;其次,对运算部件进行三模冗余加固,即将运算的结构单元复制三份,同时进行计算,采用多数表决的方式进行仲裁,将多数相同的结果作为最后的计算结果。该方法整个流水线中仅利用一个使能信号来确定数据有效性,极大地简化了控制逻辑。
Description
技术领域
本发明涉及一种可容错的全流水的高吞吐率IDEA分组密码算法的FPGA实现方案和IDEA运算器件。
背景技术
IDEA算法是由Xue jia Lai和James Massey于1990年提出的一种分组密码算法。它开始被叫做PES(Proposed Encryption Standard,推荐加密标准)。在Biham和Shamir演示了差分密码分析之后,第二年设计者为抗此攻击,增加了密码算法的强度,把新的算法称之为IPES(Improved Proposed Encryption Standard,改进型推荐加密标准)。IPES在1992年又更名为IDEA(International Data Encryption Algorithm,国际数据加密算法)。它是目前已公开的最好和最安全的分组密码算法。IDEA算法是一个分组长度为64位的分组密码算法,密钥长度为128位,分为八轮进行迭代计算。
容错技术主要通过冗余技术来实现,硬件容错主要实现方式有三种:硬件冗余、信息冗余、时间冗余。最常用的冗余方式是三模冗余,它采用三个相同的模块接受同一个输入,产生的三个结果送至表决器进行表决。通常采用多数表决方式,即有两个或两个以上结果相同,则认定为正确结果。信息冗余最常见的形式是利用编码技术进行检错和纠错,增加校验位使原来不相关的数据位变得相关,利用这种相关性可以在数据的处理、存储、传输过程中实现检错和纠错。
IDEA分组加密算法在信息安全诸多方面都得到广泛的应用。而随着FPGA技术的发展和成熟,在FPGA上实现加密算法不仅能提高计算速度,而且可以带来密码安全性的全面提升。IDEA算法由于其多轮数的分组计算特点,计算规模庞大,其硬件的容错设计需要消耗大量的硬件资源,在吞吐率方面也会造成一定的影响,因此具有容错功能的IDEA高吞吐率硬件实现方法比较罕见,现有的加速器设计中还未发现有利用FPGA芯片实现带有容错功能的IDEA算法加速器。
发明内容
本发明旨在设计一种具有容错能力且具有超高吞吐率的IDEA硬件加密方法。在对IDEA加密算法进行了算法分析的基础上,提供了一种全流水的硬件运算结构,可以检测并纠正单粒子翻转(SEU)错误,检测双粒子翻转错误。
本发明主要包括两个步骤:首先是对IDEA加密过程的8轮107级计算进行流水全展开,其中每一级可以在一个时钟周期内完成。然后,在根据SEU可能发生的位置进行海明码容错加固。具体来说,在每次计算结果产生时对结果进行海明码编码;在每次计算需要操作数时,对寄存器中已编码的数据进行海明码解码,从而使得数据在寄存器传输过程中具有容错能力。其次,对运算部件进行三模冗余加固,即将运算的结构单元复制三份,同时进行计算,采用多数表决的方式进行仲裁,将多数相同的结果作为最后的计算结果。这点是确保数据在计算过程中具有容错能力。
本发明的优点在于:IDEA运算过程不需要复杂的控制逻辑,整个流水线中仅利用一个使能信号来确定数据有效性,极大地简化了控制逻辑。设计采用数据驱动的方式进行计算,将控制逻辑的出错的几率降到最低,并极大地提高了算法的吞吐率。根据本发明,每一轮运算都实现高度容错的IDEA加密。8轮107级流水线最高可以达到平均一个节拍处理完一个64bit文本的吞吐率。在xlinx ISE 10.1平台下布线所得频率为202MHz,吞吐率为13Gbps。
附图说明
图1本发明中系统总体结构图
图2一般的IDEA算法轮循计算流程图
图3一般的IDEA算法模乘运算的计算流程图
图4本发明中IDEA算法加速器的流水线示意图
图5本发明中IDEA算法加速器容错流水线设计图
图6本发明中表决器的设计图
具体实施方式
附图2中的主要有三种运算部件,分别是异或、模216加、模216+1乘。其中圆加符号代表16位异或运算,即将两个16位的数据进行按位异或运算。方加符号代表模216加运算,将两个16位数据进行相加,而后对计算结果进行16位取模,得到最终的计算结果。而圆点符号代表了模216+1乘运算。模乘运算流程将在后面具体介绍。
附图2中X代表待加密的明文和中间密文,而Y代表加密后的密文,Z代表加密用的密钥。字母右下角的数字代表其分组。例如Y1就代表密文的第一组,因为每组是16位,所以即为密文的前16位比特。
首先,对一般的IDEA加密硬件实现的结构进行简要说明。
参照图1,一般的IDEA硬件加密实现结构主要由读入、输出、迭代计算模块、最后转换计算模块和控制模块组成。其中读入模块负责与控制端的主机内存进行交互,取得待加密的明文和加密所使用的密钥。如果待加密的原始数据没有进行过分块处理,这一模块还可以对数据进行分块。其分块方式为,以64bit为单位分组对待加密的文本进行处理,每一个分组又被划分为4个16bit的子分组。迭代计算模块则进行IDEA加密的轮运算操作,经过八轮的迭代计算,将最后的中间密文送入到最后转换计算模块,计算出最后的密文,再将结果传递给输出模块进行输出。控制器模块负责协调各功能模块之间的数据传递、状态控制等方面。
参照图2,对一般的IDEA轮询加密结构进行说明。在一般的IDEA硬件加密设计中,负责进行加密轮运算的单元是被循环利用的,一块数据在该单元里循环8次之后才能得到最后转换前的中间密文,然后经过转换之后得到最后的密文。如图2,64位数据分组成4个16位子分组:X1,X2,X3,X4。这4个子分组成为算法的第一轮的输入,总共由八轮。在每一轮中,这4个子分组相互间相异或、相加、相乘,且与6个16位子密钥相异或、相加、相乘。在轮与轮之间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。在每一轮的末尾,将结果形成四个新的子分组,将中间两个分组交换,作为下一轮的输入。经过八轮运算之后,由一个最终的输出变换,最后将这4个子分组重新连接到一起产生密文。子密钥的产生原理如下:首先,将128位密钥分成8个16位密钥,这是算法的第一批子密钥(其中第一轮6个,第二轮头两个);然后密钥向左环移25位后再分成8个子密钥,开始4个用在第二轮,后面4个用在第三轮,密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。
下面说明IDEA算法中的模乘运算过程。参照图3,模乘运算首先对计算的两个16位数进行乘法运算,将乘法结果分为高16位和低16位。对高16位和低16位数据进行比较和减法运算,再将两个运算结果相加,再将最后的结果同开始输入的两个16位数据,以及两个16位数据分别减1得到的新数据这五个数据进行选择,得到最终的模乘结果。
然后,在一般的IDEA加密硬件实现的基础上,下面主要说明本发明中迭代计算模块和最后转换计算模块的全流水实现的工作流程。
参照图4,在本发明中,对数据分组进行8轮加密迭代计算和最后的转换计算总共被分解为107级流水线。根据数据流图,为了充分开发算法的并行性,把能够同时执行的运算放入同一级流水线上计算。最后得到每轮的迭代计算需要7步运算,而由于模乘运算需要3个时钟周期,所以每一轮迭代计算需要流水线级数为13级。IDEA算法硬件加速器总共需要的流水线级数为13*8+3=107级。在流水线实现时,每级流水线利用寄存器将输出数据寄存,对于跨一级流水线的计算数据,利用寄存器进行传递寄存。这样使得数据可以正确地在流水线中传递,并通过数据有效位标志本节拍的计算结果是否有效。数据有效位在初始化时置0,当输入模块接收到有效明文之后,将数据有效位置高。在流水线中将数据有效位每级传递寄存,并将计算出的密文和该密文的有效位一起送入输出模块中。这样在保证流水线不停顿的情况下,完成数据的有效识别和写回操作。在输出模块中,如果有效位为0,则将结果舍弃。对于流水线的控制,用流水线开始使能信号和结束使能信号,使能信号也在流水线中传递寄存,这样用最少的控制逻辑实现了数据驱动的流水线计算模式,使得流水线控制逻辑精简并且使得流水线保持较高的吞吐率。
参照图5,为了使本发明的IDEA加密算法加速器具有较高的抗灾难能力,我们在流水线中加入了容错设计。容错设计主要包括两个方面:一是对流水线中寄存器寄存数据进行汉明编码,通过信息冗余的方式对数据进行容错设计;二是对流水线中所有的运算单元实现三模冗余,通过一个三输入的表决器实现对计算结果的容错设计。
首先说明我们第一步容错设计。对于流水线数据的寄存,为了防止在流水寄存过程中出现比特翻转的情况,我们在寄存器的输入端进行汉明编码,而在寄存器的输出端进行汉明解码。由于加速器中流水寄存级数较深,为了提升加速器的效率并且降低资源占用率,设计时采用只对计算单元输出的、即将寄存到寄存器中的数据进行编码,对从寄存器取出、即将送入运算单元进行计算的数据进行解码。而对流水传递寄存的中间数据不进行任意操作。如果前面的寄存器已经解码过,而这个数据又必要继续流水寄存,那么在下一个流水寄存前必须进行汉明编码。这主要因为在中间寄存的数据发声比特翻转的可能性较低,并且在最后使用数据之前进行解码相对于中间每次编解码来说,实现的功能和效果是完全一样的。这样实现的优势在于进一步地提升了算法容错加速器的效率及吞吐率。根据汉明编码理论,设数据位为k位,检验位为r位,需满足条件2r-1≥k+r。由于IDEA算法容错加速器中每个寄存器都寄存16位数据,所以码字为(21,16),其中检验位为5位。对于子密钥在产生时进行编码,存入寄存器,并且在使用时进行解码。汉明编码可以检测2位比特翻转错误,检测并能纠正1位比特翻转错误。
然后再说明第二步容错设计。第二步容错设计即对流水线中每一个计算单元进行三模冗余,并在最后通过一个按位三模表决器确定计算结果。按位三模表决器的原理是如果三个副本中的同一位之间有不同,则选择多数派进行输出。这样的设计效果是,如果计算结果一个副本发生了数位错误,只要另外两个副本对应的数据位不发生错误,仍然可以输出正确结果。本发明采用最为常用的多数表决方式,也即在三模冗余中,如果有两个或者两个以上相同,则认定为正确结果。表决器的结构如图6所示,通过与门和或门实现。对于结果A、B、C,表决器的输出为Z=AB+BC+AC。
最后,当计算结果从最后一级流水线中流出,如图4所示,在第107个节拍,流水线末端根据使能信号的取值决定是否输出结果,如果为1则认为输出的子密文分组是有效输出,对子密文进行拼接之后输出64位的明文。
Claims (5)
1.基于容错的IDEA全流水硬件加密方法,其特征在于,该方法包括两个步骤:首先在每次计算结果产生时对结果进行海明码编码,在每次计算需要操作数时,对寄存器中已编码的数据进行海明码解码,从而使得数据在寄存器传输过程中具有容错能力;其次,对运算部件进行三模冗余加固,即将运算的结构单元复制三份,同时进行计算,采用多数表决的方式进行仲裁,将多数相同的结果作为最后的计算结果。
2.根据权利要求1所述的基于容错的IDEA全流水硬件加密方法,其特征在于,对数据分组进行8轮加密迭代计算和最后的转换计算总共被分解为107级流水线,把能够同时执行的运算放入同一级流水线上计算,在流水线实现时,每级流水线利用寄存器将输出数据寄存,对于跨一级流水线的计算数据,利用寄存器进行传递寄存,这样使得数据正确地在流水线中传递,并通过数据有效位标志本节拍的计算结果是否有效。
3.根据权利要求1所述的基于容错的IDEA全流水硬件加密方法,其特征在于,容错设计包括两步骤:一是对流水线中寄存器寄存数据进行汉明编码,通过信息冗余的方式对数据进行容错设计;二是对流水线中所有的运算单元实现三模冗余,通过一个三输入的表决器实现对计算结果的容错设计。
4.根据权利要求1所述的基于容错的IDEA全流水硬件加密方法,其特征在于,第一步容错设计为:对于流水线数据的寄存,为了防止在流水寄存过程中出现比特翻转的情况,在寄存器的输入端进行汉明编码,而在寄存器的输出端进行汉明解码。
5.根据权利要求1所述的基于容错的IDEA全流水硬件加密方法,其特征在于,第二步容错设计为:对流水线中每一个计算单元进行三模冗余,并在最后通过一个按位三模表决器确定计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101775028A CN102355349A (zh) | 2011-06-28 | 2011-06-28 | 基于容错的idea全流水硬件加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101775028A CN102355349A (zh) | 2011-06-28 | 2011-06-28 | 基于容错的idea全流水硬件加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102355349A true CN102355349A (zh) | 2012-02-15 |
Family
ID=45578848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101775028A Pending CN102355349A (zh) | 2011-06-28 | 2011-06-28 | 基于容错的idea全流水硬件加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102355349A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326712A (zh) * | 2013-05-07 | 2013-09-25 | 清华大学 | 一种时钟多选一电路及多选一方法 |
CN105356996A (zh) * | 2015-12-14 | 2016-02-24 | 联想(北京)有限公司 | 一种密文处理方法、电子设备及密文处理装置 |
CN109271282A (zh) * | 2018-09-06 | 2019-01-25 | 北京时代民芯科技有限公司 | 一种单粒子多位错自主修复三冗余流水线及设计方法 |
CN112084071A (zh) * | 2020-09-14 | 2020-12-15 | 海光信息技术有限公司 | 一种计算单元运算加固方法、并行处理器及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001017152A1 (en) * | 1999-08-27 | 2001-03-08 | Coppe/Ufrj - Coordenacão Dos Programas De Pós Graduacão De Engenharia Da Universidade Federal Do Rio De Janeiro | A method for the hardware implementation of the idea cryptographic algorithm - hipcrypto |
CN101729242A (zh) * | 2008-10-29 | 2010-06-09 | 苏州中科集成电路设计中心有限公司 | 对称分组密码的生成方法及其装置 |
-
2011
- 2011-06-28 CN CN2011101775028A patent/CN102355349A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001017152A1 (en) * | 1999-08-27 | 2001-03-08 | Coppe/Ufrj - Coordenacão Dos Programas De Pós Graduacão De Engenharia Da Universidade Federal Do Rio De Janeiro | A method for the hardware implementation of the idea cryptographic algorithm - hipcrypto |
CN101729242A (zh) * | 2008-10-29 | 2010-06-09 | 苏州中科集成电路设计中心有限公司 | 对称分组密码的生成方法及其装置 |
Non-Patent Citations (2)
Title |
---|
周浩华等: "高速IDEA加密模块的实现", 《微电子学》 * |
高忠杰: "基于FPGA的高可靠R80515的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326712A (zh) * | 2013-05-07 | 2013-09-25 | 清华大学 | 一种时钟多选一电路及多选一方法 |
CN103326712B (zh) * | 2013-05-07 | 2016-12-28 | 清华大学 | 一种时钟多选一电路及多选一方法 |
CN105356996A (zh) * | 2015-12-14 | 2016-02-24 | 联想(北京)有限公司 | 一种密文处理方法、电子设备及密文处理装置 |
CN105356996B (zh) * | 2015-12-14 | 2018-11-09 | 联想(北京)有限公司 | 一种密文处理方法、电子设备及密文处理装置 |
CN109271282A (zh) * | 2018-09-06 | 2019-01-25 | 北京时代民芯科技有限公司 | 一种单粒子多位错自主修复三冗余流水线及设计方法 |
CN112084071A (zh) * | 2020-09-14 | 2020-12-15 | 海光信息技术有限公司 | 一种计算单元运算加固方法、并行处理器及电子设备 |
CN112084071B (zh) * | 2020-09-14 | 2023-09-19 | 海光信息技术股份有限公司 | 一种计算单元运算加固方法、并行处理器及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100536390C (zh) | 一种椭圆曲线密码协处理器 | |
CN101349968B (zh) | 加速伽罗瓦计数器模式(gcm)计算 | |
CN107086870B (zh) | 修复多节点失效的mds阵列码编码以及解码方法 | |
CN102761414B (zh) | 一种sm3密码杂凑算法及确定其中的变量字的方法 | |
WO2010115371A1 (zh) | 一种循环冗余校验crc码的实现方法和装置 | |
CN103761068B (zh) | 优化的蒙哥马利模乘硬件 | |
CN105701755B (zh) | 一种基于分形和dna序列操作的图像加密方法 | |
CN103903047B (zh) | 一种适用于rfid安全通信的椭圆曲线加密协处理器 | |
CN102355349A (zh) | 基于容错的idea全流水硬件加密方法 | |
CN101454982B (zh) | 数据传送系统、差错检测方法和帮助差错检测的系统 | |
CN112394974A (zh) | 代码变更的注释生成方法、装置、电子设备及存储介质 | |
CN106250252A (zh) | 在计算机系统中的方法、计算机程序和数据处理设备 | |
CN104838617A (zh) | 整合安全装置及整合安全装置中使用的信号处理方法 | |
US20100031128A1 (en) | Shared information generating apparatus and recovering apparatus | |
CN103838649B (zh) | 一种降低二进制编码存储系统中计算量的方法 | |
Moon et al. | An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE | |
CN115906137A (zh) | 用于多方安全计算的数据处理方法及装置 | |
CN102355348A (zh) | 一种容错的des算法加速器 | |
CN112948895A (zh) | 数据的水印嵌入方法、水印溯源方法及装置 | |
Krasnobayev et al. | Information Security of the National Economy Based on an Effective Data Control Method | |
CN101183945A (zh) | 基于旁路算子的椭圆曲线抗旁路攻击方法 | |
Medwed et al. | Arithmetic logic units with high error detection rates to counteract fault attacks | |
WO2009015979A2 (en) | Method, computerized device and computer program for efficient and low power encrypting or decrypting of data | |
CN114629663B (zh) | 基于区块链的数字商品交易方法及装置 | |
CN101819519A (zh) | 多功能数字签名电路 |
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 |