ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:46KB ,
资源ID:7770222      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7770222.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多表代换密码playfair的实现.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

多表代换密码playfair的实现.doc

1、- 1 -一.问题描述:著名的多表古典加密体制使 Playfair,它将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文双字母组合。Playfair 算法基于使用一个 55 字母矩阵,该矩阵使用一个关键词构造。这里有一个例子,是由 Lord Peter Wimsey 在 Dorothy Sayer 的书Have His Carcase中解答的。 M O N A R C H Y B D E F G I/J K L P Q S T U V W X Z 在这里,该关键词是 monarchy。该矩阵该矩阵是这样构造的;从左至右、从上至下填入该关键词的字母(去除重复字母) ,然后再以字母表顺序

2、将余下的字母填入矩阵剩余空间。字母 I 和 J 被算作一个字母。Playfair 根据下列规则一次对明文的两个字母加密: (1) 、属于相同对中的重复的明文字母将用一个填充字母进行分隔,因此,词balloon 将被加密为 ba lx lo on。 (2) 、属于该矩阵相同行的明文字母将由其右边的字母替代,而行的最后一个字母由行的第一个字母代替。例如,ar 被加密为 RM。 (3) 、属于相同列的明文字母将由它下面的字母代替,而列的最后一个字母由列的第一个字母代替。例如,mu 被加密为 CM。 (4) 、否则,明文的其他字母将由与其同行,且与下一个同列的字母代替。因此,hs 成为 BP,ea 成

3、为 IM(或 JM,这可根据加密者的意愿而定) 。 基本要求:二.基本要求:根据多表代换密码的特点,编写 playfair 软件,并以 monarchy 密钥进行测试,验证加密结果。三.实验代码:#include#includeusing namespace std;void decrypt();/解密函数void encrypt();/加密函数void main() coutn;if(n3)coutch1;int flg=1;while(flg=1)for(int i=0;iz|ch1ich2;coutch4;if(ch4=a)ch4=ch4-len;for(k=0;k=a)ch2k=ch2

4、k-len;for(k=0;kk;t-)ch2t+1=ch2t;ch2k+1=ch4;/若明文有奇数个字符,则添加一个无关字符以凑够偶数个if(strlen(ch2)%2!=0)- 5 -ch2strlen(ch2)+1=ch2strlen(ch2);/字符串结尾赋0ch2strlen(ch2)=ch4;/明文串尾插入无关字符cout4)n1=n1%5;m1=m1+1;if(n24)n2=n2%5;m2=m2+1;if(m1=m2)ch2k=chm1(n1+1)%5;ch2k+1=chm2(n2+1)%5;else if(n1=n2)ch2k=ch(m1+1)%5n1;ch2k+1=ch(m2

5、+1)%5n2;- 6 -elsech2k=chm1n2;ch2k+1=chm2n1;coutch1;while(flg=1)for(int i=0;iz|ch1ich2;for(int k=0;k=a)- 8 -ch2k=ch2k-len;for( k=0;k4)n1=n1%5;m1=m1+1;if(n24)n2=n2%5;m2=m2+1;if(m1=m2)ch2k=chm1(n1+4)%5;ch2k+1=chm2(n2+4)%5;else if(n1=n2)ch2k=ch(m1+4)%5n1;ch2k+1=ch(m2+4)%5n2;elsech2k=chm1n2;ch2k+1=chm2n1

6、;cout“解密后所得到的明文是:“;for(k=0;kstrlen(ch2);k+=2)coutch2kch2k+1“ “;coutendl;else break;四.测试情况:_| | 多表代换密码 Playfair 的实现 | 欢迎使用本程序 |_|_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:1- 10 -_| 加密结束 |_|输入密钥:123请重新选择操作:_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:1_| 加密结束 |_|输入密钥:monarchy密

7、钥填充后的矩阵为:M O N A RC H Y B DE F G I KL P Q S TU V W X Z请输入明文:sunhongguo输入无关字符:x经过处理后的明文为:SU NH ON GX GU OX其最终长度为:12加密后所得到的密文是:LX OY NA IW EW AV_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:2_| 解密结束 |_|输入密钥:monarchy密钥填充后的矩阵为:M O N A RC H Y B DE F G I KL P Q S TU V W X Z- 11 -请输入密文:sun字符串不能为奇

8、数个!请重新输入。请输入密文:sunhongg同一分组中不能出现相同字符!请重新输入。请输入密文:lxoynaiwewav解密后所得到的明文是:SU NH ON GX GU OX_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:9无该项操作,请重来:_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:rytery无该项操作,请重来:_| 选择你所需要的操作: | 1.为字符串加密 | 2.为字符串解密 | 3.结 束 程 序 |_|选择操作:3_| 程序结束,谢谢您的使用 ! _ |_|请按任意键继续. . .五.总结Playfair 加密与解密过程是一样的,本程序在最初设计时未考虑容错能力,经老师指导,做简单修改后,已经具备容错能力,详细测试情况见四。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报