des演算法密鑰長度
❶ 3des的秘鑰長度
是3x56bit長的密鑰,DES是一個經典的對稱加密演算法,但也缺陷明顯,即56位的密鑰安全性不足,已被證實可以在短時間內破解。為解決此問題,出現了3DES,也稱Triple DES,3DES為DES向AES過渡的加密演算法,它使用3條56位的密鑰對數據進行三次加密。為了兼容普通的DES,3DES並沒有直接使用 加密->加密->加密 的方式,而是採用了加密->解密->加密 的方式。
❷ des密鑰長度是多少位
56位
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。
❸ 現代常見的對位進行加密的演算法有
現代常見的對位進行加密的演算法有DES演算法、AES演算法、LEA演算法。
1、DES演算法:一種對稱加密演算法搏雹,採用分組密碼,密鑰長度為112位或168位。
2、AES演算法:一種對稱加密演算法,採用分組密碼,昌銀州密鑰長度可選128位、192位、256位。
3、LEA演算法:一種對稱加密演算法,是中國耐蔽自主研發的加密演算法,密鑰長度可選128位、192位、256位。
❹ 對稱加密演算法之DES介紹
DES (Data Encryption Standard)是分組對稱密碼演算法。
DES演算法利用 多次組合替代演算法 和 換位演算法 ,分散和錯亂的相互作用,把明文編製成密碼強度很高的密文,它的加密和解密用的是同一演算法。
DES演算法,是一種 乘積密碼 ,其在演算法結構上主要採用了 置換 、 代替 、 模二相加 等函數,通過 輪函數 迭代的方式來進行計算和工作。
DES演算法也會使用到數據置換技術,主要有初始置換 IP 和逆初始置換 IP^-1 兩種類型。DES演算法使用置換運算的目的是將原始明文的所有格式及所有數據全部打亂重排。而在輪加密函數中,即將數據全部打亂重排,同時在數據格式方面,將原有的32位數據格式,擴展成為48位數據格式,目的是為了滿足S盒組對數據長度和數據格式規范的要求。
一組數據信息經過一系列的非線性變換以後,很難從中推導出其計算的過程和使用的非線性組合;但是如果這組數據信息使用的是線性變換,計算就容易的多。在DES演算法中,屬於非線性變換的計算過程只有S盒,其餘的數據計算和變換都是屬於線性變換,所以DES演算法安全的關鍵在於S盒的安全強度。此外,S盒和置換IP相互配合,形成了很強的抗差分攻擊和抗線性攻擊能力,其中抗差分攻擊能力更強一些。
DES演算法是一種分組加密機制,將明文分成N個組,然後對各個組進行加密,形成各自的密文,最後把所有的分組密文進行合並,形成最終的密文。
DES加密是對每個分組進行加密,所以輸入的參數為分組明文和密鑰,明文分組需要置換和迭代,密鑰也需要置換和循環移位。在初始置換IP中,根據一張8*8的置換表,將64位的明文打亂、打雜,從而提高加密的強度;再經過16次的迭代運算,在這些迭代運算中,要運用到子密鑰;每組形成的初始密文,再次經過初始逆置換 IP^-1 ,它是初始置換的逆運算,最後得到分組的最終密文。
圖2右半部分,給出了作用56比特密鑰的過程。DES演算法的加密密鑰是64比特,但是由於密鑰的第n*8(n=1,2…8)是校驗(保證含有奇數個1),因此實際參與加密的的密鑰只有 56比特 。開始時,密鑰經過一個置換,然後經過循環左移和另一個置換分別得到子密鑰ki,供每一輪的迭代加密使用。每輪的置換函數都一樣,但是由於密鑰位的重復迭代使得子密鑰互不相同。
DES演算法 利用多次組合替代演算法和換位演算法,分散和錯亂的相互作用,把明文編製成密碼強度很高的密文,它的加密和解密用的是同一演算法。
DES演算法詳述:DES對64位明文分組(密鑰56bit)進行操作。
1、 初始置換函數IP:64位明文分組x經過一個初始置換函數IP,產生64位的輸出x0,再將分組x0分成左半部分L0和右半部分R0:即將輸入的第58位換到第一位,第50位換到第2位,…,依次類推,最後一位是原來的第7位。L0、R0則是換位輸出後的兩部分,L0是輸出的左32位,R0是右32位。例,設置換前的輸入值為D1D2D3…D64,則經過初始置換後的結果為:L0=D58D50…D8;R0=D57D49…D7.其置換規則如表1所示。
DES加密過程最後的逆置換 IP^-1 ,是表1的 逆過程 。就是把原來的每一位都恢復過去,即把第1位的數據,放回到第58位,把第2位的數據,放回到第50位。
2、 獲取子密鑰 Ki :DES加密演算法的密鑰長度為56位,一般表示為64位(每個第8位用於奇偶校驗),將用戶提供的64位初始密鑰經過一系列的處理得到K1,K2,…,K16,分別作為 1~16 輪運算的 16個子密鑰 。
(1). 將64位密鑰去掉8個校驗位,用密鑰置換 PC-1 (表2)置換剩下的56位密鑰;
(2). 將56位分成前28位C0和後28位D0,即 PC-1(K56)=C0D0 ;
(3). 根據輪數,這兩部分分別循環左移1位或2位,表3:
(4). 移動後,將兩部分合並成56位後通過壓縮置換PC-2(表4)後得到48位子密鑰,即Ki=PC-2(CiDi).
子密鑰產生如圖2所示:
3、 密碼函數F(非線性的)
(1). 函數F的操作步驟:密碼函數F 的輸入是32比特數據和48比特的子密鑰:
A.擴展置換(E):將數據的右半部分Ri從32位擴展為48位。位選擇函數(也稱E盒),如表5所示:
B.異或:擴展後的48位輸出E(Ri)與壓縮後的48位密鑰Ki作異或運算;
C.S盒替代:將異或得到的48位結果分成八個6位的塊,每一塊通過對應的一個S盒產生一個4位的輸出。
(2)、D、P盒置換:將八個S盒的輸出連在一起生成一個32位的輸出,輸出結果再通過置換P產生一個32位的輸出即:F(Ri,Ki),F(Ri,Ki)演算法描述如圖3,最後,將P盒置換的結果與最初的64位分組的左半部分異或,然後,左、右半部分交換,開始下一輪計算。
4、密文輸出:經過16次迭代運算後,得到L16、R16,將此作為輸入,進行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算。例如,第1位經過初始置換後,處於第40位,而通過逆置換,又將第40位換回到第1位,其逆置換規則如表8所示:
圖4為DES演算法加密原理圖:
DES演算法加密和解密過程採用相同的演算法,並採用相同的加密密鑰和解密密鑰,兩者的區別是:(1)、DES加密是從L0、R0到L15、R15進行變換,而解密時是從L15、R15到L0、R0進行變換的;(2)、加密時各輪的加密密鑰為K0K1…K15,而解密時各輪的解密密鑰為K15K14…K0;(3)、加密時密鑰循環左移,解密時密鑰循環右移。
DES加密過程分析:
(1)、首先要生成64位密鑰,這64位的密鑰經過「子密鑰演算法」換轉後,將得到總共16個子密鑰。將這些子密鑰標識為Kn(n=1,2,…,16)。這些子密鑰主要用於總共十六次的加密迭代過程中的加密工具。
(2)、其次要將明文信息按64位數據格式為一組,對所有明文信息進行分組處理。每一段的64位明文都要經過初試置換IP,置換的目的是將數據信息全部打亂重排。然後將打亂的數據分為左右兩塊,左邊一塊共32位為一組,標識為L0;右邊一塊也是32位為一組,標識為R0.
(3)、置換後的數據塊總共要進行總共十六次的加密迭代過程。加密迭代主要由加密函數f來實現。首先使用子密鑰K1對右邊32位的R0進行加密處理,得到的結果也是32位的;然後再將這個32位的結果數據與左邊32位的L0進行模2處理,從而再次得到一個32位的數據組。我們將最終得到的這個32位組數據,作為第二次加密迭代的L1,往後的每一次迭代過程都與上述過程相同。
(4)、在結束了最後一輪加密迭代之後,會產生一個64位的數據信息組,然後我們將這個64位數據信息組按原有的數據排列順序平均分為左右兩等分,然後將左右兩等分的部分進行位置調換,即原來左等分的數據整體位移至右側,而原來右等分的數據則整體位移至左側,這樣經過合並後的數據將再次經過逆初始置換IP^-1的計算,我們最終將得到一組64位的密文。
DES解密過程分析:DES的解密過程與它的加密過程是一樣的,這是由於DES演算法本身屬於對稱密碼體制演算法,其加密和解密的過程可以共用同一個過程和運算。
DES加密函數f:在DES演算法中,要將64位的明文順利加密輸出成64位的密文,而完成這項任務的核心部分就是加密函數f。加密函數f的主要作用是在第m次的加密迭代中使用子密鑰Km對Km-1進行加密操作。加密函數f在加密過程中總共需要運行16輪。
十六輪迭代演算法:它先將經過置換後的明文分成兩組,每組32位;同時密鑰也被分成了兩組,每組28位,兩組密鑰經過運算,再聯合成一個48位的密鑰,參與到明文加密的運算當中。S盒子,它由8個4*16的矩陣構成,每一行放著0到15的數據,順序各個不同,是由IBM公司設計好的。經過異或運算的明文,是一個48位的數據,在送入到S盒子的時候,被分成了8份,每份6位,每一份經過一個S盒子,經過運算後輸出為4位,即是一個0到15的數字的二進製表示形式。具體運算過程為,將輸入的6位中的第1位為第6位合並成一個二進制數,表示行號,其餘4位也合並成一個二進制數,表示列號。在當前S盒子中,以這個行號和列號為准,取出相應的數,並以二進制的形式表示,輸出,即得到4位的輸出,8個S盒子共計32位。
DES演算法優缺點:
(1)、產生密鑰簡單,但密鑰必須高度保密,因而難以做到一次一密;
(2)、DES的安全性依賴於密鑰的保密。攻擊破解DES演算法的一個主要方法是通過密鑰搜索,使用運算速度非常高的計算機通過排列組合枚舉的方式不斷嘗試各種可能的密鑰,直到破解為止。一般,DES演算法使用56位長的密鑰,通過簡單計算可知所有可能的密鑰數量最多是2^56個。隨著巨型計算機運算速度的不斷提高,DES演算法的安全性也將隨之下降,然而在一般的民用商業場合,DES的安全性仍是足夠可信賴的。
(3)、DES演算法加密解密速度比較快,密鑰比較短,加密效率很高但通信雙方都要保持密鑰的秘密性,為了安全還需要經常更換DES密鑰。
參考鏈接 : https://blog.csdn.net/fengbingchun/article/details/42273257
❺ 72位密鑰是什麼密碼
加密體系歸屬
DES屬於分組加密法,WC3屬於流加密法。
DES分組為64位,即每次加密需要8個位元組。
WC3內核採用CRC8演算法,故分組為8位,即每次加密只需要1個位元組。
DES為固定分組,WC3可根據內核的變化得到不同的分組數據位數。
例WC3採用CRC64時,分組也隨之變為64位. 故WC3的分組位數由CRCn(n=4,8,12,16,32,64,128,...)決定。
2.密鑰長度
DES的密鑰長度為56位(64-8),WC3的密鑰長度與CRCn演算法有關。
內核為CRC8的WC3密鑰長度為112位。以下所有對比將全部採用CRC8的WC3或WC38。
3.子密鑰的產生
DES主密鑰為56位,產生16輪每輪48位的子密鑰。用以和半組32位明文每輪的混淆。
WC3主密鑰為112位,產生結構對稱的8對密鑰流,其中1對各為32位密鑰流,其他都為8位密鑰流。
由於流密碼的原因,WC3的「輪」即為每次的加密和解密過程。每輪8對密鑰流以不同方式和方向環移不同的位數。
每輪參與直接作用的密鑰即為本輪的子密鑰。WC3每輪的子密鑰為72位。
4.演算法的f函數
f函數是DES加密法中最重要的部分,其重點就是S盒。其次是擴展及壓縮置換。
CRC8正運算函數和CRC8逆運算函數是WC3密碼不可缺少的部分,它同時具備了S盒和擴展作用。
DES右半部分明文數據為32位,每輪子密鑰的長度為48位,且每個S盒位6入4出,8個S盒共需48位輸入,故必須將明型昌慎文
擴展到48位才能與子密鑰混淆,進入S盒進行非線性置換。
DES的32位明文經過擴展置換後為48位,原明文的一半即16位與密鑰中的16位作用,原明文的另一半16位要同32位
密鑰作用。
DES的S盒實際類同CRC4,它與CRC4同屬於0~15全排列表即16!=20922789888000個表。
用矩陣的行列表示為15!行16列,即DES和CRC4的S盒「祖宗」是個1307674368000行16列的矩陣。迅消
每個S盒為4行16列,8個S盒也不過32行16列。
CRC4每個CRC權對應1個S盒,共16個S盒,每個S盒為16*16的矩陣,共256行16列,是DES的S盒的8倍。
WC3的S盒就是CRC8,每個CRC權對應1個S盒,共256個S盒,每個S盒為256*256的矩陣,共65536行256列。
DES的擴展置換實際是明文1個位元組擴展半位元組即擴展0.5倍,WC3採用明文與初值組合擴展256倍的方法。
DES的壓縮置換實際所有S盒4*8=32位出口的32位置換即交換,所謂壓縮是指S盒的48位入32位出的結果。
同理WC3在CRC8出入的關系是(8位明文+8位初值+8位權)24入8出(8位密文),實際也是所謂的壓縮。
DES的S盒和CRC的S盒的根本區別在於前者是所謂的「非線性」即不好用函數表述及實現,後者可用函數表述和實現。
5.演算法的實現過程
DES和WC3都是對稱密碼體系,即加密和解密共用同一密鑰。
DES的加密和解密演算法相同,不同的是子密鑰每輪次序的不同。
WC3的加密和解密演算法不同,子密鑰流每輪次序相同。
WC3的加密過程為CRC8的卜敬正運算函數即CRC8編碼矩陣的查表過程。(對稱矩陣)
WC3的解密過程為CRC8的逆運算函數即CRC8解碼矩陣的查表過程。(非對稱矩陣)
6.安全性
DES設計壽命為10年,但至今還在沿用,說明它設計的合理,雖然S盒之謎留有遺憾。
❻ java des加密,密鑰的長度是多少
3des演算法是指使用雙長度(16位元組)密鑰k=(kl||kr)將8位元組明文數據塊進行3次des加密/解密。如下所示:
y
=
des(kl)[des-1(kr)[des(kl[x])]]
解密方式為:
x
=
des-1
(kl)[des
(kr)[
des-1
(kl[y])]]
其中,des(kl[x])表示用密鑰k對數據x進行des加密,des-1
(kl[y])表示用密鑰k對數據y進行解密。
sessionkey的計算採用3des演算法,計算出單倍長度的密鑰。表示法為:sk
=
session(dk,data)
3des加密演算法為:
void
3des(byte
doublekeystr[16],
byte
data[8],
byte
out[8])
{
byte
buf1[8],
buf2[8];
des
(&doublekeystr[0],
data,
buf1);
udes(&doublekeystr[8],
buf1,
buf2);
des
(&doublekeystr[0],
buf2,
out);
}
❼ 什麼是DES
解釋:FIPS46規定了一種數據加密演算法,由於FIPS46的名稱即為數據加密標准(Data Encryption Standard,DES),所以人們就將該標准中所定義的演算法稱為DES演算法。DES演算法是IBM公司於1975年研究成功並公開發表的,並於1977 年成為聯邦信息處理標准。DES的密鑰長度為64位,但由於每位元組由1比特校驗位,所以有效密鑰長度為56位。當前,DES演算法被認為是不安全的,通常使 用3-DES來實現對數據的加密。來源: 中國SSL證書
❽ DES是一種什麼加密演算法,其密鑰長度為56 bit,3DES是基於DES的加密方式,對明文
des是一直對稱加密演算法,就是加密的密鑰和解密的密鑰是一樣的。DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,來生成最大64bit的分組大小。
DES 的常見變體是3 DES,使用 168 位的密鑰對資料進行三次加密的一種機制;它通常(但非始終)提供極其強大的安全性。如果三個 56 位的子元素都相同,則三重 DES 向後兼容 DES。
❾ des加密演算法
des加密演算法如下:
一、DES加密演算法簡介
DES(Data Encryption Standard)是目前最為流行的加密演算法之一。DES是對稱的,也就是說它使用同一個密鑰來加密和解密數據。
DES還是一種分組加密演算法,該演算法每次處理固定長度的數據段,稱之為分組。DES分組的大小是64位,如果加密的數據長度不是64位的倍數,可以按照某種具體的規則來填充位。
從本質上來說,DES的安全性依賴於虛假表象,從密碼學的術語來講就是依賴於「混亂和擴散」的原則。混亂的目的是為隱藏任何明文同密文、或者密鑰之間的關系,而擴散的目的是使明文中的有效位和密鑰一起組成盡可能多的密文。兩者結合到一起就使得安全性變得相對較高。
DES演算法具體通過對明文進行一系列的排列和替換操作來將其加密。過程的關鍵就是從給定的初始密鑰中得到16個子密鑰的函數。要加密一組明文,每個子密鑰按照順序(1-16)以一系列的位操作施加於數據上,每個子密鑰一次,一共重復16次。每一次迭代稱之為一輪。要對密文進行解密可以採用同樣的步驟,只是子密鑰是按照逆向的順序(16-1)對密文進行處理。
❿ des的密鑰長度是多少bit
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。
與每輪編碼時,一個48位的「每輪」密鑰值由56位的完整密鑰得出來。
DES用軟體進行解碼需要用很長時間,而用硬體解碼速度非常快。
但幸運的是當時大多數黑客並沒有足夠的設備製造出這種硬體設備。
在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密。
而且需要12個小時的破解才能得到結果。
所以,當時DES被認為是一種十分強壯的加密方法。
1. 用密鑰K1進行DEA加密。
2. 用K2對步驟1的結果進行DES解密。
3. 用步驟2的結果使用密鑰K1進行DES加密。
這種方法的缺點,是要花費原來三倍時間,從另一方面來看,三重DES的112位密鑰長度是很「強壯」的加密方式了