置换密码程序设计

实验目的与要求

1. 帮助学生掌握置换密码的加密解密过程,能够利用所学过的编程语言,实现加解密算法。使学生掌握编程实现实际问题中的方法,提高专业技能和专业素养。

2. 要求学生掌握算法的程序实现的方法,能应用密码算法的特点,设计合适的交互界面,并能正确实现应用编程。

实验原理与内容

置换密码加密解密过程

设明文为:4D 61 65 53 2D 4F 69 20 4E。密钥为10,8,1,6,3,0,11,5,7,17,4,12,13,14,9,15,2,16。求加密后的16进制密文。

解 先思考和描述算法,也就是对明文4D 61 65 53 2D 4F 69 20 4E实现置换10,8,1,6,3,0,11,5,7,17,4,12,13,14,9,15,2,16。通过对数组赋值实现:

m(i)={4D 61 65 53 2D 4F 69 20 4E},i=1,2,3,…,9。

    k(i)={ 10,8,1,6,3,0,11,5,7,17,4,12,13,14,9,15,2,16},i=0,1,2,3,…,17。

c(i)=m(k(i)), i=0,1,2,3,…,17。

c(0),c(1),…,c(17)为密文。

密文序列为: 。

这样可以推广到任意置换。有这个思维才可以编程实现,因此,思想方法更重要。

幻方密码加密解密过程(即置换密码的解密)

……

实验内容及拓展

实验原理已包含实验内容,下面所说的只是拓展实验内容实现的难点:

1. 设计交互图形界面;

2. 字符的转换

3. 文件的读取。

实验步骤

实现置换密码加解密过程

实验注意事项

遇到问题可以通过互联网查询方法或者插入断点进行调试

实验设备与软件环境

 PC Windows环境

实验过程与结果

1.1原理解析

置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码也叫换位密码。

试编程实现矩阵换位密码。它的加密方法是将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,形成密文。例如,明文为attack begins at five,密钥为acbdfe

1.2加密过程

将明文按照每行6个字母的形式排在矩阵中,如下形式:

['a', 't', 't', 'a', 'c', 'k']

['b', 'e', 'g', 'i', 'n', 's']

['a', 't', 'f', 'i', 'v', 'e']

根据密钥acbdfe可用得到各字母在字母表中的先后出现顺序132465

根据上面的置换,将原有矩阵中的字母按照第132465的顺序排列,则有下列形式:

['a', 't', 't', 'a', 'k', 'c']

['b', 'g', 'e', 'i', 's', 'n']

['a', 'f', 't', 'i', 'e', 'v']

1.3解密过程

将密文按照每行6个字母的形式排在矩阵中,如下形式:

['a', 't', 't', 'a', 'k', 'c']

['b', 'g', 'e', 'i', 's', 'n']

['a', 'f', 't', 'i', 'e', 'v']

根据密钥acbdfe可用得到各字母在字母表中的先后出现顺序132465

根据上面的置换,将原有矩阵中的字母还原,则有下列形式:

['a', 't', 't', 'a', 'c', 'k']

['b', 'e', 'g', 'i', 'n', 's']

['a', 't', 'f', 'i', 'v', 'e']

2.1代码解析

处理密钥获取密钥的长度及顺序

加密

解密

主函数

3.1运行结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值