分組密碼的模式之 CTR模式
CTR模式
?CTR模式的全稱 CountTeR模式(計(jì)數(shù)器模式)彭谁。CTR模式是一種通過(guò)將逐此累加的計(jì)數(shù)器進(jìn)行加密來(lái)生成密鑰流的流密碼肛捍。
?CTR模式中椭微,每個(gè)分組對(duì)應(yīng)一個(gè)逐次累加的計(jì)數(shù)器洞坑,并通過(guò)對(duì)計(jì)數(shù)器進(jìn)行加密來(lái)生成密鑰流。也就是說(shuō)蝇率,最終的密文分組是通過(guò)將計(jì)數(shù)器得到的比特序列迟杂,與明文分組進(jìn)行XOR而得到的。
計(jì)數(shù)器的生成方法
?每次加密時(shí)都會(huì)生成一個(gè)不同值(nonce)來(lái)作為計(jì)數(shù)器的初始值本慕。當(dāng)分組長(zhǎng)度為128比特(16字節(jié))時(shí)排拷,計(jì)數(shù)器的初始值可能像下面這樣的形式
其中前8個(gè)字節(jié)為nonce,這個(gè)值在每次加密必須都是不同的锅尘。后8個(gè)字節(jié)為分組序號(hào)监氢,這個(gè)部分會(huì)逐次累加的。在加密過(guò)程中鉴象,計(jì)數(shù)器的值會(huì)產(chǎn)生如下變化忙菠。
按照上述生成方法,可以保證計(jì)數(shù)器的值在每次都不同纺弊。由于計(jì)數(shù)器的值每次都不同牛欢,因此每個(gè)分組中將計(jì)數(shù)器進(jìn)行加密所得到的密鑰流也是不同的。也就是說(shuō)淆游,這種方法就是用分組密碼來(lái)模擬生成隨機(jī)的比特序列傍睹。
OFB模式與CTR模式的對(duì)比
?CTR模式和OFB模式上一樣,都屬于流密碼犹菱。如果我們將單個(gè)的分組的加密過(guò)程拿出來(lái)拾稳,那么OFB模式和CTR模式之間的差異還是很容易理解的。OFB模式是將加密的輸出反饋到輸入腊脱,而CTR模式則是將計(jì)數(shù)器的值用作輸入访得。
CTR模式的特點(diǎn)
?CTR模式的加密和解密使用了完全相同的結(jié)構(gòu),因此在程序?qū)崿F(xiàn)上比較容易。這一特點(diǎn)和同為流密碼的OFB模式是一樣的悍抑。
?CTR模式中可以以任意順序?qū)Ψ纸M進(jìn)行加密和解密鳄炉,因此在加密和解密時(shí)需要用到“計(jì)數(shù)器”的值可以由nonce和分組序號(hào)直接計(jì)算出來(lái)。這一性質(zhì)是OFB模式所不具備的搜骡。
?能夠以任意順序處理分組拂盯,就意味著能夠?qū)崿F(xiàn)并行計(jì)算。在職場(chǎng)并行計(jì)算的系統(tǒng)中记靡,CTR模式的速度是非程父停快的。
錯(cuò)誤與機(jī)密性
?CTR模式也具備和OFB模式差不都的性質(zhì)摸吠。假設(shè)CTR模式的密文分組有一個(gè)比特反轉(zhuǎn)了空凸,則解密后的明文分組中僅有與之對(duì)應(yīng)的比特會(huì)被反轉(zhuǎn),這一錯(cuò)誤不會(huì)放大蜕便。
?換言之劫恒,在CTR模式中,主動(dòng)攻擊者M(jìn)allory可以通過(guò)反轉(zhuǎn)密文分組中的某些比特轿腺,引起解密后明文中的相應(yīng)比特也發(fā)生反轉(zhuǎn)两嘴。這一弱點(diǎn)和OFB模式是相同的。
?不過(guò)CTR模式模式具備一個(gè)比OFB模式要好的性質(zhì)族壳。在OFB模式中憔辫,如果對(duì)密鑰流的一個(gè)分組進(jìn)行加密后期結(jié)果碰巧和加密前是相同的,那么這一分組之后的密鑰流就會(huì)變成同一值的不斷反復(fù)仿荆。在CTR模式中就不存在這一問(wèn)題贰您。
擴(kuò)展模式GCM模式
?在CTR模式的基礎(chǔ)上增加“認(rèn)證”功能的模式成為GCM模式(Galois/Counter Mode)這一模式能夠在CTR模式生成密文的同時(shí)生成用于認(rèn)證的信息,從而判斷“密文是否通過(guò)合法的加密過(guò)程”拢操。通過(guò)這一機(jī)制锦亦,即便主動(dòng)攻擊者發(fā)送偽造的密文,我們也能夠識(shí)別出“這密文是偽造的”令境。
該系列的主要內(nèi)容來(lái)自《圖解密碼技術(shù)第三版》
我只是知識(shí)的搬運(yùn)工
文章中的插圖來(lái)源于原著