欢迎来到天天文库
浏览记录
ID:16013787
大小:174.50 KB
页数:17页
时间:2018-08-07
《现代密码学实验(题目+代码)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验课程名称现代密码学学院理学院年级大三专业班信科0802学生姓名王尔林学号200810010210开课时间2010至2011学年第二学期总成绩教师签名实验项目名称实验一、古典密码(认识密码学)成绩一、实验目的通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext)、密文(ciphertext)、加密密钥(encryptionkey)、解密密钥(decryptionkey)、加密算法(encryptionalgorithm)、解密算法(decryptionalgorithm)等。二、实验内容1)用
2、CC++语言实现仿射变换(Affine)加/解密算法;2)用CC++语言实现统计26个英文字母出现的频率的程序;3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规律。放射变换:加密:解密:其中a,b为密钥,,且gcd(a,26)=1实验要求:加/解密程序对任意满足条件的a、b都能够处理。三、实验步骤(1)统计26个英文字母出现的频率的程序#include#include#includeus
3、ingnamespacestd;voidmain(){ifstreamin("a.txt");vectors;vectorn(26,0);for(inti=0;i<26;++i)s.push_back(97+i);for(charx;in>>x;)for(inti=0;i<26;++i)if(int(x)==s[i]){n[i]++;}floatsum=0.0;for(intj=0;j<26;++j)sum+=n[j];cout<<"统计结果如下:"<4、//n[k]=n[k]/sum;cout<<''<#include#includeusingnamespacestd;//////////判断两个数是不是互素(辗转相除)////////boolgcd(inta){intf=26,g,r;g=a;do{r=f%g;f=g;g=r;}whi5、le(r);if(f==1)return1;elsereturn0;}//////////////////求逆//////intinv(inta){intx,i;for(i=1;i<=30;++i)if((26*i+1)%a==0){x=(26*i+1)/a;break;}returnx;}//////////////////////////////////////////////////////////voidmain(){cout<<"请你选择操作密码的方式:"<6、密"<>z;if(z==07、8、z==1){//////////////////////////////////////////cout<<"请输入密钥a和b:"<>a>>b;if((a<19、10、a>25)11、12、(b<013、14、b>25))cout<<"a,b的输入范围有错!"<15、amout("b.txt");vectors;for(charx;in>>x;)s.push_back(int(x));for(inti=0;is;for(charx;in>>x;16、)s.push_back(int(x));for(inti=0;i
4、//n[k]=n[k]/sum;cout<<''<#include#includeusingnamespacestd;//////////判断两个数是不是互素(辗转相除)////////boolgcd(inta){intf=26,g,r;g=a;do{r=f%g;f=g;g=r;}whi
5、le(r);if(f==1)return1;elsereturn0;}//////////////////求逆//////intinv(inta){intx,i;for(i=1;i<=30;++i)if((26*i+1)%a==0){x=(26*i+1)/a;break;}returnx;}//////////////////////////////////////////////////////////voidmain(){cout<<"请你选择操作密码的方式:"<6、密"<>z;if(z==07、8、z==1){//////////////////////////////////////////cout<<"请输入密钥a和b:"<>a>>b;if((a<19、10、a>25)11、12、(b<013、14、b>25))cout<<"a,b的输入范围有错!"<15、amout("b.txt");vectors;for(charx;in>>x;)s.push_back(int(x));for(inti=0;is;for(charx;in>>x;16、)s.push_back(int(x));for(inti=0;i
6、密"<>z;if(z==0
7、
8、z==1){//////////////////////////////////////////cout<<"请输入密钥a和b:"<>a>>b;if((a<1
9、
10、a>25)
11、
12、(b<0
13、
14、b>25))cout<<"a,b的输入范围有错!"<15、amout("b.txt");vectors;for(charx;in>>x;)s.push_back(int(x));for(inti=0;is;for(charx;in>>x;16、)s.push_back(int(x));for(inti=0;i
15、amout("b.txt");vectors;for(charx;in>>x;)s.push_back(int(x));for(inti=0;is;for(charx;in>>x;
16、)s.push_back(int(x));for(inti=0;i
此文档下载收益归作者所有