分組密碼的工作模式

簡(jiǎn)介

密碼學(xué)中,分組(block)密碼的工作模式(mode of operation)允許使用同一個(gè)分組密碼密鑰對(duì)多于一塊的數(shù)據(jù)進(jìn)行加密,并保證其安全性。
分組密碼自身只能加密長(zhǎng)度等于密碼分組長(zhǎng)度的單塊數(shù)據(jù),若要加密變長(zhǎng)數(shù)據(jù),則數(shù)據(jù)必須先被劃分為一些單獨(dú)的密碼塊。通常而言,最后一塊數(shù)據(jù)也需要使用合適填充方式將數(shù)據(jù)擴(kuò)展到匹配密碼塊大小的長(zhǎng)度。

工作模式總論

  1. ECB模式(Electronic codebook)電子密碼本模式

    • 優(yōu)點(diǎn)
      1. 由于每塊數(shù)據(jù)的加密是獨(dú)立的因此加密和解密都可以并行計(jì)算
    • 缺點(diǎn)
      1. 同樣的平文塊會(huì)被加密成相同的密文塊;因此,它不能很好的隱藏?cái)?shù)據(jù)模式
      2. 不是很適合對(duì)流數(shù)據(jù)進(jìn)行加密
      3. 消息必須被填充到塊大小的整數(shù)倍
  2. CBC模式(Cipher-block chaining)密碼塊鏈接

    • 優(yōu)點(diǎn)
      1. CBC模式相比ECB有更高的保密性
      2. 解密可以并行進(jìn)行
    • 缺點(diǎn)
      1. 對(duì)每個(gè)數(shù)據(jù)塊的加密依賴與前一個(gè)數(shù)據(jù)塊的加密所以加密無(wú)法并行
      2. 不是很適合對(duì)流數(shù)據(jù)進(jìn)行加密
      3. 消息必須被填充到塊大小的整數(shù)倍
  3. CFB模式(Cipher feedback)密文反饋模式

    • 優(yōu)點(diǎn)
      1. 非常適合對(duì)流數(shù)據(jù)進(jìn)行加密,消息無(wú)需填充
      2. 解密可以并行計(jì)算
      3. 將塊密碼變?yōu)樽酝降牧髅艽a
    • 缺點(diǎn)
      1. 加密過(guò)程不能并行化
  4. OFB模式(Output feedback)輸出反饋模式

    • 優(yōu)點(diǎn)
      1. 只需要使用塊密碼進(jìn)行加密操作,且消息無(wú)需進(jìn)行填充
      2. 將塊密碼變成同步的流密碼,不用一直使用一個(gè)密鑰換
      3. 加密解密可以進(jìn)行一定程度的并行(需要先初始化密鑰)
    • 缺點(diǎn)
      1. 加密過(guò)程不能完全并行化
      2. 解密也可以完全并行計(jì)算
  5. CTR模式(Counter mode)整數(shù)計(jì)數(shù)模式

    • 優(yōu)點(diǎn)
      1. 加解密都可以并行化
    • 缺點(diǎn)
      1. 沒(méi)有真正見(jiàn)到使用,估計(jì)counter的實(shí)現(xiàn)要求一致性

具體介紹

概念

  1. 向量IV:在分組加密模式中有些時(shí)候需要初始化向量,來(lái)增加擾動(dòng):在區(qū)塊加密中,初始化向量的長(zhǎng)度通常就等于一個(gè)區(qū)塊的大小
  2. 密文的長(zhǎng)多和加密前明文的長(zhǎng)度(加上補(bǔ)位的長(zhǎng)度)是相等的,是指密文16進(jìn)制話前哈
  3. 補(bǔ)位方式有多種

?ECB模式

加密
需要加密的消息按照塊密碼的塊大小被分為數(shù)個(gè)塊,并對(duì)每個(gè)塊進(jìn)行獨(dú)立加密。
每個(gè)塊的大小取決于密鑰的大小,這樣的話就會(huì)產(chǎn)生補(bǔ)位的需求。

解密:可以并行執(zhí)行

?CBC模式

1976年,IBM發(fā)明了密碼分組鏈接(CBC,Cipher-block chaining)模式[14]。在CBC模式中,每個(gè)平文塊先與前一個(gè)密文塊進(jìn)行異或后,再進(jìn)行加密。在這種方法中,每個(gè)密文塊都依賴于它前面的所有平文塊。同時(shí),為了保證每條消息的唯一性,在第一個(gè)塊中需要使用初始化向量。
加密
加密過(guò)程是串行的,無(wú)法被并行化,而且消息必須被填充到塊大小的整數(shù)倍
在加密時(shí),平文中的微小改變會(huì)導(dǎo)致其后的全部密文塊發(fā)生改變

解密:只是相鄰的兩個(gè)塊有依賴,所以可以并行解密

?CFB模式

密文反饋(CFB,Cipher feedback)模式類似于CBC,可以將塊密碼變?yōu)樽酝降牧髅艽a;工作過(guò)程亦非常相似,CFB的解密過(guò)程幾乎就是顛倒的CBC的加密過(guò)程

加密:加密過(guò)程是串行化的。
FB擁有一些CBC所不具備的特性,這些特性與OFB和CTR的流模式相似:只需要使用塊密碼進(jìn)行加密操作,且消息無(wú)需進(jìn)行填充

解密:解密的過(guò)程:也是相鄰的加密快有依賴,所以可以并行計(jì)算

?OFB模式

輸出反饋模式(Output feedback, OFB)可以將塊密碼變成同步的流密碼。它產(chǎn)生密鑰流的塊,然后將其與平文塊進(jìn)行異或,得到密文。與其它流密碼一樣,密文中一個(gè)位的翻轉(zhuǎn)會(huì)使平文中同樣位置的位也產(chǎn)生翻轉(zhuǎn)。這種特性使得許多錯(cuò)誤校正碼,例如奇偶校驗(yàn)位,即使在加密前計(jì)算而在加密后進(jìn)行校驗(yàn)也可以得出正確結(jié)果。
加密:密鑰只是和key和iv有關(guān)系,無(wú)法直接進(jìn)行并行化處理,但是可以先對(duì)IV處理,然后將平文進(jìn)行并行化異或處理

解密:也是有限狀態(tài)的并行,同加密

?CTR模式

CTR模式(Counter mode,CM)也被稱為ICM模式(Integer Counter Mode,整數(shù)計(jì)數(shù)模式)和SIC模式(Segmented Integer Counter)。與OFB相似,CTR將塊密碼變?yōu)榱髅艽a。它通過(guò)遞增一個(gè)加密計(jì)數(shù)器以產(chǎn)生連續(xù)的密鑰流,其中,計(jì)數(shù)器可以是任意保證長(zhǎng)時(shí)間不產(chǎn)生重復(fù)輸出的函數(shù),但使用一個(gè)普通的計(jì)數(shù)器是最簡(jiǎn)單和最常見(jiàn)的做法
加密

解密

感覺(jué)這個(gè)模式需要定義加密計(jì)數(shù)器的規(guī)則,相對(duì)來(lái)說(shuō)比較麻煩,實(shí)例中見(jiàn)的比較少。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容