分組密碼工作模式

電子密碼本(ECB)

最簡(jiǎn)單的加密模式即為電子密碼本(Electronic codebook,ECB)模式。需要加密的消息按照塊密碼的塊大小被分為數(shù)個(gè)塊,并對(duì)每個(gè)塊進(jìn)行獨(dú)立加密。

ECB

本方法的缺點(diǎn)在于同樣的明文塊會(huì)被加密成相同的密文塊;因此,它不能很好的隱藏?cái)?shù)據(jù)模式。在某些場(chǎng)合,這種方法不能提供嚴(yán)格的數(shù)據(jù)保密性,因此并不推薦用于密碼協(xié)議中。
ECB模式也會(huì)導(dǎo)致使用它的協(xié)議不能提供數(shù)據(jù)完整性保護(hù),易受到重放攻擊的影響,因此每個(gè)塊是以完全相同的方式解密的。

密碼塊鏈接(CBC)

1976年,IBM發(fā)明了密碼分組鏈接(CBC,Cipher-block chaining)模式[14]。在CBC模式中,每個(gè)明文塊先與前一個(gè)密文塊進(jìn)行異或后,再進(jìn)行加密。在這種方法中,每個(gè)密文塊都依賴于它前面的所有明文塊。同時(shí),為了保證每條消息的唯一性,在第一個(gè)塊中需要使用初始化向量。

CBC1

CBC2

CBC是最為常用的工作模式。它的主要缺點(diǎn)在于加密過(guò)程是串行的,無(wú)法被并行化,而且消息必須被填充到塊大小的整數(shù)倍。解決后一個(gè)問(wèn)題的一種方法是利用密文竊取。
注意在加密時(shí),明文中的微小改變會(huì)導(dǎo)致其后的全部密文塊發(fā)生改變,而在解密時(shí),從兩個(gè)鄰接的密文塊中即可得到一個(gè)明文塊。因此,解密過(guò)程可以被并行化,而解密時(shí),密文中一位的改變只會(huì)導(dǎo)致其對(duì)應(yīng)的明文塊完全改變和下一個(gè)明文塊中對(duì)應(yīng)位發(fā)生改變,不會(huì)影響到其它明文的內(nèi)容。

填充密碼塊鏈接(PCBC)

填充密碼塊鏈接PCBC,Propagating cipher-block chaining)或稱為明文密碼塊鏈接(Plaintext cipher-block chaining)[15][16],是一種可以使密文中的微小更改在解密時(shí)導(dǎo)致明文大部分錯(cuò)誤的模式,并在加密的時(shí)候也具有同樣的特性。

PCBC

PCBC主要用于Kerberos v4WASTE中,而在其它場(chǎng)合的應(yīng)用較少。對(duì)于使用PCBC加密的消息,互換兩個(gè)鄰接的密文塊不會(huì)對(duì)后續(xù)塊的解密造成影響[17]。正因?yàn)檫@個(gè)特性,Kerberos v5沒(méi)有使用PCBC。

密文反饋(CFB)

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

CFB1

CFB2

與CBC相似,明文的改變會(huì)影響接下來(lái)所有的密文,因此加密過(guò)程不能并行化;而同樣的,與CBC類似,解密過(guò)程是可以并行化的。在解密時(shí),密文中一位數(shù)據(jù)的改變僅會(huì)影響兩個(gè)明文塊:對(duì)應(yīng)明文塊中的一位數(shù)據(jù)與下一塊中全部的數(shù)據(jù),而之后的數(shù)據(jù)將恢復(fù)正常。

CFB擁有一些CBC所不具備的特性,這些特性與OFB和CTR的流模式相似:只需要使用塊密碼進(jìn)行加密操作,且消息無(wú)需進(jìn)行填充(雖然密文竊取也允許數(shù)據(jù)不進(jìn)行填充)

輸出反饋(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é)果。
由于XOR操作的對(duì)稱性,加密和解密操作是完全相同的:

image.png

image.png

image.png

每個(gè)使用OFB的輸出塊與其前面所有的輸出塊相關(guān),因此不能并行化處理。然而,由于明文和密文只在最終的異或過(guò)程中使用,因此可以事先對(duì)IV進(jìn)行加密,最后并行的將明文或密文進(jìn)行并行的異或處理。
可以利用輸入全0的CBC模式產(chǎn)生OFB模式的密鑰流。這種方法十分實(shí)用,因?yàn)榭梢岳每焖俚腃BC硬件實(shí)現(xiàn)來(lái)加速OFB模式的加密過(guò)程。

計(jì)數(shù)器模式(CTR)

CTR模式(Counter mode,CM)也被稱為ICM模式(Integer Counter Mode,整數(shù)計(jì)數(shù)模式)和SIC模式(Segmented Integer Counter)。
與OFB相似,CTR將塊密碼變?yōu)?a target="_blank" rel="nofollow">流密碼。它通過(guò)遞增一個(gè)加密計(jì)數(shù)器以產(chǎn)生連續(xù)的密鑰流,其中,計(jì)數(shù)器可以是任意保證長(zhǎng)時(shí)間不產(chǎn)生重復(fù)輸出的函數(shù),但使用一個(gè)普通的計(jì)數(shù)器是最簡(jiǎn)單和最常見的做法。使用簡(jiǎn)單的、定義好的輸入函數(shù)是有爭(zhēng)議的:批評(píng)者認(rèn)為它“有意的將密碼系統(tǒng)暴露在已知的、系統(tǒng)的輸入會(huì)造成不必要的風(fēng)險(xiǎn)”[18]。當(dāng)前,CTR已經(jīng)被廣泛的使用了,由輸入函數(shù)造成的問(wèn)題被認(rèn)為是使用的塊密碼的缺陷,而非CTR模式本身的弱點(diǎn)[19]。無(wú)論如何,有一些特別的攻擊方法,例如基于使用簡(jiǎn)單計(jì)數(shù)器作為輸入的硬件差錯(cuò)攻擊[20]。

CTR模式的特征類似于OFB,但它允許在解密時(shí)進(jìn)行隨機(jī)存取。由于加密和解密過(guò)程均可以進(jìn)行并行處理,CTR適合運(yùn)用于多處理器的硬件上。

注意圖中的“nonce”與其它圖中的IV(初始化向量)相同。IV、隨機(jī)數(shù)和計(jì)數(shù)器均可以通過(guò)連接,相加或異或使得相同明文產(chǎn)生不同的密文。

image.png

image.png

來(lái)源:維基百科

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 概述 什么是模式 第三章介紹的對(duì)稱密碼算法DES、AES都屬于分組密碼,分組密碼的特點(diǎn)是分組的長(zhǎng)度是固定的。但是由...
    JMasche閱讀 3,261評(píng)論 0 4
  • 簡(jiǎn)介 密碼學(xué)中,分組(block)密碼的工作模式(mode of operation)允許使用同一個(gè)分組密碼密鑰對(duì)...
    夜月行者閱讀 2,811評(píng)論 0 0
  • 3.分組密碼的模式 前面介紹的DES和AES都屬于分組密碼,它們只能加密固定長(zhǎng)度的明文。如果需要加密任意長(zhǎng)度的明文...
    husky_1閱讀 3,781評(píng)論 0 0
  • 重點(diǎn):分組密碼的設(shè)計(jì)思想分組密碼的基本特點(diǎn)AES、DES密碼算法AES和DES各自組成、每部分的實(shí)現(xiàn)過(guò)程以及特點(diǎn)A...
    七八音閱讀 2,912評(píng)論 1 2
  • 之前畫的都是成人版,今天挑戰(zhàn)一下Q版的小孩,最近好像這些小戲骨們很火,就跟風(fēng)畫一下! 我畫筆下的林黛玉是不是有點(diǎn)萌...
    半糖洛洛閱讀 1,219評(píng)論 0 6

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