《现代密码学》课程实验报告上课纪律( 20% ) 实验过程及结果( 40% ) 实验报告质量( 40% ) 总分: 教师签字: 致谢本次程序设计试验得到了各位老师和同学们的热情帮助, 特别是在相关参考程序的解读和程序编写上面, 得到了大家的热情帮助,在此表示感谢。《现代密码学》课程实验报告第 1页项目一、古典密码设计实验 1 实验内容(1)编写仿射密码算法的实现程序; ( 2)利用仿射密码算法实现对简单英文文档的加密。 2 主要程序代码清单#include<iostream> #include"" #define M26 //定义密钥空间 using namespace std; int Inverse (int a)// 逆元函数{ for(int i=2;i<a;i++) { if((a%i == 0)&&(M%i == 0)) { cout<<" 请输入互素的元素: "<<endl; cout<<" 他们存在公因子且他们的公因子为:"<<i<<endl; return -1;// 返回-1 }} struct vector { int a; intb; }; int temp = 0,temp_a,temp_b; 《现代密码学》课程实验报告第 2页 vector v1,v2; =0; = M; =1; = a; while(true) { temp = int(); temp_a = ; temp_b =; = ; =; = temp_a - temp * ; = temp_b - temp *; if( == 1) break; } if( >0) return ; else return M+; } int Encryption(int m,int k1,int k2) { return (k1*m+k2)%M; } int Decryption(int c,int k1,int k2) { int temp_k = Inverse(k1); int result = (temp_k*(c-k2))%26; 《现代密码学》课程实验报告第 3页 if(result>0) return result; else return M+result; } void main() { int k1=11,k2=3,m=13,c; c= Encryption(m,k1,k2); cout<<" 仿射密码的明文为: "<<m<<" , 仿射密码的密钥为: "<<"("<<k1<<","<<k2<<")"<<" ,算法实现结果为:"<<" 加密过程"<<endl; cout<<c<<endl; cout<<" 仿射密码的密文为: "<<c<<" , 仿射密码的密钥为: "<<"("<<k1<<","<<k2<<")"<<" ,算法实现结果为:"<<" 解密过程"<<endl; m= Decryption(c,k1,k2); cout<<m<<endl; }3 测试数据与实验结果(1 )测试数据: 定义整数型数据,密钥 k1=11, 密钥 k2=3, 明文为 m=13, 密文为 c 利用 e(x)=(k1x+k2)mod26 d(y)=k1_ ( y-k2)mod26 求解加密解密数据。(2) 实验结果:程序实现截图: 《现代密码学》课程实验报告第 4页《现代密码学》课程实验报告第 5页 4. 总结本次程序设计我们利用古典放射密码进行程序设计, 因此程序设计比较简单, 我们引用西安电子科技大学《密码学基础》中的一个放射密码例题, 定义整数型数据, 密钥 k1=11, 密钥 k2=3, 明文为 m=13, 密文为c 利用 e(x)=(k1x+k2)mod26 d(y)=k1_ ( y-k2)mod26 求解加密解密数据。我们分别对输入的明文进行加密和解密运算, 所得到的结果是相一致的,因此这就验证了我们的程序设计是完全正确的。上课纪律( 20% ) 实验过程及结果( 40% ) 实验报告质量( 40% ) 总分: 教师签字: 《现代密码学》课程实验报告第 6页《现代密码学》课程实验报告项目名称: RSA 公钥密码算法实验学生姓名: 刘艳龙学生学号: 200807020116 指导教师: 范安东完成日期: 2011 年7月5日《现代密码学》课程实验报告第 7页项目二、 RSA 公钥密码算法实验 1 实验内容(1)编写获取两个大素数的程序; ( 2)编写 RSA 加解密算法的程序。 2 主要程序代码清单( C++ ) #include<iostream> #i
《现代密码学》课程实验报告 来自淘豆网m.daumloan.com转载请标明出处.