專利名稱::基于嵌入式混沌映射的單向散列函數(shù)的構(gòu)造方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及散列函數(shù)的構(gòu)造方法和系統(tǒng)。更具體地說,本發(fā)明涉及基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法和系統(tǒng),所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改。
背景技術(shù):
:隨著Intemet技術(shù)的迅猛發(fā)展,數(shù)據(jù)交換在電子商務(wù)中越來越頻繁和活躍,敏感數(shù)據(jù)、電子支票、電子簽名、電子郵件等的完整性和認(rèn)證性就顯得特別重要。消息認(rèn)證就是提供一種校驗(yàn)數(shù)據(jù)完整性的機(jī)制,它可以確認(rèn)數(shù)據(jù)來源并能判斷是否被篡改等。常用到的是單向散列函數(shù)是正向計(jì)算簡單,反向計(jì)算復(fù)雜,而且很難找到兩個(gè)不同的輸入之對應(yīng)于同一個(gè)輸出值的一種函數(shù)。它一般分為兩類無密鑰單向散列函數(shù)和有密鑰單向散列函數(shù)。無密鑰控制的單向散列函數(shù),其散列值只是輸入字符串的函數(shù)計(jì)算結(jié)果,任何人都可以計(jì)算,因而不具有身份認(rèn)證的功能,只用于檢測接收數(shù)據(jù)的完整性,如篡改檢測碼(MDC),用于非密碼計(jì)算機(jī)應(yīng)用中。常見的無密鑰的單向散列函數(shù)有MD5,SHA-1等W。帶密鑰的散列函數(shù)是利用密鑰來生成一個(gè)固定長度的數(shù)據(jù)塊,并將該數(shù)據(jù)塊附加在消息之后。它同時(shí)也要滿足各種安全性要求,其散列值不僅與輸入有關(guān),而且與密鑰有關(guān),只有持此密鑰的人才能計(jì)算出相應(yīng)的散列值,因而具有身份驗(yàn)證功能,如消息認(rèn)證碼(MAC)[2]。自從2004年王小云相繼發(fā)現(xiàn)MD5,HAVAL-128、MD4,RIPEMD和SHA-1碰撞以來[3-6],單向散列函數(shù)的安全性問題成為又一個(gè)研究的熱點(diǎn)。密碼學(xué)專家已經(jīng)意識到當(dāng)今的散列函數(shù)的不安全性,NIST(NationalInstituteofStandardsandTechnology,美國國家標(biāo)準(zhǔn)技術(shù)研究院)計(jì)劃在2010年前逐步淘汰當(dāng)今所使用的SHA-1,而采用更安全,長度更長的散列函數(shù),如SHA-224,SHA-256,SHA-384和SHA-512來代替,因此設(shè)計(jì)一個(gè)安全的散列函數(shù)成為當(dāng)今密碼界一個(gè)新的挑戰(zhàn)?;煦缡怯纱_定性動力學(xué)系統(tǒng)產(chǎn)生的一種看似隨機(jī)的非線性現(xiàn)象,混沌信號具有的非周期性、連續(xù)寬帶頻譜、類似噪聲的特性,使它具有天然的隱蔽性。對初始條件和微小擾動的高度敏感,又使混沌信號具有長期和不可預(yù)測性。混沌信號的隱蔽性和不可預(yù)測性,使其非常適用于保密通信。近年來,利用混沌系統(tǒng)的確定性和對初值的敏感性來構(gòu)造新的散列函數(shù)又成為一個(gè)新的研究思路,因?yàn)樗_實(shí)能很好地解決傳統(tǒng)散列函數(shù)運(yùn)算量問題。文獻(xiàn)[7-9]分別用廣義混沌映射切換、時(shí)空混沌和超混沌的方法來構(gòu)造單向散列函數(shù),它們均對過原始數(shù)據(jù)的混沌迭代來完成散列函數(shù)運(yùn)算,從而增加了運(yùn)算復(fù)雜度,且安全性也并沒有明顯提高。文獻(xiàn)[10]中使用廣義的混沌貓映射,密鑰空間較大,但存在大量重復(fù)的矩陣乘法運(yùn)算,運(yùn)行速度降低。文獻(xiàn)[ll]中采用新穎的混沌S-box,并結(jié)合查表及函數(shù)級聯(lián)操作,的確達(dá)到了充分的混淆與擴(kuò)散效果,但在處理長消息文件中,頻繁的查表搜索會使得最后的散列值生成時(shí)間比較長。文獻(xiàn)[12]設(shè)計(jì)中需要生成與明文等長的混沌序列,在對計(jì)算機(jī)運(yùn)算精度方面要求比較高,而且大量的浮點(diǎn)數(shù)很難提升運(yùn)算速度,尤其是對較長的明文。文獻(xiàn)[13]用混沌神經(jīng)網(wǎng)絡(luò)生成散列值,但在參與運(yùn)算的權(quán)值也是浮點(diǎn)型數(shù)據(jù),勢必也增加了運(yùn)算的復(fù)雜度。文獻(xiàn)[14]中西南交通大學(xué)王小敏、張家樹等構(gòu)造了一種基于復(fù)合非線性數(shù)字濾波器的Hash函數(shù)生成方法,并申請相應(yīng)的發(fā)明專利。文獻(xiàn)[15]討論了基于混沌生成散列函數(shù)可能存在的碰撞缺陷。并建議利用混沌生成散列值時(shí)可采用以下幾個(gè)可參考方式1)將明文映射到相空間,并采取不同的迭^l次數(shù)。2)塊得到的換代值應(yīng)該作為下一塊迭代過程的初始,也就是說不同塊的迭代應(yīng)該是相關(guān)的,而不是分離的,雖然這樣做可以提高算法的并行度。3)對于塊不足的處理,不能僅僅是單純的添加某一字符,還需要添加原始明文的信息。4)對于最后生成散列值的迭代值的選擇,應(yīng)盡量對不同的明文選擇不同迭代次數(shù)的值,這樣即使最后的迭代序列完全一致,由于迭代選擇不一樣,也可以保證最后的散列值不一樣。Anderaon.R.TheclassificationofHashfbnctions.Proc.IMAConf.Cryptography,1995:83-95ANSIX9.9.Americannationalstandard-FinancialInstitutionMessageAuthentication(Wholesale).ASCX9Secretariat-AmericanBankersAssociation,1986[3]http:〃www.md5crk.com/[4]XiaoyunWang,HongboYu,andYiqunLisaYin.EfficientCollisionSearchAttacksonSHA-0http:〃www.iacr.org./conferences/crypto2005/index[5]XiaoyunWang,YiqunLisaYin,andHongboYu.FindingCollisionsintheFullSHA-1.http:〃www.iacr.org,/conferences/crypto2005/index「6"|http:〃csrc.nist.gov/Hashstandards_comments.pdf[7]盛利元,李更強(qiáng),李志煒.基于切延遲橢圓反向腔映射系統(tǒng)的單向Hash函數(shù)構(gòu)造.物理學(xué)報(bào),2006,(55):5700-5706[8]張瀚,王秀峰,李朝暉等.基于時(shí)空混沌系統(tǒng)的單向Hash函數(shù)構(gòu)造.物理學(xué)報(bào),2005,(54):4006-4011[9]彭飛,丘水生,龍敏.基于二維超混沌映射的單向Hash函數(shù)構(gòu)造.物理學(xué)報(bào),2005,(54):4562-4568[10]H.S.KwokandWallaceK.S.Tang.Achaos-basedcryptographicHashflmctionformessageauthentication.InternationalJournalofBifurcationandChaos,2005,15(12):4043-4050[11]郭現(xiàn)峰,張家樹.基于混沌動態(tài)S-Box的Hash函數(shù)..物理學(xué)報(bào),2006,55(9):4443-4449[12]DiXiao,XiaofengLiao,ShaojiangDeng.One-wayHashflmctionconstructionbasedonthechaoticmapwithchangeable-parameter.Chaos,SolitonsandFractals,2005,(24):65-71[13]ShigouLian,ZhongxuanLiu,ZhenRenetc.Hashflmctionbasedonchaoticneuralnetworks.正EEISCAS2006:237-240[14]王小敏,張家樹,張文芳.基于復(fù)合非線性數(shù)字濾波器的Hash函數(shù)構(gòu)造.物理學(xué)報(bào),2005,(54):5566-5573[15]王繼志,王英龍,王美琴.一類基于混沌映射構(gòu)造Hash函數(shù)方法的碰撞缺陷.物理學(xué)報(bào),2006,(55):5048-5054
發(fā)明內(nèi)容因此,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,提供基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法和系統(tǒng),所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改。該構(gòu)造方法和系統(tǒng)雖然在將明文映射到相空間時(shí)沒有采用不同的迭代次數(shù),但避免碰撞現(xiàn)象發(fā)生的其它要點(diǎn)基本上都滿足。而且,由于散列值長度及密鑰是可變化的,這就增加了系統(tǒng)破解的復(fù)雜性,安全性和運(yùn)算速度都有明顯提高。根據(jù)本發(fā)明的一個(gè)方面,提供基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,其中,所述構(gòu)造方法包括步驟l)接收預(yù)定的混沌映射、初始值和密鑰并接收要處理的所述消息,以產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并用所述混沌序列初始化每一個(gè)都具有預(yù)定位長度的一組初始緩沖值序列;2)以所述混沌序列作為填充序列,對所述消息進(jìn)行位填充處理,以便將經(jīng)填充的消息墊劃分成預(yù)定個(gè)子塊,其中每個(gè)所述子塊具有相同的所述預(yù)定位長度;3)將經(jīng)賦值的初始緩沖值序列與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組輸出;4)對步驟3)所輸出的新的緩沖值序列組和以預(yù)定的順序在所述子塊中選擇的另一子塊重復(fù)步驟3)的所述布爾運(yùn)算,直到對全部所述子塊進(jìn)行了步驟3)為止;5)將步驟4)的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。根據(jù)本發(fā)明的另一個(gè)方面,提供基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,其中,所述系統(tǒng)包括接收裝置,用于接收用戶選擇和密鑰,以及所述消息;混沌序列產(chǎn)生裝置,用于根據(jù)所述接收裝置接收到的密鑰和用戶選擇,產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并以所述混沌序列初始化每一個(gè)都具有預(yù)定位長度的一組初始緩沖值序列;消息塊填充裝置,用于對所述接收裝置接收到的所述消息進(jìn)行位填充處理,以便將所述消息劃分成預(yù)定個(gè)子塊,其中每個(gè)所述子塊具有相同的所述預(yù)定位長度;布爾迭代裝置,將經(jīng)所述混沌序列產(chǎn)生裝置賦值的所述初始緩沖值序列組與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組與以預(yù)定的順序在所述子塊中選擇的另一子塊進(jìn)行所述布爾運(yùn)算,直到對全部所述子塊進(jìn)行了所述布爾運(yùn)算為止;以及散列值序列輸出裝置,用于將所述布爾迭代裝置的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。根據(jù)本發(fā)明的另一個(gè)方面,提供計(jì)算機(jī)產(chǎn)品,其上實(shí)施有實(shí)現(xiàn)基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法的程序,所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,所述構(gòu)造方法包括步驟l)接收預(yù)定的混沌映射、初始值和密鑰并接收要處理的所述消息,以產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并用所述混沌序列初始化每一個(gè)都具有預(yù)定位長度的一組初始緩沖值序列;2)以所述混沌序列作為填充序列,對所述消息進(jìn)行位填充處理,以便將經(jīng)填充的消息墊劃分成預(yù)定個(gè)子塊,其中每個(gè)所述子塊具有相同的所述預(yù)定位長度;3)將經(jīng)賦值的初始緩沖值序列與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組輸出;4)對步驟3)所輸出的新的緩沖值序列組和以預(yù)定的順序在所述子塊中選擇的另一子塊重復(fù)步驟3)的所述布爾運(yùn)算,直到對全部所述子塊進(jìn)行了步驟3)為止;5)將步驟4)的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。圖l示出了利用基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法的示意性流程圖;圖2圖示了產(chǎn)生混沌序列并初始化緩沖值序列的流程圖;圖3圖示了在混沌參數(shù)oH).3612,初始條件x『0.8581的情況下,迭代3000次所產(chǎn)生的混沌序列的分布圖;圖4圖解了消息位填充方案的示意圖;圖5圖示了基于嵌入式混沌散列函數(shù)構(gòu)造方法中的迭代過程的流程圖;圖6示出了迭代操作過程信號流向的示意框圖;圖7示出了利用基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng)的示意性框圖;圖8示出了混沌序列參數(shù)及密鑰敏感性測試的曲線圖;圖9示出了原始消息1位變化后的單向散列序列的變化直方圖(L=64、N=4096);圖10示出了相同位置ASCII值碰撞比較的曲線圖;圖ll示出了相同位置Hex值碰撞比較的曲線圖;以及圖12示出了本發(fā)明的混沌嵌入式方案與MD5方案運(yùn)行時(shí)間比較的曲線具體實(shí)施方式下面將參照示出本發(fā)明的優(yōu)選實(shí)施方式的附圖來更加全面地描述本發(fā)明。應(yīng)該理解,本發(fā)明可以用其他不同的形式來實(shí)現(xiàn),而且不應(yīng)當(dāng)限于這里所描述的實(shí)施方式。事實(shí)上,提供下述實(shí)施方式只是為了全面和完整地將本發(fā)明的范圍傳達(dá)給本領(lǐng)域的普通技術(shù)人員。在整個(gè)附圖中,相同的附圖標(biāo)記表示相同的組成部分。首先,參照圖l,該圖示出用于防止信息篡改的、利用基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法的示意性流程圖。本發(fā)明通過圖l所示的流程,生成抗碰撞的、帶密鑰的可擴(kuò)展長度的單向散列序列。在圖l所示的步驟S10中,選擇適當(dāng)?shù)幕煦缬成洚a(chǎn)生混沌序列。圖2示出根據(jù)本發(fā)明的優(yōu)選實(shí)施方式來產(chǎn)生混沌序列的方法的流程圖。在步驟S110中,選擇一維可擴(kuò)展的混沌Tent映射,該混沌Tent映射定義如下其中混沌參數(shù)a滿足(KoKl,混沌序列jc,.的取值范圍是區(qū)間[O,l],但x,取0或l值的概率較小。在步驟S120中,將混沌參數(shù)a、初始條件;co作為密鑰。而在步驟S130中,用公式(1)迭代m次數(shù)產(chǎn)生混沌序列x,.。該混沌序列被證明在(0,1)區(qū)間具有相當(dāng)?shù)木鶆蚍植?,并且對參?shù)與初始條件極端地敏感,非常便于用作混淆與擴(kuò)散。圖3是圖示在混沌參數(shù)01=0.3612,初始條件jco-0.8581的情況下,迭代3000次所產(chǎn)生的混沌序列的分布圖。其中,橫軸表示迭代次數(shù)n,而縱軸表示第n次迭代的所得到的混沌序列x"。然后,在步驟S140中,將所產(chǎn)生的混沌序列x,用如下的公式(2)進(jìn)行二值化,產(chǎn)生二進(jìn)制碼序列乂.如圖2所示,步驟S140所產(chǎn)生的二進(jìn)制混沌序?qū)⒃诒景l(fā)明產(chǎn)生散列值的處理過程中多次使用,這將在后文中進(jìn)一步敘述。接下來,再參考圖l。根據(jù)本發(fā)明的實(shí)施方式,采用塊處理方案。因此,在圖1所示的步驟S20中,對要進(jìn)行處理的原始消息進(jìn)行位填充處理,以便能<formula>formulaseeoriginaldocumentpage14</formula>夠?qū)⑷我忾L度的原始消息分成等長度的塊,從而利用在步驟l中所產(chǎn)生混沌序列進(jìn)行塊處理。根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,每個(gè)消息子塊長度可以4皮假定為4X丄(丄可設(shè)定為任意整數(shù)),那么為了使得每個(gè)消息子塊長度相同,必須將原始消息進(jìn)行位填充。即,將原始消息填充成原始消息加上位填充位的總長度為4x丄的倍數(shù)。具體的填充方案如下(1)設(shè)原始消息長度為M丄o字節(jié),即M^rM丄()x8位。按照公式(3)計(jì)算要擴(kuò)展的長度SA:J"4xZ—mod(A/丄。x8,4x丄),mod(jWL。x8,4x丄)-01一"jo,—od(ML。x8,4x丄)=0(3)(2)為填充更具有混淆功能的消息位,繼續(xù)完整地?cái)U(kuò)展4x丄位,即5X2=4xZ.(4)事實(shí)上,本發(fā)明的填充方案可適合于任意長度的消息。由于選擇的整數(shù)丄值可能不一樣,即使對于相同長度的消息填充的消息位長度也可能不一致。(3)在原始消息的后面用步驟SIO中生成的二進(jìn)制碼序列乂進(jìn)行填充,填充的長度為(S/4+5X2)。圖4是圖示消息位填充方案的示意圖。具體地說,在圖4的右邊的混沌二進(jìn)制碼序列部分中填充如下序列S=_y(7。+1,/。+ZSxl義Zs=5^+5X2(5)即在二進(jìn)制碼序列乂.,抽取從/o+l位開始的A所構(gòu)成的子混沌序列,其中/o為選擇步驟S10中生成的二進(jìn)制混沌序列的初始位置。應(yīng)該理解,雖然在本發(fā)明的優(yōu)選實(shí)施方式中,只是按照連續(xù)的方式從混沌序列乂中選取子混沌序列,但實(shí)際上,在選取一定長度的混沌系統(tǒng)中,可以用算法來實(shí)現(xiàn)從混沌序列乂中按一定規(guī)律選擇,如中間相隔幾位或逆向選擇等,從而得到更具有隨機(jī)混淆的子混沌序列。原始消息在填充了二進(jìn)制混沌序列乂后的長度,即消息襯墊的長度,為MP=(MS。+5^+5Z2)位。接下來,再回到附圖l,在充填原始消息來得到消息村墊后,本發(fā)明的處理流程在步驟S30中,將經(jīng)過填充的消息襯墊i^P均分為m二MiV(4x£)個(gè)子塊Mji^,...,m),以便進(jìn)行塊處理。經(jīng)過這種處理所得到的每個(gè)消息子塊長度均為4x丄字節(jié)。這樣所得到的每個(gè)消息子塊Mi可以進(jìn)一步劃分長度分別為丄位的子塊,令為M"、Mi2、Mi3、Mi4(i=l,…,m),因此My(j=l、2、3、4)長度為丄位。下面,在圖1所示的步驟S40中,基于如圖5所示的嵌入式混沌散列函數(shù)構(gòu)造過程,以生成原始消息的散列值。圖5是圖示根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的基于嵌入式混沌映射的散列值生成方法的流程圖。本發(fā)明所采用的方案與Merkle-Damgard塊模板具有相類似的結(jié)構(gòu),但在每一輪的運(yùn)算中嵌入了新的混沌序列。每個(gè)消息子塊均要執(zhí)行4輪操作,其中A、B、C、D、E、E,、E2、E3和E4均為iX立,t,、t2、t3、t4代表參與每一輪移位數(shù)計(jì)算的序列。A、B、C、D、E從左至右不斷更新,直到所有消息操作完畢。圖5中E。E2、E3、E4、t卜t2、t3、tt及初始值A(chǔ)、B、C、D、E均為混沌序列。下面詳細(xì)描述圖5中的流程。在進(jìn)行第一輪操作之前,用序列乂按照公式(6)分別對初始緩沖值A(chǔ)、B、C、D和E進(jìn)行賦值。^二少仏+l,^+丄xl)5=></s+l+Zxl,/fl+ix2)<C=y(7c+1+丄x2,/c+Zx3)Z)=j;(/fl+1+1x3,^十丄x4)£=+l+Zx4,/£+Zx5)(6)其中(("AAC,DJ)代表選擇序列乂.的初始位置。同時(shí)按照公式(7)和(8)分別對E,、E2、E3、E4、t!、t2、t3和t4進(jìn)行賦值。五2=+1+丄xl,/£2+丄x2)五3=y(43+1+丄x2,/£3+丄x3),五4=少(7£4+1+丄乂3,/£4+£><4)(7)/2=M7,2+l+'oxl,/,2+0x2)(8)3=y(/,3+l+f0x2,/,3+f0x3)/4=7((4+l+'0x3,/M+/0x4)其中k和々("1,2,3,4)代表選捧序列力的初始位置。然后,在對在步驟S20中均分經(jīng)填充的消息襯墊得到的每個(gè)消息子塊Mi的明文子塊Mu、Mi2、Mi3、Mi4分別進(jìn)行第一到第四輪操作。其中,第一輪操作為<D=,,C,K)£="(M,,,M,2,M,3,MM,,O(9)第二輪操作'Z)=//(5,C,Ma,,2)五2=1//CD,£2,A/,.2,Z2)£=^T(7^2,M,3,M4,M,£2,,2)(10)第三輪操作£=M(M,3,M,4,M,,,M,2,£3,,3)(11)第四輪操作£=《率,4,M,.,,M,2,M,.3,£4,/4)(12)實(shí)際上,在每輪操作中,Mu、Mi2、Mi3、Mi^支循環(huán)左移I位。其中,F(xiàn)F、GG、7/仏//、J7、《《均表示布爾運(yùn)算,分別定義為尸尸(£,3,,0=(£3@似)>>(5>(丄3)GG(AAM,o=(,0W《々4))i>J)々3)(14)////((^,"/,0=(省A04》f(4))(c^i))《f(5)(is)//(S,C,Af,0=((~^vA/)f(5>)C(16)Jj(A£,M,0=(CDAO<<f(4))((W£)f(5))(17)^X(M"M2,M3,A/4,五,O:(O^vM2)0(M3④iAf4)ei(18)這里,符號、,、a、v、<<、>>分別代表異或、非、與、或、循環(huán)左移、循環(huán)右移。,(,)中的,是(8)式中的^2,^,",它們的長度均為,。。,<,)表示從,。長度中從右向左選取/比特,將它們轉(zhuǎn)換為十進(jìn)制,這個(gè)十進(jìn)制值最終成為在運(yùn)算中的移位量。例如,假如。為8位長數(shù),且,=ioioiioi,則&==1、&=(01)2=1、々3)=(101)2=5、^=(1101)2=13、々5)=(01101)2=13、,(6)=(101101)2=45、/(7)=(0101101)2=45、,(8>=(10101101)2=173。在本方案中僅使用&)、"和《s)。接下來,在圖1所示的步驟S50中,通過將前一步驟S40所生成的A、B、C、D和E進(jìn)行級聯(lián),組成5x丄的單向散列函數(shù)值。這樣的單向散列函數(shù)值與消息子塊Mi有關(guān),記成A。如圖6所示的那樣,經(jīng)過對每一個(gè)消息子塊Mi(i=l,…,m)以一定順序重復(fù)步驟S30的處理,直到所有消息全部操作完畢(共重復(fù)m-M7V(4x丄)次),從而產(chǎn)生5x丄的單向散列函數(shù)值序列仏,//2,…,//m。值得注意,步驟S30的處理不一定從消息子塊Mi開始,而是可以從任何消息子塊Mi開始。在重復(fù)步驟S30來對其余的消息子塊進(jìn)行處理時(shí),以事先預(yù)定的順序處理其余各消息子塊,而且后一次處理使用的緩沖值序列是前一次處理所輸出的單向散列函數(shù)值序列。在根據(jù)本發(fā)明的一個(gè)實(shí)施方式中,按照上述參照圖l、圖2、圖4、圖5和圖6描述過的流程,在不同密鑰(即,不同混沌參數(shù)a、初始條件jc。)下,對4234字節(jié)的文件、空內(nèi)容、l個(gè)空格、"發(fā)明專利"、"inventionpatent"和數(shù)字'T,進(jìn)行處理后的散列函數(shù)值。具體地說,在使用下述公式(21)式提供的初始位置選擇的情況下,對本發(fā)明在不同的散列長度,不同的參數(shù)選擇,不同的消息內(nèi)容情況下分別計(jì)算,結(jié)果如下表l所示表l<table>tableseeoriginaldocumentpage18</column></row><table><table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>在表1中,采用了本發(fā)明所定義的對稱單向散列函數(shù),密鑰a和xo的選擇是一次一密的。如果取丄=64,即可生成320位的單向散列序列。在上述實(shí)施方式中,選擇一個(gè)長度為4234字節(jié)的文件,根據(jù)消息填充位的計(jì)算方法,須補(bǔ)充8x64-mod(4234x8,4x64)=432位的混沌序列,整個(gè)消息襯墊長度為4234x8+432=34304位,整個(gè)迭代次數(shù)為34304/(4x64)=134次。取混沌序列的兩個(gè)值=0.3612,x0=0.8581,(20)并將混沌初始位置取如下值/<formula>formulaseeoriginaldocumentpage20</formula>。"(21)并且???0=8,則就能生成一個(gè)320位的最終散列值11134,其中下標(biāo)的134代表本次運(yùn)算的迭代次數(shù)。本發(fā)明用于防止信息篡改的、利用基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造可以通過一個(gè)系統(tǒng)來實(shí)現(xiàn)。圖7圖示了實(shí)現(xiàn)構(gòu)造基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的系統(tǒng)。參考圖7,該系統(tǒng)包括接收部分710、消息塊填充部分720、消息墊分塊部分730、混沌序列產(chǎn)生部分740、消息分塊布爾迭代部分750以及散列值序列輸出部分760。該接收部分710可以包括《睫盤、鼠標(biāo)、盤驅(qū)動器以及通信接口,用于接收用戶選擇(例如,對混沌映射的選擇)、產(chǎn)生混沌序列的密鑰(例如,混沌序列的初值)以及要進(jìn)行處理的原始消息。例如,該消息可以是存儲在光盤上的程序或圖片。根據(jù)本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式,該混沌序列產(chǎn)生部分740根據(jù)接收部分710接收到的密鑰和選定的混沌映射,產(chǎn)生混沌序列。所述混沌映射可以是^^式(1)所定義的一維可擴(kuò)展的混沌Tent映射。一^:來說,混沌序列產(chǎn)生部分740輸出的混沌序列為二進(jìn)制碼序列,是通過將混沌映射輸出的序列進(jìn)行如公式(2)那樣二值化后獲得的。此外,該混沌序列產(chǎn)生部分740還可以按照預(yù)定算法從所產(chǎn)生的混沌序列抽取子混沌序列,作為后面的布爾迭代運(yùn)算的初始混沌序列,以及進(jìn)行位填充處理的填充序列。例如,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,該混沌序列產(chǎn)生部分740產(chǎn)生前面所述的子混沌序列A、B、C、D、E、E、E2、E3、E4、t!、t2、t3和tt。該消息塊填充部分720對接收部分710接收到的原始消息進(jìn)行位填充處理,以便能夠?qū)⑷我忾L度的原始消息分成等長度的塊。根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式,每個(gè)消息子塊長度可以被假定為4x丄(丄可設(shè)定為任意整數(shù)),為了使得每個(gè)消息子塊長度相同,必須將原始消息長度填充成原始消息加上位填充位的總長度為4xL的倍數(shù)。公式(3)和(4)具體地給出了計(jì)算填充位長度的一個(gè)實(shí)例。根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,用來填充的序列可以是混沌二進(jìn)制碼序列,該二進(jìn)制碼序列可以是按照預(yù)定算法從混沌序列產(chǎn)生部分740所產(chǎn)生的混沌序列抽取的子混沌序列。根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,消息墊分塊部分730將經(jīng)過填充的消息襯墊M尸均分為m二MP/(4x丄)個(gè)子塊Mi(i=l,…,m),以便進(jìn)行塊處理。經(jīng)過這種處理所得到的每個(gè)消息子塊長度均為4x丄字節(jié)。這樣所得到的每個(gè)消息子塊Mj可以進(jìn)一步劃分長度分別為Z/f立的子塊,令為Mu、Mi2、Mi3、Mi4(i=l,...,m),因此Mij(j=l、2、3、4)長度為丄位。然后,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,該布爾迭代部分750以混沌序列產(chǎn)生部分740所產(chǎn)生的子混沌序列為初始混沌序列,對每個(gè)消息子塊均要執(zhí)行4輪操作,在每一輪的運(yùn)算中嵌入了已生成的混沌序列,并且對每一消息子塊進(jìn)行迭代。具體操作可以參看公式(6)-(18)所定義的運(yùn)算。接下來,散列值序列輸出部分760將布爾迭代部分750所生成的單向散列函數(shù)值A(chǔ)、B、C、D和E進(jìn)行級聯(lián),并輸出最終的單向散列函數(shù)值。為了說明本發(fā)明產(chǎn)生散列值的方法的安全性,進(jìn)行下列測試1),敏感性測試(1)混沌密鑰,敏感性測試混沌具有對初始條件及參數(shù)極端的敏感性,任何微小的變化可能會引起序列的指數(shù)級的偏離。本發(fā)明實(shí)施方式中的這兩個(gè)密鑰均對計(jì)算機(jī)的精度10"6相當(dāng)?shù)孛舾小T诒景l(fā)明的優(yōu)選實(shí)施方式中,在上述公開的密鑰和初始條件下,對432位混沌序列中每一位的數(shù)據(jù)均進(jìn)行了變化,即由0變化到1或由1變化到0。分別隨機(jī)選取了7V=64、128、192、256、320、432次統(tǒng)計(jì)的結(jié)果,將獲得的新散列值&與上述所得到的Hl34分別進(jìn)行比較。根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,使用下面4個(gè)統(tǒng)計(jì)公式來衡量變化的程度a)平均變化數(shù)<formula>formulaseeoriginaldocumentpage22</formula>(21)b)平均標(biāo)準(zhǔn)偏差<formula>formulaseeoriginaldocumentpage22</formula>(22)c)平均變化百分比d)<formula>formulaseeoriginaldocumentpage22</formula>(23)平均標(biāo)準(zhǔn)偏差變化百分比<formula>formulaseeoriginaldocumentpage22</formula>(24)表2列出混沌敏感性測試結(jié)果,其中前5x64二320位混沌序列重復(fù)參與了所有操作。表2中顯示了前320位平均變化位數(shù)的互=159.1666,平均變化百分比尸=49.7395%。對432位混沌序列相應(yīng)的結(jié)果分別為157.6103和49.2532%。表2混沌位敏感性測試<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>如果將混沌參數(shù)a分別賦予a+10-',"+10-2,+10-16,并且將初始條件^改變成+10—',x。+102,…,x。+『16,這樣新產(chǎn)生的32個(gè)散列值H'w與Hu4進(jìn)行統(tǒng)計(jì)比較,結(jié)果如圖8所示。在圖中,代表[10—',10—2,…,10—'6]序歹寸,縱軸表示改變的位數(shù),其中,"*"號指示參數(shù)",而"o"號指示初始條件。顯然,變化的位數(shù)和比例非常接近160和50%,這正是最終散列值位數(shù)320的一半,因此可以說對混沌序列及密鑰的^:感性非常接近理想值。(2)混沌位置選擇的敏感性測試在根據(jù)本發(fā)明的優(yōu)選實(shí)施方式中,還有一個(gè)非常重要的因素不可忽視,那就是混沌序列的初始位置選擇。表3列出了公式(5)-(8)初始位置僅偏移l位時(shí)生成的新散列值與Hm比較結(jié)果。.表3混沌初始位置選4奪測試<table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table>平均變化位數(shù)160.8462,平均變化位數(shù)50.2644%在表3中,第一行中/A+l值無變化是因?yàn)樵诠?9)中的第一步就更新了A的值。從表3中可以看出,新的散列值與第一行的差異非常大,第三列"位變化數(shù)"列出了隨后每行新散列值與第一行數(shù)據(jù)位變化的結(jié)果,最后一行數(shù)據(jù)中還可以得到其變化的統(tǒng)計(jì)數(shù)據(jù),從中得到它們均與理想數(shù)據(jù)非常接近。(3)消息位的測試安全的散列函數(shù)必須滿足兩個(gè)規(guī)則一是想尋找兩個(gè)不同的輸入獲得相同的輸出,這在計(jì)算上是不可能的,即散列函數(shù)是抗碰撞的。另一個(gè)是尋找某一輸出值的輸入值在計(jì)算上也是不可能的,即從輸出推導(dǎo)輸入是不可能的,即散列函數(shù)具有單向性。任何一消息位的變化均會產(chǎn)生50%的散列值變化,通常指該函數(shù)具有強(qiáng)的雪崩效應(yīng)。為了測試本方案的消息敏感性,我們采用與混沌位相類似的測試方法,并在密鑰與初始位置公開的情況下,將原始消息的位值僅改變l位,經(jīng)過隨機(jī)選4奪的A^64、128、256、512、1024、2048、4096位分別進(jìn)行測試,統(tǒng)計(jì)測試結(jié)果如表4所示。表4原始消息l位變化測試結(jié)果<table>tableseeoriginaldocumentpage24</column></row><table>從表4可以發(fā)現(xiàn),5和戶%非常接近理想的160和50%,即消息l位的變化能引起強(qiáng)烈的雪崩效應(yīng)。同時(shí)AS和A尸。/。值相對較小,說明本方案具有較強(qiáng)的均勻和混淆功能,最大偏差值和最小偏差值也在有限的范圍內(nèi)。圖9顯示了在丄=64、A^4096時(shí)消息l位變化的散列值變化直方圖。在圖9中,橫軸表示所改變的位數(shù),縱軸代表相應(yīng)的變化量。從圖8中可以看出,大多數(shù)變化值均較集中在改變位為160處,即320位散列值的一半。2)生日攻擊散列函數(shù)具有單向性質(zhì),它是從一個(gè)任意長度的原始消息中壓縮成的固定長度值,它要求具有較高的抵抗生日攻擊、蠻力攻擊及差分攻擊等能力。生曰攻擊的復(fù)雜度與最終生成的散列值長度有密切關(guān)系。本方案生成5x丄位的散列值,根據(jù)生日攻擊的定義,其攻擊的復(fù)雜度為25"/2,計(jì)算的復(fù)雜度為25"。如果采用每秒鐘處理109消息位的計(jì)算機(jī),若要生成320位(丄=64)的散列值,對于生日攻擊,要搜索兩個(gè)不同消息獲得同一散列值需要大約4.63"031年;如果采用同樣能力的計(jì)算機(jī),采用蠻力攻擊需要大約6.77x1079年。如果加上搜索混沌密鑰空間21%的時(shí)間,那么時(shí)間的復(fù)雜度是巨大的!3)相同位置碰撞的估算本發(fā)明還采取以下兩種方式估算相同位置碰撞的比例第一種方式是十六進(jìn)制Hex符號(4位)比較測試,另一種是ASCII碼(8位)比較測試。具體的方法是選擇兩個(gè)散列值,利用下列表達(dá)式估算(25)其中5,與^分別表示相同位置的第''個(gè)符號。如果A與A符號相同,則[5'—^]=1,表示有l(wèi)個(gè)符號碰撞;否則^'_^=0,表示沒有碰撞。設(shè)丄=64,那么產(chǎn)生320位的散列值中,Hex測試中系數(shù)w=80,ASCII測試中"=40。同樣使用上述的原始消息及初始設(shè)置條件,分別在iV^64、128、256、512、1024、2048、4096次,對160、240和320位散列值長度進(jìn)行符號碰撞測試,則整個(gè)碰撞數(shù)量Sum(c》,最大碰撞數(shù)量及碰撞%由表5列出,當(dāng)A^4096,散列值長度為320位時(shí),最大的ASCII碰撞數(shù)僅為3,而Hex僅為16,可見根據(jù)本發(fā)明的優(yōu)選實(shí)施方式對同一位置出現(xiàn)的符號碰撞機(jī)會相當(dāng)?shù)?。?散列值結(jié)果Hex和ASCII測試結(jié)果比較<table>tableseeoriginaldocumentpage25</column></row><table><table>tableseeoriginaldocumentpage26</column></row><table>圖10和圖11分別列出在散列值長度不同的情況下,對于不同測試數(shù)據(jù)次數(shù),Hex和ASCII碰撞測試的結(jié)果。圖10圖示了ASCII碰撞測試的結(jié)果,其橫軸代表消息測試位,縱軸代表同一位置的碰撞數(shù)量的百分率,其中,帶空心菱形標(biāo)志""的曲線指示320位散列值長度對應(yīng)的符號碰撞測試結(jié)果,帶實(shí)心菱形標(biāo)志""的曲線指示240位散列值長度對應(yīng)的符號碰撞測試結(jié)果,而帶空心正方形標(biāo)志"□"的曲線指示160位散列值長度對應(yīng)的符號碰撞測試結(jié)果。圖11圖示了Hex碰撞測試的結(jié)果,其橫軸也代表消息測試位,縱軸代表同一位置的碰撞數(shù)量的百分率,其中,帶標(biāo)志"*"的曲線指示320位散列值長度對應(yīng)的符號碰撞測試結(jié)果,帶標(biāo)志"□"的曲線指示240位散列值長度對應(yīng)的符號碰撞測試結(jié)果,而帶標(biāo)志"o"的曲線指示160位散列值長度對應(yīng)的符號碰撞測試結(jié)果。從圖10和圖11中可看出,無論生成的散列值長度多少,相同位置相同符號碰撞的比例均非常小,數(shù)值也很接近。4)與MD5進(jìn)行比較表6列出了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式與MD5性能比較。表6本方案與MD5性能比較<table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table>表7列出在Pentium-IV,CPU1.6G,RAM256M,Matlab7.0軟件測試環(huán)境下與MD5運(yùn)算時(shí)間比較結(jié)果。從表中可以看出,130位的散列值與相近位數(shù)128位的MD5運(yùn)行時(shí)間短2.3倍。表7根據(jù)本發(fā)明的優(yōu)選實(shí)施方式與MD5運(yùn)算時(shí)間比較<table>tableseeoriginaldocumentpage27</column></row><table>位運(yùn)算時(shí)間與MD5的比較結(jié)果。在圖12中,橫軸代表bg,(位數(shù)/25),縱軸代表以秒為單位的時(shí)間,其中,帶"*"的曲線指示根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的130位散列值長度對應(yīng)的運(yùn)算時(shí)間,帶"□"的曲線指示根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的160位散列值長度對應(yīng)的運(yùn)算時(shí)間,帶"o"的曲線指示根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的320位散列值長度對應(yīng)的運(yùn)算時(shí)間,而帶""的曲線指示MD5算法的128位散列值長度對應(yīng)的運(yùn)算時(shí)間。從圖中可以看到,隨著消息長度增加,同一長度的散列值生成時(shí)間逐漸增加。但在同一消息長度中,生成不同位數(shù)的散列值,位數(shù)越大的所需時(shí)間越少,因?yàn)樵诟鶕?jù)本發(fā)明的優(yōu)選實(shí)施方式中丄值越大,塊的個(gè)數(shù)就越小,迭代過程也就隨之減少,運(yùn)算的時(shí)間明顯提南。在以上說明中,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式說明了本發(fā)明用于防止信息篡改的、利用基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法和系統(tǒng)。本發(fā)明由于可選擇靈活的丄值,可生成長度不固定的散列序列。另外混沌映射中參數(shù)與初始條件的敏感性,可給本發(fā)明帶來較大的密鑰空間,增加了強(qiáng)力攻擊、生日攻擊的時(shí)間復(fù)雜度。算法設(shè)計(jì)中只釆用布爾及移位簡單運(yùn)算,運(yùn)行速度大幅度提高,并且每輪操作也僅執(zhí)行有序的移位,為本發(fā)明在硬件中實(shí)現(xiàn)提供了可能,預(yù)測成本較低。較均衡的混沌序列選擇為本發(fā)明提供了良好的混淆與擴(kuò)散序列,可變移位量的設(shè)計(jì)又為產(chǎn)生較強(qiáng)的雪崩效應(yīng)創(chuàng)造了基礎(chǔ)條件。本發(fā)明的構(gòu)造為最終實(shí)現(xiàn)抵抗碰撞的帶密鑰的單向散列序列提供了可行的實(shí)用價(jià)值,可廣泛應(yīng)用于網(wǎng)上銀行、網(wǎng)上交易、網(wǎng)上營銷等電子商務(wù)中,為它們提供可靠的身份識別、消息認(rèn)證、數(shù)字簽名、完整性檢驗(yàn)等。本領(lǐng)域技術(shù)人員將理解,該方法可以實(shí)現(xiàn)為記錄在計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì)算機(jī)可讀代碼。該計(jì)算機(jī)可讀記錄介質(zhì)是可以存儲可由計(jì)算機(jī)系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲設(shè)備。計(jì)算機(jī)可讀記錄介質(zhì)的示例包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、CD-ROM、磁帶、軟盤、光數(shù)據(jù)存儲裝置和載波(諸如通過因特網(wǎng)的數(shù)據(jù)發(fā)送)。計(jì)算機(jī)可讀記錄介質(zhì)還可以分布在聯(lián)網(wǎng)的計(jì)算機(jī)系統(tǒng)中,以便以分布的方式存儲并執(zhí)行計(jì)算機(jī)可讀代碼。盡管上述是參照示例性實(shí)施方式來描述本發(fā)明,但本領(lǐng)域技術(shù)人員將理解,在不背離由所附權(quán)利要求書限定的本發(fā)明宗旨和范圍的前提下,可以對本發(fā)明進(jìn)行各種形式和細(xì)節(jié)上的修改。優(yōu)選實(shí)施方式應(yīng)該僅認(rèn)為是說明性的,而不是限制性的。因此,本發(fā)明的詳細(xì)描述不限定本發(fā)明的范圍,本發(fā)明的范圍應(yīng)該由所附權(quán)利要求限定,并且本發(fā)明的范圍內(nèi)的所有區(qū)別技術(shù)特征應(yīng)理解為包含在本發(fā)明中。權(quán)利要求1、一種基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,其中,所述構(gòu)造方法包括步驟1)接收預(yù)定的混沌映射、初始值和密鑰并接收要處理的所述消息,以產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并用所述混沌序列初始化具有預(yù)定位長度的一組初始緩沖值序列;2)以所述混沌序列作為填充序列,對所述消息進(jìn)行位填充處理,以便將經(jīng)填充的消息墊劃分成預(yù)定數(shù)量的子塊;3)將經(jīng)賦值的初始緩沖值序列與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組輸出;4)對步驟3)所輸出的新緩沖值序列組和以預(yù)定的順序在所述子塊中選擇的另一子塊重復(fù)步驟3)的所述布爾運(yùn)算,直到對全部子塊進(jìn)行了步驟3)為止;5)將步驟4)的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。2、根據(jù)權(quán)利要求l所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述混沌映射為一維可擴(kuò)展混沌Tent映射,該混沌Tent映射定義如下其中混沌參數(shù)a滿足(KoKl,序列x,的取值范圍是區(qū)間[O,1],x,取0或l值的概率小,而所述混沌參數(shù)a和初始條件X()被作為所述密鑰。3、根據(jù)權(quán)利要求2所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述混沌參數(shù)01=0.3612,而所述初始條件X(t0.8581。4、根據(jù)權(quán)利要求2所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述混沌序列為所述序列x,的二值化序列乂.5、根據(jù)權(quán)利要求l所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述步驟2)還包括將經(jīng)過填充的消息襯墊劃分為所述預(yù)定個(gè)子塊;6、根據(jù)權(quán)利要求5所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,每個(gè)所述子塊具有相同的所述預(yù)定位長度。7、根據(jù)權(quán)利要求6所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述子塊的所述預(yù)定位長度為4x丄,丄為任意整數(shù)。8、根據(jù)權(quán)利要求7所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,要進(jìn)行位填充的總位長度為5Xr<formula>formulaseeoriginaldocumentpage3</formula>其中ML。代表消息長度。9、根據(jù)權(quán)利要求8所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,要進(jìn)行位填充的總位長度為5Xi力口^=4x£。10、根據(jù)權(quán)利要求9所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,以所述混沌序列中從/o+l位到/。+^xl位的子混沌序列^W。H/。+^D在所述消息的右邊進(jìn)行位填充,這里^-叫+s^,/。為選擇的混沌序列的初始位置。11、根據(jù)權(quán)利要求7所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,每個(gè)所述子塊進(jìn)一步劃分長度分別為丄位的小子塊。12、根據(jù)權(quán)利要求ll所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述初始緩沖值序列組包括子混沌序列A、B、C、D、E、E2、E3、E4、t1、t2、t3和tj,其分別定義如下<formula>formulaseeoriginaldocumentpage3</formula>其中X/+i,/+i)表示所述混沌序列中從z+i位到/+丄位的子混沌序列,而z,(^AS,C,A五,^^,^A)和々,(!'=1,2,3,4)均代表選擇序列乂的初始位置。13.根據(jù)權(quán)利要求ll所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述布爾運(yùn)算包括異或、非、與、或、循環(huán)左移和循環(huán)右移中的一部分或全部。14、根據(jù)權(quán)利要求13所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法,其中,所述布爾運(yùn)算包括下列級聯(lián)的第一到第四輪迭代操作第一輪<formula>formulaseeoriginaldocumentpage4</formula>第二輪<formula>formulaseeoriginaldocumentpage4</formula>第三輪<formula>formulaseeoriginaldocumentpage4</formula>第四輪C二服(C"M,.2,,4)'D"/(5,d,4)£4=,,£4,M,4,")其中Mu、Mi2、Mi3、Mi4(i=l,…,w)為所述子塊Mi的所述小子塊,而FF、GG、/fH、//、W和X^分別定義為<formula>formulaseeoriginaldocumentpage4</formula>AX(M!,M2,M3,M4,£,0=vM2)十(Af3"JW4)十,£)》々5))這里,、,、a、v、《和》分別代表異或、非、與、或、循環(huán)左移、循環(huán)右移,而,(,)中的,表示,^,^,",其長度均為,。,,(,)表示從,。長度中從右向左選取/比特,所選取的比特所代表的十進(jìn)制數(shù)作為運(yùn)算中的移位量。15、一種基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,其中,所述系統(tǒng)包括接收裝置,用于接收用戶選擇和密鑰,以及所述消息;混沌序列產(chǎn)生裝置,用于根據(jù)所述接收裝置接收到的密鑰和用戶選擇,產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并以所述混沌序列初始化具有預(yù)定位長度的一組初始緩沖值序列;消息塊填充裝置,用于對所述接收裝置接收到的所述消息進(jìn)行位填充處理,以便將所述消息劃分成預(yù)定個(gè)子塊;布爾迭代裝置,將經(jīng)所述混沌序列產(chǎn)生裝置賦值的所述初始緩沖值序列組與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組與以預(yù)定的順序在所述子塊中選擇的另一子塊進(jìn)行所述布爾運(yùn)算,直到對全部所述子塊進(jìn)行了所述布爾運(yùn)算為止;以及散列值序列輸出裝置,用于將所述布爾迭代裝置的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。16、根據(jù)權(quán)利要求15所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述混、;屯映射為一維可擴(kuò)展混沌Tent映射,該混沌Tent映射定義如下其中混沌參數(shù)a滿足(KoK1,序列x,的取值范圍是區(qū)間,jc,取O或1值的概率小,而所述混沌參lta和初始條件x^皮作為所述密鑰。17、根據(jù)權(quán)利要求16所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述混沌參數(shù)cf0.3612,而所述初始條件x『0.8581。18、根據(jù)權(quán)利要求16所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述混沌序列為所述序列jc,的二值化序列乂.19、根據(jù)權(quán)利要求15所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),還包括消息墊分塊裝置,將經(jīng)過填充的消息襯墊劃分為所述預(yù)定個(gè)子塊。20、根據(jù)權(quán)利要求19所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,每個(gè)所述子塊具有相同的所述預(yù)定位長度。21、根據(jù)權(quán)利要求20所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述子塊的所述預(yù)定位長度為4x丄,丄為任意整數(shù)。22、根據(jù)權(quán)利要求21所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,要進(jìn)行位填充的總位長度為5Zr4x丄一mod(A/丄ox8,4xi),,/mod(A/£0x8,4x丄)#0,0,z/mod(肌。x8,4x丄)二0.23、根據(jù)權(quán)利要求22所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,要進(jìn)行位填充的總位長度為S丄i加^=4xi。24、根據(jù)權(quán)利要求21所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,以所述混沌序列中從/o+l位到/。+^xl位的子混沌序列^處+i,/。+^D在所述消息的右邊進(jìn)行位填充,這里ZS=5X1+M2,/o為選擇的混沌序列的初始位置。25、根據(jù)權(quán)利要求21所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,每個(gè)所述子塊進(jìn)一步劃分長度分別為丄位的小子塊。26、根據(jù)權(quán)利要求25所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述初始緩沖值序列組包括子混沌序列A、B、C、D、E、E,、E2、E3、E4、t,、t2、t#t4,其分別定義如下<formula>formulaseeoriginaldocumentpage6</formula>其中3</+1,/+丄)表示所述混沌序列中從/+1位到/+丄位的子混沌序列,而Z,"—,C,化五,^2,^五4)和Z''("1,2,3,4)均代表選擇序列乂的初始位置。27、根據(jù)權(quán)利要求26所述的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述布爾運(yùn)算包括異或、非、與、或、循環(huán)左移和循環(huán)右移中的一部分或全部。28、根據(jù)權(quán)利要求27所迷的可擴(kuò)展單向散列函數(shù)的構(gòu)造系統(tǒng),其中,所述布爾運(yùn)算包括下列級聯(lián)的第一到第四輪迭代操作第一輪<formula>formulaseeoriginaldocumentpage7</formula>第二輪<formula>formulaseeoriginaldocumentpage7</formula>第四輪<formula>formulaseeoriginaldocumentpage7</formula>其中Mu、Mi2、Mi3、Mi4(i=l,附)為所述子塊Mi的所述小子塊,而FF、GG、i//f、//、XT和ia:分別定義為<formula>formulaseeoriginaldocumentpage7</formula>■//(AM,0=((DM)f(4))((M£)f(5))^S:(M,,M4,£,0=vM2)十(M3十~>M4)十,£)》/(5)這里,@、,、a、v、《和》分別代表異或、非、與、或、循環(huán)左移、循環(huán)右移,而,(。中的,表示^2,,"4,其長度均為,。,,(i)表示從,。長度中從右向左選取/比特,所選取的比特所代表的十進(jìn)制位運(yùn)算中的移位量。29、一種計(jì)算機(jī)產(chǎn)品,其上實(shí)施有實(shí)現(xiàn)基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法的程序,所述可擴(kuò)展單向散列函數(shù)將消息映射成單向散列序列,用于防止所述消息被篡改,所述構(gòu)造方法包括步驟1)接收預(yù)定的混沌映射、初始值和密鑰并接收要處理的所述消息,以產(chǎn)生用于構(gòu)造可擴(kuò)展單向散列函數(shù)的混沌序列,并用所述混沌序列初始化具有預(yù)定位長度的一組初始緩沖值序列;2)以所述混沌序列作為填充序列,對所述消息進(jìn)行位填充處理,以便將經(jīng)填充的消息墊劃分成預(yù)定個(gè)子塊;3)將經(jīng)賦值的初始緩沖值序列與一個(gè)所述子塊進(jìn)行布爾運(yùn)算,并將所述布爾運(yùn)算結(jié)果作為新的緩沖值序列組輸出;4)對步驟3)所輸出的新的緩沖值序列組和以預(yù)定的順序在所述子塊中選擇的另一子塊重復(fù)步驟3)的所述布爾運(yùn)算,直到對全部所述子塊進(jìn)行了步驟3)為止;5)將步驟4)的輸出進(jìn)行級聯(lián),以輸出關(guān)于所述消息的單向散列函數(shù)值序列。全文摘要提供基于嵌入式混沌映射的可擴(kuò)展單向散列函數(shù)的構(gòu)造方法和系統(tǒng)。構(gòu)造方法包括步驟接收預(yù)定的混沌映射、初始值和密鑰并接收要處理的所述消息,以產(chǎn)生一組初始緩沖值混沌序列;以混沌序列對消息進(jìn)行位填充處理,以便將經(jīng)填充的消息墊劃分成具有相同的長度子塊;將初始緩沖值序列組與子塊之一進(jìn)行布爾運(yùn)算,并將結(jié)果作為新的緩沖值序列組;對新的緩沖值序列組和以預(yù)定的順序在子塊中選擇的另一子塊重復(fù)該布爾運(yùn)算,直到對全部所述子塊進(jìn)行了該布爾運(yùn)算為止;將最后輸出進(jìn)行級聯(lián),作為關(guān)于消息的單向散列函數(shù)值序列。因此,該構(gòu)造方法簡單易操作,有效地實(shí)現(xiàn)了消息的擴(kuò)散與混淆,在安全性、抵抗碰撞及運(yùn)算速度方面均有明顯提高。文檔編號H04L9/08GK101296079SQ20071010104公開日2008年10月29日申請日期2007年4月23日優(yōu)先權(quán)日2007年4月23日發(fā)明者張小紅,彭海朋,李麗香,楊義先,洋高申請人:索尼(中國)有限公司