摘 要: 针对GPS测量系统数据传输过程中的安全问题,采用FPGA技术设计了GPS数据加密系统。系统移植MD5算法到NIOS中对系统口令加密,并设计DES IP对GPS数据加密。实验表明,该设计可有效防止GPS数据被非法窃取,具有安全性强、速度快、操作简便等特点。
随着网络通信技术的发展,数据传输对安全性的要求也随之加强。如何确保信息的正确认证与严格保密,保证数据信息在传输与处理过程中不被非法窃取和篡改,成为信息安全理论与技术研究的重要内容。多数情况下,数据加密是保证信息机密性的惟一方法。在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]。
采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算(如乘、带进位的加、模等运算),在加密、解密过程和密钥生成过程中仅有逻辑运算和查表运算。因而,无论是从系统性能还是加、解密速度的角度来看,采用硬件实现都是一个理想的方案[3]。
来源:维库开发网