Mặc dù bạn có thể không thấy trực tiếp, nhưng phần lớn dữ liệu bay lượn trong không gian kỹ thuật số được chuyển đổi hoặc mã hóa thành các dạng khác nhau. Hai hoạt động mật mã học quan trọng trên bất kỳ thiết bị tính toán nào là hashing (băm) và encryption (mã hóa).
Nhưng hai hoạt động này hoạt động chính xác như thế nào? Và hashing và encryption khác nhau như thế nào?
Hashing (Băm) Là Gì?
Hashing là quá trình mật mã học một chiều liên quan đến việc chuyển đổi một khóa cho trước (hoặc chuỗi ký tự) thành một giá trị khác.
Hashing được thực hiện vì nhiều lý do, thứ nhất là xác thực tính xác thực của các loại dữ liệu đầu vào khác nhau. Ngoài ra, hashing có thể dùng trong hệ thống xác thực để dữ liệu nhạy cảm không được lưu trữ trên thiết bị dưới dạng văn bản thuần túy (plaintext).
Quá trình hashing yêu cầu một hàm băm (hash function) để hoạt động. Hàm băm có thể ở nhiều dạng khác nhau nhưng thường dùng để ánh xạ dữ liệu kích thước ngẫu nhiên thành các giá trị cố định. Đây là thuật toán toán học cần thiết để hashing diễn ra. Nó đưa các mảnh dữ liệu tùy ý vào các bảng đặt trước hoặc cấu trúc dữ liệu tương tự.
Kết quả của hashing gọi là hash (giá trị băm). Hash thường gồm chuỗi ký tự ngắn hơn dữ liệu gốc trước khi băm. Hash hình thành trong quá trình băm thường được xác định bởi hàm băm.
Vì hashing là một chiều, nó hoàn toàn không thể đảo ngược. Vì vậy, dữ liệu không thể biến đổi ngược về định dạng gốc sau khi đã băm. Đây là lý do hashing thường không dùng để lưu mật khẩu hoặc dữ liệu tương tự, vì thông tin trở nên vĩnh viễn không thể giải mã sau khi chuyển đổi. Nó phù hợp hơn để xác thực tài liệu hoặc tệp tin.
Hashing được dùng trên blockchain vì lý do bảo mật. Việc tạo hash trên các blockchain khiến kẻ tấn công gần như không thể xâm nhập mạng và gây hại.
Vậy encryption có thể nói những điều tương tự, hay nó khác biệt hoàn toàn so với hashing?
Encryption (Mã Hóa) Là Gì?
Bạn có thể đã nghe về encryption, vì đây là thuật ngữ công ty VPN dùng để mô tả cách họ xử lý lưu lượng internet của bạn. Nhưng encryption có phạm vi ứng dụng rộng lớn vượt ra khỏi VPN, và quan trọng là hiểu cách nó hoạt động để biết thông tin nhạy cảm của bạn được xử lý như thế nào.
Thực tế, bạn đang dùng encryption, có thể không nhận ra...
Encryption là quá trình mật mã học hai chiều làm xáo trộn dữ liệu và làm cho nó không thể hiểu được đối với bất kỳ ai, trừ các bên được ủy quyền. Dữ liệu được chuyển từ văn bản thuần túy (plaintext) thành văn bản mã (ciphertext), bảo vệ nó khỏi sử dụng độc hại.
Người dùng thậm chí có thể mã hóa dữ liệu của mình để giữ an toàn.
Vì encryption có thể đảo ngược, bất kỳ bên được ủy quyền nào truy cập dữ liệu đã mã hóa có thể dùng khóa mã hóa (encryption key) hoặc khóa nhị phân (binary key - một thuật toán toán học) để giải mã ngược về plaintext.
Giống như hashing, encryption cần một thuật toán để xáo trộn dữ liệu ban đầu. Các mức độ mã hóa khác nhau có thể dùng, tất cả có kích thước bit khác nhau. Khi hacker trở nên tinh vi hơn, số bit cao hơn cần thiết để làm cho quá trình bẻ khóa khó khăn hơn.
Mặc dù encryption trước đây chỉ dùng 40 bit左右, encryption 128-bit hiện dùng trong hầu hết quy trình tiêu chuẩn, trong khi cơ quan chính phủ thường dùng encryption 256-bit. Cũng có nhiều loại mã hóa khác tùy السيناريو, bao gồm hybrid, symmetric, và public-key encryption (mã hóa khóa công khai).
Mã hóa khóa công khai, ví dụ, liên quan đến việc làm cho một khóa mã hóa riêng tư và một khóa công khai. Nó còn gọi là mã hóa bất đối xứng. Dữ liệu được mã hóa với khóa công khai chỉ có thể giải mã với khóa riêng tư, và dữ liệu mã hóa với khóa riêng tư chỉ giải mã được với khóa công khai.
Loại mã hóa này dùng trong HTTPS (Hypertext Transfer Protocol Secure) để tăng mức bảo mật duyệt web.
Encryption Và Hashing Đóng Vai Trò Lớn Trong Tin Học
Mặc dù hashing và encryption khác nhau ở nhiều mặt, cả hai thực sự là không thể thiếu trong cách thiết bị và hệ thống công nghệ hàng ngày hoạt động. Dù mật khẩu cần xáo trộn, hay mạng cần bảo mật, hashing và encryption là các giao thức tuyệt vời đã hỗ trợ bảo mật kỹ thuật số hàng thập kỷ.