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