(最新版)加密解密论文word格式毕业设计论文 联系客服

发布时间 : 星期二 文章(最新版)加密解密论文word格式毕业设计论文更新完毕开始阅读eeaec1b35ff7ba0d4a7302768e9951e79b8969c8

2.输入明文是汉字时,密钥正确可得到如下结果:

3.输入明文中存在数字时,输入密码正确时结果如下图:

4.当输入密钥错误时结果如下图:

4.2 设计结果分析

测试的结果基本上能够实现DES加密和解密的要求,能用给定的密钥对任意给出的明文进行加密 ,输出密文,此处明文可以有字母、数字、汉字等等各种形式。在对该密文进行解密时,只有当输入的密钥正确时,才能够输出正确的明文。所以该程序实现了DES加密和解密的功能。但该程序还有所不足,对较长的明文进行加密时,密文中后面一部分出现了明文的内容,安全性降低。

总 结

本文研究的课题主要是DES算法的设计与实现。随着计算机和网络在各个领域的广泛应用,社会对计算机和网络的依赖越来越大,确保计算机和网络系统的安全已成为世人关注的社会问题和信息科学技术领域的热点研究课题,信息安全从而变得至关重

要,密码学亦是现在的热门课题。DES算法是现代密码学中的一个重要算法,本次课程设计重点就是掌握DES的算法,设计DES算法并用VC++6.0实现。

DES是一种分组密码,是面向二进制的密码算法,因而能够加解密任何形式的计算机数据。本设计主要是根据DES的四个部分组成来设计,子密钥的产生、初始置换IP、加密函数还有逆初始值换。该设计方案就是根据这四个部分设计出来!加密算法要达到的主要目的是提供高质量的数据保护,防止数据未经授权的泄漏和未被察觉的修改;DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。

本次设计重点要理解DES算法原理,清楚其细节算法。设计思路要清晰,能用给定的密钥对任意给出的明文进行加密,并且能正确的密钥对密文进行解密。这个程序中的基本能实现对一段明文的加密,然后对该密文在正确的密钥的情况下进行解密输出正确的明文,但是此程序对明文加密的安全系数不是很高,比如说密文中有时会出现较多明文信息,还有待改进。

致 谢

经过两个星期的查找、编写和整理,课程设计论文终于快完成了。

论文的完成,要感谢的人很多。首先要感谢肖利芳老师,因为论文是在肖利芳老师的悉心指导下完成的。肖老师严谨的治学态度,严肃负责的工作态度对我影响深远。从选题到设计的过程中肖老师给了我们莫大的帮助。在此,我向肖老师表示崇高的敬意和衷心的感谢!同时也对金老师对我们在思想上的指导予以衷心的感谢!

同时,论文的顺利完成,离不开老师、同学的帮助.在整个论文和设计的过程中,他们帮助我查找资料以及提供论文写作的建议和意见,在他们的帮助下,论文得以不断的完善,感谢所有给过我帮助的老师和同学,谢谢你们!

通过这次论文,我学到了很多知识,开拓了我的视野,也学到一件事情所应该有的谨慎和认真的态度,也体会到了与人合作的快乐,这样做事的效率非常的高!

总之,在这次论文的写作中,我收获很多!再次感谢所有帮助鼓励过我的老师、同学和朋友,谢谢你们!

参考文献

1.张焕国 王张宜编著,《密码学引论》 武汉大学出版社

2.于工 牛秋娜等编著,范九伦主审,《现代密码学原理与实践》 西安电子科技大学出版社

3.Michael Welschenbach编著,赵振江,连国卿等译,《编码密码学——加密方法的C与C++实现》,电子工业出版社

4.杨波. 《现代密码学》 北京:清华大学出版社,2007年

5.王育民. 《通信网的安全—理论与技术》. 西安:西安电子科技大学出版社,1999年

6.冯登国. 《密码学导引》 .北京:科学出版社,1999年

附录

程序设计代码 #include

#include

static void S_func(bool Out[32], const bool In[48]); S 盒代替 变换

static void Transform(bool *Out, bool *In, const char *Table, int len); static void Xor(bool *InA, const bool *InB, int len); 异或 static void RotateL(bool *In, int len, int loop); 循环左移 字节组转换成位组

static void ByteToBit(bool *Out, const char *In, int bits); 位组转换成字节组

static void BitToByte(char *Out, const bool *In, int bits); 左移位数表

const static char LOOP_Table[16] = { };

置换选择1

const static char PC1_Table[56] = {

,18,