下载此文档

置换密码.doc


文档分类:金融/股票/期货 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
实验3置换密码一、实验目的学****常见的古典密码学算法,通过编程实现置换密码算法,加深对古典密码体制的了解,为深入学****密码学奠定基础。二、实验原理古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍另一种常见的具有代表性的古典密码算法----置换密码。置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attackbeginsatfive,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个置换:根据上面的置换,将原有居住中的字母按照第1列、第4列、第5列、第3列、第2列、第6列的顺序排列,则有下面的形式:从而得到密文:vaiikse其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。三、实验所需仪器、设备运行Windows操作系统的PC机,具VC++(Windows)等C语言编译环境。四、,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作。:intencrypt()和intdecrypt(),当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。(用截图)。;lassReplace_encryption{ Stringstr_1="attackbeginsatfive";//明文字符串 Stringstr_2="cipher";//密钥 intlen_2=();//密钥长度 intlen_1=();//明文的长度 intlen_3=len_1/len_2; intcount=0; int[]in=newint[len_2]; char[]ch; char[][]ch_1=newchar[len_3][len_2]; char[][]ch_2=newchar[len_3][len_2]; har[][]Replace(){ for(inti=0;i<len_3;i++){//字符串转换为字符数组 (count,count+len_2,ch_1[i],0); count=count+len_2; } ("明文:"); for(inti=0;i<len_3;i++){ for(intj=0;j<len_2;j++){ (ch_1[i][j]+""); } } (); for(inti=0;i<len_3;i++){//置换 for(intj=1;j<=6;j++){ switch(j){ case1: { ch_2[i][0]=ch_1[i][0]; break; }//1 case2: { ch_2[i][1]=ch_1[i][3]; break; }//4 case3: { ch_2[i][2]=ch_1[i][4]; break; }//5 case4: { ch_2[i][3]=ch_1[i][2]; break; }//3 case5: { ch_2[i][4]=ch_1[i][1]; break; }//2 case6: { ch_2[i][5]=ch_1[i][5]; break; }//6 } } } returnch_2; }publicvoidShow(char[][]ch_3){in[0]=1;in[1]=4;in[2]=5;in[3]=3;in[4]=2;in[5]=6; ("密文:"); for(inti=0;i<6;i++){ for(intj=1;j<=6;j++){ if(j==in[i]){ for(intl=0;l<3;l++){ (ch_3[l][in[i]-1]+""); } } } }}}lassReplace_decryption{ Stringstr_1="vaiikse";//密文字符串 St

置换密码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人12345
  • 文件大小58 KB
  • 时间2019-06-10