您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

3-DES算法的FPGA高速实现

时间:2007-1-20栏目:电子通信论文

  摘要:介绍3-DES算法的概要;以Xilinx公司SPARTANII结构的XC2S100为例,阐述用FPGA高速实现3-DES算法的设计要点及关键部分的设计。
  关键词:3-DESFPGA高速实现
  
  引言
  
  从技术角度讲,网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备如交换机、路由器等所提供的加/解密功能。目前,基于DES算法的加/解密硬件仍在广泛应用于国内卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。
  
  然而,随着密码分析技术的不断发展,超期服役的DES算法已被攻破,随即美国商业部提出采用以Rijndael算法的AES作为新一代的加密算法。在不对原有应用系统作大的改动的情况下,3-DES算法有了很大的生存空间,被大量用来替换已不安全的DES算法。所以对3-DES算法的高速实现,仍具有一定的实际应用意义。
  
  13-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。
  
  为了获得更高的安全性,三个密钥应该是互不相同的。这样,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。对安全性需要不那么高的数据,K1可以等于K3。在这种情况下,密钥的有效长度为112位。
  
  在通常使用的所有64位的分组密码中,3-DES是最安全的;但是,如果用软件来实现,它也是这些分组密码中最慢的。通过硬件设计,3-DES的性能胜过大多数其它用软件实现的分组密码。
  
  2FPGA实现设计
  
  本设计采用实验室现有试验开发板上Xilinx公司SPARTANII结构的XC2S100作为算法载体,在其中实现控制器和三个DES模块以及密钥的生成,通过控制器实现加、解密功能。从上边的介绍可以看到,3-DES(DES)算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行高速设计提供了契机。
  
  2.1DES模块的设计结构
  
  每个DES模块的实现是用一个轮函数实现的16份拷贝通过深度细化的流水线处理来完成的,以获得最高的性能。
  
  采用循环全部打开和流水线结构来设计。循环全部打开后,实现全部16轮结构并串在一起,只要一个时钟周期就可以完成一个数据块的加密或解密;通过多占很大的空间来换得速度上的大幅度提高,然后再在每轮的中间加上寄存器来实现流水线。在第一时钟周期,第一块数据经过第一轮处理存入寄存器1中。在下一个时钟周期,寄存器1中的结果

[1] [2] 下一页

下页更精彩:1 2 3 4 下一页