哈希函数——SHA1
哈希函數(shù)簡介
信息安全的核心技術(shù)是應用密碼技術(shù)。密碼技術(shù)的應用遠不止局限于提供機密性服務,密碼技術(shù)也提供數(shù)據(jù)完整性服務。密碼學上的散列函數(shù)(Hash Functions)就是能提供數(shù)據(jù)完整性保障的一個重要工具。Hash函數(shù)常用來構(gòu)造數(shù)據(jù)的短“指紋”,消息的發(fā)送者使用所有的消息產(chǎn)生一個短“指紋”,并將該短“指紋”與消息一起傳輸給接收者。即使數(shù)據(jù)存儲在不安全的地方,接收者重新計算數(shù)據(jù)的指紋,并驗證指紋是否改變,就能夠檢測數(shù)據(jù)的完整性。這是因為一旦數(shù)據(jù)在中途被破壞或改變,短指紋就不再正確。
散列函數(shù)是一個函數(shù),它以一個變長的報文作為輸入,并產(chǎn)生一個定長的散列碼,有時也稱為報文摘要,作為函數(shù)的輸出。散列函數(shù)最主要的作用是用于鑒別,鑒別在網(wǎng)絡(luò)安全中起到舉足輕重的地位。鑒別的目的有以下兩個:第一,驗證信息的發(fā)送者不是冒充的,同時發(fā)信息者也不能抵賴,此為信源識別;第二,驗證信息完整性,在傳遞或存儲過程中未被篡改,重放或延遲等。
哈希函數(shù)特點
密碼學哈希函數(shù)(cryptography hash function,簡稱為哈希函數(shù))在現(xiàn)代密碼學中起著重要的作用,主要用于數(shù)據(jù)完整性認證和消息認證。哈希函數(shù)的基本思想是對數(shù)據(jù)進行運算得到一個摘要,運算過程滿足:
● 壓縮性:任意長度的數(shù)據(jù),算出的摘要長度都固定。
● 容易計算:從原數(shù)據(jù)容易計算出摘要。
● 抗修改性:對原數(shù)據(jù)進行任何改動,哪怕只修改1個字節(jié),所得到的摘要都有很大區(qū)別。
● 弱抗碰撞:已知原數(shù)據(jù)和其摘要,想找到一個具有相同摘要的數(shù)據(jù)(即偽造數(shù)據(jù)),在計算上是困難的。
● 強抗碰撞:想找到兩個不同的數(shù)據(jù),使它們具有相同的摘要,在計算上是困難的。
針對哈希函數(shù)的攻擊
對散列函數(shù)的攻擊方法主要有兩種:
● 窮舉攻擊:它可以用于對任何類型的散列函數(shù)的攻擊,最典型的方式就是所謂的“生日攻擊”。采用生日攻擊的攻擊者將產(chǎn)生許多明文消息,然后計算這些明文消息的摘要,進行比較。
● 利用散列函數(shù)的代數(shù)結(jié)構(gòu):攻擊其函數(shù)的弱性質(zhì)。通常的有中間相遇攻擊、修正分組攻擊和差分分析攻擊等。
SHA1與MD5差異
SHA1對任意長度明文的預處理和MD5的過程是一樣的,即預處理完后的明文長度是512位的整數(shù)倍,但是有一點不同,那就是SHA1的原始報文長度不能超過2的64次方,然后SHA1生成160位的報文摘要。SHA1算法簡單而且緊湊,容易在計算機上實現(xiàn)。
● 安全性:SHA1所產(chǎn)生的摘要比MD5長32位。若兩種散列函數(shù)在結(jié)構(gòu)上沒有任何問題的話,SHA1比MD5更安全。
● 速度:兩種方法都是主要考慮以32位處理器為基礎(chǔ)的系統(tǒng)結(jié)構(gòu)。但SHA1的運算步驟比MD5多了16步,而且SHA1記錄單元的長度比MD5多了32位。因此若是以硬件來實現(xiàn)SHA1,其速度大約比MD5慢了25%。
● 簡易性:兩種方法都是相當?shù)暮唵?#xff0c;在實現(xiàn)上不需要很復雜的程序或是大量存儲空間。然而總體上來講,SHA1對每一步驟的操作描述比MD5簡單。
總結(jié)
以上是生活随笔為你收集整理的哈希函数——SHA1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。