Hình trang bên là quy trình phổ biến của mật mã khố cơng khai. Trong quy trình này sẽ cĩ hai khố khác nhau làm nhiệm vụ mã hố và giải mã. Thơng điệp đƣợc mã hố bằng khố này thì sẽ phải đƣợc giải mã bằng khố cịn lại. Khác với quy trình mật mã đối xứng, hai khố trong quy trình mật mã khố cơng khai là cĩ chủ. Một khĩa sẽ đƣợc cơng bố cơng khai để mọi ngƣời đƣợc biết, gọi là khố cơng khai - ku và một khố đƣợc giữ bí mật, gọi là khố cá nhân - kr, chỉ cĩ chủ nhân của nĩ đƣợc biết. Từ khố cá nhân cĩ thể tính đƣợc khố cơng khai nhƣng từ khố cơng khai khơng thể suy ra khố cá nhân. Chính vì vậy mà ngƣời ta gọi quy trình này là quy trình
mật mã bất đối xứng (bất đối xứng với ngƣời sử dụng và bất đối xứng với khố).
Giả sử An muốn gửi thơng điệp mật M cho Bình. An sẽ dùng khố cơng khai của Bình (kuB) mã hố thơng điệp M và gửi cho Bình. Kết quả mã hố là EkuB(M) C. Bản mã C đƣợc An gửi cho Bình trên một kênh truyền thơng cơng cộng bình thƣờng. Nhận đƣợc bản mã C, Bình sẽ dùng khố cá nhân của mình (krB) giải mã để khơi phục bản nguồn ban đầu: DkrB(C) M. Nếu kẻ thám mã cĩ lấy đƣợc bản mã C thì cũng khơng cĩ khố cá nhân của Bình krB để giải mã, do đĩ khơng thể đọc đƣợc nội dung thơng điệp nguồn M. Quy trình này gọi là quy trình mã hố xuơi, trong đĩ, tính bí mật của thơng điệp nguồn sẽ đƣợc bảo đảm.
Trong quy trình mã hố ngƣợc, Bình dùng khố cá nhân của mình để mã hố thơng điệp gửi cho An trên kênh truyền thơng cơng cộng. An dùng khố cơng khai của Bình giải mã và đọc đƣợc nội dung thơng điệp ban đầu. Kẻ gian cũng vậy, họ cũng cĩ thể lấy đƣợc bản mã, dùng khố cơng khai của Bình giải mã và đọc đƣợc nội dung thơng điệp. Nhƣ vậy, trong trƣờng hợp này, thơng điệp sẽ khơng cĩ tính bí mật vì ai cũng đọc đƣợc nội dung. Ngƣợc lại, nhận đƣợc thơng điệp nguồn sau khi giải mã thành cơng, mọi ngƣời sẽ biết đƣợc chủ nhân của thơng điệp là ai. Ở đây thơng điệp cĩ tính xác thực.
Việc tạo cặp khố (khố cơng khai, khố cá nhân) thƣờng là do một ngƣời thứ ba tin tƣởng thực hiện. Tuy nhiên, ở đây nảy sinh vấn đề phân phối khố từ ngƣời thứ ba này đến cho những ngƣời sử dụng chúng. Khố cá nhân của Bình đƣợc phân phối cho một ngƣời duy nhất là Bình nên khơng cĩ vấn đề gì. Nhƣng việc phân phối khố cơng khai của Bình cho tất cả mọi ngƣời lại khơng đơn giản và cần phải cĩ một quy trình xác thực, làm sao đảm bảo là mọi ngƣời biết chính xác chủ nhân khố. Thật vậy, trong trƣờng hợp ngƣợc lại, một kẻ gian X cĩ thể thực hiện tấn cơng “Man in the middle” bằng cách chiếm lấy khố cơng khai của Bình (kuB) trên kênh
truyền thơng cơng cộng, thay bằng khố cơng khai của mình (kuX) rồi tuyên bố với An rằng đĩ là khố của Bình. Nếu An khơng kiểm tra đƣợc điều đĩ thì An vẫn dùng khố này (kuX) mã hố thơng điệp M gửi cho Bình EkuX(M) C1. Lấy đƣợc thơng điệp C1, X dùng khố cá nhân của mình (krX) giải mã, khơi phục đƣợc thơng điệp nguồn DkrX(C1) M. Sau đĩ X tiếp tục mã hố M bằng khố cơng khai của Bình (kuB) để gửi tiếp cho Bình EkuB(M) C2. Bình dùng khố cá nhân của mình (krB) để giải mã thơng điệp C2 một cách bình thƣờng DkrB(C2) M, mà khơng hề biết rằng thơng điệp M đã bị X xem trộm. Do vậy, cần phải cĩ một quy trình phân phối khố cơng khai an tồn, cho phép ngƣời sử dụng cĩ thể kiểm tra đƣợc chính xác chủ nhân thực sự của khố cơng khai đĩ là ai.
Nhƣ vậy các vấn đề của mật mã khĩa cơng khai bao gồm ba quy trình sau:
Quy trình mã hĩa (mã hĩa xuơi): Ngƣời dùng sử dụng khố cơng khai của ngƣời nhận mã hĩa thơng điệp gửi cho chủ nhân khĩa. Mọi ngƣời đều cĩ thể dùng khĩa cơng khai của ai đĩ để mã hĩa. Chủ nhân khố cơng khai sử dụng khĩa cá nhân của mình để giải mã. Trong trƣờng hợp này, bảo đảm đƣợc tính bí mật của thơng điệp.
Quy trình chữ ký (Mã hĩa ngược): Quy trình sử dụng để tạo chữ ký số cho thơng điệp: chủ nhân dùng khĩa cá nhân của mình mã hố thơng điệp, tạo ra chữ ký số cho thơng điệp. Mọi ngƣời khác dùng khĩa cơng khai của ngƣời ký để kiểm tra chữ ký. Trong trƣờng hợp này, thơng điệp bảo đảm đƣợc tính xác thực.
Quy trình phân phối khĩa cơng khai: Quy trình này bảo đảm khố cơng khai đƣợc phân phối an tồn, xác thực, và cho phép tất cả mọi ngƣời cĩ thể kiểm tra chủ nhân thực sự của khố cơng khai là ai thơng qua các chứng chỉ khố cơng khai đƣợc cấp bởi một bên thứ ba cĩ uy tín. Ngồi ra, các thuật tốn mật mã khĩa cơng khai cịn đƣợc dùng để trao đổi khĩa bí mật (khố phiên).
An tồn của các thuật tốn mật mã khố cơng khai dựa vào sự khác nhau giữa mức độ khĩ của bài tốn mã hố/giải mã (dễ) và bài tốn thám mã (khĩ). Cơ sở tốn học của các thuật tốn này là các hàm một chiều (One- way functions). Hàm y = f(x) đƣợc gọi là hàm một chiều nếu giá trị y = f(x) tính đƣợc dễ dàng nhƣng, ngƣợc lại, giá trị x = f-1(y) tính rất khĩ. Đối với bài tốn mật mã thì x = f-1(y) sẽ trở nên tính đƣợc dễ dàng nếu ngƣời tính cĩ thêm thơng tin bổ sung (khĩa).
trên thực tế các khĩa mật mã sử dụng thƣờng lớn (> 512 bit) nên phƣơng pháp vét cạn khố hầu nhƣ khơng thể thực hiện đƣợc trong thời gian hợp lý. Để chống lại một số phƣơng pháp thám mã tiên tiến khác, ngƣời ta cĩ thể sử dụng các khĩa rất lớn (>> 512 bits). Do khố mật mã lớn nhƣ vậy nên thuật tốn khĩa cơng khai chậm hơn nhiều so với thuật tốn khĩa bí mật. Trên thực tế, ngƣời ta thƣờng sử dụng mật mã khố cơng khai để mã hố những dữ liệu khơng lớn (ví dụ nhƣ khố mã hố/giải mã), hoặc mã hố giá trị băm của thơng điệp để tạo chữ ký số cho thơng điệp. Mật mã khố cơng khai ít khi đƣợc dùng để mã hố dữ liệu lớn.