SHA-3 là gì?
SHA-3 (hay Keccak) là một thuật toán băm mật mã được phát triển bởi Guido Bertoni, Joan Daemen, Michael Peeters và Gilles Van Assche. Nó được NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ) chọn làm tiêu chuẩn FIPS 202 vào năm 2015, thay thế cho SHA-2.
Thuật toán SHA-3 hoạt động như thế nào?
SHA-3 (hay Keccak) sử dụng cấu trúc bọt biển (sponge) để xử lý dữ liệu. Cấu trúc này bao gồm hai thành phần chính:
- Hàm băm: Hàm băm là một hàm toán học biến đổi dữ liệu đầu vào thành một chuỗi bit có độ dài cố định.
- Bọt biển: Bọt biển là một bộ nhớ có thể lưu trữ dữ liệu.
Quá trình hoạt động:
- Chuẩn bị dữ liệu: Dữ liệu đầu vào được chia thành các khối nhỏ có độ dài cố định.
- Hấp thụ: Mỗi khối dữ liệu được đưa vào hàm băm để tạo ra một giá trị băm. Giá trị băm này sau đó được XOR với dữ liệu trong bọt biển.
- Vắt: Một phần dữ liệu trong bọt biển được lấy ra và sử dụng làm đầu ra của thuật toán.
- Lặp lại: Các bước 2 và 3 được lặp lại cho đến khi toàn bộ dữ liệu đầu vào được xử lý.
Mô tả chi tiết:
- Hàm băm: SHA-3 sử dụng một hàm băm dựa trên phép hoán vị. Hàm băm này nhận một khối dữ liệu đầu vào và tạo ra một giá trị băm có độ dài 512 bit.
- Bọt biển: Bọt biển có kích thước 1600 bit. Nó được chia thành 5 phần, mỗi phần có 320 bit.
- Quá trình hấp thụ: Khi một khối dữ liệu được đưa vào hàm băm, giá trị băm được tạo ra sẽ được XOR với dữ liệu trong phần đầu tiên của bọt biển. Sau đó, dữ liệu trong bọt biển được dịch chuyển sang trái một vị trí.
- Quá trình vắt: Một phần dữ liệu từ phần đầu tiên của bọt biển được lấy ra và sử dụng làm đầu ra của thuật toán. Sau đó, dữ liệu trong bọt biển được dịch chuyển sang phải một vị trí.
Ví dụ:
Giả sử chúng ta muốn băm chuỗi “Hello, world!”. Chuỗi này được chia thành hai khối: “Hello” và “world”.
Khối “Hello”:
- Giá trị băm được tạo ra là “0x1234567890ABCDEF”.
- Giá trị băm này được XOR với dữ liệu trong phần đầu tiên của bọt biển.
- Dữ liệu trong bọt biển được dịch chuyển sang trái một vị trí.
Khối “world”:
- Giá trị băm được tạo ra là “0xABCDEFGHIJKLMNOPQRST”.
- Giá trị băm này được XOR với dữ liệu trong phần đầu tiên của bọt biển.
- Dữ liệu trong bọt biển được dịch chuyển sang trái một vị trí.
Vắt:
- 512 bit đầu tiên của dữ liệu trong bọt biển được lấy ra và sử dụng làm đầu ra của thuật toán.
Kết quả:
Giá trị băm của chuỗi “Hello, world!” là “0x1234567890ABCDEFGHIJKLMNOPQRST”.
Ứng dụng của thuật toán SHA-3
Dưới đây là một số ứng dụng phổ biến của SHA-3:
1. Chữ ký điện tử:
SHA-3 có thể được sử dụng để tạo ra chữ ký điện tử cho các tài liệu điện tử, đảm bảo tính toàn vẹn và tính xác thực của chúng. Khi ký một tài liệu, người dùng sẽ sử dụng khóa bí mật của mình để tạo ra một giá trị băm của tài liệu. Giá trị băm này sau đó được đính kèm vào tài liệu và được sử dụng để xác minh tính hợp lệ của tài liệu.
2. Xác minh tệp:
SHA-3 có thể được sử dụng để xác minh tính toàn vẹn của các tệp tin, đảm bảo rằng chúng không bị thay đổi sau khi được tải xuống hoặc truyền đi. Khi tải xuống một tệp tin, người dùng có thể tính toán giá trị băm của tệp tin và so sánh nó với giá trị băm được cung cấp bởi người tạo tệp tin. Nếu hai giá trị băm khớp nhau, thì tệp tin không bị thay đổi.
3. Mật khẩu:
SHA-3 có thể được sử dụng để băm mật khẩu, giúp bảo vệ chúng khỏi bị đánh cắp. Khi lưu trữ mật khẩu, hệ thống sẽ sử dụng SHA-3 để băm mật khẩu trước khi lưu trữ. Khi người dùng đăng nhập, hệ thống sẽ băm mật khẩu mà người dùng nhập vào và so sánh nó với giá trị băm được lưu trữ. Nếu hai giá trị băm khớp nhau, thì người dùng được phép đăng nhập.
4. Blockchain:
SHA-3 được sử dụng trong một số blockchain, chẳng hạn như Ethereum, để đảm bảo tính toàn vẹn của dữ liệu blockchain. Dữ liệu blockchain được lưu trữ trong các khối, và mỗi khối được liên kết với khối trước đó bằng một giá trị băm. Giá trị băm này được tạo ra bằng cách sử dụng SHA-3. Nếu dữ liệu trong một khối bị thay đổi, thì giá trị băm của khối cũng sẽ thay đổi, và điều này sẽ được phát hiện bởi các nút khác trong mạng blockchain.
5. IoT:
SHA-3 có thể được sử dụng trong các thiết bị IoT để bảo vệ dữ liệu và đảm bảo tính toàn vẹn của các thiết bị. Dữ liệu được thu thập bởi các thiết bị IoT có thể được băm bằng SHA-3 trước khi được truyền đi. Điều này sẽ giúp bảo vệ dữ liệu khỏi bị đánh cắp và sửa đổi.
Ngoài ra, SHA-3 còn có thể được sử dụng trong các ứng dụng sau:
- Bảo mật mạng: SHA-3 có thể được sử dụng để tạo ra các mã xác thực tin nhắn (MAC) để bảo vệ tính toàn vẹn của các thông điệp được truyền qua mạng.
- Lưu trữ đám mây: SHA-3 có thể được sử dụng để đảm bảo tính toàn vẹn của dữ liệu được lưu trữ trong đám mây.
- Phần mềm độc hại: SHA-3 có thể được sử dụng để phát hiện phần mềm độc hại bằng cách tạo ra giá trị băm của các tệp tin và so sánh nó với giá trị băm được biết đến của các tệp tin an toàn.

Để lại một phản hồi