Tổng quan Cryptography – Symmetric, Asymmetric, Hashing, Encoding

Cryptography (mật mã học) là nền tảng của bảo mật hiện đại. Từ việc bạn đăng nhập Facebook, gửi tin nhắn Zalo, thanh toán ngân hàng, tới HTTPS khi truy cập trang web – tất cả đều dựa trên cryptography. Nhưng nhiều dev mới dễ nhầm lẫn giữa các khái niệm như hashing, encoding, encryption, symmetric, asymmetric

Tổng quan Cryptography – Symmetric, Asymmetric, Hashing, Encoding

Bài viết này giúp bạn nắm tổng quan toàn bộ “bản đồ cryptography” và hiểu được khi nào dùng kỹ thuật nào. Đây cũng là bài Hub mở cho series “Thuật toán mã hóa & bảo mật cơ bản”.

Cryptography là gì?

Cryptography là tập hợp các kỹ thuật giúp:

  • Giữ bí mật dữ liệu (confidentiality)
  • Xác thực người gửi (authentication)
  • Đảm bảo toàn vẹn (integrity)
  • Không thể chối bỏ (non-repudiation)

Nói đơn giản: giúp dữ liệu an toànđáng tin.

4 nhóm kỹ thuật chính trong Cryptography

Trong thực tế, ta phân cryptography thành 4 nhóm lớn:

  1. Symmetric Encryption – Mã hóa đối xứng
  2. Asymmetric Encryption – Mã hóa bất đối xứng
  3. Hashing – Hàm băm một chiều
  4. Encoding – Mã hóa biểu diễn (không phải bảo mật)

Dưới đây là sự khác nhau của từng nhóm – cực dễ hiểu.

1. Symmetric Encryption – Mã hóa đối xứng

Chỉ dùng 1 key duy nhất cho cả mã hóa và giải mã.

plaintext + key → ciphertext
ciphertext + key → plaintext

Ưu điểm:

  • Nhanh, nhẹ → phù hợp dữ liệu lớn
  • Được dùng trong AES, WiFi, VPN, HTTPS (sau handshake)

Nhược điểm:

  • Phải chia sẻ key bí mật cho cả hai bên → khó khăn khi gửi key qua mạng

Ví dụ thuật toán:

  • AES (phổ biến nhất hiện nay)
  • ChaCha20
  • DES / 3DES (đã cũ)

2. Asymmetric Encryption – Mã hóa bất đối xứng

Dùng 2 key: Public Key và Private Key.

  • Public key: chia cho mọi người
  • Private key: giữ tuyệt mật

Nguyên tắc:

Public key → dùng để mã hóa
Private key → dùng để giải mã

Hoặc dùng để ký số:

Private key → ký
Public key → kiểm tra chữ ký

Ứng dụng:

  • HTTPS handshake (RSA/ECDSA)
  • SSH
  • Chữ ký số
  • Blockchain (ECDSA)

Nhược điểm:

  • Chậm hơn symmetric rất nhiều

Ví dụ thuật toán:

  • RSA
  • ECC / ECDSA

3. Hashing – Hàm băm một chiều

Hashing không thể đảo ngược. Không nhằm mục đích mã hóa – mà để tạo một “dấu vân tay” cho dữ liệu.

Tính chất:

  • Đầu vào tùy ý → đầu ra cố định
  • Không thể giải ngược
  • Thay đổi 1 ký tự → hash thay đổi toàn bộ

Ứng dụng:

  • Lưu mật khẩu (bcrypt/argon2)
  • Kiểm tra tính toàn vẹn file
  • Tạo ID ngắn gọn
  • Token, digital signature

Ví dụ:

  • SHA-256
  • SHA-1 (đã yếu)
  • MD5 (đã yếu)

4. Encoding – Mã hóa biểu diễn (không phải bảo mật)

Encoding chỉ biến đổi dữ liệu → dạng text an toàn hơn khi truyền tải.

Không hề bảo mật!

  • Ai cũng decode được
  • Không cần key

Ví dụ:

  • Base64
  • URL-encode
  • HTML entities (<, >…)

Dùng trong:

  • API, JSON, web token
  • Nhúng ảnh vào CSS/HTML
  • Email MIME

Bảng so sánh nhanh

Kỹ thuật Mục đích Đảo ngược? Dùng key?
Symmetric Mã hóa 1 key
Asymmetric Mã hóa / chữ ký số 2 key (public/private)
Hashing Toàn vẹn / mật khẩu Không Không
Encoding Biểu diễn dữ liệu Không

Ví dụ thực tế trong HTTPS

HTTPS là “combo” của 3 kỹ thuật:

  • Asymmetric để trao đổi key
  • Symmetric (AES) để mã hóa nội dung
  • Hashing (HMAC) để đảm bảo toàn vẹn

Vì sao? Vì:

  • Asymmetric → bảo mật khi chia sẻ key
  • Symmetric → nhanh
  • Hashing → kiểm tra dữ liệu bị sửa

Đây là ví dụ điển hình cho việc dùng nhiều kỹ thuật cùng lúc.

Kết luận

Cryptography là một hệ sinh thái lớn, nhưng chỉ cần nắm 4 nhóm chính là bạn đã hiểu 80% ứng dụng thực tế:

  • Symmetric – Mã hóa nhanh (AES)
  • Asymmetric – Chia sẻ key, ký số (RSA/ECC)
  • Hashing – Toàn vẹn & mật khẩu (SHA-256, bcrypt)
  • Encoding – Truyền dữ liệu (Base64)

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...