Khóa công khai (Public Key) là gì?
Khóa công khai là một trong hai khóa của hệ thống mã hóa bất đối xứng (asymmetric cryptography). Khóa này được công khai cho mọi người và dùng để mã hóa dữ liệu hoặc xác thực chữ ký số. Cặp khóa còn lại là khóa riêng (private key) - được giữ bí mật và dùng để giải mã hoặc tạo chữ ký.
Cơ chế hoạt động của cặp khóa Public/Private Key
- Tạo cặp khóa: Thuật toán (RSA, ECC, ElGamal) sinh ra 2 khóa liên quan toán học
- Phân phối: Public key gửi cho mọi người; Private key giữ kín
- Mã hóa: Người gửi dùng public key của người nhận để mã hóa tin nhắn
- Giải mã: Chỉ người nắm private key mới giải mã được
- Chữ ký số: Người gửi ký bằng private key → Mọi người dùng public key để xác thực
So sánh Public Key vs Private Key
| Đặc điểm | Public Key (Khóa công khai) | Private Key (Khóa riêng) |
|---|---|---|
| Độ bí mật | Công khai cho tất cả | Chỉ chủ sở hữu biết |
| Chức năng chính | Mã hóa, xác thực chữ ký | Giải mã, tạo chữ ký |
| Rủi ro nếu mất | Không bị mất (đã công khai) | Hệ thống vô hiệu, dữ liệu lộ |
| Độ dài điển hình | RSA: 2048-4096 bit; ECC: 256-384 bit | Cùng độ dài với public key |
Các thuật toán phổ biến
- RSA: Dựa trên độ khó phân tích thừa số nguyên lớn (2048-bit trở lên)
- ECC (Elliptic Curve Cryptography): Khóa ngắn hơn, hiệu năng tốt hơn (256-bit ≈ RSA 3072-bit)
- DSA: Dùng cho chữ ký số, không dùng mã hóa
Ứng dụng thực tế
- HTTPS/TLS: Trao đổi khóa phiên (session key) an toàn
- Email mã hóa (PGP/S/MIME): Mã hóa thư điện tử
- Chữ ký số: Xác thực tài liệu, hợp đồng điện tử
- SSH Key: Đăng nhập server không mật khẩu
- Blockchain/Crypto: Địa chỉ ví = hash(public key)
Tại sao Public Key an toàn?
Vì việc suy ngược private key từ public key là không khả thi về mặt tính toán (computationally infeasible) với công nghệ hiện tại. Độ an toàn phụ thuộc vào độ dài khóa và thuật toán.