密码学课程设计实验报告.doc

上传人:韩长文 文档编号:5021695 上传时间:2020-01-29 格式:DOC 页数:13 大小:224.50KB
返回 下载 相关 举报
密码学课程设计实验报告.doc_第1页
第1页 / 共13页
密码学课程设计实验报告.doc_第2页
第2页 / 共13页
密码学课程设计实验报告.doc_第3页
第3页 / 共13页
密码学课程设计实验报告.doc_第4页
第4页 / 共13页
密码学课程设计实验报告.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《密码学课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《密码学课程设计实验报告.doc(13页珍藏版)》请在三一文库上搜索。

1、华中科技大学信息安全专业华中科技大学密码学课程设计实验报告 院 系:计算机科学与技术专 业: 信息安全 班 级: 0803 指导老师: 姓 名: 学 号: u200814139 2011年2月27日目录密码学课程设计报告31. 引论32.DES31.1原理31.2DES的实现91.3相关函数93.弱密钥的检测112.1定义112.2检测方法112.3检测弱密钥实现112.4相关函数124.总结125.相关源码12一、引论当今社会是信息化的社会。为了适应社会对计算机数据安全保密越来越高的要求,美国国家标准局(NBS)于1997年公布了一个由IBM公司研制的一种加密算法,并且确定为非机要部门使用的

2、数据加密标准,简称DES(Data Encrypton Standard)。自公布之日起,DES算法作为国际上商用保密通信和计算机通信的最常用算法,一直活跃在国际保密通信的舞台上,扮演了十分突出的角色。二、DES2.1、原理2.1.1、DES算法加密过程对DES算法加密过程图示的说明如下:待加密的64比特明文串m,经过IP置换后,得到的比特串的下标列表如下:IP5850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563554739312315

3、7该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32位的比特串f1,f1与L0做不进位的二进制加法运算。运算规则为:f1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2 一共经过16次运算。最后生成R16和L16。其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP-1

4、后所得比特串的下标列表如下:IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725经过置换IP-1后生成的比特串就是密文e.。下面再讲一下变换f(Ri-1,Ki)。它的功能是将32比特的输入再转化为32比特的输出。其过程如图所示:对f变换说明如下:输入Ri-1(32比特)经过变换E后,膨胀为48比特。膨胀后的比特串的下标列表如下:E:321234545678989101112131213141516171

5、61718192021202122232425242526272829282930313231膨胀后的比特串分为8组,每组6比特。各组经过各自的S盒后,又变为4比特(具体过程见后),合并后又成为32比特。该32比特经过P变换后,其下标列表如下:P:1672021291228171152326518311028241432273919133062211425经过P变换后输出的比特串才是32比特的f (Ri-1,Ki)。下面再讲一下S盒的变换过程。任取一S盒。见图:在其输入b1,b2,b3,b4,b5,b6中,计算出x=b1*2+b6, y=b5+b4*2+b3*4+b2*8,再从Si表中查出x

6、行,y 列的值Sxy。将Sxy化为二进制,即得Si盒的输出。2.1.2、子密钥的生成64比特的密钥生成16个48比特的子密钥。其生成过程见图:子密钥生成过程具体解释如下:64比特的密钥K,经过PC-1后,生成56比特的串。其下标如表所示:PC-157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124该比特串分为长度相等的比特串C0和D0。然后C0和D0分别循环左移1位,得到C1和D1。C1和D1合并起来生成C1D1。C1D1经过PC-2变换后

7、即生成48比特的K1。K1的下标列表为:PC-21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932C1、D1分别循环左移LS2位,再合并,经过PC-2,生成子密钥K2依次类推直至生成子密钥K16。注意:Lsi (I =1,2,.16)的数值是不同的。具体见下表:迭代顺序12345678910111213141516左移位数11222222122222212.1.3、解密:DES的解密过程和DES的加密过程完全类似,只不过将16圈的子密钥序列K1,K2K16的顺序倒过来。

8、即第一圈用第16个子密钥K16,第二圈用K15,其余类推。第一圈:加密后的结果L=R15, R=L15f(R15,K16)f(R15,K16)=L15同理R15=L14f(R14,K15), L15=R14。同理类推:得 L=R0, R=L0。其程序源代码与加密相同。2.2、DES的实现2.2.1开发环境主机:Microsoft Windows XP Professional 版本2002 ServicePack3Pentium(R) Dual-Core CPU T4500 2.30GHz 2.29GHz, 1.92GB的内存编程工具:Visual C+ 6.0 MFC2.2.2、功能介绍左端

9、“加密” :输入明文和密钥,输出加密密文左端“解密” :输入密文和密钥,输出解密明文中间有 新建、检测弱密钥、加密、解密按钮:实现所述功能如图:2.2.3、功能测试输入明文文件,加密得到乱码,解密还原为明文如图:2.3、相关函数1. void Des_SetKey(const char Key8);/功能:产生子密钥/Key:密钥2. void Des_Run(char Out8, char In8, bool Type);/功能:加解密/Out8:存放加(解)密后的密(明)文/Int8:存放需要加(解)密的明(密)文/Tpye:type为1的时候是加密,type为0的时候是解密3.void

10、RotateL(bool *In, int len, int loop);/ 循环左移/ In:输入兼输出/ len:长度/ loop:循环位数4. void F_func(bool In32, const bool Ki48);/ f 函数/ In:输入兼输出/ Ki:子密钥5.void S_func(bool Out32, const bool In48);/ S盒代替/Out:输出/ In:输入6. void Transform(bool *Out, bool *In, const char *Table, int len);/ 各种Table变换/ Out:输出/In:输入/Table

11、:变换表/len:长度7. void Xor(bool *InA, const bool *InB, int len); / 异或8.void ByteToBit(bool *Out, const char *In, int bits);/ 字节组转换成位组9.void BitToByte(char *Out, const bool *In, int bits);/ 位组转换成字节组二、弱密钥的检测2.1定义对于一个外部密钥,若产生的16个内部密钥都相同,则称此外部密钥为弱密钥2.2检测方法检测16个内部密钥是否完全相同,若完全相同则判断为弱密钥,否则为正常密钥.2.3检测弱密钥实现2.3.1

12、、开发环境略。2.3.2功能介绍测弱密钥按钮,单击检测弱密钥,弹出对话框显示判断结果2.3.3、功能测试输入密码为54534543,检测为非弱密钥,可用输入密码为00000000,检测为弱密钥,不可用2.4相关函数bool CheckKey(const char* Key, int len);/检测是否为弱密钥/Key:输入密钥/len:密钥长度四、总结通过本次课程设计,我对密码学原理有了更深入的理解,在编程的过程当中,也遇到了很多问题, 总之,通过此次课设,在编程的过程中遇到了很多问题,通过反复的分析与调试,将他们一一解决,锻炼了自己的分析问题和解决问题的能力,同事,通过实际编写密码分析程序,也极大地激发了我对密码学的兴趣,希望在以后的学习中不断地积累和丰富密码学的相关理论知识。13

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

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1