Keccak

Nâng cao

Keccak (phát âm là “ketchak”) là một hàm mã hóa linh hoạt đượ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 nhiều mục đích khác nhau, nhưng nó được biết đến nhiều nhất như là một 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à từ viết tắt của Secure Hash Algorithm (Thuật toán băm bảo mật) và liên quan đến một tập hợp các hàm băm mã hóa do Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) công bố. 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 đó chúng có cấu trúc tương tự nhau. Mặc dù Keccak hỗ trợ cùng một kích thước đầu ra (độ dài băm) như SHA-2 nhưng cơ chế hoạt động của nó là khác nhau. Tuy nhiên, Keccak là một phần của gia đình 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 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ố sử dụng như là một hàm băm tiêu chuẩn mới. Tuy nhiên, quá trình chuyển đổi 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 còn lại mới chuyển hết sang SHA-2. Ngay sau đó, vào tháng 02/2017 Google đã công bố một cuộc tấn công va chạm SHA-1 thành công và kể từ đó, SHA-1 không còn được coi là an toàn và nó không được khuyến khích để sử dụng nữa.
Thuật toán 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 thi kiểm tra và rà soát công khai, tìm kiếm một hàm băm mã hóa 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ù chưa có cuộc tấn công đáng kể nào vào SHA-2 được chứng minh, nhưng người ta vẫn cho 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. Chú ý đế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ã hóa 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ó trở thành thành viên tiêu chuẩn mới nhất của gia đình SHA (đó là SHA-3). 

Một trong những lý do khiến Keccak được NIST chọn là do cơ cấu tổ chức đổi mới 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 Bitcoincác loại tiền mã hoá khác sử dụng và đóng một vai trò quan trọng trong quá trình đào. Chúng ta có thể thấy việc áp dụng SHA-3 ngày càng tăng lên trong tương lai vì dường như sẽ rất lâu nữa nó mới bị tấn công thành công. Tuy nhiên, chúng ta sẽ thấy thêm nhiều thuật toán băm mã hóa được phát triển trong những năm tới khi mà lĩnh vực mã hóa được cải tiến và các lỗ hổng mới được phát hiện.