Keccak
發布於 2024-09-17

Keccak,發音爲“ketchak”,是一項由Guido Bertoni、Joan Daemen、Michaël Peeters和Gilles Van Assche設計的多功能密碼學工具。儘管Keccak可用於多種用途,但它最著名的角色是一種哈希函數,與SHA-1和SHA-2等較舊的哈希算法相比,它提供了更高水平的安全性。


提到SHA(Secure Hash Algorithm),這是美國國家標準與技術研究院(NIST)發佈的一系列密碼哈希函數。SHA-1和SHA-2都是美國國家安全局(NSA)設計的,它們有相似的結構。儘管Keccak支持與SHA-2相同的輸出大小(哈希長度),但它的運行機制大不相同。有趣的是,Keccak屬於SHA家族,常被稱爲SHA-3。


早在2004年,對SHA-1的理論攻擊就已經開始,並於2005年公開。到了2011年,NIST宣佈SHA-2成爲新的標準哈希函數。然而,從SHA-1過渡到SHA-2的過程相當緩慢,直到2017年初,大部分開發者和計算機科學家才轉用SHA-2。不久之後,谷歌在2017年2月宣佈成功實施了SHA-1碰撞攻擊,自此,SHA-1不再被視爲安全,其使用被勸阻。


Keccak(SHA-3)的開發始於約2007年,當時NIST宣佈了一個公開競賽和審查過程,旨在尋找一種新的加密哈希函數,以克服SHA-1和SHA-2潛在的缺陷。雖然那時還未展示出針對SHA-2的重大攻擊,但考慮到哈希函數隨時間可能被破解,以及開發新標準函數需要數年,加之對SHA-1的早期攻擊,NIST預見到了創建新密碼哈希算法的必要性。最終,在2012年,NIST宣佈Keccak贏得了比賽,將其標準化爲SHA家族的最新成員——SHA-3。


Keccak之所以被NIST選中,部分原因是它創新的結構,證明比其他算法更安全、更高效。技術上,SHA-3算法基於所謂的海綿函數(或海綿構造)——這與SHA-1和SHA-2採用的Merkle Damgård構造不同。


目前,SHA-2仍然被認爲是安全的,並被廣泛使用。例如,比特幣及其他加密貨幣就使用SHA-256,它在挖礦過程中扮演着關鍵角色。未來,隨着Keccak至今未被成功攻擊,我們可能會看到它越來越多地被採納。然而,隨着密碼學領域的發展和新漏洞的發現,未來幾年內,我們還將見證更多密碼哈希算法的誕生。