專利名稱:一種基于耦合混沌映射的消息完整性認證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,涉及用于消息完整性認證的方法。
背景技術(shù):
面對互聯(lián)網(wǎng)中各種各樣的威脅與攻擊,信息的接收方有必要對其收到的或保存的 信息進行完整性檢驗,驗證消息在傳送或存儲過程中是否被篡改、刪除或插入等。通常要對 認證的消息進行散列處理,輸出具有固定長度的散列值(也稱消息摘要),作為消息完整性 認證的依據(jù)。假定通信雙方A與B,A向B發(fā)送消息時計算散列值,并把消息和散列值發(fā)送 給B ;B對收到的消息進行相同的散列運算,得到新的散列值,并將接收到的散列值與B計算 出的散列值進行對比,如果相同則B可以確信消息的來源和未被篡改。如果散列值由通信 雙方指定的一個密鑰來控制,消息的散列值也稱為消息認證碼。一個安全的認證碼的產(chǎn)生要滿足(1)具體的操作方法是公開,唯一需要保密的是 密鑰;(2)任意長度的消息產(chǎn)生具有固定長度的認證碼;(3)給定操作方法、消息和密鑰, 要求容易得到認證碼;(4)給定方法和消息,在不知道密鑰的條件下,很難得到正確的認證碼。在傳統(tǒng)密碼學中,產(chǎn)生認證碼的方法通?;谝延械纳⒘蟹椒?,比如HMAC,也可以 基于分組加密方法,或者基于泛散列函數(shù)族方法,因此其安全性常依賴于這些基礎(chǔ)密碼本 身。本發(fā)明特制了一個全新的、基于耦合混沌映射的完整性認證方法,獨立于已有的散列方 法和加密方法。其主要特點是采用一維耦合混沌映射系統(tǒng),輸入消息與密鑰作為混沌映射 系統(tǒng)的參數(shù),通過耦合混沌映射系統(tǒng)有限次的迭代操作,可以使消息和密鑰達到足夠的混 亂與擴散,產(chǎn)生隨機分布、不重復的散列值(認證碼),保證了該方法的安全性和軟件實現(xiàn) 運算速度快的特性。
發(fā)明內(nèi)容
本發(fā)明的目的是設(shè)計一種消息完整性認證方法,其過程特征在于以下處理步驟Al)消息發(fā)送者產(chǎn)生初始鏈接值和保密的認證密鑰;A2)消息發(fā)送者把認證密鑰、初始鏈接值和消息輸入以下散列方法中,生成認證 碼,具體的步驟是A2. 1)進行消息整形,把消息通過填充補位后進行分組;A2. 2)進行密鑰擴展,把256比特的認證密鑰K擴展成IOM比特的子密鑰;A2. 3)進行參數(shù)生成,輸入IOM比特的分組消息和擴展子密鑰,產(chǎn)生一維耦合映 射系統(tǒng)的兩組參數(shù);A2. 4)進行消息壓縮,把輸入的IOM比特消息壓縮,輸出256比特;A2.5)依次處理所有消息分組,并對最后分組的輸出值進行變換,輸出消息認證 碼;A3)消息發(fā)送者把初始鏈接值、保密的認證密鑰、消息和消息認證碼發(fā)給消息接收者;A4)消息接收者把認證密鑰、初始鏈接值和消息輸入散列方法中,重復步驟A2中 每個步驟,生成消息認證碼;A5)消息接收者根據(jù)步驟A4所生成的認證碼和接收到的認證碼進行消息完整性 認證,如果兩者一致,證明接收到的消息是完整的;如果兩者不一致,證明接收到的消息是 不完整的。在步驟Al)中,消息發(fā)送者產(chǎn)生初始鏈接值H。,Htl由8個初始變量hQ(j)組成H。= Ih0(IhhtlO),...,h。(8)},每個h。(j)都是屬于
/231,i = l,2,3,4j =1,2,...,8其中操作 是按比特位異或,操作χ >>> y表示對χ右循環(huán)移位y比特。在步驟A2)消息認證碼的產(chǎn)生過程中,步驟A2. 4)壓縮過程是把輸入的IOM比特 消息壓縮,輸出256比特,所述方法由下述的一維耦合映射系統(tǒng)和非線性變換實現(xiàn)A2. 4. 1) 一維耦合混沌映射系統(tǒng)的動力學表示為xn+1 (j) = ^(Bljj, xn0))+^( ,^, xn(j+l))+^ (B3jjm, xn(j-l))(1)+f2(a4jJ+4, cJ+4, xn(j+4))modl, j = 1,2,...,8xn+2 (j) = Kb1, j,Xntl(J))+^ (b2jJ+1, x^U+l))+^ ^3jjm, xn+1(j-l)) (2)+f2(b4jJ+4, cJ+4, xn+1(j+4))modl, j = 1,2,...,8其中η為離散時間迭代步數(shù),j為格點坐標,格點長度為8,對所有參量使用周期邊 界條件;f\ (a, χ) = ax (1-x)是邏輯斯蒂映射,當a > 3. 57時,邏輯斯蒂映射是混沌的;f2 (a, c, χ) = ax+c ;Cl = 0. 1,c4 = 0.2,其他Cj = 0 ;參數(shù)屮,」和by由步驟A2. 3)得到;在參數(shù)
和I^j所取的范圍內(nèi),一維耦合映射系統(tǒng)是一個混沌系統(tǒng);依次執(zhí)行式(1)和次得 到輸出變量^(j),j = 1,2,...,8 ;當?shù)螖?shù)不等于4和8次,即r興4和r興8時,輸 出變量直接反饋執(zhí)行⑴和⑵迭代操作,當?shù)螖?shù)等于4和8次,S卩r = 4和r =8時,輸出變量執(zhí)行A2. 4. 2)非線性變換;所述的一維耦合映射系統(tǒng),進一步包括以下兩種情況對于第一個消息分組M1,式(1)的初始值定義為x0(j) = h0(j)/232,j = 1,2, ... ,8其中h0(j)是在步驟Al)中消息發(fā)送者選定的初始鏈接變量Htl,即Htl= {h0(l), h0(2), ... ,h0(8)};對于第i個(i > 1)消息分組Mi,式(1)的初始值定義為x0(j) = h^(j)/232, j = 1,2, · · ·,8,i = 1,2, · · ·,t其中hH(j)是對第(i-Ι)個消息分組Mh壓縮過程計算輸出的中間變量Hh,即 Hi^1 = ^(1),^^(2),...,^^(8)1,^^^0)都是屬于
h(j) = k(j)+ht(j)按順序輸出消息認證碼h(l)h(2). . · h⑶。本發(fā)明具有以下優(yōu)點(1).輸入消息與擴展子密鑰作為混沌系統(tǒng)的參數(shù),并對混沌變量采用非線性變 換,增加了理論計算攻擊的難度,有效地增強了系統(tǒng)安全性。(2).具有高的消息處理速度。(3).該方法易于軟件實現(xiàn)。
圖1是壓縮方法示意圖。圖2是產(chǎn)生認證碼示意圖。 圖3是消息只改變一個比特位,認證碼的變化。圖4是密鑰只改變一個比特位,認證碼的變化。圖5是初始值只改變一個比特位,認證碼的變化。
具體實施例方式下面結(jié)合附圖和實例對本發(fā)明作進一步詳細說明,完整性認證的具體構(gòu)造方法包 括如下五個步驟Bi)消息發(fā)送者產(chǎn)生初始鏈接值和保密的認證密鑰;B2)消息發(fā)送者把認證密鑰、初始鏈接值和消息輸入以下散列方法中,生成認證 碼,具體的步驟是B2. 1)進行消息整形,把消息通過填充補位后進行分組;B2. 2)進行密鑰擴展,把256比特的認證密鑰K擴展成IOM比特的子密鑰;B2. 3)進行參數(shù)生成,輸入IOM比特的分組消息和擴展子密鑰,產(chǎn)生一維耦合映 射系統(tǒng)的兩組參數(shù);B2. 4)進行消息壓縮,把輸入的IOM比特消息壓縮,輸出256比特;B2. 5)依次處理所有消息分組,并對最后分組的輸出值進行變換,輸出消息認證 碼;B3)消息發(fā)送者把初始鏈接值、保密的認證密鑰、消息和消息認證碼發(fā)送給消息接 收者;B4)消息接收者把認證密鑰、初始鏈接值和消息輸入散列方法中,重復步驟B2中 每個步驟,生成消息認證碼;B5)消息接收者根據(jù)步驟B4所生成的認證碼和接收到的認證碼進行消息完整性 認證,如果兩者一致,證明接收到的消息是完整的;如果兩者不一致,證明接收到的消息是 不完整的。在步驟Bi)中,消息發(fā)送者產(chǎn)生初始鏈接值H。,Htl由8個初始變量hQ(j)級聯(lián)組成 H0= Ih0(IhhtlQ),...,hQ (8)},每個h。(j)都是屬于
在步驟B2)消息認證碼的產(chǎn)生過程中,步驟B2. 1)消息整形是指把消息通過填充 補充位,并添加128比特長度的原文長度信息,使消息長度為分組長度的整數(shù)倍;每組消息 固定為IOM比特,整形后原文消息長度為IOMt比特,t為整數(shù);消息分組為M1, M2,..., Mt;所述的由原文消息生成整形消息的過程,進一步包括對輸入的原始消息進行填充補位,以使其補位后的消息長度在對IOM取模后的 余數(shù)是896,補位是先補一個1再補0,直到長度滿足對IOM取模余數(shù)是896,補位至少補一 位,最多補IOM比特,即使長度已經(jīng)滿足對IOM取模余數(shù)是896,補位也必須要進行;然后 補長度,補一個128比特長度的數(shù)據(jù)來表示原始消息的長度,補到已經(jīng)進行了補位操作的 消息后面;最后整個消息按順序分成一個個IOM比特的消息分組數(shù)據(jù)塊M1,M2,. . .,Mt,用t 表示消息整形后的最終分組數(shù)目;每組消息Mi可用32個整數(shù)表示,Mi= {m(l),m(2),..., m(32)},每個m(j)都是屬于
/231,i = 1,2,3,4,j = 1,2,...,8其中操作 是按比特位異或,操作χ >>> y表示對χ右循環(huán)移位y比特。
在步驟似)消息認證碼的產(chǎn)生過程中,步驟B2. 4)壓縮過程是把輸入的IOM比特 消息壓縮,輸出256比特,所述方法由一維迭代耦合映射系統(tǒng)和非線性變換實現(xiàn)(如圖1所 示)B2. 4. 1) 一維耦合映射系統(tǒng)的動力學表示為xn+1 (j) = ^(Bljj, xn(j))+^(B2jjtl, xn(j+l))+^ (B3jjm, xn(j-l))(3)+f2(a4jJ+4, cJ = 4,xn(j+4))modl, j = 1,2,...,8xn+2 (j) = Kb1, j,Xntl(J))+^ (b2jJ+1, x^U+l))+^ ^3jjm, xn+1(j-l)) (4)+f2(f4,J+4, cJ+4, xn+1(j+4))modl, j = 1,2,· · ·,8其中η為離散時間迭代步數(shù),j為格點坐標,格點長度為8,對所有參量使用周期邊 界條件;f\ (a, χ) = ax (1-x)是邏輯斯蒂映射,當a > 3. 57時,邏輯斯蒂映射是混沌的;f2 (a, c, χ) = ax+c ;Cl = 0. 1,c4 = 0.2,其他Cj = 0 ;參數(shù)屮,」和by由步驟B2. 3)得到;在參數(shù)
和I^j所取的范圍內(nèi),一維耦合映射系統(tǒng)是一個混沌系統(tǒng);依次執(zhí)行式C3)和次得 到輸出變量^(j),j = 1,2,...,8 ;當?shù)螖?shù)不等于4和8次,即r興4和r興8時,輸 出變量直接反饋執(zhí)行⑶和⑷迭代操作,當?shù)螖?shù)等于4和8次,S卩r = 4和r =8時,輸出變量&Jj)執(zhí)行B2. 4. 2)非線性變換;所述的一維迭代耦合映射系統(tǒng),進一步包括以下兩種情況對于第一個消息分組M1,式(3)的初始值定義為x0(j) = h0(j)/232, j = 1,2, ... ,8其中hQ(j)是在步驟Bi)中消息發(fā)送者選定的初始鏈接變量H。,即Htl= {h0(l), h0(2), ... ,h0(8)};對于第i個(i > 1)消息分組Mi,式(3)的初始值定義為x0(j) =、_山_)/232,j = 1,2,…,8,i = 1,2, · · ·,t其中hH(j)是對第(i-Ι)個消息分組Mh壓縮過程計算輸出的中間變量Hh,即 Hi^1 = ^(1),^^(2),...,^^(8)1,^^^0)都是屬于
10101001101110001100011011101100
11010100111001010111111001010101
01101100100011100101101011100001
11011101111110011101011000000001
10100001110111001101110100110100
10110000010110110110110001000000
11110110011011001100110000101111 圖3顯示了異或后的256比特值,約50%的比特位發(fā)生了變化,表明認證碼具有很 好的隨機性。 僅改變密鑰K中的k (1),其他密鑰值不變,k (1)由“ 1”變到“0”,信息"abc"和初 值 H。不變,得到 256 比特的認證碼 eaafdbc8 75e6ef59 7dle3eda99ba7fc0 5de9720e 79333fa9 3e4e4d85 b7b95!Mb,和圖3類似,圖4顯示了認證碼具有很好的隨機性。僅改變初值H0中的h0 (1),其他初始值不變,h0 (1)由“51ff5c”變到“51ff5d”,信 息“abc”和密鑰K不變,得到256比特的認證碼eclb8616 a3f7f9e2 4ad40e7055e31abd a6df20fb cd98582d lad38158 367c4k2,和圖3類似,圖5顯示了認證碼具有很好的隨 機性。本發(fā)明方法提供了一種消息完整性認證的方法,可用于軟件編程實現(xiàn),有較快的
處理效率。以上所述為本發(fā)明的較佳實施例而已,但本發(fā)明不應該局限于該實施例。所以凡 是不脫離本發(fā)明所公開的精神下完成的等效或更改,都落入本發(fā)明保護的范圍。表1雙精度浮點表示的參數(shù)by
權(quán)利要求
1.一種消息的完整性認證方法,其過程特征在于以下處理步驟 Al)消息發(fā)送者產(chǎn)生初始鏈接值和保密的認證密鑰;A2)消息發(fā)送者把認證密鑰、初始鏈接值和消息輸入以下散列方法中,生成認證碼,具 體的步驟是A2. 1)進行消息整形,把消息通過填充補位后進行分組; A2. 2)進行密鑰擴展,把256比特的密鑰K擴展成IOM比特的子密鑰; A2. 3)進行參數(shù)生成,輸入消息和擴展子密鑰,產(chǎn)生一維耦合映射系統(tǒng)的兩組參數(shù); A2. 4)進行消息壓縮,把輸入的IOM比特消息壓縮,輸出256比特; A2. 5)依次處理所有消息分組,并對最后分組的輸出值進行變換,輸出消息認證碼; A3)消息發(fā)送者把初始鏈接值、保密的認證密鑰、消息和消息認證碼發(fā)給消息接收者; A4)消息接收者把認證密鑰、初始鏈接值和消息輸入散列方法中,重復步驟A2中每個 步驟,生成消息認證碼;A5)消息接收者根據(jù)步驟A4所生成的認證碼和接收到的認證碼進行消息完整性認證, 如果兩者一致,證明接收到的消息是完整的;如果兩者不一致,證明接收到的消息是不完整 的。
2.根據(jù)權(quán)利要求1所述的一種完整性認證方法,其特征在于所述的步驟Al)中,消息發(fā) 送者產(chǎn)生初始鏈接值H。,H。由8個初始變量h0 (j)級聯(lián)組成H0 = {hQ (1),hQ (2),. . .,h0 (8)}, 每個h^j)都是屬于
/231, i = 1,2,3,4, j = 1, 2,...,8其中操作 是按比特位異或,操作χ >>> y表示對χ右循環(huán)移位y比特。
6.根據(jù)權(quán)利要求1所述的一種完整性認證方法,步驟A2.4)壓縮過程是把輸入的IOM 比特消息壓縮,輸出256比特,所述方法由一維迭代耦合映射系統(tǒng)和非線性變換實現(xiàn)A2. 4. 1) 一維迭代耦合映射系統(tǒng)的動力學表示為xn+i (J") = fi (Blj j, xn(j))+fi (a2jJ+1, xn(j+l))+f1 (B3jjm, xn(j-l))(1)+f2 (a4, J+4, Cj = 4, xn(j+4) )modl, j = 1, 2, . . . , 8 xn+2 (J') = Hj,xn+i(j))+f! (b2jJ+1, xn+1(j+l))+f! ^3jjm, xn+1(j-l)) (2)+f2 (b4, J+4, cJ+4, xn+1 (j+4))modi, j = 1,2, . . . ,8 其中η為離散時間迭代步數(shù),j為格點坐標,格點長度為8,對所有參量使用周期邊界條 ^if1 (a, χ) = ax (1-χ)是邏輯斯蒂映射,當a > 3. 57時,邏輯斯蒂映射是混沌的;f2 (a,c, χ) = ax+c ;Cl = 0. l,c4 = 0. 2,其他 Cj = 0 ;參數(shù)屮,」和 by,i = 1,2,3,4,j = 1,2,· · ·, 8,由步驟A2. 3)得到;在參數(shù)^,」和by所取的范圍內(nèi),一維耦合映射系統(tǒng)是一個混沌系統(tǒng); 依次執(zhí)行式(1)和(2)1~次得到輸出變量^^(」),」=1,2,...,8;當?shù)螖?shù)不等于4和8 次,即r興4和r興8時,輸出變量^Jj)直接反饋執(zhí)行⑴和⑵迭代操作,當?shù)螖?shù) 等于4和8次,S卩r = 4和r = 8時,輸出變量x&(j)執(zhí)行A2. 4. 2)非線性變換; 所述的一維迭代耦合映射系統(tǒng),進一步包括以下兩種情況 對于第一個消息分組M1,式(1)的初始值定義為 X0(J) =h0(j)/232,j = 1,2,... ,8其中hQ(j)是在步驟Al)中消息發(fā)送者選定的初始鏈接變量H。,即Htl= {h0(l), h0(2), ... ,h0(8)};對于第i個(i > 1)消息分組Mi,式⑴的初始值定義為 X0(J) = 11^0)/232, j = 1,2,· · ·,8,i = 1,2,· · ·,t其中hH(j)是對第(i-Ι)個消息分組Mh壓縮過程計算輸出的中間變量Hg,即Hh = Ov1⑴,V1 (2), . . . , V1⑶},每個V1 (j)都是屬于[0,232)區(qū)間上的整數(shù);A2. 4. 2)非線性變換是把上述步驟A2. 4. 1)中的模擬信號^c2Jj)進行兩次非線性變換, 所述的非線性變換的過程,進一步包括對于第4次迭代,即r = 4時,依據(jù)以下公式對輸出變量(J)進行非線性操作 x2r(j) = Oc2r(j) X 250 mod232)/232,j = 1,2,· · ·,8所述上式首先把雙精度實數(shù)&Jj)放大25°倍,然后取模232,得到32比特長的整數(shù)(模 數(shù)轉(zhuǎn)換),最后再轉(zhuǎn)化為雙精度實數(shù);對于第8次迭代,即r = 8時,依據(jù)以下公式對其進行非線性操作,并得到中間變量Hi =Ihi(I),^ (2),... (8)}^ (j) = x2r (j) X 250 mod232,j = 1,2,· · ·,8,i = 1,2,· · ·,t所述上式首先把雙精度實數(shù)放大25°倍,然后取模232,得到32比特長的整數(shù) 比(j)。
7.根據(jù)權(quán)利要求1所述的一種完整性認證方法,步驟A2. 5)依次處理所有消息分組,對 所有分組M1, M2, ...,Mt按分組順序重復執(zhí)行步驟A2. 3)、A2. 4),直到最后一個消息分組Mt 處理結(jié)束,得到輸出值 Ht = {ht(l),hj2),...,ht(8)},每一個 ht(j),j = 1,2,...,8,都是 屬于W,232)區(qū)間上的整數(shù);并對256比特輸出值Ht與256比特的密鑰K進行模232加 h(j) = k(j)+ht(j)按順序輸出消息認證碼h(l)h(2)...h (8)。
全文摘要
本發(fā)明公開了一種消息完整性認證方法。本方法為1)消息發(fā)送者產(chǎn)生初始鏈接值和保密的認證密鑰;2)發(fā)送者把認證密鑰、初始鏈接值和消息輸入散列方法,輸出消息認證碼,該散列方法采用一維耦合混沌映射系統(tǒng),輸入消息與擴展子密鑰作為混沌系統(tǒng)的參數(shù),通過混沌系統(tǒng)有限次的迭代操作,可以使消息和密鑰達到足夠的混亂與擴散,產(chǎn)生隨機分布、不重復的散列值(認證碼);3)發(fā)送者把初始鏈接值、認證密鑰、消息和認證碼發(fā)給消息接收者;4)接收者把認證密鑰、初始鏈接值和消息輸入散列方法中,生成消息認證碼;5)接收者根據(jù)步驟4)所生成的認證碼和接收到的認證碼進行消息完整性認證,如果兩者一致,證明接收到的消息是完整的。該方法具有強的安全性和易于軟件實現(xiàn)的特性。
文檔編號H04L9/32GK102082668SQ20101057633
公開日2011年6月1日 申請日期2010年12月7日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者李達, 王世紅, 胡崗 申請人:北京郵電大學