34 lượt xem

Thuật toán SHA-256 là gì?

Sha256 là gì

SHA-256 là một trong những hàm băm mạnh nhất hiện nay và được áp dụng vào hệ thống tiền ảo Bitcoin. Trong bài viết này hãy cùng chúng tôi tìm hiểu những điều thú vị về giải thuật này nhé.

Mã hoá SHA là gì?

SHA (Secure Hash Algorithm) 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à Thuật toán băm bảo mật 256 bit và dùng để 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ỆUCHUỖI MÃ HÓABitcoin Vietnam Newsf3ad777234a24bfacbd8123d6ea0a1961e8539b74b5fa8f2f371ea2cf7b21215cryptoviet.comcbab80bf094869581bb45557b64a8db0b8bab8c8817b5facd0c975d9a5a47805

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

Ứ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

Liệu có thể tấn công BruteForce vào SHA-256 không?

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

Liệu có thể tấn công BruteForce vào SHA-256 không?

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.

CẢNH BÁO: Đầu tư vào các sản phẩm tài chính tiềm ẩn rất nhiều rủi ro mà có thể không phù hợp với một số nhà đầu tư. Do đó hãy cân nhắc kỹ lưỡng và làm chủ bản thân trước khi đưa ra bất kỳ quyết định nào cấu thành từ những nội dung tham khảo tại CryptoViet.com.