西西河

主题:【原创】密码传奇(一):7、Painvin对这两份电文的分析只能就此止步了 -- 1001n

共:💬29 🌺42 新:
全看分页树展 · 主题
家园 【原创】密码传奇(一):7、Painvin对这两份电文的分析只能就此止步了

呵呵,前几天的篇外历史附注估计把大家的脑袋都给活活看大了。唉,想完全理解一段历史,真是难啊……为了避免把密码故事写成第一次世界大战西线战争史(我倒¥#%),现在开始,继续讲述本章密码故事最压轴的部分。

同时,以前每篇的长度实在是太……长了,非有极强定力,真是无法一口气读完。从现在开始,二话不说,该截就截,力争让兄弟们看完一篇以后,不会再次发出“看的辛苦死了”这样的评价……呵呵,说归说,估计我这水准,还是得把大伙累个半死――咋办ni?尽量搞生动一点吧。。。

在这里,再次对等待故事结尾的众多兄弟致以诚挚的谢意,和由衷的抱歉,让大家久等了!

--------------------------------------------------------------------------

历经数万字的铺垫,我们的主人公极为牛叉的破解故事终于该闪亮登场了……

现在的时间是1918年6月1日,正是西线德军连续五次战役中的第三次战役,埃纳河战役进行到第六天的时候。

在这一天,鲁登道夫又指挥15个德军师发动了进攻。这一回,德军的前线锋芒已经越过法军阵地,直扑马恩河――现在他们离巴黎的距离,最近的地方只有不到50公里了。

还在这一天,德军升级了他们的战地密码;如前所述,ADFGX被ADFGVX所取代。德军这么做原因并非是得知自己的密码已经被破,而不过是一个希望更加保险的手段而已。

而很快我们就能看到,德军对ADFGVX实在是太自信了,以至于犯下了根本无可原谅的错误。而最后,这个错误完全毁了他们自己。

协约国这边也忙的一塌糊涂。不管军事行动了,咱们单说这破译密码的部分吧。

29岁的陆军中尉Georges Painvin从当天17时,也就是德军发起进攻后十个小时后,开始对截收到的德军密电进行密码分析。回想4月1日他的分析过程,我们可以知道:他现在急需如4月1日那两份报头和报尾相同的电报。没有这个,他的分析就无法进行――连天书般的密文都无法分段,还谈什么破解?

(注:这里看不明白的兄弟,恐怕得回头复习一下前文,也就是密码传奇(一):5、重压之下的超一流天才破解链接出处对Painvin破解ADFGX的描述了,呵呵。不愿意看那些让人痛苦的分析过程而又要理解本篇的内容,难度确实比较大。为了照顾那些跟我一样实在不想再痛苦一次的兄弟,这里也做个提示吧:

1、找出长度相同、内容非常近似的报文;

2、对比两份电文的报头,方法是将电文报头完整列出,第一行是第一份电文,第二行是第二份;要求完全对齐;

3、找出上下两行中完全相同的字母组,并以此为指标,一段段将密文分段;

4、密文段的数量就是移位表的密钥数字长度,也就是移位表的宽度;

5、长的密文段和短的密文段,分别对应移位表的长列和短列;

6、因为移位表是从左至右书写的,所以,长密文段必然在表的左边,短密文段必然在右边;

7、每个密文段都有编号,那么对于两份密电来讲,同一编号对应的密文段,则会出现三种情况:

a:同长;

b:同短;

c:有长有短。

8、以这个标准,将密文段的编号归入三个集合;

9、以上是对报头的分析结果。对报尾进行步骤2-8的完全相同的操作,又得到三个集合;

10、将分析报头得到的三个集合和分析报尾得到的三个集合取交集,得到最多九个集合(上文中,有4个是空集,只有5个非空的集合用的上);

11、根据以上9个集合的本来涵义,归纳出密文段编号的次序;

12、借助这个次序,将密文段一个个按顺序纵向列出;虽然很多还不能确定先后次序的密文段,但是所有密文段的大致次序都被确定了;

13、至此,移位加密被初步破解完毕;

14、使用频率分析的方法,在所有密文中寻找特定的字母组合,以确定被替换掉的原始明文字母;

15、构造原始方表,试验性填入已猜解出的字母;

16、对方表的横坐标、纵坐标分开进行分析,根据字母频率变化,确定某个编号所指代的密文段究竟是奇数列还是偶数列;

17、根据步骤12得出的结果,联系步骤16得出的结果,最终可以完全确定每个列(密文段)的具体位置。也就是,换位表被完全破解;

18、根据以上结果,对方表进行猜测性攻击;

19、完全破解方表,得出明文。

简单这么概括了一遍,感觉跟前几天写这个的时候完全一样,――还是那么累!!本注总算注解完了,唉,一个注都那么长。。。)

接着说6月1日这天Painvin对ADFGVX的破解吧。

莫非冥冥之中自有定数?就象1001n生生造出的一句俗语所说的那样,幸福的破解都是相似的,倒霉的德军各有各的倒霉――对截获的密电进行仔细端详以后,Painvin的注意力很快就集中到其中三份电文上。这三份电文有个共同特点:

都是GCI电台发出的;

电文的时间组都是00:05。

其中有两份电文,连长度都一样,是106个字母。这两份电文一份是发给DAX电台的,另一份则发给DAK电台。

老办法,Painvin把密文并列着抄下来,然后上下对比查找相同的密文段。根据对应密文呈现出有规律的相同部分,他很快就给这两份电文分好了段:一共是21组密文段。

这也就意味着:德军在ADFGVX加密的第二步,也就是移位变换加密时,使用的密钥,其长度应该是21。换言之,德军所用的移位表,应该是21行宽。

用106/21,结果是商5余1。

这个结果就又告诉Painvin:

21个密文段中,应该有(余数)个密文段比其它的密文段长;余数是1,所以,有1个密文段比其它的密文段长;

这个长密文段的长度应该是(商+1)=(5+1)=6。

而其余的20个密文段,长度应该是商本身,也就是5。

用刚才分好的段进行验证,完全无误:密文被分成了20个短密文段,和1个长密文段;短密文段的长度是5,长密文段的长度是6。作为一个休闲活动,我们不妨再把它加一下:

(短密文段个数*长度)+(长密文段*长度)=(20*5)+(1*6)=100+6=106,正好跟电文长度完全相同。看,科学或者数学,是多么地有意思啊~~

――简直是废话,要是不相同,那肯定是哪步算错了……

这个简单的算式告诉我们什么呢?

德军的移位表,长度21,高度为6;画下来也就是这个样子的:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ←-密钥长度为21

X X X X X X X X X X X X X X X X X X X X X ←-┐

X X X X X X X X X X X X X X X X X X X X X │

X X X X X X X X X X X X X X X X X X X X X 短列(短密文段)长度为5

X X X X X X X X X X X X X X X X X X X X X │

X X X X X X X X X X X X X X X X X X X X X ←-┙

X

┕---- 长列(长密文段)长度为6

其中,数字1代表的这一列,长度为6;其余一律为5。

到现在为止,Painvin干的不错。但是,在这两份报文上,这个不错也就到此为止了――它们实在是太像了,以至于,连差别都少的可怜;这个差别少到一定程度,Painvin就没法搞了――想想也是,如果他得到两份完全一样的密电,那不跟得到一份密电一样么?

而仅仅拿着一份密电,怎么可能去破译?!

说到这里,我对holmers兄在英雄版发的帖子开书---香烟解码法链接出处里的部分内容实在无法苟同。

帖子里说:

军校严禁学生谈恋爱,他们有辄儿,把加密的情书公开的贴在学校报栏上,真正的“我的心事只有你能懂!”

内容有点长,我还是不继续引用了吧。大致给归纳一下,意思基本是这样的:

某军事院校的学生把情书写成密文,张贴出来;老教授也就是密码权威,看着看着就郁闷的要命,因为加密实在太简单了,根本不符合他的严谨风格;他已经看出,明文都是情书来了。

――这一段,我实在是难以理解:除非,这六份情书是用同一密码进行加密的,这样才有可能进行密码分析。而情书恐怕是内容各异,比较和分析都得用不少时间,怎么可能老教授在学校报栏站着看了一会就看懂了,就怒了呢?也且不说这个,或许老教授的确是真正的大牛,能够瞬间破解密码,并看懂原文吧。

――而文后接着就说:

老头儿是一封接着一封的批判。前五封一无是处,每封五分钟,骂完了事。倒是最后一封颇对老头子的脾气,结结实实的批了半个钟头。最后说还是这封多少有些气象!

――如此说来,他们用的完全不是同一密码加密的;不说前五份,最后一份起码就是使用了单独的加密方式;而这,也就是密码学概念中的“一文一密”。

而“一文一密”,怎么可能被破译?毫无道理啊!

我举个例子吧:我把“密码故事其实很精彩”用拼音连续写下来,某种意义上也算是进行了密码编码:

密码故事很精彩

mimagushihenjingcai

ok,有人说,看到mimagushihenjingcai,我读都能读出来,这样不也是一文一密么?不一样能破解么?明文就是“密码故事其实很精彩”啊!

可如果我说,我这不是用拼音加密的呢?为了稍微说明白这个道理,我把密文重新整理一下:

原来的密文 mimagushihenjingcai

分段后的密文 mim agu sh ihe nj ingc ai

内容完全相同,之所以分开,只是为了下面讲述方便:)

根据现在刚刚拟定的1001n新密本,mim可以指代“我”,agu可以指代“不”,sh指代“相信”,ihe指代“这”,nj指代“个”,ingc指代“故”,ai指代“事”――可以不?从密码规则上讲,当然完全可以。于是,密文和对应的明文实际上就应该是

mim agu sh ihe nj ingc ai

我 不 相信 这 个 故 事

――跟“密码故事其实很精彩”还一样么?

如果我再次改变1001n密本,重新指定这些字母组的含义,那么明文又该是什么呢?对于只看到密文的人,他知道我在说什么么?

这件事告诉我们一个道理,硬要从一份密文进行解密,实际是可以做到的;只是这样做确实毫无意义――因为同样一份密文,可以脱出无限多种可能的明文!

而得到“无限多种的”明文,和得不到明文,难道不是一回事么?换言之,你还是不知道明文到底在说什么啊……如果各位还记得我以前用新华字典映射红楼梦的例子的话,大概就更明白一些了:

在没有任何其它信息可以利用的前提下,单一的密文,理论上讲是无解的!

――写下以上这些文字,非对holmers老兄有所不敬;只是,这样的故事,听听而已,千万不要太当真――说到底,密码不是巫术,不是拍脑瓜的东西;密码编码也好,密码分析也好,是建立在严格的科学基础上的――即便是看似随意性最大的猜测性明文攻击,那也是根据频率分析等等的结果进行的,绝对不是靠很感性的“我认为它大概就应该这样吧”来进行的。

而这,实际上又是个“该怎么样认识科学”的问题。一直以来,科学版上关于“科学是什么”,“怎么样认识科学”都有了足够深刻的讨论。我一直关注这些声音,因为的的确确,如何认识科学,是我们人类的一个非常基础的问题。有篇文摘提到了“货机崇拜式科学”,文中观点之一针见血,我以为的确扎到了痛处――对于暂时无法认识的现象,人类容易出现盲目的信仰;而这些信仰,是不是能真正经受实践的检验呢?

――科学的本质是“证伪”的。不爱吱声此说,我举双手赞同!

又扯远了――我这是咋咧?唉。。。血气太盛,非福啊非福……

-------------------------------------------------------------------------------

喘口气儿,接着说Painvin的破解吧。

上面提到,他对GCI电台发给DAX和DAK电台的密电进行了分析,初步得知了当天的移位表的轮廓。但是由于这两份密电实在太相似了,相似到了缺乏足够进行下一步分析的细节,他对这两份电文的分析只能就此止步了。

不过,刚才不是提到,GCI电台在00:05分不是发了三份电文么?实际上,这第三份电文跟刚才的两份也很相似,它是GCI电台发给DTD电台的。如果说有什么大的区别,那就是这份电文的长度不再是106,而是108了;或者说,这份电文里有108个字母。

除此之外,内容也是高度相似。

――如果把你换在Painvin当时的位置上,你会觉得这106和108有什么问题么?

反正我是没感觉出什么问题来……而实践再次证明,这Painvin绝对不是浪得虚名,他马上就联想到了一个问题。

什么问题呢?

元宝推荐:不爱吱声,

本帖一共被 2 帖 引用 (帖内工具实现)
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河