电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

DES数据加密

来源:莲生三十二作者:开心麻花2025-09-181

DES数据加密(精选7篇)

DES数据加密 第1篇

关键词:加密,对称,非对称,DES,密钥,明文,密文

从最初的保密通信发展到目前的网络信息加密,信息加密技术一直伴随着信息技术的发展而发展。作为计算机信息保护的最实用和最可靠的方法,信息加密技术被广泛应用到信息安全的各个领域。信息加密技术是一门涉及数学、密码学和计算机的交叉学科。现代密码学的发展,使信息加密技术已经不再依赖于对加密算法本身的保密,而是通过在统计学意义上提高破解的成本来提供高加密算法的安全性。

密码学是一门古老而又年轻的科学,它用于保护军事和外交通信,可追溯到几千年前。1976年Diffie和Hellman的“密码学的新方向”一文引发的密码学的一场革命,开创了公钥密码学的新纪元。

常用加密算法主要用来对敏感数据、摘要、签名等信息进行加密。按照密钥方式划分,可分为对称加密算法和非对称加密算法。

一、对称加密算法

对称加密算法有时又叫做传统密码算法,加密密钥可以从解密密钥中推导出来,解密密钥也可以从加密密钥中推导出来。在大多数的对称算法中,加密密钥和解密密钥是相同的,因此也成为秘密密钥算法或者单密钥算法。它要求发送发和接收方在安全通信之前先商定一个密钥。对称算法的安全性依赖于密钥,所以密钥的保密性对通信至关重要。对称加密算法主要有分组加密和流加密两类。分组加密是指将明文分成固定商都的组,用同一密钥分别对每一组加密,输出固定长度的密文,典型代表:DES、3DES、IDEA。

二、非对称加密算法

非对称加密算法有时又叫做公开密钥算法。其中用到两个密钥。一个是公共的,一个事私有的。一个密钥用于加密,另一个密钥用于解密。两个密钥不能够互相推导。常用的非对称加密算法有RSA公钥算法、Diffie-Hellman算法和ECC椭圆曲线密码。

我们详细分析一下DES加密算法的处理过程。

DES加密算法是分组加密算法,明文以64位为单位分成块。64位数据在64位密钥的控制下,经过初始变换后,进行16轮加密迭代:64位数据被分成左右两半部分,每部分32位,密钥与右半部分相结合,然后再与左半部分相结合,结果作为新的右半部分;结合前的右半部分作为新的左半部分。这一系列步骤组成一轮。这种轮换要重复16次。最后一轮之后,再进行初始置换的逆置换,就得到了64位的密文。

DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。

1. 加密处理过程

(1)初始变换。加密处理首先要对64位的明文按表1所示的初始换位表IP进行变换。表中的数值表示输入位被置换后的新位置。例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位。

(2)加密处理。上述换位处理的输出,中间要经过16轮加密变换。初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换。其中,经过n轮处理后的点左右32位分别为Ln和Rn,则可做如下定义:

Ln=Rn-1

Rn=Ln-1

其中,kn是向第n轮输入的48位的子密钥,Ln-1和Rn-1分别是第n-1轮的输出,f是Mangler函数。

(3)最后换位。进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照表2所示的

最后换位表进行IP-1的换位,得到64位的密文,这就是DES算法加密的结果。

2. 加密变换过程

通过重复某些位将32位的右半部分按照扩展表3扩展换位表扩展为48位,而56位的密钥先移位然后通过选择其中的某些位减少至48位,48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S-盒将这48位替代成新的32位数据,再将其置换一次。这些S-盒输入6位,输出4位。S盒如表5所示。

一个S盒中具有4种替换表(行号用0、1、2、3表示),通过输入的6位的开头和末尾两位选定行,然后按选定的替换表将输入的6位的中间4位进行替代,例如:当向S1输入011011时,开头和结尾的组合是01,所以选中编号为1的替代表,根据中间4位1101,选定第13列,查找表中第1行第13列所示的值为5,即输出0101,这4位就是经过替代后的值。按此进行,输出32位,再按照表4单纯换位表P进行变换,这样就完成了f(R,K)的变换,如图2所示。

3. 子密钥生成过程

钥通常表示为64位的自然数,首先通过压缩换位PC-1去掉每个字节的第8位,用作奇偶校验,因此,密钥去掉第8、16、2464位减至56位,所以实际密钥长度为56位,而每轮要生成48位的子密钥。

输入的64位密钥,首先通过压缩换位得到56位的密钥,每层分成两部分,上部分28位为C0,下部分为D0。C0和D0依次进行循环左移操作生成了C1和D1,将C1和D1合成56位,再通过压缩换位PC-2输出48位的子密钥K1,再将C1和D1进行循环左移和PC-2压缩换位,得到子密钥K2......以此类推,得到16个子密钥。密钥压缩换位表如表6所示。在产生子密钥的过程中,L1、L2、L9、L16是循环左移1位,其余都是左移2位,左移次数如表7所示。

4. 解密处理过程

从密文到明文的解密过程可采用与加密完全相同的算法。不过解密要用加密的逆变换,就是把上面的最后换位表和初始换位表完全倒过来变换。这里不再赘述。

下面这个例子中演示了如何使用c#中的加密包进行DES算法加密,大家可以借助这个例子一窥DES加密的用法。

解密后数据:

使用C#编写DES加密程序的framework

DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。通过穷尽搜索空间,可获得总共256(大约7.21016)个可能的密钥。如果每秒能检测一百万个的话,需要2000年完成检测。可见,这是很难实现的。当然,随着科学技术的发展,当出现超高速计算机后,可以考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。随着信息化和数字化社会的发展,随着计算机和Inte rnet的普及,密码学必将在国家安全、经济交流、网络安全及人民生活等方面发挥更大作用。

参考文献

[1]叶忠杰:计算机网络安全技术(第二版).科学出版社2003.8

[2]王宝会王大印等:新世纪计算机信息安全教程.电子工业出版社2006.1

[3]Diffie W,Hellman M.New directions in cryptography.IEEE Transactions on Information Theory,1976,22(6):644-654

[4]张基温:信息系统安全原理.中国水利水电出版社,2005.1

[5]顾巧论蔡振山贾春福:计算机网络安全.科学出版社,2003.1

[6]蔡立军计算机网络安全技术.中国水利水电出版社,2002.1

DES数据加密和解密技术 第2篇

关键词:DES数据,加密,解密,信息安全

在实际工作中, 由于在计算机网络数据传输中存在着一定的中断、截取、篡改等安全问题, 在数字签名、数据加密技术应用的基础上, 数据的安全得到了一定的保障。在数据加密技术发展的过程中, 结合网络数据传输中存在的问题, 深入探究DES数据加密和解密技术, 是当前发展计算机网络技术的重要策略之一。本文将简要分析DES数据加密和解密技术, 尤其是能够有效的提高数据传输安全性的相关内容。

1 DES数据加密算法的保密原理与优势

在实际工作中, DES算法是一种强算法, 在实际运行中除了使用穷举法搜索其密匙空间寻找破译密码外, 没有更加有效的办法。DES在使用一个长达56位长的密匙基础上, 附加了一个8位长的奇偶校验位。从网络技术层面分析, 长达56位长的密匙具有的穷有空间是255, 加之定期对密匙进行修改, 会不断增加DES数据加密算法的难度。数据在网络传输的过程中, 可能存在非法入侵者拦截信息的情况, 如果传送的是密文, 就可以通过解密密匙的限定条件, 提高传送数据的安全性。DES数据加密算法的保密原理, 重点在于其破译难度非常大, 对于保护重要的网络数据传输非常有利。DES数据加密算法的保密原理与优势, 是相关工作人员在工作中, 必须重视与发展的一个问题。

DES数据加密算法在实际工作中的应用, 首先能够切实提供高质量的数据保护功能, 有效的降低保密数据被泄露的可能性, 还可以有效的防止数据在不知情的状况下被篡改。其次, DES数据加密算法在网络数据的传输中, 具有很高的复杂性, 对于防止网络黑客攻击数据, 具有一定的帮助。如果想破译DES数据加密算法, 只能通过穷举法进行破解, 而破解穷举法需要花费大量的时间和精力才有可能获得结果, 但是与预期收益相比, 付出的代价过大。DES数据加密算法除了其本身具有的复杂性, 整个密码系统的安全性也不会依赖于其本身的复杂性, 而是整个加密密匙系统保密的基础。因此, 重视研究DES数据加密算法的应用, 对于进一步发展金融、通讯事业而言, 都具有至关重要的作用。相关工作人员在具体的工作中, 应高度重视DES数据加密算法的应用, 不断提高网络数据传输的安全性。

2 DES数据的解密技术分析

在实际工作中, 数据解密的算法和加密的算法在本质上是相同的, 其区别主要是在迭代过程中和数据进行按位异或的密匙的使用顺序不同。通常情况下, 如果在进行DES数据加密时, 第i次迭代就采用第i次迭代生成的密匙进行异或;在进行DES数据解密时, 第i次迭代就采用17-i次迭代生成的密匙以及有效数据进行异或, 就是所谓通过密匙次序想法来进行的。在现有科学技术的发展基础上不难发现, DES数据加密算法也存在着被破译的可能。在具体的解密过程中, 可以大胆的假设通过两次叠加在一起的加密方式, 获得有效的数据, 使破译者可以积累与密匙具有一定匹配度的数值, 具体操作如下所示:

并在此等式的两端使用解密函数DK2就可以得到如下等式:

通过这个等式, 进而按照破译算法的依据进行DES数据密匙的寻找。

3 DES数据加密和解密技术发展的重要意义

在我国现代化发展进程不断推进的今天, 计算机网络技术的发展对于社会经济以及人们的日常生活, 都产生了极大的影响。计算机网络技术的发展, 给金融、通信、工业生产、国防建设等事业的发展, 都带来了无限的发展机遇。

在实际工作中, 数据的机密不仅仅是密码学的研究范畴, 也是通信学、数据库技术、网络技术、数据信息处理等范畴需要共同努力研究的数据问题。DES数据加密和解密, 在本质上是一对相互矛盾的存在, 在理论分析层面, 任何数据的加密方法都无法保障数据在网络传送中的绝对安全性。在DES数据加密技术不断更新发展的前提下, 数据的安全性会逐渐得到有效的提高。相关专家以及学者如何结合DES数据加密与解密技术发展中存在的问题, 进行更深层次的探究, 并继续探讨一种相对安全的加密模式, 是科技工作者必须认真研究的一个课题。

DES数据加密和解密技术发展的重要意义, 在我国当前的社会发展中, 是一个非常有价值的研究课题。DES数据加密和解密技术的发展水平, 不但会对社会经济的发展产生一定的影响, 对于国家的国防建设也具有一定的影响。为了更好的确保我国社会经济活动的顺利开展, 强化DES数据加密和解密技术的发展, 是有效保障计算机网络数据传输的重要基础之一, 也是全社会人们关心的话题之一。

4 DES数据加密和解密技术研究中需要注意的问题

DES数据加密算法本身具有一定的公开性, 在对DES数据加密和解密技术进行研究的过程中, 对其算法进行一定的优化, 是非常重要的一项工作。在计算机通信工作中, DES数据加密和解密技术的应用相对较多, 利用计算机网络技术对其原理构造进行深入的分析, 有利于DES数据加密程序密匙的更新与排列。通过计算机程序数据语言设计的功能, 对DES数据加密和解密技术进行构造分析, 不但有利于提高DES数据加密难度, 还能有效确保加密数据传输的安全。因此, 相关专家及学者在进行DES数据加密和解密技术研究过程中, 应结合时势发展的需要, 将DES数据加密配置在专用的计算机机密卡中, 为构建有效的数据加解密模块打下基础。其次, 在进行DES数据加密的应用与研究中, 有效的选择我国自主设计的加密算法, 可以进一步降低踏入国外设计的算法陷阱而不知情的风险, 使加密卡和加密芯片的适应性能不断提高。

5 结语

综上所述, 随着我国社会经济的发展, 近几年, 由于保密问题涉及个人账户安全以及商业机密信息泄露的犯罪活动逐渐增多, 给人们及社会经济的发展都带来极大的不利影响。计算机网络技术的发展地位越来越重要, DES数据加密和解密技术的出现与发展, 为计算机网络数据的传输提供了一定的安全保障。因此, 在实际工作中, 深入使用DES数据加密和解密技术是非常重要的事项。

参考文献

[1]陈树平, 侯贤良.计算机网络中DES数据加密和解密技术[J].现代电子技术, 2005, 28 (9) :114-115.

[2]杨大全, 王海军, 赵士青, 等.网络游戏中数据加密与解密技术的研究[J].沈阳工业大学学报, 2007, 29 (5) :578-581.

[3]贺金鑫, 李文印.IC卡数据加密的研究与实现[J].吉林大学学报 (信息科学版) , 2003, 21 (4) :403-407.

基于DES的加密算法 第3篇

1 算法和DES算法描述

用来描述问题解决办法的过程称为算法,算法是多种数学知识的综合应用,所以密码学是一门交叉学科,同时它也是计算机科学的重要基础。

根据加密密钥和解密密钥是否相同,现代密码算法被分为两大类:对称密码算法和非对称密码算法。对称加密算法的特点是:加密密钥和解密密钥户有关联,加密密钥可以从解密密钥中推导出来,解密密钥也可以从加密密钥中推导出来。在大多数的对称算法中,加密密钥和解密密钥是相同的。通常情况下,对称密钥加密算法的加密与解密速度非常快,因此,这类算法适用于大批量数据加密的应用场合。

原始的信息,也就是需要被密码保护的信息,被称为明文。采用数学方法对明文进行再组织,加密后的信息称为密文。密文在网络上公开传输,其内容对于非法接收者来说起到了一定的保护功能。解密是将密文通过解密过程得到明文。密钥是用于加、解密的一些特殊信息,它是控制明文与密文之间变换的关键,密钥可以是数字、词汇、或语句。密钥分为加密密钥和解密密钥。明文、密文、加密、解密、加密密钥和解密密钥之间的关系如图1所示。

数据加密标准(DES,Data Encryption Standard)的出现是现代密码发展史上的一个非常重要的事件,它是密码学历史上第一个广泛应用于商业数据保密的密码算法,并开创了公开密码算法的先例,极大的促进了密码学的发展。由于DES算法保密性强,到目前为止,除了穷举法外,还没有找到更好的方法破解,因此DES得到了广泛的应用,并成为其他加密方法的典范。

DES算法主要研究的是加密与解密算法。解密是加密的逆过程,从加密过的信息中得到明文。密钥是一串适当长度的字符或数字串,它可以控制加密和解密过程。

2 DES算法原理描述

DES是一个对称密码体制,加密和解密使用同一密钥,有效密钥的长度为56位。同时,一个分组密码,分组长度为64位,明文和密文的长度相同,及64位的明文从算法的一端输入,从另一端输出64位密文。

2.1 DES加密算法的基本结构

DES密钥初始长度是64位,第8、16、24、32等8的倍数位的数字用于奇偶检验,所以DES密钥有效密约长度是56位。密钥可以为任意的56位的数,且根据使用情况可以随时更换,同时,所有的安全性都依赖于密钥的保密。

DES对64位的明文分组进行操作,经过一个初始转换(IP),然后将明文转换成左半部分与右半部分(L0,R0),各32位,再进行16轮完全相同函数的迭代运算,这些运算用函数F表示,在每一轮迭代运算过程中,Ri与密钥Ki在轮迭代的作用下,其结果与Li做异或运算,其结果作为下一轮的Ri+1,而下一轮的Li+1则由本轮的Ri担任,在第16轮输出结果出现后,左右半部分在一起经过一个逆初始转换(IP-1),最终产生一个64位的密文,算法完成。如图2所示。

现在常用的DES算法是16轮迭代算法,在每一轮中,DES的一轮迭代运算步骤为:

1)把64位输入码分成左右两组,分别用Li-1和Ri-1来表示,每组32位比特。其中i代表第i轮F函数,i=1,2,,16。

2)把该轮F函数输入分组的右组32位比特输出作为下一轮F函数的左32位比特分组,即Li=Ri-1。

3)输入的右组32位比特经过扩展置换(E盒)变为48位比特码组,扩展置换有专门的置换表可查。

4)经过扩展置换(E盒)输出的48位比特与本轮的子密钥Ki(48位比特)进行异或运算,输出的48位比特,把它们分为8组,每组6位。

5)上步骤的输出按组进行密表(S盒)替代,产生每组4位比特信息,其置换法则是输入的6位比特的第1、6两位所组成一个两位数,这个数字决定密表内所要选择的行数,其余4位所组成的一个四位数,这个数字决定密表内的列数,通过这个6位输入确定的行号和列号所对应位置的值作为该组的4位输出。

6)把上步骤的输出(8组)合并为32位比特信息,经过置换运算(P盒)的简单换位后,得到32位比特的输出,然后与本次乘积变换输入左组进行异或运算,即可得到第i轮F函数作用的右32位输出Ri。如图3所示。

假设Bi是第i轮迭代的结果,Li和Ri是Bi的左半部分和右半部分,Ki是第i轮的48位子密钥,子密钥是初始密钥经过一定算法的输出,且F是实现扩展置换(E盒)、密表替代(S盒)及置换运算(P盒)的函数,那么每一轮算法可以简单的描述为:

L0R0←IP(64位明文)

对于i=1,2,,16,

Li←Ri-1

Ri←Li-1⊕F(Ri-1,Ki)

(64位密文)←IP-1(R16L16)

2.2 DES解密算法

DES的解密算法是加密算法的逆运算,数学公式表达如下:

R16L16←IP(16位密文)

对于i=16,15,,1,

Ri-1←Li

Li-1←Ri⊕F(Li,Ki)

(64位明文)!IP-1(R0L0)

DES算法的解密算法与加密算法相同,只是各子密钥的顺相反,即为K16,K15,,K1。

2.3 DES算法特点及安全性

DES算法具有以下特点:

1)DES算法公开,信息的保密性完全依赖密钥的管理,传输等保密环节。

2)在目前水平下,在不知道密钥的情况下,如果想在一定的时间内破译DES(即析出密钥K或明文)是不太可能的,因为想要实现,至少要建立256或264个的表,这是现有硬件与软件资源难以实现的。

3)明文或密钥的微小变化都会导致密文的巨大变化,即DES显示出很强的"雪崩效应",使攻击者无法分而破之。

而DES也总有不足之处,强密钥长度为56个,显得有些短;其次,存在弱密钥,第三,S盒的设置变化显得略微简单。

3 DES的完善与发展展望

自DES产生的二十多年里,对它最有效的攻击仍然是穷举攻击方式,1999年1月“DES破译者”在分布式网络的协同工作下,用22小时15分钟找到了DES的密钥,这意味着DES已经达到了信任重点,但为了充分利用有关DES的现有软件和硬件资源,人们开始提出针对DES的各种改进方案,一种简单的方案是使用多重DES加密算法。3DES算法(3重DES算法)是扩展DES密钥长度的一种方法,可使加密密钥长度扩展到128比特(其中有112比特是有效位)或192比特(其中168比特是有效位),从而大大提高DES的安全性与有效性。

使用3DES可以很好地抵抗中途相遇攻击。3DES有4种模式:

1)DES-EEE3模式:在该模式中共使用3个不同密钥,顺序使用3此DES加密算法。

2)DES-EDE3模式:在该模式中共使用3个不同密钥,一次用加密-解密-加密算法。

3)DES-EEE2模式:在该模式中共使用2个不同密钥,顺序使用3次DES加密算法,其中第一次和第三次加密使用的密钥相同。

4)DES-EDE2模式:在该模式中共使用2个不同的密钥,一次使用加密-解密-加密算法,其中加密算法使用的密钥相同。

但3DES的缺点是加、解密速度比DES慢。

总之,基于DES的加密算法,其设计思想与理念非常严谨,精密,它的诞生对密码技术是个重要的突破与贡献,在最近几十年的现代信息安全中起到重大作用,但随着芯片的运算速度不断加快,针对DES攻击为主要目的的专用密码破译机在不断的升级,信息安全领域存在着前所未有的挑战,尽管AES已经取代了DES,但DES仍是迄今为止世界上使用最广泛的分组加密算法。它的基本理论和设计思想仍有重要的参考价值,这就要求我们在原有DES算法的基础上,不断地加以探索、研究、创新。

摘要:密码技术是信息安全的核心技术,该文主要通过阐述DES的算法原理与步骤,特点及安全性,以实现密码技术,增强信息安全。

关键词:算法,DES算法,加密,解密,密钥

参考文献

[1]刘晓敏.网络环境下信息安全的技术保护[J].情报科学,1999,17(2).

[2]张焕国,冯秀涛,覃中平,等.演化密码与DES的演化研究[J].计算机学报,2003,26(12).

[3]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学(E辑:信息科学),2007(2).

基于DES的加密算法 第4篇

1. 算法与DES算法概念

算法是一种解决问题的方法, 是数学及其应用的重要组成部分, 也是计算机科学的重要基础。算法的思想有着广泛的应用性。

DES是Data Encrption Standard的英文缩写, 中文含义为数据加密标准。于1977年美国国家标准局公布了联邦数据加密标准, 即DES。由于DES算法保密性强, 迄今尚无切实可行的破译方法, 所以DES得到了广泛的应用。

2. DES算法原理描述

DES算法主要研究的是加密与解密算法, 人们把能够读懂的信称作为"明文", 并将其通过某种方式变换成难以理解的密文, 这一变换过程称为加密。同样, 密文可以经过变换再还原成明文, 这一变换处理的过程称为解密。而密钥是一串适当长度的字符或数字串, 它可以控制加密和解密过程。

DES是一个分组密码, 每次加密64位数据, 64位的明文从算法的一端输入, 从另一端输出64位密文。DES是一个对称加密算法, 加密和解密使用相同的算法和密钥。

2.1 DES加密算法的密钥生成

DES密钥长度通常采用的是56位 (密钥通常表示为64位的二进制数, 但每个8的倍数位用于奇偶检验, 被忽略掉) , 密钥可以为任意的56位的数, 且随时可以更换, 所有的安全性都依赖于密钥。DES对64位的明文分组进行操作, 经过一个初始转换, 将明文转换成左半部分与右半部分, 各32位长, 再进行16轮完全相同的运算, 这些运算用函数f表示, 在运算过程中数据与密钥相结合, 左右半部分在一起经过一个末转换, 算法完成, 如图1所示。

在每一圈中, DES的一次乘积变换运算步骤为:

1) 把64位输入码分成左右两组, 每组32位比特, 分别用Li-1和Ri-1代表。其中i代表第i次乘积变换, i=1~16。

2) 把该次乘积变换输入分组的右组32位比特变为输出分组的左组32位比特, 即Li=Ri-1。

3) 输入分组右组32位比特经过扩展操作变为48位比特码组。

4) 扩展变换输出的48位比特与子密钥Ki的48位比特按模2相加, 输出的48位比特分为8组, 每组6位。

5) 把每组6位比特进行密表 (S-盒) 替代, 产生4位比特。输入的6位比特的第1、6两位决定密表内所要选择的行数, 其余4位决定密表内的列数。

6) 把8组密表输出合并为32位比特, 然后与本次乘积变换输入左组按位模2相加, 即可得到第i次乘积变换的右32位输出Ri。如图2所示

假设Bi是第i次迭代的结果, Li和Ri是Bi的左半部分和右半部分, Ki是第i轮的48位密钥, 且f是实现代替、置换及密钥异或等运算的函数, 那么每一轮就是:

总之, DES的加密过程可以描述为:

L0R0←IP (64位明文)

对于i=1, 2, …, 16,

(64位密文) ←IP-1 (R16L16)

2.2 DES解密算法

DES的解密算法是加密算法的逆运算, 数学公式表达如下:

对于i=16, 15, …, 1,

(64位明文) !IP-1 (R0L0)

DES算法的解密算法与加密算法相同, 只是各子密钥的顺序相反, 即为K16, K15, …, K1。

3. DES算法特点及安全性

自DES产生的二十多年里, 对它最有效的攻击仍然是穷举攻击, 所以DES仍然是一个安全的算法。

DES算法具有以下特点:

1) DES的保密性仅仅取决于对密钥的保密, 算法公开。

2) 在目前水平下, 不知道密钥而在一定的时间内要破译 (即解析出密钥K或明文) 是不太可能的, 至少要建立256或264个项的表, 这是现有硬件与软件资源难以实现有效攻击。

3) 明文或密钥的微小改变将对密文产生很大的影响, 即DES显示出很强的"雪崩效应", 使攻击者无法分而破之, 明文或密钥一位的变化将引起密文若干位同时变化。

综上所述, 由DES算法构建的安全机制是可靠的, 采用穷举方式攻击是不很现实的。通过穷尽搜索空间, 可获得总共256 (大约7.2×1016) 个可能的密钥。如果每秒能检测一百万个的话需要2000年完成检测。可见, 这是很难实现的。

而DES也总有不足之处, 强密钥长度为56个, 显得有些短了;其次, S盒的设置变化小。

4. DES的完善与发展展望

为了增强DES的抗脆弱性, 为了保护已有软件和硬件使用DES的投资, 为了增加密钥的长度, 目前常用的方法是将一种分组密码进行级联, 在不同的密钥作用下, 连续多次对一组明文进行加密, 通常把这种技术称为多重加密技术。目前主要有双重DES, 使用两个密钥的三重DES。3DES算法是扩展DES密钥长度的一种方法, 可使加密密钥长度扩展到128比特 (112比特有效) 或192比特 (168比特有效) , 大大提高DES的安全性与有效性。

3DES可以用两个密钥对明文进行三次加密, 假设两个密钥是K1和K2:

1) 用密钥K1进行DES加密。

2) 用K2对步骤1的结果进行DES解密。

3) 对2) 的结果使用密钥K1进行DES加密。

但3DES的缺点是加、解密速度比DES慢。

总之, 基于DES的加密算法, 其设计思想与理念, 对密码技术是个重要的突破与贡献, 在最近几十年的现代信息安全中起到重大作用, 但随着芯片的运算速度不断加快, 基于针对DES攻击为主要目的的专用密码破译机在不断的升级, 信息安全领域存在着前所未有的挑战, 这就要求我们在原有DES算法的基础上, 不断地加以探索、研究、更新与完善。

参考文献

[1]段云所:网络信息安全讲稿.北京大学计算机系, 2001

[2]刘晓敏:网络环境下信息安全的技术保护.情报科学, 1999

[3]张宁:《北京大学计算机系》.《电子商务技术》 (2000年春季学期)

[4]曾强:《电子商务的理论与实践》.中国经济出版社, 2000年

基于FPGA的DES加密算法实现 第5篇

数据加密标准(Data Encryption Standard,DES)是数据加密算法的规范描述,在1977年被美国政府正式采纳。DES算法是一种典型的分组对称加密算法,其明文、密文和密钥的分组长度为64位,加密和解密使用的密钥和结构相同。DES算法加密强度大,算法过程公开,安全性只依赖于密钥[2]。

DES算法在加解密和密钥生成过程中仅有逻辑运算和查表运算,硬件实现简单,且具有软件实现不可比拟的高传输速率[3]。FPGA在实现算法方面具有灵活性、物理安全性和比软件更高的速度性能,成为硬件实现DES算法的理想选择[4]。

1 DES加密算法原理

1.1 加密流程

以加密过程为例,如图1所示,输入的64位明文先经过初始置换IP,得到位置重新排列的64位数据。将该数据分为左右两部分,左边32位为L0,右边32位为R0,然后进行16轮迭代运算。每轮迭代输入Ln-1和Rn-1,输出LnRn(n=1~16)。Rn-1直接作为Ln输出,即Ln=Rn-1;Rn-1和子密钥Kn经轮函数F的输出与Ln-1异或,结果作为Rn输出,即Rn=Ln-1♁F(Kn,Rn-1)。16轮迭代完成后,将L16和R16交换,重新拼接成64位,作逆初始置换IP-1,即得到64位密文输出。

F函数的过程如下:Rn-1先经一个E扩展置换为48位,再与本轮迭代对应的子密钥Kn相异或,将异或后的结果经S盒置换得到32位输出,这32位输出再经一个P置换即得到F函数的输出。S盒置换包括8个不同的S盒,S1~S8,均是6输入4输出的查找表。

IP置换、IP-1置换、E置换和P置换均是线性变换,S盒置换是非线性变换,其具体变换规则如文献[5]。

1.2 子密钥产生

子密钥即每轮迭代运算对应的48位密钥,整个DES算法需16个子密钥,即K1~K16。子密钥产生原理与加密流程相似,输入的64位密钥去除8位奇校验位后,剩下56位有效密钥进入16轮迭代过程,每轮迭代产生一个子密钥,具体迭代过程如文献[5]所述。

解密子密钥与加密子密钥相同,只是使用的顺序相反。由于子密钥产生过程的所有变换均是线性变换[5],可用一次置换替代。因此不论是加密或是解密,均可先用初始密钥一次产生所有子密钥,然后根据加解密需要选择相应的使用顺序。

2 流水线技术和分时复用技术

2.1 流水线技术

流水线设计是将组合逻辑系统地分成若干部分(级),并在各部分(级)之间插入寄存器以存入中间数据,以此缩短关键路径长度,提高时钟频率[6]。

DES算法的数据处理是单流向的,可将每轮(或若干轮)迭代作为一级流水线,将16轮迭代分为若干级流水线,且使每级的运算时间相当,便可大幅提高整个系统的加解密速度。流水线的级数越多,所需寄存器也越多,但会消耗大量资源,是一种以面积换取速度的方式。

2.2 分时复用技术

分时复用技术是把复杂电路分成若干相同的基本子电路,在状态机控制下,用一个基本子电路进行运算并将中间结果存储,多次利用该基本子电路和中间存储结果即可完成和原来电路相同的运算功能[7]。

DES的16次迭代过程结构完全相同,可用一轮(或若干轮)的迭代结构作为一个复用单元,在状态机的控制下,多次利用此复用单元进行运算即可完成全部16轮迭代。采用复用技术可降低资源使用量,但会导致时钟周期数增多,系统的吞吐量有所下降,是一种以速度换取面积的方式。

3 系统总体结构和关键模块设计

3.1 系统总体设计

图2为DES加密系统总体结构图,其外部接口信号des_clk和rst_n为全局时钟和复位信号,des_in为输入数据,key为输入密钥,mode为加解密模式选择,load为输入使能,load=1时将输入数据载入输入寄存器;des_out输出的加/解密结果,ready用于表示输出有效。系统主要包含运算模块,密钥模块和ready产生模块。

运算模块完成16轮迭代运算,其输入L0、R0是IP置换的输出,输出L16、R16交换后是IP-1置换的输入;密钥模块向运算模块提供每轮迭代所需的子密钥,其输入是key和mode经输入寄存器的输出key_r0和mode_r0;ready产生模块用以产生ready信号。

3.2 S盒设计

S盒是整个算法的关键,从整个加密电路看,硬件实现时S盒占用面积最多。此外,S盒处于时钟的关键路径上,是影响算法速度的主要因素。因此S盒设计的优劣将影响整个算法性能。

S盒常见的实现方法有两种[8]:(1)根据S盒的工作原理,直接使用6输入、4输出变量的case语句进行描述。这种方法语句的综合效率通常不高且占用过多资源。(2)结合FPGA自身资源特点,将S盒逻辑重新描述,先用6变量中间的4变量构建查找表LUT用作MUX的输入,再用剩下2个变量用作MUX的选择端,选择对应的LUT输出。该方案可充分利用FPGA内部的4输入LUT和MUX资源,综合效率较高、速度较快。因此,文中选择后一种构建S盒的方法。

3.3 子密钥产生方法

上述中给出了两种产生方式:一种是由子密钥产生原理进行16轮迭代依次产生;一种是根据置换关系由输入密钥一次产生。后一种方法消除各子密钥之间的相关性,且用一次赋值操作便可实现,仅占用了连线资源。因此,文中选择后一种方法产生子密钥。

4 DES加密算法的设计及FPGA实现

4.1 流水线结构设计

文中给出两种基于流水线结构的设计方案,即16级和4级流水线结构。

16级流水线结构将运算模块的16轮迭代全部打开,每轮迭代作为一级流水。如图3(a)所示,每轮迭代后插入寄存器存入LnRn(n=1~16),共插入16级寄存器。为了配合运算模块的流水线,密钥模块插入15级寄存器,包括key的寄存器和mode的寄存器,使生成子密钥的节拍与迭代节拍一致。key插入寄存器链可使密钥动态更新,mode插入寄存器链可使加解密模式动态切换。密钥模块的输入(即key_r0和mode_r0)及每级寄存器的输出(即key_rm和mode_rm,m=1~15)对应产生一个子密钥Kn(n=1~16)。产生过程为:由key_rm根据置位关系先产生加密子密钥和解密子密钥,再由mode_rm选择一个输出。

4级流水线结构将4轮迭代作为一级流水,如图3(b)所示,运算模块插入4级寄存器(n=4,8,12,16),相应的,密钥模块插入3级寄存器。密钥模块的输入(即key_r0和mode_r0)及每级寄存器的输出(即key_rm和mode_rm,m=1~3)对应产生4个子密钥Kn-3~Kn(n=4,8,12,16),产生方式与16级流水线结构相同。

两种流水线结构的ready信号由流水线填充和排空的计数器产生,load有效后开始填充计数,计数满时ready开始有效;load无效后开始排空计数,计数满时ready信号变为无效。

图4(a)为16级流水线结构的仿真波形,load=1后连续输入5个数据,第一个有效输出在第17个时钟产生,此时ready变为1(图中绿色指针位置处)。此后每个时钟均产生一个有效输出,直至5个加/解密结果输出完成,ready变为0。sta_cnt和sto_cnt是流水填充和排空的计数器,计数到15时ready信号电平发生变化。另外,从图中红色方框中可看出,K1~K4按时钟节拍依次产生。为同时验证加密和解密,图中mode信号每个时钟翻转一次,data_exp为期待的加/解密结果,用于和仿真结果进行比对。

图4(b)为4级流水线结构仿真波形,load=1后连续填充了10个数据,第1个有效输出在第5个时钟产生。此后每个时钟出1个有效数据,直至10个数据出完。ready产生方法与16级结构相同,也是通过两个计数器控制,计数到3时ready发生变化。另外图中可看出,K1~K4在一个时钟内同时产生,其他信号功能与16级流水线结构一致。

4.2 复用结构设计

复用结构设计也为状态机结构设计,文中给出了两种复用的设计方案,分别是16重复用结构和4重复用结构。

16重复用结构将一轮迭代结构作为复用单元,需16次复用才能完成全部迭代运算,所以状态机为一个4位计数器,如图5(a)所示。计数值cnt对应迭代的轮数,start启动计数器开始计数,计满时16轮迭代完成,输出一个有效加密结果,同时done信号有效。计数器的输出sel用于选择迭代运算的输入数据,在第一次迭代时,选择外部数据,剩下15次迭代选择寄存器的输出。密钥模块的子密钥K1~K16先由输入key_r0和mode_r0一次产生,输入到一个16选一的MUX,再由cnt选出一个子密钥key_out输入到运算模块参与运算。

4重复用结构将4轮迭代结构作为复用单元,需4次复用才能完成全部迭代运算,其结构与16重复用结构相似,如图5(b)所示。运算模块的状态机为一个2位计数器,sel和cnt功能如前所述。由于每次复用需4个子密钥,密钥模块子密钥K1~K16一次产生后,接入4个四选一MUX,每个MUX输入对应的4个子密钥,在cnt的控制下选出一个子密钥输出。4个MUX共输出4个子密钥对应提供给运算模块的4轮迭代结构。

两种复用结构运算模块的start信号直接引自顶层的load信号,done信号引出到顶层做ready信号输出。

图6(a)为16重迭代结构的仿真波形,可看出每16个时钟load信号有效一次,每次输入一个数据进行处理,第一个有效输出在load=1后的第17个时钟产生。与16级流水线结构相比较,输出并不是每个时钟都有效,而是每隔16个时钟有效输出一个数据。另外可看出所有子密钥同时产生,并由cnt按次序选通输出到key_out。

图6(b)为4重复用结构的仿真波形,每4个时钟load有效一次,每次输入一个数据,第一个有效输出在load=1后的第5个时钟产生。与16重复用结构类似,其输出也同样并非每个周期有效,而是每隔4个时钟输出一次。其子密钥也是一次全部产生,然后在cnt的控制下,K1、K5、K9、K13选通输出到key_out1,K2、K6、K10、K14选通输出到key_out2,其余子密钥类似。

4.3 纯组合逻辑结构设计

为与流水线结构方案和复用结构方案进行比较,文中也给出了纯组合逻辑结构的设计,即运算模块和密钥模块按照算法原理用纯组合逻辑结构实现,不插入寄存器和状态机,因而也可看成是一级流水线结构或是一重复用结构。该种结构较为简单,故不再作详述。

4.4 设计方案基于FPGA实现结果比较

文中FPGA芯片选择Xilinx的Spartan 3E系列XC3S500E,软件版本为ISE13.1。以上5种设计方案使用的硬件资源和布局布线后的时序数据如表1所示。

由表1可看出16级流水线结构的触发器资源使用最多,4级流水线结构触发器使用量大概为16级的1/4,纯组合逻辑结构触发器使用最少,三者使用的组合逻辑资源基本一致。16级流水线结构的时钟频率最快,4级流水线次之,纯组合逻辑最慢,因关键路径变长。

16重复用结构的组合逻辑资源使用最少,4重复用结构和纯组合逻辑结构有所增加,三者使用的寄存器数量基本一致。16重复用结构的时钟频率虽较高,但吞吐量最小,4重复用结构的时钟频率较16重复用小,较纯组合逻辑大,也是关键路径长度变化的原因。

综上所述,流水线结构插入的级数越多,速度越快,耗费资源也越多;复用结构复用的重数越多,速度越慢,耗费资源越少。

5 结束语

文中提出了两种基于流水线技术和基于分时复用技术的DES算法设计方案,并在FPGA实现的基础上,和纯组合逻辑结构进行了速度和资源方面的比较。其中16级流水线结构设计方案可达到较高的加解密速度,而16重复用结构能用较少的资源实现算法功能。

摘要:在分析DES加密算法的基础上,利用流水线技术和分时复用技术,设计了两种流水线结构和复用结构的DES加密算法电路,功能仿真正确,并以Xilinx FPGA为实现基础,结合纯组合逻辑结构,分析对比上述几种方案在速度和资源方面的优劣。其中最快一种实现方案最高时钟频率可达139 MHz,加密速度达到8.9 Gbit.s-1。

关键词:DES,流水线,分时复用,XilinxFPGA

参考文献

[1]李晖,李丽香,邵帅.对称密码学及其应用[M].北京:北京邮电大学出版社,2009.

[2]张焕国,王张宜.密码学引论[M].武汉:武汉大学出版社,2009.

[3]张峰,郑春来,耶晓东.DES加密算法的FPGA实现[J].现代电子技术,2008(7):80-82.

[4]谭会生.基于FPGA的DES加密算法的高性能实现[J].电子设计工程,2009,17(2):87-89.

[5]National Institute of Standards and Technology.Data Encryp-tion Standard(DES)FIPS PUB46-3[S].USA:National Bureau of Standards,1999.

[6]邵金祥,何志敏.基于FPGA的3DES加密算法高速实现[J].现代电子技术,2004(21):55-57.

[7]郝鹏鹏.DES加密电路的实现方法研究[D].上海:复旦大学,2008.

DES数据加密 第6篇

随着信息技术的发展,信息安全越来越受到人们的关注。DES(Data Encryption Standard)加密算法从成为标准到今天,经历了长期的考验,实践证明DES算法能够满足大部分要求。采用软件实现DES算法速度慢,系统性能较低,DES算法本身并没有复杂的数学计算,在加解密过程和子密钥生成过程仅有逻辑运算和查表运算,所以从系统性能和加解密速度方面考虑,采用硬件实现比较好。同时微电子技术的进步,使得现场可编程逻辑门阵列FPGA得到广泛应用,而基于Nios Ⅱ软核的嵌入式系统开发也成为当前研究的热点。Nios Ⅱ是Altera公司于2004年6月推出的性能优越的32位RISC嵌入式软核处理器,具有超过200 DMIP的性能,性价比高,灵活性大,可以根据需要灵活定制,满足成本和功能要求[1]。

本设计的DES加密系统采用Nios Ⅱ软核作为DES加密控制器[2],使得控制过程变得灵活简便,可扩展性大大增强;用FPGA上的硬件资源实现DES算法,提高了加解密速度;提出一种密钥更新机制,进一步提高了加密强度,从而使整个加密系统具有很好的性能。

2 DES算法简要介绍

DES是对64位分组数据加密的分组密码算法,每64位明文加密成64位密文,没有数据压缩和扩展。密钥长度为64 b,但有8个奇偶校验位,所以实际密钥只有56 b[3]。DES算法公开,其保密性完全依赖密钥。

DES算法首先对输入的64位明文X进行一次初始置换IP,以打乱原来的次序。对置换后的数据分成左右两半,左边记为L0,右边记为R0。对R0实行密钥控制下的变换f,其结果记为f(R0,K1),得到的32 b输出再与L0做异或(xor)运算,其结果成为下一轮的R1,R0则成为下一轮的L1。对L1,R1实行和L0,R0同样的过程得L2,R2。如此循环16次,最后得到L16,R16。再对64位数字R16,L16实行初始置换的逆置换IP-1,即得到密文Y。图1是DES全部16轮的加密流程图[4]。

3 DES加密系统结构

整个系统结构由PC机(串口)、Nios Ⅱ软核控制器、加密处理模块DESCIPHER及外部存储器组成,系统硬件结构框图如图2所示。PC机主要通过串口给Nios Ⅱ软核控制器发送需要加密的数据,并接收加密后的数据;Nios Ⅱ软核控制器是整个系统的核心控制单元,负责PC机和加密处理模块DESCIPHER之间的信息交换,同时控制加密处理模块DESCIPHER的整个加密过程;加密处理模块DESCIPHER则具体实现DES算法;外部存储器用来存储Nios Ⅱ软核控制器的程序。

4 Nios Ⅱ软核控制器的定制

Altera公司提供了不少免费的外设IP核,同时用户还可以根据实际需要自己定制外设,并将它们集成到Nios Ⅱ处理器系统中,实现与某些特定外围设备的通信。本设计通过Quartus Ⅱ软件和SOPC Buider工具定制Nios Ⅱ软核控制器,用到的IP核主要有Nios Ⅱ的CPU核、UART核及PIO核。

4.1 Nios Ⅱ的CPU核的定制

Nios Ⅱ的CPU核有3种类型,本设计中的CPU核选择标准型,由于Nios Ⅱ软核控制器主要用于处理控制信号,所以没有选择硬件乘法器和除法器,具有2 kB的指令缓存和数据缓存。为了方便调试,为CPU加入JTAG调试模块,JTAG调试模块要占用较多的逻辑单元,当整个系统调试完毕,应该从CPU核去掉JTAG调试模块模块,以减少系统占用的资源。

4.2 UART核的定制

带Avalon接口的UART核为Altera FPGA上的嵌入式系统和外部设备提供了串行字符流的通信方式。内核执行RS 232协议时序,波特率可调,提供一个简单的Avalon从控制器接口,该接口允许Avalon主控制器(如Nios Ⅱ的CPU核)通过读/写寄存器与UART内核进行通信。本设计定制的UART内核采用固定波特率115 200 b/s,所以定制时不选中除数寄存器,也不选择数据包结束符寄存器,选择包含控制寄存器,数据位设置为8位,无奇偶校验位。

4.3 PIO核的定制

并行输入/输出(PIO)内核提供Avalon从控制器接口到通用I/O口间的存储器映射接口。I/O端口既可与片内用户逻辑连接,又可以与外围器件连接,本设计中的I/O端口都是与片内逻辑加密处理模块DESCIPHER相连接。Avalon主控制器(如Nios Ⅱ的CPU核)通过4个32位寄存器控制PIO并与PIO通信。这4个寄存器是:用于返回端口值的数据寄存器、用于控制每个双向PIO口实际方向的方向寄存器、用于控制中断的中断寄存器,用于控制数据有效方式的边沿捕捉寄存器[5]。

每个PIO核最多可提供32个I/O端口,所以64位的密钥和分组数据必须由两个32位PIO来传输。本设计定制了6个32位的PIO核,分别是用于输出密钥的PIO:keyhigh [31..0]和keylow [31..0],用于输出需要加密的数据的PIO:datahigh [31..0]和datalow [31..0],以及用于输入被加密后数据的PIO:dataouthigh[31..0]和dataout low [31..0];还定制了5个1位的PIO核,分别是用于从外界输入加解密功能选择信号的PIO:cipherdecipherbutton,用于输入加密处理模块DESCIPHER状态忙信号和加密完成信号的PIO:corebusy和desoutready,用于输出加解密功能选择信号到DESCIPHER模块的PIO:cipherordecipher,用于输出加载数据使能信号的PIO:loaddata。

定制完所有的组件,通过Quartus Ⅱ中的SOPC Buider工具就可以生成需要的Nios Ⅱ软核。

5 DESCIPHER加密处理模块的VHDL设计

DES算法主要是一些逻辑运算和查表运算,这些运算在VHDL[6]中很容易实现,这里主要介绍DES算法中惟一的非线性变换函数S盒的设计和子密钥的简化生成及整个模块的编译仿真。

5.1 S盒的设计

S盒是DES算法中的非线性变换函数,正是经过S盒的非线性变换,才使DES算法具有较强的安全性,所以S盒是DES算法的关键部分,其设计的优劣将直接影响整个算法的性能。每一个S盒的输入数据是6位,输出数据是4位,是一个4行16列的二维数组,输入6位数据中的最高位和最低位确定输出数据所在的行,中间4位确定输出数据所在的列,行与列交叉的地址空间所存放的数据就是要输出的4位数据。本文研究了两种S盒实现方法。

第一种方法:由于6位输入数据的32种情况分别对应S盒的32个数据,其对应关系可以简单的通过算法中的公式推导出来,所以可以直接用VHDL中的查找语句casewhen来实现。

第二种方法:用卡诺图化简S盒,算出4位输出数据的每一位关于6位输入数据的逻辑关系,然后用withselect语句输出数据的每一位。

5.2 子密钥的简化

DES算法的每一轮迭代计算都需要一个子密钥,每个子密钥的生成都是通过两次置换和一次循环左移共3个步骤实现,如果所有子密钥都按这3个步骤依次实现,将会消耗掉大量的硬件资源,造成较大的延时,而且每轮子密钥移位的次数不一样,增大时序控制的难度。通过对子密钥生成算法的深入分析发现,各个子密钥移位的次数对于原始密钥是固定的,所以子密钥的每一个位相对于原始密钥的每一个位存在固定的对应关系[2]。编写C语言程序找出这种对应关系,则所有子密钥的生成只需要一个简单的置换就可以同时生成,节约很多硬件资源,提高了效率。

5.3 模块编译仿真

DESCIPHER模块是在Cyclone系列的EP1C4F324C6上实现的,编译仿真在Quartus Ⅱ软件中进行,对S盒的两种实现方法进行比较发现,它们所消耗的资源都是24个LE(逻辑单元),但第一种方法的速度稍微快一点,所以采用第一种方法实现S盒。

整个模块的最高时钟频率可以达到116.51 MHz。仿真时当输入64位密钥为0XB244934DACBB2EEB,输入64位明文为0X5EA12EAD288DB99B时,加密后输出的密文为0XC4EAE280CB677F53。用相同的密钥解密,解密后输出的明文与原来的明文相同,换成其他数据进行仿真结果都是正确的,编译报告见图3。

6 系统软件设计

系统软件设计是在Nios Ⅱ IDE软件中实现,系统复位后Nios Ⅱ控制器开始通过串口从PC机接收需要加密的数据,存储在数组中,接下来在Nios Ⅱ控制器的控制下,由DESCIPHER模块实现数据的加密[7],当所有数据加密完成后,再通过串口输出到PC机,整个系统软件设计的关键就在于如何实现Nios Ⅱ控制器对DESCIPHER模块的加密控制。

为了进一步提高DES算法的安全性,在Nios Ⅱ控制器对DESCIPHER模块的加密控制过程中,本设计采用了一种密钥更新机制,即在加密过程中不断更新密钥。本设计的密钥更新机制是通过设置一个计数器,每加密完一个64位数据分组,计数器就加1,当计数器的值达到峰值20时,计数器清0重新计数,并采用下一个新密钥对接下来的20个数据分组进行加密,所有的密钥已经事先保存在数组中。密钥更新的周期可以通过设置计数器的峰值来设定,通过采用这种密钥更新机制,进一步提高了加密系统的安全性。

加密过程是通过Nios Ⅱ软核来控制,首先Nios Ⅱ控制器检测加密按钮是否被按下,如果按下了,则把该信号通过PIO:cipherordecipher传递给DESCIPHER模块指示其进行加密运算,同时通过PIO:loaddata使能DESCIPHER模块的数据输入,并通过PIO:keyhigh [31..0],keylow [31..0]和datahigh [31..0],datalow [31..0]向DESCIPHER模块加载密钥和分组数据。Nios Ⅱ控制器通过PIO:corebusy和desoutready监测DESCIPHER模块的分组数据加密是否完成,如果完成了则corebusy为低电平,desoutready为高电平,同时把计数器的值加1,然后进行下一个分组数据的加密,如此循环。当计数器达到峰值时,更换密钥,计数器清0重新计数。Nios Ⅱ控制器控制DESCIPHER模块加密的流程见图4。

7 结 语

本设计通过定制的串口接收需要的加密数据,用VHDL语言编程硬件实现DES算法,速度非常快,并用Nios Ⅱ软核灵活方便地控制加密过程,从而实现了一个完整的加密系统,同时还提出了一种简易的密钥更新机制,进一步提高了系统的安全性。

由于使用了可灵活定制的Nios Ⅱ软核作为控制器,使得系统的扩展性非常好,可以在该系统中集成其他的加密算法如RSA[8],形成多级加密体制,进一步提高加密强度,而只要一个Nios Ⅱ软核就能实现全部的控制,所以该系统对于实际应用和深入拓展研究都有重要的价值。

摘要:DES算法在信息安全领域扮演着重要的角色,采用软件实现DES算法速度慢,不能满足一些高速应用领域的要求,所以采用硬件实现的方法,在FPGA上实现DES算法,速度非常快。另一个创新之处在于采用Nios Ⅱ软核作为整个加密系统的控制器,通过Nios Ⅱ软核控制串口收发数据以及DES模块的加密过程,Nios Ⅱ软核的最大特点是用户可以灵活定制,这就使得整个系统的扩展性和灵活性非常好,具有很好的应用前景。

关键词:DES,Nios Ⅱ,定制,密钥更新

参考文献

[1]周立功.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2006.

[2]McLoone M,McCanny J V.High-performance FPGA Imple-mentation of DES Using a Novel Method for Implementingthe Key Schedule[J].IEEE Proc.Circuits Devices Syst.,2003,(5).

[3]冯国登,吴文玲.分组密码的设计与分析[M].北京:清华大学出版社,2000.

[4]邓安文.密码学——加密演算法[M].北京:中国水利水电出版社,2006.

[5]李兰英.NiosⅡ嵌入式软核SOPC设计原理与应用[M].北京:北京航空航天大学出版社,2006.

[6]潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2005.

[7]Tai-Chi Lee,Richard Zeien,Adam Roach,et al.DES Deco-ding Using FPGA and Custom Instructions.Proceedings ofthe Third International Conference on Information Technology:New Generations(ITNG′06),2006.

[8]卢开澄.计算机密码学——计算机网络中的数据保密与安全[M].北京:清华大学出版社,2003.

DES数据加密 第7篇

对称加密算法DES是一个经典的分组密码加密算法, 它以64bits分组对明文数据进行加密操作, 在64bits密钥的控制下产生64bits的密文, 64bits密钥中含有8个奇偶校验位, 所以实际有效密钥长度为56位。

一、DES算法简介

DES加密过程大致分三步:

1、给定64bits明文X, 通过初始置换IP排列X中的位得到X0。

2、计算函数F的16次迭代, 根据下述规则来计算Li Ri

(K为56位, 由K得到, 长48位)

3、对比特串

使用逆置换IP-1得到密文Y。

DES解密过程与DES完全类似, 只不过将16轮的子密钥序列的顺序倒过来, 即第1轮用第16个子密钥, 第2轮用, 依次类推。

二、新的DES组合算法

1、算法介绍

本文提出的新DES组合算法串联耦合了两组DES:DES1、DES2 (二者均延续DES过程) , 使得明/密文分组长度及密钥长度都提高了一倍, 设计思路主要体现在以下两个方面:

(1) 将128bits密钥k等分成两组64bits的密钥, 称之为K和K’, 根据DES子密钥生成过程, 对K和K’生成两组16轮子密钥序列:和形成两组子密钥序列。

(2) 将128bits明文数据组块m同样分成两组64bits的M和M’, 在IP置换后, M被分为和, 被分文和, 令迭代公式

向下依次类推, 也就是说本算法其实是经过32轮耦合迭代得到了128bits的密文。

2、DES组合加密算法描述:

(1) 将128bits密钥及明文分组均分为

(2) 对K和K’生成两组16轮子密钥序列, 得到用于加密的新子密钥序列:,

(3) 对两明文分组IP变换, 进行DES迭代, 迭代方向向右移, 即:

迭代最后交换M与M’比特值得到两个DES迭代结果。

(4) 对两个DES迭代结果逆置换然后串联形成128bits密文:。本DES组合算法加密流程如图1所示。

3、DES组合解密算法描述:

本DES组合解密算法与DES组合加密有所不同, 其过程如下:

将子密钥序列倒序, 步骤如下:

(1) 将128bits密钥及密文分组均分为64bits的两块。

(2) 对子密钥K和K’分别生成16轮加密轮函数使用的子密钥序列, 然后分别对其倒序排列, 得到最终迭代轮函数使用的和。

(4) 将两迭代结果IP-1逆置换然后串联形成128bits明文。

4、对称性证明:

证:设:表示加密过程中各阶段的数据

表示解密过程中各阶段的数据则:

对加密第16轮来说存在如下关系:

对解密第1轮来说存在如下关系:

同样, 对于加密第14轮和解密第2轮也存在同样关系。

通式:

证毕

三、总结

本文尝试采取一种广义的Feistle加密模型对56位DES算法进行扩展, 扩展后可单次对128比特的明文进行加密运算。

从软件编写上来看, 算法执行过程同标准DES算法样采取移位和置换运算, 因DES本身就使用将字节和比特相互转化, 所以改进后DES算法的执行效率应受相当于标准DES算法的2倍时间, 改进后DES算法的软件运行效率应大致等同于2重DES算法, 但输出效率比单次加密64比特明文的2重DES算法效率要高一倍。算法加密速度应高于3重DES算法。本文算法不足之处在于解密算法同加密算法虽然对称, 但并不完全一样, 需要重新编码实现解密过程。

从硬件实现上看, 虽然实现速度要比三重DES算法块, 但算法执行过程涉及的电路相对复杂, 而且对标准DES算法使用的硬件没有达到向下兼容使用, 所以硬件实现是否有应用市场还有待进一步观察。

于条件限制, 本文算法安全性未得到详细验证, 但整个加密流程符合DES本身的替代、非线性关系及扩散效应, 所以理论上安全性应等同于112位密钥加密的3重DES算法的安全性。

参考文献

[1]张如文:《中国科学院研究生院学报》, 中国科学院研究生院信息安全国家重点实验室, 2005年。

DES数据加密

DES数据加密(精选7篇)DES数据加密 第1篇关键词:加密,对称,非对称,DES,密钥,明文,密文从最初的保密通信发展到目前的网络信息加密,信息加...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部