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