Các hệ thống mã hoá công khai sử dụng hai khoá mã - khoá mã công khai và khoá mã cá nhân tạo bởi một thuật toán mã hoá bất đối xứng. Các khoá mã này được dùng để bảo vệ quá trình phân phối khoá mã và bảo vệ khoá mã cá nhân - tạo bởi một thuật toán mã hoá đối xứng và được dùng để mã hoá dữ liệu. Đây là phương pháp kết hợp sử dụng hai phương pháp mã hoá: đối xứng và bất đối xứng. Mỗi một thuật toán có một điểm mạnh và điểm yếu riêng, việc kết hợp các thuật toán này và bổ trợ các thiếu sót cho nhau tạo nên một hệ thống hoàn hảo.
Cơ chế hoạt động của hệ thống mã hoá công khai
Trong hệ thống mã hoá hybrid, có hai phương pháp bổ trợ cho nhau. Một thuật toán mã hoá đối xứng tạo các khoá mã bí mật dùng để mã hoá các dữ liệu lớn với tốc độ nhanh, còn một thuật toán mã hoá bất đối xứng tạo các khoá mã công khai để dùng cho quá trình phân phối khoá mã tự động [6].
Khi đối tượng A sử dụng khoá mã đối xứng để mã hoá dữ liệu và truyền cho đối tượng B, A muốn đối tượng B phải giải mã được thông tin do đó A cần phải gửi khoá mã đối xứng cho B. Tuy nhiên A không muốn gửi khoá mã đối xứng cho B
dưới dạng plaintext bởi vì như thế không an toàn: những kẻ nghe lén trên đường truyền có thể lấy cắp được và sử dụng khoá mã đó vào mục địch bất hợp pháp nếu như nó không được bảo vệ an toàn. Do đó A cần mã hoá khoá mã đối xứng đó và gửi đến cho B. Việc này được thực hiện bằng cách sử dụng một thuật toán mã hoá bất đối xứng [2].
Hình 2.13: Trong hệ thống hybrid, khoá mã bất đối xứng được dùng để mã hoá khoá mã bí mật, khoá mã bí mật dùng để mã hoá thông tin
Sở dĩ hệ thống hybrid sử dụng thuật toán mã hoá đối xứng để mã hoá dữ liệu còn thuật toán mã hoá bất đối xứng để mã hoá khoá mã bởi vì như đã đề cập ở trên, các thuật toán mã hoá bất đối xứng tốn rất nhiều thời gian khi mã hoá các khối dữ liệu lớn. Chính vì lý do đó hệ thống hybrid sử dụng thuật toán nhanh hơn (thuật toán mã hoá đối xứng) để mã hoá khối dữ liệu lớn còn thuật toán có tốc độ chậm hơn (thuật toán mã hoá bất đối xứng) để mã hoá khoá mã.
Lấy một ví dụ: Bill gửi một thông điệp đến cho Paul và muốn chỉ có Paul mới được quyền đọc thông điệp đó. Việc đầu tiên Bill cần làm là sử dụng một khoá mã đối xứng để mã hoá thông điệp cần gửi cho Paul. Bây giờ trong tay Bill đã có ciphertext của thông điệp và khoá mã đối xứng. Việc tiếp theo Bill cần làm là sử dụng thuật toán mã hoá bất đối xứng và khoá mã công khai của Paul để mã hoá khoá mã đối xứng. Lý do là nếu Bill mã hoá khoá mã đối xứng bằng khoá mã cá nhân của Bill thì tất cả mọi người trên mạng đều có thể đọc được khoá mã đó bằng khoá mã công khai của Bill. Bây giờ Bill đã có trong tay ciphertext của thông điệp và ciphertext của khoá mã đối xứng, Bill gửi cả hai ciphertext đó cho Paul, Paul
nhận được và sử dụng khoá mã cá nhân của mình giải mã để thu được khoá mã đối xứng. Sau đó Paul sử dụng khoá mã đối xứng vừa thu được để giải mã thông tin. Nếu Paul bảo vệ tốt khoá mã cá nhân của mình thì có thể chắc chắn được rằng Paul là người duy nhất có thể đọc được thông điệp của Bill.
Hình 2.14: Bill sử dụng hệ thống khoá mã công khai để gửi thông tin cho Paul
Việc quản lý khoá mã bất đối xứng có thể thực hiện dễ dàng bằng các phần mềm. Do đó, Bill và Paul không phải mất thời gian để tìm kiếm khoá mã tương ứng. Bảng sau sẽ so sánh một số điểm khác nhau giữa thuật toán mã hoá đối xứng và bất đối xứng.
Thuộc tính Mã hoá đối xứng Mã hoá bất đối xứng
Khoá mã Một khoá mã được chia sẻ giữa hai hay nhiều đối tượng
Một đối tượng có một khoá mã công khai và một khoá mã cá nhân
Trao đổi khoá Không dùng chung với đường truyền dữ liệu
Dùng chung với đường truyền dữ liệu
Tốc độ Thuật toán đơn giản hơn và nhanh hơn
Thuật toán phức tạp hơn và chậm hơn
Sử dụng Mã hoá dữ liệu lớn trên đường truyền
Mã hoá khoá mã và phân phát khoá mã
Tính năng Bảo vệ tính riêng tư, sự toàn vẹn của thông tin
Bảo vệ tính riêng tư, sự toàn vẹn của thông tin, xác thực và chống phủ nhận