用来产生消息鉴别码的方法和设备的制作方法

文档序号:2394961阅读:216来源:国知局
专利名称:用来产生消息鉴别码的方法和设备的制作方法
背景技术
I.发明领域本发明总的说来涉及通信领域,更具体地说,涉及消息鉴别码的产生。
II.背景消息鉴别码(MAC)是一密码导出项,该密码导出项可附加到某消息以验证该消息源自某方且示被任一其他方改动。这代表了MAC用于电信的许多领域中的原因。一个示例的领域是无线通信。
无线通信领域有许多应用,包括,例如,无绳电话,寻呼,无线本地环路,诸如个人数字助理(PDA)的无线数据应用,诸如蜂窝和PCS电话系统的无线电话,移动因特网协议(IP)电话和卫星通信系统。一个特别重要的应用是移动用户的无线电话。
已为无线通信系统开发多种空中接口,包括,例如,频分多址(FDMA),时分多址(TDMA)和码分多址(CDMA)。与此相关,已建立多种国内和国际标准,包括,例如,高级移动电话业务(AMPS),全球移动通信系统(GSM)和过渡性标准95(IS-95)。
一个示例无线电话通信系统是码分多址(CDMA)系统。IS-95标准及其变体IS-95A,ANSI J-STD-008,IS-95B、提议的第三代标准IS-95C和IS-200,提议的专用于数据的高数据速率CDMA标准等(这里统称为IS-95)由电信工业协会(TIA)和其他知名的标准组织公布,以规定CDMA空中接口在蜂窝或PCS电话通信系统中的使用。基本上按照IS-95标准的使用而配置的示例无线通信系统在专利号为5,103,459和4,901,307的美国专利中有描述,这些专利已转让给本发明的受让人,在此完全引述作参考。
在一典型通信中,MAC m是用(长度LM的)消息M和只有该消息始发方和接收方知道的共享密钥K作为一函数的输入而计算出的该函数的输出。如果所选的函数安全,那么,能够截取并潜在地修改该发送消息的主动攻击者既不能发现密钥K也不能产生有适当概率被接收方接受作为有效消息的消息。如果MAC的长Lm(位),则攻击者总是会简单地猜出所需消息的m的一个值,猜中的概率1/2Lm。因此,对MAC安全性的任一保证实质上是概率。不管是有意还是随机引入,MAC一般提供不了比这种概率更好的对检测差错的保证。特别是,消息中的一单个位差错一般与任一其他替换有同样的机会匹配附加在该消上的MAC。尽管这种概率小,仍然意义重大。
循环冗余码校(CRC)是公知的检错与纠错码(ECC)的一个例子。在数据发送可能被讹误的许多应用中及当希望接收机能检测最常见的讹误并加以纠正时使用ECC。CRC对计算是有效的并具有有用的差错检测特性。如果接收的消息M在任何小数目的位中有差错,CRC将保证检测已出差错并实际上指示(假定差错尽可能小)哪些位出错。这使纠错能够进行。CRC是通过认为该消息的这些位是一多项式的系数并在该多项式除以度为L的多项式P时计算余数而计算的。仔细选择多项式P给出所需的检错和纠错特性。尽管CRC用于检测发送期间引起的随机差错的类型是好的,它们在防止任一种类的主动攻击没有用处,因为攻击者能容易地计算对消息的任一修改的CRC的影响。攻击者亦可相应地修改CRC。即使有秘密信息合并在CRC的计算中但不与该消息一起发送,这一点仍是真的。
需要提供一种组合的MAC/CRC,即一个代码,该代码包括通过消息与其MAC的失配将检测已经通过CRC检测的小的随机差错的保证。该代码还会有益的是,同时保证不知道秘密信息K的主动攻击者将不能发现K或“伪造”消息,概率优于1/(2k-1)。(应注意的是,正如本领域中专业人员所知的,概率值中额外“-1”源自以下事实攻击者知道,在此情况下,原始MAC将不用于与攻击者正在修改的消息大部分相同的消息,所以攻击者反而将随机地选择其他可能的MAC之一)。因此,需要一种产生具有保证的讹误检测特性的MAC的方法。
发明概要本发明针对一种产生具有保证的讹误检测特性的MAC的方法。相应地,在本发明的一方面中,一种有益地产生消息鉴别码的方法包括以下步骤以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中;产生包含第二批多个位的循环冗余码校验的第三批多个位;及发送第一批多个消息位和包含第三批多个位的消息鉴别码。
在本发明的另一方面中,配置成有益地产生一消息鉴别码的发生器,包括以下装置用来以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中的装置;用来产生包含第二批多个位的循环冗余码校码的第三批多个位的装置;及用来发送第一批多个消息位和包含第三批多个位的消息鉴别码的装置。
在本发明的另一方面中,配置成有益地产生一消息鉴别码的发生器,包括配置成以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中的处理器,耦合到该分配器并配置成产生包含第二批多个位的循环冗余码校验的第三批多个位的发生器,及耦合到该发生器并配置成发送第一批多个消息位和包含第三批多个位的消息鉴别码的发射器。
在本发明的一实施例中,一种有益地伪随机地分配消息的位的方法,包括以下步骤计算多项式xi的剩余模数P,这里i是一个预定的消息位的位置而P是一个循环冗余码校码多项式;及对消息的等于1的每个消息位,逐位地执行CRC位和计算出的余数的“异或”运算。
附图简述

图1是蜂窝电话系统的方框图。
图2是用来产生消息及相关的消息鉴别码(MAC)的处理器和相关的存储元件的方框图。
图3是用来产生消息和相关的MAC的发生器的方框图。
图4是可用于图3的发生器中以使用一种键控伪随机数(PRN)消息位分配技术的寄存器的原理图。
图5是可用于图3的发生器中的循环冗余码校验(CRC)发生器的原理图。
图6是流程图,说明由诸如图3的发生器之类的发生器执行的方法步骤,产生消息的MAC。
图7是流程图,说明由诸如图3的发生器之类的发生器执行的方法步骤,产生消息的MAC。
较佳实施例详述这里在下面描述的示例实施存在于配置成使用CDMA空中接口的无线电话通信系统中。然而,本领域中的熟练人士明白,具体体现发明的特点的MAC产生方法和设备可存在于使用本领域中熟练人员所知的宽范围的技术的多种通信系统中的任一种。
如图1所示,CDMA无线电话系统通常包括一批移动用户单元10。一批基站12,基站控制器(BSC)14及一个移动交换中心(MSC)16。MSC16置成与普通公共交换电话网(PSTN)18相接。MSC16还配置成与BSC14相接。BSC14通过日程线路耦合到基站12。回程线路可配置成支持几个知名的接口,包括,例如,E1/T1,ATM,IP,PPP帧中继,HDSL,ADSL或XDSL中的任何一个。可以理解的是,系统中可有不止两个BSC14。每个基站12有益地包括至少一扇区(未示出),每一扇区包含一全向天线或一指向为经向离开基站12的某方向的天线。或者,每一扇区可包含用于分集接收的两个天线。每个基站12可有益地设计成支持一批频率指配。一扇区与一频率指配的相交区可称为一CDMA信道。基站12亦可称为基站收发机子系统(BTS)12。或者,业界可用“基站”统称BSC14与一个或更多BTS12。BTS12亦可概指“小区站点”12。或者一给定BTS12的单个扇区亦称为小区站点。移动用户单元10典型地是蜂窝或PCS电话机10。系统有益地配置成用于IS-95标准。
在蜂窝电话系统的典型运行期间,基站12接收来自移动单元10组的一组组反向链路信号。移动单元10在进行电话呼叫或其他通信。由一给定基站12接收的每个反向链路信号在该基站12内处理。结果数据提交给BSC14。BSC14提供呼叫资源分配和移动性管理功能,包括基站12间软切换的协调的结合。BSC14还向MSC16发送接收的数据,MAC16提供另外的路由选择业务经和PSTN18相接。类似地,PSTN18与MAC16相接,MAC16与BSC14相接,它们依次控制基站12向移动单元10组发送前向链路信号组。
按照一实施例,如图2所示,用来产生包括MAC的消息的机构100包括一处理器102,一软件模块104及一存储媒介106。处理器102有益地是一微处理器或诸如数字信号处理(DSP)的一专用处理器,但可以选择地是处理器,控制器,微控制器或状态机的任一普通形式。处理器102耦合到软件模块104,软件模块104有益地实施为容纳指导处理器102的运行的软件指令的RAM存储器。软件指令可包含一软件程序或一组微码。RAM存储器104可以是板上RAM,或者处理器102和RAM存储器104可驻留于ASIC中。在一可选实施例中,固件指令替代软件模块104。存储媒介106耦合到处理器102,并有益地实施为RAM存储器与诸如ROM存储器的任一形式的普通非易失存储器的组合。如下所述,存储媒介106用来实施一线性反馈移位寄存器(LFSR)以产生MAC,并存储预先计算的表和指令。例如,指令和表存储于ROM存储器组件中而寄存器存储于RAM存储器组件中。可选地。存储媒介106可实施为一磁盘存储器或一可由处理器102访问的闪存。可选地,存储媒介106可实施为寄存器。机构100可驻留于诸如移动用户单元10的任一普通通信装置或图1的CDMA无线电话系统中的基站12中。
如图3所示,在一实施例中,用来产生消息和相关的MAC的发生器200包括键控伪随机数(PRN)分配器202,循环冗余码校码(CRC)发生器204,调制器206及发射机208。消息M的消息位提供给键控PRM分配器202。如下所详述,键控PRN分配器202伪随机地以一种依赖密钥的方式把这些消息位分配到位序列中。包括被分配的消息位的位序列提供给CRC发生器204。CRC发生器204按照本领域中的熟练人士所知的任一普通CRC计算方法计算包括被分配的位的位序列的CRC。
CRC发生器204产生CRC位,CRC位将用作这些消息位的MAC。MAC位和消息位提供给调制器206。调制器206调制接收的位以在一通信信道上发送。调制方案随通信系统和正在使用的通信信道的类型而异。在一实施例中,调制方案是CDMA方案且通信系统是图1的无线电话系统。调制器206向发射机208提供调制的消息和MAC信号。发射机在通信信道上发送该调制的消息和MAC信号。
按照参考图3所描述的实施例,计算较大“消息”(位序列)的CRC并作为MAC发送,其中原始消息,M,的各个位已经以一种不有被攻击者预测的,依赖密钥的方式得到分配。这样,小的随机差错可由通常的CRC机制检测与纠正,而主动攻击(即,对一不然则合法的消息的有意修改)只有有限的成功概率。
有益地,通过较大消息分配原始消息M的位的方法随消息而异。分配方法中的变异阻止攻击者收集消息从而逐渐提高成功攻击的概率。因为MAC必须保证检测小差错,如果发送两类似的消息(根据定义有不同的MAC),则与这两个类似的消息相似但不同的另一消息的MAC也必须是不同的。以便攻击者只能从2L-2个可能的MAC等中随机地选择。有益地,表示为“盐”S的信息用来把诸如发送消息的时刻的特定消息的相关信息或序列号与分配消息位的方式联系起来。这类似以下事实,流密码应决不产生两不同消息或单个消息的两个不同段的输出的相同流。
相应地,必须以一种攻击者不可预测的且无助于攻击者发现关于共享密钥K的信息的方式把来自原始消息M的位分配到较大“消息”中。这样,按照参考图3所描述的实施例,产生均匀分配的PRN以在较大消息内控制消息位的分配。均匀分配的PRN有益地以一种攻击者不可预测的方式从共用密钥K和盐S导出。
在一示例实施例中,称为SDBER的流密码的输出用作PRN的源,SOBER流密码在1999年2月8日送交的申请号为09/246366,标题为用来产生加密流密码的方法和设备的美国申请中描述。该申请已转让给本发明的受让者。流密码是伪随机产生的位流,对这些位流逐位地用要发送的消息的各个位进行“异或”运算(XDR)从而产生一加密的消息,接收该加密的消息时,用同一流密码对其进行“异或”运算,以产生原始消息。在可选实施例中,其他形式的PRN发生器可替代该流密码。特别是,提供的安全性较流密码为小的PRN发生器可用来代替该流密码。
在一实施例中,如图4所示,消息M300的位是在一键控PRN发生器(未示出)的控制下分配的,方法是在较大消息302中以某一偏置开始并顺序安置位,在两个位之间跳过该较大消息302中的不可预测的数目的位置。当,或者如果遇到该较大消息302的端头,分配位置重新开始于该较大消息302的开头。有益地确定该较大消息302的位之间跳过的位置的最大数目,使得分配位置不完全绕回,即,使得不抵达或经过该较大消息302中的起始位置。这保证消息M300中没有两个位分配给该较大消息302中的同一位置,假如两个位分配给该较大消息302中的同一位置,这两个位的同时变化将相互抵消且不被检测到,从而实现不了目标。考虑到最坏的情况,其中,被分配的位之间的每一间隙是最大长度,必须限制最大差距长度。然而平均间隙长度仅为最大差距长度的一半。因此,平均地,消息位只分配在该较大消息的一半内。这种分配技术有益地提供富足的安全性和实施的相对轻松。
在另一实施例中,消息位300是这样分配的把该较大消息302分成大小近乎相等的块中,以一随机偏置开始并绕回,以随机位置把一个位放在每个块内。这种分配技术有这样一个理想的特性这些位在整个该较大消息中得到好的分配。
该较大消息302的位提供给CRC发生器304,CRC发生器304计算接收的位的CRC。CRC位306用作消息M 300的MAC 306。应指出的是,如结合下面参考图6所描述的其他实施例所示,不必实际产生较大消息302以取得所需的效果。
在一示例实施例中,CRC/MAC的长Lm是16位。对其应用差错检测保证的最大消息是包括CRC自身的216位。(假如(1-x)乘以原始多项式用作CRC的发生器,最大的消息长度将是215-1位)。输入消息M300的长度Lm有益地保持为远比215-16位小。按照上述的第二个实施例,如果较大消息302分为大致相等大小的块,输入消息M 300的长度Lm有益地限于比215-16位的一半小。按照上述第一实施例,如果位位置在较大消息302内跳过,输入消息M300的长度Lm有益地限于比215-16位的四分之一小。
在安置了消息M300的第一个位后,剩余的Lm-1位被置于剩余的215-17个位置中,如果输入消息M的长度Lm是1520位,最大分配间隔或块的大小,将是比32751/1519小的最大整数或21位。然而,PRN发生器可视为产生一位流。相应地,使用2的幂的一个数目而不使用21位有益地可以更有效。如果2的幂用作最大分配间隔或块大小。0至15的范围内的随机数目可通过从PRN发生器取输出的4个位产生。这些随机数接着有益地调整为在5至20的范围内。本领域中的熟练人士的应当理解,位之间的平均间隔或块的大小必须至少为2。因此,间隔或块大小的最优值是2的幂在22和24之间。消息M 300的每个位的安置因而需要PRN输出的两至四个位。
如下所述,即使位的位置中的不确定性受限于接受较少的PRN发生器输出,把这些位扩展得更开可以是有益的。不管是固定的还是可变,最小扩展尺寸或最小块尺寸都可使用。
在另一实施例中,通过使用诸如块密码的键控置换功能而分配消息位,以从原始位位置导出新的位位置。在某实施例中,结合较大消息302中的随机偏置位置命名用块大小为14位的块密码。应注意的是,对每个消息使用一不同的置换的需要要求该块密码对每个消息300使用一不同的密钥。尽管这在理论上是可能的,实践中效率是低的。
在一实施例中,如图5所,CRC发生器400实施为寄存器,该寄存器包括16个一位存储元件402a-g(为了简化,图中只有存储元件402示出),三个模数-2加法器404,406,408及三个开关410,412,414。在一可选实施例中,如上面参考图2所描述,CRC发生器用运行一组软件指令并访问查阅表(LUT)的微处理器实施,该组软件指令有益地包含在RAM存储器中,而查阅表有益地包含在ROM存储器或闪存中。
在CRC发生器400中,输入消息位提供给转换410,开关410或者设置为接收这些输入消息位或者设置为接收1的数字值。开关412或者设置为接收0的数字值或者设置为接收来自模数-2加法器408的一个值。开关414或者设置为接收来自开关410的一个值或者设置为接收来自开关412和模数-2加法器408的一个值,从开关414取输出CRC。模数-2加法器404位于第五个一位存储元件402c与第六个一位存储元件402d之间。模数-2加法器406位于第十二个一位存储元件402e与第十三个一位存储元件402f之间。模数-2加法器408位于第十六个一位存储元件402h后且配置成接收来自开关410的一个值。CRC的发生器多项式g(x)等于x16+x12+x5+1,由模数-2加法器404,406,408的布局限定。
在运行中,开关410,412,414起初设置在“上”位置(如附图所示)。寄存器定时k次,这里k定义为输入消息加8位的长度。寄存器是一个移位寄存器,这样随着每个时钟周期这些位各自向右移动一个存储元件(如附图所示)。开关410,412,414接着设置为“下”位置(如附图所示)。寄存器接着定时附加十六次。十六个附加的输出位包含该消息的CRC字段,以这些位出现在CRC发生器400的输出上的顺序发送这些位。
输入消息位构成“较大消息”,该较大消息的CRC字段用作消息M的MAC。然后有益地该MAC包括CRC的固有安全性利益。因为计算的MAC实际上是CRC,关于应用到CRC的检错和纠错的保证亦应用于MAC,应用于“突发差错”的保证除外。违反突发差错保证是因为连续位在计算期间得到分离因而不再形成“突发”。
基本上有两种针对MAC的攻击。第一种针对MAC的攻击是窃取业务。攻击者在观察其他的有效消息后试图产生具有有效MAC的消息。或者,攻击者试图推演密钥K,允许攻击者随意产生伪造的消息。第二种针对MAC的攻击选择消息。攻击者试图精巧地制作特别的消息并出于某原因设计系统以计算有效MAC,希望恢复密钥K。
希望对有有效MAC的消息仅作一个位的改变的攻击者则需要能够计算对CRC的对应改变;这又要求能够预测该位在扩展消息中的位置。由于只有该位的在2L-1个可能位置下,攻击者所做的只能比猜测MAC稍好。
针对任一种类的MAC的一种可能攻击是所谓的选定明文攻击。在该类型的攻击中,攻击者可以某种方式安排伴随着有效MAC得到所发送的的消息,这样该消息有由该攻击者选择的某内容。例如,攻击者可局接收方发送电子邮件,电子邮件最终通过发送信道传送并具有有效MAC计算并附上,攻击者可制作由单个“1”位随后全部是“0”位构成的消息。通过观测计算的CRC,攻击者能推算起始位置及至PRN发生器的一些输出。这是不利的,因为这可导致一种预测未来输出的方法。相应地,在一实施例中,较大消息的其他一个位设置为1。该其他的一个位被选择在一随机位置上。
攻击者可选地发送包含所有零的消息。观测的CRC给攻击者PRN发生器的输出的Lm个位,PRN发生器须安全得足以防止密钥信息K的恢复,鉴于这种揭示。
如果攻击者试图除预测这些位的起始位置外还对该消息作多位的改变,攻击者亦必须确定这些位的离差。这会使成功的概率小于只对一个位作改变。
还有一种修改攻击可运用。如果攻击者能作出一改变且该改变将扩展到一是CRC多项式的倍数的模式中,对计算的MAC将无影响。这有效地抵消这些位的起始位置的不可预测性。如果使用小数目的流密码位是有利的,选择考虑该具体CRC多项式地扩展这些位是有益的,以使该类型的攻击对多项式的小倍数是不可能的且对多项式的大倍数在统计上是困难的。
在一实施例中,在“较大消息”上执行CRC计算,产生输入消息M的MAC,实际没有产生较大消息。对将要分配在该想象的“较大消息”中的输入消息M的每个位来说,必须计算多项式Xi的余项模数P,i是该较大消息中的消息位的预定位置。因为CRC是线性的,如果该消息的该具体位是一个1,余项计算可用多项式加法,即,“异或”(XOR)运算,加到现有CRC上。全零消息的CRC是零,所以通过把XOR多项式加法技术依法运用到输入消息M中的每个位,还通过只执行Lm计算,可以不产生较大消息地而计算CRC。类似地,具有一个非零位的输入消息的初始种子等同于为计算选择一随机启动CRC。
可以多种方法计算Ximod(模)P,这里i在范围0至32767中(假定Lm是16)。在某实施例中,使用一对查阅表(LUT)。应指出的是,一个给出对应上面的等式中的i的每个可能的值的CRC的LUT便足够,但需求216个16位的表目。相反,i有益地以256hi+lo的形式表达,hi和lo分别是i的高阶8个位和低阶8个位。预计算两个LUT似分别给出CRC计算X256himod P与Xlomod P的结果,这样,用第二个LUT中的对应项执行对第一个LUT中的每个项的“异或”运算等同于计算CRC。相应地,需要两上LUT,每个LUT有256个16位的表目,且输入消息M的每非零位执行两个表查阅以计算CRC。
当通过较大消息分配这些位时,hi的弯化不迅速,这样同一值的重复查阅会相互抵消,在软件实施中注意这一点亦是有益的。hi的每个值是否已用过奇数次才是在最实际起影响作用的。
在一实施例中,按照图6的流程图所示的算法步骤,PRN产生输入消息M的MAC作为一想象的“较大消息”的CRC而无需产生该较大消息。在该实施例中,Lm是16位而Lm是1520位。CRC多项式P是16位的CRC-CCITT多项式P(X)=X16+X12+X5+1。本领域中的熟练人士明白,可容易地计算用来查寻CRC值的具体LUT。记号Rn,这里n是一整数,在下文中用来表示应取PRN发生器(未示出)的输出的下n个位。在该实施例中,使用5位的一固定最小间隔,使用PRN输出的3个位,使均匀分配的位间的间隔为5至12位。变量C表示最终的输出MAC的累加器。变量K表示将置于“较大消息”中的下一位的位置。变量i表示在输入消息M中的位的位置。
在步骤500中,发生器设置C等于R16,这等同于选择一将设置为1的随机位位置。发生器输出的下16个位将形成CRC。发生器然后进行到步骤502。在步骤502中发生器设置K等于R15模数32751,这实际是将要分配的输入消息M的第一个位的位置。发生器然后进行到步骤504。在步骤504中发生器设置i等于零。产生然后进行到步骤506。
在步骤506中,发生器确定位M[i](当前分配的输入消息位)是否设置为1。如果位M[i]未设置为1,发生器进行到步骤508。另一方面,如果位M[i]设置为1,产生器进行到步骤510。在步骤510中,发生器计算XK模数P并按照上述多项式加法技术按位对C和XK模数P执行XOR运算。C的新值设置为等于XOR计算产生的位。发生器然后进行到步骤508。
在步骤508中,发生器计算K、5、R3(发生器输出的下三个位)、模数32751的和。结果设置为等于K,这样K更新为输入消息的下一位将被分配给的位置。这种计算是在分配当前位M[i]后在步骤510中执行的。发生器然后进行到步骤512。在步骤512中发生器对i加1。然后发生器进行到步骤514。在步骤514中发生器确定i是否大于1519。如果i不大于1519,发生器返回步骤506以处理下一输入消息位M[i]。另一方面,如果i大于1519,发生器进行到步骤516。在步骤516中发生器返回C的为输入消息的MAC。
在一可选实施例中,步骤508中执行的计算是计K、10、R4(发生器输出的下4个位)、系65521的和。结果再次设置为等于K。按照该实施例,发生器在步骤502中设置K等于R16模数65521。按照该实施例可以使用的一原始多项式是x16+x14+x12+x7+x6+x5+x2+x+1。
在另一实施例中,PRN发生器按照图7的流程图所示的算法步骤产生输入消息M的MAC作为一想象的“较大消息”的CRC而无需产生该较大消息。在该实施例中,Lm是16位而LM是1520位。CRC多项式P是16位的CRC-CCITT多项式P(x)=x16+x12+x5+1。本领域中的熟练人士明白,可容易地计算用来查寻CRC值的具体LUT。记号Rn,n是一整数,在下文中用来表示应取PRN发生器(未示出)的输出的下n个位。在该实施例中,使用5位的一固定最小间隔,使用PRN输出的3个位,使均匀分配的位间的间隔为5至12位。变量C表示最终的输出MAC的累加器。变量K表示将置于“较大消息”中的下一位的位置。变量i表示在输入消息M中的位的位置。
在步骤600中,发生器设置C等于R16,这等同于选择一将设置为1的随机位位置。发生器输出的下16个位将形成CRC。发生器然后进行到步骤602。在步骤602中发生器设置K等于R15模数32751,这实际是将要分配的输入消息M的第一个位的位置。发生器然后进行到步骤604。在步骤504中发生器设置i等于零。产生然后进行到步骤606。
在步骤606中,发生器确定位M[i](当前分配的输入消息位)是否设置为1。如果位M[i]未设置为1,发生器进行到步骤608。另一方面,如果位M[i]设置为1,产生吕进行到步骤610。在步骤610中,发生器计算XK模数P并按照上述多项式加法技术按位对C和xK模数P执行XOR运算。C的新值设置为等于XOR计算的结果位。发生器然后进行到步骤608。
在步骤608中发生器对i加1。发生器然后进行到步骤612。在步骤612中发生器确定i是否大于1519。如果i不大于1519,发生器进行到步骤614。另一方面,如果i大于1519,发生器进行到步骤616。在步骤616中发生器返回C的值作为输入消息的MAC。在步骤614中发生器计算K、5、R3(发生器输出的下三个位)、模数32751的和。结果设置为等于K。这样K更新为输入消息的下一位被分配的位置。当要分配一新位时执行对该新位位置的这种计算。执行步骤614的计算后,发生器返回步骤606以处理下一输入消息位M[i]。
在一可选实施例中,步骤608中执行的计算是计K、10、R4(发生器输出的下4个位)、系65521的和。结果再次设置为等于K。按照该实施例,发生器在步骤602中设置K等于R16模数65521。按照该实施例可以使用的一原始多项式是x16+x14+x12+x7+x6+x5+x2+x+1。
这样,已描述一种新颖的、用来产生MAC的方法和设备。本领域中的熟练人士明白这里揭示的,结合实施例描述的各种说明性逻辑块和算法步骤可用数字信号处理器(DSP)、专用集成电器(ASIC)离散门或晶体管逻辑、诸如寄存器和FIFO的离散硬件组件、执行一组固件指令的处理器或任一普通的可编程软件模块及一处理器实施或执行。处理器可有益地是微处理器,但或者,处理器可以是任一普通处理器、控制器、微控制器或状态机。软件模块可驻留于RAM存储器、闪存、寄存器或业界所示右的任一其他形式的可写存储媒介中。熟练人士还会认识到在上述整个描述中可参考的数据、指令、命令、信息、信号、位、符号和码头有益地用电压、电流、电磁波、磁场或磁粒子、光场或光粒子或它们的任一组合表示。
这样已示出并描述本发明的较佳实施例。然而,对本领域中有普通技能的人显而易见的是,可不脱离本发明的精神或范围地对这里揭示的实施例作出许多改变。因此,除按照下列权利要求外,本发明是不受限制的。
权利要求
1.一种产生消息鉴别码的方法,其特征在于它包含以下步骤以一种依赖密钥的方式伪随机地把第一组多个消息位分配到第二组多个位中;产生第三组多个位,它包含所述第二组多个位的循环冗余码较验;及发送所述第一组消息位和包含所述第三组多个位的一消息鉴别码。
2.如权利要求1所述的方法,其特征在于,所述产生步骤用微处理器、由该微处理器可访问的查阅表及由该微处理器可执行的一组软件指令执行。
3.如权利要求1所述的方法,其特征在于,所述产生步骤用一移位寄存器执行。
4.如权利要求1所述的方法,其特征在于,所述伪随机地分配步骤包含以下步骤把所述第一组多个位的第一个位置于所述第二组多个位中的一个偏移位位置中;及从所述偏移位位置跳过所述第二组多个位中的不可预测数目的位位置。
5.如权利要求4所述的方法,还包含把所述第一组多个位的下一位放到所述第二组多个位的起始位位置中的步骤。
6.如权利要求4所述的方法,还包含确定在跳过步骤中跳过的位位置的最大数目以致于不抵达或通过第二组多个位的起始位位置的步骤。
7.如权利要求4所述的方法,其特征在于,在跳过步骤中跳过的位位置的数目是2的4至16次幂,包括4和16。
8.如权利要求1所述的方法,其特征在于,伪随机分配步骤包含以下步骤把第二组多个位分成块大小大致均匀的块;及把第一组多个位放在每个块内的随机位位置中,每个块中放入一个位。
9.如权利要求8所述的方法,其特征在于,均匀的块大小是2的4至16(包括4和16)次幂。
10.如权利要求1所述的方法,其特征在于,伪随机分配步骤包含用一键控置换函数从在第二组多个位中的第一组多个位的起始位位置导出新的位位置的步骤。
11.如权利要求1所述的方法,其特征在于,伪随机分配步骤包含以下步骤;计算多项式x1的余项模数P,这里i是在第二组多个位中的一个预期位位置而P是从第三组多个位导出的一循环冗余码校验多项式;及对第一组多个位的等于1的每个位,逐位地执行第三组多个位和计算出的余项的“异或”运算。
12.一种配置成产生一消息鉴别码的发生器,它包含用来以一种依赖密钥的方式伪随机地把第一组消息位分配到第二组多个位中的装置;用来产生包含第二组多个位的循环冗余码较验的第三组多个位的装置;及用来发送第一组消息位和包含第三组多个位的消息鉴别码的装置。
13.如权利要求12所述的发生器,其特征在于,所述产生装置包含一微处理器,可由该微处理器访问的查阅表及可由该微处理器执行的一组软件指令。
14.如权利要求12所述的发生器,其特征在于,所述产生装置包含一移位寄存器。
15.如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含用来把第一组多个位的第一个放到第二组多个位中的一个偏移位位置中的装置;及用来从该偏移位位置跳过第二组多个位中的不可预测的数目的位位置的装置。
16.如权利要求15所述的发生器,还包括用来把第一组多个位的下一位置于第三组多个位的起始位位置中的装置。
17.如权利要求15所述的发生器,还包含用来确定跳过的位位置的最大数目以致于不抵达或通过第二组多个位的初始位位置的装置。
18.如权利要求15所述的发生器,其特征在于,跳过的位位置的数目是2的4至16(包括4和16)次幂。
19.如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含用来把第二组多个位分成块大小大致均匀的块的装置;及用来把第一组多个位放到每个块内的随机位位置中且每个块中置入一个位的装置。
20.如权利要求19所述的发生器,其特征在于,均匀块大小是2的4至16(包括4和16)次幂。
21.如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含用一键控置换函数从在第二组多个位中的第一组多个位的起始位位置导出新的位位置的装置。
22.如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含用来计算多项式xi的余项模数P的装置,这里i是在第二组多个位中的一个预期的位位置而P是从第三组多个位导出的循环冗余码校码多项式;及用来对第一组多个位的等于1的每个位,逐位地执行第三组多个位和计算出的余项的“异或”运算的装置。
23.一种配置成产生消息鉴别码的发生器,其特征在于它包含配置成以一种依赖密钥的方式伪随机地把第一组消息位分配到第二组多个位中的处理器。耦合到该分配器且配置成产生包含第二组多个位的循环冗余码校验的第三组多个位的发生器;及耦合到该发生器且配置成发送第一组消息位和包含第三组多个位的消息鉴别码的发射器。
24.如权利要求23所述的发生器,其特征在于,该发生器包含可由该微处理器访问的查阅表,及存储在存储器元件中并由该微处理器可执行的一组软件指令。
25.如权利要求23所述的发生器,其特征在于,该发生器包含一移位寄存器。
26.如权利要求23所述的发生器,其中处理器还配置成把第一组多个位的第一个位放在第二组多个位中的一个偏移位位置中并从该偏移位位置跳过第二组多个位中的不可预测的数目的位位置。
27.如权利要求26所述的发生器,其特征在于,处理器还配置成把第一组多个位的下一个位置于第二组多个位的起始位位置中。
28.如权利要求23所述的发生器,其特征在于,处理器还配置成把第二组多个位分成块大小大致均匀的块及把第一组多个位放在每个块内的随机位位置中,每个块中置入一个位。
29.如权利要求23所述的发生器,其特征在于,处理器包含一计算器和一多项式加法器,所述计算器配置成计算多项式xi的余项模数P,这里i是在第二组多个位中的一个预期的位位置而P是从第三组多个位导出的循环冗余码检验多项式,而所述多项式加法器配置成对第一组多个位的等于1的每个位逐位地执行第三组多个位和计算出的余项的“异或”运算。
全文摘要
一种用来产生消息鉴别码(MAC)的方法,包括按照伪随机数分配格式把一消息的位分配到一较大消息中的步骤。计算该较大消息的循环冗余码校码(CRC)位并将其用作该消息的MAC。不必产生该较大消息。计算余项模数多项式x
文档编号G09C1/00GK1369157SQ00811485
公开日2002年9月11日 申请日期2000年8月7日 优先权日1999年8月9日
发明者G·G·罗斯, P·E·本德, 小R·F·奎克, J·K·沃尔夫 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1