專利名稱:基于耦合混沌映射系統(tǒng)的帶密鑰的散列方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,更確切地說是涉及用于消息認(rèn)證的散列技術(shù)。
背景技術(shù):
散列方法,是一種把任意長度的輸入消息轉(zhuǎn)化成固定長度的輸出消息摘要的一種 方法。這個輸出消息摘要為該消息的散列值(也稱Hash值)。散列方法的特點是單向性, 即由原文求散列值容易,由散列值求原文困難;抗碰撞性,即給定散列方法的描述,找到兩 個不同的輸入消息散列到同一個值是計算上不可行的,或給定散列方法的描述和一個隨機 選擇的消息,找到另一個與該消息不同的消息使得它們散列到一個值是計算上不可行的。散列技術(shù)的一個重要用途是用于具有消息認(rèn)證功能的數(shù)字簽名。面對互聯(lián)網(wǎng)中各 種各樣的威脅與攻擊,信息的接收方有必要對其收到的信息進行消息認(rèn)證。消息認(rèn)證包括 兩層含義一是消息的起源認(rèn)證檢測,即對消息的發(fā)送者的身份進行認(rèn)證;二是消息的完 整性檢驗,即驗證消息在傳送或存儲過程中未被篡改、刪除或插入等。由要認(rèn)證的消息M得 到散列值,作為消息認(rèn)證的依據(jù),假定通信雙方A與B,A向B發(fā)送消息時計算散列值,然后 消息和散列值一起被發(fā)送給B,B對收到的消息進行相同的散列運算,得到新的散列值,并 將接收到的散列值與B計算出的散列值進行對比,如果相同則B可以確信消息的來源和未 被篡改。散列方法包含不帶密鑰和帶密鑰的兩類,后者是指散列值由只有通信雙方指 定的一個密鑰K來控制,在這種情況下,消息M的散列值也稱為消息認(rèn)證碼(Message Authentication Code)。散列技術(shù)中常見的不帶密鑰的散列方法,如MD5、SHA-I方法的安 全性受到了眾多密碼學(xué)家的質(zhì)疑,而帶密鑰的散列方法因其在通信雙方間增加了共享密鑰 的使用,所以被業(yè)界認(rèn)為更為安全。在傳統(tǒng)密碼學(xué)中,帶密鑰的散列方法通?;谝延械纳?列方法,比如HMAC,也可以基于分組加密方法,或者基于泛散列函數(shù)族方法,因此其安全性 常依賴于這些基礎(chǔ)密碼本身。本發(fā)明特制了一個全新的、基于混沌耦合映射的、帶密鑰的散列方法,獨立于已有 的散列方法和加密方法,可用于消息認(rèn)證中。其主要特點是采用一維耦合混沌映射系統(tǒng),輸 入消息與密鑰作為混沌映射系統(tǒng)的參數(shù),通過一維耦合混沌映射系統(tǒng)有限次的迭代操作, 可以使消息和密鑰達(dá)到足夠的混亂與擴散,產(chǎn)生隨機分布、不重復(fù)的散列值,保證了該散列 方法具有強抗碰撞性和軟件實現(xiàn)運算速度快的特性。
發(fā)明內(nèi)容
本發(fā)明的目的是設(shè)計一種帶密鑰的散列方法,散列值和密鑰的長度都是256比 特。一種基于耦合混沌映射系統(tǒng)的帶密鑰的散列方法,其過程特征在于以下處理步驟Al)消息預(yù)處理,包括確定初始值和消息整形;A2)密鑰擴展,是把256比特的密鑰K擴展成1024比特的子密鑰;A3)參數(shù)生成,是輸入消息和擴展子密鑰,產(chǎn)生一維耦合映射系統(tǒng)的兩組參數(shù);
A4)壓縮過程,是把輸入的1024比特消息壓縮,輸出256比特,所述方法包括一維 迭代耦合映射系統(tǒng)和非線性變換過程;A5)散列值輸出,包括依次處理所有消息分組和散列值輸出變換。在Al中,消息預(yù)處理包括確定初始值和消息整形兩個步驟Al. 1)確定初始值,是指散列雙方需要約定初始變量Htl,即確定8個初始變量h^j) 級聯(lián)組成Htl = K(I) I Ih0 (2) II... I Ih0(S) |,每個h0(j)都是一個屬于
A4. 2)非線性變換,是把上述步驟A4. 1中的模擬信號x&(j)進行兩次非線性變換, 所述的非線性變換的過程,進一步包括A4.2. 1)對于第4次迭代,即r = 4時,依據(jù)以下公式對輸出變量X&(j)進行非線 性操作x2r(j) = (x2r(j) X 250 mod232)/232,j = 1,2, ... ,8所述上式首先把雙精度實數(shù)x2, (j)放大25°倍,然后取模232,得到32比特長的整 數(shù)(模數(shù)轉(zhuǎn)換),最后再轉(zhuǎn)化為雙精度實數(shù);A4. 2. 2)對于第8次迭代,即r = 8時,依據(jù)以下公式對其進行非線性操作,并得到 中間變量Hi = IliWllhi⑵ 11... Ihi(S) ι hi (j) = x2r (j) X 250 mod232,j = 1,2,· · ·,8,i = 1,2,· · ·,t所述上式首先把雙精度實數(shù)x&(j)放大250倍,然后取模232,得到32比特長的整 數(shù) Mj)。在A5中,輸出散列值包括依次處理所有消息分組和散列值輸出變換兩個過程A5. 1)依次處理所有消息分組,是對所有分組M1, M2, ...,Mt按分組順序重復(fù)執(zhí)行 步驟A3、A4,直到最后一個消息分組Mt處理結(jié)束,得到Ht = ht(l) I |ht (2)|ht(8) |, 每一個ht(j),j = 1,2,...,8,都是一個屬于
B2)密鑰擴展,是把256比特的密鑰K擴展成1024比特的子密鑰;B3)參數(shù)生成,是輸入消息和擴展子密鑰,產(chǎn)生一維耦合映射系統(tǒng)的兩組參數(shù);B4)壓縮過程,是把輸入的1024比特消息壓縮,輸出256比特,所述方法包括一維 迭代耦合映射系統(tǒng)和非線性變換過程;B5)散列值輸出,包括依次處理所有消息分組和散列值輸出變換。在Bl中,消息預(yù)處理包括確定初始值和消息整形兩個步驟Bi. 1)確定初始值,是指散列雙方需要約定初始變量Htl,確定8個初始變量h^j) 級聯(lián)組成Htl = K(I) I Ih0 (2) II... I Ih0(S) |,每個h0(j)都是一個屬于
/231, i = 1,2,3, j = 1,
2 9 · · · 9 δa4j = [ka(24 + j)十(m(24 + ;) > 8)]/232, j = 1,2,... ,8在B4中,壓縮過程是把輸入的1024比特消息壓縮,輸出256比特,所述方法包括 一維迭代耦合映射系統(tǒng)和非線性變換過程(如
圖1所示)B4. 1) 一維迭代耦合映射系統(tǒng),其動力學(xué)系統(tǒng)表示為xn+1 (j) = Ka1, j,Xn(J))+^ (a2jJ+1, xn(j+l))+f1xn(j"l))
(3)+f2(a4jJ+4, xn(j+4))+Cj modi, j = 1,2, ... ,8xn+2 (j) = Kb1, j,Xntl(J))+^ (b2jJ+1, xn+1(j+l) ^f1OD3I1,xn+1(j-l))
(4)+f2(b4jJ+4, xn+1 (j+4)) +Cj modi, j = 1,2, · · ·,8其中η為離散時間迭代步數(shù),j為格點坐標(biāo),格點長度為8,對所有參數(shù)使用周期 邊界條件^^a,χ) = ax (1-χ)是邏輯斯蒂映射,當(dāng)a > 3. 57時,邏輯斯蒂映射是混沌的;
Tl
— χ, 0<χ<α
f2(a, χ)是分段線性映射,具體表示為叭;Cl = 0. 1, c3 = 0.2,對
x-a
-,a <x<\
于其他格點j,Cj = 0 ;參數(shù)ai,j和bi,j(i = 1,2,3,4, j = 1,2, ... ,8)由步驟B3得到;依 次執(zhí)行式⑶、⑷r次得到輸出變量x&(j), j = 1,2,...,8 ;當(dāng)?shù)螖?shù)不等于4和8次, 即r興4和r興8時,輸出變量x2,(j)直接反饋執(zhí)行(3)、⑷迭代操作,當(dāng)?shù)螖?shù)等于4 和8次,S卩r = 4和r = 8時,輸出變量x&(j)執(zhí)行非線性變換;所述的一維迭代耦合映射系統(tǒng),進一步包括以下兩種情況B4. 1. 1)對于第一個消息分組M1,式(3)、(4)的初始值定義為x0(j) =h0(j)/232,j = 1,2,···,8其中hQ(j)是在步驟Bi. 1中散列雙方約定的初始變量H。,即Htl = h0(l) I I ho(2)II··. I |h0(8)I I ;Β4· 1.2)對于第i個消息分組Mi,式(3)、(4)的初始值定義為x0(j)=、(肺32,j = 1,2,…,8,i = 1,2, · · ·,t
其中Uj)是第(i-1)個消息分組Mp1輸出的中間變量Hg,即Hh =Ul) I |h H⑵II··. ι Iv1(S) 11,每個Iv1 (j)都是一個屬于[0,232)區(qū)間上的整數(shù);B4. 2)非線性變換,是把上述步驟B4. 1中的模擬信號x&(j)進行兩次非線性變換, 所述的非線性變換的過程,進一步包括B4. 2. 1)對于第4次迭代,即r = 4時,依據(jù)以下公式對輸出變量x&(j)進行非線 性操作x2r(j) = (x2r(j) X 250 mod232)/232,j = 1,2, ... ,8所述上式首先把雙精度實數(shù)x2, (j)放大,然后取模232,得到32比特長的整數(shù)(模 數(shù)轉(zhuǎn)換),最后再轉(zhuǎn)化為雙精度實數(shù);B4. 2. 2)對于第8次迭代,即r = 8時,依據(jù)以下公式對其進行非線性操作,并得到 中間變量Hi = IliWllhi⑵ 11... Ihi(S) ι hi (j) = X2r (j) X 250 mod232,j = 1,2,· · ·,8,i = 1,2,· · ·,t所述上式首先把雙精度實數(shù)x2,(j)放大,然后取模232,得到32比特長的整數(shù) 比(j)。在B5中,輸出散列值包括依次處理所有消息分組和散列值輸出變換兩個過程(如 圖2所示)B5. 1)依次處理所有消息分組,是對所有分組M1, M2, ...,Mt按分組順序重復(fù)執(zhí)行 步驟B3、B4,直到最后一個消息分組Mt處理結(jié)束,得到Ht = ht(l) I |ht (2)|ht(8) |, 每一個ht(j),j = 1,2,...,8,都是一個屬于[0,232)區(qū)間上的整數(shù);B5. 2)通過輸出變換得到最終的散列值,所述輸出變換的過程是把256比特的密 鑰K與Ht模232加后,按順序輸出如下h(K,M) = K+Ht = k(l)+ht(l) I k(2)+ht(2) | k(8)+ht (8) |其中操作+是模232加法。下面結(jié)合一個具體消息,進一步說明本發(fā)明的技術(shù)方案,包括中間運算過程及部 分結(jié)果。1.確定初始值散列操作前要約定初始值H。= h。(l) I |h0 (2) Μ... I |h0(8) I,給定h。(l) 到 hQ(8)(十六進制表示)為 51ff5c 9044df76 317b9d08 cf0661f3 95c0d47e 7ad70a5159ab4ca9 e55a354b。2.建立整形消息以原文abc這三個字母為例,對應(yīng)于十六進制表示的ASCII碼值為61,62,63,得到 整形消息為一個分組,即m(l)到m(32)分別為60616280 0000 00 000000000 000000000000 00 0 18 (十六進制表示),其中末尾的四個數(shù)字0 0 0 18表示 了消息的長度,即24比特長。3.擴展密鑰給定密鑰k(l)到k(8)為1 111111 1 (十六進制表示),得到擴展子密鑰 ka(l)到ka(32)為 14al645b 19ba6c2d 99260a39 830ea697 e2fcfld3817789dl cl681f28 5fe0a91c 9d2dd5bc feb86830 e31551d9 3d710ec3a5fdc73c a220ffbf 68e564cb 6e38ed8c 133abcfc 3378c729 576127e856bc9cd8 27894f4 454aad7 f4cbfl2f e0fed5eed41a7ab4 cd241afc7f47beb0 f0f383e0 95ea8b57 c20bald0 ccl553aa f435eael。4.計算參數(shù)由消息和擴展子密鑰產(chǎn)生的雙精度參數(shù)by和ay分別見表1和表2。5.壓縮過程計算壓縮過程計算得到輸出變量H1, Ii1(I)到、…)分別為8e761553 138967d6cebda9b 10061124 329f6cff 41cd614b e3ab4be2 24b8e673。6.輸出散列值(摘要)Mi)和密鑰k(i)模232加法運算,得到256比特的散列值14a6622f 5e4994db64609c77 24861f0d 9992e091 eefcc35b c0cae526 58aa26c7。僅改變信息“abc”到“abd”,密鑰K和初值H0不變,得到256比特的散列值為 94ccf47b a0f99c8a 919f22b6 cl242249 d98cd787 ddl232 ba5f5ddelldd6e23。為了更 好地說明散列值的變化,對改變前后的散列值按比特位異或操作,得到806a9654 feb00851 f5ffbecl e5a23d44 401e3716 ee21dl697a95b8f8 497748e,把上述結(jié)果用比特串表示(每 個32比特按比特位從低到高排列)0010101001101001010101100000000110001010000100000000110101111111100000110111110111111111101011110010001010111100010001011010011101101000111011000111100000000010100101101000101110000100011101110001111100011101101010010101111000100111000100101110111010010010圖3顯示了異或后的256比特值,約50%的比特位發(fā)生了變化,表明散列值具有很 好的隨機性。僅改變密鑰K中的k(l),其他密鑰值不變,k(l)由“1”變到“0”,信息“abc”和 初值 H。不變,得到 256 比特的散列值 30c6a2ca 32d3bed3 2d2acda74dee35ea a305cd0f fle3695d fd2cc35b cd54973b,和圖3類似,圖4顯示了散列值具有很好的隨機性。僅改變初值Htl中的hQ(l),其他初始值不變,hQ(l)由“51ff5c”變到“51ff5d”,信 息“abc”和密鑰K不變,得到256比特的散列值a795e75b ae997df3 27dee000a8082571 52belle Ibd0dcd4 cla03381 20538d87,和圖3類似,圖5顯示了散列值具有很好的隨機 性。本發(fā)明方法提供了一種抗碰撞攻擊的帶密鑰的散列方法,可用于軟件編程實現(xiàn), 有較快的處理效率。以上所述為本發(fā)明的較佳實施例而已,但本發(fā)明不應(yīng)該局限于該實施例。所以凡 是不脫離本發(fā)明所公開的精神下完成的等效或更改,都落入本發(fā)明保護的范圍。表1雙精度浮點表示的參數(shù)by
12 表2雙精度浮點表示的參數(shù)j
權(quán)利要求
基于耦合混沌映射系統(tǒng)的帶密鑰的散列方法,其過程特征在于以下處理步驟A1)消息預(yù)處理,包括確定初始值和消息整形;A2)密鑰擴展,是把256比特的密鑰K擴展成1024比特的子密鑰;A3)參數(shù)生成,是輸入消息和擴展子密鑰,產(chǎn)生一維耦合映射系統(tǒng)的兩組參數(shù);A4)壓縮過程,是把輸入的1024比特消息壓縮,輸出256比特,所述方法包括一維迭代耦合映射系統(tǒng)和非線性變換過程;A5)散列值輸出,包括依次處理所有消息分組和散列值輸出變換。
2.根據(jù)權(quán)利要求1所述的基于耦合混沌系統(tǒng)的帶密鑰的散列方法,其特征在于所述的 步驟Al消息預(yù)處理包括確定初始值和消息整形兩個步驟Al. 1)確定初始值,是指散列雙方需要約定初始變量Htl,確定8個32比特初始變量 h0(j)級聯(lián)組成 Hq = I1q(I) I Ih0 (2) II... I |h0(8) |,每個 h0(j)都是一個屬于[0,232)區(qū)間 上的整數(shù);Al. 2)消息整形,是指把消息通過填充補充位,添加原文長度信息,使整形消息長度為 分組長度的整數(shù)倍過程;每組消息固定為1024比特,整形原文消息長度為1024t比特,t為 整數(shù);所述的由原文消息生成整形消息的過程,進一步包括對輸入的原始消息進行填充補位,以使其補位后的消息長度在對1024取模后的余數(shù) 是896,補位是先補一個1再補0,直到長度滿足對1024取模余數(shù)是896,補位至少補一 位,最多補1024比特,即使長度已經(jīng)滿足對1024取模余數(shù)是896,補位也必須要進行 ’然 后補長度,補一個128比特長度的數(shù)據(jù)來表示原始消息的長度,補到已經(jīng)進行了補位操作 的消息后面;最后整個消息按順序分成一個個1024比特的消息分組數(shù)據(jù)塊M1, M2,..., Mt,用t表示消息整形后的最終分組數(shù)目;每組消息Mi可用32個整數(shù)級聯(lián)表示,Mi = m(l) I |m (2) II... I |m (32) |,每個 m(j) (j = ·1,2,...,32)都是屬于[0,232)區(qū)間上的整數(shù)。
3.根據(jù)權(quán)利要求1所述的基于耦合混沌系統(tǒng)的帶密鑰的散列方法,其特征在于所述的 步驟A2密鑰擴展是把256比特的密鑰K擴展成1024比特的子密鑰;密鑰K為256比特, 用8個整數(shù)級聯(lián)表示,K= k(l) I |k (2) I··· |k (8) I |,每一個k(j)都是一個屬于[0,232) 區(qū)間上的整數(shù);經(jīng)過擴展變換得到總長為1024比特的子密鑰,子密鑰用32個整數(shù)來表示, 虹⑴,虹⑵,…-,!^^?^每一個!^⑶都是一個屬于[0,232)區(qū)間上的整數(shù)。
4.根據(jù)權(quán)利要求3所述的密鑰擴展,其具體實施步驟是步驟1 輸入密鑰值K,得到8個整數(shù)kk (j),即kk (j) = k (j),j = 1,2,...,8 ; 步驟2 把8個整數(shù)kk(j)擴展成16個整數(shù)kk(j),即kk{j) = kk{j - 8) + (kk(j - 8) > 12) Θ (kk(j - 5) > 11) + (kk(j 一 3) < 11), j = 9,·10,...,16操作Θ是按比特位異或,操作+是模232加法,操作X >>> ( <<< )y表示對 χ右(左)循環(huán)移位y比特;步驟3 把擴展得到的16個整數(shù)kk(j)再壓縮為新的8個整數(shù)kk(j),即 kk(j) = kk(j+8)+kk(9-j),j = 1,2,· · ·,8重復(fù)執(zhí)行步驟2和步驟3三次,輸出8個整數(shù)kk(j),j = 1,2, ...,8,作為子密鑰 ka(j),j = l,2,···,8 ;再重復(fù)執(zhí)行步驟2和步驟3三次,輸出8個整數(shù)1^(」),」=1,2,..., 8,作為子密鑰ka (j),j = 9,10,. . .,16 ;繼續(xù)重復(fù)執(zhí)行步驟2和步驟3三次,輸出8個整數(shù)kk(j),j = 1,2,...,8,作為子密鑰ka(j),j = 17,18,...,24 ;最后重復(fù)執(zhí)行步驟2和步 驟3三次,輸出8個整數(shù)kk(j),j = 1,2,...,8,作為子密鑰ka(j),j = 25,26,... ,32 ;總 計輸出了總長為1024比特的子密鑰,即ka(j),j = 1,2,. . .,32。
5.根據(jù)權(quán)利要求1所述的基于耦合混沌系統(tǒng)的帶密鑰的散列方法,其特征在于所述的 步驟A3參數(shù)生成是由輸入的分組消息禮和擴展子密鑰ka(j),產(chǎn)生一維耦合映射系統(tǒng)的兩 組參數(shù),具體方法如下A3. 1)第一組參數(shù),通過線性變換可以把第i個消息分組Mi轉(zhuǎn)化為32個雙精度實數(shù)& j, i = 1,2,3,4, j = 1,2, . . .,8,即 A3. 2)第二組參數(shù),擴展得到的子密鑰ka(j)與輸入的消息分組Mi混合后,轉(zhuǎn)化為另外 一組 32 個雙精度實數(shù) ai,」.,i = 1,2,3,4, j = 1,2,...,8,即 其中操作Θ是按比特位異或,操作χ >>> y表示對χ右循環(huán)移位ι比特。
6.根據(jù)權(quán)利要求1所述的基于耦合混沌系統(tǒng)的帶密鑰的散列方法,其特征在于所述的 步驟A4壓縮過程是把輸入的1024比特消息壓縮,輸出256比特,所述方法包括一維迭代耦 合映射系統(tǒng)和非線性變換過程A4. 1) 一維迭代耦合映射系統(tǒng),其動力學(xué)系統(tǒng)表示為 其中η為離散時間迭代步數(shù),j為格點坐標(biāo),格點長度為8,使用周期邊界條件;f\ (a, χ) =ax (1-χ)是邏輯斯蒂映射,當(dāng)a > 3. 57時,邏輯斯蒂映射是混沌的;f2(a,χ)是分段線性 對于其他格點 j,Cj = 0 ; 映射,具體表示為/2(β,々 =參數(shù) a^mbiji = 1,2,3,4, j = 1,2, ... ,8)由步驟 A3 得到;依次執(zhí)行式(1)、(2)1 次 得到輸出變量x2r(j),j = 1,2,· · ·,8 ;當(dāng)?shù)螖?shù)不等于4和8次,SP r乒4和r乒8時, 輸出變量直接反饋執(zhí)行⑴、⑵迭代操作,當(dāng)?shù)螖?shù)等于4和8次,即r = 4和r =8時,輸出變量x&(j)執(zhí)行下述A4. 2非線性變換;所述的一維迭代耦合映射系統(tǒng),進一步包括以下兩種情況 A4. 1. 1)對于第一個消息分組M1,式(1)、(2)的初始值定義為 X0(J) =h0(j)/232,j = 1,2,... ,8其中hjj)是在步驟Al. 1中散列雙方約定的初始變量Htl,即Htl = h0(l) I Ih0(2)II··. I |h0(8)I I ;A4. 1. 2)對于第i個消息分組Mi,式(1)、(2)的初始值定義為 X0(J) = 1ιη(」)/232,j = 1,2,· · ·,8,i = 1,2,· · ·,t其中Iv1(J)是對第(i-Ι)個消息分組Mg壓縮(函數(shù))方法計算輸出的中間變量Hi+ 即 Hh =Iv1(I) I Itv1 (2) II··. I IV1(S) I |,每個hH(j)都是一個屬于[0,232)區(qū)間上的整 數(shù);A4. 2)非線性變換,是把上述步驟A4. 1中的模擬信號x&(j)進行兩次非線性變換,所 述的非線性變換的過程,進一步包括A4. 2. 1)對于第4次迭代,即r = 4時,依據(jù)以下公式對輸出變量X&(j)進行非線性操作x2r(j) = (x2r(j) X 250 mod232)/232,j = 1,2, ... ,8所述上式首先把雙精度實數(shù)x&(j)放大25°倍,然后取模232,得到32比特長的整數(shù)(模 數(shù)轉(zhuǎn)換),最后再轉(zhuǎn)化為雙精度實數(shù);A4. 2. 2)對于第8次迭代,即r = 8時,依據(jù)以下公式對其進行非線性操作,并得到中間 變量Hi = I^DIIhi⑵ 11··· Ihi(S) ι ^ (j) = x2r (j) X 250 mod232,j = 1,2,· · ·,8,i = 1,2,· · ·,t所述上式首先把雙精度實數(shù)x&(j)放大25°倍,然后取模232,得到32比特長的整數(shù) 比(j)。
7.根據(jù)權(quán)利要求1所述的基于耦合混沌系統(tǒng)的帶密鑰的散列方法,其特征在于所述的 步驟A5輸出散列值包括依次處理所有消息分組和散列值輸出變換兩個過程A5. 1)依次處理所有消息分組,是對所有分組M1, M2, ...,Mt按分組順序重復(fù)執(zhí)行步驟 A3、A4,直到最后一個消息分組Mt處理結(jié)束,得到Ht = ht(l) I |ht (2)|ht(8) |,每一個ht(j),j = 1,2,...,8,都是一個屬于[0,232)區(qū)間上的整數(shù);A5. 2)通過輸出變換得到最終的散列值,所述輸出變換的過程是把256比特的密鑰K與 256比特的Ht模232加后,按順序如下輸出h(K,M) =K+Ht = k(l)+ht(l) I |k(2)+ht(2) | k(8)+ht (8) | 其中操作+是模232加法。
全文摘要
本發(fā)明的目的是設(shè)計一種帶密鑰的散列方法,也就是消息認(rèn)證碼的產(chǎn)生方法,散列值和密鑰的長度都是256比特,消息分組長度是1024比特。基于耦合混沌映射系統(tǒng)的帶密鑰的散列方法,采用一維耦合混沌映射系統(tǒng),輸入消息與擴展子密鑰作為混沌映射系統(tǒng)的參數(shù),通過一維耦合混沌映射系統(tǒng)有限次的迭代操作,可以使消息和密鑰達(dá)到足夠的混亂與擴散,產(chǎn)生隨機分布、不重復(fù)的散列值,保證了該散列方法具有強抗碰撞性和軟件實現(xiàn)運算速度快的特性。
文檔編號H04L9/14GK101902332SQ20101022791
公開日2010年12月1日 申請日期2010年7月16日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者李達(dá), 王世紅, 胡崗 申請人:北京郵電大學(xué)