複製鏈接
請複製以下鏈接發送給好友

安全散列算法1

鎖定
安全散列算法是數宇簽名等密碼學應用中重要的工具。最常用的安全散列算法是SHA-1算法,它被廣泛地應用於電子商務等信息安全領域。 [1] 
中文名
安全散列算法1
外文名
Secure Hash Algorithm,SHA
簡    稱
SHA-1

安全散列算法1科技簡介

安全散列算法(SHA)是一種常用的數據加密算法。它由美國國家標準與技術局(NIST)於1993年作為聯邦信息處理標準公佈(即第一代SHA算法SHA-0)。在1995年,其改進版本SHA一1也正式公佈(SHA一1具有比SHA—0更高的安全性)。SHA-1算法是目前最常用的安全散列算法和最先進的加密技術。SHA-1算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單地理解為取一串輸入碼,把它們轉化為長度較短、位數固定的輸出序列即散列值(稱為信息摘要)的過程。該算法對長度不超過2的64次方的消息產生160位的消息摘要輸出,輸入按512位的分組進行處理。
SHA-1算法在加密學中扮演着極其重要的角色,可以用於實現數據保密、防止數據更改和身份驗證等功能。一個典型的應用是從數字消息、IP信息包、磁盤文件等數據抽取散列值(稱為消息摘要),井與對稱或非對稱加密技術一起來完成對原始數據的認證和完整性檢查。另外,SHA-1算法是當今眾多流行加密思想核心,幾乎無處不在。它在許多安全協議中廣為使用,如:數字簽名標準(DSS)、傳輸層安全(TLS)、安全電子交易(SET),互聯網協議安全(IPSec)、無線局域網(WLANs)安全、隨機數生成算法和密碼存儲機制等。 [2] 

安全散列算法1特性

SHA-1算法具有兩個重要特性:單向性和抗碰撞性。單向性即由原始消息計算出信息摘要很容易,而由消息摘要計算出原始消息在計算上則幾乎是不可行的。而所謂的抗碰撞性是指,要找到兩個不同的原始消息生成同一個信息摘要在計算上也是不可行的。 [2] 

安全散列算法1算法實現與安全性

安全散列算法1算法實現

SHA-1算法是一種易於實現並可以基於多種平台的方便易行的安全算法,目前很多計算機語言,像C,Java, C++PHP依照SHA一1算法的標準都能實現SHA-1。當然,受語言平台應用性的制約,應用最廣泛的是C語言和Java語言。自身計算機上的消息認證一般採用C語言實現就足夠,不僅能夠保證良好的可移植性,而且實現起來也比較簡單、容易理解。考慮到網絡上的數字簽名,乃至電子商務等,一般採用Java實現代碼較簡單迅速,其可移植性和安全性也能得到更好的保證。事實上,這裏還存在一個潛在的問題:SHA-1算法信息摘要的計算速度井不總是能滿足要求。使得SHA-1算法的硬件實現也有很多途徑,如利用現場可編程門陣列不僅可以實現這種算法,井且某種程度上也能提高運算速度。特別是隨着數字通信領域的飛速發展,在急劇增長的無線移動設備領域,對加密系統的性能要求越來越嚴格。使得SHA一1算法軟硬件優化方案的實現成為專家關注的熱點。

安全散列算法1算法安全性

SHA-1算法是由MDS算法演變而來的,它們之間最大的區別在於前者產生的摘要長度比後者長32bit。SHA-1對於強行攻擊,產生任何一個報文使之摘要等於給定報文摘要的難度為2160數量級的操作,較MDS的2128數量級操作要難。因此,SHA-1算法對抵抗強行攻擊的強度很高。同時,因為SHA-1算法的循環步驟有80次,比MDS算法的64次要多,所以其運行速度也較慢。
從目前密碼學研究的最新進展來看,SHA-1雖然被發現存在缺陷(碰撞),但在近幾年內,仍然可以大量使用SHA-1算法。同時,專家們認為王小云等人發現當前所用的散列算法存在的問題,必將幫助新的散列算法設計者考慮到這方面的問題,使得新的散列算法具有更好的安全性。美國政府的大多數應用被要求在以前改用SHA-2散列函數系列,早期的應用也要儘可能地進行升級。SHA-2算法跟 SHA一1基本上相似,至今尚末出現對SHA-2算法的攻擊。 [2] 
參考資料
  • 1.    張健, 陳瑞, 芮雄麗. 安全散列算法SHA-1在圖形處理器上的實現[J]. 網絡安全技術與應用, 2009(1):46-48.
  • 2.    張松敏, 陶榮, 於國華. 安全散列算法SHA-1的研究[J]. 計算機安全, 2010(10):3-5.