
兩個用戶在用單鑰密鑰體制實施保密通信時,一定得有一個共享的秘密密鑰,並且為避免攻擊者取得密鑰,還得經常更新密鑰。密碼系統的強度也依靠密鑰分配技術。用戶A與B獲取共享密鑰基本有如下幾種措施。
1. 密鑰有A選取並藉助物理方法發送給B。
2. 密鑰顺利获得第三方選取並藉助物理方法發給A與B。
3. 其中一方選定新密鑰之後,拿已有密鑰對新密鑰進行加密並發給對方。
4. 若A和B與第三方C分別有保密信道,則C給A、B選定密鑰之後,分別在兩信道上發給A、B。
前兩種方法叫做人工發送,密鑰的人工發送在網絡的鏈路加密時還是可行的,因為只有該鏈路上的兩端交換數據。而密鑰的人工發送在網絡的端-端加密方式中將不再可行,因如果加密是在網絡層,那麼網絡中任一對主機都得有一共享密鑰。若有n台主機,那麼密鑰數目是n(n-1)/2。當n非常大時,密鑰分配的代價很大。
第三種方法對鏈路加密與端-端加密方式均是可行的,但是攻擊者只要得到一個密鑰就可能取得之後的全部密鑰。其初始密鑰的分配代價還是很大。
第四種方法普遍用在端-端加密方式時的密鑰分配,這裏的第三方一般負責給用戶分配密鑰中心。每個用戶必須與KDC有一個共享密鑰,叫做主密鑰。利用主密鑰分配給一對用戶的密鑰叫做會話密鑰,用來這對用戶間的保密通信。通信結束後,則隨即銷毀會話密鑰。若用戶數是n個,那麼會話密鑰數就是n(n-1)/2。然而主密鑰數卻只用n個,則可藉助物理手段發送主密鑰。
