Bảng thuật ngữ

Hàm băm mật mã (Cryptographic Hash Function)

Moderate

Hàm băm mật mã tạo ra giá trị băm có kích thước cố định từ đầu vào giao dịch có kích thước thay đổi.

Hàm băm mật mã là gì?

Hàm băm mật mã là một thuật toán, tức là một chuỗi các hành động cụ thể có thể lặp lại, có thể được sử dụng để chuyển đổi một chuỗi dữ liệu tùy ý có độ dài thay đổi thành một chuỗi có độ dài và định dạng cố định, được gọi là hàm băm.

Một trong những ví dụ đơn giản nhất về hàm băm là cộng các chữ số trong một số cho đến khi còn lại một chữ số với đầu ra một chữ số. Ví dụ: nếu đầu vào là 49, thì cộng 4 và 9 sẽ được 13, các chữ số 1 và 3 sau đó được cộng lại để cho đầu ra là 4. Bất kể độ dài của số đầu vào, đầu ra sẽ luôn là một số có một chữ số.

Tuy nhiên, đó không phải là một thuật toán tốt, bởi vì, để thực hiện tốt các chức năng của mình, một hàm băm cần có một số đặc điểm:

  • Sẽ dễ dàng tính toán đầu ra cho bất kỳ đầu vào cụ thể nào, nhưng gần như không thể đảo ngược quy trình và tính toán đầu vào của một đầu ra đã biết;
  • Tính tất định — đưa một đầu vào cụ thể vào thuật toán phải luôn tạo ra cùng một đầu ra;
  • Khả năng chống va chạm — hai đầu vào khác nhau rất khó có thể tạo ra cùng một đầu ra;
  • Hiệu ứng tuyết lở - thay đổi ngay cả một bit dữ liệu trong đầu vào sẽ dẫn đến kết quả đầu ra cực kỳ khác biệt.

Các hàm băm được áp dụng trong nhiều trường hợp sử dụng, chẳng hạn như tổng kiểm tra để xác minh tính toàn vẹn của các tệp máy tính sau khi chúng được truyền qua vùng lưu trữ kéo dài hoặc trong các hàm ngẫu nhiên.

Chúng cũng là một thành phần quan trọng trong việc khai thác tiền điện tử bằng chứng công việc, chẳng hạn như Bitcoin (BTC), sử dụng hàm băm SHA-256. Để thêm một khối mới vào blockchain và nhận phần thưởng là Bitcoin mới khai thác, trước tiên, các thợ đào cần tạo ra một giá trị băm dưới một ngưỡng nhất định, được gọi là mục tiêu.

Thực tế là các hàm băm là giả ngẫu nhiên và không thể dự đoán đầu ra của bất kỳ đầu vào nào trước khi thực sự chạy nó thông qua hàm băm đảm bảo rằng các thợ đào không thể in Bitcoin mới và cần phải chứng minh công việc họ đã thực hiện.