專利名稱::數(shù)字指紋壓縮模塊生成器及其應(yīng)用的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于信息安全
技術(shù)領(lǐng)域:
,特別是涉及一種數(shù)字指紋壓縮模塊生成器及其應(yīng)用。
背景技術(shù):
:數(shù)字指紋在數(shù)字簽名、完整性檢驗(yàn)、身份認(rèn)證和動(dòng)態(tài)口令鑒別等現(xiàn)代信息安全技術(shù)中被廣泛應(yīng)用,對(duì)于輸入的任意長(zhǎng)度消息序列,輸出固定長(zhǎng)度的數(shù)字指紋值,這種數(shù)據(jù)壓縮機(jī)制是數(shù)字指紋的關(guān)鍵,因此用于實(shí)現(xiàn)數(shù)字指紋生成的壓縮部件被稱為數(shù)字指紋壓縮模塊。目前使用最廣泛的數(shù)字指紋生成方式是MD系列和SHA系列,它們都是基于邏輯運(yùn)算直接構(gòu)造的,近年來,對(duì)這類數(shù)字指紋標(biāo)準(zhǔn)的分析研究取得了重大突破,MD5已不安全,雖然還未找到SHA-1的碰撞,但其計(jì)算復(fù)雜度已經(jīng)約減到263次。數(shù)字指紋機(jī)制的設(shè)計(jì)主要分為三類:(l)直接構(gòu)造法。19卯年Rivest設(shè)計(jì)了MD4,它不基于任何假設(shè)及密碼體制,而是采用大量的邏輯運(yùn)算,從此這種直接構(gòu)造法受到人們的廣泛青睞,但近年來的分析結(jié)果使人們對(duì)這種構(gòu)造法本身的安全性產(chǎn)生了嚴(yán)重質(zhì)疑。(2)基于分組密碼的構(gòu)造法,其安全性依賴于分組密碼的安全性。(3)基于難解性問題的構(gòu)造法。利用一些難解性問題諸如離散對(duì)數(shù)、因子分解等問題可構(gòu)造數(shù)字指紋機(jī)制,在合理的假設(shè)下是可證明安全的,但其效率低,缺乏實(shí)用性。其中基于多變?cè)囗?xiàng)式方程組的難解性構(gòu)造數(shù)字指紋機(jī)制,與基于其它困難性問題設(shè)計(jì)的數(shù)字指紋機(jī)制相比,它的效率主要取決多變?cè)囗?xiàng)式的稀疏程度,因此可以權(quán)衡安全性和實(shí)用性來控制多變?cè)囗?xiàng)式方程組的稀疏度,以滿足用戶的需求。目前,基于有限域上多變?cè)囗?xiàng)式方程組的難解性構(gòu)造的數(shù)字指紋算法主要有采用Kipnis-Shamir立方多項(xiàng)式形式來構(gòu)造數(shù)字指紋算法的壓縮函數(shù),但壓縮函數(shù)的形式過于復(fù)雜,且由此導(dǎo)出的壓縮函數(shù)隨機(jī)性較差;其次是采用有限域上兩個(gè)多變?cè)味囗?xiàng)式方程組的組合,前一個(gè)采用超定二次方程進(jìn)行擴(kuò)張,后一個(gè)采用二次不定方程進(jìn)行壓縮,這種結(jié)構(gòu)不容易控制組合方程的稀疏性,因此效率很差。由于這些技術(shù)缺陷,尚無真正安全高效的數(shù)字指紋機(jī)制被提出,相應(yīng)的數(shù)字指紋壓縮模塊自動(dòng)生成技術(shù)和應(yīng)用技術(shù)也未出現(xiàn)。
發(fā)明內(nèi)容本發(fā)明目的在于針對(duì)現(xiàn)有技術(shù)的不足,提出一種數(shù)字指紋壓縮模塊生成器及其應(yīng)用。本發(fā)明所提供數(shù)字指紋壓縮模塊生成器的技術(shù)方案為包括有參數(shù)設(shè)定模塊和壓縮函數(shù)生成模塊;所述參數(shù)設(shè)定模塊用于設(shè)定數(shù)字指紋壓縮模塊的相關(guān)參數(shù),相關(guān)參數(shù)包括有數(shù)字指紋壓縮模塊輸出的數(shù)字指紋長(zhǎng)度m、有限域《大小及多變?cè)囗?xiàng)式方程組中每個(gè)方程的次數(shù)J和項(xiàng)數(shù)r,其中數(shù)字指紋長(zhǎng)度附="&,《=2、^為正整數(shù);所述壓縮函數(shù)生成模塊用于在有限域巧上隨機(jī)生成滿足上述相關(guān)參數(shù)的一個(gè)多變?cè)囗?xiàng)式方程組,將該多變?cè)囗?xiàng)式方程組作為數(shù)字指紋壓縮模塊;所生成的多變?cè)囗?xiàng)式方程組內(nèi)所有方程的最高項(xiàng)次數(shù)必須大于2,設(shè)定多變?cè)囗?xiàng)式方程組中的方程個(gè)數(shù)為w,根據(jù)"設(shè)定多變?cè)囗?xiàng)式方程組中的變?cè)獋€(gè)數(shù)為/,其中。而且,多變?cè)囗?xiàng)式方程組的變?cè)獋€(gè)數(shù)/設(shè)定為2w。基于以上技術(shù)方案,本發(fā)明還提供了應(yīng)用該數(shù)字指紋壓縮模塊生成器實(shí)現(xiàn)的數(shù)字指紋生成方法,包括以下步驟,步驟l,填充報(bào)文,將填充后的報(bào)文分為丄個(gè)分組M。,…,Mw,其中任一分組M,的長(zhǎng)度為m位;再將每個(gè)分組^T。,…,M,—,分別編碼成有限域^上一個(gè)w維向量;步驟2,設(shè)定一個(gè)w維向量作為初始向量/F;步驟3,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量/r采用用戶密鑰K^加密后,與分組M。的級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第"l步的狀態(tài)變量CJ^和分組Mm級(jí)聯(lián)起來作為第/步的狀態(tài)變量Cr,.,B口CF^CF(CFwP4i),其中CF為數(shù)字指紋壓縮模塊,C^lliWM表示將有限域《上兩個(gè)"維向量級(jí)聯(lián)為一個(gè)2"維向量;最后第丄步中,狀態(tài)變量CKW和分組級(jí)聯(lián)得到狀態(tài)變量Cf^步驟4,將狀態(tài)變量CJ^作為數(shù)字指紋輸出。而且,所述用戶密鑰《^采用有限域《上的一個(gè)w維向量,通過初始向量/K與用戶密鑰《^逐位異或?qū)崿F(xiàn)加密。而且,當(dāng)數(shù)字指紋機(jī)制不需帶密鑰時(shí),將用戶密鑰《^設(shè)為w維零向量。本發(fā)明還提供了應(yīng)用該數(shù)字指紋壓縮模塊生成器實(shí)現(xiàn)的數(shù)據(jù)完整性檢測(cè)方法,首先將數(shù)字指紋壓縮模塊生成器所生成數(shù)字指紋壓縮模塊整體作為數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方共同的私鑰;數(shù)據(jù)發(fā)送方根據(jù)私鑰生成數(shù)據(jù)文件的數(shù)字指紋,并將數(shù)據(jù)文件和數(shù)字指紋一起發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方收到數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù)文件和數(shù)字指紋后,用自己的私鑰生成所接收到數(shù)據(jù)文件的數(shù)字指紋,并與收到的數(shù)字指紋相比較,若兩個(gè)數(shù)字指紋相同,則判斷數(shù)據(jù)文件未被篡改,否則數(shù)據(jù)文件已被篡改;其中數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方根據(jù)私鑰生成數(shù)字指紋包括以下步驟,步驟一,將數(shù)據(jù)文件作為報(bào)文進(jìn)行填充,將填充后的報(bào)文分為丄個(gè)分組M。,…,Jl^—,,其中任一分組M,的長(zhǎng)度為m位;再將每個(gè)分組M。,…,A^—,分別編碼成有限域^上一個(gè)w維向量;步驟二,設(shè)定一個(gè)w維向量作為初始向量/F;步驟三,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量/F與分組M。的"維向量級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第/-1步的狀態(tài)變量CFm和分組級(jí)聯(lián)起來作為第/步的狀態(tài)變量CK.,S卩CT尸CF(CTmIIA^),其中CF為數(shù)字指紋壓縮模塊,CTmIIM4表示將有限域《上兩個(gè)w維向量級(jí)聯(lián)為一個(gè)2w維向量;最后第丄步中,狀態(tài)變量CT^和分組Mw級(jí)聯(lián)得到狀態(tài)變量步驟四,將狀態(tài)變量C^作為數(shù)字指紋輸出。本發(fā)明具有多項(xiàng)優(yōu)點(diǎn)(l)安全性基于一個(gè)公認(rèn)的數(shù)學(xué)難題,因此能夠抵御碰撞分析等攻擊方法。(2)生成的數(shù)字指紋長(zhǎng)度可變,支持任意位長(zhǎng)度的消息摘要。(3)引入了整體隨機(jī)性,能夠隨機(jī)選擇數(shù)字指紋壓縮模塊而不是隨機(jī)化消息本身。(4)設(shè)計(jì)自動(dòng)化,用戶可根據(jù)實(shí)際需求輸入?yún)?shù),數(shù)字指紋壓縮模塊生成器就能根據(jù)參數(shù)構(gòu)造滿足其特定要求的數(shù)字指紋機(jī)制。(5)用戶根據(jù)特定需要選擇數(shù)字指紋機(jī)制,從而最大限度節(jié)省了計(jì)算資源。尤其是與目前國外其他基于多變?cè)臄?shù)字指紋生成方法相比,算法空間更大、效率和安全性更高且構(gòu)造結(jié)構(gòu)簡(jiǎn)單易于實(shí)現(xiàn)。圖1為本發(fā)明實(shí)施例的數(shù)字指紋生成方法示意圖。圖2為有限域GF(16)上的存儲(chǔ)空間示意圖;圖3為有限域GF(256)上的存儲(chǔ)空間示意圖。具體實(shí)施例方式本發(fā)明提出的數(shù)字指紋壓縮模塊生成器包括有參數(shù)設(shè)定模塊和壓縮函數(shù)生成模塊;包括有參數(shù)設(shè)定模塊和壓縮函數(shù)生成模塊;所述參數(shù)設(shè)定模塊用于設(shè)定數(shù)字指紋壓縮模塊的相關(guān)參數(shù),相關(guān)參數(shù)包括有數(shù)字指紋壓縮模塊輸出的數(shù)字指紋長(zhǎng)度m、有限域&大小及多變?cè)囗?xiàng)式方程組中每個(gè)方程的次數(shù)c/和項(xiàng)數(shù)r,其中數(shù)字指紋長(zhǎng)度w-"A,《=2、A為正整數(shù);所述壓縮函數(shù)生成模塊用于在有限域《上隨機(jī)生成滿足上述相關(guān)參數(shù)的一個(gè)多變?cè)囗?xiàng)式方程組,將該多變?cè)囗?xiàng)式方程組作為數(shù)字指紋壓縮模塊;所生成的多變?cè)囗?xiàng)式方程組內(nèi)所有方程的最高項(xiàng)次數(shù)必須大于2,設(shè)定多變?cè)囗?xiàng)式方程組中的方程個(gè)數(shù)為w,根據(jù)W設(shè)定多變?cè)囗?xiàng)式方程組中的變?cè)獋€(gè)數(shù)為/P,其中/7>"。上述數(shù)字指紋壓縮模塊生成器可以通過硬件或軟件方法實(shí)現(xiàn)。參數(shù)設(shè)定模塊可以提供存儲(chǔ)部件和輸入部件,可以在存儲(chǔ)部件中存儲(chǔ)預(yù)設(shè)參數(shù)值,或者由用戶通過輸入部件選擇參數(shù)值。設(shè)定好的相關(guān)參數(shù)的參數(shù)值由參數(shù)設(shè)定模塊輸入到壓縮函數(shù)生成模塊后,壓縮函數(shù)生成模塊就會(huì)自動(dòng)構(gòu)造符合輸入?yún)?shù)值的數(shù)字指紋壓縮模塊。因此這種數(shù)字指紋壓縮模塊生成器可以用支持用戶設(shè)計(jì)自動(dòng)化,用戶能夠根據(jù)實(shí)際需要選擇參數(shù)值,方便地獲取所需數(shù)字指紋壓縮模塊。具體實(shí)施時(shí),數(shù)字指紋壓縮模塊生成過程可以為(1)用戶指定數(shù)字指紋壓縮模塊的參數(shù)有限域^大小、輸出數(shù)字指紋長(zhǎng)度mbit及壓縮函數(shù)每個(gè)方程的次數(shù)J和項(xiàng)數(shù)r,其屮^=2、因此,數(shù)字指紋壓縮模塊生成器的參數(shù)接收模塊可以設(shè)置一個(gè)四元組Ot,m,A。,其所有的參數(shù)均為正整數(shù),其中A決定有限域巧的大小,由于有限域上乘法運(yùn)算較為耗費(fèi)計(jì)算資源,在工程設(shè)計(jì)中有限域通常取得較小,這樣實(shí)施時(shí)可以將有限域上的乘法運(yùn)算作預(yù)運(yùn)算造表存儲(chǔ),于是將有限域上的乘法運(yùn)算轉(zhuǎn)化為查表運(yùn)算以提高運(yùn)算效率,所以取A《8較為適宜;由于計(jì)算機(jī)編碼中常以字節(jié)為單位,結(jié)合安全性,取附^160且為8的倍數(shù);次數(shù)d理論上可取任意正整數(shù),在需保證效率的情況下,它與項(xiàng)數(shù)r成反比。具體實(shí)施時(shí),基本域也可以取大域如GF(2")等,但此時(shí)有限域上的乘法比較復(fù)雜,一般推薦使用GF(24)或GF(2S),結(jié)合其他基于MQ問題的密碼體制。多變?cè)囗?xiàng)式方程組中每個(gè)方程項(xiàng)數(shù)一般取50200為宜。假如在安全性要求相對(duì)較低的領(lǐng)域如低廉智能卡上使用,項(xiàng)數(shù)還可取得更為稀疏。當(dāng)多變?cè)囗?xiàng)式方程組采用三次以上的多項(xiàng)式時(shí),項(xiàng)數(shù)可以適當(dāng)減少。(2)利用隨機(jī)數(shù)生成器在有限域《上隨機(jī)生成滿足上述條件的多變?cè)囗?xiàng)式方程組作為數(shù)字指紋壓縮模塊。該多變?cè)囗?xiàng)式方程組由^上2"個(gè)變?cè)?個(gè)方程組成,每個(gè)方程的形式如下上述方程中f次項(xiàng)每一項(xiàng)的選擇過程隨機(jī)選擇4-,及6,,其中4_,€《,6,.e,/e。下面以輸入?yún)?shù)A=8,m=256,r=lOO,d=3的齊次多項(xiàng)式為例,介紹數(shù)字指紋壓縮模塊生成器的實(shí)現(xiàn)過程,用C語言偽代碼表示為structTE腿S3rd{〃用四個(gè)元素的結(jié)構(gòu)體存儲(chǔ)每個(gè)二次項(xiàng)intcoefficient;〃三次項(xiàng)的系數(shù)intXI—suffix;〃三次項(xiàng)第一個(gè)變?cè)南聵?biāo)intX2—suffix;//三次項(xiàng)第二個(gè)變?cè)南聵?biāo)intX3_suffix;//三次項(xiàng)第三個(gè)變?cè)南聵?biāo)structTE脂S3rd*next;};for(j=0;j<256/8;j++)for(i=0;i<100;i++)(〃壓縮模塊多項(xiàng)式方程組采用動(dòng)態(tài)鏈表存儲(chǔ)和調(diào)用,其中每個(gè)結(jié)點(diǎn)表〃示一個(gè)三次項(xiàng),用結(jié)構(gòu)體TERMS3rd表示。get_random(R)表示生〃成一個(gè)0到R-l之間的隨機(jī)數(shù)。temp=(TE腿S3rd*)malloc(sizeof(TERMS3rd));temp-〉coefficient=get—random(256);temp->XI—suffix=get_random(256/8x2);temp->X2_suffix=get_random(256/8x2);temp->X3—suffix=get—random(256/8><2);temp->next—NULL;11通過數(shù)字指紋壓縮模塊生成器得到的數(shù)字指紋壓縮模塊,也可以通過硬件或軟件以及軟硬件相結(jié)合的方法提供使用。作為信息安全技術(shù)中的常用模塊,可固化為數(shù)據(jù)協(xié)處理器件,以電子器件的形式提供組裝使用。數(shù)字指紋壓縮模塊起到數(shù)據(jù)壓縮作用,所以多變?cè)囗?xiàng)式方程組中的變?cè)獋€(gè)數(shù)p〉"。而最優(yōu)選的情況,就是取p為2w。這樣數(shù)字指紋生成過程簡(jiǎn)潔高效。本發(fā)明提供了相應(yīng)技術(shù)方案,參見圖l:步驟1,填充報(bào)文,將填充后的報(bào)文分為Z個(gè)分組M。,…,M^,,其中任一分組M,的長(zhǎng)度為m位,;再將每個(gè)分組M。,…,M^1分別編碼成有限域《上一個(gè)"維向量;圖1中報(bào)文的長(zhǎng)度原為/:bit,為了能夠分組進(jìn)行壓縮,需要在長(zhǎng)度不規(guī)律的報(bào)文后填充一個(gè)1和若干個(gè)0及數(shù)值《的相應(yīng)二進(jìn)制串^,若報(bào)文的長(zhǎng)度大于2"bit,則K-夂mod264,具體填充方式為在報(bào)文后填充一個(gè)1,Kmodm-65個(gè)0,后64位填充&,&不足64位時(shí)高位補(bǔ)0。其中若報(bào)文長(zhǎng)度K剛好被w整出,則填充0的個(gè)數(shù)為(m-65)個(gè)。填充后報(bào)文長(zhǎng)度變?yōu)閬Axwbit。其中L為報(bào)文分組的個(gè)數(shù)。步驟2,設(shè)定一個(gè)w維向量作為初始向量/K;初始向量/K可以用戶隨意設(shè)定,也可預(yù)選存儲(chǔ)到數(shù)字指紋壓縮模塊中。步驟3,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量/F采用用戶密鑰《e;;加密后,與分組M。的"維向量級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第Z-1步的狀態(tài)變量和分組Mm級(jí)聯(lián)起來作為第/步的狀態(tài)變量CT,,即CK-CF(CFMP4i),其中CF為數(shù)字指紋壓縮模塊,CP^IiWM表示將有限域《上兩個(gè)"維向量級(jí)聯(lián)為一個(gè)2"維向量;最后第丄步中,狀態(tài)變量CTw和分組Tl^w級(jí)聯(lián)得到狀態(tài)變量CTZ;具體的流程就是第1步,Cy產(chǎn)CF(CTollAfo);第2步,第/—l步,CR-fC^CCF^IM-s);第Z步,CT嚴(yán)CF(CKMll7k^);其中每步都是將有限域《上兩個(gè)"維向量級(jí)聯(lián)為一個(gè)2"維向量,然后通過數(shù)字指紋壓縮模塊壓制成l個(gè)"維向量,再參與下一步級(jí)聯(lián)壓縮。該過程可以通過計(jì)算機(jī)程序?qū)崿F(xiàn),可用C語言偽代碼表示為CT。=/r/^;/;//逐位異或運(yùn)算for(z'=l;zW++)CF;;CF(CFmIIM》;本發(fā)明創(chuàng)造性地提出了一種數(shù)字指紋機(jī)制中引入用戶密鑰的方法。普通數(shù)字指紋生成是不采用密鑰的,但本發(fā)明引入用戶密鑰7&少后,可以同時(shí)支持消息認(rèn)證功能。具體實(shí)施時(shí),用戶密鑰K^可以采用有限域^上的一個(gè)"維向量,通過初始向量/F與用戶密鑰尺^逐位異或?qū)崿F(xiàn)加,實(shí)現(xiàn)簡(jiǎn)單方便。并且可以選擇帶密鑰和不帶密鑰兩種情況,在不帶密鑰時(shí),只需將用戶密鑰ife7設(shè)為w維零向量即可。步驟4,將狀態(tài)變量CI^作為所生成的數(shù)字指紋輸出。具體實(shí)施時(shí),可以將數(shù)字指紋壓縮模塊生成和數(shù)字指紋生成這兩種過程結(jié)合起來,提供針對(duì)客戶需求的全自動(dòng)數(shù)字指紋訂制服務(wù)。用戶在輸入?yún)?shù)值后,數(shù)字指紋壓縮模塊自動(dòng)生成,然后處理用戶所提供報(bào)文,輸出數(shù)字指紋。數(shù)據(jù)完整性檢測(cè)是數(shù)字指紋技術(shù)的一項(xiàng)重要應(yīng)用。現(xiàn)有數(shù)據(jù)完整性檢測(cè)中為了進(jìn)行信息保護(hù),數(shù)據(jù)發(fā)送方在為數(shù)據(jù)文件生成數(shù)字指紋后,還需加密后進(jìn)行傳送。數(shù)據(jù)接收方接收到數(shù)據(jù)文件后,首先解密,然后對(duì)比數(shù)字指紋。而本發(fā)明基于具有整體隨機(jī)性的數(shù)字指紋壓縮模塊,提供了更簡(jiǎn)便地檢測(cè)方案首先將數(shù)字指紋壓縮模塊生成器所生成數(shù)字指紋壓縮模塊整體作為數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方共同的私鑰;數(shù)據(jù)發(fā)送方根據(jù)私鑰生成數(shù)據(jù)文件的數(shù)字指紋,并將數(shù)據(jù)文件和數(shù)字指紋一起發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方收到數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù)文件和數(shù)字指紋后,用自己的私鑰生成所接收到數(shù)據(jù)文件的數(shù)字指紋,并與收到的數(shù)字指紋相比較,若兩個(gè)數(shù)字指紋相同,則判斷數(shù)據(jù)文件未被篡改,否則數(shù)據(jù)文件己被篡改。也就是說,數(shù)字指紋壓縮模塊既用于生成數(shù)字指紋,也直接作為私鑰使用。數(shù)據(jù)完整性檢測(cè)過程中,數(shù)據(jù)接收方和數(shù)據(jù)發(fā)送方進(jìn)行數(shù)字指紋生成不需引入用戶密鑰《W,步驟如下步驟一,將數(shù)據(jù)文件作為報(bào)文進(jìn)行填充,將填充后的報(bào)文分為丄個(gè)分組iV/。,…,A^一,其中任一分組M,的長(zhǎng)度為W位;再將每個(gè)分組M。,…,Mw分別編碼成有限域《上一個(gè)"維向量;步驟二,設(shè)定一個(gè)W維向量作為初始向量/F;步驟三,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量/F與分組^f。的n維向量級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第z'-1步的狀態(tài)變量CFm和分組Mm級(jí)聯(lián)起來作為第f步的狀態(tài)變量C^,即CT產(chǎn)CF(CJ^HM—,),其中CF為數(shù)字指紋壓縮模塊,CFmIIM.,表示將有限域巧上兩個(gè)"維向量級(jí)聯(lián)為一個(gè)2"維向量;最后第Z步中,狀態(tài)變量CF^和分組Mw級(jí)聯(lián)得到狀態(tài)變量CFi;步驟四,將狀態(tài)變量C^作為數(shù)字指紋輸出。為了方便理解本發(fā)明所提供技術(shù)方案的效果,以下從安全性理論分析和實(shí)驗(yàn)兩方面進(jìn)行說明以供參考(一)安全性理論有限域上二次多變?cè)囗?xiàng)式方程組的求解問題稱為MQ問題,它是一個(gè)公認(rèn)的NP困難性問題,當(dāng)多變?cè)囗?xiàng)式方程組的次數(shù)大于2時(shí),一般稱之為MP問題,求解MP問題比求解MQ問題更難,因此也是NP困難性問題。本發(fā)明中數(shù)字指紋壓縮模塊的壓縮機(jī)制可以表示為其中《=2、x=(v,x2)eif,,(jc)是在《上隨機(jī)選擇的多變?cè)囗?xiàng)式方程組(次數(shù)大于2)。從理論上可證明CF(x)滿足(l)是抗逆向攻擊的;(2)是弱無碰撞的;(3)是強(qiáng)無碰撞的。利用CF(;c)和Merkle-Damgard結(jié)構(gòu)構(gòu)造的新數(shù)字指紋算法,也滿足上述三個(gè)條件,理論推導(dǎo)和證明從略。求解多變?cè)囗?xiàng)式方程組的傳統(tǒng)方法是構(gòu)造Gr6bner基的Buchberger算法及其變型F4、F5。它的基本思想是先把單項(xiàng)式排序,然后根據(jù)適當(dāng)?shù)亩囗?xiàng)式系數(shù)合并兩個(gè)方程來約去最高位的單項(xiàng)式。重復(fù)此過程直到所有方程中的同一個(gè)變量被約去,最后解余下改變過的多項(xiàng)式方程組。但遺憾的是,實(shí)際操作中剩余單項(xiàng)式的次數(shù)在消元過程中急劇增加,因此即使對(duì)于一個(gè)中等數(shù)量的未知量,此算法的時(shí)間復(fù)雜度都巨大而不可行。在最壞的運(yùn)行情況下,可知Buchberger的算法要運(yùn)行兩倍指數(shù)時(shí)間。Shamir等人證明了當(dāng)MQ方程是超定時(shí),解方程的復(fù)雜度大大降低,并提出了求解超定MQ問題的XL算法,Courtois等提出了改進(jìn)的XL系列算法如XSL算法等,Bardet等給出了求解超定MQ的復(fù)雜度。Courtois等指出如果MQ是稀疏的,且具有一個(gè)規(guī)則的結(jié)構(gòu),那么問題就很容易解決,但對(duì)于一般的稀疏MQ問題并不十分有效。Murphy等定義了一個(gè)新的分組密碼BES,只使用GF(2S)上的簡(jiǎn)單代數(shù)結(jié)構(gòu),并且與AES有相同的信息空間和密鑰空間,由此得到的一個(gè)重要結(jié)果是:AES-128加密體制可以描述成一個(gè)GF(2S)上的非常稀疏的超定多元二次方程組:方程數(shù)量5248個(gè)(其中二次方程3840個(gè),線性方程1408個(gè)),3968個(gè)變?cè)?,組成非零項(xiàng)7808個(gè),它的解就是AES的密鑰,上述方程組的理論項(xiàng)數(shù)大約為235,可見其代數(shù)表達(dá)式的稀疏程度,但目前代數(shù)攻擊AES-128最好的復(fù)雜度超過2,,大大超過窮盡搜索密鑰的復(fù)雜度。TangXJ等中引入了Dixon結(jié)式,并提出了一種新的求解MQ問題的DR算法,與上述文獻(xiàn)類似,只對(duì)特殊的稀疏方程有效。JintaiDing等較為詳細(xì)的討論了稀疏MQ問題,并在大型工作站作了測(cè)試,實(shí)驗(yàn)結(jié)果表明,目前求解MQ問題的方法對(duì)方程的項(xiàng)數(shù)不太敏感。從目前的研究進(jìn)展來看,域《(《>2)上隨機(jī)稀疏MQ問題仍然是難解的。因此本發(fā)明所提供數(shù)字指紋壓縮模塊為隨機(jī)選擇的高次稀疏方程時(shí)結(jié)論仍然成立。不過選擇時(shí)應(yīng)該謹(jǐn)慎,盡量避免具有特殊規(guī)則的稀疏多項(xiàng)式方程。(二)實(shí)驗(yàn)說明,從三個(gè)方面進(jìn)行分析壓縮效率分析本發(fā)明中基本域《一般可取《=24或9=28,壓縮過程中主要運(yùn)算為巧上的乘法運(yùn)算和加法運(yùn)算,因此實(shí)現(xiàn)效率較高,也易于硬件實(shí)現(xiàn)。由于基本域《較小,因此可預(yù)運(yùn)算并存儲(chǔ)其乘法表,乘法運(yùn)算與AES相仿均通過査表完成。通過隨機(jī)選擇指定項(xiàng)數(shù)、基本域和數(shù)字指紋長(zhǎng)度的來構(gòu)造新壓縮機(jī)制(以下簡(jiǎn)稱MPH,以"一數(shù)字指紋長(zhǎng)度值"為后綴進(jìn)行標(biāo)識(shí))。實(shí)驗(yàn)環(huán)境為InterCore2P86002.4GHz、2G內(nèi)存,實(shí)現(xiàn)平臺(tái)為WindowsXPVisuaIC++6.0,實(shí)驗(yàn)中多變?cè)囗?xiàng)式方程組采用有限域上多變?cè)锡R次多項(xiàng)式。表l、表2給出了MPH與現(xiàn)有安全數(shù)字指紋機(jī)制SHA系列相應(yīng)輸出長(zhǎng)度比較的測(cè)試結(jié)果,Terms表示壓縮函數(shù)每個(gè)方程的項(xiàng)數(shù),吞吐量MB/sec。表1和表2可以看出,MPH的實(shí)現(xiàn)效率主要取決于壓縮函數(shù)的項(xiàng)數(shù),當(dāng)Terms-lO時(shí)MPH與SHA的效率大致相仿,當(dāng)Terms-lOO時(shí)MPH效率大約只有SHA的十分之一。其原因?yàn)镸PH的效率主要取決于基本域上的乘法查表運(yùn)算,d次多變?cè)囗?xiàng)式每一項(xiàng)最多需要d次査表運(yùn)算,假設(shè)MPH壓縮函數(shù)的方程個(gè)數(shù)為",則MPH的每輪壓縮運(yùn)算共需查表次數(shù)為dxwx7^T^,因此MPH的效率與項(xiàng)數(shù)大致為線性關(guān)系。表1GF(16)上MPH與SHA系列的效率比較MPHoverGF(16)Te應(yīng)--MPH掘MPH-256MPH-384MPH-512158.31155.21448.94648.676236.80534.75830.54730.153517,52017.44317.43717.341109.3789.0589.0339.031601.671.6051.5971.5811000.9620.9550.9470.9405000.1850.1780.1480.126SHA14.41813.0616.9246.51917表2GF(256)上MPH與SHA系列的效率比較<table>tableseeoriginaldocumentpage18</column></row><table>存儲(chǔ)空間分析MPH的存儲(chǔ)包括兩個(gè)部分:基本域上的乘法表和壓縮機(jī)制。乘法表的大小取決于基本域《,壓縮機(jī)制的存儲(chǔ)大小與方程的個(gè)數(shù)"、方程的次數(shù)d及其每個(gè)方程的項(xiàng)數(shù)有關(guān)。MPH的存儲(chǔ)空間S(單位:bit)可表示為s(",《,^:r^7w)="(iog〗+diog〗").renw+(《一i)2.iogg參見附圖2和附圖3,圖中分別提供了有限域GF(16)、GF(256)上MPH-160、MPH-256、MPH-384、MPH-512的存儲(chǔ)空間,橫坐標(biāo)為項(xiàng)數(shù),豎坐標(biāo)為存儲(chǔ)空間,單位為^>。擴(kuò)散與混淆性質(zhì)統(tǒng)計(jì)分析為了隱藏明文消息的冗余度,Shannon提出了混亂與散布的概念,加密體制中要求充分且均勻地利用密文空間,數(shù)字指紋生成方式同樣如此,要盡量做到相應(yīng)消息串與對(duì)應(yīng)的數(shù)字指紋不相關(guān),而對(duì)于結(jié)果的二進(jìn)制表示,每bit只有O或l兩種可能,因此理想數(shù)字指紋的散布效果應(yīng)該是初值的細(xì)微變化將導(dǎo)致結(jié)果的每bit都以50o/。的概率變化??疾煸谙⒋l(fā)生lbit變化的情況下,引起數(shù)字指紋結(jié)果的變化比特?cái)?shù)為萬。定義平均變化比特?cái)?shù)》、平均變化概率i3、萬的均方差A(yù)5、P的均方差A(yù)P分別為W臺(tái)m其中W為統(tǒng)計(jì)次數(shù),《為第/次測(cè)試變化的比特?cái)?shù),w為數(shù)字指紋長(zhǎng)度。每次測(cè)試方法:在消息空間中隨機(jī)選取一段消息進(jìn)行MPH壓縮,然后改變消息串lbit得到另一數(shù)字指紋結(jié)果,比較兩個(gè)結(jié)果得到變化的比特?cái)?shù)為5,。以6(256)上的]^11-160為例,其中統(tǒng)計(jì)次數(shù)N^1000。表3GF(256)上MPH-160的性能測(cè)試Terms》z(5尸/%1073.971,6246.2318.605075.921.3147.4413.7810076.740.9648.375.2120078.46U549.285.63由表3可知,MPH-160的》和尸非常接近理想狀況下80和50。/o的變化概率,相當(dāng)充分均勻地利用了消息空間,消息的任何擾動(dòng),都使得數(shù)字指紋結(jié)果在統(tǒng)計(jì)上產(chǎn)生接近等概率的均勻分布,從統(tǒng)計(jì)效果上看,保證了攻擊者在已知一些消息數(shù)字指紋對(duì)的情況下無法得到任何數(shù)字指紋分布的有用信息。而Afi與AP越接近于零,則表明壓縮機(jī)制對(duì)消息的混淆與擴(kuò)散性質(zhì)的穩(wěn)定性越好,表3表明MPH混淆擴(kuò)散性的穩(wěn)定性較差;穩(wěn)定性大致與壓縮函數(shù)項(xiàng)數(shù)成正比。因此在壓縮函數(shù)的隨機(jī)選取過程可以增加一些性能控制因子如AP,以篩選出密碼性質(zhì)良好的方程來構(gòu)造MPH。通過安全性分析和實(shí)驗(yàn)分析表明,本發(fā)明所提供技術(shù)方案在效率和性能方面與現(xiàn)有技術(shù)具有可比性,在安全性方面優(yōu)于現(xiàn)有技術(shù),且易于軟硬件實(shí)現(xiàn),可作為一種實(shí)用的安全數(shù)字指紋機(jī)制。權(quán)利要求1.一種數(shù)字指紋壓縮模塊生成器,其特征在于包括有參數(shù)設(shè)定模塊和壓縮函數(shù)生成模塊;所述參數(shù)設(shè)定模塊用于設(shè)定數(shù)字指紋壓縮模塊的相關(guān)參數(shù),相關(guān)參數(shù)包括有數(shù)字指紋壓縮模塊輸出的數(shù)字指紋長(zhǎng)度m、有限域Fq大小及多變?cè)囗?xiàng)式方程組中每個(gè)方程的次數(shù)d和項(xiàng)數(shù)r,其中數(shù)字指紋長(zhǎng)度m=nk,q=2k,k為正整數(shù);所述壓縮函數(shù)生成模塊用于在有限域Fq上隨機(jī)生成滿足上述相關(guān)參數(shù)的一個(gè)多變?cè)囗?xiàng)式方程組,將該多變?cè)囗?xiàng)式方程組作為數(shù)字指紋壓縮模塊;所生成的多變?cè)囗?xiàng)式方程組內(nèi)所有方程的最高項(xiàng)次數(shù)必須大于2,設(shè)定多變?cè)囗?xiàng)式方程組中的方程個(gè)數(shù)為n,根據(jù)n設(shè)定多變?cè)囗?xiàng)式方程組中的變?cè)獋€(gè)數(shù)為p,其中p>n。2.利用權(quán)利要求1所述的數(shù)字指紋壓縮模塊生成器,其特征在于多變?cè)囗?xiàng)式方程組的變?cè)獋€(gè)數(shù)p設(shè)定為2"。3.利用權(quán)利要求2所述數(shù)字指紋壓縮模塊生成器實(shí)現(xiàn)的數(shù)字指紋生成方法,其特征在于包括以下步驟,步驟1,填充報(bào)文,將填充后的報(bào)文分為I個(gè)分組M。,…,M^,其中任一分組M,.的長(zhǎng)度為附位;再將每個(gè)分組^T。,…,Mw分別編碼成有限域《上一個(gè)"維向量;步驟2,設(shè)定一個(gè)w維向量作為初始向量/F;步驟3,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量JF采用用戶密鑰X^加密后,與分組M。的級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第Z-1步的狀態(tài)變量CT,,和分組Mw級(jí)聯(lián)起來作為第/步的狀態(tài)變量CK,,即Cr產(chǎn)CF(CKwP40,其中CF為數(shù)字指紋壓縮模塊,CFMP^表示將有限域《上兩個(gè)w維向量級(jí)聯(lián)為一個(gè)2n維向量;最后第Z步中,狀態(tài)變量CT^和分組級(jí)聯(lián)得到狀態(tài)變量CTi;步驟4,將狀態(tài)變量C^作為數(shù)字指紋輸出。4.如權(quán)利要求3所述的數(shù)字指紋生成方法,其特征在于所述用戶密鑰A^r采用有限域&上的一個(gè)"維向量,通過初始向量/F與用戶密鑰/Te/逐位異或?qū)崿F(xiàn)加密。5.如權(quán)利要求4所述的數(shù)字指紋生成方法,其特征在于當(dāng)數(shù)字指紋機(jī)制不需帶密鑰時(shí),將用戶密鑰i^y設(shè)為"維零向量。6.利用權(quán)利要求1所述數(shù)字指紋壓縮模塊生成器實(shí)現(xiàn)的數(shù)據(jù)完整性檢測(cè)方法,其特征是首先將數(shù)字指紋壓縮模塊生成器所生成數(shù)字指紋壓縮模塊整體作為數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方共同的私鑰;數(shù)據(jù)發(fā)送方根據(jù)私鑰生成數(shù)據(jù)文件的數(shù)字指紋,并將數(shù)據(jù)文件和數(shù)字指紋一起發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方收到數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù)文件和數(shù)字指紋后,用自己的私鑰生成所接收到數(shù)據(jù)文件的數(shù)字指紋,并與收到的數(shù)字指紋相比較,若兩個(gè)數(shù)字指紋相同,則判斷數(shù)據(jù)文件未被篡改,否則數(shù)據(jù)文件已被篡改;其中數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方根據(jù)私鑰生成數(shù)字指紋包括以下步驟,步驟一,將數(shù)據(jù)文件作為報(bào)文進(jìn)行填充,將填充后的報(bào)文分為Z個(gè)分組M。,…,M^,,其中任一分組M,的長(zhǎng)度為m位;再將每個(gè)分組M。,…,M^,分別編碼成有限域《上一個(gè)"維向量;步驟二,設(shè)定一個(gè)W維向量作為初始向量/F;步驟三,采用數(shù)字指紋壓縮模塊生成器所生成的數(shù)字指紋壓縮模塊對(duì)報(bào)文逐步進(jìn)行分組壓縮,壓縮過程從初始向量/F與分組Af。的"維向量級(jí)聯(lián)開始;按分組號(hào)逐步執(zhí)行將第i-1步的狀態(tài)變量crH和分組iK,,級(jí)聯(lián)起來作為第/步的狀態(tài)變量cf,,即cFrCF(a^iiMJ,其中c尸為數(shù)字指紋壓縮模塊,ct,.,iimh表示將有限域《上兩個(gè)"維向量級(jí)聯(lián)為一個(gè)2"維向量;最后第丄步中,狀態(tài)變量CFw和分組Mw級(jí)聯(lián)得到狀態(tài)變量CF力;步驟四,將狀態(tài)變量c^作為數(shù)字指紋輸出。全文摘要本發(fā)明提供了數(shù)字指紋壓縮模塊生成器,以及利用所生成的數(shù)字指紋壓縮模塊來構(gòu)造數(shù)字指紋的方法,并提出相應(yīng)的一種數(shù)據(jù)完整性檢測(cè)方法。本發(fā)明建立的數(shù)字指紋機(jī)制主要優(yōu)點(diǎn)是安全性高、輸出值長(zhǎng)度可變、引入了數(shù)字指紋生成的整體隨機(jī)性;支持根據(jù)用戶實(shí)際需求自動(dòng)化構(gòu)造滿足其特定要求的數(shù)字指紋機(jī)制;節(jié)省計(jì)算資源。并且,在效率和性能方面與目前廣泛使用的數(shù)字指紋機(jī)制也具有可比性。文檔編號(hào)H04L9/30GK101478394SQ200910060508公開日2009年7月8日申請(qǐng)日期2009年1月13日優(yōu)先權(quán)日2009年1月13日發(fā)明者張煥國,王后珍申請(qǐng)人:武漢大學(xué)