DES加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用_第1頁
DES加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用_第2頁
DES加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用_第3頁
DES加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用_第4頁
DES加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、des加密算法在保護(hù)文件傳輸中數(shù)據(jù)安全的應(yīng)用徐洪波1,李穎華2(1.唐山建龍實(shí)業(yè)有限公司河北遵化064200 ; 2.華北電力大學(xué)電力與電子工程學(xué)院河北保定071003 )摘 要:隨著internet的廣泛應(yīng)用-網(wǎng)絡(luò)中文件傳輸?shù)臄?shù)據(jù)安全性越來越受到入們的重視。原始的des加密算法一次加解密64位 本文介紹了如何使用c語言實(shí)現(xiàn)改進(jìn)的des數(shù)據(jù)加密算法,使其可以方便的加解密任意格式任意大小的文件確保文件傳輸中的數(shù)據(jù)安 全。最后針對des加密算法存在的安全隱患給予了簡單說明并提出了des加密算法的使用誤區(qū)。尖鍵詞:數(shù)據(jù)安全與計(jì)算機(jī)安全;des加密算法;文件傳輸中圖分類號:tp309.7文獻(xiàn)標(biāo)識碼:a

2、the application of des encryption algorithm toprotect data security in the file transferxu hong-bo l, li ying-hua2(/ tangshan jianlong industry co., ltd、zunhua hebei 064200, china;2. school of electronic and lnfonnation engineering, north china electric power university, baoding hebei 071003t china)

3、abstract: with a wide range of iniernet applications, data security in the network file transfer receives more and more attention. the original des (data encryption standard) encryption algorithm can encrypt and decrypt 64-bit once this paper describes how to use the c language to improve the implem

4、entation of the des data encryption algorithm. so that it can easily encrypt and decrypt the file of any format anc size to ensure lhe safety of lhe data in file transfer. finally, il gives a brief description of security risks that existed in des encryplion algoriihn* and proposed the application e

5、rrors of des encryption algorithm.key words: data security and computer security; des encryption algorithm; file transfer0引言在信息化的時(shí)代里,數(shù)據(jù)是頑載信息的基礎(chǔ),信息的交 流離不幵數(shù)據(jù)的傳輸。計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)總是通過介質(zhì) 傳送的,網(wǎng)絡(luò)中傳物的數(shù)據(jù)不斷的受到各方面有意無意的攻 擊,網(wǎng)絡(luò)中數(shù)據(jù)的安全性受到威脅。除了計(jì)算機(jī)病毒的安全 隱患外,各種數(shù)據(jù)截取、中斷、篡改、偽造使計(jì)算機(jī)網(wǎng)絡(luò)數(shù) 據(jù)傳輸受到強(qiáng)烈挑戰(zhàn),數(shù)字簽名、身份驗(yàn)證、數(shù)據(jù)加密技術(shù) 應(yīng)運(yùn)而生,尤其是數(shù)據(jù)加密技術(shù)給計(jì)算

6、機(jī)網(wǎng)絡(luò)數(shù)據(jù)安全帶來 了生機(jī)i2,o加密算法為數(shù)據(jù)加密傳輸提供了很好的解決方法。 數(shù)據(jù)加密標(biāo)準(zhǔn)(data encryption standard, des)是使用較廣 泛的加密體制,它于1977年被美國國家標(biāo)準(zhǔn)局即現(xiàn)在的國家 標(biāo)準(zhǔn)和技術(shù)研究所(n1st)采納為聯(lián)邦信息處理標(biāo)準(zhǔn)46(f1ps pub 46)o 1994年nist重新決定將des聯(lián)邦使用期延長5年。 nist推薦在一般商業(yè)應(yīng)用中使用des,而不用des來保護(hù) 官方機(jī)密。1999年nist頒布了標(biāo)準(zhǔn)fips pub 46-3)的新版本, 新版本規(guī)定了 des只能用于(歷史)遺留系統(tǒng)以及3des的 使用情況。因?yàn)閐es與3des的加、解

7、密算法是相同的,所 以理解des算法仍然有很重要的意義。1 des算法原理 保密性取決于對密鑰的保密,是一種對稱的分組密碼,在加 密前,先對整個(gè)明文進(jìn)行分組,然后對每一組二逬制進(jìn)行加 密處理,產(chǎn)生一組密文數(shù)據(jù),最后將各組密文串接起來,即 得出整個(gè)的密文。解密過程和加密過程相似,只是密鑰的使 用次序相反。密鑰的長度為56位(密鑰通常表示為64位的數(shù),但每 個(gè)第8位都用作奇偶檢驗(yàn),可以忽略)。密鑰可以是任意的 56位數(shù),且可以在任意時(shí)間改變。des算法的入口參數(shù)有3個(gè):key, data, mode。其彳 key為8個(gè)字節(jié)共64位,是des算法的工作密鑰;data也 為8個(gè)字節(jié)64位,是要被加密或

8、解密的數(shù)據(jù):mode為des 的工作方式,有兩種:加密或解密。des算法的工作過程:若mode為加密,則用key對數(shù) 據(jù)data進(jìn)行加密,生成data的密碼形式(64位)作為des 的輸出結(jié)果;若mode為解密,則用key對密碼形式的數(shù)提 data解密,還原為data的明碼形式(64位)作為des的輸 出結(jié)果叫簡單地說,算法只不過是加密的一種基本技術(shù),des基 本組建分組是這些技術(shù)的一種組合,它基于密鑰作用于明文, 這是眾所周知的輪(round)o des有16輪,這意味著要在明圖1表明了 des加密的整個(gè)機(jī)制。對于任意加密方案, 總有兩個(gè)輸入:明文和密鑰。des的明文長為64位,密鑰長 為5

9、6位。從圖中左半部分,可見明文的處理經(jīng)過了三個(gè)階段。首先, 64位的明文經(jīng)過初始置換(ip)而被重新排列。然后進(jìn)行16 輪的相同函數(shù)的作用,每輪的作用中都有置換和代換。最后 一輪迭代的輸出有64位,它是輸入明文和密鑰的函數(shù)。將其 左半部分和右半部分互換產(chǎn)生預(yù)輸出。最后,預(yù)輸出再被與 初始置換(ip)互逆的逆初始置換(ip)作用產(chǎn)生64位的密文。 除了初始和末尾置換外,des的結(jié)構(gòu)與菲斯特爾(feistel)密 碼結(jié)構(gòu)完全相同。圖1的右半部分給出了使用56位密鑰的過程。幵始時(shí), 密鑰經(jīng)過一個(gè)置換,然后經(jīng)過循環(huán)左移和另一個(gè)置換分別得 到子密鑰k.,供每一輪的迭代加密使用"每輪的置換函數(shù)都

10、 一樣,但是由于密鑰位的重復(fù)迭代使得子密鑰互不相同,5,o64m 曲交5 cm ««砒少;.論匚):舅丨倫 l加寸§_;t-、_ 呼1 舷"j_.1施 i ”超! 耘y1j2w*!* '圖1 des加密算法的一般描述2 des算法對文件的加解密實(shí)現(xiàn)2.1加密過程實(shí)現(xiàn)綜述des是一種用56位密鑰來加密64位數(shù)據(jù)的方法,用戶 輸入一個(gè)密碼,把這個(gè)密碼轉(zhuǎn)換為二進(jìn)制64位,去除64位 密碼中作為奇偶校驗(yàn)位的第8、16、24、32、40、48> 56> 64位, 剩下的56位作為有效輸入密鑰。在設(shè)計(jì)過程中,要進(jìn)行的就 是對密鑰等分、密鑰移位、密

11、鑰的選取和對數(shù)據(jù)的加密、換位、 擴(kuò)展、壓縮等操作。本程序?qū)崿F(xiàn)對文件的加解密。首先將文件以二進(jìn)制方式 讀取,通過函數(shù) fsource =fopen(sourcepath,"rb")來實(shí)現(xiàn),函 數(shù) int is_sourcepathright(char *source_path)用來檢查源文 件輸入路徑是否正確,正確則返回1。由于des是一種分組 密碼,在加密前,先對整個(gè)的明文進(jìn)行分組。每一個(gè)組長為 64bit,然后對每一個(gè)64bit z進(jìn)制進(jìn)行加密處理,產(chǎn)生一組 64bit密文數(shù)據(jù),最后將各組密文串接起來,即得出整個(gè)的密 文。通過fdesi =fopen(destpath,

12、"wb11 )讀入目的文件。函數(shù)int is_destpathriht(char dest_pcith)用于對目的文件路徑進(jìn)行檢 查。使用的密鑰為64bit,實(shí)際密鑰為56bit,有8bi【用于奇偶程序流程圖如圖2及圖3所示:1櫛j13i1ej工c«d圖2主程序流程圖圖3加(解)密模塊流程圖2.2程序的主要實(shí)現(xiàn)2.2.1變量的初始化及函數(shù)說明算法中有大量的數(shù)據(jù)需要初始化,如置換表、擴(kuò)展置換表、s.盒等。由于各個(gè)步驟的運(yùn)算涉及變量較多,變量的定義和初始化,宜采用靜態(tài)的數(shù)組形式。如unsigned char ipmap 定義初始置換表,unsigned char s*416=定

13、義了八個(gè)數(shù)纟e 來實(shí)現(xiàn)s盒置換,其他的表示也用類似的表示。2.2.2 des的各個(gè)環(huán)節(jié)實(shí)現(xiàn) 2.2.2.1對64位明文數(shù)據(jù)的處理置換部分比較簡單,這里不再贅述。s盒的設(shè)計(jì)是整個(gè) 加密算法的心臟。des是依靠它來實(shí)現(xiàn)非線性變化的。本設(shè) 計(jì)中用以下函數(shù)實(shí)現(xiàn)。int f(unsigned char unsigned char .unsigned char output) void p伽signed char output,unsigned char input);void fk(unsigned char *1,unsigned char unsigned char skjinsigned char

14、 output);unsigned char s旳4=定義了八個(gè)數(shù)組來實(shí)現(xiàn)s盒置 換。2.2.2.2子密鑰生成置 換 選 擇1和2分別用int pci (unsigned char cd,unsigned char *input); 和 int pc2(unsigned char *o utput, unsigned char *input) 來表示。函數(shù) int l si (unsigned char *input);實(shí)現(xiàn)循環(huán)左移。定義函數(shù) void generatesubkey(char sk 166,char inputkey)來實(shí)現(xiàn)密鑰生成。2.2.23分組鏈接模式密碼分組鏈接模式f加

15、密算法的輸入是當(dāng)前的明文組和 上一個(gè)密文組的異或。為了產(chǎn)生第一個(gè)密文分組,需要用戶 輸入一個(gè)初始向量iv (inputiv)與第一個(gè)明文異或,解密時(shí)與 解密算法的輸出相異。初始向量iv必須和密鑰一樣由雙方約int i;for(i=0;i< 8;i+)destil=inputiladesti;)temp|i=inputiv|il;array xor(plaintext,temp);2.2.2.4 des解密過程實(shí)現(xiàn)作為feistel密碼,des的解密算法與加密算法是相同 的,只是子密鑰的使用次序相反。如加密密鑰為kl.k2,-kl6, 則解密時(shí)密鑰為kl6,kl5,kl。解密函數(shù)為int

16、decryptfchar *sourcepath,char *destpath,chai' *inputkey,char inputiv); 2.3涉及問題及處理des密碼算法是一種塊加密算法,也就是一次加密一定 大小的塊。標(biāo)準(zhǔn)des-次加密64個(gè)bit,也就是8個(gè)字節(jié)。 我實(shí)現(xiàn)的時(shí)候是使用unsigned char 8這樣的數(shù)組作為緩沖 區(qū),也即數(shù)組中的每一個(gè)bi都用到了,如果用unsigned char 64這樣的數(shù)組作為緩沖區(qū),也就是數(shù)組中的每一個(gè)元素只 代表一個(gè)bit。這樣會(huì)造成內(nèi)存的浪費(fèi)。在做的時(shí)候還遇到了另外一個(gè)問題,因?yàn)閐es是塊加慈 算法,所以如果一個(gè)文件的大小不能整除

17、8字節(jié)的時(shí)候,勅 會(huì)無法加密解密剩下的幾個(gè)不足8字節(jié)的文件,當(dāng)時(shí)考慮能 方法是:計(jì)算文件大小能否被8byte整除,無論能與不能,者i 為其添加數(shù)個(gè)字節(jié)使其能被8整除,然后多加一個(gè)byte的數(shù) 據(jù)用來保存剛才添加字節(jié)的數(shù)量。比如:文件為9by t e,程序 就為其添加7byte,然后再添加ibyte,最后這ibyte的值為7。3程序運(yùn)行首先,進(jìn)入tc界面。點(diǎn)擊file-load-des2.c打開程序。按 fio 用左右移動(dòng)鍵選擇 coinplicr-complic to obj 生成 dcsl.obj» 然后選擇make cxc file生成dcsl.cxc的可執(zhí)行文件。兩個(gè)均 提示無

18、錯(cuò)誤時(shí)就可以點(diǎn)擊run運(yùn)行了"(以上選擇均為按enter 鍵執(zhí)行)。在運(yùn)行時(shí)首先會(huì)出現(xiàn)一個(gè)界面提示用戶輸入?yún)?shù)。運(yùn)行界面如圖4所示:圖4初始運(yùn)行界面如果不知道該怎樣輸入,可以選擇h,顯示幫助信息。 按d或e幵始加解密過程。例如要實(shí)現(xiàn)對d盤a.txt文件加 密則按提示依次輸入 c d:a.txt d:b.txt qwertyui iuytrcwq,運(yùn)行 界面如圖5:ftnfcivr.itrbse i a a 'a *i . * * vma * * _ _ _| ' 1 « » . |1 v -1 ci ioa i t p w vin ma* *fil

19、lti|4|e t mt(amtf < lfi ihsaerihisli.ctftinfut chr«k» 2圖5加密過程運(yùn)行界面運(yùn)行結(jié)果如圖6及圖7所示:圖6源文件d: a.txt圖7加密后的目的文件d:b.txt對此文件進(jìn)行解密,依次輸入d d:b.txt d:c.txt qwertyui iuytrewq,運(yùn)行界面與加密時(shí)基本相同。解密結(jié)果如圖8。圖8解密后的目的文件d:c.txt通過上述對文件的操作,實(shí)現(xiàn)了對文件的加密和解密功 能,在turbo c 2.0下運(yùn)行良好并通過測試,說明了程序的可 行性和正確性。4des加密算法在數(shù)據(jù)安全中的應(yīng)用及誤區(qū)4.1 des

20、加密算法在數(shù)據(jù)安全中的應(yīng)用對電腦系統(tǒng)和網(wǎng)絡(luò)的攻擊可以按電腦系統(tǒng)提供數(shù)據(jù)的功 能來分類。一般來說,信息的來源是一個(gè)文件或是內(nèi)存的- 個(gè)區(qū)域,終點(diǎn)是另一個(gè)文件或用戶。政府、企業(yè)、個(gè)人都在 進(jìn)行數(shù)據(jù)的傳輸,這就需要一種強(qiáng)有力的安全措施來保護(hù)枷 密數(shù)據(jù)不被竊取或篡改。在通信網(wǎng)絡(luò)的兩端,雙方約定了一 致的key,在通信的源點(diǎn)用key對核心數(shù)據(jù)進(jìn)行des加密, 然后以密碼形式通過公共通信網(wǎng)(如電話網(wǎng))傳輸?shù)酵ㄐ啪W(wǎng)在檢測操作活動(dòng)的類型中,有f面幾種類型的檢測:表2檢測類型valuemeani ngfile_ notif y_ cha nge_ file_ name在審計(jì)文件夾或子文件夾中任意 文件名改變時(shí)返

21、回該值。改變包 括改名,創(chuàng)建和刪除文件。file notify change dir nmmmmame在審計(jì)文件夾或子文件夾中任意 文件夾名改變時(shí)返回。改變包括 創(chuàng)建和刪除文件夾該值。f1le_not1fy_change_attr1 butes在審計(jì)文件夾或子文件夾中任意 文件夾屬性改變時(shí)返回該值。f1le_not1fy_change_ size在審計(jì)文件夾或子文件夾中任意 文件大小改變時(shí)返回該值。只有 當(dāng)文件寫入磁盤時(shí)操作系統(tǒng)可以 幀測到文件大小改變。file_ notif y_ cha nge_ last write在審計(jì)文件夾或子文件夾中任意 文件寫入時(shí)間改變時(shí)返回該值。 只有當(dāng)文件寫入

22、磁盤時(shí)操作系統(tǒng) 可以幀測到文件寫入時(shí)間的改變。f1l notif y_ cha nge_ last_ access在審計(jì)文件夾或子文件夾中任意 文件最后訪問時(shí)間改變時(shí)返回該 值cf1le_notify_cha nge_creat ion在審計(jì)文件夾或子文件夾中任意 文件創(chuàng)建時(shí)間改變時(shí)返回該值。file_ notify_cha nge_ secu rity在審計(jì)文件夾或子文件夾中任意 文件安全系數(shù)改變時(shí)返回該值ci項(xiàng)目資助:湖北省教育廳"十五"規(guī)劃項(xiàng)目( 20 04d 349)、公安部尺 用創(chuàng)新計(jì)劃項(xiàng)目(公科研20 05)246號)公安部公安理論及軟無 學(xué)研究計(jì)劃項(xiàng)目(公科研

23、2005)245號)。作者簡介:黃學(xué)鵬(1978-)男湖北警官學(xué)院信息技術(shù)系網(wǎng)絡(luò)値 查教研室副主任主要研究方向:計(jì)算機(jī)操作系統(tǒng)3.3文件服務(wù)器審計(jì)系統(tǒng)的實(shí)例圖3給出了 2006年1月9日16 : 13 : 22至16: 14: 02這 段時(shí)間內(nèi),對文件服務(wù)器上共享文件的審計(jì)取證結(jié)果。圖3審計(jì)取證實(shí)例(責(zé)編楊晨)參考文獻(xiàn):1josles computer forensics:the key to solving the crime" r2001. 2jasit d philip s. y - and jen-yaochung. characterization of database

24、access pattern for analytic prediction of buffer hit probability. vldb journal.3 周洪昊張劉.安全審計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)卩計(jì)算機(jī)應(yīng)用研究, 2004.4 喬智.計(jì)算機(jī)證據(jù)之探究j.警察技術(shù),2001.5 agrawal rz srikant r. fast algorithms for mining associatior rules. in:proc the 20th international conference on very large databases santiago, chile, 1994.(上接26頁)絡(luò)的終點(diǎn),數(shù)據(jù)達(dá)到目的地后,用同樣的key對密碼數(shù)據(jù)進(jìn) 行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)匚這樣便保證了核尤 數(shù)據(jù)(如pin、mac等)在公共通信網(wǎng)中傳輸?shù)陌踩怨?可靠性。通過定期在通信網(wǎng)絡(luò)的源端和目的端同時(shí)改用新空 key,便能更進(jìn)一步提高數(shù)鋸的保

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論