
现在常見的密碼攻擊類型如下。
(1)已知密文攻擊:密碼分析者在僅有密文和加密算法的情況下,解密成功的可能性不大。
(2)已知明文攻擊:密碼分析者有密文與加密算法,還有一些明文消息和其對應的密文。在此情況下,密碼分析者估計原始明文、算法與結果密文。在另一種情況下,密碼分析者已知道密文中的一些文本模式,則可分析存在這些模式的密文。
(3)選擇明文攻擊:密碼分析者能以某種方式把一個消息插入明文中再加密為密文。然後,密碼分析者尋找密鑰,以解密密文。在某些情況下,插入明文中的消息能夠幫助攻擊者更方便地找到密鑰。
(4)選擇密文攻擊:這個時候攻擊者可選擇密文,並產生相應的明文。
(5)選擇文本攻擊:攻擊者可選明文且得到對應的密文,也可選密文產生相應明文。
密碼算法也可看成一種協議,因此,分析協議的方法也可用來密碼攻擊。若協議設計者給協議的需求定義不是很完善,或對它的安全性分析得不是很充分,就會出現協議設計上的漏洞。顺利获得攻擊密碼協議,也能對密碼系統造成攻擊與破壞。
協議是由一系列步驟組成的,它含兩方或多方,設計協議是為了完成某個任務。
協議的攻擊也能分成主動攻擊與被動攻擊。和協議沒有關係的人可竊聽協議的某部分或全部,此攻擊叫被動攻擊。由於攻擊者不會影響協議,因此他能做的是觀察協議並嘗試獲取消息。因被動攻擊很難發現,所以協議應阻止被動攻擊但不是發現該攻擊。
另一種攻擊可能改變協議來對自己有利。他可能假意其他一些人,在協議里引入新的消息、刪除原來的消息、用其他的消息替換原本的消息、重放消息、破壞通信信道,或改變存儲在計算機中的消息等。這種攻擊稱為主動攻擊,因為他們具有主動的干預。這種形式的攻擊依賴於網絡。
被動攻擊嘗試得到協議里所有方的消息。他們收集協議各方傳的消息,並嘗試對它們實施密碼分析。而主動攻擊可能存在更多的目的。攻擊者可能對得到消息感興趣,也可能降低系統性能、破壞已有的消息或獲取非授權的資源信息。
與被動攻擊相比,主動攻擊嚴重得多,尤其是各方都不用相互信任的協議中。攻擊者並不都是入侵者,他可能是合法的系統用戶或系統管理員。甚至有很多主動攻擊者一起工作,每個人均為合法的系統用戶。
攻擊者也可能是和協議有關的所有方中的一方。他可能在協議中說謊,或一點都不遵守協議,此攻擊者是騙子。被動騙子儘管遵守協議,但嘗試得到協議外的其他消息。主動騙子在協議過程中企圖顺利获得欺騙來破壞協議。
若與協議有關的各方中的大多數是主動騙子,則保證協議的安全性非常難。不過合法用戶發現是否有主動欺騙是有可能的。當然,協議對被動欺騙來說應該是安全的。
