欢迎来到天天文库
浏览记录
ID:20363232
大小:74.39 KB
页数:5页
时间:2018-10-08
《column permutation cipher 编程实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、现代密码学与加解密技术实验报告实验名称Columnpermutationcipher的编程实现班级学号姓名日期成绩评阅人软件学院一、实验目的与意义编程(建议使用C语言)实现古典密码体制中的Columnpermutation密码,并加/解密一个字符串或文件.二、实验环境Win7,vs2011三、实验的预习内容列置换的加密原理是,明文按行填写在一个矩阵中,而密文则是以预订的顺序按列读取生成的。如果矩阵是4行5列,那么短语“ENCRYPTIONALGORITHMS”可以如下写入该矩阵中按一定的顺序读取生成密文对于这个例子如果读取顺序是4123那么密文就是“RILISE
2、YOGTNPNOHCTARM”这种方法要求填满矩阵,因此字母不够的时候就得填充X或Q等无效字符四、实验数据与实验结果五、实验用程序清单#include"stdafx.h"#include"string.h"#definemax100voidjiami(charplantext[max],charkey[max],charcipher[max],charplantext2[max]){inti,m,k,l,ml,mk;charcopy[max];l=strlen(key);k=strlen(plantext);intb[max];for(i=0;i3、/复制key数组{copy[i]=key[i];}for(i=0;icopy[j+1]){temp=copy[j];copy[j]=copy[j+1];copy[j+1]=temp;}}}for(i=0;i4、获取读取序列,序列存储在b[l]中{intj;intindex=0;for(j=0;j5、f("%d",m);ml=0;for(i=0;i6、l+b[i]]=cipher[ml];//cipher的前m个数对应明文矩阵的b[i]列ml++;}}printf("原文为:");for(i=0;i7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的8、安全性增强方法是什么?进
3、/复制key数组{copy[i]=key[i];}for(i=0;icopy[j+1]){temp=copy[j];copy[j]=copy[j+1];copy[j+1]=temp;}}}for(i=0;i4、获取读取序列,序列存储在b[l]中{intj;intindex=0;for(j=0;j5、f("%d",m);ml=0;for(i=0;i6、l+b[i]]=cipher[ml];//cipher的前m个数对应明文矩阵的b[i]列ml++;}}printf("原文为:");for(i=0;i7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的8、安全性增强方法是什么?进
4、获取读取序列,序列存储在b[l]中{intj;intindex=0;for(j=0;j5、f("%d",m);ml=0;for(i=0;i6、l+b[i]]=cipher[ml];//cipher的前m个数对应明文矩阵的b[i]列ml++;}}printf("原文为:");for(i=0;i7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的8、安全性增强方法是什么?进
5、f("%d",m);ml=0;for(i=0;i6、l+b[i]]=cipher[ml];//cipher的前m个数对应明文矩阵的b[i]列ml++;}}printf("原文为:");for(i=0;i7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的8、安全性增强方法是什么?进
6、l+b[i]]=cipher[ml];//cipher的前m个数对应明文矩阵的b[i]列ml++;}}printf("原文为:");for(i=0;i7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的8、安全性增强方法是什么?进
7、"%s",key);jiami(plantext1,key,cipher,plantext2);return0;}一、思考题1.Columnpermutationcipher的原理是什么?明文按行填写在一个矩阵中,密文是按照预定顺序按列读取产生。2.给定关键字为“experiment”,加密矩阵将包括几列,以及列置换的次序是什么?10列置换顺序为1.10.7.2.8.4.5.3.6.9。3.简述对Columnpermutationcipher的分析方法。a.确定列的可能大小;b.确定正确的矩形;C.还原列的顺序4.Columnpermutationcipher的
8、安全性增强方法是什么?进
此文档下载收益归作者所有