作業模式是一項增強密碼演算法或使用演算法適應具體應用的技術,為了將分組密碼應用于各種各樣的實際應用,NIST(SP800-38A)定義了5種“作業模式”,這5中模式實際上覆寫了大量使用分組密碼的應用,

電碼本模式
一次處理一組明文分塊,每次使用相同的密鑰加密,如圖所示,

明文若長于b位,則可以簡單的將其分為b位一組的塊,如果有必要則對最后一塊進行填充,解密也是一次執行一塊,使用相同的密鑰,
ECB模式特別適合用于資料較少的情況,比如加密密鑰,比如傳輸一個DES或者AES的密鑰,可以選擇這種模式,
ECB模式中,如果一段訊息中有相同的明文組,那么密文也會出現相同的密文分組,
密文分組鏈接模式
為了克服ECB模式,需要對重復的明文分組加密成不同的密文分組,CBC模式下加密演算法的輸入是當前的明文組和上一個密文組的異或,使用相同的密鑰完成,這就相當于將所有的明文組鏈接起來,加密演算法的每次輸入與本明文組沒有固定的關系,如果重復的明文組,加密后看不出來,

解密時,每個密文分組分別進行解密,再與上一個密文異或即可恢復明文,
初始向量IV是和密文具有相同長度的資料分組,IV必須為收發雙發共享,但是第三方不可預測,特別的,對于任意的給定明文,在IV產生之前,不能預測和本明文有關聯的IV,為了最大程度的安全,IV不能不經過授權就被修改,對IV先用ECB加密后再發送的方式可以實作這一要求,
密文反饋模式
流密碼不需要將明文填充到長度是分組長度的整數倍,且可以實時操作,密文反饋模式(CFB),輸出反饋模式(OFB),計數器模式(CTR)可以看做流密碼,但是分組密碼,流密碼的密文和明文是等長的,

加密函式:輸入b位的移位暫存器,值為初始化向量IV
加密函式輸出最左邊的s位與明文的第一個分段異或得到密文的第一個單元
,然后將密文發送出去接著移位暫存器左移s位,
填入移位暫存器的最右邊s位,
解密的時候,將收到的密文單元與加密函式的輸出異或得到明文單元,
輸出反饋模式
用加密函式的輸出填充移位暫存器,對整個明文和密文分組進行運算,而不是僅對s位的子集運算,

加密表示為
解密表示為
令分組長度為b位,如果最后一個分組包含u位,u<b,最后的輸出分組的最左邊的u位用來做異或運算,最后的輸出分組的其余b-u位丟棄不用,
OFB模式需要一個初始化向量IV,IV必須是一個時變值,即每次加密運算都是唯一的,加密輸出的分組僅僅依賴于密鑰和IV,而不依賴于明文,對于給定的密鑰和IV,用于和明文流進行異或運算的輸出位流是固定的,如果兩個不同的訊息在相同的地方有一個相同的明文分組,那么攻擊者就能夠判斷出那部分的輸出,
OFB的一個優點是輸出程序中,在某位上發生的錯誤不會影響其他位,缺點是抗訊息流篡改攻擊的能力不如CFB,即密文中的某位取反,恢復出的明文相應位也取反,所以攻擊者有辦法控制對恢復明文的改變,
OFB是典型流密碼的結構,密碼產生的位流是初始值和密鑰的函式,產生的位流和明文進行異或,位流和明文獨立,
計數器模式
計數器模式使用與明文分組規模相同的長度,SP 800-38A對此的唯一要求是加密不同的明文組計數器對于的值必須不同,

計數器首先被初始化為某一個值,然后隨著訊息塊的增加計數器的值加1,加密時,計數器加密后與明文分組異或得到密文分組,解密使用相同值的計數器序列,用加密后的計數器的值與密文分組異或來恢復明文分組,所以在解密的是必須知道初始計數器的值,
計數器初始值必須為時變值,使用相同密鑰加密的所有訊息必須各自具有不同的時變值,而且時變值必須唯一,保證時變值唯一的一個辦法是訊息計數器都增加1,即每個訊息的第一個計數器的值都要比前一條訊息的最后一個計數器的值多1,
計數器模式的優點
- 硬體效率:能并行處理多塊明文(密文)的加密(解密),吞吐量受限于并行度,
- 軟體效率:可以充分利用能夠支持并行特征的各類處理器,如大量的暫存器和SIMD
- 預處理:基本加密演算法執行不依賴明文或密文的輸入,如果有充分的存盤器可用,可以預處理加密輸出,
- 隨機訪問:明文或密文的分組能夠用一種隨機訪問的方式處理,
- 可證明安全性:能夠證明CTR模式的安全
- 簡單性:只要求實作加密演算法,不要求實作解密演算法,不需要實作解密密鑰擴展,
各個作業模式的反饋特征

OFB和CTR模式的輸出獨立于明文和密文,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/152249.html
標籤:其他
