罗晓萌,闫富朝,孟维晓
(哈尔滨工业大学电子与信息工程学院,哈尔滨 150001)
为了保证无线通信的信息安全,需要有效可靠的保密机制对信息进行加密。基于位置的地理加密技术是将空时信息引入到加解密过程中,并结合传统数据加密算法(如对称加密和非对称加密算法)的一种加密技术,为无线通信网络安全提供了保障。
地理位置加密算法(The Geo-Encryption Algorithm)在2003年首次由Logan Scott和Denning提出,根据接收机的位置、速度和时间(Position Velocity and Time,PVT)对数据信息进行加密。为了克服接收机定位不准确、不一致的问题,Liao H-C和H.Hamad等分别提出了静态位置加密算法(Location Dependent Encryption Algorithm,LDEA)和动态容忍距离(Dynamic Toleration Distance)加密算法。文献[4-5]给出了LDEA在移动系统中的应用,文献[6-7]讨论了地理加密技术在云计算中的应用。随着传统加密中高级加密标准(Advance Encryption Stan-dard,AES)算法的提出,地理加密中的AES-DEDTD协议也逐渐取代了DES-GEDTD协议。文献[10-11] 比较了AES-DEDTD协议和DES-GEDTD协议在时延和能量消耗等不同参数下的区别,并在此基础上改进了现有的地理位置加密协议,提高了基于位置网络的数据传输性能。
国内对于地理加密技术的研究较少,2015年徐丽丽提出了在车载自组织网络中基于位置加密的概念;文献[13]利用节点位置给出了一种基于位置的动态网络安全认证机制;文献[14]提出了一种基于位置密钥交换的可证安全模型。
传统的地理位置加密主要存在需要第三方的密钥管理与分发中心且加密算法与空时信息不适配等问题。本文在前人研究的基础上,提出了一种基于北斗卫星导航系统的定位授时服务与短报文业务,利用合法接收方的空时信息进行加解密的安全通信方法。该方法具有以下3个特点:
1)通过北斗卫星导航系统的短报文业务省去第三方的密钥管理与分发工作。收发双方共享接收方的空时信息,采用相同的密钥生成算法生成密钥,可以保证收发双方用于加解密的密钥相同。此时不需要专门的密钥管理中心即可实现密钥的共享,降低了设备的计算与存储要求,极大地减少了安全通信的成本,且避免了由第三方密钥管理中心带来的安全隐患。
2)设计了适用于空时信息的MD5-Logistic密钥生成算法和基于地理位置的加密算法。传统的地理位置加密技术一般以空时信息作为输入,直接采用标准的哈希函数或混沌映射生成密钥,再通过对称加密或非对称加密算法进行加解密。本文考虑到空时信息具有变化快、覆盖范围相对固定等特点,对标准算法进行改进,得到更适合处理空时信息的安全通信方法。
3)实现了我国自主的地理位置加密安全通信。目前的地理位置加密主要通过全球定位系统获取用户的地理位置信息,随着我国北斗导航系统的全面建成,用户可以通过北斗系统获取空时信息进行加密,逐步实现我国独立自主的地理位置加密。
文本的结构安排如下:第1节给出了整个安全通信的系统模型;第2节具体阐述了该安全通信方法中提出的2个改进算法:MD5-Logistic密钥生成算法与适配的加密算法;第3节对上述提出的2个算法的性能进行了检测;第4节在此基础上对北斗导航系统定位模块精度进行了实测,并给出了通信成功率与容忍距离间的关系;第5节对全文进行了总结。
本文提出的安全通信方法的系统模型如图1所示,其中包括了北斗导航系统、发送方和接收方三部分。
图1 系统模型Fig.1 The system model
该安全通信方法分为4个步骤,依次为接收空时信息、共享空时信息、密钥生成与加解密。首先,数据接收方通过北斗导航系统获取自己的空时信息,并通过短报文业务共享给数据发送方。收发双方以空时信息为输入,根据本文提出的MD5-Lo-gistic密钥生成算法得到相同的密钥。随后,发送方根据生成的密钥利用加入地理位置的AES算法对信息进行加密,接收方收到密文后以相同的密钥进行解密,最终得到原始明文数据。
综上所述,本文主要需要解决以下2个问题:
1)设计适用于处理空时信息的密钥生成算法。空时信息具有动态变化快和覆盖范围相对固定等特点,因此需要对传统的密钥生成算法进行改进。
2)设计适配于上述密钥的AES对称加密算法。对传统的加密算法进行改进,通过加入地理位置信息使加密算法实现动态更新,提高密文的安全性。
本节针对上述提出的2个问题分别给出相应的算法:MD5-Logistic混沌映射密钥生成算法与基于地理位置的AES算法。前者将接收方的空时信息映射成具有高随机性的密钥,后者则通过密钥对明文进行加密。
该密钥生成算法以哈希函数中的MD5算法为原型,通过改进的Logistic混沌序列对空时信息进行填充后,进行MD5杂凑函数映射。
改进的Logistic混沌序列如下
+1=()=××(1-)-
⎣××(1-)」
(1)
其中,为控制参数,选用北斗报文信息中的纬度信息确定控制参数;经度信息作为混沌映射的初值;时间参数模10000作为迭代次数。+1取迭代结果后的小数部分。
密钥生成的具体步骤如下:
1)对空时信息进行预处理,提取经度纬度时间参数。以北斗官网给出的一种报文信息格式为例,当接收到的报文信息为$GNGLL,3413.9977,N,10854.5696,E,019998.000,A,A*46时。其中,纬度信息3413.9977决定Logistic混沌映射的控制参数。为了避免混沌序列出现迭代不均匀等问题,需要保证控制参数在任何位置都大于2600,故取纬度信息加2600作为控制参数。经度信息10854.5696作为Logistic混沌映射的初值。时间参数019998.000用于确定混沌序列的迭代次数。由于时间将随着通信次数不断增加,为防止时间参数过大影响加密速度,故取时间参数整数部分19998模10000作为迭代次数。确定初值、控制参数及迭代次数后,通过式(1)产生基于空时信息的混沌序列。
2)将定位报文信息转换为ASCII符的形式并与上述产生的混沌序列拼接。
3)对定位报文信息与混沌序列拼接的混合序列进行MD5杂凑函数运算,得到基于空时信息的密钥,即MD5(定位报文信息+混沌序列)。
密钥生成算法如图2所示。
图2 MD5-Logistic混沌映射密钥生成算法Fig.2 MD5-Logistic chaotic map key generation algorithm
经过上述密钥生成算法,该空时信息生成的密钥为1C05040962D5FABFD6A77CB48642A6A1,是一串长度为16的ASCII码,对应于下一步AES对称加密中的128bit输入密钥。图3所示为密钥生成界面,输入定位报文信息后,会根据上述算法显示从报文信息中提取的用于混沌序列迭代的初值系数、迭代系数及迭代次数,并生成相应的密钥。
图3 MD5-Logistic混沌映射密钥生成系统界面Fig.3 MD5-Logistic chaotic map key generation system interface
AES算法是一种明文长度为128位的分组密码算法。本文以标准AES算法为基础,采用上述密钥生成算法得到的128位密钥进行加密。本文主要对与密钥相关的轮密钥加操作进行改进,充分利用北斗收发双方可以共享空时信息这一特点,将接收方的地理位置信息加入到AES算法中,使加密不仅依赖于密钥,同时也需要接收方的位置信息。
在密钥扩展阶段,不再使用仅由初始密钥得到的轮密钥,改为由初始密钥和地理信息一起扩展得到包含地理位置的轮密钥。其密钥扩展过程如图4所示。
图4 基于地理位置的轮密钥生成过程Fig.4 Location-based round key generation process
具体的轮密钥生成步骤如下:
1)初始密钥共128bit,表示为16个字节,即~,这16个字节可以得到一个四字(,,,),记为初始密钥的一个状态;
2)将空时信息经度和纬度的整数部分拼接并转换为32位,记为地理位置信息;
3)在余下40个字(,=4 ~ 43)的计算中,引入地理位置信息,每次计算均按位异或(XOR)。根据取值的不同,有以下两种计算方法:当满足mod4 ≠ 0时,=-1⨁-4⨁;当满足mod4=0时,=⨁-4⨁。其中参数是一个临时字,与标准AES中给出的相同。
以报文信息$GNGLL,3413.9977,N,10854.5696,E,015217.000,A,A*46为例,当发送方接收到接收方的空时信息后,通过上文的MD5-Logistic混沌映射密钥生成算法生成128bit密钥:268B6C61219E937DFACABB2F8C3AB824。将经纬度的整数部分拼接并转换为32位,得到地理位置信息。假设输入明文为9798C4601BAD75E7C3227DB910174E72,通过改进的基于地理位置的AES算法进行加密,结果如表1所示。
表1 基于地理位置的AES加密结果
当合法接收方以相同的空时信息生成相同密钥,且采用上述基于地理位置的方法扩展生成轮密钥后,可以成功地对密文进行解密,得到相同的明文信息,完成整个加解密过程,实现安全通信。解密结果如表2所示。
表2 基于地理位置的AES解密结果
当非法的第三方截获密文信息进行解密时,由于无法使用正确的密钥,得到的明文信息与发送方传送的不同,有效防止了第三方的窃听。此时使用只有一位不同的密钥进行解密,解密结果如表3所示。
表3 非法用户的解密结果
本节将对第2节提出的2个算法的性能分别进行分析。
对于密钥来说,密钥的随机性越好、越接近理想的白噪声序列,用于加密的密文的安全性则越高。本文采用2012年3月由国家密码管理局发布的《中华人民共和国密码行业标准》中的随机性检测规范,对上述MD5-Logistic混沌映射密钥生成算法生成的密钥进行检测。
根据密钥长度选择该标准中的6个测试项目,检测结果如表4所示。
表4 密钥随机性检测结果
本文提出的MD5-Logistic混沌映射密钥生成算法以高概率通过了国家密码管理局商用密码测试标准的部分适合检测项目,具有较强的随机性,可以在加密中得到广泛应用。与传统的MD5杂凑函数相比,在不影响密钥生成速度的情况下,通过加入混沌序列,提高了密钥抗字典攻击的能力,为加密安全提供了保障。
此外,该算法在保证填充序列随机性的同时,通过北斗的短报文业务省去了第三方对随机序列的管理分发工作,不需要一个专门的密钥管理中心即可实现密钥的共享,减少了安全通信的成本,且避免了由第三方密钥管理中心带来的安全隐患。
密文的安全性指标应为将明文相关性降低的能力。密文是对明文内容的一种隐藏,当明文间有极高相关性时,密文应该破坏这种规律,表现出无关性。
本文采用汉明距离度量两次通信中的明文互相关性及密文互相关性,汉明距离越小说明两个序列越相近。将上述输入明文转换为128位二进制比特,当128位中有一位发生变化时,通过上述改进的AES算法得到其密文输出,计算改变输入后新密文与原密文的汉明距离。此时,密文间汉明距离的大小反映了当输入明文相关性极高时输出密文的变化情况。由于此时的输入输出皆为128位二进制0、1序列,故理想情况下,两次密文的汉明距离应为64,即占比50%。这种情况说明即使两次明文序列相关性极强,只有1bit发生变化,但两次密文却没有任何相关性,即加密算法成功地破坏了这种相关性,让窃听者无迹可寻。理想汉明距离为64而不是128的原因是,如果两次密文相互比较所有比特都发生变化,则相当于一次0、1之间的翻转,不再具有随机性。
根据上述分析,分别改变输入明文的第1位至第128位,计算密文的汉明距离,并统计得出平均汉明距离为63.7312,占密文序列长度的49.79%,与理想情况的50%十分接近。由此说明,此加密方法将明文0.78%的汉明距离提高到接近理想的49.79%,成功地降低了两次通信之间的相关性,结果如图5所示。
图5 改变不同位置一位明文后的新旧密文汉明距离Fig.5 The Hamming distance between old and new ciphertext after changing one plaintext in different positions
此外,在AES算法的密钥扩展阶段引入地理位置信息后,最终得到的轮密钥与接收方的地理位置相关,且地理位置信息的微小变化可以引起加密过程的巨变,极大地提高了密文的抗攻击性能。根据接收方位置的经纬度变化,每次加密的轮密钥实现动态更新。同时,因为收发双方可以实时共享接收方的空时信息,故双方的轮密钥计算过程一致,不影响解密。
本节考虑到在实际应用中,北斗定位通信模块自身存在一定的精度误差范围,即使在固定点进行多次测试,定位经纬度也会有一定的变化。而上述密钥生成方法与加密方法完全依赖于空时信息,接收方地理位置经纬度的任何微小变动都会导致密钥与加密结果的不同。因此,为了使系统更加稳定且实用,需要设置一定的容忍距离,即当经纬度变化在一定范围内时,都可以用相同的密钥来加解密,从而提高系统的鲁棒性。
在加入容忍距离之前,首先需要考虑北斗接收机自身的定位精度及误差范围。本文采用实验实测的方法对第一代北斗定位通信模块的定位精度进行测量。
本文使用的北斗接收机是北京北斗教仪科技有限公司的第一代北斗定位通信模块。该模块如图6所示,两边需要分别连接12V电源及无源天线。在测试方法中选择连续定位,该模块会以1min一次的频率连续输出定位信息,并自动保存于命名为“定位信息”的txt文本中。
图6 北斗定位通信模块Fig.6 BeiDou positioning communication module
北斗定位通信模块定位精度的测量应选择空旷、人流量较小且正南方向无遮挡的区域。本文分别选择了2个地点进行测试,测试环境的实景图如图7所示。
图7 测试环境实景图Fig.7 Test environment
测量北斗定位通信模块定位误差的方法为在不同位置分别连续多次定位,记录并统计其定位信息。由于测量时天线附近人员走动、天线不稳定等不可避免原因,处理中采用去除偏差极大的不可靠数据点后计算其均值作为该点的真实经纬度坐标,并计算其他数据点相对于真实坐标的定位偏差。对于哈尔滨工业大学操场所选位置,经度坐标的均值为126°37′38.3″,纬度坐标的均值为45°44′15.6″,经度最大偏差为±0.2″,纬度最大偏差为±0.2″。对于哈尔滨工业大学科创大厦停车场所选位置,经度坐标的均值为126°37′30.3″,纬度坐标的均值为45°43′37.0″,经度最大偏差为±0.2″,纬度最大偏差为±0.1″。根据经纬度与米的换算关系,经度中1m对应0.00001141°,即0.041″;纬度中1m对应0.00000899°,即0.032″。故在此次实测中,经度坐标的误差范围半径为4.88m,纬度坐标的误差范围半径为6.25m。
上述实测数据表明,在实际应用中,即使在同一点进行定位得到的经纬度坐标也有一定的幅度变化范围。定位误差不仅与北斗定位通信模块的精度有关,也与不同测量点的环境如有无大型遮挡物、测量时间及天线波束强度等方面有关。
容忍距离(Tolerance Distance,TD)指成功解密时接收方的实际坐标距目标坐标之间的最远距离,同时也意味着容忍距离范围内的坐标在密钥生成阶段将生成相同的密钥,即将解密从一个特定目标点扩大到以目标坐标为圆心、容忍距离为半径的圆周内。在此解密圆周内,圆心的目标坐标位置代表了整个圆周各个点的坐标。加入容忍距离后,不同空时信息通过MD5-Logistic混沌映射密钥生成算法得到的密钥如图8所示。此时,不再是由经纬度空间中一点映射成一个密钥,而是空间中的一片区域对应一个相同的密钥。图中每一个密钥方格的长度即为容忍距离的大小。
图8 加入容忍距离后的经纬度坐标与密钥关系映射图Fig.8 Mapping latitude and longitude coordinates with keys after adding tolerance distance
容忍距离的加入使解密过程变得更加灵活。发送方可以根据用户的实际需求、不同接收机的误差范围及加解密环境等各种因素,将容忍距离和接收机的目标位置一同作为加密的地理位置参数。然而解密范围的扩大意味着解密区域内的其他用户也可以成功解密,增加了非法接收方窃听的可能,降低了安全通信系统的安全性。因此,一个合理的容忍距离应由发送方根据加密内容的安全性与解密成功率折中考虑,给出一个适当的参数。
在不考虑天气、遮挡物和天线指向影响的情况下,定位测试结果的经纬度变化范围应为均匀分布。为使容忍距离的设定更具一般性,本文按照均匀分布考虑经纬度的变化范围。有效坐标指在所有测试的定位结果中,定位坐标在对应容忍距离内的坐标占所有坐标数量的比值。如当容忍距离为100m时,有效坐标指测量坐标纬度与真实坐标纬度之差在3.2364″内,经度与真实坐标经度之差在4.1076″内。当用户坐标为有效坐标时,收发双方才可以搭建安全通信线路,即用户才可以通过本文设计的安全通信方法进行安全通信。尽管用户坐标为有效坐标只是用户成功通信的必要条件,通信成功率的测量还需经多次实验,综合考虑通信环境、收发设备、信道等其他外在因素影响。但在此为了更直观地表示用户实际坐标及容忍距离与通信成功率的关系,认为其他条件均为理想条件,不影响用户通信成功率。此时,可以得到容忍距离与通信成功率之间的关系,如图9所示。可以发现,通信成功率随容忍距离的增加而增大,当容忍距离为100m时,通信成功率可以达到理想的100%。
图9 通信成功率与容忍距离的变化关系Fig.9 The relationship between communication success rate and tolerance distance
为了使容忍距离的设定更贴近实际,对科创大厦停车场位置实际测试的定位报文信息和多次通信结果进行分析。本文取多次测量结果的平均值作为真实坐标,容忍距离设定范围为0~50m,测试结果如图10所示。可以发现,通信成功率随容忍距离的增大而提高,当容忍距离为25m时,通信成功率可以达到100%。这表明实际测试中,定位通信模块的精度会发生变化,只有在极为恶劣的情况下,模块的定位精度才会为给出的极限值100m。实际使用时,精度可能会受其他因素的影响而改变,需要根据实测值设定合理的容忍距离范围。对于哈尔滨工业大学科创大厦停车场的实测点,本文设定的合适容忍距离为25m。
图10 实测点通信成功率与容忍距离的变化关系Fig.10 The relationship between communication success rate and tolerance distance of measured points
进一步分析,容忍距离的设定与多个因素相关。直接影响因素是硬件模块的定位精度,定位精度越高,容忍距离的设定应越低。同时,由于定位误差的影响,会出现接收方在真实位置附近时也能正确解密,即保密区域不只在某一点而是在某个范围内的情况。图11所示为在不同距离时容忍距离与通信成功率的变化结果。通过连续测量真实坐标附近50m内的坐标,根据不同的容忍距离,分别计算各个范围内符合要求的坐标占全部坐标的比值,从而得到相应的通信成功率。可以看出,当容忍距离为0m时,成功率为0%,说明此时没有符合要求的坐标,条件过于苛刻;当容忍距离从5m变化到35m时,通信成功率随距离的增加而逐渐降低。当距真实坐标的距离在容忍距离范围内时,通信成功率较高,但由于系统自身的定位误差,没有达到100%;当距真实坐标的距离在容忍距离范围外时,通信成功率会逐渐降为0%。没有立刻降为0%的原因是由于定位误差的影响,导致在容忍距离范围外也测得了符合要求的坐标。在未来的工作中,可以进一步分析容忍距离和接收方移动距离与路径之间的关系,设置动态的容忍距离,以提高系统的智能性。
图11 不同距离时容忍距离的变化结果图Fig.11 Results of tolerance range of different distances
本文针对空天地一体化网络的安全问题,提出了一种利用用户空时信息进行加密的安全通信方法。该方法通过将接收方空时信息加入到密钥生成算法和对称加密算法中,使密钥和加密过程随位置变化实现动态更新。仿真结果表明,本文提出的MD5-Logistic混沌映射密钥生成算法具有高随机性,可以更有效地抵抗字典攻击和穷举攻击,加入地理位置的AES算法生成的密文可以降低明文间的相关性,使明文0.78%的汉明距离提高到接近理想的49.79%。最后为了进一步提高系统的鲁棒性和实用性,本文将容忍距离加入到安全通信方法中,通过实测得到通信成功率与容忍距离间的变化关系,并给出指定地点的合适容忍距离。
随着大众手机成功实现北斗三号的短报文通信功能,短报文业务已经逐渐实现由面向部分行业服务到面向大众服务的拓展转型,改善了本文提出的安全通信方法的局限性。 此外,根据北斗短报文业务的性能指标,其服务频度为30s一次,最高可达1s一次,而密钥的更新频率与空时信息的更新频率一致,根据接收机的请求频率最高为100Hz。对于一般的民用场景,1s一次的加密密钥更新率已经可以满足加密通信的需求;对于军用等需要更高加密通信频率的特殊场景,该安全通信方法存在一定的局限性,后续可以考虑联合轨迹的位置预测以提高密钥的更新速率。