Trong Crypto, SHA-256 là một trong những thuật ngữ lâu đời áp dụng cho Bitcoin và có tính phát triển đồng hành theo thời gian cùng công nghệ blockchain. Vậy SHA-256 là gì? Hãy cùng DeFiX.Network tìm hiểu trong bài viết sau nhé!
SHA là gì?
Mã hóa SHA có tên đầy đủ là Secure Hash Algorithm hay còn gọi là thuật giải băm an toàn. Đây là tổ hợp 5 thuật giải băm mật được phát triển bởi NSA (National Security Agency) – Cục An ninh Quốc gia Mỹ và được xuất bản thành chuẩn của chính phủ Mỹ bởi NIST (National Institute of Standards and Technology) – Viện Công nghệ và chuẩn quốc gia Mỹ.
Thuật giải SHA đã được chấp nhận bởi FIPS (Federal Information Processing Standards) – Tiêu chuẩn Xử lý Thông tin Liên bang. Mã hóa SHA được dùng để chuyển đổi từ một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi nhưng với xác suất khác biệt cao.
Năm thuật giải SHA chuẩn bao gồm:
- SHA-1: Trả lại kết quả dài 160 bit
- SHA-224: Trả lại kết quả dài 224 bit
- SHA-256: Trả lại kết quả dài 256 bit
- SHA-384: Trả lại kết quả dài 384 bit
- SHA-512: Trả lại kết quả dài 512 bit
SHA-256 là gì?
Trong các thuật toán thì SHA-256 được biết đến rộng rãi hơn nhưng thuật toán còn lại. SHA-256 là thuật toán băm 256 bit dùng để tạo ra các hàm băm riêng biệt và không thể đảo được.
Theo lịch sử thì SHA-256 là nhánh con của SHA-256. Nhưng do được sử dụng nhiều trong mạng lưới Bitcoin nên SHA-256 phổ biến hơn, các tính năng nổi bật của SHA-256 gồm:
Cơ chế đồng thuận Proof of Work sẽ khai thác và sử dụng SHA-256.
SHA-256 còn được sử dụng trong việc tạo địa chỉ Bitcoin giúp tăng bảo mật và an ninh hơn.
Về hình thức hoạt động, SHA-256 tạo ra một hàm băm riêng biệt 256 bit. Một chuỗi băm khi được tạo ra sẽ nhất quán và không thể tính toán trở lại. Do đó, hàm băm sẽ phù hợp cho việc khai thác bằng xác thực, chống làm giả, xác nhận mật khẩu, chữ ký điện tử.
Một số đặc điểm của SHA-256
Mã hóa SHA256 có một số tính năng và đặc điểm nổi bật như sau:
- Độ dài của thông điệp: Độ dài của thông tin trước khi mã hóa phải nhỏ hơn 264 bit
- Độ dài của mã hóa: Độ dài của của thông tin sau khi được mã hóa sẽ luôn có giá trị là 256 bit
- Không thể đảo ngược: Theo thiết kế, mọi hàm băm như SHA256 đều không thể đảo ngược. Bạn không thể có được đoạn thông tin trước khi mã hóa một khi bạn đã tiến hành mã hoá SHA256
Ứng dụng của SHA-256
Hiện nay, mã hóa SHA256 đang được ứng dụng rất đa dạng. Kể từ năm 2008, hàm băm SHA đã được STECH sử dụng làm mã xác thực trong các gói thông tin trao đổi, làm khóa bản quyền cho một số phần mềm. Phổ biến nhất có thể kể đến một số giao thức bảo mật an toàn trên mạng internet hiện nay đang sử dụng mã hóa SHA256 như:
- Digital Signature Verification (Xác minh chữ ký số): Bản chất của chữ ký điện tử dựa trên phương pháp mã hóa bất đối xứng để xác minh tính xác thực của một tài liệu hay một tệp nào đó
- Password Hashing (Băm mật khẩu): Đối với nền tảng website, các dữ liệu mật khẩu của người dùng tồn tại ở định dạng băm vì 2 lợi ích: Tăng cường bảo mật và giảm tải cho cơ sở dữ liệu trung tâm
- SSL Handshake (Lớp bảo mật giữa máy khác và máy chủ): SSL Handshake là một phần quan trọng của các phiên duyệt web và được thực hiện bằng cách sử dụng các hàm băm SHA, trong đó có hàm SHA256. Bản chất của lớp bảo mật này là trình web của bạn và các máy chủ web đồng ý về khóa mã hóa và xác thực băm để đảm bảo kết nối an toàn
- Integrity Check (Kiểm tra tính toàn vẹn): Việc xác minh tính toàn vẹn của một tệp thường được thực hiện trên các thuật toán SHA256 và thuật toán MD5. Những thuật toán này sẽ giúp duy trì chức năng giá trị của tệp một cách đầy đủ, đồng thời đảm bảo chúng không bị thay đổi khi thực hiện chuyển tiếp
- Xác thực giao dịch và lưu trữ dạng chuỗi Bitcoin: Đây là một trong những ứng dụng nổi tiếng, được biết đến nhiều nhất của SHA256 khi được sử dụng để xác thực các giao dịch và lưu trữ dạng chuỗi các sự kiện theo thời gian, được liên kết với nhau bởi các mã xác thực blockchain.
Liệu hoàn toàn có thể tiến công Brute Force vào SHA-256 không?
Cách dùng phổ biến của mã một chiều SHA là tạo ra chữ ký của thông điệp bằng cách tính hàm băm của chuỗi ghép từ thông điệp cần xác thực với một khóa bí mật, khóa bí mật nói chung là rất dài:
Chữ ký = SHA256(“thông điệp cần xác thực”, “khóa bí mật”) = hash
Với tính chất của mã một chiều, chữ ký có thể được công khai, thông điệp có thể công khai, nhưng thành phần khóa bí mật không thể truy ngược lại được vì suy ngược lại toàn văn dữ liệu gốc từ chữ ký là không thể.
Cách duy nhất để truy ngược lại toàn văn dữ liệu gốc là thử mọi khả năng có thể của khóa bí mật và cách khóa được ghép với thông điệp cần xác thực, điều này cũng đồng nghĩa với với việc kiểm tra mọi khả năng của đầu vào để tìm ra chữ ký giống với chữ ký đã biết, phương pháp này gọi là Brute Force.
Vì mỗi thay đổi rất nhỏ ở dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm hoàn toàn khác với xác suất rất cao không thể dự báo trước, nên việc kiểm tra này chính là kiểm tra trên toàn bộ không gian của giá trị băm, tức là Brute Force với 2256 khả năng, tương ứng với:
2256 = 115792089237316195423570985008687907853269984665640564039457584007913129639936 > 1078
Giả định mỗi máy tính cá nhân có tốc độ 4Ghz có thể xử lý 1.4G phép tính băm mỗi giây, 1.4×109 hash/s, Trái Đất có 7 tỷ người mỗi người có một máy tính như vậy, sức mạnh tính toán của toàn thể Trái Đất là: 1019 hash/s
Trong dải Ngân Hà (Milkyway) có khoảng 100 tỷ ngôi sao, giả định rằng 1% trong số đó có nền văn minh như Trái Đất thì sức mạnh tính hash của Ngân Hà là: 1019hash/s x 1% x 100×109 = 1028hash/s
Vũ trụ khả kiến được cho là có 100 tỷ thiên hà, và vũ trụ toàn thể được cho là lớn gấp 10 lần như vậy, thì sức mạnh tính hash của vũ trụ toàn thể là: 1028 hash/s x 100×109 x 10 = 1042 hash/s
Với tốc độ tính toán này, để kiểm tra toàn bộ 1078 trường hợp, vũ trụ toàn thể cần đến 1036 giây ≈ 3.17×1028 năm, hay ≈ 2.4×1018 lần tuổi của chính vũ trụ, tức là việc này không khả thi.
Chính vì vậy SHA-256 được cho là rất an toàn.
Kết luận
Trên đây là những thông tin cơ bản về thuật toán băm SHA256 hay còn gọi là mã hóa SHA256 cùng với những ứng dụng của nó. Với tính năng an toàn cao, khả năng bảo mật gần như chắc chắn, người dùng có thể hoàn toàn an tâm về dữ liệu được mã hóa thông qua thuật toán SHA.
Hãy theo dõi DeFiX.Network để cập nhật thêm nhiều thông tin thú vị, mới nhất về thị trường trường tài chính và tiền điện tử nhé. Hẹn gặp lại các bạn trong các bài chia sẻ, hướng dẫn tiếp theo. Chúc các bạn đầu tư thành công!