信息安全实验-凯撒加密加法乘法变换.doc_第1页
信息安全实验-凯撒加密加法乘法变换.doc_第2页
信息安全实验-凯撒加密加法乘法变换.doc_第3页
信息安全实验-凯撒加密加法乘法变换.doc_第4页
信息安全实验-凯撒加密加法乘法变换.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

【实验目的】 1. 简单加密方法的原理 2. 凯撒密码的原理及程序的编写【实验设备与环境】(1)计算机(2)TC【实验步骤(内容)】凯撒密码就是单表代替密码,它的每一个明文字符都由其右边第3个(模26)字符代替(A由D代替,B由E代替,W由Z代替,X由A代替,Y由B代替,Z由C代替)。(1)加法变换c (m + k) mod 26其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,叫密钥。比如:data security对应数据序列4,1,20,1,19,5,3,21,18,9,20,25,当k=5时,得密文序列9,6,25,6,24,10,8,0,23,14,25,4。(2)乘同余码: 移位或等间隔抽取码,明密文之间没有一一对应关系。(容易产生多义性)。变换按照同余乘法进行:加密变换:C=Pk (mod 26), 解密变换:P=Ck (mod 26) ,密钥:k源程序:#include#include char sumjiami(char ch,int n)n=n%10;while(ch=A&ch=a&ch=0&ch=A&ch=a&ch=0&ch=A&ch=a&ch=0&ch=A&ch=Z) for(i=0;i=0&h=a&ch=z) for(i=0;i=0&h=0&ch=9) for(i=0;i=0&h=9) return (0+h); return ch;void menu()printf(n=);printf(n1.sumjiami the file);printf(n2.muljiami the file);printf(n3.sumjiemi the file);printf(n4.muljiemi the file);printf(n5.Quitn);printf(=n);printf(Please select a item:);return;void main()int i,n;char ch0,ch1;FILE *in,*out;char infile20,outfile20;sleep(3);menu();ch0=getch();while(ch0!=5) if(ch0=1) clrscr(); printf(nPlease input the infile:); scanf(%s,infile); if(in=fopen(infile,r)=NULL) printf(Can not open the infile!n); printf(Press any key to exit!n); getch(); exit(0); printf(Please input the key:); scanf(%d,&n); printf(Please input the outfile:); scanf(%s,outfile); if(out=fopen(outfile,w)=NULL) printf(Can not open the outfile!n); printf(Press any key to exit!n); fclose(in); getch(); exit(0); while(!feof(in) fputc(sumjiami(fgetc(in),n),out); printf(nsumjiami is over!n); fclose(in); fclose(out); sleep(1); if(ch0=2) clrscr(); printf(nPlease input the infile:); scanf(%s,infile); if(in=fopen(infile,r)=NULL) printf(Can not open the infile!n); printf(Press any key to exit!n); getch(); exit(0); printf(Please input the key:); scanf(%d,&n); printf(Please input the outfile:); scanf(%s,outfile); if(out=fopen(outfile,w)=NULL) printf(Can not open the outfile!n); printf(Press any key to exit!n); fclose(in); getch(); exit(0); while(!feof(in) fputc(muljiami(fgetc(in),n),out); printf(nmuljiami is over!n); fclose(in); fclose(out); sleep(1); if(ch0=3) clrscr(); printf(nPlease input the infile:); scanf(%s,infile); if(in=fopen(infile,r)=NULL) printf(Can not open the infile!n); printf(Press any key to exit!n); getch(); exit(0); printf(Please input the key:); scanf(%d,&n); printf(Please input the outfile:); scanf(%s,outfile); if(out=fopen(outfile,w)=NULL) printf(Can not open the outfile!n); printf(Press any key to exit!n); fclose(in); getch(); exit(0); while(!feof(in) fputc(sumjiemi(fgetc(in),n),out); printf(nsumjiemi is over!n); fclose(in); fclose(out); sleep(1); if(ch0=4) clrscr(); printf(nPlease input the infile:); scanf(%s,infile); if(in=fopen(infile,r)=NULL) printf(Can not open the infile!n); printf(Press any key to exit!n); getch(); exit(0); printf(Please input the key:); scanf(%d,&n); printf(Please input the outfile:); scanf(%s,outfile); if(out=fopen(outfile,w)=NULL) printf(Can not open the outfile!n); printf(Press any key to exit!n); fclose(in); getch(); exit(0); while(!feof(in) fputc(muljiemi(fgetc(in),n),out); printf(nmuljiemi is over!n); fclose(in); fclose(out); sleep(1); menu(); ch0=getch();clrscr(); printf(nGood Bye!n);sleep(3);运行:在C盘建立1.txt和2.txt,在文本1中输入以下信息:大写:ABCDEFGHIJKLMNOPKRSTUVWXYZ;小写:abcdefghijklmnopkrstuvwxyz;数字:0123456789.1、 加法(sum)加密 选择1加密运行结果:大写:FGHIJKLMNOPQRSTUPWXYZABCDE;小写:fghijklmnopqrstupwxyzabcde;数字:5678901234.2、 加法(sum)解密 选择3加法解密 运行结果:大写:ABCDEFGHIJKLMNOPKRSTUVWXYZ;小写:abcdefghijklmnopkrstuvwxyz;数字:0123456789.3、 乘法(mul)加密选择2乘法加密

温馨提示

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

最新文档

评论

0/150

提交评论