资料介绍
摘要: 介绍了3DES加密算法的原理并详尽描述了该算法的FPGA设计实现。采用了状态机和流水线技术,使得在面积和速度上达到最佳优化;添加了输入和输出接口的设计以增强该算法应用的灵活性。各模块均用硬件描述语言实现,最终下载到FPGA芯片Stratix EP1S25F780C5中。
关键词: 状态机 流水线 3DFS FPGA
随着网络的快速发展,信息安全越来越引起人们的关注。加密技术作为信息安全的利器,正发挥着重大的作用。通过在硬件设备(如由器、交换机等)中添加解密功能,可使存储和传输的数据具有较高的安全性。传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,其运算速度较硬件加密要慢,密钥以明文的方式存储在程序中,或者以加密的方式存储在文件或数字库中,重要数据(如个人密码PIN等)会在某一时刻以明文形式出现在计算机的内存或磁盘中,安全性较差。而硬件加密是通过独立于主机系统外的硬件加密设备实现的,所有关键数据的存储、运算都通过硬件实现,不占主机资源、速度快、安全性较高。
尽管DES已被证实是不安全的算法(主要是密钥太短),但三重DES增加了密钥长度,由56位增加到112或168位,有更高的安全性,而且在新一代因特网安全标准IPSEC协议集中已将DES作为加密标准。另一方面,基于DES算法的加/解密硬件目前已广泛应用于国内外卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。利用3DES可以使原系统不作大的改动。所以对3DES的研究仍有很大的现实意义。
1 3DES加密算法描述
DES成为一个世界范围内的标准已经20多年了,很好地抗住了多年的密码分析,除最强有力的可能敌手外,对其它的攻击仍是安全的。DES对64位的明文分组进行操作,通过一个初始置换,将明文分成左半部分和右半部分,然后进行16轮完全相同的运算,最后经过一个末置换便得到64位密文。每一轮的运算包含扩展置换、S盒代换、P盒置换和两次异或运算,另外每一轮中还有一个轮密钥(子密钥)。整体框图如图1所示。
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1((EK2(Dk3(C)))
具体的加/解密过程如图2所示。K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。
2 FPGA设计实现
2.1 FPGA设计的优势
用硬件实现某种密码算法,首先要用硬件描述语言(如HHDL、Verlog HDL)进行系统设计和编码,然后采用专用集成电路(ASIC)或现场可编程逻辑门阵列(FPGA)来具体实现。采用ASIC方法设计周期较长,且费用也较昂贵;而采用FPGA,可由设计者自己对芯片内部单元进行配置,设计比较灵活,只需改变配置就可实现安全不同的功能,大大缩短了设计周期和开发时间,节省人力物力,同时经过优化可以达到较高的性能。另外,有多种EDA开发软件支持FPGA的设计,在本设计中作者采用了ALTERA公司的Quartus II开发软件。
2.2 状态机和流水线技术的应用
面积和速度这两个指标贯穿着FPGA设计的始终,是设计质量评价的终极标准。设计目标就是在满足给定的时序要求(包含对设计频率的要求)的前提下,占用较小的芯片面积;或者在所规定的面积下,使设计时序余小量更大,频率更高。通过功能模块复用可减少设计消耗的芯片面积;反之,并行复制多个操作模块可较大地提高设计频率。在本设计中充分考虑了这一对矜持体,采用状态机和流水线相结合的技术,使得在减少芯片资源消耗的情况下又能提高设计频率。
状态机是组合逻辑和寄存器逻辑的特殊组合,尤其适合于数字系统的控制设计。系统的状态在一定的条件下相互转移。分析DES的算法结构可以发现,轮运算是相同的,只是输入子密钥不同,同时各轮的子密钥都可以通过密钥移位再经过一个压缩置换操作直接得到,所以通过密钥移位现经过一个压缩置换操作直接得到,所以将轮运算作为一个共享模块,反复进行该操作,其输入参数由状态机控制部分提供,主要是密钥移位的位数。只在空闲状态下将轮运算结果输出。因数据端是16位,故每个状态机模块中进行四轮轮运算。
流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程可分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈,前一个步骤的输出是下一个步骤的输入,则可以考虑用流水线设计方法提高系统的工作频率。流水线设计是一种技巧,它在很长组合路径的中间点引入寄存器。寄存器会增加等待时间,但却能增加速度,减少逻辑级。此外,附加寄存器虽然会增加一定的功耗,但却极大地减少了毛刺。流水线处理方式之所以频率较高,是因为复制了处理模块,它是FPGA设计中面积换取速度思想的具体体现。DES的16轮运算结构是相同的,符合流水线设计的要求,所以基于DES的结构特点,将前面的状态机模块作为流水线的一个单元,这样DES共有四个状态,串联起来形成四级流水线。因状态机中有寄存器,能保证流水线的工作,所以各单元间不需再加寄存器。状态机及流水线结构如图3所示,图中给出了由密钥直接生成各子密钥的移位数。将DES模块复制三份,就形成了16级流水线,所不同的是流水线内部是状态机结构,所以每四个时钟周期才会得到一组加/解密结果。这种结构同样适用于数据端是8位和32位的。
关键词: 状态机 流水线 3DFS FPGA
随着网络的快速发展,信息安全越来越引起人们的关注。加密技术作为信息安全的利器,正发挥着重大的作用。通过在硬件设备(如由器、交换机等)中添加解密功能,可使存储和传输的数据具有较高的安全性。传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,其运算速度较硬件加密要慢,密钥以明文的方式存储在程序中,或者以加密的方式存储在文件或数字库中,重要数据(如个人密码PIN等)会在某一时刻以明文形式出现在计算机的内存或磁盘中,安全性较差。而硬件加密是通过独立于主机系统外的硬件加密设备实现的,所有关键数据的存储、运算都通过硬件实现,不占主机资源、速度快、安全性较高。
尽管DES已被证实是不安全的算法(主要是密钥太短),但三重DES增加了密钥长度,由56位增加到112或168位,有更高的安全性,而且在新一代因特网安全标准IPSEC协议集中已将DES作为加密标准。另一方面,基于DES算法的加/解密硬件目前已广泛应用于国内外卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。利用3DES可以使原系统不作大的改动。所以对3DES的研究仍有很大的现实意义。
1 3DES加密算法描述
DES成为一个世界范围内的标准已经20多年了,很好地抗住了多年的密码分析,除最强有力的可能敌手外,对其它的攻击仍是安全的。DES对64位的明文分组进行操作,通过一个初始置换,将明文分成左半部分和右半部分,然后进行16轮完全相同的运算,最后经过一个末置换便得到64位密文。每一轮的运算包含扩展置换、S盒代换、P盒置换和两次异或运算,另外每一轮中还有一个轮密钥(子密钥)。整体框图如图1所示。
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1((EK2(Dk3(C)))
具体的加/解密过程如图2所示。K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。
2 FPGA设计实现
2.1 FPGA设计的优势
用硬件实现某种密码算法,首先要用硬件描述语言(如HHDL、Verlog HDL)进行系统设计和编码,然后采用专用集成电路(ASIC)或现场可编程逻辑门阵列(FPGA)来具体实现。采用ASIC方法设计周期较长,且费用也较昂贵;而采用FPGA,可由设计者自己对芯片内部单元进行配置,设计比较灵活,只需改变配置就可实现安全不同的功能,大大缩短了设计周期和开发时间,节省人力物力,同时经过优化可以达到较高的性能。另外,有多种EDA开发软件支持FPGA的设计,在本设计中作者采用了ALTERA公司的Quartus II开发软件。
2.2 状态机和流水线技术的应用
面积和速度这两个指标贯穿着FPGA设计的始终,是设计质量评价的终极标准。设计目标就是在满足给定的时序要求(包含对设计频率的要求)的前提下,占用较小的芯片面积;或者在所规定的面积下,使设计时序余小量更大,频率更高。通过功能模块复用可减少设计消耗的芯片面积;反之,并行复制多个操作模块可较大地提高设计频率。在本设计中充分考虑了这一对矜持体,采用状态机和流水线相结合的技术,使得在减少芯片资源消耗的情况下又能提高设计频率。
状态机是组合逻辑和寄存器逻辑的特殊组合,尤其适合于数字系统的控制设计。系统的状态在一定的条件下相互转移。分析DES的算法结构可以发现,轮运算是相同的,只是输入子密钥不同,同时各轮的子密钥都可以通过密钥移位再经过一个压缩置换操作直接得到,所以通过密钥移位现经过一个压缩置换操作直接得到,所以将轮运算作为一个共享模块,反复进行该操作,其输入参数由状态机控制部分提供,主要是密钥移位的位数。只在空闲状态下将轮运算结果输出。因数据端是16位,故每个状态机模块中进行四轮轮运算。
流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程可分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈,前一个步骤的输出是下一个步骤的输入,则可以考虑用流水线设计方法提高系统的工作频率。流水线设计是一种技巧,它在很长组合路径的中间点引入寄存器。寄存器会增加等待时间,但却能增加速度,减少逻辑级。此外,附加寄存器虽然会增加一定的功耗,但却极大地减少了毛刺。流水线处理方式之所以频率较高,是因为复制了处理模块,它是FPGA设计中面积换取速度思想的具体体现。DES的16轮运算结构是相同的,符合流水线设计的要求,所以基于DES的结构特点,将前面的状态机模块作为流水线的一个单元,这样DES共有四个状态,串联起来形成四级流水线。因状态机中有寄存器,能保证流水线的工作,所以各单元间不需再加寄存器。状态机及流水线结构如图3所示,图中给出了由密钥直接生成各子密钥的移位数。将DES模块复制三份,就形成了16级流水线,所不同的是流水线内部是状态机结构,所以每四个时钟周期才会得到一组加/解密结果。这种结构同样适用于数据端是8位和32位的。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 如何实现AES加密算法IP核的设计与验证 10次下载
- 3DES数据加密算法的原理和使用FPGA设计的详细说明 18次下载
- 加密卡的研制与加密算法如何依靠FPGA实现 80次下载
- 应用FPGA来设计和实现DES加密算法的详细中文资料概述 17次下载
- 用matlab实现AES加密算法 11次下载
- 基于DES加密算法的预付费空调管理系统设计 1次下载
- 一种密钥可配置的DES加密算法的FPGA实现 11次下载
- RC4加密算法的FPGA设计与实现 27次下载
- IDESA数据加密算法的设计与实现 0次下载
- 高速和资源节约型数据加密算法设计
- 基于蔡氏电路和DES的图像加密算法
- 基于FPGA的DES 算法S盒的优化设计
- 地图数据网络分发的混合加密算法
- 快速硬盘加密算法的设计与实现
- des加密算法代码
- 科普:简述DES与AES的区别 4776次阅读
- 嵌入式的RSA非对称加密算法 1791次阅读
- 采用FPGA器件实现GPS数据加密系统中机载模块中DES IP的设计 1575次阅读
- 基于FPGA的加密算法设计方案详解 7309次阅读
- 常用算法的分类以及加密算法的选用 7634次阅读
- 软件加密算法都有哪些,这些算法在哪些方面得到了应用? 7609次阅读
- idea加密算法及原理详解 3.8w次阅读
- DES算法的应用误区及安全性分析 1.6w次阅读
- c语言实现des加密算法详细过程 3.5w次阅读
- java实现非对称加密算法的过程 5306次阅读
- 非对称加密算法有什么特点 2.2w次阅读
- 常见公钥加密算法有哪些 4.3w次阅读
- 3des加密解密详细解释 3w次阅读
- des算法与rsa算法有什么区别_比较 1.9w次阅读
- des加密解密算法详解及源码分享 1.7w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多