APP下载

基于FPGA技术的GPS数据加密系统设计研究

2010-08-14邢红涛王建功

网络安全与数据管理 2010年15期
关键词:服务器端加密算法口令

邢红涛,王建功,初 晓

(中国人民解放军63895部队,河南 孟州 454750)

随着网络通信技术的发展,数据传输对安全性的要求也随之加强。如何确保信息的正确认证与严格保密,保证数据信息在传输与处理过程中不被非法窃取和篡改,成为信息安全理论与技术研究的重要内容。多数情况下,数据加密是保证信息机密性的惟一方法。在GPS测量系统中,GPS定位数据以明文形式通过电台进行传输,可能会被同型号电台获取,存在一定的安全隐患。本设计应用FPGA技术设计了GPS数据加密系统,通过MD5加密算法对管理员口令进行加密;DES加密算法对GPS数据进行加密。这样,GPS数据经加密卡加密后再以密文方式发给电台进行传输,同时接收端必须使用密钥将密文解码才能得到定位数据,从而确保了数据传输的安全。

1系统组成及功能

GPS数据加密系统由机载模块和服务器端两部分组成,通过电台进行通信。其系统结构如图1所示。

1.1机载模块

机载模块由 4×4键盘、机载 LCD、加密卡三部分组成,用户可通过4×4键盘发送预定义指令、更改密钥等操作;机载LCD用于显示系统工作状态、飞行参数等数据;加密卡为系统核心部件,主要有以下4个功能:

(1)解析、处理GPS数据、检测设备工作状态并在LCD上显示相关信息;

(2)接收GPS数据并通过加密卡对其加密,将密文通过电台传送到服务器端;

(3)处理键盘或服务器端输入的预存指令编号或新指令,将指令发给GPS接收机并返回回馈信息;

(4)更新键盘或服务器输入的新密钥或新管理员口令。新密钥先保存在Flash中,再通过总线传给密钥寄存器;新口令保存在Flash中。

系统工作时,加密卡通过UART IP获取GPS数据后同时传给NIOS和DES IP。NIOS解析 GPS数据并经LCD Controller传给机载LCD进行实时显示,方便机上人员了解设备工作状态;DES IP将GPS数据加密后,通过I/O中断传给NIOS,NIOS将密文加入数据包头、尾字节后,再经电台传到服务器端。

1.2服务器端

服务器端为通用计算机,其应用软件使用VC++6.0开发,服务器的主要功能有以下6点:

(1)接收电台传来的密文并进行 DES算法解密、解析和处理GPS数据;

(2)显示GPS参数,并保存数据;

(3)发送GPS接收机控制指令;

(4)更改密钥;

(5)更改管理员口令;

(6)设置串口参数。

2数据加密算法的原理及应用

2.1 MD5算法的原理及应用

信息—摘要算法MD5(Message-Digest Algorithm 5),在90年代初由 Rivest设计发明,经 MD2、MD3和 MD4发展而来。其作用可使大容量信息在用数字签名软件签署私人密匙前,被“压缩”成一种保密的格式(对任意长度的信息,生成一个长度为128 bit的值)。

本设计将MD5算法移植到NIOS中,用于加密管理员口令。这样系统在并不知道管理员口令的明码情况下就可以确定口令的合法性,从而有效地防止了反编译等技术手段对管理员口令进行破解。系统工作时,NIOS预先将管理员口令加密后,将MD5值存储在Flash中,当加密卡接收到更改密钥、更改口令或发GPS接收机控制指令等操作命令时,先将输入的口令计算成MD5值,然后与存储在Flash中的MD5值进行比较,如果两值相同则说明口令正确,再进行相应的操作。

2.2 DES算法的原理及应用

DES(Data Encryption Standard)是一种分组乘积加密算法,是用64 bit的密钥对 64 bit的明文加密,64 bit密钥中每8 bit有一奇偶校验位不参与运算,有效密钥只有56 bit。同时,它又是对称加密算法,其加密和解密运算过程完全相同,只是在迭代运算时子密钥的使用顺序不同[1]。如图 2所示,64 bit的明文块在经过初始 IP置换后,被重新排列,然后进入16轮的迭代运算;每一轮迭代运算由一个f函数完成;最后一轮迭代的输出为64 bit,将其左半部分和右半部分互换产生预输出;预输出再与逆初始置换 IP-1作用产生 64 bit的密文,IP-1是 IP的反变换[2]。

图2 DES算法总流程

采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算(如乘、带进位的加、模等运算),在加密、解密过程和密钥生成过程中仅有逻辑运算和查表运算。因而,无论是从系统性能还是加、解密速度的角度来看,采用硬件实现都是一个理想的方案[3]。

图3为DES IP的硬件逻辑图,主要由状态控制器、子密钥生成器、DES算法运算器三部分组成。其中,状态控制器用于控制IP的工作状态、模式和标识完成状态;子密钥生成器将56 bit密钥分成两部分,每部分按循环移位次数表移位并按置换选择表置换,从而生成每一轮次运算的子密钥 K(K1,K2,…,K48);DES 算法运算器为整个IP的关键,它将64 bit中间数据分为左右两部分,分别记为Li和Ri。单个运算的过程可以写为下面的公式:

f函数是 DES算法运算器的核心。其中,f(Ri-1,Ki)功能由以下4步完成:

(1)将Ri-1按照扩展换位表E扩展为48 bit的数据;

(2)将扩展后的 Ri-1与循环移位后的 48 bit子密钥K(K1,K2,…,K48)“异或”;

(3)将“异或”后的结果送入 8个 S盒(S box)进行替代运算,每个 S盒都有 6 bit输入、4 bit输出,并且 8个S盒都不相同,48 bit的输入分为6位一组,分别送到8个S盒选择相应的输出,结果为32 bit;

(4)S盒替代后的 32 bit结果依照P盒(P box)进行置换,置换后结果即为 f(Ri-1,Ki)的最终值,这样便完成了f函数的运算。

算法中用到的初始换位表IP、放大换位表 E、替代函数表 S、换位函数 P、逆初始换位 IP-1、密钥循环移位表可在参考文献[4]中查到。本设计中,GPS数据的加密在加密卡中完成,解密在服务器端完成,为方便功能扩展,在加密卡中设计、保留了解密功能。

2.3 DES算法仿真验证

本设计的DES IP采用ALTERA公司的Quartus 7.0软件开发及Verilog HDL语言编写[5],整个加密卡在单片Cyclone系列EP1C6Q240C8N芯片上实现。图4为Quartus 7.0开发软件下DES IP的仿真图。

各仿真信号的意义及说明如下:

时钟信号(clk):周期为 10 ns、占空比为50%;

复位信号(reset_n):低电平有效,置高;

模式信号(mode):加密/解密选择,‘1’为加密,‘0’为解密;

加载信号(load):高电平有效,置高;

加密数据(des_in):8000 0000 0000 0000;

密钥信号(key):0000 0000 0000 0000;

加密结果(des_out):95F8 A5E5 DD31 D900;

加密完成信号(ready):在第17个周期后置高。

DES IP工作时,“密钥”保存在总线接口的密钥寄存器中,“加密数据”由 NIOS输入,加密完成后,通过“加密完成信号”产生的I/O中断传回给NIOS。图4中,其加密结果与XILINX公司网站上设计参考中给出的数据一致,表明DES IP设计正确。

本设计采用FPGA技术设计了GPS数据加密系统,重点介绍了机载模块中DES IP的设计。实验发现,采用NIOS进行DES算法软件加密时速度慢,会出现间隔丢失GPS数据的现象,而采用硬件DES IP进行加密处理时,完全可以满足GPS接收机的速度需要,不会出现丢点现象。系统采用MD5算法对管理员口令进行加密,进一步增强了系统的安全性,因此本设计对解决该GPS测量系统安全性方面有较大的现实意义和实用价值。

[1]胡向东,魏琴芳.应用密码学[M].北京:电子工业出版社,2006.

[2]贺雪晨,陈林玲,赵琰.信息对抗与网络安全[M].北京:清华大学出版社,2006.

[3]褚雄,王子敬,王勇.一种基于 FPGA的 DES加密算法实现 [J].江 南 大 学 学 报 (自 然 科 学 版 ),2006,15(6):661-664.

[4]STALLINGS W.密码编码学与网络安全(第 3版)[M].刘玉珍,王丽娜,傅建明,等译.北京:电子工业出版社,2004.

[5]徐光辉,程东旭,黄如.基于FPGA的嵌入式开发与应用[M].北京:电子工业出版社,2006.

猜你喜欢

服务器端加密算法口令
Linux环境下基于Socket的数据传输软件设计
高矮胖瘦
口 令
好玩的“反口令”游戏
混沌参数调制下RSA数据加密算法研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
SNMP服务弱口令安全漏洞防范
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法