密碼學(xué)第一次實(shí)驗(yàn)報(bào)告:DES算法與差分攻擊

實(shí)驗(yàn)題目

DES算法與差分攻擊

實(shí)驗(yàn)?zāi)康?/h2>

了解DES算法基本工作原理墓臭,體會(huì)并理解分組密碼算法的混淆和擴(kuò)散概念蘸鲸。了解Sbox工作原理及效果。了解DES的工作模式和填充方式窿锉。了解差分攻擊
的基本原理酌摇。

實(shí)驗(yàn)原理與理論基礎(chǔ)

DES算法簡(jiǎn)介

  • DES算法為密碼體制中的對(duì)稱密碼體制膝舅,又被稱為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn)。

  • DES是一個(gè)分組加密算法窑多,典型的DES以64位為分組對(duì)數(shù)據(jù)加密仍稀,加密和解密用的是同一個(gè)算法。

  • 密鑰長(zhǎng)64位埂息,密鑰事實(shí)上是56位參與DES運(yùn)算(第8技潘、16、24千康、32享幽、40、48拾弃、56琉闪、64位是校驗(yàn)位,使得每個(gè)密鑰都有奇數(shù)個(gè)1)砸彬,分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組。

  • DES算法的主要流程如下圖所示:

      
    image

IP置換

IP置換目的是將輸入的64位數(shù)據(jù)塊按位重新組合斯入,并把輸出分為L(zhǎng)0砂碉、R0兩部分,每部分各長(zhǎng)32位刻两。


image.png

表中的數(shù)字代表新數(shù)據(jù)中此位置的數(shù)據(jù)在原數(shù)據(jù)中的位置增蹭,即原數(shù)據(jù)塊的第58位放到新數(shù)據(jù)的第1位,第50位放到第2位磅摹,……依此類推滋迈,第7位放到第64位。置換后的數(shù)據(jù)分為L(zhǎng)0和R0兩部分户誓,L0為新數(shù)據(jù)的左32位饼灿,R0為新數(shù)據(jù)的右32位。

密鑰置換

不考慮每個(gè)字節(jié)的第8位帝美,DES的密鑰由64位減至56位碍彭,每個(gè)字節(jié)的第8位作為奇偶校驗(yàn)位。產(chǎn)生的56位密鑰由下表生成(注意表中沒(méi)有8,16,24悼潭,32,40,48,56和64這8位):


image.png

 在DES的每一輪中庇忌,從56位密鑰產(chǎn)生出不同的48位子密鑰,確定這些子密鑰的方式如下:

1).將56位的密鑰分成兩部分舰褪,每部分28位皆疹。

2).根據(jù)輪數(shù),這兩部分分別循環(huán)左移1位或2位占拍。每輪移動(dòng)的位數(shù)如下表:


image.png

移動(dòng)后略就,從56位中選出48位捎迫。這個(gè)過(guò)程中,既置換了每位的順序残制,又選擇了子密鑰立砸,因此稱為壓縮置換。壓縮置換規(guī)則如下表(注意表中沒(méi)有9初茶,18颗祝,22,25恼布,35螺戳,38,43和54這8位):


image.png

置換方法同上

E擴(kuò)展置換

  • 擴(kuò)展置置換目標(biāo)是IP置換后獲得的右半部分R0折汞,將32位輸入擴(kuò)展為48位(分為4位×8組)輸出倔幼。
  • 擴(kuò)展置換目的有兩個(gè):生成與密鑰相同長(zhǎng)度的數(shù)據(jù)以進(jìn)行異或運(yùn)算;提供更長(zhǎng)的結(jié)果爽待,在后續(xù)的替代運(yùn)算中可以進(jìn)行壓縮损同。
  • 擴(kuò)展置換原理如下表:


    image.png

    表中的數(shù)字代表位,兩列黃色數(shù)據(jù)是擴(kuò)展的數(shù)據(jù)鸟款,可以看出膏燃,擴(kuò)展的數(shù)據(jù)是從相鄰兩組分別取靠近的一位,4位變?yōu)?位何什∽榱ǎ靠近32位的位為1,靠近1位的位為32处渣。表中第二行的4取自上組中的末位伶贰,9取自下組中的首位。
    擴(kuò)展置換之后罐栈,右半部分?jǐn)?shù)據(jù)R0變?yōu)?8位黍衙,與密鑰置換得到的輪密鑰進(jìn)行異或。

S盒代替

壓縮后的密鑰與擴(kuò)展分組異或以后得到48位的數(shù)據(jù)荠诬,將這個(gè)數(shù)據(jù)送人S盒们豌,進(jìn)行替代運(yùn)算。替代由8個(gè)不同的S盒完成浅妆,每個(gè)S盒有6位輸入4位輸出望迎。48位輸入分為8個(gè)6位的分組,一個(gè)分組對(duì)應(yīng)一個(gè)S盒凌外,對(duì)應(yīng)的S盒對(duì)各組進(jìn)行代替操作辩尊。


image.png

一個(gè)S盒就是一個(gè)4行16列的表,盒中的每一項(xiàng)都是一個(gè)4位的數(shù)康辑。S盒的6個(gè)輸入確定了其對(duì)應(yīng)的輸出在哪一行哪一列摄欲,輸入的高低兩位做為行數(shù)H轿亮,中間四位做為列數(shù)L,在S-BOX中查找第H行L列對(duì)應(yīng)的數(shù)據(jù)(<32)胸墙。

S盒代替時(shí)DES算法的關(guān)鍵步驟我注,所有的其他的運(yùn)算都是線性的,易于分析迟隅,而S盒是非線性的但骨,相比于其他步驟,提供了更好安全性

P盒置換

S盒代替運(yùn)算的32位輸出按照P盒進(jìn)行置換智袭。該置換把輸入的每位映射到輸出位奔缠,任何一位不能被映射兩次,也不能被略去吼野,映射規(guī)則如下表:


image.png

 表中的數(shù)字代表原數(shù)據(jù)中此位置的數(shù)據(jù)在新數(shù)據(jù)中的位置校哎,即原數(shù)據(jù)塊的第16位放到新數(shù)據(jù)的第1位,第7位放到第2位瞳步,……依此類推闷哆,第25位放到第32位。

IP-1末置換

末置換是初始置換的逆過(guò)程单起,DES最后一輪后阳准,左、右兩半部分并未進(jìn)行交換馏臭,而是兩部分合并形成一個(gè)分組做為末置換的輸入。末置換規(guī)則如下表:


image.png

置換方法同上

DES的工作模式和填充模式

實(shí)際應(yīng)用中讼稚,DES是根據(jù)其加密算法所定義的明文分組的大欣ㄈ濉(64bits),將數(shù)據(jù)割成若干64bits的加密區(qū)塊锐想,再以加密區(qū)塊為單位帮寻,分別進(jìn)行加密處理。根據(jù)數(shù)據(jù)加密時(shí)每個(gè)加密區(qū)塊間的關(guān)聯(lián)方式赠摇,可以分為4種加密模式固逗,包括ECB,CBC,CFB及OFB。

  1. 電碼本模式(ECB)
  • ECB模式是DES加密的基本工作模式藕帜。
  • 在ECB模式下烫罩,每一個(gè)加密區(qū)塊依次獨(dú)立加密,產(chǎn)生獨(dú)立的密文區(qū)塊洽故,每一加密區(qū)塊的加密結(jié)果不受其他區(qū)塊的影響贝攒。使用此種方式下,可以利用并行處理來(lái)加速加密解密運(yùn)算时甚,且在網(wǎng)絡(luò)傳輸時(shí)任一區(qū)塊有任何錯(cuò)誤發(fā)生隘弊,也不會(huì)影響到其他區(qū)塊傳輸?shù)慕Y(jié)果哈踱。這是該模式的優(yōu)點(diǎn)。
  • 該模式的缺點(diǎn)是容易暴露明文的數(shù)據(jù)模式梨熙。
  1. 密碼分組鏈接模式(CBC)
  • 在CBC模式下开镣,第一個(gè)加密區(qū)塊先與初始向量IV做異或運(yùn)算,再進(jìn)行加密咽扇。其他每個(gè)加密區(qū)塊加密之前邪财,必須與前一個(gè)加密區(qū)塊的密文作一次異或運(yùn)算,再進(jìn)行加密肌割。每一個(gè)區(qū)塊的加密結(jié)果均會(huì)受到前面所有區(qū)塊內(nèi)容的影響卧蜓,所以即使在明文中出現(xiàn)多次相同的明文,也會(huì)產(chǎn)生不同的密文把敞。
  • 密文內(nèi)容若遭剪貼弥奸、替換,或在網(wǎng)絡(luò)傳輸過(guò)程中發(fā)生錯(cuò)誤奋早,則其后續(xù)的密文將被破壞盛霎,無(wú)法順利解密還原,這是這一模式的的優(yōu)點(diǎn)耽装,也是缺點(diǎn)愤炸。
  • 在CBC模式下,加密作業(yè)無(wú)法利用并行處理來(lái)加速加密運(yùn)算掉奄,但其解密運(yùn)算可以利用并行處理來(lái)加速规个。
  1. 密文反饋方式(CFB)
    在CFB模式下,可以將區(qū)塊加密算法當(dāng)作流密碼加密器使用姓建,流密碼加密器可以按照實(shí)際上的需要诞仓,每次加密區(qū)塊大小可以自訂,每一個(gè)區(qū)塊的明文與前一個(gè)區(qū)塊加密后的密文做異或后成為密文速兔。因此墅拭,每一個(gè)區(qū)塊的加密結(jié)果受之前所有區(qū)塊內(nèi)容的影響,也會(huì)使得在明文中出現(xiàn)多次相同的明文均產(chǎn)生不同的密文涣狗。在此模式下谍婉,位了加密第一個(gè)區(qū)塊,也必須選擇一個(gè)初始向量镀钓,且此初始向量必須惟一穗熬,每次加密時(shí)必須不一樣,也難以利用并行處理來(lái)加快加密作業(yè)
  2. 輸出反饋模式(OFB)
    OFB與CFB大致相同丁溅,都是每一個(gè)區(qū)塊的明文與之前區(qū)塊加密后的結(jié)果做異或后產(chǎn)生密文死陆,不同的是之前區(qū)塊加密后的結(jié)果為獨(dú)立產(chǎn)生,每一個(gè)區(qū)塊的加密結(jié)果不受之前所有密文區(qū)塊的內(nèi)容的影響,如果有區(qū)塊在傳輸過(guò)程中遺失或發(fā)生錯(cuò)誤措译,將不至于無(wú)法完全解密别凤,在此模式下,為了加密第一個(gè)區(qū)塊领虹,必須設(shè)置一個(gè)初始向量规哪,否則難以利用并行處理來(lái)加快加密作業(yè)。

DES差分攻擊

DES算法其中主要起作用的算法有:矩陣置換塌衰、擴(kuò)展诉稍、左移、異或最疆、左右互換杯巨、s盒作用?。其中對(duì)攻擊者來(lái)說(shuō)最麻煩的要說(shuō)s盒一步努酸,破解des體系關(guān)鍵在s盒服爷。?
乍一看六位輸入與四位輸出貌似沒(méi)什么關(guān)系。但事實(shí)上获诈,對(duì)于同一個(gè)s盒具有相同輸入異或的所有輸入六比特組的輸出四比特異或值有一定規(guī)律仍源。?
具體些說(shuō),對(duì)于輸入異或相同的明文對(duì)B舔涎,B*僅有32組笼踩,而這32組輸出異或卻并不是均勻分布,而是僅分布在很少的幾個(gè)四比特值中亡嫌;也可以說(shuō)具有相同輸入異或且輸出四比特異或也相同的六比特輸入數(shù)量不多且分布不均勻嚎于。正是這種輸入輸出輸出異或間的不均勻性可以被攻擊者利用并破解密鑰。

實(shí)驗(yàn)要求

  1. 編程實(shí)驗(yàn)DES算法
  2. 通過(guò)改變DES算法明文和密文內(nèi)容觀察加密后輸出統(tǒng)計(jì)結(jié)果
  3. 實(shí)現(xiàn)生成指定差分的明文對(duì)挟冠,實(shí)現(xiàn)對(duì)特定差分輸入的Sbox差分輸出分布于购,觀察 DES S-box 輸入差分與密鑰無(wú)關(guān),輸出差分與密鑰相關(guān)特性圃郊。
  4. 實(shí)現(xiàn) DES 各種工作模式和填充方式,實(shí)現(xiàn)使用DES算法對(duì)數(shù)據(jù)文件加解密(選作 P124)
  5. 實(shí)現(xiàn)簡(jiǎn)單的GUI界面

實(shí)驗(yàn)過(guò)程和結(jié)果測(cè)試

image.png

輸入1女蜈,DES加密

image.png

輸入2持舆,改變明文位數(shù)觀察密文改變位數(shù)

  1. 明文改變2位,密文平均改變位數(shù)為33.70


    image.png
  2. 明文改變4位伪窖,密文平均改變位數(shù)為30.90


    image.png
  3. 明文改變6位逸寓,密文平均改變位數(shù)為34.30


    image.png
  4. 明文改變8位,密文平均改變位數(shù)為31.50


    image.png
  5. 明文改變10位覆山,密文平均改變位數(shù)為30.30


    image.png
  6. 明文改變20位竹伸,密文平均改變位數(shù)為31.00


    image.png
  7. 明文改變40位,密文平均改變位數(shù)為31.00


    image.png

結(jié)果表格:

明文改變位數(shù) 密文改變位數(shù)
2 33.70
4 30.90
6 34.30
8 31.50
10 30.3
20 31.00
40 31.00
平均數(shù) 31.8

輸入3,改變密鑰位數(shù)觀察明文改變位數(shù)

  1. 改變密鑰2位勋篓,密文改變33.2位


    image.png
  2. 改變密鑰4位吧享,密文改變30.9位


    image.png
  3. 改變密鑰6位,密文改變33.4位


    image.png
  4. 改變密鑰10位譬嚣,密文改變31.7位


    image.png
  5. 改變密鑰20位钢颂,密文改變33.3位


    image.png
  6. 改變密鑰40位,密文改變32.3位


    image.png

    7.改變密鑰50位拜银,密文改變32.3位


    image.png

    結(jié)果表格:
密鑰改變位數(shù) 密文改變位數(shù)
2 33.20
4 30.90
6 33.40
10 31.70
20 33.3
40 32.30
50 32.3
平均數(shù) 32.44

輸入4殊鞭,進(jìn)行差分分析

image.png

實(shí)驗(yàn)結(jié)果分析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市尼桶,隨后出現(xiàn)的幾起案子操灿,更是在濱河造成了極大的恐慌,老刑警劉巖泵督,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趾盐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡幌蚊,警方通過(guò)查閱死者的電腦和手機(jī)谤碳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)溢豆,“玉大人蜒简,你說(shuō)我怎么就攤上這事′鱿桑” “怎么了搓茬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)队他。 經(jīng)常有香客問(wèn)我卷仑,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮磺陡,結(jié)果婚禮上热某,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锚扎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪馁启。 梳的紋絲不亂的頭發(fā)上驾孔,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼翠勉。 笑死妖啥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眉菱。 我是一名探鬼主播迹栓,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俭缓!你這毒婦竟也來(lái)了克伊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤华坦,失蹤者是張志新(化名)和其女友劉穎愿吹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體惜姐,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡犁跪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歹袁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坷衍。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖条舔,靈堂內(nèi)的尸體忽然破棺而出枫耳,到底是詐尸還是另有隱情,我是刑警寧澤孟抗,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布迁杨,位于F島的核電站,受9級(jí)特大地震影響凄硼,放射性物質(zhì)發(fā)生泄漏铅协。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一摊沉、第九天 我趴在偏房一處隱蔽的房頂上張望狐史。 院中可真熱鬧,春花似錦说墨、人聲如沸骏全。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吟温。三九已至序仙,卻和暖如春突颊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工律秃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爬橡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓棒动,卻偏偏與公主長(zhǎng)得像糙申,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子船惨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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