藏在密码里的爱情

来源:蝌蚪五线谱发布时间:2017-11-17

  〖2017年“十佳新锐科普创客大赛”参赛作品,版权归大赛主办方所有,任何媒体、网站或个人不得转载!违者追究相应法律责任!〗

  你见过什么样的爱情,热烈,冲动,激情澎湃。亦或则,婉约,甜蜜,一切尽在不言中。情感总是相似的,但是故事总有各自的不同,恰好我这里有一个特殊的爱情故事想说给你听:我爱你,一直都藏在心底,藏在密码里,揭开谜底,需要的是两个人的默契。

  这个故事发生在大学校园里,一个害羞的男孩中终于鼓起勇气向自己心爱的女孩告白。“我爱你”直白的把心底话说出来的男孩忐忑的等待着回复,女孩红着脸跑开,本来沮丧的男孩却收到了两条女孩发的短信,内容却让人摸不着头脑:

  “ ***--/*----/----*/****-/****-/

  *----/---**/*----/****-/*----”

  “我把秘密藏在5个匣子里,打开了就告诉你”

  长久的相处让男孩知道,她最喜欢的就是那些看似毫无逻辑、莫名其妙的数字图画,实际上思维缜密的密码学。

  密码学中正常的消息被称为明文,用某种方法伪装消息来隐藏它的内容的过程称为加密,加了密的消息就是密文,把密文转变成为明文的过程称为解密。女孩一种很喜欢加密和解密过程中的思维交锋,很显然,这次的密文就是女孩对他的考验了,也许期待已久的答案就在这段密码里,并且被五层加密。

  迫不及待的将密文抄录在纸上,开始思考如何解开密码,男孩曾不止一次的看过女孩在摆弄这些字符,对于这些字符还是比较熟悉的,显然第一层加密就是方式就是摩尔斯电码(Morse code):通过“*”“-”的不同的排列顺序来表达不同的英文字母、数字和标点符号。而具体答案都可以在摩斯电码表中找到:

  对照着电码表男孩很轻松的将一长串字符转换成了10个数字,得到了第二层的密文:3194418141,虽然这些数字还是让人摸不着头脑,但是感觉上已经开始走上正轨了,不是么?

  接下来要做的就是找出这10个数字的规律了,男孩仔细的翻看着,思考着!为什么一定要10个数字,10是有特殊的含义么?这么长的数字里好像4和1的出现频率格外的高,这个条件可以利用上么?

  难道是每个数代表一个字母,而加密的方式就是对应26字母表?不对,如果是一个数对应一个字母,最大的数只有9,26个字母只能出来9个。如果是两个数一组,每组对应一个字母,最大的数有94,这又远远超出了26个字母的范围,看起来这个方法并不适合用在这里。

  男孩又想到了,是不是会有电影里的那样经常看到的桥段,勇敢又机智的主角,拿着一长串毫无意义的数字苦恼,忽然灵光一闪,翻出一本厚书,将第一个数字对应页码数,第二个数字对应行数,第三个数字对应那一行的某个词,数字变成了一串有特殊意义的密语。

  那这样的话,就应该划分为(319/441/8141)或(3194/418/141), 3个数一组对应哪一页哪一行哪一个字,密文的开头或者结尾4位数是提示我应该去找那一本书。8141和3194应该就是书的编号了。男孩兴冲冲的跑进图书馆,一刻钟后又沮丧的走出来。图书馆中没有8141这本书,而3194序号的数是一本美术指南,并且418和141如果代表页数也应该是第四页在第一页的后面,这里的顺序有问题,所以这个方法行不通。

  男孩开始考虑新的可能,是不是涉及到二进制和十进制之间的转换,再通过ASCII码或则汉字内码(电脑编码系统中的专业概念)来加密的呢?但是没有接触过类似的计算机知识的人肯定无从下手,女孩好像没有接触过这些概念吧?过于偏僻的知识往往会造成密文的解密难度大大提高,就好像二战中,盟军的电报通讯时使用印第安纳瓦约土著语言作为密码,使用这种密码学和语言学结合做出的二次加密,让纳瓦约密码成为历史上从未被破译的密码。

  想到这里他男孩使劲摇了摇头,遏制自己发散的思维。既然女孩应该不会使用这种生僻的知识来加密,那又会是什么呢?他想到她是那么的热爱生活,所用来加密的参考很有可能是我们生活中常见的东西吧?我们生活中经常接触的东西——就像手机,电脑。对啊,手机!她的手机键盘是拼音九键输入法,可不就是26个字母和数字共存,利用这个来实现数字和字母的转化,真是聪明!男孩脸上泛起笑容,脑海中想到是女孩狡黠微笑的模样。

  男孩尝试着这样来破译,接下来的就是数字排序问题:

  对应密文:3 1 /9 4 /4 1 /8 1 /4 1 /

  对应明文: D  / Z  / G  / T  / G  /

  现在男孩得到了新一层的密文D /Z /G /T /G /。这一层密文都是字母,而世界上最为古老的对称加密体制——凯撒密码,就是通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换为密文,这个固定的数目就是凯撒密码加密和解密的密钥。

  很自然的,男孩想到了这种著名的加密方式,凯撒密码的解密在没有密钥的情况下,只有一种一种的去尝试,当向后偏移1位的时候,明文可以解为:E/A/H/U/H。在偏移量为1时没有找到正确答案,可能就要考虑偏移量为2的时候•••考虑一个又一个新的可能性,再一个一个的排除掉,男孩不停的在纸张上演算着,期待着,这25种可能里有一个是自己最想要的。

  10分钟,20分钟,沉浸在演算中的男孩突然惊觉,这样算下去会有结果么?这里有太多种可能了,女孩不可能想不到,除非能够明确的知道具体的偏移量,不然花一天功夫得到的也可能只是似是非是的答案。是不是女孩之前已经给了我提示,而我没有发觉?男孩问自己,有没有一些特殊含义的数字正好是这一步解密的关键。

  男孩打开手机,想再看一下女孩的短信里有没有特殊的提示,来帮助解开这一步的密文。翻阅的时候,男孩手指一不注意点到了输入框,弹出了手机键盘占了半个屏幕,男孩本想把它点下去,却突然发现了自己手机使用的是拼音全键输入方式。这里的字母排列规律全球通用,是不是这里的排序方式也会是密钥呢?

  Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

  将密文中的字母一一对应

  对应密文:D /Z /G /T /G /

  对应明文:M /T /O /E /O /

  没有错,到这里其实男孩已经大概猜到了最后的结果,这个方法应该是正确的,但是密码的破译不到最后一步得出结果,又怎能妄下定论。

  男孩压抑着激动的心情,开始分析下一步,此时应当是调整字母顺序,来完成破译,这个时候可以考虑换位加密:在简单的纵行换位密码中,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。

  但是在这里的密文只有5位,太短了,换位加密无法把可能的主语ME调整到句首,那应该怎么办呢?难道是栅栏密码,因为栅栏密码和换位加密同样的是分组讨论,但栅栏密码是把加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。其中最简单的二栏加密只要把想加密的文字一上一下的写出来,再把第二行的文字排到第一行的后面。

  M /T /O /

  E /O /

  解密也只要把密文从中间分开,分成两行,然后插入。

  ——ME TOO(我也是)

  终于解开了这个匣子,男孩激动的拿起手机 ,拨通了女孩的电话---————

  “从看到你的第一眼,我就喜欢上了你!”

  女孩笑着回答道“好巧啊,我也是!”。

  故事到这里就结束了,但它不止一次的让我心生欢喜,是女孩用男孩手机输入键盘设置密钥时,心底的甜蜜;也是男孩苦思不得其解却一直努力的坚持;但让我喜欢的是他们表达爱情的方式:我也爱你,用这种最特殊的方式告诉你!

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

      作者的话:2009年的一个贴子,激起了人们对密码学的好奇,多年之后我想把这个故事再说给新的人听,科学就是这样,像坛老酒,时间越久,它越香。查看原帖请点击>>>

扫码加蝌蚪五线谱微信