
在實際應用中,DES由其加密算法說明的明文分組的大小,把數據分為多個64比特的加密區塊,再以區塊做單位,分別實施加密處理。若最終剩下不足一個區塊的大小,叫其為短塊。處理短塊的方法通常有填充法、序列密碼加密法、密文挪用技術。顺利获得數據加密時,每個加密區塊之間的關係劃分,可以分為以下4種加密模式。
1.電子密文方式(ECB)
ECB模式是分組密碼的基本工作方式。在該模式下,每個加密區塊按順序進行獨立加密,得到獨立的密文區塊,每個加密區塊的結果都不會被其他區塊影響,用此方式,可用平行處理實施加速加、解密運算,且在網絡傳輸時任何一個區塊出現錯誤,也不存在影響到其他區塊傳輸的結果,這是該模式的好處。
ECB模式的不足是易使明文的數據模式暴露。在計算機系統里,很多數據均存在固有模式,這主要是由數據結構與數據冗餘導致的。若無任何措施,針對在需加密的文件里出現多回的明文,這部分明文如果剛好是加密區塊的大小,則可能會得到一樣的密文,且密文內容如果受到剪貼、代替,也很難被發現。
2.密文分組連結方式(CBC)
第一個加密區塊先與初始向量做異或運算,再進行加密。其他每個加密區塊在加密之前,必須與前一個加密區塊的密文做一次異或運算,再進行加密。每個區塊的加密結果都會被前面全部區塊內容的影響,因此儘管在明文里出現多次一樣的明文,也會得到不一樣的密文。
還有,密文內容如果遇到剪貼、替換,或於網絡傳輸時出現錯誤,則它後面的密文會被破壞,不能順利解密還原,這是這一模式的優點也是缺點。
其次,一定得選取1個初始向量來加密第1個區塊,且加密作業時不能用平行處理加速加密運算,不過解密運算,做異或的加密區塊結果已經有了,則還可用平行處理加速。
3.密文反饋方式(CFB)
可把區塊加密算法作流密碼加密器用,流密碼加密器可由實際需要,每回加密區塊的大小能自行確定,每個區塊的明文與之前區塊加密後的密文異或後,變成密文。因此,每一個區塊的加密結果也受之前所有區塊內容的影響,也會使在明文中出現多回一樣的明文都得到不一樣的密文。在這個模式下,和CBC模式相同,為了加密第1個區塊,一定得選1個初始向量,且其必須只有一個、每次加密時肯定不一樣,也很難用平行處理加快加密作業。
4.輸出反饋模式(OFB)
OFB與CFB大致相同,唯一的差異是每個區塊的明文與之前區塊加密後的密文做異或後產生密文。之前區塊加密後的密文是獨立產生的,每個區塊的加密結果不會被前面全部區塊內容影響,若存在區塊在傳輸中丟失或出現錯誤,不至於不能完全解密,但也會使在明文中出現多回的明文,都得到同樣的密文,也易遭遇剪接攻擊。而在此模式下,為了加密第1個區塊,一定得設置1個初始向量,要不然很難用平行處理加快加密作業。
容易看出,以上4種操作模式有不同的優點和缺點。在ECB與OFB中改變一個明文塊會使有關的密文塊發生改變,但其他密文塊不變。有些情況下這可能是一個好的特性。另一方面,在CBC與CFB中改變一個明文塊,那麼對應的密文塊及它後面的全部密文塊會改變,此特性代表CBC與CFB模式適合於鑑別。更明確地說,這些模式能用來產生消息鑑別碼,將其附在明文塊序列的後面可保護消息的完整性。
