ORACLE_DATABASE > 来自可露希尔的信件

谜题背景

回声测试是《明日方舟》于2018年7月11日 12:00~8月10日 23:59开启的一次公开的限量不计费删档游戏测试,是《明日方舟》公测前的第二次测试。

该次测试包含约等于现版本主题曲序章至第4章的内容,并在本次测试结束前开启了特殊的“测试限定 - 行动检定” (Knack Test of Rhodes Island)章节,关卡编号为“X”。该章节的背景地图也是现在制作组通讯的头图。

谜题叩门

在回声测试中,部分剧情存在奇怪的、标称为单字母的人物与“???”之间的通讯对话。

经排查,以下关卡的行动后剧情中出现了通讯对话。

章节 剧情
主线 第四章(下) 4-10 灯火将熄(突袭)
行动检定 X-7 寒霜风暴
物资筹备 战术演习 LS-4 特种战演习
货物运送 CE-4 国际重犯押运
粉碎防御 AP-4 精炼工厂保全
资源保障 SK-4 要塞清剿
空中威胁 CA-4 战略要道净空

※点击剧情可跳转至站内剧情模拟器观看(因内测版本不同,可能无法正常模拟)

解密过程

第一部分:传送的信息

对以上剧情中的部分字符串进行摘录:

E 这里是\--\--。
??? 重新连接成功。
??? 正在返回挂起信息......
??? /Vtxz7JKvAMWy8S7qkxEVAlyQ==
R 这里是\-\\\-。
??? 重新连接成功。
??? 正在返回挂起信息......
??? 7pLwCAU9I1eHCRD1tRe7fFk9vBJThQyMAggPe1tGbbcdTI1yZ3iLatu
??? XlYSp2j0K+1DaNJ8fD7ojFPj69VaA8/ldsy3bOJ0iQ6HWfrh0B/
O 这里是\--\\-。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:2。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:3。
??? 连接成功。
??? 正在返回挂起信息......
??? n5bqNgQQwMx1FEbdg7Z0dRl2EJlbElrAHCsifXREXEIEkute+uRUTWso/
??? DxgOslBtq/
??? LUZvm8Fb/
U 这里是\---\\。
??? 1 Ursus-Chernobog.Emergencyresponsedepartment timeout
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:1。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:2。
??? 连接成功。
??? 正在返回挂起信息......
??? ORuD5SVClOIKooIIpKF2w+/
S 这里是-\\-\-。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:2。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:3。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:4。
??? 重新连接失败。
??? 正在尝试重新连接,重试次数:5。
??? 暂停重连。
S 啧......
??? 正在尝试连接至591.423.246.106......
??? 连接成功。
??? 正在返回挂起信息......
??? JSmnGOw2UW5A8+UPPMf/
C 这里是\\----。
??? 天灾探针已损毁
??? 正在寻找新的可用探针......
??? 正在返回挂起信息......
??? uWsOctqYQzW95XyOaTYDrfpLO4XHiu2gunic91NAmkQH97
??? LSoV5jVP0Z9gR2WYKYeDibw8LYzi0KRgtrPjBNmsWtxnwCPdBi5esyd55bR/
L 这里是\-\-\-。
??? 重新连接成功。
??? 正在寻找新的可用探针......
??? 正在返回挂起信息......
??? D/

同时,以上剧情均只显示一张特殊的背景:

Avg bg bg abyss 1.png

将各剧情中的单字母角色呼号摘出:

剧情关卡 角色 呼号
4-10 E \--\--
X-7 R \-\\\-
LS-4 O \--\\-
CE-4 U \---\\
AP-4 S -\\-\-
SK-4 C \\----
CA-4 L \-\-\-

注意到呼号对应的反斜杠(\)与短线(-)分为7组,每组6个符号,共计42个符号。

上述特殊背景中央墙面上的正反斜杠(/ \)合计3*14=42个符号,由此推断墙面上的符号与呼号对应。

将呼号中所有的短线替换为正斜杠后,可得到20个反斜杠和22个正斜杠,与墙面上的数量吻合,进一步验证该猜想。

注意到“L”的呼号非常匀称(三次 \/ 循环),尝试在墙面中寻找,可找到几种可能的圈定范围:

由于一行只有14个符号,排除绿色与红色区域,以蓝色区域为基准,可以将墙面符号均匀划分为7个区域。

将各区域按从左到右、从上到下的顺序阅读,可发现符号序列与呼号对应,代入角色名可得到序列:

C L O S U R E

其中这位“CLOSURE”直到2019年3月26日才揭开面纱——可露希尔的英文代号。但在彼时,从未现身的CLOSURE暂时只能隐藏于深处。

按照该顺序排列对应剧情,剧情中返回的挂起信息可组成一个英文字串:

剧情关卡 角色 挂起信息
SK-4 C uWsOctqYQzW95XyOaTYDrfpLO4XHiu2gunic91NAmkQH97
LSoV5jVP0Z9gR2WYKYeDibw8LYzi0KRgtrPjBNmsWtxnwCPdBi5esyd55bR/
CA-4 L D/
LS-4 O n5bqNgQQwMx1FEbdg7Z0dRl2EJlbElrAHCsifXREXEIEkute+uRUTWso/
DxgOslBtq/
LUZvm8Fb/
AP-4 S JSmnGOw2UW5A8+UPPMf/
CE-4 U ORuD5SVClOIKooIIpKF2w+/
X-7 R 7pLwCAU9I1eHCRD1tRe7fFk9vBJThQyMAggPe1tGbbcdTI1yZ3iLatu
XlYSp2j0K+1DaNJ8fD7ojFPj69VaA8/ldsy3bOJ0iQ6HWfrh0B/
4-10 E /Vtxz7JKvAMWy8S7qkxEVAlyQ==
聚合字符串
uWsOctqYQzW95XyOaTYDrfpLO4XHiu2gunic91NAmkQH97LSoV5jVP0Z9gR2WYKYeDibw8LYzi0KRgtrPjBNmsWtxnwCPdBi5esyd55bR/D/n5bqNgQQwMx1FEbdg7Z0dRl2EJlbElrAHCsifXREXEIEkute+uRUTWso/DxgOslBtq/LUZvm8Fb/JSmnGOw2UW5A8+UPPMf/ORuD5SVClOIKooIIpKF2w+/7pLwCAU9I1eHCRD1tRe7fFk9vBJThQyMAggPe1tGbbcdTI1yZ3iLatuXlYSp2j0K+1DaNJ8fD7ojFPj69VaA8/ldsy3bOJ0iQ6HWfrh0B//Vtxz7JKvAMWy8S7qkxEVAlyQ==

注意到聚合字符串最后有两个等号(=),这表明该字符串为Base64编码过后的字符串。

KNOWLEDGE_BASE > Base64
一种基于64个打印字符来表示二进制数据的数据表示法。基础算法如下:
  • 将要发送的数据按3个字符一组分隔,并将每一组转化为8位二进制数据。
  • 取每一组数据(共24位),按6位一组分隔,将每个6位转化为十进制数。
如果该组数据不够6位(常见于最后一组),则以0补齐后续二进制位数后转化。
  • 根据索引表,从转化后的十进制数推出一个Base64编码字符。
一组3个字符应转化为4个Base64编码字符。如果该24位数据不足以达到该要求,剩下的部分以等号(=)填充。

Base64具有多种索引法,其中较为常用的一种为RFC 4648(原RPC 3548)编码,这也是通常语境下的“Base64”。

将该字符串通过Base64解密,无法得到可读明文,仅可获得2144比特的二进制数据。

ATTACHMENT > #1 第一部分解密数据

10111001 01101011 00001110 01110010 11011010 10011000 01000011 00110101
10111101 11100101 01111100 10001110 01101001 00110110 00000011 10101101
11111010 01001011 00111011 10000101 11000111 10001010 11101101 10100000
10111010 01111000 10011100 11110111 01010011 01000000 10011010 01000100
00000111 11110111 10110010 11010010 10100001 01011110 01100011 01010100
11111101 00011001 11110110 00000100 01110110 01011001 10000010 10011000
01111000 00111000 10011011 11000011 11000010 11011000 11001110 00101101
00001010 01000110 00001011 01101011 00111110 00110000 01001101 10011010
11000101 10101101 11000110 01111100 00000010 00111101 11010000 01100010
11100101 11101011 00110010 01110111 10011110 01011011 01000111 11110000
11111111 10011111 10010110 11101010 00110110 00000100 00010000 11000000
11001100 01110101 00010100 01000110 11011101 10000011 10110110 01110100
01110101 00011001 01110110 00010000 10011001 01011011 00010010 01011010
11000000 00011100 00101011 00100010 01111101 01110100 01000100 01011100
01000010 00000100 10010010 11101011 01011110 11111010 11100100 01010100
01001101 01101011 00101000 11111100 00111100 01100000 00111010 11001001
01000001 10110110 10101111 11001011 01010001 10011011 11100110 11110000
01010110 11111111 00100101 00101001 10100111 00011000 11101100 00110110
01010001 01101110 01000000 11110011 11100101 00001111 00111100 11000111
11111111 00111001 00011011 10000011 11100101 00100101 01000010 10010100
11100010 00001010 10100010 10000010 00001000 10100100 10100001 01110110
11000011 11101111 11111011 10100100 10111100 00000010 00000001 01001111
01001000 11010101 11100001 11000010 01000100 00111101 01101101 01000101
11101110 11011111 00010110 01001111 01101111 00000100 10010100 11100001
01000011 00100011 00000000 10000010 00000011 11011110 11010110 11010001
10011011 01101101 11000111 01010011 00100011 01011100 10011001 11011110
00100010 11011010 10110110 11100101 11100101 01100001 00101010 01110110
10001111 01000010 10111110 11010100 00110110 10001101 00100111 11000111
11000011 11101110 10001000 11000101 00111110 00111110 10111101 01010101
10100000 00111100 11111110 01010111 01101100 11001011 01110110 11001110
00100111 01001000 10010000 11101000 01110101 10011111 10101110 00011101
00000001 11111111 11110101 01101101 11000111 00111110 11001001 00101010
11110000 00001100 01011011 00101111 00010010 11101110 10101001 00110001
00010001 01010000 00100101 11001001

第二部分:密钥

由于附件#1的数据没有直接解出明文,故实际上还需要一个“密钥”以解锁附件#1的数据。

回看4-10通讯剧情,其中E(实际上可理解为就是CLOSURE)与???的对话提及了以下信息:

E 终于......
??? 没想到废弃的城市都能被你这样使用。
??? Lead one.
E 但这可不是一个好消息啊。
E 总之,处理完这些东西就该出去呼吸点新鲜空气了。
??? 看上去是OTP......那么其他的......
E 我事先就留在上面了。
??? 话说这些信息是给谁的?
E Dr.■■■■!
E 都过了这么久,我还没上去看看呢。这家伙头发会变长吗?
??? 要我发给你Dr.■■■■的近照吗?

其中:

  • E通过废弃的城市传输信息,这些信息是留给Dr.■■■■(即玩家)的;
  • ???提到这些信息是OTP,即“一次性密码本”;
KNOWLEDGE_BASE > One-Time Pad
一次性密码本是古典密码学中的一种加密算法:使用随机的、仅使用一次的密钥搭配明文,加密出密文的加密方法。

该算法的安全性已由著名信息论创始人、密码学家克劳德·艾尔伍德·香农证明,但在实际操作中,一次性密码本必须遵守下列规定才能保持隐秘性:

  • 密钥必须是随机产生的;
  • 密钥的长度至少与明文等长;
  • 密钥必须只能使用一次,且必须对外保密。
  • ???提到还有一部分“其他的”信息,被E“事先就留在上面了”。

由此,在这些通讯之外,一定存在与附件#1相关的信息,并且这个信息与一次性密码本有关。

当玩家通关主线4-10之后,任务界面“主线任务”页签左侧的主线图片将会替换为一张写有“Thank you for your support!”(感谢你的支持!)的阿米娅照片。

Closure-02.png
实际上,这张照片即使在公测之后也保留了下来并且没有任何变化——包括你很容易注意到的东西。
不过这张照片现在已经不太容易获得了——因为你需要通关所有主线关卡才能看到这张照片。

可以很明显的发现,这张照片上同样存在一串Base64编码的英文字符串,并且上半部分的字符串经过了左右翻转处理。

将其转写,得到以下密文:

3QRtBrXqST/cgwjrGxZijZwuTKW

w74jLyV

jlmCZg7S1rm5K2yC0CJI18l3ZY-

eeDtDBjsq6e27s+K2nIES9LNB+XCqB

9nHbEFhIJcV+w+M4WN8baeWSRkq

KlVcCO485pUDHYDMPQ6a3qzaEJO

EVQ2OS9h/4k7iMQjJQpc3EUPT+kl3

8vlW/mf0CKXQAnQeZUacRools-

VdWaaMVnWjnEo3tIZlzKV8hNIT-

ps+WwZx

rcm88vYC2ZFRNJIP/Yj0WbfqGY1dvo

mS7ovHoAqo2Aynqu0Sv2sWMD0w

Z/S/foF/iSeelgfrlTkzJJoBajDgB6xes

Xjvjxn/sy3ghhpoY502mRZ4iUSUYjcV

eYiVXrA==

将密文中不属于Base64编码中的的连字符(-)去除后解密,可获得同样长度为2144比特的、与附件#1不同的另一段数据。

ATTACHMENT > #2 第二部分解密数据

11011101 00000100 01101101 00000110 10110101 11101010 01001001 00111111
11011100 10000011 00001000 11101011 00011011 00010110 01100010 10001101
10011100 00101110 01001100 10100101 10110000 11101111 10001000 11001011
11001001 01011000 11100101 10011000 00100110 01100000 11101101 00101101
01101011 10011011 10010010 10110110 11001000 00101101 00000010 00100100
10001101 01111100 10010111 01110110 01011000 01111001 11100000 11101101
00001100 00011000 11101100 10101011 10100111 10110110 11101110 11001111
10001010 11011010 01110010 00000100 01001011 11010010 11001101 00000111
11100101 11000010 10101000 00011111 01100111 00011101 10110001 00000101
10000100 10000010 01011100 01010111 11101100 00111110 00110011 10000101
10001101 11110001 10110110 10011110 01011001 00100100 01100100 10101000
10101001 01010101 01110000 00100011 10111000 11110011 10011010 01010100
00001100 01110110 00000011 00110000 11110100 00111010 01101011 01111010
10110011 01101000 01000010 01001110 00010001 01010100 00110110 00111001
00101111 01100001 11111111 10001001 00111011 10001000 11000100 00100011
00100101 00001010 01011100 11011100 01000101 00001111 01001111 11101001
00100101 11011111 11001011 11100101 01011011 11111001 10011111 11010000
00100010 10010111 01000000 00001001 11010000 01111001 10010101 00011010
01110001 00011010 00101000 10010110 11000101 01011101 01011001 10100110
10001100 01010110 01110101 10100011 10011100 01001010 00110111 10110100
10000110 01100101 11001100 10100101 01111100 10000100 11010010 00010011
10100110 11001111 10010110 11000001 10011100 01101011 01110010 01101111
00111100 10111101 10000000 10110110 01100100 01010100 01001101 00100100
10000011 11111111 01100010 00111101 00010110 01101101 11111010 10000110
01100011 01010111 01101111 10100010 01100100 10111011 10100010 11110001
11101000 00000010 10101010 00110110 00000011 00101001 11101010 10111011
01000100 10101111 11011010 11000101 10001100 00001111 01001100 00011001
11111101 00101111 11011111 10100000 01011111 11100010 01001001 11100111
10100101 10000001 11111010 11100101 01001110 01001100 11001001 00100110
10000000 01011010 10001100 00111000 00000001 11101011 00010111 10101100
01011110 00111011 11100011 11000110 01111111 11101100 11001011 01111000
00100001 10000110 10011010 00011000 11100111 01001101 10100110 01000101
10011110 00100010 01010001 00100101 00011000 10001101 11000101 01011110
01100010 00100101 01010111 10101100

第三部分:何以解密

从上两个部分可以获得的信息是:

  • 附件#1:一段长达2144比特的二进制数据;
  • 附件#2:一段同样长达2144比特的二进制数据;
  • ???提到这些是“一次性密码本”。

通过查询“相同长度的数据”与“一次性密码本”,我们能够找到一个关键的加解密方式——异或运算(XOR)。

KNOWLEDGE_BASE > Exclusive OR & XOR Cipher
异或,或称“互斥或”,是一种逻辑运算,其运算方式在数学中记为 p ⊕ q。

异或的算法为:若p与q中有且仅有一个为真,则 p ⊕ q 为真;如果p与q真假相同,则 p ⊕ q 为假。

在计算机中,异或(XOR)是二进制运算基础运算之一,常在编程语言中用 ^ 进行计算,此时即有 0^0=1^1=0,0^1=1^0=1。

通过异或算法完成的加密,即为异或加密,而这种加密通常都会遵守“一次性密码本”的算法:只要密钥不被泄露即可确保安全。

但一旦密钥泄露,密文和明文都将失守,这是因为异或具有特殊性质:对于 p ⊕ q = k,任意交换p、q、k在式中的位置,此运算始终成立。

也即当密文、密钥和明文中任意两个已知时,剩下一个可以通过这两个已知的数据做异或运算求出。

将附件#1与附件#2分别作为密文和密钥(任意顺序)作异或运算,可获得一份代表明文的二进制数据。

将其以Windows-1252 ASCII扩展编码解密,即可获得真正的明文。

谜题告破

FILE_DECRYPTED 解 密 完 成

doctor

after a few weeks you will disappear. but when “you” once again return to the deep, you may still remember what you did.
by the way, the Reason you don't see me is that i am trying to get some useful information for prts from abyss.
see you soon.


closure

翻译插件载入中……

博士:

再过几个星期你将会消失,但当“你”重新回到深层时,你也许还记得你都做过什么。
另外,你没见到我的原因是我正试图从深渊中获取一些对PRTS有用的信息。
很快就会再见。


closure

余谈

  • 本归档基于GORIE的报告进行了部分细节处理。
  • 根据4-10(突袭)的剧情,可露希尔被???称作“Lead One”。
而现在这个称呼变成了“Leader One”。
  • 第二部分中,照片上半部分的字符(尤其是第一行位置的字符)实际上难以辨认。
本页面的转写基于GORIE的报告,按照解密方法使用程序代码逆向计算出密钥Base64后补充在归档中。
可以确认,计算出的密钥Base64与照片上的一致。
  • 新玩家进入游戏后,解锁采购中心时,公测后第一次与玩家接触的可露希尔会以“???”的身份出现,并询问你“收到我发给你的信了吗”。
    这个发送的信息正是本谜题中通过废弃移动城市发送的消息,而这段引导剧情的背景也正是上面提到的具有斜线的墙面
  • 在一周年直播中展示的集成战略设计稿里有一个“深渊提取物”,与本谜题解密后提到的“深渊”不谋而合。

参考资料

作者:_GORIE