Caesar算法.doc_第1页
Caesar算法.doc_第2页
Caesar算法.doc_第3页
Caesar算法.doc_第4页
Caesar算法.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应用密码学课程论文论文题目: Caesar算法姓 名:学 号:专业班级:联系电话:2014年10月Caesar算法1、 算法原理恺撒密码方法:字母表中的每个字母用该字母后面的第三个字母进行替代,字母表是循环的。设明文字母为p,密文字母用C代替,字母序号为1-26;C = E(p)=(p+3)mod(26)移位可以是任何量,通用的恺撒加密算法是:C = E(p)=(p+k)mod(26)K在1到25的范围取值;恺撒解密算法为:p = D(C)=(C - k)mod(26)2、 算法实现1. 流程框图开始输入密钥k打开明文、密文文件取明文字符加密成密文写入密文文件 否判断是否到达明文文件末尾关闭明文、密文文件 是取解密密钥k = 0打开密文、译文文件取密文字符译码将译码写入文件 否判断是否到达密文文件末尾 判断k是否达到最大值25 是 是 否k+ 关闭密文、译文文件结束2. 代码/*凯撒密码的加密和解密过程,文件输入加密文件,控制台输入加密密钥*/#include #include #include void main()int k,x,y,z;/k,x,y分别存储密钥,明文,密文,译文的单个值int count;/解密时使用的循环变量FILE*fp, *fc, *fd; /明文文件,密文文件,解密文件/输入密钥k,加入纠错功能printf(请输入凯撒密码的密钥(0-25,且为整数,若输入浮点数,取其整数部分) k=);scanf(%d, &k);while(k25)printf(输入错误,请重新输入凯撒密码的密钥(0-25,且为整数,若输入浮点数,取其整数部分) k=);scanf(%d, &k);printf(密钥输入成功n);/从文件输入明文,并将明文转化成对应的密文,将密文写入文档if(fp=fopen(plaintext.txt,rt)=NULL)/打开明文文件printf(明文文件打开时出错,按任意键退出!n);getch();exit(0);if(fc=fopen(ciphertext.txt,wt)=NULL)/打开密文文件printf(密文文件打开时出错,按任意键退出!n);getch();exit(1);x=fgetc(fp);while(feof(fp)=0)/将明文逐个翻译成密文; feof(fp)=0表示上次没读完,所以最后结果会多读一次,解决办法是将x=fgetc(fp);加在循环之前if(x=97&x=65&x=90)y=(x-A+k)%26+A;fputc(char)y,fc);else/明文中出现非法字符时忽略x=fgetc(fp);fclose(fp);fclose(fc);printf(加密成功n);/根据密文译出明文if(fc=fopen(ciphertext.txt,rt)=NULL)/打开密文文件printf(密文文件打开时出错,按任意键退出!n);getch();exit(2);if(fd=fopen(decode.txt,wt)=NULL)/打开译文文件printf(译文文件打开时出错,按任意键退出!n);getchar();exit(3);for(count = 0; count 26; count +)/采用强行攻击的方法译码,执行26轮译码y=fgetc(fc);while(feof(fc) =0)z=(y-A-count + 26)%26+A;fputc(char)z,fd);y=fgetc(fc);fputc(nr,fd);rewind(fc);/将文件内部的位置指针重新指向文件的开头fclose(fc);fclose(fd);printf(解密成功,按任意键退出n);getch();3. 实验结果明文文件加密后文件解密后文件译码后的文件中第五行的译文是有意义的,为正确的译码,此时k = 43、 算法分析凯撒算法的加密和解密都很简单,快捷,易于理解,时间复杂度为O(n)。凯撒密码最大的缺点就是容易破解。当已知密文用的是恺撒算法时,解密时可以使用强行攻击密码分析方法:直接对所有25个可能的密钥进行尝试,有意义的明文就是分析的结果。也可以直接对密文中字母进行概率统计,将统计的频率与英文中字母的相对频率分布比较、匹配,再进行一些有根据的假设,即可大致推测出明文与密文的对应关系。为了提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论