在寻呼系统中确认数据包的方法及设备的制作方法

文档序号:7574798阅读:109来源:国知局
专利名称:在寻呼系统中确认数据包的方法及设备的制作方法
技术领域
本发明涉及多部件寻呼系统,具体地说,涉及寻呼系统中的一种可靠的通信方法及设备。
过去几年中,寻呼系统的扩展异常迅速。从基础的字母数字式单向寻呼系统发展到音频双向系统,“传统的”单向寻呼系统已经超出了它们的最初使用范围。关于单向寻呼系统的详述,读者参考Fawcett等的美国专利No.5481258及Witsaman等的美国专利No.5365569,这两件专利都被转让给本受让人,并在此作为参考文献。
所有的寻呼系统都包括基本部件寻呼发射机、寻呼终端、发射机控制器、及寻呼机。对于双向系统,寻呼系统还包括寻呼接收机。寻呼发射机、寻呼终端、发射机控制器及寻呼接收机统称为寻呼基础结构装置。大型的寻呼系统需要多个寻呼终端及寻呼发射机。一般寻呼系统的部件被放置在不同的地理位置,甚至可能相隔几千哩。
任何寻呼系统的一个关键要求是要具有能在寻呼系统的不同部件之间传递信息的能力。本领域的技术人员将认识到除其它多种信息之外,含有寻呼信息的数据包必须从寻呼终端发送给寻呼发射机。另外,各种类型的信息将周期地从寻呼发射机发送给寻呼终端。在大型寻呼系统中,时常会在两个寻呼终端之间传输数据包。
寻呼业的另一个趋势是使各个寻呼业务提供商共享他们的部分寻呼基础结构装置。这种情况下,各个寻呼业务提供商可具有其自己的寻呼终端,并且共享寻呼发射机及寻呼控制器。其它情况下,一个寻呼业务提供商可以简单地“租用”另一个寻呼业务提供商的寻呼系统的广播时间。这通常是在各个寻呼业务提供商具有覆盖分隔的不同地理场所的寻呼系统的情况下进行的。对于各个寻呼业务提供商,为了扩展其地理覆盖范围,各个寻呼业务提供商将租用其它寻呼业务提供商的广播时间。这样,各个寻呼业务提供商的寻呼终端必须能够有效地和其它寻呼业务提供商的寻呼终端通信。
现有技术中,使用寻呼业中称作“IP”(网间协议)数据报网络在寻呼基础结构装置之间进行数据通信。由于IP协议组的广泛使用,这样就允许使用标准的数据通信装置。
但是,这样也会带来较大的安全问题。在某些类型的寻呼系统中,为了通过电子邮件或全球网接受寻呼消息,寻呼系统和因特网相连。恶意的用户可向寻呼系统中注入错误的IP数据消息。
即使寻呼系统不和因特网相连,如果诱导的话,恶意的用户仍能向寻呼系统输入能模拟寻呼基础结构装置之间的正常许可数据通信业务量的错误lP数据消息,从而导致意想不到的结果。
为此,本发明提供一种确认寻呼系统的部件之间传输的数据包的方法。寻呼系统包括至少一个发射部件及一个接收部件。首先,由发射部件抽取数据包的预定部分用于散列。接着,对数据包的该预定部分执行新型的散列法以产生一个发射散列码。将该散列码插入数据包中,并将该数据包发射给接收部件。在接收部件,抽取数据包的相同预定部分,并用同样的散列法对其散列。接收部件产生一个接收散列码。把该接收散列码和发射散列码比较,如果该接收散列码和所述发射散列码匹配,则接受该数据包。
结合附图,参考下面的详细说明将易于理解上述各个方面及本发明的多数伴随优点

图1是典型寻呼系统的示意图;图2是说明本发明方法的流程图;图3是根据本发明形成的APDU的示意图;图4是根据本发明形成的发射部件及接收部件的示意图;图5是说明根据本发明的附加确认技术的流程图;图6是本发明使用的最佳散列法的示意图;图7是说明本发明使用的最佳散列法的流程图。
图1表示了包括寻呼站103,寻呼终端105,公用交换电话网络(PSTN)107,寻呼接收机109及寻呼机111的寻呼系统101。尽管图中只表示了两个寻呼终端105,但是本领域的技术人员知道寻呼系统可包括许多寻呼终端。同样,寻呼系统的其它部件的数目也只是说明性的。实际上,可扩展或收缩寻呼系统以满足用户要求。
寻呼站103也被称为基站或寻呼发射机。操作中,想寻呼用户的呼叫者使用PSTN107呼叫用户的寻呼机号码。另一方面,寻呼也可通过直接和寻呼终端相连的计算机网络(例如因特网)产生。另外,寻呼也可由正“租用”寻呼系统101的另一个寻呼终端(图中未表示出)产生。
呼叫从PSTN107被送到发出寻呼的寻呼终端105。寻呼通过通信网络被分发给其它的寻呼终端105及被分发给一组寻呼站103。寻呼站103再在寻呼系统101的地理覆盖区域内传输该寻呼。
寻呼系统101可包括几千个和寻呼终端105相连的固定位置寻呼站103。对于双向寻呼,网络中还可包括接收机109,多数接收机的位置和寻呼站103的位置相同。寻呼系统101中的每个寻呼机111中存储的是单独的寻呼机标识符205,寻呼机标识符205在寻呼机所属的组织中唯一地标识该寻呼机。
寻呼终端之间,实际上寻呼系统中除寻呼机之外的任意两个部件之间的通信借助于应用协议数据单元(APDU)的传递来实现。如前所述,现有技术中,通过不可靠的IP传递APDU,这样会导致故意地或者甚至无意中向寻呼系统中注入错误的APDU。
正如后面将详细说明的一样,本发明的目的在于通过确认每个APDU,从而消除错误APDU的可能性。这样,本发明增强了寻呼系统的可靠性。
参见图2,图中以流程图的形式图解说明了本发明的方法的概述。该方法详述了从寻呼系统的发射部件向寻呼系统的接收部件传输APDU的情况。发射部件及接收部件可以是寻呼终端、接收机、寻呼发射机或发射机控制器。参考图4,图中表示了发射部件401向接收部件403传输APDU300的例子。注意图中以非常概括的形式表示接收部件403及发射部件401,从而根据情况,寻呼系统的任意部件都可是发射部件或接收部件。
接收部件403及发射部件401都包括CPU405及存储器407。正如后面将详述的一样,CPU405进行本发明的方法所需的计算。在最佳实施例中,CPU405是Motorola 68060微处理器,本发明的方法使用编码输出由CPU405执行的“C”可编程语言实现。存储器407用来存储本发明的方法中所需计算的中间及最终计算结果。此外,虽然图中CPU405和存储器407是不同的部件,但是可以容易地将它们结合起来,并且CPU405可使用它自已的内部存储器作为存储器407。另外,CPU405及存储器407可存在于寻呼系统部件中,以执行寻呼部件的其它功能。例如,寻呼终端、发射机控制器及接收机一般都包括几个微处理器,除了微处理器的其它功能外,这些微处理器还可用作为CPU405及存储器407。
参见图2,首先,在方框201,发射部件从APDU中抽取该APDU的预定部分(“抽取部分”)。图3表示了APDU300的示意图。如图所示,APDU300包括几个含有不同类型信息的数据字段。可以理解图中并未表示出APDU300的全部字段,相反,图中只表示了和本发明有关的字段。例如,APDU300一般可包括最终指定给图中未表示出的寻呼机的数据。APDU300包括目的ID301、发射ID303、消息类型305、消息长度307、消息序列号309、时间及日期标记311、数据313及散列码315。
目的ID301识别计划中的接收部件。发射ID303识别发射部件。消息类型305指示APDU300携带的数据的类型。本领域的技术人员可知该数据可以是寻呼消息、命令、响应、状态报告或其它已知类型的数据。消息长度307指示APDU300的长度。消息序列号309是识别该特定APDU300的号数。时间和日期标记311表示发射部件发送APDU300时的时间和日期。数据313是APDU300的有效负载。最后,后文将更详细说明的、由本发明形成的散列码315起证实代码的作用。
再参考图2,如上所述,在方框201,抽取APDU的预定部分。在最佳实施例中,该预定部分包括APDU的目的标识符、消息类型、消息序列号、长度、以及时间和日期。
在方框203,抽取部分被提供给由发射部件以进行散列,产生发射散列码315。最佳实施例中使用的散列法将在后文详细说明。接下来,在方框205,发射散列码315被附加到APDU300,从而成为APDU300的一部分。在方框207,APDU300(带有发射散列码315)由发射部件传输给寻呼系统中的接收部件。APDU300的传输可以用在寻呼系统中传输APDU的任一已知方法进行。例如包括帧延迟网络、专用陆线及卫星传输。
接下来,在方框209,接收部件接收APDU300,并抽取恰好和发射部件抽取的APDU300的预定部分相同的预定部分。这样,发射部件及接收部件都知道应抽取APDU300的哪一部分。然后,在方框211,接收部件对抽取部分执行和发射部件进行的同样的散列处理。接收部件执行的散列法的输出是接收散列码。
随后,在方框213,把接收部件产生的接收散列码和APDU300中包括的发射散列码315比较。最后,在方框215,如果接收散列码和APDU300中包括的发射散列码315相同,则接收部件认为APDU300真实可靠而接受它。但是,如果接收散列码和APDU300中包括的发射散列码315不同,则接收部件认为APDU300错误而丢弃它。
图2图解说明了确认APDU300的“基本”方法。在本发明的最佳实施例中,还包括了确保接收的APDU真实可靠的其它技术。这些“补充”证实技术以图2中的插入步骤的形式表示在图5中。这样,在图2的方框215之后,可执行方框501-507的操作。
首先参见方框501,最初的附加确认检查中,接收部件403检查目的ID301,以确定目的ID301是否和接收部件403的目的ID匹配。通常在寻呼系统中,寻呼业务提供商为寻呼系统的每个部件分配一个识别码。如果APDU的目的ID301和接收部件403的目的ID不匹配,则丢弃该APDU300。
接下来在方框503,接收部件403还保持在过去的预定时间段(如过去的24小时)内已接收或可能接收的APDU300的消息序列号309的范围的记录。如果接收的APDU300的消息序列号309落在先前在过去24小时内接收的消息序列号309的范围内,则假定该APDU300为复件,并丢弃该APDU300。
随后,在方框505,检查消息长度307,并将其和APDU300的实际长度比较。如果消息长度307和APDU300的实际长度不符合,则丢弃APDU300。
此外,在方框507,最佳实施例中的另一种确认技术是校验时间和日期标记311。具体地,如果APDU300的时间和日期标记311和接收部件403保持的实际时间和日期的差值大于预定时间值(例如1分钟),则丢弃APDU300。
最后,在方框509,后面将详细说明的散列法的输入不仅包括从APDU300中抽取的抽取部分,还包括一个口令(例如一个64位字)。该口令并不直接包括在APDU300中,而是对包括在APDU300中的散列码315具有确定作用。该选择方案中,发射部件401及接收部件403都必须具有口令的副本。接收部件403还对口令及APDU300的抽取部分进行散列处理。
下面参考图6,图中示意地表示了在发射部件401及接收部件403中,由CPU405执行的散列法。考虑到几种情况,最佳实施例中使用的特定散列法作了改进。首先,散列法必须是确定的,即散列法对任意给定输入必须产生相同的输出。其次,散列法在计算上必须开销不多,换句话说,执行散列法对CPU资源的需求不应无节制。最后,为了反转散列法,散列法在计算上必须开销很大。所谓反转散列法指的是APDU300的抽取部分的确定将根据散列码315确定。在抽取部分中包括口令(如图5所示)的情况下,通过检查一个或多个传输的APDU确定该口令在计算上必定开销极大。本发明的散列法满足上述这些要求。
散列法需要384位的输入(抽取部分),并提供长度为64位的散列码315。散列法的输入及输出的散列码315都被分组成32位字。这样,散列法的输入为12个32位字,而散列码315则为2个32位字。
参考图6,散列法601由三个部分组成展开法603、压缩法605及组合法607。展开法603对输入数据609的12个32位字起作用,并且通过“异-或”操作组合一组指定的输入字609产生各个展开字,从而产生展开数据611的72个32位字。
压缩法605对展开数据611的72个32位字起作用,并且产生压缩数据613的5个32位字。这是通过下述步骤实现的首先把存储器的5个字初始化为规定值,随后对每个展开数据字进行短序列操作,该操作把展开数据字和存储器的5个字的内容组合起来,从而修改存储器的5个字的内容。在所有72个展开数据字都已被处理后,存储器的5个字的内容成为压缩数据613。
组合法607对压缩数据613的5个字起作用,并通过对压缩数据字进行加权求和,模232,产生输出数据615的2个32位字。
在开始说明散列法的详细情况之前,给出各种二进制操作及在此使用的符号的定义是有益的。在这些定义中,A和B都是32位字。
A=B 32位值B被赋给名为A的32位存储区。
A+B使用无符号运算,模232,把32位值B加到32位值A中产生32位结果。
A-B使用无符号运算,模232,从32位值A中减去32位值B,以产生32位结果。应注意“A-B”等同于“A+~B+1”,备选实施例可使用这一事实。
A*B使用无符号运算,模232,把32位值A乘以32位值B以产生32位结果。
~A对32位值A逐位进行逻辑非操作,以产生32位结果;即,各个为1的位在结果中为0,而各个为0的位在结果中为1。应注意“~A”等同于“~0-A”(其中“~0”是-1的值,或者是所有位均为1),备选实施例可使用这一事实。
A&B把32位值A和32位值B逐位进行“与”运算,以产生32位结果;即检验A和B,如果A和B的最低位均为1,则所得结果的最低位为1。以相同的方式处理A和B的其它31位,以产生所得结果的其它31位。应注意“A&B”等同于“~(~A |~B)”,备选实施例可使用这一事实。
A | B 32位值A和32位值B逐位进行“或”运算,从而产生32位结果;即检验A和B,如果A和B任一的最低位为1,则所得结果的最低位为1。以相同的方式处理A和B的其它31位,以产生所得结果的其它31位。应注意“A | B”等同于“~(~A&~B)”,备选实施例可使用这一事实。
A^B 32位值A和32位值B逐位进行“异-或”运算,从而产生32位结果;即检验A和B,如果A的最低位不同于B的最低位,则所得结果的最低位为1。以相同的方式处理A和B的其它31位,以产生所得结果的其它31位。应注意“A^B”等同于“(A&~B)|(~A&B)”,也等同于“~((~A|B)&(A|~B))”,备选实施例可使用这些事实。
A<<B 32位值A左移B位以产生一个32位结果;即所得结果的最低B位为0,A的最高B位被丢弃,A的剩余位成为所得结果的最高位。应注意到“A<<B”等同于“A*2B”,备选实施例可使用这一事实。另外,“A<<1”等同于“A+A”,备选实施例可执行这一操作B次以得到相同的结果。
A>>B 32位值A右移B位以产生一个32位结果;即所得结果的最高B位为0,A的最低B位被丢弃,A的剩余位成为所得结果的最低位。应注意到“A>>B”在丢弃任意分数的情况下等同于A除以2B,备选实施例可使用这一事实。另外,“A>>1”在丢弃任意分数的情况下等同于用2除A,备选实施例可执行这一操作B次来得到相同的结果。
应注意到“(A<<B)+(A>>(32-B))”或“(A<<B)|(A>>(32-B))”或“(A<<B)^(A>>(32-B))”都等同于把A向左循环移动B位;即,置换A的位,使得A的最高B位成为结果的最低位,而A的剩余位成为结果的最高位。一些备选实施例,特别是那些使用硬件逻辑,而不是软件逻辑的实施例可使用该等效性来获得相同的结果。
本领域的技术人员知道许多其它的二进制运算及布尔逻辑定理可用来产生稍微不同于最佳实施例的备选实施例,并得到完全相同的数值结果。
在完成基本操作定义后,下面对散列法进行说明。散列法的输入是一个12个32位字的阵列。为了便于说明,将这12个字命名为in
到in[11]。输出散列码315是在此称为out
和out[1]的两个32位字。
72个32位字的存储器的展开阵列被表示为ex
到ex[71]。另外,CPU405的6个处理器寄存器用于存储表示为r0、r1、r2、r3、r4及rx的6个字。
参见图7,散列法的流程图表示了该方法的各个步骤。展开法包括两步。在方框701,散列法的第一步把输入(抽取部分)复制到展开阵列的最初12个字中;即,在i设定为0、1、2……11的情况下,重复下面的操作ex[i]=in[i]Eq.(1)在方框703,该方法的下一步在i设定为12、13、14……71的情况下,通过重复下面的操作填充展开阵列的剩余部分ex[i]=ex[i-3]^ex[i-5]^ex[i-6]^ex[i-12]Eq.(2)等式(2)是线性可解析的。这样,作为备选实施例,展开阵列中的各个字可如下直接从输入阵列中计算得到ex
=in
ex[1]=in[1]ex[2]=in[2]ex[3]=in[3]ex[4]=in[4]ex[5]=in[5]ex[6]=in[6]ex[7]=in[7]ex[8]=in[8]ex[9]=in[9]ex[10]=in[10]ex[11]=in[11]ex[12]=in
^in[6]^in[7]^in[9]ex[13]=in[1]^in[7]^in[8]^in[10]ex[14]=in[2]^in[8]^in[9]^in[11]ex[15]=in
^in[3]^in[6]^in[7]^in[10]ex[16]=in[1]^in[4]^in[7]^in[8]^in[11]ex[17]=in
^in[2]^in[5]^in[6]^ini7]^in[8]ex[18]=in[1]^in[3]^in[6]^in[7]^in[8]^in[9]ex[19]=in[2]^in[4]^in[7]^in[8]^in[9]^in[10]ex[20]=in[3]^in[5]^in[8]^in[9]^in[10]^in[11]ex[21]=in
^in[4]^in[7]^in[10]^in[11]ex[22]=in
^in[1]^in[5]^in[6]^in[7]^in[8]^in[9]^in[11]ex[23]=in
^in[1]^in[2]^in[8]^in[10]ex[24]=in[1]^in[2]^in[3]^in[9]^in[11]ex[25]=in
^in[2]^in[3]^in[4]^in[6]^in[7]^in[9]^in[10]ex[26]=in[1]^in[3]^in[4]^in[5]^in[7]^in[8]^in[10]^in[11]ex[27]=in
^in[2]^in[4]^in[5]^in[7]^in[8]^in[11]ex[28]=in
^in[1]^in[3]^in[5]^in[7]^in[8]
ex[29]=in[1]^in[2]^in[4]^in[6]^in[8]^in[9]ex[30]=in[2]^in[3]^in[5]^in[7]^in[9]^in[10]ex[31]=in[3]^in[4]^in[6]^in[8]^in[10]^in[11]ex[32]=in
^in[4]^in[5]^in[6]^in[11]ex[33]=in
^in[1]^in[5]^in[9]ex[34]=in[1]^in[2]^in[6]^in[10]ex[35]=in[2]^in[3]^in[7]^in[11]ex[36]=in
^in[3]^in[4]^in[6]^in[7]^in[8]^in[9]ex[37]=in[1]^in[4]^in[5]^in[7]^in98]^in[9]^in[10]ex[38]=in[2]^in[5]^in[6]^in[8]^in[9]^in[10]^in[11]ex[39]=in
^in[3]^in[10]^in[11]ex[40]=in
^in[1]^in[4]^in[6]^in[7]^in[9]^in[11]ex[41]=in
^in[1]^in[2]^in[5]^in[6]^in[8]^in[9]^in[10]ex[42]=in[1]^in[2]^in[3]^in[6]^in[7]^in[9]^in[10]^in[11]ex[43]=in
^in[2]^in[3]^in[4]^in[6]^in[8]^in[9]^in[10]^in[11]ex[44]=in
^in[1]^in[3]^in[4]^in[5]^in[6]^in[10]^in[11]ex[45]=in
^in[1]^in[2]^in[4]^in[5]^in[9]^in911]ex[46]=in
^in[1]^in[2]^in[3]^in[5]^in[7]^in[9]^in[10]ex[47]=in[1]^in[2]^in[3]^in[4]^in[6]^in[8]^in[10]^in[11]ex[48]=in
^in[2]^in[3]^in[4]^in[5]^in[6]^in[11]ex[49]=in
^in[1]^in[3]^in[4]^in[5]^in[9]ex[50]=in[1]^in[2]^in[4]^in[5]^in[6]^in[10]ex[51]=in[2]^in[3]^in[5]^in[6]^in[7]^in[11]ex[52]=in
^in[3]^in[4]^in[8]^in[9]ex[53]=in[1]^in[4]^in[5]^in[9]^in[10]ex[54]=in[2]^in[5]^in[6]^in[10]^in[11]ex[55]=in
^in[3]^in[9]^in[11]ex[56]=in
^in[1]^in[4]^in[6]^in[7]^in[9]^in[10]ex[57]=in[1]^in[2]^in[5]^in[7]^in[8]^in[10]^in[11]ex[58]=in
^in[2]^in[3]^in[7]^in[8]^in[11]
ex[59]=in
^in[1]^in[3]^in[4]^in[6]^in[7]^in[8]ex[60]=in[1]^in[2]^in[4]^in[5]^in[7]^in[8]^in[9]ex[61]=in[2]^in[3]^in[5]^in[6]^in[8]^in[9]^in[10]ex[62]=in[3]^in[4]^in[6]^in[7]^in[9]^in[10]^in[11]ex[63]=in
^in[4]^in[5]^in[6]^in[8]^in[9]^in[10]^in[11]ex[64]=in
^in[1]^in[5]^in[10]^in[11]ex[65]=in
^in[1]^in[2]^in[7]^in[9]^in[11]ex[66]=in
^in[1]^in[2]^in[3]^in[6]^in[7]^in[8]^in[9]^in[10]ex[67]=in[1]^in[2]^in[3]^in[4]^in[7]^in[8]^in[9]^in[10]^in[11]ex[68]=in
^in[2]^in[3]^in[4]^in[5]^in[6]^in[7]^in[8]^in[10]^in[11]ex[69]=in
^in[1]^in[3]^in[4]^in[5]^in[8]^in[11]ex[70]=in
^in[1]^in[2]^in[4]^in[5]^in[7]ex[71]=in[1]^in[2]^in[3]^in[5]^in[6]^in[8]压缩法605的第一步骤是在方框705初始化存储器(最佳实施例中为处理器寄存器)的5个字r0=3822118087r1=4206368529r2=2636563960r3=1419098426r4=742554211在方框707,压缩法605在i设定为0、1、2……17的情况下,通过重复下面的操作处理展开阵列的最初18个字rx=ex[i]-r0+((r1&r2)|(r1&r3)|(r2&r3))+(r4<<11)+(r4>>21)+2049053871r0=r1r1=r2r2=(r3<<27)+(r3>>5)r3=r4r4=rx接着,在方框709,压缩法605在i设定为18、19、20……35的情况下,通过重复下面的操作处理展开阵列的第二批18个字
rx=ex[i]-r0+((r1&r2)|(~r1&r3))+(r4<<11)+(r4>>21)+909867182r0=r1r1=r2r2=(r3<<27)+(r3>>5)r3=r4r4=rx然后,在方框711,压缩法605在i设定为36、37、38……53的情况下,通过重复下面的操作处理展开阵列的第三批18个字rx=ex[i]-r0+((r1&r2&r3)|~(r1|(r2&r3)))+(r4<<11)+(r4>>21)+2073245137r0=r1r1=r2r2=(r3<<27)+(r3>>5)r3=r4r4=rx最后,在方框713,压缩法605在i设定为54、55、56……71的情况下,通过重复下面的操作处理展开阵列的最后18个字rx=ex[i]-r0+((r1&(r2^r3))|-(r1|r2))+(r4<<11)+(r4>>21)+4157358317r0=r1r1=r2r2=(r3<<27)+(r3>>5)r3=r4r4=rx作为备选实施例,上面说明的“展开”及“压缩”阶段可使用“流水线作业”结合在一起。这样,在需要其作为压缩阶段的输入之前,存储在展开阵列中的各个字不必计算。该备选实施例可减少散列法的存储器需求(因为它可除去展开阵列,并且只需要用于存储组合法产生的最后12个字的存储器)。
最后,在方框715,散列法的组合法607使用下述模数为232的加权求和操作把存储字r0到r4的存储信息组合起来形成两个输出字out
=r0+(r2*2628165923)+(r4*545239213)
out[1]=r1+(r3*68740181)out
和out[1]的组合就是插入APDU300的散列码315。
虽然已图解说明了本发明的最佳实施例,但是可知道在不脱离本发明的精神和范围的情况下,能够作出各种改变。
权利要求
1.一种用于确认在寻呼系统的部件之间传输的数据包的方法,该寻呼系统包括至少一个发射部件及一个接收部件,该方法包括下述步骤(a)抽取用于由发射部件散列的数据包的预定部分;(b)对数据包的所述预定部分执行散列法以产生发射散列码;(c)把所述发射散列码插入该数据包中;(d)把该数据包传输给所述接收部件;(e)抽取用于由接收部件散列的数据包的所述预定部分;(f)对数据包的所述预定部分执行所述散列法以产生接收散列码;(g)比较所述接收散列码和所述发射散列码;及(h)如果所述接收散列码和所述发射散列码匹配,则接受该数据包。
2.按照权利要求1所述的方法,其中所述数据包是包括目的ID、消息序列号、消息长度、及时间和日期标记的应用协议数据单元(APDU)。
3.按照权利要求2所述的方法,其中所述预定部分包括所述目的ID、所述消息序列号、所述消息长度、及所述时间和日期标记。
4.按照权利要求2所述的方法,其中所述接收部件具有接收部件目的ID,所述方法还包括检查所述APDU的目的ID,并且只有当所述APDU的所述目的ID和所述接收部件目的ID匹配时,才接受所述APDU的步骤。
5.按照权利要求2所述的方法,还包括检查所述APDU的所述消息长度,并且只有当所述APDU的所述消息长度和所述APDU的实际长度匹配时,才接受所述APDU的步骤。
6.按照权利要求2所述的方法,还包括使接收部件保持先前在预定时间段内接收的APDU的所述消息序列号有效范围的记录,并丢弃任何消息序列号在所述有效范围之外的新接收APDU的步骤。
7.按照权利要求2所述的方法,其中所述接收部件含有一个时钟,并且所述方法还包括检查所述APDU的时间和日期标记,并且只有当所述APDU的所述时间和日期标记在距离所述时钟指示的时间和日期的预定时间内时,才接受所述APDU的步骤。
8.按照权利要求1所述的方法,其中所述发射部件执行所述散列法的所述步骤是对所述预定部分及一个口令进行的,所述接收部件执行所述散列法的所述步骤是对所述预定部分及所述口令进行的。
9.按照权利要求8所述的方法,其中所述数据包是包括目的ID、消息序列号、消息长度、及时间和日期标记的应用协议数据单元(APDU)。
10.按照权利要求9所述的方法,其中所述预定部分包括所述目的ID、所述消息序列号、所述消息长度、及所述时间和日期标记。
11.按照权利要求9所述的方法,其中所述接收部件具有接收部件目的ID,所述方法还包括检查所述APDU的目的ID,并且只有当所述APDU的所述目的ID和所述接收部件目的ID匹配时,才接受所述APDU的步骤。
12.按照权利要求9所述的方法,还包括检查所述APDU的所述消息长度,并且只有当所述APDU的所述消息长度和所述APDU的实际长度匹配时,才接受所述APDU的步骤。
13.按照权利要求9所述的方法,还包括使接收部件保持先前在预定时间段内接收的APDU的所述消息序列号有效范围的记录,并丢弃任何消息序列号在所述有效范围之外的新接收APDU的步骤。
14.按照权利要求9所述的方法,其中所述接收部件含有一个时钟,并且所述方法还包括检查所述APDU的时间和日期标记,并且只有当所述APDU的所述时间和日期标记在距离所述时钟指示的时间和日期的预定时间内时,才接受所述APDU的步骤。
15.一种用于在寻呼系统的部件之间安全地传输数据包的方法,该寻呼系统包括至少一个发射部件及一个接收部件,该方法包括下述步骤(a)抽取用于由发射部件散列的数据包的预定部分,所述预定部分包括32位的输入字;(b)对数据包的所述预定部分执行散列法以产生发射散列码,所述散列法包括下述步骤(Ⅰ)把所述输入字展开为展开字组,所述展开字组的每个所述字为使用“异-或”操作得到的所述输入字的组合;(Ⅱ)初始化一组存储字;(Ⅲ)通过对所述展开字组的所述字及所述一组存储字进行预定的一组二进制操作,修改所述一组存储字;(Ⅳ)使用加权求和把所述一组存储字组合到所述发射散列码中;(c)把所述发射散列码插入该数据包中;(d)把该数据包传输给所述接收部件;(e)抽取用于由接收部件散列的数据包的所述预定部分;(f)对数据包的所述预定部分执行所述散列法以产生接收散列码;(g)比较所述接收散列码和所述发射散列码;及(h)如果所述接收散列码和所述发射散列码匹配,则接受该数据包。
16.按照权利要求15所述的方法,其中所述输入字是12个32位字,所述展开组是72个32位字,所述一组存储字包括5个32位字。
17.一种包括至少一个寻呼终端及多个寻呼发射机的寻呼系统,所述寻呼终端或所述寻呼发射机称为部件,所述寻呼系统在发射部件和接收部件之间传递数据包,(a)所述发射部件包括(Ⅰ)抽取用于由所述发射部件散列的数据包的预定部分的装置;(Ⅱ)对数据包的所述预定部分执行散列法以产生发射散列码的装置;(Ⅲ)把所述发射散列码插入该数据包中的装置;(Ⅳ)把该数据包传输给所述接收部件的装置;(b)所述接收部件包括(Ⅰ)抽取用于由接收部件散列的数据包的所述预定部分的装置;(Ⅱ)对数据包的所述预定部分执行所述散列法以产生接收散列码的装置;(Ⅲ)比较所述接收散列码和所述发射散列码的装置;(Ⅳ)如果所述接收散列码和所述发射散列码匹配,则接受该数据包的装置。
全文摘要
本发明公开了一种确认寻呼系统的发射部件和接收部件之间的通信的方法。发射部件通过选取用于散列的APDU预定部分,从而准备用于传输的应用协议数据单元(APDU)(201、203)。散列法输出一个散列码,该散列码包括在该APDU中(205)。接收部件接收用于散列的同样的APDU预定部分(209、211)。随后接收部件把APDU中的散列码和接收部件计算得到的散列码相比较(213)。如果散列码匹配,则认为APDU真实可靠,而接受该APDU(215)。如果散列码不匹配,则拒绝该APDU。
文档编号H04W12/00GK1214779SQ97192892
公开日1999年4月21日 申请日期1997年3月7日 优先权日1996年3月8日
发明者格伦·S·福西特 申请人:格莱纳瑞电子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1