SHA-256 là một trong những hàm băm kế tiếp cho SHA-1 và là một trong những hàm băm mạnh nhất hiện có. SHA-256 không phức tạp hơn nhiều so với mã SHA-1 và chưa bị xâm phạm theo bất kỳ cách nào. Khóa 256 bit làm cho nó trở thành đôi bạn tốt với AES.
Cryptography & Security Võ Lê Huy 2019-10-26 23:41:38

Giới thiệu

Giới thiệu vè SHA-256 và SHA-512, nối tiếp bài viết SHA-1 - Secure Hash Algorithm 1. Cũng như SHA-1 nhằm để mã hóa dữ liệu, SHA-256 và SHA-512 tăng cường hơn khả năng bảo mật.

SHA-256

SHA-256 là một trong những hàm băm kế tiếp cho SHA-1 và là một trong những hàm băm mạnh nhất hiện có. SHA-256 không phức tạp hơn nhiều so với mã SHA-1 và chưa bị xâm phạm theo bất kỳ cách nào. Khóa 256 bit làm cho nó trở thành đôi bạn tốt với AES.

SHA-256 là một thuật toán được mô tả cụ thể của thuật toán SHA -2 như 512 và gần đây là các phiên bản 224 bit, ngoài ra nó còn là sự phát triển thành công từ người tiền nhiệm SHA -1, bản thân SHA -256 là một sự cải tiến của SHA-0. Thuật toán SHA -2 được NSA phát triển để trả lời vấn đề bảo mật của SHA -1. Thuật toán này nhận đầu vào là một thông điệp có độ dài bit tối đa là hai lũy thừa sáu mươi tư và cho ra kết quả checksum có độ dài 256 bit. Có vẻ như SHA -256 đang ngày càng được sử dụng nhiều hơn để thay thế hàm băm MD5 cũ, thậm chí ngay cả SHA-1 cũng có mức độ bảo mật tốt hơn MD5. SHA-256 thực sự là sự thay thế tốt nhất vì sự cân bằng giữa kích thước dữ liệu và mức độ an toàn. Như những chức năng mã hóa khác của họ hàng nhà SHA.

SHA-256 là một phương pháp áp dụng tốt để lưu trữ mật khẩu người dùng, vì nó an toàn hơn MD5 hoặc SHA-1. Ngay cả khi nó an toàn hơn, nó vẫn được cân nhắc sử dụng thêm tùy chọn là Salt để cải thiện an ninh. Salt là một gia vị, một chuỗi mà bạn thêm vào mật khẩu của người dùng để làm cho nó để thêm độ dài dữ liệu và thêm các ký tự đặc biệt để tăng sự phức tạp khi muốn truy ngược nguồn gốc. Điều này sẽ khiến việc phương pháp Bruteforce – vét cạn trở nên khó khăn hơn và rất có thể không tìm ra được thông điệp gốc.

Ví dụ

DỮ LIỆU CHUỖI MÃ HÓA
123456 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
stdio.vn 70c1f8f724f2969f8986c14c0c9a9bfbec6f2eba94dea5638c717c379924b328
Mã hóa SHA-256 cfedbd263269913dbab9cdb797855918bff1678ed3fb38dcd346df076ab0f61d

Dữ liệu trên được tạo từ công cụ mã hóa online SHA-256.

SHA-512

SHA-512 cũng là nằm trong SHA-2, nó có khả năng nhận đầu với với số lương hai lũy thừa một trăm hai mươi tám bit, SHA-512 trải qua nhiều hơn 25% vòng lặp so với SHA-256 vì vậy nó có độ trễ so với SHA-256. Trên bộ xử lý 64 bit, mỗi vòng có cùng số lượng thao tác, nhưng có thể xử lý gấp đôi dữ liệu mỗi vòng, vì các hướng dẫn xử lý các từ 64 bit thay vì các từ 32 bit. SHA-512 có thể nhanh hơn bao nhiêu trong điều kiện tối ưu. Tất nhiên là có phí bộ nhớ, độ trễ chỉ dẫn và các yếu tố khác liên quan; trên bộ xử lý Intel Ivy Bridge, thông báo SHA-512 nhanh hơn 1,54 lần và trên AMD Piledriver nó nhanh hơn 1,48 lần. Đối với các tin dữ liệu cần băm có độ dài nhỏ ít hơn 448 bit SHA-512 sẽ chậm hơn khoảng 1,25 lần.

SHA-512 có tốc độ chỉ bằng 60% SHA-256 nhưng có một lợi thế đó là đôi khi chúng ta muốn một quá trình sinh khóa chậm để kéo dài khóa, điều này thường được sử dụng để giảm thiểu các cuộc tấn công BruceForce và các cuộc tấn công có thể dự đoán trước các khóa yếu như mật khẩu.

Ví dụ

DỮ LIỆU CHUỖI MÃ HÓA
STDIO 75266828354bdf6e828f363c32b7ef003af56c9cf54da625762ca457adfe0159d9045c83aa71792e1cfec00029d41ae27f80e5b3137d9ed47551b6ff9fbb35e8
Password123 804f50ddbaab7f28c933a95c162d019acbf96afde56dba10e4c7dfcfe453dec4bacf5e78b1ddbdc1695a793bcb5d7d409425db4cc3370e71c4965e4ef992e8c4
02031287 0b0b9f4614d151278cf6b3173ca8cd74cd2e5e3eb6c2f34e4bde990a41226a695247e7729ed41ed08c5b6e474f3da817ec7701ad6544486d5c7b43712259f571

Dữ liệu trên được tạo từ công cụ mã hóa online SHA-512.