生成加密校验和的制作方法

文档序号:11935815阅读:313来源:国知局
生成加密校验和的制作方法与工艺

本发明涉及生成加密校验和的方法、相应计算机程序、相应计算机程序产品以及用于生成加密校验和的校验和生成器。



背景技术:

当前第三代(3G)和第四代(4G)第三代合作伙伴计划(3GPP)移动网络通常在控制平面中使用加密以及认证,而仅由加密来保护用户平面。另一方面,WiMAX和无线局域网(WLAN)/WiFi网络也对用户平面使用认证。

保护用户平面消息传送的已知方式是使用认证标签,认证标签是通过对消息应用加密密码散列函数(例如密钥加密散列消息认证码(HMAC)或密码块链接消息认证码(CBC-MAC))而生成的。密码散列函数是针对任意数据块(例如消息)生成密码散列值(也称为消息摘要)的散列函数,使得消息的任何意外或有意改变(即错误或修改)将至少以某一高概率改变散列值。因此,消息摘要可以用于提供对消息的完整性保证。

加密的密码散列函数的问题在于它们是相对消耗资源的,这妨碍了它们在受限设备(即,具有有限计算资源和电池资源的设备,例如机器对机器(M2M)和物联网(IoT)类型设备)中的使用。此外,由于消息摘要而导致的消息长度的增加减小了所发送数据的有效载荷部分,并增加了功耗。

可以通过使用循环冗余校验(CRC)码来实现某种等级的随机错误保护。CRC码是一种类型的可分离循环码,其资源效率非常高并广泛用于数据通信和数据存储中,以检测突发错误。可以使用线性反馈移位寄存器(LFSR)有效地实现CRC处理。常见的CRC有(CRC-n表示使用n次生成多项式用于对CRC进行编码和解码,其中次数(degree)是CRC的生成多项式的最大系数):

-CRC-16-CDMA2000:用在3G移动网络中

-CRC-CCITT:用在蓝牙中

-CRC-32:用在以太网和高级数据链路控制(HDLC)协议中

-CRC-40-GSM:用在GSM控制信道中。

其生成多项式次数为n的CRC能够检测到长度小于或等于n的所有突发错误以及不是生成多项式的倍数的任何错误。

尽管传统CRC技术适用于检测随机错误,但它们很容易被恶意对手击败。由于对手已知某个CRC使用哪个生成多项式,所以他可以容易地制作在接收方处通过CRC校验的经修改的消息。这可以例如通过向原始消息添加与生成多项式的倍数相对应的错误来实现。

用于在用户平面中提供数据完整性的资源效率更高的解决方案是通过加密安全CRC(下文也称为加密CRC或加密校验和)来替代常规CRC。加密CRC具有与传统CRC相同的检测随机错误的能力,但还能够以高概率检测对手注入的任何恶意错误。

一种类型的加密安全CRC由Krawczyk[H.Krawczyk,“LFSR-based Hashing and Authentication”,in Advances in Cryptology-CRYPTO’94,Lecture Notes in Computer Science,Volume 839,Springer,1994,pp.129-139]提出。所提出的CRC需要用于生成认证标签(即,CRC校验比特)的n次不可约多项式。基本思想是假设CRC多项式是只有发送方和接收方知道的共享秘密。这从安全角度来说运作良好,但仍受困于资源效率低,原因在于找到不可约多项式并不简单。生成不可约多项式(即不能被因式分解为两个或更多个非简单(non-trivial polynomial)多项式的乘积的多项式)需要或者伪随机地生成多项式并运行针对不可约性的测试,或者伪随机地从不可约多项式的数据库中选择多项式。不可约性的测试的计算复杂度是n3个比特运算的数量级[参见,例如,S.Gao和D.Panario在Foundations of Computational Mathematics中“Tests and Constructions of Irreducible Polynomials over Finite Fields”,F.Cucker and M.Shub(Eds.),Springer,1997,第346-361页],这是计算所需要的。维护不可约多项式的数据库是消耗空间的,原因在于对于最常见的CRC长度n=32的不可约多项式的数量是227=134.215.680,需要512兆字节的存储。通常,二进制域上不可约的n次多项式的数量如2n/n那样增长。



技术实现要素:

本发明的目的在于提供对于以上技术和现有技术的改进的替代。

更具体地,本发明的目的是提供改进的消息认证。具体地,本发明的目的是提供一种具有已知安全级别的改进的加密校验和。

如独立权利要求所定义的,通过本发明的不同方面来实现本发明的这些目的和其他目的。从属权利要求表征本发明的实施例。

根据本发明的第一方案,提供了一种生成消息M(x)的加密校验和的方法。所述方法包括:伪随机地选择至少两个不可约多项式{pi(x),i=1...N}。该至少两个不可约多项式是基于第一加密密钥伪随机地选择的。每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合。该方法还包括:将次数的生成多项式p(x)计算为N个不可约多项式pi(x)的乘积以及将加密校验和计算为M(x)的第二函数(f(M(x)))对p(x)的取模除法的第一函数g,即g(f(M(x))mod p(x))。

根据本发明的第二方案,提供了一种计算机程序。该计算机程序包括计算机可执行指令,当所述计算机可执行指令在设备中包括的处理单元上执行时,使所述设备执行根据本发明第一方案的实施例所述的方法。

根据本发明的第三方案,提供了一种计算机产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有根据本文中体现的本发明第二方案的计算机程序。

根据本发明的第四方案,提供了一种校验和生成器,用于生成消息M(x)的加密校验和。所述校验和生成器包括被配置用于以下操作的装置:伪随机地选择至少两个不可约多项式{pi(x),i=1...N}。该至少两个不可约多项式是基于第一加密密钥伪随机地选择的。每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合。该装置还被配置为:将次数的生成多项式p(x)计算为N个不可约多项式pi(x)的乘积以及将加密校验和计算为M(x)的第二函数(f(M(x)))对p(x)的取模除法的第一函数g,即g(f(M(x))mod p(x))。

本发明使用这种理解,即可以通过用基于生成多项式的加密校验和替代标准校验和(例如CRC)来提供消息的有效认证,该生成多项式是至少两个伪随机地选择的不可约多项式的乘积。所提出的加密校验和可以用于提供具有已知安全级别(下面进一步导出)的对消息的完整性保证,即用于检测随机和有意的消息改变。

在本上下文中,消息是经常被描述为某种格式的二进制编码信息。该格式可以由消息涉及的协议指定。通常,消息包括报头和有效载荷,并且优选地针对整个消息(即报头和有效载荷)生成加密校验和。

本发明的实施例相对于现有技术的优点在于:通过用具有与传统CRC相同的检测随机错误的能力且同时附加地提供消息的完整性保证的加密校验和来替代常规CRC,消息格式没有改变。具体地,与基于向消息添加附加MAC的已知解决方案相比,未增加消息的长度。此外,本发明的实施例与已知的Krawczyk的加密CRC相比的优点在于:它们不依赖于生成n次伪随机不可约多项式,而是使用作为至少两个不可约多项式的乘积的生成多项式,该至少两个不可约多项式的次数ni小于n并且其次数之和等于次数n。由于次n的不可约多项式的数量随n以指数形式(它大致与2n/n成比例)增长,生成次数小于n的不可约多项式并将它们相乘以生成n次多项式与生成单个n次不可约多项式相比所需的资源较少。这对于执行计算复杂度为n3个比特运算数量级的不可约性测试以及维护不可约多项式的数据库而言是有效的。例如,对于n=32的最常见的CRC长度,不可约多项式的数量是227,需要512兆字节的存储。相比之下,次数n=16的不可约多项式的数量为4080,需要相当少的存储空间。因此,对于许多M2M应用而言,尽管保持次数n=16的不可约多项式的数据库可能是可行的,然而保持次数n=32的不可约多项式的数据库是不可行的。

注意,在本上下文中,应当理解,所述至少两个不可约多项式pi(x)是从伽罗瓦域上的所有n次多项式的集合中伪随机地选择的。可以通过多项式的概率分布对该选择进行控制。这种概率分布可以有效限制可用多项式的集合。在实践中,维护仅具有伽罗瓦域上所有n次多项式的子集的数据库相当于强制执行针对未包含在数据库中的多项式具有零概率的概率分布。

根据本发明的实施例,两个不可约多项式p1(x)和p2(x)是伪随机选择的,并且生成多项式p(x)被计算为该两个不可约多项式的乘积p(x)=p1(x)·p2(x)。可选地,两个伪随机地选择的不可约多项式p1(x)和p2(x)具有相等的次数,即n1=n2=n/2。

根据本发明的实施例,生成多项式p(x)包括非零常数项。将生成多项式的集合限制为具有非零常数项的多项式的子集是有利的,如下面进一步描述的,原因在于与基于不可约生成多项式的加密CRC相比,基于这种生成多项式的加密校验和具有检测相同类型的突发错误的能力。

根据本发明的实施例,该方法还包括伪随机地生成长度为n的填充s,其中第一函数g包括添加(append)填充s。添加伪随机地生成的填充的优点在于,将通过散列函数生成加密校验和的线性变换转换为仿射变换(affine transformation)。在没有填充的情况下,对手可成功地注入全零消息。可选地,可以基于第二加密密钥生成填充,第二加密密钥可以等于或不同于第一加密密钥。

根据本发明的实施例,不可约多项式中的至少一个pi(x)取决于特定于消息的信息。也就是说,用仅对于消息的发送方和接收方是已知的但对于对手表现为随机的方式,基于特定于消息的信息选择不可约多项式中的至少一个。特定于消息的信息可以例如包括以下任一个或其组合:消息序列号、消息标识符、消息中包括的时间戳等。

根据本发明的实施例,提供了一种发送方认证消息的方法。该方法包括:获取该消息,生成所述消息的加密校验和,将所生成的加密校验和附加至所述消息,发送所述消息和所附加的加密校验和。消息和所附加的加密校验和被统称为码字。

根据本发明的实施例,提供了一种接收方认证消息的方法。该方法包括:接收所述消息和附加的第一加密校验和,生成针对所述消息的第二加密校验和,以及验证第一加密校验和与第二加密校验和是否相同。如果不同,则不能建立消息的完整性。也就是说,消息已被有意或无意修改。

即使已经在一些情况下参照本发明的第一方面的实施例描述了本发明的优点,相应的理由还适用于本发明的其他方面的实施例。

当研读以下的详细公开、附图和所附的权利要求时,本发明的附加目的、特征和优点将变得显而易见。本领域技术人员意识到可以组合本发明的不同特征,来创建除以下描述的实施例以外的实施例。

附图说明

参照附图,将通过以下对本发明的实施例的说明性且非限制性的详细描述来更好地理解本发明的以上加目的、特征和益处以及附加的目的、特征和益处,其中:

图1示出了通信系统。

图2示出了码字。

图3示出了示意消息认证的框图。

图4示出了具有针对不同类型的生成多项式的冲突概率的表格。

图5示出了根据本发明实施例的发送方的方法的流程图。

图6示出了根据本发明实施例的接收方的方法的流程图。

图7示出了根据本发明实施例的发送方。

图8示出了根据本发明实施例的接收方。

图9示出了根据本发明另一实施例的发送方。

图10示出了根据本发明另一实施例的接收方。

图11示出了根据本发明实施例的IC。

图12示出了根据本发明实施例的移动电话。

所有的附图是示意性的,不一定按比例绘制,并且通常只示出了对解释本发明而言必要的部分,其中其它部分可被省略或仅仅提及。

具体实施方式

以下将参照附图更全面地描述本发明,附图中示出了本发明的特定实施例。然而,本发明可以按多种不同形式来体现,并且不应当被解释为受到本文阐述的实施例的限制。相反,通过示例给出这些实施例,使得本公开将透彻和完整,并且向本领域技术人员充分地传达本发明的范围。

在图1中,示出了通信系统100,其包括被配置为通过通信网络103进行通信的发送方101和接收方102。具体地,发送方101被配置为发送消息105,并且接收方102被配置为接收消息105。优选地,发送方101和接收方102被配置为发送和接收消息。发送方101和接收方102可以是能够通过通信网络103实现通信的任意类型的设备,例如计算机、移动终端、用户设备(UE)、M2M/IoT类型的设备、无线接入网络(RAN)的节点(例如网关、无线电网络控制器(RNC)、无线电基站(RBS)、节点B或演进的节点B)。通信网络103可以是有线或无线网络(例如,RAN(如GSM、UMTS、LTE、WLAN/WiFi网络)、以太网网络、公司网络、互联网等)中的任意一个或其组合。

从发送方101经由通信网络103发送给接收方102的消息105可以经受随机/无意或有意/恶意的修改。随机修改可以例如由在通信网络103的无线网络的空中接口上的传输期间发生的突发错误所导致。另一方面,恶意修改可以源自也在图1中示出的对手104。对手104可以拦截发送方101发送的消息105,并将该消息的经修改副本重新发送给接收方102。对手104还可以尝试生成新消息,而不依赖于对从发送方101接收到的消息的修改。通常,对手104的意图在于将恶意消息注入接收方102,具体地接收方102的网络接口、操作系统或应用程序。

本领域中已知,通过消息105上的完整性保证来检测消息105的随机修改。如图2所示,这可以通过向消息105提供校验和(例如CRC)来实现。

为此,针对在图2中被示为包括报头201和携带有效载荷的主体202的消息204生成校验和203(例如CRC),并将其附加至消息204以形成码字200。然后将码字200(与图1中的消息105相对应)发送给接收方102,在接收方102中验证消息204的完整性,如下面参照示出了框图300的图3所描述的,框图300示出了分别与图1的发送方101和接收方102相对应的发送方侧(图3中的左侧)和接收方侧(图3中的右侧)。

在发送方101处,获取要发送给接收方102的消息204(例如从发送方101的协议栈的较高层接收),并馈送到被配置用于计算第一校验和(图3中的CS)203(具体地CRC)的算法301中。除了消息204之外,校验和算法301接收共享秘密(例如加密密钥)作为输入,并生成第一校验和203作为输出。可选地,校验和算法301可以基于生成哪个第一校验和203来附加地接收初始化值(IV)作为输入。IV可以是校验和算法301的单独输入,或者可以通过将IV前置或附加至消息204来当做作为消息204的一部分的输入。然后,例如通过将校验和203附加至消息204,将消息204和校验和203组合成码字200。然后,例如经由通信网络103将码字200发送给接收方102。

在接收方102,接收码字200,并从码字200中提取消息304。注意,由于在从发送方101到接收方102的传输105期间消息204的随机修改和/或有意修改,消息304不是必然与发送方101发送的消息204相同。将消息304馈送至校验和算法301中,校验和算法301与发送方101的校验和算法301相同,且基于消息304以及还基于与发送方101的共享秘密相同的共享秘密来生成第二校验和303(图3中的CS′)。可选地,校验和算法301可以另外接收IV作为输入,该IV与发送方101的IV相同。然后,通过将第二校验和303馈送至比较器305,并将第二校验和303与从接收的码字200提取的第一校验和203进行比较来验证接收消息304的完整性。比较器305将比较结果还可用于例如接收方102的通信栈的较高层,并指示第一校验和203和第二校验和303是否相同。例如,比较器305输出的结果可以是布尔值,其中高值(布尔“1”)指示两个校验和相同,并且低值(布尔“0”)指示两个校验和不同,或者反过来。如果相同,则可以假设消息304的完整性,即接收方102接收的消息304与由发送方101发送的消息204相同。通过验证消息304的完整性,可以用某一概率推断消息304在传输105期间没有被修改。

已知的校验和(具体地作为密码散列函数(如HMAC或CBC-MAC)的CRC)被设计用于检测消息的随机修改。更具体地,具有n次生成多项式p(x)的CRC能够检测长度小于或等于n的所有突发错误。此外,CRC将检测不是其生成多项式p(x)倍数的任何错误。可以通过硬件(使用LFSR)和软件有效地实现对CRC的编码和解码。

针对在发送方101处的编码,通常首先将消息M(x)204乘以xn,并且然后将其对生成多项式p(x)除法取模。余数的多项式系数,

r(x)=M(x)·xn mod p(x) (1)

构成CRC校验和203(即消息摘要),并将其添加至数据比特M(x)·xn以形成码字200。在本公开中,“·”是有限GF乘法(对于有限GF(2),其与布尔与(AND)等效),并且“mod”是有限域中多项式取模除法的余数。注意,乘以xn将消息M(x)204移位n比特。也就是说,在与CRC校验和203组合之前,消息M(x)204被移位了。结果,获得的码字200是可分离的,即,消息比特与校验和比特分离。

针对接收方102处的解码,将所接收的数据比特M′(x)·xn对生成多项式p(x)除法取模,并且所得到的余数的多项式系数303,

r′(x)=M′(x)·xn mod p(x) (2),

与用码字200接收的CRC比特r(x)203进行比较。如果没有发生错误,即消息204在传输期间没有被修改,则余数r′(x)与接收的余数r(x)相同。不一致指示错误,即M′(x)≠M(x)。

尽管传统CRC技术对于检测随机修改或错误是有用的,但是对手104可以容易地对发送方101发送的消息进行修改,该消息在接收方102通过CRC校验,原因在于校验和算法301使用的生成多项式p(x)不是仅对于发送方101和接收方102而言是已知的秘密。例如,对手104可以向发送的消息M(x)204添加与作为生成多项式p(x)的倍数的多项式相对应的错误e(x),使得e(x)mod p(x)=0。此外,对手104可以简单地将由发送方101发送的消息204替代为具推测具有恶意内容的不同的消息304,使用与发送方101相同的校验和算法301对其进行编码,并将其发送给接收方102,在接收方102处它通过完整性校验。

用于提供数据完整性并具体在用户平面中资源效率高解决方案是:用密码安全的CRC替代常规CRC,密码安全的CRC具有与传统CRC相同的检测随机错误的能力,但其还能够以高概率检测任何有意或恶意的修改。使用与传统CRC相同大小的密码安全CRC的结果是现有协议栈可以被扩展为支持消息认证,而不需要重新设计整个协议栈以便考虑消息大小的变化。

Krawczyk提出的密码安全的CRC基于使生成多项式是仅发送方101和接收方102已知的共享秘密的思想。由此,对手104不能设计消息以在接收方102通过完整性校验。如上文所讨论的,这从安全角度来说运作良好,但仍受困于资源效率低,原因在于找到不可约多项式并不简单。

下面描述的本发明实施例的优点在于,可以通过加密校验和来验证从发送方101发送给接收方102的消息105的完整性,加密校验和具有与常规CRC相同的大小,但除了随机错误之外,其能够以高概率检测故意的恶意修改,常规CRC对于恶意修改是受限的。与Krawczyk提出的加密校验和相比,本发明的实施例还是有利的,原因在于它们对资源的要求较低。具体地,通过使用至少两个伪随机地选择的较小不可约多项式的乘积而不是使用单个不可约多项式来作为生成多项式,对于不可约性的测试在计算上要求较低,并且维护不可约多项式集合所需的存储较小。

为此,本发明的实施例使用加密校验和,其在图2和图3所示的码字200中替代常规校验和203(例如CRC)。注意,在本发明的一些实施例中,也可以对消息204或其部分(例如主体202)进行加密。在这种情况下,接收方102可以在执行完整性验证之前首先对消息或消息的部分进行解密。备选地,解密过程的至少一部分可以与校验和验证交织。作为又一备选,可能不需要接收方102首先对所接收的消息解密。对在接收方102处首先解密接收到的消息的需要取决于发送方101的处理顺序。例如,如果在生成校验和203并且附加到消息204以形成码字200之后在发送方101处应用消息加密,则接收方102通常首先需要对接收码字进行解密。另一方面,如果发送方101在对加密消息计算校验和203之前首先对消息204进行加密,则接收方102可以推迟解密,直到已经计算了校验和203并且已经验证了所接收的加密消息的完整性。在本公开中,除非另有说明,假设根据需要执行解密。

因此,与下文中所描述的Krawczyk所提出的方案相比,对在发送方101(图3中的CS)和接收方102(图3中的CS′)中生成密码安全校验和的校验和算法301分别进行修改。

校验和算法301是用于生成消息M(x)204的加密校验和203的散列函数hp(M),并且包括生成至少两个不可约多项式pi(x),i=1...N,N≥2,其中,每个不可约多项式pi(x)是从伽罗瓦域(特别是阶2的伽罗瓦域GF(2))上的所有ni次多项式的集合中生成的,将具有以下次数的生成多项式p(x)

计算为N个不可约多项式pi(x)的乘积,

并将加密校验和203计算为M(x)的第二函数(f(M(x)))对p(x)的取模除法的第一函数g,即,

hp(M)=g(f(M(x))mod p(x)) (5)。

更具体地,基于第一加密密钥(即发送方101和接收方102已知的共享秘密)从相应伽罗瓦域上的不可约多项式集合中伪随机地选择不可约多项式pi(x)。例如,如本领域中已知的,可以通过由订户身份模块(SIM)、通用SIM(USIM)等支持的公钥技术或对称技术来建立共享秘密。通过伪随机地选择至少两个不可约多项式pi(x),并将生成多项式形成为该至少两个不可约多项式的乘积(其中每个不可约多项式pi(x)具有次数ni<n),而不是使用作为类似于Krawczyk的生成多项式的单个不可约多项式,本发明的实施例的优点在于,与现有技术解决方案相比,消息认证更少地资源消耗,这对于受限设备特别重要。

可选地,生成多项式p(x)可以包括非零常数项,即

p(x)=p′(x)+c·x0 (6),

其中c是非零的(意味着在GF(2)上的多项式的情况下,c=1)。注意,不具有非零常数项的唯一不可约多项式是pi(x)=x。因此,如果p(x)的所有不可约的因子pi(x)具有非零常数项,则p(x)包括非零常数项。这是优点,因为所生成的加密校验和与类似于Krawczyk的加密校验和具有检测相同类型的突发错误的能力,其基于如下面进一步导出的不可约生成多项式。相反,具有零常数项(即等式(6)中的c=0)的生成多项式可能会使检测随机错误的能力劣化。例如,基于这种生成多项式的加密校验和可能不能检测到一些单比特错误。

还可选地,第一函数g可以包括添加长度为n的填充s,

g(x)=t(M)+s (7)

其中

t(M)=f(M(x))mod p(x) (8),

其中“+”是GF加法(对于GF(2),其与布尔异或(XOR)运算等效)。填充s可以例如基于可与第一加密密钥相同或与第一加密密钥不同的第二加密密钥伪随机地生成。第一加密密钥和/或第二加密密钥可以根据第三加密密钥来生成,例如通过根据第三加密密钥和对于发送方101和接收方102已知的一些信息来生成伪随机比特序列,并选择所生成的比特序列的一部分来作为第一加密密钥,且将比特序列的剩余比特作为第二加密密钥。添加随机填充s的优点在于:将通过散列函数hp(M)生成加密校验和的线性变换(即,hp(A)+hp(B)=hp(A+B))转换为仿射变换hp(M)+s。在没有填充的情况下,hp(0)=0,与用于散列函数的生成多项式无关,使对手能够注入全零消息。注意,如果在发送方101处应用使用流密码的加密,则可以通过加密函数提供填充s,由此对加密和完整性处理进行“交织”。在这种情况下,接收方102可以(i)首先通过解密去除填充s,并且然后仅将hp(M)作为校验和203,或者(ii)不去除填充s而是将hp(M)+s作为校验和203。

在本发明的实施例中使用的填充类似于在20世纪早期由Vernam引入的公知的一次性填充。在Vernam密码中,使用布尔异或运算将消息与填充逐比特组合。在本发明的实施例中,用类似的方式将填充与加密校验和组合。

在下文中,对所提出的用于根据本发明的实施例计算加密校验和的族散列函数的安全性进行分析,并将其与现有技术解决方案(具体地类似于Krawczyk的加密校验和)进行比较。

考虑如下定义的(m,n)族加密安全散列函数。对于二进制长度为m的任意消息M(x)以及针对根据等式(4)的每个生成多项式p(x),其中pi(x)是伽罗瓦域上的ni次不可约多项式,使得等式(3)适用,散列函数hp被定义为以下多项式的二进制系数

hD(M)=M(x)·xn mod p(x) (9)。

为计算认证标签,即消息摘要或密码安全校验和,

t(M)=hp(M)+s (10),

伪随机地生成至少两个不可约多项式pi(x),根据等式(4)形成生成多项式p(x),评估散列函数hD,并且显式地或作为加密处理的一部分来添加伪随机地生成的填充s。注意,生成不可约多项式pi(x)需要对从伽罗瓦域上的所有ni次多项式的集合中伪随机地选择的每个多项式运行不可约性测试,或者从包括阶数为n的伽罗瓦域上的(优选地所有)ni次不可约多项式的数据库中伪随机地提取每个不可约的多项式pi(x)。

为分析所提出的散列函数族的安全性,假设如果对手104看到M(x)和t之后可以找到消息M′(x)≠M(x)使得t′=t,则对手104成功地破解认证。这里假设对手104知道(m,n)散列函数族,而不知道用于认证具体消息的具体散列函数hp和填充s。

通过考虑CRC在给定长度的所有消息上的分布来执行分析。注意,这里考虑最坏情况的场景,即假设对手104将通过尝试设计校验和使他的机会最大,并假设对手104知道(并选择)使成功概率最大的那些消息。因此,成功的概率将取决于两个不同的消息M和M′将具有根据等式(10)计算的相同校验和t的最大概率,原因在于这意味着对手104可以用另一消息替代由发送方101发送的消息而不被检测到,即在接收方102处通过完整性校验。也就是说,寻找

maxM,M′Pr[hp(M)=hp(M′)] (11),

其中该最大值是针对所有不同的m比特消息M和M′取的,且概率Pr是针对定义散列函数的根据等式(4)的生成多项式p(x)的随机选择来取的。注意,填充s的存在不影响概率,原因在于当且仅当hp(M)=hp(M′)时hp(M)+s=hp(M′)+s。还要注意,概率是统计量,并且预测随机事件的最佳策略是根据事件的统计分布做出预测。例如,无论什么资源可用,预测(假想的,完美硬币)掷硬币是出现正面还是反面不能以大于1/2的成功概率完成。因此,无论对手可能具有可供其使用的什么计算资源,等式(11)导致任何对手的成功概率的上限。

根据定理4(见附录),对于m和n的任意值,并且对于任意消息M,没有对手能够以大于以下所示的概率来成功破解使用基于随机选择的生成多项式的加密校验和的认证

ε≤(m+n)/2n-N (12),

假设对于所有i,j∈{1,2,...,N},ni≠nj,或者对于所有i,j∈{1,2,...,N},ni=nj。概率ε被称为冲突概率。

在下面,考虑N=2,即生成多项式p(x)是两个不可约多项式的乘积的特殊情况,即

p(x)=p1(x)·p2(x) (13)。

基于两个不可约多项式的乘积的实施例的优点在于:与三个或更多个多项式的乘法相比,两个多项式的乘法在计算上要求较低。此外,根据等式(12),冲突概率随N增长而迅速减小(即,加密校验的期望安全性降低)。对于N=2,能够导出冲突概率的更精确的边界。在附录中给出的引理1中,示出了:

针对不可约多项式p1(x)和p2(x)分别具有不同次数n1和n2的情况,

ε1≤(m+n)2/2n 如果n1≠n2(14),

以及

针对不可约多项式p1(x)和p2(x)具有相同次数n1=n2=n/2的情况,

如果n1=n2(15)在图4所示的表400(分别为第三列和第四列)中给出了冲突概率ε1和ε2的结果值。

为了比较,表400的第五列示出了对于类似于Krawczyk的不可约生成多项式的情况的冲突概率ε0的值,在这种情况下,由(m+n)/2n-1给出不可约生成多项式的冲突概率。

从表400中可以看出,对于使用具有不同次数(第三列)和相等次数(第四列)的两个不可约多项式的乘积来作为生成多项式的本发明的实施例,相应的冲突概率高于类似于Krawczyk的不可约多项式(第五列)。也就是说,针对给定消息大小,它们提供更低的安全性级别。因此,在安全性和资源效率之间存在折中。针对可接受较低级别的安全性的应用,本发明的实施例的优点在于:它们对资源的要求较低。从表400还可以看出,所提出的加密校验和可以对短的消息或中等大小的消息特别有利,原因在于本发明的实施例提供的安全级别与类似于Krawczyk的加密校验和相比,随消息大小衰减得更快。

从表400还可以看出,依赖于将具有相等次数的两个不可约多项式的乘积作为生成多项式的实施例的冲突概率(即根据等式(15)的ε2)小于将具有不同次数的两个不可约多项式的乘积(根据等式(14)的ε1)作为生成多项式的冲突概率(根据等式(14)的ε1)。因此,基于相等次数的两个不可约多项式的乘积的实施例是的优点在于:除资源要求较少之外,它们还提供改善的安全性。例如,可以设想本发明的实施例,其维护n/2次数的不可约多项式的数据库,其中n是所需的校验和大小,并从数据库中伪随机地选择p1(x)和p2(x)。

注意,尽管本文提出的安全分析是基于均匀随机参数(例如多项式)的假设,但实际上这些参数是伪随机生成的。然而,该区别不重要,原因在于已知伪随机生成器生成输出分布,在实践中不能将该输出分布与均匀分布区分开。因此,对手不能充分使用分布中的这些差异。

本发明的实施例以对于发送方101和接收方102确定性的方式来基于针对对手104的对生成多项式p(x)和填充s中的至少一个的不可预测的改变。也就是说,生成多项式p(x)和/或填充s的变化在发送方101和接收方102之间必须同步。

基于其来伪随机地选择不可约多项式的共享秘密(即,第一加密密钥)旨在使得校验和算法301的输出对于对手104不可预测,但校验和算法301可以可选地基于某一消息相关数据(例如消息的序列号或消息中的一些其他唯一信息(例如时间戳、消息标识符或随机数))确定不可约多项式pi(x)中的至少一个。例如可以在消息204的报头201中携带这种附加信息。

通常,可能不需要针对每个消息计算新的生成多项式,但是在发送方101和接收方102之间的新会话开始时生成生成多项式,并在会话期间将它对于在发送方101和接收方102之间交换的所有消息保持固定就足矣。然而,该填充然后必须针对每个消息改变,并且可以根据消息相关数据(即,特定于消息的信息)而改变。

在图5中,示出了发送方认证消息的方法的实施例500。方法500的实施例可以例如由发送方101执行。方法500包括:例如从发送方101的通信栈的较高层或正由发送方101执行的应用获取501消息,生成消息的加密校验和,通过将生成的加密校验和附加506至消息来形成码字,以及发送507码字,即消息和附加的加密校验和。

更具体地,如先前所描述的,生成加密校验和包括:基于第一加密密钥伪随机地选择502至少两个不可约多项式pi(x),其中每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合,将次数的生成多项式p(x)计算503为N个不可约多项式pi(x)的乘积,以及将加密校验和计算505为M(x)的第二函数f(M(x))对p(x)的取模除法的第一函数g,即,g(f(M(x))mod p(x))。第一加密密钥是消息的发送方和接收方已知的共享秘密。可选地,生成多项式可以包括非零常数项。生成加密校验和还可以包括伪随机地生成504长度为n的填充s,其中第一函数g包括添加填充s。填充s可以基于第二加密密钥来生成,第二加密密钥可以等于第一加密密钥或与第一加密密钥不同。第二加密密钥和第一加密密钥是消息的发送方和接收方已知的共享秘密。可选地,可以根据特定于消息的信息(例如消息序列号、时间戳、随机数等)生成生成多项式p(x)和填充s中的至少一个,或其二者。

在图6中,示出了接收方认证消息的方法的实施例600。方法的实施例600可以例如由接收方102执行。方法600包括:接收601码字,即消息和附加的第一加密校验和,生成针对消息的第二加密校验和,以及验证606第一加密校验和与第二加密校验和是否相同。如果不同,则不能建立消息的完整性。也就是说,消息已被意外/随机或有意/恶意地修改。

更具体地,如先前所描述的,生成第二加密校验和包括:基于第一加密密钥伪随机地选择602至少两个不可约多项式pi(x),其中每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合,将次数的第二生成多项式p(x)计算603为所述N个不可约多项式pi(x)的乘积,以及将加密校验和计算605为M(x)的第二函数f(M(x))对p(x)的取模除法的第一函数g,即,g(f(M(x))mod p(x))。第一加密密钥是消息的发送方和接收方已知的共享秘密。可选地,生成多项式可以包括非零常数项。生成第二加密校验和还可以包括伪随机地生成604长度为n的填充s,其中第一函数g包括添加填充s。填充s可以基于第二加密密钥来生成,第二加密密钥可以等于第一加密密钥或与第一加密密钥不同。第二加密密钥和第一加密密钥是消息的发送方和接收方已知的共享秘密。可选地,可以根据特定于消息的信息(例如消息序列号、时间戳、随机数等)生成生成多项式p(x)和填充s中的至少一个,或其二者。

根据本发明实施例的加密校验和的计算基于与用于常规CRC的操作相同类型的操作。因此,除本发明的实施例使用可变伪随机生成多项式之外,其保留了传统CRC的大部分简单性。因此,用硬件实现本发明的实施例很简单,并且所得到的实施方式的资源效率非常高效。如本领域中已知的,可以通过LFSR来实现对GF(2)上的多项式进行除法取模的运算,其中LFSR的抽头确定生成多项式p(x)。甚至可以用具有高性能的硬件实现乘以xn。然而,与传统的CRC相反,根据本发明的实施例的加密校验需要反馈连接可编程的实现,在传统的CRC中,生成多项式是固定的并是事先已知的,并且实现电路通常具有硬连线地确定生成多项式的反馈连接。这些反馈连接的实际配置是散列的核心,并且其应该是可改变的和秘密的。注意,如果一些非加密CRC电路需要基于不同的生成多项式支持不同的CRC标准,或者支持不同的多项式次数,它们也可以使用可编程连接[参见,例如,J.Birch、L.G.Christensen和M.Skov的“A programmable 800Mbit/s CRC check/generator unit for LAN6and MANs”,Comp.Networks and ISDN Sys.,1992]。

重要的是指出,将伪随机地选择的生成多项式的集合限制为具有非零常数项的多项式的集合不会使根据本发明的实施例的校验和生成器的实现复杂化。仅有的区别在于,对于这种多项式,与多项式的常数项相对应的LFSR抽头可以是固定的而不是可编程的。

也存在CRC生成器用软件的有效实现。在这些实现中,通过使用预计算表格实现了显著的加速,预计算表格取决于基于其伪随机地选择具体加密密钥的生成多项式。因此,针对每个加密密钥仅对它们计算一次,这在许多应用中是可承受的。

根据本发明实施例的散列函数族中的函数基本上由生成多项式p(x)定义,而不是由对其应用散列函数的消息的长度来定义。因此,如在实践中所期望的,可以将它们应用于不同长度的消息。具体地,对应于消息M(x)的多项式应当使“1”作为前导系数(leading coefficient),而不是“0”(如果M具有长度m,则M(x)具有适当的次数m)。这确定了消息与多项式之间的一一映射关系,并具体地通过仅向消息附加零来防止改变消息。例如,消息01011应被视为4比特消息1011,而不是5比特消息。否则,两个消息由相同的消息多项式1·x3+0·x2+1·x1+1·x0=x3+x1+1表示,并将因此在编码之后具有相同的校验和。否则,对手知道新消息应该具有相同的校验和,可以简单地将一个或多个前导零附加到消息。备选地或附加地,显式长度指示可以用作认证/验证过程的输入,例如通过将消息长度前置或附加至消息。

在接收方侧,可以通过有限状态机(FSM)有效地实现消息的完整性的验证,该有限状态机与消息元素的顺序接收或多或少同时地处理消息,元素通常是比特。这种FSM还可以被集成在接收方的媒体访问控制(MAC)层内,并且通常由校验和解码器、比较器和控制块组成。在接收消息元素到达时,校验和解码器一个接一个地(即逐比特地)重新计算接收消息元素的校验比特。比较器将重新计算的校验比特与消息中接收到的校验比特(即,认证标签或校验和)进行比较。如果重新计算的校验比特和接收到的校验比特不一致,则比较器向控制块发送指示不能验证消息完整性的出错信号。

在图7中,示出了认证消息的发送方的实施例700,例如图1中所示的发送方101。发送方700包括:消息缓存701,其例如从发送方700的通信栈的较高层或正由发送方700执行的应用获取消息,校验和生成器702,其用于生成消息的加密校验和,码字缓存703,其用于通过将生成加密校验和附加至消息来形成码字,以及接口704,用于发送码字(即消息和附加的加密校验和),以及共享秘密模块705,用于向校验和生成器702提供第一加密密钥(即,对于消息的发送方700和接收方已知的共享秘密)。接口704可以是例如被配置用于实现与RAN通信的网络接口或无线电收发机。

更具体地,如先前所描述的,校验和生成器702被配置为通过以下操作生成加密校验和:基于第一加密密钥伪随机地选择至少两个不可约多项式pi(x),其中每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合,将次数的生成多项式p(x)计算为N个不可约多项式pi(x)的乘积,以及将加密校验和计算为M(x)的第二函数f(M(x))对p(x)的取模除法的第一函数g,即,g(f(M(x))mod p(x))。可选地,生成多项式可以包括非零常数项。校验和生成器702还可以被配置为伪随机地生成长度为n的填充s,其中第一函数g包括添加填充s。填充s可以基于第二加密密钥来生成,第二加密密钥可以等于第一加密密钥或与第一加密密钥不同。第二加密密钥是消息的发送方700和接收方已知的共享秘密。可选地,可以根据特定于消息的信息(例如消息序列号、时间戳、随机数等)生成生成多项式p(x)和填充s中的至少一个,或其二者。因此,共享秘密模块705还可以被配置为向校验和生成器702提供第二加密密钥。备选地,填充s可以由如上所述的加密算法提供,而不是由校验和生成器702生成。

可选地,校验和生成器702可以被配置为根据特定于消息的信息(例如消息序列号、时间戳、随机数等)来生成生成多项式p(x)和填充s中的至少一个,或其二者。这种信息可以用作校验和生成器702(特别是包括在校验和生成器702中的LFSR)的输入。

在图8中,示出了认证消息的接收方的实施例800,例如图1中所示的接收方102。接收方800包括用于接收码字(即,消息和附加的第一加密校验和)的接口801,用于从接收到的码字中提取消息和第一加密校验和的码字缓存802,用于生成针对消息的第二加密校验和的校验和生成器803,用于验证第一加密校验和与第二加密校验和是否相同的比较器804,以及用于向校验和生成器803提供第一加密密钥(即消息的接收方800和发送方已知的共享秘密)共享秘密模块805。接收方800还可以包括消息缓存806,用于存储接收到的消息,并且响应于比较器804接收到的已经验证所接收消息的完整性的指示,将消息传送给接收方800的通信栈的较高层或由接收方800执行的应用。接口801可以是例如被配置用于实现与RAN的通信的网络接口或无线电收发机。

更具体地,如先前所描述的,校验和生成器803与参照图7描述的校验和生成器702类似,并被配置为通过以下操作生成第二加密校验和:基于第一加密密钥伪随机地选择至少两个不可约多项式pi(x),其中每个不可约多项式pi(x)选自伽罗瓦域上的所有ni次不可约多项式的集合,将次数的生成多项式p(x)计算为N个不可约多项式pi(x)的乘积,以及将第二加密校验和计算为M(x)的第二函数(f(M(x)))对p(x)的取模除法的第一函数g,即,g(f(M(x))mod p(x))。可选地,生成多项式可以包括非零常数项。校验和生成器803还可以被配置为伪随机地生成长度为n的填充s,其中第一函数g包括添加填充s。填充s可以基于可以第二加密密钥来生成,第二加密密钥可以等于第一加密密钥或与第一加密密钥不同。第二加密密钥是消息的接收方800和发送方已知的共享秘密。可选地,可以根据特定于消息的信息(例如消息序列号、时间戳、随机数等)生成生成多项式p(x)和填充s中的至少一个,或其二者。因此,共享秘密模块806还可以被配置为向校验和生成器803提供第二加密密钥。备选地,填充s可以由如上所述的加密算法提供,而不是由校验和生成器803生成。

可选地,校验和生成器803可以被配置为根据特定于消息的信息(例如消息序列号、时间戳、随机数等)来生成生成多项式p(x)和填充s中的至少一个,或其二者。这种信息可以用作校验和生成器803(特别是包括在校验和生成器803中的LFSR)的输入。

如本领域已知的,发送方700和接收方800的实施例可以用硬件、软件或其组合来实现。例如,模块701-705和模块801-806可以通过电子电路(具体地数字二进制逻辑)来实现。备选地,模块701-705和模块801-806可以基于数字信号处理器(DSP)来实现。应当理解,接口704和801可以包括被配置为通过RAN的空中接口分别发送或接收码字的模拟电子电路。

校验和生成器702和803的实施例与标准CRC生成器非常相似地操作,标准CRC生成器的实现是本领域中已知的。依靠伪随机地生成的填充s的校验和生成器702和803的实施例可以通过在表示f(M(x))mod p(x)的n比特字符串与n比特填充s之间的逐比特异或运算来实现填充s的添加。

在图9中,示出了用于认证消息的发送方的备选实施例900。发送方900包括处理器901(例如DSP)和包括软件(即,包括计算机可执行指令的计算机程序903)的存储器902,当计算机可执行指令在处理器901上执行时,使发送方900实现本文以上描述的(具体参照图5)发送方900对消息进行认证的方法的实施例。发送方900还可以包括用于经由通信网络(例如,通信网络103)进行通信的接口904。接口904可以例如是被配置为用于实现与RAN的通信的网络接口或无线电收发机。

在图10中,示出了用于认证消息的接收方的备选实施例1000。接收方1000包括处理器1001(例如DSP)和包括软件(即,包括计算机可执行指令的计算机程序1003)的存储器1002,当计算机可执行指令在处理器1001上执行时,使接收方1000实现本文以上描述的(具体参照图6)接收方1000对消息进行认证的方法的实施例。接收方1000还可以包括用于经由通信网络(例如,通信网络103)进行通信的接口1004。接口1004可以例如是被配置为用于实现与RAN的通信的网络接口或无线电收发机。

参照图7至图10描述的发送方和接收方的实施例1101可以用图11所示的集成电路(IC)1100实现。此外,参照图7至图10描述的发送方和接收方的实施例1201也可以用移动终端(例如图12所示的移动电话1200)来实现。作为又一备选,参照图7至10描述的发送方和接收方的实施例1201还可以在RAN的节点中实现,例如,网关、RNC或无线电接入节点(例如RBS、节点B、演进的节点B、WLAN接入点等)。

本领域技术人员意识到本发明绝不限于上述实施例。相反,可以在所附的权利要求的范围内做出许多修改和变型。

附录

假设p(x)是具有以下类型的GF(2)上的多项式

其中N>1并且每个pi(x)是具有非零常数项的次数为ni的不可约多项式,并且注意在GF(2)中仅存在一个不具有非零常数项的不可约多项式,即多项式x。

如下定义(m,n)族加密安全CRC散列函数。

定义1:对于任意m比特消息M(x)并且对于每个根据等式(1)的p(x),散列函数hp(M)定义为

hp(M)=M(x)·xnmodp(x) (2)

(m,n)族被定义为由所有这些函数的集合组成,即每个p(x)定义族的一个成员。

现在研究(m,n)族散列函数的错误检测能力。

众所周知,基于次数n>1的不可约生成多项式的CRC具有检测长度为n或更小的所有突发错误的能力(W.W.Peterson和D.T.Brown,“Cyclic Codes for Error Detection”,Proceedings of the IRE中,49卷,1961,第228-235页)。下面,示出了基于根据式等式(1)的生成多项式p(x)的加密安全CRC能够检测相同类型的错误。假设deg(p(x))表示多项式p(x)的次数。

定理1基于根据等式1的生成多项式p(x)的CRC与基于次数等于deg(p(x))的不可约生成多项式的CRC能够检测相同类型的突发错误。证明:基于任意生成多项式p(x)的CRC检测所有错误,除了是p(x)倍数的错误。如果p(x)是根据等式(1)的类型,则其所有因子都是具有非零常数项的多项式。

次数n>0的任意突发错误可以由以下类型的多项式描述

b(x)=xi·a(x) (3)

其中

a(x)=xn-i-1+xn-i-2+…+x+1 (4)

对于i∈{0,1,...,n-1}。当且仅当p(x)的所有因子也是b(x)的因子时,多项式b(x)是p(x)的倍数。

由于p(x)的次数至少比a(x)的次数大1,p(x)≠a(x)。因此,作为b(x)的倍数,p(x)必须具有类型p(x)=a(x)·c(x),其中c(x)是具有次数至少为1的非零常数项的多项式。

然而,由于除a(x)之外,b(x)的所有其他因子具有零常数项,c(x)不能是b(x)的因子。因此,基于根据等式(1)的n次生成多项式p(x)的CRC能够检测长度为n或更小的所有突发错误。

在给出本发明的实施例的冲突概率的分析之前,这里给出一些背景定义和定理(定义1至3和定理2和3来自H.Krawczyk,“LFSR-based Hashing and Authentication”,在Advances in Cryptology-CRYPTO′94,Lecture Notes in Computer Science,卷839,Springer,1994,第129-139页)。

定义2:如果对于所有消息M和M′下式成立,散列函数H的族被称为+-线性,

h(M+M′)=h(M)+h(M′) (5)

针对我们的目的,将总是在伽罗瓦域(典型地在GF(2)的扩展)中定义“+”操作。

定义3:如果对于长度为m的任意非零消息M以及针对长度为m的任意二进制字符串c,下式成立,则散列函数族称为ε平衡,

Pr|hp(M)=c|≤ε (6)

其中在hp上取概率,hp是从族中均匀地随机选择的。

定义4:如果对于任意消息M没有对手以大于ε的概率成功破解认证,散列函数族被称为ε-opt-安全。

定理2散列函数族H要ε-opt-安全的充分必要条件是

并且Pr|h(M1)+h(M2)=c|≤ε (7)

定理3如果H是+-线性的,则当且仅当H是ε平衡时,H才是ε-opt-安全的。

以下,示出了没有对手能够以大于等式(8)给出的ε的概率基于所呈现的(m,n)族(即,基于这样定义的CRC)成功破解认证,假设或者针对所有i,j∈{1,2,...,N},ni≠nj,或针对所有i,j∈{1,2,...,N},ni=nj。注意,该证明是针对GF(2)订制的。本领域技术人员将理解如何将证明适用于针对任意q的GF(q)。

定理4对于n和m的任意值,定义1给出的散列函数族是ε-opt-安全的,其中

假设或者针对所有i,.j∈{1,2,...,N},ni≠nj,或者针对所有i,j∈{1,2,...,N},ni=nj,其中ni是等式(1)中pi(x)的次数。

证明:根据定理3,如果散列函数族是+-线性的,那么当且仅当它是ε平衡时,它才是ε-opt-安全。显然,定义1给出的散列函数族是+-线性的,原因在于对多项式进行取模除法是线性运算。接下来,我们示出该族也ε平衡的。

首先,我们观察到对于任意n次生成多项式p(x)、任意m个非零比特消息M和任意n比特字符串c,当且仅当M(x)·xnmodp(x)=c(x)时,hp(M)=c,其中c(x)是由比特串c定义的多项式。其次,当且仅当p(x)整除M(x)·xn-c(x)时,M(x)·xnmodp(x)=c(x)。

假设g(x)=M(x)·xn-c(x)。显然,q(x)是次数不大于m+n的非零多项式,并且p(x)是整除q(x)的n次多项式。

情况1:假设针对所有i,j∈{1,2,...,N},ni≠nj

由于唯一因式分解特性,针对每个i,j∈{1,2,...,N},q(x)可以包含不超过

个ni次不可约因子。因此,如果针对所有i,j∈{1,2,...,N},ni≠nj,则(m,n)族中将M映射至c中的散列函数的数量小于

另一方面,存在种方式来构造p(x),其中是ni次不可约多项式的数量。原因在于存在

个n次不可约多项式,我们得到

因此,冲突概率至多为:

情况2:假设针对所有i,j∈{1,2,...,N},ni=nj。我们得到deg(pi)=deg(p)/N。存在

个n/N次不可约多项式。因此,构造p(x)的方法的数量大于

其中

另一方面,至多存在

N2=(m+n)/(n/N)=N(m+n)/n (17)

个q(x)的不可约因子,每个因子具有次数n/N。它们的所有不同的N元组产生n次可约多项式。因此,(m,n)族中将M映射到c中的散列函数的数量至多为:

另一方面,该族中的元素的数量由等式(15)界定。因此冲突概率至多为:

接下来,针对生成多项式是两个不可约多项式的乘积,即N=2的情况,导出冲突概率的更精确的边界。

引理1如果N=2,则由下式给出定理4中的ε

如果deg(p1)≠deg(p2)

如果deg(p1)=deg(p2) (20)

证明:假设n1=deg(pi)。则n2=deg(p2)=n-n1

假设q(x)包含r个n-n1次不可约因子。然后,由于唯一的因式分解特性,q(x)至多包含

个n1次不可约因子。存在这些因子的

个不同的对,并且每对因子将产生不同的n次可约多项式。为找到(m,n)族中将映射M映射至c的散列函数的最大数量,需要找到r的哪个选择使以下二次函数的值最大

这可以通过找到代表等式(23)的函数的抛物线的顶点(最大点)的x坐标来完成。已知顶点的x坐标位于点-b/2a处,它在我们的情况下是:

因此,如果q(x)包含个n-n1次不可约多项式和

个n1次不可约多项式,则二次函数的值被最大化,。

假设

并且

则,如果n1≠n/2,(m,n)族中将M映射至c中的散列函数的最大数量由下式给出:

另一方面,如果n1≠n/2,则针对任意固定n1,存在种方式来构造p(x)。原因在于:

以及

并且情况n1≠n/2的冲突概率为

如果(或),没有足够的次数为n-n1(或n1)的不同多项式以使等式(23)的二次函数的值最大。因此,(m,n)族中将M映射至c中的散列函数的数量小于等式(28),并且冲突概率甚至小于上面导出的上界。

如果n1=n2=n/2,则q(x)能够至多包含

N3=(m+n)/(n/2)=2(m+n)/n (32)

个n/2次可约因子。它们的所有不同的对产生n次的可约多项式。因此,由下式给出(m,n)族中将M映射至c的散列函数的最大数量:

另一方面,如果n1=n/2,存在

种构造p(x)的方法。原因在于存在

个次数为n/2的不可约多项式,解空间大于

2n-3+2n/2-2 (36)

因此,对于n1=n/2,冲突概率为

作为示例,在图4的表400中,示出了对于n=32和64、N=2以及一些选择的消息长度m的情况的冲突概率ε1和ε2。第五列示出类似于Krawczyk当使用单个不可约多项式作为生成多项式的情况下的冲突概率ε0

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1