一种电文认证方法、设备、系统及介质与流程

文档序号:17428960发布日期:2019-04-17 03:14阅读:191来源:国知局
一种电文认证方法、设备、系统及介质与流程
本发明涉及卫星导航
技术领域
,尤其涉及一种电文认证方法、设备、系统及介质。
背景技术
:北斗导航卫星广泛应用于位置定位、气象预报、交通运输和应急求援等众多领域,但是近年来频发导航信号事故引起了人们对北斗导航卫星系统(globalnavigationsatellitesystem,简称gnss)服务安全可信性的担忧。目前的gnss广播信号设计完全公开,极易受到欺骗攻击,即通过伪装为真实的北斗导航卫星,播发与真实导航信号高度相似的欺骗导航信号,进而对特定目标发布欺骗信息。现有的gnss欺骗防护手段主要采用阵列天线方式检测与识别欺骗导航信号,后续需要对大量终端设备进行升级,大大增加了终端的复杂度和成本。技术实现要素:(一)要解决的技术问题本发明提供了一种电文认证方法、设备、系统及介质,可使得在不增加终端硬件复杂度的情况下,至少解决以上技术问题。(二)技术方案本发明提供了一种电文认证方法,方法包括:在第一终端生成密钥链和导航数据,其中,密钥链包括多个密钥k0,k1,……kn,且k0为根密钥;第一终端通过密钥km对第m导航数据执行消息认证码运算生成macm,将macm、第m导航数据及密钥km-i发送至第二终端,其中,m为大于零且小于等于n的整数,i为大于零且小于等于m的整数;第二终端将macm和密钥km-i编排于预设导航电文格式中生成第m认证导航数据,将第m认证导航数据调制生成第m认证导航信号,在t时刻,将第m认证导航信号发送至第三终端;在t-i*t时刻,第二终端将包含macm-i、第m-i导航数据及密钥km-i-i的第m-i认证导航信号发送至第三终端,其中,t为第三终端完成连续两次导航信号认证的时间间隔;在t+δt时刻,第三终端接收第m认证导航信号,在t-i*t+δt时刻接收第m-i认证导航信号,提取第m认证导航信号中的km-i对第m-i认证导航信号中的第m-i导航数据执行消息认证码运算,生成macm-i’,比对macm-i’与macm-i,若两者相同,则第m-i导航数据通过认证。可选地,在第一终端还包括对根密钥k0进行加密生成数字签名,将根密钥数字签名信息发送至第二终端,第二终端将根密钥数字签名信息编排于预设导航电文格式中,其中,根密钥数字签名信息至少包括根密钥数字签名、根密钥k0及根密钥k0所属密钥链标识cid信息。可选地,预设导航电文格式采用b-cnav1电文格式,b-cnav1电文格式中每帧电文包括子帧1、子帧2及子帧3,在子帧3中定义新页面,将macm及密钥km-i设于子帧3的新页面中。可选地,第二终端将所述根密钥数字签名信息编排于预设导航电文格式中,具体为将根密钥数字签名信息设于每帧电文的预留字节中。可选地,第三终端根据第m认证导航信号中的密钥km-i对第m-i导航数据执行消息认证码运算之前还包括验证密钥km-i,若密钥km-i通过验证,则执行消息认证码运算,若没有通过验证,则不对第m-i导航数据进行认证。可选地,验证所述密钥km-i包括:根据密钥链标识cid判断第三终端是否存储有相同的密钥链标识cid,若存在,则对密钥km-i采用单向散列函数计算生成新密钥knew,迭代计算密钥knew的散列值作为新密钥knew,判断每次生成的新密钥knew与第三终端事先存储的密钥是否相同,若相同,则密钥km-i通过验证;若不存在,则采用第三终端预存的公钥解密根密钥数字签名得到新的根密钥,对密钥km-i采用单向散列函数计算生成新密钥knew,迭代计算密钥knew的散列值作为新密钥knew,判断每次生成的新密钥knew与第三终端解密得到的新根密钥是否相同,若相同,则密钥km-i通过验证。可选地,由种子密钥通过单向散列函数依次生成密钥kn,……,k1,k0,且使用方向为k0,k1,……kn。另一方面本发明还提供了一种电子设备,包括:处理器;存储器,其存储有计算机可执行程序,该程序在被处理器执行时,使得处理器执行上述的电文认证方法。再一方面,本发明还提供了一种电文认证系统,包括:密钥链及导航数据生成模块,用于在第一终端生成密钥链和导航数据,其中,密钥链包括多个密钥k0,k1,……kn,且k0为根密钥;认证数据生成及发送模块,用于第一终端通过密钥km对第m导航数据执行消息认证码运算生成macm,将macm、第m导航数据及密钥km-i发送至第二终端,其中,m为大于零且小于等于n的整数,i为大于零且小于等于m的整数;认证导航信号生成模块,第二终端将macm和密钥km-i编排于预设导航电文格式中生成第m认证导航数据,将第m认证导航数据调制生成第m认证导航信号,在t时刻,将第m认证导航信号发送至第三终端;在t-i*t时刻,第二终端将包含macm-i、第m-i导航数据及密钥km-i-i的第m-i认证导航信号发送至第三终端,其中,t为第三终端完成连续两次导航信号认证的时间间隔;认证导航信号认证模块,在t+δt时刻,第三终端接收第m认证导航信号,在t-i*t+△t时刻接收第m-i认证导航信号,提取第m认证导航信号中的km-i对第m-i认证导航信号中的第m-i导航数据执行消息认证码运算,生成macm-i’,比对macm-i’与macm-i,若两者相同,则第m-i导航数据通过认证。再一方面,本发明还提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的电文认证方法。(三)有益效果本发明提供了一种电文认证方法、设备、系统及介质,利用民用导航电文格式的可扩展性,将电文认证信息及其密钥编写于电文认证信号中,使的当终端接收到电文认证信号后可根据该密钥判断之前接收的电文认证信号的真实性。附图说明图1示意性示出了本公开实施例的电文认证方法的流程图;图2示意性示出了本公开实施例的北斗导航认证系统中各装置部署图;图3示意性示出了本公开实施例中密钥链的生成与使用流程图;图4示意性示出了本公开实施例中认证数据生成示意图;图5示意性示出了本公开实施例中电文数据结构示意图;图6示意性示出了本公开实施例中新定义的页面类型5的编排结构示意图;图7示意性示出了本公开实施例中mac及密钥编排结构示意图;图8示意性示出了本公开实施例中根密钥数字签名信息编排结构示意图;图9示意性示出了本公开实施例中根密钥及其数字签名编排结构示意图;图10示意性示出了本公开实施例中认证导航信号生成示意图;图11示意性示出了本公开实施例中发送端工作流程图;图12示意性示出了本公开实施例中接收端工作流程图;图13示意性示出了本公开实施例中电子设备框图;图14示意性示出了本公开实施例中电文认证系统框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。本发明提供了一种电文认证方法,该方法包括:在第一终端生成密钥链和导航数据,其中,密钥链包括多个密钥k0,k1,……kn,且k0为根密钥;第一终端通过密钥km对第m导航数据执行消息认证码运算生成macm,将macm、第m导航数据及密钥km-i发送至第二终端,其中,m为大于零且小于等于n的整数,i为大于零且小于等于m的整数;第二终端将macm和密钥km-i编排于预设导航电文格式中生成第m认证导航数据,将第m认证导航数据调制生成第m认证导航信号,在t时刻,将第m认证导航信号发送至第三终端;在t-i*t时刻,第二终端将包含macm-i、第m-i导航数据及密钥km-i-i的第m-i认证导航信号发送至第三终端,其中,t为第三终端完成连续两次导航信号认证的时间间隔;在t+δt时刻,第三终端接收第m认证导航信号,在t-i*t+△t时刻接收第m-i认证导航信号,提取第m认证导航信号中的km-i对第m-i认证导航信号中的第m-i导航数据执行消息认证码运算,生成macm-i’,比对macm-i’与macm-i,若两者相同,则第m-i导航数据通过认证。图1示意性示出了本公开第一实施例中电文认证方法流程图;如图1所示,该认证方法可适用于但不限于北斗导航系统中,本实施例以北斗导航系统为例,北斗导航系统包括地面控制中心、北斗卫星及用户终端设备,如图2所示,其中地面控制中心对应于第一终端,北斗卫星对应于第二终端,用户终端设备对应于第三终端,该认证方法主要包括如下步骤。s101,在第一终端生成密钥链和导航数据,其中,密钥链包括多个密钥k0,k1,……kn,且k0为根密钥。在第一终端也即地面控制中心负责密钥链的生成及密钥发布。(1)在密钥链生成阶段,由随机数生成器生成种子密钥,以种子密钥为起始输入,采用单向散列函数h依次递推生成密钥链上的其余密钥,即使用单向散列函数计算当前密钥的散列值,这个散列值作为密钥链上的下一个密钥。在密钥链生成过程,种子密钥是生成密钥链的开始,根密钥为密钥链的结束,生成过程如图3中“密钥生成方向”所示。为确保接收机获取到真实的根密钥k0,需要其他的认证系统对根密钥进行认证,这里采用数字签名认证,即采用非对称加密方法中的私钥对该根密钥进行数字签名,生成根密钥数字签名。(2)在密钥发布阶段,该密钥链上的密钥从k0,k1,……kn每隔预设时间依次被使用,发布过程如图3中“密钥使用/发布方向”所示。基于单向散列函数h操作的单向性,当接收到密钥k1时可以判断出其来自于被系统签名认证过的根密钥k0,但是无法推断出下一时刻的有效密钥k2,这样即使攻击者获取了已经公开的电文认证密钥和密钥生成算法,依然无法推算出下一个要公布的密钥,提高了对抗欺骗攻击的能力和电文认证服务稳健性。同时,若中间丢失几个发布的密钥,仍然可以根据最新的密钥推算出之前的密钥,可以解决密钥发布包丢失问题。即,如果某一认证周期密钥km未被接收端接收到,则利用之后任一认证周期接收的密钥km+i可推算出密钥km,进而对该认证周期的导航电文进行验证。提高了用户高动态下通道失锁、遮挡等导致密钥丢失场景下的认证可用性。同时,地面控制中时刻生成供用户终端设备使用的导航数据。s102,第一终端通过密钥km对第m导航数据执行消息认证码运算生成macm,将macm、第m导航数据及密钥km-i发送至第二终端,其中,m为大于零的小于等于n的整数,i为大于零小于等于m的整数。第一终端也即地面控制中心根据密钥km对第m导航数据执行消息认证码运算生成第m消息认证码macm,在此之前一定预设时间,地面控制中心根据密钥km-i对第m-i导航数据执行相同的消息认证码运算生成macm-i,在本实施例中,密钥与导航数据进行消息认证码运算方法相同,密钥km-i相较于第m-i导航数据和消息认证码macm-i延迟预设时间被公开,同理,密钥km相较于第m导航数据和消息认证码后macm延迟预设时间被公开,因此将macm、第m导航数据及密钥km-i一并发送至第二终端即北斗卫星中。同时,由步骤s101可知,密钥链中包含根密钥,为了后续验证密钥的正确性,需要对根密钥进行数字签名生成根密钥数字签名,值得注意的是此处对根密钥进行的签名采用的是北斗导航系统中预设的私钥,私钥与公钥配对使用,公钥设置于第三终端也即用户终端设备中,当用户终端接收到该根密钥数字签名时可以采用该公钥对该数字签名进行解密得到根密钥,进而可以进一步进行对密钥进行验证,详细的验证过程见步骤s104。需要将根密钥数字签名信息同时发送至北斗卫星,使北斗卫星对上述数据信息进行编排。同理,第一终端通过密钥km-i对第m-i导航数据执行消息认证码运算生成macm-i,将macm-i、第m-i导航数据及密钥km-i-i发送至第二终端。由于根密钥数字签名信息、macm及密钥km-i为后续用于认证的信息,因此为了描述方便统称为第m认证数据,其生成过程如图4所示。s103,第二终端将所述macm和密钥km-i编排于预设导航电文格式中生成第m认证导航数据,将第m认证导航数据调制生成第m认证导航信号,在t时刻,将第m认证导航信号发送至第三终端;在t-i*t时刻,第二终端将包含macm-i、第m-i导航数据及密钥km-i-i的第m-i认证导航信号发送至第三终端,其中,t为第三终端完成连续两次导航信号认证的时间间隔。以第二终端也即北斗卫星的预设导航电文格式为b-cnav1为例,北斗卫星接收到地面控制中心发来的macm、第m导航数据、密钥km-i、根密钥数字签名信息,其中,根密钥数字签名信息包括根密钥、根密钥数字签名及根密钥所属密链的cid信息,首先将所述第m导航数据编排于预设导航电文中,b-cnav1电文的每帧会含有不等数量的预留位,具体的b-cnav1电文中每帧电文长度为878比特/1800符号位,符号速率为100sps,播发周期为18秒,该帧结构如图5所示,每帧电文由3个子帧组成,子帧1包括prn号和小时内秒计数(soh),共14比特,子帧2包括系统时间参数、电文数据版本号、星历参数、钟差参数、群延迟修正参数等信息,共600比特,子帧3信息长度为264比特,最高6比特为页面类型,最后24比特为循环冗余校验位,其余234比特为电文数据。子帧3最多可定义63种页面类型,当前定义了4种页面类型,分别为页面类型1、页面类型2、页面类型3以及页面类型4,子帧3的页面类型每次播发时播发一个,且各页面类型的播发顺序可动态调整,各子帧现有可用预留位见表1。表1将第m认证数据编排于预设导航电文格式中,详细包括将根密钥数字签名信息编排于子帧2和子帧3的预留字节中、macm及密钥km-i信息编排于子帧3中,具体如下。macm及密钥km-i信息,由于macm及密钥km-i占用的比特位较多,目前的预留字节不足以容纳该macm及密钥km-i信息,因此需要在子帧3上重新定义新的页面类型5用于传输macm及密钥km-i信息,页面类型5的编排格式如图6所示,其中,共有225比特用于传输该macm及密钥km-i信息,该macm及密钥km-i信息详细的编排方式如图7所示,其中,mac代表对导航数据执行消息认证码运算输出截短后的信息,共10~20比特;prn代表用于执行消息认证码运算的导航数据对应卫星伪随机码(prn)号,共6比特;adkd代表参与消息认证码运算的导航数据类型及其密钥km传输延迟信息,共4比特,详细参数取值及定义见表2;iod代表参数版本号,共4比特,详细参数取值及定义见表3,key代表延迟发送的密钥km-i,共80~128比特。表2表3根密钥数字签名信息,由根密钥头、数字签名头、根密钥及其数字签名三部分组成,其信息编排格式如图8所示,详细介绍如下。根密钥头包括os、cid、eoc、nkf、ds-id和ds-b-id,共14比特,其中,os代表导航数据电文认证服务状态,占2比特,当os=0代表测试状态,os=1代表正常服务状态;cid为用于执行消息认证码加密运算的密钥链标识参数,占2比特;eoc为密钥链结束标志,占1比特,eoc=1代表当前密钥链即将结束,用户即将开始处理来自另一密钥链的根密钥;nkf为根密钥更新标志,占1比特,nkf=1警告接收机可以读取新的根密钥;ds-id为根密钥签名id,占4比特;ds-b-id代表密钥签名块id,占4比特。数字签名头包括nb和pk-id,共8比特,其中,nb代表数字签名块数目,占4比特,详细参数取值及定义见表4;pk-id代表数字签名的公钥id,占4比特。表4根密钥及其数字签名(digitalsignatureandk-rootmessage简称dsm)为一组参数构成的数据块,该数据块的详细编排格式如图9所示,其中,cid为根密钥所属的密钥链id,共2比特;ks为密钥长度,共4比特,详细参数取值及定义见表5;hf代表散列函数,共3比特,详细参数取值及定义见表6;mf为消息认证码加密函数,共2比特,详细参数取值及定义见表7;ms代表mac值长度,共4比特,详细参数取值及定义见表8;wn-kr为根密钥相关的北斗系统时间的整周计数,共13比特;how-kr为根密钥相关的北斗系统时间的周内小时计数,共8比特;k-root为根密钥,长度为80比特~128比特;signature为根密钥签名信息,在满足128比特安全等级的前提下,根密钥数字签名算法采用ecdsa-p256,其签名长度为512比特。则一个完整的dsm共计628比特~676比特。所述根密钥数字签名算法在本发明实施例中采用ecdsa-p256,实际使用中可另行选择。其中,表5和表8所述的参数取值及其定义为可选长度,实际使用中的密钥长度和mac值长度受导航信号带宽分配约束,可能有多种配置方式,在本发明实施例不做具体限定。表6和表7所述的散列函数和消息认证码函数均为可选函数,实际使用中的散列函数和消息认证码函数在本发明实施例中不做具体限定。表5表6mf值0123消息认证码函数hmac-sha-256cmac-aes预留预留表7表8根密钥数字签名信息可通过表1中b-cnav1电文的子帧2和子帧3(页面类型1,2,3,4,5)的预留位传输。由于播发时子帧3的页面类型1,2,3,4,5顺序轮流播发,则定义5帧对应一个根密钥数字签名信息播发块。第一帧中子帧2与子帧3(页面类型1)可提供34比特预留位,第二帧中子帧2与子帧3(页面类型2)可提供37比特预留位,第三帧中子帧2与子帧3(页面类型3)可提供21比特预留位,第四帧中子帧2与子帧3(页面类型4)可提供54比特预留位,第五帧中子帧2与子帧3(页面类型5)可提供7比特预留位,且该7比特预留位全部由子帧2提供,因此每个播发块可供使用的预留位为153比特。因为由上可知,一个完整的dsm共计628比特~676比特,因此需要5个播发块才能完整的容纳本dsm,根密钥数字签名信息播发方式如表9所示,其中,数字签名头仅定义于第一个播发块中,根密钥头定义于每个播发块的头部,根密钥及其数字签名定义于每个播发块的尾部。表9以上是第m认证数据的编排方式,第m-i认证数据等的编排方式与此相同,此处不再赘述,通过以上方式即可将第m认证数据编排在b-cnav1电文的预留位和新定义的子帧3页面类型5中,使得密钥延迟公开,直至接收到延迟公开的密钥后完成对本次认证数据信号的认证。北斗卫星将第m认证数据及第m导航数据生成第m认证导航数据,将该第m认证导航数据调制,生成第m认证导航信号,生成过程将图10,信号一般是由数据分量和导频分量共同调制产生,在本实施例,数据分量由第m电文数据和伪码cb1c_data经子载波scb1c_data采用正弦boc(1,1)调制方式调制产生;导频分量由伪码cb1c_pilot经子载波scb1c_pilot采用qmboc(6,1,4/33)的调制方式调制产生,本实施例中,数据分量与导频分量的功率比为1:3。采用以上相同的方式,生成第m-i认证导航信号。北斗卫星在t时刻将第m认证导航信号发送至用户终端设备,用户终端设备在t+δt时刻接收到第m认证导航信号,其中,δt为第m认证导航信号从北斗卫星传至用户终端所用时间,北斗卫星在t-i*t时刻将第m-i认证导航信号发送至用户终端设备,用户终端设备在t-i*t+△t时刻收到第m-i认证导航信号,其中,t为第三终端完成连续两次导航信号认证的时间间隔,△t为第m-i认证导航信号从北斗卫星传至用户终端所用时间。至此发送端已完成信号的发送,如图11可示意性示出本发送端(地面控制中心和北斗卫星)的工作流程图。地面中心生成导航数据、密钥链等,并通过密钥链上的密钥对导航数据进行消息认证码运算,生成消息认证码mac值,同时对根密钥进行数字签名生成根密钥数字签名,生成导航数据、mac值、延迟密钥以及根密钥数字签名等,将该导航数据、mac值、延迟密钥以及根密钥数字签名等数据发送至北斗卫星,北斗卫星将上述数据编排生成认证导航数据,进一步对该认证导航数据调制生成认证导航信号,并将该认证导航信号发送至终端设备。s104,在t+δt时刻,第三终端接收第m认证导航信号,在t-i*t+△t时刻接收第m-i认证导航信号,提取第m认证导航信号中的km-i对第m-i认证导航信号中的第m-i导航数据执行消息认证码运算,生成macm-i’,比对macm-i’与macm-i,若两者相同,则第m-i导航数据通过认证。在t+δt时刻,用户终端设备接收到第m认证导航信号,提取并存储其中的第m导航数据、macm、密钥km-i、及根密钥数字签名信息,首先判断该密钥km-i的真实性,具体判断方法如下。根据用户终端设备中是否事先预存有经数字签名验证通过的根密钥k-roots或密钥keys及该密钥对应的密钥链标识参数cids,分两类阐述判断方法。(1)终端设备中事先存储有经数字签名验证通过的根密钥k-roots或密钥keys及该密钥对应的密钥链标识参数cids。首先判断当前接收的dsm中cid参数是否等于cids,1)若相等,说明当前密钥链与用户终端设备事先存储的密钥链属于同一条密钥链。以密钥km-i为起始输入,参照密钥链生成过程图3所示的“密钥生成方向”执行dsm,其中hf参数代表的单向散列函数,密钥km-i采用单向散列函数计算生成新密钥knew,迭代计算密钥knew的散列值作为新密钥knew,判断散列函数生成的knew与事先存储的根密钥k-roots或密钥keys是否相同,若相同则密钥km-i验证通过,若不相同则继续执行单列函数直到其输出与k-roots或密钥keys相等;2)若不相等,说明当前密钥链与终端设备事先存储的密钥链不属于同一条密钥链。终端设备采用公钥对当前接收的dsm中signature执行数字签名验证,若数字签名验证输出与当前接收的dsm中k-root相同,则终端设备将该密钥及其对应的密钥链标识参数记为k-roots和cids并存储,对密钥km-i采用单向散列函数计算生成新密钥knew,迭代计算密钥knew的散列值作为新密钥knew,判断每次生成的新密钥knew与用户终端设备解密得到的新根密钥k-roots是否相同,若相同则密钥km-i验证通过,若不相等则以密钥km-i为起始输入,利用密钥链生成过程的散列函数单向性,直到散列函数输出等于k-roots,则km-i验证通过。这里需要说明的是,为了减少密钥真实性验证环节所需执行的散列函数次数,在未更新密钥链的前提下,接收机可以将最新的经真实性验证的密钥key存储为keys,以代替k-roots。(2)终端设备中未存储任何经数字签名验证通过的根密钥及其对应的密钥链标识参数与上述当前接收的dsm中cid参数不等于cids的情况等效,密钥真实性验证方法同上2),此处不再赘述。密钥km-i验证通过后,将该验证通过的密钥km-i与在t-i*t+△t时刻接收的第m-i认证导航信号中的第m-i导航数据执行消息认证码运算生成macm-i’,比对该macm-i’与在接收存储的macm-i,若二者相同,则第m-i导航数据通过认证,否则通不过认证,证明该导航数据不是真实有效的导航数据。至此终端设备已完成对认证导航信号的验证,如图12所示为本终端设备工作示意图,终端设备接收到认证导航信号后提取并存储导航数据message、mac值以及根密钥数字签名,直到提取到后续认证导航信号中的用于生成该mac值的延迟密钥key,验证该密钥的正确性,若验证通过则将该延迟密钥key与之前接收并存储的导航数据message执行消息认证码运算生成新的mac’,若生成的mac’与存储的mac相同,则该电文信号为真实的导航信号。欺骗信号中,由于欺骗源无法获知系统所用的密钥信息,不能生成并发播包含基于真实密钥生成的mac值、密钥和根密钥数字签名信息的认证导航信号,在终端设备接收到该欺骗信号时,无法提取出真实的密钥,自然不会通过信号验证。另一方面,本发明提供了一种电子设备1300,如图13所示,包括处理器1310、存储器1320。该电子设备1300可以执行上面参考图1描述的方法,以进行电文认证。具体地,处理器1310例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器310还可以包括用于缓存用途的板载存储器。处理器310可以是用于执行参考图1描述的根据本公开实施例的电文认证的单一处理单元或者是多个处理单元。存储器1320,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。存储器1320可以包括计算机程序1321,该计算机程序1321可以包括代码/计算机可执行指令,其在由处理器1310执行时使得处理器1310执行例如上面结合图1所描述的方法流程及其任何变形。计算机程序1321可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1321中的代码可以包括一个或多个程序模块,例如包括1321a、模块1321b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1310执行时,使得处理器1310可以执行例如上面结合图1所描述的方法流程及其任何变形。另一方面,本发明还提供了一种电文认证系统,如图14所示,包括密钥链及导航数据生成模块1401、认证数据生成及发送模块1402、认证导航信号生成模块1403以及认证导航信号认证模块1404。其中,密钥链及导航数据生成模块1401,用于在第一终端生成密钥链和导航数据,其中,密钥链包括多个密钥k0,k1,……kn,且k0为根密钥;认证数据生成及发送模块1402,用于第一终端通过密钥km对第m导航数据执行消息认证码运算生成macm,将macm、第m导航数据、根密钥数字签名信息及密钥km-i发送至第二终端,其中,m为大于零且小于等于n的整数,i为大于零且小于等于m的整数;认证导航信号生成模块1403,第二终端将macm和密钥km-i编排于预设导航电文格式中生成第m认证导航数据,将第m认证导航数据调制生成第m认证导航信号,在t时刻,将第m认证导航信号发送至第三终端;在t-i*t时刻,第二终端将包含macm-i、第m-i导航数据及密钥km-i-i的第m-i认证导航信号发送至第三终端,其中,t为第三终端完成连续两次导航信号认证的时间间隔;认证导航信号认证模块1404,在t+δt时刻,第三终端接收第m认证导航信号,在t-i*t+△t时刻接收第m-i认证导航信号,提取第m认证导航信号中的km-i对第m-i认证导航信号中的第m-i导航数据执行消息认证码运算,生成macm-i’,比对macm-i’与macm-i,若两者相同,则第m-i导航数据通过认证。可以理解的是,密钥链及导航数据生成模块1401、认证数据生成及发送模块1402、认证导航信号生成模块1403以及认证导航信号认证模块1404可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,密钥链及导航数据生成模块1401、认证数据生成及发送模块1402、认证导航信号生成模块1403以及认证导航信号认证模块1404中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,密钥链及导航数据生成模块1401、认证数据生成及发送模块1402、认证导航信号生成模块1403以及认证导航信号认证模块1404中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1