3-DES算法的FPGA实现

发布者:innovator7最新更新时间:2008-10-23 来源: 21IC关键字:FPGA  算法  3-DES  网络安全 手机看文章 扫描二维码
随时随地手机看文章

  引 言

  从技术角度讲,网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备如交换机、路由器等所提供的加/解密功能。目前,基于DES算法的加/解密硬件仍在广泛应用于国内卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。

3-DES算法的FPGA高速实现

  然而,随着密码分析技术的不断发展,超期服役的DES算法已被攻破,随即美国商业部提出采用以Rijndael算法的AES作为新一代的加密算法。在不对原有应用系统作大的改动的情况下,3-DES算法有了很大的生存空间,被大量用来替换已不安全的DES算法。所以对3-DES算法的高速实现,仍具有一定的实际应用意义。

  1 3-DES算法介绍

  1999年,NIST将3-DES指定为过渡的加密标准。3-DES是DES的一个更安全的变形(关于DES算法的详细资料,可见参考文献[1]、[2])。DES算法运算的框图如图1。其中S盒是3-DES(DES)算法的心脏,靠它实现非线性变换。

  dk(x)表示用DES算法对64位的位串的加密和解密,密钥为K;则64位的密文c是通过执行下面的运算得到的:

  其中K1、K2、K3是56位的DES密钥。

  从密文c导出明文x的3-DES的解密过程是加密过程的反过程,其描述如下:

  其结构如图2。

3-DES算法的FPGA高速实现

  为了获得更高的安全性,三个密钥应该是互不相同的。这样,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。对安全性需要不那么高的数据,K1可以等于K3。在这种情况下,密钥的有效长度为112位。

  在通常使用的所有64位的分组密码中,3-DES是最安全的;但是,如果用软件来实现,它也是这些分组密码中最慢的。通过硬件设计,3-DES的性能胜过大多数其它用软件实现的分组密码。

  2 FPGA实现设计

  本设计采用实验室现有试验开发板上Xilinx公司SPARTANII结构的XC2S100作为算法载体,在其中实现控制器和三个DES模块以及密钥的生成,通过控制器实现加、解密功能。从上边的介绍可以看到,3-DES(DES)算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行高速设计提供了契机。

3-DES算法的FPGA高速实现

  2.1 DES模块的设计结构

  每个DES模块的实现是用一个轮函数实现的16份拷贝通过深度细化的流水线处理来完成的,以获得最高的性能。

  采用循环全部打开和流水线结构来设计。循环全部打开后,实现全部16轮结构并串在一起,只要一个时钟周期就可以完成一个数据块的加密或解密;通过多占很大的空间来换得速度上的大幅度提高,然后再在每轮的中间加上寄存器来实现流水线。在第一时钟周期,第一块数据经过第一轮处理存入寄存器1中。在下一个时钟周期,寄存器1中的结果经过第二轮处理存入寄存器2中;同时,第二块数据可以经过第一轮处理存入寄存器1。这样,多块数据实现了同时处理。另外,在设计中通过使用16个寄存器,使得加/解密速度可以提高近16倍。在DES模块的每一轮中设计3级流水线,尽管这样增加了48个周期的时延,但却进一步提高了整体处理的速度性能;同时,将数据加/解密部分和密钥生成部分分开单独设计,可以减少相邻流水线级间的逻辑层数目。

3-DES算法的FPGA高速实现

  2.2 S盒设计

  通过时间分析发现,S盒在整个设计中占了很大的比重。S盒性能的提高对于整个设计性能会有很大的改善,因此S盒是整个设计优化的重点。

  DES的8个S盒分别是一个满足特殊性能的6~4位的变换。在VHDL或Verilog语言中,可以直接用CASE语句来实现。这是最简单的实现方法,但是HDL语言都属于高级语言,它们强烈依赖于编译器的优化能力,往往对设计者来说,涉及得越少、编程越简单,代码效率越不高,这对于高速实现来说是不可取的。在实现过程中通过分析工具也发现,依赖于编译器的实现不但复杂,而且占用大量的空间。这样,S盒成了速度的瓶颈,为此,采用ROM来实现。XC2S100的LUT可以配置为16×1位的ROM,把输入的6位作为地址,对应的地址空间里存放的就是输出的4位,从而实现了6~4位的查找表LUT,所需时间只是FPGA中CLB的传输时间加上传输线上的延时,如图3。

  2.3 密钥生成器设计

  密钥生成器的设计是独立于DES轮函数运算实现的,采用3级流水线来与轮函数中的流水线相平衡,单轮的实现如图4。

  其中,3级流水线由移位寄存器(SR)和1个触发器(FF)构成,在SR中完成两级流水线,在FF中实现第三级。XC2S100的LUT中的每个查找表LUT可以用来生成1~16个移位寄存器,而且在一个单独的可配置逻辑功能块CLB中连接8个移位寄存器来构成一个128位的移位寄存器。

3-DES算法的FPGA高速实现

  2.4 3-DES的实现

  将上述所设计的三份DES模块在FPGA中组合,实现如图5所示的完整连接。整个时延约为单个DES模块的三倍。

  结 语

  我们在Xilinx的开发平台Foundation 4.2i下用Verilog HDL完成设计,并进行了综合和仿真;成功下载到我们实验室的试验板上的XC2S100中,用VC++ 6.0编写了测试程序;在Windows98下运行,均 能正确实现加/解密功能。在试验板上晶振为25MHz的情况下,大致评测出加密速度为520Mb/s。

关键字:FPGA  算法  3-DES  网络安全 引用地址:3-DES算法的FPGA实现

上一篇:Altera宣布为汽车设计提供P.A.R.I.S系统
下一篇:研祥携维宏召开浙江宁海数控行业发展研讨会

推荐阅读最新更新时间:2024-05-02 20:42

采用汇编语言的BCH解码校验算法
在信号传输中,BCH码被广泛应用于动态的实时无线通信中,而底层的单片机级信号传输往往只采用奇偶校验等简单方法。本文结合一些测控系统和监控系统的开发,提出一种用汇编语言实现BCH解码校验的算法,该算法包括BCH码的差错检验、差错查找和差错纠正,并给出相关的主程序和子程序及说明。 关键词 汇编语言 BCH码 伽罗华域 解码校验   在信号传输中,BCH码以其独特的优点被广泛应用于微机级的通信中,但因其算法复杂,通常只用在动态实时的无线通信中,而对更底层的单片机级的信号传输纠错,往往只采用奇偶校验等简单的校验方法。本文结合一些测控系统和监控系统的开发,摸索出了在实时动态单片机中的BCH解码检纠方法,并通过汇编语言加以实现,取得了一
[工业控制]
采用汇编语言的BCH解码校验<font color='red'>算法</font>
警惕传感器漏洞- 汽车图像传感器决胜网络安全赛道
向自动驾驶过渡的趋势,加上公众对无人驾驶汽车安全性的担忧,使网络安全成为汽车原始设备制造商(OEM)的首要关注点。 必须保障汽车系统的完整性和对车辆的控制,从而确保驾驶员、乘客和行人的安全。 网络安全对于通过网络连接的汽车子系统等必不可少,对用于先进驾驶辅助系统 (ADAS) 和驾驶员监控的图像传感器也同样至关重要。 图像传感器相当于汽车的眼睛,支持 ADAS 功能,例如车道偏离警告、行人检测和紧急制动。它们帮助汽车系统评估周围环境并监控驾驶员的行为。未来,它们还将协助识别和验证汽车用户的身份并监控他们的生命体征,以便在驾驶员丧失行为能力时通过车载计算机来控制汽车。因此,图像传感器必须保持正常使用,尤其是在汽车可能遇到的极端情
[汽车电子]
警惕传感器漏洞- 汽车图像传感器决胜<font color='red'>网络安全</font>赛道
关于网络兼职骗术分析·大家共同努力让网络骗子无处遁形
想写这篇文章很久了,但因为各种原因没有写,但是今天又有一位群友上当受骗了,这有引起了我的注意,来写这篇文章就是为网友分析网络几个简单的网络兼职社交骗术。下面就随手机便携小编一起来了解一下相关内容吧。 关于网络兼职骗术分析·大家共同努力让网络骗子无处遁形 “小缘”平时管理几个兼职群,因为管理得当所以在洛阳“小缘”的高校群质量还是不错的,因为管理这样的社交群,所以平时遇到各种各样的网络骗术,所以“小缘”就采取了一刀切的管理方法,就是不允许任何网络兼职在群里发布,但是骗子见缝插针的在群里发布虚假消息,今天这位群友被骗就是例子。那么我们平时该怎样分辨网络骗子呢,“小缘”今天就和大家分析一下那些网络兼职是骗子的套路; 关于网络
[手机便携]
基于SD卡的FPGA配置
1.引言   由于 FPGA 良好的可编程性和优越的性能表现,当前采用FPGA 芯片的嵌入式系统数 量呈现迅速增加的趋势,特别是在需要进行大规模运算的通信领域。目前FPGA 配置数据一 般使用基于SRAM 的存储方式,掉电后数据消失,每次上电后都要重新写入。配置数据的 写入方式有3 种,即使用JTAG 仿真器、使用专用芯片以及使用微处理器。JTAG 仿真器的 方式在调试的时候使用较多,能随时修改,但缺点是FPGA 芯片必须与电脑主机连接,失去 了灵活性。使用专用芯片的方式可以将配置数据事先存储在非易失性存储介质中,为大规模 升级提供了方便,但不利之处在于专用芯片往往价格较高,并且也必须采用特定的存储介质, 提升了系统成本,而
[嵌入式]
基于SD卡的<font color='red'>FPGA</font>配置
基于FPGA的PROFIBUS-DP总线光电收发器设计
      PROFIlBUS-DP现场总线以其高速、低成本等优点而广泛应用于制造业自动化、流程工业自动化和楼宇自动化等行业,它的物理层数据传输依赖RS-485接口。RS-485接口是一种工业领域内广泛使用的串行通信接口,可采用“差分”方式在屏蔽双绞线中传输信号,因而具有较好的抗共模干扰能力,通信距离可达千米。PROFIBUSDP总线信号也可使用屏蔽双绞线传输,数据速率为9.6 kbps时的理论传输距离为1200米,波特率为12:Mbps时的理论传输距离为100米。但是,由于工业现场情况错综复杂,各种干扰相互叠加,且RS-485标准规定单段网络最多可支持32个节点(标准负载),因此,有必要使用一种中继设备来将信号更准确、更完整地传
[嵌入式]
基于DSP+FPGA多视频监控的采集电路模块
  随着计算机和数字图像处理技术的飞速发展,视频监控技术应用广泛。传统的视频监控系统都是用单一摄像头对某一固定场景进行监控,不仅视频的视野范围有限,而且不能对同一个物体的不同方位进行监控。这里提出了一种多通道视频监控系统,通过对不同视频通道稳定、可靠地切换控制,实现监控不同场景。该系统不仅弥补了传统监控视频范围有限的不足,而且提高了监控资源的利用率,降低了监控成本。    视频采集电路模块   由于视频通道的切换时间非常短,这就需要切换控制模块对视频信号有一个非常准确的判断,以便及时发送切换命令,因此需要选择一款高速的转换器。另外由于本系统的电源为5 V供电,因此需要选择一款低功耗的器件。因此选择AD9203作为模拟信号的数字量
[嵌入式]
基于DSP+<font color='red'>FPGA</font>多视频监控的采集电路模块
基于FPGA的PCI总线接口设计
摘 要:PCI是一种高性能的局部总线规范,可实现各种功能标准的PCI总线卡。本文简要介绍了PCI总线的特点、信号与命令,提出了一种利用高速FPGA实现PCI总线接口的设计方案。 关键词:PCI总线;信号;命令;协议 ---在现代数据采集及处理系统中,ISA、EISA、MCA等扩展总线已无法适应高速数据传输的要求,而PCI局部总线以其优异性价比和适应性成为大多数系统的主流总线。 PCI总线特点 ---PCI总线宽度32位,可升级到64位;最高工作频率33MHz,支持猝发工作方式,使传输速度更高;低随机访问延迟(对从总线上的主控寄存器到从属寄存器的写访问延迟为60ns);处理器/内存子系统能力完全一致;隐含的中央仲裁器;多路复
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved