這篇隨筆將介紹對稱式加密中分組密碼的工作模式 -- RT。
工作模式:
其實很愚鈍,今天才突然明白這個模式是什麼意思?
所謂模式,就是方法,就是加密的方法,既然是對稱式加密,解密方法也包括在內了。在分組密碼理論上,簡單的說就是一個分組經過加密,產生一個對應的分組密文,至於如何加密,沒有限制,模式就對應這裡的“如何加密”,從A點到B點,我們可以有多種走法,供君選擇,可以是直接A到B,也可以是A到C再到B。在軟體結構上也常如此,上層可能不需要知道底層如何工作,下層也不認識上層,各自做自己的分內事就好了。不知道設計者是否就是出於這樣的考慮,才提出這樣的概念。正如哲學所說:機制與策略分離,果真如此。為什麼今天才想通,怪!可能是把密碼編譯演算法(cipher algorithm)與模式(mode)弄混了吧。模式中會用到密碼編譯演算法,密碼編譯演算法屬於模式中的一個環節。常見的區塊編碼器演算法有: DES、3DES和AES。它們都有可與之搭配的模式,參照[1]。
模式分類:
1)ECB(Electronic CodeBook)
A. 所有分組使用同一密鑰,相同明文產生相同的密文,因而說是最簡單的分組模式。
B. 加密函數加密,解密函數解密。
2) CBC(Cipher Block Chaining)
A. 所有分組使用同一密鑰;但是,密碼編譯演算法的輸入是本次分組明文與前次密文的異或(第一次需要IV),這就克服了ECB相同明文產生相同密文的缺陷。
B. 加密函數加密,解密函數解密。
3) CFB(Cipher FeedBack)
A. 該模式的每個分組可以使用不同的密鑰,也就成了流式密碼,因而分組長度可以不全相等;
B. IV是一個移位寄存器,並且每次加解密都需要使用;
C. 類似CBC的鏈式結構;
D. 加密函數加密,加密函數解密。
4)OFB(Output FeedBack)
A. 很像CFB,只是使用密碼演算法的輸出作為下一個分組的輸入;
5) CTR
A. 使用唯一的COUNTER,經過密碼演算法得到的輸出(流密鑰)與明文異或得到密文,CTR有CFB的類似性質;
B. 不同於連結式的模式,該模式可以並存執行,因而效率很高;
C. 加密函數加密,加密函數解密。
--- 以上5種模式是NIST推薦的分組Cipher 模式,見[1] ---
6) CTS
7) LRW
A. 名字很怪,是3個作者名字的合集;
B. 需要2個key;具體過程參考[3]中圖。
8) PCBC
9) XTS
References:
[1]. NIST Special Publication 800-38A 2001 Edition
[2]. http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
[3]. Draft proposal for tweakable narrow-block encryption
--- 內容需要慢慢補充 ---