

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


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


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







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







新聞熱點
疑難解答