目录
前言
初步了解了信息加密的相关知识,并进行了包括DES加密、3DES算法、MD5算法、RSA算法等的实践操作。
一、古典密码学
1.凯撒密码加/解密
1)对凯撒密码.cpp进行调试,完成解密部分。
2)写一个循环尝试凯撒密码25种可能的密钥破解密文“yvccfnficu”,得到结果如下。
2.栅栏密码
栅栏密码也称栅栏易位(Columnar Transposition),是一种经典的简单换位密码,其操作方式是把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。例如:明文attackatdawn,使用栅栏密码加密后的结果为atcadwtaktan。
1)调试栅栏密码.cpp。
2)利用该程序恢复密文“hloodelwr”,结果如下。
二、对称加密算法
1.DES加密算法
1) 利用DES Tool对文本信息进行加密和解密,结果截图如下:
2)利用DES Tool对文件进行加密和解密,结果截图如下:
3)调试DES.cpp中的代码,分别对明文和轻度修改的明文进行加密,观察两个结果的差别,截图如下:
4)对重复字符进行加密,观察DES加密的分组长度
2.对称加密(3DES)
1)打开DES Tool软件,点选“使用3DES”,输入密钥1和密钥2和明文,进行3DES加密,得到密文,记录下明文、密钥1、密钥2和密文,截图如下:
2)取消点选“使用3DES”,用密钥1解密密文得到明文1,记录下明文1,截图如下:
3)利用密钥2加密明文1得到密文1,记录下密文1,截图如下:
4)利用密钥1解密密文1,得到明文。比较得到的明文和之前直接使用3DES加密的明文是否相同,体会3DES的原理和使用方法,截图如下:
3.对称加密(MD5)
1)运行Hash Tool.exe,计算实验指导书的MD5值并记录,截图如下:
2)轻微修改实验指导书,如:加一个空格,再次计算MD5值。比较两次计算出的MD5值,观察结果,截图如下:
3)利用www.cmd5.com或www.somd5.com等网站解密常见口令的MD5值,例如21232f297a57a5a743894a0e4a801fc3 e10adc3949ba59abbe56e057f20f883e 5f4dcc3b5aa765d61d8327deb882cf99,截图如下:
4)在MD5.cpp中编写程序,模拟系统口令设置与验证程序,要求对口令进行MD5加密后保存,再次登陆时进行验证,代码和运行结果图如下:
5)继续编写程序,分别采用拼接字串和嵌套两层MD5计算的方式为用户口令加盐,增强MD5的保密性,防止“碰撞”。在解密网站中对加盐的MD5进行解密,观察是否能成功解密,截图如下:
总结
今天的学习带我们走进了密码领域,也了解到了池步洲、王小云这古今两位密码学专家,也明白了密码学虽然在日常生活中我们接触不到,但如若没有密码学的存在,我们这个社会的所有人便没有秘密可言。种种实践的操作,也让我了解到了密码学的魅力。