Nếu bạn đã nghe nói về Thuật toán băm an toàn, hoặc SHA, trong nhiều dạng của nó, thì bạn phải biết thuật toán băm đã tồn tại ở nhiều dạng ít nhất là từ những năm 1950. Trước đây, thuật toán băm được giới hạn ở tính toàn vẹn dữ liệu thô sơ và xác thực người dùng, nhưng với sự gia tăng nhanh chóng của những kẻ tấn công tìm cách khai thác thông tin liên lạc điện tử, vai trò của thuật toán băm đã thay đổi. Ngày nay, các thuật toán băm được tích hợp vào các giao thức khác như giao thức VPN, chữ ký số, phân phối phần mềm và kiểm soát giấy phép, tính toàn vẹn của hệ thống tệp cơ sở dữ liệu, phát hiện sửa đổi tệp trang web, chỉ kể tên một số. Điều đó đang được nói, SHA-1 và SHA-2 là thuật toán băm an toàn (SHA) thường được sử dụng bởi nhiều hệ điều hành để mã hóa mật khẩu.
SHA-1 và SHA-2 là các thuật toán băm an toàn theo yêu cầu của pháp luật để sử dụng trong một số ứng dụng của Chính phủ Hoa Kỳ, cùng với việc sử dụng trong các thuật toán và giao thức mã hóa khác, để bảo vệ thông tin không được phân loại nhạy cảm. SHA-2 là sự kế thừa tiềm năng của SHA-1 và bao gồm một số thay đổi đáng kể so với người tiền nhiệm của nó và bao gồm bốn hàm băm với các kích cỡ tiêu hóa khác nhau: SHA-224, SHA-256, SHA-384 và SHA-512. SHA-2 được cho là mạnh mẽ và an toàn hơn đáng kể và không phải chịu các lỗ hổng bảo mật tương tự như SHA-1. Mặc dù, SHA-2 mang một số điểm tương đồng với thuật toán SHA-1, nhưng nó tạo ra hàm băm dài hơn. Chúng ta hãy xem hai thuật toán băm để xem cái nào an toàn hơn và mạnh hơn.
SHA-1 được sử dụng rộng rãi nhất trong các hàm băm SHA hiện có và được sử dụng trong một số ứng dụng và giao thức bảo mật được triển khai rộng rãi. Đó là một thuật toán bảo mật máy tính mật mã được tạo bởi Cơ quan An ninh Quốc gia (NSA) vào năm 1995 và được NIST xuất bản dưới dạng Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ. SHA-1 tạo ra một thông điệp có độ dài gần như duy nhất <264 trong khối 512 bit. Điều này có nghĩa là nó xử lý các khối 512 bit theo thứ tự khi tính toán thông báo. SHA-1 tạo ra thông báo 160 bit. Thuật toán này dựa trên các nguyên tắc tương tự như các nguyên tắc được Ronald L. Rivest của MIT sử dụng trong thiết kế thuật toán băm MD4 và MD5 vào đầu những năm 1990. SHA-1 cũng được sử dụng trong các hệ thống kiểm soát sửa đổi phân tán như Git, Monotone và Mercurial.
SHA-2 là một tập hợp các hàm băm mật mã để thay thế thuật toán SHA-1. Tiêu chuẩn NIST SHA-2 được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ và được xuất bản vào năm 2001. Họ hàm băm SHA-2 phục vụ cùng một kết quả như SHA-1, nhưng có mức độ bảo mật cao hơn so với người tiền nhiệm. Nó được thiết kế để khắc phục các lỗ hổng bảo mật trong thuật toán SHA-1. SHA-2 là một họ gồm bốn hàm băm với các kích cỡ tiêu hóa khác nhau: SHA-224, SHA-256, SHA-384 và SHA-512. Giống như SHA-1, tất cả các chức năng của gia đình SHA-2 đều tuân theo cấu trúc MD. SHA-256 và SHA-512 là hai trường hợp chính của họ, hoạt động tương ứng với các từ 32 bit và 64 bit, và do đó sử dụng các thuật toán khác nhau. Nó được sử dụng rộng rãi để xác nhận và ký các chứng chỉ và tài liệu bảo mật kỹ thuật số.
- Cả SHA-1 và SHA-2 đều thuộc họ hàm băm mật mã SHA được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ và được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST). Cả hai đều là các thuật toán băm an toàn theo yêu cầu của pháp luật để sử dụng trong các ứng dụng Chính phủ Hoa Kỳ nhất định, cùng với việc sử dụng trong các thuật toán và giao thức mã hóa khác. Tuy nhiên, SHA-2 là một thuật toán băm an toàn hơn và là sự kế thừa cho thuật toán băm SHA-1 không dùng nữa. Thuật toán SHA-1 không còn an toàn và các chứng chỉ và trung gian SHA-1 không được công nhận nữa.
- SHA-1 tạo ra một thông điệp có độ dài gần như duy nhất <264 trong khối 512 bit. Nó xử lý các khối 512 bit theo thứ tự khi tính toán thông báo, thường được hiển thị dưới dạng số thập lục phân dài 40 chữ số. Và nó tạo ra một thông báo 160 bit và tìm cách khắc phục các rủi ro bảo mật được tìm thấy trong SHA-0. SHA-2, mặt khác, một nhóm bốn hàm băm với các kích cỡ tiêu hóa khác nhau: SHA-224, SHA-256, SHA-384 và SHA-512. Nó xử lý các thông điệp trong các khối 512 bit cho các hàm băm 224, 256 và 384 và 1.024 khối cho thuật toán SHA-512.
- SHA-1 là thuật toán băm chính được sử dụng rộng rãi từ năm 2011 đến 2015, cho đến khi lỗ hổng bảo mật trong thuật toán nhắc nhở đánh giá lại. SHA-2 được thiết kế để khắc phục các lỗ hổng trong thuật toán SHA-1. Mặc dù, SHA-2 có một số điểm tương đồng với thuật toán SHA-1, nhưng nó tạo ra hàm băm dài hơn và mạnh hơn và an toàn hơn đáng kể so với SHA-1. Mặc dù cả hai thuật toán đều dựa trên cấu trúc Merkle-Damgård, SHA-2 có một bộ thuật toán SHA bổ sung để phù hợp với mức độ bảo mật cao hơn của các phím dài hơn. Ngoài ra, SHA-2 có nhiều chứng chỉ được cải tiến và bảo mật được thiết kế đặc biệt để bảo vệ hệ thống của bạn khỏi các vi phạm tiềm năng.
Các thuật toán băm đã tồn tại ở nhiều dạng từ những năm 1950. Với giá trị gia tăng của các tương tác dữ liệu và các cuộc tấn công mạng gia tăng, các yêu cầu đối với thuật toán băm đã thay đổi. Khi đã bị giới hạn ở tính toàn vẹn dữ liệu thô sơ và xác thực người dùng, thuật toán băm hiện được sử dụng để tạo ra các thông báo và chữ ký số, do đó thắt chặt các liên kết của dữ liệu và người khởi tạo dữ liệu. Sau khi bảo mật của SHA-1 bị xâm phạm, thế giới kỹ thuật số đã chuyển sang thuật toán băm SHA-2 an toàn hơn, mạnh mẽ hơn. SHA-2 là một tập hợp các thuật toán băm bổ sung để phù hợp với mức độ bảo mật cao hơn của các phím dài hơn.