青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

為你寫詩

c/c++
隨筆 - 32, 文章 - 0, 評論 - 3, 引用 - 0
數據加載中……

DES加密算法

對稱密碼算法 DES
   原文: http://hi.baidu.com/suntopdang/blog/item/5a3f7dee46f5663fadafd5fd.html
1.什么是對稱密碼算法
  網絡安全通信中要用到兩類密碼算法,一類是對稱密碼算法,另一類是非對稱密碼算法。對稱密碼算法有時又叫傳統密碼算法、秘密密鑰算法或單密鑰算法,非對稱密碼算法也叫公開密鑰密碼算法或雙密鑰算法。對稱密碼算法的加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數對稱算法中,加密解密密鑰是相同的。它要求發送者和接收者在安全通信之前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都能對消息進行加密解密。只要通信需要保密,密鑰就必須保密。

  對稱算法又可分為兩類。一次只對明文中的單個位(有時對字節)運算的算法稱為序列算法或序列密碼。另一類算法是對明文的一組位進行運算,這些位組稱為分組,相應的算法稱為分組算法或分組密碼。現代計算機密碼算法的典型分組長度為64位――這個長度既考慮到分析破譯密碼的難度,又考慮到使用的方便性。后來,隨著破譯能力的發展,分組長度又提高到128位或更長。
常用的采用對稱密碼術的加密方案有5個組成部分(如圖所示)

1)明文:原始信息。
2)加密算法:以密鑰為參數,對明文進行多種置換和轉換的規則和步驟,變換結果為密文。
3)密鑰:加密與解密算法的參數,直接影響對明文進行變換的結果。
4)密文:對明文進行變換的結果。
5)解密算法:加密算法的逆變換,以密文為輸入、密鑰為參數,變換結果為明文。

2.對稱密碼常用的數學運算
  對稱密碼當中有幾種常用到的數學運算。這些運算的共同目的就是把被加密的明文數碼盡可能深地打亂,從而加大破譯的難度。

◆移位和循環移位
  移位就是將一段數碼按照規定的位數整體性地左移或右移。循環右移就是當右移時,把數碼的最后的位移到數碼的最前頭,循環左移正相反。例如,對十進制數碼12345678循環右移1位(十進制位)的結果為81234567,而循環左移1位的結果則為23456781。
◆置換
  就是將數碼中的某一位的值根據置換表的規定,用另一位代替。它不像移位操作那樣整齊有序,看上去雜亂無章。這正是加密所需,被經常應用。
◆擴展
  就是將一段數碼擴展成比原來位數更長的數碼。擴展方法有多種,例如,可以用置換的方法,以擴展置換表來規定擴展后的數碼每一位的替代值。
◆壓縮
  就是將一段數碼壓縮成比原來位數更短的數碼。壓縮方法有多種,例如,也可以用置換的方法,以表來規定壓縮后的數碼每一位的替代值。
◆異或
  這是一種二進制布爾代數運算。異或的數學符號為⊕ ,它的運算法則如下:
1⊕1 = 0 
0⊕0 = 0 
1⊕0 = 1 
0⊕1 = 1 
  也可以簡單地理解為,參與異或運算的兩數位如相等,則結果為0,不等則為1。
◆迭代
  迭代就是多次重復相同的運算,這在密碼算法中經常使用,以使得形成的密文更加難以破解。

3.DES算法簡介
  下面我們將介紹一種流行的對稱密碼算法DES。

  DES是Data Encryption Standard(數據加密標準)的縮寫。它是由IBM公司研制的一種對稱密碼算法,美國國家標準局于1977年公布把它作為非機要部門使用的數據加密標準,三十年來,它一直活躍在國際保密通信的舞臺上,扮演了十分重要的角色。

  DES是一個分組加密算法,典型的DES以64位為分組對數據加密,加密和解密用的是同一個算法。它的密鑰長度是56位(因為每個第8 位都用作奇偶校驗),密鑰可以是任意的56位的數,而且可以任意時候改變。其中有極少數被認為是易破解的弱密鑰,但是很容易避開它們不用。所以保密性依賴于密鑰。

DES加密的算法框架如下:
  首先要生成一套加密密鑰,從用戶處取得一個64位長的密碼口令,然后通過等分、移位、選取和迭代形成一套16個加密密鑰,分別供每一輪運算中使用。

  DES對64位(bit)的明文分組M進行操作,M經過一個初始置換IP,置換成m0。將m0明文分成左半部分和右半部分m0 = (L0,R0),各32位長。然后進行16輪完全相同的運算(迭代),這些運算被稱為函數f,在每一輪運算過程中數據與相應的密鑰結合。

  在每一輪中,密鑰位移位,然后再從密鑰的56位中選出48位。通過一個擴展置換將數據的右半部分擴展成48位,并通過一個異或操作替代成新的48位數據,再將其壓縮置換成32位。這四步運算構成了函數f。然后,通過另一個異或運算,函數f的輸出與左半部分結合,其結果成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重復16次。

  經過16輪迭代后,左,右半部分合在一起經過一個末置換(數據整理),這樣就完成了加密過程。 
加密流程如圖所示。


DES解密過程:
  在了解了加密過程中所有的代替、置換、異或和循環迭代之后,讀者也許會認為,解密算法應該是加密的逆運算,與加密算法完全不同。恰恰相反,經過密碼學家精心設計選擇的各種操作,DES獲得了一個非常有用的性質:加密和解密使用相同的算法!

  DES加密和解密唯一的不同是密鑰的次序相反。如果各輪加密密鑰分別是K1,K2,K3…K16,那么解密密鑰就是K16,K15,K14…K1。這也就是DES被稱為對稱算法的理由吧。

  至于對稱密碼為什么能對稱? DES具體是如何操作的?本文附錄中將做進一步介紹,有興趣的讀者不妨去讀一讀探個究竟。

4.DES算法的安全性和發展
  DES的安全性首先取決于密鑰的長度。密鑰越長,破譯者利用窮舉法搜索密鑰的難度就越大。目前,根據當今計算機的處理速度和能力,56位長度的密鑰已經能夠被破解,而128位的密鑰則被認為是安全的,但隨著時間的推移,這個數字也遲早會被突破。

  另外,對DES算法進行某種變型和改進也是提高DES算法安全性的途徑。

  例如后來演變出的3-DES算法使用了3個獨立密鑰進行三重DES加密,這就比DES大大提高了安全性。如果56位DES用窮舉搜索來破譯需要2∧56次運算,而3-DES 則需要2∧112次。

  又如,獨立子密鑰DES由于每輪都使用不同的子密鑰,這意味著其密鑰長度在56位的基礎上擴大到768位。DES還有DESX、CRYPT、GDES、RDES等變型。這些變型和改進的目的都是為了加大破譯難度以及提高密碼運算的效率。
___________________________________________________
附錄:DES的實際操作
A.密鑰生成

第A-1步 取得密鑰
  從用戶處取得一個64位(本文均指二進制位))長的密碼口令key ,
  去除64位密碼中作為奇偶校驗位的第8、16、24、32、40、48、56、64位,剩下的56位作為有效輸入密鑰。

第A-2步 等分密鑰
表1:
輸入密鑰位序/ A位序對照表

注:表中每個單元格的數字是輸入密鑰位序,每個單元格的位置排序就是A位序,從左向右排,排完一行接著排下一行。

表2:
輸入密鑰位序/ B位序對照表

  把在第A-1步中生成的56位輸入密鑰分成均等的A、B兩部分,每部分為28位。不是簡單地前后一分為二,而是參照表1和表2把輸入密鑰的位值填入相應的位置。 按照表1所示,A的第一位為輸入的64位密鑰的第57位,A的第2位為64位密鑰的第49位,……,依此類推,A的最后一位第28位是64位密鑰的第36位。這樣,形成了A、B兩部分:


第A-3步 密鑰移位
表3:
每次迭代時密鑰循環
左移的位數

  DES算法的密鑰是經過16次迭代(循環左移)得到一組密鑰的,把在第A-1步中生成的A、B視為迭代的起始密鑰,表3顯示每一次迭代時密鑰循環左移的位數。 比如在第1次迭代時密鑰循環左移1位,第3次迭代時密鑰循環左移2位。

  第9次迭代時密鑰循環左移1位,第14次迭代時密鑰循環左移2位。

第一次迭代:
A(1) =(1) A
B(1) =(1) B
第i次迭代:
A(i) =(i) A(i-1)
B(i) =(i) B(i-1)
第A-4步 密鑰的選取
在第A-3步中第i次迭代生成的兩個28位長的密鑰為



合并,得:


表4:
56位密鑰C的位序與加密密鑰K的位序對照表

  按照表4所示k的第一位為56位密鑰的第14位,k的第2位為56位密鑰的第17位,。。。,依此類推,k的最后一位第48位是56位密鑰的第32位。 這樣,就生成了一個48位使用密鑰:

  這個密鑰在加密運算中將與進行第i次迭代加密的數據進行按位異或。

第A-5步 迭代
  DES算法密鑰生成需要進行16次迭代,在完成16次迭代前,循環執行第A-3步和第A-4步,最終形成16套加密密鑰:key[0],key[1],key[2],…。key[14],key[15]。

B. 數據的加密操作

第B-1步 取得數據
  把明文數據分成64位的數據塊,不夠64位的數據塊以適當的方式補足。

第B-2步 初始換位置換
表5:初始置換表

注:表中每個單元格的位置排序是新數據的位序。下同。

  按照表5所示把輸入的64位數據的原第58位換到第一位,原第50位換到第二位,依此類推,。。。,原第7位換到第64位。最后的得到新的64位數據。

OldData newData 


第B-3步 數據擴展
表6: 數據擴展對照表(輸入數據位序/生成新數據位序)

  第一次迭代以第B-2步中生成的newRata作為輸入數據,第i (i > 1)次迭代以第i-1次的64位輸出數據為輸入數據,把64位數據按位置等分成左右兩部分: 

  保持left不變,根據表6把right由32位擴展置換成48位。在數據擴展操作中,有些輸入數據位(如第1、4、5、17、28、29、32……等數位)用了兩次,因此數據得到了擴展。這樣得到右半部分為:  把擴展后的48位right與第i次迭代生成的48位加密密鑰進行按位異或操作形成一個新的48位的right。

第B-4步 數據壓縮
表7.1:數據壓縮置換表(藍色欄內是置換前的十進制數字,白色欄內是置換后的16進制數字)

表7.2

表7.3 至表7.8與上表形式完全相同,僅數值不同,為節省篇幅從略不表。 

  在B-3步中形成了48位的right值,

  需要把48位的right值轉換成32位的right值。置換的方法如下:
第一步,先把right視為由8個6位二進制塊組成, 即

a,b…. h都是6位二進制數,轉換成10進制整數的值應當都不大于64。

  第二步,a,b…h轉換成10進制整數后,在對應的表中根據轉換后整數值取得對應位置的替代值。這些替代值都是一個16進制的個位數,因此,每個替代值只占有二進制數4位。

  轉換時各查各表:
  a對應表7.1;b對應表7.2;c對應表7.3;d對應表7.4;e對應表7.5;f對應表7.6;g對應表7.7;h對應表7.8。
  比如:
  a = 32 ,則到表7.1中找到32的位置,把對應的替代值16進制的8賦給a ;
  b = 53 ,則到表7.2中找到的位置,把對應的替代值16進制的c賦給b ;
  g = 16, 則到表7.7中找到16的位置,把對應的替代值16進制的a賦給g ;
  這樣,每6位用一個4位替換,就完成了從48位向32位數據的壓縮置換。

 

  有些資料中介紹6位轉4位的實現方法與本文所采用的不同,但殊途同歸,最終的目的是相同的。

第B-5步 數據換位置換
表8


把第B-4步形成的32位right
 
根據表8進行轉換:
  數據的原第16位換到第一位,原第7位換到第二位,……,依此類推,最后得到新的32位數據。


第B-6步 交換數據
  把right 和left按位異或后的值賦給right,然后將本輪輸入的原始right值賦給left。

第B-7步 迭代
  RES算法需要進行16次迭代,在完成16次迭代前,把第i-1次得到的的left和right的值作為第i次的輸入數據,重復第B-3步到第B-6步的步驟。但是有一點要記住:在步驟第B-3中第i次迭代要選擇第i次迭代生成的密鑰與數據進行按位異或。

第B-8步 數據整理
表9

  為保證加密和解密的對稱性,RES算法的前15次迭代每完成一次迭代都要交換left和right的值,第16次迭代不交換兩者的數值。

  到此,把32位的left和right合并成64位的Data:

  根據表9重新調整Data的位值,數據的原第40位換到第一位,原第8位換到第二位,。。。,依此類推,最后得到新的64位。 

  好了,經過了這么多次的數學運算,我們最終得到的Data即為密文。

C 數據的解密操作
  數據解密的算法與加密算法相同,區別在于第B-3步中和數據進行按位異或的密鑰的使用順序不同,在加密中是按照第i次迭代就采用第i次迭代生成的密鑰進行異或,而解密時第i次迭代就采用第17-i次迭代生成的密鑰和數據進行異或。

posted on 2011-10-13 16:49 pp_zhang 閱讀(2529) 評論(1)  編輯 收藏 引用 所屬分類: Miscellanea

評論

# re: DES加密算法  回復  更多評論   

很好的帖子
2012-03-28 21:48 | 發的風格

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久久亚洲精品| 美女国产一区| 亚洲第一区中文99精品| 亚洲一区二区三区在线看| 日韩小视频在线观看| 99精品国产在热久久| 亚洲欧美视频| 欧美在线日韩| 亚洲国产99精品国自产| 亚洲视频免费观看| 久久午夜电影| 国产人久久人人人人爽| 黑人一区二区| 性欧美暴力猛交69hd| 久久女同互慰一区二区三区| 欧美成人情趣视频| 国产精品视频福利| 亚洲精品一区中文| 欧美中文在线观看国产| 欧美高清成人| 亚洲在线网站| 免费av成人在线| 国产日本欧美一区二区三区在线| 亚洲国产免费| 久久久久久9| 欧美中文字幕第一页| 欧美日韩一级大片网址| 国产一区二区三区的电影 | 久久综合九色| 国产精品揄拍一区二区| 亚洲一级免费视频| 亚洲电影天堂av| 欧美专区日韩视频| 国产午夜精品全部视频播放| 亚洲欧美精品在线| 亚洲欧美国产一区二区三区| 国产精品成人一区二区| 午夜国产精品视频免费体验区| 亚洲美女中出| 国产精品五区| 欧美大片一区二区| 欧美激情成人在线视频| 欧美大片va欧美在线播放| 亚洲国产精品ⅴa在线观看 | 在线精品亚洲一区二区| 欧美成人免费播放| 欧美精品v日韩精品v韩国精品v| 亚洲精品一区在线| 一级日韩一区在线观看| 国产亚洲精品久久久| 欧美国内亚洲| 国产欧美日韩精品a在线观看| 快播亚洲色图| 国产精品亚洲第一区在线暖暖韩国| 翔田千里一区二区| 欧美乱妇高清无乱码| 欧美呦呦网站| 欧美日韩一区二区三区| 麻豆成人综合网| 国产农村妇女毛片精品久久麻豆 | 亚洲欧洲综合另类| 亚洲一区免费视频| 在线综合亚洲| 欧美日韩国产综合视频在线观看| 久久成人18免费网站| 国产精品美女久久| 日韩视频免费大全中文字幕| 亚洲精品国产精品国自产观看| 欧美在线高清视频| 久久久久国产精品一区二区| 国产精品久久久久久久久免费樱桃 | 亚洲精品影院在线观看| 亚洲三级视频| 欧美激情第二页| 日韩视频免费观看| 香蕉尹人综合在线观看| 国产情人综合久久777777| 欧美一区二区精品久久911| 欧美一区二区视频在线观看2020 | 久久精品道一区二区三区| 久久综合导航| 亚洲精品视频中文字幕| 欧美日韩极品在线观看一区| 一本色道88久久加勒比精品| 这里只有视频精品| 国内精品久久久久久久97牛牛| 欧美国产综合| 欧美一区二区三区在线| 久久久久欧美精品| 久久精品免视看| 欧美一区二区在线看| 午夜精品久久久久久久99热浪潮 | 免费影视亚洲| 午夜在线观看免费一区| 亚洲精品美女| 欧美成人a视频| 欧美在线资源| 欧美一区网站| 亚洲综合日韩| 一区二区三区欧美成人| 亚洲日本aⅴ片在线观看香蕉| 国外成人在线视频| 精品不卡在线| 精品不卡一区二区三区| 黑人操亚洲美女惩罚| 国产综合第一页| 亚洲中午字幕| 亚洲人成高清| 亚洲精品国产精品久久清纯直播 | 国产欧美一区二区三区久久人妖| 久久综合电影一区| 性色av一区二区三区| 久久av资源网| 免费观看在线综合色| 免费久久99精品国产自在现线| 欧美自拍丝袜亚洲| 卡一卡二国产精品| 久久精品国产综合精品| 久久成人18免费网站| 免费视频一区| 国产精品麻豆成人av电影艾秋| 国产欧美一区视频| 999亚洲国产精| 久久蜜桃精品| 一区二区三区免费看| 久久性天堂网| 欧美女人交a| 伊人久久综合| 亚洲在线日韩| 亚洲国产精品成人| 亚洲午夜视频| 欧美高清视频免费观看| 国产精品影院在线观看| 亚洲精品久久久蜜桃| 久久久久91| 久久精品国产亚洲精品 | 亚洲欧美日韩中文播放| 欧美伦理视频网站| 亚洲精品一区二区三区av| 欧美不卡视频| 欧美经典一区二区三区| 日韩一区二区精品葵司在线| 亚洲精品中文字幕在线观看| 欧美日韩国产天堂| 亚洲小说欧美另类社区| 亚洲国产成人av在线| 久久精品成人| 亚洲综合精品四区| 国产伦精品一区| 欧美在线一级va免费观看| 亚洲一区二区三区四区视频| 国产精品久久久久99| 性色一区二区三区| 欧美专区在线观看| 亚洲大片在线观看| 亚洲人午夜精品| 欧美日韩午夜激情| 欧美自拍偷拍| 久久青草福利网站| 亚洲夜间福利| 久久国产精品色婷婷| 91久久黄色| 亚洲伊人观看| 91久久精品日日躁夜夜躁国产| 日韩午夜电影| 在线观看日韩av电影| 亚洲视频第一页| 亚洲激情不卡| 午夜精品国产更新| 一区二区三区精品在线| 欧美一区二区精品| 午夜精品剧场| 欧美日韩在线一二三| 欧美福利专区| 国内久久婷婷综合| 日韩一级二级三级| 亚洲精品乱码| 久久久亚洲国产美女国产盗摄| 午夜精品福利在线| 国产精品v欧美精品v日本精品动漫 | 久久成人18免费观看| 99re66热这里只有精品3直播| 欧美在线视频网站| 欧美一区午夜精品| 国产欧美另类| 欧美亚洲一区二区三区| 欧美在线1区| 国产精品美女视频网站| 午夜在线a亚洲v天堂网2018| 噜噜噜在线观看免费视频日韩| 久久久免费av| 激情亚洲成人| 久热精品视频在线| 亚洲精品国产欧美| 国产精品99久久久久久久久久久久| 欧美精品在线一区| 一区二区三区国产精品| 久久精品欧美| 亚洲激精日韩激精欧美精品| 欧美日韩精品免费看|