手机站

当前位置: > 论文发表 > 高校教学论文 >

基于FPGA的3DES算法的实现和应用

作者:未知 时间:2015-12-15 阅读:( )

  周庆芳

  (曲靖师范学院 教育技术研究所 云南曲靖市 655011)

  关键词: FPGA; DES; 3DES;数据加密;

  1 引言

  网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备所提供的加/解密功能。目前,基于DES算法的加/解密硬件广泛应用于国内卫星通信、网关服务器以及其它大量的数据传输业务中[1]。DES算法是一种采用传统加密方法的分组密码。它的算法是对称的,既可用于加密又可用于解密。

  随着密码分析技术的发展,DES算法已被攻破,在不对原有应用系统作大的改动的情况下,3DES算法有了很大的生存空间,被大量用来代替已经不安全的DES算法。本文通过对可编程逻辑器件FPGA的相关基础知识的学习和对3DES算法的研究,以FPGA为平台进行3DES算法的实现设计,经仿真验证该系统能够实现加/解密功能,具有广泛的市场应用前景。

  2 算法介绍

  3DES是DES的一个更安全的变形。其中S盒是3DES(DES)算法的心脏,靠它实现非线性变换。

  3DES算法可以描述如下:设ek(x)和dk(x)分别表示用DES算法对64位的位串加密和解密,密钥为K;64位的密文c是通过执行下面的运算得到的:

       其中K1、K2、K3是56位的DES密钥。从密文c导出明文x的3DES的解密过程是加密过程的反过程,其描述如下:

  3 3DES的设计与实现

  1.设计过程

  3DES(DES)算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行高速设计提供了契机。由于DES算法中每个分组需经过16轮运算,如果采用顺序电路构架则每过16轮运算才能得到一个加密分组,大大降低了加密效率。高速DES运算电路采用流水结构,16步迭代设计16个运算模块,分别称作LUN1、LUN2、…、LUN16,数据在各模块间流水运算。当系统对第i个输入的数据元素进行第j段运算的同时,还可以对第i+1个数据进行第j-1段的运算,对第i+2个输入的数据元素进行第j-2段的运算……,以此提高系统的运算效率。

  2.控制电路

  控制电路是整个系统的控制中心,可以采用移位寄存器或计数器加译码电路构成,为减少信号毛刺,提高电路运算的稳定性与工作速度。这里选用一个17bits的串入并出移位寄存器,其中16bits用于生成算法的每轮运算的使能信号,另外1bit用于生成指示加密输出的ready信号。

  3.密钥生成模块

  密钥生成模块与流水构架DES运算电路的工作时序相对应,其16步迭代运算所需子密钥必须同时生成。密钥生成模块由选择控制电路PC-1、选择输出、压缩置换电路PC-2构成。该部分的输入是64bits初始密钥,输出为每次迭代运算用的子密钥,使能控制信号、模式控制信号。64bits初始密钥经过置换选择PC-1去除校验位并被分离成左右两部分,各28bits,在模式控制信号(加密或脱密)及内部状态机信号控制下,根据移位表,选择输出,经压缩置换PC-2同时形成各步迭代所需运算子密钥。

  4 系统仿真

  1. 3DES加/解密运算模块

  3DES算法进行3次DES算法,所以只要写出DES算法的程序,进行例化调用即可。

  2. 密钥生成模块

  密钥生成模块是系统的核心模块,采用随机方式生成的密钥,具有代表性。其仿真波形图如图1所示。

  图1 密钥生成的波形仿真图

  小结

  本文通过对3DES加/解密算法的设计,展示出了FPGA在3DES加/解密算法上的应用,让我们从一个更高的角度来理解FPGA的设计,在以后的设计实践中应从FPGA接口方面考虑来完善该设计。该系统主要包括密钥生成模块,控制电路等几个方面设计3DES加/解密系统,经仿真验证该系统能够实现加/解密功能,具有广泛的市场应用前景。

  参考文献:

  [1] 王育民, 何大可:《保密学——基础及应用》 西安:西安电子科技大学出版社,1990

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

上一篇:四联交互式教学的实施问题研究

下一篇:数字人体心率检测仪设计

奇速英语直播体验课
相关文章
精品推荐