Mã hóa bất đối xứng và hai thuật toán nổi tiếng RSA và ECDSA
mã hóa bất đối xứng và hai thuật toán nổi tiếng RSA và ECDSA nhé.
1. Mã hóa bất đối xứng là gì?
-
Mã hóa bất đối xứng (Asymmetric Cryptography) sử dụng cặp khóa:
-
Khóa công khai (Public key): có thể chia sẻ rộng rãi.
-
Khóa riêng tư (Private key): giữ bí mật tuyệt đối.
-
-
Cặp khóa này liên hệ toán học với nhau: những gì mã hóa bằng một khóa thì chỉ có thể giải mã bằng khóa kia.
👉 Điều này khác với mã hóa đối xứng (symmetric), nơi một khóa duy nhất vừa mã hóa vừa giải mã.
2. Nguyên lý hoạt động
-
Mã hóa & Giải mã
-
Người gửi dùng public key để mã hóa.
-
Người nhận dùng private key để giải mã.
-
-
Chữ ký số (Digital Signature)
-
Người gửi dùng private key để ký dữ liệu.
-
Người nhận dùng public key để kiểm chứng.
-
3. RSA (Rivest–Shamir–Adleman)
-
Nguyên lý: dựa trên độ khó của bài toán phân tích số nguyên lớn (prime factorization).
-
Quy trình:
-
Tạo cặp số nguyên tố lớn p,q tính n=p×q .
-
Tính hàm Euler φ(n)\varphi(n).
-
Chọn khóa công khai e, tìm khóa riêng tư dd sao cho:
(e×d)mod φ(n)=1. -
Mã hóa: C=Memod nC = M^e .
-
Giải mã: M=Cdmod n.
-
-
Ưu điểm: Đơn giản, được chuẩn hóa, dễ triển khai.
-
Nhược điểm:
-
Cần khóa rất lớn (2048–4096 bit) mới an toàn.
-
Tốc độ chậm, không phù hợp cho IoT hoặc hệ thống cần tốc độ cao.
-
4. ECDSA (Elliptic Curve Digital Signature Algorithm)
-
Nguyên lý: dựa trên độ khó của bài toán logarit rời rạc trên đường cong elliptic (Elliptic Curve Discrete Logarithm Problem – ECDLP).
-
Ứng dụng chính: tạo chữ ký số trong Bitcoin, Ethereum, blockchain.
-
Quy trình cơ bản:
-
Người dùng có khóa riêng tư dd, khóa công khai Q=d×G sinh trên đường cong elliptic).
-
Để ký một thông điệp m:
-
Hash thông điệp h=H(m).
-
Sinh ngẫu nhiên số k, tính điểm R=k×G.
-
Chữ ký = cặp số (r,s), trong đó:
r=xRmod n, s=k−1(h+d⋅r)mod n.
-
-
Người nhận xác minh chữ ký bằng khóa công khai Q.
-
-
Ưu điểm:
-
Bảo mật mạnh với độ dài khóa nhỏ hơn RSA (256-bit ECDSA ≈ 3072-bit RSA).
-
Nhanh, gọn, tiết kiệm băng thông và bộ nhớ → lý tưởng cho blockchain, IoT.
-
-
Nhược điểm: Thuật toán phức tạp, dễ bị lỗi khi cài đặt (nếu tái sử dụng số ngẫu nhiên k, chữ ký có thể bị lộ private key).
5. Ứng dụng thực tế
-
RSA:
-
SSL/TLS (HTTPS).
-
Email bảo mật (PGP).
-
Chữ ký số trong chứng chỉ số.
-
-
ECDSA:
-
Bitcoin, Ethereum (ký giao dịch).
-
Thiết bị IoT cần tốc độ và khóa ngắn.
-
Xác thực danh tính trên blockchain.
-
6. Tóm lại
-
RSA: truyền thống, ổn định, nhưng nặng và chậm.
-
ECDSA: hiện đại, mạnh mẽ, nhẹ, phù hợp cho blockchain và hệ thống phân tán.
Dưới đây là bảng so sánh trực tiếp giữa RSA và ECDSA (Elliptic Curve Digital Signature Algorithm):
| Tiêu chí | RSA | ECDSA |
|---|---|---|
| Nguyên lý toán học | Dựa trên độ khó của bài toán phân tích số nguyên lớn (factorization). | Dựa trên độ khó của bài toán logarit rời rạc trên đường cong elliptic (ECDLP). |
| Độ dài khóa để đạt mức an toàn tương đương | 2048-bit RSA ≈ 224-bit ECDSA 3072-bit RSA ≈ 256-bit ECDSA |
Ngắn hơn rất nhiều so với RSA, chỉ bằng khoảng 1/8. |
| Kích thước chữ ký | Lớn (ví dụ RSA-2048 chữ ký ~256 byte). | Nhỏ (ví dụ ECDSA-256 chữ ký ~64 byte). |
| Tốc độ tạo khóa | Nhanh. | Chậm hơn RSA một chút. |
| Tốc độ ký | Nhanh. | Chậm hơn RSA (do tính toán phức tạp hơn). |
| Tốc độ xác minh chữ ký | Nhanh hơn ECDSA (RSA verify rất hiệu quả). | Chậm hơn RSA (ECDSA verify tốn nhiều tính toán). |
| Mức độ an toàn theo độ dài khóa | Cần khóa dài để chống tấn công (2048–3072 bit cho mức an toàn hiện đại). | Với khóa ngắn hơn (~256 bit) đã đạt mức an toàn tương đương RSA-3072. |
| Tài nguyên & băng thông | Tiêu tốn nhiều hơn (khóa dài, chữ ký lớn, thông điệp trao đổi dài hơn). | Tiết kiệm băng thông, bộ nhớ, phù hợp thiết bị IoT, blockchain, hệ thống nhúng. |
| Ứng dụng thực tế | HTTPS/TLS, chứng chỉ số (CA), chữ ký điện tử truyền thống, PGP, bảo mật email. | Blockchain (Bitcoin, Ethereum), IoT, thiết bị di động, hệ thống yêu cầu hiệu quả và gọn nhẹ. |
| Xu hướng tương lai | Vẫn dùng rộng rãi, nhưng dần bị thay thế trong các ứng dụng cần tối ưu hiệu năng. | Được ưa chuộng trong các công nghệ mới (Blockchain, IoT) do ưu điểm khóa/chữ ký nhỏ. |
👉 Kết luận ngắn gọn:
-
RSA: mạnh ở xác minh nhanh, thích hợp hệ thống máy chủ, chứng chỉ số.
-
ECDSA: mạnh ở khóa/chữ ký nhỏ, tiết kiệm tài nguyên, rất phù hợp cho blockchain, IoT, thiết bị di động.

