數據加密標準DES
DES的原始思想可以參照二戰德國的恩格瑪機,其基本思想大致相同。傳統的密碼加密都是由古代的循環移位思想而來,恩格瑪機在這個基礎之上進行了擴散模糊。但是本質原理都是壹樣的。現代DES在二進制級別做著同樣的事:替代模糊,增加分析的難度。
加密原理
DES 使用壹個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是壹個叠代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中壹半應用循環功能,然後將輸出與另壹半進行“異或”運算;接著交換這兩半,這壹過程會繼續下去,但最後壹個循環不交換。DES 使用 16 個循環,使用異或,置換,代換,移位操作四種基本運算。
基本原理
基本原理入口參數有三個:key、data、mode。 key為加密解密使用的密鑰,data為加密解密的數據,mode為其工作模式。當模式為加密模式時,明文按照64位進行分組,形成明文組,key用於對數據加密,當模式為解密模式時,key用於對數據解密。實際運用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。
密鑰生成
取得密鑰
從用戶處取得壹個64位(本文如未特指,均指二進制位))長的密碼key ,去除64位密碼中作為奇偶校驗位的第8、16、24、32、40、48、56、64位,剩下的56位作為有效輸入密鑰