Keccak (phát âm là “ketchak”) là một hàm mật mã đa năng được thiết kế bởi Guido Bertoni, Joan Daemen, Michaël Peeters và Gilles Van Assche. Mặc dù Keccak có thể được sử dụng cho các mục đích khác, nhưng nó được biết đến nhiều nhất là hàm băm cung cấp mức độ bảo mật cao hơn khi so sánh với các thuật toán băm cũ hơn, như SHA-1 và SHA-2.
SHA là viết tắt của Thuật toán băm an toàn và đề cập đến một tập hợp các hàm băm mật mã do Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) xuất bản. Cả SHA-1 và SHA-2 đều được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) và do đó có cấu trúc tương tự nhau. Mặc dù Keccak hỗ trợ cùng kích thước đầu ra (độ dài băm) như SHA-2 nhưng cơ chế hoạt động của nó khá khác nhau. Tuy nhiên, Keccak là một phần của họ SHA và thường được gọi là SHA-3.
Các cuộc tấn công lý thuyết vào SHA-1 đã được thực hiện được thực hiện vào năm 2004 và được công bố rộng rãi vào năm 2005. Vài năm sau, vào năm 2011, SHA-2 được NIST tuyên bố là hàm băm tiêu chuẩn mới sẽ được sử dụng. Tuy nhiên, quá trình di chuyển từ SHA-1 sang SHA-2 diễn ra khá chậm và phải đến đầu năm 2017, một tỷ lệ lớn các nhà phát triển và nhà khoa học máy tính cuối cùng mới chuyển sang SHA-2. Ngay sau đó, Google đã công bố cuộc tấn công va chạm SHA-1 thành công vào tháng 2 năm 2017 và kể từ đó, SHA-1 không còn được coi là an toàn nữa và việc sử dụng nó không được khuyến khích.
Hàm Keccak (SHA-3) bắt đầu được phát triển vào khoảng năm 2007 sau khi NIST công bố một cuộc cạnh tranh công khai và quy trình kiểm tra nhằm tìm kiếm hàm băm mật mã mới có thể khắc phục các lỗ hổng tiềm ẩn của SHA-1 và SHA-2 trước đó.
Mặc dù không có cuộc tấn công đáng kể nào vào SHA-2 đã được chứng minh nhưng người ta hy vọng rằng các hàm băm sẽ bị bẻ khóa theo thời gian và phải mất nhiều năm để phát triển một hàm tiêu chuẩn mới. Tính đến điều đó, cùng với các cuộc tấn công thành công chống lại SHA-1 vào năm 2004 và 2005, NIST nhận thấy cần phải tạo ra một thuật toán băm mật mã mới. Vào năm 2012, NIST đã tuyên bố Keccak là thuật toán chiến thắng của cuộc thi và nó được tiêu chuẩn hóa thành thành viên mới nhất của gia đình SHA (do đó có tên là SHA-3).
Một trong những lý do khiến Keccak được NIST chọn là do cấu trúc sáng tạo của nó được chứng minh là an toàn và hiệu quả hơn các thuật toán khác. Về mặt kỹ thuật, thuật toán SHA-3 dựa trên cái gọi là hàm xốp (hoặc cấu trúc bọt biển) - trái ngược với cấu trúc Merkle Damgård được SHA-1 và SHA-2 sử dụng.
Hiện tại, SHA-2 vẫn được coi là an toàn và được sử dụng rộng rãi. Chẳng hạn, SHA-256 được Bitcoin và các loại tiền điện tử khác sử dụng và đóng một vai trò quan trọng trong quá trình khai thác. Chúng ta có thể thấy việc áp dụng SHA-3 ngày càng tăng trong tương lai vì dường như nó còn lâu mới bị tấn công thành công. Tuy nhiên, chúng ta sẽ thấy nhiều thuật toán băm mật mã được phát triển hơn trong những năm tới khi lĩnh vực mật mã tiến bộ và các lỗ hổng mới được phát hiện.