目录
置换密码/换位密码
列置换
周期置换
代换密码
单表代换密码
多表代换密码
参考
置换密码(permutation cipher)又叫换位密码(transposi-tioncipher),它根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序。
最常见的置换密码有两种:
列置换密码(明文p遵照密钥的规程按列换位并且按列读出序列得到密文c);
周期置换密码(将明文p按固定长度m分组,然后对每组按1,2…,m的某个置换重排位置从而得到密文c)。
加密过程
将明文p以设定的固定分组宽度m按行写出,即每行有m个字符。若明文长度不是m的整数倍,则不足部分用双方约定的方式填充,如双方约定用空格代替空缺处字符,不妨设最后得字符矩阵
;
按1,2…,m的某一置换
交换列的位置次序得字符矩阵
把矩阵
按列1,2…,n的顺序依次读出得密文序列c。
举例
2022年北京冬季奥运会,英文为"the xxiv olympic winter games",假定m为5,发送时没有空格,
1列内容换到4,4列内容换到3,3列内容换到1,2、5列互换。
明文:thexxivolympicwintergames
密文:eoitmxywrsxlceetimighvpna
加密密钥:
解密过程
将密文c按与加密过程相同的分组宽度m按列写得到字符矩阵
。
按加密过程用的置换
的逆置换
把矩阵
按1,2,…,m行的顺序依次读出得明文p。
解密密钥:
周期置换密码是将明文串p按固定长度m分组,然后对每组中的子串按1,2…,m的某个置换重排位置从而得到密文c。其中密钥
包含分组长度信息。解密时同样对密文c按长度m分组,并按口的逆置换
把每组子串重新排列位置从而得到明文p。
加密“state key laboratory of networking and switching",不含空格,m为7。加密密钥
=(15623)
明文分7组:
(statek)(eylabo)(ratory)(ofnetw)(orking)(andswi)(tching)
加密变换:
(akttse)(loyaeb)(tyaorr)(nwfeot)(kgrion)(dinsaw)(hgcitn)
最终密文:
akttseloyaebtyaorrnwfeotkgriondinsawhgcitn
由加密密钥易知解密密钥:
=(13265),解密易实现,请读者自行尝试。
所谓代换,就是将明文中的一个字母由其它字母、数字或符号替代的一种方法。
代换密码是指建立一个代换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文。这样的代换表,通常称为密钥。
对明文消息中出现的同一个字母,在加密时都使用同一固定的字母来代换,不管它出现在什么地方。如凯撒、仿射等。
凯撒密码
明文中的所有字母都在字母表上向后(或向前)按照一个固定数目(密钥n)进行偏移后被替换成密文。
加解密方法如下:
当密钥n是3时:
明文字母表:abcdefghijklmnopqrstuvwxyz。
密文字母表:defghijklmnopqrstuvwxyzabc。
加密过程如下:
明文:the quick brown fox jumps over the lazy dog ;
密文:wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj。
解密逆过程即可,可以自己写个小程序,输入明文/密文、密钥,得到结果,当然,也有在线工具箱。
找的在线加解密工具箱,网址在参考部分
明文消息中出现的同一个字母,在加密时不是完全被同一固定的字母代换,而是根据其出现的位置次序,用不同的字母代换。多表代换密码是利用多个单表代替密码构成的密码体制,它在对明文进行加密的过程中依照密钥轮流使用多个单表代替密码。如维吉利亚、playfair、转轮等。
维吉尼亚密码
是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
假设明文为:
attackatdawn
选择某一关键词并重复而得到密钥,如关键词为lemon时,密钥为:
lemonlemonle
对于明文的第一个字母a,对应密钥的第一个字母l,于是使用表格中l行字母表进行加密,得到密文第一个字母l。类似地,明文第二个字母t,在表格中使用对应的e行进行加密,得到密文第二个字母x。以此类推,即:
明文:attackatdawn
密钥:lemonlemonle
密文:lxfopvefrnhr
解密过程相反
加解密在线工具-一个工具箱
千千秀字-维吉尼亚加解密
更多内容查看:网络安全-自学笔记
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。