『壹』 對稱加密和非對稱加密的,優缺點
密碼學中常見的兩種加密演算法包括對稱加密演算法與非對稱加密演算法。對稱加密演算法,又稱單鑰密碼演算法,其加密密鑰與解密密鑰相同,能夠從解密密鑰中推算出加密密鑰。在多數情況下,加密與解密密鑰一致。這類演算法也被稱為秘密密鑰演算法或單密鑰演算法。為了安全通信,發送方與接收方需預先協商一個密鑰。對稱加密演算法的安全性依賴於密鑰的保密性。一旦密鑰泄露,任何人都可進行加密與解密操作。因此,加密與解密密鑰必須嚴格保密,以確保通信保密性。對稱加密演算法的加密與解密過程表示為:Ek(M)=CDk(C)=M。
對稱加密演算法可分為兩類。一類是序列演算法或序列密碼,僅對明文中的單個位(或位元組)進行運算;另一類是分組演算法或分組密碼,對明文的一組位進行運算,這些位組被稱為分組。現代計算機密碼演算法的分組長度通常為64位,足以防止分析破譯,但又便於使用。這類演算法具有的特性是:Dk(Ek(M))=M。
常見的對稱加密方案包括五個組成部分:1)明文:原始信息;2)加密演算法:以密鑰為參數,對明文進行置換與轉換的規則,結果為密文;3)密鑰:加密與解密演算法的參數,直接影響對明文的變換結果;4)密文:明文的變換結果;5)解密演算法:加密演算法的逆變換,以密文為輸入,密鑰為參數,變換結果為明文。
對稱加密演算法的優點在於高效、演算法簡單、系統開銷小,適合加密大量數據。然而,對稱加密演算法也存在明顯缺陷。首先,安全通信前需要安全地交換密鑰,這在某些情況下難以實現。其次,規模復雜。例如,A與B之間的密鑰必須不同於A與C之間的密鑰,否則B的安全性會受威脅。在一個擁有1000個用戶的團體中,A需要保持至少999個密鑰(更准確地說是1000個,如果她需要保留一個密鑰給自己)。對於該團體中的其他用戶,情況相同。這意味著該團體需要近50萬個不同的密鑰!進一步推而廣之,n個用戶的團體需要N2/2個不同的密鑰。通過應用基於對稱加密的中心服務結構,上述問題部分緩解。在這個體系中,團體中的任何用戶與中心伺服器共享一個密鑰,因此需要存儲的密鑰數量大致等於團體人數。中心伺服器還可以為以前不認識的用戶充當「介紹人」。然而,中心伺服器必須始終保持在線狀態,一旦伺服器掉線,用戶間的通信將無法進行。這意味著中心伺服器是通信成敗的關鍵和攻擊的焦點,也是龐大組織通信服務的「瓶頸」。
非對稱加密演算法的特點在於加密密鑰與解密密鑰不同,且不能由其中一個密鑰推導出另一個密鑰。對稱密鑰演算法和非對稱密鑰演算法的對比顯示,對稱密鑰演算法的加密與解密使用相同的密鑰,或者能從加密密鑰容易推導出解密密鑰。對稱密鑰演算法具有加密處理簡單,加解密速度快,密鑰較短,發展歷史悠久等特點。而非對稱密鑰演算法則具有加解密速度慢,密鑰尺寸大,發展歷史較短等特點。