SHA, viết tắt của Thuật toán băm an toàn, là một nhóm thuật toán băm mật mã được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) để bảo mật dữ liệu của bạn. Vào năm 1995, NIST đã phê duyệt Tiêu chuẩn Hash an toàn, Trin PUB 180-1, bao gồm một thuật toán băm an toàn, SHA-1. Vào năm 2003, một Tiêu chuẩn Chữ ký Hash Bảo mật (SHS) mới, Trin PUB 180-2 đã được phê duyệt, bổ sung ba thuật toán băm có khả năng tạo ra các thông báo lớn hơn, vượt trội so với Trin 180-1. Trin PUB 180-2 chỉ định bốn thuật toán băm an toàn, SHA-1, SHA-256, SHA-384 và SHA-512 - tất cả đều là các hàm lặp, tức là các hàm băm một chiều có thể xử lý tin nhắn trong trạng thái cô đọng đại diện gọi là thông báo Chủ yếu là do tính hiệu quả của chúng, các hàm băm mật mã có tầm quan trọng trung tâm đối với các thuật toán và giao thức mã hóa.
Bài viết này sẽ chủ yếu tập trung vào hai hàm băm mật mã phổ biến được sử dụng hiện nay - SHA-1 và SHA-256. Một phần của Tiêu chuẩn băm an toàn (SHS), SHA-1 là một trong những thuật toán băm sớm nhất thường được các cơ quan chứng nhận SSL sử dụng để ký chứng chỉ. Nó được xuất bản vào năm 1993 với tên SHA nhưng vì lỗi bảo mật, sau đó nó đã được thay thế bằng SHA-1 an toàn hơn. Đây là một trong những hàm băm mật mã được sử dụng và triển khai rộng rãi nhất. SHA-256 có cùng cấu trúc cơ bản và sử dụng cùng loại hoạt động nhị phân số học và logic số học như SHA-1. SHA-256 thuộc họ SHA-2 có các hàm băm tương tự với kích thước khối khác nhau, còn lại là SHA-512. Đây là một hàm băm thường được sử dụng trong Blockchain.
SHA-1 là một trong những hàm băm mật mã được sử dụng và triển khai rộng rãi nhất thường được các cơ quan chứng nhận SSL sử dụng để ký chứng chỉ. Nó là một trong những thuật toán băm lâu đời nhất được chỉ định sử dụng bởi chính phủ liên bang Hoa Kỳ. Nó được phát triển bởi NIST và NSA. SHA-1 đã được xuất bản theo tiêu chuẩn của chính phủ liên bang vào năm 1995 dưới dạng cập nhật cho SHA, được xuất bản vào năm 1993. Nó lấy một đầu vào và tạo ra giá trị băm 160 bit (20 byte) được gọi là thông báo tiêu biểu, thường được biểu thị bởi một chuỗi thập lục phân dài 40 chữ số. SHA-1 được thiết kế sao cho không thể tính toán được một tin nhắn tương ứng với một thông báo đã cho hoặc để tìm hai thông điệp khác nhau tạo ra cùng một thông báo.
SHA-256 là hàm băm mật mã mới hơn, an toàn hơn, được đề xuất vào năm 2000 như là một thế hệ hàm SHA mới và được áp dụng làm tiêu chuẩn Trin vào năm 2002. Thuật toán SHA-256 tạo ra giá trị băm 256 bit từ 512-bit được đệm khối tin nhắn và kích thước tin nhắn ban đầu lên tới 264-1 bit. SHA-256 luôn tính toán hàm băm 256 bit để bảo mật, nhưng kết quả này có thể được cắt bớt để in và lưu trữ 196 hoặc 128 bit. Do đó, SHA-256 bị cắt cụt mang lại lợi ích đáng kể cho khả năng sử dụng của con người trong các trích dẫn được in và cải thiện đáng kể tính bảo mật, với chi phí giảm hiệu suất nhỏ liên quan đến MD5. Không giống như thuật toán MD5, SHA-256 bị cắt ngắn không phải chịu bất kỳ cuộc tấn công nào đã biết.
- SHA-1 là một trong những hàm băm mật mã được sử dụng và triển khai rộng rãi nhất thường được các cơ quan chứng nhận SSL sử dụng để ký chứng chỉ. Nó là một trong những thuật toán băm lâu đời nhất được chỉ định sử dụng bởi chính phủ liên bang Hoa Kỳ. SHA-256 là một hàm băm mật mã mới hơn, an toàn hơn, được đề xuất vào năm 2000 như là một thế hệ hàm SHA mới và được áp dụng làm tiêu chuẩn Trin vào năm 2002. SHA-256 thuộc họ thuật toán băm mật mã SHA-2 với hàm băm tương tự chức năng nhưng kích thước khối khác nhau, một số khác là SHA-384 và SHA-512.
- SHA-1 là hàm băm 160 bit lấy đầu vào và tạo ra giá trị băm 160 bit (20 byte) được gọi là thông báo, thường được biểu thị bằng chuỗi thập lục phân dài 40 chữ số. SHA-1 được thiết kế sao cho không thể tính toán được việc tìm một tin nhắn tương ứng với một thông báo đã cho hoặc để tìm hai thông điệp khác nhau tạo ra cùng một thông báo. Thuật toán SHA-256 tạo ra giá trị băm 256 bit từ các khối thông báo 512 bit được đệm và kích thước thư gốc lên tới 264-1 bit.
- Với sức mạnh tính toán ngày càng tăng, tính khả thi của việc phá vỡ SHA-1 cũng tăng lên. Nó là một trong những thuật toán băm lâu đời nhất được chỉ định để sử dụng bởi chính phủ liên bang Hoa Kỳ và do kích thước bit nhỏ hơn, nó dễ bị tấn công hơn. Mặc dù SHA-256 có cùng cấu trúc cơ bản và sử dụng cùng loại hoạt động nhị phân số học và logic số học như SHA-1, nhưng nó đã trở thành một phần không thể thiếu trong nhiều ứng dụng. SHA-256 luôn tính toán hàm băm 256 bit để bảo mật, giúp cải thiện đáng kể bảo mật, với chi phí giảm một chút hiệu suất liên quan đến MD5.
Tóm lại, SHA-256 đáng tin cậy và an toàn hơn SHA-1. SHA-256 thuộc họ hàm băm mật mã SHA-2 được thiết kế bởi NSA và thường được sử dụng trong Blockchain. SHA-1 là một trong những hàm băm mật mã sớm nhất thường được các cơ quan chứng nhận SSL sử dụng để ký chứng chỉ. Tuy nhiên, do kích thước bit nhỏ hơn và các lỗ hổng bảo mật, nó đã trở nên dễ bị tấn công hơn theo thời gian, cuối cùng dẫn đến sự mất giá của nó từ các tổ chức phát hành chứng chỉ SSL.