本發(fā)明涉及生成加密校驗(yàn)和的方法、相應(yīng)計(jì)算機(jī)程序、相應(yīng)計(jì)算機(jī)程序產(chǎn)品以及用于生成加密校驗(yàn)和的校驗(yàn)和生成器。
背景技術(shù):
當(dāng)前第三代(3G)和第四代(4G)第三代合作伙伴計(jì)劃(3GPP)移動(dòng)網(wǎng)絡(luò)通常在控制平面中使用加密以及認(rèn)證,而僅由加密來(lái)保護(hù)用戶平面。另一方面,WiMAX和無(wú)線局域網(wǎng)(WLAN)/WiFi網(wǎng)絡(luò)也對(duì)用戶平面使用認(rèn)證。
保護(hù)用戶平面消息傳送的已知方式是使用認(rèn)證標(biāo)簽,認(rèn)證標(biāo)簽是通過(guò)對(duì)消息應(yīng)用加密密碼散列函數(shù)(例如密鑰加密散列消息認(rèn)證碼(HMAC)或密碼塊鏈接消息認(rèn)證碼(CBC-MAC))而生成的。密碼散列函數(shù)是針對(duì)任意數(shù)據(jù)塊(例如消息)生成密碼散列值(也稱為消息摘要)的散列函數(shù),使得消息的任何意外或有意改變(即錯(cuò)誤或修改)將至少以某一高概率改變散列值。因此,消息摘要可以用于提供對(duì)消息的完整性保證。
加密的密碼散列函數(shù)的問(wèn)題在于它們是相對(duì)消耗資源的,這妨礙了它們?cè)谑芟拊O(shè)備(即,具有有限計(jì)算資源和電池資源的設(shè)備,例如機(jī)器對(duì)機(jī)器(M2M)和物聯(lián)網(wǎng)(IoT)類型設(shè)備)中的使用。此外,由于消息摘要而導(dǎo)致的消息長(zhǎng)度的增加減小了所發(fā)送數(shù)據(jù)的有效載荷部分,并增加了功耗。
可以通過(guò)使用循環(huán)冗余校驗(yàn)(CRC)碼來(lái)實(shí)現(xiàn)某種等級(jí)的隨機(jī)錯(cuò)誤保護(hù)。CRC碼是一種類型的可分離循環(huán)碼,其資源效率非常高并廣泛用于數(shù)據(jù)通信和數(shù)據(jù)存儲(chǔ)中,以檢測(cè)突發(fā)錯(cuò)誤。可以使用線性反饋移位寄存器(LFSR)有效地實(shí)現(xiàn)CRC處理。常見(jiàn)的CRC有(CRC-n表示使用n次生成多項(xiàng)式用于對(duì)CRC進(jìn)行編碼和解碼,其中次數(shù)(degree)是CRC的生成多項(xiàng)式的最大系數(shù)):
-CRC-16-CDMA2000:用在3G移動(dòng)網(wǎng)絡(luò)中
-CRC-CCITT:用在藍(lán)牙中
-CRC-32:用在以太網(wǎng)和高級(jí)數(shù)據(jù)鏈路控制(HDLC)協(xié)議中
-CRC-40-GSM:用在GSM控制信道中。
其生成多項(xiàng)式次數(shù)為n的CRC能夠檢測(cè)到長(zhǎng)度小于或等于n的所有突發(fā)錯(cuò)誤以及不是生成多項(xiàng)式的倍數(shù)的任何錯(cuò)誤。
盡管傳統(tǒng)CRC技術(shù)適用于檢測(cè)隨機(jī)錯(cuò)誤,但它們很容易被惡意對(duì)手擊敗。由于對(duì)手已知某個(gè)CRC使用哪個(gè)生成多項(xiàng)式,所以他可以容易地制作在接收方處通過(guò)CRC校驗(yàn)的經(jīng)修改的消息。這可以例如通過(guò)向原始消息添加與生成多項(xiàng)式的倍數(shù)相對(duì)應(yīng)的錯(cuò)誤來(lái)實(shí)現(xiàn)。
用于在用戶平面中提供數(shù)據(jù)完整性的資源效率更高的解決方案是通過(guò)加密安全CRC(下文也稱為加密CRC或加密校驗(yàn)和)來(lái)替代常規(guī)CRC。加密CRC具有與傳統(tǒng)CRC相同的檢測(cè)隨機(jī)錯(cuò)誤的能力,但還能夠以高概率檢測(cè)對(duì)手注入的任何惡意錯(cuò)誤。
一種類型的加密安全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需要用于生成認(rèn)證標(biāo)簽(即,CRC校驗(yàn)比特)的n次不可約多項(xiàng)式。基本思想是假設(shè)CRC多項(xiàng)式是只有發(fā)送方和接收方知道的共享秘密。這從安全角度來(lái)說(shuō)運(yùn)作良好,但仍受困于資源效率低,原因在于找到不可約多項(xiàng)式并不簡(jiǎn)單。生成不可約多項(xiàng)式(即不能被因式分解為兩個(gè)或更多個(gè)非簡(jiǎn)單(non-trivial polynomial)多項(xiàng)式的乘積的多項(xiàng)式)需要或者偽隨機(jī)地生成多項(xiàng)式并運(yùn)行針對(duì)不可約性的測(cè)試,或者偽隨機(jī)地從不可約多項(xiàng)式的數(shù)據(jù)庫(kù)中選擇多項(xiàng)式。不可約性的測(cè)試的計(jì)算復(fù)雜度是n3個(gè)比特運(yùn)算的數(shù)量級(jí)[參見(jiàn),例如,S.Gao和D.Panario在Foundations of Computational Mathematics中“Tests and Constructions of Irreducible Polynomials over Finite Fields”,F(xiàn).Cucker and M.Shub(Eds.),Springer,1997,第346-361頁(yè)],這是計(jì)算所需要的。維護(hù)不可約多項(xiàng)式的數(shù)據(jù)庫(kù)是消耗空間的,原因在于對(duì)于最常見(jiàn)的CRC長(zhǎng)度n=32的不可約多項(xiàng)式的數(shù)量是227=134.215.680,需要512兆字節(jié)的存儲(chǔ)。通常,二進(jìn)制域上不可約的n次多項(xiàng)式的數(shù)量如2n/n那樣增長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供對(duì)于以上技術(shù)和現(xiàn)有技術(shù)的改進(jìn)的替代。
更具體地,本發(fā)明的目的是提供改進(jìn)的消息認(rèn)證。具體地,本發(fā)明的目的是提供一種具有已知安全級(jí)別的改進(jìn)的加密校驗(yàn)和。
如獨(dú)立權(quán)利要求所定義的,通過(guò)本發(fā)明的不同方面來(lái)實(shí)現(xiàn)本發(fā)明的這些目的和其他目的。從屬權(quán)利要求表征本發(fā)明的實(shí)施例。
根據(jù)本發(fā)明的第一方案,提供了一種生成消息M(x)的加密校驗(yàn)和的方法。所述方法包括:偽隨機(jī)地選擇至少兩個(gè)不可約多項(xiàng)式{pi(x),i=1...N}。該至少兩個(gè)不可約多項(xiàng)式是基于第一加密密鑰偽隨機(jī)地選擇的。每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合。該方法還包括:將次數(shù)的生成多項(xiàng)式p(x)計(jì)算為N個(gè)不可約多項(xiàng)式pi(x)的乘積以及將加密校驗(yàn)和計(jì)算為M(x)的第二函數(shù)(f(M(x)))對(duì)p(x)的取模除法的第一函數(shù)g,即g(f(M(x))mod p(x))。
根據(jù)本發(fā)明的第二方案,提供了一種計(jì)算機(jī)程序。該計(jì)算機(jī)程序包括計(jì)算機(jī)可執(zhí)行指令,當(dāng)所述計(jì)算機(jī)可執(zhí)行指令在設(shè)備中包括的處理單元上執(zhí)行時(shí),使所述設(shè)備執(zhí)行根據(jù)本發(fā)明第一方案的實(shí)施例所述的方法。
根據(jù)本發(fā)明的第三方案,提供了一種計(jì)算機(jī)產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有根據(jù)本文中體現(xiàn)的本發(fā)明第二方案的計(jì)算機(jī)程序。
根據(jù)本發(fā)明的第四方案,提供了一種校驗(yàn)和生成器,用于生成消息M(x)的加密校驗(yàn)和。所述校驗(yàn)和生成器包括被配置用于以下操作的裝置:偽隨機(jī)地選擇至少兩個(gè)不可約多項(xiàng)式{pi(x),i=1...N}。該至少兩個(gè)不可約多項(xiàng)式是基于第一加密密鑰偽隨機(jī)地選擇的。每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合。該裝置還被配置為:將次數(shù)的生成多項(xiàng)式p(x)計(jì)算為N個(gè)不可約多項(xiàng)式pi(x)的乘積以及將加密校驗(yàn)和計(jì)算為M(x)的第二函數(shù)(f(M(x)))對(duì)p(x)的取模除法的第一函數(shù)g,即g(f(M(x))mod p(x))。
本發(fā)明使用這種理解,即可以通過(guò)用基于生成多項(xiàng)式的加密校驗(yàn)和替代標(biāo)準(zhǔn)校驗(yàn)和(例如CRC)來(lái)提供消息的有效認(rèn)證,該生成多項(xiàng)式是至少兩個(gè)偽隨機(jī)地選擇的不可約多項(xiàng)式的乘積。所提出的加密校驗(yàn)和可以用于提供具有已知安全級(jí)別(下面進(jìn)一步導(dǎo)出)的對(duì)消息的完整性保證,即用于檢測(cè)隨機(jī)和有意的消息改變。
在本上下文中,消息是經(jīng)常被描述為某種格式的二進(jìn)制編碼信息。該格式可以由消息涉及的協(xié)議指定。通常,消息包括報(bào)頭和有效載荷,并且優(yōu)選地針對(duì)整個(gè)消息(即報(bào)頭和有效載荷)生成加密校驗(yàn)和。
本發(fā)明的實(shí)施例相對(duì)于現(xiàn)有技術(shù)的優(yōu)點(diǎn)在于:通過(guò)用具有與傳統(tǒng)CRC相同的檢測(cè)隨機(jī)錯(cuò)誤的能力且同時(shí)附加地提供消息的完整性保證的加密校驗(yàn)和來(lái)替代常規(guī)CRC,消息格式?jīng)]有改變。具體地,與基于向消息添加附加MAC的已知解決方案相比,未增加消息的長(zhǎng)度。此外,本發(fā)明的實(shí)施例與已知的Krawczyk的加密CRC相比的優(yōu)點(diǎn)在于:它們不依賴于生成n次偽隨機(jī)不可約多項(xiàng)式,而是使用作為至少兩個(gè)不可約多項(xiàng)式的乘積的生成多項(xiàng)式,該至少兩個(gè)不可約多項(xiàng)式的次數(shù)ni小于n并且其次數(shù)之和等于次數(shù)n。由于次n的不可約多項(xiàng)式的數(shù)量隨n以指數(shù)形式(它大致與2n/n成比例)增長(zhǎng),生成次數(shù)小于n的不可約多項(xiàng)式并將它們相乘以生成n次多項(xiàng)式與生成單個(gè)n次不可約多項(xiàng)式相比所需的資源較少。這對(duì)于執(zhí)行計(jì)算復(fù)雜度為n3個(gè)比特運(yùn)算數(shù)量級(jí)的不可約性測(cè)試以及維護(hù)不可約多項(xiàng)式的數(shù)據(jù)庫(kù)而言是有效的。例如,對(duì)于n=32的最常見(jiàn)的CRC長(zhǎng)度,不可約多項(xiàng)式的數(shù)量是227,需要512兆字節(jié)的存儲(chǔ)。相比之下,次數(shù)n=16的不可約多項(xiàng)式的數(shù)量為4080,需要相當(dāng)少的存儲(chǔ)空間。因此,對(duì)于許多M2M應(yīng)用而言,盡管保持次數(shù)n=16的不可約多項(xiàng)式的數(shù)據(jù)庫(kù)可能是可行的,然而保持次數(shù)n=32的不可約多項(xiàng)式的數(shù)據(jù)庫(kù)是不可行的。
注意,在本上下文中,應(yīng)當(dāng)理解,所述至少兩個(gè)不可約多項(xiàng)式pi(x)是從伽羅瓦域上的所有n次多項(xiàng)式的集合中偽隨機(jī)地選擇的??梢酝ㄟ^(guò)多項(xiàng)式的概率分布對(duì)該選擇進(jìn)行控制。這種概率分布可以有效限制可用多項(xiàng)式的集合。在實(shí)踐中,維護(hù)僅具有伽羅瓦域上所有n次多項(xiàng)式的子集的數(shù)據(jù)庫(kù)相當(dāng)于強(qiáng)制執(zhí)行針對(duì)未包含在數(shù)據(jù)庫(kù)中的多項(xiàng)式具有零概率的概率分布。
根據(jù)本發(fā)明的實(shí)施例,兩個(gè)不可約多項(xiàng)式p1(x)和p2(x)是偽隨機(jī)選擇的,并且生成多項(xiàng)式p(x)被計(jì)算為該兩個(gè)不可約多項(xiàng)式的乘積p(x)=p1(x)·p2(x)。可選地,兩個(gè)偽隨機(jī)地選擇的不可約多項(xiàng)式p1(x)和p2(x)具有相等的次數(shù),即n1=n2=n/2。
根據(jù)本發(fā)明的實(shí)施例,生成多項(xiàng)式p(x)包括非零常數(shù)項(xiàng)。將生成多項(xiàng)式的集合限制為具有非零常數(shù)項(xiàng)的多項(xiàng)式的子集是有利的,如下面進(jìn)一步描述的,原因在于與基于不可約生成多項(xiàng)式的加密CRC相比,基于這種生成多項(xiàng)式的加密校驗(yàn)和具有檢測(cè)相同類型的突發(fā)錯(cuò)誤的能力。
根據(jù)本發(fā)明的實(shí)施例,該方法還包括偽隨機(jī)地生成長(zhǎng)度為n的填充s,其中第一函數(shù)g包括添加(append)填充s。添加偽隨機(jī)地生成的填充的優(yōu)點(diǎn)在于,將通過(guò)散列函數(shù)生成加密校驗(yàn)和的線性變換轉(zhuǎn)換為仿射變換(affine transformation)。在沒(méi)有填充的情況下,對(duì)手可成功地注入全零消息??蛇x地,可以基于第二加密密鑰生成填充,第二加密密鑰可以等于或不同于第一加密密鑰。
根據(jù)本發(fā)明的實(shí)施例,不可約多項(xiàng)式中的至少一個(gè)pi(x)取決于特定于消息的信息。也就是說(shuō),用僅對(duì)于消息的發(fā)送方和接收方是已知的但對(duì)于對(duì)手表現(xiàn)為隨機(jī)的方式,基于特定于消息的信息選擇不可約多項(xiàng)式中的至少一個(gè)。特定于消息的信息可以例如包括以下任一個(gè)或其組合:消息序列號(hào)、消息標(biāo)識(shí)符、消息中包括的時(shí)間戳等。
根據(jù)本發(fā)明的實(shí)施例,提供了一種發(fā)送方認(rèn)證消息的方法。該方法包括:獲取該消息,生成所述消息的加密校驗(yàn)和,將所生成的加密校驗(yàn)和附加至所述消息,發(fā)送所述消息和所附加的加密校驗(yàn)和。消息和所附加的加密校驗(yàn)和被統(tǒng)稱為碼字。
根據(jù)本發(fā)明的實(shí)施例,提供了一種接收方認(rèn)證消息的方法。該方法包括:接收所述消息和附加的第一加密校驗(yàn)和,生成針對(duì)所述消息的第二加密校驗(yàn)和,以及驗(yàn)證第一加密校驗(yàn)和與第二加密校驗(yàn)和是否相同。如果不同,則不能建立消息的完整性。也就是說(shuō),消息已被有意或無(wú)意修改。
即使已經(jīng)在一些情況下參照本發(fā)明的第一方面的實(shí)施例描述了本發(fā)明的優(yōu)點(diǎn),相應(yīng)的理由還適用于本發(fā)明的其他方面的實(shí)施例。
當(dāng)研讀以下的詳細(xì)公開(kāi)、附圖和所附的權(quán)利要求時(shí),本發(fā)明的附加目的、特征和優(yōu)點(diǎn)將變得顯而易見(jiàn)。本領(lǐng)域技術(shù)人員意識(shí)到可以組合本發(fā)明的不同特征,來(lái)創(chuàng)建除以下描述的實(shí)施例以外的實(shí)施例。
附圖說(shuō)明
參照附圖,將通過(guò)以下對(duì)本發(fā)明的實(shí)施例的說(shuō)明性且非限制性的詳細(xì)描述來(lái)更好地理解本發(fā)明的以上加目的、特征和益處以及附加的目的、特征和益處,其中:
圖1示出了通信系統(tǒng)。
圖2示出了碼字。
圖3示出了示意消息認(rèn)證的框圖。
圖4示出了具有針對(duì)不同類型的生成多項(xiàng)式的沖突概率的表格。
圖5示出了根據(jù)本發(fā)明實(shí)施例的發(fā)送方的方法的流程圖。
圖6示出了根據(jù)本發(fā)明實(shí)施例的接收方的方法的流程圖。
圖7示出了根據(jù)本發(fā)明實(shí)施例的發(fā)送方。
圖8示出了根據(jù)本發(fā)明實(shí)施例的接收方。
圖9示出了根據(jù)本發(fā)明另一實(shí)施例的發(fā)送方。
圖10示出了根據(jù)本發(fā)明另一實(shí)施例的接收方。
圖11示出了根據(jù)本發(fā)明實(shí)施例的IC。
圖12示出了根據(jù)本發(fā)明實(shí)施例的移動(dòng)電話。
所有的附圖是示意性的,不一定按比例繪制,并且通常只示出了對(duì)解釋本發(fā)明而言必要的部分,其中其它部分可被省略或僅僅提及。
具體實(shí)施方式
以下將參照附圖更全面地描述本發(fā)明,附圖中示出了本發(fā)明的特定實(shí)施例。然而,本發(fā)明可以按多種不同形式來(lái)體現(xiàn),并且不應(yīng)當(dāng)被解釋為受到本文闡述的實(shí)施例的限制。相反,通過(guò)示例給出這些實(shí)施例,使得本公開(kāi)將透徹和完整,并且向本領(lǐng)域技術(shù)人員充分地傳達(dá)本發(fā)明的范圍。
在圖1中,示出了通信系統(tǒng)100,其包括被配置為通過(guò)通信網(wǎng)絡(luò)103進(jìn)行通信的發(fā)送方101和接收方102。具體地,發(fā)送方101被配置為發(fā)送消息105,并且接收方102被配置為接收消息105。優(yōu)選地,發(fā)送方101和接收方102被配置為發(fā)送和接收消息。發(fā)送方101和接收方102可以是能夠通過(guò)通信網(wǎng)絡(luò)103實(shí)現(xiàn)通信的任意類型的設(shè)備,例如計(jì)算機(jī)、移動(dòng)終端、用戶設(shè)備(UE)、M2M/IoT類型的設(shè)備、無(wú)線接入網(wǎng)絡(luò)(RAN)的節(jié)點(diǎn)(例如網(wǎng)關(guān)、無(wú)線電網(wǎng)絡(luò)控制器(RNC)、無(wú)線電基站(RBS)、節(jié)點(diǎn)B或演進(jìn)的節(jié)點(diǎn)B)。通信網(wǎng)絡(luò)103可以是有線或無(wú)線網(wǎng)絡(luò)(例如,RAN(如GSM、UMTS、LTE、WLAN/WiFi網(wǎng)絡(luò))、以太網(wǎng)網(wǎng)絡(luò)、公司網(wǎng)絡(luò)、互聯(lián)網(wǎng)等)中的任意一個(gè)或其組合。
從發(fā)送方101經(jīng)由通信網(wǎng)絡(luò)103發(fā)送給接收方102的消息105可以經(jīng)受隨機(jī)/無(wú)意或有意/惡意的修改。隨機(jī)修改可以例如由在通信網(wǎng)絡(luò)103的無(wú)線網(wǎng)絡(luò)的空中接口上的傳輸期間發(fā)生的突發(fā)錯(cuò)誤所導(dǎo)致。另一方面,惡意修改可以源自也在圖1中示出的對(duì)手104。對(duì)手104可以攔截發(fā)送方101發(fā)送的消息105,并將該消息的經(jīng)修改副本重新發(fā)送給接收方102。對(duì)手104還可以嘗試生成新消息,而不依賴于對(duì)從發(fā)送方101接收到的消息的修改。通常,對(duì)手104的意圖在于將惡意消息注入接收方102,具體地接收方102的網(wǎng)絡(luò)接口、操作系統(tǒng)或應(yīng)用程序。
本領(lǐng)域中已知,通過(guò)消息105上的完整性保證來(lái)檢測(cè)消息105的隨機(jī)修改。如圖2所示,這可以通過(guò)向消息105提供校驗(yàn)和(例如CRC)來(lái)實(shí)現(xiàn)。
為此,針對(duì)在圖2中被示為包括報(bào)頭201和攜帶有效載荷的主體202的消息204生成校驗(yàn)和203(例如CRC),并將其附加至消息204以形成碼字200。然后將碼字200(與圖1中的消息105相對(duì)應(yīng))發(fā)送給接收方102,在接收方102中驗(yàn)證消息204的完整性,如下面參照示出了框圖300的圖3所描述的,框圖300示出了分別與圖1的發(fā)送方101和接收方102相對(duì)應(yīng)的發(fā)送方側(cè)(圖3中的左側(cè))和接收方側(cè)(圖3中的右側(cè))。
在發(fā)送方101處,獲取要發(fā)送給接收方102的消息204(例如從發(fā)送方101的協(xié)議棧的較高層接收),并饋送到被配置用于計(jì)算第一校驗(yàn)和(圖3中的CS)203(具體地CRC)的算法301中。除了消息204之外,校驗(yàn)和算法301接收共享秘密(例如加密密鑰)作為輸入,并生成第一校驗(yàn)和203作為輸出??蛇x地,校驗(yàn)和算法301可以基于生成哪個(gè)第一校驗(yàn)和203來(lái)附加地接收初始化值(IV)作為輸入。IV可以是校驗(yàn)和算法301的單獨(dú)輸入,或者可以通過(guò)將IV前置或附加至消息204來(lái)當(dāng)做作為消息204的一部分的輸入。然后,例如通過(guò)將校驗(yàn)和203附加至消息204,將消息204和校驗(yàn)和203組合成碼字200。然后,例如經(jīng)由通信網(wǎng)絡(luò)103將碼字200發(fā)送給接收方102。
在接收方102,接收碼字200,并從碼字200中提取消息304。注意,由于在從發(fā)送方101到接收方102的傳輸105期間消息204的隨機(jī)修改和/或有意修改,消息304不是必然與發(fā)送方101發(fā)送的消息204相同。將消息304饋送至校驗(yàn)和算法301中,校驗(yàn)和算法301與發(fā)送方101的校驗(yàn)和算法301相同,且基于消息304以及還基于與發(fā)送方101的共享秘密相同的共享秘密來(lái)生成第二校驗(yàn)和303(圖3中的CS′)??蛇x地,校驗(yàn)和算法301可以另外接收IV作為輸入,該IV與發(fā)送方101的IV相同。然后,通過(guò)將第二校驗(yàn)和303饋送至比較器305,并將第二校驗(yàn)和303與從接收的碼字200提取的第一校驗(yàn)和203進(jìn)行比較來(lái)驗(yàn)證接收消息304的完整性。比較器305將比較結(jié)果還可用于例如接收方102的通信棧的較高層,并指示第一校驗(yàn)和203和第二校驗(yàn)和303是否相同。例如,比較器305輸出的結(jié)果可以是布爾值,其中高值(布爾“1”)指示兩個(gè)校驗(yàn)和相同,并且低值(布爾“0”)指示兩個(gè)校驗(yàn)和不同,或者反過(guò)來(lái)。如果相同,則可以假設(shè)消息304的完整性,即接收方102接收的消息304與由發(fā)送方101發(fā)送的消息204相同。通過(guò)驗(yàn)證消息304的完整性,可以用某一概率推斷消息304在傳輸105期間沒(méi)有被修改。
已知的校驗(yàn)和(具體地作為密碼散列函數(shù)(如HMAC或CBC-MAC)的CRC)被設(shè)計(jì)用于檢測(cè)消息的隨機(jī)修改。更具體地,具有n次生成多項(xiàng)式p(x)的CRC能夠檢測(cè)長(zhǎng)度小于或等于n的所有突發(fā)錯(cuò)誤。此外,CRC將檢測(cè)不是其生成多項(xiàng)式p(x)倍數(shù)的任何錯(cuò)誤??梢酝ㄟ^(guò)硬件(使用LFSR)和軟件有效地實(shí)現(xiàn)對(duì)CRC的編碼和解碼。
針對(duì)在發(fā)送方101處的編碼,通常首先將消息M(x)204乘以xn,并且然后將其對(duì)生成多項(xiàng)式p(x)除法取模。余數(shù)的多項(xiàng)式系數(shù),
r(x)=M(x)·xn mod p(x) (1)
構(gòu)成CRC校驗(yàn)和203(即消息摘要),并將其添加至數(shù)據(jù)比特M(x)·xn以形成碼字200。在本公開(kāi)中,“·”是有限GF乘法(對(duì)于有限GF(2),其與布爾與(AND)等效),并且“mod”是有限域中多項(xiàng)式取模除法的余數(shù)。注意,乘以xn將消息M(x)204移位n比特。也就是說(shuō),在與CRC校驗(yàn)和203組合之前,消息M(x)204被移位了。結(jié)果,獲得的碼字200是可分離的,即,消息比特與校驗(yàn)和比特分離。
針對(duì)接收方102處的解碼,將所接收的數(shù)據(jù)比特M′(x)·xn對(duì)生成多項(xiàng)式p(x)除法取模,并且所得到的余數(shù)的多項(xiàng)式系數(shù)303,
r′(x)=M′(x)·xn mod p(x) (2),
與用碼字200接收的CRC比特r(x)203進(jìn)行比較。如果沒(méi)有發(fā)生錯(cuò)誤,即消息204在傳輸期間沒(méi)有被修改,則余數(shù)r′(x)與接收的余數(shù)r(x)相同。不一致指示錯(cuò)誤,即M′(x)≠M(fèi)(x)。
盡管傳統(tǒng)CRC技術(shù)對(duì)于檢測(cè)隨機(jī)修改或錯(cuò)誤是有用的,但是對(duì)手104可以容易地對(duì)發(fā)送方101發(fā)送的消息進(jìn)行修改,該消息在接收方102通過(guò)CRC校驗(yàn),原因在于校驗(yàn)和算法301使用的生成多項(xiàng)式p(x)不是僅對(duì)于發(fā)送方101和接收方102而言是已知的秘密。例如,對(duì)手104可以向發(fā)送的消息M(x)204添加與作為生成多項(xiàng)式p(x)的倍數(shù)的多項(xiàng)式相對(duì)應(yīng)的錯(cuò)誤e(x),使得e(x)mod p(x)=0。此外,對(duì)手104可以簡(jiǎn)單地將由發(fā)送方101發(fā)送的消息204替代為具推測(cè)具有惡意內(nèi)容的不同的消息304,使用與發(fā)送方101相同的校驗(yàn)和算法301對(duì)其進(jìn)行編碼,并將其發(fā)送給接收方102,在接收方102處它通過(guò)完整性校驗(yàn)。
用于提供數(shù)據(jù)完整性并具體在用戶平面中資源效率高解決方案是:用密碼安全的CRC替代常規(guī)CRC,密碼安全的CRC具有與傳統(tǒng)CRC相同的檢測(cè)隨機(jī)錯(cuò)誤的能力,但其還能夠以高概率檢測(cè)任何有意或惡意的修改。使用與傳統(tǒng)CRC相同大小的密碼安全CRC的結(jié)果是現(xiàn)有協(xié)議??梢员粩U(kuò)展為支持消息認(rèn)證,而不需要重新設(shè)計(jì)整個(gè)協(xié)議棧以便考慮消息大小的變化。
Krawczyk提出的密碼安全的CRC基于使生成多項(xiàng)式是僅發(fā)送方101和接收方102已知的共享秘密的思想。由此,對(duì)手104不能設(shè)計(jì)消息以在接收方102通過(guò)完整性校驗(yàn)。如上文所討論的,這從安全角度來(lái)說(shuō)運(yùn)作良好,但仍受困于資源效率低,原因在于找到不可約多項(xiàng)式并不簡(jiǎn)單。
下面描述的本發(fā)明實(shí)施例的優(yōu)點(diǎn)在于,可以通過(guò)加密校驗(yàn)和來(lái)驗(yàn)證從發(fā)送方101發(fā)送給接收方102的消息105的完整性,加密校驗(yàn)和具有與常規(guī)CRC相同的大小,但除了隨機(jī)錯(cuò)誤之外,其能夠以高概率檢測(cè)故意的惡意修改,常規(guī)CRC對(duì)于惡意修改是受限的。與Krawczyk提出的加密校驗(yàn)和相比,本發(fā)明的實(shí)施例還是有利的,原因在于它們對(duì)資源的要求較低。具體地,通過(guò)使用至少兩個(gè)偽隨機(jī)地選擇的較小不可約多項(xiàng)式的乘積而不是使用單個(gè)不可約多項(xiàng)式來(lái)作為生成多項(xiàng)式,對(duì)于不可約性的測(cè)試在計(jì)算上要求較低,并且維護(hù)不可約多項(xiàng)式集合所需的存儲(chǔ)較小。
為此,本發(fā)明的實(shí)施例使用加密校驗(yàn)和,其在圖2和圖3所示的碼字200中替代常規(guī)校驗(yàn)和203(例如CRC)。注意,在本發(fā)明的一些實(shí)施例中,也可以對(duì)消息204或其部分(例如主體202)進(jìn)行加密。在這種情況下,接收方102可以在執(zhí)行完整性驗(yàn)證之前首先對(duì)消息或消息的部分進(jìn)行解密。備選地,解密過(guò)程的至少一部分可以與校驗(yàn)和驗(yàn)證交織。作為又一備選,可能不需要接收方102首先對(duì)所接收的消息解密。對(duì)在接收方102處首先解密接收到的消息的需要取決于發(fā)送方101的處理順序。例如,如果在生成校驗(yàn)和203并且附加到消息204以形成碼字200之后在發(fā)送方101處應(yīng)用消息加密,則接收方102通常首先需要對(duì)接收碼字進(jìn)行解密。另一方面,如果發(fā)送方101在對(duì)加密消息計(jì)算校驗(yàn)和203之前首先對(duì)消息204進(jìn)行加密,則接收方102可以推遲解密,直到已經(jīng)計(jì)算了校驗(yàn)和203并且已經(jīng)驗(yàn)證了所接收的加密消息的完整性。在本公開(kāi)中,除非另有說(shuō)明,假設(shè)根據(jù)需要執(zhí)行解密。
因此,與下文中所描述的Krawczyk所提出的方案相比,對(duì)在發(fā)送方101(圖3中的CS)和接收方102(圖3中的CS′)中生成密碼安全校驗(yàn)和的校驗(yàn)和算法301分別進(jìn)行修改。
校驗(yàn)和算法301是用于生成消息M(x)204的加密校驗(yàn)和203的散列函數(shù)hp(M),并且包括生成至少兩個(gè)不可約多項(xiàng)式pi(x),i=1...N,N≥2,其中,每個(gè)不可約多項(xiàng)式pi(x)是從伽羅瓦域(特別是階2的伽羅瓦域GF(2))上的所有ni次多項(xiàng)式的集合中生成的,將具有以下次數(shù)的生成多項(xiàng)式p(x)
計(jì)算為N個(gè)不可約多項(xiàng)式pi(x)的乘積,
并將加密校驗(yàn)和203計(jì)算為M(x)的第二函數(shù)(f(M(x)))對(duì)p(x)的取模除法的第一函數(shù)g,即,
hp(M)=g(f(M(x))mod p(x)) (5)。
更具體地,基于第一加密密鑰(即發(fā)送方101和接收方102已知的共享秘密)從相應(yīng)伽羅瓦域上的不可約多項(xiàng)式集合中偽隨機(jī)地選擇不可約多項(xiàng)式pi(x)。例如,如本領(lǐng)域中已知的,可以通過(guò)由訂戶身份模塊(SIM)、通用SIM(USIM)等支持的公鑰技術(shù)或?qū)ΨQ技術(shù)來(lái)建立共享秘密。通過(guò)偽隨機(jī)地選擇至少兩個(gè)不可約多項(xiàng)式pi(x),并將生成多項(xiàng)式形成為該至少兩個(gè)不可約多項(xiàng)式的乘積(其中每個(gè)不可約多項(xiàng)式pi(x)具有次數(shù)ni<n),而不是使用作為類似于Krawczyk的生成多項(xiàng)式的單個(gè)不可約多項(xiàng)式,本發(fā)明的實(shí)施例的優(yōu)點(diǎn)在于,與現(xiàn)有技術(shù)解決方案相比,消息認(rèn)證更少地資源消耗,這對(duì)于受限設(shè)備特別重要。
可選地,生成多項(xiàng)式p(x)可以包括非零常數(shù)項(xiàng),即
p(x)=p′(x)+c·x0 (6),
其中c是非零的(意味著在GF(2)上的多項(xiàng)式的情況下,c=1)。注意,不具有非零常數(shù)項(xiàng)的唯一不可約多項(xiàng)式是pi(x)=x。因此,如果p(x)的所有不可約的因子pi(x)具有非零常數(shù)項(xiàng),則p(x)包括非零常數(shù)項(xiàng)。這是優(yōu)點(diǎn),因?yàn)樗傻募用苄r?yàn)和與類似于Krawczyk的加密校驗(yàn)和具有檢測(cè)相同類型的突發(fā)錯(cuò)誤的能力,其基于如下面進(jìn)一步導(dǎo)出的不可約生成多項(xiàng)式。相反,具有零常數(shù)項(xiàng)(即等式(6)中的c=0)的生成多項(xiàng)式可能會(huì)使檢測(cè)隨機(jī)錯(cuò)誤的能力劣化。例如,基于這種生成多項(xiàng)式的加密校驗(yàn)和可能不能檢測(cè)到一些單比特錯(cuò)誤。
還可選地,第一函數(shù)g可以包括添加長(zhǎng)度為n的填充s,
g(x)=t(M)+s (7)
其中
t(M)=f(M(x))mod p(x) (8),
其中“+”是GF加法(對(duì)于GF(2),其與布爾異或(XOR)運(yùn)算等效)。填充s可以例如基于可與第一加密密鑰相同或與第一加密密鑰不同的第二加密密鑰偽隨機(jī)地生成。第一加密密鑰和/或第二加密密鑰可以根據(jù)第三加密密鑰來(lái)生成,例如通過(guò)根據(jù)第三加密密鑰和對(duì)于發(fā)送方101和接收方102已知的一些信息來(lái)生成偽隨機(jī)比特序列,并選擇所生成的比特序列的一部分來(lái)作為第一加密密鑰,且將比特序列的剩余比特作為第二加密密鑰。添加隨機(jī)填充s的優(yōu)點(diǎn)在于:將通過(guò)散列函數(shù)hp(M)生成加密校驗(yàn)和的線性變換(即,hp(A)+hp(B)=hp(A+B))轉(zhuǎn)換為仿射變換hp(M)+s。在沒(méi)有填充的情況下,hp(0)=0,與用于散列函數(shù)的生成多項(xiàng)式無(wú)關(guān),使對(duì)手能夠注入全零消息。注意,如果在發(fā)送方101處應(yīng)用使用流密碼的加密,則可以通過(guò)加密函數(shù)提供填充s,由此對(duì)加密和完整性處理進(jìn)行“交織”。在這種情況下,接收方102可以(i)首先通過(guò)解密去除填充s,并且然后僅將hp(M)作為校驗(yàn)和203,或者(ii)不去除填充s而是將hp(M)+s作為校驗(yàn)和203。
在本發(fā)明的實(shí)施例中使用的填充類似于在20世紀(jì)早期由Vernam引入的公知的一次性填充。在Vernam密碼中,使用布爾異或運(yùn)算將消息與填充逐比特組合。在本發(fā)明的實(shí)施例中,用類似的方式將填充與加密校驗(yàn)和組合。
在下文中,對(duì)所提出的用于根據(jù)本發(fā)明的實(shí)施例計(jì)算加密校驗(yàn)和的族散列函數(shù)的安全性進(jìn)行分析,并將其與現(xiàn)有技術(shù)解決方案(具體地類似于Krawczyk的加密校驗(yàn)和)進(jìn)行比較。
考慮如下定義的(m,n)族加密安全散列函數(shù)。對(duì)于二進(jìn)制長(zhǎng)度為m的任意消息M(x)以及針對(duì)根據(jù)等式(4)的每個(gè)生成多項(xiàng)式p(x),其中pi(x)是伽羅瓦域上的ni次不可約多項(xiàng)式,使得等式(3)適用,散列函數(shù)hp被定義為以下多項(xiàng)式的二進(jìn)制系數(shù)
hD(M)=M(x)·xn mod p(x) (9)。
為計(jì)算認(rèn)證標(biāo)簽,即消息摘要或密碼安全校驗(yàn)和,
t(M)=hp(M)+s (10),
偽隨機(jī)地生成至少兩個(gè)不可約多項(xiàng)式pi(x),根據(jù)等式(4)形成生成多項(xiàng)式p(x),評(píng)估散列函數(shù)hD,并且顯式地或作為加密處理的一部分來(lái)添加偽隨機(jī)地生成的填充s。注意,生成不可約多項(xiàng)式pi(x)需要對(duì)從伽羅瓦域上的所有ni次多項(xiàng)式的集合中偽隨機(jī)地選擇的每個(gè)多項(xiàng)式運(yùn)行不可約性測(cè)試,或者從包括階數(shù)為n的伽羅瓦域上的(優(yōu)選地所有)ni次不可約多項(xiàng)式的數(shù)據(jù)庫(kù)中偽隨機(jī)地提取每個(gè)不可約的多項(xiàng)式pi(x)。
為分析所提出的散列函數(shù)族的安全性,假設(shè)如果對(duì)手104看到M(x)和t之后可以找到消息M′(x)≠M(fèi)(x)使得t′=t,則對(duì)手104成功地破解認(rèn)證。這里假設(shè)對(duì)手104知道(m,n)散列函數(shù)族,而不知道用于認(rèn)證具體消息的具體散列函數(shù)hp和填充s。
通過(guò)考慮CRC在給定長(zhǎng)度的所有消息上的分布來(lái)執(zhí)行分析。注意,這里考慮最壞情況的場(chǎng)景,即假設(shè)對(duì)手104將通過(guò)嘗試設(shè)計(jì)校驗(yàn)和使他的機(jī)會(huì)最大,并假設(shè)對(duì)手104知道(并選擇)使成功概率最大的那些消息。因此,成功的概率將取決于兩個(gè)不同的消息M和M′將具有根據(jù)等式(10)計(jì)算的相同校驗(yàn)和t的最大概率,原因在于這意味著對(duì)手104可以用另一消息替代由發(fā)送方101發(fā)送的消息而不被檢測(cè)到,即在接收方102處通過(guò)完整性校驗(yàn)。也就是說(shuō),尋找
maxM,M′Pr[hp(M)=hp(M′)] (11),
其中該最大值是針對(duì)所有不同的m比特消息M和M′取的,且概率Pr是針對(duì)定義散列函數(shù)的根據(jù)等式(4)的生成多項(xiàng)式p(x)的隨機(jī)選擇來(lái)取的。注意,填充s的存在不影響概率,原因在于當(dāng)且僅當(dāng)hp(M)=hp(M′)時(shí)hp(M)+s=hp(M′)+s。還要注意,概率是統(tǒng)計(jì)量,并且預(yù)測(cè)隨機(jī)事件的最佳策略是根據(jù)事件的統(tǒng)計(jì)分布做出預(yù)測(cè)。例如,無(wú)論什么資源可用,預(yù)測(cè)(假想的,完美硬幣)擲硬幣是出現(xiàn)正面還是反面不能以大于1/2的成功概率完成。因此,無(wú)論對(duì)手可能具有可供其使用的什么計(jì)算資源,等式(11)導(dǎo)致任何對(duì)手的成功概率的上限。
根據(jù)定理4(見(jiàn)附錄),對(duì)于m和n的任意值,并且對(duì)于任意消息M,沒(méi)有對(duì)手能夠以大于以下所示的概率來(lái)成功破解使用基于隨機(jī)選擇的生成多項(xiàng)式的加密校驗(yàn)和的認(rèn)證
ε≤(m+n)/2n-N (12),
假設(shè)對(duì)于所有i,j∈{1,2,...,N},ni≠nj,或者對(duì)于所有i,j∈{1,2,...,N},ni=nj。概率ε被稱為沖突概率。
在下面,考慮N=2,即生成多項(xiàng)式p(x)是兩個(gè)不可約多項(xiàng)式的乘積的特殊情況,即
p(x)=p1(x)·p2(x) (13)。
基于兩個(gè)不可約多項(xiàng)式的乘積的實(shí)施例的優(yōu)點(diǎn)在于:與三個(gè)或更多個(gè)多項(xiàng)式的乘法相比,兩個(gè)多項(xiàng)式的乘法在計(jì)算上要求較低。此外,根據(jù)等式(12),沖突概率隨N增長(zhǎng)而迅速減小(即,加密校驗(yàn)的期望安全性降低)。對(duì)于N=2,能夠?qū)С鰶_突概率的更精確的邊界。在附錄中給出的引理1中,示出了:
針對(duì)不可約多項(xiàng)式p1(x)和p2(x)分別具有不同次數(shù)n1和n2的情況,
ε1≤(m+n)2/2n 如果n1≠n2(14),
以及
針對(duì)不可約多項(xiàng)式p1(x)和p2(x)具有相同次數(shù)n1=n2=n/2的情況,
如果n1=n2(15)在圖4所示的表400(分別為第三列和第四列)中給出了沖突概率ε1和ε2的結(jié)果值。
為了比較,表400的第五列示出了對(duì)于類似于Krawczyk的不可約生成多項(xiàng)式的情況的沖突概率ε0的值,在這種情況下,由(m+n)/2n-1給出不可約生成多項(xiàng)式的沖突概率。
從表400中可以看出,對(duì)于使用具有不同次數(shù)(第三列)和相等次數(shù)(第四列)的兩個(gè)不可約多項(xiàng)式的乘積來(lái)作為生成多項(xiàng)式的本發(fā)明的實(shí)施例,相應(yīng)的沖突概率高于類似于Krawczyk的不可約多項(xiàng)式(第五列)。也就是說(shuō),針對(duì)給定消息大小,它們提供更低的安全性級(jí)別。因此,在安全性和資源效率之間存在折中。針對(duì)可接受較低級(jí)別的安全性的應(yīng)用,本發(fā)明的實(shí)施例的優(yōu)點(diǎn)在于:它們對(duì)資源的要求較低。從表400還可以看出,所提出的加密校驗(yàn)和可以對(duì)短的消息或中等大小的消息特別有利,原因在于本發(fā)明的實(shí)施例提供的安全級(jí)別與類似于Krawczyk的加密校驗(yàn)和相比,隨消息大小衰減得更快。
從表400還可以看出,依賴于將具有相等次數(shù)的兩個(gè)不可約多項(xiàng)式的乘積作為生成多項(xiàng)式的實(shí)施例的沖突概率(即根據(jù)等式(15)的ε2)小于將具有不同次數(shù)的兩個(gè)不可約多項(xiàng)式的乘積(根據(jù)等式(14)的ε1)作為生成多項(xiàng)式的沖突概率(根據(jù)等式(14)的ε1)。因此,基于相等次數(shù)的兩個(gè)不可約多項(xiàng)式的乘積的實(shí)施例是的優(yōu)點(diǎn)在于:除資源要求較少之外,它們還提供改善的安全性。例如,可以設(shè)想本發(fā)明的實(shí)施例,其維護(hù)n/2次數(shù)的不可約多項(xiàng)式的數(shù)據(jù)庫(kù),其中n是所需的校驗(yàn)和大小,并從數(shù)據(jù)庫(kù)中偽隨機(jī)地選擇p1(x)和p2(x)。
注意,盡管本文提出的安全分析是基于均勻隨機(jī)參數(shù)(例如多項(xiàng)式)的假設(shè),但實(shí)際上這些參數(shù)是偽隨機(jī)生成的。然而,該區(qū)別不重要,原因在于已知偽隨機(jī)生成器生成輸出分布,在實(shí)踐中不能將該輸出分布與均勻分布區(qū)分開(kāi)。因此,對(duì)手不能充分使用分布中的這些差異。
本發(fā)明的實(shí)施例以對(duì)于發(fā)送方101和接收方102確定性的方式來(lái)基于針對(duì)對(duì)手104的對(duì)生成多項(xiàng)式p(x)和填充s中的至少一個(gè)的不可預(yù)測(cè)的改變。也就是說(shuō),生成多項(xiàng)式p(x)和/或填充s的變化在發(fā)送方101和接收方102之間必須同步。
基于其來(lái)偽隨機(jī)地選擇不可約多項(xiàng)式的共享秘密(即,第一加密密鑰)旨在使得校驗(yàn)和算法301的輸出對(duì)于對(duì)手104不可預(yù)測(cè),但校驗(yàn)和算法301可以可選地基于某一消息相關(guān)數(shù)據(jù)(例如消息的序列號(hào)或消息中的一些其他唯一信息(例如時(shí)間戳、消息標(biāo)識(shí)符或隨機(jī)數(shù)))確定不可約多項(xiàng)式pi(x)中的至少一個(gè)。例如可以在消息204的報(bào)頭201中攜帶這種附加信息。
通常,可能不需要針對(duì)每個(gè)消息計(jì)算新的生成多項(xiàng)式,但是在發(fā)送方101和接收方102之間的新會(huì)話開(kāi)始時(shí)生成生成多項(xiàng)式,并在會(huì)話期間將它對(duì)于在發(fā)送方101和接收方102之間交換的所有消息保持固定就足矣。然而,該填充然后必須針對(duì)每個(gè)消息改變,并且可以根據(jù)消息相關(guān)數(shù)據(jù)(即,特定于消息的信息)而改變。
在圖5中,示出了發(fā)送方認(rèn)證消息的方法的實(shí)施例500。方法500的實(shí)施例可以例如由發(fā)送方101執(zhí)行。方法500包括:例如從發(fā)送方101的通信棧的較高層或正由發(fā)送方101執(zhí)行的應(yīng)用獲取501消息,生成消息的加密校驗(yàn)和,通過(guò)將生成的加密校驗(yàn)和附加506至消息來(lái)形成碼字,以及發(fā)送507碼字,即消息和附加的加密校驗(yàn)和。
更具體地,如先前所描述的,生成加密校驗(yàn)和包括:基于第一加密密鑰偽隨機(jī)地選擇502至少兩個(gè)不可約多項(xiàng)式pi(x),其中每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合,將次數(shù)的生成多項(xiàng)式p(x)計(jì)算503為N個(gè)不可約多項(xiàng)式pi(x)的乘積,以及將加密校驗(yàn)和計(jì)算505為M(x)的第二函數(shù)f(M(x))對(duì)p(x)的取模除法的第一函數(shù)g,即,g(f(M(x))mod p(x))。第一加密密鑰是消息的發(fā)送方和接收方已知的共享秘密。可選地,生成多項(xiàng)式可以包括非零常數(shù)項(xiàng)。生成加密校驗(yàn)和還可以包括偽隨機(jī)地生成504長(zhǎng)度為n的填充s,其中第一函數(shù)g包括添加填充s。填充s可以基于第二加密密鑰來(lái)生成,第二加密密鑰可以等于第一加密密鑰或與第一加密密鑰不同。第二加密密鑰和第一加密密鑰是消息的發(fā)送方和接收方已知的共享秘密??蛇x地,可以根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。
在圖6中,示出了接收方認(rèn)證消息的方法的實(shí)施例600。方法的實(shí)施例600可以例如由接收方102執(zhí)行。方法600包括:接收601碼字,即消息和附加的第一加密校驗(yàn)和,生成針對(duì)消息的第二加密校驗(yàn)和,以及驗(yàn)證606第一加密校驗(yàn)和與第二加密校驗(yàn)和是否相同。如果不同,則不能建立消息的完整性。也就是說(shuō),消息已被意外/隨機(jī)或有意/惡意地修改。
更具體地,如先前所描述的,生成第二加密校驗(yàn)和包括:基于第一加密密鑰偽隨機(jī)地選擇602至少兩個(gè)不可約多項(xiàng)式pi(x),其中每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合,將次數(shù)的第二生成多項(xiàng)式p(x)計(jì)算603為所述N個(gè)不可約多項(xiàng)式pi(x)的乘積,以及將加密校驗(yàn)和計(jì)算605為M(x)的第二函數(shù)f(M(x))對(duì)p(x)的取模除法的第一函數(shù)g,即,g(f(M(x))mod p(x))。第一加密密鑰是消息的發(fā)送方和接收方已知的共享秘密??蛇x地,生成多項(xiàng)式可以包括非零常數(shù)項(xiàng)。生成第二加密校驗(yàn)和還可以包括偽隨機(jī)地生成604長(zhǎng)度為n的填充s,其中第一函數(shù)g包括添加填充s。填充s可以基于第二加密密鑰來(lái)生成,第二加密密鑰可以等于第一加密密鑰或與第一加密密鑰不同。第二加密密鑰和第一加密密鑰是消息的發(fā)送方和接收方已知的共享秘密。可選地,可以根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。
根據(jù)本發(fā)明實(shí)施例的加密校驗(yàn)和的計(jì)算基于與用于常規(guī)CRC的操作相同類型的操作。因此,除本發(fā)明的實(shí)施例使用可變偽隨機(jī)生成多項(xiàng)式之外,其保留了傳統(tǒng)CRC的大部分簡(jiǎn)單性。因此,用硬件實(shí)現(xiàn)本發(fā)明的實(shí)施例很簡(jiǎn)單,并且所得到的實(shí)施方式的資源效率非常高效。如本領(lǐng)域中已知的,可以通過(guò)LFSR來(lái)實(shí)現(xiàn)對(duì)GF(2)上的多項(xiàng)式進(jìn)行除法取模的運(yùn)算,其中LFSR的抽頭確定生成多項(xiàng)式p(x)。甚至可以用具有高性能的硬件實(shí)現(xiàn)乘以xn。然而,與傳統(tǒng)的CRC相反,根據(jù)本發(fā)明的實(shí)施例的加密校驗(yàn)需要反饋連接可編程的實(shí)現(xiàn),在傳統(tǒng)的CRC中,生成多項(xiàng)式是固定的并是事先已知的,并且實(shí)現(xiàn)電路通常具有硬連線地確定生成多項(xiàng)式的反饋連接。這些反饋連接的實(shí)際配置是散列的核心,并且其應(yīng)該是可改變的和秘密的。注意,如果一些非加密CRC電路需要基于不同的生成多項(xiàng)式支持不同的CRC標(biāo)準(zhǔn),或者支持不同的多項(xiàng)式次數(shù),它們也可以使用可編程連接[參見(jiàn),例如,J.Birch、L.G.Christensen和M.Skov的“A programmable 800Mbit/s CRC check/generator unit for LAN6and MANs”,Comp.Networks and ISDN Sys.,1992]。
重要的是指出,將偽隨機(jī)地選擇的生成多項(xiàng)式的集合限制為具有非零常數(shù)項(xiàng)的多項(xiàng)式的集合不會(huì)使根據(jù)本發(fā)明的實(shí)施例的校驗(yàn)和生成器的實(shí)現(xiàn)復(fù)雜化。僅有的區(qū)別在于,對(duì)于這種多項(xiàng)式,與多項(xiàng)式的常數(shù)項(xiàng)相對(duì)應(yīng)的LFSR抽頭可以是固定的而不是可編程的。
也存在CRC生成器用軟件的有效實(shí)現(xiàn)。在這些實(shí)現(xiàn)中,通過(guò)使用預(yù)計(jì)算表格實(shí)現(xiàn)了顯著的加速,預(yù)計(jì)算表格取決于基于其偽隨機(jī)地選擇具體加密密鑰的生成多項(xiàng)式。因此,針對(duì)每個(gè)加密密鑰僅對(duì)它們計(jì)算一次,這在許多應(yīng)用中是可承受的。
根據(jù)本發(fā)明實(shí)施例的散列函數(shù)族中的函數(shù)基本上由生成多項(xiàng)式p(x)定義,而不是由對(duì)其應(yīng)用散列函數(shù)的消息的長(zhǎng)度來(lái)定義。因此,如在實(shí)踐中所期望的,可以將它們應(yīng)用于不同長(zhǎng)度的消息。具體地,對(duì)應(yīng)于消息M(x)的多項(xiàng)式應(yīng)當(dāng)使“1”作為前導(dǎo)系數(shù)(leading coefficient),而不是“0”(如果M具有長(zhǎng)度m,則M(x)具有適當(dāng)?shù)拇螖?shù)m)。這確定了消息與多項(xiàng)式之間的一一映射關(guān)系,并具體地通過(guò)僅向消息附加零來(lái)防止改變消息。例如,消息01011應(yīng)被視為4比特消息1011,而不是5比特消息。否則,兩個(gè)消息由相同的消息多項(xiàng)式1·x3+0·x2+1·x1+1·x0=x3+x1+1表示,并將因此在編碼之后具有相同的校驗(yàn)和。否則,對(duì)手知道新消息應(yīng)該具有相同的校驗(yàn)和,可以簡(jiǎn)單地將一個(gè)或多個(gè)前導(dǎo)零附加到消息。備選地或附加地,顯式長(zhǎng)度指示可以用作認(rèn)證/驗(yàn)證過(guò)程的輸入,例如通過(guò)將消息長(zhǎng)度前置或附加至消息。
在接收方側(cè),可以通過(guò)有限狀態(tài)機(jī)(FSM)有效地實(shí)現(xiàn)消息的完整性的驗(yàn)證,該有限狀態(tài)機(jī)與消息元素的順序接收或多或少同時(shí)地處理消息,元素通常是比特。這種FSM還可以被集成在接收方的媒體訪問(wèn)控制(MAC)層內(nèi),并且通常由校驗(yàn)和解碼器、比較器和控制塊組成。在接收消息元素到達(dá)時(shí),校驗(yàn)和解碼器一個(gè)接一個(gè)地(即逐比特地)重新計(jì)算接收消息元素的校驗(yàn)比特。比較器將重新計(jì)算的校驗(yàn)比特與消息中接收到的校驗(yàn)比特(即,認(rèn)證標(biāo)簽或校驗(yàn)和)進(jìn)行比較。如果重新計(jì)算的校驗(yàn)比特和接收到的校驗(yàn)比特不一致,則比較器向控制塊發(fā)送指示不能驗(yàn)證消息完整性的出錯(cuò)信號(hào)。
在圖7中,示出了認(rèn)證消息的發(fā)送方的實(shí)施例700,例如圖1中所示的發(fā)送方101。發(fā)送方700包括:消息緩存701,其例如從發(fā)送方700的通信棧的較高層或正由發(fā)送方700執(zhí)行的應(yīng)用獲取消息,校驗(yàn)和生成器702,其用于生成消息的加密校驗(yàn)和,碼字緩存703,其用于通過(guò)將生成加密校驗(yàn)和附加至消息來(lái)形成碼字,以及接口704,用于發(fā)送碼字(即消息和附加的加密校驗(yàn)和),以及共享秘密模塊705,用于向校驗(yàn)和生成器702提供第一加密密鑰(即,對(duì)于消息的發(fā)送方700和接收方已知的共享秘密)。接口704可以是例如被配置用于實(shí)現(xiàn)與RAN通信的網(wǎng)絡(luò)接口或無(wú)線電收發(fā)機(jī)。
更具體地,如先前所描述的,校驗(yàn)和生成器702被配置為通過(guò)以下操作生成加密校驗(yàn)和:基于第一加密密鑰偽隨機(jī)地選擇至少兩個(gè)不可約多項(xiàng)式pi(x),其中每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合,將次數(shù)的生成多項(xiàng)式p(x)計(jì)算為N個(gè)不可約多項(xiàng)式pi(x)的乘積,以及將加密校驗(yàn)和計(jì)算為M(x)的第二函數(shù)f(M(x))對(duì)p(x)的取模除法的第一函數(shù)g,即,g(f(M(x))mod p(x))??蛇x地,生成多項(xiàng)式可以包括非零常數(shù)項(xiàng)。校驗(yàn)和生成器702還可以被配置為偽隨機(jī)地生成長(zhǎng)度為n的填充s,其中第一函數(shù)g包括添加填充s。填充s可以基于第二加密密鑰來(lái)生成,第二加密密鑰可以等于第一加密密鑰或與第一加密密鑰不同。第二加密密鑰是消息的發(fā)送方700和接收方已知的共享秘密??蛇x地,可以根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。因此,共享秘密模塊705還可以被配置為向校驗(yàn)和生成器702提供第二加密密鑰。備選地,填充s可以由如上所述的加密算法提供,而不是由校驗(yàn)和生成器702生成。
可選地,校驗(yàn)和生成器702可以被配置為根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)來(lái)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。這種信息可以用作校驗(yàn)和生成器702(特別是包括在校驗(yàn)和生成器702中的LFSR)的輸入。
在圖8中,示出了認(rèn)證消息的接收方的實(shí)施例800,例如圖1中所示的接收方102。接收方800包括用于接收碼字(即,消息和附加的第一加密校驗(yàn)和)的接口801,用于從接收到的碼字中提取消息和第一加密校驗(yàn)和的碼字緩存802,用于生成針對(duì)消息的第二加密校驗(yàn)和的校驗(yàn)和生成器803,用于驗(yàn)證第一加密校驗(yàn)和與第二加密校驗(yàn)和是否相同的比較器804,以及用于向校驗(yàn)和生成器803提供第一加密密鑰(即消息的接收方800和發(fā)送方已知的共享秘密)共享秘密模塊805。接收方800還可以包括消息緩存806,用于存儲(chǔ)接收到的消息,并且響應(yīng)于比較器804接收到的已經(jīng)驗(yàn)證所接收消息的完整性的指示,將消息傳送給接收方800的通信棧的較高層或由接收方800執(zhí)行的應(yīng)用。接口801可以是例如被配置用于實(shí)現(xiàn)與RAN的通信的網(wǎng)絡(luò)接口或無(wú)線電收發(fā)機(jī)。
更具體地,如先前所描述的,校驗(yàn)和生成器803與參照?qǐng)D7描述的校驗(yàn)和生成器702類似,并被配置為通過(guò)以下操作生成第二加密校驗(yàn)和:基于第一加密密鑰偽隨機(jī)地選擇至少兩個(gè)不可約多項(xiàng)式pi(x),其中每個(gè)不可約多項(xiàng)式pi(x)選自伽羅瓦域上的所有ni次不可約多項(xiàng)式的集合,將次數(shù)的生成多項(xiàng)式p(x)計(jì)算為N個(gè)不可約多項(xiàng)式pi(x)的乘積,以及將第二加密校驗(yàn)和計(jì)算為M(x)的第二函數(shù)(f(M(x)))對(duì)p(x)的取模除法的第一函數(shù)g,即,g(f(M(x))mod p(x))。可選地,生成多項(xiàng)式可以包括非零常數(shù)項(xiàng)。校驗(yàn)和生成器803還可以被配置為偽隨機(jī)地生成長(zhǎng)度為n的填充s,其中第一函數(shù)g包括添加填充s。填充s可以基于可以第二加密密鑰來(lái)生成,第二加密密鑰可以等于第一加密密鑰或與第一加密密鑰不同。第二加密密鑰是消息的接收方800和發(fā)送方已知的共享秘密。可選地,可以根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。因此,共享秘密模塊806還可以被配置為向校驗(yàn)和生成器803提供第二加密密鑰。備選地,填充s可以由如上所述的加密算法提供,而不是由校驗(yàn)和生成器803生成。
可選地,校驗(yàn)和生成器803可以被配置為根據(jù)特定于消息的信息(例如消息序列號(hào)、時(shí)間戳、隨機(jī)數(shù)等)來(lái)生成生成多項(xiàng)式p(x)和填充s中的至少一個(gè),或其二者。這種信息可以用作校驗(yàn)和生成器803(特別是包括在校驗(yàn)和生成器803中的LFSR)的輸入。
如本領(lǐng)域已知的,發(fā)送方700和接收方800的實(shí)施例可以用硬件、軟件或其組合來(lái)實(shí)現(xiàn)。例如,模塊701-705和模塊801-806可以通過(guò)電子電路(具體地?cái)?shù)字二進(jìn)制邏輯)來(lái)實(shí)現(xiàn)。備選地,模塊701-705和模塊801-806可以基于數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)。應(yīng)當(dāng)理解,接口704和801可以包括被配置為通過(guò)RAN的空中接口分別發(fā)送或接收碼字的模擬電子電路。
校驗(yàn)和生成器702和803的實(shí)施例與標(biāo)準(zhǔn)CRC生成器非常相似地操作,標(biāo)準(zhǔn)CRC生成器的實(shí)現(xiàn)是本領(lǐng)域中已知的。依靠偽隨機(jī)地生成的填充s的校驗(yàn)和生成器702和803的實(shí)施例可以通過(guò)在表示f(M(x))mod p(x)的n比特字符串與n比特填充s之間的逐比特異或運(yùn)算來(lái)實(shí)現(xiàn)填充s的添加。
在圖9中,示出了用于認(rèn)證消息的發(fā)送方的備選實(shí)施例900。發(fā)送方900包括處理器901(例如DSP)和包括軟件(即,包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)程序903)的存儲(chǔ)器902,當(dāng)計(jì)算機(jī)可執(zhí)行指令在處理器901上執(zhí)行時(shí),使發(fā)送方900實(shí)現(xiàn)本文以上描述的(具體參照?qǐng)D5)發(fā)送方900對(duì)消息進(jìn)行認(rèn)證的方法的實(shí)施例。發(fā)送方900還可以包括用于經(jīng)由通信網(wǎng)絡(luò)(例如,通信網(wǎng)絡(luò)103)進(jìn)行通信的接口904。接口904可以例如是被配置為用于實(shí)現(xiàn)與RAN的通信的網(wǎng)絡(luò)接口或無(wú)線電收發(fā)機(jī)。
在圖10中,示出了用于認(rèn)證消息的接收方的備選實(shí)施例1000。接收方1000包括處理器1001(例如DSP)和包括軟件(即,包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)程序1003)的存儲(chǔ)器1002,當(dāng)計(jì)算機(jī)可執(zhí)行指令在處理器1001上執(zhí)行時(shí),使接收方1000實(shí)現(xiàn)本文以上描述的(具體參照?qǐng)D6)接收方1000對(duì)消息進(jìn)行認(rèn)證的方法的實(shí)施例。接收方1000還可以包括用于經(jīng)由通信網(wǎng)絡(luò)(例如,通信網(wǎng)絡(luò)103)進(jìn)行通信的接口1004。接口1004可以例如是被配置為用于實(shí)現(xiàn)與RAN的通信的網(wǎng)絡(luò)接口或無(wú)線電收發(fā)機(jī)。
參照?qǐng)D7至圖10描述的發(fā)送方和接收方的實(shí)施例1101可以用圖11所示的集成電路(IC)1100實(shí)現(xiàn)。此外,參照?qǐng)D7至圖10描述的發(fā)送方和接收方的實(shí)施例1201也可以用移動(dòng)終端(例如圖12所示的移動(dòng)電話1200)來(lái)實(shí)現(xiàn)。作為又一備選,參照?qǐng)D7至10描述的發(fā)送方和接收方的實(shí)施例1201還可以在RAN的節(jié)點(diǎn)中實(shí)現(xiàn),例如,網(wǎng)關(guān)、RNC或無(wú)線電接入節(jié)點(diǎn)(例如RBS、節(jié)點(diǎn)B、演進(jìn)的節(jié)點(diǎn)B、WLAN接入點(diǎn)等)。
本領(lǐng)域技術(shù)人員意識(shí)到本發(fā)明絕不限于上述實(shí)施例。相反,可以在所附的權(quán)利要求的范圍內(nèi)做出許多修改和變型。
附錄
假設(shè)p(x)是具有以下類型的GF(2)上的多項(xiàng)式
其中N>1并且每個(gè)pi(x)是具有非零常數(shù)項(xiàng)的次數(shù)為ni的不可約多項(xiàng)式,并且注意在GF(2)中僅存在一個(gè)不具有非零常數(shù)項(xiàng)的不可約多項(xiàng)式,即多項(xiàng)式x。
如下定義(m,n)族加密安全CRC散列函數(shù)。
定義1:對(duì)于任意m比特消息M(x)并且對(duì)于每個(gè)根據(jù)等式(1)的p(x),散列函數(shù)hp(M)定義為
hp(M)=M(x)·xnmodp(x) (2)
(m,n)族被定義為由所有這些函數(shù)的集合組成,即每個(gè)p(x)定義族的一個(gè)成員。
現(xiàn)在研究(m,n)族散列函數(shù)的錯(cuò)誤檢測(cè)能力。
眾所周知,基于次數(shù)n>1的不可約生成多項(xiàng)式的CRC具有檢測(cè)長(zhǎng)度為n或更小的所有突發(fā)錯(cuò)誤的能力(W.W.Peterson和D.T.Brown,“Cyclic Codes for Error Detection”,Proceedings of the IRE中,49卷,1961,第228-235頁(yè))。下面,示出了基于根據(jù)式等式(1)的生成多項(xiàng)式p(x)的加密安全CRC能夠檢測(cè)相同類型的錯(cuò)誤。假設(shè)deg(p(x))表示多項(xiàng)式p(x)的次數(shù)。
定理1基于根據(jù)等式1的生成多項(xiàng)式p(x)的CRC與基于次數(shù)等于deg(p(x))的不可約生成多項(xiàng)式的CRC能夠檢測(cè)相同類型的突發(fā)錯(cuò)誤。證明:基于任意生成多項(xiàng)式p(x)的CRC檢測(cè)所有錯(cuò)誤,除了是p(x)倍數(shù)的錯(cuò)誤。如果p(x)是根據(jù)等式(1)的類型,則其所有因子都是具有非零常數(shù)項(xiàng)的多項(xiàng)式。
次數(shù)n>0的任意突發(fā)錯(cuò)誤可以由以下類型的多項(xiàng)式描述
b(x)=xi·a(x) (3)
其中
a(x)=xn-i-1+xn-i-2+…+x+1 (4)
對(duì)于i∈{0,1,...,n-1}。當(dāng)且僅當(dāng)p(x)的所有因子也是b(x)的因子時(shí),多項(xiàng)式b(x)是p(x)的倍數(shù)。
由于p(x)的次數(shù)至少比a(x)的次數(shù)大1,p(x)≠a(x)。因此,作為b(x)的倍數(shù),p(x)必須具有類型p(x)=a(x)·c(x),其中c(x)是具有次數(shù)至少為1的非零常數(shù)項(xiàng)的多項(xiàng)式。
然而,由于除a(x)之外,b(x)的所有其他因子具有零常數(shù)項(xiàng),c(x)不能是b(x)的因子。因此,基于根據(jù)等式(1)的n次生成多項(xiàng)式p(x)的CRC能夠檢測(cè)長(zhǎng)度為n或更小的所有突發(fā)錯(cuò)誤。
在給出本發(fā)明的實(shí)施例的沖突概率的分析之前,這里給出一些背景定義和定理(定義1至3和定理2和3來(lái)自H.Krawczyk,“LFSR-based Hashing and Authentication”,在Advances in Cryptology-CRYPTO′94,Lecture Notes in Computer Science,卷839,Springer,1994,第129-139頁(yè))。
定義2:如果對(duì)于所有消息M和M′下式成立,散列函數(shù)H的族被稱為+-線性,
h(M+M′)=h(M)+h(M′) (5)
針對(duì)我們的目的,將總是在伽羅瓦域(典型地在GF(2)的擴(kuò)展)中定義“+”操作。
定義3:如果對(duì)于長(zhǎng)度為m的任意非零消息M以及針對(duì)長(zhǎng)度為m的任意二進(jìn)制字符串c,下式成立,則散列函數(shù)族稱為ε平衡,
Pr|hp(M)=c|≤ε (6)
其中在hp上取概率,hp是從族中均勻地隨機(jī)選擇的。
定義4:如果對(duì)于任意消息M沒(méi)有對(duì)手以大于ε的概率成功破解認(rèn)證,散列函數(shù)族被稱為ε-opt-安全。
定理2散列函數(shù)族H要ε-opt-安全的充分必要條件是
并且Pr|h(M1)+h(M2)=c|≤ε (7)
定理3如果H是+-線性的,則當(dāng)且僅當(dāng)H是ε平衡時(shí),H才是ε-opt-安全的。
以下,示出了沒(méi)有對(duì)手能夠以大于等式(8)給出的ε的概率基于所呈現(xiàn)的(m,n)族(即,基于這樣定義的CRC)成功破解認(rèn)證,假設(shè)或者針對(duì)所有i,j∈{1,2,...,N},ni≠nj,或針對(duì)所有i,j∈{1,2,...,N},ni=nj。注意,該證明是針對(duì)GF(2)訂制的。本領(lǐng)域技術(shù)人員將理解如何將證明適用于針對(duì)任意q的GF(q)。
定理4對(duì)于n和m的任意值,定義1給出的散列函數(shù)族是ε-opt-安全的,其中
假設(shè)或者針對(duì)所有i,.j∈{1,2,...,N},ni≠nj,或者針對(duì)所有i,j∈{1,2,...,N},ni=nj,其中ni是等式(1)中pi(x)的次數(shù)。
證明:根據(jù)定理3,如果散列函數(shù)族是+-線性的,那么當(dāng)且僅當(dāng)它是ε平衡時(shí),它才是ε-opt-安全。顯然,定義1給出的散列函數(shù)族是+-線性的,原因在于對(duì)多項(xiàng)式進(jìn)行取模除法是線性運(yùn)算。接下來(lái),我們示出該族也ε平衡的。
首先,我們觀察到對(duì)于任意n次生成多項(xiàng)式p(x)、任意m個(gè)非零比特消息M和任意n比特字符串c,當(dāng)且僅當(dāng)M(x)·xnmodp(x)=c(x)時(shí),hp(M)=c,其中c(x)是由比特串c定義的多項(xiàng)式。其次,當(dāng)且僅當(dāng)p(x)整除M(x)·xn-c(x)時(shí),M(x)·xnmodp(x)=c(x)。
假設(shè)g(x)=M(x)·xn-c(x)。顯然,q(x)是次數(shù)不大于m+n的非零多項(xiàng)式,并且p(x)是整除q(x)的n次多項(xiàng)式。
情況1:假設(shè)針對(duì)所有i,j∈{1,2,...,N},ni≠nj。
由于唯一因式分解特性,針對(duì)每個(gè)i,j∈{1,2,...,N},q(x)可以包含不超過(guò)
個(gè)ni次不可約因子。因此,如果針對(duì)所有i,j∈{1,2,...,N},ni≠nj,則(m,n)族中將M映射至c中的散列函數(shù)的數(shù)量小于
另一方面,存在種方式來(lái)構(gòu)造p(x),其中是ni次不可約多項(xiàng)式的數(shù)量。原因在于存在
個(gè)n次不可約多項(xiàng)式,我們得到
因此,沖突概率至多為:
情況2:假設(shè)針對(duì)所有i,j∈{1,2,...,N},ni=nj。我們得到deg(pi)=deg(p)/N。存在
個(gè)n/N次不可約多項(xiàng)式。因此,構(gòu)造p(x)的方法的數(shù)量大于
其中
另一方面,至多存在
N2=(m+n)/(n/N)=N(m+n)/n (17)
個(gè)q(x)的不可約因子,每個(gè)因子具有次數(shù)n/N。它們的所有不同的N元組產(chǎn)生n次可約多項(xiàng)式。因此,(m,n)族中將M映射到c中的散列函數(shù)的數(shù)量至多為:
另一方面,該族中的元素的數(shù)量由等式(15)界定。因此沖突概率至多為:
接下來(lái),針對(duì)生成多項(xiàng)式是兩個(gè)不可約多項(xiàng)式的乘積,即N=2的情況,導(dǎo)出沖突概率的更精確的邊界。
引理1如果N=2,則由下式給出定理4中的ε
如果deg(p1)≠deg(p2)
如果deg(p1)=deg(p2) (20)
證明:假設(shè)n1=deg(pi)。則n2=deg(p2)=n-n1。
假設(shè)q(x)包含r個(gè)n-n1次不可約因子。然后,由于唯一的因式分解特性,q(x)至多包含
個(gè)n1次不可約因子。存在這些因子的
個(gè)不同的對(duì),并且每對(duì)因子將產(chǎn)生不同的n次可約多項(xiàng)式。為找到(m,n)族中將映射M映射至c的散列函數(shù)的最大數(shù)量,需要找到r的哪個(gè)選擇使以下二次函數(shù)的值最大
這可以通過(guò)找到代表等式(23)的函數(shù)的拋物線的頂點(diǎn)(最大點(diǎn))的x坐標(biāo)來(lái)完成。已知頂點(diǎn)的x坐標(biāo)位于點(diǎn)-b/2a處,它在我們的情況下是:
因此,如果q(x)包含個(gè)n-n1次不可約多項(xiàng)式和
個(gè)n1次不可約多項(xiàng)式,則二次函數(shù)的值被最大化,。
假設(shè)
并且
則,如果n1≠n/2,(m,n)族中將M映射至c中的散列函數(shù)的最大數(shù)量由下式給出:
另一方面,如果n1≠n/2,則針對(duì)任意固定n1,存在種方式來(lái)構(gòu)造p(x)。原因在于:
以及
并且情況n1≠n/2的沖突概率為
如果(或),沒(méi)有足夠的次數(shù)為n-n1(或n1)的不同多項(xiàng)式以使等式(23)的二次函數(shù)的值最大。因此,(m,n)族中將M映射至c中的散列函數(shù)的數(shù)量小于等式(28),并且沖突概率甚至小于上面導(dǎo)出的上界。
如果n1=n2=n/2,則q(x)能夠至多包含
N3=(m+n)/(n/2)=2(m+n)/n (32)
個(gè)n/2次可約因子。它們的所有不同的對(duì)產(chǎn)生n次的可約多項(xiàng)式。因此,由下式給出(m,n)族中將M映射至c的散列函數(shù)的最大數(shù)量:
另一方面,如果n1=n/2,存在
種構(gòu)造p(x)的方法。原因在于存在
個(gè)次數(shù)為n/2的不可約多項(xiàng)式,解空間大于
2n-3+2n/2-2 (36)
因此,對(duì)于n1=n/2,沖突概率為
作為示例,在圖4的表400中,示出了對(duì)于n=32和64、N=2以及一些選擇的消息長(zhǎng)度m的情況的沖突概率ε1和ε2。第五列示出類似于Krawczyk當(dāng)使用單個(gè)不可約多項(xiàng)式作為生成多項(xiàng)式的情況下的沖突概率ε0。