陈思元, 巴晓辉,2,3,*, 蔡伯根,2,3, 姜 维,2,3, 王 剑,2,3
(1. 北京交通大学电子信息工程学院, 北京 100044; 2. 北京交通大学轨道交通控制与安全国家重点实验室, 北京 100044; 3. 北京市轨道交通电磁兼容与卫星导航工程技术研究中心, 北京 100044)
全球导航卫星系统(global navigation satellite system, GNSS)能够在全球范围内提供定位导航授时(positioning, navigation and time, PNT)服务,已被广泛应用于诸多领域[1]。在一些有物理阻隔或电磁干扰的应用场景下,GNSS信号噪声增大、可见卫星数目减少、系统的多径误差增大,系统的可用性、精确性出现明显不足,由此可以使用一种基于地面设备的伪卫星(pseudo satellite, PL)系统[2-4],在卫星信号差的区域辅助GNSS系统,实现局部独立导航定位。然而,随着电子技术的发展,卫星导航信号电文格式和信号体制细节在接口控制文件中均可公开,使得接收机易受到多种欺骗干扰的攻击。因此,研究导航信号防伪认证的方法对于PL导航系统的发展具有重要意义。
常见信号加密认证技术分为3大类:导航电文认证(navigation message authentication, NMA)技术、扩频码认证(spread code authentication, SCA)技术和无码互相关技术[5-8]。NMA技术可以在不改变信号调制方式的情况下认证消息,抗欺骗效果好且易于接收机实现。国内外对于NMA方案的设计研究主要从数字签名和加密技术两方面开展实施。
Wesson等[9-11]设计了一种面向全球定位系统(global positioning system, GPS)民用信号的认证方案,基于Koblitz曲线设计数字签名,结合密钥序列方案,设计NMA加密认证方法,可以应对生成式欺骗干扰,但该方案仅对两种方法进行简单混合,无法发挥两者的性能优势[12]。文献[13-14]给出了Galileo系统NMA的设计原则,介绍数字签名在导航电文中的实现和排布,在可行性方面有较大参考价值,但未能解决电文认证数据位占用高、认证效率低等问题。同时,针对Galileo系统导航认证方案的性能评估方法,文献[15]提出可使用初次认证时间和认证时间间隔作为认证效率的研究指标。唐超等[16]对数字签名的数字签名加密认证技术进行研究,给出加密技术原理和性能分析。王洪伟等[17]介绍了常用电文加密认证技术的分类和优缺点比较,为北斗卫星导航系统的安全性研究提供了设计依据。文献[18-19]针对北斗系统设计超帧电文认证和北斗主帧组电文认证方案,结合椭圆曲线数字签名算法(elliptic curve digital signature algorithm, ECDSA)和时间效应流失容错算法(timed efficient stream loss-tolerant algorithm, TESLA)协议提高认证方案的安全和效率指标,但目前TESLA尚未具备标准化规范,存在混合认证实现难度高、密钥管理开销大、需增加额外接收机硬件开销等问题。
随着卫星导航系统的广泛应用,对于区域导航系统的需求日益增多,本文采用一种基于国产密码算法标准的NMA方法,结合PL平台,利用导航电文未被定义的保留位信息设计数字签名方案,并对方案设计的导航电文的具体排布方式作出说明。分析表明,该方法无需改变接收机硬件结构,在不同系统误码率下,认证错误率能维持在较低水平,为保障PL系统信号安全提供了解决方案。
PL是一种基于地面的、能够传播类似卫星导航信号的发射器,通常都安装在低空的开阔区域[20-21]。PL定位精度高,可以与GNSS组合,提供定位增强服务,且在GNSS卫星信号较弱时可以通过自组网构建独立的定位系统,代替卫星系统完成定位工作。
PL系统由收发机、定位接收机和系统组网组成,可以在GPS、北斗信号遮挡的区域形成地基增强系统,提高区域定位精度,同时通过组网内时间同步,独立为某些特定区域提供高精度位置服务。
收发机作为信号发射部分由4颗PL信号发射机构成,可以发射类似GPS卫星信号,产生粗捕获码伪距信号,利用载波相位测量,测量精度可达厘米级。收发机的核心功能是产生和发射符合定位需求的PL信号,包含基带信号生成、中频信号的数模转换器(digital to analog converter, D/A)转换和信号上变频处理等过程,最终产生的信号为定位用户提供信号源,完成自身位置坐标结算、内部钟差调整、与其他PL时间同步等,PL收发机的内部结构如图1所示。
图1 PL收发机结构图Fig.1 Structure diagram of PL transceiver
接收机作为信号接收部分,主要用于接收并处理PL收发机发出的导航定位信号,并进行下变频、模数转换器(analog to digital converter, A/D)转换以及捕获跟踪处理,得到信号的观测量,其内部由接收机天线、中频A/D转换模块、下变频模块和基带信号处理模块组成,结构如图2所示。接收机装置可放置在移动单元上进行动态航迹测量,能同时接收GPS信号和PL信号。
图2 PL接收机结构图Fig.2 Structure diagram of PL receiver
PL信号由载波、测距码、导航电文3部分构成,信号结构如图3所示。
图3 PL信号结构图Fig.3 Structure diagram of PL signal
测距码也称伪随机噪声(pseudo random noise, PRN)码,也叫伪码,通常由一系列二进制序列码按一定的编码规则产生;导航电文携带PL参数信息,导航电文速率和GPS速率一致,为50 bps;载波射频频率包含S1、S2两个频点,S1、S2信号表达式如下式所示:
(1)
式中:P为信号功率;Di(t)为导航电文;ci(t)为伪随机序列;fci为对应第i(i=1、2)个频点的载波频率;hi([t/T])为跳时序列码,基础频率选为10.23 MHz。PL的扩频调制采用粗捕获码,是一种预先确认、可重复产生和复制的PRN。测距码和导航电文通过二进制相移键控(binary phase shift keying, BPSK)的方式调制得到扩频码,然后由载波对扩频码进行BPSK调制,得到PL信号。
NMA即使用公钥数字签名算法对导航信息进行签名,认证消息每隔固定的时间发送一次。NMA非对称加密方案主要有两种实现方式:数字签名(digital signature, DS)技术和TESLA[22-23]。
DS技术一般由签名方使用私钥对明文消息加密生成签名,然后将明文数据和签名数据组成的签名信息发给接收方,接收方使用对应公钥进行验证以确定签名的真伪,签名生成和验签的一般流程如图4所示。
图4 DS生成和验证流程图Fig.4 Flowchart of DS generation and verification
ECDSA使用椭圆曲线参数作为描述DS生成过程中公钥加密方案的密钥的参数,属于非对称的密码体制,有较好的抗欺骗性能,但是计算开销较大。
TESLA是一种广播认证方案,采用对称加密模型,利用密钥延迟发布技术实现非对称加密,以确保播发的安全性。该算法使用单向生成逆向使用的密钥序列,参数序列生成过程如图5所示。
图5 TESLA参数序列生成过程Fig.5 TESLA parameter sequence generation process
TESLA技术具有正向生成复杂度低、逆向倒推计算难的特点,有效保证了在下一密钥披露之前用户无法计算到下一密钥信息。认证过程需要发送方与接收方预先同步时钟,达成松散的时间同步,且密钥延迟时间不宜过长,否则欺骗者会有足够时间根据当前密钥计算出下一密钥以实施欺骗。TESLA计算量低、鲁棒性好,适合一对多的传输。
2.1.1 认证一般模型
一种简单的公私钥加密认证方案一般包含4个步骤:① 卫星空间段通过私钥对导航电文的特定字段进行加密处理;② 接收机通过公钥对导航电文的加密字段进行解密认证,验证接收信号的有效性;③ 用户从可靠的密钥管理机构获取有效公钥,防止欺骗干扰方发布的虚假公钥引导接收机跟踪欺骗信号;④ 导航系统运行机构可不定期更换加密私钥并更换公钥,避免私钥被破解而造成接收机无法正确监测欺骗信号[24]。NMA的一般模型结构如图6所示。
图6 NMA结构图Fig.6 NMA structure diagram
2.1.2 国密算法
为满足电子认证服务等应用的需求,国家密码管理局制定了一系列国产密码算法,目前主要公开的算法有SM2、SM3、SM4、SM9和ZUC[25-27],其区别如表1所示。
表1 国产密码算法比较
SM1算法:分组密码算法,分组长度为128 bit,密码长度为128 bit,保密强度和软硬件实现性能与高级加密标准(advanced encryption standard, AES)相当,算法不公开,仅以知识产权(intellectual property, IP)核的形式存于芯片中,现广泛用于电子政务、电子商务等领域。
SM2算法:非对称加密算法,包括SM2-1 ECDSA,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现DS密钥协商和数据加密等功能。采用椭圆曲线密码(elliptic curve cryptography, ECC)机制,签名速度与密钥生成速度均快于RSA(Rivest Shamir Adleman, RSA)算法,且256位的SM2密码强度已经比2 048位的RSA密码强度要高[28]。
SM3算法:杂凑(哈希、散列)算法,无需密钥,对于任何文本长度不大于264bit的消息,都可以通过SM3算法通过填充和迭代压缩生成长度为256 bit的杂凑值,填充规则参考密码标准,取值范围更大,且不能通过逆向运算暴露原文数据,适用于商用密码应用中的DS和验证,消息认证码的生成与验证以及随机数的生成,安全性要高于消息摘要算法(message digest algorithm, MD5)和安全散列算法(secure hash algorithm 1, SHA-1),可满足多种密码应用的安全需求。
SM4算法:对称加密算法,分组长度为128 bit,密码长度为128 bit,加密解密共用一套密钥,均采用32轮非线性迭代结构,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。SM4是专门为无线局域网产品设计的加密算法。
在实际应用中,可根据消息类型采用不同的密码算法进行认证。密码算法主要分为对称加密算法和非对称加密算法。其中,对称加密算法加密速度强,但认证信息较少,加密强度一般;非对称加密算法安全性高,认证信息量大,但由于计算复杂,加密和认证速度相比而言较慢。基于以上特点,在设计PL信号防伪认证方案时可根据电文保留位大小及电文速率,将国密算法进行组合,在确保认证信息安全的同时,实现更快的认证和密钥更新速度。
作为信息防欺骗干扰方法的一个分支,基于密码学的防伪认证方法近年来日趋成熟,具有较高的安全性,可以设计一种使用国产密码标准加密的NMA方案,考虑到SM1算法不公开,目前仅以IP核的形式存于芯片中,不宜应用于卫星通信;SM4是对称加密算法,密钥公开后信号安全性无法保障。同时,根据电文设计,PL导航电文第4帧预留位充裕,可以替换全部签名信息。因此,本文设计使用非对称加密算法SM2和密码杂凑算法SM3生成签名,将明文数据和签名数据组成的签名信息发给接收方,接收方使用对应公钥进行验证以确定签名的真伪,认证流程如图7所示。
图7 NMA流程图Fig.7 Flowchart of NMA
使用国密算法生成DS认证信息主要包含私钥生成签名和公钥验证签名两部分,具体包括以下步骤。
步骤 1参数验证。确定椭圆曲线系统参数,包括有限域规模Fp、Fq,曲线方程E,椭圆曲线上的基点坐标G(xG,yG),以及阶数n。根据SM2椭圆曲线公钥密码算法[29-30]规定的条件对上述参数加以验证,参数有效,可建立认证系统。
步骤 2密钥产生。输入系统参数,用户选取秘密值计算P=d[*]G,P为公钥,d作为私钥由加密方保存。
步骤 3签名生成。输入系统参数,私钥d和待签名消息M,按以下步骤生成签名,流程如图8所示。
步骤 3.1置M=ZA‖M;
步骤 3.2计算e=Hash(M),将e的数据类型转换为整数,Hash()为单项截断函数;
步骤 3.3用随机数发生器产生随机数k∈[1,n-1];
步骤 3.4计算椭圆曲线点(x1,y1)=[k]G,将x1的数据类型转换为整数;
步骤 3.5计算r=(e+x1)modn,若r=0或r+k=n则返回重新选取k;
步骤 3.6计算s=((1+dA)-1·(k-r·dA))modn,若s=0则返回重新选取k;
步骤 3.7将r、s的数据类型转换为字节串,输出消息M的签名为(r,s)。
图8 DS生成算法流程图Fig.8 Flowchart of DS generation algorithm
步骤 4签名验证:输入系统参数,公钥P及收到的消息M′的签名(r′,s′),按如下步骤验证签名,流程如图9所示。
步骤 4.1检验r′∈[1,n-1]是否成立,若不成立则验证不通过;
步骤 4.2检验s′∈[1,n-1]是否成立,若不成立则验证不通过;
步骤 4.3置M′=ZA‖M′;
步骤 4.4计算e′=Hash(M′),将e′的数据类型转换为整数;
步骤 4.5将r′、s′的数据类型转换为整数,计算t=t(r′+s′)modn,若t=0,则验证不通过;
与其他数字签名算法相比,SM2 DS算法采用ECC机制,在同等安全性级别条件下,DS过程能保障发送行为的真实性,有密钥生成快、DS迅速、计算量小、安全性高等特点。对于软件接收机而言,只需要存储公钥,无需存储私钥,在维持较低的通信成本与计算成本的同时,可保障卫星导航信息的安全。因此,针对民用卫星导航系统开放、透明的特点,使用ECDSA进行认证更为合适。
图9 DS验证算法流程图Fig.9 Flowchart of DS verification algorithm
导航电文是一种二进制码,包括计算卫星位置的有关数据(卫星星历)、系统时间、卫星钟参数、历书、电离层信息及卫星工作状态等内容。PL发射的导航电文数据以二进制码的形式发送,以比特、字、子帧和帧的形式被编码在信号上,并以50 bit/s的速率发送给接收机,接收方将其用于导航解算。每个主帧有1 500 bit的数据,并分成5个子帧,每个子帧有10个字,每个字为30 bit。帧结构如图10所示。
图10 导航电文帧结构图Fig.10 Frame structure diagram of navigation message
其中,子帧1包含标识码(如卫星星期序号等)、星期数据龄期、时钟改正数等,子帧2和子帧3包含卫星星历(轨道参数等),子帧4包含卫星历书、协调世界时间(universal time coordinated, UTC)和电离层改正参数、卫星健康状况等信息,子帧5包含卫星历史和健康状况信息。
在实际应用中,排布PL导航电文信息时会预留一些分布集中的信息位,考虑到不影响传统接收机正常接收信号,在定义认证信息位时可以将修改的导航电文安排在保留区域,以便于对信息进行有效的管理、维护和更新。对整个电文各个子帧中拥有的预留信息位情况进行统计,可得到如表2所示的信息。
表2 导航电文子帧1~5的预留信息位
SM2数字签名算法生成私钥长度128 bit,公钥长度256 bit,签名长度512 bit,根据导航电文帧结构设计,将512位签名信息去替换每一页面不同的保留位,具体的替换位置如表3所示。
表3 签名信息编排分布
本方案的实验测试平台由基于GNU Radio的信号发射部分、基于Visual Studio OPENSSL的加解密部分以及基于CPU/GPU异构并行计算的信号接收部分组成,如图11所示。测试过程依照设计的认证方案内容执行,先根据密码算法生成签名,将添加认证信息的电文数据和星历文件等输入到信号生成软件中,结合软件无线电设备(universal software radio peripheral, USRP)实时发送信号,通过设置射频定义文件和通道定义文件,描述软件接收机需捕获跟踪的信号,结合多支路跟踪模型,分析导航信号抗欺骗干扰能力。
图11 实验测试平台Fig.11 Experimental test platform
首先对于明文加密、密文解密、签名生成及认证过程进行仿真,具体实验步骤和实验结果如下。
步骤 1密钥生成
SM2算法安全性和计算复杂度不依赖于参数选择,椭圆曲线方程的参数是可以公开的,参数选择步骤满足系统验证要求即可,也可使用算法随机生成。本文方法主要基于国密算法应用,在密钥生成前会先进行参数验证,实验采用国家密码SM2椭圆曲线公钥密码算法推荐的曲线参数:y2=x3+ax+b,a、b为素域中的元素,用于定义椭圆曲线,G(xG,yG)为曲线基点,n表示基点G的阶数,参数设置如表4所示。
表4 椭圆曲线参数信息
先验证曲线参数是否有效,验证无误后根据以上参数生成的SM2公钥、私钥结果如表5所示。
表5 各阶段密钥生成信息
步骤 2信息加密
实验选取每一帧的第一子帧的遥测字(telemetry word, TLM)信息作为加密信息,具体的明文信息加密后生成的密文信息如表6所示。
表6 导航电文生成密文信息
步骤 3签名生成
利用SM3算法生成的摘要信息和SM2算法产生的私钥一起组成导航电文的签名信息如表7所示。
表7 签名认证信息
步骤 4信号接收和验证
接收端接收到导航信息后,根据表3所示的位置提取签名内容并验证信息的可靠性,核验二者的哈希值是否一致,进而对签名认证信息的有效性做出判断:二者一致,导航信息通过验证,是真实完整的导航信息;否则认证失败,导航信息存在欺骗干扰的可能,不可用。认证结果如图12所示。
图12 信号认证阶段的程序运行结果Fig.12 Program running results during the signal authentication phase
步骤 5性能分析
分析数字签名认证方案的性能主要从安全性和可靠性两个方面来衡量。
安全性评估可以考虑安全等级参数,安全等级用于衡量密码算法被暴力破除的难度。在2030年之前,安全等级在112以上的密码算法均在安全使用范围内。SM2算法拥有128位安全等级,满足NIST的安全等级标准,从密码系统角度考虑是安全的。
可靠性的评估依赖于认证错误率(authentication error rate, AER)和认证时间间隔。AER表示没有攻击但存在真实传输信道干扰的情况下错误认证的概率,表示如下:
AER=1-(1-BER)NNA
(2)
式中:BER(bit error ratio BER)指系统位误码率;NNA指参与认证的电文比特总数,包含被认证电文和认证信息。
根据本文设计的NMA方案,当NNA为1 500 bit时,不同系统BER下认证错误率如图13所示。由图13可以看出,当系统BER小于10-5时,本文提出方案的认证错误率维持在较低水平,方案可靠性较好。
图13 不同BER下方案的认证率Fig.13 Authentication rate under different BER
认证时间间隔(time between authentication, TBA)表示接收机正常运行时连续两次认证的间隔时间。实际条件下,假设BER=10-6,可计算平均TBA:
(3)
式中:L表示导航电文的帧长度;k表示认证组中的帧数量;Tb表示导航电文码片持续时间。对PL系统而言,采用主帧认证方式,L=300,k=5,Tb为0.02 s,可求得平均TBA为30.04 s,认证错误率为0.15%。
确定TBA需要权衡安全性和系统性能,TBA过大会导致接收机长时间接收未经认证的信号,增加受到欺骗的风险;TBA过小,需要频繁认证传输电文,会增加计算成本和通信开销,降低接收机性能。
将本文与其他学者提出的利用保留位进行信息认证的方法[18,31]进行比较,比较结果如表8所示。
表8 方案比较
PL平台可根据需求自定义信号帧格式,在设计电文格式时在第四帧设计了较多空闲保留位。相比之下,本文可选取密码强度更高的非对称签名算法;同时,将签名安排在独立子帧中,便于后期密钥更新和签名维护,较短的TBA安全性更好。
PL通信使用无线信道,导航电文作为通信内容易被篡改伪造,本文在分析PL信号特征的基础上,使用DS技术,设计了适用于PL的NMA方案。通过比较分析,方案在兼容性方面,使用保留位存放数字签名,与现有的接收机结构兼容,且不影响无认证功能的接收机工作;在安全性方面,使用国密算法避免了国外算法产生的安全隐患,SM2签名与密钥生成速度快,密码强度高,能有效抵御生成式和部分再生式欺骗干扰的攻击;在灵活性方面,通过电文调整,可以将签名安排在独立子帧中,便于对密钥信息进行有效的管理、维护和更新。在未来的研究中,可以结合扩频码,设计与扩频码相关的认证方案,尝试空中密钥更新的策略,进一步减少时间开销。