1、1基于加密算法的 GPS 航迹加密设计摘要:为了防止重要的 GPS 航迹被篡改、捏造,本文利用应用较为广泛的 MD5 加密算法等,对 GPS 航迹空间数据进行加密,并且利用常见的 GPS 航迹伪造和篡改手段加以试验,试验结果表明这种 GPS 航迹空间数据加密算法能够有效的防止常见的伪造和篡改,并为其他航迹记录软件的设计和基于其他算法的航迹记录加密算法研究提供一定的参考。 关键词:MD5;航迹;空间数据加密 Abstract: In order to prevent the GPS track important tampering, fabricated, this paper using t
2、he widely used MD5 encryption algorithm to encrypt the GPS track, spatial data, and using GPS to track common forgery and tampering means to test, test results show that the GPS track spatial data encryption algorithm can effectively prevent common forgery and tamper with, and for the design of othe
3、r track recording software and based on the track record other encryption algorithms to provide certain reference. Key words: MD5; track; spatial data encryption 中图分类号:P627 0 引言 2GPS 航迹是野外工作的重要资料,为野外资料的收集提供时间、日期、位置、航迹次序等信息,是野外资料收集的重要途径和重要依据。为了杜绝实际工作中篡改、伪造 GPS 航迹数据等不良现象,利用现有的成熟加密算法对 GPS 航迹空间数据进行加密是有必
4、要的。 本文通过 GPS 航迹数据中的时间、日期、位置、航迹次序等信息的利用一定的组合算法形成加密明文,再利用成熟的 MD5 加密算法,对明文进行加密,形成密文。 作者简介:荣 波(1981-), 男,助理工程师,大学本科,测绘工程 加密算法 MD5 的全称是“message-digest algorithm 5”(信息-摘要算法) ,它是 90 年代初由 MIT 计算机科学实验室和 RSA Data Security Inc 联合开发,并经过 MD2、MD3 和 MD4 逐渐演变而来的。MD5 是不可逆加密算法,相同字符加密后得到相同密文,不相同字符加密后得到不相同密文。即使知道密文,也无法
5、获取相应的明码。MD5 是典型应用是对一段信息(Message)产生信息摘要(Message-Digest) ,以防止被篡改。 MD5 (sfkjgjjekmklfmlf) = D5019B9625E75FFC06D874A25344E273 在软件设计过程中,将 GPS 航迹重要的位置、时间、航迹次序等信息通过自定义的函数处理,并经过字符的分割、拼接等方法形成明文,将明文利用 MD5 加密算法加密,形成密文。 当位置、时间、航迹次序等重要信息被篡改时,获得的明文改变,且明文改变密文必定改变。前后密文对比就能发现 GPS 航迹数据是否被3篡改和伪造。 2GPS 航迹空间数据 GPS 航迹记录采
6、集软件(以 RGMAP 航迹记录软件为例) ,采集的方式通常分为按时间间隔采集和按照距离采集两种模式: 按照时间间隔,即每隔一段时间,航迹记录一次,通常的时间间隔有 1、5、10、15等。 按照距离间隔,即每隔一段距离,航迹一次,通常的距离间隔由50m、100m 等 航迹记录软件记录信息包括:时间信息、位置信息等,记录过程中按照先后顺序记录并编流水号,并形成GPS.WT文件。 GPS.WT文件属性信息如表一所示,字段包括:ID 、 X、 Y、 LONGITUDE、 LATITUDE、 HIGH、 DATE字段,分别代表:流水号 、 平面 X 坐标 、 平面 Y 坐标 、 经度 、 纬度 、 时
7、间 。同时GPS.WT也将空间信息的展布记录,如图一所示,为航迹采集软件记录的空间信息。表一为 GPS 航迹记录属性数据格式。 图一 GPS 航迹记录 表 1 GPS 航迹记录属性数据格式 43 空间数据的加密 GPS.WT 文件中存在 7 中不同的属性字段,分别为:ID 、 X、 Y、 LONGITUDE、 LATITUDE、 HIGH、 DATE,自定义 6 种不同的函数:y1= f1(x) 、y2=f2(x) 、y3=f3(x) 、y4=f4(x) 、y5=f5(x) 、y6=f6(x) ,由于DATE字段属于字符串,则定义 y7=f7a(x)为某种约定的字符处理程序。定义 F(a,b,
8、c,d,e,f,g)为某种约定的字符分割和拼接程序。MD5(a)为 MD5 加密函数,将按照约定的字符分割和拼接的字符利用 MD5 算法加密,获得密文。 例如,给定了约定函数 f1、f2、f3、f4、f5、f6、f7、F 的算法,过程如下: 17.6=f1(1) ; 699796.86=f2(700297.05) ; 4720810.79=f3(4725813.44) ; 78.2186=f4(83.4421) ; 37.172=f5(42.640) ; 2872.75=f6(2877.80) ; a10aab676d4e7fd8=f7(2011-06-25 09:30:04) ; 17.6a
9、1699796.860a4720810.79ab78.21867637.172 d42872.75 e7fd8=F(f1(1) ,f2(700297.05) ,f3(4725813.44) ,f4(83.4421) ,f5(42.640) ,f6(2877.80) ,f7(2011-06-25 09:30:04) ) 。 9836767EE47C58F5D0EC14514D256C34=MD5(MD5(17.6a1699796.860a47250810.79ab78.21867637.172 d42872.75 e7fd8) ) ; 4 篡改、伪造航迹试验 GPS 航迹的伪造和篡改通常可以分为
10、平移空间数据中航迹点的位置、增加航迹点、修改航迹点中属性字段中特定属性值等,对于上述现象下文设计了两个试验,将空间数据利用上文的算法进行加密,并利用常见的篡改和伪造手法加以验证。 4.1 篡改航迹 对利用实测航迹数据 GPS.WT,做如下操作: 1:对航迹序号为 2 的点平移,平移距离为 1m。 2:对航迹点序号为 8 的点修改高程,修改为 2883.8m 3:对航迹点序号为 15 的点修改时间,修改为将 2011-06-25 09:42:14 为 2011-06-25 09:42:14。 4:对航迹点序号为 22 的点修改坐标, 5:对航迹点序号为 25 的点改为 24,航迹点序号为 24
11、的改为 25. 试验结果为: 2 号点:BA11772B995C270814BFD27CE351537932828D671DCB920AED21310628570A3E。 8 号点:6180061088682A80E14BF9483D9C0CA7696A7F27C52F21D815DA0C4F0BBCFC1D。 15 号点:64006E787A8F5686D1F29F3BFE8C817FD9836767EE47C58F5D0EC14514D256C34。 22 号点:ABBEE4191BD5D5D7A54D5D351DD500CDC63B0693E898FFAB1515289391F756DC
12、。 24 号点:0F520E0F615987E68E48CAEBC2399804F0D61B9E5EA4C6B8242E3E9A76845274。 25 号点:B645EDB6FD09FDA19743382B5AAEB4773B44F9D55AED7857559116A33E3F418E。 前、后密文的不同或同可以判断被篡改或无篡改。结果显示篡改前的密文不等于篡改后的密文,所以上述点均被篡改。 4.2 捏造航迹 对于 GPS.WT 文件通过增加新航迹点,利用软件编辑航迹点的属性,属性字段 ID、 X、 Y、 LONGITUDE、 LATITUDE、 HIGH、 DATE的值可以通过手工或软件自
13、动填写可以获得,但由于 y1= f1(x) 、y2=f2(x) 、y3=f3(x) 、y4=f4(x) 、y5=f5(x) 、y6=f6(x) 、y7=f7a(x)函数的阶数、系数等不能确定,以及函数F(a,b,c,d,e,f,g)的字符组合次序不确定,所以无法形成与航迹记录软件相同的明文,经 MD5 加密的密文也不能一样。密文不一样说明捏造失败。 75 结论 在航迹记录软件设计过程中,利用函数的阶数、系数、组合方式等不确定性,以及 MD5 加密算法的不可逆性,使得利用上述加密的算法能够满足一般的航迹软件防止数据被篡改和伪造的要求。 参考文献: 1 卢开澄编著.计算机密码学M. 清华大学出版社, 1998 2 杜昌钰.MD5 算法的过程分析及其 C#实现J. 通信技术. 2008(08)