劉源源
摘要:DES算法是目前常用的加密算法之一,3DES算法做為DES -個更安全的變形,具有更廣闊的應用范圍。本文系統(tǒng)分析了3DES算法的實現(xiàn)方式,采用vc++設計了一個3DES加密系統(tǒng),實現(xiàn)對文件和數(shù)據(jù)的加密保護。
關鍵詞:3DES算法;加密系統(tǒng);vc++
中圖分類號:TP309.7
文獻標識碼:A
文章編號:1672 - 9129( 2018) 12 - 0116 - 02
引言:隨著信息社會的到來,人們在享受信息資源所帶來的巨大利益的同時,也面臨著信息安全的嚴峻考驗。以信息的保密性、完整性和不可否認性為代表的信息安全問題已成為信息化發(fā)展中日益突出的問題。密碼技術是保證數(shù)據(jù)安全的關鍵,它的核心是密碼算法。DES算法是常用的加密算法之一,目前被廣泛應用于金融、工業(yè)、通訊等領域[1]。3DES是DES的一個更安全的變形,以DES為基本模塊,通過組合分組方法設計出更為安全的分組加密算法。
1 3DES加密算法的基本原理
DES算法為密碼體制中的對稱密碼體制,是一種對二元數(shù)據(jù)進行加密的算法。明文數(shù)據(jù)分組長度為64位,密文分組長度也是64位,使用的密鑰為64位,有效密鑰長度為56位,有8位用于奇偶校驗。加密的過程是先對64位明文分組進行初始置換,在左、右兩部分分別經(jīng)過16輪迭代后,再進行異或運算與變換,最后進行逆置換得出密文[2]。此算法解密時的過程和加密時使用相同的密鑰,但密鑰的使用順序正好相反。
3DES算法是三重數(shù)據(jù)加密算法,是對每個數(shù)據(jù)塊應用三次DES加密算法。3DES算法的密鑰長度增加到112位或168位,可以有效克服DES面臨的窮舉搜索,增強了抗差分分析和線性分析能力[3]。
2 3DES加密系統(tǒng)設計
DES的加密分為子密鑰生成和迭代加密兩個主要部分。子密鑰生成將一個64位的密鑰變換為16個48位的子密鑰,用于后續(xù)加密運算。迭代加密通過對明文的置換、拆分、迭代異或運算、變換等方式實現(xiàn)DES加密。3DES通過利用兩個密鑰進行三次DES加密來實現(xiàn)。
2.1 子密鑰的生成函數(shù)。將64位的密鑰K,經(jīng)過PC-1選擇置換,去掉奇偶校驗位。密鑰K(56位)按左右分成28位的C0和D0,參照循環(huán)左移變換表對C0和D0進行循環(huán)左移變換LSi(i為當前循環(huán)次數(shù),循環(huán)16次),將循環(huán)左移結果進行PC-2置換,得到16個48位子密鑰[4]。
Ci= LSi(PC-1(K)(左邊28位)),Di=LSi(PC-1(K)(右邊28位))
Ki(48位)= PC-2(CiDi(56位))
2.2 加密迭代函數(shù)。將64位明文M進行初始IP置換后,分成左右32位的兩個部分L0和R0,將Li和Ri按照以下公式(圖2)進行16次迭代Li=Ri-1,Ri=Li-1①P(S(E(Ri-1)①Ki)),其中擴展置換E將Ri從32位擴展到48位,S盒子轉(zhuǎn)換將異或運算結果從48位轉(zhuǎn)換為32位。將運算后的結果LnRn左右交換位置后進行IP-1置換,得到64位密文結果。
2.3 3DES加密解密函數(shù)。設Ek()和Dk()分別代表DES算法的加密和解密過程,ki代表DES算法使用的密鑰,M代表明文,C代表密文,則3DES算法的過程可表示為:
C= Ek3(Dk2(Ek1(M))),M= Dkl(Ek2(Dk3(C))),密鑰k1、k3可采用相同值。
3 3DES加密系統(tǒng)的實現(xiàn)
本文采用vc++編制了3DES加密系統(tǒng),采用兩個密鑰進行加密。系統(tǒng)將密鑰1字符和密鑰2字符用二進制位信息表示,存儲在結構體變量Miyaol_hit和Miyao2_hit中,從明文文件中讀出明文字符流存儲在字符型數(shù)組MingwenBuf中。首先使用密鑰1對MingwenBuf進行Endes函數(shù)加密,再使用密鑰2對結果進行Endes函數(shù)解密,最后使用密鑰1對結果進行Endes函數(shù)加密,結果存儲在密文字符流數(shù)組MiwenBuf中,轉(zhuǎn)為密文文件作為輸出結果。
結論:本文介紹了3DES算法的基本原理,分析并設計了用vc+實現(xiàn)3DES加密解密的核心算法和流程,制作了個人計算機加密系統(tǒng),通過測試驗證該加密系統(tǒng)實現(xiàn)了對個人計算機文件和數(shù)據(jù)的加密保護,體現(xiàn)出3DES算法良好的加密效果。
參考文獻:
[1]鄧慧瀾,錢瀟.DES算法分析及應用[J].中國水運,2017,12:101 - 102.
[2]盧開澄.計算機密碼學計算機網(wǎng)絡中的數(shù)據(jù)保密與安全(第2版).北京:清華大學出版社,1998年7月.
[3]張福泰等.密碼學教程.武漢:武漢大學出版社,2006年.
[4]溫泉,趙紅敏,郝曉東,沈海鴻.一種高速高安全性的DES算法設計[J].微電子學與計算機,2014,12:164 - 167.