專利名稱:基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法
基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法技術(shù)領(lǐng)域
本發(fā)明屬于信息安全領(lǐng)域,涉及一種基于隨機(jī)函數(shù)的單向哈希函數(shù)的構(gòu)造方法。
技術(shù)背景
現(xiàn)有的hash (又譯為哈希、雜湊、散列)函數(shù)具有固定的結(jié)構(gòu)和函數(shù),這為密碼分析提供了便利。對于hash函數(shù)H=Hash(M),一般通過M計(jì)算H容易,而通過H求對應(yīng)的一個(gè)或者多個(gè)M是非常困難的,在有限的計(jì)算能力下往往需要很長的時(shí)間。不過近年來王小云破解了一系列的hash函數(shù)。2004年,2005年,王小云帶領(lǐng)的研究小組先后破譯了被全球廣泛運(yùn)用于計(jì)算機(jī)安全系統(tǒng)的MD5和SHA-I兩大密碼算法,引起國際密碼學(xué)界的極大關(guān)注和高度贊譽(yù).對于一個(gè)固定的函數(shù),要保證這種單向性是比較困難的,因?yàn)樵瓌t上說可以根據(jù)hash函數(shù)的結(jié)構(gòu)進(jìn)行逆推(雖然它是單向的,原文和hash值是多對一的映射關(guān)系,但是在借助一些數(shù)學(xué)方法和計(jì)算工具的情況下,可能進(jìn)行成功的逆推,這提供了一個(gè)破解的入口),需要將算法設(shè)計(jì)的非常復(fù)雜。假如一個(gè)hash函數(shù)的算法是隨機(jī)的、不確定的,則密碼分析者很難著手。與傳統(tǒng)的確定函數(shù)相對,我們這里提出隨機(jī)函數(shù)的概念,即這個(gè)函數(shù)的表達(dá)式、結(jié)構(gòu)和形式是隨機(jī)的,不確定的,比如隨機(jī)函數(shù)y=F(a,b,C),F(xiàn)(a,b,C)并沒有明確的形式,它的具體形式可能是f\(a,b,c)、f2(a,b,c)、f3(a,b,c)、f4(a,b,c)之中的一個(gè)函數(shù)。 注意到我們這里的隨機(jī)函數(shù)指的是具有隨機(jī)性的函數(shù),現(xiàn)在一般在計(jì)算機(jī)領(lǐng)域?qū)a(chǎn)生隨機(jī)數(shù)的函數(shù)也稱為隨機(jī)函數(shù)。發(fā)明內(nèi)容
鑒于確定的函數(shù)給予密碼分析者明確的靶子,從而影響安全性。由此,本發(fā)明應(yīng)用隨機(jī)函數(shù)來設(shè)計(jì)hash函數(shù)。
注意到,雖然本發(fā)明中hash算法是不確定的,但是,在一般的情況下,為了達(dá)到驗(yàn)證的目的,明文一定時(shí)候,hash值應(yīng)該是確定的,為了解決這個(gè)問題,我們設(shè)定hash函數(shù)與明文輸入的概率相關(guān)性,當(dāng)輸入明文是確定的時(shí)候,hash函數(shù)的形式也是確定的,在已知明文的條件下,hash函數(shù)是確定的,即hash函數(shù)由明文以某種方式確定。
我們假設(shè)隨機(jī)hash函數(shù)是D=H(m),H是隨機(jī)的,m是函數(shù)的變量輸入,借鑒傳統(tǒng)的確定性的hash函數(shù)的特點(diǎn),在采用隨機(jī)函數(shù)的hash函數(shù)中,明文除了要決定hash函數(shù)的具體形Shi(Hi)外,還作為D= h^m)算法的輸入m。那么決定hash函數(shù)具體形式的明文部分和作為參數(shù)m輸入hash函數(shù)的部分可以是相關(guān)的,也可以是獨(dú)立的,比如取明文的一部分決定h (m),取明文的另外一部分作為m。假如兩部分是獨(dú)立的,則密碼分析者容易被各個(gè)擊破,比如先確定函數(shù),在尋找合適的m ;相反,如果兩部分是關(guān)聯(lián)的,則采用上述方法無效,因?yàn)橄却_定函數(shù)后,再尋找合適m的過程中,m的變換也會(huì)導(dǎo)致函數(shù)的變化,無法同時(shí)滿足。因此,兩者是關(guān)聯(lián)的情況下才更加安全,而且在本發(fā)明中需要將它們的關(guān)系設(shè)計(jì)的非常復(fù)雜,使得很難破解。明確地說,就是設(shè)計(jì)的時(shí)候,需要將明文的盡量多的比特?cái)?shù)都同時(shí)參與決定函數(shù)形式和m,那么將明文的全部用于決定兩者是最為合適的,考慮到現(xiàn)有的hash函數(shù)的形式均需要進(jìn)行填充,所以本發(fā)明中將填充處理后的明文的全部用于決定hash函數(shù)形式和m。
類似于我們上面的分析,在密碼分析時(shí)候,hash函數(shù)的不同部分?jǐn)?shù)據(jù)的關(guān)系越獨(dú)立,則越容易各個(gè)擊破;如果關(guān)聯(lián)性很好,則試圖各個(gè)擊破的時(shí)候,就會(huì)出現(xiàn)這個(gè)擊破,那個(gè)又不滿足的情況。因此,設(shè)計(jì)的時(shí)候,需要讓數(shù)據(jù)高度的關(guān)聯(lián)、廣泛的擴(kuò)散,為了讓這些擴(kuò)散和關(guān)聯(lián)不泄露信息,又需要高度、快速的雪崩效應(yīng)。這里的雪崩效應(yīng)指的是密碼學(xué)中的一類效應(yīng),而不是經(jīng)濟(jì)學(xué)中的。雪崩效應(yīng)就是一種不穩(wěn)定的平衡狀態(tài)也是加密算法的一種特征,它指明文或密鑰的少量變化會(huì)引起密文的很大變化,明文的Ibit的變換引起密文一半 bit的改變,同樣密鑰的Ibit的變換引起密文一半bit的改變。對于Hash函數(shù),雪崩效應(yīng)是指少量消息位的變化會(huì)引起hash值的許多位變化。從以上的角度,考慮技術(shù)性的密碼分析,hash值長度越長,也可以設(shè)計(jì)的越安全,因?yàn)橐獋卧焱瑫r(shí)滿足更長的hash值的消息更困難。
鑒于MD5、SHA-I已經(jīng)被王小云破解,而這些hash函數(shù)都存在單bit位運(yùn)算較多, 缺乏像S盒之類的多bit的操作,因此,安全的hash應(yīng)該采用S盒以及類似的多bit混淆的運(yùn)算。
對于hash函數(shù)的構(gòu)造,有兩類常用的方法第一類最常用的方法,是采用壓縮函數(shù)對數(shù)據(jù)進(jìn)行反復(fù)的分組壓縮;第二類是借用分組密碼的某些模式產(chǎn)生hash值。其他的一些方法,包括利用公鑰密碼算法的,并未得到廣泛研究與應(yīng)用。本發(fā)明采用第一類的方法, 即采用壓縮函數(shù)。
具體的hash函數(shù)構(gòu)造方法為第一步,確定壓縮函數(shù)每一次處理的消息分組長度L。
第二步,設(shè)計(jì)填充和附加長度信息的方式,對消息進(jìn)行填充,由于hash需要有確定的結(jié)果,所以,填充的方式應(yīng)該是固定的,對于一個(gè)消息,只能有惟一的填充方式,對于填充,應(yīng)該能夠很容易確定填充的區(qū)域,由于填充長度本身是不確定的,所以,可以采用以下兩種方式第一種,如果消息長度不是nL-f,則第一位填充0,隨后所有bit都填充1,或者相反,采用這種方式,除了消息長度剛好是nL-f形式的情形,很容易確定填充內(nèi)容,填充的長度也是確定的,將其填充到nL-f,如果長度為nL-f,則不填充,η為符合該條件的最小整數(shù),f是一個(gè)固定的值,小于L,f是預(yù)留用于附加消息長度的,其長度以能夠滿足大多數(shù)的消息和文件的長度不超過2f,同時(shí)也不要太長為標(biāo)準(zhǔn);第二種,如果消息長度不是nL-f,則采用上述的填充方式,如果消息長度為nL-f形式,則在后面填充一個(gè)L長度的消息,即填充后的長度為(n+l)L-f,依然是第一位填充0,隨后所有bit都填充1,或者相反。根據(jù)消息的長度和填充的規(guī)則都可以確定填充的長度,兩者應(yīng)該是相等的,這樣可以進(jìn)行校驗(yàn),也給偽造和破譯設(shè)置了障礙。附加消息長度的方式為當(dāng)消息的長度的二進(jìn)制值超過f時(shí),取末尾的f bit,當(dāng)長度不及f時(shí),在前面附加填充0,最終經(jīng)過填充和附加后的消息成為分組長度L的倍數(shù)。由于有兩種數(shù)據(jù)存儲(chǔ)方式,LITTLE-ENDIAN和BIG-ENDIAN,應(yīng)該根據(jù)機(jī)器類型選取最為合適的一種來表示填充前的消息的長度。
第三步,設(shè)定hash值的長度,考慮彩虹表之類的攻擊,除非特別需要便利而不太需要安全的場合,長度值η應(yīng)該大于160bit。
第四步,確定hash的初始值,這個(gè)(這些)值是確定的,總長度為η。選擇數(shù)據(jù)的存儲(chǔ)方式,一般應(yīng)該和消息長度的存儲(chǔ)方式相同。
第五步,設(shè)計(jì)隨機(jī)的壓縮函數(shù)H,壓縮函數(shù)是hash函數(shù)的最關(guān)鍵部分,它的輸入是前一個(gè)hash值或者是hash的初始值,輸出為中間hash值或者最終hash值。本發(fā)明如前面說討論的,為了達(dá)到較好的擴(kuò)散和混亂效果,應(yīng)該采用S盒或者類似的多比特代替部件。S盒的設(shè)計(jì)原則同對稱密碼學(xué)中的S盒設(shè)計(jì)是一樣的,比如速度快,最好可以用運(yùn)算表示(而不是查表),有比較好的雪崩效應(yīng)、擴(kuò)散效果、差分均勻性,但是無需要求可逆性。一些公開標(biāo)準(zhǔn)算法的S盒都經(jīng)過分析與測試具有很好的效果,可以擇優(yōu)直接使用,并且無需考慮是否可逆(因?yàn)閔ash函數(shù)值只是用于驗(yàn)證,無需解密)。隨機(jī)壓縮函數(shù)構(gòu)造可以考慮借鑒現(xiàn)有的對稱密碼和hash函數(shù)的構(gòu)造方法。獨(dú)特之處在于,一些部件可以采用隨機(jī)的函數(shù), 比如隨機(jī)S盒可以有多個(gè)S盒、循環(huán)移位的位數(shù)可以是隨機(jī)的,比特的運(yùn)算隨機(jī)選擇異或、 與及或等。其他的各種運(yùn)算都可以采用隨機(jī)函數(shù)。除非需要達(dá)到特別的互補(bǔ)、對沖效應(yīng),所有的隨機(jī)函數(shù)部件的隨機(jī)性都應(yīng)該是統(tǒng)計(jì)獨(dú)立的。即任何兩個(gè)或者多個(gè)隨機(jī)函數(shù)部件之間所做的具體函數(shù)形式選擇都是不相關(guān)的。隨機(jī)函數(shù)的各個(gè)具體函數(shù)形式一般應(yīng)該具有相對的等效性,并且能夠與其他的部件配合達(dá)到很好的安全性??蛇x地,可以在最后一個(gè)分組使用壓縮函數(shù)后,對最終壓縮的數(shù)據(jù)進(jìn)行進(jìn)一步的壓縮,這樣一般是用于當(dāng)為了提高安全性而將中間hash值的長度設(shè)計(jì)的很長,而最終的hash值太長又不方便的場合。
第六步,確定隨機(jī)函數(shù)的確定編碼A的結(jié)構(gòu)和形式,根據(jù)壓縮函數(shù)雖然函數(shù)本身是隨機(jī)的,但是在具體的明文(消息)下,函數(shù)應(yīng)該是確定的。本發(fā)明通過確定編碼A來確定這個(gè)函數(shù)的具體形式。獨(dú)立的隨機(jī)函數(shù)部件的編碼采用單獨(dú)的bit位,如果一些隨機(jī)函數(shù)部件是相關(guān)的,可以結(jié)合在一起編碼。隨機(jī)函數(shù)部件對應(yīng)的確定編碼的bit位長度不小于 log2e, e是該隨機(jī)函數(shù)部件的具體形式的個(gè)數(shù)。根據(jù)隨機(jī)壓縮函數(shù)的隨機(jī)部件數(shù)量及其對應(yīng)的元素?cái)?shù)量有關(guān)系。取各個(gè)隨機(jī)部件所需的最少位數(shù),即(如果為整數(shù))或取整加1,如果考慮讀取和存儲(chǔ)方便,也可以取最小的8的倍數(shù)的位數(shù)。這樣可以得到確定隨機(jī)函數(shù)的編碼的格式,比如前面多少bit或者字節(jié)是確定哪個(gè)隨機(jī)部件,接著多少長度的信息是確定什么隨機(jī)部件,如此類推。這樣可以確定A的長度。
第七步,設(shè)計(jì)計(jì)算隨機(jī)函數(shù)的確定編碼A的方法。隨機(jī)函數(shù)的確定由當(dāng)前分組或者是第一個(gè)分組來確定。這可以認(rèn)為是設(shè)計(jì)一個(gè)函數(shù)f,A=f (am),這里的am代表相應(yīng)的消息分組。如果要設(shè)計(jì)的更加安全,還可以將f換成隨機(jī)函數(shù)F,但是這會(huì)犧牲效率。注意, 計(jì)算出來的A最終截取出來的值可能是有冗余的,這可以進(jìn)行取模處理,比如,某個(gè)隨機(jī)函數(shù)部件有5種具體形式,采用!Bbit來編碼,則可以將它們分別編碼0,1,2,3,4,將!Bbit轉(zhuǎn)換為十進(jìn)制后,取模5。當(dāng)然一般最好設(shè)計(jì)為包含2W種具體函數(shù)形式更好。為了提高攻擊的復(fù)雜度,特別是從數(shù)學(xué)上分析的難度,需要增強(qiáng)數(shù)據(jù)和算法的關(guān)聯(lián)性,決定具體函數(shù)的那些數(shù)據(jù),同時(shí)也參與參數(shù)性的運(yùn)算。為了提高攻擊的復(fù)雜度,可以采用兩種方式來實(shí)現(xiàn)數(shù)據(jù)的高度關(guān)聯(lián)1)作為隨機(jī)函數(shù)的輸入?yún)?shù)和作為決定隨機(jī)函數(shù)的參數(shù)本身是相關(guān)的,不獨(dú)立的;2)數(shù)據(jù)分組計(jì)算的時(shí)候,不同分組的輸入?yún)?shù)也同時(shí)是其他分組的決定隨機(jī)函數(shù)的參數(shù),本分組的數(shù)據(jù)也決定其函數(shù),作為參數(shù)輸入。
以下是單個(gè)分組的hash函數(shù)值的計(jì)算方法根據(jù)不同的情況有兩種方法確定隨機(jī)函數(shù),第一,是根據(jù)第一個(gè)分組確定隨機(jī)函數(shù),以后一直沿用此隨機(jī)函數(shù);第二,根據(jù)當(dāng)前分組確定隨機(jī)函數(shù)。首先根據(jù)兩種情況分別選擇輸入第一個(gè)分組或者當(dāng)前的明文(消息)分組am,通過A=f (am)計(jì)算出A,根據(jù)A的數(shù)據(jù)結(jié)構(gòu),進(jìn)行一定的分段提取、取模處理,得到的編碼可以確定所有的隨機(jī)函數(shù)部件的具體函數(shù)形式,這樣hash函數(shù)H的具體形式hi就確定了,hash 值 Cli =hi (am,
整個(gè)消息生成hash值的過程對消息進(jìn)行填充,附加長度信息,然后反復(fù)使用上段的方法,以初始hash值或前一個(gè)hash值作為輸入,對每一個(gè)分組利用隨機(jī)壓縮函數(shù)來逐一產(chǎn)生hash值,逐步壓縮每一個(gè)分組直至結(jié)束。
本發(fā)明的安全性優(yōu)勢一、相對于現(xiàn)有的算法僅僅是輸入變量的變化,基于隨機(jī)函數(shù)的hash函數(shù)其函數(shù)也是變化的,這種變化導(dǎo)致hash計(jì)算中的中間結(jié)果和最終hash值的變化更加激烈和難于分析;二、算法對于加密解密雙方是確定的,但是對于分析者卻不確定?,F(xiàn)有的公開的密碼分析方法均針對確定的算法,而本發(fā)明函數(shù)本身不確定,使得密碼分析很難著手。
本發(fā)明雖然從技術(shù)性分析的角度具有很大的優(yōu)勢,但是,對于一些非常簡單的攻擊,比如查表攻擊是無效的,比如現(xiàn)在的一些hash函數(shù)以及被一些黑客制作成了彩虹表, 將所有的hash值對應(yīng)的一個(gè)或者多個(gè)明文都保存在一個(gè)表中,并且進(jìn)行檢索排序,這樣黑客只需要查找即可找到碰撞或者原來的明文。因此,本發(fā)明依然需要提高h(yuǎn)ash值的長度, 而利用多重隨機(jī)函數(shù)也更容易增加hash值的長度。除非在某些非常需要便利性的場合,很長的hash值使用不現(xiàn)實(shí)的情況下,才可以使用現(xiàn)有hash函數(shù)等長的hash值。
對于這類hash函數(shù)的破譯,密碼分析者一方面需要確定隨機(jī)函數(shù)在具體的hash 值情況下采用的是哪些具體的函數(shù),一方面也要確定hash的輸入,前者是很困難的,何況這兩者本身又是關(guān)聯(lián)的,要同時(shí)滿足更困難。
圖1是本發(fā)明的實(shí)施例迭代示意圖。
圖2是本發(fā)明的隨機(jī)函數(shù)構(gòu)造流程圖。
具體實(shí)施方式
以下為一個(gè)隨機(jī)hash函數(shù)構(gòu)造的實(shí)施例,為了方便和簡潔地描述,采用比較簡短的算法,并且借鑒已有的算法。
以下按照步驟構(gòu)造一個(gè)隨機(jī)hash函數(shù) 第一步,確定處理的分組長度512bit。
第二步,設(shè)計(jì)填充和附加長度信息的方式,對消息進(jìn)行填充,第一位填充1,其后位全部為0,將其填充到512Π-64,如果恰好為512Π-64的形式則填充512bit,同樣是第一位填充1,其后位全部為0,n為符合該條件的最小整數(shù),64bit是預(yù)留用于附加消息長度的,因?yàn)楝F(xiàn)實(shí)中絕大多數(shù)消息的長度的二進(jìn)制一般是不會(huì)超過64,即長度不超過264。當(dāng)消息的長度的二進(jìn)制值超過64,即消息的長度長于264時(shí),取末尾的64bit,當(dāng)長度不及64時(shí),在前面附加填充0至滿64位,最終經(jīng)過填充和附加后的消息成為分組長度512的倍數(shù)。消息長度采用BIG-ENDIAN的存儲(chǔ)方式。
第三步,設(shè)定hash值的長度,這里為了方便取長度值η為160bit。
第四步,確定hash的初始值,或者初始變量,這個(gè)(這些)值是確定的,總長度為160bit。將中間hash結(jié)果和最終hash值存儲(chǔ)在緩沖區(qū),緩沖區(qū)分為5個(gè)32bit的寄存器,稱為 A、B、C、D、E,初始值為 A= 0x01234567,B= 0xAB89EFCD, C= 0xDCFE98BA, D= 0x10325476, E= 0xC3D2ElF0。寄存器采用BIG-ENDIAN的存儲(chǔ)方式。
第五步,設(shè)計(jì)隨機(jī)的壓縮函數(shù)H。為了增強(qiáng)安全性,這里選用S盒作為一個(gè)安全部件。S盒大則安全,但是會(huì)造成計(jì)算量和存儲(chǔ)的增加,S盒小則不安全,對于軟件實(shí)現(xiàn),一般以字節(jié)為單位將會(huì)方便運(yùn)算,所以選取8bit,即一個(gè)字節(jié)作為S盒的輸入輸出大小。有限域 GF (28)上的乘法逆映射具有很好的非線性度、差分均勻性和次數(shù),但是由于代數(shù)表達(dá)式過于簡單而容易遭受插值之類的攻擊,可以將其與一個(gè)仿射運(yùn)算相結(jié)合。本算法將S盒當(dāng)做一個(gè)隨機(jī)函數(shù)部件,隨機(jī)取兩個(gè)S盒,它們都采用逆映射與仿射運(yùn)算組合,它們的差異在于仿射運(yùn)算的映射關(guān)系不一樣。具體變換為1)將8bit變換為GF (28)上的乘法逆元,額外地,二進(jìn)制00000000映射為00000000,2)對前面逆運(yùn)算的結(jié)果采用仿射變換如下,由于是具有兩種具體形式的隨機(jī)函數(shù),所以有兩個(gè)隨機(jī)選擇的二進(jìn)制仿射變換
權(quán)利要求
1.一種基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征是采用隨機(jī)的、不確定的隨機(jī)函數(shù)來構(gòu)造hash函數(shù),隨機(jī)函數(shù)具有多個(gè)不同的具體函數(shù)形式,當(dāng)明文不確定時(shí),隨機(jī)哈希函數(shù)是不確定的,輸入明文確定時(shí),hash函數(shù)是確定的,即明文確定hash函數(shù)的具體函數(shù)形式。
2.一種如權(quán)利要求1所述的基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征是采用多個(gè)隨機(jī)函數(shù)部件來構(gòu)造隨機(jī)hash函數(shù),隨機(jī)部件的構(gòu)造為選擇具有很好的安全性的多個(gè)函數(shù)作為一個(gè)隨機(jī)函數(shù)部件的多種具體形式。
3.—種如權(quán)利要求2所述的基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征是隨機(jī) hash函數(shù)的構(gòu)造步驟為,1)確定處理的分組長度;2)設(shè)計(jì)填充和附加長度信息的方式;3) 設(shè)定hash值的長度;4)確定hash的初始值;5)設(shè)計(jì)隨機(jī)壓縮函數(shù),其中的隨機(jī)部件隨機(jī)選取大于一個(gè)的具體函數(shù)形式;6)設(shè)計(jì)隨機(jī)函數(shù)的確定編碼A的結(jié)構(gòu),其中A是確定隨機(jī)函數(shù)具體形式的編碼;7)設(shè)計(jì)計(jì)算隨機(jī)函數(shù)的確定編碼A的方法。
4.一種如權(quán)利要求3所述的基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征為隨機(jī)函數(shù)的具體形式是計(jì)算量對等,具有互補(bǔ)性的函數(shù)。
5.一種如權(quán)利要求3所述的基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征是隨機(jī)函數(shù)可以采用兩種方式確定第一,第一個(gè)分組的消息確定隨機(jī)壓縮函數(shù)的具體形式,以后一直沿用這個(gè)具體函數(shù);第二,每一個(gè)分組的消息確定當(dāng)前分組所用的隨機(jī)壓縮函數(shù)的具體形式。
6.一種如權(quán)利要求3所述的基于隨機(jī)函數(shù)的單向哈希函數(shù)構(gòu)造方法,其特征為壓縮前先計(jì)算隨機(jī)函數(shù)的確定編碼A,依據(jù)A確定隨機(jī)函數(shù)的具體形式,然后以這一函數(shù)計(jì)算 hash值或其中間結(jié)果,經(jīng)過逐步壓縮得到最終hash值。
全文摘要
本發(fā)明屬于信息安全領(lǐng)域,特別是密碼學(xué)領(lǐng)域,涉及一種構(gòu)造基于壓縮函數(shù)的單向哈希函數(shù)的方法。該方法以隨機(jī)函數(shù)作為作為哈希函數(shù),確切地說是用隨機(jī)函數(shù)作為壓縮函數(shù),即壓縮函數(shù)本身是不確定的,有多種可能的具體函數(shù)形式,在計(jì)算的時(shí)候由明文消息確定函數(shù)的具體形式。這種方法構(gòu)造的hash函數(shù)給破譯帶來了多方面的障礙,偽造的明文不僅要符合傳統(tǒng)確定性hash函數(shù)的要求,而且要求明文對應(yīng)的確定隨機(jī)hash函數(shù)的具體函數(shù)形式的確定編碼應(yīng)該是對應(yīng)的。現(xiàn)有的密碼分析一般針對確定的hash函數(shù),當(dāng)密碼分析者在僅僅只知道hash值的情況下,破譯將會(huì)更加困難,由于不知道隨機(jī)函數(shù)的具體的函數(shù)形式,采用一般的破譯方法會(huì)無從下手。
文檔編號G06F17/30GK102542070SQ20121001353
公開日2012年7月4日 申請日期2012年1月17日 優(yōu)先權(quán)日2012年1月17日
發(fā)明者王勇 申請人:王勇