近年来GPS(全球定位系统)系统以其高精度的定位、测速和定时功能得到了广泛的应用。GPS接收模块安装在车辆、轮船等运输工具上,驾驶人员可以实时了解车辆所处的地理位置,辅助车辆的导航、定位,在一些特殊情况下,需要在外部对一些重要的移动目标进行监控,及时掌握其移动情况,对其指挥和导航。这就需要一套全球定位信息传输系统,把地理位置及其它相关信息经无线信道传输到指挥中心。在目标出现位置、状态异常等情况时,指挥中心能够及时掌握这些信息,并做出响应,由于经无线信道传输的信息很容易放恶意的截获,因此需要采取一定加密手段,提高中心和移动目标之间通信的安全性,本文设计了由一台中心计算机和一组终端模块组成的GPS信息加密传输系统,实现移动目标的GPS信息采集和加密传输。

一、系统总体架构

整个GPS信息加密传输系统由一个中心计算机和一组定位信息加密传输模块(简称终端模块)两大部分组成,如图1所示。

基于SOPC的GPS信息加密传输系统

中心计算机处于指挥中心,位置固定,负责信息的接收、显示、导航、密钥分发等系统管理任务。终端模块安装在移动的目标上,主要由GPS模块、CDMA无线通信模块和基于FPGA的控制模块组成,它利用无线信道在规定的时间间隔内向中心计算机发送加密后的GPS数据及其它相关信息。目前,无线通信系统{要有GPRS和CDMA两种,其中CDMA在传输数率、频率资源、抗干扰能力、安全保密等方面都有较大优势。因此,在本系统中指挥中心和终端模块之间采用CDMA实现无线通信。

二、定位信息加密传输模块设计

在整个系统中,定位信息加密传输模块是本系统设计的关键。中心计算机主要由一台计算机、一组尤线通信模块和相关的管理软件组成,下面主要讨论定位信息加密传输模块的设计方法。

1、硬件总体架构

信息加密传输模块安装在移动目标上,体积、功耗、防震动等对其稳定工作非常重要。而可编程片上系统(SOPC)技术结合了SOC和可编程逻辑器件的优点,一般具备以下基本特征:

(1)至少包含一个嵌入式处理器内核;

(2)具有小容量片内高速RAM资源;

(3)丰富的IP Core资源可供选择;

(4)足够的片上可编程逻辑资源;

(5)处理器调试接口和FPGA编程接口;

(6)包含部分可编程模拟电路;

(7)单芯片、低功耗、小封装。

因此采用SOPC技术对于缩小系统体积、功耗,并提高系统可靠性很有帮助。本文基于Altera的SOPC技术,设计环境是SOPC Builder,它集成在Altera公司的QuartusⅡ工具中。通过SOPC Builder用户可以从Altera提供的IP库中选取一些组件,如处理器、SDRAM、Flash、各种I/O等,并可灵活配置各组件的参数。另外,SOPC Builder有个尤为重要的功能:如果IP库中没有用户要求的特殊功能,则用户可以加入自定义的逻辑来实现。

定位信息加密传输模块的核心部分由一片内嵌Niosll处理器以及密码算法模块的FPGA芯片来实现,该芯片实现了整个模块的控制以及定位信息的加解密操作,其结构如图2所示。

基于SOPC的GPS信息加密传输系统

GPS模块用于定位信息的采集:CDMA模块用于信息的无线发送和接收:键盘主要用于密钥的保护,也可根据需要输入一些其它要发送的信息:显示模块主要显示系统的工作状态,并以图形方式显示当前模块所处的位置:Flash和SRAM主要用于存储和运行程序;同时还可以利用SOPC良好的扩展性,添加其它接口,采集移动设备的其它信息(例如车辆运行状态等)加密传输到指挥中心。

目前,市场上的大部分GPS接收模块都是通过RS232串口与MCU进行数据传输的。这些数据包括经度、纬度、海拔高度、时间、卫星使用情况等基本信息。开发人员再依据这些基本数据,进行数据处理来完成整套的定位系统软件。本系统采用了Motorola公司生产的M12接收板,它提供了Motorola二进制和NMEA0183两种命令格式,以方便用户编程。CDMADTU(data transmit unit,数据传输单元)是基于CDMA无线公网开发的数据传输设备,内嵌完整的TCPfIP协议,为不具备TCP/IP协议处理的终端设备提供无线通信能力,使用标准RS232接口和其它设备连接,具有功耗低、体积小的特点。本系统选用了深圳市盈科互动科技有限公司串口CWT3000-CSC3DTU。该模块提供了标准的RS-232接口,支持完整的TCP/UDP/IP/PPP协议。

Altera公司为其SOPC提供了大量接口模块,可以很方便地连接上述模块,而无需在电路板上提供专门的接口芯片,大大缩小模块的体积和功耗。GPS模块和CDMA DTU分别通过串口与控制模块的NiosU处理器相连接,键盘和LCD显示模块通过PlO(并行接口)接口和Niosll处理器相连接。同时,由于采用SOPC技术和成熟的GPS、CDMA模块,用户可以通过编程很方便地对各个内外部模块进行控制。

根据设计的总体结构,定位信息加密传输模块选择在DE2开发扳上搭建。DE2为用户提供了丰富的外设及多媒体特性,井具有灵活而可靠的外围接口设计。DE2平台的设计和制造完全按照工业产品标准进行,可靠性很高。平台上提供的资源如下:

(1)Akera Cyclonell系列的EP2C35F672C6 FPGA,内含35000个逻辑单元(LE);

(2)板上内置用于编程调试和用户API设计的USB Blas-ter,支持JTAG模式和AS模式;

(3)512K字节SRAM;

(4)8M字节SDRAM;

(5)两个扳上时钟源(50MHz晶振和27MHz晶振);

(6) 4M字节Flash。

(7) RS232收发器。

由上述可以看出,DE2开发板丰富的资源正好满足本设计的要求,定位信息加密传输模块的SOPC设计如图3所示。

基于SOPC的GPS信息加密传输系统

2、保密通信流程及密钥管理方案

该模块主要负责将移动设备的位置、状态等信息加密后传送到指挥中心,其中GPS模块每秒接收一组定位信息,设备状态信息则主要反映设备运行状态、故障信息等。因此,每次传输的数据量不是很大,但传输次数比较频繁(根据需要设定一定间隔时间)。为了保证系统安全性,除了数据传输任务之外,模块还应支持其它一些管理功能,例如模块启动时需要向中心注册、采用适当的密钥管理策略等。

针对上述特点,本系统采用了对称密码算法和公钥算法相结合的方法实现保密通信,即利用对称密码算法进行信息加密,利用RSA签名算法实现注册和会话密钥更新。对称密码算法选用高级加密标准AES128,即分组长度和密钥都为128位。公钥算法选用RSA算法,是被广泛接受并实现的通用公钥密码算法,目前已成为公钥密码的国际标准。

值得注意的是,由于在移动设备静止不动时,会多次发送相同信息,很容易受到攻击,防止此类攻击,采用CBC(密码分组链接)模式实现AES.它使得当同一明文分组重复出现时,产生不同的密文分组。所谓密码分组链接模式,即加密函数的输入是当前明文分组和前一密文分组的异或,每个明文分组加密函数的输入与明文分组之间不再有固定的关系,因此不会再出现相同明文得到相同的密文。

密钥管理采用分级管理方法,需要定义3种密钥,即主密钥MK(main key)、密钥加密密钥KEK即公私钥对(Key Encrypt-Kcy)和会话密钥(convcrsation kcy)。主密钥用于保护模块私钥,公私钥对主要用于会话密钥的传送和保护,会话密钥用于保护终端系统和中心计算机间的通信消息。模块启用时,由指挥中心的密钥管理软件为模块分发主密钥、模块公私钥对。

为了提高系统的安全性,会话密钥为几话(由整个系统统一设定)一密,即每隔一定时间由指挥中心更新一次会话密钥。为了防止模块丢失时,威胁系统的安全,主密钥分割为存储在模块内部(Flash存储器)的密钥和两个口令(由两个人通过键盘输入)3个部分。

模块的详细工作流程如下:

(1)系统初始化

系统启动,工作人员通过键盘注入主密钥的另外两个分量,经过运算组合成主密钥。

(2)注册

①利用中心的公钥,向中心发出申请注册:②收到注册申请后,中心利用模块的公钥,发回一个确认:③模块收到后利用自己的私钥解密后,利用中心的公钥将确认返回;④中心收到后注册成功。

(3)更换会话密钥(每隔几分钟一次)

①中心计算机用模块的公钥,利用RSA公钥算法将新的会话密钥加密,然后再将上述加密后数据用现在的会话密钥利用AES算法加密,最后利用CDMA信道传输到模块:②终端模块收到上述信息后,先用现在的会话密钥利用AES算法解密,然后再用自己的私钥调用RSA解密,得到新的会话密钥。

(4)信息保密传输

终端模块获取地理位置、设备状态等信息后,利用会话密钥加密,最后利用CDMA信道传输到指挥中心,指挥中心接收信息后,利用会话密钥解密,发回一个确认,然后进行后处理。

三、密钥管理

1、主密钥的注入

在使用该系统前,首先进行主密钥的注入。终端系统上的主密钥为128bit,由两部分组成。在系统的存储器中存有前64bit,终端系统的用户执有的USB硬件设备中存有后64bit,二者通过由键盘输入的口令验证后结合为主密钥,如图4所示。

基于SOPC的GPS信息加密传输系统

存储器中存有96bit数据,前64bit为主密钥的前64bit,后32bit为验证码;USB设备中存有的96bit数据,前64bit为主密钥的后64bit,后32bit为验证码,用户口令为32bit。系统使用前,用户从司令部得到USB设备和口令,将USB设备插入终端系统并输入口令后,系统判断存储器和USB设备中的验证码和口令三者相同时,使USB设备中的密钥注入终端系统,将前64bit主密钥和后64bit主密钥合并构成128bit主密钥。若系统判断存储器和USB设备中的验证码和口令三者不相同,则再次提示用户再次输入口令,若输入三次均错误。则存储器中的密钥销毁,96bit数据赋为全“O”,同时程序退出,使系统不能继续使用。

2、密钥加密密钥分发方案

密钥加密密钥用于保护会话密钥,而其本身被主密钥保护。以终端A为例说明密钥加密密钥的分发,步骤如下:

基于SOPC的GPS信息加密传输系统

终端A的主密钥注入完成后,向中心计算机s发送用主密钥朋配加密(采用AES加密算法)的密钥加密密钥请求报文A,S,KEK_request,RalMKa,中心计算机收到后向终端A发送应答报文{A,S,KEKa,rA},终端A收到并用主密钥解密后即可得到密钥加密密钥KEK。见为A以当前时间作为种子产生的随机数,以保证密钥加密解密的新鲜性。

3、会话密钥协商

主密钥注入、密钥加密密钥分发完成后,进行会话密钥的协商。终端A和中心计算机S的会话密钥协商步骤如下:

基于SOPC的GPS信息加密传输系统

其中,RA、RS分别是A和S产生的随机散,总是中心计算机产生的会话密钥种子,KEKA为终端A和中心计算机S共享的密钥加密密钥。KAS是本次协商产生的会话密钥,f函数是一种啥希函数,其强度关系到整个系统的安全强度。

四、SOPC内部实现

采用SOC技术的最大好处是可以根据需要合理地进行软硬件划分,以提高系统的性能价格比。

软件实现简单、成本低,但速度较慢,硬件实现速度快,但需要占用相应的硬件资源,以提高系统的运行速度。Altcra公司提供了SOPC Builder。Quartusll等基于Akcra FPGA的SOPC开发,软件开发采用汇缎或C语言编程实现,硬件设计则采用VHDL或Verilog硬件描述语言实现。

本系统中SOPC的主要任务是完成上述初始化、注册、密钥更新、信息传输等,其中AES、RSA密码算法属运算密集性,有软、硬件两种实现方案,由于定位信息只需每隔几分钟传输一次,因此,加解密传输速度不需要太高,网此AES和RSA密码算法全部采用软件编程实现,并由Nios处理器实现。由于Altera公司的SOPC Builer提供了大量接口模块,本系统中GPS模块、CDMA模块、键盘、LCD、Flash和SRAM等所需的接口AJtcra公司都以IP模块形式提供,因此,SOPC设计中不需要用硬件描述语言设计专门的SOPC内部硬件模块,主要是进行软件设计。

系统软件主要由主控程序、注册子程序、会话密钥交换子程序,信息发送子程序、GPS管理子程序和CDMA管理子程序、显示子程序、键盘扫描子程序以及AES和RSA密码算法子程序等部分组成.由于Altcra公司的Niosll IDE(集成开发环境)为其Niosll处理器软件开发提供了完善的开发环境,主要包括汇编器、C语言编译器、模拟器、调试器、函数库等,因此,整个模块软件全部采用C语言在NiosIIIDE环境中开发和调试.各个部分的功能如下:

(1)主程序。完成系统的初始化,形成主密钥、解密私钥保存在RAM中,初始化显示等。

(2)注册子程序:调用SHA及CDMA通信模块,完成模块的注册。

(3)会话密钥交换子程序:完成会话的交换。

(4)信息传输:完成一次定位信息的保密传输(定时调用)。

(5)GPS管理子程序:负责从GPS接收模块读取数据,并进行适当处理。

(6)CDMA管理子程序z负责与CDMA模块的交互,发送和接收数据。

(7)显示予程序:系统状态显示、键盘输入显示、当前位置的图形显示、时间显示等。

小知识之SPC

System-on-a-Programmable-Chip,即可编程片上系统。 用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。