1 / 6
文档名称:

实验2移位密码分析实验.doc

格式:doc   大小:66KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验2移位密码分析实验.doc

上传人:wcuxirh 2020/9/13 文件大小:66 KB

下载得到文件列表

实验2移位密码分析实验.doc

相关文档

文档介绍

文档介绍:实验2-移位密码分析实验实验内容通过编程实现使用频度分析法破解凯撒密码的程序。并通过下面两段密文解密验证。已知,拦截到下列两段密文,使用的是移位密码,利用频度攻击分别找出其明文:XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVXLQSVILYVVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVWXULTPAAJCXITLTLXAARPJHTIWTGXKTGHIDHIPXCIWTVGTPILPITGHLXIWIWTXGQADDS 实验要求写出凯撒密码的频度分析原理一篇包含字符的英文文章,其各ASCII码字符出现,都有一定的频率,出现较高频率的两个字符是''(空格)和'e',而且它们的ASCII码分别是32和101,差值是69。既然凯撒密码利用的是单表替换的一种简单加密算法,所以,我们的主角,''和'e',在解密后,依然会保持相同的ASCII码差值,69。|c1-c2|=|'e'-''|=|101-32|=69|m1-m2|=|((c1+k)mod256)-((c2+k)mod256)|=|c1-c2|=|'e'-''|=69现在可以得到破解凯撒密码的原理了,我们统计一片经过凯撒加密的密文字符信息,在出现频率较高的字符里面寻找差值是69的2个字符,这两个必定是''和'e'字符的加密字符,计算偏移量(既密钥key),通过解密运算,还原出明文。程序设计流程说明,提交源代码及详细注释开始输入要打开的文件名计算文件中各个字母出现的次数输入出现次数最多的字母计算出密钥解密出明文结束源代码:#include<>#include<>#include<>intcount[27];chars[100];intmain(){ inti,n,m,l,k; FILE*fp; chard; char[100]; printf("请输入要打开的文件名:\n");//输入要打开的文件名 gets(); fp=fopen("","r");if((fp=fopen(,"r"))==NULL)//打开文件,并判断是否有打开错误 printf("打开文件%s出现错误\n",); else printf("成功打开文件\n"); while(fgets(s,100,fp))//计算文件中每个英文字母出现的次数 { for(i=0;s[i];i++) { if(s[i]<'A'||s[i]>'z'||(s[i]>'Z'&&s[i]<'a')) count[26]++; elseif(s[i]<'a') count[s[i]-'A']++; else count[s[i]-'a']; } } for(