好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

移位密码分析实验(共5页).doc

5页
  • 卖家[上传人]:文库****9
  • 文档编号:211757292
  • 上传时间:2021-11-17
  • 文档格式:DOC
  • 文档大小:64KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精选优质文档-----倾情为你奉上实验2-移位密码分析实验一、 实验内容通过编程实现使用频度分析法破解凯撒密码的程序并通过下面两段密文解密验证已知,拦截到下列两段密文,使用的是移位密码,利用频度攻击分别找出其明文:1、 XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVXLQSVILYVVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVW2、 XULTPAAJCXITLTLXAARPJHTIWTGXKTGHIDHIPXCIWTVGTPILPITGHLXIWIWTXGQADDS 二、 实验要求1、 写出凯撒密码的频度分析原理 一篇包含字符的英文文章,其各ASCII码字符出现,都有一定的频率,出现较高频率的两个字符是 (空格) 和 e,而且它们的ASCII码分别是32和101,差值是69既然凯撒密码利用的是单表替换的一种简单加密算法,所以,我们的主角, 和e ,在解密后,依然会保持相同的ASCII码差值,69 |c1 - c2| = |e - | = |101 - 32| = 69 |m1 - m2| = | ((c1 + k) mod 256)-((c2 + k) mod 256)| = |c1 - c2| = |e - | = 69 现在可以得到破解凯撒密码的原理了,我们统计一片经过凯撒加密的密文字符信息,在出现频率较高的字符里面寻找差值是69的2个字符,这两个必定是 和e 字符的加密字符,计算偏移量(既密钥key),通过解密运算,还原出明文。

      2、 程序设计流程说明,提交源代码及详细注释开始输入要打开的文件名计算文件中各个字母出现的次数输入出现次数最多的字母计算出密钥解密出明文结束源代码: #include#include#includeint count[27];char s[100];int main(){ int i,n,m,l,k; FILE *fp; char d; char filename[100]; printf("请输入要打开的文件名:\n"); //输入要打开的文件名 gets(filename); fp=fopen("filename","r"); if((fp=fopen(filename,"r"))==NULL)//打开文件,并判断是否有打开错误 printf("打开文件%s出现错误\n",filename); else printf("成功打开文件\n"); while(fgets(s,100,fp)) //计算文件中每个英文字母出现的次数 { for(i=0;s[i];i++) { if(s[i]z|| (s[i]>Z&&s[i]64&&n<91) { n=(n-65-k)%26; if(n<0) n=26+n; l=(char)(n+97); printf("%c",l); } }s[i]=\0; return 0;}3、 用截图描述实验过程和结果 4、 提示:可将密文保存为文件,对该密文文件进行破解 可假设该文件中只有26个英文字母;或者考虑文件里包含标准ASCII码表中的128个任意字符 专心---专注---专业。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.