SHA256 là gì?

SHA-256 là một trong những hàm băm mạnh nhất hiện nay được dùng trong mạng blockchain của Bitcoin. Trong bài viết này, hãy cùng Beat Tiền Ảo tìm hiểu về thuật toán SHA256 này nhé.

Mã hoá SHA là gì?

SHA là viết tắt của từ Secure Hash Algorithm. SHA bao gồm 5 thuật toán được chấp nhận bởi FIPS – Tiêu chuẩn Xử lý Thông tin Liên bang, dùng để chuyển 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 với xác suất khác biệt cao. 5 thuật toá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)

Những thuật giải này được gọi là “an toàn” bởi vì, theo nguyên văn của chuẩn mực FIPS 180-2 phát hành ngày 1/8/2002:

Đối với một giá trị nhất định được tạo nên bởi một trong những thuật toán SHA, việc tính toán là không khả thi để:

  1. Tìm một thông điệp tương ứng với thông điệp đã được mã hóa
  2. Tìm được hai đoạn dữ liệu khác nhau có cùng kết quả băm.

Bất cứ thay đổi nào trên đoạn 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.

SHA-256 là gì?

SHA-256 là viết tắt của Secure Hash Algorithm 256-bit (Thuật toán băm bảo mật 256 bit) và được sử dụng để bảo mật bằng mật mã.

Thuật toán băm mật mã tạo ra các hàm băm không thể đảo ngược và duy nhất. Số lượng hàm băm có thể có càng lớn, thì xác suất để hai giá trị sẽ tạo ra cùng một giá trị băm càng nhỏ.

Ví dụ:

DỮ LIỆU CHUỖI MÃ HÓA
beattienao.com e7bd1821b7e0d231f27b515863b56c854e9bc79de2c5477f8da4dc15ba3db94b
Beat Tien Ao 6021dc608223bb7a305970bf603b190d23859bdb21d0c3f1a6ac4f4e7007e8f2

 

Bạn có thể mã hóa SHA-256 online trên nhiều trang web sẵn có nhé.

SHA-256 là một nhánh của hàm băm mật mã SHA-2 được sử dụng trong nhiều phần khác nhau của mạng Bitcoin:

  • Khai thác sử dụng SHA-256 là thuật toán Proof of Work.
  • SHA-256 được sử dụng trong việc tạo ra các địa chỉ bitcoin để cải thiện an ninh và bảo mật.

Thuật toán SHA-256 tạo ra một mã băm có cố định 256-bit (32-byte) gần như duy nhất. Một chuỗi băm được tạo ra không thể được tính toán trở lại. Điều này làm cho nó phù hợp để xác nhận mật khẩu, thách thức xác thực hàm băm, chống giả mạo, chữ ký số.

SHA-256 là một trong những hàm băm kế tiếp đối sau SHA-1 và là một trong những hàm băm mạnh nhất hiện tại.

Ứng dụng của SHA-256 là gì

Ứng dụng nổi tiếng nhất của SHA phải kể đến là hệ thống Tiền tệ Bitcoin, một hệ thống giao dịch tiền tệ phân tán trên mạng internet sử dụng mã SHA-256 để xác thực các giao dịch và lưu trữ dạng chuỗi các sự kiện lịch sử theo thời gian được liên kết với nhau bởi các mã xác thực BlockChain.

Liệu có thể tấ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à BruteForce 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.4x109hash/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à: 1019hash/s

thuật toán SHA 256 là gì
thuật toán SHA 256 là gì

 

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

tìm hiểu SHA 256 là gì
tìm hiểu SHA 256 là gì

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à: 1028hash/s x 100×109 x 10 = 1042hash/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.

Trên đây là bài viết SHA256 là gì. Chúc các bạn có thêm nhiều kiến thức thú vị. Bạn có thể tham khảo thêm tại wikipedia.org/SHA

Vote 5 sao nhé!

guest
0 Góp ý
Inline Feedbacks
View all comments