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盒之謎留有遺憾。