古典密码
作者:互联网
作为一个不务正业的密码手,稍微学一点点密码(主要是水一篇博客)。
密码学中,最基础的是古典密码。
按照百度百科的说法,古典密码无非两种:置换与代换。
置换就是把明文中的字母(或者其他什么东西)换换位置,但是那些字母还是它们自己,比如把kroos换成soork就是一种置换。
代换就是把明文中的字母换成别的字符,比如把kroos换成11,18,15,15,19(这几个字母在字母表中的位置)就是一种代换。
这么看来,简单的置换与代换所产生的加密方法比较好破解,基本上都可以比较简单地破解出来,以下是几种常见古典密码。
凯撒密码:
它的做法是按照字母表把明文中的字母变成数字,再偏移几位,再转换回字母,这是一种非常典型的代换密码
而它的破解也很简单,毕竟字母表一共就26位,最多试26次就可以了
破解网站:http://www.metools.info/code/c70.html
栅栏密码:
它的做法是把明文分成几个不同的部分,比如:
明文是:
可以把它分成两个部分:
再之后,把第二个部分排在第一部分的后面,变成:
这就加密完了,解密也十分简单
首先把密文分成两行:
之后再把它每行读一个就可以了:
栅栏密码破解也比较简单,只要猜测总共把字符分成了几个部分就可以了。
破解网站:http://www.hiencode.com/railfence.html
维吉尼亚密码:
维吉尼亚密码是一个破解难度相对较高的古典密码,它采用了简单的多表代换。
首先使用维吉尼亚密码需要密钥
具体操作如下:
假如明文为:
然后可以选择一个关键词然后将它反复重复变成密钥,比如关键词为LEMON时,密钥为:
之后,用密钥的第n位加密明文的第n位,比如用L加密A,用E加密T等等,而具体方法如下:
当然,也不一定需要查表,可以用数学的方法求出:
在知道密钥的情况下,可以直接解密
在线解密:http://www.metools.info/code/c71.html
用这种方法,在不知道密钥(或者关键词)的情况下,破解有些难度,不过有一个大致的思路:
因为维吉尼亚密码的密钥是循环重复的(假如它不是而你又不知道密钥,那就是一次一密的加密,破解几乎没有可能),所以维吉尼亚密码可以看做很多组凯撒密码
这样的话,在文本较长的情况下,就有可能出现相同的单词遇到的密钥也一样的情况,这样就会导致密文中出现重复字段
找到相同字段间的距离,可以大致判断出关键词长度是距离的因数
多找一些不同的重复字段,找到距离找公因数可以大致算出密钥长度,再尝试猜测密钥即可
不过,实际上这已经需要非常巨大的工作量了,因此,维吉尼亚密码在不知道密钥的情况下较难破解。
(最近比较忙,博客比较水,下次一定不)
标签:代换,明文,密码,密钥,古典,维吉尼亚,破解 来源: https://www.cnblogs.com/T0niKroOs/p/15624425.html