五千年(敝帚自珍)

主题:【原创】被征服的谜――ENIGMA的故事(四):波兰人的绝地反击(中下) -- 1001n

共:💬32 🌺46
全看分页树展 · 主题 跟帖
家园 不用加密更好是这个原因

德国人当时是这样使用enigma的,有一个每日密钥,这个密钥印在密码本里,每天一个(战前是每季度一个),当天内所有同一系统所属的enigma机全部使用相同的当日密钥。德国人也知道到同样的密钥用来加密越多电讯越容易被破,所以这个每日密钥不用来加密电讯本身,而是让操作员自选给每篇电文加密的密钥。这个“每文密钥”用每日密钥加密,传给收信方。收信方用当天的每日密钥解这头6个字母得出每文密钥,再用这每文密钥解读电文。所以每日密钥只是一个现代密码学里所说的key encryption key。

回到原问题。Rejewski可以从某些密文里解出该文所用的“每文密钥”,这里面有个运气问题,看原文是否“weak”。但他没有把握解出所有的每文密钥。同时从密文他解不出每日密钥,因为密文根本不是用每日密钥加密的,也就是说从密文里他根本得不到关于每日密码的信息。但是这头6个字母帮了他的忙,为他提供了用每日密钥加密的密文。而他又有原文(就是每文密钥),这就构成了保密学所说的known plain text attack。这种攻击可以帮助破译者了解加密机制。详细步骤就不说了,只要明白这一点就够了:对于Rejewski来说,这6个字母可以帮助他破解这个每日密钥。而一旦他获得了每日密钥,再解读所有当天电文就是小菜一碟了。

他所说的“还不如发明文”有开玩笑的意思。用明文的确他就没有办法解每日密钥,可是如果每文密钥就这么公开,他又何必去解什么每日密钥呢?我不太明白的是为什么每文密钥要发两遍。任何规律都是密码大敌,这种重复更是要命,德国人应该不会想不到。我可以想出的理由只有为了防止错误,如果只发一遍,错了都不一定知道。就像现在注册都要输两遍口令一样。不知真实情况是否如此。

在非对称加密发明之前,如何传送密钥一直是大问题。用key encryption key来加密密钥也还可以算是当时最好的办法了吧。不过实际使用中还有不少问题,第一是重复每日密钥,第二是很多操作员选了有规律的密钥,比如AAA,ZZZ,或者键盘最左边的三个键,等等,给解密方帮了不少忙。

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河