CN105553676B - 具有设备认证功能的北斗串口通信方法及发送、接收装置 - Google Patents
具有设备认证功能的北斗串口通信方法及发送、接收装置 Download PDFInfo
- Publication number
- CN105553676B CN105553676B CN201610118553.6A CN201610118553A CN105553676B CN 105553676 B CN105553676 B CN 105553676B CN 201610118553 A CN201610118553 A CN 201610118553A CN 105553676 B CN105553676 B CN 105553676B
- Authority
- CN
- China
- Prior art keywords
- byte
- data
- password
- digit
- beidou
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/1851—Systems using a satellite or space-based relay
Abstract
本发明提供了一种具有设备认证功能的北斗串口通信方法,包括如下步骤:S1.根据北斗串口通信的接口数据传输协议生成普通指令;S2.根据约定的口令字、约定的密码和所述普通指令,生成令牌指令;S3.先发送所述令牌指令,再相邻地发送所述普通指令。本发明还提供了一种具有设备认证功能的北斗串口通信发送装置、接收装置。本发明的具有设备认证功能的北斗串口通信方法及发送、接收装置,能够有效验证北斗串口指令发送方的身份,从而防止第三方未经过认证就通过串口转发、插播的方式,占用有效的北斗发送资源,影响现有设备的正常使用。
Description
技术领域
本发明涉及北斗卫星信息发送和接收领域,特别涉及一种具有设备认证功能的北斗串口通信方法及发送、接收装置。
背景技术
北斗卫星导航定位系统是利用地球同步卫星为用户提供快速定位、简短数字报文通信和授时服务的一种新型、全天候、区域性的卫星定位系统。
北斗RD通信模块的使用,要有效登记管理,用户和设备一一对应,合理利用有限的发送资源。目前主要通过串口方式,如图1A所示,使得外设显控设备1和北斗通信设备2通信连接,外设显控设备1对北斗通信设备2发送指令。
在实际的使用中,出现过非法的未经认证的设备通过串口桥接转发的方式,接入北斗通信设备2,并实现自己的指令发送。如图1B所示,非认证设备3通过串口桥接转发的方式接入了外设显控设备1与北斗通信设备2之间的通信链路,在转发外设显控设备1的指令的同时,还将自己的指令混杂在其中发给了北斗通信设备2。图1B中以虚线表示这些混杂的来自非认证设备3的非法指令。这些非认证设备3的非法指令,占用了有效的北斗发送资源,影响了现有设备的正常使用。
为了实现有效地对设备进行认证,并考虑到对现有的系统设备的兼容性,需要有一套机制来保护外设显控设备和通信设备之间的通讯不受到非认证设备的侵入。
发明内容
本发明的目的在于,提供一种具有设备认证功能的北斗串口通信方法及发送、接收装置,有效验证北斗串口指令发送方的身份,从而防止第三方未经过认证就通过串口转发、插播的方式,占用有效的北斗发送资源,影响现有设备的正常使用。
根据本发明的一个方面,具有设备认证功能的北斗串口通信方法包括如下步骤:S1.根据北斗串口通信的接口数据传输协议生成普通指令;S2.根据约定的口令字、约定的密码和所述普通指令,生成令牌指令;S3.先发送所述令牌指令,再相邻地发送所述普通指令。
进一步地,所述步骤S2进一步包括:S2-1.生成位数为1字节的第一和第二随机数X、Y,所述第一和第二随机数X、Y的取值范围均为0~255;S2-2.将所述第一和第二随机数X、Y分别映射为位数为1字节的第一和第二映射值X’、Y’,所述第一和第二映射值X’、Y’的取值范围均为0~255;S2-3.将所述约定的密码和所述普通指令拼接生成位数为N字节的原始数据;S2-4.将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;S2-5.将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};S2-6.对所述待摘要数据进行MD5摘要以得到摘要数据;S2-7.生成所述令牌指令{P1,P2,P3,P4,P5,P6,P7},其中,P1为所述口令字的ASIIC码其位数为5字节,P2为所述令牌指令的字节数其位数为2字节,P3为特殊字其位数为3字节,P4为所述第二映射值Y’的十六进制字符串的ASIIC码其位数为2字节,P5为所述摘要数据的ASIIC码其位数为32字节,P6为所述第一映射值X’的十六进制字符串的ASIIC码其位数为2字节,P7为校验和其位数为1字节。
另一方面,具有设备认证功能的北斗串口通信方法包括如下步骤:S1’.每次进行指令接收时均接收相邻的两条指令;S2’-1.将第一条指令的第1~5字节提取为待验口令;S2’-2.判断所述待验口令是否为约定的口令字,若是,则执行步骤S3’,若否,则设备认证失败;S3’.将所述第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将所述第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将所述第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’;S4’-1.将约定的密码和第二条指令拼接生成位数为N字节的原始数据;S4’-2.将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;S4’-3.将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};S4’-4.对所述待摘要数据进行MD5摘要以得到摘要数据;S5’.将所述第一条指令的第13~44字节提取为待验数据;S6’.将所述摘要数据的ASIIC码与所述待验数据比较,若相同,则设备认证成功,若不同,则设备认证失败。
根据本发明的一个方面,具有设备认证功能的北斗串口通信发送装置,包括:普通指令生成模块,配置为根据北斗串口通信的接口数据传输协议生成普通指令;令牌指令生成模块,配置为生成令牌指令,所述令牌指令包括约定的口令字、以及经变换的约定的密码和所述普通指令;发送模块,配置为在发送所述普通指令之前,先发送所述令牌指令,所述令牌指令与其对应的所述普通指令相邻发送。
进一步地,所述令牌指令生成模块包括:随机数生成单元,配置为生成位数为1字节的第一和第二随机数X、Y,所述第一和第二随机数X、Y的取值范围均为0~255;随机数映射单元,配置为将所述第一和第二随机数X、Y分别映射为位数为1字节的第一和第二映射值X’、Y’,所述第一和第二映射值X’、Y’的取值范围均为0~255;数据生成单元,配置为将所述约定的密码和所述普通指令拼接生成位数为N字节的原始数据;数据变换单元,配置为将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;数据排列单元,配置为将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};摘要生成单元,配置为对所述待摘要数据进行MD5摘要以得到摘要数据;指令拼接单元,配置为生成所述令牌指令{P1,P2,P3,P4,P5,P6,P7},其中,P1为所述口令字的ASIIC码其位数为5字节,P2为所述令牌指令的字节数其位数为2字节,P3为特殊字其位数为3字节,P4为所述第二映射值Y’的十六进制字符串的ASIIC码其位数为2字节,P5为所述摘要数据的ASIIC码其位数为32字节,P6为所述第一映射值X’的十六进制字符串的ASIIC码其位数为2字节,P7为校验和其位数为1字节。
根据本发明的一个方面,具有设备认证功能的北斗串口通信接收装置,包括:接收模块,配置为每次接收相邻的两条指令,并将该两条指令发送到令牌指令解析模块;令牌指令解析模块,其包括:口令提取单元,配置为将第一条指令的第1~5字节提取为待验口令;口令判断单元,配置为判断所述待验口令是否为约定的口令字,若是,则启动后续模块,若否,则输出设备认证失败信号;随机数提取单元,配置为将所述第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将所述第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将所述第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’;数据生成单元,配置为将约定的密码和第二条指令拼接生成位数为N字节的原始数据;数据变换单元,配置为将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;数据排列单元,配置为将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};摘要生成单元,配置为对所述待摘要数据进行MD5摘要以得到摘要数据;数据提取单元,配置为将所述第一条指令的第13~44字节提取为待验数据;验证单元,配置为将所述摘要数据的ASIIC码与所述待验数据比较,若相同,则输出设备认证成功信号,若不同,则输出设备认证失败信号。
本发明的具有设备认证功能的北斗串口通信方法及发送、接收装置,通过令牌指令与普通指令相邻发送的方法,在接收端通过判断令牌指令中的指令字和信息内容来验证该指令的发送设备是否为通过认证的设备;同时,本发明对不支持设备认证功能的接收端还具有兼容性。
附图说明
图1A为正常情况下外设显控设备与北斗通信设备之间的通信连接方式;
图1B为非认证设备接入时,外设显控设备、非认证设备与北斗通信设备之间的通信连接方式;
图2为本发明的具有设备认证功能的北斗串口通信方法的一个方面的流程示意图;
图3为本发明的具有设备认证功能的北斗串口通信发送装置的一个实施例的结构示意图;
图4为图2中的步骤S2的一个实施例的流程示意图;
图5为本发明的具有设备认证功能的北斗串口通信方法的另一个方面的流程示意图;
图6为本发明的具有设备认证功能的北斗串口通信接收装置的一个实施例的结构示意图;
图7为第一映射函数的曲线图;
图8为第二映射函数的曲线图。
具体实施方式
下面结合附图和具体实施方式对本发明的具有设备认证功能的北斗串口通信方法及发送、接收装置作进一步的详细描述,但不作为对本发明的限定。
如图2所示,为本发明的具有设备认证功能的北斗串口通信方法的一个方面的流程示意图。该方法包括:
步骤S1:根据北斗串口通信的接口数据传输协议生成普通指令;
步骤S2:根据约定的口令字、约定的密码和步骤S1中生成的普通指令,生成令牌指令;
步骤S3:先发送步骤S2中生成的令牌指令,再相邻地发送步骤S1中生成的普通指令。
北斗串口通信的接口数据传输协议中规定的外设显控设备与北斗通信设备之间通信的数据格式如表1所示:
表1协议规定的指令传输格式
指令 | 长度 | 用户地址 | 信息内容 | 校验和 |
$XXXX | 2字节 | 3字节 | 1字节 |
“指令”传输时以ASIIC码表示,每个ASIIC码为1个字节;
“长度”表示从“指令”的起始符“$”开始到“校验和”为止的数据的总字节数,含“$”和“校验和”;
“用户地址”表示与外设显控设备相连的北斗用户机的ID号;
“校验和”是指从指令”的起始符“$”开始到“校验和”前面的一个字节,按字节异或运算的结果;
“信息内容”用二进制原码表示,各参数项按格式要求的长度填充,不满长度要求时,高位补“0”。信息按整字节传输,多字节信息先传高位字节,后传低位字节。
常用的指令包括:定位申请指令$DWSQ、通信申请指令$TXSQ、串口输出指令$CKSC、IC检测指令$ICJC、系统自检指令$XTZJ、时间输出指令$SJSC、版本读取指令$BBDQ等。
步骤S1中根据表1规定的格式生成北斗串口通信的普通指令。
为了保证接收方对指令处理的兼容性,需要令牌指令符合表1所规定的格式。为此,本发明构造的令牌指令的传输格式如下表2所示:
表2本发明的令牌指令的传输格式
其中,“指令”部分为令牌指令特有的口令字,优选为字符串$PSQR。
“用户地址”部分填充特殊字,优选为0x000000。
“信息内容”部分具体在步骤S2中产生。参考图4,生成令牌指令的步骤S2具体包括:
步骤S2-1:生成位数为1字节的第一和第二随机数X、Y,第一和第二随机数X、Y的取值范围均为0~255。
在生成随机数时,常用的方法为以当前时刻作为随机数种子来生成随机数。考虑到生成第一和第二随机数X、Y的当前时刻可能相同,因此,为了尽量保证第一和第二随机数X、Y的不一致性,可以在用当前时刻作为随机数种子生成的随机数上加上不同的偏移。
优选地,按照如下公式生成第一和第二随机数X、Y:
X=R%255 公式1
Y=(R+256)%255 公式2
其中,R为以当前时刻作为随机数种子生成的原始随机数,%表示取余运算。
步骤S2-2:将第一和第二随机数X、Y分别映射为位数为1字节的第一和第二映射值X’、Y’,第一和第二映射值X’、Y’的取值范围均为0~255。
步骤S2-2的作用为,将0~255之间的数映射为另一个0~255之间的数,通常选取非线性映射。
优选地,按照第一映射函数将第一随机数X映射为第一映射值X’,按照第二映射函数将第二随机数Y映射为第二映射值Y’。第一、第二映射函数分别如公式3、4所示,其映射曲线如图7、8所示:
X’=Fun1(X)=(int)X*sin(X*Pi/510) 公式3
Y’=Fun2(Y)=(int)[65536-(Y+1)2]/255 公式4
其中,(int)表示对其后的内容取整的运算。
步骤S2-3:将约定的密码和步骤S1中生成的普通指令拼接成位数为N字节的原始数据。
约定的密码为通信的发送方和接收方之间互相已经约定好的密码,通常为10字节,其可以通过远程设置修改,由本其他的指令体系维护。
原始数据的内容为“10字节的密码+$XXXX指令内容”,其中$XXXX指令内容即为步骤S1中生成的、将要在该令牌指令之后一起相邻发送的普通指令的全部内容,即从普通指令的起始符“$”开始到“校验和”为止的全部数据。
原始数据的长度为N字节,N取决于普通指令的长度,其为普通指令的长度+10(密码长度)。
步骤S2-4:将原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,非线性变换的参数包括第一和第二映射值X’、Y’。
第一、第二、第三和第四非线性变换的函数分别如公式5、6、7、8所示:
Ai=F1(X’,Y’,Zi)=((~X’)&(~Y’))|((~X’)&Zi) 公式5
Bi=F2(X’,Y’,Zi)=Ai&(X’&Zi)|(Y’&(~Zi)) 公式6
Ci=F3(X’,Y’,Zi)=Bi&(X’^Y’|(~Zi)) 公式7
Di=F4(X’,Y’,Zi)=(~Y’)^(X’|(~Zi)) 公式8
公式5、6、7、8中的运算均为比特运算,运算结果Ai、Bi、Ci和Di的长度均为1个字节。
步骤S2-5:将第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时待摘要数据为奇排列即Ki={Ai,Ci,Bi,Di},当i为偶数时待摘要数据为偶排列即Ki={Bi,Di,Ai,Ci}。
排列之后的待摘要数据{Ki,i=1,2,…,N}为{(Ai,Ci,Bi,Di),(Bi,Di,Ai,Ci),(Ai,Ci,Bi,Di),(Bi,Di,Ai,Ci),…}。由于原始数据的长度为N字节,则待摘要数据的长度为4*N字节。
当原始数据是偶数字节(N为偶数)时,待摘要数据以偶排列结束,当原始数据是奇数字节(N为奇数)时,待摘要数据以奇排列结束。
步骤S2-6:对待摘要数据进行MD5摘要以得到摘要数据。把待摘要数据的N*4字节内容进行16位MD5数字摘要,将16位字节转换成32位十六进制字符串,得到32字节的摘要数据。
步骤S2-7:生成令牌指令。该令牌指令由七个部分组成,即{P1,P2,P3,P4,P5,P6,P7}。
其中,参考表2:
第一部分P1为口令字$PSQR的ASIIC码,其长度为5字节;
第二部分P2为该令牌指令的字节数,固定为47个字节,其长度为2字节;
第三部分P3为特殊字0x000000,其长度为3字节;
第四部分P4为第二映射值Y’的十六进制字符串的ASIIC码,其长度为2字节;
第五部分P5为步骤S2-6得到的摘要数据的ASIIC码,其长度为32字节;
第六部分P6为第一映射值X’的十六进制字符串的ASIIC码,其长度为2字节;
第七部分P7为校验和,其长度为1字节。
图3提供了能够完成上述通信方法的通信发送装置,包括:普通指令生成模块10,配置为根据北斗串口通信的接口数据传输协议生成普通指令;令牌指令生成模块20,配置为生成令牌指令,令牌指令包括约定的口令字、以及经变换的约定的密码和普通指令;发送模块30,配置为在发送普通指令之前,先发送令牌指令,令牌指令与其对应的普通指令相邻发送。
进一步地,令牌指令生成模块20包括如下单元:
随机数生成单元21,配置为完成步骤S2-1的功能;
随机数映射单元22,配置为完成步骤S2-2的功能;
数据生成单元23,配置为完成步骤S2-3的功能;
数据变换单元24,配置为完成步骤S2-4的功能;
数据排列单元25,配置为完成步骤S2-5的功能;
摘要生成单元26,配置为完成步骤S2-6的功能;
指令拼接单元27,配置为完成步骤S2-7的功能。
令牌指令生成模块20的各个单元完成的功能与其对应的步骤的功能相同,详见上文描述,此处不再赘述。
与上述发送方的通信方法和装置相对应地,本发明还提供了接收方的通信方法和装置。
如图5所示,为本发明的具有设备认证功能的北斗串口通信方法的另一个方面的流程示意图。该方法包括如下步骤:
S1’.每次进行指令接收时均接收相邻的两条指令。
S2’-1.将相邻的两条指令中的第一条指令的第1~5字节提取为待验口令。
S2’-2.判断待验口令是否为约定的口令字(字符串$PSQR),即判断待验口令是否正确,若是,则执行步骤S3’,若否,则设备认证失败。
S3’.将第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’。
S4’-1.将约定的密码和第二条指令拼接生成位数为N字节的原始数据。
约定的密码为通信的发送方和接收方之间互相已经约定好的密码,通常为10字节,其可以通过远程设置修改,由本其他的指令体系维护。
原始数据的内容为“10字节的密码+$XXXX指令内容”,其中$XXXX指令内容即为接收的相邻的两条指令中第二条指令的全部内容。
原始数据的长度为N字节,N取决于第二条指令的长度,其为第二条指令的长度+10(密码长度)。
S4’-2.将原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,非线性变换的参数包括第一和第二映射值X’、Y’。
第一、第二、第三和第四非线性变换的函数分别如公式5、6、7、8所示,运算结果Ai、Bi、Ci和Di的长度均为1个字节。
S4’-3.将第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci}。
排列之后的待摘要数据{Ki,i=1,2,…,N}为{(Ai,Ci,Bi,Di),(Bi,Di,Ai,Ci),(Ai,Ci,Bi,Di),(Bi,Di,Ai,Ci),…}。由于原始数据的长度为N字节,则待摘要数据的长度为4*N字节。
S4’-4.对待摘要数据进行MD5摘要以得到摘要数据。把待摘要数据的N*4字节内容进行16位MD5数字摘要,将16位字节转换成32位十六进制字符串,得到32字节的摘要数据。
S5’.将第一条指令的第13~44字节提取为待验数据。即表2中“信息内容”部分的数据提取为待验数据。
S6’.将摘要数据的ASIIC码与待验数据比较,若相同,则设备认证成功,若不同,则设备认证失败。
即按照本发明提供的通信方法,接收方每次接收相邻的两条指令,先判断普通指令之前是否存在令牌指令(通过口令字$PSQR判断),若不存在则发送设备不通过认证,认为其接收的是不合法的外设发出的指令,拒绝执行此次接收到的普通指令;若存在令牌指令,则提取出第一和第二映射值X’和Y’,将其接收的普通指令做与发送方相同处理(步骤S2),如果处理完的摘要数据与令牌指令的“信息内容”部分相同,则发送方的设备通过认证,执行接收到的普通指令,否则不通过认证。
图6提供了能够完成上述通信方法的通信接收装置,包括:接收模块10’,配置为每次接收相邻的两条指令R1、R2,并将该两条指令R1、R2发送到令牌指令解析模块;令牌指令解析模块20’,其包括:
口令提取单元21’,配置为将第一条指令的第1~5字节提取为待验口令,即完成步骤S2’-1的功能;
口令判断单元22’,配置为判断待验口令是否为约定的口令字,若是,则启动后续模块,若否,则输出设备认证失败信号F,即完成步骤S2’-2的功能;
随机数提取单元23’,配置为将第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’,即完成步骤S3’的功能;
数据生成单元24’,配置为将约定的密码和第二条指令拼接生成位数为N字节的原始数据,即完成步骤S4’-1的功能;
数据变换单元25’,配置为将原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,非线性变换的参数包括第一和第二映射值X’、Y’,即完成步骤S4’-2的功能;
数据排列单元26’,配置为将第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci},即完成步骤S4’-3的功能;
摘要生成单元27’,配置为对待摘要数据进行MD5摘要以得到摘要数据,即完成步骤S4’-4的功能;
数据提取单元28’,配置为将第一条指令的第13~44字节提取为待验数据,即完成步骤S5’的功能;
验证单元29’,配置为将摘要数据的ASIIC码与待验数据比较,若相同,则输出设备认证成功信号S,若不同,则输出设备认证失败信号F,即完成步骤S6’的功能。
由上述描述可知,本发明的具有设备认证功能的北斗串口通信方法及发送、接收装置还具有很强的兼容性。对于不支持本发明的令牌指令的北斗通信设备,当其收到“$PSQR指令+$XXXX指令”的时候,不知道$PSQR指令,当作不识别的指令忽略处理,仅处理普通指令“$XXXX指令”,故不影响基本的指令执行。这也是本发明不把普通指令直接加密发送、再在北斗通讯设备上解密的原因,因为如果实施加密传输普通指令的方法来进行设备认证,则不能够支持解密普通指令的北斗通信单元就无法继续使用。
本发明的具有设备认证功能的北斗串口通信方法及发送、接收装置,通过令牌指令与普通指令相邻发送的方法,在接收端通过判断令牌指令中的指令字和信息内容来验证该指令的发送设备是否为通过认证的设备,能够有效地控制北斗通信设备的连接;同时,相比于通过发送方和接收方之间进行加密传输来支持设备认证功能的通信方法,由于本发明对普通指令的发送保留了现有的方式,对不支持本发明的北斗通信设备具有强大的兼容性。
以上具体实施方式仅为本发明的示例性实施方式,不能用于限定本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这些修改或等同替换也应视为落在本发明的保护范围内。
Claims (8)
1.一种具有设备认证功能的北斗串口通信方法,其特征在于,包括如下步骤:
S1.根据北斗串口通信的接口数据传输协议生成普通指令;
S2.根据约定的口令字、约定的密码和所述普通指令,生成令牌指令;
S3.先发送所述令牌指令,再相邻地发送所述普通指令,
所述约定的口令字为字符串$PSQR;
所述步骤S2进一步包括:
S2-1.生成位数为1字节的第一和第二随机数X、Y,所述第一和第二随机数X、Y的取值范围均为0~255;
S2-2.将所述第一和第二随机数X、Y分别映射为位数为1字节的第一和第二映射值X’、Y’,所述第一和第二映射值X’、Y’的取值范围均为0~255;
S2-3.将所述约定的密码和所述普通指令拼接生成位数为N字节的原始数据;
S2-4.将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;
S2-5.将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};
S2-6.对所述待摘要数据进行MD5摘要以得到摘要数据;
S2-7.生成所述令牌指令{P1,P2,P3,P4,P5,P6,P7},其中,P1为所述口令字的ASIIC码其位数为5字节,P2为所述令牌指令的字节数其位数为2字节,P3为特殊字其位数为3字节,P4为所述第二映射值Y’的十六进制字符串的ASIIC码其位数为2字节,P5为所述摘要数据的ASIIC码其位数为32字节,P6为所述第一映射值X’的十六进制字符串的ASIIC码其位数为2字节,P7为校验和其位数为1字节。
2.根据权利要求1所述的具有设备认证功能的北斗串口通信方法,其特征在于,
按照如下公式生成所述第一和第二随机数X、Y:X=R%255;Y=(R+256)%255;其中,R为以当前时刻作为随机数种子生成的原始随机数,%表示取余运算;
按照如下公式将所述第一和第二随机数X、Y映射为所述第一和第二映射值X’、Y’:X’=Fun1(X)=(int)X*sin(X*Pi/510);Y’=Fun2(Y)=(int)[65536-(Y+1)2]/255;其中,(int)表示对其后的内容取整的运算;
按照如下公式对所述原始数据的每个字节Zi进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di:Ai=F1(X’,Y’,Zi)=((~X’)&(~Y’))|((~X’)&Zi);Bi=F2(X’,Y’,Zi)=Ai&(X’&Zi)|(Y’&(~Zi));Ci=F3(X’,Y’,Zi)=Bi&(X’^Y’|(~Zi));Di=F4(X’,Y’,Zi)=(~Y’)^(X’|(~Zi))。
3.一种具有设备认证功能的北斗串口通信方法,其特征在于,包括如下步骤:
S1’.每次进行指令接收时均接收相邻的两条指令;
S2’-1.将第一条指令的第1~5字节提取为待验口令;
S2’-2.判断所述待验口令是否为约定的口令字,若是,则执行步骤S3’,若否,则设备认证失败;
S3’.将所述第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将所述第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将所述第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’;
S4’-1.将约定的密码和第二条指令拼接生成位数为N字节的原始数据;
S4’-2.将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;
S4’-3.将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};
S4’-4.对所述待摘要数据进行MD5摘要以得到摘要数据;
S5’.将所述第一条指令的第13~44字节提取为待验数据;
S6’.将所述摘要数据的ASIIC码与所述待验数据比较,若相同,则设备认证成功,若不同,则设备认证失败,
所述约定的口令字为字符串$PSQR。
4.根据权利要求3所述的具有设备认证功能的北斗串口通信方法,其特征在于,按照如下公式对所述原始数据的每个字节Zi进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di:
Ai=F1(X’,Y’,Zi)=((~X’)&(~Y’))|((~X’)&Zi);
Bi=F2(X’,Y’,Zi)=Ai&(X’&Zi)|(Y’&(~Zi));
Ci=F3(X’,Y’,Zi)=Bi&(X’^Y’|(~Zi));
Di=F4(X’,Y’,Zi)=(~Y’)^(X’|(~Zi))。
5.一种具有设备认证功能的北斗串口通信发送装置,其特征在于,包括:
普通指令生成模块,配置为根据北斗串口通信的接口数据传输协议生成普通指令;
令牌指令生成模块,配置为生成令牌指令,所述令牌指令包括约定的口令字、以及经变换的约定的密码和所述普通指令;
发送模块,配置为在发送所述普通指令之前,先发送所述令牌指令,所述令牌指令与其对应的所述普通指令相邻发送,
所述约定的口令字为字符串$PSQR;
所述令牌指令生成模块包括:
随机数生成单元,配置为生成位数为1字节的第一和第二随机数X、Y,所述第一和第二随机数X、Y的取值范围均为0~255;
随机数映射单元,配置为将所述第一和第二随机数X、Y分别映射为位数为1字节的第一和第二映射值X’、Y’,所述第一和第二映射值X’、Y’的取值范围均为0~255;
数据生成单元,配置为将所述约定的密码和所述普通指令拼接生成位数为N字节的原始数据;
数据变换单元,配置为将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;
数据排列单元,配置为将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};
摘要生成单元,配置为对所述待摘要数据进行MD5摘要以得到摘要数据;
指令拼接单元,配置为生成所述令牌指令{P1,P2,P3,P4,P5,P6,P7},其中,P1为所述口令字的ASIIC码其位数为5字节,P2为所述令牌指令的字节数其位数为2字节,P3为特殊字其位数为3字节,P4为所述第二映射值Y’的十六进制字符串的ASIIC码其位数为2字节,P5为所述摘要数据的ASIIC码其位数为32字节,P6为所述第一映射值X’的十六进制字符串的ASIIC码其位数为2字节,P7为校验和其位数为1字节。
6.根据权利要求5所述的具有设备认证功能的北斗串口通信发送装置,其特征在于,
所述随机数生成单元进一步配置为,按照如下公式生成所述第一和第二随机数X、Y:X=R%255;Y=(R+256)%255;其中,R为以当前时刻作为随机数种子生成的原始随机数,%表示取余运算;
所述随机数映射单元进一步配置为,按照如下公式将所述第一和第二随机数X、Y映射为所述第一和第二映射值X’、Y’:X’=Fun1(X)=(int)X*sin(X*Pi/510);Y’=Fun2(Y)=(int)[65536-(Y+1)2]/255;其中,(int)表示对其后的内容取整的运算;
所述数据变换单元进一步配置为,按照如下公式对所述原始数据的每个字节Zi进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di:Ai=F1(X’,Y’,Zi)=((~X’)&(~Y’))|((~X’)&Zi);Bi=F2(X’,Y’,Zi)=Ai&(X’&Zi)|(Y’&(~Zi));Ci=F3(X’,Y’,Zi)=Bi&(X’^Y’|(~Zi));Di=F4(X’,Y’,Zi)=(~Y’)^(X’|(~Zi))。
7.一种具有设备认证功能的北斗串口通信接收装置,其特征在于,包括:
接收模块,配置为每次接收相邻的两条指令,并将该两条指令发送到令牌指令解析模块;
令牌指令解析模块,其包括:
口令提取单元,配置为将第一条指令的第1~5字节提取为待验口令;
口令判断单元,配置为判断所述待验口令是否为约定的口令字,若是,则启动后续模块,若否,则输出设备认证失败信号;
随机数提取单元,配置为将所述第一条指令的第45~46字节和第11~12字节分别提取为第一和第二字符串,并将所述第一和第二字符串按照ASIIC码表转换为第一和第二十六进制数,将所述第一和第二十六进制数对应的十进制数分别作为第一和第二映射值X’、Y’;
数据生成单元,配置为将约定的密码和第二条指令拼接生成位数为N字节的原始数据;
数据变换单元,配置为将所述原始数据的每个字节Zi均进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di,其中i=1,2,…,N,所述非线性变换的参数包括所述第一和第二映射值X’、Y’;
数据排列单元,配置为将所述第一、第二、第三和第四变换字节Ai、Bi、Ci和Di排列为待摘要数据{Ki,i=1,2,…,N},其中,当i为奇数时Ki={Ai,Ci,Bi,Di},当i为偶数时Ki={Bi,Di,Ai,Ci};
摘要生成单元,配置为对所述待摘要数据进行MD5摘要以得到摘要数据;
数据提取单元,配置为将所述第一条指令的第13~44字节提取为待验数据;
验证单元,配置为将所述摘要数据的ASIIC码与所述待验数据比较,若相同,则输出设备认证成功信号,若不同,则输出设备认证失败信号,
所述约定的口令字为字符串$PSQR。
8.根据权利要求7所述的具有设备认证功能的北斗串口通信接收装置,其特征在于,按照如下公式对所述原始数据的每个字节Zi进行第一、第二、第三和第四非线性变换以得到第一、第二、第三和第四变换字节Ai、Bi、Ci和Di:
Ai=F1(X’,Y’,Zi)=((~X’)&(~Y’))|((~X’)&Zi);
Bi=F2(X’,Y’,Zi)=Ai&(X’&Zi)|(Y’&(~Zi));
Ci=F3(X’,Y’,Zi)=Bi&(X’^Y’|(~Zi));
Di=F4(X’,Y’,Zi)=(~Y’)^(X’|(~Zi))。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610118553.6A CN105553676B (zh) | 2016-03-02 | 2016-03-02 | 具有设备认证功能的北斗串口通信方法及发送、接收装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610118553.6A CN105553676B (zh) | 2016-03-02 | 2016-03-02 | 具有设备认证功能的北斗串口通信方法及发送、接收装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553676A CN105553676A (zh) | 2016-05-04 |
CN105553676B true CN105553676B (zh) | 2019-01-04 |
Family
ID=55832619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610118553.6A Active CN105553676B (zh) | 2016-03-02 | 2016-03-02 | 具有设备认证功能的北斗串口通信方法及发送、接收装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553676B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830451B (zh) * | 2019-10-21 | 2022-03-29 | 上海百事通信息技术股份有限公司 | 一种数据传输方法、装置、存储介质和终端 |
CN110881028B (zh) * | 2019-10-24 | 2023-04-28 | 上海百事通信息技术股份有限公司 | 数据传输控制方法、装置、存储介质和终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577736A (zh) * | 2013-11-07 | 2014-02-12 | 上海动联信息技术股份有限公司 | 一种低功耗的动态令牌以及动态口令生成方法 |
CN103973683A (zh) * | 2014-05-06 | 2014-08-06 | 上海动联信息技术股份有限公司 | 一种动态口令双口令同步方法 |
US9203833B2 (en) * | 2007-12-05 | 2015-12-01 | International Business Machines Corporation | User authorization using an automated Turing Test |
-
2016
- 2016-03-02 CN CN201610118553.6A patent/CN105553676B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203833B2 (en) * | 2007-12-05 | 2015-12-01 | International Business Machines Corporation | User authorization using an automated Turing Test |
CN103577736A (zh) * | 2013-11-07 | 2014-02-12 | 上海动联信息技术股份有限公司 | 一种低功耗的动态令牌以及动态口令生成方法 |
CN103973683A (zh) * | 2014-05-06 | 2014-08-06 | 上海动联信息技术股份有限公司 | 一种动态口令双口令同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105553676A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200372503A1 (en) | Transaction messaging | |
CN101662765B (zh) | 手机短信保密系统及方法 | |
CN104765999A (zh) | 一种对用户资源信息进行处理的方法、终端及服务器 | |
CN104618334A (zh) | 动态二维码生成验证方法及系统 | |
CN103679406A (zh) | 利用标记解码装置认证包裹收件人的方法及解码装置 | |
CN109618341A (zh) | 一种数字签名认证方法、系统、装置以及存储介质 | |
CN104050431A (zh) | 一种rfid芯片的自签名方法及其装置 | |
KR102055625B1 (ko) | 인증 서버 장치, 프로그램 및 인증 방법 | |
JP5973808B2 (ja) | 情報処理装置、端末装置、情報処理システム、情報処理方法およびコンピュータプログラム | |
CN102073831A (zh) | 电子文档加密和解密的系统及其方法 | |
CN103227786A (zh) | 一种网站登录信息填入方法及装置 | |
CN110061967A (zh) | 业务数据提供方法、装置、设备及计算机可读存储介质 | |
CN104135531B (zh) | 一种Web软件的升级方法及装置 | |
CN109977685A (zh) | 网页内容加密方法,加密装置及系统 | |
CN106357404A (zh) | 基于nfc芯片防伪认证的数据加密方法 | |
CN112653719A (zh) | 汽车信息安全存储方法、装置、电子设备和存储介质 | |
CN105471902A (zh) | 基于下发加密算法的数据加密方法和系统 | |
CN105553676B (zh) | 具有设备认证功能的北斗串口通信方法及发送、接收装置 | |
CN104640091A (zh) | 一种手机短信加密通信方法 | |
US10862675B2 (en) | Method for exchanging messages between security-relevant devices | |
CN102082669A (zh) | 一种安全认证方法及装置 | |
JP6149749B2 (ja) | 情報処理装置、情報処理システム、及びプログラム | |
CN114449504B (zh) | 一种nfc标签的验证方法、电子设备及存储介质 | |
CN107294704A (zh) | 口令的生成方法、口令的执行方法及终端 | |
CN102096789A (zh) | 电子文档的保密装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |