美國國家標(biāo)準(zhǔn)與技術(shù)研究(NIST)所在今年8月公布了安全哈希算法3(Secure Hash Algorithm-3,SHA-3),并稱其為保護(hù)電子信息完整性的下一代安全工具。
那么,它會(huì)是嗎?
探討對(duì)SHA-3的需求
加密哈希函數(shù)廣為用于安全的許多方面,比如數(shù)字簽名、數(shù)據(jù)完整性檢查,不過與其他加密算法的作用是有區(qū)別的。它們把電子文件、消息或數(shù)據(jù)塊生成簡短的數(shù)字指紋,這稱為消息摘要或哈希值。散列法通過哈希函數(shù)中的運(yùn)算實(shí)現(xiàn),使用非常多的密鑰和塊,能夠有效地改變每個(gè)塊的密鑰,可抵抗密鑰相關(guān)的攻擊。
加密使用的通用運(yùn)算往往有不同的設(shè)計(jì)目的。例如,對(duì)稱密鑰分組運(yùn)算AES可以用于生成哈希值,不過其密鑰和塊的大小使其重要卻低效。
安全加密哈希函數(shù)的關(guān)鍵屬性包括:
·輸出長度小于輸入長度
·對(duì)于任何輸入都快速和高效的計(jì)算
·任何輸入改變都會(huì)影響大量的輸出位
·單向值:輸入不由輸出決定
·強(qiáng)抗沖突性:兩個(gè)不同的輸入不能產(chǎn)生相同的輸出
2012年,NIST宣布Keccak是加密哈希算法競賽之冠,其選擇了一種下一代密碼安全哈希算法,該競賽于2007開始,共收到了64個(gè)提交。彼時(shí)極為流行的AES算法被選用于類似的過程,以確保對(duì)每個(gè)提交進(jìn)行徹底且透明的分析。新標(biāo)準(zhǔn)SHA-3(Permutation-Based哈希和Extendable-Output函數(shù))可從NIST網(wǎng)站上下載,與2014年5月公布征求意見的試行版本沒有明顯區(qū)別。
NIST表示雖然SHA-2仍舊是安全的,適合大眾使用的,但有了SHA-3作補(bǔ)充,可滿足更多多樣性需求。MD5和SHA-1曾廣泛使用哈希算法,不過現(xiàn)在已輝煌不再,為SHA-2所取代。例如,微軟在2005宣布禁止開發(fā)人員使用DES、MD4、MD5,某些情況下會(huì)禁用任何SHA-1加密算法。盡管并沒有關(guān)于SHA-2攻擊的報(bào)道,然與SHA-1類似,總有SHA-3的用武之地,它與SHA-2設(shè)計(jì)非常不同。如果SHA-2一經(jīng)攻擊,行業(yè)還可以有可更換的方案。
SHA-3帶來了什么
SHA-3系列由四個(gè)加密哈希函數(shù)(SHA3-224、SHA3-256、SHA3-384以及SHA3-512),兩個(gè)可擴(kuò)展輸出函數(shù)(SHAKE128和SHAKE256)組成。
可擴(kuò)展輸出函數(shù)不同于哈希函數(shù),因?yàn)槠淇梢詳U(kuò)展至任意需要的長度,這對(duì)于全域散列、隨機(jī)散列、流加密以及生成消息身份驗(yàn)證代碼是非常理想的。在硬件部署中,Keccak明顯快于其他參與者,一些SHA-3函數(shù)可以不需要更多額外的電路部署在芯片上。
為SHA-3做準(zhǔn)備
實(shí)際上,廣泛采用SHA-3可能還需要五年時(shí)間。大多數(shù)企業(yè)正在從SHA-1過渡至SHA-2。
使用SSL連接的遺留系統(tǒng),包括軟件和硬件(如游戲機(jī)、手機(jī)和嵌入式設(shè)備),這些依靠硬編碼的證書都需要遷移到SHA-2證書上去。如果軟件不支持SHA-2加密,也要對(duì)軟件進(jìn)行更新升級(jí)。
尋求將SHA-3添加至其硬件或軟件產(chǎn)品兼容功能的早期采用者們可以使用Synopsys的DesignWare SHA-3 Look Aside Core或PMSF IT Consulting's SHA3庫。Keccak代碼包的最新版本符合SHA-3標(biāo)準(zhǔn),可大量獨(dú)立實(shí)施。
最后,為了與最新的SHA部署和加密最佳實(shí)踐保持同步,也需遵循NIST等標(biāo)準(zhǔn)機(jī)構(gòu)發(fā)布的公告和建議。