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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  《網(wǎng)絡信息安全》</b></p><p><b>  課程設計報告</b></p><p>  專 業(yè): </p><p>  小組組長: </p>&l

2、t;p>  小組成員: </p><p>  指導老師: </p><p>  完成日期: </p><p><b>  目 錄</b></p><p>  第一部分 課程設計準備</p>

3、<p>  1.1 課程設計題目………………………………………………………………3</p><p>  1.2 成員分工……………………………………………………………………3</p><p>  1.3 課題背景及意義……………………………………………………………3</p><p>  1.4 實驗平臺介紹……………………………………………………

4、…………3</p><p>  第二部分 課程設計過程</p><p>  2.1 課設軟件需求分析…………………………………………………………4</p><p>  2.1.1 設計目的 ……………………………………………………………4</p><p>  2.1.2 設計要求 ……………………………………………………………4<

5、;/p><p>  2.2 概要設計 ……………………………………………………………………4</p><p>  2.3 源代碼 ………………………………………………………………………5</p><p>  2.4 調試分析過程描述 ………………………………………………………11</p><p>  2.4.1 程序輸入………………………

6、……………………………………11</p><p>  2.4.2 檢驗程序執(zhí)行………………………………………………………12</p><p>  第三部分 課程設計體會</p><p>  課程設計心得體會 ………………………………………………………………14</p><p>  附錄 ……………………………………………………………………

7、……………15</p><p>  第一部分 課程設計準備</p><p>  1.1 課程設計題目:無密鑰的置換加密軟件開發(fā)</p><p>  1.2 成員分工:xxx:負責人員組織、總體設計、撰稿排版</p><p>  xxx:軟件測試分析、運行維護</p><p>  xxx:負責本次課設概要分析、需求

8、分析</p><p>  xxx:負責源代碼的編寫、修改、調試</p><p>  xxx:負責課程設計準備部分、設備支持</p><p>  1.3 課題背景及意義</p><p>  當今世界正處于信息時代,網(wǎng)絡信息安全已經(jīng)成為我們網(wǎng)絡應用過程中非常重要的一點,為了網(wǎng)絡信息的安全,一般會采用各種各樣的加密解密軟件應對來自網(wǎng)絡的威脅,通過

9、各種安全協(xié)議軟件能夠最大可能得解決這些威脅,而為了了解加解密算法,我們應當首先了解古典加解密算法。這次課設的目的就是開發(fā)一款無密鑰置換加密軟件,讓更多的人了解加解密算法,以應對越來越多的網(wǎng)絡安全威脅。</p><p>  1.4 實驗平臺介紹</p><p>  Visual C++(簡稱VC)是Microsoft公司推出的目前使用極為廣泛的基于Windows平臺的C++可視化開發(fā)環(huán)境。

10、VC基于C,C++語言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級,和低級語言的雙重性,功能強大,靈活,執(zhí)行效率高,幾乎可說VC在 Windows平臺無所不能。VC主要是針對Windows系統(tǒng),適合一些系統(tǒng)級 的開發(fā),可以方便實現(xiàn)一些底層 的調用。在VC里邊嵌入?yún)R編語言很簡單。當對系統(tǒng)性能要求很高的時候,可用VC開發(fā)。VC在多線程、網(wǎng)絡通信、分布應用方面,有著不可比擬的優(yōu)勢。</p>

11、<p>  第二部分 課程設計過程</p><p>  2.1 課設軟件需求分析</p><p>  2.1.1 設計目的</p><p>  綜合運用本課程及網(wǎng)絡信息安全的相關知識設計并實現(xiàn)一個應用程序,能夠實現(xiàn)無密鑰置換加密,以Visual C++作為開發(fā)平臺,通過實踐復習鞏固課堂所學的理論知識,提高對所學知識的綜合應用能力,進一步掌握古典密

12、碼體制以及算法。</p><p>  2.1.2 設計要求</p><p>  要求所設計開發(fā)的程序能夠實現(xiàn)古典加密算法中無密鑰置換加密,由用戶輸入要加密的明文序列,不需要輸入密鑰,然后輸出加密后的密文序列,要求明文序列能夠達到1000位。</p><p><b>  2.2 概要設計</b></p><p>  根

13、據(jù)對用戶的要求及功能設置可以得到以下的流程圖2-1</p><p>  圖2-1 概要設計流程圖</p><p><b>  2.3 源代碼</b></p><p>  #include<iostream.h></p><p>  class SubKey</p><p>  {

14、 //定義子密鑰為一個類</p><p><b>  public:</b></p><p>  int key[8][6];</p><p>  }subkey[16]; //定義子密鑰對象數(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位二進制數(shù)</p>

16、;<p>  int key_out[8][7]; //除去每行的最后一位校驗位</p><p>  int c0_d0[8][7]; //存儲經(jīng)PC-1轉換后的56位數(shù)據(jù)</p><p>  int c0[4][7],d0[4][7]; //分別存儲c0,d0<

17、;/p><p>  int text[8][8]; //64位明文</p><p>  int text_ip[8][8]; //經(jīng)IP轉換過后的明文 </p><p>  int A[4][8],B[4][8]; //A,B分別存儲經(jīng)IP轉換過后明文的兩

18、部分,便于交換</p><p>  int temp[8][6]; //存儲經(jīng)擴展置換后的48位二進制值</p><p>  int temp1[8][6]; //存儲和子密鑰異或后的結果</p><p>  int s_result[8][4];

19、 //存儲經(jīng)S變換后的32位值</p><p>  int text_p[8][4]; //經(jīng)P置換后的32位結果</p><p>  int secret_ip[8][8]; //經(jīng)逆IP轉換后的密文</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、 //得到密鑰中對算法有用的56位</p><p><b>  {</b></p><p>  cout<<"請輸入64位的密鑰(8行8列且每行都得有奇數(shù)個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) //模擬二進制數(shù)的異或運算,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++) //對Ci,Di進行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<<"你好,你要加密還是解密?加密請按1號鍵(輸入1),解密請按2號鍵,并確定."<<'\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、<<"請輸入64位"<<s<<"(二進制):\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++) //進行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 調試分析過程描述</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 檢驗程序執(zhí)行</p><p>  圖2-7 檢測程序執(zhí)行(一)</p><p>  圖2-8 檢測程序執(zhí)行(二)</p><p>  圖2-9 檢測程序執(zhí)行

49、(三)</p><p>  第三部分 課程設計心得體會</p><p>  這學期我們學習了《網(wǎng)絡信息安全》這門課,在xx老師的帶領下,我們系統(tǒng)規(guī)范得學習了網(wǎng)絡信息安全的基礎知識、功能等,讓我們改變了以前對網(wǎng)絡安全簡單而膚淺的認識,使我們明白網(wǎng)絡安全技術是應對網(wǎng)絡威脅的最好手段,使我們明白網(wǎng)絡安全的重要性。</p><p>  本次課程設計是在網(wǎng)絡信息安全學習的基

50、礎上更深得了解掌握古典加密算法中的置換加密算法。當今世界正處于信息時代,網(wǎng)絡信息安全已經(jīng)成為我們網(wǎng)絡應用過程中非常重要的一點,為了網(wǎng)絡信息的安全,一般會采用各種各樣的加密解密軟件應對來自網(wǎng)絡的威脅,通過各種安全協(xié)議軟件能夠最大可能得解決這些威脅,而為了了解加解密算法,我們應當首先了解古典加解密算法。這次課設的目的就是開發(fā)一款無密鑰置換加密軟件,讓更多的人了解加解密算法,以應對越來越多的網(wǎng)絡安全威脅。</p><p&g

51、t;  經(jīng)過這些天的設計開發(fā),無密鑰的置換加密軟件基本開發(fā)完畢。本軟件基本達到了設計要求:能夠實現(xiàn)古典加密算法中無密鑰置換加密,由用戶輸入要加密的明文序列,不需要輸入密鑰,然后輸出加密后的密文序列,明文序列能夠達到1000位。</p><p>  本次課程設計是分組討論和制作的。在制作的過程中,我們學到的不僅僅是知識,我們還認識許多事情。這次設計對我們的綜合能力是一次很好的鍛煉,使我們的動手能力提高了一大步,同時

52、也使我們充分認識到合作的可貴。</p><p>  在我們所開發(fā)的無密鑰的置換加密軟件,能夠完成基本的加密要求,通過分析、編寫程序、測試程序等步驟完成課程設計。最后按照呂老師的要求寫成文檔,從中也對WORD的運用提高的很多。但是該軟件還有許多不足的地方,還有許多東西有待完善。還有就是我們對網(wǎng)絡知識的掌握有限或者不牢固,許多地方概念還是不清楚,無密鑰的置換加密軟件達到了基本要求,但是有待進一步改善,希望老師給予批評

53、。</p><p>  本次設計小組由九名成員組成,每個成員能夠根據(jù)自己的職能積極完成自己的任務,同時小組成員之間能夠通過互相幫助、集體討論等方式一步步完成設計,這是難能可貴的,在本次實際的過程中大家真正感受到了集體的智慧與團結的力量。</p><p>  在設計的過程中我們確實遇到了許許多多的問題,從課本上最基本的問題到整個系統(tǒng)的問題都是我們前進的絆腳石,當遇到這些問題的時候我們一般會采

54、取集體討論的方法解決問題,或者上網(wǎng)尋求解決,有時實在搞不懂就向呂老師請教,在團隊的努力以及呂老師的指導下我們最終完成了設計,我想這是我們的成果也是老師的成果,感謝老師給我們這次機會,讓我們在不斷地磨礪中快速成長起來。</p><p><b>  附錄:</b></p><p><b>  1.參考資料:</b></p><p&

55、gt;  呂林濤 《網(wǎng)絡信息安全技術概論》 科學出版社</p><p>  網(wǎng)絡資料:http://www.csdn.net</p><p>  2.小組成員: xxx</p><p><b>  xxx</b></p><p><b>  xxx </b></p><p&g

溫馨提示

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

評論

0/150

提交評論