置换密码(Permutation Cipher)又叫换位密码(Transposition Cipher),其特点就是保持明文的所有字符不变,打乱明文字符的位置和次序。常见的置换密码有两种:列置换密码和周期置换密码。
一、列置换加密
将明文字符P以固定的分组宽度m按行写出,构成m x n的矩阵[M]mxn,不够的按双方约定的字符补充,比如空格字符。然后通过某一交换列的位置次序的到矩阵[Mp]mxn,最后输出举证[Mp]mxn,即得到密文。
比如明文P="Sit down please!",密钥为:,即将第一列放到第2列,第2列放到第4列,第4列放到第一列,第3列放到第5列,第5列放到第3列,得到的密文Pm="dSoitlwenp!a se"最终加密过程如下:
二、列置换解密
列置换的解密过程就是加密的逆过程,根据上面的例子,可以知道密钥的逆置换为:
,则机密的过程如下:
相关推荐
云南大学信息安全学实验一 古典密码学中的置换密码源代码
此资源包含完整代码和完整实验报告(加上你的姓名学号即可提交)
自己写的密码学报告,里面有完整的实验目的、流程图、关键代码分析、代码、运行截图等。古典密码主要的两个程序——置换密码、代换密码,写的超级清晰!欢迎下载
该资料包括频率分析方法破译单表替换密码的原理说明,示例讲解以及Python代码实现。
《网络信息安全》 (2011-2012学年第2学期) 实 验 报 告 实验三 加密算法 实验3-1古典密码算法 一、实验目的 通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习 密码学奠定基础。...
《可证明安全理论及方法---密码算法》 (袁征、 周琳娜、 刘晨祎编著, 2017 年 11 月第 1 版, 科学出版社) 的 2.4.1 节给出了伪随机函数与伪随机置换的概率关系, 2.4.2 节引理 2.1 给出 PRP/PRF 转换引理, 其中...
3.22 打勾显示输入的密码 3.23 Android多语系支持 3.24 判断手机操作系统版本是否允许运行程序 3.25 两个不同的程序彼此调用 3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超...
3.22 打勾显示输入的密码 3.23 Android多语系支持 3.24 判断手机操作系统版本是否允许运行程序 3.25 两个不同的程序彼此调用 3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超...
3.22 打勾显示输入的密码 3.23 Android多语系支持 3.24 判断手机操作系统版本是否允许运行程序 3.25 两个不同的程序彼此调用 3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超...
3.22 打勾显示输入的密码 3.23 Android多语系支持 3.24 判断手机操作系统版本是否允许运行程序 3.25 两个不同的程序彼此调用 3.26 指定安装应用程序迁移至SD卡 3.27 手机动态Layout主题随手势物换迁移 第4章 史上超...