打字猴:1.701742855e+09
1701742855
1701742856 推理的迷宫:悖论、谜题及知识的脆弱性 [:1701739748]
1701742857 爱伦·坡的“iiiii……”密码
1701742858
1701742859 埃德加·艾伦·坡是一个业余密码学家,他曾经在杂志上发起过一场密码竞赛,请读者提供需要解密的密码。在一篇关于密码学的跟踪报道中,他提到一种可能性:密码中可能出现这样一串字母:iiiii……。我们知道,在英语里,任何单词都不会包括这么多的重复字母,我们如何进行解码呢?
1701742860
1701742861 出现连续的10个i是有可能的。当然,如果采用简单的密码,在全文中用一个字母替换另一个字母,不会遇到这种情况。我们甚至可能遇到这种情况:整个信息是由同一个字母的不断重复构成的。
1701742862
1701742863 有一种可能是,密码的含义是完全不确定的,字母i可以代表26个字母中的任何一个,加密者在密文的基础上自由地设计原文。另一种可能是,在这段密码采用的加密方法中,原文中的每个字母应用了不同的字母替换规则。
1701742864
1701742865 在这样一段密码中,意义与密文无关。为了说明这一点,我们设想这个场景:某人发现了一部密码手稿,里面全都是i,除此以外什么都没有。此人宣称,这些密文破译之后就是《葛底斯堡宣言》的内容。这种说法是胡说八道。我们可以说,这些密文破译之后是一切我们指定的东西。如果这些密文有意义的话,其意义存在于密码系统中,或者存在于写出原文的那个人的头脑中。由于密文无意义可言,它是不可破译的。
1701742866
1701742867 大多数常见的“代码”其实是密码。莫尔斯“代码”是一种密码;许多重要的军事“代码”也是密码。在真正的代码中,符号表示观念。在一个红圈里画一支香烟,在香烟上画一条斜杠,这个图案表示“禁止吸烟”——这是代码的一个例子。在机场等公共场合,可以见到数十种其他的国际通用符号,它们都是代码。代码为意义赋予了单独的符号。
1701742868
1701742869 用代码很难传达信息。代码的符号只能传达那些被代码设计者考虑到的常见的词和信息。利用代码通讯,一旦遇到未曾预料的情况,就会发现代码是笨重的、无用的。因此,军事、谍报和外交等方面的重要“代码”采用密码。
1701742870
1701742871 在密码中,符号代表字母。在使用密码时,你可以先用普通英语(或任何其他语言)把你的信息写出来,然后转化成符号。信息的接收者可以破译这些符号,把密文还原成原文,与最初的形式一模一样。
1701742872
1701742873 密码把一个字母(或其他造字符号)替换成另一个。有些替换规则很简单,有些则比较复杂。为了表示字母之间的替换关系,可以把字母表按照通常的顺序列出来,然后在这些字母下面标出要替换的字母。(如果密码用到标点符号和数字,也要列出来,标出对应的符号。)下表是一个简单的替换方案:
1701742874
1701742875
1701742876
1701742877
1701742878 A变成B、B变成C、C变成D,依此类推。在字母表中,每一个字母被编码成下一个字母,最后一个字母被编码成第一个字母。“MESSAGE”这个词转化为“NFTTBHF”。密码的接收者很容易利用逆过程还原。
1701742879
1701742880 在这种加密方案中,一个字母始终用某个其他字母替换。这种密码被称为“恺撒密码”,因罗马诸皇帝使用过这种密码而得名。奥古斯都·恺撒使用上表的密码,朱利乌斯·恺撒使用一种相似的密码,把原文的A替换成D、B替换成E,等等。
1701742881
1701742882 恺撒密码有26种。在上表中,下面那行字母可以串两个位置,也可以串三个位置,等等(第26种恺撒密码就是以每个字母替代它本身)。每种恺撒密码可以用一个数字或字母指明。奥古斯都·恺撒使用的密码被称为“密码B”,朱利乌斯·恺撒使用的密码被称为“密码D”。
1701742883
1701742884 恺撒密码很容易破译。例如,在一种恺撒密码中,E可能总被替换成U。由于在许多语言中E都是最常见的字母,在密文中,U很可能成为最常见的字母。这样秘密就完全暴露了。破译者可以识别出最常见的几个字母,然后利用这些字母识别出常见的简单词,而后迅速地解破整个信息。
1701742885
1701742886 从恺撒的时代起,密码学取得了长足的进步。现在,任何国家都不会使用像恺撒密码那样简单的密码了。然而,以恺撒密码为基础可以设计出不可破解的密码,现在的超级大国使用的就是这种改造过的密码。
1701742887
1701742888 关键在于,应该对于每一个字母应用不同的恺撒密码。对于第一个字母,应用一种恺撒密码;对于第二个字母,应用另一种;对于第三个字母,再换一种,如此等等。
1701742889
1701742890 一方面,这种方案使得密码的复杂性剧增。你需要一个“密钥”告诉你,对于每一个字母应用的是哪种恺撒密码。密钥的长度至少和信息一样长。这种方案的优点是密码非常安全。密文中的任何一个字母可以代表任何字母。应用一种确定的密钥,可以把《葛底斯堡宣言》加密成一连串的“i”;换一种密钥,又可以加密成《格利佛游记》的一部分;再换一种密钥,会得到我们期望的“随机”字母组合(实际上这种情况是最有可能的)。
1701742891
1701742892 这种密码即“一次性便笺密码”。密钥被写在一个便笺簿上,每一页上写一个密钥,只用一次,用完销毁。例如,每一页上的密钥针对信息中的一个字母,指明对这个字母应用哪一种恺撒密码,对信息中的每个字母连续应用便笺簿上的密钥。如果用字母指明恺撒密码(如上文介绍的),那么整个密钥看起来就像一长串随机字母。
1701742893
1701742894 对于“MESSAGE”这个单词,用恺撒密码“C”、“R”、“F”、“B”、“Z”、“F”和“D”进行加密。在恺撒密码C中,M替换成O;在恺撒密码R中,情况是这样:
1701742895
1701742896
1701742897
1701742898
1701742899 E替换成V。最终,“MESSAGE”变成“OVXTZLH”。
1701742900
1701742901 与“NFTTBHF”(用密码B加密的结果)相比,“OVXTZLH”要好得多。如果密码只采用单一的替换方案,会留下线索,让破译者很容易入手,解开任意长度的密文。通过对密文的“熵”进行分析,我们可以识别出原文是哪种语言。从“NFTTBHF”可以看出,原文中间有两个相同字母,而且第二个字母和最后一个字母相同。即使仅从这一个单词出发,你也可以(正确地)猜出,F代表英语中最常见的单词E。然而,在“OVXTZLH”这段密文中,没有任何线索。原文中连续的两个S变成了两个不同的字母。由于对每个字母都应用了不同的、随机选择的替代方案,显然,“OVXTZLH”完全可能代表任何由7个字母组成的单词。由于一次性便笺密码系统具备彻底的不确定性,在没掌握密钥的情悦下,任何破译企图都注定不可能得逞。
1701742902
1701742903 一次性便笺密码系统的问题在于,如何向密文发送者和接收者提供密钥。密钥不能和密码一起发送。如果一起发送,任何截获信息的人都可以解开密码。鲁道夫·亚伯(Rudolf Abel)是苏联间谍,1957年在纽约被捕。
1701742904
[ 上一页 ]  [ :1.701742855e+09 ]  [ 下一页 ]