高清无码男男同同性,久久久久日韩AV无码一区,自拍 另类 综合 欧美小说,尤物网址在线观看

0371-63319761
您的當(dāng)前位置:主頁 > 安全研究 > 安全研究 >

物聯(lián)網(wǎng)安全:數(shù)據(jù)加密標(biāo)準(zhǔn)之加解密算法

時間:2020-12-10


數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard, DES)中的算法是第一個并且是最重要的現(xiàn)代對稱加密算法,是美國國家安全標(biāo)準(zhǔn)局于1977年公布的由IBM公司研制的加密算法,主要用于與國家安全無關(guān)的信息加密。在數(shù)據(jù)加密標(biāo)準(zhǔn)被公布后的20多年里,其在世界范圍內(nèi)得到了廣泛的應(yīng)用,經(jīng)受了各種密碼分析和攻擊,表現(xiàn)出了令人滿意的安全性。世界范圍內(nèi)的銀行普遍將它用于資金轉(zhuǎn)賬安全保護,而我國的POS、ATM、磁卡及智能卡、加油站、高速公路收費站等領(lǐng)域曾主要采用DES來實現(xiàn)關(guān)鍵數(shù)據(jù)的保密。
 
1、DES加密算法原理
 
DES采用分組加密方法,待處理的消息會被分為定長數(shù)據(jù)分組。以待加密的明文為例,將明文按8個字節(jié)為一組進行分組,而8個二進制位為一個字節(jié),即每個明文分組為64位二進制數(shù)據(jù),每組數(shù)據(jù)單獨進行加密處理。在DES加密算法中,明文和密文均為64位,有效密鑰長度為56位,即DES加密或解密算法輸入64位的明文或密文消息和56位的密鑰,輸出64位的密文或明文消息。DES的加密和解密算法相同,只是解密子密鑰與加密子密鑰的使用順序剛好相反。
 
DES的加密過程的整體描述如圖1所示,主要可分為3步。
 
圖1  DES加密過程
 
第一步:對輸入的64位明文分組進行固定的“初始置換”(Initial Permutation,IP),即按固定的規(guī)則重新排列明文分組的64位二進制數(shù)據(jù),將重排后的64位數(shù)據(jù)按前后各32位分為獨立的左右兩個部分,前32位記為L,后32位記為R。我們可以將這個初始置換寫為:
 
(L,R)←IP(64位分組明文)
 
因初始置換函數(shù)是固定且公開的,故初始置換并無明顯的密碼意義。
 
第二步:進行16輪相同函數(shù)的迭代處理。將上一輪輸出的Ri-1直接作為Li輸入,同時將Ri-1與第i個48位的子密鑰ki經(jīng)“輪函數(shù)f”轉(zhuǎn)換后,得到一個32位的中間結(jié)果,再將此中間結(jié)果與上一輪的Li-1做異或運算,并將得到的新的32位結(jié)果作為下一輪的Ri。如此往復(fù),迭代處理16次,每次的子密鑰均不同。我們可以將這一過程寫為:
 
Li←Ri-1
Ri←Li-1⊕f(Ri-1, ki)
 
這個運算的特點是交換兩個半分組,一輪運算左半分組的輸入是上一輪運算右半分組的輸出,交換運算是一個簡單的密碼換位運算,目的是獲得更大程度的“信息擴散”。顯而易見,DES的這一步是代換密碼和換位密碼的結(jié)合。
 
第三步:將第16輪迭代結(jié)果左右兩半組L16、R16直接合并為64位(L16,R16),并輸入到初始逆置換以消除初始置換的影響。這一步的輸出結(jié)果即為加密過程的密文。我們可以將這一過程寫為:
 
輸出64位密文←IP-1(L16,R16)
 
需要注意的是,在將最后一輪輸出結(jié)果的兩個半分組輸入初始逆置換之前,還需要進行一次交換。如圖1所示,在最后的輸入中,右邊是L16,左邊是R16,合并后左半分組在前,右半分組在后,即(L16,R16)。
 
(1)初始置換IP和初始逆置換IP-1
 
表1和表2分別定義了初始置換與初始逆置換。置換表中的數(shù)字從1到64,共64個,代表輸入的64位二進制明文或密文數(shù)據(jù)中每一位數(shù)從左至右的位置序號。置換表中的數(shù)字位置即為置換后數(shù)字對應(yīng)的原位置數(shù)據(jù)在輸出的64位序列中新的位置序號。例如,表中第一個數(shù)字為58,其表示輸入64位明文或密文二進制數(shù)據(jù)的第58位;而58位于第一位,則表示將原二進制數(shù)據(jù)的第58位換到輸出的第1位。
 
表1  DES的初始置換表IP
 
表2  DES的初始逆置換表IP-1
 
(2)輪函數(shù)f
 
DES的輪函數(shù)如圖2所示,其可被描述為4步。
 
圖2  DES的輪函數(shù)
 
第一步:擴展E變換(expansion box,E盒),即將輸入的32位數(shù)據(jù)擴展為48位。擴展E變換如表3所示,表中元素的意義與初始置換基本相同,按行順序,從左至右共48位。例如,第一個元素為32,其表示48位輸出結(jié)果的第一位數(shù)據(jù),該數(shù)據(jù)為原輸入32位數(shù)據(jù)中的第32位上的數(shù)據(jù)。
 
表3  E盒擴展表
 
E盒的真正作用是確保最終的密文與所有的明文都有關(guān)。
 
第二步:將第一步輸出結(jié)果的48位二進制數(shù)據(jù)與48位子密鑰ki按位做異或運算,結(jié)果自然為48位。然后將運算結(jié)果(48位二進制數(shù)據(jù))從左到右每6位分為一組,共分8組。
 
第三步:將8組6位的二進制數(shù)據(jù)分別裝入8個不同的S盒,即每個S盒輸入6位數(shù)據(jù),輸出4位數(shù)據(jù),然后再將8個S盒輸出的8組4位數(shù)據(jù)依次連接,重新合并為32位數(shù)據(jù)。
 
第四步:將第三步合并生成的32位數(shù)據(jù)經(jīng)P盒(permutation box)置換,輸出新的32位數(shù)據(jù)。P盒置換如表4所示。
 
表4  P盒置換表
 
P盒置換表中的數(shù)字前面的相似。按行的順序,從左到右,表中第i個位置對應(yīng)的數(shù)據(jù)j表示輸出的第i位數(shù)據(jù)為輸入的第j位數(shù)據(jù)。P盒的8行4列與8個S盒在設(shè)計準(zhǔn)則上有一定的對應(yīng)關(guān)系,但從應(yīng)用角度來看,依然是按行的順序。P盒輸出的32位數(shù)據(jù)即為輪函數(shù)的最終輸出結(jié)果。
 
(3)替換盒
 
替換盒(substitution box,S盒)是DES的核心部分。利用通過S盒定義的非線性替換,DES實現(xiàn)了明文消息在密文消息空間上的隨機非線性分布。S盒的非線性替換特征意味著,給定一組輸入-輸出值,很難預(yù)計所有S盒的輸出。
 
共有8種不同的S盒,如圖3所示,每種S盒接收的6位數(shù)據(jù)(輸入)均可通過定義的非線性映射變換為4位的輸出。一個S盒有一個16列4行數(shù)表,它的每個元素都是一個4位二進制數(shù),通常表示為十進制數(shù)0~15。IBM公司已經(jīng)公布了S盒與P盒的設(shè)計準(zhǔn)則,感興趣的朋友可以查閱相關(guān)資料進行學(xué)習(xí)。
 
圖3  8種不同的S盒
 
S盒的替代運算規(guī)則:設(shè)輸入的6位二進制數(shù)為“b1b2b3b4b5b6”,則以“b1b6”組成的二進制數(shù)為行號,以“b2b3b4b5”組成的二進制數(shù)為列號,取出S盒中行列交點處的數(shù),并將其轉(zhuǎn)換成二進制數(shù)輸出。由于表中十進制數(shù)的范圍是0~15,因此以二進制表示正好4位。以6位輸入數(shù)據(jù)“011001”經(jīng)S1替代運算為例,如圖4所示,取出1行12列處的元素9,由于9=(1001)2,故輸出4位二進制數(shù)為“1001”。
 
圖4  S盒替代運算舉例
 
(4)DES的子密鑰
 
在DES加密過程中需要16個48位的子密鑰。子密鑰是由用戶提供的64位密鑰經(jīng)16輪迭代運算依次生成的。DES子密鑰生成過程如圖5所示,主要可分為3個階段。
 
圖5  DES子密鑰生成過程
 
第一階段:用戶提供由8個字符組成的密鑰,將其轉(zhuǎn)換成ASCII的64位,再經(jīng)置換選擇1(如表5所示)去除8個奇偶校驗位,并重新排列各位。由表5可知,8、16、24、32、40、48、56、64位舍去了,重新組合后得到56位。由于舍去規(guī)則是固定的,因而實際使用的初始密鑰只有56位。
 
表5  置換選擇1
 
第二階段:將上一步置換選擇后生成的56位密鑰分成左右兩個部分,前28位記為C,后28位記為D。然后分別將28位的C、D循環(huán)左移位一次,移位后將分別得到的C1、D1作為下一輪子密鑰生成的位輸入。每輪迭代循環(huán)左移位的次數(shù)遵循固定的規(guī)則,如表6所示。
 
表6  循環(huán)左移位的次數(shù)
 
第三階段:將C1、D1合并后得到的56位數(shù)據(jù)(C1,D1)經(jīng)置換選擇2(如表7所示),即經(jīng)固定的規(guī)則,置換選擇出重新排列的48位二進制數(shù)據(jù),即為子密鑰k1。
 
表7  置換選擇2
 
將C1、D1作為下一輪的輸入,迭代第二、第三兩個階段,即可得到k2。這樣經(jīng)過16輪迭代即可生成16個48位的子密鑰。
 
(5)DES的解密算法
 
DES的解密算法與加密算法相同,只是子密鑰的使用次序相反,即第一輪用第16個子密鑰,第二輪用第15個子密鑰,以此類推,最后一輪用第1個子密鑰。
 
2、DES的安全性
 
自從DES被采納為美聯(lián)邦標(biāo)準(zhǔn)以來,其安全性一直值得思考并充滿爭論。
 
實際中使用的56位密鑰,共有256≈7.2×1016種可能。一臺每毫秒執(zhí)行一次DES加密運算的計算機,即使僅搜索一半的密鑰空間,也需要用1000年的時間才能破譯出密文。所以,在20世紀(jì)70年代的計算機技術(shù)條件下,窮舉攻擊明顯不太實際。DES是一種非常成功的密碼技術(shù)。
 
每毫秒執(zhí)行一次運算的假設(shè)過于保守,隨著計算機硬件與網(wǎng)絡(luò)技術(shù)的快速發(fā)展,56位的密鑰顯得太短,無法抵抗窮舉搜索攻擊,尤其到了20世紀(jì)90年代后期。1997年,美國克羅拉多州程序員利用互聯(lián)網(wǎng)上的14000多臺計算機,花費96天時間,成功破解了DES密鑰。更為嚴重的是,1998年,電子前哨基金會(Electronic Frontier Foundation,EFF)設(shè)計出了專用的DES密鑰搜索機,該機器只需要56小時就能破解一個DES密鑰。更糟糕的是,電子前哨基金會公布了這種機器的設(shè)計細節(jié),如此一來,隨著硬件速度的提高和造價的下降,任何人都能擁有一臺高速破譯機,這最終必將導(dǎo)致DES毫無價值。1998年年底,DES停止使用。
 
克服短密鑰缺陷的一個解決辦法是使用不同的密鑰,多次運行DES算法。這種方案被稱為加密-解密-加密三重DES方案,即3DES。如圖6所示,2組56位密鑰,實現(xiàn)3次加密。1999年,3DES被頒布為新標(biāo)準(zhǔn)。
 
圖6  三重DES加密原理
 
原文來源:計算機與網(wǎng)絡(luò)安全
 

Copyright © 2017-2024 河南中瀚安全技術(shù)有限公司 版權(quán)所有 豫ICP備18011434號-1 豫公網(wǎng)安備 41019702002746號