
對稱密碼系統的安全性取決於兩個因素:算法的強度和密鑰的長度。
這裏假設算法強度是完美的。所謂完美,指的是除了窮舉搜索密鑰空間(又稱蠻力攻擊)之外,沒有任何其他更好的方法來破譯密碼系統。也就是說,算法必須堅固到沒有比蠻力攻擊更好的方法。這往往是很不容易做到的。密碼學是一門非常精細奇妙的藝術,很多看上去貌似非常完美的密碼系統往往是十分脆弱的。即使是很堅固的密碼體制,哪怕是只要有一點小小的改動就會變得非常脆弱。
根據 Kerckhoffs假設,密碼體制的安全性應該依賴於密鑰的安全性,而不是依賴於算法細節的安全性,這是密碼學界公認的基本準則之一。如果一個新的密碼體制的安全強度依賴於攻擊者不知道算法內部的操作細節,這將必敗無疑。如果堅信對算法內部細節的保密要比公開算法細節而讓密碼學學術專家來分析更能提高密碼體制的安全性,這也是大錯特錯的。甚至認為沒有人能將原始碼反匯編出來或者將算法分析出來更是極其天真的想法。
當人們]假設算法強度是完美的,也就是加密算法除了窮舉密鑰攻擊之外無任何其他捷徑能夠破譯這個密碼系統時,那麼密鑰長度和每秒可以實現的搜索密鑰數決定了密碼體制的安全性。
那麼密鑰的長度到底應該多長才合適呢?這就要求人們第一时间要確定自己需要多高的安全性。通常對密鑰的長度的選擇需要綜合考慮信息價值的大小、信息保密期的長短以及攻擊者的計算能力、成本等諸多因素一般來說,信息價值越大、保密期越長、攻擊者計算能力越強,則要求密鑰長度越長;反之越短。
密鑰的長度對密鑰的強度有直接的影響。密碼系統的安全性主要依賴於密鑰,而不是依賴於算法的具體細節。選擇密鑰長度不能太長也不能太短。如果密鑰過長,對信息進行加密和解密所進行的計算複雜度也越高,對計算機的要求也越高,使用者所需要付出的成本也越高。但是如果是密鑰過短,窮舉搜索攻擊法很容易就能破譯。
