一种短报文通信的加解密方法

文档序号:10516637阅读:580来源:国知局
一种短报文通信的加解密方法
【专利摘要】本发明公开了一种短报文通信的加解密方法。本加密方法:若数据P的长度L(P)<Dbit,则从P最低位后面依次补1位bit“1”和若干位bit“0”,直至补足Dbit,生成数据P’;对P’1取反生成P’2;然后对P’1、P’2加密,得到密文C。否则将P分成n个Dbit的数据块;采用对称加密算法对前n?1个数据块分别加密,得到对应密文C1…Cn?1;如果L(Pn)=Dbit,则对Pn加密得到密文Cn,否则从Ci设定位置a处截取D?L(Pn)bit数据P’i补在Pn位置b处得到P’n,截取后的Ci记为C’i;对P’n加密得到密文Cn,最后密文C=C1…C’i…Cn。本发明充分提高了通信效率。
【专利说明】
_种短报文通信的加解密方法
技术领域
[0001]本发明涉及通信技术领域,涉及一种通信加密方法,尤其涉及一种短报文通信的加解密方法。
【背景技术】
[0002]短报文通信是一种重要通信方式,以北斗卫星导航系统为例,目前北斗卫星导航系统是我国自主研制的全球卫星导航系统,和GPS的最大区别在于北斗卫星具有独特的通信功能一短报文通信。短报文通信可以按照服务频度(民用服务频度为60S)的间隔定期发送报文服务,但由于资源的限制,每包报文长度(数据带宽)受限。
[0003]民用短报文通信的报文是明文,在一些需要传输敏感数据的应用当中,需要对数据进行加密。
[0004]但目前常用的对称商用密码算法在对明文加密处理后,密文数据长度会发生变化,以3DES算法为例,即明文长度不是整8字节的情况下,加密后密文长度必须以整8字节的长度出现,也就是L(密文)2 L(明文)。对于北斗短报文通信而言(民用长度78个字节),如果采用常规对称商用加密算法,则实际使用时,明文数据长度就不能超过72个字节。这将极大限制北斗短报文通信的应用效能。
[0005]其二,对称算法需要加解密双方以安全的方式交换密钥。常用的方式是以加密卡的ID作为索引,但这种方式在北斗短报文通信中要么占用数据带宽,要么占用一次服务频度来交换密钥索引。无论采用哪种方式,都会制约北斗短报文通信的应用。

【发明内容】

[0006]针对现有技术中存在的技术问题,本发明的目的在于提供一种短报文通信的加解密方法。
[0007]本发明的技术方案为:
[0008]—种短报文通信的加密方法,其步骤为:
[0009]I)检测待加密明文数据P的数据位长度L(P);如果L(P)<Dbit,则进行步骤4),否则进行步骤2)?3);
[0010]2)将明文数据P划分成若干Dbit的数据块,分别标记为PbP2VPn^PnJ卩P =
PlP2."Pn;
[0011]3)采用对称加密算法对Ρι、Ρ2...Ρη-ι数据块分别进行加密,得到对应的密文C1、C2...Cn-2、Cn-1 ;如果L(Pn) =Dbit,则采用对称加密算法对Pn数据块进行加密得到密文Cn,如果L(Pn) #Dbit,则从数据块C1的设定位置a处截取D-L(Pn)Mt的加密数据?\补在数据块??的位置b处组成Dbit的新数据P’n,截取后的C1记为C’1;然后采用对称加密算法对?’?数据块进行加密得到密文Cn,最后得到该明文数据P的密文C = C1Cr-CY-Cn; ? = 1,2...η-1,D为对称加密算法的分组长度;
[0012]4)从明文数据P最低位后面开始依次补I位bit “I”和若干位bit “O”,直至补足01^〖,生成新的明文数据?’,8卟(?’1)=013^;然后对?’1取反,生成?’2=!?’1;然后采用对称加密算法对P ’ 1、P ’ 2加密,得到该明文数据P的密文C。
[0013]进一步的,步骤2)中,将明文数据P按从高位至低位或从低位到高位划分成若干Db it的数据块。
[0014]进一步的,该设定位置a为数据块匕的最低位开始的连续或设定间隔的D_L(Pn)bit数据。
[0015]进一步的,该设定位置a为数据块匕的最高位开始的连续或设定间隔的D_L(Pn)bit数据。
[0016]进一步的,该设定位置a为数据块匕中连续或设定间隔的D-L(Pn)Mt数据。
[0017]进一步的,该位置b为数据块??的高位或低位或中间设定位置。
[0018]一种加密数据的解密方法,其步骤为:
[0019]I)检测待解密密文C的数据位长度L(C),如果L(C)=2Dbit,则进行步骤4),否则进行步骤2)?3);
[0020]2)将密文C划分成若干Dbit的数据块,分别标记为C1Xy CV1 XnJPC = C1Cd;
[0021]3)如果L(Cn)=Dbit,将采用对称解密算法对C1 Xr-匕数据块进行解密,得到明文数据P = P1P^Pn;如果L(Cn)在Dbit,则从数据块Ci中的设定位置a处截取D-L(Cn)bit的加密数据CT1补在数据块Cn的位置b处组成Dbit的新数据C’n,截取后的C1记为C、,然后采用对称解密算法对C’n解密得到明文P”n,然后从数据块P”n的位置b处截取D-L(Cn)bit的明文数据P’n补在数据块C1的设定位置a处,组成新的Dbit密文数据匕,截取后的数据块P” n记为Pn;采用对称解密算法对C1J2-Cn-^据块进行解密,得到明文数据,最后得到明文数据P=P1P^..Ρη-也;其中,i = I,2...η-1,D为对称解密算法的分组长度;
[0022]4)将密文C划分为Dbit的两数据块C1X2;然后采用对称解密算法对&、(:2解密分别得到对应的明文P1、P2,将P2取反,生成P ’ 2 = ! P2,如果Pi = P ’ 2,则从Pi最低位依次向高位判断,直至出现bit” I”为止,该bit” I”之前至最高位为明文P,否则解密后的明文P = P1P2t3
[0023]进一步的,将密文C按从高位至低位或从低位到高位划分成若干Dbit的数据块。
[0024]进一步的,该设定位置a为数据块最低位开始的连续或设定间隔的D_L(Pn)bit数据;或者该设定位置a为数据块最高位开始的连续或设定间隔的D_L(Pn)bit数据;或者该设定位置a为数据块中连续或设定间隔的D-L(Pn)Mt数据。
[0025]进一步的,该位置b为数据块的高位D_L(Pn)bit数据或低位D_L(Pn)bit数据或中间设定位置的D-L(Pn)Mt数据。
[0026]与现有技术相比,本发明的积极效果为:
[0027]本发明充分利用了带宽资源、提高了通信效率,本发明不仅适用于北斗通信,对于其他通信传输同样适用,具有广泛的适用性。
【附图说明】
[0028]图1为本发明的加密方法流程图;
[0029]图2为本发明解密方法流程图。
【具体实施方式】
[0030]下面结合附图和实施例对本发明进行进一步详细描述。
[0031]本发明提出了基于北斗短报文通信应用的一种对称商用密码算法的改进算法,从而实现不影响北斗短报文通信效率的安全应用;同时利用北斗卡号在通信过程中不占用数据带宽的特点解决索引交换。通过上述两种措施,在实例中解决了北斗短报文通信最大可用长度和报文加密的矛盾。
[0032]一、算法实现
[0033]本发明适用于对称密码算法,以3DES算法为例,
[0034]3DES算法是指使用密钥K将64bit明文数据块进行3次DES加密/解密。
[0035]设EK()和DK()代表DES算法的加密过程和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,L为数据位长度,这样,
[0036]3DES 加密过程为:C = EK3(DK2(EK1(P)))。
[0037]3DES 解密过程为:P = DK1(EK2(DK3(C)))。
[0038]则改进算法处理流程如下:
[0039](-)加密,如图1所示。
[0040]第I步:检测待加密明文数据P的数据位长度L(P),如果L(P)<64bit,转至第7步。
[0041]第2步:将明文数据P按从高位至低位划分成64bit的块,一直划分到数据的最后一块,分别标记为Pl、P2、…Pn-l、Pn,即P = PlP2…Pn。
[0042]第3步:将P1、Ρ2..数据块进行加密处理,
[0043]Ci = EK3(DK2(EKl (Pi))); i = I,2...η_1。
[0044]第4步:L(Pn)关64bit,转至第6步。
[0045]第5步:Cn=EK3(DK2(EKl(Pn))),即密文数据C= C1C2…Cn,结束。
[0046]第6步:
[0047]籲从&1—1中从最低位开始依次截取64-1^?)1^的加密数据?’11—1,补在?11的高位,组成64b i t的新数据P ’ n=P ’ n-也;截取后的Crrf变成C ’ n-1 ;
[0048]#Cn=EK3(DK2(EKl(P,n)));
[0049]籲C= C1C2-CV2CV1Cn;
[0050]籲结束。
[0051]第7步:
[0052]?从P最低位后面开始依次补I位bit” I”,若干位bit“0”,直至补足64bit,生成新的明文数据P’ JPL(Ph) = GAbitP^ = PlOH-O;
[0053]籲将卩’改反’生成卩’〗=!?’!;
[0054]籲Cn=EK3(DK2(EKl(P,n))),n=l、2;
[0055]籲C = CiC2;
[0056]籲结束。
[0057](二)解密,如图2所示。
[0058]第I步:检测待解密密文C的数据位长度L(C),如果L(C)= 128bit,转至第6步;否则进行步骤2;
[0059]第2步:将密文数据C按从高位至低位划分成64bit的块,一直划分到数据的最后一块,分别标记为Cl、C2、…Cn—1、Cn,即C = ClC2…Cn。
[0060]第3步:L(Cn)关64bit,转至第5步。
[0061 ]第4步:将C1、C2…Cn数据块进行解密处理,
[0062]#Pi = DKl(EK2(DK3(Ci)));i = l,2---n
[0063]籲即明文数据P = P1P2."Pn;
[0064]籲结束。
[0065]第5步:
[0066]?从Crrf中最低位开始依次截取64_L(Cn)bit的加密数据C’n,补在Cn的高位,组成64b i t的新数据C ’ n=C ’ n—仏;截取后的Cn—i变成C" n-1 ;
[0067]籲P”n=DKl(EK2(DK3(C’n)));
[0068]籲从Ρ”ηψ最高位开始依次截取64_L(Cn)bit的明文数据P’n,补在C”n—!的低位,组成新的64b i t密文数据Cn = C" n-lP,η ;截取后的P” η变成Pn ;
[0069]#Pi = DKl(EK2(DK3(Ci)));i = U2---n-l;
[0070]?明文数据P = P1P2-Pn-1Pn;
[0071]籲结束。
[0072]第6步:
[0073]?将密文数据C按从高位至低位划分成两个64bit的块&和&;
[0074]#Pi = DKl(EK2(DK3(Ci))); i = l,2;
[0075]籲将P2取反,生成P’2= !P2;
[0076]籲如果P1 = P^转至第7步;
[0077]籲P = P1P2;
[0078]籲结束。
[0079]第7步:
[0080]?从?!最低位依次向高位判断,直至出现bit” I”为止,则该bit” I”之前至最高位为实际明文数据;
[0081]结束。
【主权项】
1.一种短报文通信的加密方法,其步骤为: 1)检测待加密明文数据P的数据位长度L(P);如果L(P)<Dbit,则进行步骤4),否则进行步骤2)?3); 2)将明文数据P划分成若干Dbit的数据块,分别标记为P1JwPn-^Pn,S卩P = P1P^Pn; 3)采用对称加密算法对P1、P2…Ph数据块分别进行加密,得到对应的密文C1、CfCn-2、Cn-1 ;如果L(Pn) =Dbit,则采用对称加密算法对Pn数据块进行加密得到密文Cn,如果L(Pn) ΦDbit,则从数据块C1的设定位置a处截取D-L(Pn)bit的加密数据P’#在数据块??的位置b处组成Dbit的新数据P’n,截取后的C1记为C’1;然后采用对称加密算法对P’Ji据块进行加密得到密文匕,最后得到该明文数据P的密文C = C1Cr-C’r-Cn; i = l,2-_n-l,D为对称加密算法的分组长度; 4)从明文数据P最低位后面开始依次补I位和若干位13^“0”,直至补足01^^生成新的明文数据?’,即1斤’1)=013^;然后对?’1取反,生成?’2=!?’1;然后采用对称加密算法对P ’ 1、P ’ 2加密,得到该明文数据P的密文C。2.如权利要求1所述的方法,其特征在于,步骤2)中,将明文数据P按从高位至低位或从低位到高位划分成若干Db i t的数据块。3.如权利要求1或2所述的方法,其特征在于,该设定位置a为数据块(^的最低位开始的连续或设定间隔的D-L(Pn)Mt数据。4.如权利要求1或2所述的方法,其特征在于,该设定位置a为数据块(^的最高位开始的连续或设定间隔的D-L(Pn)Mt数据。5.如权利要求1或2所述的方法,其特征在于,该设定位置a为数据块(^中连续或设定间隔的D-L(Pn)Mt数据。6.如权利要求1或2所述的方法,其特征在于,该位置b为数据块??的高位或低位或中间设定位置。7.一种基于权利要求1所述方法的加密数据的解密方法,其步骤为: 1)检测待解密密文C的数据位长度L(C),如果L(C)=2Dbit,则进行步骤4),否则进行步骤2)?3); 2)将密文C划分成若干Dbit的数据块,分别标记为&、C2vCn—!、(:?,S卩C = C1C^Cn; 3)如果L(Cn)=Dbit,将采用对称解密算法对&、&...匕数据块进行解密,得到明文数据P= P1P^Pn;如果L(Cn)在Dbit,则从数据块Ci中的设定位置a处截取D-L(Cn)bit的加密数据CT1补在数据块Cn的位置b处组成Dbit的新数据C’n,截取后的C1记为C1,然后采用对称解密算法对C’n解密得到明文P”n,然后从数据块P”n的位置b处截取D-L(Cn)bit的明文数据P’n#在数据块C1的设定位置a处,组成新的Dbit密文数据匕,截取后的数据块P” n记为Pn;采用对称解密算法对C1J2-Cn-^据块进行解密,得到明文数据,最后得到明文数据P=PiP2---Ρη-ιΡη;其中,i = I,2...η-1,D为对称解密算法的分组长度; 4)将密文C划分为Dbit的两数据块C1X2;然后采用对称解密算法对C1X2解密分别得到对应的明文?!、Ρ2,将?2取反,生成P ’ 2 = ! P2,如果P1 = P ’ 2,则从P1最低位依次向高位判断,直至出现bit” I”为止,该bit” I”之前至最高位为明文P,否则解密后的明文P = P1P2t38.如权利要求7所述的方法,其特征在于,将密文C按从高位至低位或从低位到高位划分成若干Dbit的数据块。9.如权利要求7或8所述的方法,其特征在于,该设定位置a为数据块最低位开始的连续或设定间隔的D_L(Pn)bit数据;或者该设定位置a为数据块最高位开始的连续或设定间隔的D-L(Pn)Mt数据;或者该设定位置a为数据块中连续或设定间隔的D-L(Pn)Mt数据。10.如权利要求7或8所述的方法,其特征在于,该位置b为数据块的高位D-L(Pn)bit数据或低位D-L(Pn)Mt数据或中间设定位置的D-L(Pn)Mt数据。
【文档编号】H04L29/06GK105873033SQ201610322745
【公开日】2016年8月17日
【申请日】2016年5月16日
【发明人】陈志国
【申请人】北京鼎合信安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1