des与3des
對稱密碼-DES和3DES
? ? 最近在看信息安全的知識,就總結了一下自己所學到知識。
????先說一下什么是對稱密碼算法,什么是對稱密碼算法呢?對稱密碼算法是指有了加密密鑰就可以推算出解密密鑰,有了解密密鑰就可以推算出加密密鑰的的算法。
????那DES是什么呢?DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),并授權在非密級政府通信中使用,隨后該算法在國際上廣泛流傳開來。需要注意的是,在某些文獻中,作為算法的DES稱為數據加密算法(Data Encryption Algorithm,DSA),已與作為標準的DES區分開來。
?????DES設計中使用了分組密碼設計的兩個原則:混淆(confusion)和擴散(diffusion),其目的是抗擊敵手對密碼系統的統計分析。混淆是使密文的統計特性與密鑰的取值之間的關系盡可能復雜化,以使密鑰和明文以及密文之間的依賴性對密碼分析者來說是無法利用的。擴散的作用就是將每一位明文的影響盡可能迅速地作用到較多的輸出密文位中,以便在大量的密文中消除明文的統計結構,并且使每一位密鑰的影響盡可能迅速地擴展到較多的密文位中,以防對密鑰進行逐段破譯。
DES以64位分組長度對數據加密,其中包括了8位奇偶校驗位,所以實際的密文長度為56位,其過程如下:
?
用M表示明文,用C表示密文,用K表示密鑰,加密函數為E,解密函數為D,則DES的加密變換為:;解密變換為:。
3DES是針對DES算法密鑰過短、存在安全性的問題而改進的一個措施,被稱為“3DES”。其實只是通過簡單的執行3次DES來達到增加密鑰長度和安全而已。其過程如下圖所示:
?
在上圖中3DES算法在對明文M進行加密時,采用了三次加密過程,其中第一次和第三次是采用DES的加密算法,第二次采用的則是解密算法,從而得到最終的密文C。這種加密過程為“加密-解密-加密”,所以又稱為EDE(Encrypt-Decrypt-Encrypt)方案。其具體加密與解密過程為
加密過程:明文M經過第一次加密得到的密文,第二次采用的是解密算法,所以此時得到的密文為,第三次采用加密算法,其密文文為,由此得到最終密文,此時將依次將替換得到最終3DES加密算法;
與此解密過程為最終密文C要先進行解密,其解密算法為得到第一個明文,接著在進行第二次解密,只不過此時要用的是原先解密的相對面其加密算法得到,最后解密第二次的明文得到最終明文,此時依次替換則可得到最終明文。
具體的對于DES加密在C#與Java中的應用可以參考下方鏈接的博主哦:http://www.cnblogs.com/haoxinyue/archive/2012/04/26/2470661.html
總結
- 上一篇: 手机中的AR是怎么实现的
- 下一篇: Xcode执行Analyze静态分析