主题:【原创】被征服的谜――ENIGMA的故事(四):波兰人的绝地反击(中下) -- 1001n
德国人当时是这样使用enigma的,有一个每日密钥,这个密钥印在密码本里,每天一个(战前是每季度一个),当天内所有同一系统所属的enigma机全部使用相同的当日密钥。德国人也知道到同样的密钥用来加密越多电讯越容易被破,所以这个每日密钥不用来加密电讯本身,而是让操作员自选给每篇电文加密的密钥。这个“每文密钥”用每日密钥加密,传给收信方。收信方用当天的每日密钥解这头6个字母得出每文密钥,再用这每文密钥解读电文。所以每日密钥只是一个现代密码学里所说的key encryption key。
回到原问题。Rejewski可以从某些密文里解出该文所用的“每文密钥”,这里面有个运气问题,看原文是否“weak”。但他没有把握解出所有的每文密钥。同时从密文他解不出每日密钥,因为密文根本不是用每日密钥加密的,也就是说从密文里他根本得不到关于每日密码的信息。但是这头6个字母帮了他的忙,为他提供了用每日密钥加密的密文。而他又有原文(就是每文密钥),这就构成了保密学所说的known plain text attack。这种攻击可以帮助破译者了解加密机制。详细步骤就不说了,只要明白这一点就够了:对于Rejewski来说,这6个字母可以帮助他破解这个每日密钥。而一旦他获得了每日密钥,再解读所有当天电文就是小菜一碟了。
他所说的“还不如发明文”有开玩笑的意思。用明文的确他就没有办法解每日密钥,可是如果每文密钥就这么公开,他又何必去解什么每日密钥呢?我不太明白的是为什么每文密钥要发两遍。任何规律都是密码大敌,这种重复更是要命,德国人应该不会想不到。我可以想出的理由只有为了防止错误,如果只发一遍,错了都不一定知道。就像现在注册都要输两遍口令一样。不知真实情况是否如此。
在非对称加密发明之前,如何传送密钥一直是大问题。用key encryption key来加密密钥也还可以算是当时最好的办法了吧。不过实际使用中还有不少问题,第一是重复每日密钥,第二是很多操作员选了有规律的密钥,比如AAA,ZZZ,或者键盘最左边的三个键,等等,给解密方帮了不少忙。
- 相关回复 上下关系8
压缩 2 层
😄我看不懂的都是高级的 非 字22 2005-05-02 01:14:48
说的很清楚:) 1001n 字1442 2005-05-01 18:04:06
或许和积累经验有关 lionel 字140 2005-05-02 14:18:40
不用加密更好是这个原因
不知道我是看懂了没有的,乱说几句 暮星 字198 2006-01-17 21:10:23
说的很清楚啊 非 字40 2005-05-03 03:57:14
惭愧啊。。。 韩亚梓 字355 2005-05-02 08:19:26
😉密钥加密是多此一举,多提供了一个方程式 1 landlord 字156 2005-05-02 07:01:59