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