网络安全陈彦兵11408400108.docx

上传人:b****5 文档编号:8208582 上传时间:2023-01-29 格式:DOCX 页数:14 大小:339.70KB
下载 相关 举报
网络安全陈彦兵11408400108.docx_第1页
第1页 / 共14页
网络安全陈彦兵11408400108.docx_第2页
第2页 / 共14页
网络安全陈彦兵11408400108.docx_第3页
第3页 / 共14页
网络安全陈彦兵11408400108.docx_第4页
第4页 / 共14页
网络安全陈彦兵11408400108.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

网络安全陈彦兵11408400108.docx

《网络安全陈彦兵11408400108.docx》由会员分享,可在线阅读,更多相关《网络安全陈彦兵11408400108.docx(14页珍藏版)》请在冰豆网上搜索。

网络安全陈彦兵11408400108.docx

网络安全陈彦兵11408400108

湖南工业大学

课程设计

资料袋

计算机与通信学院学院(系、部)2013~2014学年第2学期

课程名称网络安全指导教师洪升彪职称讲师

学生姓名陈彦兵专业班级网络工程学号11408400108

题目MD5加密系统的设计与实现

成绩起止日期2014年6月16日~2014年6月20日

目录清单

序号

材料名称

资料数量

备注

1

课程设计任务书

1

2

课程设计说明书

1

3

4

5

6

课程设计任务书

2013—2014学年第1学期

学院(系、部)计算机与通信学院专业网络工程班级1101

课程名称:

网络安全学生姓名:

陈彦兵

设计题目:

MD5加密系统的设计与实现指导教师:

洪升彪

完成期限:

自2014年6月16日至2014年6月20日共1周

一、设计内容

设计一个MD5算法加密系统,要求用MFC图形开发包和vc++开发软件。

首先,设计一个漂亮的界面,添加文本加密按钮、文件加密按钮和显示加密后能够显示的密文的列表框。

其次实现每个按钮相应的功能,要求每个功能都能实现。

最后,注上每个函数的功能,完成功能测试与调试。

二、设计任务

课程设计说明书(纸质+电子版),内容包括:

设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。

)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。

三、设计要求

1.按功能要求开发系统,能正确运行。

程序代码书写规范,有充足的注释。

2.课程设计所使用的编程语言任选,但建议使用C或C++;

1.绿色软件:

程序运行不需安装,避免写系统和注册表;

起止日期

工作内容

2014-06-16~2014-06-17

系统分析和设计。

2014-06-17~2014-06-18

熟悉软件开发工具、编码系统、系统测试以及中期答辩。

2013-06-19~2014-06-20

撰写并提交课程设计说明书(含电子文档)、源程序等。

[1]罗宇、邹鹏、邓胜兰等著.《网络安全》[M].北京:

电子工业出版社,2011

[2]AndrewS.Tanenbaum著.陈向群等译.《现代网络安全》[M].北京:

机械工业出版社

[3]邓胜兰编著.《网络安全基础》[M].北京:

机械工业出版社,2009

[4]DaveProbert著,陈向群等译《Windows网络安全原理》[M].北京:

机械工业出版

[5]罗宇褚瑞等等著.《网络安全课程设计》[M].北京:

机械工业出版,2004

指导教师(签字):

年月日

系(教研室)主任(签字):

年月日

课程设计说明书

课程名称:

网络安全

设计题目:

MD5加密系统的设计与实现

专业:

网络工程班级:

1101班

学生姓名:

陈彦兵学号:

11408400108

指导教师:

洪升彪

 

2014年06月20日

目录

一、需求分析1

1.1简介1

1.2系统开发背景1

二、概要设计2

2.1系统开发环境2

2.2系统需求分析2

2.2.1总体功能分析2

2.2.2核心功能分析2

三、详细设计3

3.1系统开发流程3

3.1.1MD5算法了解3

3.1.2MD5算法类的设计4

3.1.3对文本加密4

3.1.4对文件加密5

3.2系统结构6

3.3.1系统模块结构图6

3.3.2系统流程图7

3.3界面设计8

四、测试结果9

4.1测试方法9

4.2测试结果9

五、用户使用说明10

六、课程设计总结11

七、参考文献12

MD5加密算法的设计与实现

1、需求分析

1.1简介

1.MD5的全称是Message-DigestAlgorithm5(信息-摘要算法),在90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的RonaldL.Rivest开发出来,经MD2、MD3和MD4发展而来。

2. MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。

前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。

1.2系统开发背景

1.目前,计算机大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。

数据库系统作为计算机信息系统的核心部件,数据库文件作为信息的聚集体其安全性将是信息产业的重中之重。

但不可否认的是,作为数据存取的整体安全要求而言,安全的DBMS仅是其中的一个部分,另一个部分则是安全的网络安全以及安全的DBMS与安全网络安全的接口,只有三者有机结合才能成为一个完整的数据安全体系。

2.MD5加密算法是不可逆的,想要解密MD5算法加密的密文,相当于分解两个大的素数。

所以MD5算法是比较安全的一种加密算法。

 

2、概要设计

2.1系统开发环境

本系统采用开发环境是VC++,应用的图形包是MFC图形包。

MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。

它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。

2.2系统需求分析

1.需要设计一个简单并且易操作的图形界面,系统能够打开文件并且对文件中的明文信息进行加密。

2.设计的系统能够让用户随心所欲输入自己想要输入的信息进行加密处理。

3.要求文件里的内容和文本里的内容一样时,加密出来的密文应该是一致的。

2.2.1总体功能分析

系统具有图形界面,并且系统能够对文件里的内容和文本内容进行加密处理;界面有漂亮的背景,而且没有冗余的代码和BUG。

2.2.2核心功能分析

核心功能是MD5算法的过程,系统能够正确地获取文本信息和文件信息及明文,然后把需要加密的明文存放到数组里。

正确调用加密算法获得密文信息,然后在界面上对应的地方输出明文信息。

3、详细设计

3.1系统开发流程

3.1.1MD5算法了解

信息安全的核心技术是应用密码技术。

密码技术的应用远不止局限于提供机密性服务,密码技术也提供数据完整性服务。

密码学上的散列函数(HashFunctions)就是能提供数据完整性保障的一个重要工具。

Hash函数常用来构造数据的短“指纹”,消息的发送者使用所有的消息产生一个短“指纹”,并将该短“指纹”与消息一起传输给接收者。

即使数据存储在不安全的地方,接收者重新计算数据的指纹,并验证指纹是否改变,就能够检测数据的完整性。

这是因为一旦数据在中途被破坏或改变,短指纹就不再正确。

散列函数是一个函数,它以一个变长的报文作为输入,并产生一个定长的散列码,有时也称为报文摘要,作为函数的输出。

散列函数最主要的作用是用于鉴别,鉴别在网络安全中起到举足轻重的地位。

鉴别的目的有以下两个:

第一,验证信息的发送者不是冒充的,同时发信息者也不能抵赖,此为信源识别;第二,验证信息完整性,在传递或存储过程中未被篡改,重放或延迟等。

对于任意长度的明文,MD5首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。

对于每个明文分组的摘要生成过程如下:

(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。

(2)申请4个32位的链接变量,记为A、B、C、D。

(3)子明文分组与链接变量进行第1轮运算。

(4)子明文分组与链接变量进行第2轮运算。

(5)子明文分组与链接变量进行第3轮运算。

(6)子明文分组与链接变量进行第4轮运算。

(7)链接变量与初始链接变量进行求和运算。

(8)链接变量作为下一个明文分组的输入重复进行以上操作。

(9)最后,4个链接变量里面的数据就是MD5摘要。

3.1.2MD5算法类的设计

classCMD5Checksum

{

public:

//对于RSA的MD5算法变量定义

staticCStringGetMD5(BYTE*pBuf,UINTnLength);

staticCStringGetMD5(CFile&File);

staticCStringGetMD5(constCString&strFilePath);

protected:

CMD5Checksum();

virtual~CMD5Checksum(){};

voidTransform(BYTEBlock[64]);

voidUpdate(BYTE*Input,ULONGnInputLen);

CStringFinal();

inlineDWORDRotateLeft(DWORDx,intn);

inlinevoidFF(DWORD&A,DWORDB,DWORDC,DWORDD,DWORDX,DWORDS,DWORDT);

inlinevoidGG(DWORD&A,DWORDB,DWORDC,DWORDD,DWORDX,DWORDS,DWORDT);

inlinevoidHH(DWORD&A,DWORDB,DWORDC,DWORDD,DWORDX,DWORDS,DWORDT);

inlinevoidII(DWORD&A,DWORDB,DWORDC,DWORDD,DWORDX,DWORDS,DWORDT);

voidDWordToByte(BYTE*Output,DWORD*Input,UINTnLength);

voidByteToDWord(DWORD*Output,BYTE*Input,UINTnLength);

private:

BYTEm_lpszBuffer[64];//输入缓冲区

ULONGm_nCount[2];//模2^64(LSB在前)

ULONGm_lMD5[4];//MD5校验

};

3.1.3对文本加密

voidCDoc_md5Dlg:

:

Onwenben()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

//对文本进行加密

CStringstr_ReourceText;

GetDlgItem(IDC_EDIT1)->GetWindowText(str_ReourceText);

str_ReourceText.ReleaseBuffer();

MessageBox("加密成功");

str_ReourceText=CMD5Checksum:

:

GetMD5((BYTE*)(constchar*)str_ReourceText.GetBuffer(0),str_ReourceText.GetLength());

//settheresulttext

SetDlgItemText(IDC_STATIC_RESUAL,str_ReourceText);

}

3.1.4对文件加密

voidCDoc_md5Dlg:

:

OnOK()

{

//TODO:

Addextravalidationhere

//对文件进行加密

CStringfile_strPath;

CStringfile_Resualt;

MessageBox("加密成功");

GetDlgItem(IDC_EDIT2)->GetWindowText(file_strPath);

file_Resualt=CMD5Checksum:

:

GetMD5(file_strPath);

//settheresulttext

SetDlgItemText(IDC_STATIC_RESUALT,file_Resualt);

}

3.2

系统结构

图3-1

3.3.1系统模块结构图

图3-2

3.3.2系统流程图

图3-3

3.3界面设计

图3-4

4、测试结果

4.1测试方法

第一步:

在编辑框里输入加密的明文(及11.txt里内容),单击文本加密按钮就记录下MD5算法加密后的密文。

第二步:

打开桌面的文件11.txt,单击文件加密按钮就记录下MD5算法加密文件内容后的密文。

第三步:

对比两个密文是否相同,如果相同这成功。

4.2测试结果

图4-1

从上图中可以看出两个密文是一致的,所以加密成功。

5、用户使用说明

第一步:

找到打开工程文件加下的Debug文件夹,然后找到文件夹里的Doc_md5.exe文件。

第二步:

双击Doc_md5.exe文件,打开加密软件程序。

第三步:

在编辑框里输入想要加密的明文,单击文本加密按钮就可以看到MD5算法加密后的密文。

第四步:

打开想要加密的文件,单击文件加密按钮就可以看到MD5算法加密文件内容后的密文。

6、课程设计总结

首先再次感谢洪升彪老师的耐心指点,感谢老师一学期的培养。

在老师的指导下我和我的小伙伴们分工合作,出色的完成了课程设计的任务,通过此次课程设计我学到了好多。

在这次实训中,我发现自己以前学的太少动手做的太少了在这一次我明白了不管在怎么学理论都要结合实际一起来理解和记忆,那样才会更加清楚的得出结论。

这一次的课程设计让我受益匪浅。

我感觉我们应该珍惜并好好利用这最后一点时间来学习和巩固网络安全这门课程的基本知识。

这样才能为我们以后的学习打好基础。

不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。

还得出一个结论:

知识必须通过应用才能实现其价值!

有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在此我充分的认识到了团队合作的重要性,很好的培养了我们的实践能力,对于所学知识的理解与巩固有很大的帮助,只有动手做,才会有更大、更多的收获,同时也发现了自身的不足之处,以后应更加努力,好好学习,努力练习。

 

7、参考文献

[1]罗宇、邹鹏、邓胜兰等著.《网络安全》[M].北京:

电子工业出版社,2011

[2]AndrewS.Tanenbaum著.陈向群等译.《现代网络安全》[M].北京:

机械工业出版社

[3]邓胜兰编著.《网络安全基础》[M].北京:

机械工业出版社,2009

[4]DaveProbert著,陈向群等译《W网络安全原理》[M].北京:

机械工业出版

[5]罗宇褚瑞等等著.《网络安全》[M].北京:

机械工业出版,2004

[6](美)BruceSchneier.应用密码学.北京:

机械工业出版社,2000

[7]袁津生、吴砚农著.《计算机网络安全基础》第四版.人民邮电出版社,2013年7月第4版

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1