|
本帖最后由 hotpower 于 2009-7-22 21:35 編輯
HotWC3與DES加密算法之比較
DES是上世紀70年代由IBM發明后被作為美國數據加密標準。HotWC3是中國的一位不懂數學的老菜農
的開心之作,以下簡稱為WC3加密算法。
1.加密體系歸屬
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盒之謎留有遺憾。
每個密碼設計者都想使自己設計的密碼不可破解,當然這都是設計者本人的最大愿望。每個成熟的密碼
體系都要承受密碼分析學中的各種攻擊方法。
WC3的防護設計主要在兩個被攻擊的部位:密鑰流和加密算法。
與DES一樣,WC3也有弱密鑰和半弱密鑰之分。站在流加密法的角度,可認為是密鑰流偽周期固定且遠遠小于
明文流或密文流的長度。弱密鑰和半弱密鑰會大大降低密碼的安全強度。
WC3用適當的初始密鑰置換以降低此現象的發生概率,即用三角變換和星期及天干地支變換。故各自密鑰流
的命名也隨之而生。W(星期)C(CRC)3(三角)也由此而來。
密鑰流的設計考慮了軟硬件的實現和使用者對結構理解的簡潔,只采用了一般簡單的環移。為達到密鑰流
的偽隨機周期最大,采用了各個子密鑰流不同的環移互控方式。
在三角密鑰流即CRC初值密鑰流和CRC權值密鑰流設計上,采用交叉反序環移,雖然它和整體一個字(兩字節)
環移對密鑰的流動一樣,但反序會造成逆向分析的難度。
多對密鑰流同時保護WC3的重點CRC權以阻止對CRC8內核算法的攻擊。即阻止攻擊CRC編碼表。
日期和用戶密鑰流各為32位,由天地和星期流控制不同的移位次數,同時它們又反控其他密鑰流的移動。
天地和星期流除控制其他密鑰流的移動外還監視明文流和密文流的變化。阻止利用差分攻擊以及基于明文
和密文的攻擊。
擴展密鑰流主要隔離明文流和密文流和CRC8內核的直接聯系,阻止選擇明文的攻擊。
總之WC3的安全性在于密鑰流的偽隨機周期的長度和對CRC權值和方向的混淆。
7.對比總結
DES已應用30多個年頭,它是分組密碼設計的典范,尤其是其神秘的S盒傾倒了無數個分組密碼設計者。
WC3雖然屬于流密碼,本應該把重點放到密鑰流的偽隨機周期設計上面。DES的S盒之謎使WC3設計者本人
倍感興趣,它的左右分組結構非常清晰,故WC3的設計中DES的烙印很深。
從WC3的框架結構可以看出:
選擇CRC做WC3的內核算法后大大區別的以往的流密碼設計,CRC的初值和權滿足了WC3的左右對稱結構。
使本應該一路的密鑰流分成2個密鑰支流,這無形中加倍了密鑰的長度,增強了密碼體系的安全強度。
同時也了結了擁有S盒的夢想,雖然它是個“線性”的S盒,但它的矩(巨)陣和“多入口參數”可以彌補不是
“非線性”的遺憾,同時CRC的“線性S盒”也虛擬地造就了CRC擁有海量的CRC編解碼矩陣表格。
總之HotWC3是個密鑰位數及核算法可以隨意升降級別的流加密體系,它設計特點獨到,不隨大流。
HotWC3的設計原則:“各行其道、密鑰混淆、算法擴散”。它的安全性需要時間的考驗和專家的論證。
8.展望
菜農不圖謀什么,只要“曾經擁有”。是的,我做了,做到了。用心了,心用了。
密碼就是要被破解的,有人去破解,而且破解了,對于密碼的設計者不是遺憾而是“光榮和榮耀”~~~
因為他的“密碼”曾有無數人的關注和為之付出的努力,總比沒人重視要強百倍~~~
菜農此生在MCU方面不知“扒光”了多少程序設計者的“衣裳”,每次都向他“默默地致敬”~~~
菜農也等著有人向俺“默默地致敬”~~~
菜農HotPower@126.com 2009.7.21 于西安雁塔菜地
點擊直接運行: 112位HotWC3/CRC通用網上演算器V2.19
|
|