密碼分析人員攻擊密碼系統有三種主要方式。
窮舉攻擊所謂的窮舉攻擊是指密碼分析者依次嘗試所有可能的密鑰來解密所獲得的密文,直到獲得正確的明文。或者用某個密鑰對所有可能的明文進行加密,直到得到所得到的密文。顯然,從理論上講,只要有足夠的資源,任何實用的密碼都可以被窮舉攻擊破解。
徹底攻擊所需的時間等於嘗試次數乘以壹次解密(加密)所需的時間。顯然,窮舉攻擊可以通過增加密鑰數量或增加解密(加密)算法的復雜性來對抗。當鍵的數量增加時,嘗試的次數將不可避免地增加。當解密(加密)算法的復雜性增加時,完成解密(加密)所需的時間增加,從而使窮舉攻擊在實踐中不可能實現。窮舉攻擊是對密碼最基本的攻擊之壹。
統計分析攻擊所謂統計分析攻擊是指密碼分析者通過分析密文和明文的統計規律來破譯密碼。統計分析攻擊在歷史上為破譯密碼做出了巨大貢獻。通過分析秘密信件和信件的頻率和其他統計參數,可以破譯許多經典密碼。抵抗統計分析攻擊的方法是盡量防止將明文的統計特征帶入密文。這樣,密文沒有明文的痕跡,使得統計分析攻擊無法實現。能夠抵抗統計分析攻擊已經成為現代密碼學的基本要求。
數學分析攻擊所謂數學分析攻擊,是指密碼分析者根據加解密算法的數學基礎和某些密碼學特性對密碼進行破譯的數學解法。數學分析攻擊是基於數學問題的各類密碼的主要威脅。為了抵禦這種數學分析攻擊,我們應該選擇數學基礎紮實且足夠復雜的加密和解密算法。