Như đã đề cập trong các chương trước, việc trao đổi khoá mã, quản lý, huỷ bỏ khoá mã là một trong những vấn đề rất phức tạp. Các hệ thống mã hoá có thể sử dụng để cung cấp tính bảo mật cho thông tin, kiểm ra tính toàn vẹn của thông tin, xác thực nguồn gốc của thông tin, chống phủ nhận thông tin, nhưng các hệ thống mã hoá dù mạnh đến đâu cũng trở nên vô nghĩa nếu khoá mã bí mật bị đánh cắp, bị thay đổi hay bị lỗi. Do đó khoá mã bí mật cần được cấp phát đến đúng đối tượng, phải được quản lý chặt chẽ và cập nhật thường xuyên [5].
Hệ thống mã hoá dựa trên cơ sở tin tưởng lẫn nhau. Người sử dụng tin tưởng lẫn nhau để bảo vệ khoá mã, người sử dụng tin tưởng người quản lý khoá mã, họ tin tưởng hệ thống máy chủ kiểm soát, duy trì và phân phát khoá mã.
Quản lý khoá mã bí mật là vấn đề làm đau đầu các nhà quản trị nhiều nhất khi triển khai hệ thống mã hoá. Nếu hệ thống sử dụng thuật toán mã hoá đối xứng để bảo vệ thông tin thì số lượng khoá mã bí mật rất lớn. Trong hệ thống mã hoá đối xứng số lượng khoá mã cần phải quản lý là n(n1)/2 với n là số người sử dụng trong hệ thống. Như vậy nếu có 1,000 sử dụng hệ thống thì ta cần có 499,500 khoá mã bí mật - một con số rất lớn nếu so với 2,000 khoá được dùng trong hệ thống mã hoá bất đối xứng [5]. Bảng bên dưới so sánh số lượng khoá mã sử dụng trong hệ thống DES và hệ thống RSA [7].
Số lượng người sử dụng trong hệ thống
10 100 1,000 10,000 100,000 Hệ thống RSA 20 200 2,000 20,000 200,000 Hệ thống DES 45 4,950 499,500 49,995,000 4,999,950,000 Khoá mã bí mật cần phải được bảo vệ khi truyền đi, khi lưu trữ trên máy trạm và trên máy chủ. Khoá mã cần phải được tạo ra, huỷ đi và khôi phục lại một cách chính xác.
Khi khoá mã được gửi đến cho một người, khoá mã ấy cần phải được lưu vào một chỗ an toàn trong hệ thống file hệ thống. Khoá mã, cấu hình và các thông số được lưu trong một module và cần phải bảo vệ chặt chẽ. Nếu kẻ tấn công lấy được các thông tin này, hắn có thể giả danh người sử dụng để giải mã, đọc và mã hoá các thông tin không phải gửi cho hắn.
Về mặt quá khứ, khoá mã được lưu trong một hộp an toàn và có những người hộ tống khi chuyển đi. Khoá mã có thể được phân phát cho một máy chủ chính, người quản trị mạng sau đó sẽ phân phát các khoá mã bằng cách đem đến cài đặt trên từng máy tính. Một số hệ thống khác lại gửi đi một khoá mã chủ (master key) và người sử dụng sẽ dùng khoá mã chủ này để tạo ra một khoá mã bí mật duy nhất cho riêng mình.
Ngày nay, phần lớn các hệ thống phân phát khoá mã đều phải tuân theo một giao thức và được tự động hoá hoàn toàn. Điều quan trọng với các công ty muốn phát triển hệ thống quản lý khoá mã đó là mức độ an toàn và hiệu quả đầu tư.
Khi sử dụng giao thức Keberos, trung tâm phân phát khoá mã KDC được sử dụng để lưu trữ, phân phối và duy trì khoá mã session. Phương pháp này cho phép tự động hoá quá trình phân phát khoá mã. Khi một máy tính muốn trao đổi thông tin với một máy tính khác, máy tính đó sẽ phải yêu truy nhập thông qua trung tâm KDC. KDC sau đó sẽ tính toán khoá mã phiên sử dụng giữa hai máy tính. Quá trình tự động hoá này giảm thiểu các lỗi có thể xảy ra với hệ thống trao đổi khoá bán công. Tuy nhiên nếu KDC bị chiếm quyền điều khiển thì sẽ rất nguy hiểm cho tất cả các máy tính và dịch vụ trong hệ thống [6].
Một số giao thức khác hiện đang được sử dụng rất phổ biến trong các hệ thống máy tính và trong thương mại điện tử để trao đổi khoá là RSA và Diffie-Hellman.
Trên thực tế, có rất nhiều công ty sử dụng hệ thống mã hoá khoá công khai nhưng rất hiếm khi thay đổi khoá mã. Điều này có thể do công việc thay đổi khoá mã đòi hỏi quá nhiều công sức, do người quản trị mạng quá bận rộn hoặc do không nhận thức được tầm quan trọng của việc thay đổi khoá. Tần suất sử dụng khoá mã có mối quan hệ trực tiếp đến tần suất mà khoá mã phải thay đổi. Càng sử dụng nhiều khoá mã càng có nhiều khả năng bị ăn cắp và phá vỡ. Nếu một khoá mã càng ít được sử dụng, nó càng ít có khả năng bị đánh cắp và do đó rủi ro cũng giảm xuống rất nhiều. Mức độ bảo mật và tần suất sử dụng khoá có thể giúp xác định tần suất cần cập nhật khoá mã. Ví dụ một viện dinh dưỡng bà mẹ và trẻ em chỉ cần thay đổi khoá mã sáu tháng một lần còn một tổ chức quân sự cần phải thay đổi khoá mã hàng ngày. Điều quan trọng là khoá mã cần phải được thay đổi một cách an toàn, chính xác.
Quản lý khoá mã là một trong những vấn đề trở ngại nhất của hệ thống mã hoá.