DES算法詳細(xì)解釋

一個有具體流程的:http://blog.chinaunix.net/uid-29106641-id-4032988.html
pdf版的:http://www.ieccr.net/xdmmx/shijianjiaoxuedoc/1-2.pdf
目前困擾我的問題有:如果密文的長度大于或者少于64比特會怎么辦王带。
解決方案:分塊處理,有ECB市殷,CBC愕撰,等具體請戳:https://www.wikiwand.com/zh/%E5%88%86%E7%BB%84%E5%AF%86%E7%A0%81%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F
https://crypto.stackexchange.com/questions/1064/how-can-i-encrypt-more-than-64-bit-with-the-data-encryption-standard

按照流程圖:


20120705013155190.jpg

DES算法的原理:

1.

明確會有data(用于加密的數(shù)據(jù)),key(密鑰)醋寝,mode(加密或者解密)

2.

首先將data(二進(jìn)制的形式搞挣,我們可以先造一個適合的64位的二進(jìn)制數(shù)組)根據(jù)IP表的變換而變換。

//擬造的data
static bool data[64] = {
    1,0,1,0,0,0,0,0,
    1,1,1,0,1,1,1,1,
    0,0,1,0,1,0,0,1,
    0,1,0,0,1,0,1,0,
    0,1,1,1,0,1,1,1,
    0,0,0,1,1,1,1,0,
    0,1,0,0,0,1,1,0,
    0,0,1,0,1,0,1,0
};
//IP表
const static char IP_Table[64] = {
        58,50,42,34,26,18,10,2,
        60,52,44,36,28,20,12,4,
        62,54,46,38,30,22,14,6,
        64,56,48,40,32,24,16,8,
        57,49,41,33,25,17,9,1,
        59,51,43,35,27,19,11,3,
        61,53,45,37,29,21,13,5,
        63,55,47,39,31,23,15,7
};

意義為:IP表中的58指的是data表的第58個數(shù)(從1開始算的音羞,不是數(shù)組的從0開始算)在經(jīng)過IP變換后要放置在第0位囱桨,49放在第1位。

3.

將置換過后的64位數(shù)據(jù)分為L0和R0兩部分嗅绰。L0為前32位舍肠,R0為后32位。

4.

下面的16輪相同運算是這個里面最麻煩的一個窘面,也是一個重點翠语。分幾點來講。

4.1.

密鑰的生成财边。也就是Key肌括,為了增加破解難度,每一層使用的Key都是基于上一層Key經(jīng)過轉(zhuǎn)換而得到的。具體的轉(zhuǎn)換方法是:

DES算法由64位密鑰產(chǎn)生16輪的48位子密鑰。在每一輪的迭代過程中拍鲤,使用不同的子秘鑰。

a慧库、把密鑰的奇偶校驗位忽略不參與計算,即每個字節(jié)的第8位馋嗜,將64位密鑰降至56位齐板,然后根據(jù)選擇置換PC-1將這56位分成兩塊Key_L0(28位)和Key_R0(28位);

b葛菇、將Key_L0 and Key_R0進(jìn)行循環(huán)左移變化(注:每輪循環(huán)左移的位數(shù)由輪數(shù)決定)甘磨,變換后生成Key_Moved_L0和Key_Moved_R0,然后Key_Moved_L0和Key_Moved_R0合并眯停,并通過選擇置換PC-2生成子密鑰K1(48位)济舆;

c、Key_L1和Key_R1在次經(jīng)過循環(huán)左移變換莺债,生成Key_Moved_L1和Key_Moved_R1滋觉,然后Key_Moved_L1和Key_Moved_R1合并签夭,通過選擇置換PC-2生成密鑰K2(48位);

d椎侠、以此類推第租,得到K16(48位)。但是最后一輪的左右兩部分不交換我纪,而是直接合并在一起R16L16慎宾,作為逆置換的輸入塊。其中循環(huán)左移的位數(shù)一共是循環(huán)左移16次浅悉,其中第一次趟据、第二次、第九次术健、第十六次是循環(huán)左移一位之宿,其他都是左移兩位。

//PC1選位表(密鑰生成置換表1)
const static int PC1_Table[56] = {
        57,49,41,33,25,17,9,
        1,58,50,42,34,26,18,
        10,2,59,51,43,35,27,
        19,11,3,60,52,44,36,
        63,55,47,39,31,23,15,
        7,62,54,46,38,30,22,
        14,6,61,53,45,37,29,
        21,13,5,28,20,12,4
};
//PC2選位表(密鑰生成置換表2)
const static int PC2_Table[48] = {
        14,17,11,24,1,5,
        3,28,15,6,21,10,
        23,19,12,4,26,8,
        16,7,27,20,13,2,
        41,52,31,37,47,55,
        30,40,51,45,33,48,
        44,49,39,56,34,53,
        46,42,50,36,29,32
};
//左移位數(shù)表 
const static int LOOP_Table[16] = {
    1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苛坚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子色难,更是在濱河造成了極大的恐慌泼舱,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枷莉,死亡現(xiàn)場離奇詭異娇昙,居然都是意外死亡,警方通過查閱死者的電腦和手機笤妙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門冒掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蹲盘,你說我怎么就攤上這事股毫。” “怎么了召衔?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵铃诬,是天一觀的道長。 經(jīng)常有香客問我苍凛,道長趣席,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任醇蝴,我火速辦了婚禮宣肚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘悠栓。我一直安慰自己霉涨,他們只是感情好按价,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嵌纲,像睡著了一般俘枫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逮走,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天鸠蚪,我揣著相機與錄音,去河邊找鬼师溅。 笑死茅信,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的墓臭。 我是一名探鬼主播蘸鲸,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼窿锉!你這毒婦竟也來了酌摇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嗡载,失蹤者是張志新(化名)和其女友劉穎窑多,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洼滚,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡埂息,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了遥巴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片千康。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铲掐,靈堂內(nèi)的尸體忽然破棺而出拾弃,到底是詐尸還是另有隱情,我是刑警寧澤迹炼,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布砸彬,位于F島的核電站,受9級特大地震影響斯入,放射性物質(zhì)發(fā)生泄漏砂碉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一刻两、第九天 我趴在偏房一處隱蔽的房頂上張望增蹭。 院中可真熱鬧,春花似錦磅摹、人聲如沸滋迈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饼灿。三九已至幕侠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碍彭,已是汗流浹背晤硕。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庇忌,地道東北人舞箍。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像皆疹,于是被迫代替她去往敵國和親疏橄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

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