版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《網(wǎng)絡(luò)信息安全》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 專 業(yè): </p><p> 小組組長(zhǎng): </p>&l
2、t;p> 小組成員: </p><p> 指導(dǎo)老師: </p><p> 完成日期: </p><p><b> 目 錄</b></p><p> 第一部分 課程設(shè)計(jì)準(zhǔn)備</p>
3、<p> 1.1 課程設(shè)計(jì)題目………………………………………………………………3</p><p> 1.2 成員分工……………………………………………………………………3</p><p> 1.3 課題背景及意義……………………………………………………………3</p><p> 1.4 實(shí)驗(yàn)平臺(tái)介紹……………………………………………………
4、…………3</p><p> 第二部分 課程設(shè)計(jì)過(guò)程</p><p> 2.1 課設(shè)軟件需求分析…………………………………………………………4</p><p> 2.1.1 設(shè)計(jì)目的 ……………………………………………………………4</p><p> 2.1.2 設(shè)計(jì)要求 ……………………………………………………………4<
5、;/p><p> 2.2 概要設(shè)計(jì) ……………………………………………………………………4</p><p> 2.3 源代碼 ………………………………………………………………………5</p><p> 2.4 調(diào)試分析過(guò)程描述 ………………………………………………………11</p><p> 2.4.1 程序輸入………………………
6、……………………………………11</p><p> 2.4.2 檢驗(yàn)程序執(zhí)行………………………………………………………12</p><p> 第三部分 課程設(shè)計(jì)體會(huì)</p><p> 課程設(shè)計(jì)心得體會(huì) ………………………………………………………………14</p><p> 附錄 ……………………………………………………………………
7、……………15</p><p> 第一部分 課程設(shè)計(jì)準(zhǔn)備</p><p> 1.1 課程設(shè)計(jì)題目:無(wú)密鑰的置換加密軟件開發(fā)</p><p> 1.2 成員分工:xxx:負(fù)責(zé)人員組織、總體設(shè)計(jì)、撰稿排版</p><p> xxx:軟件測(cè)試分析、運(yùn)行維護(hù)</p><p> xxx:負(fù)責(zé)本次課設(shè)概要分析、需求
8、分析</p><p> xxx:負(fù)責(zé)源代碼的編寫、修改、調(diào)試</p><p> xxx:負(fù)責(zé)課程設(shè)計(jì)準(zhǔn)備部分、設(shè)備支持</p><p> 1.3 課題背景及意義</p><p> 當(dāng)今世界正處于信息時(shí)代,網(wǎng)絡(luò)信息安全已經(jīng)成為我們網(wǎng)絡(luò)應(yīng)用過(guò)程中非常重要的一點(diǎn),為了網(wǎng)絡(luò)信息的安全,一般會(huì)采用各種各樣的加密解密軟件應(yīng)對(duì)來(lái)自網(wǎng)絡(luò)的威脅,通過(guò)
9、各種安全協(xié)議軟件能夠最大可能得解決這些威脅,而為了了解加解密算法,我們應(yīng)當(dāng)首先了解古典加解密算法。這次課設(shè)的目的就是開發(fā)一款無(wú)密鑰置換加密軟件,讓更多的人了解加解密算法,以應(yīng)對(duì)越來(lái)越多的網(wǎng)絡(luò)安全威脅。</p><p> 1.4 實(shí)驗(yàn)平臺(tái)介紹</p><p> Visual C++(簡(jiǎn)稱VC)是Microsoft公司推出的目前使用極為廣泛的基于Windows平臺(tái)的C++可視化開發(fā)環(huán)境。
10、VC基于C,C++語(yǔ)言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語(yǔ)言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說(shuō)VC在 Windows平臺(tái)無(wú)所不能。VC主要是針對(duì)Windows系統(tǒng),適合一些系統(tǒng)級(jí) 的開發(fā),可以方便實(shí)現(xiàn)一些底層 的調(diào)用。在VC里邊嵌入?yún)R編語(yǔ)言很簡(jiǎn)單。當(dāng)對(duì)系統(tǒng)性能要求很高的時(shí)候,可用VC開發(fā)。VC在多線程、網(wǎng)絡(luò)通信、分布應(yīng)用方面,有著不可比擬的優(yōu)勢(shì)。</p>
11、<p> 第二部分 課程設(shè)計(jì)過(guò)程</p><p> 2.1 課設(shè)軟件需求分析</p><p> 2.1.1 設(shè)計(jì)目的</p><p> 綜合運(yùn)用本課程及網(wǎng)絡(luò)信息安全的相關(guān)知識(shí)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)應(yīng)用程序,能夠?qū)崿F(xiàn)無(wú)密鑰置換加密,以Visual C++作為開發(fā)平臺(tái),通過(guò)實(shí)踐復(fù)習(xí)鞏固課堂所學(xué)的理論知識(shí),提高對(duì)所學(xué)知識(shí)的綜合應(yīng)用能力,進(jìn)一步掌握古典密
12、碼體制以及算法。</p><p> 2.1.2 設(shè)計(jì)要求</p><p> 要求所設(shè)計(jì)開發(fā)的程序能夠?qū)崿F(xiàn)古典加密算法中無(wú)密鑰置換加密,由用戶輸入要加密的明文序列,不需要輸入密鑰,然后輸出加密后的密文序列,要求明文序列能夠達(dá)到1000位。</p><p><b> 2.2 概要設(shè)計(jì)</b></p><p> 根
13、據(jù)對(duì)用戶的要求及功能設(shè)置可以得到以下的流程圖2-1</p><p> 圖2-1 概要設(shè)計(jì)流程圖</p><p><b> 2.3 源代碼</b></p><p> #include<iostream.h></p><p> class SubKey</p><p> {
14、 //定義子密鑰為一個(gè)類</p><p><b> public:</b></p><p> int key[8][6];</p><p> }subkey[16]; //定義子密鑰對(duì)象數(shù)組</p><p><b>
15、 class DES</b></p><p><b> {</b></p><p> int encipher_decipher; //判斷加密還是解密</p><p> int key_in[8][8]; //用戶原始輸入的64位二進(jìn)制數(shù)</p>
16、;<p> int key_out[8][7]; //除去每行的最后一位校驗(yàn)位</p><p> int c0_d0[8][7]; //存儲(chǔ)經(jīng)PC-1轉(zhuǎn)換后的56位數(shù)據(jù)</p><p> int c0[4][7],d0[4][7]; //分別存儲(chǔ)c0,d0<
17、;/p><p> int text[8][8]; //64位明文</p><p> int text_ip[8][8]; //經(jīng)IP轉(zhuǎn)換過(guò)后的明文 </p><p> int A[4][8],B[4][8]; //A,B分別存儲(chǔ)經(jīng)IP轉(zhuǎn)換過(guò)后明文的兩
18、部分,便于交換</p><p> int temp[8][6]; //存儲(chǔ)經(jīng)擴(kuò)展置換后的48位二進(jìn)制值</p><p> int temp1[8][6]; //存儲(chǔ)和子密鑰異或后的結(jié)果</p><p> int s_result[8][4];
19、 //存儲(chǔ)經(jīng)S變換后的32位值</p><p> int text_p[8][4]; //經(jīng)P置換后的32位結(jié)果</p><p> int secret_ip[8][8]; //經(jīng)逆IP轉(zhuǎn)換后的密文</p><p><b> public:</b></p&g
20、t;<p> void Key_Putting();</p><p> void PC_1();</p><p> int function(int,int); //異或</p><p> void SubKey_Production();</p><p> void IP_Convert();</p>
21、;<p> void f(); </p><p> void _IP_Convert(); </p><p> void Out_secret();</p><p><b> };</b></p><p> void DES::Key_Putting()
22、 //得到密鑰中對(duì)算法有用的56位</p><p><b> {</b></p><p> cout<<"請(qǐng)輸入64位的密鑰(8行8列且每行都得有奇數(shù)個(gè)1):\n";</p><p> for(int i=0;i<8;i++)</p><p> for(int
23、 j=0;j<8;j++){</p><p> cin>>key_in[i][j];</p><p> if(j!=7) key_out[i][j]=key_in[i][j];</p><p><b> }</b></p><p> void DES::PC_1()
24、 //PC-1置換函數(shù)</p><p><b> {</b></p><p> int pc_1[8][7]={ //PC-1</p><p><b> };</b></p><p><b> int i,j;<
25、/b></p><p> for(i=0;i<8;i++)</p><p> for(j=0;j<7;j++)</p><p> c0_d0[i][j]=key_out[ (pc_1[i][j]-1)/8 ][ (pc_1[i][j]-1)%8 ];</p><p><b> }</b><
26、/p><p> int DES::function(int a,int b) //模擬二進(jìn)制數(shù)的異或運(yùn)算,a和b為整型的0和1,返回值為整型的0或1</p><p><b> {</b></p><p> if(a!=b)return 1;</p><p> else return 0;</p>
27、<p><b> }</b></p><p> void DES::SubKey_Production() //生成子密鑰</p><p><b> {</b></p><p> int move[16][2]={ //循環(huán)左移的位數(shù)</p><p&g
28、t; 1 , 1 , 2 , 1 ,</p><p> 3 , 2 , 4 , 2 ,</p><p> 5 , 2 , 6 , 2 ,</p><p> 7 , 2 , 8 , 2 ,</p><p> 9 , 1, 10 , 2,</p><p> 11 , 2, 12 , 2,</p>
29、<p> 13 , 2, 14 , 2,</p><p> 15 , 2, 16 , 1</p><p><b> };</b></p><p> int pc_2[8][6]={ //PC-2</p><p> 14, 17 ,11 ,24 , 1 , 5
30、,</p><p> 3 ,28 ,15 , 6 ,21 ,10,</p><p> 23, 19, 12, 4, 26, 8,</p><p> 16, 7, 27, 20 ,13 , 2,</p><p> 41, 52, 31, 37, 47, 55,</p><p> 30, 40, 51, 45
31、, 33, 48,</p><p> 44, 49, 39, 56, 34, 53,</p><p> 46, 42, 50, 36, 29, 32</p><p><b> };</b></p><p> for(int i=0;i<16;i++) //生成子密鑰</p><p
32、><b> {</b></p><p><b> int j,k;</b></p><p> int a[2],b[2]; </p><p> int bb[28],cc[28];</p><p> for(j=0;j<4;j++)</p><p>
33、; for(k=0;k<7;k++)</p><p> c0[j][k]=c0_d0[j][k];</p><p> for(j=4;j<8;j++)</p><p> for(k=0;k<7;k++)</p><p> d0[j-4][k]=c0_d0[j][k];</p><p> f
34、or(j=0;j<4;j++) </p><p> for(k=0;k<7;k++){</p><p> bb[7*j+k]=c0[j][k];</p><p> cc[7*j+k]=d0[j][k];</p><p><b> }</b></p><p> for(j=0
35、;j<move[i][1];j++){</p><p> a[j]=bb[j];</p><p> b[j]=cc[j];</p><p><b> }</b></p><p> for(j=0;j<28-move[i][1];j++){</p><p> bb[j]=bb[
36、j+1];</p><p> cc[j]=cc[j+1];</p><p><b> }</b></p><p> for(j=0;j<move[i][1];j++){</p><p> bb[27-j]=a[j];</p><p> cc[27-j]=b[j];</p>
37、;<p><b> }</b></p><p> for(j=0;j<28;j++){</p><p> c0[j/7][j%7]=bb[j];</p><p> d0[j/7][j%7]=cc[j];</p><p><b> }</b></p><
38、;p> for(j=0;j<4;j++) //L123--L128是把c0,d0合并成c0_d0</p><p> for(k=0;k<7;k++)</p><p> c0_d0[j][k]=c0[j][k];</p><p> for(j=4;j<8;j++)</p><p> for(k
39、=0;k<7;k++)</p><p> c0_d0[j][k]=d0[j-4][k];</p><p> for(j=0;j<8;j++) //對(duì)Ci,Di進(jìn)行PC-2置換</p><p> for(k=0;k<6;k++)</p><p> subkey[i].key[j][k]=c0_d0[
40、 (pc_2[j][k]-1)/7 ][ (pc_2[j][k]-1)%7 ];</p><p><b> }</b></p><p><b> }</b></p><p> void DES::IP_Convert()</p><p><b> {</b><
41、;/p><p> int IP[8][8]={ //初始置換IP矩陣</p><p> 58, 50, 42, 34, 26, 18, 10, 2,</p><p> 60, 52, 44, 36, 28, 20, 12, 4,</p><p> 62, 54, 46, 38, 30, 22, 14, 6
42、,</p><p> 64, 56, 48, 40, 32, 24, 16, 8,</p><p> 57, 49, 41, 33, 25, 17, 9, 1,</p><p> 59, 51, 43, 35, 27, 19, 11, 3,</p><p> 61, 53, 45, 37, 29, 21, 13, 5,<
43、;/p><p> 63, 55, 47, 39, 31, 23, 15, 7</p><p><b> };</b></p><p> cout<<"你好,你要加密還是解密?加密請(qǐng)按1號(hào)鍵(輸入1),解密請(qǐng)按2號(hào)鍵,并確定."<<'\n';</p><p>
44、 cin>>encipher_decipher;</p><p><b> char * s;</b></p><p> if(encipher_decipher==1) s="明文";</p><p> else s="密文";</p><p> cout
45、<<"請(qǐng)輸入64位"<<s<<"(二進(jìn)制):\n";</p><p><b> int i,j;</b></p><p> for(i=0;i<8;i++)</p><p> for(j=0;j<8;j++)</p><p>
46、 cin>>text[i][j];</p><p> for(i=0;i<8;i++) //進(jìn)行IP變換</p><p> for(j=0;j<8;j++)</p><p> text_ip[i][j]=text[ (IP[i][j]-1)/8 ][ (IP[i][j]-1)%8
47、 ];</p><p><b> }</b></p><p> 2.4 調(diào)試分析過(guò)程描述</p><p> 2.4.1 程序輸入</p><p> 圖2-2 程序輸入(一)</p><p> 圖2-3 程序輸入(二)</p><p> 圖2-4 程序輸入
48、(三)</p><p> 圖2-5 程序輸入(四)</p><p> 圖2-6 程序輸入(五)</p><p> 2.4.2 檢驗(yàn)程序執(zhí)行</p><p> 圖2-7 檢測(cè)程序執(zhí)行(一)</p><p> 圖2-8 檢測(cè)程序執(zhí)行(二)</p><p> 圖2-9 檢測(cè)程序執(zhí)行
49、(三)</p><p> 第三部分 課程設(shè)計(jì)心得體會(huì)</p><p> 這學(xué)期我們學(xué)習(xí)了《網(wǎng)絡(luò)信息安全》這門課,在xx老師的帶領(lǐng)下,我們系統(tǒng)規(guī)范得學(xué)習(xí)了網(wǎng)絡(luò)信息安全的基礎(chǔ)知識(shí)、功能等,讓我們改變了以前對(duì)網(wǎng)絡(luò)安全簡(jiǎn)單而膚淺的認(rèn)識(shí),使我們明白網(wǎng)絡(luò)安全技術(shù)是應(yīng)對(duì)網(wǎng)絡(luò)威脅的最好手段,使我們明白網(wǎng)絡(luò)安全的重要性。</p><p> 本次課程設(shè)計(jì)是在網(wǎng)絡(luò)信息安全學(xué)習(xí)的基
50、礎(chǔ)上更深得了解掌握古典加密算法中的置換加密算法。當(dāng)今世界正處于信息時(shí)代,網(wǎng)絡(luò)信息安全已經(jīng)成為我們網(wǎng)絡(luò)應(yīng)用過(guò)程中非常重要的一點(diǎn),為了網(wǎng)絡(luò)信息的安全,一般會(huì)采用各種各樣的加密解密軟件應(yīng)對(duì)來(lái)自網(wǎng)絡(luò)的威脅,通過(guò)各種安全協(xié)議軟件能夠最大可能得解決這些威脅,而為了了解加解密算法,我們應(yīng)當(dāng)首先了解古典加解密算法。這次課設(shè)的目的就是開發(fā)一款無(wú)密鑰置換加密軟件,讓更多的人了解加解密算法,以應(yīng)對(duì)越來(lái)越多的網(wǎng)絡(luò)安全威脅。</p><p&g
51、t; 經(jīng)過(guò)這些天的設(shè)計(jì)開發(fā),無(wú)密鑰的置換加密軟件基本開發(fā)完畢。本軟件基本達(dá)到了設(shè)計(jì)要求:能夠?qū)崿F(xiàn)古典加密算法中無(wú)密鑰置換加密,由用戶輸入要加密的明文序列,不需要輸入密鑰,然后輸出加密后的密文序列,明文序列能夠達(dá)到1000位。</p><p> 本次課程設(shè)計(jì)是分組討論和制作的。在制作的過(guò)程中,我們學(xué)到的不僅僅是知識(shí),我們還認(rèn)識(shí)許多事情。這次設(shè)計(jì)對(duì)我們的綜合能力是一次很好的鍛煉,使我們的動(dòng)手能力提高了一大步,同時(shí)
52、也使我們充分認(rèn)識(shí)到合作的可貴。</p><p> 在我們所開發(fā)的無(wú)密鑰的置換加密軟件,能夠完成基本的加密要求,通過(guò)分析、編寫程序、測(cè)試程序等步驟完成課程設(shè)計(jì)。最后按照呂老師的要求寫成文檔,從中也對(duì)WORD的運(yùn)用提高的很多。但是該軟件還有許多不足的地方,還有許多東西有待完善。還有就是我們對(duì)網(wǎng)絡(luò)知識(shí)的掌握有限或者不牢固,許多地方概念還是不清楚,無(wú)密鑰的置換加密軟件達(dá)到了基本要求,但是有待進(jìn)一步改善,希望老師給予批評(píng)
53、。</p><p> 本次設(shè)計(jì)小組由九名成員組成,每個(gè)成員能夠根據(jù)自己的職能積極完成自己的任務(wù),同時(shí)小組成員之間能夠通過(guò)互相幫助、集體討論等方式一步步完成設(shè)計(jì),這是難能可貴的,在本次實(shí)際的過(guò)程中大家真正感受到了集體的智慧與團(tuán)結(jié)的力量。</p><p> 在設(shè)計(jì)的過(guò)程中我們確實(shí)遇到了許許多多的問(wèn)題,從課本上最基本的問(wèn)題到整個(gè)系統(tǒng)的問(wèn)題都是我們前進(jìn)的絆腳石,當(dāng)遇到這些問(wèn)題的時(shí)候我們一般會(huì)采
54、取集體討論的方法解決問(wèn)題,或者上網(wǎng)尋求解決,有時(shí)實(shí)在搞不懂就向呂老師請(qǐng)教,在團(tuán)隊(duì)的努力以及呂老師的指導(dǎo)下我們最終完成了設(shè)計(jì),我想這是我們的成果也是老師的成果,感謝老師給我們這次機(jī)會(huì),讓我們?cè)诓粩嗟啬サZ中快速成長(zhǎng)起來(lái)。</p><p><b> 附錄:</b></p><p><b> 1.參考資料:</b></p><p&
55、gt; 呂林濤 《網(wǎng)絡(luò)信息安全技術(shù)概論》 科學(xué)出版社</p><p> 網(wǎng)絡(luò)資料:http://www.csdn.net</p><p> 2.小組成員: xxx</p><p><b> xxx</b></p><p><b> xxx </b></p><p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)用軟件開發(fā)課程設(shè)計(jì)
- 智能終端軟件開發(fā)課程設(shè)計(jì)報(bào)告
- java ee軟件開發(fā)課程設(shè)計(jì)報(bào)告
- 軟件開發(fā)工具課程設(shè)計(jì)報(bào)告---軟件開發(fā)的現(xiàn)狀及發(fā)展
- 《軟件開發(fā)》課程設(shè)計(jì)報(bào)告-屏幕鎖定程序
- 課程設(shè)計(jì)----畫圖軟件開發(fā)制作文檔
- 軟件開發(fā)課程設(shè)計(jì)--圖書管理系統(tǒng)設(shè)計(jì)
- java課程設(shè)計(jì)---畫圖板軟件開發(fā)和設(shè)計(jì)
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)---基于des加密的聊天程序
- 手持設(shè)備軟件開發(fā)課程
- 微機(jī)原理課程設(shè)計(jì)---選擇多功能程序設(shè)計(jì)——軟件開發(fā)方向
- 移動(dòng)平臺(tái)游戲軟件開發(fā)課程設(shè)計(jì)說(shuō)明書
- 信息安全概論--網(wǎng)絡(luò)安全的發(fā)展課程設(shè)計(jì)
- android課程設(shè)計(jì)報(bào)告--android智能手機(jī)軟件開發(fā)
- 軟件開發(fā)集成環(huán)境課程設(shè)計(jì)--小qq聊天工具
- 機(jī)械原理網(wǎng)絡(luò)課程模式探討及軟件開發(fā).pdf
- 信息軟件開發(fā)保密協(xié)議
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)---rc4加密算法的實(shí)現(xiàn)
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)--rc4加密算法的實(shí)現(xiàn)
- 軟件開發(fā)設(shè)計(jì)外文翻譯--軟件開發(fā)概念和設(shè)計(jì)方法
評(píng)論
0/150
提交評(píng)論