实验一 古典密码
单表代替、多表代替
- 实验目的
通过实验熟悉掌握凯撒密码原理和多表代替密码的实现方法,编译实现加密算法,提高程序设计能力,掌握穷举破译的方法。
- 实验要求
- 输入任意的一段明文,对其进行加密并输出密文。
- 输入一段密文,利用穷举法进行唯密文攻击,输出密钥。
- 要求有对应的程序测试记录和验证记录。
- 从键盘中读取明文并加密,将密文输出。
实验内容
凯撒密码的加解密
- 知识点
凯撒密码是一种典型的单表代替密码技术,其加密方法如下:
密文=明文+密钥 mod 26
解密方法如下:
明文=密文-密钥 mod 26
- 程序代码
加密:
- 凯撒密码的穷举破译
- 知识点
凯撒密码可能的密钥有26个。所谓穷举破译,是指用所有可能的密钥尝试解密,直到找出正确的密钥和明文。穷举破译是一种唯密文攻击,任意给定一段密文,利用穷举法找出所用的密钥,最多尝试26次。
- 程序代码
- 维吉尼亚密码
- 密钥的处理
可预设密钥为“cipher”,长度为6;也可直接输入密钥(以字母形式或数字形式),再计算密钥长度,放在整形变量period中。
- 读取明文并预处理
从键盘中读取明文,取出所有字母,放入数组中;统计明文中的字母个数,放入整形变量中。
- 加密
维吉尼亚密码的加密与凯撒密码几乎完全相同,只是加密每个字符时所用的密钥在变化,用语句
- 程序代码
实验结果
凯撒密码加密
- 凯撒密码穷举破译
- 维吉尼亚密码
- 实验总结
凯撒密码是比较简单的,只是进行单表代换,实现起来也比较容易,破解起来也不难,是很不安全的密码。
凯撒密码是没有密匙的,即使没有密匙也能将它破解出来,因为凯撒移位密码只有25种密匙,最多就是将这25种可能性挨个检测一下可以了,这就是我们所说的暴力破解法。
当然,还可以使用频度分析法分析每个字母出现的频率,从而知道凯撒密码的移位数。
版权归原作者 爱吃咖喱的小熊 所有, 如有侵权,请联系我们删除。