200707020306姓名现代密码学课程实验....doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《现代密码学》 课 程 实 验 报 告 项目名称: 古典密码设计实验 学生姓名: 张立 学生学号: 200707020229 指导教师: 范安东 完成日期: 20 1 实验内容 (1)编写仿射密码算法的实现程序; (2)利用仿射密码算法实现对简单英文文档的加密。 2 主要程序代码清单 #includeiostream #define N 100 using namespace std; void affine_encrypt(int ka,int kb)//仿射加密函数 { char c[N]; int length=0; cout请输入原始的明文:endl; for(int i=0;iN;i++) { cinc[i]; length++; if(c[i]==0) break; } for(i=0;ilength;i++) { if(c[i]96c[i]123) /*如果是小写字母*/ c[i] = (ka*(c[i]-97)+kb)%26+97; else if(c[i]64c[i]91) /*如果是大写字母*/ c[i] = (ka*(c[i]-65)+kb)%26+65; } cout明文经仿射加密后的密文为:endl; for(i=0;ilength-1;i++) { coutc[i]; } coutendl; } int Ni(int a, int b) /*求a相对于b的逆*/ { int i = 0; while(a*(++i)%b!=1); return i; } void affine_decrypt(int ka,int kb)//仿射解密函数 { char c[N]; int length=0,temp; cout请输入原始的密文:endl; for(int i=0;iN;i++) { cinc[i]; length++; if(c[i]==0) break; } for(i=0; ilength; i++) { if(c[i]64c[i]91) { temp = Ni(ka,26)*((c[i]-65)-kb); if(temp0) c[i] = temp%26+26+65; else c[i] = temp%26+65; } if(c[i]96c[i]123) { temp = Ni(ka,26)*((c[i]-97)-kb); if(temp0) c[i] = temp%26+26+97; else c[i] = temp%26+97; } } cout密文经仿射解密后的明文为:endl; for(i=0;ilength-1;i++) { coutc[i]; } coutendl; } void main() { cout古典密码—仿射密码:endl; coutendl; cout加密:endl; affine_encrypt(3,8); coutendl; cout解密:endl; affine_decrypt(3,8); coutendl; } 3 测试数据与实验结果 (1)测试数据: 加密:zhangli 解密:fdivapg (2)实验结果: 上课纪律(20%) 实验过程及结果(40%) 实验报告质量(40%) 总分: 教师签字:

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档