專利名稱:基于可擴(kuò)展精度混沌的哈希算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于可擴(kuò)展精度混沌的哈希算法,屬于哈希技術(shù)的計(jì)算機(jī)科學(xué)領(lǐng)域。
背景技術(shù):
在計(jì)算機(jī)科學(xué)領(lǐng)域,“Hash” 一般翻譯做“散列”,也有直接音譯為“哈?!钡模褪前讶我忾L度的輸入,通過哈希算法變換成固定長度的輸出,該輸出就是哈希值。例如,廣泛使用的哈希表。哈希表是根據(jù)設(shè)定的哈希函數(shù)Hash (key)將一組關(guān)鍵字(key)映象到一個(gè)有限的地址區(qū)間上,并以關(guān)鍵字在地址區(qū)間中的象作為記錄在表中的存儲位置,這種表稱為哈希表或散列,所得存儲位置稱為哈希地址或散列地址(Address)。可以表述為Address = Hash (key).作為線性數(shù)據(jù)結(jié)構(gòu)與表格和隊(duì)列等相比,理論上,哈希表無疑是查找速度比較快的一種。在信息安全和計(jì)算機(jī)安全領(lǐng)域,哈希函數(shù)將任意長度的消息映射成固定長度的哈希值,又稱為消息摘要、數(shù)字指紋等。目前,廣泛使用的哈希函數(shù)有MD5和SHAGecure Hash Algorithm)系列。MD5是由國際著名密碼學(xué)家、圖靈獎(jiǎng)獲得者,目前應(yīng)用最廣泛的公鑰加密算法RSA的第一設(shè)計(jì)者 Rivest設(shè)計(jì)。算法的基本思想為MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè) 32位分組級聯(lián)后將生成一個(gè)1 位哈希值。SHA 家族的五個(gè)算法,分別是 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512,由美國國家安全局所設(shè)計(jì),并由美國國家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布;是美國的政府標(biāo)準(zhǔn)。SHA 算法能計(jì)算出一個(gè)數(shù)字消息所對應(yīng)到的,長度固定的字串或稱信息摘要。SHA-I被使用在很多計(jì)算機(jī)安全協(xié)議中,如 SSLGecure Sockets Layer), PGP(Pretty Good Privacy), IPsec (Internet Protocol Security)禾口 SSH(Secure Shell)等。2004年8月,在美國召開的國際密碼學(xué)大會上,我國學(xué)者山東大學(xué)數(shù)學(xué)系王小云教授宣布了對MD5等哈希算法的破譯結(jié)果。2005年2月,王小云教授在破解SHA-I的密碼算法中又取得突破性成果,用更簡單的方法找到了 SHA-I算法的漏洞。這些研究成果引起了國際密碼學(xué)界的震驚。因此,SHA-I的安全性被密碼學(xué)家所質(zhì)疑;雖然至今尚未出現(xiàn)對 SHA-2有效的攻擊,它的算法與SHA-I基本上仍然相似;因此很多學(xué)者開始發(fā)展其他替代的哈希算法。哈希算法的基本特點(diǎn)1.由摘要信息反推原輸入信息,從計(jì)算理論上來說是很困難的;2.任何輸入信息的微小變動(dòng),對輸出的摘要信息都要有相當(dāng)大的變化;3.對任意長度的消息能夠計(jì)算出一個(gè)定長的且唯一的消息摘要。混沌運(yùn)動(dòng)是指在確定性系統(tǒng)中局限于有限空間的高度不穩(wěn)定的運(yùn)動(dòng),是非線性動(dòng)力系統(tǒng)中出現(xiàn)的一種確定性的、貌似無規(guī)則的偽隨機(jī)過程。混沌系統(tǒng)的特性可以歸納如下1.混沌是由確定性方程產(chǎn)生的,只要方程參數(shù)和初值確定就可以重現(xiàn)混沌現(xiàn)象;2.混沌系統(tǒng)對初始狀態(tài)極度敏感,初始條件的極小偏差,將會引起結(jié)果的很大差異;也就是所說的“蝴蝶效應(yīng)”-“一只南美洲亞馬遜河流域熱帶雨林中的蝴蝶,偶爾扇動(dòng)幾下翅膀,可能兩周后在美國德克薩斯引起一場龍卷風(fēng)”;3.混沌系統(tǒng)具有自相似性,局部選取的混沌形態(tài)與整體完全相似,理論上,混沌序列在整個(gè)空間上是無周期的;因此,在某局部空間選取的子序列也是混沌的;4.確定的隨機(jī)性,混沌系統(tǒng)的動(dòng)力學(xué)行為極其復(fù)雜,不符合概率統(tǒng)計(jì)學(xué)原理,接近于白噪聲;因此,難以重構(gòu)和預(yù)測。綜上所述,混沌系統(tǒng)具有良好的密碼學(xué)特性,符合哈希算法的基本特點(diǎn)。計(jì)算機(jī)實(shí)現(xiàn)的混沌是數(shù)字混沌,或者可以定義為離散化的混沌。精度是指實(shí)數(shù)計(jì)算中的小數(shù)點(diǎn)后可以表示出的最小精確度。由于基于計(jì)算機(jī)的有限精度計(jì)算的混沌與連續(xù)域上的混沌存在很大的不同,即由于數(shù)字量化后得到的相應(yīng)的混沌序列的值難以精確的表示被計(jì)算的混沌的真實(shí)值,因此,量化誤差是指計(jì)算機(jī)的有限計(jì)算精度導(dǎo)致的計(jì)算的舍入誤差,即由于計(jì)算機(jī)的字長有限,進(jìn)行數(shù)值計(jì)算的過程中,對計(jì)算得到的中間結(jié)果數(shù)據(jù)要使用“四舍五入”或其他運(yùn)算規(guī)則取近似值,因而使計(jì)算過程有誤差。對于經(jīng)典的混沌理論, 混沌方程定義在連續(xù)的空間上;由于混沌對初始狀態(tài)極度敏感,量化誤差的引入使混沌在多次迭代后偏離了連續(xù)的軌道,因此,進(jìn)入了循環(huán)狀態(tài)或者有限的狀態(tài),這導(dǎo)致了混沌系統(tǒng)的動(dòng)力學(xué)特性的退化,即混沌的特性退化(Dynamical Degradation)。數(shù)字混沌特性退化一般表現(xiàn)為循環(huán)周期不固定;在精度不大的情況下,一般周期很短;混沌分布函數(shù)的不平衡;線性復(fù)雜度的急劇下降等特點(diǎn)。在計(jì)算機(jī)的有限精度下的混沌特性的退化問題,是由于計(jì)算機(jī)本身的量化誤差所致,這也是一些學(xué)者質(zhì)疑數(shù)字混沌的安全性的主要因素??蓴U(kuò)展精度計(jì)算混沌的方法的基本思想在于用戶可以隨意指定計(jì)算混沌的精度,對混沌函數(shù)進(jìn)行分步計(jì)算,利用動(dòng)態(tài)數(shù)組保存每次計(jì)算中間結(jié)果,實(shí)現(xiàn)精度的擴(kuò)展;區(qū)別于有限計(jì)算精度,可擴(kuò)展精度計(jì)算混沌函數(shù)的量化誤差可以隨著指定精度的增加而減小,映射空間可以隨著精度的提高而擴(kuò)大;隨著計(jì)算精度的提高,量化誤差的減小,所得混沌隨機(jī)序列更加接近于連續(xù)域上的混沌的真實(shí)值(理想的混沌),因此,使所得混沌序列更加接近于理想的混沌狀態(tài)。當(dāng)給定精度提高時(shí), 所得的映射空間增加,循環(huán)周期部分?jǐn)U大,極大地降低了混沌隨機(jī)序列的特性退化速度,可以從根本上解決數(shù)字混沌的特性退化問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種可以使獲得的哈希值均勻分布,減少沖突,可以由用戶指定計(jì)算的哈希值的大小和摘要信息的長度,給用戶靈活的、更加方便的選擇的基于可擴(kuò)展精度混沌的哈希算法。本發(fā)明的方法如下首先,將輸入的信息作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù), 設(shè)定Logistic映射迭代次數(shù)和指定Logistic映射獲得的隨機(jī)序列的位數(shù)(精度);然后,進(jìn)行可擴(kuò)展精度Logistic映射混沌迭代計(jì)算,經(jīng)過迭代獲得混沌隨機(jī)序列,隨機(jī)序列被保存在一維數(shù)組里;接下來設(shè)定所需提取的信息位個(gè)數(shù),按信息位個(gè)數(shù)對保存在一維數(shù)組里的混沌隨機(jī)序列進(jìn)行分組;最后,設(shè)定種子。作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù),Logistic映射可以表述如下xn+1 = aXxnX (l_xn) ;a e (0,4] ;xn e (0,1) ;η = 0,1,...其中,a是控制參數(shù),X0為初始狀態(tài)值;當(dāng)參數(shù)的末位為0時(shí),可以對該位進(jìn)行非零化處理;根據(jù)基于可擴(kuò)展精度Logistic映射的迭代次數(shù)與精度關(guān)系數(shù)學(xué)公式Ln+1 = 2XLn+La;其中,Ln為當(dāng)前參數(shù)χ的精度,La為參數(shù)a的精度;設(shè)定Logistic映射迭代次數(shù)和指定Logistic映射獲得的隨機(jī)序列的位數(shù)(精度),如果設(shè)定的Logistic映射迭代次數(shù)和指定Logistic映射獲得的隨機(jī)序列的位數(shù)不匹配,自動(dòng)取迭代次數(shù)上限,以滿足獲取精度的要求??蓴U(kuò)展精度Logistic映射混沌迭代計(jì)算過程為第一步,計(jì)算χ = X* (1-x),保留擴(kuò)展精度后的計(jì)算結(jié)果在新的一維動(dòng)態(tài)數(shù)組中;第二步,計(jì)算χ = x*a,保留本次迭代的計(jì)算結(jié)果在動(dòng)態(tài)數(shù)組中;第三步,如果當(dāng)前的迭代次數(shù)沒有達(dá)到設(shè)定的迭代次數(shù),則轉(zhuǎn)到第一步;如果當(dāng)前獲得的混沌隨機(jī)序列的精度小于指定的精度,則轉(zhuǎn)到第一步;第四步,經(jīng)過指定的迭代次數(shù)和滿足給定精度的混沌隨機(jī)序列被保存在一個(gè)一維的數(shù)組里。對于超過指定精度的混沌序列實(shí)行“截尾”、“四舍五入”等運(yùn)算規(guī)則近似計(jì)算。設(shè)定所需提取的信息位個(gè)數(shù),所述設(shè)定所需提取的信息位個(gè)數(shù)應(yīng)該小于等于指定 Logistic映射獲得的隨機(jī)序列的位數(shù)。按照用戶設(shè)定的提取信息位的個(gè)數(shù)對獲得的混沌隨機(jī)序列進(jìn)行分組,每個(gè)分組的長度應(yīng)該保證在進(jìn)行隨機(jī)選位時(shí)獲得足夠的組合值。設(shè)定種子,進(jìn)行隨機(jī)選位,并保存到數(shù)組中。種子的選擇可以保證輸出信息充分包含了輸入信息的特征,因此,可以采用體現(xiàn)該輸入信息特征的數(shù)學(xué)函數(shù)。本算法中的隨機(jī)選位是指當(dāng)種子的初值給定后,在本次的混沌隨機(jī)序列分組中的選位值,作為下一輪分組的隨機(jī)選位的種子,保存每次選位值在一維數(shù)組中。對于建立哈希表,可以采取對該值取模運(yùn)算映射到地址空間。對于獲得輸入信息的信息摘要,可以對選位值進(jìn)行不同數(shù)制的轉(zhuǎn)換以獲得滿足用戶要求的格式的信息摘要。本發(fā)明的優(yōu)點(diǎn)1、利用基于可擴(kuò)展精度計(jì)算混沌的方法,充分發(fā)揮混沌系統(tǒng)的特性。由于混沌系統(tǒng)具有在整個(gè)空間的遍歷性,擴(kuò)展精度后的混沌函數(shù)映射空間擴(kuò)大,循環(huán)周期的長度加大, 因此,可以使獲得的哈希值均勻分布,減少了沖突。2、基于可擴(kuò)展精度混沌的哈希算法,可以由用戶指定計(jì)算的哈希值的大小和摘要信息的長度,給用戶靈活的、更加方便的選擇。 本發(fā)明建立在可擴(kuò)展精度計(jì)算混沌基礎(chǔ)上,充分地利用了混沌的特性;提供一種新型的、安全的、滿足不同用戶需要的哈希算法??梢詰?yīng)用于使用哈希技術(shù)的計(jì)算機(jī)科學(xué)領(lǐng)域,包括計(jì)算機(jī)安全、信息安全、密碼學(xué)、模式匹配、數(shù)字通訊等技術(shù)領(lǐng)域。
具體實(shí)施例方式具體實(shí)施方式
一基于可擴(kuò)展精度混沌的哈希表。這里假定輸入信息為三個(gè)數(shù)字123 (關(guān)鍵字),哈希表的地址空間為0到20?;诳蓴U(kuò)展精度混沌的哈希表實(shí)現(xiàn)具體步驟如下(1)輸入的信息作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù),設(shè)定 Logistic映射迭代次數(shù)和指定Logistic映射獲得的隨機(jī)序列的位數(shù)(精度)。輸入的信息作為Logistic映射的初始參數(shù)和控制參數(shù)分別為x0 = 0. 123, a = 3. 9123設(shè)定Logistic映射迭代次數(shù)等于2,指定獲得的隨機(jī)序列的位數(shù)等于20。(2)進(jìn)行可擴(kuò)展精度混沌迭代,經(jīng)過迭代獲得混沌隨機(jī)序列,隨機(jī)數(shù)列被保存在一維數(shù)組里?;诳蓴U(kuò)展精度Logistic映射的迭代過程為第一步,計(jì)算x = χ* (1-x),保留擴(kuò)展精度后的計(jì)算結(jié)果在新的一維動(dòng)態(tài)數(shù)組中。參數(shù)χ的值保存在整數(shù)型數(shù)組array_x中,形式為{1,2,3};即array_XW] = 1, array_x[1] = 2,array_x[2] = 3。參數(shù)1-x的值保存在整數(shù)型數(shù)組array_y中,形式為{8,7,7};即array_y W]= 8,array_y[1] = 7,array_y[2] = 7。計(jì)算x = x* (1-x),計(jì)算結(jié)果保存在array_temp中?;诳蓴U(kuò)展精度Logistic映射的迭代次數(shù)與精度關(guān)系數(shù)學(xué)公式Ln+1 = 2XLn+La其中,Ln為當(dāng)前參數(shù)χ的精度,La為參數(shù)a的精度。當(dāng)前參數(shù)&的精度Ltl等于3,χ = χ* (1-x)的擴(kuò)展精度后的計(jì)算結(jié)果的精度為2L。 =6。計(jì)算X*(l-X)的中間結(jié)果可以保存在矩陣中
1 2 3 8 7 7
0 0 0 7 14 21 0 0 7 14 21 0 0 8 16 24 0 0
對矩陣中中間計(jì)算結(jié)果進(jìn)行計(jì)算,結(jié)果保存在數(shù)組array_temp中,形式如下 {1,0,7,8,7,1}
擴(kuò)展數(shù)組arrays的長度為2k,拷貝數(shù)組arrayjemp的值到新的一維數(shù)組 array—χ ψ。第二步,計(jì)算χ = x*a,保留本次迭代的計(jì)算結(jié)果在動(dòng)態(tài)數(shù)組中。參數(shù)a的值保存在整數(shù)型數(shù)組array_par_a中,形式為{3,9,1,2,3};即array_par_a
= 3, array_par_a[l] = 9, . . . , array_par_a[4] = 3。 #= a ^Ii^5 La = 4C 因此,計(jì)算的結(jié)果L1 = 2L。+La,即等于10。
計(jì)算x*a的中間結(jié)果可以保存在矩陣中 1 0 7 8 7 1 χ 3 9 12 權(quán)利要求
1.一種基于可擴(kuò)展精度混沌的哈希算法,其特征在于首先,將輸入的信息作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù),設(shè)定Logistic映射迭代次數(shù)和指定 Logistic映射獲得的隨機(jī)序列的位數(shù);然后,進(jìn)行可擴(kuò)展精度Logistic映射混沌迭代計(jì)算,經(jīng)過迭代獲得混沌隨機(jī)序列,隨機(jī)序列被保存在一維數(shù)組里;接下來設(shè)定所需提取的信息位個(gè)數(shù),按信息位個(gè)數(shù)對保存在一維數(shù)組里的混沌隨機(jī)序列進(jìn)行分組;最后,設(shè)定種子。
2.根據(jù)權(quán)利要求1所述的基于可擴(kuò)展精度混沌的哈希算法,其特征在于,作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù),Logistic映射表述如下xn+1 = aXxnX (I-Xn) ;a e (0,4] ;xn e (0,1) ;η = 0,1,...其中,a是控制參數(shù),X0為初始狀態(tài)值;當(dāng)參數(shù)的末位為0時(shí),可以對該位進(jìn)行非零化處理;根據(jù)基于可擴(kuò)展精度Logistic映射的迭代次數(shù)與精度關(guān)系數(shù)學(xué)公式Ln+1 = 2 X Ln+La ;其中,Ln為當(dāng)前參數(shù)χ的精度,La為參數(shù)a的精度。
3.根據(jù)權(quán)利要求2所述的基于可擴(kuò)展精度混沌的哈希算法,其特征在于,可擴(kuò)展精度 Logistic映射混沌迭代計(jì)算過程為第一步,計(jì)算χ = χ* (1-x),保留擴(kuò)展精度后的計(jì)算結(jié)果在新的一維動(dòng)態(tài)數(shù)組中;第二步,計(jì)算χ = x*a,保留本次迭代的計(jì)算結(jié)果在動(dòng)態(tài)數(shù)組中;第三步,如果當(dāng)前的迭代次數(shù)沒有達(dá)到設(shè)定的迭代次數(shù),則轉(zhuǎn)到第一步;如果當(dāng)前獲得的混沌隨機(jī)序列的精度小于指定的精度,則轉(zhuǎn)到第一步;第四步,經(jīng)過指定的迭代次數(shù)和滿足給定精度的混沌隨機(jī)序列被保存在一個(gè)一維的數(shù)組里。
4.根據(jù)權(quán)利要求3所述的基于可擴(kuò)展精度混沌的哈希算法,其特征在于,設(shè)定所需提取的信息位個(gè)數(shù),所述設(shè)定所需提取的信息位個(gè)數(shù)應(yīng)該小于等于指定Logistic映射獲得的隨機(jī)序列的位數(shù);按照用戶設(shè)定的提取信息位的個(gè)數(shù)對獲得的混沌隨機(jī)序列進(jìn)行分組。
5.根據(jù)權(quán)利要求4所述的基于可擴(kuò)展精度混沌的哈希算法,其特征在于,設(shè)定種子,進(jìn)行隨機(jī)選位,并保存到數(shù)組中。
全文摘要
本發(fā)明公開了一種基于可擴(kuò)展精度混沌的哈希算法,本發(fā)明將輸入的信息作為基于可擴(kuò)展精度Logistic映射的初始參數(shù)和控制參數(shù),設(shè)定Logistic映射迭代次數(shù)和指定Logistic映射獲得的隨機(jī)序列的位數(shù);進(jìn)行可擴(kuò)展精度Logistic映射混沌迭代計(jì)算,經(jīng)過迭代獲得混沌隨機(jī)序列,隨機(jī)序列被保存在一維數(shù)組里;設(shè)定所需提取的信息位個(gè)數(shù),按信息位個(gè)數(shù)對保存在一維數(shù)組里的混沌隨機(jī)序列進(jìn)行分組;設(shè)定種子,進(jìn)行隨機(jī)選位,并保存到數(shù)組中。本發(fā)明建立在可擴(kuò)展精度計(jì)算混沌基礎(chǔ)上,充分地利用了混沌的特性??梢詰?yīng)用于使用哈希技術(shù)的計(jì)算機(jī)科學(xué)領(lǐng)域,包括計(jì)算機(jī)安全、信息安全、密碼學(xué)、模式匹配、數(shù)字通訊等技術(shù)領(lǐng)域。
文檔編號G06F17/15GK102289425SQ20111010747
公開日2011年12月21日 申請日期2011年4月28日 優(yōu)先權(quán)日2011年4月28日
發(fā)明者劉嘉輝, 張宏莉 申請人:哈爾濱工業(yè)大學(xué)