那台电脑主机出了一阵如同老牛拉车般沉重的嗡鸣声,紧接着,那台球面的crt显示器闪烁了几下,终于在漆黑的屏幕中央吐出了那枚幽幽闪烁的绿色光标。在这个被夏夜蝉鸣和落地扇的呼呼声所充盈的房间里,这点绿光显得既诡异又充满了某种来自未来的科技感,像是一只在黑暗森林中窥探的电子眼睛。
张甯并没有急着输入指令,她甚至没有坐下,而是如同一个正在视察领地的女王,慵懒地倚靠在彦宸身后的床沿上。她那头刚刚吹干、散着浓郁栀子花香的长随意地铺陈在身后的床单上,几缕丝垂落在彦宸的肩头,随着空调风若有若无地扫过他的后颈,激起一阵阵细微的颤栗。
“好了,坐下。”她伸出脚尖,轻轻踢了踢那把椅子的椅腿,示意彦宸入座,“现在,舞台交给你。”
彦宸依言坐下,手指习惯性地在那块有些硬的机械键盘上敲击了两下,出清脆的“咔哒”声。他转过头,看着身后那个在阴影中显得愈神秘的少女,嘴角扬起一抹自信的弧度:“宁哥,虽然我承认在编程这块儿我不如你,但在解谜这种需要散性思维的游戏上,我可是很有天赋的。说吧,你的谜题是什么?”
张甯没有说话,只是微微俯下身,越过彦宸的肩膀,伸出修长的手指在键盘上敲下了一行代码。她的呼吸温热地喷洒在彦宸的耳畔,带着那股令人心醉神迷的幽香,让他甚至有一瞬间无法集中注意力去看屏幕上的内容。
随着最后一下回车键的敲击,屏幕上跳出了一行简洁却令人费解的字符:
ooonobc
就这么简单的一行。没有任何多余的修饰,没有任何语境提示,甚至连标点符号都欠奉。它孤零零地悬浮在那片虚无的数字世界里,像是一座突然出现在旷野中的迷宫入口,既诱人又危险。
彦宸盯着那行字,眼神在数字与字母之间来回游移,大脑已经开始不由自主地高运转起来。他能感觉到自己的心跳在加,那是一种面对挑战时特有的、混合了兴奋与紧张的生理反应。而坐在他身后床沿上的张甯,则像一只刚刚布置完陷阱的猫,正以一种慵懒却又充满期待的姿态,等待着猎物踏进她精心设计的圈套。
“假设,”张甯的声音在他耳边响起,轻柔得像是一句梦呓,却又带着不容置喙的清晰,“某一天!…就选我十八岁生日那天吧,我突然消失了。整个世界都找不到我,只留下了这一行字。这就是我留给你的唯一线索。解开它,就能找到我;解不开,你就当我是死了。”
“别老把死字挂嘴边。”彦宸皱了皱眉,下意识地反驳了一句,但很快,他的注意力就被屏幕上的那行字符吸引了过去。
“这有什么难的?”
几乎是在看到那串数字的第一眼,彦宸就忍不住笑出了声。他原本紧绷的神经瞬间放松下来,甚至带着几分失望地摇了摇头,身体向后靠在椅背上,转过头看着张甯,眼神里满是那种“就这?”的戏谑。
“宁哥,你这未免也太看不起我了。这是把我当小学生哄呢?”他指着那串数字,像个刚刚考了满分正在求表扬的孩子,“这不就是最基础的‘az’替换密码吗?把字母表按顺序排列,是a,是b,以此类推。这种小儿科的东西,我们在计算机选修课上就玩过了。”
他一边说着,一边甚至不需要动笔,直接随口报出了答案:“是du,是o,o是a……后面这三个,、、,分别对应i、n、i。连起来就是——”
彦宸故意拖长了尾音,转过身,那双明亮的眼睛直勾勾地盯着张甯,嘴角挂着那种既得意又深情的坏笑:“du-o-a-i-n-i,我爱你。宁哥,虽然这个表白方式有点老土,甚至有点配不上你这种高智商黑客的人设,但我不得不说……我很受用。”
他说完,甚至张开双臂,做出一副准备迎接拥抱的姿势,仿佛已经预见到了接下来的温馨场面。
然而,预想中的娇羞或者拥抱并没有到来。
张甯依旧保持着那个双手撑在床沿的姿势,目光平平地看着他。那双清冷的眸子里不仅没有半点被拆穿心思的羞涩,反而流露出一种看傻瓜般的怜悯,甚至还有那么一丝丝“我就知道你会这样”的嘲弄。
彦宸脸上的笑容僵住了。他太熟悉张甯这个眼神了——每当他在数学题上题目没有看完,就开始“下笔如有神”时,她就会用这种眼神看他。那是一种智商上的绝对碾压,一种无声的嘲讽。
彦宸脸上的笑容僵住了。
就好像有人往他脑门上浇了一盆冰水,那股子得意劲儿瞬间被浇了个透心凉。他机械地转回头,重新盯着屏幕上那行字,大脑飞快地运转着,试图找出自己刚才的推理到底哪里出了问题。
等等。
这章没有结束,请点击下一页继续阅读!
我爱你?
这么火辣?这么直白?这么……毫无技术含量?
这根本不是张甯的风格。
以他对自家的宁哥的了解——那个永远在追求优雅解法的女孩,那个宁可花十倍时间也要用最精妙的逻辑来证明一个无用定理的女孩,那个把视为最大耻辱的女孩——怎么可能写个密码来对自己说“我爱你”?
彦宸的喉结滚动了一下,声音里的那股子得意已经荡然无存,取而代之的是一种小心翼翼的试探:所以……这不是答案?
“你觉得呢?”她挑了挑眉,语气平淡得像是一杯白开水,“你就打算拿着这个答案,在原地自我感动一辈子?”
彦宸被噎得说不出话来。他能感觉到自己的脸颊正在烫,那是一种被当众揭穿了自作聪明后特有的羞赧感。他讪讪地摸了摸鼻子,重新把视线移回屏幕,这一次,他的眼神变得更加专注,也更加谨慎。
所以,那斜杠后面那串字母……他喃喃自语道,像是在自言自语,又像是在寻求提示,nobc……这应该才是真正的密文。
好聪明啊,为你鼓掌。张甯难得地夸奖了一句,但那语气里的调侃意味依然浓厚。
“前面的那串数字,解出来的‘duoai’,确实没错。”张甯的声音变得有些慵懒,她随手抓起放在桌上的那把檀木梳子,有一搭没一搭地梳理着梢,“但在这个谜题里,它不是谜底,它是密钥(key)。”
“密钥?”彦宸的瞳孔微微收缩,大脑飞运转起来。那就意味着这是一个多表替换密码poyaphabeticcipher!而在这一类密码中,最经典、最广为人知的,就是那个诞生于世纪、被誉为密码学里的老祖宗的——
“你是说……维吉尼亚密码(vinèrecipher)?”
这是一种极其优雅的加密方式。它的原理说起来并不复杂:把明文的每一个字母,都根据密钥对应位置的字母进行不同程度的移位。比如说,如果密钥的第一个字母是du第个字母,那么明文的第一个字母就要向后移位;如果密钥的第二个字母是o第个字母,那么明文的第二个字母就要向后移位……以此类推,循环往复。
这种方法的妙处在于,即使是同一个字母,在不同位置上也会被加密成不同的密文,这就让传统的频率分析法freenaysis完全失效。在没有密钥的情况下,想要破解一段维吉尼亚密文,其难度是指数级增长的。
“算你还没把脑子彻底丢掉。”张甯点了点头,她没有继续说下去,只是用眼神示意彦宸继续。
彦宸深吸了一口气,收起了刚才那副嬉皮笑脸的模样,从桌上扯过一张草稿纸和一支铅笔。
“好吧,让我看看……”他一边在纸上快地画出字母对应表,一边低声喃喃自语,“密钥是‘duoai’,密文是‘nobc’。根据维吉尼亚算法,明文的位移量是由密钥字母在字母表中的位置决定的。比如第一个字母x,对应的密钥是du……”
铅笔在纸上出沙沙的摩擦声,在这个安静的夜晚显得格外清晰。彦宸的眉头越皱越紧,神情专注得像是在破解一道关乎生死的高考压轴题。
张甯静静地看着他的背影。看着他宽阔的肩膀随着呼吸微微起伏,看着台灯暖黄色的光晕勾勒出他专注的侧脸线条。那一刻,她眼里的嘲弄悄然退去,取而代之的是一种极深的温柔。她喜欢看他这样,喜欢看这只平日里总是嘻嘻哈哈的“野狗”为了跟上她的思维而拼命奔跑的样子。这种智力上的追逐与博弈,对她而言,远比任何甜言蜜语都要来得性感。
“解出来了!”
几分钟后,彦宸猛地把笔往桌上一拍,声音里带着一种破译成功后的兴奋。但紧接着,这种兴奋就像是被扎破的气球一样,瞬间瘪了下去。
他盯着纸上那个推导出来的单词,表情变得极其精彩——先是错愕,然后是难以置信,最后变成了一种欲哭无泪的哀怨。
“b……e……n……g……o……u。”
他转过头,举起那张草稿纸,用一种控诉负心汉般的眼神看着张甯,声音都在颤抖:“笨狗?!你费了这么大劲,设了两层密码,又是数字转换又是维吉尼亚代换,最后就是为了骂我一句‘笨狗’?!”
“噗嗤——”