圖解密碼技術(shù)學(xué)習(xí)-第四章 分組密碼的模式

概述

什么是模式

第三章介紹的對稱密碼算法DES贮匕、AES都屬于分組密碼,分組密碼的特點是分組的長度是固定的喜德。但是由于明文的長度不固定且基本超過分組長度逛绵,所以就需要進(jìn)行多輪的迭代加密。
模式就是指的多輪迭代的方式频伤。

模式的種類

目前模式分成5種:

  • ECB模式:Electronic CodeBook mode(電子密碼本模式)
  • CBC模式:Cipher Block Chaining mode(密碼分組鏈接模式)
  • CFB模式:Cipher FeedBack mode(密文反饋模式)
  • OFB模式:Output FeedBack mode(輸出反饋模式)
  • CTR模式:CounTeR mode(計數(shù)器模式)

ECB模式

概述

ECB模式應(yīng)該是最直觀的模式恳谎,簡單的說就是直接將每個分組進(jìn)行加密即可。
假設(shè)有一個35字節(jié)的明文憋肖,如果使用AES的算法因痛,則分成三個分組。其中第三個分組需要填充成16字節(jié)岸更。
然后針對這3個分組分別進(jìn)行AES加密鸵膏,加密完成后,組合起來就成為密文怎炊。

風(fēng)險

  • 相同明文加密出來的密文是相同的谭企。因為參與加密的只有明文和密鑰,所以只能得出相同的密文评肆。這個可以給攻擊者通過推測猜測出明文的內(nèi)容债查。
  • 存在被篡改的風(fēng)險,可以實現(xiàn)無需破解密文瓜挽,即可以操縱明文盹廷。
    這個風(fēng)險的根本原因是因為,在加密的過程中久橙,每個分組是互相獨立的速和。
    例子:
    假設(shè)有明文被分成三個分組歹垫,恰好代表三個意思:
    分組1:付款人
    分組2:收款人
    分組3:金額
    怎樣通過密文操縱明文呢?
    我們可以截獲密文颠放,然后將密文的分組2和分組1調(diào)整一下先后順序排惨,先發(fā)送分組2,再發(fā)送分組1碰凶。這樣付款人和收款人就互相調(diào)換了位置暮芭。

CBC模式

概述

  • CBC模式跟上面的ECB模式的最大區(qū)別是,分組的加密不再是互相無關(guān)的獨立行為欲低,而是互相影響辕宏。
    簡單的說,當(dāng)前分組不再直接進(jìn)行加密運算砾莱,而是先和前一個分組加密后的密文進(jìn)行XOR運算后瑞筐,再進(jìn)行加密運算。對于第一個分組腊瑟,則給定一個初始化向量進(jìn)行XOR運算聚假。
    因為前后分組是鏈接在一起的,所以才被稱為鏈接模式闰非。
  • 解密的過程是密文用密鑰解密后膘格,再和前一個分組的密文進(jìn)行XOR得到最終的明文。如果是第一個分組财松,則和初始化向量進(jìn)行XOR運算即可瘪贱。
  • 解密的過程實際上只需要知道密鑰即可,因為前一個分組的密文和本分組的密文是早就存在的辆毡,所以解密的過程支持分布式運算菜秦。

風(fēng)險

  • 如果其中一個密文的分組受到損壞,則會影響到此密文分組對應(yīng)的明文解密舶掖,以及其后面一個分組的明文解密球昨。因為這個密文分組參與到了后面分組的密文加解密的過程。
  • 如果對初始化向量的某個比特進(jìn)行反轉(zhuǎn)访锻,則會對第一個分組的明文造成攻擊,使得其明文的對應(yīng)的比特反轉(zhuǎn)闹获,原因是參與了異或期犬。
  • 如果是對某個密文進(jìn)行比特反轉(zhuǎn),會造成其后面的分組對應(yīng)比特反轉(zhuǎn)避诽,但同時會造成其對應(yīng)明文的多個比特進(jìn)行反轉(zhuǎn)龟虎。
  • 對CBC模式的攻擊效果基本是破壞性的,相對而言ECB模式的攻擊效果更明顯沙庐。

CFB模式

概述

  • 相對CBC模式而言鲤妥,不變的地方是前面分組的結(jié)果仍舊參與到后面分組的加解密過程中佳吞,形成一個鏈?zhǔn)浇Y(jié)構(gòu)。
    改變的地方是參與的方式棉安,更確切的說是加密的對象底扳。
  • CBC模式是分組1的密文和分組2的明文XOR后,再針對XOR的結(jié)果進(jìn)行加密贡耽。
    而CFB模式是衷模,分組的明文不參與到加密過程中!
  • 加密過程是蒲赂。分組1輸出的密文進(jìn)行加密阱冶,然后和分組2的明文進(jìn)行XOR運算,得到分組2的密文滥嘴。
    對于第一個分組木蹬,則是用初始化向量進(jìn)行加密后,再和第一個分組的明文進(jìn)行XOR若皱,得到密文镊叁。
  • 解密的過程,不用解密是尖。
    對于第一個分組而言意系,解密是把初始化向量進(jìn)行加密,然后和密文進(jìn)行XOR饺汹,就得到了明文蛔添。其他分組類似,只是初始化向量換成其前一個分組的密文兜辞。
  • 和CBC模式一樣迎瞧,解密的過程支持分布式運算。

風(fēng)險

  • 重放攻擊逸吵。CFB模式存在著被重放攻擊的可能性的凶硅。
    1、假設(shè)發(fā)送了4個分組扫皱,其中攻擊者保存了后三個分組(分組2足绅、3、4)韩脑。
    2氢妈、再假設(shè)又發(fā)送了4個分組,而且加密密鑰不變段多。
    3首量、攻擊者將今天的后三個分組用之前保存的分組進(jìn)行替換。
    4、接收者接收到了這4個分組之后加缘,進(jìn)行解密操作會得到什么情況呢鸭叙?
    4.1 分組2的解密一定會失敗。因為分組2的解密依賴于分組1的密文拣宏,但是由于分組1的密文已經(jīng)變化沈贝,所以分組2必然失敗。
    4.2 分組3蚀浆、分組4的解密會成功缀程,成功解密成之前保存的明文。因為分組3的解密依賴于分組2的密文市俊,這個由于已經(jīng)保存杨凑,所以完全沒有變化,加上加密密鑰不變摆昧,自然解密是成功的撩满。同樣的道理也發(fā)生在分組4上。
    至此绅你,針對CFB模式的重放攻擊就完成了伺帘。
  • 和CBC模式一樣,如果某一個分組的密文存在某個比特的問題忌锯,那么會影響此分組的明文和后一個分組的明文解密伪嫁。

能夠造成重放攻擊的根本原因在于,密文本身作為加密活動的唯一兩個因子偶垮,而攻擊者恰恰能獲取到這兩個因子

OFB模式

概述

  • OFB模式和CFB模式相同的地方是张咳,都不是針對明文本身進(jìn)行加密,明文只是作為XOR運算的因子參與進(jìn)來似舵。
  • OFB模式和CFB模式最大的區(qū)別在于脚猾,密文不再參與到XOR的運算中來,而僅僅是通過初始化向量產(chǎn)生的數(shù)據(jù)與明文進(jìn)行XOR運算得到密文砚哗。
  • 加密流程龙助。
    初始化向量進(jìn)行加密得到加密向量1,和分組1的明文進(jìn)行XOR運算蛛芥,得到密文1提鸟;
    加密向量1再進(jìn)行加密得到加密向量2,和分組2的明文進(jìn)行XOR運算仅淑,得到密文2.
    以此類推称勋。
  • 解密流程。向量的運算跟加密一樣漓糙,只是跟密文進(jìn)行XOR得到明文罷了铣缠。

特點

  • 生成XOR對象的過程跟明文沒有關(guān)系烘嘱,是直接通過初始化向量得到的昆禽。這可以被稱為是密鑰流蝗蛙。
  • CFB模式的那種重放攻擊的風(fēng)險消失了,因為密文沒有參與到XOR運算中來醉鳖。
  • 運算更加高效捡硅。在CBC模式和CFB模式中,后面的分組加密是必須等待前面的分組加密完成后才能進(jìn)行盗棵,因為需要等待前一個分組的密文參與運算壮韭。但OFB模式中參與運算的不是前一個分組的密文,而是通過初始化向量得到的密鑰流纹因。所以完全可以提前就準(zhǔn)備好密鑰流喷屋,然后快速進(jìn)行分組加密。也就是說生成密鑰流和XOR遠(yuǎn)算可以并行
  • 由于密文不再參與其他分組的加解密過程瞭恰,所以如果一個分組密文的某個比特受損屯曹,則不會再影響到其他分組的明文結(jié)果。

CTR模式

概述

  • CTR和OFB的相同點在于惊畏,密文同樣不參與到XOR的運算中來恶耽。
  • CTR和OFB的不同點在于,OFB的密鑰流是通過初始化向量的不斷加密得到颜启,而CTR是通過生成計數(shù)器不斷增長+1后加密得到偷俭。
  • CTR計數(shù)器,長度是128比特(16字節(jié))缰盏。前8個字節(jié)是叫做nonce的初始值涌萤,這個值每次加密都不相同。后8個字節(jié)則是分組序號乳规,也就是不斷+1得到的值形葬。
  • 加密的過程就是生成一個初始的計數(shù)器。假設(shè)有8個分組暮的,就通過初始計數(shù)器不斷+1得到8個計數(shù)器值笙以,然后再加密得到密鑰流。剩下的步驟和OFB一樣冻辩。

特點

  • 支持并行計算猖腕。OFB模式中,密鑰流必須由前一個密鑰密文加密得到恨闪,所以只能單線程等待倘感。CTR模式中,計數(shù)器可以通過分組個數(shù)先準(zhǔn)備好咙咽,然后后續(xù)的加密過程是相互獨立的老玛,所以可以支持并行運算。
  • 速度最快。支持并行運算自然就加快了速度蜡豹。
  • 由于密文不再參與其他分組的加解密過程麸粮,所以如果一個分組密文的某個比特受損,則不會再影響到其他分組的明文結(jié)果镜廉。

分組模式的實際使用

  • ECB模式弄诲,這個已經(jīng)禁止使用。
  • CBC模式娇唯,推薦使用齐遵。并沒有什么特別的風(fēng)險(從原理上分析,CFB模式被重放攻擊的條件下塔插,其實CBC模式應(yīng)該也會被重放攻擊梗摇,但是不知道為什么書中沒有提到。)想许,但是也不太清楚為什么有了CTR留美,還需要推薦CBC,特別的優(yōu)勢沒看到伸刃。
  • CFB模式谎砾,目前不使用,推薦用CTR替代捧颅。這個其實是OFB/CTR 和 CBC之間的一個模式景图。
  • OFB模式,和CTR比較起來幾乎是一回事碉哑。OFB有的CTR都有挚币,CTR有的OFB沒有。所以不適用扣典,推薦CTR替代妆毕。
  • CTR模式,推薦使用贮尖。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笛粘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子湿硝,更是在濱河造成了極大的恐慌薪前,老刑警劉巖点把,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠印,死亡現(xiàn)場離奇詭異在塔,居然都是意外死亡蓝牲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門澡绩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锤灿,“玉大人第股,你說我怎么就攤上這事『鹩担” “怎么了拱她?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扔罪。 經(jīng)常有香客問我,道長桶雀,這世上最難降的妖魔是什么矿酵? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮矗积,結(jié)果婚禮上全肮,老公的妹妹穿的比我還像新娘。我一直安慰自己棘捣,他們只是感情好辜腺,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乍恐,像睡著了一般评疗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茵烈,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天百匆,我揣著相機與錄音,去河邊找鬼呜投。 笑死加匈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仑荐。 我是一名探鬼主播雕拼,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粘招!你這毒婦竟也來了啥寇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤洒扎,失蹤者是張志新(化名)和其女友劉穎示姿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逊笆,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡栈戳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了难裆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片子檀。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡镊掖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褂痰,到底是詐尸還是另有隱情亩进,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布缩歪,位于F島的核電站归薛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏匪蝙。R本人自食惡果不足惜主籍,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逛球。 院中可真熱鬧千元,春花似錦、人聲如沸颤绕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奥务。三九已至物独,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氯葬,已是汗流浹背议纯。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溢谤,地道東北人瞻凤。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像世杀,于是被迫代替她去往敵國和親阀参。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 本文章是對《圖解密碼技術(shù)》一書第一部分的一個總結(jié)瞻坝。 密碼分類 密碼算法需要密鑰蛛壳,根據(jù)密鑰的使用方法,可以將密...
    發(fā)仔很忙閱讀 1,399評論 1 2
  • 對稱加密算法所刀,即加密和解密使用一樣的密鑰的加解密算法衙荐。分組密碼(block cipher),是每次只能處理特定長度...
    linjinhe閱讀 11,897評論 3 16
  • 前言 《圖解密碼技術(shù)》一書介紹了很多關(guān)于密碼的知識浮创,通讀一遍需要不少時間忧吟。為了方便學(xué)習(xí),我對書中關(guān)鍵的部分進(jìn)行了總...
    咖枯閱讀 7,149評論 1 25
  • 分組密碼和流密碼 分組密碼:每次只能處理特定bit長度的一塊數(shù)據(jù)的密碼算法斩披,這里的“一塊”就是分組(block)溜族。...
    TonyLiu623閱讀 1,814評論 0 0
  • 必要的基礎(chǔ)知識 編碼 將現(xiàn)實世界的內(nèi)容(文字讹俊、圖片、視頻等所有的信息)轉(zhuǎn)換成比特序列的過程就叫做編碼煌抒。例如仍劈,ASC...
    JMasche閱讀 1,325評論 0 2