《網(wǎng)絡(luò)信息安全》課程設(shè)計(jì)---無(wú)密鑰的置換加密軟件開發(fā)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論