Keccak (發音為「凱奇克」) 是由 Guido Bertoni、Joan Daemen、Michaël Peeters 和 Gilles Van Assche 設計的多功能加密函數。雖然 Keccak 可以用於其他目的,但它最常見的用塗是做為雜湊函數,與 SHA-1 和 SHA-2 等舊有雜湊演算法相比,它提供了更高的安全水平。
SHA 代表安全雜湊演算法,指的是美國國家技術標準局 (NIST) 發佈的一組加密雜湊函數。SHA-1 和 SHA-2 均由美國國家安全局 (NSA) 設計,因此具有類似結構。雖然 Keccak 支援與 SHA-2 相同的輸出大小 (雜湊長度),但它的運作機制完全不同。儘管如此,Keccak 仍是 SHA 家族的一部分,經常被稱為 SHA-3。
儘管尚未有針對 SHA-2 的重大攻擊,但預計雜湊函數會隨著時間遭到破解,並且需要數年才能開發新的標準函數。考慮到這一點,以及考量到 2004 年和 2005 年對 SHA-1 成功進行攻擊,NIST 認為需要建立新的加密雜湊演算法。2012 年,NIST 宣佈 Keccak 為競賽的獲勝演算法,並將其標準化為 SHA 家族的最新成員 (也就是 SHA-3)。
NIST 選擇 Keccak 的原因之一是它的創新結構,經驗證比其他演算法更安全和有效率。從技術上講,SHA-3 演算法依賴所謂的海綿函數 (或海綿結構) - 與 SHA-1 和 SHA-2 使用的 Merkle Damgård 結構相比。