Hệ thống mật mã khĩa cơng khai cịn được gọi là hệ thống mật mã khĩa khơng
đối xứng, vì theo như cĩ chế mật mã này thì khĩa được dùng để mã hĩa gĩi tin và khĩa được dùng để giải mã là khác nhau. Sự phát triển của mật mã khĩa cơng khai cĩ ý nghĩa rất lớn và tạo ra một cuộc cách mạng trong tồn bộ lịch sử của mật mã khĩa. Những thuật tốn cơng khai đều dựa trên những hàm tốn học hơn là những nhĩm thay thế và hốn vị trong mật mã khĩa cổ điển. Trong hệ thống mật mã khĩa cơng khai thì mỗi đối tác tham gia sẽ sở hữu một cặp khĩa duy nhất, bao gồm một khĩa bí mật (được lưu bí mật bởi đối tác) và một khĩa cơng khai tương ứng (được phát trong các thư mục cơng cộng). Hai khĩa này cĩ quan hệ với nhau để đảm bảo rằng khĩa cơng khai thực hiện chức năng mã hĩa và khĩa bí mật thực hiện chức năng giải mã.
Các bước cần thiết trong quá trình mã hĩa khĩa cơng khai:
• Một hệ thống cuối trong mạng tạo ra một cặp khĩa để dùng cho mã hĩa và giải mã đoạn tin mà nĩ sẽ nhận.
• Mỗi hệ thống cơng bố rộng rãi khĩa mã hĩa bằng cách đặt khĩa vào một thanh ghi hay một file cơng khai. Đây là khĩa cơng khai, khĩa cịn lại được giữ riêng.
• Nếu A muốn gửi một đoạn tin tới B thì A sẽ mã hĩa đoạn tin bằng khĩa cơng khai của B.
• Khi B nhận được đoạn tin mã hĩa, nĩ giải mã bằng khĩa bí mật của mình. Khơng một người nào khác cĩ thể giải mã đoạn tin mã này bởi vì chỉ minh B biết khĩa bí mật đĩ thơi.
Hình 4.8: Sơđồ mã khĩa cơng khai
Với cách tiếp cận này, tất cả những người tham gia cĩ thể truy xuất khĩa cơng khai. Khĩa bí mật được tạo ra bởi từng các nhân, vì vậy khơng bao giờđược phân bố.
Ở bất kì thời điểm nào, hệ thống cũng cĩ thể chuyển đổi cặp khĩa đểđảm bảo tính bảo mật mà khơng cần sử dụng kênh thơng tin an tồn để truyền khĩa bảo mật.
Khĩa cơng khai
Đoạn tin Khĩa bí mật Đoạn tin được mật mã Đoạn tin User A Giải thuật mã hĩa Giải thuật giải mã User B Kênh truyền
Các yêu cầu của mật mã khĩa cơng khai:
Cơng việc tính tốn thì dễ dàng cho người nhận B: tạo cặp khĩa cơng khai KU và khĩa bí mật KR.
Cơng việc tính tốn thì dễ dàng cho người nhận A: biết khĩa cơng khai và
đoạn tin cần mã hĩa M, để tạo mật mã tương ứng C=EKub(M).
Cơng việc tính tốn dễ dàng cho người nhận B để thực hiện giải mã: sử
dụng khĩa bí mật để giải mã đoạn tin mã hĩa C, khơi phục lại đoạn tin ban đầu.
M = DKRb(C) = DKRb[EKUb(M)]
Cơng việc tính tốn khơng thể thấy trước đối với địch thủ biết khĩa cơng khai KUb để xác định khĩa bí mật KRb.
Cơng việc tính tốn khơng thể thấy trước đối với địch thủ biết khĩa cơng khai KUb và đoạn tin mật mã C để khơi phục đoạn tin ban đầu M.
Chức năng mã hĩa và giải mã cĩ thểđược áp dụng theo thứ tự:
M = DKRb[EKUb(M)] M = EKUb[DKRb(M)]
Cĩ thể nhận thấy rằng việc tính Y = f(X) thì dễ dàng trong khi tính X=f-1(Y) là khơng thể thấy trước. Nĩi chung từ “dễ dàng” được xác định bởi 1 bài tốn là nĩ cĩ thể được giải quyết trong thời gian nhất định (nĩ phụ thuộc vào chiều dài input). Nếu chiều dài input là n bít thì thời gian để tính hàm đĩ tỉ lệ với na . Để đảm bảo tính bảo mật thì phải sử dụng khĩa cĩ kích thước đủ lớn (thường trên 100 chữ số thập phân). Ví dụ kích thước khĩa và thời gian bẻ khĩa (MIPS tính theo năm) trong các giải thuật RSA/DSS và ECC như sau.
Bảng 4.2: Thời gian bẻ khĩa trong giải thuật RSSA/DSS và ECC.
RSA ECC MIPS (năm)
512 768 1024 106 132 160 104 108 1012