![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
|||||
| DES加密算法的FPGA实现 | |||||
作者:张峰,郑… 文章来源:现代电子技术 点击数: 更新时间:2008-6-16 ![]() |
|||||
|
张峰,郑春来,耶晓东 1 引 言 随着通信技术和网络技术的飞速发展,对于数据传输安全性的要求也随之增强,因此人们提出了很多数据加密算法。基本加密算法有两种:对称密钥加密、非对称密钥加密。其中,对称密钥加密也叫秘密/专用密钥加密,即发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。最著名的对称密钥加密标准是数据加密标准DES。DES是一种使用56个数据位的密钥来操作64位数据块的块加密算法,由IBM公司推出,可同时对大量数据进行快速加密。 DES的实现方法通常分为软件实现和硬件实现两种。软件实现时速度较慢,软件实现DES算法的最快速度不到150 Mb/s,在某些高速数据传输的场合,数据传输速率达到1 Gb/s以上,用软件实现算法是无法满足要求的;同时,软件实现DES算法在安全性方面也存在隐患,因此必须采用硬件实现。DES算法全部是逻辑运算,用硬件实现时速度很快,通常可以达到软件实现速度的几十倍。FPGA(现场可编程门阵列)在实现算法方面具有灵活性、物理安全性和比软件更高的速度性能,已成为硬件实现DES算法的最好选择。 2 DES算法原理 DES算法是一种分组加密算法,他以64位的分组数据进行加解密,数据加密和解密使用相同的算法结构,只是密钥的使用顺序不同。蜜钥通常为64位,但每个第8位都用作奇偶校验,实际密钥长度为56位。DES算法的保密性取决于密钥,但只有极少数的密钥被认为是弱密钥,所以在实际的应用中可以很容易避免。图1为DES算法的流程图。 DES算法的基本流程如下:首先,输入明文通过初始置换,将其分成左、右各为32位的两个部分,然后进行16轮完全相同的运算。经过16轮运算后,左、右半部分合并在一起经过一个末置换(初始置换的逆置换),于是整个算法结束。 在每一轮运算中,密钥位移位,然后再从密钥的56位中选取48位。通过一个扩展置换,将数据的右半部分扩展为48位,并通过一个异或操作与一个48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再通过一级置换操作。这四步操作即为图1中的函数f。图2给出了函数f的计算流程图。
3具体硬件实现 DES算法的硬件实现以图1为基础,其中的初始置换和末置换的实现比较简单,具体可参考文献[1]。硬件实现的关键在于如何实现函数f和每一轮迭代中密钥。本文重点研究了DES算法中函数f的实现方法,并给出了 实际代码。 函数f的实现参照图2,首先将数据的右半部分扩展为48位数据,该操作的目的是产生与密钥同长度的数据以进行异或操作。异或操作的结果(48位)进行S盒替代,将数据压缩为32位。每个S盒都有6位的输入,4位的输出,48位的输入被分为8个6位的分组,每一个分组对应一个S盒替代操作。每个S盒是一个4行、16列的表,输入位以一种特殊的方式确定S盒中的项。假定将S盒的6位输入标记为x0,x1,x2,x3,x4,x5。则x0和x5组合成2位的数,从0~3,对应表中的一行,x2~x5构成一个4位的数,从0~15,对应表中的一列。限于篇幅,本文仅给出S1盒的置换,具体如表1所示。
DES模块在QuartusⅡ5.1版本中,综合结果表明:该DES模块耗费4362LE,该模块下载到EP1S10B672C6芯片中,最高工作频率可达106.85 MHz。由于本设计采用16级流水总线设计,所以最高数据编码/解码速率可达6 Gb/s。在Quartus中的仿真结果如图3所示。其中,de-crypt为加密/解密模式选择信号,低电平为加密模式,高电平为解密模式。desIn为输入信号,desOut为输出信号,key为密钥。根据文献[4],采用675A69675E5A6B5A作为明文,5B5A57676A56676E作为密钥,加密后的密文应为974AFFBF86022D1F。因此,我们采用以上的数据作为测试向量,对设计进行了测试。测试结果表明:本设计的加密/解密功能完全正确。
|
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|