最新网址:www.kenshuzw.la
(原文搞错了,我已经把前两章修改了一下,柒柒月把我废稿抄了一遍,难绷,依旧罚抄柒柒月)
克劳德把铅笔往桌上一搁,深吸了一口气。
“我现在就试试,我想到了一个可能性。”
克劳德拿起那两份并排摊开的密文,手指点在第一份的前半段上:
“维吉尼亚密码本质上是好几种规则混用,一段话用周期循环但不同的凯撒密码加密,所以会有周期性,而这里没有。”
“现在我们已知不是凯撒移位,也不是多表替换。这里一共69个字母……刚好是3的倍数,可以试一下矩阵密码。”
“它的核心方式是通过坐标建系打乱单词,以某种规则将乱码重组成可读的明文。”
他一边说一边开始把前九个字母按3×3填入方格
V Q V……E L E……G R A
“……VEG QLR VEA……”他念出来,眉头立刻皱了起来,“这什么玩意儿。”
中尉凑过来看了一眼,也摇头道。
“不行,没规律……”
克劳德不死心,又试了按行读取、按对角线读取,按螺旋顺序读取,每一种排列组合出来的字母串都像天书,拼不出任何有意义的法语单词。
“不对,找不出任何正常的句子。看来不是3×3。”
瓦尔特皱着眉,开口提醒道:
“你的想法是好的,这的确可能是矩阵密码,但3这种周期太小了……”
“矩阵密码的周期如果只有3,那打乱的幅度根本不足以把一段正常法文彻底搅成乱码,这封信的词频异常程度远超3×3能造成的效果。”
克劳德听完点了点头,他拿起铅笔,在便签上重新写下69的因数分解:
“69 = 3 × 23。如果3不行,那可能是更大的矩阵,但69不是完全平方数,没法排成正方形。除非……”
“除非不是正方形矩阵,而是长方形矩阵。3行23列,或者23行3列。”
“但23列意味着每行塞23个字母,那打乱的范围太大了,几乎等于完全随机置换,那就已经不是矩阵密码的范畴,而是单纯的置换密码了……”
瓦尔特·尼古拉上校又开口道:“置换密码?你是说字母位置被打乱但字母本身不变?”
“对,就像把一段明文按某种规则重新排列,但每个字母还是原来的字母,这种加密方式不需要密钥本。”
“只需要一个排列规则,比如按字母在原文中的位置编号,然后按另一组编号重新排序。”
克劳德拿起那封情书,翻到正文部分,目光快速扫过前几行。
“但问题是……如果这是置换密码,那密文里的字母频率和原文应该完全一致。这里又不符合这个特征……”
他突然停住了。
“等等……”
他猛地低头去看中尉之前统计的那列频率数字。
“A和Q并列最多,各出现11次……”
“正常法文里A不可能和Q并列最多。Q在法语里是极低频字母,正常文本里出现一次都算多了。但这里Q出现了11次,和A一样多。”
“说明密文里的字母根本不是从原文里直接置换来的。这些字母是被替换过的,每个字母被换成了另一个字母……这应该是棋盘密码!”
“什么?”中尉没听清。
“棋盘密码就是把字母表排进一个5×5的棋盘里,每个字母用它的行号和列号代替。比如A在第1行第1列就写成11,B是12,以此类推。”
例子
他拿起铅笔,在便签上飞快地画了一个5×5的方格。
“如果发信人用的是棋盘密码,那密文里应该全是两位数字。但我们现在看到的是字母,所以不是直接棋盘加密,他们又在这个基础上加密了一道。”
他停下来,咬着铅笔尾端,眼神放空了几秒。
“棋盘密码把每个字母变成两个数字,比如A变成11,B变成12。如果他把这些数字再通过某种互换之后再映射回字母表 那就会是一个打乱了的字母乱码。”
“……不对,密文长度是69,奇数,棋盘密码要求每两个字母对应一个原始字母,密文长度应该是偶数才对。69是奇数,说明至少最后有一个字母是多余的,或者……”
“中尉!帮我重新数一下,有没有遗漏……”
中尉赶紧拿起信纸,从头开始数,嘴里念念有词,手指在纸面上逐字划过。
如果棋盘密码不对,那会不会是棋盘密码的变体,比如不是5×5而是别的维度?或者……不是棋盘,而是某种字母-数字双向映射,把明文和数字互转之后再套一层替换?
又或者……
他目光落在那封情书的最后几行上。
“……跟着我重复:我爱你,我爱你,我爱你……”
他注意到一个细节。
这封信里我爱你这个词组出现了不止一次。在法语原文里是Je t'aime,但信里用的是各种变体,比如mOn amOUr、ie t'adOre、ie t'aime混着来。
如果加密者需要把特定字母按特定顺序塞进文本里,那他会不会在某些固定位置反复使用同一个单词,来确保某个关键字母出现在密文里的特定位置?
这或许是棋盘密码的变体……比他原本想的还要复杂……
中尉数完了,手指从信纸末尾抬起来,抬头看向克劳德。
“六十九个,没错。”
啧……六十九。要么最后多了一个字母,要么……
“等等!不是缺了一个,是多了九个。”
他抓起铅笔,在便签上把那串字母按五个一组重新排开:
VQVEL EGRAN DPROT ECTUR ETLAE TLATO TEPAR LAQRS QLALA GNEMA QTREQ NFRAN CAQSE CAQXA TQOON FQRM
“你们看,如果去掉最后九个字母,前面刚好是六十个,六十是偶数,刚好可以两两分组。”
他飞快地把前六十个字母两两配对:
VQ VE LE GR AN DP RO TE CT UR ET LA ET LA TO TE PA RL AQ RS QL AL AG NE MA QT RE QN FR AN CA QS EC AQ XA
“VQ、VE、LE、GR,你们看!”
“LE!这是法语里的定冠词!GR,grand!大的!PROT,prOteCteUr!保护者!这些拼得出来”
会议室里几个人同时把脑袋凑过来,盯着那排两两分组的字母。
“而且VQVE……这会不会是VIVE?万岁?法国人的文件是不是开头先来一句什么万岁?法兰西万岁?祖国万岁?就和我们的皇帝万岁一样?”
瓦尔特·尼古拉上校猛地从椅子上站起来,立马激动的开口道:
“对!之前截获的一份残缺电文,密码组只翻出来一两个词,头一个就是万岁,但后面接什么我们一直不知道!”
克劳德心中一喜,立马下结论道:
“我知道了!这就是棋盘密码的变体!他们把明文字母转化成5×5棋盘里的坐标(X,Y),然后把X和Y互换位置,再映射回字母表!”
“比如V在普通棋盘里是第5行第1列,坐标就是(5,1)。互换之后变成(1,5),再查表,第1行第5列是E!所以V加密后变成了E!”
“但如果某个字母的X坐标恰好等于Y坐标,比如第3行第3列的字母是N,N的坐标(3,3),互换之后还是(3,3),所以N加密后还是N!”
“V在正常情况下不会出现不变的情况,但如果密钥排序让某些V的X和Y碰巧相等……”
“这就是为什么密文里V出现了这么多次却略显突兀,不像是被替换掉的,正是它的XY碰巧相等!”
“快试!用VIVE、法兰西、拿破仑这些可能作为密钥的词试!”
瓦尔特扑回自己的桌子,翻出密码组之前整理的法国常用词表,哗哗地翻页。
“如果VIVE对应VQVE……V加密后是V,I加密后是Q,V加密后是V,E加密后是E……”
他手指在纸上颤抖着推算:
“V的XY相等……I变成了Q……标准棋盘里I是(2,3),互换应该是(3,2),但密文里是Q……”
就在这时,克劳德突然又发现了一个事情,除开V没有变化之外,P的位置似乎也没变,比如PROT等……
这明显是这个字母原来的位置,这说明P在棋盘中应该处于对角线上,XY是相等的。
“各位……P好像也在对角线上,P的XY坐标是相等的!我们现在开始推算,假设P是(1,1)一直试到(5,5)”
众人对视一眼,的确,P的位置也像是没有打乱的情况……他出现的位置像是原词存在的地方。
如果P是(1,1)的话,也就是密钥词的首位……
小毛奇沉思着,过了一会开口道:“法语有什么P开头的,和民族或者荣耀相关的口号词?”
众人沉默……
克劳德也暂时想不到,他的目光扫过那串已经两两分组的前六十个字母……
GR——grand,PROT——prOteCteUr,FRAN——FranCe,CA——ça……
这些词已经浮出水面了……看来这次发报的这个间谍是个新手,虽然明面上打乱的很厉害,但是一些词根却因为加密不当可以看出端倪。
不过……克劳德看了下旁边的一份文件,里面称呼护国主为PROTECETUR?这是不是拼错了?
“呃……这个……PrOteCteUr……保护者。但正常法语里这个词拼作PrOteCteUr,T后面是E,U,R。这里却是PROTECETUR,多了一个E。”
会议室里安静了一瞬。
“这是拼写错误吗?还是……有什么别的缘由?”
“不,”瓦尔特摇头,“法国人为了区分克伦威尔那位英国护国公,也是为了神化他,专门给戴鲁莱德造了一个新词,PROTECETUR”
克劳德猛的转头看向瓦尔特:“那戴鲁莱德在法国被称为什么?就是这个?他的正式头衔是什么?”
瓦尔特愣了一下,随即反应过来:
“PROTECETUR de la RépUbliqUe……共和国的护国主。”
克劳德抓起铅笔,在棋盘里写下护国主的称号,再刨去重复的字母……
他心算了一下,现在又有个新问题,前面对的上后面又对不上了……
他记得后世有一种密码为了防止词频异常被看出端倪,如果他们通过将一个字母重复填入棋盘,或者让一个词有好几个对应密文来混淆视听……
如果关键词密钥允许重复填入棋盘呢?
也就是密钥是PROTECETUR?!第五位和第七位是E,那E的第二个密码在棋盘的位置岂不是(2,2)?!所以E不变!
刚好密文的开头是VQVE,而正常的原文是万岁VIVE,这其中V不变!E也不变?!
“各位!我知道了!密钥是PROTECTUR!密钥词就是护国主的称号!”
最新网址:www.kenshuzw.la