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

2017-05-11 21:27周庆芳
教育界·上旬 2016年6期
关键词:密钥解密加密

周庆芳

[摘要]随着密码分析技术的不断发展,超期服役的DES算法已被攻破,3DES算法有了很大的生存空间,被大量用来代替已经不安全的DES算法。本文通过对可编程逻辑器件FPGA的相关基础知识的学习和对3DES算法的研究,以FPGA为平台进行3DES算法的实现设计,具有一定的实际应用意义。

[关键词]FPGA 3DES 设计 应用

一、引言

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

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

二、算法介绍

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

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

c=ek3(dk2(ek1(x))

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

x=dk1(ek2(dk3(c)))

三、3DES的设计与实现

(一)设计过程

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

(二)控制电路

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

(三)密钥生成模块

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

四、系统仿真

(一)3DES加/解密运算模块

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

(二)密钥生成模块

密钥生成模块是系统的核心模块,采用随机方式生成的密钥,具有代表性。

五、小结

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

猜你喜欢
密钥解密加密
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
保护数据按需创建多种加密磁盘
炫词解密
炫词解密
谷歌禁止加密货币应用程序
BitLocker密钥恢复二三事
加密与解密
一种新的动态批密钥更新算法