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

上传人:wj 文档编号:1306352 上传时间:2023-04-30 格式:DOC 页数:5 大小:63.50KB
下载 相关 举报
实验2移位密码分析实验.doc_第1页
第1页 / 共5页
实验2移位密码分析实验.doc_第2页
第2页 / 共5页
实验2移位密码分析实验.doc_第3页
第3页 / 共5页
实验2移位密码分析实验.doc_第4页
第4页 / 共5页
实验2移位密码分析实验.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《实验2移位密码分析实验.doc》由会员分享,可在线阅读,更多相关《实验2移位密码分析实验.doc(5页珍藏版)》请在冰点文库上搜索。

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

实验2-移位密码分析实验

一、实验内容

通过编程实现使用频度分析法破解凯撒密码的程序。

并通过下面两段密文解密验证。

已知,拦截到下列两段密文,使用的是移位密码,利用频度攻击分别找出其明文:

1、XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVXLQSVILYVVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVW

2、XULTPAAJCXITLTLXAARPJHTIWTGXKTGHIDHIPXCIWTVGTPILPITGHLXIWIWTXGQADDS

二、实验要求

1、写出凯撒密码的频度分析原理

一篇包含字符的英文文章,其各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),通过解密运算,还原出明文。

2、程序设计流程说明,提交源代码及详细注释

开始

输入要打开的文件名

计算文件中各个字母出现的次数

输入出现次数最多的字母

计算出密钥

解密出明文

结束

源代码:

#include

#include

#include

intcount[27];

chars[100];

intmain()

{

inti,n,m,l,k;

FILE*fp;

chard;

charfilename[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]<'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(i=0;i<26;i++)

{

printf("%cor%c:

%d次\n",'A'+i,'a'+i,count[i]);

}

printf("其它字符:

%d次\n",count[26]);

printf("inputthenumber\n");//输入出现次数最多的字母

scanf("%c",&d);

k=(int)(d-'e');//计算出密钥

printf("thekeyis:

%d\n",k);

printf("Whentheciphertextis'%s',\nThepasswordprogramis...:

:

\n\n",s);

m=strlen(s);

for(i=0;i

{

n=(int)(s[i]);

if(n>64&&n<91)

{

n=(n-65-k)%26;

if(n<0)

n=26+n;

l=(char)(n+97);

printf("%c",l);

}

}

s[i]='\0';

return0;

}

3、用截图描述实验过程和结果

4、提示:

可将密文保存为文件,对该密文文件进行破解

可假设该文件中只有26个英文字母;或者考虑文件里包含标准ASCII码表中的128个任意字符

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2