

原圖 使用ECB模式加密 提供了偽隨機性的非ECB模式右圖是使用CBC,CTR或任何其它的更安全的模式加密左圖可能產生的結果—與隨機噪聲無異。注意右圖看起來的隨機性并不能表示圖像已經被安全的加密;許多不安全的加密法也可能產生這種“隨機的”輸出。ECB模式也會導致使用它的協議不能提供數據完整性保護,易受到重放攻擊的影響,因此每個塊是以完全相同的方式解密的。例如,“夢幻之星在線:藍色脈沖”在線電子游戲使用ECB模式的Blowfish密碼。在密鑰交換系統被破解而產生更簡單的破解方式前,作弊者重復通過發送加密的“殺死怪物”消息包以非法的快速增加經驗值。2.密碼塊鏈接(CBC)1976年,IBM發明了密碼分組鏈接(CBC,Cipher-block chaining)模式。在CBC模式中,每個平文塊先與前一個密文塊進行異或后,再進行加密。在這種方法中,每個密文塊都依賴于它前面的所有平文塊。同時,為了保證每條消息的唯一性,在第一個塊中需要使用初始化向量。


而其解密過程則為
CBC是最為常用的工作模式。它的主要缺點在于加密過程是串行的,無法被并行化,而且消息必須被填充到塊大小的整數倍。解決后一個問題的一種方法是利用密文竊取。注意在加密時,平文中的微小改變會導致其后的全部密文塊發生改變,而在解密時,從兩個鄰接的密文塊中即可得到一個平文塊。因此,解密過程可以被并行化,而解密時,密文中一位的改變只會導致其對應的平文塊和下一個平文塊中對應位發生改變,不會影響到其它平文的內容。3.填充密碼塊鏈接(PCBC)填充密碼塊鏈接(PCBC,PRopagating cipher-block chaining)或稱為平文密碼塊鏈接(Plaintext cipher-block chaining),是一種可以使密文中的微小更改在解密時導致平文大部分錯誤的模式,并在加密的時候也具有同樣的特性。


PCBC主要用于Kerberos v4和WASTE中,而在其它場合的應用較少。對于使用PCBC加密的消息,互換兩個鄰接的密文塊不會對后續塊的解密造成影響。正因為這個特性,Kerberos v5沒有使用PCBC。4.密文反饋(CFB)密文反饋(CFB,Cipher feedback)模式類似于CBC,可以將塊密碼變為自同步的流密碼;工作過程亦非常相似,CFB的解密過程幾乎就是顛倒的CBC的加密過程:







若密文的x位發生錯誤,則密碼在移位寄存器恢復與加密時的狀態相同之前,輸出不正確的結果,而當寄存器狀態恢復后,密碼即可以重新同步,恢復正常輸出,因此最多只有一塊數據發生錯誤。與CBC相似,平文的改變會影響接下來所有的密文,因此加密過程不能并行化;而同樣的,與CBC類似,解密過程是可以并行化的。在解密時,密文中一位數據的改變僅會影響兩個平穩塊:對應平文塊中的一位數據與下一塊中全部的數據,而之后的數據將恢復正常。CFB擁有一些CBC所不具備的特性,這些特性與OFB和CTR的流模式相似:只需要使用塊密碼進行加密操作,且消息無需進行填充(雖然密文竊取也允許數據不進行填充)。5.輸出反饋(OFB)輸出反饋模式(Output feedback, OFB)可以將塊密碼變成同步的流密碼。它產生密鑰流的塊,然后將其與平文塊進行異或,得到密文。與其它流密碼一樣,密文中一個位的翻轉會使平文中同樣位置的位也產生翻轉。這種特性使得許多錯誤校正碼,例如奇偶校驗位,即使在加密前計算而在加密后進行校驗也可以得出正確結果。由于XOR操作的對稱性,加密和解密操作是完全相同的:







新聞熱點
疑難解答