承接上文的分析
倘若一段密文完全由数字构成,这些数字介于1至26之间,那么我们应当优先将其视为字母表的映射。通常情况下,字母的排列遵循一定的顺序,比如3对应c,24对应x。在将所有数字转换成字母后,再进一步判断这些字母组合构成的可能是拼音还是英文。
以一组数字为例:9 12 15 22 5 3 18 1 3 11
观察密文的特征,所有字符均为数字且数值不超过26,这很容易引导我们联想到字母表。经过转换,这些数字变成了i l o v e c r a c k。很明显,这些字母可以重新组合成一个英文单词,即”I love crack”。
如果整段密文呈现为无法识别的拉丁文,那么最简单的加密方式可能是字母移位。
例如:prkkv qlaxv
从拉丁文和拼音等常规角度都无法解读出其含义,不妨尝试将字母表进行一定程度的移位,简单试验后发现,如果向后移三位,可以得到明文”sunny today”。这种加密方式属于古典凯撒密码,其进阶变形是维吉尼亚密码,即每个字母的移位数字并不相同。然而,在计算机编程语言高度发达的今天,这类复杂的古典加密方式已经变得非常容易被暴力破解。
如今,类似移位的加密方式中最常见的是键盘移位。例如,原明文”breakfast”在电脑键盘上每个字母都向右移一位,就会变成”ntrslgsdy”。这种加密方式适用于任何语系,既可以用于加密也可以用于解密。
将文字进行分组和重组,例如对”我天都们过很今得好”按照三个字一排进行分组,可以得到:
我天都
们过很
今得好
然后通过竖向还原的方式,可以得到原文”我们今天过得都很好”。这种加密方式被称为栅栏密码。栅栏密码在中文中比较容易识别,但在拉丁文中由于字母的重复频率较高,因此难以一眼看出。
古典栅栏密码是将密文纸条绑在一圆柱体上,然后沿着圆柱体的轴长方向进行一排排阅读。其变形栅栏密码则是采用多个不同的分组长度,比如间隔二、三、四字符进行分组,然后循环下去。这类密码极为罕见。
如果密文是手写文字,可以留意加密文字在水平位置上是否略高于或略低于其他文字,将这些文字提取出来,如果能够解读出语句,那么就成功解密了。同理,还有在一句话或一行中采用不同字体的文字。
例如:
这段文字中有几个词采用了斜体,将这些词提取出来,再进行进一步分析,比如”too”是否可以看作”two”等。
如果密文是一段122以内的数字,可以考虑ASCII码表。
例如:100 105 111 114
观察这些数字的特点,它们都是100出头,最大数和最小数之间的差值不超过26。查询ASCII码表后,可以得到”dior”(在ASCII码表中,全大写字母的范围是65-90)。
如果密文是01二进制表,可以根据其转换成十进制的最大长度来进行二次转换。
例如: 1110 1 10100 1001 1111 1110
观察这些数字的特征,最大数10100转换成十进制仅为20,因此可以考虑26以内的数字对应字母,转换成十进制后为14 1 20 9 15 14,得到单词”nation”。如果转换成十进制数字为大几十或一百多,则可以考虑参考ASCII码来对应字母。
对于密文中每三段数字在一起,其中第二段和第三段数字都不大,一般三十以内,可以考虑其为书签密码。其特征为页码-行数-第几个单词或文字,比如203-11-4 或203 11 4,其简化版也有二段式数字如 78-34或78 34,去掉了行数仅留下页码和第几个单词或文字。这类密码破解的难点在于找对解码书本。其变形密码方式为地图坐标,密文仅两串数字都小于180,则可以考虑经度和维度,再拿地图寻找对应的具体地点。
待续