置换密码(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"最终加密过程如下:
二、列置换解密
列置换的解密过程就是加密的逆过程,根据上面的例子,可以知道密钥的逆置换为:
,则机密的过程如下:
置换密码
/huanweim
置换密码
(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排
列
明文,以便打破明文的结构特性。
置换密码
的特点是保持明文的所有字符不变,只是利用
置换
打乱了明文字符的位置和次序。
最常见的
置换密码
有二种:
列
置换密码
(明文遵照密钥的规程按
列
换位并且按
列
读出序
列
得到密文);周期
置换密码
(将明文P按固定长度m分组,然后对每组按1,2…,m的某个
置换
重排位置从而得到密文C)。
将明文p以设定的固定分组宽度m按行写出,即每行有m个字符;若明文长度不是m的整数倍,则不足部分用双方约定的方式填充,如双方约定用空格代替空缺处字符,不妨设最后得字符矩阵[Mp]n×m
按1,2…,m的某一
置换
σ交换
列
的位置次序得字符矩阵[Mp]n×m
把矩阵按[Mp]n×m
列
的顺序依次读出得密文序
列
c。
置换密码
又称换位密码,是根据一定的规则重新排
列
明文,以便打破明文的结构特性。
置换密码
的特点是保持明文的 所有字符不变,只是利用
置换
打乱了明文字符的位置和次序。也就是说,改变了明文的结构,不改变明文的内容。
例如:明文:asdfghjklmnbvc
密钥:31524
首先把弄清密钥长度,然后将密文分组即
明文矩阵:
a s d f g
h j k l m
1.要求使用4行*4
列
的双重
置换密码
,使用行
置换
:(1,2,3,4)→(2,4,1,3)和
列
置换
:(1,2,3,4)→(3,1,2,4) 编写
置换密码
算法的实现程序,实现加密和解密操作。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。其解密过程是根据密钥的字母数作为
列
数,将密文按照
列
、行的顺序写出,再根据由密钥给出的矩阵
置换
产生新的矩阵,从而恢复明文。
置换密码
通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变;
重新排
列
明文字母,达到信息加密的目的。与替代密码不同的是,原来明文中的字母同样出现在密文中,只是顺序被打断。古典的
置换密码
的例子:Rail Fence密码、行
置换密码
、乘积密码、转子机、隐写术。
1.适用于想学习
密码学
和C++的人群
2.代码可以循环加密解密过程
3.特点:循环使用实现
密码学
中的古典密码的
列
转置密码(Column Permutation Cipher)
4.使用简单,上手容易
置换密码
算法的原理是不改变明文字符,而是按照某一规则重新排
列
消息中的比特或字符顺序,才而实现明文信息的加密。
置换密码
有时又称为换位密码。
矩阵换位法是实现
置换密码
的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:
根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个
置换
:
根据上面的
置换
,将原有居住中的字母按照第1
列
、第4裂、第5裂、第3裂、第2
列
、第6
列
的顺序排
列
,则有下面的形式:
从而得到密文:abatgftetcnvaiikse
其解密过程是根据密钥的字母数作为
列
数,将密文按照
列
、行的顺序写出,再根据由 密钥给出的矩阵
置换
产生新的矩阵,从而恢复明文。
1.1)
列
置换密码
:
明文遵照密钥规则按
列
换位,按
列
读出明文序
列
得到密文。
加密:明文分段,不足则填充,根据密钥以
列
为单位进行互换,按行从左到右写出,得到密文。
解密:密文分段,根据密钥逆
置换
以
列
为单位进行互换,按行从左到右写出,得到明文。