实训目的
理解加密系统的概念。
掌握经典加密的主要方法。
理解混淆与扩散的概念。
掌握DES加密的主要方法。
了解非对称加密的重要意义。
掌握RSA加密算法的主要思想与使用方法。
理解数字签名的作用及生成方法。
实训准备及注意事项
1.硬件:装有Windows操作系统的计算机1台。
2.软件:C/C++编译环境、DES Tool、RSATool2v17、Hash Tool。
3.关键程序代码和实验结果以截图的形式进行保留。
实训背景
“密码”或“加密系统”用于“加密”数据。
对于原始的未加密的数据,我们称之为“明文”。
对于加密的结果,我们称之为“密文”。
通过称为“解密”的过程,我们把密文恢复成原始的明文。
实训任务1 古典密码学
编写简单替换(凯撒密码)加/解密程序(有答案)
编写简单换位(栅栏密码)加/解密程序(有答案)
栅栏密码也称栅栏易位(Columnar Transposition),是一种经典的简单换位密码,其操作方式是把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。例如:明文attackatdawn,使用栅栏密码加密后的结果为atcadwtaktan。
1、调试栅栏密码.cpp中的栅栏密码算法,找到解密部分的bug并尝试改正。
2、试着用该程序恢复密文“hloodelwr”。
特殊古典加密方法解密
1、"由人俱乙口一中"和"大中口由人由工"具有相同的含义。5201314(笔画)
2、佛曰:諳摩呐若死漫哆蘇菩世梵智藝梵楞梵多梵夷冥數罰不一智提爍梵漫漫罰知冥槃僧奢心哆利皤切缽伊諳姪藝哆諦呐室智怯神怯瑟侄醯呐涅哆倒侄醯奢麼穆奢集般夢依侄神梵度亦三心滅楞逝諳無顛諳離諳。冥智恐死即者怯所不離。ILOVEYOU(。。。。)
3、
YmJhYWFhYmJiYWJhYmFhYWFhYWFiYWFhYmFhYmFhYWFiYmFiYWFhYmFhYmFhYWFhYWFiYWFiYg== youaregreat(base64)
密文破解(选做)
湛老师使用混合密码.cpp中的代码生成了密文exkukgamzgx,请阅读代码,编写程序或采用其他方法进行破解,得到明文。youaregreat(base64)
实训任务2 对称加密算法
DES加密算法
- 和小伙伴约定一个密钥。
- 打开DES Tool,使用约定好的密钥对明文加密。
- 将密文发送给小伙伴,由小伙伴进行解密,读取明文信息。
- 使用DES Tool设置密钥对实验指导书进行加密,观察加密后的效果。
- 使用DES Tool解密加密后的实验指导书,观察是否正确还原了文件。
- 阅读DES.cpp中的代码,了解DES算法的设计思路。
- 调试运行DES.cpp,输入明文进行加密,观察加密结果。
- 轻微修改明文,观察加密结果与之前的变化。
- 输入字符重复但长度不同的明文,观察加密结果,体会分组加密的特点。
3DES加密算法
必答 (简答题) 打开DES Tool软件,点选“使用3DES”,输入密钥1和密钥2和明文,进行3DES加密,得到密文,记录下明文、密钥1、密钥2和密文。
2必答 (简答题) 取消点选“使用3DES”,用密钥1解密密文得到明文1,记录下明文1。
3必答 (简答题) 利用密钥2加密明文1得到密文1,记录下密文1。
4必答 (简答题) 利用密钥1解密密文1,得到明文。比较得到的明文和之前直接使用3DES加密的明文是否相同,体会3DES的原理和使用方法。
消息摘要算法
必答 (简答题) 运行Hash Tool.exe,计算实训指导书的MD5值并记录。
2必答 (简答题) 轻微修改实训指导书,如:加一个空格,再次计算MD5值。比较两次计算出的MD5值,观察结果。
3必答 (简答题) 利用www.cmd5.com或www.somd5.com等网站解密常见口令的MD5值,例如21232f297a57a5a743894a0e4a801fc3 e10adc3949ba59abbe56e057f20f883e 5f4dcc3b5aa765d61d8327deb882cf99 admin
(简答题) 在MD5.cpp中编写程序,模拟系统口令设置与验证程序,要求对口令进行MD5加密后保存,再次登陆时进行验证,截代码和运行结果图。
2(简答题) 继续编写程序,分别采用拼接字串和嵌套两层MD5计算的方式为用户口令加盐,增强MD5的保密性,防止“碰撞”。在解密网站中对加盐的MD5进行解密,观察是否能成功解密