Tin học
Hàm Băm
Hàm băm là một cơ chế mã hóa đầu vào là văn bản thường và đầu ra được mã hóa chiều dài-cố định được gọi là mã khóa thông điệp (message digest). Hàm băm được dùng trong chữ ký số và những việc khác như được mô tả ngay dưới đây. Một đặc tính cơ bản của hàm băm là việc tạo mã khóa thông điệp rất dễ nhưng việc phá mã để chuyển ngược mã thông điệp thành bản rõ ban đầu rất khó nếu không nói là không thể.
Lý do để sử dụng hàm băm là: Mỗi người có một dấu tay duy nhất để phân biệt, người ta cũng muốn dùng hàm băm để tạo ra giá trị duy nhất cho mỗi thông điệp. Ví dụ, giả sử bạn muốn gởi thông điệp sau đến người môi giới chứng khoán của bạn: “mua 500 cổ phần của ABC”.
Trước khi gởi thông điệp, bạn cho nó qua một hàm băm để tạo ra một mã khóa thông điệp (giá trị băm). Bạn gởi cả thông điệp và giá trị băm đến người môi giới chứng khoán của bạn. Docạ đường, một kẻ gian chặn thông điệp và thay đổi số cổ phiếu thành 5,000. Khi người môi giới chứng khoán của bạn nhận thông điệp, anh ta hay cô ta chạy cùng hàm băm trên thông điệp của bạn. Tuy nhiên, do thông điệp đã bị thay đổi, giá trị băm người môi giới chứng khoán của bạn thu được không giống với cái bạn gởi kèm theo thông điệp, và người môi giới chứng khoán của bạn cho rằng thông điệp là gian lận.
Như đã được đề cập, các hàm băm được dùng để ký các văn bản bằng kỹ thuật số. Một khi mã khóa thông điệp được tạo ra, nó có thể được mã hóa chung với thông điệp ban đầu bằng cách dùng khóa công cộng của người nhận. Bản mã sau cùng có thể được truyền đi một cách an toàn. Chỉ người nhận mới có thể giải mã thông điệp bằng khóa riêng của anh ta hay cô ta. Hàm băm còn có một đặc tính là chúng sinh ra những mã khóa thông điệp rất khó chuyển dạng ngược lại. Do đó, mã khóa thông điệp có thể truyền công khai hầu như không sợ ai đó sẽ dùng nó để chuyển ngược lại thành thông điệp ban đầu.