版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 信息科學(xué)與工程學(xué)院</b></p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 題 目: RC4加密算法的實現(xiàn)</p><p> 學(xué) 號: </p><p> 姓 名:
2、 </p><p> 專 業(yè): 計算機網(wǎng)絡(luò)技術(shù) </p><p> 課 程: 計算機網(wǎng)絡(luò)安全教程 </p><p> 指導(dǎo)教師: 職稱: 教 師 </p><p> 完成時間: 2012年 11月----2012 年
3、12 月</p><p><b> 一.系統(tǒng)設(shè)計的目標(biāo)</b></p><p> 隨著信息化的發(fā)展,人們在信息傳遞,數(shù)據(jù)共享等方面的要求越來越高。但與此同時,數(shù)據(jù)的保密、個人的隱私保護也越來越困難,迫使人們不得不采取相應(yīng)的措施來提高信息的安全性。在此條件下,加密技術(shù)應(yīng)運而生。加密作為一把系統(tǒng)安全的鑰匙,是實現(xiàn)信息安全的重要手段之一,正確的使用加密技術(shù)可以確保信息的
4、安全。</p><p> 人們所熟悉的加密技術(shù)很多,比如數(shù)字簽名、版權(quán)注冊、軟盤加密、軟件鎖等等。本人的設(shè)計思想是利用文件夾的加密來實現(xiàn)對軟件或文件的安全加密。在此設(shè)計基礎(chǔ)上編寫了一個程序,該軟件操作簡單方便,適用于個人PC上對文件的加密。用戶可自選密鑰對重要文件或可執(zhí)行程序進行加密,防止未授權(quán)用戶竊密。</p><p> 本文描述了利用文件夾的加密來實現(xiàn)對文件或程序的保護方案。采用了
5、“對稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對文件或可執(zhí)行程序加密。選用C++編程語言,設(shè)計了一個加密程序,該程序不拘泥于花俏的界面,僅使用了一個簡單的對話框,具有簡單實用的特點。在該方案的實現(xiàn)中,由于使用了可靠的密碼學(xué)算法,使軟件加密的強度大大提高。</p><p><b> 二.系統(tǒng)原理:</b></p><p> 1. RC4加密算法原理: </p
6、><p> RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設(shè)計的密鑰長度可變的流加密算法簇。之所以稱其為簇,是由于其核心部分的S-box長度可為任意,但一般為256字節(jié)。該算法的速度可以達到DES加密的10倍左右。 </p><p> RC4算法的原理很簡單,包括初始化算法和偽隨機子密碼生成算法兩大部分。假設(shè)S-box長度和密鑰長度均為為n。先來看看算法
7、的初始化部分(用類C偽代碼表示): </p><p> for (i=0; i<n; i++) </p><p><b> s=i; </b></p><p><b> j=0; </b></p><p> for (i=0; i<n; i++) </p><
8、p><b> { </b></p><p> j=(j+s+k)%256; </p><p> swap(s, s[j]); </p><p><b> } </b></p><p> 在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個元素都得到處理,j保證S
9、-box的攪亂是隨機的。而不同的S-box在經(jīng)過偽隨機子密碼生成算法的處理后可以得到不同的子密鑰序列,并且,該序列是隨機的: </p><p><b> i=j=0; </b></p><p> while (明文未結(jié)束) </p><p><b> { </b></p><p><b&
10、gt; ++i%=n; </b></p><p> j=(j+s)%n; </p><p> swap(s, s[j]); </p><p> sub_k=s((s+s[j])%n); </p><p><b> } </b></p><p> 得到的子密碼sub_k用以和
11、明文進行xor運算,得到密文,解密過程也完全相同。 </p><p> 由于RC4算法加密是采用的xor,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解。關(guān)于如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節(jié)Simple XOR,在此我就不細(xì)說了。那么,RC4算法生成的子密鑰序列是否會出現(xiàn)重復(fù)呢?經(jīng)過我的測試,存在部分弱密鑰,使得子密鑰序列在不到1
12、00萬字節(jié)內(nèi)就發(fā)生了完全的重復(fù),如果是部分重復(fù),則可能在不到10萬字節(jié)內(nèi)就能發(fā)生重復(fù),因此,推薦在使用RC4算法時,必須對加密密鑰進行測試,判斷其是否為弱密鑰。 </p><p> 但在2001年就有以色列科學(xué)家指出RC4加密算法存在著漏洞,這可能對無線通信網(wǎng)絡(luò)的安全構(gòu)成威脅。 </p><p> 以色列魏茨曼研究所和美國思科公司的研究者發(fā)現(xiàn),在使用“有線等效保密規(guī)則”(WEP)的無線
13、網(wǎng)絡(luò)中,在特定情況下,人們可以逆轉(zhuǎn)RC4算法的加密過程,獲取密鑰,從而將己加密的信息解密。實現(xiàn)這一過程并不復(fù)雜,只需要使用一臺個人電腦對加密的數(shù)據(jù)進行分析,經(jīng)過幾個小時的時間就可以破譯出信息的全部內(nèi)容。 </p><p> 專家說,這并不表示所有使用RC4算法的軟件都容易泄密,但它意味著RC4算法并不像人們原先認(rèn)為的那樣安全。這一發(fā)現(xiàn)可能促使人們重新設(shè)計無線通信網(wǎng)絡(luò),并且使用新的加密算法。</p>
14、<p> 三. 系統(tǒng)功能分析:</p><p><b> 圖1:系統(tǒng)功能圖</b></p><p><b> 四.系統(tǒng)實現(xiàn): </b></p><p> 設(shè)計的核心部分仍是算法的核心部分,根據(jù)des算法的原理,建立相關(guān)的變量,和函數(shù),完成對8位字符的加密,解密。而對于文件的加密與解密只需要在文件的讀取時
15、,按加密的位數(shù)讀取然后調(diào)用算法,加密后保存到一個文件,一直到文件的末尾,從而實現(xiàn)文件的加密。而解密是加密的逆過程,只要將密鑰按反順序使用即可,算法一致,調(diào)用的函數(shù)也都一樣。</p><p><b> 1.功能要求</b></p><p> ?。?)設(shè)計操作界面;(如圖3)</p><p><b> 圖3</b><
16、/p><p> (2)對輸入的明文可以進行加解密;(如圖4)</p><p> ?。?)對指定的文件可以加解密。(圖5)</p><p> 對文件夾進行解密:(圖6)</p><p><b> 詳細(xì)設(shè)計 </b></p><p><b> 字符加解密數(shù)據(jù)流圖</b><
17、;/p><p> 字符加解密數(shù)據(jù)流圖(7)</p><p><b> 一層數(shù)據(jù)流圖(8)</b></p><p><b> 二層數(shù)據(jù)流圖(9)</b></p><p><b> 附錄:</b></p><p><b> 源程序代碼:<
18、;/b></p><p><b> RC4算法的實現(xiàn):</b></p><p> void RC4::swap(baseType *i,baseType *j)</p><p><b> {</b></p><p> baseType temp;</p><p>
19、;<b> temp=*i;</b></p><p><b> *i=*j;</b></p><p><b> *j=temp;</b></p><p><b> }</b></p><p> void RC4::s_box(baseType *
20、s,char *key,int keyLen)</p><p><b> {</b></p><p> int i=0,j=0;</p><p> for(i=0;i<256;i++)</p><p><b> s[i]=i;</b></p><p> for
21、(i=0;i<256;i++)</p><p><b> {</b></p><p> j=(j+s[i]+key[i%keyLen])%256;</p><p> swap(&s[i],&s[j]);</p><p><b> }</b></p><
22、;p><b> }</b></p><p> void RC4::encryption(char *src,char *key,int keyLen,int srcLen)</p><p><b> {</b></p><p> int i=0,j=0,k=0,index=0;</p><
23、p> baseType s[256];</p><p> ::memset((void *)s,0,256);</p><p> s_box(s,key,keyLen);</p><p> for(i=0;i<srcLen;i++)</p><p><b> {</b></p><
24、;p><b> ++j%=256;</b></p><p> k=(k+s[j])%256;</p><p> swap(&s[j],&s[k]);</p><p> index=(s[j]+s[k])%256;</p><p> src[i]^=s[index];</p>
25、<p><b> }</b></p><p><b> }</b></p><p><b> 我寫的代碼:</b></p><p><b> 字符串解密:</b></p><p> char *key=new char;</p&g
26、t;<p> m_key.GetWindowText(key,255);</p><p> CString strKey(" ",256);</p><p> strKey.Format("%s",key);</p><p> if(strKey.IsEmpty())</p><p&g
27、t;<b> {</b></p><p> MessageBox("你還沒有輸入密鑰!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> char *src=new
28、 char;</p><p> m_detStr.GetWindowText(src,100);</p><p> CString strSrc(" ",101);</p><p> strSrc.Format("%s",strSrc);</p><p> if(strSrc.IsEmpty()
29、)</p><p><b> {</b></p><p> MessageBox("請輸入你要加密的字符串!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p>&
30、lt;p> rc4.encryption(src,key,(int)strlen(key),(int)strlen(src));</p><p> m_srcStr.SetWindowText(src);</p><p> 字符串加密:char *key=new char;</p><p> m_key.GetWindowText(key,255);
31、</p><p> CString strKey(" ",256);</p><p> strKey.Format("%s",key);</p><p> if(strKey.IsEmpty())</p><p><b> {</b></p><p>
32、; MessageBox("你還沒有輸入密鑰!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> char *src=new char;</p><p> m_srcStr.GetWin
33、dowText(src,100);</p><p> CString strSrc(" ",101);</p><p> strSrc.Format("%s",strSrc);</p><p> if(strSrc.IsEmpty())</p><p><b> {</b>
34、</p><p> MessageBox("請輸入你要加密的字符串!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> rc4.encryption(src,key,(int)strlen
35、(key),(int)strlen(src));</p><p> m_detStr.SetWindowText(src);</p><p><b> 到上面那部分</b></p><p><b> 打開文件:</b></p><p> CString lpszFilter="te
36、xt file (*.txt)|*.txt|Microsoft doc (*.doc)|*.doc|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";</p><p> CString readBuf(" ",1000);</p><p> CString lpszDefExt=&
37、quot;.txt";</p><p> CString lpszFileName="*.txt";</p><p> char *ch1=new char;</p><p> char ch[9];</p><p> ::memset((void *)ch,0,9);</p><p&
38、gt; char str[200];</p><p> ::memset((void *)str,0,200);</p><p> CFileDialog *fileOpen=new CFileDialog( true, lpszDefExt, lpszFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter,
39、NULL );</p><p> if(!fileOpen->DoModal())</p><p><b> {</b></p><p> MessageBox("Open failly!",NULL,MB_OK);</p><p><b> return;</b>
40、</p><p><b> }</b></p><p> CString filePath=fileOpen->GetPathName();</p><p> m_srcFile.SetWindowText(LPCTSTR(filePath));</p><p> 保存文件:CString lpszFi
41、lter="text file (*.txt)|*.txt|Microsoft doc (*.doc)|*.doc|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";</p><p> CString lpszDefExt=".txt";</p><p> CString
42、 lpszFileName="*.txt";</p><p> CFileDialog *fileSave=new CFileDialog( false, lpszDefExt, lpszFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter, NULL );</p><p> CFile c
43、File;</p><p> if(!fileSave->DoModal())</p><p><b> {</b></p><p> MessageBox("failed!",NULL,MB_OK);</p><p><b> return;</b></p&
44、gt;<p><b> }</b></p><p> CArchive ar(&cFile,CArchive::load);</p><p> CString filePath=fileSave->GetPathName();</p><p> m_detFile.SetWindowText(filePath
45、);</p><p> if(cFile.Open(LPCTSTR(filePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("Open failly!",NULL,MB_OK);</p>
46、<p><b> return;</b></p><p><b> }</b></p><p><b> 文件加密:</b></p><p> char key[256];</p><p> ::memset((void *)key,'
47、9;,256);</p><p> char ch[101];</p><p> ::memset((void *)ch,' ',101);</p><p> m_key.GetWindowText(key,strlen(key));</p><p> CString key1;</p><p>
48、; key1.Format("%s",key);</p><p> if(key1.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒有輸入密鑰!",NULL,MB_OK);</p><p><b> r
49、eturn;</b></p><p><b> }</b></p><p> CString srcFilePath(" ",200);</p><p> m_srcFile.GetWindowText(srcFilePath);</p><p> if(srcFilePath.I
50、sEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒有選擇源文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p&g
51、t;<p> CFile srcFile;</p><p> if(srcFile.Open(LPCTSTR(srcFilePath),CFile::modeRead)==0)</p><p><b> {</b></p><p> MessageBox("源文件打開失敗!",NULL,MB_OK);&
52、lt;/p><p><b> return;</b></p><p><b> }</b></p><p> CArchive srcAr(&srcFile,CArchive::load);</p><p> int fileLen=srcFile.GetLength();</p&
53、gt;<p> CString detFilePath(" ",200);</p><p> m_detFile.GetWindowText(detFilePath);</p><p> if(detFilePath.IsEmpty())</p><p><b> {</b></p>&l
54、t;p> MessageBox("你還沒有選擇目標(biāo)文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CFile detFile;</p><p> if(detFile.Op
55、en(LPCTSTR(detFilePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("目標(biāo)文件打開失敗!",NULL,MB_OK);</p><p><b> return;</b&
56、gt;</p><p><b> }</b></p><p> CString len;</p><p> len.Format("%d",fileLen);</p><p> if(fileLen<=100)</p><p><b> {</b
57、></p><p> srcFile.Read((void *)ch,fileLen);</p><p> rc4.encryption(ch,key,strlen(key),strlen(ch));</p><p> detFile.Write((void *)ch,strlen(ch));</p><p><b>
58、 }</b></p><p> if(fileLen>100)</p><p><b> {</b></p><p> int k=0,i=0;</p><p> k=fileLen/100;</p><p> for(i=0;i<k;i++)</p>
59、<p><b> {</b></p><p> srcFile.Read((void *)ch,100);</p><p> rc4.encryption(ch,key,strlen(key),100);</p><p> detFile.Write((void *)ch,100);</p><p>
60、;<b> }</b></p><p> k=fileLen%100;</p><p><b> if(k!=0)</b></p><p><b> {</b></p><p> srcAr.Read((void *)ch,k);</p><p&g
61、t; rc4.encryption(ch,key,strlen(key),k);</p><p> detFile.Write((void *)ch,k);</p><p><b> }</b></p><p><b> }</b></p><p> MessageBox("恭喜
62、您,加密成功!",NULL,MB_OK);</p><p> srcFile.Close();</p><p> detFile.Close();</p><p><b> 文件解密:</b></p><p> char key[256];</p><p> ::memset
63、((void *)key,' ',256);</p><p> char ch[101];</p><p> ::memset((void *)ch,' ',101);</p><p> m_key.GetWindowText(key,strlen(key));</p><p> CString key
64、1;</p><p> key1.Format("%s",key);</p><p> if(key1.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒有輸入密鑰!",NULL,MB_OK);</p>
65、<p><b> return;</b></p><p><b> }</b></p><p> CString srcFilePath(" ",200);</p><p> m_srcFile1.GetWindowText(srcFilePath);</p><
66、p> if(srcFilePath.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒有選擇源文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b&g
67、t; }</b></p><p> CFile srcFile;</p><p> if(srcFile.Open(LPCTSTR(srcFilePath),CFile::modeRead)==0)</p><p><b> {</b></p><p> MessageBox("源文件打開
68、失敗!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CArchive srcAr(&srcFile,CArchive::load);</p><p> int fileLen=srcF
69、ile.GetLength();</p><p> CString detFilePath(" ",200);</p><p> m_detFile1.GetWindowText(detFilePath);</p><p> if(detFilePath.IsEmpty())</p><p><b> {
70、</b></p><p> MessageBox("你還沒有選擇目標(biāo)文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CFile detFile;</p>
71、<p> if(detFile.Open(LPCTSTR(detFilePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("目標(biāo)文件打開失敗!",NULL,MB_OK);</p><p>&
72、lt;b> return;</b></p><p><b> }</b></p><p> CString len;</p><p> len.Format("%d",fileLen);</p><p> if(fileLen<=100)</p><
73、;p><b> {</b></p><p> srcFile.Read((void *)ch,fileLen);</p><p> rc4.encryption(ch,key,strlen(key),strlen(ch));</p><p> detFile.Write((void *)ch,strlen(ch));</p&
74、gt;<p><b> }</b></p><p> if(fileLen>100)</p><p><b> {</b></p><p> int k=0,i=0;</p><p> k=fileLen/100;</p><p> for(i
75、=0;i<k;i++)</p><p><b> {</b></p><p> srcFile.Read((void *)ch,100);</p><p> rc4.encryption(ch,key,strlen(key),100);</p><p> detFile.Write((void *)ch,1
76、00);</p><p><b> }</b></p><p> k=fileLen%100;</p><p><b> if(k!=0)</b></p><p><b> {</b></p><p> srcAr.Read((void *)c
77、h,k);</p><p> rc4.encryption(ch,key,strlen(key),k);</p><p> detFile.Write((void *)ch,k);</p><p><b> }</b></p><p><b> }</b></p><p&
78、gt; MessageBox("恭喜您,解密成功!",NULL,MB_OK);</p><p> srcFile.Close();</p><p> detFile.Close();</p><p><b> 界面設(shè)計:</b></p><p> m_tab.InsertItem(0,&qu
79、ot; 字符串加密 ");</p><p> m_tab.InsertItem(1," 文件加密 ");</p><p> cPage0.Create(IDD_PAGE0_DIALOG,GetDlgItem(IDC_TAB1));</p><p> cPage1.Create(IDD_PAGE1_DIALOG,GetDlgItem
80、(IDC_TAB1));</p><p> CRect rect; </p><p> m_tab.GetClientRect(&rect); </p><p> rect.top+=20; </p><p> rect.bottom-=4; </p><p> rect.left+=4;</p
81、><p> rect.right-=4; </p><p> cPage0.MoveWindow(&rect); </p><p> cPage1.MoveWindow(&rect); </p><p> cPage0.ShowWindow(TRUE); </p><p> m_tab.SetCu
82、rSel(0);</p><p> int CurSel; </p><p> CurSel=m_tab.GetCurSel(); </p><p> switch(CurSel) </p><p> { case 0: </p><p> cPage0.ShowWindow(TRUE); </p>
83、;<p> cPage1.ShowWindow(FALSE); </p><p><b> break; </b></p><p><b> case 1: </b></p><p> cPage0.ShowWindow(FALSE); </p><p> cPage1.Sh
84、owWindow(TRUE); </p><p><b> break; </b></p><p><b> case 2: </b></p><p> cPage0.ShowWindow(FALSE); </p><p> cPage1.ShowWindow(FALSE); </p&
85、gt;<p><b> break; </b></p><p> default: ; </p><p><b> } </b></p><p> *pResult = 0;</p><p><b> 五.總結(jié):</b></p><p
86、><b> 提出問題:</b></p><p> RC4加密后的的長度是 多少(例如MD5的加密后的長度是固定的)? </p><p> 用RC4加密后的字符串長度和原來的一樣嗎? </p><p> 用RC4加密后的字符串中間會不會出現(xiàn)\0? </p><p> 用strlen得到的長度一定對嗎?<
87、;/p><p><b> 解決問題:</b></p><p> 在一些場合,常需要用到一些簡單的加密算法,這里的RC4就可以說是最簡單的一種。只要設(shè)置一個足夠強的密碼,就可以適用于一些非常簡單的場合了。我是用來加密HTTP傳送的數(shù)據(jù)的。 </p><p> RC4函數(shù)(加密/解密) 其實,RC4只有加密,將密文再加密
88、一次,就是解密了。 </p><p> GetKey函數(shù) 隨機字符串產(chǎn)生器,呵呵,為了方便,大多數(shù)加密算法都有一個隨機密碼產(chǎn)生器,我也就附帶一個了。 </p><p> ByteToHex函數(shù) 把字節(jié)碼轉(zhuǎn)為十六進制碼,一個字節(jié)兩個十六進制。研究發(fā)現(xiàn),十六進制字符串非常適合在HTTP中傳輸,Base64中的某些字符會造成轉(zhuǎn)義,挺麻煩的。 </p>&
89、lt;p> HexToByte函數(shù) 把十六進制字符串,轉(zhuǎn)為字節(jié)碼。服務(wù)器也按照十六進制字符串的形式把數(shù)據(jù)傳回來,這里就可以解碼啦。同時,使用十六進制字符串傳輸,避開了傳輸過程中多國語言的問題。 </p><p> Encrypt函數(shù) 把字符串經(jīng)RC4加密后,再把密文轉(zhuǎn)為十六進制字符串返回,可直接用于傳輸。 Decrypt函數(shù) 直接密碼十六進
90、制字符串密文,再解密,返回字符串明文。</p><p><b> 六.心得體會:</b></p><p> 課程設(shè)計不僅是對已學(xué)知識的檢驗,更是對學(xué)生動手能力以及綜合能力的鍛煉。</p><p> 在我們小組組長的帶領(lǐng)下,以及通過全小組同學(xué)的共同努力,我們完成了課程設(shè)計的任務(wù)。在此期間,我們溫故了課堂上學(xué)過的知識,還有查找各種資料,對RC
91、加密算法有了進一步的了解和掌握。</p><p> 平常學(xué)習(xí)的知識點,感覺已掌握,但是通過這次課程設(shè)計對自己學(xué)過的知識的檢閱,發(fā)現(xiàn)很多東西并不是想象的那么簡單,做起來的時候還是會因為粗心大意導(dǎo)致課程設(shè)計中出現(xiàn)很多小的錯誤。課程設(shè)計培養(yǎng)了自己的動手能力,對以前學(xué)習(xí)的知識起到了好的鞏固作用,并且對以后課程學(xué)習(xí)打下了堅實的基礎(chǔ)作用。</p><p> 通過整個小組成員的努力也學(xué)會了團結(jié)與合作
92、,全小組的同學(xué)個個干勁十足,很好的完成了自己的任務(wù),成功地設(shè)計出了我們的RC加密算法系統(tǒng)。感謝老師為我們提供了這次課程設(shè)計的機會。通過此次課程設(shè)計鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計我也明白了很多事理。它使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。<
93、;/p><p><b> 七.致謝:</b></p><p> 在這次課程設(shè)計的完成過程中,我得到了許多人的幫助。</p><p> 首先我要感謝我的老師在課程設(shè)計上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而
94、且也開闊了視野,提高了自己的設(shè)計能力。</p><p> 其次,我要感謝幫助過我的同學(xué),他也為我解決了不少我不太明白的設(shè)計上的難題。同時也感謝學(xué)院為我提供良好的做課程設(shè)計的環(huán)境。最后再一次感謝所有在設(shè)計中曾經(jīng)幫助過我的良師益友和同學(xué)</p><p><b> 八.參考文獻:</b></p><p> [1] 梁亞聲等.計算機網(wǎng)絡(luò)安全教程
95、.第2版.北京:機械工業(yè)出版社,2008</p><p> [2] Willian Stallings著,孟慶樹,王麗娜等譯.密碼編碼學(xué)與網(wǎng)絡(luò)安全.北京:電子工業(yè)出版社,2009</p><p> [3] 劉文濤.網(wǎng)絡(luò)安全編程技術(shù)與實例.北京:機械工業(yè)出版社2008</p><p> [4] Michael Welschenbach編著,趙振江,連國卿等譯.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)安全課程設(shè)計--rc4加密算法的實現(xiàn)
- RC4加密算法硬件加速IP核的設(shè)計.pdf
- 網(wǎng)絡(luò)安全中加密算法的研究.pdf
- 網(wǎng)絡(luò)安全加密算法分析與研究.pdf
- RC4算法的分析.pdf
- RC4算法的安全性分析.pdf
- 網(wǎng)絡(luò)安全課程設(shè)計---基于des加密的聊天程序
- 應(yīng)用于QR碼信息加密的RC4改進算法研究.pdf
- RC4算法及其安全性分析.pdf
- 用于網(wǎng)絡(luò)安全的橢圓曲線加密算法研究——用橢圓曲線算法實現(xiàn)數(shù)字簽名.pdf
- des課程設(shè)計報告--網(wǎng)絡(luò)安全
- 網(wǎng)絡(luò)安全課程設(shè)計方案
- RC4流密碼算法的研究與改進.pdf
- 校園網(wǎng)絡(luò)安全課程設(shè)計
- 加密算法
- AES加密算法的FPGA實現(xiàn).pdf
- 嵌入RSA加密算法網(wǎng)絡(luò)加密卡驅(qū)動程序的實現(xiàn).pdf
- 網(wǎng)絡(luò)通信安全中圖像加密算法的研究.pdf
- 基于密鑰流的RC4算法安全性分析與改進.pdf
- 信息安全概論--網(wǎng)絡(luò)安全的發(fā)展課程設(shè)計
評論
0/150
提交評論