前言:
这个帖子的构思是从今年十一开始的,当时打算如果能在十一内做完最好,如果不能就在十一做个提纲,寒假再做。十一的结果是发现这个构思的规模之大,完全没有可能在7天内完成,而提纲的制作中,我也发现涉及内容中有大量我闻所未闻的东西,密码帖的计划只好搁浅。而在最近,又接了8Y的暗之系列,同样计划在寒假制作,更是显得时间仓促,只好在寒假前争取将密码帖完成,以争取能够在寒假中全力打造暗之。
正文:
密码学(Cryptology,来源于希腊语kryptos和graphein,即隐藏和书写的意思)这门科学,或者说这门艺术,通常被分为两个部分,密码学(Cryptography)的任务是构建更为隐秘而且有效的密码,或者说加密方式;而与之相对应,密码分析学(Crypanalysis)则是研究已有的加密法的弱点,在没有密钥的情况下将密文还原成为明文。这两种科学相互依靠而不能分割,密码学家(Cryptologist)需要研习密码学来掌握加密方式,以便更好地解密;同样需要了解密码分析学,以判定自己密码的安全性高低。
密码学产生的根本原因在于人们想要传递一些只有我们允许的接受者才能接受并理解的信息,毫无疑问的,这最早出现在军事领域。军事指挥官们希望自己的指令可以在保密的情况下送抵前线,而这种重要军事命令泄露的后果又是不可想象的严重,因此他们编写了一套自己人才可以接受或阅读的语言,它们以特定的规则编制,将真实信息隐藏。被隐藏的真实信息称为明文(Plaintext),明文通过加密法(Cipher)变为密文(Ciphertext),这个过程被称为加密(Encryption),通过一个密钥(Key)控制。密文在阅读时需要解密(Decryption),同样需要密钥,这个过程由密码员(Cryptographer)完成。但是密码的传递并非绝对安全,可能有未得到允许的人员得到密文,并且凭借他们的耐心和智慧(我们通常假定他们有足够的时间和智慧),在没有密钥的情况下得到明文,这种方法称为破解(Break)。通常使用的加密方法有编码法(Code)和加密法(Cipher),编码法是指用字,短语和数字来替代明文,生成的密文称为码文(Codetext),编码法不需要密钥或是算法,但是需要一个编码簿(Codebook),编码簿内是所有明文与密文的对照表;而加密法则是使用算法和密钥。另外一种较常用的方法是夹带加密法(Steganography),顾名思义,它是将密文以隐藏的方式传递的,比如图画或是其它消息中,或是使用隐形墨水,在计算机能够进行图象和其它信息的处理之后,这种方法更是有了极大的发展空间。这种方法有着一个极好的例子,即8Y的亡者岛序章。
我们现在来考虑下密码的破解,举一个例子来帮助理解,比如我和竹子在用密码通信,而8Y试图窃取并破译通信内容。第一种情况是8Y搞到了部分通信内容,但都是密文,他只能从密文之中获得信息来帮助他把密文解密为明文,这称为密文(Ciphertext-only)攻击,这显然比较困难,他需要大量的密文来总结规律,从而发现其加密方式。顺带一提,吧里很多人出题都是这种方式,即密文攻击,所给出的密文又非常少,最终无人问津石沉大海,(去试着挖坟就知道这样的东西不计其数)实在是可惜了这些密码创造时的创意。我和恶魔D讨论过这个问题,觉得作为一种智力游戏,吧内的密码并非是为了不被破解,而是为了被人破解创造,出得太难,未免有些无趣。恶魔D当时拿出了推门的一个密码题目(http://www.tuili.com/website/Article_Show.asp?ArticleID=1519),看了答案(http://www.tuili.com/website/Article_Show.asp?ArticleID=1520)后觉得,若是哪位能解的出来,我定是五体投地,惊为天人。(成语好象用错了!?)言归正传,第二种情况是8Y知道了部分密文对应的明文,比如他发现我和竹子每次结束谈话时都要说“YBv-YBv”,那么他自然有着充足的理由认为这个词语对应的明文为“Bye-Bye”(字母倒序)。这当然有助于他对于密文的破解,这种情况称为已知明文(Known-plaintext)攻击。这种情况下,破译当然更为容易。这之外还有第三种情况,即选取明文(Chosen-plaintext)攻击,在这种情况下,8Y不但可以知道密文对应的明文,更有选择密文的机会,比如他发了亡者的最新一章,那么这个内容几乎一定会出现在我们的通信中,这自然对于破解更为有利,是最为简单的一种情况。我和恶魔D玩过的密码问答游戏,实际正是属于这种情况,互相提出的都已经是经过调查,确知答案的问题。
这个帖子的构思是从今年十一开始的,当时打算如果能在十一内做完最好,如果不能就在十一做个提纲,寒假再做。十一的结果是发现这个构思的规模之大,完全没有可能在7天内完成,而提纲的制作中,我也发现涉及内容中有大量我闻所未闻的东西,密码帖的计划只好搁浅。而在最近,又接了8Y的暗之系列,同样计划在寒假制作,更是显得时间仓促,只好在寒假前争取将密码帖完成,以争取能够在寒假中全力打造暗之。
正文:
密码学(Cryptology,来源于希腊语kryptos和graphein,即隐藏和书写的意思)这门科学,或者说这门艺术,通常被分为两个部分,密码学(Cryptography)的任务是构建更为隐秘而且有效的密码,或者说加密方式;而与之相对应,密码分析学(Crypanalysis)则是研究已有的加密法的弱点,在没有密钥的情况下将密文还原成为明文。这两种科学相互依靠而不能分割,密码学家(Cryptologist)需要研习密码学来掌握加密方式,以便更好地解密;同样需要了解密码分析学,以判定自己密码的安全性高低。
密码学产生的根本原因在于人们想要传递一些只有我们允许的接受者才能接受并理解的信息,毫无疑问的,这最早出现在军事领域。军事指挥官们希望自己的指令可以在保密的情况下送抵前线,而这种重要军事命令泄露的后果又是不可想象的严重,因此他们编写了一套自己人才可以接受或阅读的语言,它们以特定的规则编制,将真实信息隐藏。被隐藏的真实信息称为明文(Plaintext),明文通过加密法(Cipher)变为密文(Ciphertext),这个过程被称为加密(Encryption),通过一个密钥(Key)控制。密文在阅读时需要解密(Decryption),同样需要密钥,这个过程由密码员(Cryptographer)完成。但是密码的传递并非绝对安全,可能有未得到允许的人员得到密文,并且凭借他们的耐心和智慧(我们通常假定他们有足够的时间和智慧),在没有密钥的情况下得到明文,这种方法称为破解(Break)。通常使用的加密方法有编码法(Code)和加密法(Cipher),编码法是指用字,短语和数字来替代明文,生成的密文称为码文(Codetext),编码法不需要密钥或是算法,但是需要一个编码簿(Codebook),编码簿内是所有明文与密文的对照表;而加密法则是使用算法和密钥。另外一种较常用的方法是夹带加密法(Steganography),顾名思义,它是将密文以隐藏的方式传递的,比如图画或是其它消息中,或是使用隐形墨水,在计算机能够进行图象和其它信息的处理之后,这种方法更是有了极大的发展空间。这种方法有着一个极好的例子,即8Y的亡者岛序章。
我们现在来考虑下密码的破解,举一个例子来帮助理解,比如我和竹子在用密码通信,而8Y试图窃取并破译通信内容。第一种情况是8Y搞到了部分通信内容,但都是密文,他只能从密文之中获得信息来帮助他把密文解密为明文,这称为密文(Ciphertext-only)攻击,这显然比较困难,他需要大量的密文来总结规律,从而发现其加密方式。顺带一提,吧里很多人出题都是这种方式,即密文攻击,所给出的密文又非常少,最终无人问津石沉大海,(去试着挖坟就知道这样的东西不计其数)实在是可惜了这些密码创造时的创意。我和恶魔D讨论过这个问题,觉得作为一种智力游戏,吧内的密码并非是为了不被破解,而是为了被人破解创造,出得太难,未免有些无趣。恶魔D当时拿出了推门的一个密码题目(http://www.tuili.com/website/Article_Show.asp?ArticleID=1519),看了答案(http://www.tuili.com/website/Article_Show.asp?ArticleID=1520)后觉得,若是哪位能解的出来,我定是五体投地,惊为天人。(成语好象用错了!?)言归正传,第二种情况是8Y知道了部分密文对应的明文,比如他发现我和竹子每次结束谈话时都要说“YBv-YBv”,那么他自然有着充足的理由认为这个词语对应的明文为“Bye-Bye”(字母倒序)。这当然有助于他对于密文的破解,这种情况称为已知明文(Known-plaintext)攻击。这种情况下,破译当然更为容易。这之外还有第三种情况,即选取明文(Chosen-plaintext)攻击,在这种情况下,8Y不但可以知道密文对应的明文,更有选择密文的机会,比如他发了亡者的最新一章,那么这个内容几乎一定会出现在我们的通信中,这自然对于破解更为有利,是最为简单的一种情况。我和恶魔D玩过的密码问答游戏,实际正是属于这种情况,互相提出的都已经是经过调查,确知答案的问题。