技术领域
[0001] 本
发明涉及信息安全技术领域,是一种基于国产密码的北斗二代导航系统抗欺骗方案。
背景技术
[0002] 目前,全球
卫星导航系统使用广泛,导航信息的安全问题也越来越被重视。我国在北斗卫星导航系统信息抗欺骗方面缺乏研究,可以伪造或篡改北斗卫星
信号,使
定位信息出现偏差。北斗二代导航系统的导航电文
帧结构中留有预留信息位,可以填充认证信息。这为本发明方案实现提供了
基础。
[0003] 在国际上,ECDSA(椭圆曲线数字签名)和RSA
算法是最常用的数字签名算法。目前,我国自主研发了国产密码算法,且已经成了国际标准,但少有认证方案使用国产密码算法。因此,本发明方案使用国产密码算法进行加密认证北斗卫星导航信息。本发明方案具有较高的安全性,避免因使用国外密码算法而导致“后
门事件”。
[0004] SM2是国家密码管理局于2010年12月17日发布的椭圆曲线的非对称公钥密码算法。SM2数字签名较应用较广的RSA数字签名算法性能更优,更安全并且其密码复杂度更高、处理速度更快、机器性能消耗更小。RSA和SM2算法的主要特征情况如表1所示[0005]
[0006]
[0007] 表1 RSA和SM2算法的主要特征对比
[0008] 因此,在本发明方案中,签名方案使用SM2数字签名算法。SM2是非对称加密算法,具有较好的密钥管理机制,即管理方持有私钥,用户持有公钥。这种一对多的密钥管理方式避免了对称密钥一对一的复杂的管理机制。其次,SM2的非对称加密过程使用的是椭圆曲线算法,相比于对称密码算法使用的异或运算,其破解难度更高,从而保证了信息的可靠性。此外,本发明使用SM2数字签名算法对基本导航信息进行认证,不需要对卫星导航信息进行加密隐藏,这样保证用户可以及时地接收导航的信息,即使不需要认证信息的用户也能正常使用导航信息,不影响导航设备的兼容性。虽然非对称加密的认证时间相对较长,但仍在可接受的范围内。
[0009] SM2数字签名算法的基本原理为:
[0010] (1)签名生成
[0011] 设要签名的信息为e,G是椭圆曲线上的参考点,dA是私钥,PA是公钥,PA=dAG。对e进行数字签名得到签名结果(r,s),计算过程首先选取随机数k,计算r=e+x1,其中(x1,y1)=kG,再计算s=(1+dA)-1(k-r×dA)。这个过程是用私钥进行的。
[0012] (2)签名验证
[0013] 首先计算t=r+s,如果t=0那么就表明没有通过。然后通过t与s计算曲线上的点(x1,y1)=sG+tPA,再计算R=x1+e,然后验证R与r是否相等,如果相等则表明验证通过。这样验证的原理为
[0014] (x1,y1)=sG+tPA=kG
[0015] 依据公钥得到的椭圆曲线上的这个点和签名时的点是一致的。
[0016] SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。在商用密码体系中,SM3主要用于数字签名及验证,消息认证码生成及验证,随机数生成等。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,
摘要长度为256位。据国家密码管理局表示,其安全性及效率与SHA-256相当。SM3哈希数算法的基本原理为:
[0017] (1)填充
[0018] 填充数据,使其长度为512的整数倍,具体过程为:先在数据的最末尾上加一比特“1”;然后把原始数据的长度用64比特表示,放在最后面;最后计算现在的数据的长度与512比特的差值,补差值比特数的“0”于“1”和64比特原始数据之间。
[0019] (2)分组
[0020] 把填充后的信息按照512比特一个分组进行分组,如果分成了N组,就是b(0),b(1),...,b(N-1)
[0022] 计算IV(n)=CF(IV(n-1),b(n-1))
[0023] 如果信息分为N组,那么IV(N)就是最后得到的杂凑值(哈希值)。在本发明方案中,其作用是为SM2数字签名提供摘要信息。
[0024] SM4(原名SMS4)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。在商用密码体系中,SM4主要用于数据加密,其算法公开。SM4算法是一个迭代分组密码算法,由加解密算法和密钥扩展算法组成。算法采用非平衡Feistel结构,分组长度和密钥长度均为为128位。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F,每轮的操作包括:
[0025] (1)将32位明文组与轮密钥异或;
[0026] (2)基于S盒的字节到字节的代替;
[0027] (3)基于移位的线性变换。
[0028] SM4算法加和解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。对称密码的加密时间短,处理速度快,虽然安全性比非对称密码算法低,但这样信息的及时性强,能够减少认证的延时,提高认证的效率。
[0029] 在本发明方案中,SM4加密算法用于加密公钥。
发明内容
[0030] 本发明属于信息类抗欺骗方案,使用的国产密码算法为SM2,SM3和SM4。本发明的目的是为了克服北斗二代导航系统因为电文结构公开导致的较为容易被欺骗的
缺陷,而提供一种基于国产密码SM2,SM3,SM4的北斗二代导航电文抗欺骗方案及检测方法,本方案具有较高的认证成功率和较低的被欺骗率,同时具有低成本,运算时间较快的特点。
[0031] 本发明发明内容如下:
[0032] 1.北斗二代信号接收机接收北斗二代导航电文,然后传输至
信号处理模
块。
[0033] 2.在信号处理模块中,首先将北斗二代电文中的基本导航信息使用SM3算法生成摘要(杂凑值)(图3)。
[0034] 3.将此摘要与导航电文利用SM2数字签名算法生成数字签名(图2)。
[0035] 4.通过将数字签名整合到导航电文的预留位,生成带认证信息的导航电文,然后由北斗卫星发射机发射。
[0036] 5.北斗二代信号接收机接收到导航电文后,将其传输至信号处理模块。
[0037] 6.在信号处理模块中,分别提取导航电文和数字签名信息。其中导航信息使用SM3算法生成一个新的摘要(杂凑值)。
[0038] 7.使用公钥和SM2认证算法对数字签名进行认证得到原始摘要。
[0039] 8.将这两个摘要进行比较,若判定两个摘要一致,说明该导航信息无误,保留该导航信息;若判定不一致,说明导航信息有误,则删除该导航信息。
[0040] 9.与此同时,本发明对SM2所生成的公钥使用SM4分组算法(图4)对密钥加密,防止公钥信息被破解。
[0041] 本发明从两方面提升电文的安全性本方案的整体
框图如图1。
附图说明
[0042] 图1为方案的整体过程框图。
[0043] 图2为SM2数字签名算法的框图。
[0044] 图3为SM3哈希数算法的框图。
[0045] 图4为SM4分组密码算法的步骤框图。
具体实施方式
[0046] 为验证方案的可行性,可输入北斗导航信息给系统的认证信息生成部分,得到带认证信息的导航电文,把这个导航电文备份,一份不做
修改,另一份做修改来模拟欺骗过程,再分别把这两份电文给系统的认证部分,验证系统是否能判断出正确的导航信息。
[0047] 为了能够较直接地显示出效果,本发明方案使用了基于OpenSSL库与Visual Studio进行实验,实验所用系统环境为Windows 10系统,所用处理器为英特尔i7-6700,内存环境为32G,使用固态
硬盘ssd进行数据读取与写入。具体实施方式如下,其数据均用十六进制表示。
[0048] 首先,需要配置椭圆曲线信息。在本发明方案中,使用的椭圆曲线参数如表1所示(表中数据均为16进制数)
[0049]
[0050] 表1 椭圆曲线参数表
[0051] 根据所规定的椭圆曲线参数信息获得椭圆曲线,进而生成密钥对,并导出公钥以及私钥。
[0052] 随后发送方利用SM3算法对取待签名的(伪造前的)导航电文内容以及私钥信息进行计算并得出杂凑值(正确摘要),并结合所得的的杂凑值以及私钥值,利用SM2数字签名算法进行签名。
[0053] SM2数字签名算法的仿真结果如表2所示(表中数据均为16进制数)
[0054]
[0055]
[0056] 表2 SM2仿真结果
[0057] 接收方会根据得到的(伪造后的)导航信息,利用SM3算法计算出杂凑值信息(伪造摘要)。SM3哈希数算法的仿真结果如表3所示(表中数据均为16进制数)
[0058]
[0059] 表3 SM3仿真结果
[0060] 最后,本发明方案对两个摘要进行比对,本实施过程中的比对结果为不一致,认证失败。
[0061] 本方案的SM4加密部分采取随机生成的方式生成密钥。加密过程是通过读取加密密钥以及待加密信息,利用SM4分组算法进行信息加密。
[0062] SM4的仿真结果如表4所示(表中数据均为16进制数)
[0063]
[0064]
[0065] 表4 SM4仿真结果。