Chương 2 : Các phương pháp mã hoá và bảo mật thông tin
3.2 Hàm một chiều và chữ ký điện tử
3.2.6 Các thuật toán Hash
Như đã đề cập ở trên, mục tiêu của hàm một chiều là cung cấp chứng năng tạo dấu vết cho thông tin. Nếu hai thông điệp khác nhau có cùng một giá trị hash, kẻ tấn
công có thể dễ dàng phá vỡ cơ chế vảo mật bởi vì cơ chế đó tuân theo một khuôn dạng cụ thể.
Một thuật toán hash mạnh yêu cầu phải khó bị phá vỡ và cũng không được phép tạo ra cùng một giá trị hash từ hai hoặc nhiều thông điệp khác nhau. Nếu thuật toán hash đảm bảo không tạo ra cùng một giá trị hash từ hai hoặc nhiều thông điệp, thuật toán đó có tính chất “không mẫu thuẫn” hoặc không lặp lại.
Một thuật toán hash tốt cần có đầy đủ các đặc tính sau:
- Giá trị hash tạo ra phải từ quá trình tính toán trên toàn bộ thông điệp - Hàm hash đó phải một chiều
- Không thể sử dụng một thông điệp và giá trị hash của nó để tìm ra một thông điệp khác có chung giá trị hash
- Thuật toán phải chống được kiểu tấn công birthday - có nghĩa kẻ tấn công không thể tìm ra hai thông điệp có chung một giá trị hash
MD4
MD4 là thuật toán hash một chiều được phát triển bởi Ron Rivest. Thuật toán này tạo ra một giá trị hash có độ dài 128 bit. Thuật toán này sử dụng sức mạnh tính toán trong phần mềm và được tối ưu hoá cho bộ vi xử lý.
MD5
MD5 là phiên bản mới của MD4. Thuật toán này vẫn tạo ra giá trị hash 128 bit nhưng phức tạp hơn và khó bị phá hơn so với thuật toán MD4. Thuật toán MD5 bổ sung thêm vòng điều khiển thứ tư để tăng thêm tính phức tạp và độ an toàn cho thuật toán.
MD2
MD2 cũng là thuật toán hash một chiều do Ron Rivest phát triển. Thuật toán này yếu hơn so với hai thuật toán trên và tốc độ tính toán cũng chậm hơn rất nhiều.
SHA
một giá trị hash có độ dài cố định là 160 bit. Giá trị hash này sau đó được đưa vào thuật toán DSA để tạo ra chữ ký điện tử. SHA tương tự như MD4 nhưng nó có thêm một số chức năng và tạo ra một giá trị 160 bit cho phép chống lại kiểu tấn công dạng vét cạn và birthday một cách tốt hơn.
HAVAL
HAVAL là hàm một chiều có độ dài thay đổi và là sự sửa đổi của MD5. Nó xử lý các khối có kích thước lớn gấp hai lần kích thước khối trong MD5, có nghĩa là HAVAL làm việc với các khối 1024 bit.