DES算法簡介
DES(DataEncryptionStandard)是目前流行的加密算法之壹。DES是對稱的,即它使用相同的密鑰加密和解密數據。
DES也是壹種分組加密算法,壹次處理固定長度的數據段,稱為分組。DES數據包的大小是64位。如果加密數據長度不是64位的倍數,則可以根據壹些特定規則來填充這些位。
本質上,DES的安全性依賴於偽表示,在密碼學上,依賴於“混沌與擴散”原理。混淆的目的是隱藏任意明文和密文或密鑰之間的關系,擴散的目的是使明文和密鑰中的有效位壹起形成盡可能多的密文。兩者結合使得安全性相對較高。
DES算法通過壹系列的置換和替換操作對明文進行加密。該過程的關鍵是從給定的初始密鑰中獲取16子密鑰的函數。加密壹組明文,每個子密鑰按順序(1-16)應用於壹系列比特運算中的數據,每個子密鑰使用壹次,重復16次。每次叠代稱為壹輪。除了子密鑰以相反的順序(16-1)處理密文之外,可以采取相同的步驟來解密密文。
計算16子項
上述DES算法的壹個步驟是從初始密鑰計算16個子密鑰。DES使用的是56位的初始密鑰,但是這裏提供的是64位的值,因為在硬件實現中每8位就可以用於奇偶校驗,多余的位在軟件實現中幹脆忽略不計。為了獲得56位密鑰,可以以許可證表1的形式執行密鑰轉換。
DES算法的實現
考慮到DES算法涉及的比特運算較多,DES算法通常用硬件實現。DES算法中的圖表和術語(用線條和方框畫出的流程圖,以及S-box、P-box等術語)使其更有可能用硬件實現。當然,軟件實現也有它的價值。在軟件開發中,通過幾個基本的指令操作來幫助實現DES中的各種排列、變換和替換操作是非常有效的。