




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。实验3 置换密码一、实验目的学习常见的古典密码学算法,通过编程实现置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。二、实验原理古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍另一种常见的具有代表性的古典密码算法-置换密码。置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个置换:根据上面的置换,将原有居住中的字母按照第列、第列、第列、第列、第列、第列的顺序排列,则有下面的形式:从而得到密文:其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。三、实验所需仪器、设备运行Windows操作系统的PC机,具VC+(Windows)等C语言编译环境。四、实验内容和要求 1 根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥, 编写置换密码算法的实现程序,实现加密和解密操作。2要求上述密码算法最后的实现程序提供加密和解密两个接口:int encrypt ( )和 int decrypt ( ),当加密或者解密成功时返回 CRYPT_OK,失败时返回 CRYPT_ERROR。五实验报告要求要求提供算法实现程序和实验测试结果(用截图)。加密源程序import java.util.Scanner;public class Replace_encryption String str_1= attackbeginsatfive;/明文字符串 String str_2=cipher;/密钥 int len_2=str_2.length(); /密钥长度int len_1=str_1.length(); /明文的长度int len_3=len_1/len_2;int count=0;int in=new intlen_2;char ch;char ch_1=new charlen_3len_2;char ch_2=new charlen_3len_2;public char Replace() for(int i=0;ilen_3;i+)/字符串转换为字符数组 str_1. getChars(count,count+len_2,ch_1i,0); count=count+len_2; System.out.println(明文:); for(int i=0;ilen_3;i+)for(int j=0;jlen_2;j+) System.out.print(ch_1ij+ ); System.out.println();for(int i=0;ilen_3;i+)/ 置换 for(int j=1;j=6;j+) switch(j) case 1: ch_2i0 = ch_1i0; break;/1 case 2: ch_2i1 = ch_1i3; break; /4 case 3: ch_2i2 = ch_1i4; break; /5 case 4: ch_2i3 = ch_1i2; break; /3 case 5: ch_2i4 = ch_1i1; break; /2 case 6: ch_2i5 = ch_1i5; break; /6 return ch_2; public void Show(char ch_3) in0=1; in1=4; in2=5; in3=3; in4=2; in5=6; System.out.println( 密文:); for(int i=0;i6;i+) for(int j=1;j=6;j+) if(j=ini) for(int l=0;l3;l+) System.out.print(ch_3lini-1+ ); 解密源程序public class Replace_decryption String str_1= abatgftetcnvaiikse;/密文字符串 String str_2=cipher;/密钥 int len_2=str_2.length(); /密钥长度6int len_1=str_1.length(); /明文的长度int len_3=len_1/len_2;int count=0;int in=new intlen_2;char ch;char ch_1=new charlen_2len_3;char ch_2=new charlen_2len_3;char ch_3=new charlen_2len_3;public char Replace() for(int i=0;ilen_2;i+)/字符串转换为字符数组 str_1. getChars(count,count+len_3,ch_1i,0); count=count+len_3; System.out.println(密文:); for(int i=0;ilen_2;i+)for(int j=0;jlen_3;j+) System.out.print(ch_1ij+ ); System.out.println();for(int i=0;ilen_3;i+)/ 置换 for(int j=1;j=6;j+) switch(j) case 1: ch_20i = ch_10i; break;/1 case 2: ch_23i = ch_11i; break; /4 case 3: ch_24i = ch_12i; break; /5 case 4: ch_22i = ch_13i; break; /3 case 5: ch_21i = ch_14i; break; /2 case 6: ch_25i = ch_15i; break; /6 /for(int i=0;ilen_2;i+)/for(int j=0;jlen_3;j+)/ System.out.print(ch_2ij+ );/ return ch_2; public char Exchange(char ch) for(int i=0;ilen_3;i+)/ 置换 for(int j=1;j=6;j+) switch(j) case 1: ch_30i = ch_20i; break; /1 case 2: ch_33i = ch_21i; break; /4 case 3: ch_34i = ch_22i; break; /5 case 4: ch_32i = ch_23i; break; /3 case 5: ch_31i = ch_24i; break; /2 case 6: ch_35i = ch_15i; break; /6 / for(int i=0;ilen_2;i+)/for(int j=0;jlen_3;j+)/ System.out.print(ch_3ij+ );/ return ch_3; public void Show(char ch_3) System.out.println( 明文:); for(int i=0;ilen_3;i+) for(int j=0;jlen_2;j+) System.out.print(ch_3ji+ ); 测试源程序public class Test public static void main(String args) char ch1;char ch2;char ch3; System.out.println(*加密*);Replace_encryption re=new Replace_encryption(); ch1=re.Replace(); re.Show(ch1); System.out.println();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025跨国购销合同协议书
- 人教部编版七年级道德与法治下册说课稿:1.2成长的不仅仅是身体
- 危大工程监理安全技术交底模板
- 2025关于厨师的劳动合同范本
- 《2025电源电池及其零部件检验合同书》
- 大连版(2015)信息技术八年级下册说课稿:第7课 有迹可循-引导线动画
- 24.1.2垂直于弦的直径教学设计人教版数学九年级上册
- 区域经济影响酒店国际化进程-洞察及研究
- 新入职员工培训方案与课程设计
- 高中生物选修课知识点详解
- 2025年新团员入团考试试题及答案
- 第2课《中国人首次进入自己的空间站》课件-2025-2026学年统编版语文八年级上册
- 罗茨风机检修方案课件
- 2025年青协社团笔试题目及答案
- 光伏电站智能监控系统建设方案
- 2025年干细胞治疗行业研究报告及未来行业发展趋势预测
- 供水工程成本预算与动态控制方案
- GB/T 45860.1-2025光纤激光束焊机的验收试验第1部分:光纤输送机的激光组件
- 卒中后抑郁症的中医治疗
- 2025年4月自考00155中级财务会计试题及答案含评分标准
- DB50∕T 1653-2024 林区森林防火及森林质量提升专项规划编制导则
评论
0/150
提交评论