Mật mã khóa công khai

Mật mã khóa công khai (Public-key cryptography) — hay còn gọi là mật mã bất đối xứng (asymmetric cryptography) — là một hệ thống mật mã trong đó các khóa xuất hiện theo cặp. Phép biến đổi được thực hiện bởi một trong hai khóa chỉ có thể được hoàn tác bằng khóa kia. Một khóa (khóa riêng tư — private key) được giữ bí mật trong khi khóa còn lại được công khai.

Chữ ký số

Khi được dùng cho chữ ký số, khóa riêng tư được dùng để ký, và khóa công khai được dùng để xác minh. Điều này có nghĩa là bất kỳ ai cũng có thể xác minh chữ ký, nhưng chỉ chủ sở hữu của khóa riêng tư tương ứng mới có thể tạo ra nó.

Mã hóa

Khi được dùng cho encryption (mã hóa), khóa công khai được dùng để mã hóa, và khóa riêng tư được dùng để giải mã. Điều này mang lại cho hệ thống mã hóa khóa công khai một lợi thế so với hệ thống mã hóa đối xứng: Khóa mã hóa có thể được công khai. Bất kỳ ai cũng có thể mã hóa một tin nhắn tới chủ sở hữu khóa riêng tư, nhưng chỉ chủ sở hữu khóa riêng tư mới có thể giải mã nó.

Tuy nhiên, hệ thống mã hóa khóa công khai thường chậm hơn nhiều so với các thuật toán đối xứng, và kích thước các tin nhắn chúng có thể mã hóa tỷ lệ với kích thước khóa, vì vậy chúng không mở rộng tốt cho các tin nhắn dài.

Do đó, thường gặp nhất là hệ thống mã hóa sử dụng thuật toán đối xứng để mã hóa các tin nhắn, rồi dùng hệ thống khóa công khai để mã hóa khóa đối xứng. Cách sắp xếp này có thể mang lại lợi ích của cả hai hệ thống.

Các hệ thống mật mã khóa công khai phổ biến

Các hệ thống mật mã khóa công khai thường dùng là RSA (cho cả ký và mã hóa), DSA (cho ký) và Diffie–Hellman (để thỏa thuận khóa).

Mật mã đường cong elliptic cung cấp phương pháp thay thế cho các hệ thống mật mã này với lợi thế sử dụng kích thước khóa tương đối nhỏ hơn, thao tác nhanh hơn và lưu trữ, truyền tải nhỏ hơn. Các thuật toán đường cong elliptic phổ biến bao gồm Elliptic-curve Diffie–HellmanElliptic Curve Digital Signature Algorithm, mà các nhà phát triển thường gặp dưới dạng viết tắt ECDHECDSA.

Xem thêm