
現代密碼學最重要的原則是:密碼學算法的安全性均是基於密鑰的安全性。即攻擊者知道算法也不對算法的安全性構成危害。
基於對算法的保密實際上是受限制的密碼算法。這種受限制的算法特點是密碼分析者在分析密碼算法時,由於不知道密碼算法本身,還需對算法進行恢復:但處在保密狀態的算法只有少數用戶知道,對破譯者而言破譯更困難;不分析該算法的人或組織不會使用,而且也不可能使用。因此,這樣的算法也不會進行標準化與質量控制,而且每個用戶與組織均一定得有唯一的算法,這樣也不利於密碼算法的开展。
在現代密碼學中,算法公開具有這樣一些優點:可預防設計者在算法中掩蓋後門;是評估算法安全性的有且僅有的最佳方式;有利於成為國內、國際標準算法;可得到大量的應用,最終實現低成本與高性能,並大量生產該算法的產品,因此現代密碼學中有個不成文的規定:密碼體制安全性僅由密鑰的安全性決定。在現代密碼學中,通常假定密碼算法是公開的,所以這就要求密碼算法本身要非常健壯。
把破譯算法劃分為成不一樣的級別:①全部破譯:找出密鑰;②全部推導:找出一個替代密碼算法;③實例推導:在截獲的密文中找到明文;④信息推導:找出和密鑰或明文相關的信息。
對於不一樣的破譯方法,可用以下一些方法衡量破譯方法的複雜性:①數據複雜性:用於破譯密碼算法需要的數據量;②存儲需求:破譯密碼算法需要的數據存儲空間大小;③處理複雜性:用於處理輸入數據或存儲數據所需的操作量,通常用完成破譯需要的時間進行度量。
