對稱密碼 之 分組密碼的工作模式

分組密碼的工作模式

1。提出背景

分組密鑰輸入爲b位固定長度的明文分組和密鑰,輸出b位密文。當明文長度大於b位時就要對明文進行分組,每b位一組。那麼若用相同密鑰對多個分組加密會導致安全問題。因此提出各種工作模式,總結如下:
工作模式

2。 電碼本模式(Electronic Code Book,ECB)

對於給定的密鑰,任意b位明文有唯一密文與之對應。

加密: Cj = E(K, Pj) j = 1,…,N
解密: Pj = D(K, Cj) j = 1,…,N

電碼本
如圖所示,加密所用密鑰爲K,對於確定的K有唯一密文Cj與明文Pj對應。但當明文Pj=pi時,則輸入P與K均相等,故輸出C也想等。總結特點如下:

  • 適合數據較少的情況;
  • 最重要的特徵是一段信息若有幾個相同的明文組,則密文也將出現幾個相同的密文組;
  • 對於長信息不適合:若信息非結構化,密碼分析者可利用規律性特徵破譯;

3。密文分組鏈接模式(Cipher Block Chaining,CBC)

爲解決長信息可利用規律性特徵破譯的缺陷,提出CBC模式。該模式加密算法輸入爲當前明文分組和上一個密文分組的異或,使用的密鑰是相同的。如此,若分組相同也看不出來。
注:CBC要求如果最後分組不完整,則需要填充至滿分組。
加密解密如下:
CBC加解密
IV必須爲收發雙方共享且第三方無法預測。
爲最大程度安全,IV不能不經授權而修改。原因如下:
攻擊者可以欺騙接受者,讓他使用不同的IV,接着攻擊者就能夠把明文的第一個分組的某些爲取反。

模式如下:
密文分組鏈接

4。密文反饋模式(Cipher Feedback,CFB)

可將分組密碼當作流密碼使用。流密碼不需要將最後分組填充到滿分組。但注意,CFB和流密碼的典型構造並不一致:
典型流密碼:輸入某個初始值和密鑰,輸出位流,這個位流再和明文位進行異或運算。
CFB模式:與明文異或的位流是與明文相關的。
流密碼的性質之一:明文是8位字符,則要發送的也是8位字符,加密時也用8位。
CFB工作模式:
CFB工作模式
解釋:加密函數的輸入爲b位移位寄存器,初始值爲IV。1)加密函數輸出最左邊的s位與明文第一個分段P1異或得到密文的第一個單元;2)將C1發出去,移位寄存器左移s位,C1填入寄存器最右邊s位。直到所有明文被加密完。解密時:收到的密文單元與加密函數的輸出異或得到明文。
加密:這裏寫圖片描述
解密:這裏寫圖片描述
CFB模式定義:
CFB模式
注:MSBs(X):X的左邊s位。
LSBb-s(X) :X的右邊剩餘b-s位。

5。輸出反饋模式(Output FeedBack,OFB)

結構與CFB相似:
OFB:用加密函數的輸出填充移位寄存器;
CFB:用密文單元來填充移位寄存器;
OFB模式:
OFB
定義:
OFB
OFB優點:傳輸過程中某位發生錯誤不會影響其他位,如C1中有一位發生錯誤,致影響P1恢復;而CFB中C1還座位了移位寄存器的輸入,後續將受到影響。
OFB缺點:抗消息流竄改能力較低。
注:初始K應爲時變值。

6。計數器模式(Counter,CTR)

常用於:ATM(異步傳輸模式)網絡安全和IPsec。
步驟:
1)計數器首先被初始化爲某一值;
2)隨着消息塊的增加計數器的值加1(模2^b,b爲分組長度);
3)加密時:計數器加密後與明文分組異或 —> 密文分組;
4)解密時:使用具有相同值的計數器序列,用加密後的計數器的值與密文分組異或—>明文分組。
給定計數器序列Ti,定義CTR模式:
CTR
模式圖:
這裏寫圖片描述

7。總結

到此爲止幾種常見的加密模式就介紹完了,主要涉及:

  1. 電碼本模式(ECB):最簡單的,一組明文與一組密文一一對應,但如果兩組明文內容相同則密文也相同,導致可以利用統計學規律進行破解;
  2. 密文分組鏈接模式(CBC):加密算法的輸入爲該組明文與上組密文的異或,這就解決了ECB中可利用統計規律破解的漏洞;
  3. 密文反饋模式(CFB):利用流密碼的方式對明文進行加密,將密文裝入移位寄存器。將移位寄存器的最左s位加密後與明文加密後輸出,並裝入移位寄存器後面;
  4. 輸出反饋模式(OFB):利用流密碼的方式對銘文進行加密,與CFB不同的是,將加密函數的輸出裝入移位寄存器,其他與CFB相同;
  5. 計數器模式(CTR):利用計數器作爲加密函數的輸入後與明文異或。

由上看出,很多算法對於初始值的“時變性“非常看重,那麼如何實現呢?一種很常用的方法叫做“僞隨機數“技術。書中第七章專門有講到,本系列文章就不記錄了。
那麼到此爲止對稱密碼部分就簡單介紹完了,從下一講就開始非對稱密鑰的學習了,首先介紹一些相關數論知識(素數,歐拉定理,費馬定理等),公鑰密碼學與RSA,密鑰管理等知識。我們下期再見!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章